{"version":3,"sources":["../js/SavedCalipers.js"],"names":["g_oSavedCalipers","SavedCalipers","this","g_iOriginScroll","g_iCurMeas","g_oSaveIconWht","Image","src","g_oRedrawData","prototype","CaliperDrawData","type","artworkViewer","annotationViewer","canvasContext","canvasWidth","canvasHeight","beginPointX","beginPointY","coordDistanceX","coordDistanceY","measurement","measurementText","fakeClick","oArtworkViewer","oAnnotationViewer","beginPoint_x","beginPoint_y","coordinateDistance_x","coordinateDistance_y","szMeasurementText","ClearSavedMeasurementsDiv","$","empty","css","CaliperMeasurementOptionHoverLeave","event","relatedTarget","target","id","contains","TechToolsHoverLeave","CaliperMeasurementOptionHover","PopulateCaliperMeasurementsDiv","swipe","swipeStatus","e","phase","dir","dis","HandleSwipe","allowPageScroll","selector","g_oTechTools","g_eMeasurementTypes","HORIZONTAL","offset","offsetTop","g_oSettings","c_iSkinType","parentPadding","replace","DrawSaveIcon","AnnotationContext","Coords","size","GetHandleSize","GetDrawOffset","drawCoords","GetDrawCoords","setTransform","DrawSaveIconHandle","HandleHover","CanvasContext","IsEventOnHandle","g_oAnnotations","g_szPrevCursorStyle","TryHandleClick","SaveCurrentDrawData","SaveMeasurementHandleClickHandler","StoreEvent","StoreDrawPoints","bpX","bpY","GetLeftmostPoint","c","getClickCoords","g_oViewer","g_oArtworkViewer","Math","min","Type","Measurement","d","CollateCaliperRedrawMethodParams","TypeIsHorizontal","redrawInPlace","SelectivelyShowCaliperFlexArrows","g_oUserDetails","SavedHorizontalMeasurements","length","ShowCaliperFlexArrow","HideCaliperFlexArrow","SavedVerticalMeasurements","VERTICAL","removeStyle","prop","CaliperEventsBound","element","eventType","getBoundEvents","some","x","namespace","RebindCaliperRedrawEvent","off","isHorizontal","g_iSelectedMeasurementType","curMeas","distToDraw","GetScaledDistance","CaliperMeasurePointerUp","g_oAnnotationViewer","g_oContext","calculateCentralXCoordinate","g_oCanvas","width","height","calculateCentralYCoordinate","FormatMeasurement","MeasurementAlreadyExists","list","MeasurementExists","PopulateSavedMeasurementsDiv","i","append","num","index","FormatExactMeasurement","BindMeasurementClickEvents","tap","SavedMeasurementClick","stopPropagation","SavedMeasurementDeleteClick","GetSelectedMeasurement","ChangeSelectedCaliperToolType","DrawAndBindCaliperEvents","g_oCompareMode","eCompareMode","SideBySide","SideBySideDiff","g_oCompare","g_oCompareViewer","g_oGreenlightMessages","displayConfirmBubble","c_szDeleteConfirmation","g_iActiveBubbleId","click","GetElementId","DeleteMeasurement","DeleteHandler","data","CaliperRedrawCaller","BindDraggableCaliperMeasurementEvent","changeCanvasFunction","on","slideUp","toolTypeChange","direction","distance","fn","directions","UP","DOWN","scrollElement","scrollTop","coords","HandleCoords","ClickIsOnHandle","szMeas","g_oUserSettings","UseMetricUnits","toFixed","c_iDPI","handlecoords","isPointInPath","s","displayWarningBubble","c_szMeasurementExists","SaveMeasurement","oJSON","SessionId","g_szSessionId","UserId","Value","ajax","url","JSON","stringify","contentType","dataType","success","response","SaveMeasurement_CH","failure","error","displayErrorBubble","c_szSaveFailure","Success","displaySuccessBubble","c_szSaveSuccess","sort","AscendingOrder","AddMeasurementToList","DeleteMeasurement_CH","c_szDeleteFailure","c_szDeleteSuccess","indexOf","splice","RemoveMeasurement","scaledMeasurement","g_oAnnotationCanvas","GetMeasurement","GetExactMeasurement","round","artworkViewerImage","g_oaImages","artScaleFactor","ImageWidth","g_iScaledImageWidth","zoomScaleFactor","g_iZoomLevel","g_iOriginalZoomLevel","WidthResolution","HeightResolution","c_dMeasurementFactorMetric","Size","DrawImage","DrawSaveIconBase","DrawSaveIconImage","save","beginPath","fillStyle","strokeStyle","rect","closePath","fill","drawImage","window"],"mappings":"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","file":"SavedCalipers-7bb95daa13.js","sourcesContent":["/*\r\n* Copyright (c) 2020 SGS Europe. All rights reserved.\r\n*\r\n* This program is the CONFIDENTIAL and PROPRIETARY property of 2018 SGS Europe.\r\n* Any unauthorised use, reproduction, or transfer of this program is strictly\r\n* prohibited.\r\n*\r\n* File Name:\tSavedCalipers.js\r\n*\r\n* Description:\tJavaScript code for logic relating to the saved calliper measurements.\r\n*\r\n* History:\t\t28-JAN-20\tR Pavolas\tInitial implementation\r\n*\r\n*/\r\n\r\nvar g_oSavedCalipers = {};\r\n\r\n(function () {\r\n\t\"use strict\";\r\n\r\n\tfunction SavedCalipers() {\r\n\t\tthis.g_iOriginScroll = 0;\r\n\t\tthis.g_iCurMeas = 0;\r\n\t}\r\n\r\n\t// Private\r\n\tvar g_oSaveIconWht = new Image();\r\n\tg_oSaveIconWht.src = \"img/Save_wht_24.png\";\r\n\tvar c_iHandleSize = 20;\r\n\tvar g_oRedrawData = {};\r\n\r\n\t/**\r\n\t * Returns an object containing all the parameters needed to call g_oTechTools.CaliperRedraw(...)\r\n\t * @param {number} type Enum for what type of calliper, Horizontal or Vertical\r\n\t * @param {object} artworkViewer The artwork viewer\r\n\t * @param {object} annotationViewer The annotation viewer\r\n\t * @param {object} canvasContext The 2dCanvasRenderingContext object\r\n\t * @param {number} canvasWidth Width of the canvas\r\n\t * @param {number} canvasHeight Height of the canvas\r\n\t * @param {number} beginPointX Where the method will think the mouse was clicked, this determines where the measurement size is shown\r\n\t * @param {number} beginPointY Where the method will think the mouse was clicked, this determines where the measurement size is shown\r\n\t * @param {number} coordDistanceX How much the mouse was dragged alongside the x axis\r\n\t * @param {number} coordDistanceY How much the mouse was dragged alongside the y axis\r\n\t * @param {number} measurement The measurement itself\r\n\t * @param {string} measurementText The measurement as a string alongside the suffix\r\n\t * @param {bool} fakeClick Whether we'll be faking a click with our own coordinates\r\n\t * @returns {object} Object containing all the parameters needed to call g_oTechTools.CaliperRedraw(...)\r\n\t */\r\n\tSavedCalipers.prototype.CaliperDrawData = function (type, artworkViewer, annotationViewer, canvasContext, canvasWidth, canvasHeight, beginPointX, beginPointY, coordDistanceX, coordDistanceY, measurement, measurementText, fakeClick) {\r\n\t\treturn {\r\n\t\t\ttype: type,\r\n\t\t\toArtworkViewer: artworkViewer,\r\n\t\t\toAnnotationViewer: annotationViewer,\r\n\t\t\tcanvasContext: canvasContext,\r\n\t\t\tcanvasWidth: canvasWidth,\r\n\t\t\tcanvasHeight: canvasHeight,\r\n\t\t\tbeginPoint_x: beginPointX,\r\n\t\t\tbeginPoint_y: beginPointY,\r\n\t\t\tcoordinateDistance_x: coordDistanceX,\r\n\t\t\tcoordinateDistance_y: coordDistanceY,\r\n\t\t\tmeasurement: measurement,\r\n\t\t\tszMeasurementText: measurementText,\r\n\t\t\tfakeClick: fakeClick\r\n\t\t};\r\n\t};\r\n\r\n\t/**\r\n\t * Clears the savedMeasurementContainer\r\n\t */\r\n\tSavedCalipers.prototype.ClearSavedMeasurementsDiv = function () {\r\n\t\t$(\"#savedMeasurementContainer\").empty();\r\n\t\t$(\"#savedMeasurementContainer\").css(\"border\", \"none\");\r\n\t};\r\n\r\n\t/**\r\n\t * Event for when the calliper measurement tech tool is hovered away from\r\n\t * @param {object} event The triggering event\r\n\t */\r\n\tSavedCalipers.prototype.CaliperMeasurementOptionHoverLeave = function (event) {\r\n\t\tif (!event || !event.relatedTarget) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar target = event.relatedTarget.id;\r\n\t\tif (!target.contains(\"savedMeasurement\") && target !== \"techToolsDrodown\" && target !== \"divTechToolsDropDown\") {\r\n\t\t\tthis.ClearSavedMeasurementsDiv();\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Event for when the tech tools drop-down is hovered away from\r\n\t * @param {object} event The triggering event\r\n\t */\r\n\tSavedCalipers.prototype.TechToolsHoverLeave = function (event) {\r\n\t\tif (!event || !event.relatedTarget) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar target = event.relatedTarget.id;\r\n\t\tif (!target.contains(\"savedMeasurement\") && target !== \"divTechToolsDropDown\") {\r\n\t\t\tthis.ClearSavedMeasurementsDiv();\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Event for when a calliper measurement tool is hovered over\r\n\t * @param {number} type Enum type of what type of tool is hovered over\r\n\t */\r\n\tSavedCalipers.prototype.CaliperMeasurementOptionHover = function (type) {\r\n\t\tthis.ClearSavedMeasurementsDiv();\r\n\t\tPopulateCaliperMeasurementsDiv(type);\r\n\t\t$(\"#savedMeasurementContainer\").swipe('destroy');\r\n\t\t$(\"#savedMeasurementContainer\").swipe({\r\n\t\t\tswipeStatus: function (e, phase, dir, dis) {\r\n\t\t\t\tHandleSwipe(e, phase, dir, dis);\r\n\t\t\t},\r\n\t\t\tallowPageScroll: \"vertical\"\r\n\t\t});\r\n\t\tvar selector = type === g_oTechTools.g_eMeasurementTypes.HORIZONTAL ? \"#divTechToolsHorizontal\" : \"#divTechToolsVertical\";\r\n\t\tvar offset = $(selector)[0].offsetTop;\r\n\t\tif (g_oSettings.c_iSkinType === 1) {\r\n\t\t\toffset--;\r\n\t\t}\r\n\t\tvar parentPadding = +$(\"#divTechToolsDropDown\").css(\"padding-top\").replace(/[a-z]/gi, '');\r\n\t\t$(\"#savedMeasurementContainer\").css(\"margin-top\", offset - parentPadding + \"px\");\r\n\t};\r\n\r\n\t/**\r\n\t * Draws the save measurement handle similar to how annotation handles are drawn.\r\n\t * @param {object} AnnotationContext The 2DContext object\r\n\t * @param {number[]} Coords The coordinates to draw to\r\n\t * @param {number} type Enum of the type of measurement\r\n\t * @param {numer} measurement The measurement\r\n\t */\r\n\tSavedCalipers.prototype.DrawSaveIcon = function (AnnotationContext, Coords, type, measurement) {\r\n\t\tvar size = GetHandleSize();\r\n\t\tvar offset = GetDrawOffset(measurement);\r\n\t\tvar drawCoords = GetDrawCoords(Coords, type, size[0], offset);\r\n\r\n\t\tAnnotationContext.setTransform(1, 0, 0, 1, 0, 0);\r\n\t\tDrawSaveIconHandle(AnnotationContext, drawCoords, size, true);\r\n\t};\r\n\r\n\t/**\r\n\t * Chances the cursor based on whether it's hovering over the handle or not\r\n\t * @param {object} e The event\r\n\t * @param {object} CanvasContext The 2DContext object\r\n\t * @param {number[]} Coords The handle coordinates\r\n\t * @param {number} type Enum of the type of measurement\r\n\t * @param {number} measurement The measurement itself\r\n\t */\r\n\tSavedCalipers.prototype.HandleHover = function (e, CanvasContext, Coords, type, measurement) {\r\n\t\tif (IsEventOnHandle(e, CanvasContext, Coords, type, measurement)) {\r\n\t\t\t$('#AnnotationViewer').css('cursor', 'pointer');\r\n\t\t}\r\n\t\telse {\r\n\t\t\t$('#AnnotationViewer').css('cursor', g_oAnnotations.g_szPrevCursorStyle);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Checks whether the handle was clicked and handles it.\r\n\t * @param {object} e The event\r\n\t * @param {object} CanvasContext The 2DContext object\r\n\t * @param {number[]} Coords The coordinates where the handle is drawn\r\n\t * @param {number} type Enum of the type of measurement the handle is drawn for\r\n\t * @param {number} measurement The actual measurement itself\r\n\t * @returns {boolean} True if the click was on a handle.\r\n\t */\r\n\tSavedCalipers.prototype.TryHandleClick = function (e, CanvasContext, Coords, type, measurement) {\r\n\t\tif (IsEventOnHandle(e, CanvasContext, Coords, type, measurement)) {\r\n\t\t\tSaveCurrentDrawData(type, measurement);\r\n\t\t\tSaveMeasurementHandleClickHandler(type, measurement);\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tg_oRedrawData = {};\r\n\t\treturn false;\r\n\t};\r\n\r\n\t/**\r\n\t * Saves the event\r\n\t * @param {object} e event to save\r\n\t */\r\n\tSavedCalipers.prototype.StoreEvent = function (e) {\r\n\t\tg_oRedrawData.e = e;\r\n\t};\r\n\r\n\t/**\r\n\t * Saves the top-left-most coordinates\r\n\t * @param {number} beginPoint_x x coordinate\r\n\t * @param {number} beginPoint_y y coordinate\r\n\t */\r\n\tSavedCalipers.prototype.StoreDrawPoints = function (beginPoint_x, beginPoint_y){\r\n\t\tg_oRedrawData.bpX = beginPoint_x;\r\n\t\tg_oRedrawData.bpY = beginPoint_y;\r\n\t};\r\n\r\n\t/**\r\n\t * Gets the leftmost point comparing the stored coordinates to the event coordinates\r\n\t * @param {any} event The event to check against\r\n\t * @returns {number[]} Leftmost coordinates\r\n\t */\r\n\tSavedCalipers.prototype.GetLeftmostPoint = function (event) {\r\n\t\tvar c = getClickCoords(event, g_oViewer.g_oArtworkViewer);\r\n\t\tvar x = Math.min(g_oRedrawData.bpX, c[0]);\r\n\t\tvar y = Math.min(g_oRedrawData.bpY, c[1]);\r\n\t\treturn [x, y];\r\n\t};\r\n\r\n\t/**\r\n\t * Saves all the calliper redraw data\r\n\t * @param {number} Type Enum of the type of measurement\r\n\t * @param {number} Measurement The measurement itself\r\n\t */\r\n\tvar SaveCurrentDrawData = function (Type, Measurement) {\r\n\t\tg_oRedrawData.d = CollateCaliperRedrawMethodParams(g_oViewer.g_oArtworkViewer, Measurement, TypeIsHorizontal(Type));\r\n\r\n\t\t// Overwrite the data with our own\r\n\t\tg_oRedrawData.d.beginPoint_x = g_oRedrawData.bpX;\r\n\t\tg_oRedrawData.d.beginPoint_y = g_oRedrawData.bpY;\r\n\t\tg_oRedrawData.d.redrawInPlace = true;\r\n\t};\r\n\r\n\t/**\r\n\t * Shows or hides the arrows on the calliper tool div based on whether there are measurements.\r\n\t */\r\n\tSavedCalipers.prototype.SelectivelyShowCaliperFlexArrows = function () {\r\n\t\tif (g_oUserDetails.SavedHorizontalMeasurements.length > 0) {\r\n\t\t\tShowCaliperFlexArrow(g_oTechTools.g_eMeasurementTypes.HORIZONTAL);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tHideCaliperFlexArrow(g_oTechTools.g_eMeasurementTypes.HORIZONTAL);\r\n\t\t}\r\n\r\n\t\tif (g_oUserDetails.SavedVerticalMeasurements.length > 0) {\r\n\t\t\tShowCaliperFlexArrow(g_oTechTools.g_eMeasurementTypes.VERTICAL);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tHideCaliperFlexArrow(g_oTechTools.g_eMeasurementTypes.VERTICAL);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Shows the right arrow in the calliper tool div by removing any styling\r\n\t * @param {number} type Enum of the type of measurement to show for\r\n\t */\r\n\tvar ShowCaliperFlexArrow = function (type) {\r\n\t\tvar selector = TypeIsHorizontal(type) ? \"#divTechToolsHorizontal\" : \"#divTechToolsVertical\";\r\n\t\t$(selector + \" .rightArrowFlex\").removeStyle();\r\n\t};\r\n\r\n\t/**\r\n\t * Hides the right arrow in the calliper tool div by making it transparent\r\n\t * @param {number} type Enum of the type of measurement to hide for\r\n\t */\r\n\tvar HideCaliperFlexArrow = function (type) {\r\n\t\tvar selector = TypeIsHorizontal(type) ? \"#divTechToolsHorizontal\" : \"#divTechToolsVertical\";\r\n\t\t$(selector + \" .rightArrowFlex\").prop(\"style\")[\"border-left-color\"] = \"transparent\";\r\n\t};\r\n\r\n\t/**\r\n\t * Checks whether the given type is a horizontal calliper\r\n\t * @param {number} type Enum of the type\r\n\t * @returns {bool} Whether the given type is a horizontal calliper\r\n\t */\r\n\tvar TypeIsHorizontal = function (type) {\r\n\t\treturn type === g_oTechTools.g_eMeasurementTypes.HORIZONTAL;\r\n\t};\r\n\r\n\t/**\r\n\t * Handler for when the deletion of a measurement is confirmed\r\n\t * @param {object} element The original element for which the delete icon was clicked.\r\n\t * @param {number} type Enum of the type of measurement it was.\r\n\t */\r\n\tvar DeleteHandler = function (element, type) {\r\n\t\tvar list = type === g_oTechTools.g_eMeasurementTypes.HORIZONTAL ? g_oUserDetails.SavedHorizontalMeasurements : g_oUserDetails.SavedVerticalMeasurements;\r\n\t\tvar index = +GetElementId(element).replace(/[a-z]/gi, '');\r\n\t\tvar measurement = list[index];\r\n\r\n\t\tDeleteMeasurement(list, type, measurement);\r\n\t};\r\n\r\n\t/**\r\n\t * Returns whether calliper events are currently bound on the given element\r\n\t * @param {string|object} element Element to check\r\n\t * @param {string} eventType Type of event to check\r\n\t * @returns {bool} True if calliper redraw events are currently bound on the element.\r\n\t */\r\n\tSavedCalipers.prototype.CaliperEventsBound = function (element, eventType) {\r\n\t\treturn $(element).getBoundEvents(eventType).some(function (x) { return x.namespace === \"caliperdraw\"; });\r\n\t};\r\n\r\n\t/**\r\n\t * Rebinds the calliper redraw events with correct data.\r\n\t */\r\n\tSavedCalipers.prototype.RebindCaliperRedrawEvent = function () {\r\n\t\t$(\"#AnnotationViewer\").off(\"pointerdown\");\r\n\t\t$(\"#AnnotationViewer\").off(\"pointermove\");\r\n\t\t$(\"#AnnotationViewer\").off(\"pointerup\");\r\n\r\n\t\tvar isHorizontal = TypeIsHorizontal(g_oTechTools.g_iSelectedMeasurementType);\r\n\t\tvar artworkViewer = g_oViewer.g_oArtworkViewer;\r\n\t\tvar curMeas = this.g_iCurMeas;\r\n\t\tvar distToDraw = GetScaledDistance(artworkViewer, curMeas, isHorizontal);\r\n\r\n\t\tg_oTechTools.CaliperMeasurePointerUp(\r\n\t\t\tartworkViewer,\r\n\t\t\tg_oViewer.g_oAnnotationViewer,\r\n\t\t\tg_oViewer.g_oAnnotationViewer.g_oContext,\r\n\t\t\tisHorizontal ? calculateCentralXCoordinate(artworkViewer.g_oCanvas.width) : artworkViewer.g_oCanvas.width / 2,\r\n\t\t\tisHorizontal ? artworkViewer.g_oCanvas.height / 2 : calculateCentralYCoordinate(artworkViewer.g_oCanvas.height),\r\n\t\t\tcurMeas,\r\n\t\t\tdistToDraw,\r\n\t\t\tdistToDraw,\r\n\t\t\tg_oViewer.g_oAnnotationViewer.g_oCanvas.width,\r\n\t\t\tg_oViewer.g_oAnnotationViewer.g_oCanvas.height,\r\n\t\t\tFormatMeasurement(curMeas),\r\n\t\t\tg_oTechTools.g_iSelectedMeasurementType\r\n\t\t);\r\n\t};\r\n\r\n\t/**\r\n\t * Checks whether the measurement already exists\r\n\t * @param {number} type Enum of the type of measurement\r\n\t * @param {number} measurement The measurement\r\n\t * @returns {bool} True if it already exists\r\n\t */\r\n\tSavedCalipers.prototype.MeasurementAlreadyExists = function (type, measurement) {\r\n\t\tvar list = type === g_oTechTools.g_eMeasurementTypes.HORIZONTAL ? g_oUserDetails.SavedHorizontalMeasurements : g_oUserDetails.SavedVerticalMeasurements;\r\n\t\treturn MeasurementExists(list, measurement);\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * Creates the html string for representing a single saved measurement entry.\r\n\t * @param {number} index Index of the entry\r\n\t * @param {number} num The measurement value\r\n\t * @returns {string} Html that can be appended\r\n\t */\r\n\tvar ConstructSavedMeasurementEntry = function (index, num) {\r\n\t\treturn \"