PHP Classes

File: public/js/tinymce/src/core/src/main/js/keyboard/BoundaryCaret.js

Recommend this page to a friend!
  Classes of Abed Nego Ragil Putra   GoLavaCMS   public/js/tinymce/src/core/src/main/js/keyboard/BoundaryCaret.js   Download  
File: public/js/tinymce/src/core/src/main/js/keyboard/BoundaryCaret.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: GoLavaCMS
Publish content on Web pages with SEO support
Author: By
Last change:
Date: 6 years ago
Size: 2,867 bytes
 

Contents

Class file image Download
/** * BoundaryCaret.js * * Released under LGPL License. * Copyright (c) 1999-2017 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing */ define( 'tinymce.core.keyboard.BoundaryCaret', [ 'ephox.katamari.api.Option', 'tinymce.core.caret.CaretContainer', 'tinymce.core.caret.CaretContainerInline', 'tinymce.core.caret.CaretContainerRemove', 'tinymce.core.caret.CaretFinder', 'tinymce.core.caret.CaretPosition', 'tinymce.core.dom.NodeType', 'tinymce.core.keyboard.InlineUtils' ], function (Option, CaretContainer, CaretContainerInline, CaretContainerRemove, CaretFinder, CaretPosition, NodeType, InlineUtils) { var insertInlinePos = function (pos, before) { if (NodeType.isText(pos.container())) { return CaretContainerInline.insertInline(before, pos.container()); } else { return CaretContainerInline.insertInline(before, pos.getNode()); } }; var isPosCaretContainer = function (pos, caret) { var caretNode = caret.get(); return caretNode && pos.container() === caretNode && CaretContainer.isCaretContainerInline(caretNode); }; var renderCaret = function (caret, location) { return location.fold( function (element) { // Before CaretContainerRemove.remove(caret.get()); var text = CaretContainerInline.insertInlineBefore(element); caret.set(text); return Option.some(new CaretPosition(text, text.length - 1)); }, function (element) { // Start return CaretFinder.firstPositionIn(element).map(function (pos) { if (!isPosCaretContainer(pos, caret)) { CaretContainerRemove.remove(caret.get()); var text = insertInlinePos(pos, true); caret.set(text); return new CaretPosition(text, 1); } else { return new CaretPosition(caret.get(), 1); } }); }, function (element) { // End return CaretFinder.lastPositionIn(element).map(function (pos) { if (!isPosCaretContainer(pos, caret)) { CaretContainerRemove.remove(caret.get()); var text = insertInlinePos(pos, false); caret.set(text); return new CaretPosition(text, text.length - 1); } else { return new CaretPosition(caret.get(), caret.get().length - 1); } }); }, function (element) { // After CaretContainerRemove.remove(caret.get()); var text = CaretContainerInline.insertInlineAfter(element); caret.set(text); return Option.some(new CaretPosition(text, 1)); } ); }; return { renderCaret: renderCaret }; } );