OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
reader
/
_backup
/
tinymce
/
tinymce
/
src
/
core
/
main
/
ts
/
selection
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/20/2020 05:44:43 AM
rwxr-xr-x
📄
CaretRangeFromPoint.ts
2.6 KB
02/20/2020 05:44:11 AM
rw-r--r--
📄
DetailsElement.ts
1.19 KB
02/20/2020 05:44:11 AM
rw-r--r--
📄
ElementSelection.ts
4.83 KB
02/20/2020 05:44:12 AM
rw-r--r--
📄
EventProcessRanges.ts
593 bytes
02/20/2020 05:44:12 AM
rw-r--r--
📄
FragmentReader.ts
3.82 KB
02/20/2020 05:44:13 AM
rw-r--r--
📄
GetSelectionContent.ts
2.12 KB
02/20/2020 05:44:15 AM
rw-r--r--
📄
MultiClickSelection.ts
1.64 KB
02/20/2020 05:44:16 AM
rw-r--r--
📄
MultiRange.ts
955 bytes
02/20/2020 05:44:17 AM
rw-r--r--
📄
NormalizeRange.ts
10.02 KB
02/20/2020 05:44:17 AM
rw-r--r--
📄
RangeCompare.ts
580 bytes
02/20/2020 05:44:18 AM
rw-r--r--
📄
RangeInsertNode.ts
1.52 KB
02/20/2020 05:44:18 AM
rw-r--r--
📄
RangeNodes.ts
946 bytes
02/20/2020 05:44:19 AM
rw-r--r--
📄
RangeNormalizer.ts
1.69 KB
02/20/2020 05:44:19 AM
rw-r--r--
📄
RangeWalk.ts
4.38 KB
02/20/2020 05:44:20 AM
rw-r--r--
📄
SelectionBookmark.ts
3.36 KB
02/20/2020 05:44:20 AM
rw-r--r--
📄
SelectionRestore.ts
1.98 KB
02/20/2020 05:44:21 AM
rw-r--r--
📄
SelectionUtils.ts
3.65 KB
02/20/2020 05:44:21 AM
rw-r--r--
📄
SetSelectionContent.ts
2.44 KB
02/20/2020 05:44:22 AM
rw-r--r--
📄
SimpleTableModel.ts
4.08 KB
02/20/2020 05:44:22 AM
rw-r--r--
📄
SplitRange.ts
1.94 KB
02/20/2020 05:44:23 AM
rw-r--r--
📄
TableCellSelection.ts
1.25 KB
02/20/2020 05:44:24 AM
rw-r--r--
📄
WordSelection.ts
1.47 KB
02/20/2020 05:44:24 AM
rw-r--r--
Editing: GetSelectionContent.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 { Option } from '@ephox/katamari'; import { Element } from '@ephox/sugar'; import EventProcessRanges from './EventProcessRanges'; import FragmentReader from './FragmentReader'; import MultiRange from './MultiRange'; import Zwsp from '../text/Zwsp'; import Editor from '../api/Editor'; const getTextContent = (editor: Editor): string => { return Option.from(editor.selection.getRng()).map((rng) => { const bin = editor.dom.add(editor.getBody(), 'div', { 'data-mce-bogus': 'all', 'style': 'overflow: hidden; opacity: 0;' }, rng.cloneContents()); const text = Zwsp.trim(bin.innerText); editor.dom.remove(bin); return text; }).getOr(''); }; const getHtmlContent = (editor: Editor, args: any): string => { const rng = editor.selection.getRng(), tmpElm = editor.dom.create('body'); const sel = editor.selection.getSel(); let fragment; const ranges = EventProcessRanges.processRanges(editor, MultiRange.getRanges(sel)); fragment = args.contextual ? FragmentReader.read(Element.fromDom(editor.getBody()), ranges).dom() : rng.cloneContents(); if (fragment) { tmpElm.appendChild(fragment); } return editor.selection.serializer.serialize(tmpElm, args); }; const getContent = (editor: Editor, args: any = {}): string => { args.get = true; args.format = args.format || 'html'; args.selection = true; args = editor.fire('BeforeGetContent', args); if (args.isDefaultPrevented()) { editor.fire('GetContent', args); return args.content; } if (args.format === 'text') { return getTextContent(editor); } else { args.getInner = true; const content = getHtmlContent(editor, args); if (args.format === 'tree') { return content; } else { args.content = editor.selection.isCollapsed() ? '' : content; editor.fire('GetContent', args); return args.content; } } }; export default { getContent };