/* * (c) Copyright Ascensio System SIA 2010-2024 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish * street, Riga, Latvia, EU, LV-1050. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ "use strict"; (function(window, undefined){ // Import var HANDLE_EVENT_MODE_HANDLE = AscFormat.HANDLE_EVENT_MODE_HANDLE; function CheckCoordsNeedPage(x, y, pageIndex, needPageIndex, drawingDocument) { if(pageIndex === needPageIndex) return {x:x, y:y}; else { let t = drawingDocument.ConvertCoordsToAnotherPage(x,y, pageIndex, needPageIndex); return {x: t.X, y: t.Y}; } } function handleSelectedObjects(drawingObjectsController, e, x, y, group, pageIndex, bWord) { if(drawingObjectsController.isSlideShow()) { return false; } var selected_objects = group ? group.selectedObjects : drawingObjectsController.getSelectedObjects(); if (selected_objects[0] && selected_objects[0].IsComment && selected_objects[0].IsComment()) { return false; } var oCropSelection = drawingObjectsController.selection.cropSelection ? drawingObjectsController.selection.cropSelection : null; var oGeometryEditSelection = drawingObjectsController.selection.geometrySelection ? drawingObjectsController.selection.geometrySelection : null; var tx, ty, t, hit_to_handles; var ret = null; var drawing = null; if(oCropSelection && !window["IS_NATIVE_EDITOR"]) { var oCropObject = oCropSelection.getCropObject(); if(oCropObject) { if(bWord && pageIndex !== oCropSelection.selectStartPage) { t = drawingObjectsController.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, oCropSelection.selectStartPage); tx = t.X; ty = t.Y; } else { tx = x; ty = y; } hit_to_handles = oCropSelection.hitToHandles(tx, ty); if(hit_to_handles > -1) { ret = drawingObjectsController.handleHandleHit(hit_to_handles, oCropSelection, group); drawing = oCropSelection; } if(!ret) { if(oCropSelection.hitInBoundingRect(tx, ty)) { ret = drawingObjectsController.handleMoveHit(oCropSelection, e, tx, ty, group, true, oCropSelection.selectStartPage, true); } } var oldSelectedObjects; if(group) { oldSelectedObjects = group.selectedObjects; group.selectedObjects = [oCropObject]; } else { oldSelectedObjects = drawingObjectsController.selectedObjects; drawingObjectsController.selectedObjects = [oCropObject]; } if(!ret) { hit_to_handles = oCropObject.hitToHandles(tx, ty); if(hit_to_handles > -1) { ret = drawingObjectsController.handleHandleHit(hit_to_handles, oCropObject, group); drawing = oCropObject; } } if(!ret) { if(oCropObject.hitInBoundingRect(tx, ty)) { ret = drawingObjectsController.handleMoveHit(oCropObject, e, tx, ty, group, true, oCropSelection.selectStartPage, true); } } if(!ret) { if(oCropSelection.hit(tx, ty)) { ret = drawingObjectsController.handleMoveHit(oCropObject, e, tx, ty, group, true, oCropSelection.selectStartPage, true); } } if(!ret) { if(oCropObject.hit(tx, ty)) { ret = drawingObjectsController.handleMoveHit(oCropObject, e, tx, ty, group, true, oCropSelection.selectStartPage, true); } } if(group) { group.selectedObjects = oldSelectedObjects; } else { drawingObjectsController.selectedObjects = oldSelectedObjects; } } } if(!ret) { if(selected_objects.length === 1) { if(window["IS_NATIVE_EDITOR"] && AscFormat.isLeftButtonDoubleClick(e)) { if(selected_objects[0].getObjectType() === AscDFH.historyitem_type_Shape) { return null; } } if(bWord && pageIndex !== selected_objects[0].selectStartPage) { t = drawingObjectsController.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, selected_objects[0].selectStartPage); tx = t.X; ty = t.Y; } else { tx = x; ty = y; } if(selected_objects[0].canChangeAdjustments() && !oGeometryEditSelection) { var hit_to_adj = selected_objects[0].hitToAdjustment(tx, ty); if(hit_to_adj.hit) { ret = drawingObjectsController.handleAdjustmentHit(hit_to_adj, selected_objects[0], group, pageIndex); drawing = selected_objects[0]; } } } } if(!ret) { for(var i = selected_objects.length - 1; i > -1; --i) { if (selected_objects[i].isFrameChart) { continue; } if(bWord && pageIndex !== selected_objects[i].selectStartPage) { t = drawingObjectsController.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, selected_objects[i].selectStartPage); tx = t.X; ty = t.Y; } else { tx = x; ty = y; } if(selected_objects[i].getObjectType() === AscDFH.historyitem_type_ChartSpace) { ret = handleInternalChart(selected_objects[i], drawingObjectsController, e, tx, ty, group, pageIndex, bWord); if(ret) { drawing = selected_objects[i]; break; } } if(!ret) { hit_to_handles = selected_objects[i].hitToHandles(tx, ty); if(hit_to_handles > -1 && !oGeometryEditSelection) { if(window["IS_NATIVE_EDITOR"] && AscFormat.isLeftButtonDoubleClick(e)) { if(selected_objects[i].getObjectType() === AscDFH.historyitem_type_Shape) { return null; } } ret = drawingObjectsController.handleHandleHit(hit_to_handles, selected_objects[i], group); drawing = selected_objects[i]; break; } } } } if(!ret) { if(oGeometryEditSelection) { ret = oGeometryEditSelection.handle(drawingObjectsController, e, x, y); if(ret) { return ret; } } } if(!ret) { for(i = selected_objects.length - 1; i > -1; --i) { if (selected_objects[i].isFrameChart) { continue; } if(bWord && pageIndex !== selected_objects[i].selectStartPage) { t = drawingObjectsController.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, selected_objects[i].selectStartPage); tx = t.X; ty = t.Y; } else { tx = x; ty = y; } if(selected_objects[i].getObjectType() === AscDFH.historyitem_type_ChartSpace) { ret = handleInternalChart(selected_objects[i], drawingObjectsController, e, tx, ty, group, pageIndex, bWord); drawing = selected_objects[i]; } if(!ret) { if(selected_objects[i].hitInBoundingRect(tx, ty) && !oGeometryEditSelection) { if(window["IS_NATIVE_EDITOR"]) { if(selected_objects[i] === AscFormat.getTargetTextObject(drawingObjectsController)) { return null; } } if(bWord && selected_objects[i].parent && selected_objects[i].parent.Is_Inline()) ret = handleInlineHitNoText(selected_objects[i], drawingObjectsController, e, tx, ty, pageIndex, true); else ret = drawingObjectsController.handleMoveHit(selected_objects[i], e, tx, ty, group, true, selected_objects[i].selectStartPage, true); } } if(ret) { drawing = selected_objects[i]; break; } } } if(ret && drawing) { if(drawingObjectsController.handleEventMode === AscFormat.HANDLE_EVENT_MODE_CURSOR && drawingObjectsController && drawingObjectsController.drawingObjects && drawingObjectsController.drawingObjects.cSld) { if(drawing.Lock.Is_Locked()) { var MMData = new AscCommon.CMouseMoveData(); var Coords = drawingObjectsController.getDrawingDocument().ConvertCoordsToCursorWR(drawing.bounds.x, drawing.bounds.y, pageIndex, null); MMData.X_abs = Coords.X - 5; MMData.Y_abs = Coords.Y; MMData.Type = Asc.c_oAscMouseMoveDataTypes.LockedObject; MMData.UserId = drawing.Lock.Get_UserId(); MMData.HaveChanges = drawing.Lock.Have_Changes(); editor.sync_MouseMoveCallback(MMData); } } } return ret; } function handleFloatObjects(drawingObjectsController, drawingArr, e, x, y, group, pageIndex, bWord) { var ret = null, drawing; for(var i = drawingArr.length-1; i > -1; --i) { drawing = drawingArr[i]; switch(drawing.getObjectType()) { case AscDFH.historyitem_type_SlicerView: { ret = handleSlicer(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord); break; } case AscDFH.historyitem_type_Control: { ret = handleControl(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord); break; } case AscDFH.historyitem_type_Shape: case AscDFH.historyitem_type_ImageShape: case AscDFH.historyitem_type_OleObject: case AscDFH.historyitem_type_Cnx: case AscDFH.historyitem_type_LockedCanvas: // annnots case AscDFH.historyitem_type_Pdf_Annot_Ink: case AscDFH.historyitem_type_Pdf_Annot_Circle: case AscDFH.historyitem_type_Pdf_Annot_Square: case AscDFH.historyitem_type_Pdf_Annot_Line: case AscDFH.historyitem_type_Pdf_Annot_Polygon: case AscDFH.historyitem_type_Pdf_Annot_Polyline: case AscDFH.historyitem_type_Pdf_Annot_Stamp: { ret = handleShapeImage(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord); break; } case AscDFH.historyitem_type_ChartSpace: { ret = handleChart(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord); break; } case AscDFH.historyitem_type_GroupShape: case AscDFH.historyitem_type_SmartArt: case AscDFH.historyitem_type_Pdf_Annot_FreeText: { ret = handleGroup(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord); break; } case AscDFH.historyitem_type_GraphicFrame: { ret = handleFloatTable(drawing, drawingObjectsController, e, x, y, group, pageIndex); break; } case AscDFH.historyitem_type_Pdf_Annot_Text: case AscDFH.historyitem_type_Pdf_Annot_Highlight: case AscDFH.historyitem_type_Pdf_Annot_Underline: case AscDFH.historyitem_type_Pdf_Annot_Strikeout: case AscDFH.historyitem_type_Pdf_Annot_Squiggly: case AscDFH.historyitem_type_Pdf_Annot_Caret: case AscDFH.historyitem_type_Pdf_Annot_Redact: ret = handleBaseAnnot(drawing, drawingObjectsController, e, x, y, group, pageIndex); break; } if(ret) { if(drawingObjectsController.handleEventMode === AscFormat.HANDLE_EVENT_MODE_CURSOR && drawingObjectsController && drawingObjectsController.drawingObjects && drawingObjectsController.drawingObjects.cSld) { if(drawing.Lock.Is_Locked()) { var MMData = new AscCommon.CMouseMoveData(); var Coords = drawingObjectsController.getDrawingDocument().ConvertCoordsToCursorWR(drawing.bounds.x, drawing.bounds.y, pageIndex, null); MMData.X_abs = Coords.X - 5; MMData.Y_abs = Coords.Y; MMData.Type = Asc.c_oAscMouseMoveDataTypes.LockedObject; MMData.UserId = drawing.Lock.Get_UserId(); MMData.HaveChanges = drawing.Lock.Have_Changes(); editor.sync_MouseMoveCallback(MMData); } } return ret; } } return ret; } function handleBaseAnnot(annot, drawingObjectsController, e, x, y, group, pageIndex) { if (drawingObjectsController.handleEventMode != HANDLE_EVENT_MODE_HANDLE) return false; let oDoc = Asc.editor.getPDFDoc(); let oController = oDoc.GetController(); let aSelObjects = oController.selectedObjects; if (oDoc.GetActiveObject() == annot || aSelObjects.includes(annot)) { if (!annot.selected) { annot.select(drawingObjectsController, pageIndex); } aSelObjects.forEach(function(annot) { let oMoveTrack = annot.createMoveTrack(); if (oMoveTrack) { drawingObjectsController.arrPreTrackObjects.push(oMoveTrack); if (oDoc.GetActiveObject() == annot) { drawingObjectsController.changeCurrentState(new AscFormat.PreMoveState(drawingObjectsController, x, y, e.ShiftKey, e.CtrlKey, annot, true, false, false)); } } }) return true; } return false; } function handleSlicer(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { var bRet = drawing.onMouseDown(e, x, y); if(!bRet) { return handleShapeImage(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord); } else { drawingObjectsController.changeCurrentState(new AscFormat.SlicerState(drawingObjectsController, drawing)); } return bRet; } else { var oCursorInfo = drawing.getCursorInfo(e, x, y); if(oCursorInfo) { return oCursorInfo; } return handleShapeImage(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord); } } function handleSlicerInGroup(drawingObjectsController, drawing, shape, e, x, y, pageIndex, bWord) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { var bRet = shape.onMouseDown(e, x, y); if(!bRet) { return handleShapeImageInGroup(drawingObjectsController, drawing, shape, e, x, y, pageIndex, bWord); } else { drawingObjectsController.changeCurrentState(new AscFormat.SlicerState(drawingObjectsController, shape)); } return bRet; } else { var oCursorInfo = shape.getCursorInfo(e, x, y); if(oCursorInfo) { return oCursorInfo; } return handleShapeImageInGroup(drawingObjectsController, drawing, shape, e, x, y, pageIndex, bWord); } } function handleControl(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord) { if (drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { var bRet = drawing.onMouseDown(e, x, y, pageIndex, drawingObjectsController); if (!bRet) { return handleShapeImage(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord); } else { drawingObjectsController.changeCurrentState(new AscFormat.ControlState(drawingObjectsController, drawing)); } return bRet; } else { var oCursorInfo = drawing.getCursorInfo(e, x, y); if (oCursorInfo) { return oCursorInfo; } return handleShapeImage(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord); } } function handleControlInGroup(drawingObjectsController, drawing, shape, e, x, y, pageIndex, bWord) { if (drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { var bRet = shape.onMouseDown(e, x, y); if (!bRet) { return handleShapeImageInGroup(drawingObjectsController, drawing, shape, e, x, y, pageIndex, bWord); } else { drawingObjectsController.changeCurrentState(new AscFormat.ControlState(drawingObjectsController, shape)); } return bRet; } else { var oCursorInfo = shape.getCursorInfo(e, x, y); if (oCursorInfo) { return oCursorInfo; } return handleShapeImageInGroup(drawingObjectsController, drawing, shape, e, x, y, pageIndex, bWord); } } function handleShapeImage(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord) { let hit_in_inner_area = drawing.hitInInnerArea && drawing.hitInInnerArea(x, y); let hit_in_path = drawing.hitInPath && drawing.hitInPath(x, y); let hit_in_text_rect = drawing.hitInTextRect && drawing.hitInTextRect(x, y); if (drawing.group && drawing.group.IsFreeText && drawing.group.IsFreeText() && drawing.group.IsInTextBox() == false) { hit_in_text_rect = false; } else if (drawing.IsLine && drawing.IsLine()) { let oDoc = Asc.editor.getPDFDoc(); if (oDoc.GetActiveObject() != drawing) { hit_in_text_rect = false; } } if(hit_in_inner_area || hit_in_path || hit_in_text_rect) { let oCheckResult = drawingObjectsController.checkDrawingHyperlinkAndMacro(drawing, e, hit_in_text_rect, x, y, pageIndex); if(oCheckResult) { return oCheckResult; } } if(window["IS_NATIVE_EDITOR"]) { if(drawing.getObjectType() === AscDFH.historyitem_type_Shape && drawing.getDocContent && drawing.getDocContent()) { if(AscFormat.isLeftButtonDoubleClick(e) && !e.ShiftKey && !e.CtrlKey && ((drawingObjectsController.selection.groupSelection && drawingObjectsController.selection.groupSelection.selectedObjects.length === 1) || drawingObjectsController.selectedObjects.length === 1)) { if(!hit_in_text_rect && (hit_in_inner_area || hit_in_path)) { hit_in_text_rect = true; hit_in_inner_area = false; hit_in_path = false; } } } } if(!hit_in_text_rect && (hit_in_inner_area || hit_in_path)) { if(drawingObjectsController.isSlideShow()) { var sMediaFile = drawing.getMediaFileName(); if(!sMediaFile) { var oAnimPlayer = drawingObjectsController.getAnimationPlayer(); if(oAnimPlayer) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE && oAnimPlayer.onSpClick(drawing)) { return true; } } return false; } } return drawingObjectsController.handleMoveHit(drawing, e, x, y, group, false, pageIndex, bWord); } else if(hit_in_text_rect) { if(bWord/* && (!drawing.txWarpStruct || drawingObjectsController.curState.startTargetTextObject === drawing || drawing.haveSelectedDrawingInContent && drawing.haveSelectedDrawingInContent())*/) { if(drawing.getObjectType() === AscDFH.historyitem_type_Shape && drawing.isForm() && drawing.getInnerForm() && !drawing.getInnerForm().CanPlaceCursorInside()) { return drawingObjectsController.handleMoveHit(drawing, e, x, y, group, false, pageIndex, bWord); } var all_drawings = drawing.getDocContent().GetAllDrawingObjects(); var drawings2 = []; for(var i = 0; i < all_drawings.length; ++i) { drawings2.push(all_drawings[i].GraphicObj); } var ret = handleInlineObjects(drawingObjectsController, drawings2, e, x, y, pageIndex, bWord); if(ret) return ret; } if(drawingObjectsController.isSlideShow()) { if(AscFormat.fCheckObjectHyperlink(drawing,x, y)) { return true; } if(drawing.hitInInnerArea(x, y)) { var oAnimPlayer = drawingObjectsController.getAnimationPlayer(); if(oAnimPlayer) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE && oAnimPlayer.onSpClick(drawing)) { return true; } } } } var oTextObject = AscFormat.getTargetTextObject(drawingObjectsController); if(!e.CtrlKey && !e.ShiftKey || oTextObject === drawing) { return drawingObjectsController.handleTextHit(drawing, e, x, y, group, pageIndex, bWord); } else { return drawingObjectsController.handleMoveHit(drawing, e, x, y, group, false, pageIndex, bWord); } } return false; } function handleShapeImageInGroup(drawingObjectsController, drawing, shape, e, x, y, pageIndex, bWord) { if(!shape.group) return; var hit_in_inner_area = shape.hitInInnerArea && shape.hitInInnerArea(x, y); var hit_in_path = shape.hitInPath && shape.hitInPath(x, y); var hit_in_text_rect = shape.hitInTextRect && shape.hitInTextRect(x, y); if (shape.group.IsFreeText && shape.group.IsFreeText() && shape.group.IsInTextBox() == false) { hit_in_text_rect = false; } var ret; if(hit_in_inner_area || hit_in_path || hit_in_text_rect) { let oCheckResult = drawingObjectsController.checkDrawingHyperlinkAndMacro(shape, e, hit_in_text_rect, x, y, pageIndex); if(oCheckResult) { return oCheckResult; } } if(!hit_in_text_rect && (hit_in_inner_area || hit_in_path)) { if(drawingObjectsController.isSlideShow()) { var sMediaFile = drawing.getMediaFileName(); if(!sMediaFile) { return false; } } return drawingObjectsController.handleMoveHit(drawing, e, x, y, null, false, pageIndex, true); } else if(hit_in_text_rect) { if(bWord/* && (!shape.txWarpStruct || drawingObjectsController.curState.startTargetTextObject === shape || shape.haveSelectedDrawingInContent && shape.haveSelectedDrawingInContent())*/) { var all_drawings = shape.getDocContent().GetAllDrawingObjects(); var drawings2 = []; for (var i = 0; i < all_drawings.length; ++i) { drawings2.push(all_drawings[i].GraphicObj); } ret = handleInlineObjects(drawingObjectsController, drawings2, e, x, y, pageIndex, true); if (ret) return ret; } if(drawingObjectsController.isSlideShow()) { if(!AscFormat.fCheckObjectHyperlink(drawing,x, y)) { return false } } var oTextObject = AscFormat.getTargetTextObject(drawingObjectsController); if(!e.CtrlKey && !e.ShiftKey || oTextObject === drawing) { return drawingObjectsController.handleTextHit(shape, e, x, y, drawing, pageIndex, bWord); } else { return drawingObjectsController.handleMoveHit(drawing, e, x, y, null, false, pageIndex, true); } } } function handleGroup(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord) { var grouped_objects = drawing.getArrGraphicObjects(); var ret; for(var j = grouped_objects.length - 1; j > -1; --j) { var cur_grouped_object = grouped_objects[j]; switch (cur_grouped_object.getObjectType()) { case AscDFH.historyitem_type_SlicerView: { ret = handleSlicerInGroup(drawingObjectsController, drawing, cur_grouped_object, e, x, y, pageIndex, bWord); if(ret) { return ret; } break; } case AscDFH.historyitem_type_Control: { ret = handleControlInGroup(drawingObjectsController, drawing, cur_grouped_object, e, x, y, pageIndex, bWord); if(ret) { return ret; } break; } case AscDFH.historyitem_type_Shape: case AscDFH.historyitem_type_ImageShape: case AscDFH.historyitem_type_OleObject: case AscDFH.historyitem_type_Cnx: case AscDFH.historyitem_type_LockedCanvas: { ret = handleShapeImageInGroup(drawingObjectsController, drawing, cur_grouped_object, e, x, y, pageIndex, bWord); if(ret) return ret; break; } case AscDFH.historyitem_type_ChartSpace: { if(!drawingObjectsController.isSlideShow()) { var ret, i, title; if(cur_grouped_object.hit(x, y)) { var chart_titles = cur_grouped_object.getAllTitles(); for(i = 0; i < chart_titles.length; ++i) { title = chart_titles[i]; var hit_in_inner_area = title.hitInInnerArea(x, y); var hit_in_path = title.hitInPath(x, y); var hit_in_text_rect = title.hitInTextRect(x, y); if(hit_in_inner_area && !hit_in_text_rect || hit_in_path) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.checkChartTextSelection(); drawingObjectsController.resetSelection(); drawingObjectsController.selectObject(drawing, pageIndex); drawingObjectsController.selection.groupSelection = drawing; drawing.selectObject(cur_grouped_object, pageIndex); drawing.chartSelection = cur_grouped_object; drawing.selection.title = title; cur_grouped_object.selectTitle(title, pageIndex); drawingObjectsController.updateSelectionState(); return true; } else { return {objectId: drawing.Get_Id(), cursorType: "move", bMarker: false}; } } else if(hit_in_text_rect) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.checkChartTextSelection(); drawingObjectsController.resetSelection(); drawingObjectsController.selectObject(drawing, pageIndex); drawingObjectsController.selection.groupSelection = drawing; drawing.selectObject(cur_grouped_object, pageIndex); drawing.selection.chartSelection = cur_grouped_object; cur_grouped_object.selectTitle(title, pageIndex); cur_grouped_object.selection.textSelection = title; title.selectionSetStart(e, x, y, pageIndex); drawingObjectsController.changeCurrentState(new AscFormat.TextAddState(drawingObjectsController, title, x, y, e.Button)); if(e.ClickCount <= 1) { drawingObjectsController.updateSelectionState(); } return true; } else { if(drawingObjectsController.document) { var content = title.getDocContent(); var invert_transform_text = title.invertTransformText, tx, ty; if(content && invert_transform_text) { tx = invert_transform_text.TransformPointX(x, y); ty = invert_transform_text.TransformPointY(x, y); content.UpdateCursorType(tx, ty, 0); } } return {objectId: drawing.Get_Id(), cursorType: "text", content: title.getDocContent ? title.getDocContent() : null}; } } } } } ret = handleShapeImageInGroup(drawingObjectsController, drawing, cur_grouped_object, e, x, y, pageIndex, bWord); if(ret) return ret; break; } } } return false; } function handleChartElements(drawing, drawingObjectsController, e, dTx, dTy, group, pageIndex, bWord) { let selector = group ? group : drawingObjectsController; let bSeries = false; if(drawing.chartObj) { let oChartDrawer = drawing.chartObj; let sortCharts = oChartDrawer._sortChartsForDrawing(drawing); let oCanvas = drawing.getCanvasContext(); let oChartSelection = drawing.selection; if(!oChartDrawer.chart || !Array.isArray(oChartDrawer.chart.sortZIndexPaths) || oChartDrawer.chart.sortZIndexPaths.length === 0) { for(var j = sortCharts.length - 1; j > -1; j--) { var id = sortCharts[j]; var chartModel = oChartDrawer._getChartModelById(drawing.chart.plotArea, id); if(!chartModel) { continue; } var oDrawChart = oChartDrawer.charts[id]; var pointsPaths = oDrawChart.paths.points; if(Array.isArray(pointsPaths)) { for(var k = pointsPaths.length - 1; k > - 1 ; --k) { if(Array.isArray(pointsPaths[k])) { var aPointsPaths = pointsPaths[k]; for(var l = 0; l < aPointsPaths.length; ++l) { if(AscCommon.isRealObject(aPointsPaths[l])) { if(AscFormat.isRealNumber(aPointsPaths[l].path)) { var oPath = drawing.pathMemory.GetPath(aPointsPaths[l].path); if(oPath.hitInInnerArea(oCanvas, dTx, dTy) || oPath.hitInPath(oCanvas, dTx, dTy)) { bSeries = true; } } if(bSeries) { if(oChartSelection.chart === id && oChartSelection.series === k) { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = k; oChartSelection.markers = true; oChartSelection.datPoint = l; } else { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = k; oChartSelection.markers = true; oChartSelection.datPoint = null; } break; } } } if(l < aPointsPaths.length) { break; } } } if(k > -1) { break; } } var seriesPaths = oDrawChart.paths.series; var bPie = chartModel.getObjectType() === AscDFH.historyitem_type_PieChart; if(Array.isArray(seriesPaths)) { for(var k = seriesPaths.length - 1; k > - 1 ; --k) { if(Array.isArray(seriesPaths[k])) { var aPointsPaths = seriesPaths[k]; for(var l = 0; l < aPointsPaths.length; ++l) { if(AscFormat.isRealNumber(aPointsPaths[l])) { var oPath = drawing.pathMemory.GetPath(aPointsPaths[l]); if(oPath.hitInInnerArea(oCanvas, dTx, dTy) || oPath.hitInPath(oCanvas, dTx, dTy)) { bSeries = true; if(bPie) { if(oChartSelection.series === 0) { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = 0; oChartSelection.datPoint = k; } else { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = 0; oChartSelection.datPoint = null; } } else { if(oChartSelection.chart === id && oChartSelection.series === k) { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = k; oChartSelection.datPoint = l; } else { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = k; oChartSelection.datPoint = null; } } break; } } if(Array.isArray(aPointsPaths[l])) { var aPointsPaths2 = aPointsPaths[l]; for(var z = 0; z < aPointsPaths2.length; ++z) { if(AscFormat.isRealNumber(aPointsPaths2[z])) { var oPath = drawing.pathMemory.GetPath(aPointsPaths2[z]); if(oPath.hitInInnerArea(oCanvas, dTx, dTy) || oPath.hitInPath(oCanvas, dTx, dTy)) { bSeries = true; if(bPie) { if(oChartSelection.series === 0) { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = 0; oChartSelection.datPoint = k; } else { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = 0; oChartSelection.datPoint = null; } } else { if(oChartSelection.chart === id && oChartSelection.series === k) { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = k; oChartSelection.datPoint = l; } else { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = k; oChartSelection.datPoint = null; } } break; } } } if(z < aPointsPaths2.length) { break; } } else if(AscCommon.isRealObject(aPointsPaths[l])) { // downPath: 1230 // frontPath: [] // insidePath: 1188 // upPath: 1213 if(AscFormat.isRealNumber(aPointsPaths[l].upPath)) { var oPath = drawing.pathMemory.GetPath(aPointsPaths[l].upPath); if(oPath.hitInInnerArea(oCanvas, dTx, dTy) || oPath.hitInPath(oCanvas, dTx, dTy)) { bSeries = true; } } var aFrontPaths = aPointsPaths[l].frontPath || aPointsPaths[l].frontPaths; if(!bSeries && Array.isArray(aFrontPaths)) { for(var s = 0; s < aFrontPaths.length; ++s) { if(AscFormat.isRealNumber(aFrontPaths[s])) { var oPath = drawing.pathMemory.GetPath(aFrontPaths[s]); if(oPath.hitInInnerArea(oCanvas, dTx, dTy) || oPath.hitInPath(oCanvas, dTx, dTy)) { bSeries = true; break; } } } } aFrontPaths = aPointsPaths[l].darkPaths; if(!bSeries && Array.isArray(aFrontPaths)) { for(var s = 0; s < aFrontPaths.length; ++s) { if(AscFormat.isRealNumber(aFrontPaths[s])) { var oPath = drawing.pathMemory.GetPath(aFrontPaths[s]); if(oPath.hitInInnerArea(oCanvas, dTx, dTy) || oPath.hitInPath(oCanvas, dTx, dTy)) { bSeries = true; break; } } } } if(bSeries) { if(bPie) { if(oChartSelection.series === 0) { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = 0; oChartSelection.datPoint = k; } else { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = 0; oChartSelection.datPoint = null; } } else { if(oChartSelection.chart === id && oChartSelection.series === k) { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = k; oChartSelection.datPoint = l; } else { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = k; oChartSelection.datPoint = null; } } break; } } } if(l < aPointsPaths.length) { break; } } else { if(AscFormat.isRealNumber(seriesPaths[k])) { var oPath = drawing.pathMemory.GetPath(seriesPaths[k]); if(oPath.hitInInnerArea(oCanvas, dTx, dTy)) { bSeries = true; if(bPie) { if(oChartSelection.series === 0) { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = 0; oChartSelection.datPoint = k; } else { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.series = 0; oChartSelection.datPoint = null; } } else { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.plotArea = null; oChartSelection.chart = id; oChartSelection.series = k; oChartSelection.datPoint = null; } break; } } } } if(k > -1) { break; } } else { if(chartModel.getObjectType() === AscDFH.historyitem_type_StockChart) { seriesPaths = oDrawChart.paths.values; if(Array.isArray(seriesPaths)) { for(var k = 0; k < seriesPaths.length; ++k) { if(AscFormat.isRealNumber(seriesPaths[k].upBars)) { var oPath = drawing.pathMemory.GetPath(seriesPaths[k].upBars); if(oPath.hitInInnerArea(oCanvas, dTx, dTy) || oPath.hitInPath(oCanvas, dTx, dTy)) { if(chartModel && chartModel.upDownBars && chartModel.upDownBars.upBars) { bSeries = true; selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.upBars = chartModel.upDownBars.upBars ; break; } } } else if(AscFormat.isRealNumber(seriesPaths[k].downBars)) { var oPath = drawing.pathMemory.GetPath(seriesPaths[k].downBars); if(oPath.hitInInnerArea(oCanvas, dTx, dTy) || oPath.hitInPath(oCanvas, dTx, dTy)) { if(chartModel && chartModel.upDownBars && chartModel.upDownBars.downBars) { bSeries = true; selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.downBars = chartModel.upDownBars.downBars; break; } } } if(!bSeries && AscFormat.isRealNumber(seriesPaths[k].lowLines)) { var oPath = drawing.pathMemory.GetPath(seriesPaths[k].lowLines); if(oPath.hitInInnerArea(oCanvas, dTx, dTy) || oPath.hitInPath(oCanvas, dTx, dTy)) { if(chartModel && chartModel.hiLowLines) { bSeries = true; selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.hiLowLines = chartModel.hiLowLines; break; } } var oPath = drawing.pathMemory.GetPath(seriesPaths[k].highLines); if(oPath.hitInInnerArea(oCanvas, dTx, dTy) || oPath.hitInPath(oCanvas, dTx, dTy)) { if(chartModel && chartModel.hiLowLines) { bSeries = true; selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = id; oChartSelection.hiLowLines = chartModel.hiLowLines; break; } } } } } } } } } else { for(var i = oChartDrawer.chart.sortZIndexPaths.length - 1; i > -1; i--) { var oPathsObject = oChartDrawer.chart.sortZIndexPaths[i]; if(AscFormat.isRealNumber(oChartDrawer.chart.sortZIndexPaths[i].paths)) { var oPath = drawing.pathMemory.GetPath(oChartDrawer.chart.sortZIndexPaths[i].paths); if(oPath.hitInInnerArea(oCanvas, dTx, dTy) || oPath.hitInPath(oCanvas, dTx, dTy)) { bSeries = true; } } else { if(!bSeries && AscFormat.isRealNumber(oChartDrawer.chart.sortZIndexPaths[i].frontPaths)) { var oPath = drawing.pathMemory.GetPath(oChartDrawer.chart.sortZIndexPaths[i].frontPaths); if(oPath.hitInInnerArea(oCanvas, dTx, dTy) || oPath.hitInPath(oCanvas, dTx, dTy)) { bSeries = true; } } if(!bSeries && AscFormat.isRealNumber(oChartDrawer.chart.sortZIndexPaths[i].darkPaths)) { var oPath = drawing.pathMemory.GetPath(oChartDrawer.chart.sortZIndexPaths[i].darkPaths); if(oPath.hitInInnerArea(oCanvas, dTx, dTy) || oPath.hitInPath(oCanvas, dTx, dTy)) { bSeries = true; } } } if(bSeries) { if(oChartSelection.chart === oChartDrawer.chart.chart.Id && oChartSelection.series === oChartDrawer.chart.sortZIndexPaths[i].seria) { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = oChartDrawer.chart.chart.Id; oChartSelection.series = oChartDrawer.chart.sortZIndexPaths[i].seria; oChartSelection.datPoint = oChartDrawer.chart.sortZIndexPaths[i].point; } else { selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.chart = oChartDrawer.chart.chart.Id; oChartSelection.series = oChartDrawer.chart.sortZIndexPaths[i].seria; oChartSelection.datPoint = null; } break; } } } if(!bSeries) { j = 0; if(Array.isArray(oChartDrawer.axesChart)) { for(j = 0; j < oChartDrawer.axesChart.length; ++j) { var oAxObj = oChartDrawer.axesChart[j]; if(oAxObj && oAxObj.paths) { if(oAxObj.axis && oAxObj.axis.compiledMajorGridLines && oAxObj.axis.compiledMajorGridLines.isVisible() && AscFormat.isRealNumber(oAxObj.paths.gridLines))//TODo Date Ax vehicle log book1.xlsx { var oPath = drawing.pathMemory.GetPath(oAxObj.paths.gridLines); if(oPath.hitInPath(oCanvas, dTx, dTy)) { bSeries = true; selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.axis = oAxObj.axis; oChartSelection.majorGridlines = true; break; } } if(!bSeries && oAxObj.axis && oAxObj.axis.compiledMinorGridLines && oAxObj.axis.compiledMinorGridLines.isVisible() && AscFormat.isRealNumber(oAxObj.paths.minorGridLines)) { var oPath = drawing.pathMemory.GetPath(oAxObj.paths.minorGridLines); if(oPath.hitInPath(oCanvas, dTx, dTy)) { bSeries = true; selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; oChartSelection.axis = oAxObj.axis; oChartSelection.minorGridlines = true; break; } } } } } } } return bSeries; } function handleInternalChart(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord) { if(e.CtrlKey || (e.Button === AscCommon.g_mouse_button_right && drawingObjectsController.selectedObjects.length > 1)){ return false; } var ret = false, i, title, hit_to_handles; var oApi = drawingObjectsController.getEditorApi(); var bIsMobileVersion = oApi && oApi.isMobileVersion; if(drawing.hit(x, y)) { if(drawingObjectsController.isObjectsProtected() && drawing.getProtectionLocked()) { return false; } var bClickFlag = !window["IS_NATIVE_EDITOR"] && (drawingObjectsController.handleEventMode === AscFormat.HANDLE_EVENT_MODE_CURSOR || e.ClickCount < 2); var selector = group ? group : drawingObjectsController; var legend = drawing.getLegend(); if(legend && (legend.hit(x, y) || (drawing.selection.legend === legend && !AscFormat.isRealNumber(drawing.selection.legendEntry) && (legend.hitInBoundingRect(x, y) || legend.hitToHandles(x, y) > -1)) ) && bClickFlag) { if(drawing.selection.legend !== legend) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.checkChartTextSelection(); selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; drawing.selection.legend = legend; drawingObjectsController.arrPreTrackObjects.length = 0; drawingObjectsController.arrPreTrackObjects.push(new AscFormat.MoveChartObjectTrack(legend, drawing)); drawingObjectsController.changeCurrentState(new AscFormat.PreMoveState(drawingObjectsController, x, y, false, false, drawing, true, true)); drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { return {objectId: drawing.Get_Id(), cursorType: "move", bMarker: false}; } } else { if(!AscFormat.isRealNumber(drawing.selection.legendEntry)) { //check hit in resize handles hit_to_handles = legend.hitToHandles(x, y); if(hit_to_handles > -1) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.arrPreTrackObjects.length = 0; var oTrack = new AscFormat.ResizeTrackShapeImage(legend, legend.getCardDirectionByNum(hit_to_handles), drawingObjectsController); oTrack.chartSpace = drawing; drawingObjectsController.arrPreTrackObjects.push(oTrack); legend.selectStartPage = drawing.selectStartPage; drawingObjectsController.changeCurrentState(new AscFormat.PreResizeState(drawingObjectsController, legend, legend.getCardDirectionByNum(hit_to_handles))); drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { var card_direction = legend.getCardDirectionByNum(hit_to_handles); return {objectId: drawing.Get_Id(), cursorType: AscFormat.CURSOR_TYPES_BY_CARD_DIRECTION[card_direction], bMarker: true}; } } if(legend.hitInBoundingRect(x, y)) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.checkChartTextSelection(); selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; drawing.selection.legend = legend; drawingObjectsController.arrPreTrackObjects.length = 0; drawingObjectsController.arrPreTrackObjects.push(new AscFormat.MoveChartObjectTrack(legend, drawing)); drawingObjectsController.changeCurrentState(new AscFormat.PreMoveState(drawingObjectsController, x, y, false, false, drawing, true, true)); drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { return {objectId: drawing.Get_Id(), cursorType: "move", title: null}; } } } var aCalcEntries = legend.calcEntryes; for(var i = 0; i < aCalcEntries.length; ++i) { if(aCalcEntries[i].hit(x, y)) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.checkChartTextSelection(); selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; drawing.selection.legend = legend; drawing.selection.legendEntry = aCalcEntries[i].idx; drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { return {objectId: drawing.Get_Id(), cursorType: "default", bMarker: false}; } } } if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.checkChartTextSelection(); selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; drawing.selection.legend = legend; drawingObjectsController.arrPreTrackObjects.length = 0; drawingObjectsController.arrPreTrackObjects.push(new AscFormat.MoveChartObjectTrack(legend, drawing)); drawingObjectsController.changeCurrentState(new AscFormat.PreMoveState(drawingObjectsController, x, y, false, false, drawing, true, true)); drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { return {objectId: drawing.Get_Id(), cursorType: "move", title: null}; } } } if(/*bClickFlag*/true){ var oPlotArea = drawing.chart.plotArea; if(drawing.selection.plotArea) { //check hit in resize handles hit_to_handles = oPlotArea.hitToHandles(x, y); if(hit_to_handles > -1) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.arrPreTrackObjects.length = 0; var oTrack = new AscFormat.ResizeTrackShapeImage(oPlotArea, oPlotArea.getCardDirectionByNum(hit_to_handles), drawingObjectsController); oTrack.chartSpace = drawing; drawingObjectsController.arrPreTrackObjects.push(oTrack); oPlotArea.selectStartPage = drawing.selectStartPage; drawingObjectsController.changeCurrentState(new AscFormat.PreResizeState(drawingObjectsController, oPlotArea, oPlotArea.getCardDirectionByNum(hit_to_handles))); drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { var card_direction = oPlotArea.getCardDirectionByNum(hit_to_handles); return {objectId: drawing.Get_Id(), cursorType: AscFormat.CURSOR_TYPES_BY_CARD_DIRECTION[card_direction], bMarker: true}; } } if(oPlotArea.hitInBoundingRect(x, y)) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.checkChartTextSelection(); selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; drawing.selection.plotArea = oPlotArea; drawingObjectsController.arrPreTrackObjects.length = 0; drawingObjectsController.arrPreTrackObjects.push(new AscFormat.MoveChartObjectTrack(oPlotArea, drawing)); drawingObjectsController.changeCurrentState(new AscFormat.PreMoveState(drawingObjectsController, x, y, false, false, drawing, true, true)); drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { return {objectId: drawing.Get_Id(), cursorType: "move", title: null}; } } } var aCharts = drawing.chart.plotArea.charts; var series = drawing.getAllSeries(); var _len = aCharts.length === 1 && aCharts[0].getObjectType() === AscDFH.historyitem_type_PieChart ? Math.min(1, series.length) : series.length; for(var i = _len - 1; i > -1; --i) { var ser = series[i]; var pts = ser.getNumPts(); var oDLbl; for(var j = 0; j < pts.length; ++j) { oDLbl = pts[j].compiledDlb; if(oDLbl) { if(oDLbl.hit(x, y)) { var nDlbls = drawing.selection.dataLbls; var nDlbl = drawing.selection.dataLbl; if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.checkChartTextSelection(); selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; drawing.selection.dataLbls = i; } if(nDlbls === i) { if(nDlbl === j) { var hit_in_inner_area = oDLbl.hitInInnerArea(x, y); var hit_in_path = oDLbl.hitInPath(x, y); var hit_in_text_rect = oDLbl.hitInTextRect(x, y); if((hit_in_inner_area && (!hit_in_text_rect) || (hit_in_path && bIsMobileVersion !== true)) && !window["NATIVE_EDITOR_ENJINE"]) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawing.selection.dataLbl = j; drawingObjectsController.arrPreTrackObjects.length = 0; drawingObjectsController.arrPreTrackObjects.push(new AscFormat.MoveChartObjectTrack(oDLbl, drawing)); drawingObjectsController.changeCurrentState(new AscFormat.PreMoveState(drawingObjectsController, x, y, false, false, drawing, true, true)); drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { return {objectId: drawing.Get_Id(), cursorType: "move", title: null}; } } else if(hit_in_text_rect) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawing.selection.dataLbl = j; drawing.selection.textSelection = oDLbl; oDLbl.selectionSetStart(e, x, y, pageIndex); drawingObjectsController.changeCurrentState(new AscFormat.TextAddState(drawingObjectsController, oDLbl, x, y, e.Button)); if(e.ClickCount <= 1) { drawingObjectsController.updateSelectionState(); } return true; } else { if(drawingObjectsController.document) { var content = oDLbl.getDocContent(); var invert_transform_text = oDLbl.invertTransformText, tx, ty; if(content && invert_transform_text) { tx = invert_transform_text.TransformPointX(x, y); ty = invert_transform_text.TransformPointY(x, y); content.UpdateCursorType(tx, ty, 0); } } return {objectId: drawing.Get_Id(), cursorType: "text", title: oDLbl, content: oDLbl.getDocContent()}; } } } else { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawing.selection.dataLbl = j; drawingObjectsController.arrPreTrackObjects.length = 0; drawingObjectsController.arrPreTrackObjects.push(new AscFormat.MoveChartObjectTrack(oDLbl, drawing)); drawingObjectsController.changeCurrentState(new AscFormat.PreMoveState(drawingObjectsController, x, y, false, false, drawing, true, true)); drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { return {objectId: drawing.Get_Id(), cursorType: "default", title: oDLbl}; } } } if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { return {objectId: drawing.Get_Id(), cursorType: "default", title: oDLbl}; } } } } const trendline = ser.getLastTrendline(); let oTrendlineLbl = trendline && trendline.trendlineLbl; if(oTrendlineLbl && oTrendlineLbl.hit(x, y)) { if(drawing.selection.trendlineLbl === oTrendlineLbl) { var hit_in_inner_area = oTrendlineLbl.hitInInnerArea(x, y); var hit_in_path = oTrendlineLbl.hitInPath(x, y); var hit_in_text_rect = oTrendlineLbl.hitInTextRect(x, y); if((hit_in_inner_area && (!hit_in_text_rect) || (hit_in_path && bIsMobileVersion !== true)) && !window["NATIVE_EDITOR_ENJINE"]) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawing.selection.trendlineLbl = oTrendlineLbl; drawingObjectsController.arrPreTrackObjects.length = 0; drawingObjectsController.arrPreTrackObjects.push(new AscFormat.MoveChartObjectTrack(oTrendlineLbl, drawing)); drawingObjectsController.changeCurrentState(new AscFormat.PreMoveState(drawingObjectsController, x, y, false, false, drawing, true, true)); drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { return {objectId: drawing.Get_Id(), cursorType: "move", title: null}; } } else if(hit_in_text_rect) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawing.selection.trendlineLbl = oTrendlineLbl; drawing.selection.textSelection = oTrendlineLbl; oTrendlineLbl.selectionSetStart(e, x, y, pageIndex); drawingObjectsController.changeCurrentState(new AscFormat.TextAddState(drawingObjectsController, oTrendlineLbl, x, y, e.Button)); if(e.ClickCount <= 1) { drawingObjectsController.updateSelectionState(); } return true; } else { if(drawingObjectsController.document) { var content = oTrendlineLbl.getDocContent(); var invert_transform_text = oTrendlineLbl.invertTransformText, tx, ty; if(content && invert_transform_text) { tx = invert_transform_text.TransformPointX(x, y); ty = invert_transform_text.TransformPointY(x, y); content.UpdateCursorType(tx, ty, 0); } } return {objectId: drawing.Get_Id(), cursorType: "text", title: oTrendlineLbl, content: oTrendlineLbl.getDocContent()}; } } } else { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.checkChartTextSelection(); selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; drawing.selection.trendlineLbl = oTrendlineLbl; drawingObjectsController.arrPreTrackObjects.length = 0; drawingObjectsController.arrPreTrackObjects.push(new AscFormat.MoveChartObjectTrack(oTrendlineLbl, drawing)); drawingObjectsController.changeCurrentState(new AscFormat.PreMoveState(drawingObjectsController, x, y, false, false, drawing, true, true)); drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { return {objectId: drawing.Get_Id(), cursorType: "default", title: oTrendlineLbl}; } } } } } var chart_titles = drawing.getAllTitles(); for(i = 0; i < chart_titles.length; ++i) { title = chart_titles[i]; var hit_in_inner_area = title.hitInInnerArea(x, y); var hit_in_path = title.hitInPath(x, y); var hit_in_text_rect = title.hitInTextRect(x, y); var bMobileEditor = window["IS_NATIVE_EDITOR"] || bIsMobileVersion; var bSameTitle = (drawing.selection.title === title); if((hit_in_inner_area && (!hit_in_text_rect || !bSameTitle) || (hit_in_path && !bMobileEditor)) || (bSameTitle && title.hitInBoundingRect(x, y) && (!bMobileEditor || !hit_in_text_rect))) { var selector = group ? group : drawingObjectsController; if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.checkChartTextSelection(); selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; if(title.select) { drawing.selectTitle(title, pageIndex); } drawingObjectsController.arrPreTrackObjects.length = 0; drawingObjectsController.arrPreTrackObjects.push(new AscFormat.MoveChartObjectTrack(title, drawing)); drawingObjectsController.changeCurrentState(new AscFormat.PreMoveState(drawingObjectsController, x, y, false, false, drawing, true, true)); drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); if(Asc["editor"] && Asc["editor"].wb) { var ws = Asc["editor"].wb.getWorksheet(); if(ws){ var ct = ws.getCursorTypeFromXY(ws.objectRender.lastX, ws.objectRender.lastY); if(ct){ Asc["editor"].wb._onUpdateCursor(ct.cursor); } } } return true; } else { return {objectId: drawing.Get_Id(), cursorType: "move", bMarker: false}; } } else if(hit_in_text_rect && drawing.selection.title === title) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { var oTargetTextObject = AscFormat.getTargetTextObject(drawingObjectsController); if(title !== oTargetTextObject) { drawingObjectsController.checkChartTextSelection(); selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; drawing.selectTitle(title, pageIndex); drawing.selection.textSelection = title; } title.selectionSetStart(e, x, y, pageIndex); drawingObjectsController.changeCurrentState(new AscFormat.TextAddState(drawingObjectsController, title, x, y, e.Button)); if(e.ClickCount <= 1) { drawingObjectsController.updateSelectionState(); } return true; } else { if(drawingObjectsController.document) { var content = title.getDocContent(); var invert_transform_text = title.invertTransformText, tx, ty; if(content && invert_transform_text) { tx = invert_transform_text.TransformPointX(x, y); ty = invert_transform_text.TransformPointY(x, y); content.UpdateCursorType(tx, ty, 0); } } return {objectId: drawing.Get_Id(), cursorType: "text", title: title, content: title.getDocContent()}; } } } //todo gridlines //plotArea if(bClickFlag){ var oPlotArea = drawing.chart.plotArea; if(oPlotArea.hitInBoundingRect(x, y)) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.checkChartTextSelection(); selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; drawing.selection.plotArea = oPlotArea; drawingObjectsController.arrPreTrackObjects.length = 0; drawingObjectsController.arrPreTrackObjects.push(new AscFormat.MoveChartObjectTrack(oPlotArea, drawing)); drawingObjectsController.changeCurrentState(new AscFormat.PreMoveState(drawingObjectsController, x, y, false, false, drawing, true, true)); drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { return {objectId: drawing.Get_Id(), cursorType: "move", title: null}; } } var oChartSizes = drawing.getChartSizes(true); var oInvertTransform = drawing.invertTransform; var dTx = oInvertTransform.TransformPointX(x, y); var dTy = oInvertTransform.TransformPointY(x, y); if(dTx >= oChartSizes.startX && dTx <= oChartSizes.startX + oChartSizes.w && dTy >= oChartSizes.startY && dTy <= oChartSizes.startY + oChartSizes.h) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { if(drawing.selection.plotArea == null || !AscFormat.CChartsDrawer.prototype._isSwitchCurrent3DChart(drawing) || !drawing.chartObj || !drawing.chartObj.processor3D || !drawingObjectsController.canEdit()) { drawingObjectsController.checkChartTextSelection(); var bSeries = handleChartElements(drawing, drawingObjectsController, e, dTx, dTy, group, pageIndex, bWord); if(!bSeries) { var oLabels; var aAxes = drawing.chart.plotArea.axId; for(var i = 0; i < aAxes.length; ++i) { if(aAxes[i].labels) { oLabels = aAxes[i].labels; if(oLabels.hit(x, y)) { drawingObjectsController.checkChartTextSelection(); selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; drawing.selection.axisLbls = oLabels.axis; drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } } } selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; drawing.selection.plotArea = drawing.chart.plotArea; drawingObjectsController.arrPreTrackObjects.length = 0; drawingObjectsController.arrPreTrackObjects.push(new AscFormat.MoveChartObjectTrack(drawing.chart.plotArea, drawing)); drawingObjectsController.changeCurrentState(new AscFormat.PreMoveState(drawingObjectsController, x, y, false, false, drawing, true, true)); drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); } } else { var bSeries = false; if(AscFormat.CChartsDrawer.prototype._isSwitchCurrent3DChart(drawing)) { bSeries = handleChartElements(drawing, drawingObjectsController, e, dTx, dTy, group, pageIndex, bWord); } if(!bSeries) { var oLabels; var aAxes = drawing.chart.plotArea.axId; for(var i = 0; i < aAxes.length; ++i){ if(aAxes[i].labels){ oLabels = aAxes[i].labels; if(oLabels.hit(x, y)) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.checkChartTextSelection(); selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; drawing.selection.axisLbls = oLabels.axis; drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { return {objectId: drawing.Get_Id(), cursorType: "default", bMarker: false}; } } } } drawing.selection.plotArea = drawing.chart.plotArea; drawing.selection.rotatePlotArea = true; drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); drawingObjectsController.arrPreTrackObjects.length = 0; drawingObjectsController.arrPreTrackObjects.push(new AscFormat.Chart3dAdjustTrack(drawing, 0, x, y)); if(!isRealObject(group)) { drawingObjectsController.changeCurrentState(new AscFormat.PreChangeAdjState(drawingObjectsController, drawing)); } else { drawingObjectsController.changeCurrentState(new AscFormat.PreChangeAdjInGroupState(drawingObjectsController, group)); } var bOldIsLocked = e.IsLocked; e.IsLocked = true; drawingObjectsController.OnMouseMove(e, x, y, pageIndex); e.IsLocked = bOldIsLocked; return true; } } drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { return {objectId: drawing.Get_Id(), cursorType: "default", bMarker: false}; } } } var oLabels; var aAxes = drawing.chart.plotArea.axId; for(var i = 0; i < aAxes.length; ++i){ if(aAxes[i].labels){ oLabels = aAxes[i].labels; if(oLabels.hit(x, y)) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.checkChartTextSelection(); selector.resetSelection(); selector.selectObject(drawing, pageIndex); selector.selection.chartSelection = drawing; drawing.selection.axisLbls = oLabels.axis; drawingObjectsController.updateSelectionState(); drawingObjectsController.updateOverlay(); return true; } else { return {objectId: drawing.Get_Id(), cursorType: "default", bMarker: false}; } } } } } return ret; } function handleChart(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord) { var ret = !drawingObjectsController.isSlideShow() && handleInternalChart(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord); if(ret) { return ret; } ret = handleShapeImage(drawing, drawingObjectsController, e, x, y, group, pageIndex, bWord); if(ret) return ret; return false; } function handleInlineShapeImage(drawing, drawingObjectsController, e, x, y, pageIndex) { var _hit = drawing.hit && drawing.hit(x, y); var _hit_to_path = drawing.hitInPath && drawing.hitInPath(x, y); var b_hit_to_text = drawing.hitInTextRect && drawing.hitInTextRect(x, y); if((_hit && !b_hit_to_text) || _hit_to_path) { return handleInlineHitNoText(drawing, drawingObjectsController, e, x, y, pageIndex, false); } else if(b_hit_to_text) { if(drawing.bWordShape /*&& (!drawing.txWarpStruct || drawingObjectsController.curState.startTargetTextObject === drawing || drawing.haveSelectedDrawingInContent && drawing.haveSelectedDrawingInContent())*/) { if(drawing.getObjectType() === AscDFH.historyitem_type_Shape && drawing.isForm() && drawing.getInnerForm() && !drawing.getInnerForm().CanPlaceCursorInside()) { return handleInlineHitNoText(drawing, drawingObjectsController, e, x, y, pageIndex, false); } var all_drawings = drawing.getDocContent().GetAllDrawingObjects(); var drawings2 = []; for(var i = 0; i < all_drawings.length; ++i) { drawings2.push(all_drawings[i].GraphicObj); } var ret = handleInlineObjects(drawingObjectsController, drawings2, e, x, y, pageIndex, true); if(ret) return ret; } return drawingObjectsController.handleTextHit(drawing, e, x, y, null, pageIndex, true); } } function handleInlineChart(drawing, drawingObjectsController, e, x, y, pageIndex) { var ret = handleInternalChart(drawing, drawingObjectsController, e, x, y, null, pageIndex, true); if(ret) { return ret; } return handleInlineShapeImage(drawing, drawingObjectsController, e, x, y, pageIndex); } function handleInlineHitNoText(drawing, drawingObjects, e, x, y, pageIndex, bInSelect) { var selected_objects = drawingObjects.selectedObjects; if(!(e.CtrlKey || e.ShiftKey) || selected_objects.length === 0 || selected_objects.length === 1 && selected_objects[0] === drawing) { if(drawingObjects.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { let bIsSelected = drawing.selected; drawingObjects.checkChartTextSelection(); drawingObjects.resetSelection(); drawing.select(drawingObjects, pageIndex); let bHandleDblClick = false; if(AscFormat.isLeftButtonDoubleClick(e) && !e.ShiftKey && !e.CtrlKey && ((drawingObjects.selection.groupSelection && drawingObjects.selection.groupSelection.selectedObjects.length === 1) || drawingObjects.selectedObjects.length === 1)) { if (drawing.getObjectType() === AscDFH.historyitem_type_ChartSpace && drawingObjects.handleChartDoubleClick) { bHandleDblClick = true; drawingObjects.handleChartDoubleClick(drawing.parent, drawing, e, x, y, pageIndex); } else if (drawing.getObjectType() === AscDFH.historyitem_type_OleObject && drawingObjects.handleOleObjectDoubleClick) { bHandleDblClick = true; drawingObjects.handleOleObjectDoubleClick(drawing.parent, drawing, e, x, y, pageIndex); } else if (drawing.signatureLine && drawingObjects.handleSignatureDblClick) { bHandleDblClick = true; drawingObjects.handleSignatureDblClick(drawing.signatureLine.id, drawing.extX, drawing.extY); } else if (2 === e.ClickCount && drawing.parent instanceof AscCommonWord.ParaDrawing && drawing.parent.IsMathEquation()) { bHandleDblClick = true; drawingObjects.handleMathDrawingDoubleClick(drawing.parent, e, x, y, pageIndex); } else if(drawing.getObjectType() === AscDFH.historyitem_type_Shape) { bHandleDblClick = true; drawingObjects.handleDblClickEmptyShape(drawing); } } if(!bHandleDblClick) { drawingObjects.changeCurrentState(new AscFormat.PreMoveInlineObject(drawingObjects, drawing, bIsSelected, !bInSelect, pageIndex, x, y)); } drawingObjects.updateOverlay(); return true; } else { return {objectId: drawing.Get_Id(), cursorType:"move"}; } } if(drawingObjects.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { return {objectId: drawing.Get_Id(), cursorType:"move"}; } return false; } function handleInlineObjects(drawingObjectsController, drawingArr, e, x, y, pageIndex, bWord) { var i; var drawing, ret; for(i = drawingArr.length-1; i > -1; --i) { drawing = drawingArr[i]; if(drawing.parent && AscFormat.isRealNumber(drawing.parent.LineTop) && AscFormat.isRealNumber(drawing.parent.LineBottom)) { if(y < drawing.parent.LineTop || y > drawing.parent.LineBottom) { continue; } } switch(drawing.getObjectType()) { case AscDFH.historyitem_type_Shape: case AscDFH.historyitem_type_ImageShape: case AscDFH.historyitem_type_OleObject: case AscDFH.historyitem_type_Cnx: case AscDFH.historyitem_type_LockedCanvas: { ret = handleInlineShapeImage(drawing, drawingObjectsController, e, x, y, pageIndex); if(ret) return ret; break; } case AscDFH.historyitem_type_ChartSpace: { ret = handleInlineChart(drawing, drawingObjectsController, e, x, y, pageIndex); if(ret) return ret; break; } case AscDFH.historyitem_type_GroupShape: case AscDFH.historyitem_type_SmartArt: { ret = handleGroup(drawing, drawingObjectsController, e, x, y, null, pageIndex, bWord); if(ret) return ret; break; } } } return false; } function handleMouseUpPreMoveState(drawingObjects, e, x, y, pageIndex, bWord) { var state = drawingObjects.curState; state.drawingObjects.clearPreTrackObjects(); state.drawingObjects.changeCurrentState(new AscFormat.NullState(state.drawingObjects)); var bHandle = false; const bRightButton = (e.Button === AscCommon.g_mouse_button_right); if(!state.shift && /*!state.ctrl &&*/ state.bInside && state.majorObjectIsSelected && !bRightButton) { switch (state.majorObject.getObjectType()) { case AscDFH.historyitem_type_GroupShape: case AscDFH.historyitem_type_SmartArt: { state.drawingObjects.checkChartTextSelection(); state.drawingObjects.resetSelection(); state.drawingObjects.selectObject(state.majorObject, pageIndex); state.drawingObjects.selection.groupSelection = state.majorObject; state.drawingObjects.OnMouseDown(e,x, y,pageIndex); state.drawingObjects.OnMouseUp(e, x, y, pageIndex); state.drawingObjects.drawingObjects && state.drawingObjects.drawingObjects.sendGraphicObjectProps && state.drawingObjects.drawingObjects.sendGraphicObjectProps(); state.drawingObjects.document && state.drawingObjects.document.Document_UpdateInterfaceState && state.drawingObjects.document.Document_UpdateInterfaceState(); bHandle = true; break; } case AscDFH.historyitem_type_ChartSpace: { break; } case AscDFH.historyitem_type_ImageShape: { break; } } } if(!bHandle) { if(e.CtrlKey && state.majorObjectIsSelected && !state.bGroupSelection) { drawingObjects.deselectObject(state.majorObject); state.drawingObjects.drawingObjects && state.drawingObjects.drawingObjects.sendGraphicObjectProps && state.drawingObjects.drawingObjects.sendGraphicObjectProps(); state.drawingObjects.document && state.drawingObjects.document.Document_UpdateInterfaceState(); drawingObjects.updateOverlay(); } } } function handleFloatTable(drawing, drawingObjectsController, e, x, y, group, pageIndex) { if(drawing.hitInInnerArea(x, y)) { let oCheckResult = drawingObjectsController.checkDrawingHyperlinkAndMacro(drawing, e, true, x, y, pageIndex); if(oCheckResult) { return oCheckResult; } } if(drawingObjectsController.isSlideShow()) { if(drawing.hitInInnerArea(x, y)) { var oAnimPlayer = drawingObjectsController.getAnimationPlayer(); if(oAnimPlayer) { if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE && oAnimPlayer.onSpClick(drawing)) { return true; } } } return false; } if(drawing.hitInBoundingRect(x, y)) { return drawingObjectsController.handleMoveHit(drawing, e, x, y, group, false, pageIndex, false); } else { if(drawing.hitInInnerArea(x, y)) { var content, invert_transform_text, tx, ty, hit_paragraph, par, check_hyperlink; if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE) { drawingObjectsController.resetSelection(true); (group ? group : drawingObjectsController).selectObject(drawing,pageIndex); if(!group) { drawingObjectsController.selection.textSelection = drawing; drawing.selectionSetStart(e, x, y, pageIndex); } else { group.selection.textSelection = drawing; drawing.selectionSetStart(e, x, y, pageIndex); drawingObjectsController.selectObject(group, pageIndex); drawingObjectsController.selection.groupSelection = group; } drawingObjectsController.changeCurrentState(new AscFormat.TextAddState(drawingObjectsController, drawing, x, y, e.Button)); return true; } else { drawing.updateCursorType(x, y, e); return {objectId: drawing.Get_Id(), cursorType: "text", updated: true, content: drawing.getDocContent && drawing.getDocContent()}; } } } return false; } //--------------------------------------------------------export---------------------------------------------------- window['AscFormat'] = window['AscFormat'] || {}; window['AscFormat'].CheckCoordsNeedPage = CheckCoordsNeedPage; window['AscFormat'].handleSelectedObjects = handleSelectedObjects; window['AscFormat'].handleFloatObjects = handleFloatObjects; window['AscFormat'].handleInlineObjects = handleInlineObjects; window['AscFormat'].handleMouseUpPreMoveState = handleMouseUpPreMoveState; })(window);