790 lines
29 KiB
JavaScript
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);
|