Files
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

790 lines
29 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)
{
const testFlags = {
nothing: 0x0000,
macOs : 0x1000,
opera : 0x0110,
};
function CNativeEvent(nKeyCode, bIsCtrl, bIsShift, bIsAlt, bIsMetaKey, flags)
{
this.keyCode = nKeyCode;
this.which = nKeyCode;
this.ctrlKey = !!bIsCtrl;
this.shiftKey = !!bIsShift;
this.altKey = !!bIsAlt;
this.metaKey = !!bIsMetaKey;
this.isDefaultPrevented = false;
this.isPropagationStopped = false;
this.flags = flags || testFlags.nothing;
}
CNativeEvent.prototype.preventDefault = function ()
{
this.isDefaultPrevented = true;
};
CNativeEvent.prototype.stopPropagation = function ()
{
this.isPropagationStopped = true;
};
CNativeEvent.prototype.enableFlags = function ()
{
if (this.flags & testFlags.macOs)
{
AscCommon.AscBrowser.isMacOs = true;
}
if (this.flags & testFlags.opera)
{
AscCommon.AscBrowser.isOpera = true;
}
}
CNativeEvent.prototype.disableFlags = function ()
{
if (this.flags & testFlags.macOs)
{
AscCommon.AscBrowser.isMacOs = false;
}
if (this.flags & testFlags.opera)
{
AscCommon.AscBrowser.isOpera = false;
}
}
const keyCodes =
{
BackSpace : 8,
Tab : 9,
Enter : 13,
Esc : 27,
Space : 32,
PageUp : 33,
PageDown : 34,
End : 35,
Home : 36,
ArrowLeft : 37,
ArrowTop : 38,
ArrowRight : 39,
ArrowBottom : 40,
Digit1 : 49,
Digit2 : 50,
Digit3 : 51,
Digit4 : 52,
Digit5 : 53,
Digit6 : 54,
SemicolonFirefox: 59,
Delete : 46,
EqualFirefox : 61,
A : 65,
B : 66,
C : 67,
E : 69,
I : 73,
J : 74,
K : 75,
L : 76,
M : 77,
P : 80,
R : 82,
S : 83,
U : 85,
V : 86,
X : 88,
Y : 89,
Z : 90,
ContextMenu : 93,
NumpadDecimal : 110,
F2 : 113,
F4 : 115,
F5 : 116,
F9 : 120,
F10 : 121,
NumLock : 144,
ScrollLock : 145,
MinusFirefox : 173,
Semicolon : 186,
Equal : 187,
Comma : 188,
Minus : 189,
Period : 190,
Backquote : 192,
BracketLeft : 219,
BracketRight : 221,
OperaContextMenu: 57351,
}
const graphicHotkeyTypes = {
removeBackChar : 1,
removeChart : 2,
removeShape : 3,
removeGroup : 4,
removeShapeInGroup : 5,
addTab : 6,
selectNextObject : 7,
selectPreviousObject : 8,
visitHyperink : 9,
addLineInMath : 10,
addBreakLine : 11,
addParagraph : 12,
createTxBody : 13,
moveToStartInEmptyContent : 14,
selectAllAfterEnter : 15,
selectAllTitleAfterEnter : 17,
resetTextSelection : 18,
moveCursorToEndDocument : 19,
selectToEndDocument : 20,
moveCursorToStartDocument : 21,
selectToStartDocument : 22,
moveCursorLeftChar : 23,
selectCursorLeftChar : 24,
moveCursorLeftWord : 25,
selectCursorLeftWord : 26,
bigMoveGraphicObjectLeft : 27,
littleMoveGraphicObjectLeft : 28,
moveCursorRightChar : 29,
selectCursorRightChar : 30,
moveCursorRightWord : 31,
selectCursorRightWord : 32,
bigMoveGraphicObjectRight : 33,
littleMoveGraphicObjectRight: 34,
moveCursorUp : 35,
selectCursorUp : 36,
bigMoveGraphicObjectUp : 37,
littleMoveGraphicObjectUp : 38,
moveCursorDown : 39,
selectCursorDown : 40,
bigMoveGraphicObjectDown : 41,
littleMoveGraphicObjectDown : 42,
removeFrontWord : 43,
removeFrontChar : 44,
cleanSlicer : 48,
invertMultiselectSlicer : 54,
removeBackWord : 64,
selectToStartLine : 65,
moveCursorToStartLine : 66,
selectToEndLine : 67,
moveCursorToEndLine : 68,
resetStepSelection : 69
};
const graphicEvents = {};
graphicEvents[graphicHotkeyTypes.removeBackChar] = [
new CNativeEvent(keyCodes.BackSpace, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.removeBackWord] = [
new CNativeEvent(keyCodes.BackSpace, true, false, false, false),
new CNativeEvent(keyCodes.BackSpace, false, false, true, false, testFlags.macOs)
];
graphicEvents[graphicHotkeyTypes.removeChart] = [
new CNativeEvent(keyCodes.BackSpace, false, false, false, false),
new CNativeEvent(keyCodes.Delete, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.removeShape] = [
new CNativeEvent(keyCodes.BackSpace, false, false, false, false),
new CNativeEvent(keyCodes.Delete, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.removeGroup] = [
new CNativeEvent(keyCodes.BackSpace, false, false, false, false),
new CNativeEvent(keyCodes.Delete, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.removeShapeInGroup] = [
new CNativeEvent(keyCodes.BackSpace, false, false, false, false),
new CNativeEvent(keyCodes.Delete, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.addTab] = [
new CNativeEvent(keyCodes.Tab, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.selectNextObject] = [
new CNativeEvent(keyCodes.Tab, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.selectPreviousObject] = [
new CNativeEvent(keyCodes.Tab, false, true, false, false)
];
graphicEvents[graphicHotkeyTypes.visitHyperink] = [
new CNativeEvent(keyCodes.Enter, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.addLineInMath] = [
new CNativeEvent(keyCodes.Enter, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.addBreakLine] = [
new CNativeEvent(keyCodes.Enter, false, true, false, false)
];
graphicEvents[graphicHotkeyTypes.addParagraph] = [
new CNativeEvent(keyCodes.Enter, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.createTxBody] = [
new CNativeEvent(keyCodes.Enter, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.moveToStartInEmptyContent] = [
new CNativeEvent(keyCodes.Enter, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.selectAllAfterEnter] = [
new CNativeEvent(keyCodes.Enter, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.selectAllTitleAfterEnter] = [
new CNativeEvent(keyCodes.Enter, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.resetTextSelection] = [
new CNativeEvent(keyCodes.Esc, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.resetStepSelection] = [
new CNativeEvent(keyCodes.Esc, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.moveCursorToEndDocument] = [
new CNativeEvent(keyCodes.End, true, false, false, false)
];
graphicEvents[graphicHotkeyTypes.moveCursorToEndLine] = [
new CNativeEvent(keyCodes.End, false, false, false, false),
new CNativeEvent(keyCodes.ArrowRight, false, false, false, true, testFlags.macOs)
];
graphicEvents[graphicHotkeyTypes.selectToEndDocument] = [
new CNativeEvent(keyCodes.End, true, true, false, false)
];
graphicEvents[graphicHotkeyTypes.selectToEndLine] = [
new CNativeEvent(keyCodes.End, false, true, false, false),
new CNativeEvent(keyCodes.ArrowRight, false, true, false, true, testFlags.macOs),
];
graphicEvents[graphicHotkeyTypes.moveCursorToStartDocument] = [
new CNativeEvent(keyCodes.Home, true, false, false, false)
];
graphicEvents[graphicHotkeyTypes.moveCursorToStartLine] = [
new CNativeEvent(keyCodes.Home, false, false, false, false),
new CNativeEvent(keyCodes.ArrowLeft, false, false, false, true, testFlags.macOs),
];
graphicEvents[graphicHotkeyTypes.selectToStartDocument] = [
new CNativeEvent(keyCodes.Home, true, true, false, false)
];
graphicEvents[graphicHotkeyTypes.selectToStartLine] = [
new CNativeEvent(keyCodes.Home, false, true, false, false),
new CNativeEvent(keyCodes.ArrowLeft, false, true, false, true, testFlags.macOs),
];
graphicEvents[graphicHotkeyTypes.moveCursorLeftChar] = [
new CNativeEvent(keyCodes.ArrowLeft, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.selectCursorLeftChar] = [
new CNativeEvent(keyCodes.ArrowLeft, false, true, false, false)
];
graphicEvents[graphicHotkeyTypes.moveCursorLeftWord] = [
new CNativeEvent(keyCodes.ArrowLeft, true, false, false, false),
new CNativeEvent(keyCodes.ArrowLeft, false, false, true, false, testFlags.macOs),
];
graphicEvents[graphicHotkeyTypes.selectCursorLeftWord] = [
new CNativeEvent(keyCodes.ArrowLeft, true, true, false, false),
new CNativeEvent(keyCodes.ArrowLeft, false, true, true, false, testFlags.macOs),
];
graphicEvents[graphicHotkeyTypes.bigMoveGraphicObjectLeft] = [
new CNativeEvent(keyCodes.ArrowLeft, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.littleMoveGraphicObjectLeft] = [
new CNativeEvent(keyCodes.ArrowLeft, true, false, false, false)
];
graphicEvents[graphicHotkeyTypes.moveCursorRightChar] = [
new CNativeEvent(keyCodes.ArrowRight, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.selectCursorRightChar] = [
new CNativeEvent(keyCodes.ArrowRight, false, true, false, false)
];
graphicEvents[graphicHotkeyTypes.moveCursorRightWord] = [
new CNativeEvent(keyCodes.ArrowRight, true, false, false, false),
new CNativeEvent(keyCodes.ArrowRight, false, false, true, false, testFlags.macOs)
];
graphicEvents[graphicHotkeyTypes.selectCursorRightWord] = [
new CNativeEvent(keyCodes.ArrowRight, true, true, false, false),
new CNativeEvent(keyCodes.ArrowRight, false, true, true, false, testFlags.macOs),
];
graphicEvents[graphicHotkeyTypes.bigMoveGraphicObjectRight] = [
new CNativeEvent(keyCodes.ArrowRight, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.littleMoveGraphicObjectRight] = [
new CNativeEvent(keyCodes.ArrowRight, true, false, false, false)
];
graphicEvents[graphicHotkeyTypes.moveCursorUp] = [
new CNativeEvent(keyCodes.ArrowTop, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.selectCursorUp] = [
new CNativeEvent(keyCodes.ArrowTop, false, true, false, false)
];
graphicEvents[graphicHotkeyTypes.bigMoveGraphicObjectUp] = [
new CNativeEvent(keyCodes.ArrowTop, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.littleMoveGraphicObjectUp] = [
new CNativeEvent(keyCodes.ArrowTop, true, false, false, false)
];
graphicEvents[graphicHotkeyTypes.moveCursorDown] = [
new CNativeEvent(keyCodes.ArrowBottom, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.selectCursorDown] = [
new CNativeEvent(keyCodes.ArrowBottom, false, true, false, false)
];
graphicEvents[graphicHotkeyTypes.bigMoveGraphicObjectDown] = [
new CNativeEvent(keyCodes.ArrowBottom, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.littleMoveGraphicObjectDown] = [
new CNativeEvent(keyCodes.ArrowBottom, true, false, false, false)
];
graphicEvents[graphicHotkeyTypes.removeFrontWord] = [
new CNativeEvent(keyCodes.Delete, true, false, false, false),
new CNativeEvent(keyCodes.Delete, false, false, true, false, testFlags.macOs),
];
graphicEvents[graphicHotkeyTypes.removeFrontChar] = [
new CNativeEvent(keyCodes.Delete, false, false, false, false)
];
graphicEvents[graphicHotkeyTypes.cleanSlicer] = [
new CNativeEvent(keyCodes.C, true, false, true, false, testFlags.macOs),
new CNativeEvent(keyCodes.C, false, false, true, false)
];
graphicEvents[graphicHotkeyTypes.invertMultiselectSlicer] = [
new CNativeEvent(keyCodes.S, true, false, true, false, testFlags.macOs),
new CNativeEvent(keyCodes.S, false, false, true, false)
];
const tableHotkeyTypes = {
changeFormatTableInfo : 2,
removeActiveCell : 10,
emptyRange : 11,
moveActiveCellToLeft : 12,
moveActiveCellToRight : 13,
moveActiveCellToDown : 14,
moveActiveCellToUp : 15,
reset : 16,
disableNumLock : 17,
disableScrollLock : 18,
selectColumn : 19,
selectRow : 20,
selectSheet : 21,
moveToTopCell : 24,
moveToLeftEdgeCell : 26,
selectToLeftEdgeCell : 27,
moveToLeftCell : 28,
selectToLeftCell : 29,
moveToRightEdgeCell : 30,
selectToRightEdgeCell : 31,
moveToRightCell : 32,
selectToRightCell : 33,
selectToTopCell : 34,
moveToUpCell : 35,
selectToUpCell : 36,
moveToBottomCell : 37,
selectToBottomCell : 38,
moveToDownCell : 39,
selectToDownCell : 40,
moveToFirstColumn : 41,
selectToFirstColumn : 42,
moveToLeftEdgeTop : 43,
selectToLeftEdgeTop : 44,
moveToRightBottomEdge : 45,
selectToRightBottomEdge : 46,
moveToUpperCell : 62,
contextMenu : 63,
moveToLowerCell : 64,
selectToLowerCell : 65,
selectToUpperCell : 66,
showFilterOptions : 67,
showAutoComplete : 68,
showDataValidation : 69,
openCellEditor : 70,
increaseFontSize : 71,
decreaseFontSize : 72,
};
const tableEvents = {};
tableEvents[tableHotkeyTypes.openCellEditor] = [
new CNativeEvent(keyCodes.Enter, true, false, false, false),
new CNativeEvent(keyCodes.Enter, false, false, true, false)
];
tableEvents[tableHotkeyTypes.changeFormatTableInfo] = [
new CNativeEvent(keyCodes.R, true, true, false, false)
];
tableEvents[tableHotkeyTypes.removeActiveCell] = [
new CNativeEvent(keyCodes.BackSpace, false, false, false, false)
];
tableEvents[tableHotkeyTypes.emptyRange] = [
new CNativeEvent(keyCodes.Delete, false, false, false, false)
];
tableEvents[tableHotkeyTypes.moveActiveCellToLeft] = [
new CNativeEvent(keyCodes.Tab, false, true, false, false)
];
tableEvents[tableHotkeyTypes.moveActiveCellToRight] = [
new CNativeEvent(keyCodes.Tab, false, false, false, false)
];
tableEvents[tableHotkeyTypes.moveActiveCellToDown] = [
new CNativeEvent(keyCodes.Enter, false, false, false, false)
];
tableEvents[tableHotkeyTypes.moveActiveCellToUp] = [
new CNativeEvent(keyCodes.Enter, false, true, false, false)
];
tableEvents[tableHotkeyTypes.reset] = [
new CNativeEvent(keyCodes.Esc, false, false, false, false)
];
tableEvents[tableHotkeyTypes.disableNumLock] = [
new CNativeEvent(keyCodes.NumLock, false, false, false, false, testFlags.opera)
];
tableEvents[tableHotkeyTypes.disableScrollLock] = [
new CNativeEvent(keyCodes.ScrollLock, false, false, false, false, testFlags.opera)
];
tableEvents[tableHotkeyTypes.selectColumn] = [
new CNativeEvent(keyCodes.Space, false, true, false, false)
];
tableEvents[tableHotkeyTypes.selectRow] = [
new CNativeEvent(keyCodes.Space, true, false, false, false)
];
tableEvents[tableHotkeyTypes.selectSheet] = [
new CNativeEvent(keyCodes.Space, true, true, false, false),
new CNativeEvent(keyCodes.A, true, false, false, false)
];
tableEvents[tableHotkeyTypes.moveToUpperCell] = [
new CNativeEvent(keyCodes.PageUp, false, false, false, false)
];
tableEvents[tableHotkeyTypes.selectToUpperCell] = [
new CNativeEvent(keyCodes.PageUp, false, true, false, false)
];
tableEvents[tableHotkeyTypes.moveToTopCell] = [
new CNativeEvent(keyCodes.ArrowTop, true, false, false, false)
];
tableEvents[tableHotkeyTypes.moveToBottomCell] = [
new CNativeEvent(keyCodes.ArrowBottom, true, false, false, false)
];
tableEvents[tableHotkeyTypes.moveToLowerCell] = [
new CNativeEvent(keyCodes.PageDown, false, false, false, false)
];
tableEvents[tableHotkeyTypes.selectToLowerCell] = [
new CNativeEvent(keyCodes.PageDown, false, true, false, false)
];
tableEvents[tableHotkeyTypes.moveToLeftEdgeCell] = [
new CNativeEvent(keyCodes.ArrowLeft, true, false, false, false)
];
tableEvents[tableHotkeyTypes.selectToLeftEdgeCell] = [
new CNativeEvent(keyCodes.ArrowLeft, true, true, false, false)
];
tableEvents[tableHotkeyTypes.moveToLeftCell] = [
new CNativeEvent(keyCodes.ArrowLeft, false, false, false, false)
];
tableEvents[tableHotkeyTypes.selectToLeftCell] = [
new CNativeEvent(keyCodes.ArrowLeft, false, true, false, false)
];
tableEvents[tableHotkeyTypes.moveToRightEdgeCell] = [
new CNativeEvent(keyCodes.ArrowRight, true, false, false, false),
new CNativeEvent(keyCodes.End, false, false, false, false)
];
tableEvents[tableHotkeyTypes.selectToRightEdgeCell] = [
new CNativeEvent(keyCodes.ArrowRight, true, true, false, false),
new CNativeEvent(keyCodes.End, false, true, false, false)
];
tableEvents[tableHotkeyTypes.moveToRightCell] = [
new CNativeEvent(keyCodes.ArrowRight, false, false, false, false)
];
tableEvents[tableHotkeyTypes.selectToRightCell] = [
new CNativeEvent(keyCodes.ArrowRight, false, true, false, false)
];
tableEvents[tableHotkeyTypes.selectToTopCell] = [
new CNativeEvent(keyCodes.ArrowTop, true, true, false, false)
];
tableEvents[tableHotkeyTypes.moveToUpCell] = [
new CNativeEvent(keyCodes.ArrowTop, false, false, false, false)
];
tableEvents[tableHotkeyTypes.selectToUpCell] = [
new CNativeEvent(keyCodes.ArrowTop, false, true, false, false)
];
tableEvents[tableHotkeyTypes.selectToBottomCell] = [
new CNativeEvent(keyCodes.ArrowBottom, true, true, false, false)
];
tableEvents[tableHotkeyTypes.moveToDownCell] = [
new CNativeEvent(keyCodes.ArrowBottom, false, false, false, false)
];
tableEvents[tableHotkeyTypes.selectToDownCell] = [
new CNativeEvent(keyCodes.ArrowBottom, false, true, false, false)
];
tableEvents[tableHotkeyTypes.moveToFirstColumn] = [
new CNativeEvent(keyCodes.Home, false, false, false, false)
];
tableEvents[tableHotkeyTypes.selectToFirstColumn] = [
new CNativeEvent(keyCodes.Home, false, true, false, false)
];
tableEvents[tableHotkeyTypes.moveToLeftEdgeTop] = [
new CNativeEvent(keyCodes.Home, true, false, false, false)
];
tableEvents[tableHotkeyTypes.selectToLeftEdgeTop] = [
new CNativeEvent(keyCodes.Home, true, true, false, false)
];
tableEvents[tableHotkeyTypes.moveToRightBottomEdge] = [
new CNativeEvent(keyCodes.End, true, false, false, false)
];
tableEvents[tableHotkeyTypes.selectToRightBottomEdge] = [
new CNativeEvent(keyCodes.End, true, true, false, false)
];
tableEvents[tableHotkeyTypes.contextMenu] = [new CNativeEvent(keyCodes.ContextMenu, false, false, false, false)];
tableEvents[tableHotkeyTypes.showFilterOptions] = [new CNativeEvent(keyCodes.ArrowBottom, false, false, true, false)];
tableEvents[tableHotkeyTypes.showAutoComplete] = [new CNativeEvent(keyCodes.ArrowBottom, false, false, true, false)];
tableEvents[tableHotkeyTypes.showDataValidation] = [
new CNativeEvent(keyCodes.ArrowBottom, false, false, true, false),
new CNativeEvent(keyCodes.ArrowTop, false, false, true, false)
];
tableEvents[tableHotkeyTypes.increaseFontSize] = [new CNativeEvent(keyCodes.BracketRight, true, false, false, false)];
tableEvents[tableHotkeyTypes.decreaseFontSize] = [new CNativeEvent(keyCodes.BracketLeft, true, false, false, false)];
const cellEditorHotkeyTypes = {
closeWithoutSave : 0,
addNewLine : 1,
saveAndMoveDown : 2,
saveAndMoveUp : 3,
saveAndMoveRight : 4,
saveAndMoveLeft : 5,
removeCharBack : 6,
removeWordBack : 7,
moveToEndLine : 9,
moveToEndDocument : 10,
selectToEndLine : 11,
selectToEndDocument : 12,
moveToStartLine : 13,
moveToStartDocument : 14,
selectToStartLine : 15,
selectToStartDocument: 16,
moveCursorLeftChar : 17,
moveCursorLeftWord : 18,
selectLeftChar : 19,
selectLeftWord : 20,
moveToUpLine : 21,
selectToUpLine : 22,
moveToRightChar : 23,
moveToRightWord : 24,
selectRightChar : 25,
selectRightWord : 26,
moveToDownLine : 27,
selectToDownLine : 28,
deleteFrontChar : 29,
deleteFrontWord : 30,
disableScrollLock : 36,
disableNumLock : 37,
disableF2 : 42,
increaseFontSize : 46,
decreaseFontSize : 47
};
const oCellEditorEvents = {};
oCellEditorEvents[cellEditorHotkeyTypes.closeWithoutSave] = [
new CNativeEvent(keyCodes.Esc, false, false, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.addNewLine] = [
new CNativeEvent(keyCodes.Enter, false, false, true, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.saveAndMoveDown] = [
new CNativeEvent(keyCodes.Enter, false, false, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.saveAndMoveUp] = [
new CNativeEvent(keyCodes.Enter, false, true, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.saveAndMoveRight] = [
new CNativeEvent(keyCodes.Tab, false, false, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.saveAndMoveLeft] = [
new CNativeEvent(keyCodes.Tab, false, true, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.removeCharBack] = [
new CNativeEvent(keyCodes.BackSpace, false, false, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.removeWordBack] = [
new CNativeEvent(keyCodes.BackSpace, true, false, false, false),
new CNativeEvent(keyCodes.BackSpace, false, false, true, false, testFlags.macOs),
];
oCellEditorEvents[cellEditorHotkeyTypes.moveToEndLine] = [
new CNativeEvent(keyCodes.End, false, false, false, false),
new CNativeEvent(keyCodes.ArrowRight, false, false, false, true, testFlags.macOs),
];
oCellEditorEvents[cellEditorHotkeyTypes.moveToEndDocument] = [
new CNativeEvent(keyCodes.End, true, false, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.selectToEndLine] = [
new CNativeEvent(keyCodes.End, false, true, false, false),
new CNativeEvent(keyCodes.ArrowRight, false, true, false, true, testFlags.macOs),
];
oCellEditorEvents[cellEditorHotkeyTypes.selectToEndDocument] = [
new CNativeEvent(keyCodes.End, true, true, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.moveToStartLine] = [
new CNativeEvent(keyCodes.Home, false, false, false, false),
new CNativeEvent(keyCodes.ArrowLeft, false, false, false, true, testFlags.macOs),
];
oCellEditorEvents[cellEditorHotkeyTypes.moveToStartDocument] = [
new CNativeEvent(keyCodes.Home, true, false, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.selectToStartLine] = [
new CNativeEvent(keyCodes.Home, false, true, false, false),
new CNativeEvent(keyCodes.ArrowLeft, false, true, false, true, testFlags.macOs),
];
oCellEditorEvents[cellEditorHotkeyTypes.selectToStartDocument] = [
new CNativeEvent(keyCodes.Home, true, true, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.moveCursorLeftChar] = [
new CNativeEvent(keyCodes.ArrowLeft, false, false, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.moveCursorLeftWord] = [
new CNativeEvent(keyCodes.ArrowLeft, true, false, false, false),
new CNativeEvent(keyCodes.ArrowLeft, false, false, true, false, testFlags.macOs),
];
oCellEditorEvents[cellEditorHotkeyTypes.selectLeftChar] = [
new CNativeEvent(keyCodes.ArrowLeft, false, true, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.selectLeftWord] = [
new CNativeEvent(keyCodes.ArrowLeft, true, true, false, false),
new CNativeEvent(keyCodes.ArrowLeft, false, true, true, false, testFlags.macOs),
];
oCellEditorEvents[cellEditorHotkeyTypes.moveToUpLine] = [
new CNativeEvent(keyCodes.ArrowTop, false, false, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.selectToUpLine] = [
new CNativeEvent(keyCodes.ArrowTop, false, true, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.moveToRightChar] = [
new CNativeEvent(keyCodes.ArrowRight, false, false, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.moveToRightWord] = [
new CNativeEvent(keyCodes.ArrowRight, true, false, false, false),
new CNativeEvent(keyCodes.ArrowRight, false, false, true, false, testFlags.macOs),
];
oCellEditorEvents[cellEditorHotkeyTypes.selectRightChar] = [
new CNativeEvent(keyCodes.ArrowRight, false, true, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.selectRightWord] = [
new CNativeEvent(keyCodes.ArrowRight, true, true, false, false),
new CNativeEvent(keyCodes.ArrowRight, false, true, true, false, testFlags.macOs),
];
oCellEditorEvents[cellEditorHotkeyTypes.moveToDownLine] = [
new CNativeEvent(keyCodes.ArrowBottom, false, false, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.selectToDownLine] = [
new CNativeEvent(keyCodes.ArrowBottom, false, true, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.deleteFrontChar] = [
new CNativeEvent(keyCodes.Delete, false, false, false, false)
];
oCellEditorEvents[cellEditorHotkeyTypes.deleteFrontWord] = [
new CNativeEvent(keyCodes.Delete, true, false, false, false),
new CNativeEvent(keyCodes.Delete, false, false, true, false, testFlags.macOs),
];
oCellEditorEvents[cellEditorHotkeyTypes.disableScrollLock] = [
new CNativeEvent(keyCodes.ScrollLock, false, false, false, false, testFlags.opera)
];
oCellEditorEvents[cellEditorHotkeyTypes.disableNumLock] = [
new CNativeEvent(keyCodes.NumLock, false, false, false, false, testFlags.opera)
];
oCellEditorEvents[cellEditorHotkeyTypes.disableF2] = [
new CNativeEvent(keyCodes.F2, false, false, false, false, testFlags.opera)
];
oCellEditorEvents[cellEditorHotkeyTypes.increaseFontSize] = [new CNativeEvent(keyCodes.BracketRight, true, false, false, false)];
oCellEditorEvents[cellEditorHotkeyTypes.decreaseFontSize] = [new CNativeEvent(keyCodes.BracketLeft, true, false, false, false)];
function ExecuteGraphicHotkey(type, eventIndex)
{
const event = graphicEvents[type][eventIndex || 0];
return ExecuteShortcut(event);
}
function ExecuteTableHotkey(type, eventIndex)
{
const event = tableEvents[type][eventIndex || 0];
return ExecuteShortcut(event);
}
function ExecuteCellEditorHotkey(type, eventIndex)
{
const event = oCellEditorEvents[type][eventIndex || 0];
return ExecuteShortcut(event);
}
const MockShortcutEvent = {
nShortcutType: 0,
IsShift: function () {},
IsCtrl: function () {},
GetKeyCode: function () {}
};
function ExecuteShortcut(e)
{
if (AscFormat.isRealNumber(e))
{
MockShortcutEvent.nShortcutType = e;
return Asc.editor.wb.onKeyDown(MockShortcutEvent);
}
e.enableFlags();
AscCommon.check_KeyboardEvent(e);
const res = Asc.editor.wb.onKeyDown(AscCommon.global_keyboardEvent);
e.disableFlags();
return res;
}
window.AscTestShortcut = {};
AscTestShortcut.tableHotkeyTypes = tableHotkeyTypes;
AscTestShortcut.cellEditorHotkeyTypes = cellEditorHotkeyTypes;
AscTestShortcut.graphicHotkeyTypes = graphicHotkeyTypes;
AscTestShortcut.graphicEvents = graphicEvents;
AscTestShortcut.tableEvents = tableEvents;
AscTestShortcut.ExecuteCellEditorHotkey = ExecuteCellEditorHotkey;
AscTestShortcut.ExecuteTableHotkey = ExecuteTableHotkey;
AscTestShortcut.ExecuteGraphicHotkey = ExecuteGraphicHotkey;
AscTestShortcut.ExecuteShortcut = ExecuteShortcut;
})(window);