").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(a){return $(a.target).is("input,textarea")}),updateColumnCaches(),createColumnHeaders(),setupColumnSort(),createCssRules(),resizeCanvas(),bindAncestorScrollEvents(),$container.bind("resize.slickgrid",resizeCanvas),$viewport.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(a){plugins.unshift(a),a.init(self)}function unregisterPlugin(a){for(var b=plugins.length;b>=0;b--)if(plugins[b]===a){plugins[b].destroy&&plugins[b].destroy(),plugins.splice(b,1);break}}function setSelectionModel(a){selectionModel&&(selectionModel.onSelectedRangesChanged.unsubscribe(handleSelectedRangesChanged),selectionModel.destroy&&selectionModel.destroy()),selectionModel=a,selectionModel&&(selectionModel.init(self),selectionModel.onSelectedRangesChanged.subscribe(handleSelectedRangesChanged))}function getSelectionModel(){return selectionModel}function getCanvasNode(){return $canvas[0]}function measureScrollbar(){var a=$("
").appendTo("body"),b={width:a.width()-a[0].clientWidth,height:a.height()-a[0].clientHeight};return a.remove(),b}function getHeadersWidth(){for(var a=0,b=0,c=columns.length;c>b;b++){var d=columns[b].width;a+=d}return a+=scrollbarDimensions.width,Math.max(a,viewportW)+1e3}function getCanvasWidth(){for(var a=viewportHasVScroll?viewportW-scrollbarDimensions.width:viewportW,b=0,c=columns.length;c--;)b+=columns[c].width;return options.fullWidthRows?Math.max(b,a):b}function updateCanvasWidth(a){var b=canvasWidth;canvasWidth=getCanvasWidth(),canvasWidth!=b&&($canvas.width(canvasWidth),$headerRow.width(canvasWidth),$headers.width(getHeadersWidth()),viewportHasHScroll=canvasWidth>viewportW-scrollbarDimensions.width),$headerRowSpacer.width(canvasWidth+(viewportHasVScroll?scrollbarDimensions.width:0)),(canvasWidth!=b||a)&&applyColumnWidths()}function disableSelection(a){a&&a.jquery&&a.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return!1})}function getMaxSupportedCssHeight(){for(var a=1e6,b=navigator.userAgent.toLowerCase().match(/firefox/)?6e6:1e9,c=$("
").appendTo(document.body);;){var d=2*a;if(c.css("height",d),d>b||c.height()!==d)break;a=d}return c.remove(),a}function bindAncestorScrollEvents(){for(var a=$canvas[0];(a=a.parentNode)!=document.body&&null!=a;)if(a==$viewport[0]||a.scrollWidth!=a.clientWidth||a.scrollHeight!=a.clientHeight){var b=$(a);$boundAncestors=$boundAncestors?$boundAncestors.add(b):b,b.bind("scroll."+uid,handleActiveCellPositionChange)}}function unbindAncestorScrollEvents(){$boundAncestors&&($boundAncestors.unbind("scroll."+uid),$boundAncestors=null)}function updateColumnHeader(a,b,c){if(initialized){var d=getColumnIndex(a);if(null!=d){var e=columns[d],f=$headers.children().eq(d);f&&(void 0!==b&&(columns[d].name=b),void 0!==c&&(columns[d].toolTip=c),trigger(self.onBeforeHeaderCellDestroy,{node:f[0],column:e}),f.attr("title",c||"").children().eq(0).html(b),trigger(self.onHeaderCellRendered,{node:f[0],column:e}))}}}function getHeaderRow(){return $headerRow[0]}function getHeaderRowColumn(a){var b=getColumnIndex(a),c=$headerRow.children().eq(b);return c&&c[0]}function createColumnHeaders(){function a(){$(this).addClass("ui-state-hover")}function b(){$(this).removeClass("ui-state-hover")}$headers.find(".slick-header-column").each(function(){var a=$(this).data("column");a&&trigger(self.onBeforeHeaderCellDestroy,{node:this,column:a})}),$headers.empty(),$headers.width(getHeadersWidth()),$headerRow.find(".slick-headerrow-column").each(function(){var a=$(this).data("column");a&&trigger(self.onBeforeHeaderRowCellDestroy,{node:this,column:a})}),$headerRow.empty();for(var c=0;c
").html("
"+d.name+"").width(d.width-headerColumnWidthDiff).attr("id",""+uid+d.id).attr("title",d.toolTip||"").data("column",d).addClass(d.headerCssClass||"").appendTo($headers);if((options.enableColumnReorder||d.sortable)&&e.on("mouseenter",a).on("mouseleave",b),d.sortable&&(e.addClass("slick-header-sortable"),e.append("
")),trigger(self.onHeaderCellRendered,{node:e[0],column:d}),options.showHeaderRow){var f=$("
").data("column",d).appendTo($headerRow);trigger(self.onHeaderRowCellRendered,{node:f[0],column:d})}}setSortColumns(sortColumns),setupColumnResize(),options.enableColumnReorder&&setupColumnReorder()}function setupColumnSort(){$headers.click(function(a){if(a.metaKey=a.metaKey||a.ctrlKey,!$(a.target).hasClass("slick-resizable-handle")){var b=$(a.target).closest(".slick-header-column");if(b.length){var c=b.data("column");if(c.sortable){if(!getEditorLock().commitCurrentEdit())return;for(var d=null,e=0;e
j||options.forceFitColumns&&j>=i||(a=$(k),$("").appendTo(k).bind("dragstart",function(a){if(!getEditorLock().commitCurrentEdit())return!1;d=a.pageX,$(this).parent().addClass("slick-header-column-active");var h=null,i=null;if(e.each(function(a,b){columns[a].previousWidth=$(b).outerWidth()}),options.forceFitColumns)for(h=0,i=0,b=j+1;b=b;b++)c=columns[b],c.resizable&&(null!==l&&(c.maxWidth?l+=c.maxWidth-c.previousWidth:l=null),k+=c.previousWidth-Math.max(c.minWidth||0,absoluteColumnMinWidth));null===h&&(h=1e5),null===k&&(k=1e5),null===i&&(i=1e5),null===l&&(l=1e5),g=d+Math.min(h,l),f=d-Math.min(k,i)}).bind("drag",function(a){var h,i,k=Math.min(g,Math.max(f,a.pageX))-d;if(0>k){for(i=k,b=j;b>=0;b--)c=columns[b],c.resizable&&(h=Math.max(c.minWidth||0,absoluteColumnMinWidth),i&&c.previousWidth+i=0;b--)c=columns[b],c.resizable&&(i&&c.maxWidth&&c.maxWidth-c.previousWidth- ").appendTo($headers),headerColumnWidthDiff=headerColumnHeightDiff=0,$.each(b,function(b,c){headerColumnWidthDiff+=parseFloat(a.css(c))||0}),$.each(c,function(b,c){headerColumnHeightDiff+=parseFloat(a.css(c))||0}),a.remove();var d=$("