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);