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