aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/dom/savedcaretrange.js
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/dom/savedcaretrange.js')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/dom/savedcaretrange.js203
1 files changed, 0 insertions, 203 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/dom/savedcaretrange.js b/contexts/data/lib/closure-library/closure/goog/dom/savedcaretrange.js
deleted file mode 100644
index 31d3134..0000000
--- a/contexts/data/lib/closure-library/closure/goog/dom/savedcaretrange.js
+++ /dev/null
@@ -1,203 +0,0 @@
-// Copyright 2008 The Closure Library Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS-IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-/**
- * @fileoverview An API for saving and restoring ranges as HTML carets.
- *
- * @author nicksantos@google.com (Nick Santos)
- */
-
-
-goog.provide('goog.dom.SavedCaretRange');
-
-goog.require('goog.array');
-goog.require('goog.dom');
-goog.require('goog.dom.SavedRange');
-goog.require('goog.dom.TagName');
-goog.require('goog.string');
-
-
-
-/**
- * A struct for holding context about saved selections.
- * This can be used to preserve the selection and restore while the DOM is
- * manipulated, or through an asynchronous call. Use goog.dom.Range factory
- * methods to obtain an {@see goog.dom.AbstractRange} instance, and use
- * {@see goog.dom.AbstractRange#saveUsingCarets} to obtain a SavedCaretRange.
- * For editor ranges under content-editable elements or design-mode iframes,
- * prefer using {@see goog.editor.range.saveUsingNormalizedCarets}.
- * @param {goog.dom.AbstractRange} range The range being saved.
- * @constructor
- * @extends {goog.dom.SavedRange}
- */
-goog.dom.SavedCaretRange = function(range) {
- goog.dom.SavedRange.call(this);
-
- /**
- * The DOM id of the caret at the start of the range.
- * @type {string}
- * @private
- */
- this.startCaretId_ = goog.string.createUniqueString();
-
- /**
- * The DOM id of the caret at the end of the range.
- * @type {string}
- * @private
- */
- this.endCaretId_ = goog.string.createUniqueString();
-
- /**
- * A DOM helper for storing the current document context.
- * @type {goog.dom.DomHelper}
- * @private
- */
- this.dom_ = goog.dom.getDomHelper(range.getDocument());
-
- range.surroundWithNodes(this.createCaret_(true), this.createCaret_(false));
-};
-goog.inherits(goog.dom.SavedCaretRange, goog.dom.SavedRange);
-
-
-/**
- * Gets the range that this SavedCaretRage represents, without selecting it
- * or removing the carets from the DOM.
- * @return {goog.dom.AbstractRange?} An abstract range.
- */
-goog.dom.SavedCaretRange.prototype.toAbstractRange = function() {
- var range = null;
- var startCaret = this.getCaret(true);
- var endCaret = this.getCaret(false);
- if (startCaret && endCaret) {
- range = goog.dom.Range.createFromNodes(startCaret, 0, endCaret, 0);
- }
- return range;
-};
-
-
-/**
- * Gets carets.
- * @param {boolean} start If true, returns the start caret. Otherwise, get the
- * end caret.
- * @return {Element} The start or end caret in the given document.
- */
-goog.dom.SavedCaretRange.prototype.getCaret = function(start) {
- return this.dom_.getElement(start ? this.startCaretId_ : this.endCaretId_);
-};
-
-
-/**
- * Removes the carets from the current restoration document.
- * @param {goog.dom.AbstractRange=} opt_range A range whose offsets have already
- * been adjusted for caret removal; it will be adjusted if it is also
- * affected by post-removal operations, such as text node normalization.
- * @return {goog.dom.AbstractRange|undefined} The adjusted range, if opt_range
- * was provided.
- */
-goog.dom.SavedCaretRange.prototype.removeCarets = function(opt_range) {
- goog.dom.removeNode(this.getCaret(true));
- goog.dom.removeNode(this.getCaret(false));
- return opt_range;
-};
-
-
-/**
- * Sets the document where the range will be restored.
- * @param {!Document} doc An HTML document.
- */
-goog.dom.SavedCaretRange.prototype.setRestorationDocument = function(doc) {
- this.dom_.setDocument(doc);
-};
-
-
-/**
- * Reconstruct the selection from the given saved range. Removes carets after
- * restoring the selection. If restore does not dispose this saved range, it may
- * only be restored a second time if innerHTML or some other mechanism is used
- * to restore the carets to the dom.
- * @return {goog.dom.AbstractRange?} Restored selection.
- * @override
- * @protected
- */
-goog.dom.SavedCaretRange.prototype.restoreInternal = function() {
- var range = null;
- var startCaret = this.getCaret(true);
- var endCaret = this.getCaret(false);
- if (startCaret && endCaret) {
- var startNode = startCaret.parentNode;
- var startOffset = goog.array.indexOf(startNode.childNodes, startCaret);
- var endNode = endCaret.parentNode;
- var endOffset = goog.array.indexOf(endNode.childNodes, endCaret);
- if (endNode == startNode) {
- // Compensate for the start caret being removed.
- endOffset -= 1;
- }
- range = goog.dom.Range.createFromNodes(startNode, startOffset,
- endNode, endOffset);
- range = this.removeCarets(range);
- range.select();
- } else {
- // If only one caret was found, remove it.
- this.removeCarets();
- }
- return range;
-};
-
-
-/**
- * Dispose the saved range and remove the carets from the DOM.
- * @override
- * @protected
- */
-goog.dom.SavedCaretRange.prototype.disposeInternal = function() {
- this.removeCarets();
- this.dom_ = null;
-};
-
-
-/**
- * Creates a caret element.
- * @param {boolean} start If true, creates the start caret. Otherwise,
- * creates the end caret.
- * @return {Element} The new caret element.
- * @private
- */
-goog.dom.SavedCaretRange.prototype.createCaret_ = function(start) {
- return this.dom_.createDom(goog.dom.TagName.SPAN,
- {'id': start ? this.startCaretId_ : this.endCaretId_});
-};
-
-
-/**
- * A regex that will match all saved range carets in a string.
- * @type {RegExp}
- */
-goog.dom.SavedCaretRange.CARET_REGEX = /<span\s+id="?goog_\d+"?><\/span>/ig;
-
-
-/**
- * Returns whether two strings of html are equal, ignoring any saved carets.
- * Thus two strings of html whose only difference is the id of their saved
- * carets will be considered equal, since they represent html with the
- * same selection.
- * @param {string} str1 The first string.
- * @param {string} str2 The second string.
- * @return {boolean} Whether two strings of html are equal, ignoring any
- * saved carets.
- */
-goog.dom.SavedCaretRange.htmlEqual = function(str1, str2) {
- return str1 == str2 ||
- str1.replace(goog.dom.SavedCaretRange.CARET_REGEX, '') ==
- str2.replace(goog.dom.SavedCaretRange.CARET_REGEX, '');
-};