if(function(t){function e(){var t=!1,e=!1;this.stopPropagation=function(){t=!0},this.isPropagationStopped=function(){return t},this.stopImmediatePropagation=function(){e=!0},this.isImmediatePropagationStopped=function(){return e}}function i(){var t=[];this.subscribe=function(e){t.push(e)},this.unsubscribe=function(e){for(var i=t.length-1;i>=0;i--)t[i]===e&&t.splice(i,1)},this.notify=function(i,n,r){n=n||new e,r=r||this;for(var o,s=0;t.length>s&&!n.isPropagationStopped()&&!n.isImmediatePropagationStopped();s++)o=t[s].call(r,n,i);return o}}function n(){var t=[];this.subscribe=function(e,i){return t.push({event:e,handler:i}),e.subscribe(i),this},this.unsubscribe=function(e,i){for(var n=t.length;n--;)if(t[n].event===e&&t[n].handler===i)return t.splice(n,1),e.unsubscribe(i),void 0;return this},this.unsubscribeAll=function(){for(var e=t.length;e--;)t[e].event.unsubscribe(t[e].handler);return t=[],this}}function r(t,e,i,n){void 0===i&&void 0===n&&(i=t,n=e),this.fromRow=Math.min(t,i),this.fromCell=Math.min(e,n),this.toRow=Math.max(t,i),this.toCell=Math.max(e,n),this.isSingleRow=function(){return this.fromRow==this.toRow},this.isSingleCell=function(){return this.fromRow==this.toRow&&this.fromCell==this.toCell},this.contains=function(t,e){return t>=this.fromRow&&this.toRow>=t&&e>=this.fromCell&&this.toCell>=e},this.toString=function(){return this.isSingleCell()?"("+this.fromRow+":"+this.fromCell+")":"("+this.fromRow+":"+this.fromCell+" - "+this.toRow+":"+this.toCell+")"}}function o(){this.__nonDataRow=!0}function s(){this.__group=!0,this.level=0,this.count=0,this.value=null,this.title=null,this.collapsed=!1,this.totals=null,this.rows=[],this.groups=null,this.groupingKey=null}function a(){this.__groupTotals=!0,this.group=null}function l(){var t=null;this.isActive=function(e){return e?t===e:null!==t},this.activate=function(e){if(e!==t){if(null!==t)throw"SlickGrid.EditorLock.activate: an editController is still active, can't activate another editController";if(!e.commitCurrentEdit)throw"SlickGrid.EditorLock.activate: editController must implement .commitCurrentEdit()";if(!e.cancelCurrentEdit)throw"SlickGrid.EditorLock.activate: editController must implement .cancelCurrentEdit()";t=e}},this.deactivate=function(e){if(t!==e)throw"SlickGrid.EditorLock.deactivate: specified editController is not the currently active one";t=null},this.commitCurrentEdit=function(){return t?t.commitCurrentEdit():!0},this.cancelCurrentEdit=function(){return t?t.cancelCurrentEdit():!0}}t.extend(!0,window,{Slick:{Event:i,EventData:e,EventHandler:n,Range:r,NonDataRow:o,Group:s,GroupTotals:a,EditorLock:l,GlobalEditorLock:new l}}),s.prototype=new o,s.prototype.equals=function(t){return this.value===t.value&&this.count===t.count&&this.collapsed===t.collapsed&&this.title===t.title},a.prototype=new o}(jQuery),"undefined"==typeof jQuery)throw"SlickGrid requires jquery module to be loaded";if(!jQuery.fn.drag)throw"SlickGrid requires jquery.event.drag module to be loaded";if("undefined"==typeof Slick)throw"slick.core.js not loaded";(function($){function SlickGrid(container,data,columns,options){function init(){if($container=$(container),1>$container.length)throw Error("SlickGrid requires a valid container, "+container+" does not exist in the DOM.");maxSupportedCssHeight=maxSupportedCssHeight||getMaxSupportedCssHeight(),scrollbarDimensions=scrollbarDimensions||measureScrollbar(),options=$.extend({},defaults,options),validateAndEnforceOptions(),columnDefaults.width=options.defaultColumnWidth,columnsById={};for(var t=0;columns.length>t;t++){var e=columns[t]=$.extend({},columnDefaults,columns[t]);columnsById[e.id]=t,e.minWidth&&e.widthe.maxWidth&&(e.width=e.maxWidth)}if(options.enableColumnReorder&&!$.fn.sortable)throw Error("SlickGrid's 'enableColumnReorder = true' option requires jquery-ui.sortable module to be loaded");editController={commitCurrentEdit:commitCurrentEdit,cancelCurrentEdit:cancelCurrentEdit},$container.empty().css("overflow","hidden").css("outline",0).addClass(uid).addClass("ui-widget"),/relative|absolute|fixed/.test($container.css("position"))||$container.css("position","relative"),$focusSink=$("
").appendTo($container),$headerScroller=$("
").appendTo($container),$headers=$("
").appendTo($headerScroller),$headers.width(getHeadersWidth()),$headerRowScroller=$("
").appendTo($container),$headerRow=$("
").appendTo($headerRowScroller),$headerRowSpacer=$("
").css("width",getCanvasWidth()+scrollbarDimensions.width+"px").appendTo($headerRowScroller),$topPanelScroller=$("
").appendTo($container),$topPanel=$("
").appendTo($topPanelScroller),options.showTopPanel||$topPanelScroller.hide(),options.showHeaderRow||$headerRowScroller.hide(),$viewport=$("
").appendTo($container),$viewport.css("overflow-y",options.autoHeight?"hidden":"auto"),$canvas=$("
").appendTo($viewport),$focusSink2=$focusSink.clone().appendTo($container),options.explicitInitialization||finishInitialization()}function finishInitialization(){initialized||(initialized=!0,viewportW=parseFloat($.css($container[0],"width",!0)),measureCellPaddingAndBorder(),disableSelection($headers),options.enableTextSelectionOnCells||$viewport.bind("selectstart.ui",function(t){return $(t.target).is("input,textarea")}),updateColumnCaches(),createColumnHeaders(),setupColumnSort(),createCssRules(),resizeCanvas(),bindAncestorScrollEvents(),$container.bind("resize.slickgrid",resizeCanvas),$viewport.bind("click",handleClick).bind("scroll",handleScroll),$headerScroller.bind("contextmenu",handleHeaderContextMenu).bind("click",handleHeaderClick).delegate(".slick-header-column","mouseenter",handleHeaderMouseEnter).delegate(".slick-header-column","mouseleave",handleHeaderMouseLeave),$headerRowScroller.bind("scroll",handleHeaderRowScroll),$focusSink.add($focusSink2).bind("keydown",handleKeyDown),$canvas.bind("keydown",handleKeyDown).bind("click",handleClick).bind("dblclick",handleDblClick).bind("contextmenu",handleContextMenu).bind("draginit",handleDragInit).bind("dragstart",{distance:3},handleDragStart).bind("drag",handleDrag).bind("dragend",handleDragEnd).delegate(".slick-cell","mouseenter",handleMouseEnter).delegate(".slick-cell","mouseleave",handleMouseLeave))}function registerPlugin(t){plugins.unshift(t),t.init(self)}function unregisterPlugin(t){for(var e=plugins.length;e>=0;e--)if(plugins[e]===t){plugins[e].destroy&&plugins[e].destroy(),plugins.splice(e,1);break}}function setSelectionModel(t){selectionModel&&(selectionModel.onSelectedRangesChanged.unsubscribe(handleSelectedRangesChanged),selectionModel.destroy&&selectionModel.destroy()),selectionModel=t,selectionModel&&(selectionModel.init(self),selectionModel.onSelectedRangesChanged.subscribe(handleSelectedRangesChanged))}function getSelectionModel(){return selectionModel}function getCanvasNode(){return $canvas[0]}function measureScrollbar(){var t=$("
").appendTo("body"),e={width:t.width()-t[0].clientWidth,height:t.height()-t[0].clientHeight};return t.remove(),e}function getHeadersWidth(){for(var t=0,e=0,i=columns.length;i>e;e++){var n=columns[e].width;t+=n}return t+=scrollbarDimensions.width,Math.max(t,viewportW)+1e3}function getCanvasWidth(){for(var t=viewportHasVScroll?viewportW-scrollbarDimensions.width:viewportW,e=0,i=columns.length;i--;)e+=columns[i].width;return options.fullWidthRows?Math.max(e,t):e}function updateCanvasWidth(t){var e=canvasWidth;canvasWidth=getCanvasWidth(),canvasWidth!=e&&($canvas.width(canvasWidth),$headerRow.width(canvasWidth),$headers.width(getHeadersWidth()),viewportHasHScroll=canvasWidth>viewportW-scrollbarDimensions.width),$headerRowSpacer.width(canvasWidth+(viewportHasVScroll?scrollbarDimensions.width:0)),(canvasWidth!=e||t)&&applyColumnWidths()}function disableSelection(t){t&&t.jquery&&t.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return!1})}function getMaxSupportedCssHeight(){for(var t=1e6,e=navigator.userAgent.toLowerCase().match(/firefox/)?6e6:1e9,i=$("
").appendTo(document.body);;){var n=2*t;if(i.css("height",n),n>e||i.height()!==n)break;t=n}return i.remove(),t}function bindAncestorScrollEvents(){for(var t=$canvas[0];(t=t.parentNode)!=document.body&&null!=t;)if(t==$viewport[0]||t.scrollWidth!=t.clientWidth||t.scrollHeight!=t.clientHeight){var e=$(t);$boundAncestors=$boundAncestors?$boundAncestors.add(e):e,e.bind("scroll."+uid,handleActiveCellPositionChange)}}function unbindAncestorScrollEvents(){$boundAncestors&&($boundAncestors.unbind("scroll."+uid),$boundAncestors=null)}function updateColumnHeader(t,e,i){if(initialized){var n=getColumnIndex(t);if(null!=n){var r=columns[n],o=$headers.children().eq(n);o&&(void 0!==e&&(columns[n].name=e),void 0!==i&&(columns[n].toolTip=i),trigger(self.onBeforeHeaderCellDestroy,{node:o[0],column:r}),o.attr("title",i||"").children().eq(0).html(e),trigger(self.onHeaderCellRendered,{node:o[0],column:r}))}}}function getHeaderRow(){return $headerRow[0]}function getHeaderRowColumn(t){var e=getColumnIndex(t),i=$headerRow.children().eq(e);return i&&i[0]}function createColumnHeaders(){function t(){$(this).addClass("ui-state-hover")}function e(){$(this).removeClass("ui-state-hover")}$headers.find(".slick-header-column").each(function(){var t=$(this).data("column");t&&trigger(self.onBeforeHeaderCellDestroy,{node:this,column:t})}),$headers.empty(),$headers.width(getHeadersWidth()),$headerRow.find(".slick-headerrow-column").each(function(){var t=$(this).data("column");t&&trigger(self.onBeforeHeaderRowCellDestroy,{node:this,column:t})}),$headerRow.empty();for(var i=0;columns.length>i;i++){var n=columns[i],r=$("
").html(""+n.name+"").width(n.width-headerColumnWidthDiff).attr("id",""+uid+n.id).attr("title",n.toolTip||"").data("column",n).addClass(n.headerCssClass||"").appendTo($headers);if((options.enableColumnReorder||n.sortable)&&r.on("mouseenter",t).on("mouseleave",e),n.sortable&&(r.addClass("slick-header-sortable"),r.append("")),trigger(self.onHeaderCellRendered,{node:r[0],column:n}),options.showHeaderRow){var o=$("
").data("column",n).appendTo($headerRow);trigger(self.onHeaderRowCellRendered,{node:o[0],column:n})}}setSortColumns(sortColumns),setupColumnResize(),options.enableColumnReorder&&setupColumnReorder()}function setupColumnSort(){$headers.click(function(t){if(t.metaKey=t.metaKey||t.ctrlKey,!$(t.target).hasClass("slick-resizable-handle")){var e=$(t.target).closest(".slick-header-column");if(e.length){var i=e.data("column");if(i.sortable){if(!getEditorLock().commitCurrentEdit())return;for(var n=null,r=0;sortColumns.length>r;r++)if(sortColumns[r].columnId==i.id){n=sortColumns[r],n.sortAsc=!n.sortAsc;break}t.metaKey&&options.multiColumnSort?n&&sortColumns.splice(r,1):((t.shiftKey||t.metaKey)&&options.multiColumnSort||(sortColumns=[]),n?0==sortColumns.length&&sortColumns.push(n):(n={columnId:i.id,sortAsc:i.defaultSortAsc},sortColumns.push(n))),setSortColumns(sortColumns),options.multiColumnSort?trigger(self.onSort,{multiColumnSort:!0,sortCols:$.map(sortColumns,function(t){return{sortCol:columns[getColumnIndex(t.columnId)],sortAsc:t.sortAsc}})},t):trigger(self.onSort,{multiColumnSort:!1,sortCol:i,sortAsc:n.sortAsc},t)}}}})}function setupColumnReorder(){$headers.filter(":ui-sortable").sortable("destroy"),$headers.sortable({containment:"parent",distance:3,axis:"x",cursor:"default",tolerance:"intersection",helper:"clone",placeholder:"slick-sortable-placeholder ui-state-default slick-header-column",forcePlaceholderSize:!0,start:function(t,e){$(e.helper).addClass("slick-header-column-active")},beforeStop:function(t,e){$(e.helper).removeClass("slick-header-column-active")},stop:function(t){if(!getEditorLock().commitCurrentEdit())return $(this).sortable("cancel"),void 0;for(var e=$headers.sortable("toArray"),i=[],n=0;e.length>n;n++)i.push(columns[getColumnIndex(e[n].replace(uid,""))]);setColumns(i),trigger(self.onColumnsReordered,{}),t.stopPropagation(),setupColumnResize()}})}function setupColumnResize(){var t,e,i,n,r,o,s,a,l;r=$headers.children(),r.find(".slick-resizable-handle").remove(),r.each(function(t){columns[t].resizable&&(void 0===a&&(a=t),l=t)}),void 0!==a&&r.each(function(u,c){a>u||options.forceFitColumns&&u>=l||(t=$(c),$("
").appendTo(c).bind("dragstart",function(t){if(!getEditorLock().commitCurrentEdit())return!1;n=t.pageX,$(this).parent().addClass("slick-header-column-active");var a=null,l=null;if(r.each(function(t,e){columns[t].previousWidth=$(e).outerWidth()}),options.forceFitColumns)for(a=0,l=0,e=u+1;r.length>e;e++)i=columns[e],i.resizable&&(null!==l&&(i.maxWidth?l+=i.maxWidth-i.previousWidth:l=null),a+=i.previousWidth-Math.max(i.minWidth||0,absoluteColumnMinWidth));var c=0,h=0;for(e=0;u>=e;e++)i=columns[e],i.resizable&&(null!==h&&(i.maxWidth?h+=i.maxWidth-i.previousWidth:h=null),c+=i.previousWidth-Math.max(i.minWidth||0,absoluteColumnMinWidth));null===a&&(a=1e5),null===c&&(c=1e5),null===l&&(l=1e5),null===h&&(h=1e5),s=n+Math.min(a,h),o=n-Math.min(c,l)}).bind("drag",function(t){var a,l,c=Math.min(s,Math.max(o,t.pageX))-n;if(0>c){for(l=c,e=u;e>=0;e--)i=columns[e],i.resizable&&(a=Math.max(i.minWidth||0,absoluteColumnMinWidth),l&&a>i.previousWidth+l?(l+=i.previousWidth-a,i.width=a):(i.width=i.previousWidth+l,l=0));if(options.forceFitColumns)for(l=-c,e=u+1;r.length>e;e++)i=columns[e],i.resizable&&(l&&i.maxWidth&&l>i.maxWidth-i.previousWidth?(l-=i.maxWidth-i.previousWidth,i.width=i.maxWidth):(i.width=i.previousWidth+l,l=0))}else{for(l=c,e=u;e>=0;e--)i=columns[e],i.resizable&&(l&&i.maxWidth&&l>i.maxWidth-i.previousWidth?(l-=i.maxWidth-i.previousWidth,i.width=i.maxWidth):(i.width=i.previousWidth+l,l=0));if(options.forceFitColumns)for(l=-c,e=u+1;r.length>e;e++)i=columns[e],i.resizable&&(a=Math.max(i.minWidth||0,absoluteColumnMinWidth),l&&a>i.previousWidth+l?(l+=i.previousWidth-a,i.width=a):(i.width=i.previousWidth+l,l=0))}applyColumnHeaderWidths(),options.syncColumnCellResize&&applyColumnWidths()}).bind("dragend",function(){var t;for($(this).parent().removeClass("slick-header-column-active"),e=0;r.length>e;e++)i=columns[e],t=$(r[e]).outerWidth(),i.previousWidth!==t&&i.rerenderOnResize&&invalidateAllRows();updateCanvasWidth(!0),render(),trigger(self.onColumnsResized,{})}))})}function getVBoxDelta(t){var e=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],i=0;return $.each(e,function(e,n){i+=parseFloat(t.css(n))||0}),i}function measureCellPaddingAndBorder(){var t,e=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],i=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"];t=$("").appendTo($headers),headerColumnWidthDiff=headerColumnHeightDiff=0,$.each(e,function(e,i){headerColumnWidthDiff+=parseFloat(t.css(i))||0}),$.each(i,function(e,i){headerColumnHeightDiff+=parseFloat(t.css(i))||0}),t.remove();var n=$("
").appendTo($canvas);t=$("").appendTo(n),cellWidthDiff=cellHeightDiff=0,$.each(e,function(e,i){cellWidthDiff+=parseFloat(t.css(i))||0}),$.each(i,function(e,i){cellHeightDiff+=parseFloat(t.css(i))||0}),n.remove(),absoluteColumnMinWidth=Math.max(headerColumnWidthDiff,cellWidthDiff)}function createCssRules(){$style=$("