From b75198940f64aa62112f8c27f93a929e110c0615 Mon Sep 17 00:00:00 2001
From: Jack Reed <phillipjreed@gmail.com>
Date: Mon, 11 May 2020 07:34:17 -0600
Subject: [PATCH] Render SVG targets from WebAnnotation

---
 src/lib/AnnotationItem.js | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/src/lib/AnnotationItem.js b/src/lib/AnnotationItem.js
index c648e9b0e..e172c4d90 100644
--- a/src/lib/AnnotationItem.js
+++ b/src/lib/AnnotationItem.js
@@ -23,6 +23,8 @@ export default class AnnotationItem {
     switch (typeof target) {
       case 'string':
         return target.replace(/#?xywh=(.*)$/, '');
+      case 'object':
+        return target.id;
       default:
         return null;
     }
@@ -61,6 +63,24 @@ export default class AnnotationItem {
     switch (typeof target) {
       case 'string':
         return target;
+      case 'object':
+        return target.selector;
+      default:
+        return null;
+    }
+  }
+
+  /** */
+  get svgSelector() {
+    const { selector } = this;
+    switch (typeof selector) {
+      case 'string':
+        return null;
+      case 'object':
+        if (selector.type && selector.type === 'SvgSelector') {
+          return selector;
+        }
+        return null;
       default:
         return null;
     }
@@ -73,6 +93,8 @@ export default class AnnotationItem {
     switch (typeof selector) {
       case 'string':
         return selector.match(/xywh=(.*)$/)[1].split(',').map(str => parseInt(str, 10));
+      case 'object':
+        return selector.value.match(/xywh=(.*)$/)[1].split(',').map(str => parseInt(str, 10));
       default:
         return null;
     }
-- 
GitLab