OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
reader
/
_backup
/
tinymce
/
tinymce
/
src
/
core
/
main
/
ts
/
keyboard
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/20/2020 05:44:43 AM
rwxr-xr-x
📄
ArrowKeys.ts
2.28 KB
02/20/2020 05:43:50 AM
rw-r--r--
📄
BoundaryCaret.ts
2.59 KB
02/20/2020 05:43:50 AM
rw-r--r--
📄
BoundaryLocation.ts
6.56 KB
02/20/2020 05:43:51 AM
rw-r--r--
📄
BoundarySelection.ts
4.54 KB
02/20/2020 05:43:52 AM
rw-r--r--
📄
CefNavigation.ts
9.07 KB
02/20/2020 05:43:52 AM
rw-r--r--
📄
CefUtils.ts
2.54 KB
02/20/2020 05:43:53 AM
rw-r--r--
📄
ContentEndpointNavigation.ts
2.99 KB
02/20/2020 05:43:54 AM
rw-r--r--
📄
DeleteBackspaceKeys.ts
3.49 KB
02/20/2020 05:43:54 AM
rw-r--r--
📄
EnterKey.ts
1.29 KB
02/20/2020 05:43:55 AM
rw-r--r--
📄
FormatShortcuts.ts
886 bytes
02/20/2020 05:43:55 AM
rw-r--r--
📄
HomeEndKeys.ts
980 bytes
02/20/2020 05:43:56 AM
rw-r--r--
📄
InlineUtils.ts
3.26 KB
02/20/2020 05:43:56 AM
rw-r--r--
📄
InputKeys.ts
1.55 KB
02/20/2020 05:43:57 AM
rw-r--r--
📄
InsertSpace.ts
2.3 KB
02/20/2020 05:43:57 AM
rw-r--r--
📄
KeyboardOverrides.ts
1011 bytes
02/20/2020 05:43:58 AM
rw-r--r--
📄
MatchKeys.ts
1.64 KB
02/20/2020 05:43:58 AM
rw-r--r--
📄
Nbsps.ts
5.95 KB
02/20/2020 05:43:59 AM
rw-r--r--
📄
SpaceKey.ts
1 KB
02/20/2020 05:43:59 AM
rw-r--r--
📄
TableNavigation.ts
6.86 KB
02/20/2020 05:44:00 AM
rw-r--r--
Editing: CefUtils.ts
Close
/** * Copyright (c) Tiny Technologies, Inc. All rights reserved. * Licensed under the LGPL or a commercial license. * For LGPL see License.txt in the project root for license information. * For commercial licenses see https://www.tiny.cloud/ */ import { Element, Range } from '@ephox/dom-globals'; import CaretPosition from '../caret/CaretPosition'; import * as CaretUtils from '../caret/CaretUtils'; import NodeType from '../dom/NodeType'; import Editor from '../api/Editor'; const isContentEditableTrue = NodeType.isContentEditableTrue; const isContentEditableFalse = NodeType.isContentEditableFalse; const showCaret = (direction, editor: Editor, node: Element, before: boolean, scrollIntoView: boolean): Range => { // TODO: Figure out a better way to handle this dependency return editor._selectionOverrides.showCaret(direction, node, before, scrollIntoView); }; const getNodeRange = (node: Element): Range => { const rng = node.ownerDocument.createRange(); rng.selectNode(node); return rng; }; const selectNode = (editor, node: Element): Range => { const e = editor.fire('BeforeObjectSelected', { target: node }); if (e.isDefaultPrevented()) { return null; } return getNodeRange(node); }; const renderCaretAtRange = (editor: Editor, range: Range, scrollIntoView: boolean): Range => { const normalizedRange = CaretUtils.normalizeRange(1, editor.getBody(), range); const caretPosition = CaretPosition.fromRangeStart(normalizedRange); const caretPositionNode = caretPosition.getNode(); if (isContentEditableFalse(caretPositionNode)) { return showCaret(1, editor, caretPositionNode, !caretPosition.isAtEnd(), false); } const caretPositionBeforeNode = caretPosition.getNode(true); if (isContentEditableFalse(caretPositionBeforeNode)) { return showCaret(1, editor, caretPositionBeforeNode, false, false); } // TODO: Should render caret before/after depending on where you click on the page forces after now const ceRoot = editor.dom.getParent(caretPosition.getNode(), (node) => isContentEditableFalse(node) || isContentEditableTrue(node)); if (isContentEditableFalse(ceRoot)) { return showCaret(1, editor, ceRoot, false, scrollIntoView); } return null; }; const renderRangeCaret = (editor: Editor, range: Range, scrollIntoView: boolean): Range => { if (!range || !range.collapsed) { return range; } const caretRange = renderCaretAtRange(editor, range, scrollIntoView); if (caretRange) { return caretRange; } return range; }; export { showCaret, selectNode, renderCaretAtRange, renderRangeCaret };