You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@annotator.apache.org by ra...@apache.org on 2019/06/30 17:27:43 UTC

[incubator-annotator] 02/02: Move @annotator/dom scope utils to module

This is an automated email from the ASF dual-hosted git repository.

randall pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-annotator.git

commit 447ef4e2c7a10c33a37a1d6549d615b95565ce5e
Author: Randall Leeds <ra...@apache.org>
AuthorDate: Sun Jun 30 10:24:08 2019 -0700

    Move @annotator/dom scope utils to module
---
 packages/dom/src/range.js      |  9 +--------
 packages/dom/src/scope.js      | 35 +++++++++++++++++++++++++++++++++++
 packages/dom/src/text-quote.js | 23 ++---------------------
 3 files changed, 38 insertions(+), 29 deletions(-)

diff --git a/packages/dom/src/range.js b/packages/dom/src/range.js
index 2adb680..29c0708 100644
--- a/packages/dom/src/range.js
+++ b/packages/dom/src/range.js
@@ -13,16 +13,9 @@
  * the License.
  */
 
+import { ownerDocument } from './scope.js';
 import { product } from './cartesian.js';
 
-function ownerDocument(scope) {
-  if ('commonAncestorContainer' in scope) {
-    return scope.commonAncestorContainer.ownerDocument;
-  }
-
-  return scope.ownerDocument;
-}
-
 export function createRangeSelectorCreator(createSelector) {
   return function createRangeSelector(selector) {
     const startSelector = createSelector(selector.startSelector);
diff --git a/packages/dom/src/scope.js b/packages/dom/src/scope.js
new file mode 100644
index 0000000..49c6637
--- /dev/null
+++ b/packages/dom/src/scope.js
@@ -0,0 +1,35 @@
+/**
+ * @license
+ * 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.
+ */
+
+export function ownerDocument(scope) {
+  if ('commonAncestorContainer' in scope) {
+    return scope.commonAncestorContainer.ownerDocument;
+  }
+
+  return scope.ownerDocument;
+}
+
+export function rangeFromScope(scope) {
+  if ('commonAncestorContainer' in scope) {
+    return scope;
+  }
+
+  const document = scope.ownerDocument;
+  const range = document.createRange();
+
+  range.selectNodeContents(scope);
+
+  return range;
+}
diff --git a/packages/dom/src/text-quote.js b/packages/dom/src/text-quote.js
index 12e5a4a..ddebfbc 100644
--- a/packages/dom/src/text-quote.js
+++ b/packages/dom/src/text-quote.js
@@ -16,6 +16,8 @@
 import createNodeIterator from 'dom-node-iterator';
 import seek from 'dom-seek';
 
+import { ownerDocument, rangeFromScope } from './scope.js';
+
 // Node constants
 const TEXT_NODE = 3;
 
@@ -32,27 +34,6 @@ function firstTextNodeInRange(range) {
   return iter.nextNode();
 }
 
-function ownerDocument(scope) {
-  if ('commonAncestorContainer' in scope) {
-    return scope.commonAncestorContainer.ownerDocument;
-  }
-
-  return scope.ownerDocument;
-}
-
-function rangeFromScope(scope) {
-  if ('commonAncestorContainer' in scope) {
-    return scope;
-  }
-
-  const document = scope.ownerDocument;
-  const range = document.createRange();
-
-  range.selectNodeContents(scope);
-
-  return range;
-}
-
 export function createTextQuoteSelector(selector) {
   return async function* matchAll(scope) {
     const document = ownerDocument(scope);