hypothesis 1.1216.0 → 1.1217.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?529af1","styles/annotator.css":"styles/annotator.css?69e764","styles/annotator.css.map":"styles/annotator.css.map?1d8583","styles/highlights.css":"styles/highlights.css?6b4ebd","styles/highlights.css.map":"styles/highlights.css.map?241350","styles/katex.min.css":"styles/katex.min.css?e9b69c","styles/katex.min.css.map":"styles/katex.min.css.map?42d80c","styles/pdfjs-overrides.css":"styles/pdfjs-overrides.css?c95edf","styles/pdfjs-overrides.css.map":"styles/pdfjs-overrides.css.map?1d8ac6","styles/sidebar.css":"styles/sidebar.css?cc60e2","styles/sidebar.css.map":"styles/sidebar.css.map?fcc989","styles/ui-playground.css":"styles/ui-playground.css?2f504e","styles/ui-playground.css.map":"styles/ui-playground.css.map?662714","scripts/annotator.bundle.js.map":"scripts/annotator.bundle.js.map?343df6","scripts/sidebar.bundle.js":"scripts/sidebar.bundle.js?042bfc","scripts/ui-playground.bundle.js":"scripts/ui-playground.bundle.js?827940","scripts/ui-playground.bundle.js.map":"scripts/ui-playground.bundle.js.map?abb946","scripts/sidebar.bundle.js.map":"scripts/sidebar.bundle.js.map?e4427f"};function t(s){s.setAttribute("data-hypothesis-asset","")}function e(s,e){var r=s.createElement("link");r.rel="stylesheet",r.type="text/css",r.href=e,t(r),s.head.appendChild(r)}function r(s,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=r.esModule,o=void 0===n||n,a=r.forceReload,i=void 0!==a&&a,l=s.createElement("script");o&&(l.type="module"),i&&(e+="#ts=".concat(Date.now())),l.src=e,l.async=!1,t(l),s.head.appendChild(l)}function n(s,e,r,n){var o=s.createElement("link");o.rel=e,o.href=n,o.type="application/annotator+".concat(r),t(o),s.head.appendChild(o)}function o(s,e,r){var n=s.createElement("link");n.rel="preload",n.as=e,n.href=r,"fetch"===e&&(n.crossOrigin="anonymous"),t(n),s.head.appendChild(n)}function a(s,t){return s.assetRoot+"build/"+s.manifest[t]}function i(s){var t=s.match(/(https?):\/\/([^:/]+)/);return t?{protocol:t[1],hostname:t[2]}:null}function l(){var s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=s.currentScript;return t?i(t.src):null}function p(s){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;if(-1===s.indexOf("{"))return s;var e=l(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 c=function(s){for(var t={},e=s.querySelectorAll("script.js-hypothesis-config"),r=0;r<e.length;r++){var n=void 0;try{n=JSON.parse(e[r].textContent||"")}catch(s){console.warn("Could not parse settings from js-hypothesis-config tags",s),n={}}Object.assign(t,n)}return t}(document),u=p(c.assetRoot||"https://cdn.hypothes.is/hypothesis/1.1216.0/");if(document.querySelector("hypothesis-app")){!function(s,t){o(s,"fetch",t.apiUrl),o(s,"fetch",t.apiUrl+"links");for(var n=0,i=["scripts/sidebar.bundle.js"];n<i.length;n++)r(s,a(t,i[n]),{esModule:!0});for(var l=0,p=["styles/katex.min.css","styles/sidebar.css"];l<p.length;l++)e(s,a(t,p[l]))}(document,{assetRoot:u,manifest:s,apiUrl:c.apiUrl})}else{var d=c,h=p(d.notebookAppUrl||"https://hypothes.is/notebook"),y=p(d.profileAppUrl||"https://hypothes.is/user-profile"),f=p(d.sidebarAppUrl||"https://hypothes.is/app.html");!function(s,t){if(!s.querySelector('link[type="application/annotator+html"]')){n(s,"sidebar","html",t.sidebarAppUrl),n(s,"notebook","html",t.notebookAppUrl),n(s,"profile","html",t.profileAppUrl),o(s,"style",a(t,"styles/annotator.css")),n(s,"hypothesis-client","javascript",t.assetRoot+"build/boot.js");for(var i=0,l=["scripts/annotator.bundle.js"];i<l.length;i++)r(s,a(t,l[i]),{esModule:!1});var p=[];void 0!==window.PDFViewerApplication&&p.push("styles/pdfjs-overrides.css"),p.push("styles/highlights.css");for(var c=0,u=p;c<u.length;c++)e(s,a(t,u[c]))}}(document,{assetRoot:u,manifest:s,notebookAppUrl:h,profileAppUrl:y,sidebarAppUrl:f})}}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/.")}();
1
+ !function(){"use strict";var s={"scripts/annotator.bundle.js":"scripts/annotator.bundle.js?343401","styles/annotator.css":"styles/annotator.css?69e764","styles/annotator.css.map":"styles/annotator.css.map?1d8583","styles/highlights.css":"styles/highlights.css?6b4ebd","styles/highlights.css.map":"styles/highlights.css.map?241350","styles/katex.min.css":"styles/katex.min.css?e9b69c","styles/katex.min.css.map":"styles/katex.min.css.map?42d80c","styles/pdfjs-overrides.css":"styles/pdfjs-overrides.css?c95edf","styles/pdfjs-overrides.css.map":"styles/pdfjs-overrides.css.map?1d8ac6","styles/sidebar.css":"styles/sidebar.css?cf58f7","styles/sidebar.css.map":"styles/sidebar.css.map?983dec","styles/ui-playground.css":"styles/ui-playground.css?909a7a","styles/ui-playground.css.map":"styles/ui-playground.css.map?cab7bf","scripts/annotator.bundle.js.map":"scripts/annotator.bundle.js.map?343df6","scripts/sidebar.bundle.js":"scripts/sidebar.bundle.js?c66f2f","scripts/ui-playground.bundle.js":"scripts/ui-playground.bundle.js?827940","scripts/ui-playground.bundle.js.map":"scripts/ui-playground.bundle.js.map?abb946","scripts/sidebar.bundle.js.map":"scripts/sidebar.bundle.js.map?72a075"};function t(s){s.setAttribute("data-hypothesis-asset","")}function e(s,e){var r=s.createElement("link");r.rel="stylesheet",r.type="text/css",r.href=e,t(r),s.head.appendChild(r)}function r(s,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=r.esModule,o=void 0===n||n,a=r.forceReload,i=void 0!==a&&a,l=s.createElement("script");o&&(l.type="module"),i&&(e+="#ts=".concat(Date.now())),l.src=e,l.async=!1,t(l),s.head.appendChild(l)}function n(s,e,r,n){var o=s.createElement("link");o.rel=e,o.href=n,o.type="application/annotator+".concat(r),t(o),s.head.appendChild(o)}function o(s,e,r){var n=s.createElement("link");n.rel="preload",n.as=e,n.href=r,"fetch"===e&&(n.crossOrigin="anonymous"),t(n),s.head.appendChild(n)}function a(s,t){return s.assetRoot+"build/"+s.manifest[t]}function i(s){var t=s.match(/(https?):\/\/([^:/]+)/);return t?{protocol:t[1],hostname:t[2]}:null}function l(){var s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=s.currentScript;return t?i(t.src):null}function p(s){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;if(-1===s.indexOf("{"))return s;var e=l(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 c=function(s){for(var t={},e=s.querySelectorAll("script.js-hypothesis-config"),r=0;r<e.length;r++){var n=void 0;try{n=JSON.parse(e[r].textContent||"")}catch(s){console.warn("Could not parse settings from js-hypothesis-config tags",s),n={}}Object.assign(t,n)}return t}(document),u=p(c.assetRoot||"https://cdn.hypothes.is/hypothesis/1.1217.0/");if(document.querySelector("hypothesis-app")){!function(s,t){o(s,"fetch",t.apiUrl),o(s,"fetch",t.apiUrl+"links");for(var n=0,i=["scripts/sidebar.bundle.js"];n<i.length;n++)r(s,a(t,i[n]),{esModule:!0});for(var l=0,p=["styles/katex.min.css","styles/sidebar.css"];l<p.length;l++)e(s,a(t,p[l]))}(document,{assetRoot:u,manifest:s,apiUrl:c.apiUrl})}else{var d=c,h=p(d.notebookAppUrl||"https://hypothes.is/notebook"),y=p(d.profileAppUrl||"https://hypothes.is/user-profile"),f=p(d.sidebarAppUrl||"https://hypothes.is/app.html");!function(s,t){if(!s.querySelector('link[type="application/annotator+html"]')){n(s,"sidebar","html",t.sidebarAppUrl),n(s,"notebook","html",t.notebookAppUrl),n(s,"profile","html",t.profileAppUrl),o(s,"style",a(t,"styles/annotator.css")),n(s,"hypothesis-client","javascript",t.assetRoot+"build/boot.js");for(var i=0,l=["scripts/annotator.bundle.js"];i<l.length;i++)r(s,a(t,l[i]),{esModule:!1});var p=[];void 0!==window.PDFViewerApplication&&p.push("styles/pdfjs-overrides.css"),p.push("styles/highlights.css");for(var c=0,u=p;c<u.length;c++)e(s,a(t,u[c]))}}(document,{assetRoot:u,manifest:s,notebookAppUrl:h,profileAppUrl:y,sidebarAppUrl:f})}}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/.")}();
@@ -1,5 +1,5 @@
1
1
  {
2
- "scripts/annotator.bundle.js": "scripts/annotator.bundle.js?529af1",
2
+ "scripts/annotator.bundle.js": "scripts/annotator.bundle.js?343401",
3
3
  "styles/annotator.css": "styles/annotator.css?69e764",
4
4
  "styles/annotator.css.map": "styles/annotator.css.map?1d8583",
5
5
  "styles/highlights.css": "styles/highlights.css?6b4ebd",
@@ -8,13 +8,13 @@
8
8
  "styles/katex.min.css.map": "styles/katex.min.css.map?42d80c",
9
9
  "styles/pdfjs-overrides.css": "styles/pdfjs-overrides.css?c95edf",
10
10
  "styles/pdfjs-overrides.css.map": "styles/pdfjs-overrides.css.map?1d8ac6",
11
- "styles/sidebar.css": "styles/sidebar.css?cc60e2",
12
- "styles/sidebar.css.map": "styles/sidebar.css.map?fcc989",
13
- "styles/ui-playground.css": "styles/ui-playground.css?2f504e",
14
- "styles/ui-playground.css.map": "styles/ui-playground.css.map?662714",
11
+ "styles/sidebar.css": "styles/sidebar.css?cf58f7",
12
+ "styles/sidebar.css.map": "styles/sidebar.css.map?983dec",
13
+ "styles/ui-playground.css": "styles/ui-playground.css?909a7a",
14
+ "styles/ui-playground.css.map": "styles/ui-playground.css.map?cab7bf",
15
15
  "scripts/annotator.bundle.js.map": "scripts/annotator.bundle.js.map?343df6",
16
- "scripts/sidebar.bundle.js": "scripts/sidebar.bundle.js?042bfc",
16
+ "scripts/sidebar.bundle.js": "scripts/sidebar.bundle.js?c66f2f",
17
17
  "scripts/ui-playground.bundle.js": "scripts/ui-playground.bundle.js?827940",
18
18
  "scripts/ui-playground.bundle.js.map": "scripts/ui-playground.bundle.js.map?abb946",
19
- "scripts/sidebar.bundle.js.map": "scripts/sidebar.bundle.js.map?e4427f"
19
+ "scripts/sidebar.bundle.js.map": "scripts/sidebar.bundle.js.map?72a075"
20
20
  }
@@ -118,7 +118,7 @@ this._hostRPC.on("hoverAnnotations",(t=>this._hoverAnnotations(t))),this._hostRP
118
118
  }(this.element),this._integration.destroy()}async anchor(t){const e=t=>{var e;const n=No(t);if(!n)return;const i=en(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)&&rn(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=$e.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);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=[]
119
119
  ;for(const e of this.anchors)e.annotation.$tag!==t?n.push(e):e.highlights&&on(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,r=(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:r,$highlight:t,$cluster:t?"user-highlights":"user-annotations",$tag:"a:"+o(8)};return this._sidebarRPC.call("createAnnotation",s),this.anchor(s),Ao(),s}_hoverAnnotations(t){this._hoveredAnnotations.clear(),t.forEach((t=>this._hoveredAnnotations.add(t)));for(const e of this.anchors)if(e.highlights){const n=t.includes(e.annotation.$tag);rn(e.highlights,n)}this._sidebarRPC.call("hoverAnnotations",t)}_scrollToClosestOffScreenAnchor(t,e){
120
120
  const n=function(t,e){let n=null,i=0;for(let r of t){var o;if(null===(o=r.highlights)||void 0===o||!o.length)continue;const t=sn(r.highlights).top;"up"===e&&t>=137||"down"===e&&t<=window.innerHeight-22||(!n||"up"===e&&t>i||"down"===e&&t<i)&&(n=r,i=t)}return n}(this.anchors.filter((({annotation:e})=>t.includes(e.$tag))),e);n&&this._integration.scrollToAnchor(n)}_onSelection(t){const e=this._integration.getAnnotatableRange(t);if(!e)return void this._onClearSelection();const n=document.getSelection(),i=Ze(n),o=Qe(n);o?(this.selectedRanges=[e],this._hostRPC.call("textSelected"),this._adder.annotationsForSelection=So(),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}={}){
121
- 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)}(this.element,t),this._highlightsVisible=t,e&&this._hostRPC.call("highlightsVisibleChanged",t)}get highlightsVisible(){return this._highlightsVisible}fitSideBySide(t){this._sideBySideActive=this._integration.fitSideBySide(t)}get sideBySideActive(){return this._sideBySideActive}get hoveredAnnotationTags(){return this._hoveredAnnotations}_handleShortcut(t){Ht(t,"Ctrl+Shift+H")&&this.setHighlightsVisible(!this._highlightsVisible)}}function Ro(t,e){const n=new URL(t),i=new URLSearchParams;return i.append("config",JSON.stringify(e)),n.hash=i.toString(),n.toString()}function ko(t,e){var n;const i={};for(let[t,n]of Object.entries(e))"notebookAppUrl"!==t&&"sidebarAppUrl"!==t&&null!=n&&(i[t]=n);i.origin=new URL(t).origin,i.version="1.1216.0";const o=new URL(window.location.href)
121
+ 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)}(this.element,t),this._highlightsVisible=t,e&&this._hostRPC.call("highlightsVisibleChanged",t)}get highlightsVisible(){return this._highlightsVisible}fitSideBySide(t){this._sideBySideActive=this._integration.fitSideBySide(t)}get sideBySideActive(){return this._sideBySideActive}get hoveredAnnotationTags(){return this._hoveredAnnotations}_handleShortcut(t){Ht(t,"Ctrl+Shift+H")&&this.setHighlightsVisible(!this._highlightsVisible)}}function Ro(t,e){const n=new URL(t),i=new URLSearchParams;return i.append("config",JSON.stringify(e)),n.hash=i.toString(),n.toString()}function ko(t,e){var n;const i={};for(let[t,n]of Object.entries(e))"notebookAppUrl"!==t&&"sidebarAppUrl"!==t&&null!=n&&(i[t]=n);i.origin=new URL(t).origin,i.version="1.1217.0";const o=new URL(window.location.href)
122
122
  ;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),t.onProfileRequest&&(t.onProfileRequestProvided=!0),t.onHelpRequest&&(t.onHelpRequestProvided=!0)}return i}function Po({config:t,groupId:e}){return Wt("iframe",{title:"Hypothesis annotation notebook",className:"h-full w-full border-0",allowFullScreen:!0,src:Ro(t.notebookAppUrl,{...ko(t.notebookAppUrl,t),group:e})})}function Oo({eventBus:t,config:e}){const[n,i]=At(0),[o,r]=At(!0),[s,a]=At(null),l=Rt(""),c=Rt(null);Tt((()=>(l.current=document.body.style.overflow,()=>{document.body.style.overflow=l.current})),[]),Tt((()=>{document.body.style.overflow=o?l.current:"hidden"}),[o]),Tt((()=>{const e=t.createEmitter();return e.subscribe("openNotebook",(t=>{r(!1),i((t=>t+1)),a(t)})),c.current=e,()=>{e.destroy()}}),[t])
123
123
  ;return null===s?null:Wt("div",{className:_e("fixed z-max top-0 left-0 right-0 bottom-0 p-3 bg-black/50",{hidden:o}),"data-testid":"notebook-outer",children:Wt("div",{className:"relative w-full h-full","data-testid":"notebook-inner",children:[Wt("div",{className:"absolute right-0 m-3",children:Wt(Ee,{title:"Close the Notebook",onClick:()=>{var t;r(!0),null===(t=c.current)||void 0===t||t.publish("closeNotebook")},variant:"dark",classes:_e("!bg-transparent enabled:hover:!bg-grey-3"),children:Wt(Xt,{className:"w-4 h-4"})})}),Wt(Po,{config:e,groupId:s},n)]})})}class Lo{constructor(t,e,n){this._outerContainer=document.createElement("hypothesis-notebook"),t.appendChild(this._outerContainer),this.shadowRoot=Me(this._outerContainer),dt(Wt(Oo,{eventBus:e,config:n}),this.shadowRoot)}destroy(){dt(null,this.shadowRoot),this._outerContainer.remove()}}function Mo({eventBus:t,config:e}){const[n,i]=At(!0),o=Rt(null),[r,s]=At(!1);Tt((()=>{const e=t.createEmitter();return e.subscribe("openProfile",(()=>{i(!1),s(!0)})),
124
124
  o.current=e,()=>{e.destroy()}}),[t]);return r?Wt("div",{className:_e("fixed z-max top-0 left-0 right-0 bottom-0 p-3 bg-black/50",{hidden:n}),"data-testid":"profile-outer",children:Wt("div",{className:"relative w-full h-full","data-testid":"profile-inner",children:[Wt("div",{className:"absolute right-0 m-3",children:Wt(Ee,{title:"Close the Profile",onClick:()=>{var t;i(!0),null===(t=o.current)||void 0===t||t.publish("closeProfile")},variant:"dark",classes:_e("!bg-transparent enabled:hover:!bg-grey-3"),children:Wt(Xt,{className:"w-4 h-4"})})}),Wt("iframe",{title:"Hypothesis profile",className:"h-full w-full border-0",src:e.profileAppUrl})]})}):null}class Io{constructor(t,n,i){e(this,"_outerContainer",void 0),e(this,"shadowRoot",void 0),this._outerContainer=document.createElement("hypothesis-profile"),t.appendChild(this._outerContainer),this.shadowRoot=Me(this._outerContainer),dt(Wt(Mo,{eventBus:n,config:i}),this.shadowRoot)}destroy(){dt(null,this.shadowRoot),this._outerContainer.remove()}}var Fo={},Bo={
@@ -528,7 +528,7 @@ n.push(t[e]));return{...zm,id:"root",children:n}}(e);return n&&(o.children=o.chi
528
528
  ;function Wm(e){return function(e){return e.replace(Ym,"")}((t=e,t.normalize("NFKD"))).toLowerCase();var t}class Km{constructor(e,t){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 Xm{constructor(e,t){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 Zm(e){return{fieldValues:e,matches:(e,t)=>e.includes(t),normalize:Wm}}const Jm={quote:Zm((e=>{var t;return[null!==(t=Gr(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:Zm((e=>e.tags)),text:Zm((e=>[e.text])),uri:Zm((e=>[e.uri])),user:Zm((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 Qm=function(e){if(1!==e.length)throw new Error("Memoize input must be a function of one argument");let t,n
529
529
  ;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:Vm[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=Cm(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"},text:{terms:a,operator:"and"},uri:{terms:s,operator:"or"},user:{terms:l,operator:"or"}}
530
530
  }(t.filterQuery||"",t.filters);n.filterFn=t=>function(e,t){const n=(e,t)=>new Km(t,Jm[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 Xm("or",e.map((e=>n(e,t))))))}else r=t.terms.map((t=>n(e,t)));return new Xm(t.operator,r)})),o=new Xm("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,!Pr(n)&&Hm(n)===r);var n,r}),jm(e.annotations,n)}));function ep(){const e=xi(),t=e.allAnnotations(),n=e.filterQuery(),r=e.route(),o=e.selectionState(),i=e.getFilterValues(),a=le((()=>({annotations:t,route:r,selection:{...o,filterQuery:n,filters:i}})),[t,n,r,o,i]);return Qm(a)}var tp=Kn((function({loadAnnotationsService:e,onLogin:t}){const n=xi(),r=n.routeParams().id,o=ep(),i=n.profile().userid,[a,s]=re(!1);return ie((()=>{s(!1),n.clearAnnotations(),e.loadThread(r).then((e=>{
531
- const t=e.filter((e=>0===(e.references||[]).length))[0];t&&(e.forEach((e=>e.id&&n.setExpanded(e.id,!0))),t.id!==r&&n.highlightAnnotations([r]))})).catch((()=>{s(!0)}))}),[r,i,e,n]),we(g,{children:[a&&we(ki,{errorType:"annotation",onLoginRequest:t}),we(Em,{threads:o.children})]})}),["loadAnnotationsService"]);class np{constructor(e,t,n=window){var r,o,i,a;const s="N/A";let l=s;e.userid&&(l=e.userid,e.displayName&&(l=`${e.displayName} (${l})`)),this.version="1.1216.0",this.userAgent=n.navigator.userAgent,this.urls=t.map((e=>e.uri)).join(", ")||s,this.fingerprint=null!==(r=null===(o=t[0])||void 0===o||null===(i=o.metadata)||void 0===i?void 0:i.documentFingerprint)&&void 0!==r?r:s,this.account=l,this.timestamp=(new Date).toString();const c=null===(a=t[0])||void 0===a?void 0:a.segment;if(c){const e=[];c.cfi&&e.push(["CFI",c.cfi]),c.url&&e.push(["URL",c.url]),this.segment=e.map((([e,t])=>`${e}: ${t}`)).join(", ")}}asFormattedString(){
531
+ const t=e.filter((e=>0===(e.references||[]).length))[0];t&&(e.forEach((e=>e.id&&n.setExpanded(e.id,!0))),t.id!==r&&n.highlightAnnotations([r]))})).catch((()=>{s(!0)}))}),[r,i,e,n]),we(g,{children:[a&&we(ki,{errorType:"annotation",onLoginRequest:t}),we(Em,{threads:o.children})]})}),["loadAnnotationsService"]);class np{constructor(e,t,n=window){var r,o,i,a;const s="N/A";let l=s;e.userid&&(l=e.userid,e.displayName&&(l=`${e.displayName} (${l})`)),this.version="1.1217.0",this.userAgent=n.navigator.userAgent,this.urls=t.map((e=>e.uri)).join(", ")||s,this.fingerprint=null!==(r=null===(o=t[0])||void 0===o||null===(i=o.metadata)||void 0===i?void 0:i.documentFingerprint)&&void 0!==r?r:s,this.account=l,this.timestamp=(new Date).toString();const c=null===(a=t[0])||void 0===a?void 0:a.segment;if(c){const e=[];c.cfi&&e.push(["CFI",c.cfi]),c.url&&e.push(["URL",c.url]),this.segment=e.map((([e,t])=>`${e}: ${t}`)).join(", ")}}asFormattedString(){
532
532
  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())}}function rp(e,t,n){e.self===e?e.scrollTo(t,n):(e.scrollLeft=t,e.scrollTop=n)}function op(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)
533
533
  ;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 rp(e,r.x,r.y),e._scrollSettings=null,t.end("complete");var a=1-t.ease(i);if(rp(e,r.x-r.differenceX*a,r.y-r.differenceY*a),o>=t.time)return t.endIterations++,t.scrollAncestor&&op(t.scrollAncestor),void op(e);!function(e){if("requestAnimationFrame"in window)return window.requestAnimationFrame(e);setTimeout(e,16)}(op.bind(null,e))}}function ip(e){return e.self===e}function ap(e){return"pageXOffset"in e||(e.scrollHeight!==e.clientHeight||e.scrollWidth!==e.clientWidth)&&"hidden"!==getComputedStyle(e).overflow}function sp(){return!0}function lp(e){if(e.assignedSlot)return lp(e.assignedSlot)
534
534
  ;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 cp=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=lp(e),o=1,i=t.validTarget||sp,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,ap):ap(r))&&(o++,s.push(r)),!(r=lp(r))){l("complete");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),
@@ -560,7 +560,7 @@ var $p=Kn((function({toastMessenger:e}){return we("div",{children:we("ul",{"aria
560
560
  onToggleSubmenu:d,submenu:we(g,{children:[we("ul",{children:[i&&we("li",{children:we(Kh,{href:i,icon:st,isSubmenuItem:!0,label:"View group activity"})}),i&&we("li",{children:we(Kh,{onClick:()=>(e=>{try{sa(e),o.success(`Copied link for "${t.name}"`)}catch(e){o.error("Unable to copy link")}})(i),icon:Ge,isSubmenuItem:!0,label:h})}),t.canLeave&&we("li",{children:we(Kh,{icon:Nt,isSubmenuItem:!0,label:"Leave group",onClick:async()=>{const e=`Are you sure you want to leave the group "${t.name}"?`;await $n({title:"Leave group?",message:e,confirmAction:"Leave"})&&n.leave(t.id)}})})]}),!s&&we("p",{className:Y("p-2 pl-9 bg-grey-1 hyphens-none"),"data-testid":"unselectable-group-note",children:"This group is restricted to specific URLs."})]})})}),["groups","toastMessenger"]);function Xp({expandedGroup:e,onExpandGroup:t,groups:n,heading:r}){return we(Wp,{heading:r,children:n.map((n=>we(Kp,{isExpanded:n===e,onExpand:e=>t(e?n:null),group:n},n.id)))})}var Zp=Kn((function({settings:e}){
561
561
  const t=xi(),n=t.getCurrentlyViewingGroups(),r=t.getFeaturedGroups(),o=t.getMyGroups(),i=t.focusedGroup(),a=t.profile().userid,s=le((()=>Yp(o)),[o]),l=le((()=>Yp(r)),[r]),c=le((()=>Yp(n)),[n]),u=t.defaultAuthority(),d=a&&!Ki(a,u),h=t.getLink("groups.new"),[m,p]=re(null);let f;if(i){const t=i.organization.logo||function(e){const t=Gn(e);return t&&t.icon?t.icon:null}(e)||"",n=Gp(i)?Gp(i):"";f=we("span",{className:Y("shrink-0 flex items-center gap-x-1 text-md text-color-text font-bold"),children:[t&&we("img",{className:Y("relative top-[1px] w-4 h-4"),src:t,alt:n}),i.name]})}else f=we("span",{children:"…"});return!!dp(e)&&n.length+r.length+o.length<2?f:we(Vh,{align:"left",contentClass:"min-w-[250px]",label:f,onOpenChanged:()=>p(null),title:i?`Select group (now viewing: ${i.name})`:"Select group",children:[c.length>0&&we(Xp,{expandedGroup:m,onExpandGroup:p,heading:"Currently Viewing",groups:c}),l.length>0&&we(Xp,{expandedGroup:m,onExpandGroup:p,heading:"Featured Groups",groups:l}),s.length>0&&we(Xp,{
562
562
  expandedGroup:m,onExpandGroup:p,heading:"My Groups",groups:s}),d&&we(Kh,{icon:Ft,href:h,label:"New private group"})]})}),["settings"]);const Jp={alt:1,ctrl:2,meta:4,shift:8};function Qp(e,t,{rootElement:n=document.documentElement}={}){const r=n=>{(function(e,t){const n=t.split("+").map((e=>e.toLowerCase()));let r=0,o=null;for(const e of n){const t=Jp[e];if(t)r|=t;else{if(null!==o)throw new Error("Multiple non-modifier keys specified");o=e}}if(!o)throw new Error(`Invalid shortcut: ${t}`);return((e.ctrlKey?Jp.ctrl:0)|(e.metaKey?Jp.meta:0)|(e.altKey?Jp.alt:0)|(e.shiftKey?Jp.shift:0))===r&&e.key.toLowerCase()===o})(n,e)&&t(n)};return n.addEventListener("keydown",r),()=>n.removeEventListener("keydown",r)}function ef(e,t,{rootElement:n}={}){ie((()=>{if(e)return Qp(e,t,{rootElement:n})}),[e,t,n])}function tf({alwaysExpanded:e,query:t,onSearch:n}){const r=xi().isLoading(),o=se(null);!function(e){const t=se(null),n=ce((n=>{var r
563
- ;!n.metaKey&&!n.ctrlKey&&n.target instanceof HTMLElement&&["INPUT","TEXTAREA"].includes(n.target.tagName)||(t.current=document.activeElement,e.current&&(null===(r=e.current)||void 0===r||r.focus(),n.preventDefault(),n.stopPropagation()))}),[e]),r=ce((()=>{var n;document.activeElement===e.current&&(t.current&&(t.current.focus(),t.current=null),null===(n=e.current)||void 0===n||n.blur())}),[e]),o=aa()?"meta":"ctrl";ef("/",n),ef(`${o}+k`,n),ef("escape",r)}(o);const[i,a]=re(t),[s,l]=re(t);t!==i&&(l(t),a(t));const c=e||t;return we("form",{action:"#",className:Y("relative","flex items-center","bg-white/90 hover:bg-white transition-colors"),name:"searchForm",onSubmit:e=>{var t,r,a;(e.preventDefault(),null!==(t=o.current)&&void 0!==t&&t.value||i)&&n(null!==(r=null===(a=o.current)||void 0===a?void 0:a.value)&&void 0!==r?r:"")},children:[we(zn,{"aria-label":"Search",classes:Y("order-1","text-base",{"border-0":!c,"focus:border":!0,border:c},{"max-w-0 p-0":!c,"focus:max-w-[150px] focus:p-1.5 focus:ml-[2px]":!0,
563
+ ;!n.metaKey&&!n.ctrlKey&&n.target instanceof HTMLElement&&["INPUT","TEXTAREA"].includes(n.target.tagName)||(t.current=document.activeElement,e.current&&(null===(r=e.current)||void 0===r||r.focus(),n.preventDefault(),n.stopPropagation()))}),[e]),r=ce((()=>{var n;document.activeElement===e.current&&(t.current&&(t.current.focus(),t.current=null),null===(n=e.current)||void 0===n||n.blur())}),[e]),o=aa()?"meta":"ctrl";ef("/",n),ef(`${o}+k`,n),ef("escape",r)}(o);const[i,a]=re(t),[s,l]=re(t);t!==i&&(l(t),a(t));const c=e||t;return we("form",{action:"#",className:Y("relative","flex items-center","bg-white/90 hover:bg-white transition-colors"),name:"searchForm",onSubmit:e=>{var t,r,a;(e.preventDefault(),null!==(t=o.current)&&void 0!==t&&t.value||i)&&n(null!==(r=null===(a=o.current)||void 0===a?void 0:a.value)&&void 0!==r?r:"")},children:[we(zn,{"aria-label":"Search",classes:Y("order-1","text-base",{"border-0":!c,"focus:border":!0,border:c},{"max-w-0 !p-0":!c,"focus:max-w-[150px] focus:p-1.5 focus:ml-[2px]":!0,
564
564
  "max-w-[150px] p-1.5 ml-[2px]":c},"transition-[max-width] duration-300 ease-out"),"data-testid":"search-input",dir:"auto",type:"text",name:"query",placeholder:r?"Loading…":"Search…",disabled:r,elementRef:o,value:s||"",onInput:e=>l(e.target.value)}),!r&&we("div",{className:"order-0",children:we(Cn,{icon:Qt,onClick:()=>{var e;return null===(e=o.current)||void 0===e?void 0:e.focus()},size:"xs",title:"Search annotations"})}),r&&we(gn,{})]})}function nf(){const e=xi(),t=e.sortKey(),n=e.sortKeys().map((n=>we(Kh,{label:n,onClick:()=>e.setSortKey(n),isSelected:n===t},n))),r=we("span",{className:"p-1",children:we(ln,{})});return we("div",{className:"SortMenu",children:we(Vh,{label:r,title:`Sort by ${t}`,align:"right",menuIndicator:!1,children:n})})}var rf=Kn((function({router:e}){return we(tf,{query:xi().routeParams().q,onSearch:t=>{e.navigate("stream",{q:t})},alwaysExpanded:!0})}),["router"]);var of=Kn((function({frameSync:e,onLogout:t,settings:n}){var r,o
565
565
  ;const i=xi(),a=i.defaultAuthority(),s=i.profile(),l=Ki(s.userid,a),c=Gn(n),u=Wi(s.userid),d=null!==(r=null===(o=s.user_info)||void 0===o?void 0:o.display_name)&&void 0!==r?r:u,[h,m]=re(!1),p=e=>c&&!!c[e],f=!l||p("onProfileRequestProvided"),g=!l||p("onLogoutRequestProvided"),v=i.isFeatureEnabled("client_user_profile"),b=()=>{e.notifyHost("openNotebook",i.focusedGroupId())},_=()=>e.notifyHost("openProfile"),y=f&&!l?i.getLink("user",{user:u}):void 0,w=we("span",{className:"p-1",children:we(Gt,{})});return we("div",{"data-testid":"user-menu",onKeyDown:e=>{"n"===e.key?(b(),m(!1)):v&&"p"===e.key&&(_(),m(!1))},children:we(Vh,{label:w,title:d,align:"right",open:h,onOpenChanged:m,children:[we(Wp,{children:[we(Kh,{label:d,isDisabled:!f,href:y,onClick:f?()=>l&&e.notifyHost("profileRequested"):void 0}),!l&&we(Kh,{label:"Account settings",href:i.getLink("account.settings")}),v&&we(Kh,{label:"Your profile",onClick:()=>_()}),we(Kh,{label:"Open notebook",onClick:()=>b()})]}),g&&we(Wp,{children:we(Kh,{label:"Log out",
566
566
  onClick:t})})]})})}),["frameSync","settings"]);var af=Kn((function({isSidebar:e,onLogin:t,onLogout:n,onSignUp:r,frameSync:o,settings:i,streamer:a}){const s=!dp(i),l=Yn(["accentColor"],i),c=xi(),u=c.filterQuery(),d=c.pendingUpdateCount(),h=c.isLoggedIn(),m=c.hasFetchedProfile(),p=c.isSidebarPanelOpen("help"),f=c.isSidebarPanelOpen("shareGroupAnnotations");return we("div",{className:Y("absolute h-10 left-0 top-0 right-0 z-4","text-grey-7 border-b theme-clean:border-b-0 bg-white"),"data-testid":"top-bar",children:we("div",{className:Y("container flex items-center h-full","text-[16px]"),"data-testid":"top-bar-content",children:[we(e?Zp:rf,{}),we("div",{className:"grow flex items-center justify-end",children:[e&&we(g,{children:[d>0&&we(Cn,{icon:Yt,onClick:()=>a.applyPendingUpdates(),size:"xs",variant:"primary",title:`Show ${d} new/updated ${1===d?"annotation":"annotations"}`}),we(tf,{query:u||null,onSearch:c.setFilterQuery}),we(nf,{}),s&&we(Cn,{icon:tn,expanded:f,onClick:()=>{
@@ -573,7 +573,7 @@ return t.filter((t=>e.includes(t.id)||t.groupid&&e.includes(t.groupid)))}(e,t).m
573
573
  if(!this._rpc||!this._reportConfig)return;let n;switch(e){case"create":n=new Date(t.created).toISOString();break;case"update":n=new Date(t.updated).toISOString();break;default:n=(new Date).toISOString()}const r={date:n,annotation:{id:t.id,isShared:ta(t.permissions)}};this._reportConfig.events.includes(e)&&function(e,t,n,r=[]){const o={jsonrpc:"2.0",method:n,params:r};e.postMessage(o,t)}(this._rpc.targetFrame,this._rpc.origin,this._reportConfig.method,[e,r])}}Sf.$inject=["settings"];class Nf{constructor(e,t,n){this._activity=e,this._api=t,this._store=n}_applyDraftChanges(e){const t={},n=this._store.getDraft(e);return n&&(t.tags=n.tags,t.text=n.text,t.permissions=n.isPrivate?Ji(e.user):Qi(e.user,e.group)),{...e,...t}}_initialize(e,t=new Date){const n=this._store.getDefault("annotationPrivacy"),r=this._store.focusedGroupId(),o=this._store.profile();if(!r)throw new Error("Cannot create annotation without a group");const i=o.userid;if(!i)throw new Error("Cannot create annotation when logged out")
574
574
  ;const a=o.user_info,s="s:"+uf(8),l=Object.assign({created:t.toISOString(),group:r,permissions:ea(i,r,n),tags:[],text:"",updated:t.toISOString(),user:i,user_info:a,$tag:s,hidden:!1,links:{},document:{title:""}},e);return Fr(l)&&(l.permissions=Ji(i)),l}create(e,t=new Date){const n=this._initialize(e,t);this._store.addAnnotations([n]),this._store.deleteNewAndEmptyDrafts(),Fr(n)||this._store.createDraft(n,{tags:n.tags,text:n.text,isPrivate:!Or(n)}),Hr(n)?this._store.selectTab("note"):Ur(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:[],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),
575
575
  this._store.updateFlagStatus(e.id,!0)}reply(e,t){const n={group:e.group,permissions:Or(e)?Qi(t,e.group):Ji(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;Lr(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(let[t,n]of Object.entries(e))if(t.startsWith("$")){o[t]=n}return this._store.removeDraft(e),this._store.addAnnotations([o]),o}}Nf.$inject=["annotationActivity","api","store"];class Ef 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 Af(e,t){let n,r;try{n=await fetch(e,t)}catch(t){throw new Ef(e,null,t.message)}if(204===n.status)return null;try{r=await n.json()}catch(t){
576
- throw new Ef(e,n,"Failed to parse response")}var o;if(!n.ok)throw new Ef(e,n,null===(o=r)||void 0===o?void 0:o.reason);return r}function Tf(e){const t={};for(let[n,r]of Object.entries(e))n.startsWith("$")||(t[n]=r);return t}class Cf{constructor(e,t,n){const r=e.routes();this._clientId=null;const o=()=>this._clientId,i=e=>function(e,t,{getAccessToken:n,getClientId:r,onRequestStarted:o,onRequestFinished:i}){return async(a,s)=>{o();try{const[o,l]=await Promise.all([e,n()]),c=function(e,t){let n=e;const r=t.split(".");for(let[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(!c)throw new Error(`Missing API route: ${t}`);const u={"Content-Type":"application/json","Hypothesis-Client-Version":"1.1216.0"};l&&(u.Authorization="Bearer "+l);const d=r();d&&(u["X-Client-Id"]=d);const{url:h,unusedParams:m}=Wo(c.url,a),p=new URL(h);for(let[e,t]of Object.entries(m)){Array.isArray(t)||(t=[t]);for(let n of t)null!=n&&p.searchParams.append(e,n.toString())}
576
+ throw new Ef(e,n,"Failed to parse response")}var o;if(!n.ok)throw new Ef(e,n,null===(o=r)||void 0===o?void 0:o.reason);return r}function Tf(e){const t={};for(let[n,r]of Object.entries(e))n.startsWith("$")||(t[n]=r);return t}class Cf{constructor(e,t,n){const r=e.routes();this._clientId=null;const o=()=>this._clientId,i=e=>function(e,t,{getAccessToken:n,getClientId:r,onRequestStarted:o,onRequestFinished:i}){return async(a,s)=>{o();try{const[o,l]=await Promise.all([e,n()]),c=function(e,t){let n=e;const r=t.split(".");for(let[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(!c)throw new Error(`Missing API route: ${t}`);const u={"Content-Type":"application/json","Hypothesis-Client-Version":"1.1217.0"};l&&(u.Authorization="Bearer "+l);const d=r();d&&(u["X-Client-Id"]=d);const{url:h,unusedParams:m}=Wo(c.url,a),p=new URL(h);for(let[e,t]of Object.entries(m)){Array.isArray(t)||(t=[t]);for(let n of t)null!=n&&p.searchParams.append(e,n.toString())}
577
577
  return await Af(p.toString(),{body:s?JSON.stringify(Tf(s)):null,headers:u,method:c.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")}}setClientId(e){this._clientId=e}}Cf.$inject=["apiRoutes","auth","store"];var Mf={},zf={get exports(){return Mf},set exports(e){Mf=e}},Rf={};function Lf(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,
578
578
  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 If=Lf;Lf.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)},Lf.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null},Lf.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),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++,
579
579
  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},Lf.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)},Lf.prototype.try=function(e){console.log("Using RetryOperation.try() is deprecated"),this.attempt(e)},Lf.prototype.start=function(e){console.log("Using RetryOperation.start() is deprecated"),this.attempt(e)},Lf.prototype.start=Lf.prototype.try,Lf.prototype.errors=function(){return this._errors},Lf.prototype.attempts=function(){return this._attempts},Lf.prototype.mainError=function(){if(0===this._errors.length)return null
@@ -674,8 +674,8 @@ const e=Object.values(this._store.pendingUpdates());e.length&&this._store.addAnn
674
674
  ;t.userid!==e&&console.warn('WebSocket user ID "%s" does not match logged-in ID "%s"',t.userid,e)}else bf("Received unsupported notification",t.type)}_sendClientConfig(e){Object.keys(this._configMessages).forEach((t=>{this._configMessages[t]&&e.send(this._configMessages[t])}))}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 O_(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)
675
675
  }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}),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,Xf(this._store.subscribe,(()=>this._store.profile().userid),(()=>this._reconnect()))),this._socket||await this._reconnect()}}D_.$inject=["store","apiRoutes","auth","groups","session"];class P_{constructor(e){this._storage=e}filter(e,t=null){const n=this._storage.getObject("hypothesis.user.tags.list")||[];let r=0;return n.filter((n=>{if(null!==t&&r>=t)return!1;const o=n.split(/\W+/),i=new RegExp(`^${_f(e)}`,"i");return!(!o.some((e=>e.match(i)))&&!n.match(i))&&(++r,!0)}))}store(e){
676
676
  const t=this._storage.getObject("hypothesis.user.tags.map")||{};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("hypothesis.user.tags.map",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("hypothesis.user.tags.list",n)}}P_.$inject=["localStorage"];class B_{constructor(e){this._store=e}forceVisible(e){e.children.forEach((e=>{this.forceVisible(e)})),e.visible||this._store.setForcedVisible(e.id,!0)}}B_.$inject=["store"];class F_{constructor(e){this._store=e}dismiss(e){const t=this._store.getToastMessage(e);t&&!t.isDismissed&&(this._store.updateToastMessage({...t,isDismissed:!0}),setTimeout((()=>{this._store.removeToastMessage(e)}),500))}_addMessage(e,t,{autoDismiss:n=!0,moreInfoURL:r="",visuallyHidden:o=!1}={}){if(this._store.hasToastMessage(e,t))return;const i=uf(10),a={type:e,id:i,message:t,moreInfoURL:r,visuallyHidden:o};this._store.addToastMessage({
677
- isDismissed:!1,...a}),n&&setTimeout((()=>{this.dismiss(i)}),5e3)}error(e,t){this._addMessage("error",e,t)}success(e,t){this._addMessage("success",e,t)}notice(e,t){this._addMessage("notice",e,t)}}F_.$inject=["store"];const j_=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),H_=function(e){const{version:t,origin:n}=hf(e.location.href);return"1.1216.0"!==t?(console.warn(`The Hypothesis sidebar is using a different version (1.1216.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 U_(e,t){e.setClientId(t.clientId)}
678
- function q_(e,t,n){e.load(),t.load(),n.sync()}function $_(e,t,n){e.init(),t.init(),n.init()}function G_(e,t){"sidebar"===t.route()&&e.connect()}j_.sentry&&H_&&function(e){const t=function(){let e=import.meta.url;return e?new URL(e).origin:null}(),n=t?[t]:void 0;C_({dsn:e.dsn,environment:e.environment,allowUrls:n,ignoreErrors:["Network request failed","Object Not Found Matching Id"],release:"1.1216.0",beforeSend:(e,t)=>{if(z_>=5)return bf("Client-side Sentry quota reached. No further Sentry events will be sent"),null;++z_;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{db("host_config",hf(window.location.href))}catch(e){}db("loaded_scripts",Array.from(document.querySelectorAll("script")).filter((e=>!e.type||e.type.match(/javascript|module/))).map((e=>e.src||"<inline>"))),Vf(((e,t)=>{ub(e,{tags:{context:t}})}))}(j_.sentry),function(e){e.addEventListener("click",(e=>{
677
+ isDismissed:!1,...a}),n&&setTimeout((()=>{this.dismiss(i)}),5e3)}error(e,t){this._addMessage("error",e,t)}success(e,t){this._addMessage("success",e,t)}notice(e,t){this._addMessage("notice",e,t)}}F_.$inject=["store"];const j_=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),H_=function(e){const{version:t,origin:n}=hf(e.location.href);return"1.1217.0"!==t?(console.warn(`The Hypothesis sidebar is using a different version (1.1217.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 U_(e,t){e.setClientId(t.clientId)}
678
+ function q_(e,t,n){e.load(),t.load(),n.sync()}function $_(e,t,n){e.init(),t.init(),n.init()}function G_(e,t){"sidebar"===t.route()&&e.connect()}j_.sentry&&H_&&function(e){const t=function(){let e=import.meta.url;return e?new URL(e).origin:null}(),n=t?[t]:void 0;C_({dsn:e.dsn,environment:e.environment,allowUrls:n,ignoreErrors:["Network request failed","Object Not Found Matching Id"],release:"1.1217.0",beforeSend:(e,t)=>{if(z_>=5)return bf("Client-side Sentry quota reached. No further Sentry events will be sent"),null;++z_;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{db("host_config",hf(window.location.href))}catch(e){}db("loaded_scripts",Array.from(document.querySelectorAll("script")).filter((e=>!e.type||e.type.match(/javascript|module/))).map((e=>e.src||"<inline>"))),Vf(((e,t)=>{ub(e,{tags:{context:t}})}))}(j_.sentry),function(e){e.addEventListener("click",(e=>{
679
679
  const t=e.target;if("A"===t.tagName){const e=t;"_blank"===e.target&&(e.rel="noopener")}}))}(document.body),U_.$inject=["api","streamer"],q_.$inject=["groups","session","router"],$_.$inject=["autosaveService","persistedDefaults","serviceURL"],G_.$inject=["frameSync","store"];const V_=document.querySelector("hypothesis-app");!function(e=window){e.addEventListener("message",kf)}(),async function(e,t=window){const n=function(e){const t=hf(e.location.href),n=["annotations","group","query","appType","openSidebar","showHighlights","services","branding","enableExperimentalNewNoteButton","focus","requestConfigFromFrame","theme","usernameUrl"],r={openSidebar:mf,requestConfigFromFrame:e=>{if("string"==typeof e)return e;const t=function(e){return"object"==typeof e&&null!==e?e:{}}(e);return{origin:ff(t.origin),ancestorLevel:pf(t.ancestorLevel)}}},o={};for(let[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
680
680
  ;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:gf(n.ancestorLevel,t),origin:n.origin}}(n,t);let o;if(r){const e=await async function(e,t){return{...await df(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=df(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=Gn(e);if(t){if(t.apiUrl)return t.apiUrl;throw new Error("Service should contain an apiUrl value.")}return e.apiUrl}(i),i}(j_).then((e=>{!function(e,t){const n=new j
681
681
  ;n.register("annotationsService",Nf).register("annotationActivity",Sf).register("api",Cf).register("apiRoutes",Bf).register("auth",Hf).register("autosaveService",Uf).register("frameSync",Qf).register("groups",ng).register("loadAnnotationsService",rg).register("localStorage",ig).register("persistedDefaults",sg).register("router",lg).register("serviceURL",cg).register("session",L_).register("streamer",D_).register("streamFilter",I_).register("tags",P_).register("threadsService",B_).register("toastMessenger",F_).register("store",{factory:wi}),n.register("$window",{value:window}).register("settings",{value:e}),n.run($_),n.run(U_),n.run(q_),n.run(xf),n.run(G_),B(we(Wn.Provider,{value:n,children:we(sf,{})}),t)}(e,V_)})).catch((e=>function(e,t){console.error("Failed to start Hypothesis client: ",e),B(we(lf,{error:e}),t)}(e,V_)));