hypothesis 1.1515.0 → 1.1516.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/boot.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";var s={"scripts/annotator.bundle.js":"scripts/annotator.bundle.js?
|
|
1
|
+
!function(){"use strict";var s={"scripts/annotator.bundle.js":"scripts/annotator.bundle.js?0ace25","styles/annotator.css":"styles/annotator.css?4b6983","styles/annotator.css.map":"styles/annotator.css.map?081c77","styles/highlights.css":"styles/highlights.css?6b4ebd","styles/highlights.css.map":"styles/highlights.css.map?241350","styles/katex.min.css":"styles/katex.min.css?58e394","styles/katex.min.css.map":"styles/katex.min.css.map?1785d7","styles/pdfjs-overrides.css":"styles/pdfjs-overrides.css?c95edf","styles/pdfjs-overrides.css.map":"styles/pdfjs-overrides.css.map?1d8ac6","styles/sidebar.css.map":"styles/sidebar.css.map?8cefc2","styles/sidebar.css":"styles/sidebar.css?01eb18","styles/ui-playground.css":"styles/ui-playground.css?b3187a","styles/ui-playground.css.map":"styles/ui-playground.css.map?ca871c","scripts/sidebar.bundle.js":"scripts/sidebar.bundle.js?809e9e","scripts/ui-playground.bundle.js":"scripts/ui-playground.bundle.js?40f275","scripts/annotator.bundle.js.map":"scripts/annotator.bundle.js.map?aa82db","scripts/ui-playground.bundle.js.map":"scripts/ui-playground.bundle.js.map?ced09b","scripts/sidebar.bundle.js.map":"scripts/sidebar.bundle.js.map?4d5029"};function t(s){s.setAttribute("data-hypothesis-asset","")}function e(s,e){var n=s.createElement("link");n.rel="stylesheet",n.type="text/css",n.href=e,t(n),s.head.appendChild(n)}function n(s,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.esModule,o=void 0===r||r,i=n.forceReload,a=void 0!==i&&i,l=s.createElement("script");o&&(l.type="module"),a&&(e+="#ts=".concat(Date.now())),l.src=e,l.async=!1,t(l),s.head.appendChild(l)}function r(s,e,n,r){var o=s.createElement("link");o.rel=e,o.href=r,o.type="application/annotator+".concat(n),t(o),s.head.appendChild(o)}function o(s,e,n){var r=s.createElement("link");r.rel="preload",r.as=e,r.href=n,"fetch"===e&&(r.crossOrigin="anonymous"),t(r),s.head.appendChild(r)}function i(s,t){return s.assetRoot+"build/"+s.manifest[t]}function a(s){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;if(-1===s.indexOf("{"))return s;var e=function(){var s,t,e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:document).currentScript;return e?(s=e.src,(t=s.match(/(https?):\/\/([^:/]+)/))?{protocol:t[1],hostname:t[2]}:null):null}(t);if(!e)throw new Error("Could not process URL template because script origin is unknown");return s=(s=s.replace("{current_host}",e.hostname)).replace("{current_scheme}",e.protocol)}if(function(){var s=[function(){return Object.fromEntries([])},function(){return new URL(document.location.href)},function(){return new Request("https://hypothes.is")},function(){return Element.prototype.attachShadow},function(){return CSS.supports("display: grid")},function(){return document.evaluate("/html/body",document,null,XPathResult.ANY_TYPE,null),!0}];try{return s.every((function(s){return s()}))}catch(s){return!1}}()){var l=function(s){for(var t={},e=s.querySelectorAll("script.js-hypothesis-config"),n=0;n<e.length;n++){var r=void 0;try{r=JSON.parse(e[n].textContent||"")}catch(s){console.warn("Could not parse settings from js-hypothesis-config tags",s),r={}}Object.assign(t,r)}return t}(document),c=a(l.assetRoot||"https://cdn.hypothes.is/hypothesis/1.1516.0/");if(document.querySelector("hypothesis-app")){!function(s,t){o(s,"fetch",t.apiUrl),o(s,"fetch",t.apiUrl+"links");for(var r=0,a=["scripts/sidebar.bundle.js"];r<a.length;r++)n(s,i(t,a[r]),{esModule:!0});for(var l=0,c=["styles/katex.min.css","styles/sidebar.css"];l<c.length;l++)e(s,i(t,c[l]))}(document,{assetRoot:c,manifest:s,apiUrl:l.apiUrl})}else{var p=function(){var s;return null===(s=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:window).chrome)||void 0===s||null===(s=s.runtime)||void 0===s?void 0:s.id}();if(p&&!function(s){return!!(arguments.length>1&&void 0!==arguments[1]?arguments[1]:document).querySelector("script.js-hypothesis-config[data-extension-id=".concat(s,"]"))}(p))throw new Error("Could not start Hypothesis extension as configuration is missing");var u=l,d=a(u.notebookAppUrl||"https://hypothes.is/notebook"),h=a(u.profileAppUrl||"https://hypothes.is/user-profile"),y=a(u.sidebarAppUrl||"https://hypothes.is/app.html");!function(s,t){if(!s.querySelector('link[type="application/annotator+html"]')){r(s,"sidebar","html",t.sidebarAppUrl),r(s,"notebook","html",t.notebookAppUrl),r(s,"profile","html",t.profileAppUrl),o(s,"style",i(t,"styles/annotator.css")),r(s,"hypothesis-client","javascript",t.assetRoot+"build/boot.js");for(var a=0,l=["scripts/annotator.bundle.js"];a<l.length;a++)n(s,i(t,l[a]),{esModule:!1});var c=[];void 0!==window.PDFViewerApplication&&c.push("styles/pdfjs-overrides.css"),c.push("styles/highlights.css");for(var p=0,u=c;p<u.length;p++)e(s,i(t,u[p]))}}(document,{assetRoot:c,manifest:s,notebookAppUrl:d,profileAppUrl:h,sidebarAppUrl:y})}}else console.warn("The Hypothesis annotation tool is not supported in this browser. See https://web.hypothes.is/help/which-browsers-are-supported-by-hypothesis/.")}();
|
package/build/manifest.json
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
|
-
"scripts/annotator.bundle.js": "scripts/annotator.bundle.js?
|
|
2
|
+
"scripts/annotator.bundle.js": "scripts/annotator.bundle.js?0ace25",
|
|
3
3
|
"styles/annotator.css": "styles/annotator.css?4b6983",
|
|
4
4
|
"styles/annotator.css.map": "styles/annotator.css.map?081c77",
|
|
5
5
|
"styles/highlights.css": "styles/highlights.css?6b4ebd",
|
|
6
6
|
"styles/highlights.css.map": "styles/highlights.css.map?241350",
|
|
7
7
|
"styles/katex.min.css": "styles/katex.min.css?58e394",
|
|
8
8
|
"styles/katex.min.css.map": "styles/katex.min.css.map?1785d7",
|
|
9
|
-
"styles/pdfjs-overrides.css.map": "styles/pdfjs-overrides.css.map?1d8ac6",
|
|
10
9
|
"styles/pdfjs-overrides.css": "styles/pdfjs-overrides.css?c95edf",
|
|
10
|
+
"styles/pdfjs-overrides.css.map": "styles/pdfjs-overrides.css.map?1d8ac6",
|
|
11
11
|
"styles/sidebar.css.map": "styles/sidebar.css.map?8cefc2",
|
|
12
12
|
"styles/sidebar.css": "styles/sidebar.css?01eb18",
|
|
13
13
|
"styles/ui-playground.css": "styles/ui-playground.css?b3187a",
|
|
14
14
|
"styles/ui-playground.css.map": "styles/ui-playground.css.map?ca871c",
|
|
15
|
-
"scripts/sidebar.bundle.js": "scripts/sidebar.bundle.js?
|
|
15
|
+
"scripts/sidebar.bundle.js": "scripts/sidebar.bundle.js?809e9e",
|
|
16
16
|
"scripts/ui-playground.bundle.js": "scripts/ui-playground.bundle.js?40f275",
|
|
17
17
|
"scripts/annotator.bundle.js.map": "scripts/annotator.bundle.js.map?aa82db",
|
|
18
18
|
"scripts/ui-playground.bundle.js.map": "scripts/ui-playground.bundle.js.map?ced09b",
|
|
19
|
-
"scripts/sidebar.bundle.js.map": "scripts/sidebar.bundle.js.map?
|
|
19
|
+
"scripts/sidebar.bundle.js.map": "scripts/sidebar.bundle.js.map?4d5029"
|
|
20
20
|
}
|
|
@@ -142,7 +142,7 @@ this._sidebarRPC.on("loadAnnotations",(async e=>{try{await Promise.all(e.map((e=
|
|
|
142
142
|
;const t=e=>{const t=Br(e);if(!t)return;const n=gi(t,e.annotation?.$cluster);n.forEach((t=>{t._annotation=e.annotation})),e.highlights=n,this._hoveredAnnotations.has(e.annotation.$tag)&&vi(n,!0)};this.detach(e.$tag,!1),this._annotations.add(e.$tag),e.target||(e.target=[]);const n=await Promise.all(e.target.map((async t=>{if(!t.selector||!t.selector.some((e=>"TextQuoteSelector"===e.type)))return{annotation:e,target:t};let n;try{const i=await this._integration.anchor(this.element,t.selector),o=ri.fromRange(i);n={annotation:e,target:t,range:o}}catch(i){n={annotation:e,target:t}}return n})));if(!this._annotations.has(e.$tag))return[];for(const e of n)t(e);return e.$orphan=n.length>0&&n.every((e=>e.target.selector&&!e.range)),this._updateAnchors(this.anchors.concat(n),!0),this._sidebarRPC.call("syncAnchoringStatus",e),n}detach(e,t=!0){this._annotations.delete(e);const n=[];for(const t of this.anchors)t.annotation.$tag!==e?n.push(t):t.highlights&&bi(t.highlights);this._updateAnchors(n,t)}_updateAnchors(e,t){
|
|
143
143
|
this.anchors=e,this._clusterToolbar?.scheduleClusterUpdates(),t&&this._bucketBarClient.update(this.anchors)}async createAnnotation({highlight:e=!1}={}){const t=this.selectedRanges;this.selectedRanges=[];const n=await this.getDocumentInfo(),i=this.element,r=(await Promise.all(t.map((e=>this._integration.describe(i,e))))).map((e=>({source:n.uri,selector:e}))),s={uri:n.uri,document:n.metadata,target:r,$highlight:e,$cluster:e?"user-highlights":"user-annotations",$tag:"a:"+o(8)};return this._sidebarRPC.call("createAnnotation",s),this.anchor(s),Dr(),s}_hoverAnnotations(e){this._hoveredAnnotations.clear(),e.forEach((e=>this._hoveredAnnotations.add(e)));for(const t of this.anchors)if(t.highlights){const n=e.includes(t.annotation.$tag);vi(t.highlights,n)}this._sidebarRPC.call("hoverAnnotations",e)}_onSelection(e){const t=this._integration.getAnnotatableRange(e);if(!t)return void this._onClearSelection();const n=document.getSelection(),i=ui(n),o=fi(n);o?(this.selectedRanges=[t],this._hostRPC.call("textSelected"),
|
|
144
144
|
this._adder.annotationsForSelection=Mr(),this._isAdderVisible=!0,this._adder.show(o,i)):this._onClearSelection()}_onClearSelection(){this._isAdderVisible=!1,this._adder.hide(),this.selectedRanges=[],this._informHostOnNextSelectionClear&&this._hostRPC.call("textUnselected"),this._informHostOnNextSelectionClear=!0}selectAnnotations(e,{toggle:t=!1,focusInSidebar:n=!1}={}){t?this._sidebarRPC.call("toggleAnnotationSelection",e):this._sidebarRPC.call("showAnnotations",e,n),this._sidebarRPC.call("openSidebar")}setHighlightsVisible(e,t=!0){!function(e,t){e.classList.toggle("hypothesis-highlights-always-on",t)}(this.element,e),this._highlightsVisible=e,t&&this._hostRPC.call("highlightsVisibleChanged",e)}get highlightsVisible(){return this._highlightsVisible}fitSideBySide(e){this._sidebarLayout=e,this._integration.fitSideBySide(e)}get hoveredAnnotationTags(){return this._hoveredAnnotations}_handleShortcut(e){at(e,"Ctrl+Shift+H")&&this.setHighlightsVisible(!this._highlightsVisible)}_setOutsideAssignmentNoticeVisible(e){
|
|
145
|
-
this._outsideAssignmentNotice||(this._outsideAssignmentNotice=new Pr(this.element)),this._outsideAssignmentNotice.setVisible(e)}}function Vr(e,t){const n=new URL(e),i=new URLSearchParams;return i.append("config",JSON.stringify(t)),n.hash=i.toString(),n.toString()}function Ur(e,t){const n={};for(const[e,i]of Object.entries(t))"notebookAppUrl"!==e&&"sidebarAppUrl"!==e&&null!=i&&(n[e]=i);n.origin=new URL(e).origin,n.version="1.
|
|
145
|
+
this._outsideAssignmentNotice||(this._outsideAssignmentNotice=new Pr(this.element)),this._outsideAssignmentNotice.setVisible(e)}}function Vr(e,t){const n=new URL(e),i=new URLSearchParams;return i.append("config",JSON.stringify(t)),n.hash=i.toString(),n.toString()}function Ur(e,t){const n={};for(const[e,i]of Object.entries(t))"notebookAppUrl"!==e&&"sidebarAppUrl"!==e&&null!=i&&(n[e]=i);n.origin=new URL(e).origin,n.version="1.1516.0";const i=new URL(window.location.href);if(i.hash="",n.hostURL=i.toString(),Array.isArray(n.services)&&n.services?.length>0){const e=n.services[0];e.onLoginRequest&&(e.onLoginRequestProvided=!0),e.onLogoutRequest&&(e.onLogoutRequestProvided=!0),e.onSignupRequest&&(e.onSignupRequestProvided=!0),e.onProfileRequest&&(e.onProfileRequestProvided=!0),e.onHelpRequest&&(e.onHelpRequestProvided=!0)}return n}function qr({closed:e,onClose:t,children:n,"data-testid":i,"aria-label":o}){const r=Ye(null);return je((()=>{e?r.current?.close():r.current?.showModal()}),[e]),je((()=>{const e=r.current
|
|
146
146
|
;return e?.addEventListener("cancel",t),()=>{e?.removeEventListener("cancel",t)}}),[t]),wt("dialog",{ref:r,className:"relative w-full h-full backdrop:bg-black/50","data-testid":i,"aria-label":o,children:n})}function Wr({closed:e,children:t,...n}){return wt("div",{...n,className:vt("fixed z-max top-0 left-0 right-0 bottom-0 p-3 bg-black/50",{hidden:e}),children:wt("div",{className:"relative w-full h-full",children:t})})}function $r({document_:e=document,...t}){return wt(Ge((()=>function(e){return"function"==typeof e.createElement("dialog").showModal}(e)?qr:Wr),[e]),{...t})}function zr({config:e,groupId:t}){return wt("iframe",{title:"Hypothesis annotation notebook",className:"h-full w-full border-0",allow:"fullscreen; clipboard-write",src:Vr(e.notebookAppUrl,{...Ur(e.notebookAppUrl,e),group:t})})}function jr({eventBus:e,config:t}){const[n,i]=ze(0),[o,r]=ze(!0),[s,a]=ze(null),l=Ye(""),c=Ye(null);je((()=>(l.current=document.body.style.overflow,()=>{document.body.style.overflow=l.current})),[]),je((()=>{
|
|
147
147
|
document.body.style.overflow=o?l.current:"hidden"}),[o]),je((()=>{const t=e.createEmitter();return t.subscribe("openNotebook",(e=>{r(!1),i((e=>e+1)),a(e)})),c.current=t,()=>{t.destroy()}}),[e]);const u=Ke((()=>{r(!0),c.current?.publish("closeNotebook")}),[]);return null===s?null:wt($r,{closed:o,onClose:u,"data-testid":"notebook-outer","aria-label":"Hypothesis notebook",children:[wt("div",{className:"absolute right-0 m-3",children:wt(_n,{title:"Close notebook",onClick:u,variant:"dark",classes:vt("!bg-transparent enabled:hover:!bg-grey-3"),"data-testid":"close-button",children:wt(Tt,{className:"w-4 h-4"})})}),wt(zr,{config:t,groupId:s},n)]})}class Xr{constructor(e,t,n){this._container=new Xn("notebook",(()=>wt(jr,{eventBus:t,config:n}))),e.append(this._container.element),this._container.render()}destroy(){this._container.destroy()}}function Yr({eventBus:e,config:t}){const[n,i]=ze(!0),o=Ye(null);je((()=>{const t=e.createEmitter();return t.subscribe("openProfile",(()=>{i(!1)})),o.current=t,()=>{t.destroy()}
|
|
148
148
|
}),[e]);const r=()=>{i(!0),o.current?.publish("closeProfile")};return n?null:wt($r,{closed:n,onClose:r,"data-testid":"profile-outer","aria-label":"Hypothesis profile",children:[wt("div",{className:"absolute right-0 m-3",children:wt(_n,{title:"Close profile dialog",onClick:r,variant:"dark",classes:vt("!bg-transparent enabled:hover:!bg-grey-3"),children:wt(Tt,{className:"w-4 h-4"})})}),wt("iframe",{title:"Hypothesis profile",className:"h-full w-full border-0",src:t.profileAppUrl})]})}class Gr{constructor(e,t,n){this._container=new Xn("profile",(()=>wt(Yr,{eventBus:t,config:n}))),e.append(this._container.element),this._container.render()}destroy(){this._container.destroy()}}var Kr={exports:{}};!function(e){!function(t,n,i,o){var r,s=["","webkit","Moz","MS","ms","o"],a=n.createElement("div"),l="function",c=Math.round,u=Math.abs,h=Date.now;function d(e,t,n){return setTimeout(v(e,n),t)}function f(e,t,n){return!!Array.isArray(e)&&(m(e,n[t],n),!0)}function m(e,t,n){var i
|
|
@@ -554,7 +554,7 @@ const Af=/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5
|
|
|
554
554
|
;return n<r?-1:n>r?1:0},Location:(e,t)=>{if(!e.annotation||!t.annotation)return function(e,t){return e.annotation||t.annotation?e.annotation?1:-1:0}(e,t);const n=ri(e.annotation),r=ri(t.annotation);if(n.cfi&&r.cfi){const e=_f(n.cfi,r.cfi);if(0!==e)return Math.sign(e)}else{if(n.cfi)return-1;if(r.cfi)return 1}const o=n.position??Number.MAX_SAFE_INTEGER,i=r.position??Number.MAX_SAFE_INTEGER;return Math.sign(o-i)}};const qf=function(e){if(1!==e.length)throw new Error("Memoize input must be a function of one argument");let t,n;return function(r){return r===t||(t=r,n=e(r)),n}}((function(e){const t=e.selection,n={expanded:t.expanded,forcedVisible:t.forcedVisible,selected:t.selected,sortCompareFn:jf[t.sortKey]};if(!!t.filterQuery||Object.keys(t.filters).length>0){const e=function(e,t={}){const n=e=>{const n=t[e];return"string"==typeof n?[n]:[]},r=n("cfi"),o=n("page"),i=n("quote"),a=n("tag"),s=n("text"),l=n("uri"),c=n("user"),u=[],d=[],h=Pf(e,zf);for(const e of h){
|
|
555
555
|
const t=e.slice(0,e.indexOf(":")),n=e.slice(t.length+1);switch(t){case"cfi":r.push(n);break;case"quote":i.push(n);break;case"page":o.push(n);break;case"since":{const t=86400,n={sec:1,min:60,hour:3600,day:t,week:7*t,month:30*t,year:365*t},r=e.slice(6).toLowerCase().match(/^(\d+)(sec|min|hour|day|week|month|year)?$/);if(r){const e=parseFloat(r[1]),t=r[2]||"sec";d.push(e*n[t])}}break;case"tag":a.push(n);break;case"text":s.push(n);break;case"uri":l.push(n);break;case"user":c.push(n);break;default:u.push(e)}}return{any:{terms:u,operator:"and"},cfi:{terms:r,operator:"or"},quote:{terms:i,operator:"and"},page:{terms:o,operator:"or"},since:{terms:d,operator:"and"},tag:{terms:a,operator:"and"},text:{terms:s,operator:"and"},uri:{terms:l,operator:"or"},user:{terms:c,operator:"or"}}}(t.filterQuery||"",t.filters);n.filterFn=t=>function(e,t){const n=(e,t)=>new Tf(t,If[e]),r=Object.entries(t).filter((([,e])=>e.terms.length>0)).map((([e,t])=>{let r;if("any"===e){const e=["quote","text","tag","user"]
|
|
556
556
|
;r=t.terms.map((t=>new Cf("or",e.map((e=>n(e,t))))))}else r=t.terms.map((t=>n(e,t)));return new Cf(t.operator,r)})),o=new Cf("and",r);return e.filter((e=>e.id&&o.matches(e))).map((e=>e.id))}([t],e).length>0}const r=vf(e.annotations,n),o={annotation:0,note:0,orphan:0};return e.showTabs&&(r.children=r.children.filter((e=>{if(!e.annotation)return!1;if(Xo(e.annotation))return!1;const n=Ff(e.annotation);return o[n]+=1,n===t.selectedTab}))),{tabCounts:o,rootThread:r}}));function $f(){const e=Ha(),t=e.allAnnotations(),n=e.filterQuery(),r=e.route(),o=e.selectionState(),i=e.getFilterValues(),a="sidebar"===r,s=ce((()=>{const e={...o,filterQuery:n,filters:i};return{annotations:t,selection:e,showTabs:a}}),[t,n,o,i,a]);return qf(s)}var Uf=lo((function({loadAnnotationsService:e,onLogin:t}){const n=Ha(),r=n.routeParams().id??"",{rootThread:o}=$f(),i=n.profile().userid,[a,s]=oe(!1);return ae((()=>{s(!1),n.clearAnnotations(),e.loadThread(r).then((e=>{const t=e.filter((e=>0===(e.references||[]).length))[0]
|
|
557
|
-
;t&&(e.forEach((e=>e.id&&n.setExpanded(e.id,!0))),t.id!==r&&n.highlightAnnotations([r]))})).catch((()=>{s(!0)}))}),[r,i,e,n]),Pe(_,{children:[a&&Pe(ja,{errorType:"annotation",onLoginRequest:t}),Pe(sf,{threads:o.children})]})}),["loadAnnotationsService"]);class Gf{constructor(e,t,n=window){const r="N/A";let o=r;e.userid&&(o=e.userid,e.displayName&&(o=`${e.displayName} (${o})`)),this.version="1.
|
|
557
|
+
;t&&(e.forEach((e=>e.id&&n.setExpanded(e.id,!0))),t.id!==r&&n.highlightAnnotations([r]))})).catch((()=>{s(!0)}))}),[r,i,e,n]),Pe(_,{children:[a&&Pe(ja,{errorType:"annotation",onLoginRequest:t}),Pe(sf,{threads:o.children})]})}),["loadAnnotationsService"]);class Gf{constructor(e,t,n=window){const r="N/A";let o=r;e.userid&&(o=e.userid,e.displayName&&(o=`${e.displayName} (${o})`)),this.version="1.1516.0",this.userAgent=n.navigator.userAgent,this.urls=t.map((e=>e.uri)).join(", ")||r,this.fingerprint=t[0]?.metadata?.documentFingerprint??r,this.account=o,this.timestamp=(new Date).toString();const i=t[0]?.segment;if(i){const e=[];if(i.cfi&&e.push(["CFI",i.cfi]),i.pages){const t=`${i.pages.start}-${i.pages.end}`;e.push(["Pages",t])}i.url&&e.push(["URL",i.url]),this.segment=e.map((([e,t])=>`${e}: ${t}`)).join(", ")}}asFormattedString(){return`Version: ${this.version}\nUser Agent: ${this.userAgent}\nURL: ${this.urls}\nFingerprint: ${this.fingerprint}\nAccount: ${this.account}\nDate: ${this.timestamp}\n`}
|
|
558
558
|
asEncodedURLString(){return encodeURIComponent(this.asFormattedString())}}var Vf="complete",Wf="canceled";function Kf(e,t,n){e.self===e?e.scrollTo(t,n):(e.scrollLeft=t,e.scrollTop=n)}function Yf(e){var t=e._scrollSettings;if(t){var n=t.maxSynchronousAlignments,r=function(e,t){var n,r,o,i,a,s,l,c=e.align,u=e.target.getBoundingClientRect(),d=c&&null!=c.left?c.left:.5,h=c&&null!=c.top?c.top:.5,m=c&&null!=c.leftOffset?c.leftOffset:0,p=c&&null!=c.topOffset?c.topOffset:0,f=d,g=h;if(e.isWindow(t))s=Math.min(u.width,t.innerWidth),l=Math.min(u.height,t.innerHeight),r=u.left+t.pageXOffset-t.innerWidth*f+s*f,o=u.top+t.pageYOffset-t.innerHeight*g+l*g,r-=m,o-=p,r=e.align.lockX?t.pageXOffset:r,o=e.align.lockY?t.pageYOffset:o,i=r-t.pageXOffset,a=o-t.pageYOffset;else{s=u.width,l=u.height,n=t.getBoundingClientRect();var v=u.left-(n.left-t.scrollLeft),b=u.top-(n.top-t.scrollTop);r=v+s*f-t.clientWidth*f,o=b+l*g-t.clientHeight*g,r-=m,o-=p,r=Math.max(Math.min(r,t.scrollWidth-t.clientWidth),0),
|
|
559
559
|
o=Math.max(Math.min(o,t.scrollHeight-t.clientHeight),0),r=e.align.lockX?t.scrollLeft:r,o=e.align.lockY?t.scrollTop:o,i=r-t.scrollLeft,a=o-t.scrollTop}return{x:r,y:o,differenceX:i,differenceY:a}}(t,e),o=Date.now()-t.startTime,i=Math.min(1/t.time*o,1);if(t.endIterations>=n)return Kf(e,r.x,r.y),e._scrollSettings=null,t.end(Vf);var a=1-t.ease(i);if(Kf(e,r.x-r.differenceX*a,r.y-r.differenceY*a),o>=t.time)return t.endIterations++,t.scrollAncestor&&Yf(t.scrollAncestor),void Yf(e);!function(e){if("requestAnimationFrame"in window)return window.requestAnimationFrame(e);setTimeout(e,16)}(Yf.bind(null,e))}}function Xf(e){return e.self===e}function Jf(e){return"pageXOffset"in e||(e.scrollHeight!==e.clientHeight||e.scrollWidth!==e.clientWidth)&&"hidden"!==getComputedStyle(e).overflow}function Qf(){return!0}function Zf(e){if(e.assignedSlot)return Zf(e.assignedSlot)
|
|
560
560
|
;if(e.parentElement)return"body"===e.parentElement.tagName.toLowerCase()?e.parentElement.ownerDocument.defaultView||e.parentElement.ownerDocument.ownerWindow:e.parentElement;if(e.getRootNode){var t=e.getRootNode();if(11===t.nodeType)return t.host}}var eg=function(e,t,n){if(e){"function"==typeof t&&(n=t,t=null),t||(t={}),t.time=isNaN(t.time)?1e3:t.time,t.ease=t.ease||function(e){return 1-Math.pow(1-e,e/2)},t.align=t.align||{};var r=Zf(e),o=1,i=t.validTarget||Qf,a=t.isScrollable;t.debug&&(console.log("About to scroll to",e),r||console.error("Target did not have a parent, is it mounted in the DOM?"));for(var s=[];r;)if(t.debug&&console.log("Scrolling parent node",r),i(r,o)&&(a?a(r,Jf):Jf(r))&&(o++,s.push(r)),!(r=Zf(r))){l(Vf);break}return s.reduce(((n,r,o)=>function(e,t,n,r,o){var i,a=!t._scrollSettings,s=t._scrollSettings,l=Date.now(),c={passive:!0};function u(e){t._scrollSettings=null,t.parentElement&&t.parentElement._scrollSettings&&t.parentElement._scrollSettings.end(e),
|
|
@@ -641,7 +641,7 @@ null==v._nextState&&null==v.__s&&(v._nextState=v.__s=v.state),v.context=y,h.getD
|
|
|
641
641
|
}),Pe("body",{children:[Pe("section",{children:[Pe("h1",{children:"Summary"}),Pe("p",{children:Pe("time",{dateTime:o.toISOString(),children:qp(o)})}),Pe("p",{children:Pe("strong",{children:a})}),Pe("p",{children:Pe("a",{href:i,target:"_blank",rel:"noopener noreferrer",children:i})}),Pe("table",{children:Pe("tbody",{style:{verticalAlign:"top"},children:[Pe("tr",{children:[Pe("td",{children:"Group:"}),Pe("td",{children:t})]}),Pe("tr",{children:[Pe("td",{children:"Total users:"}),Pe("td",{children:s.length})]}),Pe("tr",{children:[Pe("td",{children:"Users:"}),Pe("td",{children:s.join(", ")})]}),Pe("tr",{children:[Pe("td",{children:"Total annotations:"}),Pe("td",{children:e.length})]}),Pe("tr",{children:[Pe("td",{children:"Total replies:"}),Pe("td",{children:l.length})]})]})})]}),Pe("hr",{}),Pe("section",{children:[Pe("h1",{children:"Annotations"}),e.map(((e,t)=>{const n=ai(e),r=oi(e),o=Km(e.text),i=o===`<p>${e.text}</p>`?e.text:o;return Pe("article",{children:[Pe("h2",{children:["Annotation ",t+1,":"]
|
|
642
642
|
}),Pe("table",{children:Pe("tbody",{style:{verticalAlign:"top"},children:[Pe("tr",{children:[Pe("td",{children:"Created at:"}),Pe("td",{children:Pe("time",{dateTime:e.created,children:qp(new Date(e.created))})})]}),Pe("tr",{children:[Pe("td",{children:"Author:"}),Pe("td",{children:c(e)})]}),n&&Pe("tr",{children:[Pe("td",{children:"Page:"}),Pe("td",{children:n})]}),Pe("tr",{children:[Pe("td",{children:"Type:"}),Pe("td",{children:ni(e)})]}),r&&Pe("tr",{children:[Pe("td",{children:"Quote:"}),Pe("td",{children:Pe("blockquote",{style:{margin:0},children:r})})]}),Pe("tr",{children:[Pe("td",{children:"Comment:"}),Pe("td",{dangerouslySetInnerHTML:{__html:i}})]}),e.tags.length>0&&Pe("tr",{children:[Pe("td",{children:"Tags:"}),Pe("td",{children:e.tags.join(", ")})]})]})})]},e.id)}))]})]})]}),{},{pretty:!0}).replace(/\t/g," ")}_exportCommon(e,{displayNamesEnabled:t,defaultAuthority:n}){const[r]=e;if(!r)throw new Error("No annotations to export");const o=e=>gs(e,n,t),{uri:i,title:a}=jo(r);return{uri:i,title:a,
|
|
643
643
|
uniqueUsers:[...new Set(e.map((e=>o(e))).filter(Boolean))],replies:e.filter((e=>Go(e))),extractUsername:o}}}Bb.$inject=[];class Hb extends Error{constructor(e,t,n=""){let r="Network request failed";t&&(r+=` (${t.status})`),n&&(r+=`: ${n}`),super(r),this.url=e,this.response=t,this.reason=n}}async function jb(e,t){let n,r;try{n=await fetch(e,t)}catch(t){throw new Hb(e,null,t.message)}if(204===n.status)return null;try{r=await n.json()}catch(t){throw new Hb(e,n,"Failed to parse response")}if(!n.ok)throw new Hb(e,n,r?.reason);return r}class qb{constructor(e,t,n){this._clientId=null;const r=e.routes(),o=()=>this._clientId,i=e=>function(e,t,{getAccessToken:n,getClientId:r,onRequestStarted:o,onRequestFinished:i}){return async(a,s)=>{o();try{const[o,i]=await Promise.all([e,n()]),l=function(e,t){let n=e;const r=t.split(".");for(const[e,t]of r.entries()){const o=n[t];if(!o||"url"in o){if(o&&e===r.length-1)return o;break}n=o}return null}(o,t);if(!l)throw new Error(`Missing API route: ${t}`);const c={
|
|
644
|
-
"Content-Type":"application/json","Hypothesis-Client-Version":"1.
|
|
644
|
+
"Content-Type":"application/json","Hypothesis-Client-Version":"1.1516.0"};i&&(c.Authorization="Bearer "+i);const u=r();u&&(c["X-Client-Id"]=u);const{url:d,unusedParams:h}=ha(l.url,a),m=new URL(d);for(const[e,t]of Object.entries(h)){const n=Array.isArray(t)?t:[t];for(const t of n)null!=t&&m.searchParams.append(e,t.toString())}return await jb(m.toString(),{body:s?JSON.stringify(Fb(s)):null,headers:c,method:l.method})}finally{i()}}}(r,e,{getAccessToken:()=>t.getAccessToken(),getClientId:o,onRequestStarted:n.apiRequestStarted,onRequestFinished:n.apiRequestFinished});this.search=i("search"),this.annotation={create:i("annotation.create"),delete:i("annotation.delete"),get:i("annotation.read"),update:i("annotation.update"),flag:i("annotation.flag"),hide:i("annotation.hide"),unhide:i("annotation.unhide")},this.group={member:{delete:i("group.member.delete")},read:i("group.read")},this.groups={list:i("groups.read")},this.profile={groups:{read:i("profile.groups.read")},read:i("profile.read"),update:i("profile.update")},
|
|
645
645
|
this.analytics={events:{create:i("analytics.events.create")}}}setClientId(e){this._clientId=e}}qb.$inject=["apiRoutes","auth","store"];var $b={};function Ub(e,t){"boolean"==typeof t&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}var Gb=Ub;Ub.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)},Ub.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null},Ub.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=(new Date).getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.push(e),
|
|
646
646
|
this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(e);var n=this._timeouts.shift();if(void 0===n){if(!this._cachedTimeouts)return!1;this._errors.splice(0,this._errors.length-1),n=this._cachedTimeouts.slice(-1)}var r=this;return this._timer=setTimeout((function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout((function(){r._operationTimeoutCb(r._attempts)}),r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)}),n),this._options.unref&&this._timer.unref(),!0},Ub.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout((function(){n._operationTimeoutCb()}),n._operationTimeout)),this._operationStart=(new Date).getTime(),this._fn(this._attempts)},Ub.prototype.try=function(e){console.log("Using RetryOperation.try() is deprecated"),this.attempt(e)},Ub.prototype.start=function(e){
|
|
647
647
|
console.log("Using RetryOperation.start() is deprecated"),this.attempt(e)},Ub.prototype.start=Ub.prototype.try,Ub.prototype.errors=function(){return this._errors},Ub.prototype.attempts=function(){return this._attempts},Ub.prototype.mainError=function(){if(0===this._errors.length)return null;for(var e={},t=null,n=0,r=0;r<this._errors.length;r++){var o=this._errors[r],i=o.message,a=(e[i]||0)+1;e[i]=a,a>=n&&(t=o,n=a)}return t},function(e){var t=Gb;e.operation=function(n){var r=e.timeouts(n);return new t(r,{forever:n&&(n.forever||n.retries===1/0),unref:n&&n.unref,maxRetryTime:n&&n.maxRetryTime})},e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1e3,maxTimeout:1/0,randomize:!1};for(var n in e)t[n]=e[n];if(t.minTimeout>t.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var r=[],o=0;o<t.retries;o++)r.push(this.createTimeout(o,t));return e&&e.forever&&!r.length&&r.push(this.createTimeout(o,t)),r.sort((function(e,t){return e-t})),r},
|
|
@@ -669,10 +669,10 @@ logo:"data:image/svg+xml;utf8,"+encodeURIComponent('<?xml version="1.0" encoding
|
|
|
669
669
|
;const[l,c,u,d,h]=await Promise.all([this._api.profile.groups.read({expand:gy}),this._api.groups.list(a),this._auth.getAccessToken(),r,i]);h&&!c.some((e=>e.id===h.id))&&c.push(h);let m=null;if(d){m=d.group;const e=l.concat(c).find((e=>e.id===d.group));if(!e)try{const e=await this._fetchGroup(d.group);c.push(e)}catch(e){this._toastMessenger.error("Unable to fetch group for linked annotation")}}const p=null!==u,f=await this._filterGroups(Ov(l,c,t,this._settings),p,m,o),g=m||o||null;return this._addGroupsToStore(f,g),f}async _loadServiceSpecifiedGroups(e){const t=await this._api.profile.groups.read({expand:gy});let n=null;const r=async e=>{try{return await this._fetchGroup(e)}catch(e){return n=e,null}},o=await Promise.all(e.map((e=>t.find((t=>t.id===e||t.groupid===e))||r(e)))),i=o.filter((e=>null!==e)),a=this._store.directLinkedGroupId();return this._addGroupsToStore(i,a),n&&this._toastMessenger.error(`Unable to fetch groups: ${n.message}`,{autoDismiss:!1}),i}async load(){const e=this._serviceConfig?.groups
|
|
670
670
|
;if(Array.isArray(e)||(t=e,"function"==typeof t?.then)){let t=[];try{t=await e}catch(e){this._toastMessenger.error(`Unable to fetch group configuration: ${e.message}`)}return this._loadServiceSpecifiedGroups(t)}return this._loadGroupsForUserAndDocument();var t}focus(e){const t=this._store.focusedGroupId();this._store.focusGroup(e);const n=this._store.focusedGroupId();if(t!==n&&null!==t&&n){const e=this._store.newAnnotations().filter((e=>!Go(e))).map((e=>({...e,group:n})));e.length&&this._store.addAnnotations(e),this._store.setDefault("focusedGroup",n)}}leave(e){return this._api.group.member.delete({pubid:e,userid:"me"})}}vy.$inject=["store","api","auth","settings","toastMessenger"];const by=Object.prototype.toString;function yy(e){switch(by.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return Cy(e,Error)}}function _y(e,t){return by.call(e)===`[object ${t}]`}function wy(e){return _y(e,"ErrorEvent")}function xy(e){return _y(e,"DOMError")}function ky(e){
|
|
671
671
|
return _y(e,"String")}function Ny(e){return"object"==typeof e&&null!==e&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function Sy(e){return null===e||Ny(e)||"object"!=typeof e&&"function"!=typeof e}function Ay(e){return _y(e,"Object")}function Ey(e){return"undefined"!=typeof Event&&Cy(e,Event)}function Ty(e){return Boolean(e&&e.then&&"function"==typeof e.then)}function Cy(e,t){try{return e instanceof t}catch(e){return!1}}function My(e){return!("object"!=typeof e||null===e||!e.__isVue&&!e._isVue)}function Iy(e,t=0){return"string"!=typeof e||0===t||e.length<=t?e:`${e.slice(0,t)}...`}function zy(e,t){if(!Array.isArray(e))return"";const n=[];for(let t=0;t<e.length;t++){const r=e[t];try{My(r)?n.push("[VueViewModel]"):n.push(String(r))}catch(e){n.push("[value cannot be serialized]")}}return n.join(t)}function Ly(e,t,n=!1){return!!ky(e)&&(_y(t,"RegExp")?t.test(e):!!ky(t)&&(n?e===t:e.includes(t)))}function Oy(e,t=[],n=!1){return t.some((t=>Ly(e,t,n)))}function Ry(e,t,n=250,r,o,i,a){
|
|
672
|
-
if(!(i.exception&&i.exception.values&&a&&Cy(a.originalException,Error)))return;const s=i.exception.values.length>0?i.exception.values[i.exception.values.length-1]:void 0;var l,c;s&&(i.exception.values=(l=Py(e,t,o,a.originalException,r,i.exception.values,s,0),c=n,l.map((e=>(e.value&&(e.value=Iy(e.value,c)),e)))))}function Py(e,t,n,r,o,i,a,s){if(i.length>=n+1)return i;let l=[...i];if(Cy(r[o],Error)){Dy(a,s);const i=e(t,r[o]),c=l.length;Fy(i,o,c,s),l=Py(e,t,n,r[o],o,[i,...l],i,c)}return Array.isArray(r.errors)&&r.errors.forEach(((r,i)=>{if(Cy(r,Error)){Dy(a,s);const c=e(t,r),u=l.length;Fy(c,`errors[${i}]`,u,s),l=Py(e,t,n,r,o,[c,...l],c,u)}})),l}function Dy(e,t){e.mechanism=e.mechanism||{type:"generic",handled:!0},e.mechanism={...e.mechanism,..."AggregateError"===e.type&&{is_exception_group:!0},exception_id:t}}function Fy(e,t,n,r){e.mechanism=e.mechanism||{type:"generic",handled:!0},e.mechanism={...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}const By="8.
|
|
673
|
-
const r=Hy,o=r.__SENTRY__=r.__SENTRY__||{},i=o[By]=o[By]||{};return i[e]||(i[e]=t())}const qy=Hy,$y=80;function Uy(e,t={}){if(!e)return"<unknown>";try{let n=e;const r=5,o=[];let i=0,a=0;const s=" > ",l=s.length;let c;const u=Array.isArray(t)?t:t.keyAttrs,d=!Array.isArray(t)&&t.maxStringLength||$y;for(;n&&i++<r&&(c=Gy(n,u),!("html"===c||i>1&&a+o.length*l+c.length>=d));)o.push(c),a+=c.length,n=n.parentNode;return o.reverse().join(s)}catch(e){return"<unknown>"}}function Gy(e,t){const n=e,r=[];if(!n||!n.tagName)return"";if(qy.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}r.push(n.tagName.toLowerCase());const o=t&&t.length?t.filter((e=>n.getAttribute(e))).map((e=>[e,n.getAttribute(e)])):null;if(o&&o.length)o.forEach((e=>{r.push(`[${e[0]}="${e[1]}"]`)}));else{n.id&&r.push(`#${n.id}`);const e=n.className;if(e&&ky(e)){const t=e.split(/\s+/);for(const e of t)r.push(`.${e}`)}}
|
|
674
|
-
const i=["aria-label","type","name","title","alt"];for(const e of i){const t=n.getAttribute(e);t&&r.push(`[${e}="${t}"]`)}return r.join("")}const Vy="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,Wy=["debug","info","warn","error","log","assert","trace"],Ky={};function Yy(e){if(!("console"in Hy))return e();const t=Hy.console,n={},r=Object.keys(Ky);r.forEach((e=>{const r=Ky[e];n[e]=t[e],t[e]=r}));try{return e()}finally{r.forEach((e=>{t[e]=n[e]}))}}const Xy=function(){let e=!1;const t={enable:()=>{e=!0},disable:()=>{e=!1},isEnabled:()=>e};return Vy?Wy.forEach((n=>{t[n]=(...t)=>{e&&Yy((()=>{Hy.console[n](`Sentry Logger [${n}]:`,...t)}))}})):Wy.forEach((e=>{t[e]=()=>{}})),t}
|
|
675
|
-
port:e.port||"",path:e.path||"",projectId:e.projectId}}function e_(e){const t="string"==typeof e?function(e){const t=Jy.exec(e);if(!t)return void Yy((()=>{console.error(`Invalid Sentry Dsn: ${e}`)}));const[n,r,o="",i="",a="",s=""]=t.slice(1);let l="",c=s;const u=c.split("/");if(u.length>1&&(l=u.slice(0,-1).join("/"),c=u.pop()),c){const e=c.match(/^\d+/);e&&(c=e[0])}return Zy({host:i,pass:o,path:l,projectId:c,port:a,protocol:n,publicKey:r})}(e):Zy(e);if(t&&function(e){if(!Vy)return!0;const{port:t,projectId:n,protocol:r}=e;return!(["protocol","publicKey","host","projectId"].find((t=>!e[t]&&(Xy.error(`Invalid Sentry Dsn: ${t} missing`),!0)))||(n.match(/^\d+$/)?function(e){return"http"===e||"https"===e}(r)?t&&isNaN(parseInt(t,10))&&(Xy.error(`Invalid Sentry Dsn: Invalid port ${t}`),1):(Xy.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),1):(Xy.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),1)))}(t))return t}class t_ extends Error{constructor(e,t="warn"){super(e),this.message=e,
|
|
672
|
+
if(!(i.exception&&i.exception.values&&a&&Cy(a.originalException,Error)))return;const s=i.exception.values.length>0?i.exception.values[i.exception.values.length-1]:void 0;var l,c;s&&(i.exception.values=(l=Py(e,t,o,a.originalException,r,i.exception.values,s,0),c=n,l.map((e=>(e.value&&(e.value=Iy(e.value,c)),e)))))}function Py(e,t,n,r,o,i,a,s){if(i.length>=n+1)return i;let l=[...i];if(Cy(r[o],Error)){Dy(a,s);const i=e(t,r[o]),c=l.length;Fy(i,o,c,s),l=Py(e,t,n,r[o],o,[i,...l],i,c)}return Array.isArray(r.errors)&&r.errors.forEach(((r,i)=>{if(Cy(r,Error)){Dy(a,s);const c=e(t,r),u=l.length;Fy(c,`errors[${i}]`,u,s),l=Py(e,t,n,r,o,[c,...l],c,u)}})),l}function Dy(e,t){e.mechanism=e.mechanism||{type:"generic",handled:!0},e.mechanism={...e.mechanism,..."AggregateError"===e.type&&{is_exception_group:!0},exception_id:t}}function Fy(e,t,n,r){e.mechanism=e.mechanism||{type:"generic",handled:!0},e.mechanism={...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}const By="8.29.0",Hy=globalThis;function jy(e,t,n){
|
|
673
|
+
const r=n||Hy,o=r.__SENTRY__=r.__SENTRY__||{},i=o[By]=o[By]||{};return i[e]||(i[e]=t())}const qy=Hy,$y=80;function Uy(e,t={}){if(!e)return"<unknown>";try{let n=e;const r=5,o=[];let i=0,a=0;const s=" > ",l=s.length;let c;const u=Array.isArray(t)?t:t.keyAttrs,d=!Array.isArray(t)&&t.maxStringLength||$y;for(;n&&i++<r&&(c=Gy(n,u),!("html"===c||i>1&&a+o.length*l+c.length>=d));)o.push(c),a+=c.length,n=n.parentNode;return o.reverse().join(s)}catch(e){return"<unknown>"}}function Gy(e,t){const n=e,r=[];if(!n||!n.tagName)return"";if(qy.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}r.push(n.tagName.toLowerCase());const o=t&&t.length?t.filter((e=>n.getAttribute(e))).map((e=>[e,n.getAttribute(e)])):null;if(o&&o.length)o.forEach((e=>{r.push(`[${e[0]}="${e[1]}"]`)}));else{n.id&&r.push(`#${n.id}`);const e=n.className;if(e&&ky(e)){const t=e.split(/\s+/);for(const e of t)r.push(`.${e}`)}}
|
|
674
|
+
const i=["aria-label","type","name","title","alt"];for(const e of i){const t=n.getAttribute(e);t&&r.push(`[${e}="${t}"]`)}return r.join("")}const Vy="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,Wy=["debug","info","warn","error","log","assert","trace"],Ky={};function Yy(e){if(!("console"in Hy))return e();const t=Hy.console,n={},r=Object.keys(Ky);r.forEach((e=>{const r=Ky[e];n[e]=t[e],t[e]=r}));try{return e()}finally{r.forEach((e=>{t[e]=n[e]}))}}const Xy=jy("logger",(function(){let e=!1;const t={enable:()=>{e=!0},disable:()=>{e=!1},isEnabled:()=>e};return Vy?Wy.forEach((n=>{t[n]=(...t)=>{e&&Yy((()=>{Hy.console[n](`Sentry Logger [${n}]:`,...t)}))}})):Wy.forEach((e=>{t[e]=()=>{}})),t})),Jy=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function Qy(e,t=!1){const{host:n,path:r,pass:o,port:i,projectId:a,protocol:s,publicKey:l}=e;return`${s}://${l}${t&&o?`:${o}`:""}@${n}${i?`:${i}`:""}/${r?`${r}/`:r}${a}`}function Zy(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",
|
|
675
|
+
host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function e_(e){const t="string"==typeof e?function(e){const t=Jy.exec(e);if(!t)return void Yy((()=>{console.error(`Invalid Sentry Dsn: ${e}`)}));const[n,r,o="",i="",a="",s=""]=t.slice(1);let l="",c=s;const u=c.split("/");if(u.length>1&&(l=u.slice(0,-1).join("/"),c=u.pop()),c){const e=c.match(/^\d+/);e&&(c=e[0])}return Zy({host:i,pass:o,path:l,projectId:c,port:a,protocol:n,publicKey:r})}(e):Zy(e);if(t&&function(e){if(!Vy)return!0;const{port:t,projectId:n,protocol:r}=e;return!(["protocol","publicKey","host","projectId"].find((t=>!e[t]&&(Xy.error(`Invalid Sentry Dsn: ${t} missing`),!0)))||(n.match(/^\d+$/)?function(e){return"http"===e||"https"===e}(r)?t&&isNaN(parseInt(t,10))&&(Xy.error(`Invalid Sentry Dsn: Invalid port ${t}`),1):(Xy.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),1):(Xy.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),1)))}(t))return t}class t_ extends Error{constructor(e,t="warn"){super(e),this.message=e,
|
|
676
676
|
this.name=new.target.prototype.constructor.name,Object.setPrototypeOf(this,new.target.prototype),this.logLevel=t}}function n_(e,t,n){if(!(t in e))return;const r=e[t],o=n(r);"function"==typeof o&&o_(o,r),e[t]=o}function r_(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch(n){Vy&&Xy.log(`Failed to add non-enumerable property "${t}" to object`,e)}}function o_(e,t){try{const n=t.prototype||{};e.prototype=t.prototype=n,r_(e,"__sentry_original__",t)}catch(e){}}function i_(e){return e.__sentry_original__}function a_(e){if(yy(e))return{message:e.message,name:e.name,stack:e.stack,...l_(e)};if(Ey(e)){const t={type:e.type,target:s_(e.target),currentTarget:s_(e.currentTarget),...l_(e)};return"undefined"!=typeof CustomEvent&&Cy(e,CustomEvent)&&(t.detail=e.detail),t}return e}function s_(e){try{return t=e,"undefined"!=typeof Element&&Cy(t,Element)?Uy(e):Object.prototype.toString.call(e)}catch(e){return"<unknown>"}var t}function l_(e){if("object"==typeof e&&null!==e){const t={}
|
|
677
677
|
;for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}return{}}function c_(e){return u_(e,new Map)}function u_(e,t){if(function(e){if(!Ay(e))return!1;try{const t=Object.getPrototypeOf(e).constructor.name;return!t||"Object"===t}catch(e){return!0}}(e)){const n=t.get(e);if(void 0!==n)return n;const r={};t.set(e,r);for(const n of Object.keys(e))void 0!==e[n]&&(r[n]=u_(e[n],t));return r}if(Array.isArray(e)){const n=t.get(e);if(void 0!==n)return n;const r=[];return t.set(e,r),e.forEach((e=>{r.push(u_(e,t))})),r}return e}const d_=50,h_="?",m_=/\(error: (.*)\)/,p_=/captureMessage|captureException/;function f_(...e){const t=e.sort(((e,t)=>e[0]-t[0])).map((e=>e[1]));return(e,n=0,r=0)=>{const o=[],i=e.split("\n");for(let e=n;e<i.length;e++){const n=i[e];if(n.length>1024)continue;const a=m_.test(n)?n.replace(m_,"$1"):n;if(!a.match(/\S*Error: /)){for(const e of t){const t=e(a);if(t){o.push(t);break}}if(o.length>=d_+r)break}}return function(e){if(!e.length)return[];const t=Array.from(e)
|
|
678
678
|
;/sentryWrapped/.test(g_(t).function||"")&&t.pop();t.reverse(),p_.test(g_(t).function||"")&&(t.pop(),p_.test(g_(t).function||"")&&t.pop());return t.slice(0,d_).map((e=>({...e,filename:e.filename||g_(t).filename,function:e.function||h_})))}(o.slice(r))}}function g_(e){return e[e.length-1]||{}}const v_="<anonymous>";function b_(e){try{return e&&"function"==typeof e&&e.name||v_}catch(e){return v_}}function y_(e){const t=e.exception;if(t){const e=[];try{return t.values.forEach((t=>{t.stacktrace.frames&&e.push(...t.stacktrace.frames)})),e}catch(e){return}}}const __={},w_={};function x_(e,t){__[e]=__[e]||[],__[e].push(t)}function k_(e,t){w_[e]||(t(),w_[e]=!0)}function N_(e,t){const n=e&&__[e];if(n)for(const r of n)try{r(t)}catch(t){Vy&&Xy.error(`Error while triggering instrumentation handler.\nType: ${e}\nName: ${b_(r)}\nError:`,t)}}function S_(){"console"in Hy&&Wy.forEach((function(e){e in Hy.console&&n_(Hy.console,e,(function(t){return Ky[e]=t,function(...t){N_("console",{args:t,level:e});const n=Ky[e]
|
|
@@ -752,7 +752,7 @@ this._store.receiveRealTimeUpdates({updatedAnnotations:e});break;case"delete":th
|
|
|
752
752
|
;const r=new sN(n);r.on("open",(()=>{this._reconnectionAttempts=0,this._sendClientConfig(r)})),r.on("disconnect",(()=>{if(++this._reconnectionAttempts,this._reconnectionAttempts<10){const e=1e3*2**this._reconnectionAttempts;setTimeout((()=>this._reconnect()),e)}else console.error("Gave up trying to reconnect to Hypothesis real time update service")})),r.on("error",(t=>this._handleSocketError(e,t))),r.on("message",(e=>this._handleSocketMessage(e))),this._socket=r,this.setConfig("client-id",{messageType:"client_id",value:this.clientId}),this.setConfig("auth-check",{type:"whoami",id:1})}async connect(e={}){this._updateImmediately=e.applyUpdatesImmediately??!0,this._reconnectSetUp||(this._reconnectSetUp=!0,dy(this._store.subscribe,(()=>this._store.profile().userid),(()=>this._reconnect()))),this._socket||await this._reconnect()}}lN.$inject=["store","apiRoutes","auth","groups","session","$window"];const cN="hypothesis.user.tags.list",uN="hypothesis.user.tags.map";class dN{constructor(e){this._storage=e}
|
|
753
753
|
filter(e,t=null){const n=this._storage.getObject(cN)||[];let r=0;return n.filter((n=>{if(null!==t&&r>=t)return!1;const o=n.split(/\W+/),i=new RegExp(`^${Lv(e)}`,"i");return!(!o.some((e=>e.match(i)))&&!n.match(i))&&(++r,!0)}))}store(e){const t=this._storage.getObject(uN)||{};e.forEach((e=>{t[e]?(t[e].count+=1,t[e].updated=Date.now()):t[e]={text:e,count:1,updated:Date.now()}})),this._storage.setObject(uN,t);const n=Object.keys(t).sort(((e,n)=>t[e].count!==t[n].count?t[n].count-t[e].count:e.localeCompare(n)));this._storage.setObject(cN,n)}}dN.$inject=["localStorage"];class hN{constructor(e){this._store=e}forceVisible(e){e.children.forEach((e=>{this.forceVisible(e)})),e.visible||this._store.setForcedVisible(e.id,!0)}}hN.$inject=["store"];class mN extends mg{constructor(e,t){super(),this._store=e,this._window=t,this._delayedMessageQueue=[],this._window.addEventListener("focus",(()=>{this._delayedMessageQueue.forEach((({type:e,messageText:t,options:n})=>this._addMessage(e,t,n))),this._delayedMessageQueue=[]}))}
|
|
754
754
|
dismiss(e){this._store.getToastMessage(e)&&(this._store.removeToastMessage(e),this.emit("toastMessageDismissed",e))}_addMessage(e,t,{autoDismiss:n=!0,visuallyHidden:r=!1,delayed:o=!1}={}){if(this._store.hasToastMessage(e,t))return;if(o&&!this._window.document.hasFocus()){const o={autoDismiss:n,visuallyHidden:r};return void this._delayedMessageQueue.push({type:e,messageText:t,options:o})}const i={type:e,id:Nv(10),message:t,visuallyHidden:r,autoDismiss:n};this._store.addToastMessage(i),this.emit("toastMessageAdded",i)}error(e,t){this._addMessage("error",e,t)}success(e,t){this._addMessage("success",e,t)}notice(e,t){this._addMessage("notice",e,t)}}mN.$inject=["store","$window"];const pN=function(e){for(var t={},n=e.querySelectorAll("script.js-hypothesis-config"),r=0;r<n.length;r++){var o=void 0;try{o=JSON.parse(n[r].textContent||"")}catch(e){console.warn("Could not parse settings from js-hypothesis-config tags",e),o={}}Object.assign(t,o)}return t}(document),fN=function(e){
|
|
755
|
-
const{version:t,origin:n}=Av(e.location.href);return"1.
|
|
755
|
+
const{version:t,origin:n}=Av(e.location.href);return"1.1516.0"!==t?(console.warn(`The Hypothesis sidebar is using a different version (1.1516.0) than the host page (${t}). It may not work.`),!1):"null"===e.origin?(console.warn("Hypothesis has been loaded in a sandboxed frame. This is not supported."),!1):e.origin===n||(console.warn(`The Hypothesis sidebar is running in a different origin (${e.origin}) than expected (${n}). It may not work.`),!1)}(window);function gN(e,t){e.setClientId(t.clientId)}function vN(e,t,n){e.load(),t.load(),n.sync()}function bN(e,t,n){e.init(),t.init(),n.init()}function yN(e,t,n){"sidebar"===t.route()&&e.connect().catch((()=>{n.error("Hypothesis failed to connect to the web page. Try reloading the page.",{autoDismiss:!1})}))}pN.sentry&&fN&&function(e){const t=function(){const e=import.meta.url;return e?new URL(e).origin:null}(),n=t?[t]:void 0;Wk({dsn:e.dsn,environment:e.environment,allowUrls:n,ignoreErrors:["Network request failed","Object Not Found Matching Id"],release:"1.1516.0",
|
|
756
756
|
beforeSend:(e,t)=>{if(Kk>=5)return zv("Client-side Sentry quota reached. No further Sentry events will be sent"),null;++Kk;try{const n=t&&t.originalException;n instanceof Event&&(e.extra||(e.extra={}),Object.assign(e.extra,{type:n.type,detail:n.detail,isTrusted:n.isTrusted}))}catch(e){}return e}});try{gx("host_config",Av(window.location.href))}catch(e){}gx("loaded_scripts",Array.from(document.querySelectorAll("script")).filter((e=>!e.type||e.type.match(/javascript|module/))).map((e=>e.src||"<inline>"))),oy(((e,t)=>{Yk(e,t)}))}(pN.sentry),function(e){e.addEventListener("click",(e=>{const t=e.target;"A"===t.tagName&&"_blank"===t.target&&(t.rel="noopener")}))}(document.body),gN.$inject=["api","streamer"],vN.$inject=["groups","session","router"],bN.$inject=["autosaveService","persistedDefaults","serviceURL"],yN.$inject=["frameSync","store","toastMessenger"];const _N=document.querySelector("hypothesis-app");!function(e=window){e.addEventListener("message",Fv)}(),async function(e,t=window){const n=function(e){
|
|
757
757
|
const t=Av(e.location.href),n=["annotations","group","query","appType","openSidebar","showHighlights","services","branding","enableExperimentalNewNoteButton","focus","requestConfigFromFrame","theme","usernameUrl"],r={openSidebar:Ev,requestConfigFromFrame:e=>{if("string"==typeof e)return e;const t=function(e){return"object"==typeof e&&null!==e?e:{}}(e);return{origin:Cv(t.origin),ancestorLevel:Tv(t.ancestorLevel)}}},o={};for(const[e,i]of Object.entries(t))n.includes(e)&&null!==i&&(r[e]?o[e]=r[e](i):o[e]=i);return o}(window),r=function(e,t){const n=e.requestConfigFromFrame;if(!n)return null;if("number"!=typeof n.ancestorLevel||"string"!=typeof n.origin)throw new Error("Improper `requestConfigFromFrame` object. Both `ancestorLevel` and `origin` need to be specified");return{targetFrame:Mv(n.ancestorLevel,t),origin:n.origin}}(n,t);let o;if(r){const e=await async function(e,t){return{...await Sv(t.targetFrame,t.origin,"requestConfig",[],3e3),...e.group?{group:e.group}:{}}}(n,r);o=function(e,t){const n=e.services
|
|
758
758
|
;return Array.isArray(n)?(n.forEach(((e,n)=>{"$rpc:requestGroups"===e.groups&&(e.groups=Sv(t.targetFrame,t.origin,"requestGroups",[n],0).catch((()=>{throw new Error("Unable to fetch groups")})))})),e):e}(e,r)}else o=n;const i={...e,...o};return r&&(i.rpc=r),i.apiUrl=function(e){const t=ro(e);if(!t)return e.apiUrl;if(t.apiUrl)return t.apiUrl;throw new Error("Service should contain an apiUrl value.")}(i),i}(pN).then((e=>{!function(e,t){const n=new $
|