hypothesis 1.1373.0 → 1.1374.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?f1738e","styles/annotator.css.map":"styles/annotator.css.map?1e746d","styles/annotator.css":"styles/annotator.css?ea5d97","styles/highlights.css":"styles/highlights.css?6b4ebd","styles/highlights.css.map":"styles/highlights.css.map?241350","styles/katex.min.css.map":"styles/katex.min.css.map?cd8c0e","styles/katex.min.css":"styles/katex.min.css?e179ab","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?5d5f84","styles/sidebar.css":"styles/sidebar.css?84392c","styles/ui-playground.css.map":"styles/ui-playground.css.map?54e020","styles/ui-playground.css":"styles/ui-playground.css?1a49f2","scripts/sidebar.bundle.js":"scripts/sidebar.bundle.js?41e60d","scripts/annotator.bundle.js.map":"scripts/annotator.bundle.js.map?573ccf","scripts/ui-playground.bundle.js":"scripts/ui-playground.bundle.js?2e79e4","scripts/ui-playground.bundle.js.map":"scripts/ui-playground.bundle.js.map?f4c017","scripts/sidebar.bundle.js.map":"scripts/sidebar.bundle.js.map?103964"};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.1374.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?f1738e",
|
|
3
|
+
"styles/annotator.css.map": "styles/annotator.css.map?1e746d",
|
|
3
4
|
"styles/annotator.css": "styles/annotator.css?ea5d97",
|
|
4
5
|
"styles/highlights.css": "styles/highlights.css?6b4ebd",
|
|
5
|
-
"styles/annotator.css.map": "styles/annotator.css.map?1e746d",
|
|
6
6
|
"styles/highlights.css.map": "styles/highlights.css.map?241350",
|
|
7
7
|
"styles/katex.min.css.map": "styles/katex.min.css.map?cd8c0e",
|
|
8
|
-
"styles/pdfjs-overrides.css": "styles/pdfjs-overrides.css?c95edf",
|
|
9
8
|
"styles/katex.min.css": "styles/katex.min.css?e179ab",
|
|
9
|
+
"styles/pdfjs-overrides.css": "styles/pdfjs-overrides.css?c95edf",
|
|
10
10
|
"styles/pdfjs-overrides.css.map": "styles/pdfjs-overrides.css.map?1d8ac6",
|
|
11
11
|
"styles/sidebar.css.map": "styles/sidebar.css.map?5d5f84",
|
|
12
12
|
"styles/sidebar.css": "styles/sidebar.css?84392c",
|
|
13
13
|
"styles/ui-playground.css.map": "styles/ui-playground.css.map?54e020",
|
|
14
14
|
"styles/ui-playground.css": "styles/ui-playground.css?1a49f2",
|
|
15
|
-
"scripts/sidebar.bundle.js": "scripts/sidebar.bundle.js?
|
|
15
|
+
"scripts/sidebar.bundle.js": "scripts/sidebar.bundle.js?41e60d",
|
|
16
16
|
"scripts/annotator.bundle.js.map": "scripts/annotator.bundle.js.map?573ccf",
|
|
17
17
|
"scripts/ui-playground.bundle.js": "scripts/ui-playground.bundle.js?2e79e4",
|
|
18
18
|
"scripts/ui-playground.bundle.js.map": "scripts/ui-playground.bundle.js.map?f4c017",
|
|
19
|
-
"scripts/sidebar.bundle.js.map": "scripts/sidebar.bundle.js.map?
|
|
19
|
+
"scripts/sidebar.bundle.js.map": "scripts/sidebar.bundle.js.map?103964"
|
|
20
20
|
}
|
|
@@ -138,7 +138,7 @@ this._sidebarRPC.on("hoverAnnotations",(t=>this._hoverAnnotations(t))),this._sid
|
|
|
138
138
|
this._bucketBarClient.destroy(),null===(t=this._clusterToolbar)||void 0===t||t.destroy(),function(t){Xn(Array.from(t.querySelectorAll("hypothesis-highlight")))}(this.element),this._integration.destroy()}async anchor(t){this._contentReady&&(await this._contentReady,this._contentReady=void 0);const e=t=>{var e;const n=ar(t);if(!n)return;const i=$n(n,null===(e=t.annotation)||void 0===e?void 0:e.$cluster);i.forEach((e=>{e._annotation=t.annotation})),t.highlights=i,this._hoveredAnnotations.has(t.annotation.$tag)&&Yn(i,!0)};this.detach(t.$tag,!1),this._annotations.add(t.$tag),t.target||(t.target=[]);const n=await Promise.all(t.target.map((async e=>{if(!e.selector||!e.selector.some((t=>"TextQuoteSelector"===t.type)))return{annotation:t,target:e};let n;try{const i=await this._integration.anchor(this.element,e.selector),o=Ln.fromRange(i);n={annotation:t,target:e,range:o}}catch(i){n={annotation:t,target:e}}return n})));if(!this._annotations.has(t.$tag))return[];for(const t of n)e(t)
|
|
139
139
|
;return t.$orphan=n.length>0&&n.every((t=>t.target.selector&&!t.range)),this._updateAnchors(this.anchors.concat(n),!0),this._sidebarRPC.call("syncAnchoringStatus",t),n}detach(t,e=!0){this._annotations.delete(t);const n=[];for(const e of this.anchors)e.annotation.$tag!==t?n.push(e):e.highlights&&Xn(e.highlights);this._updateAnchors(n,e)}_updateAnchors(t,e){var n;this.anchors=t,null===(n=this._clusterToolbar)||void 0===n||n.scheduleClusterUpdates(),e&&this._bucketBarClient.update(this.anchors)}async createAnnotation({highlight:t=!1}={}){const e=this.selectedRanges;this.selectedRanges=[];const n=await this.getDocumentInfo(),i=this.element,o=(await Promise.all(e.map((t=>this._integration.describe(i,t))))).map((t=>({source:n.uri,selector:t}))),s={uri:n.uri,document:n.metadata,target:o,$highlight:t,$cluster:t?"user-highlights":"user-annotations",$tag:"a:"+r(8)};return this._sidebarRPC.call("createAnnotation",s),this.anchor(s),lr(),s}_hoverAnnotations(t){this._hoveredAnnotations.clear(),
|
|
140
140
|
t.forEach((t=>this._hoveredAnnotations.add(t)));for(const e of this.anchors)if(e.highlights){const n=t.includes(e.annotation.$tag);Yn(e.highlights,n)}this._sidebarRPC.call("hoverAnnotations",t)}_onSelection(t){const e=this._integration.getAnnotatableRange(t);if(!e)return void this._onClearSelection();const n=document.getSelection(),i=Hn(n),o=qn(n);o?(this.selectedRanges=[e],this._hostRPC.call("textSelected"),this._adder.annotationsForSelection=rr(),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(t,{toggle:e=!1,focusInSidebar:n=!1}={}){e?this._sidebarRPC.call("toggleAnnotationSelection",t):this._sidebarRPC.call("showAnnotations",t,n),this._sidebarRPC.call("openSidebar")}setHighlightsVisible(t,e=!0){!function(t,e){t.classList.toggle("hypothesis-highlights-always-on",e)
|
|
141
|
-
}(this.element,t),this._highlightsVisible=t,e&&this._hostRPC.call("highlightsVisibleChanged",t)}get highlightsVisible(){return this._highlightsVisible}fitSideBySide(t){this._sidebarLayout=t,this._integration.fitSideBySide(t)}get hoveredAnnotationTags(){return this._hoveredAnnotations}_handleShortcut(t){oe(t,"Ctrl+Shift+H")&&this.setHighlightsVisible(!this._highlightsVisible)}}function ur(t,e){const n=new URL(t),i=new URLSearchParams;return i.append("config",JSON.stringify(e)),n.hash=i.toString(),n.toString()}function dr(t,e){var n;const i={};for(const[t,n]of Object.entries(e))"notebookAppUrl"!==t&&"sidebarAppUrl"!==t&&null!=n&&(i[t]=n);i.origin=new URL(t).origin,i.version="1.
|
|
141
|
+
}(this.element,t),this._highlightsVisible=t,e&&this._hostRPC.call("highlightsVisibleChanged",t)}get highlightsVisible(){return this._highlightsVisible}fitSideBySide(t){this._sidebarLayout=t,this._integration.fitSideBySide(t)}get hoveredAnnotationTags(){return this._hoveredAnnotations}_handleShortcut(t){oe(t,"Ctrl+Shift+H")&&this.setHighlightsVisible(!this._highlightsVisible)}}function ur(t,e){const n=new URL(t),i=new URLSearchParams;return i.append("config",JSON.stringify(e)),n.hash=i.toString(),n.toString()}function dr(t,e){var n;const i={};for(const[t,n]of Object.entries(e))"notebookAppUrl"!==t&&"sidebarAppUrl"!==t&&null!=n&&(i[t]=n);i.origin=new URL(t).origin,i.version="1.1374.0";const o=new URL(window.location.href);if(o.hash="",i.hostURL=o.toString(),Array.isArray(i.services)&&(null===(n=i.services)||void 0===n?void 0:n.length)>0){const t=i.services[0];t.onLoginRequest&&(t.onLoginRequestProvided=!0),t.onLogoutRequest&&(t.onLogoutRequestProvided=!0),t.onSignupRequest&&(t.onSignupRequestProvided=!0),
|
|
142
142
|
t.onProfileRequest&&(t.onProfileRequestProvided=!0),t.onHelpRequest&&(t.onHelpRequestProvided=!0)}return i}function fr({config:t,groupId:e}){return me("iframe",{title:"Hypothesis annotation notebook",className:"h-full w-full border-0",allowFullScreen:!0,src:ur(t.notebookAppUrl,{...dr(t.notebookAppUrl,t),group:e})})}function pr({eventBus:t,config:e}){const[n,i]=Wt(0),[o,r]=Wt(!0),[s,a]=Wt(null),l=jt(""),c=jt(null);zt((()=>(l.current=document.body.style.overflow,()=>{document.body.style.overflow=l.current})),[]),zt((()=>{document.body.style.overflow=o?l.current:"hidden"}),[o]),zt((()=>{const e=t.createEmitter();return e.subscribe("openNotebook",(t=>{r(!1),i((t=>t+1)),a(t)})),c.current=e,()=>{e.destroy()}}),[t]);return null===s?null:me("div",{className:fe("fixed z-max top-0 left-0 right-0 bottom-0 p-3 bg-black/50",{hidden:o}),"data-testid":"notebook-outer",children:me("div",{className:"relative w-full h-full","data-testid":"notebook-inner",children:[me("div",{className:"absolute right-0 m-3",children:me(tn,{
|
|
143
143
|
title:"Close the Notebook",onClick:()=>{var t;r(!0),null===(t=c.current)||void 0===t||t.publish("closeNotebook")},variant:"dark",classes:fe("!bg-transparent enabled:hover:!bg-grey-3"),children:me(Ce,{className:"w-4 h-4"})})}),me(fr,{config:e,groupId:s},n)]})})}class mr{constructor(t,e,i){n(this,"_outerContainer",void 0),n(this,"_shadowRoot",void 0),this._outerContainer=document.createElement("hypothesis-notebook"),t.appendChild(this._outerContainer),this._shadowRoot=xn(this._outerContainer),Rt(me(pr,{eventBus:e,config:i}),this._shadowRoot)}destroy(){Rt(null,this._shadowRoot),this._outerContainer.remove()}}function gr({eventBus:t,config:e}){const[n,i]=Wt(!0),o=jt(null);zt((()=>{const e=t.createEmitter();return e.subscribe("openProfile",(()=>{i(!1)})),o.current=e,()=>{e.destroy()}}),[t]);return n?null:me("div",{className:"fixed z-max top-0 left-0 right-0 bottom-0 p-3 bg-black/50","data-testid":"profile-outer",children:me("div",{className:"relative w-full h-full","data-testid":"profile-inner",
|
|
144
144
|
children:[me("div",{className:"absolute right-0 m-3",children:me(tn,{title:"Close the Profile",onClick:()=>{var t;i(!0),null===(t=o.current)||void 0===t||t.publish("closeProfile")},variant:"dark",classes:fe("!bg-transparent enabled:hover:!bg-grey-3"),children:me(Ce,{className:"w-4 h-4"})})}),me("iframe",{title:"Hypothesis profile",className:"h-full w-full border-0",src:e.profileAppUrl})]})})}class _r{constructor(t,e,i){n(this,"_outerContainer",void 0),n(this,"shadowRoot",void 0),this._outerContainer=document.createElement("hypothesis-profile"),t.appendChild(this._outerContainer),this.shadowRoot=xn(this._outerContainer),Rt(me(gr,{eventBus:e,config:i}),this.shadowRoot)}destroy(){Rt(null,this.shadowRoot),this._outerContainer.remove()}}var vr={exports:{}};!function(t){!function(e,n,i,o){var r,s=["","webkit","Moz","MS","ms","o"],a=n.createElement("div"),l="function",c=Math.round,h=Math.abs,u=Date.now;function d(t,e,n){return setTimeout(b(t,n),e)}function f(t,e,n){return!!Array.isArray(t)&&(p(t,n[e],n),!0)}
|
|
@@ -549,7 +549,7 @@ return Ka([e]).reduce(((e,t)=>t.created>e?t.created:e),"")}function Qp(e){return
|
|
|
549
549
|
;function nf(e){return function(e){return e.replace(tf,"")}((t=e,t.normalize("NFKD"))).toLowerCase();var t}class rf{constructor(e,t){H(this,"term",void 0),H(this,"matcher",void 0),this.term=t.normalize(e),this.matcher=t}matches(e){const t=this.matcher;return t.fieldValues(e).some((e=>t.matches(t.normalize(e),this.term)))}}class of{constructor(e,t){H(this,"operator",void 0),H(this,"filters",void 0),this.operator=e,this.filters=t}matches(e){return"and"===this.operator?this.filters.every((t=>t.matches(e))):this.filters.some((t=>t.matches(e)))}}function af(e){return{fieldValues:e,matches:(e,t)=>e.includes(t),normalize:nf}}const sf={quote:af((e=>{var t;return[null!==(t=qo(e))&&void 0!==t?t:""]})),since:{fieldValues:e=>[new Date(e.updated).valueOf()],matches:(e,t)=>(Date.now()-e)/1e3<=t,normalize:e=>e},tag:af((e=>e.tags)),text:af((e=>[e.text])),uri:af((e=>[e.uri])),user:af((e=>{var t,n;return[e.user,null!==(t=null===(n=e.user_info)||void 0===n?void 0:n.display_name)&&void 0!==t?t:""]}))};const lf=function(e){
|
|
550
550
|
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:ef[t.sortKey]},r=!!t.filterQuery||Object.keys(t.filters).length>0;if(r){const e=function(e,t={}){const n=[],r=[],o=[],i=[],a=[],s=[],l=t.user?[t.user]:[],c=Pp(e);for(const e of c){const t=e.slice(0,e.indexOf(":")),c=e.slice(t.length+1);switch(t){case"quote":r.push(c);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";o.push(e*n[t])}}break;case"tag":i.push(c);break;case"text":a.push(c);break;case"uri":s.push(c);break;case"user":l.push(c);break;default:n.push(e)}}return{any:{terms:n,operator:"and"},quote:{terms:r,operator:"and"},since:{terms:o,operator:"and"},tag:{terms:i,operator:"and"
|
|
551
551
|
},text:{terms:a,operator:"and"},uri:{terms:s,operator:"or"},user:{terms:l,operator:"or"}}}(t.filterQuery||"",t.filters);n.filterFn=t=>function(e,t){const n=(e,t)=>new rf(t,sf[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"];r=t.terms.map((t=>new of("or",e.map((e=>n(e,t))))))}else r=t.terms.map((t=>n(e,t)));return new of(t.operator,r)})),o=new of("and",r);return e.filter((e=>e.id&&o.matches(e))).map((e=>e.id))}([t],e).length>0}return!r&&"sidebar"===e.route&&(n.threadFilterFn=e=>{return!!e.annotation&&(n=e.annotation,r=t.selectedTab,!Oo(n)&&Kp(n)===r);var n,r}),Wp(e.annotations,n)}));function cf(){const e=ka(),t=e.allAnnotations(),n=e.filterQuery(),r=e.route(),o=e.selectionState(),i=e.getFilterValues(),a=de((()=>({annotations:t,route:r,selection:{...o,filterQuery:n,filters:i}})),[t,n,r,o,i]);return lf(a)}var uf=Vr((function({loadAnnotationsService:e,onLogin:t}){var n
|
|
552
|
-
;const r=ka(),o=null!==(n=r.routeParams().id)&&void 0!==n?n:"",i=cf(),a=r.profile().userid,[s,l]=ae(!1);return le((()=>{l(!1),r.clearAnnotations(),e.loadThread(o).then((e=>{const t=e.filter((e=>0===(e.references||[]).length))[0];t&&(e.forEach((e=>e.id&&r.setExpanded(e.id,!0))),t.id!==o&&r.highlightAnnotations([o]))})).catch((()=>{l(!0)}))}),[o,a,e,r]),Re(v,{children:[s&&Re(Na,{errorType:"annotation",onLoginRequest:t}),Re(Lp,{threads:i.children})]})}),["loadAnnotationsService"]);class df{constructor(e,t,n=window){var r,o,i;H(this,"version",void 0),H(this,"userAgent",void 0),H(this,"urls",void 0),H(this,"fingerprint",void 0),H(this,"account",void 0),H(this,"timestamp",void 0),H(this,"segment",void 0);const a="N/A";let s=a;e.userid&&(s=e.userid,e.displayName&&(s=`${e.displayName} (${s})`)),this.version="1.
|
|
552
|
+
;const r=ka(),o=null!==(n=r.routeParams().id)&&void 0!==n?n:"",i=cf(),a=r.profile().userid,[s,l]=ae(!1);return le((()=>{l(!1),r.clearAnnotations(),e.loadThread(o).then((e=>{const t=e.filter((e=>0===(e.references||[]).length))[0];t&&(e.forEach((e=>e.id&&r.setExpanded(e.id,!0))),t.id!==o&&r.highlightAnnotations([o]))})).catch((()=>{l(!0)}))}),[o,a,e,r]),Re(v,{children:[s&&Re(Na,{errorType:"annotation",onLoginRequest:t}),Re(Lp,{threads:i.children})]})}),["loadAnnotationsService"]);class df{constructor(e,t,n=window){var r,o,i;H(this,"version",void 0),H(this,"userAgent",void 0),H(this,"urls",void 0),H(this,"fingerprint",void 0),H(this,"account",void 0),H(this,"timestamp",void 0),H(this,"segment",void 0);const a="N/A";let s=a;e.userid&&(s=e.userid,e.displayName&&(s=`${e.displayName} (${s})`)),this.version="1.1374.0",this.userAgent=n.navigator.userAgent,this.urls=t.map((e=>e.uri)).join(", ")||a,
|
|
553
553
|
this.fingerprint=null!==(r=null===(o=t[0])||void 0===o||null===(o=o.metadata)||void 0===o?void 0:o.documentFingerprint)&&void 0!==r?r:a,this.account=s,this.timestamp=(new Date).toString();const l=null===(i=t[0])||void 0===i?void 0:i.segment;if(l){const e=[];l.cfi&&e.push(["CFI",l.cfi]),l.url&&e.push(["URL",l.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`}asEncodedURLString(){return encodeURIComponent(this.asFormattedString())}}var hf="complete",mf="canceled";function pf(e,t,n){e.self===e?e.scrollTo(t,n):(e.scrollLeft=t,e.scrollTop=n)}function ff(e){var t=e._scrollSettings;if(t){var n=t.maxSynchronousAlignments,r=function(e,t){
|
|
554
554
|
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),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 pf(e,r.x,r.y),
|
|
555
555
|
e._scrollSettings=null,t.end(hf);var a=1-t.ease(i);if(pf(e,r.x-r.differenceX*a,r.y-r.differenceY*a),o>=t.time)return t.endIterations++,t.scrollAncestor&&ff(t.scrollAncestor),void ff(e);!function(e){if("requestAnimationFrame"in window)return window.requestAnimationFrame(e);setTimeout(e,16)}(ff.bind(null,e))}}function gf(e){return e.self===e}function vf(e){return"pageXOffset"in e||(e.scrollHeight!==e.clientHeight||e.scrollWidth!==e.clientWidth)&&"hidden"!==getComputedStyle(e).overflow}function bf(){return!0}function _f(e){if(e.assignedSlot)return _f(e.assignedSlot);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 yf=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||{}
|
|
@@ -572,11 +572,11 @@ className:"flex items-center lg:justify-self-end text-md font-medium",children:[
|
|
|
572
572
|
size:"lg",children:Re(wr,{defaultChecked:!0,disabled:t,onChange:()=>n(!0),checkedIcon:t?jn:void 0,icon:t?jn:void 0,children:"Email me a daily summary of activity in my courses"})})})]})}function Kf({annotations:e,getDisplayName:t,excludeReplies:n=!1}){const r=new Map;for(const o of e){if(n&&Mo(o))continue;let e=r.get(o.user);e||(e={userid:o.user,displayName:t(o),annotations:[]},r.set(o.user,e)),e.annotations.push(o)}const o=[...r.values()];return o.sort(((e,t)=>e.displayName.localeCompare(t.displayName))),o}function Xf(e){return`${e.getFullYear()}-${`${e.getMonth()+1}`.padStart(2,"0")}-${`${e.getDate()}`.padStart(2,"0")}`}function Zf({documentMetadata:e,groupName:t,date:n=new Date}){const r=[Xf(n)];return null!=e&&e.title?r.push(function(e,t){const n=Array.from(e);return n.length<=t?e:n.slice(0,t).join("")}(e.title,50)):r.push("Hypothesis"),t&&r.push(t.replace(/ /g,"-")),r.join("-")}function Jf(){return Re("div",{className:"flex flex-row items-center justify-center","data-testid":"loading-spinner",
|
|
573
573
|
children:Re(dr,{size:"md"})})}function Qf({userAnnotations:e}){return Re("div",{className:"flex gap-x-2",children:[e.displayName,Re("div",{className:"rounded px-1 bg-grey-7 text-white",children:e.annotations.length})]})}var eg=Vr((function({annotationsExporter:e,toastMessenger:t}){var n;const r=ka(),o=r.focusedGroup(),i=o&&!r.isLoading(),a=r.defaultContentFrame(),s=r.savedAnnotations(),l=r.defaultAuthority(),c=r.isFeatureEnabled("client_display_names"),u=he((e=>Qa(e,l,c)),[l,c]),d=de((()=>Kf({annotations:s,getDisplayName:u})),[s,u]),h=r.profile().userid,m=de((()=>({annotations:s,displayName:"All annotations"})),[s]),[p,f]=ae(null!==(n=d.find((e=>e.userid===h)))&&void 0!==n?n:m),g=pe(),b=pe(),_=r.countDrafts(),y=de((()=>Zf({documentMetadata:null==a?void 0:a.metadata,groupName:null==o?void 0:o.name})),[a,o]),[w,x]=ae();return i?Re("form",{className:"space-y-3",onSubmit:n=>{n.preventDefault();try{var r;const t=null!==(r=null==p?void 0:p.annotations)&&void 0!==r?r:s,n=`${null!=w?w:y}.json`
|
|
574
574
|
;!function(e,t,n=document){const r=n.createElement("a"),o=JSON.stringify(e,null,2),i=new Blob([o],{type:"application/json"}),a=URL.createObjectURL(i);r.setAttribute("href",a),r.setAttribute("download",t),r.style.visibility="hidden",n.body.appendChild(r),r.click(),n.body.removeChild(r)}(e.buildExportContent(t),n)}catch(n){t.error("Exporting annotations failed")}},"data-testid":"export-form",children:[s.length>0?Re(v,{children:[Re("p",{className:"text-color-text-light mb-3",children:[Re(zr,{variant:"text-light",underline:"always",href:"https://web.hypothes.is/help/exporting-and-importing-annotations-in-the-hypothesis-web-app/",target:"_blank",children:"Learn more"})," ","about copying and exporting annotations."]}),Re("label",{"data-testid":"export-count",htmlFor:g,className:"font-medium",children:"Name of export file:"}),Re(Nr,{"data-testid":"export-filename",id:g,defaultValue:y,value:w,onChange:e=>x(e.target.value),required:!0,maxLength:250}),Re("label",{htmlFor:b,className:"block font-medium",
|
|
575
|
-
children:["Select which user","'","s annotations to export:"]}),Re(Mr,{value:p,onChange:f,buttonId:b,buttonContent:Re(Qf,{userAnnotations:p}),children:[Re(Mr.Option,{value:m,children:
|
|
575
|
+
children:["Select which user","'","s annotations to export:"]}),Re(Mr,{value:p,onChange:f,buttonId:b,buttonContent:Re(Qf,{userAnnotations:p}),children:[Re(Mr.Option,{value:m,children:Re(Qf,{userAnnotations:m})}),d.map((e=>Re(Mr.Option,{value:e,children:Re(Qf,{userAnnotations:e})},e.userid)))]})]}):Re("p",{"data-testid":"no-annotations-message",children:"There are no annotations available for export."}),_>0&&Re("p",{"data-testid":"drafts-message",children:["You have ",_," unsaved"," ",(k=_,N="draft",S="drafts",1===k?N:S),s.length>0&&Re(v,{children:" that will not be included"}),"."]}),Re(qe,{children:Re(Vn,{"data-testid":"export-button",variant:"primary",disabled:0===s.length,type:"submit",children:"Export"})})]}):Re(Jf,{});var k,N,S}),["annotationsExporter","toastMessenger"]);function tg(e,t=new FileReader){const{promise:n,resolve:r,reject:o}=function(){let e,t;return{promise:new Promise(((n,r)=>{e=n,t=r})),resolve:e,reject:t}}();return t.addEventListener("loadend",(e=>{try{var t,n
|
|
576
576
|
;const o=null!==(t=null===(n=e.target)||void 0===n||null===(n=n.result)||void 0===n?void 0:n.toString())&&void 0!==t?t:"",i=JSON.parse(o);r(i)}catch(e){o(e)}})),t.readAsText(e),n}function ng({size:e,value:t}){const n=e-4,r=Math.PI*n;return Re("span",{className:"text-grey-3",role:"progressbar","aria-valuenow":t,style:{width:`${e}px`,height:`${e}px`,transform:"rotate(-90deg)"},children:Re("svg",{viewBox:`0 0 ${e} ${e}`,children:Re("circle",{cx:e/2,cy:e/2,r:n/2,fill:"none",stroke:"currentColor","stroke-width":2,style:{strokeDasharray:r,strokeDashoffset:r-r*(t/100)+"px",transitionDuration:"300ms",transitionProperty:"stroke-dashoffset"}})})})}function rg({onFileSelected:e,disabled:t,id:n}){const r=ue(null),[o,i]=ae(null);return Re(Vn,{variant:"custom",classes:X("w-full relative overflow-hidden border rounded","bg-grey-0 hover:bg-grey-0"),title:o?`${o}, Select a file`:"Select a file",onClick:()=>{var e;return null===(e=r.current)||void 0===e?void 0:e.click()},disabled:t,"data-testid":"file-input-proxy-button",
|
|
577
577
|
children:[Re("input",{ref:r,accept:".json",id:n,type:"file",disabled:t,className:"invisible absolute w-0 h-0","aria-hidden":!0,"data-testid":"file-input",onChange:t=>{var n,r;const o=t.target.files;i(null!==(n=null==o||null===(r=o[0])||void 0===r?void 0:r.name)&&void 0!==n?n:null),null!==o&&o.length>0&&e(o[0])}}),Re("div",{className:"max-w-full pr-10 truncate","data-testid":"filename-container",children:null!=o?o:"Select a file"}),Re("div",{className:"absolute right-0 h-full p-2 border-l bg-grey-2",children:Re(Pt,{})})]})}var og=Vr((function({importAnnotationsService:e}){const[t,n]=ae(null),[r,o]=ae(null),[i,a]=ae(null),s=ka(),l=s.profile().userid,c=s.defaultAuthority(),u=s.isFeatureEnabled("client_display_names"),d=he((e=>Qa(e,c,u)),[c,u]),h=de((()=>r?Kf({annotations:r,getDisplayName:d,excludeReplies:!0}):null),[r,d]),[m,p]=ae(null),f=de((()=>{var e;return null!==(e=null==h?void 0:h.find((e=>e.userid===m)))&&void 0!==e?e:null}),[m,h]);let g;le((()=>{l&&t&&(o(null),a(null),p(null),async function(e){let t;try{
|
|
578
578
|
t=await tg(e)}catch(e){throw new Error("Not a valid JSON file")}if(null===(n=t)||"object"!=typeof n||!Array.isArray(t.annotations))throw new Error("Not a valid Hypothesis JSON file");var n;return t.annotations}(t).then((e=>{o(e);const t=e.some((e=>e.user===l));p(t?l:null)})).catch((e=>{a(e.message)})))}),[l,t]),f&&(g=async()=>{e.import(f.annotations)});const b=pe(),_=pe();if(!l)return Re("p",{"data-testid":"log-in-message",children:"You must log in to import annotations."});const y=Boolean(s.focusedGroup()&&s.defaultContentFrame()&&s.hasFetchedAnnotations()&&!s.isFetchingAnnotations()&&g),w=t&&!r&&!i,x=s.importsPending(),k=s.importsTotal(),N=k-x,S=w||x>0,E=x>0?Math.round(N/k*100):null;return Re(v,{children:[Re("p",{className:"text-color-text-light mb-3",children:[Re(zr,{variant:"text-light",underline:"always",href:"https://web.hypothes.is/help/exporting-and-importing-annotations-in-the-hypothesis-web-app/",target:"_blank",children:"Learn more"})," ","about importing annotations."]}),Re("label",{htmlFor:b,
|
|
579
|
-
className:"font-medium",children:"Select Hypothesis export file:"}),Re(rg,{onFileSelected:n,disabled:S,id:b}),h&&Re(v,{children:[Re("label",{htmlFor:_,className:"block font-medium",children:"Select which user's annotations to import:"}),Re(Mr,{value:f,onChange:e=>{var t;return p(null!==(t=null==e?void 0:e.userid)&&void 0!==t?t:null)},buttonId:_,buttonContent:f?Re(Qf,{userAnnotations:f}):Re("span",{className:"text-grey-6",children:"Select a user..."}),children:h.map((e=>Re(Mr.Option,{value:e,children:
|
|
579
|
+
className:"font-medium",children:"Select Hypothesis export file:"}),Re(rg,{onFileSelected:n,disabled:S,id:b}),h&&Re(v,{children:[Re("label",{htmlFor:_,className:"block font-medium",children:"Select which user's annotations to import:"}),Re(Mr,{value:f,onChange:e=>{var t;return p(null!==(t=null==e?void 0:e.userid)&&void 0!==t?t:null)},buttonId:_,buttonContent:f?Re(Qf,{userAnnotations:f}):Re("span",{className:"text-grey-6",children:"Select a user..."}),children:h.map((e=>Re(Mr.Option,{value:e,children:Re(Qf,{userAnnotations:e})},e.userid)))})]}),i&&Re("p",{"data-testid":"error-info",children:[Re("b",{children:"Unable to find annotations to import:"})," ",i]}),Re(qe,{children:[null!==E&&Re("span",{"data-testid":"progress-text",className:"text-grey-6",children:[E,"% complete"]}),Re(Vn,{"data-testid":"import-button",disabled:!y||S,onClick:g,variant:"primary",children:[null!==E&&Re(ng,{size:22,value:E}),"Import"]})]})]})}),["importAnnotationsService"]);var ig=Vr((function({toastMessenger:e}){
|
|
580
580
|
const t=ka(),n=t.mainFrame(),r=t.focusedGroup(),o=r&&n,i=o&&(a=n.uri,s=r.id,es(a)?`https://hyp.is/go?url=${encodeURIComponent(a)}&group=${s}`:null);var a,s;const l=he((()=>{try{i&&(ls(i),e.success("Copied share link to clipboard"))}catch(t){e.error("Unable to copy link")}}),[i,e]);return o?Re("div",{className:"text-color-text-light space-y-3",children:i?Re(v,{children:[Re("div",{className:"text-color-text font-medium","data-testid":"sharing-intro",children:"private"===r.type?Re("p",{children:"Use this link to share these annotations with other group members:"}):Re("p",{children:"Use this link to share these annotations with anyone:"})}),Re("div",{children:Re(Kn,{children:[Re(Nr,{"aria-label":"Use this URL to share these annotations",type:"text",value:i,readOnly:!0}),Re(Zn,{icon:_t,onClick:l,title:"Copy share link",variant:"dark"})]})}),Re("p",{"data-testid":"sharing-details",children:["private"===r.type?Re("span",{children:["Annotations in the private group ",Re("em",{children:r.name
|
|
581
581
|
})," ","are only visible to group members."]}):Re("span",{children:["Anyone using this link may view the annotations in the group"," ",Re("em",{children:r.name}),"."]})," ",Re("span",{children:["Private (",Re(un,{className:"inline w-em h-em ml-0.5 -mt-0.5"})," ",Re("em",{children:"Only Me"}),") annotations are only visible to you."]})]}),Re("div",{className:"text-[24px]",children:Re(ds,{shareURI:i})})]}):Re("p",{"data-testid":"no-sharing",children:"These annotations cannot be shared because this document is not available on the web."})}):Re(Jf,{})}),["toastMessenger"]);function ag({children:e}){return Re("div",{"data-testid":"tab-header",className:"flex items-center",children:[Re(Qn,{classes:X("order-last","text-[16px]","text-grey-6 hover:text-grey-7 hover:bg-grey-3/50"),title:"Close",variant:"custom",size:"sm"}),Re(Br,{classes:"grow gap-x-1 -mb-[1px] z-2",children:e})]})}function sg({children:e,active:t,title:n,...r}){return Re("div",{role:"tabpanel",...r,className:X("p-3 focus-visible-ring ring-inset",{
|
|
582
582
|
hidden:!t}),hidden:!t,children:[n&&Re(tr,{children:n}),Re("div",{className:"space-y-3 pt-2",children:e})]})}function lg({shareTab:e,exportTab:t,importTab:n}){const r=ka().focusedGroup(),o=r&&r.name||"...",i=`Share Annotations in ${o}`,a=t||n,s=e?"share":t?"export":"import",[l,c]=ae(s),u=a&&l===s;return Re(xf,{title:i,panelName:"shareGroupAnnotations",variant:a?"custom":"panel",children:[a&&Re(v,{children:[Re(ag,{children:[e&&Re(Dr,{id:"share-panel-tab","aria-controls":"share-panel",variant:"tab",selected:"share"===l,onClick:()=>c("share"),textContent:"Share",children:"Share"}),t&&Re(Dr,{id:"export-panel-tab","aria-controls":"export-panel",variant:"tab",selected:"export"===l,onClick:()=>c("export"),textContent:"Export",children:"Export"}),n&&Re(Dr,{id:"import-panel-tab","aria-controls":"import-panel",variant:"tab",selected:"import"===l,onClick:()=>c("import"),textContent:"Import",children:"Import"})]}),Re(Ue,{classes:X({"rounded-tl-none":u}),children:[Re(sg,{id:"share-panel",active:"share"===l,
|
|
@@ -606,7 +606,7 @@ e))).catch((e=>{throw i.removeEventListener("message",l),e}))}function Dg(e){con
|
|
|
606
606
|
user_info:a,$tag:s,hidden:!1,links:{},document:{title:""}},e);return Po(l)&&(l.permissions=ts(i)),this._settings.annotationMetadata&&(l.metadata={...this._settings.annotationMetadata}),l}create(e,t=new Date){const n=this.annotationFromData(e,t);this._store.addAnnotations([n]),this._store.deleteNewAndEmptyDrafts(),Po(n)||this._store.createDraft(n,{tags:n.tags,text:n.text,isPrivate:!Ro(n)}),Fo(n)?this._store.selectTab("note"):Ho(n)&&this._store.selectTab("annotation"),(n.references||[]).forEach((e=>{this._store.setExpanded(e,!0)}))}createPageNote(){const e=this._store.mainFrame();if(!this._store.isLoggedIn())return void this._store.openSidebarPanel("loginPrompt");if(!e)return;const t={target:[{source:e.uri}],uri:e.uri};this.create(t)}async delete(e){await this._api.annotation.delete({id:e.id}),this._activity.reportActivity("delete",e),this._store.removeAnnotations([e])}async flag(e){await this._api.annotation.flag({id:e.id}),this._activity.reportActivity("flag",e),this._store.updateFlagStatus(e.id,!0)}
|
|
607
607
|
reply(e,t){const n={group:e.group,permissions:Ro(e)?ns(t,e.group):ts(t),references:(e.references||[]).concat(e.id),target:[{source:e.target[0].source}],uri:e.uri};this.create(n)}async save(e){let t,n;const r=this._applyDraftChanges(e);let o;Io(e)?(t=this._api.annotation.update({id:e.id},r),n="update"):(t=this._api.annotation.create({},r),n="create"),this._store.annotationSaveStarted(e);try{o=await t,this._activity.reportActivity(n,o)}finally{this._store.annotationSaveFinished(e)}for(const[t,n]of Object.entries(e))if(t.startsWith("$")){o[t]=n}return this._store.removeDraft(e),this._store.addAnnotations([o]),o}}function Zg(e){const t={};for(const[n,r]of Object.entries(e))n.startsWith("$")||(t[n]=r);return t}Xg.$inject=["annotationActivity","api","settings","store"];class Jg{constructor(e){H(this,"_store",void 0),this._store=e}buildExportContent(e,t=new Date){var n;const r=this._store.profile(),o=new df(r,[]);return{export_date:t.toISOString(),export_userid:null!==(n=r.userid)&&void 0!==n?n:"",
|
|
608
608
|
client_version:o.version,annotations:e.map(Zg)}}}Jg.$inject=["store"];class Qg extends Error{constructor(e,t,n=""){let r="Network request failed";t&&(r+=` (${t.status})`),n&&(r+=`: ${n}`),super(r),H(this,"url",void 0),H(this,"response",void 0),H(this,"reason",void 0),this.url=e,this.response=t,this.reason=n}}async function ev(e,t){let n,r;try{n=await fetch(e,t)}catch(t){throw new Qg(e,null,t.message)}if(204===n.status)return null;try{r=await n.json()}catch(t){throw new Qg(e,n,"Failed to parse response")}var o;if(!n.ok)throw new Qg(e,n,null===(o=r)||void 0===o?void 0:o.reason);return r}class tv{constructor(e,t,n){H(this,"_clientId",void 0),H(this,"search",void 0),H(this,"annotation",void 0),H(this,"group",void 0),H(this,"groups",void 0),H(this,"profile",void 0),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
|
|
609
|
-
;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={"Content-Type":"application/json","Hypothesis-Client-Version":"1.
|
|
609
|
+
;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={"Content-Type":"application/json","Hypothesis-Client-Version":"1.1374.0"};i&&(c.Authorization="Bearer "+i);const u=r();u&&(c["X-Client-Id"]=u);const{url:d,unusedParams:h}=Ki(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 ev(m.toString(),{body:s?JSON.stringify(Zg(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={
|
|
610
610
|
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")}}setClientId(e){this._clientId=e}}tv.$inject=["apiRoutes","auth","store"];var nv={};function rv(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 ov=rv;rv.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)},rv.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null},rv.prototype.retry=function(e){
|
|
611
611
|
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),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},rv.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)
|
|
612
612
|
},rv.prototype.try=function(e){console.log("Using RetryOperation.try() is deprecated"),this.attempt(e)},rv.prototype.start=function(e){console.log("Using RetryOperation.start() is deprecated"),this.attempt(e)},rv.prototype.start=rv.prototype.try,rv.prototype.errors=function(){return this._errors},rv.prototype.attempts=function(){return this._attempts},rv.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=ov;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")
|
|
@@ -716,8 +716,8 @@ jg("Error connecting to H push notification service:",t);const n=new URL(e).host
|
|
|
716
716
|
}))}setConfig(e,t){var n;this._configMessages[e]=t,null!==(n=this._socket)&&void 0!==n&&n.isConnected()&&this._socket.send(t)}async _reconnect(){var e;const t=await this._websocketURL;if(!t)return;let n,r;null===(e=this._socket)||void 0===e||e.close();try{n=await this._auth.getAccessToken()}catch(e){throw console.error("Failed to fetch token for WebSocket authentication",e),e}if(n){const e=new URL(t);e.searchParams.set("access_token",n),r=e.toString()}else r=t;const o=new Mw(r);o.on("open",(()=>{this._reconnectionAttempts=0,this._sendClientConfig(o)})),o.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")})),o.on("error",(e=>this._handleSocketError(t,e))),o.on("message",(e=>this._handleSocketMessage(e))),this._socket=o,this.setConfig("client-id",{messageType:"client_id",value:this.clientId}),
|
|
717
717
|
this.setConfig("auth-check",{type:"whoami",id:1})}async connect(e={}){var t;this._updateImmediately=null===(t=e.applyUpdatesImmediately)||void 0===t||t,this._reconnectSetUp||(this._reconnectSetUp=!0,xv(this._store.subscribe,(()=>this._store.profile().userid),(()=>this._reconnect()))),this._socket||await this._reconnect()}}Iw.$inject=["store","apiRoutes","auth","groups","session"];const zw="hypothesis.user.tags.list",Rw="hypothesis.user.tags.map";class Lw{constructor(e){H(this,"_storage",void 0),this._storage=e}filter(e,t=null){const n=this._storage.getObject(zw)||[];let r=0;return n.filter((n=>{if(null!==t&&r>=t)return!1;const o=n.split(/\W+/),i=new RegExp(`^${qg(e)}`,"i");return!(!o.some((e=>e.match(i)))&&!n.match(i))&&(++r,!0)}))}store(e){const t=this._storage.getObject(Rw)||{};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(Rw,t)
|
|
718
718
|
;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(zw,n)}}Lw.$inject=["localStorage"];class Ow{constructor(e){H(this,"_store",void 0),this._store=e}forceVisible(e){e.children.forEach((e=>{this.forceVisible(e)})),e.visible||this._store.setForcedVisible(e.id,!0)}}Ow.$inject=["store"];class Dw extends zf{constructor(e,t){super(),H(this,"_store",void 0),H(this,"_window",void 0),H(this,"_delayedMessageQueue",void 0),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=[]}))}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,
|
|
719
|
-
visuallyHidden:r};return void this._delayedMessageQueue.push({type:e,messageText:t,options:o})}const i={type:e,id:Lg(10),message:t,visuallyHidden:r};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)}}Dw.$inject=["store","$window"];const Pw=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),Bw=function(e){const{version:t,origin:n}=Dg(e.location.href);return"1.
|
|
720
|
-
!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 Fw(e,t){e.setClientId(t.clientId)}function Hw(e,t,n){e.load(),t.load(),n.sync()}function Uw(e,t,n){e.init(),t.init(),n.init()}function jw(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})}))}Pw.sentry&&Bw&&function(e){const t=function(){const e=import.meta.url;return e?new URL(e).origin:null}(),n=t?[t]:void 0;fw({dsn:e.dsn,environment:e.environment,allowUrls:n,ignoreErrors:["Network request failed","Object Not Found Matching Id"],release:"1.
|
|
719
|
+
visuallyHidden:r};return void this._delayedMessageQueue.push({type:e,messageText:t,options:o})}const i={type:e,id:Lg(10),message:t,visuallyHidden:r};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)}}Dw.$inject=["store","$window"];const Pw=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),Bw=function(e){const{version:t,origin:n}=Dg(e.location.href);return"1.1374.0"!==t?(console.warn(`The Hypothesis sidebar is using a different version (1.1374.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."),
|
|
720
|
+
!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 Fw(e,t){e.setClientId(t.clientId)}function Hw(e,t,n){e.load(),t.load(),n.sync()}function Uw(e,t,n){e.init(),t.init(),n.init()}function jw(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})}))}Pw.sentry&&Bw&&function(e){const t=function(){const e=import.meta.url;return e?new URL(e).origin:null}(),n=t?[t]:void 0;fw({dsn:e.dsn,environment:e.environment,allowUrls:n,ignoreErrors:["Network request failed","Object Not Found Matching Id"],release:"1.1374.0",beforeSend:(e,t)=>{if(vw>=5)return jg("Client-side Sentry quota reached. No further Sentry events will be sent"),null;++vw;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{
|
|
721
721
|
G_("host_config",Dg(window.location.href))}catch(e){}G_("loaded_scripts",Array.from(document.querySelectorAll("script")).filter((e=>!e.type||e.type.match(/javascript|module/))).map((e=>e.src||"<inline>"))),gv(((e,t)=>{bw(e,t)}))}(Pw.sentry),function(e){e.addEventListener("click",(e=>{const t=e.target;"A"===t.tagName&&"_blank"===t.target&&(t.rel="noopener")}))}(document.body),Fw.$inject=["api","streamer"],Hw.$inject=["groups","session","router"],Uw.$inject=["autosaveService","persistedDefaults","serviceURL"],jw.$inject=["frameSync","store","toastMessenger"];const qw=document.querySelector("hypothesis-app");!function(e=window){e.addEventListener("message",Wg)}(),async function(e,t=window){const n=function(e){const t=Dg(e.location.href),n=["annotations","group","query","appType","openSidebar","showHighlights","services","branding","enableExperimentalNewNoteButton","focus","requestConfigFromFrame","theme","usernameUrl"],r={openSidebar:Pg,requestConfigFromFrame:e=>{if("string"==typeof e)return e
|
|
722
722
|
;const t=function(e){return"object"==typeof e&&null!==e?e:{}}(e);return{origin:Fg(t.origin),ancestorLevel:Bg(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:Hg(n.ancestorLevel,t),origin:n.origin}}(n,t);let o;if(r){const e=await async function(e,t){return{...await Og(t.targetFrame,t.origin,"requestConfig",[],3e3),...e.group?{group:e.group}:{}}}(n,r);o=function(e,t){const n=e.services;return Array.isArray(n)?(n.forEach(((e,n)=>{"$rpc:requestGroups"===e.groups&&(e.groups=Og(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=Ur(e)
|
|
723
723
|
;if(!t)return e.apiUrl;if(t.apiUrl)return t.apiUrl;throw new Error("Service should contain an apiUrl value.")}(i),i}(Pw).then((e=>{!function(e,t){const n=new $;n.register("annotationsExporter",Jg).register("annotationsService",Xg).register("annotationActivity",Kg).register("api",tv).register("apiRoutes",lv).register("auth",dv).register("autosaveService",hv).register("frameSync",Sv).register("groups",Av).register("importAnnotationsService",yw).register("loadAnnotationsService",ww).register("localStorage",kw).register("persistedDefaults",Sw).register("router",Ew).register("serviceURL",Tw).register("session",Aw).register("streamer",Iw).register("streamFilter",Cw).register("tags",Lw).register("threadsService",Ow).register("toastMessenger",Dw).register("store",{factory:xa}),n.register("$window",{value:window}).register("settings",{value:e}),n.run(Uw),n.run(Fw),n.run(Hw),n.run(Yg),n.run(jw),B(Re(Gr.Provider,{value:n,children:Re(Ig,{})}),t)}(e,qw)})).catch((e=>function(e,t){
|