Files
DocumentServer-v-9.2.0/sdkjs/common/Drawings/DrawingObjectsHandlers.js
Yajbir Singh f1b860b25c
Some checks failed
check / markdownlint (push) Has been cancelled
check / spellchecker (push) Has been cancelled
updated
2025-12-11 19:03:17 +05:30

2304 lines
109 KiB
JavaScript

/*
* (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);