/*! mason_viewer.js github.com/yeastrc/mason The Mason Viewer is created by calling MasonViewer.createMasonViewer = function ( $rootDiv, requestParams, configParams, callbackFunctionsObj ) { where MasonViewer is an object at window.MasonViewer. configParams is merged with the following parameters MasonViewerPerInstanceRenderOnPage.prototype.configDisplayOptionDefaults = { TOP_ROW_OFFSET_FROM_TOP_OF_IMAGE : 2, LABEL_FONT_SIZE : 12, ROW_HEIGHT : 15, // Adjust the ROW_HEIGHT to accommodate the height of the label BLOCK_HEIGHT : 14, // Adjust the BLOCK_HEIGHT to accommodate the height of the label LABEL_WIDTH : 100, // Adjust the LABEL_WIDTH to accommodate the width of the longest label ICON_EXPAND_ROW_STARTING_POSITION : 1, ICON_EXPAND_ROW_WIDTH : 15, ICON_EXPAND_ROW_SPACE_AFTER : 2, ROW_TOTALS_BAR_RIGHT_MAX_WIDTH : 30, ROW_TOTAL_BLOCK_MINIMUM_SIZE : 1, ROW_TOTALS_BAR_RIGHT_SPACE_FROM_MAIN_GRID : 10, ROW_TOTALS_BAR_RIGHT_SPACE_FROM_RIGHT_EDGE : 4, BORDER_COLOR : "black", BORDER_WIDTH : 1, FOOTER_HEIGHT : 2, // Tool tip text CLICK_TO_CONTRACT_TO_HIDE_INDIVIDUAL_BLOCKS_TOOLTIP_TEXT_PREFIX : "Click to hide individual ", CLICK_TO_EXPAND_TO_SHOW_INDIVIDUAL_BLOCKS_TOOLTIP_TEXT_PREFIX : "Click to show individual ", blockTypeLabelPlural : "blocks", BLOCK_HIGHLIGHT_BORDER_COLOR : "pink", BLOCK_HIGHLIGHT_BORDER_WIDTH : 2, createCombinedLineOnly : undefined, // set to true to only create combined line skipCreateCombinedLine : undefined, // set to true to skip create combined line combinedLineLabel : "Combined", // label on left for combined line combinedLineTooltipHTML : undefined, // tool tip for label on left for combined line ALIGNMENT_LINE_COLOR : "black", ALIGNMENT_LINE_WIDTH : 2 }; */ (function(window){var MasonViewer=function(){};MasonViewer.prototype.instanceCounter=0;MasonViewer.prototype.createMasonViewer=function($rootDiv,requestParams,configParams,callbackFunctionsObj){if($rootDiv===undefined||$rootDiv===null){throw"$rootDiv is missing or null"}if(requestParams===undefined||requestParams===null){throw"requestParams is missing or null"}if(configParams===undefined||configParams===null){throw"configParams is missing or null"}if(callbackFunctionsObj===undefined||callbackFunctionsObj===null){throw"callbackFunctionsObj is missing or null"}var rootDivLength=$rootDiv.length;if(rootDivLength!=1){throw"Error calling 'MasonViewer.createMasonViewer': $rootDiv must contain exactly one element"}var svgSupport=Modernizr.svg;if(!svgSupport){throw"SVG not supported"}this.instanceCounter++;var internalParams={masonViewerMain:this,instanceCounter:this.instanceCounter};var masonViewerInstance=new MasonViewerPerInstance($rootDiv,requestParams,configParams,callbackFunctionsObj,internalParams);return masonViewerInstance};MasonViewer.prototype.getDataElement=function(){return"MasonViewer"};MasonViewer.prototype.getProtCovObjectStorageClassName=function(){return"ProtCovObjectStorageClass"};var MasonViewer=new MasonViewer();window.MasonViewer=MasonViewer;"use strict";"use strict";var MasonViewerPerInstance=function($rootDiv,requestParams,configParams,callbackFunctionsObj,internalParams){var objectThis=this;var rootDivLength=$rootDiv.length;if(rootDivLength!=1){throw"Error calling 'MasonViewer.createMasonViewer': $rootDiv must contain exactly one element"}var masonViewerMain=internalParams.masonViewerMain;var protCovObjectStorageNodeHTML='
';$(protCovObjectStorageNodeHTML).appendTo($rootDiv);var protCovObjectStorageNodeSelector="."+masonViewerMain.getProtCovObjectStorageClassName();var $protCovObjectStorageNode=$rootDiv.children(protCovObjectStorageNodeSelector);if($protCovObjectStorageNode.size()===0){throw"Unable to find protCovObjectStorageNode under $rootDiv, protCovObjectStorageNodeSelector = "+protCovObjectStorageNodeSelector}$protCovObjectStorageNode.data(masonViewerMain.getDataElement(),this);var dataReformattedToInternalFormat=objectThis.reformatDataToInternalFormat(requestParams);var computedRepresentation=objectThis.computeRepresentation($rootDiv,dataReformattedToInternalFormat,requestParams,configParams);objectThis.renderViewerOnThePage($rootDiv,computedRepresentation,requestParams,configParams,callbackFunctionsObj,internalParams)};MasonViewerPerInstance.prototype.renderViewerOnThePage=function($rootDiv,data,requestParams,configParams,callbackFunctionsObj,internalParams){var objectThisMasonViewerPerInstanceCopy=this;this.masonViewerPerInstanceRenderOnPage=new MasonViewerPerInstanceRenderOnPage($rootDiv,data,requestParams,configParams,callbackFunctionsObj,internalParams,objectThisMasonViewerPerInstanceCopy);this.masonViewerPerInstanceRenderOnPage.renderViewerOnThePageMain()};MasonViewerPerInstance.prototype.MESSAGE_TYPE_RENDER_ON_PAGE="RENDER_ON_PAGE";MasonViewerPerInstance.prototype.hideVerticalDataLines=function(){this.masonViewerPerInstanceRenderOnPage.hideVerticalDataLines()};MasonViewerPerInstance.prototype.showVerticalDataLines=function(){this.masonViewerPerInstanceRenderOnPage.showVerticalDataLines()};MasonViewerPerInstance.prototype.deleteViewer=function(){this.masonViewerPerInstanceRenderOnPage.deleteViewer()};MasonViewerPerInstance.prototype.acceptMessage=function(message){if(message.type===MasonViewerPerInstance.prototype.MESSAGE_TYPE_RENDER_ON_PAGE){this.masonViewerPerInstanceRenderOnPage.acceptMessage(message.data)}else{throw"unknown type in message at 'MasonViewerPerInstance.prototype.acceptMessage'. type: "+message.type}};MasonViewerPerInstance.prototype.registerBlockHoverListener=function(params){this.masonViewerPerInstanceRenderOnPage.registerBlockHoverListener(params)};"use strict";MasonViewerPerInstance.prototype.computeRepresentation=function($rootDiv,dataReformattedToInternalFormat,requestParams,configParams){var objectThis=this;var computedData={outputRows:[]};var outputRows=computedData.outputRows; var inputData=dataReformattedToInternalFormat;var rowItems=inputData.rowItems;for(var rowItemsIndex=0;rowItemsIndex200){var errorMsg="combineOverlapsProteinPositionBased(...): numTimesSplitAnEntryLoop > 200 so throwing exception. ";throw errorMsg}splitAnEntryThisIterationOfLoop=false;blockItemListInput=blockItemListOutput;blockItemListOutput=[];blockItemListInput.sort(this.combineOverlaps_Z_compareForSortBlocks);var index=-1;while((++index)MasonViewerPerInstanceRenderOnPage.prototype.CONSTANTS.MIN_MAX_VALUES.MAXIMUM_ROWS_PER_GROUP){this.GLOBALS.rowsPerGroup=MasonViewerPerInstanceRenderOnPage.prototype.CONSTANTS.MIN_MAX_VALUES.MAXIMUM_ROWS_PER_GROUP}}};MasonViewerPerInstanceRenderOnPage.prototype.putDataOnThePageMain=function(){var outputRows=this.constructorParams.data.outputRows;this.add_callbackDataStorage_ToElementsIn_outputRows(outputRows);var SVGrootGroupInsideBoundingBox=this.GLOBALS.masonViewerSVG.group();SVGrootGroupInsideBoundingBox.attr("label","SVGrootGroupInsideBoundingBox");var currentGroupOfRowsSVGgroup=this.GLOBALS.masonViewerSVG.group();this.setupGroupOfRows(currentGroupOfRowsSVGgroup);var currentGroupOfRowsSVGgroupProgramaticStorage=this.getProgramaticDataStorageFromSVG_js_Item(currentGroupOfRowsSVGgroup);SVGrootGroupInsideBoundingBox.add(currentGroupOfRowsSVGgroup);var currentSVGgroupOfRowXandBelow=this.GLOBALS.masonViewerSVG.group();this.setupRootGroupForEachRow(currentSVGgroupOfRowXandBelow);var currentSVGgroupOfRowXandBelowProgramaticDataStorage=this.getProgramaticDataStorageFromSVG_js_Item(currentSVGgroupOfRowXandBelow);currentSVGgroupOfRowXandBelowProgramaticDataStorage._type="currentSVGgroupOfRowXandBelow";currentSVGgroupOfRowXandBelowProgramaticDataStorage._attachedTo=currentSVGgroupOfRowXandBelow;currentGroupOfRowsSVGgroup.add(currentSVGgroupOfRowXandBelow);currentGroupOfRowsSVGgroupProgramaticStorage.setFirstOutputRowSVGGroup(currentSVGgroupOfRowXandBelow);var rowOffsetMainArea=0;if((outputRows.length>1||this.configDisplayOptions.createCombinedLineOnly)&&!this.configDisplayOptions.skipCreateCombinedLine){this.processCombinedRow(outputRows,0,currentSVGgroupOfRowXandBelow,currentSVGgroupOfRowXandBelowProgramaticDataStorage);nextSVGgroupOfRowXandBelow=this.GLOBALS.masonViewerSVG.group();nextSVGgroupOfRowXandBelow.attr("label","nextSVGgroupOfRowXandBelow");currentSVGgroupOfRowXandBelow.add(nextSVGgroupOfRowXandBelow);currentSVGgroupOfRowXandBelowProgramaticDataStorage.setGroupToMoveForExpansion(nextSVGgroupOfRowXandBelow);currentSVGgroupOfRowXandBelow=nextSVGgroupOfRowXandBelow;this.setupRootGroupForEachRow(currentSVGgroupOfRowXandBelow);currentSVGgroupOfRowXandBelowProgramaticDataStorage=this.getProgramaticDataStorageFromSVG_js_Item(currentSVGgroupOfRowXandBelow);currentSVGgroupOfRowXandBelowProgramaticDataStorage._type="currentSVGgroupOfRowXandBelow";currentSVGgroupOfRowXandBelowProgramaticDataStorage._attachedTo=currentSVGgroupOfRowXandBelow;rowOffsetMainArea=1}this.precomputeValuesOnCreateForMainRows(outputRows);var rowCount=0;if(this.configDisplayOptions.createCombinedLineOnly!==true){rowCount=outputRows.length;for(var rowIdx=0;rowIdx0&&(rowIdx%this.GLOBALS.rowsPerGroup===0)){var nextGroupOfRowsSVGgroup=this.GLOBALS.masonViewerSVG.group();this.setupGroupOfRows(nextGroupOfRowsSVGgroup);var nextGroupOfRowsSVGgroupProgramaticStorage=this.getProgramaticDataStorageFromSVG_js_Item(nextGroupOfRowsSVGgroup);currentGroupOfRowsSVGgroup.add(nextGroupOfRowsSVGgroup);currentGroupOfRowsSVGgroupProgramaticStorage.setNextProgramaticDataStorageGroupOfRows(nextGroupOfRowsSVGgroupProgramaticStorage);currentGroupOfRowsSVGgroup=nextGroupOfRowsSVGgroup;currentGroupOfRowsSVGgroupProgramaticStorage=nextGroupOfRowsSVGgroupProgramaticStorage;currentGroupOfRowsSVGgroup.add(nextSVGgroupOfRowXandBelow);currentGroupOfRowsSVGgroupProgramaticStorage.setFirstOutputRowSVGGroup(nextSVGgroupOfRowXandBelow)}else{currentSVGgroupOfRowXandBelow.add(nextSVGgroupOfRowXandBelow);currentSVGgroupOfRowXandBelowProgramaticDataStorage.setGroupToMoveForExpansion(nextSVGgroupOfRowXandBelow)}currentSVGgroupOfRowXandBelow=nextSVGgroupOfRowXandBelow}}this.addFullHeightLines();this.addBottomLineAndBottomScale(currentSVGgroupOfRowXandBelow,rowCount);this.addTopLine(SVGrootGroupInsideBoundingBox)};MasonViewerPerInstanceRenderOnPage.prototype.addTopLine=function(currentSVGgroupOfRowXandBelow){var topLine=this.GLOBALS.masonViewerSVG.line(this.GLOBALS.leftLineX-0.5,this.configDisplayOptions.TOP_ROW_OFFSET_FROM_TOP_OF_IMAGE,this.GLOBALS.rightLineX+0.5,this.configDisplayOptions.TOP_ROW_OFFSET_FROM_TOP_OF_IMAGE).stroke({color:this.configDisplayOptions.BORDER_COLOR,width:this.configDisplayOptions.BORDER_WIDTH});currentSVGgroupOfRowXandBelow.add(topLine)};MasonViewerPerInstanceRenderOnPage.prototype.addBottomLineAndBottomScale=function(currentSVGgroupOfRowXandBelow,rowCount){var bottomOfGrid=(rowCount+1)*this.configDisplayOptions.ROW_HEIGHT;if(rowCount<=1||this.configDisplayOptions.skipCreateCombinedLine){bottomOfGrid=(rowCount)*this.configDisplayOptions.ROW_HEIGHT}if(this.configDisplayOptions.createCombinedLineOnly){bottomOfGrid=(rowCount+1)*this.configDisplayOptions.ROW_HEIGHT}var leftScaleTextSVG=this.GLOBALS.masonViewerSVG.text("1");var textY=(bottomOfGrid)+(this.configDisplayOptions.ROW_HEIGHT/2);textY=textY+this.configDisplayOptions.TOP_ROW_OFFSET_FROM_TOP_OF_IMAGE;this.setSVGTextPosition({textSVG:leftScaleTextSVG,x:this.GLOBALS.leftLineX,y:textY});var rightScaleValue=this.constructorParams.requestParams.inputData.maxSequenceLength+"";var rightScaleTextSVG=this.GLOBALS.masonViewerSVG.text(rightScaleValue);this.clearStyleAnd_dy_OnSVGtextItem(rightScaleTextSVG);var textY=(bottomOfGrid)+(this.configDisplayOptions.ROW_HEIGHT/2);textY=textY+this.configDisplayOptions.TOP_ROW_OFFSET_FROM_TOP_OF_IMAGE;this.setSVGTextPosition({textSVG:rightScaleTextSVG,x:this.GLOBALS.rightLineX,y:textY,otherAttrsToSet:[{attrName:"text-anchor",attrValue:"end"}]});var bottomLine=this.GLOBALS.masonViewerSVG.line(this.GLOBALS.leftLineX-0.5,(bottomOfGrid)+this.configDisplayOptions.TOP_ROW_OFFSET_FROM_TOP_OF_IMAGE,this.GLOBALS.rightLineX+0.5,(bottomOfGrid)+this.configDisplayOptions.TOP_ROW_OFFSET_FROM_TOP_OF_IMAGE).stroke({color:this.configDisplayOptions.BORDER_COLOR,width:this.configDisplayOptions.BORDER_WIDTH});currentSVGgroupOfRowXandBelow.add(leftScaleTextSVG);currentSVGgroupOfRowXandBelow.add(rightScaleTextSVG);currentSVGgroupOfRowXandBelow.add(bottomLine)};MasonViewerPerInstanceRenderOnPage.prototype.resizeOverallImageLength=function(){var visibleBlocksRowCount=this.constructorParams.data.outputRows.length;if(visibleBlocksRowCount>1&&(!this.configDisplayOptions.skipCreateCombinedLine)){visibleBlocksRowCount+=1}if(this.configDisplayOptions.createCombinedLineOnly){visibleBlocksRowCount=1}var visibleRowsHeight=this.configDisplayOptions.ROW_HEIGHT*visibleBlocksRowCount;var hiddenBlocksThatAreVisibleHeight=0;for(var index=0;index0&&objectThis.constructorParams.callbackFunctionsObj.allRowsVerticalLines_callbackFunctions&&objectThis.constructorParams.callbackFunctionsObj.allRowsVerticalLines_callbackFunctions.getColorForLine){this.GLOBALS.setSVGVerticalDataFullHeightLines=this.GLOBALS.masonViewerSVG.set();for(var vertLinesAllRowsItemsIdx=0;vertLinesAllRowsItemsIdx255){throw"colorForBlock.red calculated < 0 or > 255, is = "+colorForBlockOut.red}if(colorForBlockOut.green<0||colorForBlockOut.green>255){throw"colorForBlock.green calculated < 0 or > 255, is = "+colorForBlockOut.green}if(colorForBlockOut.blue<0||colorForBlockOut.blue>255){throw"colorForBlock.blue calculated < 0 or > 255, is = "+colorForBlockOut.blue}return colorForBlockOut};MasonViewerPerInstanceRenderOnPage.prototype.getIdForSVG_js_item=function(SVG_js_item){var id=SVG_js_item.attr("id");return id};MasonViewerPerInstanceRenderOnPage.prototype.getJQueryObjForRawSVGFromSVG_js_item=function(SVG_js_item){if(SVG_js_item===undefined||SVG_js_item===null){throw"ERROR: SVG_js_item === undefined || SVG_js_item === null" }var $jQueryObj=$(SVG_js_item.node);return $jQueryObj};MasonViewerPerInstanceRenderOnPage.prototype.getSVG_js_itemForJQueryObj=function($jQueryObj){if($jQueryObj===undefined||$jQueryObj===null){throw"ERROR: $jQueryObj === undefined || $jQueryObj === null"}if($jQueryObj.length===0){throw"ERROR: $jQueryObj.length === 0"}var SVG_js_item=$jQueryObj[0].instance;return SVG_js_item};MasonViewerPerInstanceRenderOnPage.prototype.addProgramaticDataStorageGroupOfRowsToJQueryItem=function($item){var programaticDataStorageGroupOfRows=new ProgramaticDataStorageGroupOfRows();$item.data(MasonViewerPerInstanceRenderOnPage.prototype.CONSTANTS.JQUERY_DATA_LABELS.JQUERY_DATA_LABEL_PROGRAMATIC,programaticDataStorageGroupOfRows);programaticDataStorageGroupOfRows.$item=$item;return programaticDataStorageGroupOfRows};MasonViewerPerInstanceRenderOnPage.prototype.getProgramaticDataStorageGroupOfRowsFromJQueryItem=function($item){var programaticDataStorageGroupOfRows=$item.data(MasonViewerPerInstanceRenderOnPage.prototype.CONSTANTS.JQUERY_DATA_LABELS.JQUERY_DATA_LABEL_PROGRAMATIC);if(programaticDataStorageGroupOfRows===undefined){}return programaticDataStorageGroupOfRows};MasonViewerPerInstanceRenderOnPage.prototype.addProgramaticDataStorageGroupOfRowsToSVG_js_Item=function(SVGitem){var $jQueryItem=this.getJQueryObjForRawSVGFromSVG_js_item(SVGitem);return this.addProgramaticDataStorageGroupOfRowsToJQueryItem($jQueryItem)};MasonViewerPerInstanceRenderOnPage.prototype.getProgramaticDataStorageGroupOfRowsFromSVG_js_Item=function(SVGitem){var $jQueryItem=this.getJQueryObjForRawSVGFromSVG_js_item(SVGitem);var programaticDataStorageGroupOfRows=this.getProgramaticDataStorageGroupOfRowsFromJQueryItem($jQueryItem);return programaticDataStorageGroupOfRows};MasonViewerPerInstanceRenderOnPage.prototype.addProgramaticDataStorageToJQueryItem=function($item){var programaticDataStorage=new ProgramaticDataStorage();$item.data(MasonViewerPerInstanceRenderOnPage.prototype.CONSTANTS.JQUERY_DATA_LABELS.JQUERY_DATA_LABEL_PROGRAMATIC,programaticDataStorage);programaticDataStorage.$item=$item;return programaticDataStorage};MasonViewerPerInstanceRenderOnPage.prototype.getProgramaticDataStorageFromJQueryItem=function($item){var programaticDataStorage=$item.data(MasonViewerPerInstanceRenderOnPage.prototype.CONSTANTS.JQUERY_DATA_LABELS.JQUERY_DATA_LABEL_PROGRAMATIC);if(programaticDataStorage===undefined){}return programaticDataStorage};MasonViewerPerInstanceRenderOnPage.prototype.addProgramaticDataStorageToSVG_js_Item=function(SVGitem){var $jQueryItem=this.getJQueryObjForRawSVGFromSVG_js_item(SVGitem);return this.addProgramaticDataStorageToJQueryItem($jQueryItem)};MasonViewerPerInstanceRenderOnPage.prototype.getProgramaticDataStorageFromSVG_js_Item=function(SVGitem){var $jQueryItem=this.getJQueryObjForRawSVGFromSVG_js_item(SVGitem);var programaticDataStorage=this.getProgramaticDataStorageFromJQueryItem($jQueryItem);return programaticDataStorage};MasonViewerPerInstanceRenderOnPage.prototype.set_class_directly_OnSVGItem_using_jQuery=function(SVGItem,classValue){var $SVGItem=this.getJQueryObjForRawSVGFromSVG_js_item(SVGItem);$SVGItem.attr("class",classValue)};MasonViewerPerInstanceRenderOnPage.prototype.set_attr_directly_OnSVGtextItem_using_jQuery=function(SVGtextItem,attrName,attrValue){var $SVGtextItem=this.getJQueryObjForRawSVGFromSVG_js_item(SVGtextItem);$SVGtextItem.attr(attrName,attrValue);var $tspanChild=$SVGtextItem.children("tspan");$tspanChild.attr(attrName,attrValue)};MasonViewerPerInstanceRenderOnPage.prototype.clearStyleAnd_dy_OnSVGtextItem=function(SVGtextItem){var $SVGtextItem=this.getJQueryObjForRawSVGFromSVG_js_item(SVGtextItem);$SVGtextItem.attr("style","");$SVGtextItem.attr("dy","");var $tspanChild=$SVGtextItem.children("tspan");$tspanChild.attr("style","");$tspanChild.attr("dy","")};MasonViewerPerInstanceRenderOnPage.prototype.attachToolTipToJqueryHtmlNode=function($htmlNode,getTooltipTextFcn,callbackFunctions){$htmlNode.mouseenter(function(eventObject){var text=getTooltipTextFcn();Tip(text,DELAY,0);if(callbackFunctions&&callbackFunctions.mouseenter){callbackFunctions.mouseenter(this)}});$htmlNode.mouseleave(function(eventObject){UnTip();if(callbackFunctions&&callbackFunctions.mouseleave){callbackFunctions.mouseleave(this)}})};MasonViewerPerInstanceRenderOnPage.prototype.attachMouseOverVerticalLine=function(params){var verticalLineSVG=params.verticalLineSVG;var lineData=params.lineData;var callbackFunctions=params.callbackFunctions;var $verticalLineSVG=this.getJQueryObjForRawSVGFromSVG_js_item(verticalLineSVG);var getToolTextParams={vertLineData:lineData.vertLineData,linePos:lineData.linePos,callbackDataStorage:lineData.callbackDataStorage};this.attachToolTipToJqueryHtmlNode($verticalLineSVG,function(tooltip,node){var tooltipHTML=callbackFunctions.getLinesToolTipText(getToolTextParams);$(tooltip).html(tooltipHTML);return tooltipHTML})};MasonViewerPerInstanceRenderOnPage.prototype.get$groupOfRowsFor$currentElement=function($currentElement){var groupOfRowsSelector="g."+MasonViewerPerInstanceRenderOnPage.prototype.CONSTANTS.CLASSES.PROT_COV_VIEWER_GROUP_OR_ROWS;var $groupOfRows=$currentElement.parent().closest(groupOfRowsSelector);if($groupOfRows.length===0){throw"Unable to find group of rows element using selector '"+groupOfRowsSelector+"'."}return $groupOfRows};MasonViewerPerInstanceRenderOnPage.prototype.get$rowMainGroupFor$currentElement=function($currentElement){var rowMainGroupSelector="g."+MasonViewerPerInstanceRenderOnPage.prototype.CONSTANTS.CLASSES.PROT_COV_VIEWER_GROUP_ROW_MAIN;var $rowMainGroup=$currentElement.parent().closest(rowMainGroupSelector);if($rowMainGroup.length===0){throw"Unable to find main group element using selector '"+rowMainGroupSelector+"'."}return $rowMainGroup};MasonViewerPerInstanceRenderOnPage.prototype.attachClickShowHideToggleHiddenBlocksRow=function(SVGObject){var objectThis=this;var $SVGObject=this.getJQueryObjForRawSVGFromSVG_js_item(SVGObject);$SVGObject.click(function(event,ui){objectThis.clickShowHideToggleHiddenBlocksRow(event,ui,this) })};MasonViewerPerInstanceRenderOnPage.prototype.setSVGTextPosition=function(setSVGTextPositionParams){var textSVG=setSVGTextPositionParams.textSVG;var x=setSVGTextPositionParams.x;var y=setSVGTextPositionParams.y;var otherAttrsToSet=setSVGTextPositionParams.otherAttrsToSet;var additionalStyle=setSVGTextPositionParams.additionalStyle;if(additionalStyle===undefined||additionalStyle===null){additionalStyle=""}textSVG.move(x,y);this.set_attr_directly_OnSVGtextItem_using_jQuery(textSVG,"dy",".35em");this.set_attr_directly_OnSVGtextItem_using_jQuery(textSVG,"style","font-size:"+this.configDisplayOptions.LABEL_FONT_SIZE+"px;font-family:Helvetica, Arial, sans-serif"+additionalStyle);if(otherAttrsToSet!==undefined&&otherAttrsToSet!==null&&otherAttrsToSet instanceof Array&&otherAttrsToSet.length>0){for(var otherAttrsIdx=0;otherAttrsIdx0){var colorForBlock=colorAndSize.colorForBlock;var fillColor=this.convertBlockColorTo_SVGJS_FillColor(colorForBlock);var rectWidth=sizeZeroToOne*this.configDisplayOptions.ROW_TOTALS_BAR_RIGHT_MAX_WIDTH;if(rectWidth(blockItemInList.blockEndPositionPixel)){addedToList=true;hiddenBlockRow.push(blockItem);break}}if(!addedToList){var hiddenBlockRow_NewRow=[];hiddenBlockRow_NewRow.push(blockItem);hiddenBlockRows.push(hiddenBlockRow_NewRow)}prevEndsLastEntry++;prevEnds[prevEndsLastEntry]=blockItem.blockEndPos;prevEndsScaled[prevEndsLastEntry]=endPixel}return hiddenBlockRows};MasonViewerPerInstanceRenderOnPage.prototype.processHiddenBlocksForRow=function(outputRow,currentSVGgroupOfRowXandBelow,currentSVGgroupOfRowXandBelowProgramaticDataStorage,rowOffset){var objectThis=this;if(!objectThis.constructorParams.callbackFunctionsObj.mainRowsBlocks_callbackFunctions||!objectThis.constructorParams.callbackFunctionsObj.mainRowsBlocks_callbackFunctions.precomputeValuesOnCreate){throw"callback function mainRowsBlocks_callbackFunctions.precomputeValuesOnCreate is missing"}var groupOfHiddenBlocksForRow=this.GLOBALS.masonViewerSVG.group();groupOfHiddenBlocksForRow.attr("label","groupOfHiddenBlocksForRow");currentSVGgroupOfRowXandBelow.add(groupOfHiddenBlocksForRow);currentSVGgroupOfRowXandBelowProgramaticDataStorage.setHiddenBlocksForRowSet(groupOfHiddenBlocksForRow);var hiddenBlockRows=this.getHiddenBlocksForRow(outputRow);var hiddenBlocksRowsHeight=(hiddenBlockRows.length-1)*this.configDisplayOptions.ROW_HEIGHT;currentSVGgroupOfRowXandBelowProgramaticDataStorage.setHiddenBlocksHeight(hiddenBlocksRowsHeight);var boxUnderHeight=hiddenBlocksRowsHeight+this.configDisplayOptions.ROW_HEIGHT;this.addHiddenBlocksBoxUnderEachRowForMouseOver(boxUnderHeight,groupOfHiddenBlocksForRow,currentSVGgroupOfRowXandBelowProgramaticDataStorage,rowOffset);for(var hiddenBlockRowIdx=0;hiddenBlockRowIdx