diff --git a/web/static/apps/jsimage/asset-manifest.json b/web/static/apps/jsimage/asset-manifest.json new file mode 100644 index 0000000..64e2d99 --- /dev/null +++ b/web/static/apps/jsimage/asset-manifest.json @@ -0,0 +1,16 @@ +{ + "files": { + "main.css": "/static/css/main.37ad4627.css", + "main.js": "/static/js/main.3fcd1166.js", + "static/js/488.66212945.chunk.js": "/static/js/488.66212945.chunk.js", + "static/media/logo.svg": "/static/media/logo.6ce24c58023cc2f8fd88fe9d219db6c6.svg", + "index.html": "/index.html", + "main.37ad4627.css.map": "/static/css/main.37ad4627.css.map", + "main.3fcd1166.js.map": "/static/js/main.3fcd1166.js.map", + "488.66212945.chunk.js.map": "/static/js/488.66212945.chunk.js.map" + }, + "entrypoints": [ + "static/css/main.37ad4627.css", + "static/js/main.3fcd1166.js" + ] +} \ No newline at end of file diff --git a/web/static/apps/jsimage/favicon.ico b/web/static/apps/jsimage/favicon.ico new file mode 100644 index 0000000..a11777c Binary files /dev/null and b/web/static/apps/jsimage/favicon.ico differ diff --git a/web/static/apps/jsimage/index.html b/web/static/apps/jsimage/index.html new file mode 100644 index 0000000..d0d7e0f --- /dev/null +++ b/web/static/apps/jsimage/index.html @@ -0,0 +1 @@ +React App
diff --git a/web/static/apps/jsimage/logo192.png b/web/static/apps/jsimage/logo192.png new file mode 100644 index 0000000..fc44b0a Binary files /dev/null and b/web/static/apps/jsimage/logo192.png differ diff --git a/web/static/apps/jsimage/logo512.png b/web/static/apps/jsimage/logo512.png new file mode 100644 index 0000000..a4e47a6 Binary files /dev/null and b/web/static/apps/jsimage/logo512.png differ diff --git a/web/static/apps/jsimage/manifest.json b/web/static/apps/jsimage/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/web/static/apps/jsimage/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/web/static/apps/jsimage/robots.txt b/web/static/apps/jsimage/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/web/static/apps/jsimage/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/web/static/apps/jsimage/static/css/main.37ad4627.css b/web/static/apps/jsimage/static/css/main.37ad4627.css new file mode 100644 index 0000000..24270e1 --- /dev/null +++ b/web/static/apps/jsimage/static/css/main.37ad4627.css @@ -0,0 +1,2 @@ +body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}.responsive{bottom:-100%;height:auto;left:-100%;margin:auto;min-height:100%;min-width:100%;position:absolute;right:-100%;top:-100%;width:auto}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}} +/*# sourceMappingURL=main.37ad4627.css.map*/ \ No newline at end of file diff --git a/web/static/apps/jsimage/static/css/main.37ad4627.css.map b/web/static/apps/jsimage/static/css/main.37ad4627.css.map new file mode 100644 index 0000000..9297642 --- /dev/null +++ b/web/static/apps/jsimage/static/css/main.37ad4627.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.37ad4627.css","mappings":"AAAA,KAKE,kCAAmC,CACnC,iCAAkC,CAJlC,mIAEY,CAHZ,QAMF,CAEA,KACE,uEAEF,CCZA,KACE,iBACF,CAEA,UACE,aAAc,CACd,mBACF,CAEA,8CACE,UACE,2CACF,CACF,CAEA,YAKE,kBAAmB,CAJnB,wBAAyB,CAOzB,UAAY,CALZ,YAAa,CACb,qBAAsB,CAGtB,4BAA6B,CAD7B,sBAAuB,CAJvB,gBAOF,CAEA,UACE,aACF,CAEA,YAMa,YAAY,CAHvB,WAAW,CAIX,UAAU,CACV,WAAW,CAPX,eAAe,CACf,cAAc,CAGd,iBAAiB,CAEL,WAAW,CADvB,SAAS,CAFT,UAKF,CAGA,yBACE,GACE,sBACF,CACA,GACE,uBACF,CACF","sources":["index.css","App.css"],"sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n",".App {\n text-align: center;\n}\n\n.App-logo {\n height: 40vmin;\n pointer-events: none;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n .App-logo {\n animation: App-logo-spin infinite 20s linear;\n }\n}\n\n.App-header {\n background-color: #282c34;\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: calc(10px + 2vmin);\n color: white;\n}\n\n.App-link {\n color: #61dafb;\n}\n\n.responsive {\n min-height:100%;\n min-width:100%;\n height:auto;\n width:auto;\n position:absolute;\n top:-100%; bottom:-100%;\n left:-100%; right:-100%;\n margin:auto;\n}\n\n\n@keyframes App-logo-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/web/static/apps/jsimage/static/js/488.66212945.chunk.js b/web/static/apps/jsimage/static/js/488.66212945.chunk.js new file mode 100644 index 0000000..dff3c67 --- /dev/null +++ b/web/static/apps/jsimage/static/js/488.66212945.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkjsimage=self.webpackChunkjsimage||[]).push([[488],{488:(e,n,t)=>{t.r(n),t.d(n,{CLSThresholds:()=>P,FCPThresholds:()=>w,FIDThresholds:()=>ne,INPThresholds:()=>_,LCPThresholds:()=>G,TTFBThresholds:()=>Q,onCLS:()=>A,onFCP:()=>I,onFID:()=>te,onINP:()=>z,onLCP:()=>K,onTTFB:()=>V});var r,i,o,a,c,u=-1,s=function(e){addEventListener("pageshow",(function(n){n.persisted&&(u=n.timeStamp,e(n))}),!0)},f=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart=0?r="back-forward-cache":t&&(document.prerendering||d()>0?r="prerender":document.wasDiscarded?r="restore":t.type&&(r=t.type.replace(/_/g,"-"))),{name:e,value:void 0===n?-1:n,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},p=function(e,n,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){Promise.resolve().then((function(){n(e.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},t||{})),r}}catch(e){}},v=function(e,n,t,r){var i,o;return function(a){n.value>=0&&(a||r)&&((o=n.value-(i||0))||void 0===i)&&(i=n.value,n.delta=o,n.rating=function(e,n){return e>n[1]?"poor":e>n[0]?"needs-improvement":"good"}(n.value,t),e(n))}},m=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},h=function(e){document.addEventListener("visibilitychange",(function(){"hidden"===document.visibilityState&&e()}))},g=function(e){var n=!1;return function(){n||(e(),n=!0)}},T=-1,y=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},E=function(e){"hidden"===document.visibilityState&&T>-1&&(T="visibilitychange"===e.type?e.timeStamp:0,b())},C=function(){addEventListener("visibilitychange",E,!0),addEventListener("prerenderingchange",E,!0)},b=function(){removeEventListener("visibilitychange",E,!0),removeEventListener("prerenderingchange",E,!0)},L=function(){return T<0&&(T=y(),C(),s((function(){setTimeout((function(){T=y(),C()}),0)}))),{get firstHiddenTime(){return T}}},S=function(e){document.prerendering?addEventListener("prerenderingchange",(function(){return e()}),!0):e()},w=[1800,3e3],I=function(e,n){n=n||{},S((function(){var t,r=L(),i=l("FCP"),o=p("paint",(function(e){e.forEach((function(e){"first-contentful-paint"===e.name&&(o.disconnect(),e.startTimer.value&&(r.value=i,r.entries=o,t())},c=p("layout-shift",a);c&&(t=v(e,r,P,n.reportAllChanges),h((function(){a(c.takeRecords()),t(!0)})),s((function(){i=0,r=l("CLS",0),t=v(e,r,P,n.reportAllChanges),m((function(){return t()}))})),setTimeout(t,0))})))},F=0,k=1/0,M=0,D=function(e){e.forEach((function(e){e.interactionId&&(k=Math.min(k,e.interactionId),M=Math.max(M,e.interactionId),F=M?(M-k)/7+1:0)}))},B=function(){return r?F:performance.interactionCount||0},R=function(){"interactionCount"in performance||r||(r=p("event",D,{type:"event",buffered:!0,durationThreshold:0}))},x=[],H=new Map,N=0,j=[],q=function(e){if(j.forEach((function(n){return n(e)})),e.interactionId||"first-input"===e.entryType){var n=x[x.length-1],t=H.get(e.interactionId);if(t||x.length<10||e.duration>n.latency){if(t)e.duration>t.latency?(t.entries=[e],t.latency=e.duration):e.duration===t.latency&&e.startTime===t.entries[0].startTime&&t.entries.push(e);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};H.set(r.id,r),x.push(r)}x.sort((function(e,n){return n.latency-e.latency})),x.length>10&&x.splice(10).forEach((function(e){return H.delete(e.id)}))}}},O=function(e){var n=self.requestIdleCallback||self.setTimeout,t=-1;return e=g(e),"hidden"===document.visibilityState?e():(t=n(e),h(e)),t},_=[200,500],z=function(e,n){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(n=n||{},S((function(){var t;R();var r,i=l("INP"),o=function(e){O((function(){e.forEach(q);var n=function(){var e=Math.min(x.length-1,Math.floor((B()-N)/50));return x[e]}();n&&n.latency!==i.value&&(i.value=n.latency,i.entries=n.entries,r())}))},a=p("event",o,{durationThreshold:null!==(t=n.durationThreshold)&&void 0!==t?t:40});r=v(e,i,_,n.reportAllChanges),a&&(a.observe({type:"first-input",buffered:!0}),h((function(){o(a.takeRecords()),r(!0)})),s((function(){N=B(),x.length=0,H.clear(),i=l("INP"),r=v(e,i,_,n.reportAllChanges)})))})))},G=[2500,4e3],J={},K=function(e,n){n=n||{},S((function(){var t,r=L(),i=l("LCP"),o=function(e){n.reportAllChanges||(e=e.slice(-1)),e.forEach((function(e){e.startTime=0&&o1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,n){var t=function(){Y(e,n),i()},r=function(){i()},i=function(){removeEventListener("pointerup",t,W),removeEventListener("pointercancel",r,W)};addEventListener("pointerup",t,W),addEventListener("pointercancel",r,W)}(n,e):Y(n,e)}},ee=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(n){return e(n,$,W)}))},ne=[100,300],te=function(e,n){n=n||{},S((function(){var t,r=L(),a=l("FID"),u=function(e){e.startTime0&&e.responseStart=0?r=\"back-forward-cache\":t&&(document.prerendering||u()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":t.type&&(r=t.type.replace(/_/g,\"-\")));return{name:e,value:void 0===n?-1:n,rating:\"good\",delta:0,entries:[],id:\"v4-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},s=function(e,n,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){Promise.resolve().then((function(){n(e.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},t||{})),r}}catch(e){}},d=function(e,n,t,r){var i,o;return function(a){n.value>=0&&(a||r)&&((o=n.value-(i||0))||void 0===i)&&(i=n.value,n.delta=o,n.rating=function(e,n){return e>n[1]?\"poor\":e>n[0]?\"needs-improvement\":\"good\"}(n.value,t),e(n))}},l=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},p=function(e){document.addEventListener(\"visibilitychange\",(function(){\"hidden\"===document.visibilityState&&e()}))},v=function(e){var n=!1;return function(){n||(e(),n=!0)}},m=-1,h=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},g=function(e){\"hidden\"===document.visibilityState&&m>-1&&(m=\"visibilitychange\"===e.type?e.timeStamp:0,T())},y=function(){addEventListener(\"visibilitychange\",g,!0),addEventListener(\"prerenderingchange\",g,!0)},T=function(){removeEventListener(\"visibilitychange\",g,!0),removeEventListener(\"prerenderingchange\",g,!0)},E=function(){return m<0&&(m=h(),y(),a((function(){setTimeout((function(){m=h(),y()}),0)}))),{get firstHiddenTime(){return m}}},C=function(e){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return e()}),!0):e()},b=[1800,3e3],S=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"FCP\"),o=s(\"paint\",(function(e){e.forEach((function(e){\"first-contentful-paint\"===e.name&&(o.disconnect(),e.startTimer.value&&(r.value=i,r.entries=o,t())},u=s(\"layout-shift\",c);u&&(t=d(e,r,L,n.reportAllChanges),p((function(){c(u.takeRecords()),t(!0)})),a((function(){i=0,r=f(\"CLS\",0),t=d(e,r,L,n.reportAllChanges),l((function(){return t()}))})),setTimeout(t,0))})))},A=0,I=1/0,P=0,M=function(e){e.forEach((function(e){e.interactionId&&(I=Math.min(I,e.interactionId),P=Math.max(P,e.interactionId),A=P?(P-I)/7+1:0)}))},k=function(){return e?A:performance.interactionCount||0},F=function(){\"interactionCount\"in performance||e||(e=s(\"event\",M,{type:\"event\",buffered:!0,durationThreshold:0}))},D=[],x=new Map,R=0,B=function(){var e=Math.min(D.length-1,Math.floor((k()-R)/50));return D[e]},H=[],q=function(e){if(H.forEach((function(n){return n(e)})),e.interactionId||\"first-input\"===e.entryType){var n=D[D.length-1],t=x.get(e.interactionId);if(t||D.length<10||e.duration>n.latency){if(t)e.duration>t.latency?(t.entries=[e],t.latency=e.duration):e.duration===t.latency&&e.startTime===t.entries[0].startTime&&t.entries.push(e);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};x.set(r.id,r),D.push(r)}D.sort((function(e,n){return n.latency-e.latency})),D.length>10&&D.splice(10).forEach((function(e){return x.delete(e.id)}))}}},O=function(e){var n=self.requestIdleCallback||self.setTimeout,t=-1;return e=v(e),\"hidden\"===document.visibilityState?e():(t=n(e),p(e)),t},N=[200,500],j=function(e,n){\"PerformanceEventTiming\"in self&&\"interactionId\"in PerformanceEventTiming.prototype&&(n=n||{},C((function(){var t;F();var r,i=f(\"INP\"),o=function(e){O((function(){e.forEach(q);var n=B();n&&n.latency!==i.value&&(i.value=n.latency,i.entries=n.entries,r())}))},c=s(\"event\",o,{durationThreshold:null!==(t=n.durationThreshold)&&void 0!==t?t:40});r=d(e,i,N,n.reportAllChanges),c&&(c.observe({type:\"first-input\",buffered:!0}),p((function(){o(c.takeRecords()),r(!0)})),a((function(){R=k(),D.length=0,x.clear(),i=f(\"INP\"),r=d(e,i,N,n.reportAllChanges)})))})))},_=[2500,4e3],z={},G=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"LCP\"),o=function(e){n.reportAllChanges||(e=e.slice(-1)),e.forEach((function(e){e.startTime=0&&t1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,n){var t=function(){W(e,n),i()},r=function(){i()},i=function(){removeEventListener(\"pointerup\",t,U),removeEventListener(\"pointercancel\",r,U)};addEventListener(\"pointerup\",t,U),addEventListener(\"pointercancel\",r,U)}(n,e):W(n,e)}},Z=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(n){return e(n,Y,U)}))},$=[100,300],ee=function(e,r){r=r||{},C((function(){var o,c=E(),u=f(\"FID\"),l=function(e){e.startTime{"use strict";var e={4:(e,t,n)=>{var r=n(853),l=n(43),a=n(950);function o(e){var t="https://react.dev/errors/"+e;if(1)":-1--l||u[r]!==s[l]){var c="\n"+u[r].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}}while(1<=r&&0<=l);break}}}finally{R=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?O(n):""}function F(e){switch(e.tag){case 26:case 27:case 5:return O(e.type);case 16:return O("Lazy");case 13:return O("Suspense");case 19:return O("SuspenseList");case 0:case 15:return e=A(e.type,!1);case 11:return e=A(e.type.render,!1);case 1:return e=A(e.type,!0);default:return""}}function D(e){try{var t="";do{t+=F(e),e=e.return}while(e);return t}catch(n){return"\nError generating stack: "+n.message+"\n"+n.stack}}function M(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!==(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function I(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function U(e){if(M(e)!==e)throw Error(o(188))}function j(e){var t=e.tag;if(5===t||26===t||27===t||6===t)return e;for(e=e.child;null!==e;){if(null!==(t=j(e)))return t;e=e.sibling}return null}var H=Array.isArray,$=a.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,V={pending:!1,data:null,method:null,action:null},B=[],W=-1;function Q(e){return{current:e}}function q(e){0>W||(e.current=B[W],B[W]=null,W--)}function K(e,t){W++,B[W]=e.current,e.current=t}var Y=Q(null),G=Q(null),X=Q(null),Z=Q(null);function J(e,t){switch(K(X,t),K(G,e),K(Y,null),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)&&(t=t.namespaceURI)?Gc(t):0;break;default:if(t=(e=8===e?t.parentNode:t).tagName,e=e.namespaceURI)t=Xc(e=Gc(e),t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}q(Y),K(Y,t)}function ee(){q(Y),q(G),q(X)}function te(e){null!==e.memoizedState&&K(Z,e);var t=Y.current,n=Xc(t,e.type);t!==n&&(K(G,e),K(Y,n))}function ne(e){G.current===e&&(q(Y),q(G)),Z.current===e&&(q(Z),Mf._currentValue=V)}var re=Object.prototype.hasOwnProperty,le=r.unstable_scheduleCallback,ae=r.unstable_cancelCallback,oe=r.unstable_shouldYield,ie=r.unstable_requestPaint,ue=r.unstable_now,se=r.unstable_getCurrentPriorityLevel,ce=r.unstable_ImmediatePriority,fe=r.unstable_UserBlockingPriority,de=r.unstable_NormalPriority,pe=r.unstable_LowPriority,me=r.unstable_IdlePriority,he=r.log,ge=r.unstable_setDisableYieldValue,ye=null,ve=null;function be(e){if("function"===typeof he&&ge(e),ve&&"function"===typeof ve.setStrictMode)try{ve.setStrictMode(ye,e)}catch(t){}}var ke=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(we(e)/Se|0)|0},we=Math.log,Se=Math.LN2;var Ee=128,Ce=4194304;function xe(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194176&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function _e(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,l=e.suspendedLanes,a=e.pingedLanes,o=e.warmLanes;e=0!==e.finishedLanes;var i=134217727&n;return 0!==i?0!==(n=i&~l)?r=xe(n):0!==(a&=i)?r=xe(a):e||0!==(o=i&~o)&&(r=xe(o)):0!==(i=n&~l)?r=xe(i):0!==a?r=xe(a):e||0!==(o=n&~o)&&(r=xe(o)),0===r?0:0!==t&&t!==r&&0===(t&l)&&((l=r&-r)>=(o=t&-t)||32===l&&0!==(4194176&o))?t:r}function Pe(e,t){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function ze(e,t){switch(e){case 1:case 2:case 4:case 8:return t+250;case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function Ne(){var e=Ee;return 0===(4194176&(Ee<<=1))&&(Ee=128),e}function Te(){var e=Ce;return 0===(62914560&(Ce<<=1))&&(Ce=4194304),e}function Le(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Oe(e,t){e.pendingLanes|=t,268435456!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Re(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-ke(t);e.entangledLanes|=t,e.entanglements[r]=1073741824|e.entanglements[r]|4194218&n}function Ae(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-ke(n),l=1<=Sn),xn=String.fromCharCode(32),_n=!1;function Pn(e,t){switch(e){case"keyup":return-1!==kn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zn(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Nn=!1;var Tn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Ln(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Tn[e.type]:"textarea"===t}function On(e,t,n,r){Ot?Rt?Rt.push(r):Rt=[r]:Ot=r,0<(t=Dc(t,"onChange")).length&&(n=new Zt("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Rn=null,An=null;function Fn(e){zc(e,0)}function Dn(e){if(dt(Ye(e)))return e}function Mn(e,t){if("change"===e)return t}var In=!1;if(nt){var Un;if(nt){var jn="oninput"in document;if(!jn){var Hn=document.createElement("div");Hn.setAttribute("oninput","return;"),jn="function"===typeof Hn.oninput}Un=jn}else Un=!1;In=Un&&(!document.documentMode||9=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Gn(r)}}function Zn(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?Zn(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function Jn(e){for(var t=pt((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=pt((e=t.contentWindow).document)}return t}function er(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function tr(e,t){var n=Jn(t);t=e.focusedElem;var r=e.selectionRange;if(n!==t&&t&&t.ownerDocument&&Zn(t.ownerDocument.documentElement,t)){if(null!==r&&er(t))if(e=r.start,void 0===(n=r.end)&&(n=e),"selectionStart"in t)t.selectionStart=e,t.selectionEnd=Math.min(n,t.value.length);else if((n=(e=t.ownerDocument||document)&&e.defaultView||window).getSelection){n=n.getSelection();var l=t.textContent.length,a=Math.min(r.start,l);r=void 0===r.end?a:Math.min(r.end,l),!n.extend&&a>r&&(l=r,r=a,a=l),l=Xn(t,a);var o=Xn(t,r);l&&o&&(1!==n.rangeCount||n.anchorNode!==l.node||n.anchorOffset!==l.offset||n.focusNode!==o.node||n.focusOffset!==o.offset)&&((e=e.createRange()).setStart(l.node,l.offset),n.removeAllRanges(),a>r?(n.addRange(e),n.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),n.addRange(e)))}for(e=[],n=t;n=n.parentNode;)1===n.nodeType&&e.push({element:n,left:n.scrollLeft,top:n.scrollTop});for("function"===typeof t.focus&&t.focus(),t=0;t=document.documentMode,rr=null,lr=null,ar=null,or=!1;function ir(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;or||null==rr||rr!==pt(r)||("selectionStart"in(r=rr)&&er(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},ar&&Yn(ar,r)||(ar=r,0<(r=Dc(lr,"onSelect")).length&&(t=new Zt("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=rr)))}function ur(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var sr={animationend:ur("Animation","AnimationEnd"),animationiteration:ur("Animation","AnimationIteration"),animationstart:ur("Animation","AnimationStart"),transitionrun:ur("Transition","TransitionRun"),transitionstart:ur("Transition","TransitionStart"),transitioncancel:ur("Transition","TransitionCancel"),transitionend:ur("Transition","TransitionEnd")},cr={},fr={};function dr(e){if(cr[e])return cr[e];if(!sr[e])return e;var t,n=sr[e];for(t in n)if(n.hasOwnProperty(t)&&t in fr)return cr[e]=n[t];return e}nt&&(fr=document.createElement("div").style,"AnimationEvent"in window||(delete sr.animationend.animation,delete sr.animationiteration.animation,delete sr.animationstart.animation),"TransitionEvent"in window||delete sr.transitionend.transition);var pr=dr("animationend"),mr=dr("animationiteration"),hr=dr("animationstart"),gr=dr("transitionrun"),yr=dr("transitionstart"),vr=dr("transitioncancel"),br=dr("transitionend"),kr=new Map,wr="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split(" ");function Sr(e,t){kr.set(e,t),et(t,[e])}var Er=[],Cr=0,xr=0;function _r(){for(var e=Cr,t=xr=Cr=0;t>=o,l-=o,$r=1<<32-ke(t)+l|n<d?(p=f,f=null):p=f.sibling;var m=y(l,f,i[d],u);if(null===m){null===f&&(f=p);break}e&&f&&null===m.alternate&&t(l,f),o=a(m,o,d),null===c?s=m:c.sibling=m,c=m,f=p}if(d===i.length)return n(l,f),Gr&&Br(l,d),s;if(null===f){for(;dp?(m=d,d=null):m=d.sibling;var b=y(l,d,g.value,s);if(null===b){null===d&&(d=m);break}e&&d&&null===b.alternate&&t(l,d),i=a(b,i,p),null===f?c=b:f.sibling=b,f=b,d=m}if(g.done)return n(l,d),Gr&&Br(l,p),c;if(null===d){for(;!g.done;p++,g=u.next())null!==(g=h(l,g.value,s))&&(i=a(g,i,p),null===f?c=g:f.sibling=g,f=g);return Gr&&Br(l,p),c}for(d=r(d);!g.done;p++,g=u.next())null!==(g=v(d,l,p,g.value,s))&&(e&&null!==g.alternate&&d.delete(null===g.key?p:g.key),i=a(g,i,p),null===f?c=g:f.sibling=g,f=g);return e&&d.forEach((function(e){return t(l,e)})),Gr&&Br(l,p),c}(u,d,p=k.call(p),m)}if("function"===typeof p.then)return b(u,d,gl(p),m);if(p.$$typeof===g)return b(u,d,_i(u,p),m);vl(u,p)}return"string"===typeof p&&""!==p||"number"===typeof p||"bigint"===typeof p?(p=""+p,null!==d&&6===d.tag?(n(u,d.sibling),(m=l(d,p)).return=u,u=m):(n(u,d),(m=$u(p,u.mode,m)).return=u,u=m),i(u)):n(u,d)}return function(e,t,n,r){try{hl=0;var l=b(e,t,n,r);return ml=null,l}catch(o){if(o===ol)throw o;var a=Fu(29,o,null,e.mode);return a.lanes=r,a.return=e,a}}}var wl=kl(!0),Sl=kl(!1),El=Q(null),Cl=Q(0);function xl(e,t){K(Cl,e=ss),K(El,t),ss=e|t.baseLanes}function _l(){K(Cl,ss),K(El,El.current)}function Pl(){ss=Cl.current,q(El),q(Cl)}var zl=Q(null),Nl=null;function Tl(e){var t=e.alternate;K(Al,1&Al.current),K(zl,e),null===Nl&&(null===t||null!==El.current||null!==t.memoizedState)&&(Nl=e)}function Ll(e){if(22===e.tag){if(K(Al,Al.current),K(zl,e),null===Nl){var t=e.alternate;null!==t&&null!==t.memoizedState&&(Nl=e)}}else Ol()}function Ol(){K(Al,Al.current),K(zl,zl.current)}function Rl(e){q(zl),Nl===e&&(Nl=null),q(Al)}var Al=Q(0);function Fl(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Dl="undefined"!==typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach((function(e){return e()}))}},Ml=r.unstable_scheduleCallback,Il=r.unstable_NormalPriority,Ul={$$typeof:g,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function jl(){return{controller:new Dl,data:new Map,refCount:0}}function Hl(e){e.refCount--,0===e.refCount&&Ml(Il,(function(){e.controller.abort()}))}var $l=null,Vl=0,Bl=0,Wl=null;function Ql(){if(0===--Vl&&null!==$l){null!==Wl&&(Wl.status="fulfilled");var e=$l;$l=null,Bl=0,Wl=null;for(var t=0;ta?a:8;var o=T.T,i={};T.T=i,wo(e,!1,t,n);try{var u=l(),s=T.S;if(null!==s&&s(i,u),null!==u&&"object"===typeof u&&"function"===typeof u.then)ko(e,t,function(e,t){var n=[],r={status:"pending",value:null,reason:null,then:function(e){n.push(e)}};return e.then((function(){r.status="fulfilled",r.value=t;for(var e=0;e title"))),Qc(a,r,n),a[Ie]=e,Xe(a),r=a;break e;case"link":var i=zf("link","href",l).get(r+(n.href||""));if(i)for(var u=0;u<\/script>",e=e.removeChild(e.firstChild);break;case"select":e="string"===typeof r.is?l.createElement("select",{is:r.is}):l.createElement("select"),r.multiple?e.multiple=!0:r.size&&(e.size=r.size);break;default:e="string"===typeof r.is?l.createElement(n,{is:r.is}):l.createElement(n)}}e[Ie]=t,e[Ue]=r;e:for(l=t.child;null!==l;){if(5===l.tag||6===l.tag)e.appendChild(l.stateNode);else if(4!==l.tag&&27!==l.tag&&null!==l.child){l.child.return=l,l=l.child;continue}if(l===t)break e;for(;null===l.sibling;){if(null===l.return||l.return===t)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}t.stateNode=e;e:switch(Qc(e,n,r),n){case"button":case"input":case"select":case"textarea":e=!!r.autoFocus;break e;case"img":e=!0;break e;default:e=!1}e&&Bu(t)}}return Ku(t),t.flags&=-16777217,null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&Bu(t);else{if("string"!==typeof r&&null===t.stateNode)throw Error(o(166));if(e=X.current,rl(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(l=Kr))switch(l.tag){case 27:case 5:r=l.memoizedProps}e[Ie]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||$c(e.nodeValue,n)))||el(t)}else(e=Yc(e).createTextNode(r))[Ie]=t,t.stateNode=e}return Ku(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(l=rl(t),null!==r&&null!==r.dehydrated){if(null===e){if(!l)throw Error(o(318));if(!(l=null!==(l=t.memoizedState)?l.dehydrated:null))throw Error(o(317));l[Ie]=t}else ll(),0===(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Ku(t),l=!1}else null!==Xr&&(As(Xr),Xr=null),l=!0;if(!l)return 256&t.flags?(Rl(t),t):(Rl(t),null)}if(Rl(t),0!==(128&t.flags))return t.lanes=n,t;if(n=null!==r,e=null!==e&&null!==e.memoizedState,n){l=null,null!==(r=t.child).alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(l=r.alternate.memoizedState.cachePool.pool);var a=null;null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==l&&(r.flags|=2048)}return n!==e&&n&&(t.child.flags|=8192),Qu(t,t.updateQueue),Ku(t),null;case 4:return ee(),null===e&&Oc(t.stateNode.containerInfo),Ku(t),null;case 10:return bi(t.type),Ku(t),null;case 19:if(q(Al),null===(l=t.memoizedState))return Ku(t),null;if(r=0!==(128&t.flags),null===(a=l.rendering))if(r)qu(l,!1);else{if(0!==cs||null!==e&&0!==(128&e.flags))for(e=t.child;null!==e;){if(null!==(a=Fl(e))){for(t.flags|=128,qu(l,!1),e=a.updateQueue,t.updateQueue=e,Qu(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)Iu(n,e),n=n.sibling;return K(Al,1&Al.current|2),t.child}e=e.sibling}null!==l.tail&&ue()>ks&&(t.flags|=128,r=!0,qu(l,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=Fl(a))){if(t.flags|=128,r=!0,e=e.updateQueue,t.updateQueue=e,Qu(t,e),qu(l,!0),null===l.tail&&"hidden"===l.tailMode&&!a.alternate&&!Gr)return Ku(t),null}else 2*ue()-l.renderingStartTime>ks&&536870912!==n&&(t.flags|=128,r=!0,qu(l,!1),t.lanes=4194304);l.isBackwards?(a.sibling=t.child,t.child=a):(null!==(e=l.last)?e.sibling=a:t.child=a,l.last=a)}return null!==l.tail?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=ue(),t.sibling=null,e=Al.current,K(Al,r?1&e|2:1&e),t):(Ku(t),null);case 22:case 23:return Rl(t),Pl(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!==(536870912&n)&&0===(128&t.flags)&&(Ku(t),6&t.subtreeFlags&&(t.flags|=8192)):Ku(t),null!==(n=t.updateQueue)&&Qu(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&q(Kl),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),bi(Ul),Ku(t),null;case 25:return null}throw Error(o(156,t.tag))}function Gu(e,t){switch(qr(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return bi(Ul),ee(),0!==(65536&(e=t.flags))&&0===(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return ne(t),null;case 13:if(Rl(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));ll()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return q(Al),null;case 4:return ee(),null;case 10:return bi(t.type),null;case 22:case 23:return Rl(t),Pl(),null!==e&&q(Kl),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return bi(Ul),null;default:return null}}function Xu(e,t){switch(qr(t),t.tag){case 3:bi(Ul),ee();break;case 26:case 27:case 5:ne(t);break;case 4:ee();break;case 13:Rl(t);break;case 19:q(Al);break;case 10:bi(t.type);break;case 22:case 23:Rl(t),Pl(),null!==e&&q(Kl);break;case 24:bi(Ul)}}var Zu={getCacheForType:function(e){var t=xi(Ul),n=t.data.get(e);return void 0===n&&(n=e(),t.data.set(e,n)),n}},Ju="function"===typeof WeakMap?WeakMap:Map,es=0,ts=null,ns=null,rs=0,ls=0,as=null,os=!1,is=!1,us=!1,ss=0,cs=0,fs=0,ds=0,ps=0,ms=0,hs=0,gs=null,ys=null,vs=!1,bs=0,ks=1/0,ws=null,Ss=null,Es=!1,Cs=null,xs=0,_s=0,Ps=null,zs=0,Ns=null;function Ts(){if(0!==(2&es)&&0!==rs)return rs&-rs;if(null!==T.T){return 0!==Bl?Bl:wc()}return De()}function Ls(){0===ms&&(ms=0===(536870912&rs)||Gr?Ne():536870912);var e=zl.current;return null!==e&&(e.flags|=32),ms}function Os(e,t,n){(e===ts&&2===ls||null!==e.cancelPendingCommit)&&(js(e,0),Ms(e,rs,ms,!1)),Oe(e,n),0!==(2&es)&&e===ts||(e===ts&&(0===(2&es)&&(ds|=n),4===cs&&Ms(e,rs,ms,!1)),hc(e))}function Rs(e,t,n){if(0!==(6&es))throw Error(o(327));for(var r=!n&&0===(60&t)&&0===(t&e.expiredLanes)||Pe(e,t),l=r?function(e,t){var n=es;es|=2;var r=$s(),l=Vs();ts!==e||rs!==t?(ws=null,ks=ue()+500,js(e,t)):is=Pe(e,t);e:for(;;)try{if(0!==ls&&null!==ns){t=ns;var a=as;t:switch(ls){case 1:ls=0,as=null,Gs(e,t,a,1);break;case 2:if(sl(a)){ls=0,as=null,Ys(t);break}t=function(){2===ls&&ts===e&&(ls=7),hc(e)},a.then(t,t);break e;case 3:ls=7;break e;case 4:ls=5;break e;case 7:sl(a)?(ls=0,as=null,Ys(t)):(ls=0,as=null,Gs(e,t,a,7));break;case 5:var i=null;switch(ns.tag){case 26:i=ns.memoizedState;case 5:case 27:var u=ns;if(!i||Tf(i)){ls=0,as=null;var s=u.sibling;if(null!==s)ns=s;else{var c=u.return;null!==c?(ns=c,Xs(c)):ns=null}break t}}ls=0,as=null,Gs(e,t,a,5);break;case 6:ls=0,as=null,Gs(e,t,a,6);break;case 8:Us(),cs=6;break e;default:throw Error(o(462))}}qs();break}catch(f){Hs(e,f)}return yi=gi=null,T.H=r,T.A=l,es=n,null!==ns?0:(ts=null,rs=0,_r(),cs)}(e,t):Ws(e,t,!0),a=r;;){if(0===l){is&&!r&&Ms(e,t,0,!1);break}if(6===l)Ms(e,t,0,!os);else{if(n=e.current.alternate,a&&!Ds(n)){l=Ws(e,t,!1),a=!1;continue}if(2===l){if(a=t,e.errorRecoveryDisabledLanes&a)var i=0;else i=0!==(i=-536870913&e.pendingLanes)?i:536870912&i?536870912:0;if(0!==i){t=i;e:{var u=e;l=gs;var s=u.current.memoizedState.isDehydrated;if(s&&(js(u,i).flags|=256),2!==(i=Ws(u,i,!1))){if(us&&!s){u.errorRecoveryDisabledLanes|=a,ds|=a,l=4;break e}a=ys,ys=l,null!==a&&As(a)}l=i}if(a=!1,2!==l)continue}}if(1===l){js(e,0),Ms(e,t,0,!0);break}e:{switch(r=e,l){case 0:case 1:throw Error(o(345));case 4:if((4194176&t)===t){Ms(r,t,ms,!os);break e}break;case 2:ys=null;break;case 3:case 5:break;default:throw Error(o(329))}if(r.finishedWork=n,r.finishedLanes=t,(62914560&t)===t&&10<(a=bs+300-ue())){if(Ms(r,t,ms,!os),0!==_e(r,0))break e;r.timeoutHandle=ef(Fs.bind(null,r,n,ys,ws,vs,t,ms,ds,hs,os,2,-0,0),a)}else Fs(r,n,ys,ws,vs,t,ms,ds,hs,os,0,-0,0)}}break}hc(e)}function As(e){null===ys?ys=e:ys.push.apply(ys,e)}function Fs(e,t,n,r,l,a,i,u,s,c,f,d,p){var m=t.subtreeFlags;if((8192&m||16785408===(16785408&m))&&(Lf={stylesheets:null,count:0,unsuspend:Of},zu(t),null!==(t=function(){if(null===Lf)throw Error(o(475));var e=Lf;return e.stylesheets&&0===e.count&&Ff(e,e.stylesheets),0n?32:n,T.T=null,null===Cs)var a=!1;else{n=Ps,Ps=null;var i=Cs,u=xs;if(Cs=null,xs=0,0!==(6&es))throw Error(o(331));var s=es;if(es|=4,Lu(i.current),Eu(i,i.current,u,n),es=s,gc(0,!1),ve&&"function"===typeof ve.onPostCommitFiberRoot)try{ve.onPostCommitFiberRoot(ye,i)}catch(c){}a=!0}return a}finally{$.p=l,T.T=r,ec(e,t)}}return!1}function nc(e,t,n){t=Ar(n,t),null!==(e=Oi(e,t=jo(e.stateNode,t,2),2))&&(Oe(e,2),hc(e))}function rc(e,t,n){if(3===e.tag)nc(e,e,n);else for(;null!==t;){if(3===t.tag){nc(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"===typeof t.type.getDerivedStateFromError||"function"===typeof r.componentDidCatch&&(null===Ss||!Ss.has(r))){e=Ar(n,e),null!==(r=Oi(t,n=Ho(2),2))&&($o(n,r,t,e),Oe(r,2),hc(r));break}}t=t.return}}function lc(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new Ju;var l=new Set;r.set(t,l)}else void 0===(l=r.get(t))&&(l=new Set,r.set(t,l));l.has(n)||(us=!0,l.add(n),e=ac.bind(null,e,t,n),t.then(e,e))}function ac(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,ts===e&&(rs&n)===n&&(4===cs||3===cs&&(62914560&rs)===rs&&300>ue()-bs?0===(2&es)&&js(e,0):ps|=n,hs===rs&&(hs=0)),hc(e)}function oc(e,t){0===t&&(t=Te()),null!==(e=Nr(e,t))&&(Oe(e,t),hc(e))}function ic(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),oc(e,n)}function uc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(n=l.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(o(314))}null!==r&&r.delete(t),oc(e,n)}var sc=null,cc=null,fc=!1,dc=!1,pc=!1,mc=0;function hc(e){var t;e!==cc&&null===e.next&&(null===cc?sc=cc=e:cc=cc.next=e),dc=!0,fc||(fc=!0,t=yc,rf((function(){0!==(6&es)?le(ce,t):t()})))}function gc(e,t){if(!pc&&dc){pc=!0;do{for(var n=!1,r=sc;null!==r;){if(!t)if(0!==e){var l=r.pendingLanes;if(0===l)var a=0;else{var o=r.suspendedLanes,i=r.pingedLanes;a=(1<<31-ke(42|e)+1)-1,a=201326677&(a&=l&~(o&~i))?201326677&a|1:a?2|a:0}0!==a&&(n=!0,kc(r,a))}else a=rs,0===(3&(a=_e(r,r===ts?a:0)))||Pe(r,a)||(n=!0,kc(r,a));r=r.next}}while(n);pc=!1}}function yc(){dc=fc=!1;var e=0;0!==mc&&(function(){var e=window.event;if(e&&"popstate"===e.type)return e!==Jc&&(Jc=e,!0);return Jc=null,!1}()&&(e=mc),mc=0);for(var t=ue(),n=null,r=sc;null!==r;){var l=r.next,a=vc(r,t);0===a?(r.next=null,null===n?sc=l:n.next=l,null===l&&(cc=n)):(n=r,(0!==e||0!==(3&a))&&(dc=!0)),r=l}gc(e,!1)}function vc(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=-62914561&e.pendingLanes;0 title"):null)}function Tf(e){return"stylesheet"!==e.type||0!==(3&e.state.loading)}var Lf=null;function Of(){}function Rf(){if(this.count--,0===this.count)if(this.stylesheets)Ff(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}var Af=null;function Ff(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,Af=new Map,t.forEach(Df,e),Af=null,Rf.call(e))}function Df(e,t){if(!(4&t.state.loading)){var n=Af.get(e);if(n)var r=n.get(null);else{n=new Map,Af.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a{var r=n(43);function l(e){var t="https://react.dev/errors/"+e;if(1{!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4)},950:(e,t,n)=>{!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(672)},799:(e,t)=>{var n=Symbol.for("react.transitional.element");function r(e,t,r){var l=null;if(void 0!==r&&(l=""+r),void 0!==t.key&&(l=""+t.key),"key"in t)for(var a in r={},t)"key"!==a&&(r[a]=t[a]);else r=t;return t=r.ref,{$$typeof:n,type:e,key:l,ref:void 0!==t?t:null,props:r}}Symbol.for("react.fragment"),t.jsx=r},288:(e,t)=>{var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),l=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),i=Symbol.for("react.consumer"),u=Symbol.for("react.context"),s=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),p=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}function v(){}function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=y.prototype;var k=b.prototype=new v;k.constructor=b,h(k,y.prototype),k.isPureReactComponent=!0;var w=Array.isArray,S={H:null,A:null,T:null,S:null},E=Object.prototype.hasOwnProperty;function C(e,t,r,l,a,o){return r=o.ref,{$$typeof:n,type:e,key:t,ref:void 0!==r?r:null,props:o}}function x(e){return"object"===typeof e&&null!==e&&e.$$typeof===n}var _=/\/+/g;function P(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function z(){}function N(e,t,l,a,o){var i=typeof e;"undefined"!==i&&"boolean"!==i||(e=null);var u,s,c=!1;if(null===e)c=!0;else switch(i){case"bigint":case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case n:case r:c=!0;break;case d:return N((c=e._init)(e._payload),t,l,a,o)}}if(c)return o=o(e),c=""===a?"."+P(e,0):a,w(o)?(l="",null!=c&&(l=c.replace(_,"$&/")+"/"),N(o,t,l,"",(function(e){return e}))):null!=o&&(x(o)&&(u=o,s=l+(null==o.key||e&&e.key===o.key?"":(""+o.key).replace(_,"$&/")+"/")+c,o=C(u.type,s,void 0,0,0,u.props)),t.push(o)),1;c=0;var f,m=""===a?".":a+":";if(w(e))for(var h=0;h{e.exports=n(288)},579:(e,t,n)=>{e.exports=n(799)},896:(e,t)=>{function n(e,t){var n=e.length;e.push(t);e:for(;0>>1,l=e[r];if(!(0>>1;ra(u,n))sa(c,u)?(e[r]=c,e[s]=n,r=s):(e[r]=u,e[i]=n,r=i);else{if(!(sa(c,n)))break e;e[r]=c,e[s]=n,r=s}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"===typeof performance&&"function"===typeof performance.now){var o=performance;t.unstable_now=function(){return o.now()}}else{var i=Date,u=i.now();t.unstable_now=function(){return i.now()-u}}var s=[],c=[],f=1,d=null,p=3,m=!1,h=!1,g=!1,y="function"===typeof setTimeout?setTimeout:null,v="function"===typeof clearTimeout?clearTimeout:null,b="undefined"!==typeof setImmediate?setImmediate:null;function k(e){for(var t=r(c);null!==t;){if(null===t.callback)l(c);else{if(!(t.startTime<=e))break;l(c),t.sortIndex=t.expirationTime,n(s,t)}t=r(c)}}function w(e){if(g=!1,k(e),!h)if(null!==r(s))h=!0,L();else{var t=r(c);null!==t&&O(w,t.startTime-e)}}var S,E=!1,C=-1,x=5,_=-1;function P(){return!(t.unstable_now()-_e&&P());){var o=d.callback;if("function"===typeof o){d.callback=null,p=d.priorityLevel;var i=o(d.expirationTime<=e);if(e=t.unstable_now(),"function"===typeof i){d.callback=i,k(e),n=!0;break t}d===r(s)&&l(s),k(e)}else l(s);d=r(s)}if(null!==d)n=!0;else{var u=r(c);null!==u&&O(w,u.startTime-e),n=!1}}break e}finally{d=null,p=a,m=!1}n=void 0}}finally{n?S():E=!1}}}if("function"===typeof b)S=function(){b(z)};else if("undefined"!==typeof MessageChannel){var N=new MessageChannel,T=N.port2;N.port1.onmessage=z,S=function(){T.postMessage(null)}}else S=function(){y(z,0)};function L(){E||(E=!0,S())}function O(e,n){C=y((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){h||m||(h=!0,L())},t.unstable_forceFrameRate=function(e){0>e||125o?(e.sortIndex=a,n(c,e),null===r(s)&&e===r(c)&&(g?(v(C),C=-1):g=!0,O(w,a-o))):(e.sortIndex=i,n(s,e),h||m||(h=!0,L())),e},t.unstable_shouldYield=P,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},853:(e,t,n)=>{e.exports=n(896)}},t={};function n(r){var l=t[r];if(void 0!==l)return l.exports;var a=t[r]={exports:{}};return e[r](a,a.exports,n),a.exports}n.m=e,n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,r)=>(n.f[r](e,t),t)),[])),n.u=e=>"static/js/"+e+".66212945.chunk.js",n.miniCssF=e=>{},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="jsimage:";n.l=(r,l,a,o)=>{if(e[r])e[r].push(l);else{var i,u;if(void 0!==a)for(var s=document.getElementsByTagName("script"),c=0;c{i.onerror=i.onload=null,clearTimeout(p);var l=e[r];if(delete e[r],i.parentNode&&i.parentNode.removeChild(i),l&&l.forEach((e=>e(n))),t)return t(n)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=d.bind(null,i.onerror),i.onload=d.bind(null,i.onload),u&&document.head.appendChild(i)}}})(),n.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/",(()=>{var e={792:0};n.f.j=(t,r)=>{var l=n.o(e,t)?e[t]:void 0;if(0!==l)if(l)r.push(l[2]);else{var a=new Promise(((n,r)=>l=e[t]=[n,r]));r.push(l[2]=a);var o=n.p+n.u(t),i=new Error;n.l(o,(r=>{if(n.o(e,t)&&(0!==(l=e[t])&&(e[t]=void 0),l)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;i.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",i.name="ChunkLoadError",i.type=a,i.request=o,l[1](i)}}),"chunk-"+t,t)}};var t=(t,r)=>{var l,a,o=r[0],i=r[1],u=r[2],s=0;if(o.some((t=>0!==e[t]))){for(l in i)n.o(i,l)&&(n.m[l]=i[l]);if(u)u(n)}for(t&&t(r);s{e&&e instanceof Function&&n.e(488).then(n.bind(n,488)).then((t=>{let{getCLS:n,getFID:r,getFCP:l,getLCP:a,getTTFB:o}=t;n(e),r(e),l(e),a(e),o(e)}))};l.createRoot(document.getElementById("root")).render((0,a.jsx)(r.StrictMode,{children:(0,a.jsx)(o,{})})),i()})(); +//# sourceMappingURL=main.3fcd1166.js.map \ No newline at end of file diff --git a/web/static/apps/jsimage/static/js/main.3fcd1166.js.LICENSE.txt b/web/static/apps/jsimage/static/js/main.3fcd1166.js.LICENSE.txt new file mode 100644 index 0000000..1326114 --- /dev/null +++ b/web/static/apps/jsimage/static/js/main.3fcd1166.js.LICENSE.txt @@ -0,0 +1,49 @@ +/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * scheduler.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/web/static/apps/jsimage/static/js/main.3fcd1166.js.map b/web/static/apps/jsimage/static/js/main.3fcd1166.js.map new file mode 100644 index 0000000..e3f7407 --- /dev/null +++ b/web/static/apps/jsimage/static/js/main.3fcd1166.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/main.3fcd1166.js","mappings":"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","sources":["../node_modules/react-dom/cjs/react-dom-client.production.js","../node_modules/react-dom/cjs/react-dom.production.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react.production.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.js","../node_modules/scheduler/index.js","../webpack/bootstrap","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","logo.svg","App.js","reportWebVitals.js","index.js"],"sourcesContent":["/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nvar REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nSymbol.for(\"react.debug_trace_mode\");\nvar REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n assign = Object.assign,\n prefix,\n suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" ()\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$0) {\n control = x$0;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$1) {\n control = x$1;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"\") &&\n (frame = frame.replace(\"\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return (fiber = describeNativeComponentFrame(fiber.type, !1)), fiber;\n case 11:\n return (\n (fiber = describeNativeComponentFrame(fiber.type.render, !1)), fiber\n );\n case 1:\n return (fiber = describeNativeComponentFrame(fiber.type, !0)), fiber;\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\";\n do\n (info += describeFiber(workInProgress)),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$2 = parentA.child; child$2; ) {\n if (child$2 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$2 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$2 = child$2.sibling;\n }\n if (!didFindChild) {\n for (child$2 = parentB.child; child$2; ) {\n if (child$2 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$2 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$2 = child$2.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n fiber = nextRootInstance.nodeType;\n switch (fiber) {\n case 9:\n case 11:\n nextRootInstance = (nextRootInstance = nextRootInstance.documentElement)\n ? (nextRootInstance = nextRootInstance.namespaceURI)\n ? getOwnHostContext(nextRootInstance)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = 8 === fiber ? nextRootInstance.parentNode : nextRootInstance),\n (nextRootInstance = fiber.tagName),\n (fiber = fiber.namespaceURI))\n )\n (fiber = getOwnHostContext(fiber)),\n (nextRootInstance = getChildHostContextProd(fiber, nextRootInstance));\n else\n switch (nextRootInstance) {\n case \"svg\":\n nextRootInstance = 1;\n break;\n case \"math\":\n nextRootInstance = 2;\n break;\n default:\n nextRootInstance = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, nextRootInstance);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction onCommitRoot(root) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n root,\n void 0,\n 128 === (root.current.flags & 128)\n );\n } catch (err) {}\n}\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionLane = 128,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 4194176;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n warmLanes = root.warmLanes;\n root = 0 !== root.finishedLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : root ||\n ((warmLanes = nonIdlePendingLanes & ~warmLanes),\n 0 !== warmLanes &&\n (nextLanes = getHighestPriorityLanes(warmLanes)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : root ||\n ((warmLanes = pendingLanes & ~warmLanes),\n 0 !== warmLanes &&\n (nextLanes = getHighestPriorityLanes(warmLanes))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (warmLanes = wipLanes & -wipLanes),\n suspendedLanes >= warmLanes ||\n (32 === suspendedLanes && 0 !== (warmLanes & 4194176)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n return currentTime + 250;\n case 16:\n case 32:\n case 64:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n 0 === (nextTransitionLane & 4194176) && (nextTransitionLane = 128);\n return lane;\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 4194218);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentSuspenseInstance(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentSuspenseInstance(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\",\n descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n ),\n currentValue = \"\" + node[valueField];\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n node._valueTracker || (node._valueTracker = trackValueOnNode(node));\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n )\n return;\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$283;\n if (canUseDOM) {\n var isSupported$jscomp$inline_418 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_418) {\n var element$jscomp$inline_419 = document.createElement(\"div\");\n element$jscomp$inline_419.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_418 =\n \"function\" === typeof element$jscomp$inline_419.oninput;\n }\n JSCompiler_inline_result$jscomp$283 = isSupported$jscomp$inline_418;\n } else JSCompiler_inline_result$jscomp$283 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$283 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nfunction restoreSelection(priorSelectionInformation, containerInfo) {\n var curFocusedElem = getActiveElementDeep(containerInfo);\n containerInfo = priorSelectionInformation.focusedElem;\n var priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== containerInfo &&\n containerInfo &&\n containerInfo.ownerDocument &&\n containsNode(containerInfo.ownerDocument.documentElement, containerInfo)\n ) {\n if (null !== priorSelectionRange && hasSelectionCapabilities(containerInfo))\n if (\n ((priorSelectionInformation = priorSelectionRange.start),\n (curFocusedElem = priorSelectionRange.end),\n void 0 === curFocusedElem &&\n (curFocusedElem = priorSelectionInformation),\n \"selectionStart\" in containerInfo)\n )\n (containerInfo.selectionStart = priorSelectionInformation),\n (containerInfo.selectionEnd = Math.min(\n curFocusedElem,\n containerInfo.value.length\n ));\n else if (\n ((curFocusedElem =\n ((priorSelectionInformation =\n containerInfo.ownerDocument || document) &&\n priorSelectionInformation.defaultView) ||\n window),\n curFocusedElem.getSelection)\n ) {\n curFocusedElem = curFocusedElem.getSelection();\n var length = containerInfo.textContent.length,\n start = Math.min(priorSelectionRange.start, length);\n priorSelectionRange =\n void 0 === priorSelectionRange.end\n ? start\n : Math.min(priorSelectionRange.end, length);\n !curFocusedElem.extend &&\n start > priorSelectionRange &&\n ((length = priorSelectionRange),\n (priorSelectionRange = start),\n (start = length));\n length = getNodeForCharacterOffset(containerInfo, start);\n var endMarker = getNodeForCharacterOffset(\n containerInfo,\n priorSelectionRange\n );\n length &&\n endMarker &&\n (1 !== curFocusedElem.rangeCount ||\n curFocusedElem.anchorNode !== length.node ||\n curFocusedElem.anchorOffset !== length.offset ||\n curFocusedElem.focusNode !== endMarker.node ||\n curFocusedElem.focusOffset !== endMarker.offset) &&\n ((priorSelectionInformation =\n priorSelectionInformation.createRange()),\n priorSelectionInformation.setStart(length.node, length.offset),\n curFocusedElem.removeAllRanges(),\n start > priorSelectionRange\n ? (curFocusedElem.addRange(priorSelectionInformation),\n curFocusedElem.extend(endMarker.node, endMarker.offset))\n : (priorSelectionInformation.setEnd(\n endMarker.node,\n endMarker.offset\n ),\n curFocusedElem.addRange(priorSelectionInformation)));\n }\n priorSelectionInformation = [];\n for (\n curFocusedElem = containerInfo;\n (curFocusedElem = curFocusedElem.parentNode);\n\n )\n 1 === curFocusedElem.nodeType &&\n priorSelectionInformation.push({\n element: curFocusedElem,\n left: curFocusedElem.scrollLeft,\n top: curFocusedElem.scrollTop\n });\n \"function\" === typeof containerInfo.focus && containerInfo.focus();\n for (\n containerInfo = 0;\n containerInfo < priorSelectionInformation.length;\n containerInfo++\n )\n (curFocusedElem = priorSelectionInformation[containerInfo]),\n (curFocusedElem.element.scrollLeft = curFocusedElem.left),\n (curFocusedElem.element.scrollTop = curFocusedElem.top);\n }\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel\".split(\n \" \"\n );\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n isHidden &&\n null !== update &&\n 3 === sourceFiber.tag &&\n ((parent = sourceFiber.stateNode),\n (isHidden = 31 - clz32(lane)),\n (parent = parent.hiddenUpdates),\n (sourceFiber = parent[isHidden]),\n null === sourceFiber\n ? (parent[isHidden] = [update])\n : sourceFiber.push(update),\n (update.lane = lane | 536870912));\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {},\n CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(formatProdErrorMessage(418, \"\"));\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n track(instance);\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children),\n track(instance);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 3:\n case 27:\n rootOrSingletonContext = !0;\n return;\n case 5:\n case 13:\n rootOrSingletonContext = !1;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var shouldClear = !1,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== fiber.tag && 27 !== fiber.tag)) {\n if ((JSCompiler_temp = 5 === fiber.tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && (shouldClear = !0);\n shouldClear && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === fiber.tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n a: {\n fiber = fiber.nextSibling;\n for (shouldClear = 0; fiber; ) {\n if (8 === fiber.nodeType)\n if (((JSCompiler_temp = fiber.data), \"/$\" === JSCompiler_temp)) {\n if (0 === shouldClear) {\n nextHydratableInstance = getNextHydratable(fiber.nextSibling);\n break a;\n }\n shouldClear--;\n } else\n (\"$\" !== JSCompiler_temp &&\n \"$!\" !== JSCompiler_temp &&\n \"$?\" !== JSCompiler_temp) ||\n shouldClear++;\n fiber = fiber.nextSibling;\n }\n nextHydratableInstance = null;\n }\n } else\n nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null;\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction noop$3() {}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$3, noop$3), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n thenableState = thenable.reason;\n if (thenableState === SuspenseException)\n throw Error(formatProdErrorMessage(483));\n throw thenableState;\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$3, noop$3);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n thenableState = thenable.reason;\n if (thenableState === SuspenseException)\n throw Error(formatProdErrorMessage(483));\n throw thenableState;\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction resolveLazy(lazyType) {\n var init = lazyType._init;\n return init(lazyType._payload);\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 33554434), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 33554434;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 33554434);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n newChild = init(newChild._payload);\n return createChild(returnFiber, newChild, lanes);\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n (newChild = key(newChild._payload)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n newChild = init(newChild._payload);\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n (newChild = key(newChild._payload)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n if (22 === fiber.tag) {\n if (\n (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary)\n ) {\n var current = fiber.alternate;\n null !== current &&\n null !== current.memoizedState &&\n (shellBoundary = fiber);\n }\n } else reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state || \"$?\" === state.data || \"$!\" === state.data)\n )\n return node;\n } else if (19 === node.tag && void 0 !== node.memoizedProps.revealOrder) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar renderLanes = 0,\n currentlyRenderingFiber$1 = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber$1 = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber$1 = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber$1.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber$1.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber$1.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber$1.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nvar createFunctionComponentUpdateQueue;\ncreateFunctionComponentUpdateQueue = function () {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n};\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber$1;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber$1.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber$1.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber$1.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$54 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$54 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$54 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber$1.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber$1.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$54 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n { destroy: void 0 },\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 60) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber$1.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber$1.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n ReactSharedInternals.T = prevTransition;\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$60) {\n onActionError(actionQueue, node, error$60);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber$1;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber$1,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber$1,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber$1,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n currentStateHook =\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n ? useThenable(currentStateHook)\n : currentStateHook;\n var actionQueueHook = updateWorkInProgressHook(),\n actionQueue = actionQueueHook.queue,\n dispatch = actionQueue.dispatch;\n action !== actionQueueHook.memoizedState &&\n ((currentlyRenderingFiber$1.flags |= 2048),\n pushEffect(\n 9,\n actionStateActionEffect.bind(null, actionQueue, action),\n { destroy: void 0 },\n null\n ));\n return [currentStateHook, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushEffect(tag, create, inst, deps) {\n tag = { tag: tag, create: create, inst: inst, deps: deps, next: null };\n create = currentlyRenderingFiber$1.updateQueue;\n null === create &&\n ((create = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber$1.updateQueue = create));\n inst = create.lastEffect;\n null === inst\n ? (create.lastEffect = tag.next = tag)\n : ((deps = inst.next),\n (inst.next = tag),\n (tag.next = deps),\n (create.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(\n 1 | hookFlags,\n create,\n { destroy: void 0 },\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushEffect(hookFlags, create, inst, deps))\n : ((currentlyRenderingFiber$1.flags |= fiberFlags),\n (hook.memoizedState = pushEffect(1 | hookFlags, create, inst, deps)));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (void 0 === initialValue || 0 !== (renderLanes & 1073741824))\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber$1.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (0 === (renderLanes & 42))\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber$1.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop$2() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop$2\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var resetStateQueue = ensureFormComponentIsStateful(formFiber).next.queue;\n dispatchSetStateInternal(formFiber, resetStateQueue, {}, requestUpdateLane());\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$63 = enqueueUpdate(provider, fiber, lane);\n null !== root$63 &&\n (scheduleUpdateOnFiber(root$63, provider, lane),\n entangleTransitions(root$63, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber$1 ||\n (null !== alternate && alternate === currentlyRenderingFiber$1)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194176)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError\n};\nContextOnlyDispatcher.useCacheRefresh = throwInvalidHookError;\nContextOnlyDispatcher.useMemoCache = throwInvalidHookError;\nContextOnlyDispatcher.useHostTransitionStatus = throwInvalidHookError;\nContextOnlyDispatcher.useFormState = throwInvalidHookError;\nContextOnlyDispatcher.useActionState = throwInvalidHookError;\nContextOnlyDispatcher.useOptimistic = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber$1,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber$1, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber$1,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber$1,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 60) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushEffect(\n 9,\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n { destroy: void 0 },\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \":\" + identifierPrefix + \"R\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \":\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \":\" +\n identifierPrefix +\n \"r\" +\n JSCompiler_inline_result.toString(32) +\n \":\");\n return (hook.memoizedState = identifierPrefix);\n },\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber$1\n ));\n }\n};\nHooksDispatcherOnMount.useMemoCache = useMemoCache;\nHooksDispatcherOnMount.useHostTransitionStatus = useHostTransitionStatus;\nHooksDispatcherOnMount.useFormState = mountActionState;\nHooksDispatcherOnMount.useActionState = mountActionState;\nHooksDispatcherOnMount.useOptimistic = function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber$1,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n};\nvar HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId\n};\nHooksDispatcherOnUpdate.useCacheRefresh = updateRefresh;\nHooksDispatcherOnUpdate.useMemoCache = useMemoCache;\nHooksDispatcherOnUpdate.useHostTransitionStatus = useHostTransitionStatus;\nHooksDispatcherOnUpdate.useFormState = updateActionState;\nHooksDispatcherOnUpdate.useActionState = updateActionState;\nHooksDispatcherOnUpdate.useOptimistic = function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n};\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId\n};\nHooksDispatcherOnRerender.useCacheRefresh = updateRefresh;\nHooksDispatcherOnRerender.useMemoCache = useMemoCache;\nHooksDispatcherOnRerender.useHostTransitionStatus = useHostTransitionStatus;\nHooksDispatcherOnRerender.useFormState = rerenderActionState;\nHooksDispatcherOnRerender.useActionState = rerenderActionState;\nHooksDispatcherOnRerender.useOptimistic = function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n};\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n isMounted: function (component) {\n return (component = component._reactInternals)\n ? getNearestMountedFiber(component) === component\n : !1;\n },\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$67 in Component)\n void 0 === newProps[propName$67] &&\n (newProps[propName$67] = Component[propName$67]);\n }\n return newProps;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n };\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$68) {\n setTimeout(function () {\n throw e$68;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$69) {\n setTimeout(function () {\n throw e$69;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n nextChildren = nextProps.children,\n nextIsDetached = 0 !== (workInProgress.stateNode._pendingVisibility & 2),\n prevState = null !== current ? current.memoizedState : null;\n markRef(current, workInProgress);\n if (\"hidden\" === nextProps.mode || nextIsDetached) {\n if (0 !== (workInProgress.flags & 128)) {\n nextProps =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextChildren = workInProgress.child = current.child;\n for (nextIsDetached = 0; null !== nextChildren; )\n (nextIsDetached =\n nextIsDetached | nextChildren.lanes | nextChildren.childLanes),\n (nextChildren = nextChildren.sibling);\n workInProgress.childLanes = nextIsDetached & ~nextProps;\n } else (workInProgress.childLanes = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextProps,\n renderLanes\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (workInProgress.lanes = workInProgress.childLanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n return null;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 2097664);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 2097664;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = { dehydrated: null, treeContext: null, retryLane: 0 };\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n if (isHydrating) {\n var nextInstance = nextHydratableInstance,\n JSCompiler_temp$jscomp$0;\n if ((JSCompiler_temp$jscomp$0 = nextInstance)) {\n c: {\n JSCompiler_temp$jscomp$0 = nextInstance;\n for (\n nextInstance = rootOrSingletonContext;\n 8 !== JSCompiler_temp$jscomp$0.nodeType;\n\n ) {\n if (!nextInstance) {\n nextInstance = null;\n break c;\n }\n JSCompiler_temp$jscomp$0 = getNextHydratable(\n JSCompiler_temp$jscomp$0.nextSibling\n );\n if (null === JSCompiler_temp$jscomp$0) {\n nextInstance = null;\n break c;\n }\n }\n nextInstance = JSCompiler_temp$jscomp$0;\n }\n null !== nextInstance\n ? ((workInProgress.memoizedState = {\n dehydrated: nextInstance,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912\n }),\n (JSCompiler_temp$jscomp$0 = createFiberImplClass(\n 18,\n null,\n null,\n 0\n )),\n (JSCompiler_temp$jscomp$0.stateNode = nextInstance),\n (JSCompiler_temp$jscomp$0.return = workInProgress),\n (workInProgress.child = JSCompiler_temp$jscomp$0),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (JSCompiler_temp$jscomp$0 = !0))\n : (JSCompiler_temp$jscomp$0 = !1);\n }\n JSCompiler_temp$jscomp$0 || throwOnHydrationMismatch(workInProgress);\n }\n nextInstance = workInProgress.memoizedState;\n if (\n null !== nextInstance &&\n ((nextInstance = nextInstance.dehydrated), null !== nextInstance)\n )\n return (\n \"$!\" === nextInstance.data\n ? (workInProgress.lanes = 16)\n : (workInProgress.lanes = 536870912),\n null\n );\n popSuspenseHandler(workInProgress);\n }\n nextInstance = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextInstance = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextInstance },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextInstance.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextInstance.sibling = nextProps),\n (workInProgress.child = nextInstance),\n (showFallback = workInProgress.child),\n (showFallback.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (showFallback.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n nextProps\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextInstance);\n }\n JSCompiler_temp$jscomp$0 = current.memoizedState;\n if (\n null !== JSCompiler_temp$jscomp$0 &&\n ((nextInstance = JSCompiler_temp$jscomp$0.dehydrated),\n null !== nextInstance)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = nextProps.fallback),\n (nextInstance = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n nextInstance\n )),\n (showFallback = createFiberFromFragment(\n showFallback,\n nextInstance,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2),\n (nextProps.return = workInProgress),\n (showFallback.return = workInProgress),\n (nextProps.sibling = showFallback),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = showFallback));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n \"$!\" === nextInstance.data)\n ) {\n JSCompiler_temp =\n nextInstance.nextSibling && nextInstance.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (null !== JSCompiler_temp) {\n nextProps = renderLanes & -renderLanes;\n if (0 !== (nextProps & 42)) nextProps = 1;\n else\n switch (nextProps) {\n case 2:\n nextProps = 1;\n break;\n case 8:\n nextProps = 4;\n break;\n case 32:\n nextProps = 16;\n break;\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n nextProps = 64;\n break;\n case 268435456:\n nextProps = 134217728;\n break;\n default:\n nextProps = 0;\n }\n nextProps =\n 0 !== (nextProps & (JSCompiler_temp.suspendedLanes | renderLanes))\n ? 0\n : nextProps;\n if (0 !== nextProps && nextProps !== JSCompiler_temp$jscomp$0.retryLane)\n throw (\n ((JSCompiler_temp$jscomp$0.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n }\n \"$?\" === nextInstance.data || renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n \"$?\" === nextInstance.data\n ? ((workInProgress.flags |= 128),\n (workInProgress.child = current.child),\n (workInProgress = retryDehydratedSuspenseBoundary.bind(\n null,\n current\n )),\n (nextInstance._reactRetry = workInProgress),\n (workInProgress = null))\n : ((current = JSCompiler_temp$jscomp$0.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextInstance.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n ((idStack[idStackIndex++] = treeContextId),\n (idStack[idStackIndex++] = treeContextOverflow),\n (idStack[idStackIndex++] = treeContextProvider),\n (treeContextId = current.id),\n (treeContextOverflow = current.overflow),\n (treeContextProvider = workInProgress)),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = nextProps.fallback),\n (nextInstance = workInProgress.mode),\n (JSCompiler_temp$jscomp$0 = current.child),\n (digest = JSCompiler_temp$jscomp$0.sibling),\n (nextProps = createWorkInProgress(JSCompiler_temp$jscomp$0, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags =\n JSCompiler_temp$jscomp$0.subtreeFlags & 31457280),\n null !== digest\n ? (showFallback = createWorkInProgress(digest, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n nextInstance,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2)),\n (showFallback.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = showFallback),\n (workInProgress.child = nextProps),\n (nextProps = showFallback),\n (showFallback = workInProgress.child),\n (nextInstance = current.child.memoizedState),\n null === nextInstance\n ? (nextInstance = mountSuspenseOffscreenState(renderLanes))\n : ((JSCompiler_temp$jscomp$0 = nextInstance.cachePool),\n null !== JSCompiler_temp$jscomp$0\n ? ((digest = CacheContext._currentValue),\n (JSCompiler_temp$jscomp$0 =\n JSCompiler_temp$jscomp$0.parent !== digest\n ? { parent: digest, pool: digest }\n : JSCompiler_temp$jscomp$0))\n : (JSCompiler_temp$jscomp$0 = getSuspendedCache()),\n (nextInstance = {\n baseLanes: nextInstance.baseLanes | renderLanes,\n cachePool: JSCompiler_temp$jscomp$0\n })),\n (showFallback.memoizedState = nextInstance),\n (showFallback.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n nextProps\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n return createFiberFromOffscreen(offscreenProps, mode, 0, null);\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n reconcileChildren(current, workInProgress, nextProps.children, renderLanes);\n nextProps = suspenseStackCursor.current;\n if (0 !== (nextProps & 2))\n (nextProps = (nextProps & 1) | 2), (workInProgress.flags |= 128);\n else {\n if (null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n nextProps &= 1;\n }\n push(suspenseStackCursor, nextProps);\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode\n );\n break;\n case \"backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode\n );\n break;\n case \"together\":\n initSuspenseListRenderState(workInProgress, !1, null, null, void 0);\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 13:\n var state = workInProgress.memoizedState;\n if (null !== state) {\n if (null !== state.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state = 0 !== (renderLanes & workInProgress.childLanes);\n state ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state) break;\n else return null;\n case 22:\n case 23:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(current, workInProgress, renderLanes)\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n current = workInProgress.pendingProps;\n var lazyComponent = workInProgress.elementType,\n init = lazyComponent._init;\n lazyComponent = init(lazyComponent._payload);\n workInProgress.type = lazyComponent;\n if (\"function\" === typeof lazyComponent)\n shouldConstruct(lazyComponent)\n ? ((current = resolveClassComponentProps(lazyComponent, current)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n )));\n else {\n if (void 0 !== lazyComponent && null !== lazyComponent)\n if (\n ((init = lazyComponent.$$typeof), init === REACT_FORWARD_REF_TYPE)\n ) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n );\n break a;\n } else if (init === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n );\n break a;\n }\n workInProgress =\n getComponentNameFromType(lazyComponent) || lazyComponent;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (lazyComponent = workInProgress.type),\n (init = resolveClassComponentProps(\n lazyComponent,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n lazyComponent,\n init,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n var nextProps = workInProgress.pendingProps;\n init = workInProgress.memoizedState;\n lazyComponent = init.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, nextProps, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n nextProps = nextState.cache;\n pushProvider(workInProgress, CacheContext, nextProps);\n nextProps !== init.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n nextProps = nextState.element;\n if (init.isDehydrated)\n if (\n ((init = {\n element: nextProps,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = init),\n (workInProgress.memoizedState = init),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextProps,\n renderLanes\n );\n break a;\n } else if (nextProps !== lazyComponent) {\n lazyComponent = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError(lazyComponent);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextProps,\n renderLanes\n );\n break a;\n } else\n for (\n nextHydratableInstance = getNextHydratable(\n workInProgress.stateNode.containerInfo.firstChild\n ),\n hydrationParentFiber = workInProgress,\n isHydrating = !0,\n hydrationErrors = null,\n rootOrSingletonContext = !0,\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n nextProps,\n renderLanes\n ),\n workInProgress.child = renderLanes;\n renderLanes;\n\n )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n else {\n resetHydrationState();\n if (nextProps === lazyComponent) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (lazyComponent = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (lazyComponent[internalInstanceKey] = workInProgress),\n (lazyComponent[internalPropsKey] = current),\n setInitialProperties(lazyComponent, renderLanes, current),\n markNodeAsHoistable(lazyComponent),\n (workInProgress.stateNode = lazyComponent))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((lazyComponent = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n (nextHydratableInstance = getNextHydratable(\n lazyComponent.firstChild\n ))),\n (lazyComponent = workInProgress.pendingProps.children),\n null !== current || isHydrating\n ? reconcileChildren(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n )\n : (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n lazyComponent,\n renderLanes\n )),\n markRef(current, workInProgress),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if ((init = lazyComponent = nextHydratableInstance))\n (lazyComponent = canHydrateInstance(\n lazyComponent,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== lazyComponent\n ? ((workInProgress.stateNode = lazyComponent),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(\n lazyComponent.firstChild\n )),\n (rootOrSingletonContext = !1),\n (init = !0))\n : (init = !1);\n init || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n init = workInProgress.type;\n nextProps = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n lazyComponent = nextProps.children;\n shouldSetTextContent(init, nextProps)\n ? (lazyComponent = null)\n : null !== nextState &&\n shouldSetTextContent(init, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n ((init = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = init));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, lazyComponent, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (lazyComponent = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n lazyComponent,\n renderLanes\n ))\n : reconcileChildren(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n ),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (lazyComponent = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, lazyComponent.value),\n reconcileChildren(\n current,\n workInProgress,\n lazyComponent.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 9:\n return (\n (init = workInProgress.type._context),\n (lazyComponent = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n (init = readContext(init)),\n (lazyComponent = lazyComponent(init)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, lazyComponent, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (lazyComponent = readContext(CacheContext)),\n null === current\n ? ((init = peekCacheFromPool()),\n null === init &&\n ((init = workInProgressRoot),\n (nextProps = createCache()),\n (init.pooledCache = nextProps),\n nextProps.refCount++,\n null !== nextProps && (init.pooledCacheLanes |= renderLanes),\n (init = nextProps)),\n (workInProgress.memoizedState = {\n parent: lazyComponent,\n cache: init\n }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, init))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n (init = current.memoizedState),\n (nextProps = workInProgress.memoizedState),\n init.parent !== lazyComponent\n ? ((init = { parent: lazyComponent, cache: lazyComponent }),\n (workInProgress.memoizedState = init),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n init),\n pushProvider(workInProgress, CacheContext, lazyComponent))\n : ((lazyComponent = nextProps.cache),\n pushProvider(workInProgress, CacheContext, lazyComponent),\n lazyComponent !== init.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194176))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0;\n try {\n destroy();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n var instance = current.stateNode;\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = instance;\n break;\n default:\n instanceToUse = instance;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$112) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$112);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n 27 === fiber.tag ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag &&\n 6 !== fiber.tag &&\n 27 !== fiber.tag &&\n 18 !== fiber.tag;\n\n ) {\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? 8 === parent.nodeType\n ? parent.parentNode.insertBefore(node, before)\n : parent.insertBefore(node, before)\n : (8 === parent.nodeType\n ? ((before = parent.parentNode), before.insertBefore(node, parent))\n : ((before = parent), before.appendChild(node)),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (4 !== tag && 27 !== tag && ((node = node.child), null !== node))\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (4 !== tag && 27 !== tag && ((node = node.child), null !== node))\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null,\n shouldFireAfterActiveInstanceBlur = !1;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset,\n JSCompiler_temp.elementType === JSCompiler_temp.type\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n resolvedPrevProps = shouldFireAfterActiveInstanceBlur;\n shouldFireAfterActiveInstanceBlur = !1;\n return resolvedPrevProps;\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$111) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$111\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 64 && ((flags = finishedWork.updateQueue), null !== flags)) {\n finishedRoot = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n finishedRoot = finishedWork.child.stateNode;\n break;\n case 1:\n finishedRoot = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(flags, finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 26:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n prevProps =\n null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!prevProps) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n var prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevProps;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n flags & 512 &&\n (\"manual\" === finishedWork.memoizedProps.mode\n ? safelyAttachRef(finishedWork, finishedWork.return)\n : safelyDetachRef(finishedWork, finishedWork.return));\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber = deletedFiber.stateNode;\n for (\n nearestMountedAncestor = deletedFiber.attributes;\n nearestMountedAncestor.length;\n\n )\n deletedFiber.removeAttributeNode(nearestMountedAncestor[0]);\n detachDeletedInstance(deletedFiber);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParentIsContainer = hostParent;\n var prevHostParentIsContainer$119 = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParentIsContainer;\n hostParentIsContainer = prevHostParentIsContainer$119;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (finishedRoot = hostParent),\n (prevHostParent = deletedFiber.stateNode),\n 8 === finishedRoot.nodeType\n ? finishedRoot.parentNode.removeChild(prevHostParent)\n : finishedRoot.removeChild(prevHostParent);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((nearestMountedAncestor = hostParent),\n (deletedFiber = deletedFiber.stateNode),\n 8 === nearestMountedAncestor.nodeType\n ? clearSuspenseBoundary(\n nearestMountedAncestor.parentNode,\n deletedFiber\n )\n : 1 === nearestMountedAncestor.nodeType &&\n clearSuspenseBoundary(nearestMountedAncestor, deletedFiber),\n retryIfBlockedOn(nearestMountedAncestor))\n : clearSuspenseBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n retryCache.has(wakeable) ||\n (retryCache.add(wakeable), wakeable.then(retry, retry));\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13878)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href ? null : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n if (flags & 4 && null === finishedWork.alternate) {\n hoistableRoot = finishedWork.stateNode;\n currentResource = finishedWork.memoizedProps;\n try {\n for (var node = hoistableRoot.firstChild; node; ) {\n var nextNode = node.nextSibling,\n nodeName = node.nodeName;\n node[internalHoistableMarker] ||\n \"HEAD\" === nodeName ||\n \"BODY\" === nodeName ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node.rel.toLowerCase()) ||\n hoistableRoot.removeChild(node);\n node = nextNode;\n }\n for (\n var type = finishedWork.type, attributes = hoistableRoot.attributes;\n attributes.length;\n\n )\n hoistableRoot.removeAttributeNode(attributes[0]);\n setInitialProperties(hoistableRoot, type, currentResource);\n hoistableRoot[internalInstanceKey] = finishedWork;\n hoistableRoot[internalPropsKey] = currentResource;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n node = null !== finishedWork.memoizedState;\n nextNode = null !== current && null !== current.memoizedState;\n nodeName = offscreenSubtreeIsHidden;\n type = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = nodeName || node;\n offscreenSubtreeWasHidden = type || nextNode;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = type;\n offscreenSubtreeIsHidden = nodeName;\n commitReconciliationEffects(finishedWork);\n root = finishedWork.stateNode;\n root._current = finishedWork;\n root._visibility &= -3;\n root._visibility |= root._pendingVisibility & 2;\n if (\n flags & 8192 &&\n ((root._visibility = node\n ? root._visibility & -2\n : root._visibility | 1),\n node &&\n ((root = offscreenSubtreeIsHidden || offscreenSubtreeWasHidden),\n null === current ||\n nextNode ||\n root ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n null === finishedWork.memoizedProps ||\n \"manual\" !== finishedWork.memoizedProps.mode)\n )\n a: for (current = null, root = finishedWork; ; ) {\n if (5 === root.tag || 26 === root.tag || 27 === root.tag) {\n if (null === current) {\n nextNode = current = root;\n try {\n if (((hoistableRoot = nextNode.stateNode), node))\n (currentResource = hoistableRoot.style),\n \"function\" === typeof currentResource.setProperty\n ? currentResource.setProperty(\n \"display\",\n \"none\",\n \"important\"\n )\n : (currentResource.display = \"none\");\n else {\n maybeNodes = nextNode.stateNode;\n i = nextNode.memoizedProps.style;\n var display =\n void 0 !== i && null !== i && i.hasOwnProperty(\"display\")\n ? i.display\n : null;\n maybeNodes.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(nextNode, nextNode.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n nextNode = root;\n try {\n nextNode.stateNode.nodeValue = node\n ? \"\"\n : nextNode.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(nextNode, nextNode.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n if (27 !== finishedWork.tag) {\n a: {\n for (var parent = finishedWork.return; null !== parent; ) {\n if (isHostParent(parent)) {\n var JSCompiler_inline_result = parent;\n break a;\n }\n parent = parent.return;\n }\n throw Error(formatProdErrorMessage(160));\n }\n switch (JSCompiler_inline_result.tag) {\n case 27:\n var parent$jscomp$0 = JSCompiler_inline_result.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent$jscomp$0);\n break;\n case 5:\n var parent$113 = JSCompiler_inline_result.stateNode;\n JSCompiler_inline_result.flags & 32 &&\n (setTextContent(parent$113, \"\"),\n (JSCompiler_inline_result.flags &= -33));\n var before$114 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$114, parent$113);\n break;\n case 3:\n case 4:\n var parent$115 = JSCompiler_inline_result.stateNode.containerInfo,\n before$116 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$116,\n parent$115\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 26:\n case 27:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n safelyDetachRef(finishedWork, finishedWork.return);\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 26:\n case 27:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 4\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 4\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 4),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256)\n ));\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 10256);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 4\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 4),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(parentFiber) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(fiber) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(fiber);\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(fiber);\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(fiber);\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(fiber),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(fiber));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(fiber);\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 4 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -5),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 4 &&\n ((i._visibility &= -5),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 31457280;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 31457282;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_OFFSCREEN_TYPE:\n return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n pendingProps = createFiberImplClass(22, pendingProps, key, mode);\n pendingProps.elementType = REACT_OFFSCREEN_TYPE;\n pendingProps.lanes = lanes;\n var primaryChildInstance = {\n _visibility: 1,\n _pendingVisibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null,\n _current: null,\n detach: function () {\n var fiber = primaryChildInstance._current;\n if (null === fiber) throw Error(formatProdErrorMessage(456));\n if (0 === (primaryChildInstance._pendingVisibility & 2)) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root &&\n ((primaryChildInstance._pendingVisibility |= 2),\n scheduleUpdateOnFiber(root, fiber, 2));\n }\n },\n attach: function () {\n var fiber = primaryChildInstance._current;\n if (null === fiber) throw Error(formatProdErrorMessage(456));\n if (0 !== (primaryChildInstance._pendingVisibility & 2)) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root &&\n ((primaryChildInstance._pendingVisibility &= -3),\n scheduleUpdateOnFiber(root, fiber, 2));\n }\n }\n };\n pendingProps.stateNode = primaryChildInstance;\n return pendingProps;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource))) {\n resource = suspenseHandlerStackCursor.current;\n if (\n null !== resource &&\n ((workInProgressRootRenderLanes & 4194176) ===\n workInProgressRootRenderLanes\n ? null !== shellBoundary\n : ((workInProgressRootRenderLanes & 62914560) !==\n workInProgressRootRenderLanes &&\n 0 === (workInProgressRootRenderLanes & 536870912)) ||\n resource !== shellBoundary)\n )\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n workInProgress.flags |= 8192;\n }\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$131 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$131 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$131\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$131.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$132 = completedWork.child; null !== child$132; )\n (newChildLanes |= child$132.lanes | child$132.childLanes),\n (subtreeFlags |= child$132.subtreeFlags & 31457280),\n (subtreeFlags |= child$132.flags & 31457280),\n (child$132.return = completedWork),\n (child$132 = child$132.sibling);\n else\n for (child$132 = completedWork.child; null !== child$132; )\n (newChildLanes |= child$132.lanes | child$132.childLanes),\n (subtreeFlags |= child$132.subtreeFlags),\n (subtreeFlags |= child$132.flags),\n (child$132.return = completedWork),\n (child$132 = child$132.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n null !== hydrationErrors &&\n (queueRecoverableErrors(hydrationErrors),\n (hydrationErrors = null)));\n bubbleProperties(workInProgress);\n return null;\n case 26:\n return (\n (renderLanes = workInProgress.memoizedState),\n null === current\n ? (markUpdate(workInProgress),\n null !== renderLanes\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, renderLanes))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217)))\n : renderLanes\n ? renderLanes !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, renderLanes))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : (current.memoizedProps !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217)),\n null\n );\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n var type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n renderLanes = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, current);\n else {\n type = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (current) {\n case 1:\n current = type.createElementNS(\n \"http://www.w3.org/2000/svg\",\n renderLanes\n );\n break;\n case 2:\n current = type.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n renderLanes\n );\n break;\n default:\n switch (renderLanes) {\n case \"svg\":\n current = type.createElementNS(\n \"http://www.w3.org/2000/svg\",\n renderLanes\n );\n break;\n case \"math\":\n current = type.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n renderLanes\n );\n break;\n case \"script\":\n current = type.createElement(\"div\");\n current.innerHTML = \" + + + + + + + +
+ +
+
+
+
+ + + + +
+
+ +
+
+
+ + +
+
+
+
+
+
+ + + +
+
+
+ +
+
+
+
+
+ +
+
+ + +
+
+ +
+ +
+
+ + + + +
+
+
+
+ +
+ +
+ + + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+ +
+ + + +
+ +
+ +
+ + +
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+ +
+ +
+
+ +
+
+ + +
+
+ +
+ File name: +

-

+
+
+ File size: +

-

+
+
+
+ Title: +

-

+
+
+ Author: +

-

+
+
+ Subject: +

-

+
+
+ Keywords: +

-

+
+
+ Creation Date: +

-

+
+
+ Modification Date: +

-

+
+
+ Creator: +

-

+
+
+
+ PDF Producer: +

-

+
+
+ PDF Version: +

-

+
+
+ Page Count: +

-

+
+
+ Page Size: +

-

+
+
+
+ Fast Web View: +

-

+
+
+ +
+
+ +
+
+ Choose an option + + Alt text (alternative text) helps when people can’t see the image or when it doesn’t load. + +
+
+
+
+ + +
+
+ + Aim for 1-2 sentences that describe the subject, setting, or actions. + +
+
+
+ +
+
+
+
+
+ + +
+
+ + This is used for ornamental images, like borders or watermarks. + +
+
+
+
+ + +
+
+
+ +
+
+ Edit alt text (image description) +
+
+
+
+
+
+ +
+ Short description for people who can’t see the image or when the image doesn’t load. +
This alt text was created automatically and may be inaccurate. Learn more
+
+
+ + +
+ +
+
+
+
+
+
+ Couldn’t create alt text automatically + Please write your own alt text or try again later. +
+ +
+
+
+ + + +
+
+
+ + +
+
+ Image alt text settings +
+
+ Automatic alt text +
+
+
+ + +
+
+ Suggests descriptions to help people who can’t see the image or when the image doesn’t load. Learn more +
+
+
+
+ Alt text AI model (180MB) +
+ Runs locally on your device so your data stays private. Required for automatic alt text. +
+
+ + +
+
+
+
+
+ Alt text editor +
+
+ + +
+
+ Helps you make sure all your images have alt text. +
+
+
+
+ +
+
+
+ +
+ Preparing document for printing… +
+
+ + 0% +
+
+ +
+
+
+ + + +
+
+ + diff --git a/web/static/apps/pdfjs/web/viewer.mjs b/web/static/apps/pdfjs/web/viewer.mjs new file mode 100644 index 0000000..fa44c8d --- /dev/null +++ b/web/static/apps/pdfjs/web/viewer.mjs @@ -0,0 +1,20065 @@ +/** + * @licstart The following is the entire license notice for the + * JavaScript code in this page + * + * Copyright 2024 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * JavaScript code in this page + */ + +/******/ var __webpack_modules__ = ({ + +/***/ 9306: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var isCallable = __webpack_require__(4901); +var tryToString = __webpack_require__(6823); + +var $TypeError = TypeError; + +// `Assert: IsCallable(argument) is true` +module.exports = function (argument) { + if (isCallable(argument)) return argument; + throw new $TypeError(tryToString(argument) + ' is not a function'); +}; + + +/***/ }), + +/***/ 3506: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var isPossiblePrototype = __webpack_require__(3925); + +var $String = String; +var $TypeError = TypeError; + +module.exports = function (argument) { + if (isPossiblePrototype(argument)) return argument; + throw new $TypeError("Can't set " + $String(argument) + ' as a prototype'); +}; + + +/***/ }), + +/***/ 7080: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var has = (__webpack_require__(4402).has); + +// Perform ? RequireInternalSlot(M, [[SetData]]) +module.exports = function (it) { + has(it); + return it; +}; + + +/***/ }), + +/***/ 679: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var isPrototypeOf = __webpack_require__(1625); + +var $TypeError = TypeError; + +module.exports = function (it, Prototype) { + if (isPrototypeOf(Prototype, it)) return it; + throw new $TypeError('Incorrect invocation'); +}; + + +/***/ }), + +/***/ 8551: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var isObject = __webpack_require__(34); + +var $String = String; +var $TypeError = TypeError; + +// `Assert: Type(argument) is Object` +module.exports = function (argument) { + if (isObject(argument)) return argument; + throw new $TypeError($String(argument) + ' is not an object'); +}; + + +/***/ }), + +/***/ 7811: +/***/ ((module) => { + + +// eslint-disable-next-line es/no-typed-arrays -- safe +module.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined'; + + +/***/ }), + +/***/ 7394: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var globalThis = __webpack_require__(4576); +var uncurryThisAccessor = __webpack_require__(6706); +var classof = __webpack_require__(2195); + +var ArrayBuffer = globalThis.ArrayBuffer; +var TypeError = globalThis.TypeError; + +// Includes +// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). +// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception. +module.exports = ArrayBuffer && uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) { + if (classof(O) !== 'ArrayBuffer') throw new TypeError('ArrayBuffer expected'); + return O.byteLength; +}; + + +/***/ }), + +/***/ 3238: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var globalThis = __webpack_require__(4576); +var uncurryThis = __webpack_require__(7476); +var arrayBufferByteLength = __webpack_require__(7394); + +var ArrayBuffer = globalThis.ArrayBuffer; +var ArrayBufferPrototype = ArrayBuffer && ArrayBuffer.prototype; +var slice = ArrayBufferPrototype && uncurryThis(ArrayBufferPrototype.slice); + +module.exports = function (O) { + if (arrayBufferByteLength(O) !== 0) return false; + if (!slice) return false; + try { + slice(O, 0, 0); + return false; + } catch (error) { + return true; + } +}; + + +/***/ }), + +/***/ 5169: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var isDetached = __webpack_require__(3238); + +var $TypeError = TypeError; + +module.exports = function (it) { + if (isDetached(it)) throw new $TypeError('ArrayBuffer is detached'); + return it; +}; + + +/***/ }), + +/***/ 5636: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var globalThis = __webpack_require__(4576); +var uncurryThis = __webpack_require__(9504); +var uncurryThisAccessor = __webpack_require__(6706); +var toIndex = __webpack_require__(7696); +var notDetached = __webpack_require__(5169); +var arrayBufferByteLength = __webpack_require__(7394); +var detachTransferable = __webpack_require__(4483); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(1548); + +var structuredClone = globalThis.structuredClone; +var ArrayBuffer = globalThis.ArrayBuffer; +var DataView = globalThis.DataView; +var min = Math.min; +var ArrayBufferPrototype = ArrayBuffer.prototype; +var DataViewPrototype = DataView.prototype; +var slice = uncurryThis(ArrayBufferPrototype.slice); +var isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get'); +var maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get'); +var getInt8 = uncurryThis(DataViewPrototype.getInt8); +var setInt8 = uncurryThis(DataViewPrototype.setInt8); + +module.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) { + var byteLength = arrayBufferByteLength(arrayBuffer); + var newByteLength = newLength === undefined ? byteLength : toIndex(newLength); + var fixedLength = !isResizable || !isResizable(arrayBuffer); + var newBuffer; + notDetached(arrayBuffer); + if (PROPER_STRUCTURED_CLONE_TRANSFER) { + arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] }); + if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer; + } + if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) { + newBuffer = slice(arrayBuffer, 0, newByteLength); + } else { + var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined; + newBuffer = new ArrayBuffer(newByteLength, options); + var a = new DataView(arrayBuffer); + var b = new DataView(newBuffer); + var copyLength = min(newByteLength, byteLength); + for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i)); + } + if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer); + return newBuffer; +}; + + +/***/ }), + +/***/ 4644: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var NATIVE_ARRAY_BUFFER = __webpack_require__(7811); +var DESCRIPTORS = __webpack_require__(3724); +var globalThis = __webpack_require__(4576); +var isCallable = __webpack_require__(4901); +var isObject = __webpack_require__(34); +var hasOwn = __webpack_require__(9297); +var classof = __webpack_require__(6955); +var tryToString = __webpack_require__(6823); +var createNonEnumerableProperty = __webpack_require__(6699); +var defineBuiltIn = __webpack_require__(6840); +var defineBuiltInAccessor = __webpack_require__(2106); +var isPrototypeOf = __webpack_require__(1625); +var getPrototypeOf = __webpack_require__(2787); +var setPrototypeOf = __webpack_require__(2967); +var wellKnownSymbol = __webpack_require__(8227); +var uid = __webpack_require__(3392); +var InternalStateModule = __webpack_require__(1181); + +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var Int8Array = globalThis.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var Uint8ClampedArray = globalThis.Uint8ClampedArray; +var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype; +var TypedArray = Int8Array && getPrototypeOf(Int8Array); +var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype); +var ObjectPrototype = Object.prototype; +var TypeError = globalThis.TypeError; + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG'); +var TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor'; +// Fixing native typed arrays in Opera Presto crashes the browser, see #595 +var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(globalThis.opera) !== 'Opera'; +var TYPED_ARRAY_TAG_REQUIRED = false; +var NAME, Constructor, Prototype; + +var TypedArrayConstructorsList = { + Int8Array: 1, + Uint8Array: 1, + Uint8ClampedArray: 1, + Int16Array: 2, + Uint16Array: 2, + Int32Array: 4, + Uint32Array: 4, + Float32Array: 4, + Float64Array: 8 +}; + +var BigIntArrayConstructorsList = { + BigInt64Array: 8, + BigUint64Array: 8 +}; + +var isView = function isView(it) { + if (!isObject(it)) return false; + var klass = classof(it); + return klass === 'DataView' + || hasOwn(TypedArrayConstructorsList, klass) + || hasOwn(BigIntArrayConstructorsList, klass); +}; + +var getTypedArrayConstructor = function (it) { + var proto = getPrototypeOf(it); + if (!isObject(proto)) return; + var state = getInternalState(proto); + return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto); +}; + +var isTypedArray = function (it) { + if (!isObject(it)) return false; + var klass = classof(it); + return hasOwn(TypedArrayConstructorsList, klass) + || hasOwn(BigIntArrayConstructorsList, klass); +}; + +var aTypedArray = function (it) { + if (isTypedArray(it)) return it; + throw new TypeError('Target is not a typed array'); +}; + +var aTypedArrayConstructor = function (C) { + if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C; + throw new TypeError(tryToString(C) + ' is not a typed array constructor'); +}; + +var exportTypedArrayMethod = function (KEY, property, forced, options) { + if (!DESCRIPTORS) return; + if (forced) for (var ARRAY in TypedArrayConstructorsList) { + var TypedArrayConstructor = globalThis[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try { + delete TypedArrayConstructor.prototype[KEY]; + } catch (error) { + // old WebKit bug - some methods are non-configurable + try { + TypedArrayConstructor.prototype[KEY] = property; + } catch (error2) { /* empty */ } + } + } + if (!TypedArrayPrototype[KEY] || forced) { + defineBuiltIn(TypedArrayPrototype, KEY, forced ? property + : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options); + } +}; + +var exportTypedArrayStaticMethod = function (KEY, property, forced) { + var ARRAY, TypedArrayConstructor; + if (!DESCRIPTORS) return; + if (setPrototypeOf) { + if (forced) for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = globalThis[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try { + delete TypedArrayConstructor[KEY]; + } catch (error) { /* empty */ } + } + if (!TypedArray[KEY] || forced) { + // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable + try { + return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property); + } catch (error) { /* empty */ } + } else return; + } + for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = globalThis[ARRAY]; + if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) { + defineBuiltIn(TypedArrayConstructor, KEY, property); + } + } +}; + +for (NAME in TypedArrayConstructorsList) { + Constructor = globalThis[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; + else NATIVE_ARRAY_BUFFER_VIEWS = false; +} + +for (NAME in BigIntArrayConstructorsList) { + Constructor = globalThis[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; +} + +// WebKit bug - typed arrays constructors prototype is Object.prototype +if (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) { + // eslint-disable-next-line no-shadow -- safe + TypedArray = function TypedArray() { + throw new TypeError('Incorrect invocation'); + }; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (globalThis[NAME]) setPrototypeOf(globalThis[NAME], TypedArray); + } +} + +if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) { + TypedArrayPrototype = TypedArray.prototype; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (globalThis[NAME]) setPrototypeOf(globalThis[NAME].prototype, TypedArrayPrototype); + } +} + +// WebKit bug - one more object in Uint8ClampedArray prototype chain +if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) { + setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype); +} + +if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) { + TYPED_ARRAY_TAG_REQUIRED = true; + defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, { + configurable: true, + get: function () { + return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined; + } + }); + for (NAME in TypedArrayConstructorsList) if (globalThis[NAME]) { + createNonEnumerableProperty(globalThis[NAME], TYPED_ARRAY_TAG, NAME); + } +} + +module.exports = { + NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS, + TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG, + aTypedArray: aTypedArray, + aTypedArrayConstructor: aTypedArrayConstructor, + exportTypedArrayMethod: exportTypedArrayMethod, + exportTypedArrayStaticMethod: exportTypedArrayStaticMethod, + getTypedArrayConstructor: getTypedArrayConstructor, + isView: isView, + isTypedArray: isTypedArray, + TypedArray: TypedArray, + TypedArrayPrototype: TypedArrayPrototype +}; + + +/***/ }), + +/***/ 5370: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var lengthOfArrayLike = __webpack_require__(6198); + +module.exports = function (Constructor, list, $length) { + var index = 0; + var length = arguments.length > 2 ? $length : lengthOfArrayLike(list); + var result = new Constructor(length); + while (length > index) result[index] = list[index++]; + return result; +}; + + +/***/ }), + +/***/ 9617: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var toIndexedObject = __webpack_require__(5397); +var toAbsoluteIndex = __webpack_require__(5610); +var lengthOfArrayLike = __webpack_require__(6198); + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = lengthOfArrayLike(O); + if (length === 0) return !IS_INCLUDES && -1; + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el !== el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value !== value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +module.exports = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) +}; + + +/***/ }), + +/***/ 4527: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var DESCRIPTORS = __webpack_require__(3724); +var isArray = __webpack_require__(4376); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Safari < 13 does not throw an error in this case +var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () { + // makes no sense without proper strict mode support + if (this !== undefined) return true; + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).length = 1; + } catch (error) { + return error instanceof TypeError; + } +}(); + +module.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) { + if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) { + throw new $TypeError('Cannot set read only .length'); + } return O.length = length; +} : function (O, length) { + return O.length = length; +}; + + +/***/ }), + +/***/ 7628: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var lengthOfArrayLike = __webpack_require__(6198); + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed +module.exports = function (O, C) { + var len = lengthOfArrayLike(O); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = O[len - k - 1]; + return A; +}; + + +/***/ }), + +/***/ 9928: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var lengthOfArrayLike = __webpack_require__(6198); +var toIntegerOrInfinity = __webpack_require__(1291); + +var $RangeError = RangeError; + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with +module.exports = function (O, C, index, value) { + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex; + if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index'); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = k === actualIndex ? value : O[k]; + return A; +}; + + +/***/ }), + +/***/ 6319: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var anObject = __webpack_require__(8551); +var iteratorClose = __webpack_require__(9539); + +// call something on iterator step with safe closing on error +module.exports = function (iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } +}; + + +/***/ }), + +/***/ 2195: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var uncurryThis = __webpack_require__(9504); + +var toString = uncurryThis({}.toString); +var stringSlice = uncurryThis(''.slice); + +module.exports = function (it) { + return stringSlice(toString(it), 8, -1); +}; + + +/***/ }), + +/***/ 6955: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var TO_STRING_TAG_SUPPORT = __webpack_require__(2140); +var isCallable = __webpack_require__(4901); +var classofRaw = __webpack_require__(2195); +var wellKnownSymbol = __webpack_require__(8227); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var $Object = Object; + +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result; +}; + + +/***/ }), + +/***/ 7740: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var hasOwn = __webpack_require__(9297); +var ownKeys = __webpack_require__(5031); +var getOwnPropertyDescriptorModule = __webpack_require__(7347); +var definePropertyModule = __webpack_require__(4913); + +module.exports = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + + +/***/ }), + +/***/ 2211: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var fails = __webpack_require__(9039); + +module.exports = !fails(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; +}); + + +/***/ }), + +/***/ 2529: +/***/ ((module) => { + + +// `CreateIterResultObject` abstract operation +// https://tc39.es/ecma262/#sec-createiterresultobject +module.exports = function (value, done) { + return { value: value, done: done }; +}; + + +/***/ }), + +/***/ 6699: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var DESCRIPTORS = __webpack_require__(3724); +var definePropertyModule = __webpack_require__(4913); +var createPropertyDescriptor = __webpack_require__(6980); + +module.exports = DESCRIPTORS ? function (object, key, value) { + return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + + +/***/ }), + +/***/ 6980: +/***/ ((module) => { + + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + + +/***/ }), + +/***/ 4659: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var DESCRIPTORS = __webpack_require__(3724); +var definePropertyModule = __webpack_require__(4913); +var createPropertyDescriptor = __webpack_require__(6980); + +module.exports = function (object, key, value) { + if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value)); + else object[key] = value; +}; + + +/***/ }), + +/***/ 2106: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var makeBuiltIn = __webpack_require__(283); +var defineProperty = __webpack_require__(4913); + +module.exports = function (target, name, descriptor) { + if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true }); + if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true }); + return defineProperty.f(target, name, descriptor); +}; + + +/***/ }), + +/***/ 6840: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var isCallable = __webpack_require__(4901); +var definePropertyModule = __webpack_require__(4913); +var makeBuiltIn = __webpack_require__(283); +var defineGlobalProperty = __webpack_require__(9433); + +module.exports = function (O, key, value, options) { + if (!options) options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable(value)) makeBuiltIn(value, name, options); + if (options.global) { + if (simple) O[key] = value; + else defineGlobalProperty(key, value); + } else { + try { + if (!options.unsafe) delete O[key]; + else if (O[key]) simple = true; + } catch (error) { /* empty */ } + if (simple) O[key] = value; + else definePropertyModule.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } return O; +}; + + +/***/ }), + +/***/ 6279: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var defineBuiltIn = __webpack_require__(6840); + +module.exports = function (target, src, options) { + for (var key in src) defineBuiltIn(target, key, src[key], options); + return target; +}; + + +/***/ }), + +/***/ 9433: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var globalThis = __webpack_require__(4576); + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; + +module.exports = function (key, value) { + try { + defineProperty(globalThis, key, { value: value, configurable: true, writable: true }); + } catch (error) { + globalThis[key] = value; + } return value; +}; + + +/***/ }), + +/***/ 3724: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var fails = __webpack_require__(9039); + +// Detect IE8's incomplete defineProperty implementation +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; +}); + + +/***/ }), + +/***/ 4483: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var globalThis = __webpack_require__(4576); +var getBuiltInNodeModule = __webpack_require__(9429); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(1548); + +var structuredClone = globalThis.structuredClone; +var $ArrayBuffer = globalThis.ArrayBuffer; +var $MessageChannel = globalThis.MessageChannel; +var detach = false; +var WorkerThreads, channel, buffer, $detach; + +if (PROPER_STRUCTURED_CLONE_TRANSFER) { + detach = function (transferable) { + structuredClone(transferable, { transfer: [transferable] }); + }; +} else if ($ArrayBuffer) try { + if (!$MessageChannel) { + WorkerThreads = getBuiltInNodeModule('worker_threads'); + if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel; + } + + if ($MessageChannel) { + channel = new $MessageChannel(); + buffer = new $ArrayBuffer(2); + + $detach = function (transferable) { + channel.port1.postMessage(null, [transferable]); + }; + + if (buffer.byteLength === 2) { + $detach(buffer); + if (buffer.byteLength === 0) detach = $detach; + } + } +} catch (error) { /* empty */ } + +module.exports = detach; + + +/***/ }), + +/***/ 4055: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var globalThis = __webpack_require__(4576); +var isObject = __webpack_require__(34); + +var document = globalThis.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject(document) && isObject(document.createElement); + +module.exports = function (it) { + return EXISTS ? document.createElement(it) : {}; +}; + + +/***/ }), + +/***/ 6837: +/***/ ((module) => { + + +var $TypeError = TypeError; +var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 + +module.exports = function (it) { + if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded'); + return it; +}; + + +/***/ }), + +/***/ 8727: +/***/ ((module) => { + + +// IE8- don't enum bug keys +module.exports = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + + +/***/ }), + +/***/ 6193: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var ENVIRONMENT = __webpack_require__(4215); + +module.exports = ENVIRONMENT === 'NODE'; + + +/***/ }), + +/***/ 2839: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var globalThis = __webpack_require__(4576); + +var navigator = globalThis.navigator; +var userAgent = navigator && navigator.userAgent; + +module.exports = userAgent ? String(userAgent) : ''; + + +/***/ }), + +/***/ 9519: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var globalThis = __webpack_require__(4576); +var userAgent = __webpack_require__(2839); + +var process = globalThis.process; +var Deno = globalThis.Deno; +var versions = process && process.versions || Deno && Deno.version; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); +} + +// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` +// so check `userAgent` even if `.v8` exists, but 0 +if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = +match[1]; + } +} + +module.exports = version; + + +/***/ }), + +/***/ 4215: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +/* global Bun, Deno -- detection */ +var globalThis = __webpack_require__(4576); +var userAgent = __webpack_require__(2839); +var classof = __webpack_require__(2195); + +var userAgentStartsWith = function (string) { + return userAgent.slice(0, string.length) === string; +}; + +module.exports = (function () { + if (userAgentStartsWith('Bun/')) return 'BUN'; + if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE'; + if (userAgentStartsWith('Deno/')) return 'DENO'; + if (userAgentStartsWith('Node.js/')) return 'NODE'; + if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN'; + if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO'; + if (classof(globalThis.process) === 'process') return 'NODE'; + if (globalThis.window && globalThis.document) return 'BROWSER'; + return 'REST'; +})(); + + +/***/ }), + +/***/ 6518: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var globalThis = __webpack_require__(4576); +var getOwnPropertyDescriptor = (__webpack_require__(7347).f); +var createNonEnumerableProperty = __webpack_require__(6699); +var defineBuiltIn = __webpack_require__(6840); +var defineGlobalProperty = __webpack_require__(9433); +var copyConstructorProperties = __webpack_require__(7740); +var isForced = __webpack_require__(2796); + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key +*/ +module.exports = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = globalThis; + } else if (STATIC) { + target = globalThis[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = globalThis[TARGET] && globalThis[TARGET].prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + defineBuiltIn(target, key, sourceProperty, options); + } +}; + + +/***/ }), + +/***/ 9039: +/***/ ((module) => { + + +module.exports = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + + +/***/ }), + +/***/ 6080: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var uncurryThis = __webpack_require__(7476); +var aCallable = __webpack_require__(9306); +var NATIVE_BIND = __webpack_require__(616); + +var bind = uncurryThis(uncurryThis.bind); + +// optional / simple context binding +module.exports = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + + +/***/ }), + +/***/ 616: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var fails = __webpack_require__(9039); + +module.exports = !fails(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); +}); + + +/***/ }), + +/***/ 9565: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var NATIVE_BIND = __webpack_require__(616); + +var call = Function.prototype.call; + +module.exports = NATIVE_BIND ? call.bind(call) : function () { + return call.apply(call, arguments); +}; + + +/***/ }), + +/***/ 350: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var DESCRIPTORS = __webpack_require__(3724); +var hasOwn = __webpack_require__(9297); + +var FunctionPrototype = Function.prototype; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; + +var EXISTS = hasOwn(FunctionPrototype, 'name'); +// additional protection from minified / mangled / dropped function names +var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; +var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); + +module.exports = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE +}; + + +/***/ }), + +/***/ 6706: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var uncurryThis = __webpack_require__(9504); +var aCallable = __webpack_require__(9306); + +module.exports = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } +}; + + +/***/ }), + +/***/ 7476: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var classofRaw = __webpack_require__(2195); +var uncurryThis = __webpack_require__(9504); + +module.exports = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw(fn) === 'Function') return uncurryThis(fn); +}; + + +/***/ }), + +/***/ 9504: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var NATIVE_BIND = __webpack_require__(616); + +var FunctionPrototype = Function.prototype; +var call = FunctionPrototype.call; +var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call); + +module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { + return function () { + return call.apply(fn, arguments); + }; +}; + + +/***/ }), + +/***/ 9429: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var globalThis = __webpack_require__(4576); +var IS_NODE = __webpack_require__(6193); + +module.exports = function (name) { + if (IS_NODE) { + try { + return globalThis.process.getBuiltinModule(name); + } catch (error) { /* empty */ } + try { + // eslint-disable-next-line no-new-func -- safe + return Function('return require("' + name + '")')(); + } catch (error) { /* empty */ } + } +}; + + +/***/ }), + +/***/ 7751: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var globalThis = __webpack_require__(4576); +var isCallable = __webpack_require__(4901); + +var aFunction = function (argument) { + return isCallable(argument) ? argument : undefined; +}; + +module.exports = function (namespace, method) { + return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method]; +}; + + +/***/ }), + +/***/ 1767: +/***/ ((module) => { + + +// `GetIteratorDirect(obj)` abstract operation +// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect +module.exports = function (obj) { + return { + iterator: obj, + next: obj.next, + done: false + }; +}; + + +/***/ }), + +/***/ 851: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var classof = __webpack_require__(6955); +var getMethod = __webpack_require__(5966); +var isNullOrUndefined = __webpack_require__(4117); +var Iterators = __webpack_require__(6269); +var wellKnownSymbol = __webpack_require__(8227); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = function (it) { + if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR) + || getMethod(it, '@@iterator') + || Iterators[classof(it)]; +}; + + +/***/ }), + +/***/ 81: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var call = __webpack_require__(9565); +var aCallable = __webpack_require__(9306); +var anObject = __webpack_require__(8551); +var tryToString = __webpack_require__(6823); +var getIteratorMethod = __webpack_require__(851); + +var $TypeError = TypeError; + +module.exports = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; + if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument)); + throw new $TypeError(tryToString(argument) + ' is not iterable'); +}; + + +/***/ }), + +/***/ 5966: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var aCallable = __webpack_require__(9306); +var isNullOrUndefined = __webpack_require__(4117); + +// `GetMethod` abstract operation +// https://tc39.es/ecma262/#sec-getmethod +module.exports = function (V, P) { + var func = V[P]; + return isNullOrUndefined(func) ? undefined : aCallable(func); +}; + + +/***/ }), + +/***/ 3789: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var aCallable = __webpack_require__(9306); +var anObject = __webpack_require__(8551); +var call = __webpack_require__(9565); +var toIntegerOrInfinity = __webpack_require__(1291); +var getIteratorDirect = __webpack_require__(1767); + +var INVALID_SIZE = 'Invalid size'; +var $RangeError = RangeError; +var $TypeError = TypeError; +var max = Math.max; + +var SetRecord = function (set, intSize) { + this.set = set; + this.size = max(intSize, 0); + this.has = aCallable(set.has); + this.keys = aCallable(set.keys); +}; + +SetRecord.prototype = { + getIterator: function () { + return getIteratorDirect(anObject(call(this.keys, this.set))); + }, + includes: function (it) { + return call(this.has, this.set, it); + } +}; + +// `GetSetRecord` abstract operation +// https://tc39.es/proposal-set-methods/#sec-getsetrecord +module.exports = function (obj) { + anObject(obj); + var numSize = +obj.size; + // NOTE: If size is undefined, then numSize will be NaN + // eslint-disable-next-line no-self-compare -- NaN check + if (numSize !== numSize) throw new $TypeError(INVALID_SIZE); + var intSize = toIntegerOrInfinity(numSize); + if (intSize < 0) throw new $RangeError(INVALID_SIZE); + return new SetRecord(obj, intSize); +}; + + +/***/ }), + +/***/ 4576: +/***/ (function(module) { + + +var check = function (it) { + return it && it.Math === Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +module.exports = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof global == 'object' && global) || + check(typeof this == 'object' && this) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + +/***/ }), + +/***/ 9297: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var uncurryThis = __webpack_require__(9504); +var toObject = __webpack_require__(8981); + +var hasOwnProperty = uncurryThis({}.hasOwnProperty); + +// `HasOwnProperty` abstract operation +// https://tc39.es/ecma262/#sec-hasownproperty +// eslint-disable-next-line es/no-object-hasown -- safe +module.exports = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject(it), key); +}; + + +/***/ }), + +/***/ 421: +/***/ ((module) => { + + +module.exports = {}; + + +/***/ }), + +/***/ 397: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var getBuiltIn = __webpack_require__(7751); + +module.exports = getBuiltIn('document', 'documentElement'); + + +/***/ }), + +/***/ 5917: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var DESCRIPTORS = __webpack_require__(3724); +var fails = __webpack_require__(9039); +var createElement = __webpack_require__(4055); + +// Thanks to IE8 for its funny defineProperty +module.exports = !DESCRIPTORS && !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a !== 7; +}); + + +/***/ }), + +/***/ 7055: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var uncurryThis = __webpack_require__(9504); +var fails = __webpack_require__(9039); +var classof = __webpack_require__(2195); + +var $Object = Object; +var split = uncurryThis(''.split); + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +module.exports = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof(it) === 'String' ? split(it, '') : $Object(it); +} : $Object; + + +/***/ }), + +/***/ 3706: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var uncurryThis = __webpack_require__(9504); +var isCallable = __webpack_require__(4901); +var store = __webpack_require__(7629); + +var functionToString = uncurryThis(Function.toString); + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (!isCallable(store.inspectSource)) { + store.inspectSource = function (it) { + return functionToString(it); + }; +} + +module.exports = store.inspectSource; + + +/***/ }), + +/***/ 1181: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var NATIVE_WEAK_MAP = __webpack_require__(8622); +var globalThis = __webpack_require__(4576); +var isObject = __webpack_require__(34); +var createNonEnumerableProperty = __webpack_require__(6699); +var hasOwn = __webpack_require__(9297); +var shared = __webpack_require__(7629); +var sharedKey = __webpack_require__(6119); +var hiddenKeys = __webpack_require__(421); + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var TypeError = globalThis.TypeError; +var WeakMap = globalThis.WeakMap; +var set, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw new TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store.get = store.get; + store.has = store.has; + store.set = store.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set = function (it, metadata) { + if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + set = function (it, metadata) { + if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn(it, STATE); + }; +} + +module.exports = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + + +/***/ }), + +/***/ 4209: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var wellKnownSymbol = __webpack_require__(8227); +var Iterators = __webpack_require__(6269); + +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayPrototype = Array.prototype; + +// check on default Array iterator +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); +}; + + +/***/ }), + +/***/ 4376: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var classof = __webpack_require__(2195); + +// `IsArray` abstract operation +// https://tc39.es/ecma262/#sec-isarray +// eslint-disable-next-line es/no-array-isarray -- safe +module.exports = Array.isArray || function isArray(argument) { + return classof(argument) === 'Array'; +}; + + +/***/ }), + +/***/ 1108: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var classof = __webpack_require__(6955); + +module.exports = function (it) { + var klass = classof(it); + return klass === 'BigInt64Array' || klass === 'BigUint64Array'; +}; + + +/***/ }), + +/***/ 4901: +/***/ ((module) => { + + +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot +var documentAll = typeof document == 'object' && document.all; + +// `IsCallable` abstract operation +// https://tc39.es/ecma262/#sec-iscallable +// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing +module.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { + return typeof argument == 'function' || argument === documentAll; +} : function (argument) { + return typeof argument == 'function'; +}; + + +/***/ }), + +/***/ 2796: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var fails = __webpack_require__(9039); +var isCallable = __webpack_require__(4901); + +var replacement = /#|\.prototype\./; + +var isForced = function (feature, detection) { + var value = data[normalize(feature)]; + return value === POLYFILL ? true + : value === NATIVE ? false + : isCallable(detection) ? fails(detection) + : !!detection; +}; + +var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced.data = {}; +var NATIVE = isForced.NATIVE = 'N'; +var POLYFILL = isForced.POLYFILL = 'P'; + +module.exports = isForced; + + +/***/ }), + +/***/ 4117: +/***/ ((module) => { + + +// we can't use just `it == null` since of `document.all` special case +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec +module.exports = function (it) { + return it === null || it === undefined; +}; + + +/***/ }), + +/***/ 34: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var isCallable = __webpack_require__(4901); + +module.exports = function (it) { + return typeof it == 'object' ? it !== null : isCallable(it); +}; + + +/***/ }), + +/***/ 3925: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var isObject = __webpack_require__(34); + +module.exports = function (argument) { + return isObject(argument) || argument === null; +}; + + +/***/ }), + +/***/ 6395: +/***/ ((module) => { + + +module.exports = false; + + +/***/ }), + +/***/ 757: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var getBuiltIn = __webpack_require__(7751); +var isCallable = __webpack_require__(4901); +var isPrototypeOf = __webpack_require__(1625); +var USE_SYMBOL_AS_UID = __webpack_require__(7040); + +var $Object = Object; + +module.exports = USE_SYMBOL_AS_UID ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + var $Symbol = getBuiltIn('Symbol'); + return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it)); +}; + + +/***/ }), + +/***/ 507: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var call = __webpack_require__(9565); + +module.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) { + var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator; + var next = record.next; + var step, result; + while (!(step = call(next, iterator)).done) { + result = fn(step.value); + if (result !== undefined) return result; + } +}; + + +/***/ }), + +/***/ 2652: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var bind = __webpack_require__(6080); +var call = __webpack_require__(9565); +var anObject = __webpack_require__(8551); +var tryToString = __webpack_require__(6823); +var isArrayIteratorMethod = __webpack_require__(4209); +var lengthOfArrayLike = __webpack_require__(6198); +var isPrototypeOf = __webpack_require__(1625); +var getIterator = __webpack_require__(81); +var getIteratorMethod = __webpack_require__(851); +var iteratorClose = __webpack_require__(9539); + +var $TypeError = TypeError; + +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +var ResultPrototype = Result.prototype; + +module.exports = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); +}; + + +/***/ }), + +/***/ 9539: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var call = __webpack_require__(9565); +var anObject = __webpack_require__(8551); +var getMethod = __webpack_require__(5966); + +module.exports = function (iterator, kind, value) { + var innerResult, innerError; + anObject(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; + } + innerResult = call(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject(innerResult); + return value; +}; + + +/***/ }), + +/***/ 9462: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var call = __webpack_require__(9565); +var create = __webpack_require__(2360); +var createNonEnumerableProperty = __webpack_require__(6699); +var defineBuiltIns = __webpack_require__(6279); +var wellKnownSymbol = __webpack_require__(8227); +var InternalStateModule = __webpack_require__(1181); +var getMethod = __webpack_require__(5966); +var IteratorPrototype = (__webpack_require__(7657).IteratorPrototype); +var createIterResultObject = __webpack_require__(2529); +var iteratorClose = __webpack_require__(9539); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var ITERATOR_HELPER = 'IteratorHelper'; +var WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator'; +var setInternalState = InternalStateModule.set; + +var createIteratorProxyPrototype = function (IS_ITERATOR) { + var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER); + + return defineBuiltIns(create(IteratorPrototype), { + next: function next() { + var state = getInternalState(this); + // for simplification: + // for `%WrapForValidIteratorPrototype%.next` our `nextHandler` returns `IterResultObject` + // for `%IteratorHelperPrototype%.next` - just a value + if (IS_ITERATOR) return state.nextHandler(); + try { + var result = state.done ? undefined : state.nextHandler(); + return createIterResultObject(result, state.done); + } catch (error) { + state.done = true; + throw error; + } + }, + 'return': function () { + var state = getInternalState(this); + var iterator = state.iterator; + state.done = true; + if (IS_ITERATOR) { + var returnMethod = getMethod(iterator, 'return'); + return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true); + } + if (state.inner) try { + iteratorClose(state.inner.iterator, 'normal'); + } catch (error) { + return iteratorClose(iterator, 'throw', error); + } + if (iterator) iteratorClose(iterator, 'normal'); + return createIterResultObject(undefined, true); + } + }); +}; + +var WrapForValidIteratorPrototype = createIteratorProxyPrototype(true); +var IteratorHelperPrototype = createIteratorProxyPrototype(false); + +createNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper'); + +module.exports = function (nextHandler, IS_ITERATOR) { + var IteratorProxy = function Iterator(record, state) { + if (state) { + state.iterator = record.iterator; + state.next = record.next; + } else state = record; + state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER; + state.nextHandler = nextHandler; + state.counter = 0; + state.done = false; + setInternalState(this, state); + }; + + IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype; + + return IteratorProxy; +}; + + +/***/ }), + +/***/ 713: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var call = __webpack_require__(9565); +var aCallable = __webpack_require__(9306); +var anObject = __webpack_require__(8551); +var getIteratorDirect = __webpack_require__(1767); +var createIteratorProxy = __webpack_require__(9462); +var callWithSafeIterationClosing = __webpack_require__(6319); + +var IteratorProxy = createIteratorProxy(function () { + var iterator = this.iterator; + var result = anObject(call(this.next, iterator)); + var done = this.done = !!result.done; + if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true); +}); + +// `Iterator.prototype.map` method +// https://github.com/tc39/proposal-iterator-helpers +module.exports = function map(mapper) { + anObject(this); + aCallable(mapper); + return new IteratorProxy(getIteratorDirect(this), { + mapper: mapper + }); +}; + + +/***/ }), + +/***/ 7657: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var fails = __webpack_require__(9039); +var isCallable = __webpack_require__(4901); +var isObject = __webpack_require__(34); +var create = __webpack_require__(2360); +var getPrototypeOf = __webpack_require__(2787); +var defineBuiltIn = __webpack_require__(6840); +var wellKnownSymbol = __webpack_require__(8227); +var IS_PURE = __webpack_require__(6395); + +var ITERATOR = wellKnownSymbol('iterator'); +var BUGGY_SAFARI_ITERATORS = false; + +// `%IteratorPrototype%` object +// https://tc39.es/ecma262/#sec-%iteratorprototype%-object +var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; + +/* eslint-disable es/no-array-prototype-keys -- safe */ +if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } +} + +var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype[ITERATOR].call(test) !== test; +}); + +if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; +else if (IS_PURE) IteratorPrototype = create(IteratorPrototype); + +// `%IteratorPrototype%[@@iterator]()` method +// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator +if (!isCallable(IteratorPrototype[ITERATOR])) { + defineBuiltIn(IteratorPrototype, ITERATOR, function () { + return this; + }); +} + +module.exports = { + IteratorPrototype: IteratorPrototype, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS +}; + + +/***/ }), + +/***/ 6269: +/***/ ((module) => { + + +module.exports = {}; + + +/***/ }), + +/***/ 6198: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var toLength = __webpack_require__(8014); + +// `LengthOfArrayLike` abstract operation +// https://tc39.es/ecma262/#sec-lengthofarraylike +module.exports = function (obj) { + return toLength(obj.length); +}; + + +/***/ }), + +/***/ 283: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var uncurryThis = __webpack_require__(9504); +var fails = __webpack_require__(9039); +var isCallable = __webpack_require__(4901); +var hasOwn = __webpack_require__(9297); +var DESCRIPTORS = __webpack_require__(3724); +var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(350).CONFIGURABLE); +var inspectSource = __webpack_require__(3706); +var InternalStateModule = __webpack_require__(1181); + +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var $String = String; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; +var stringSlice = uncurryThis(''.slice); +var replace = uncurryThis(''.replace); +var join = uncurryThis([].join); + +var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () { + return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8; +}); + +var TEMPLATE = String(String).split('String'); + +var makeBuiltIn = module.exports = function (value, name, options) { + if (stringSlice($String(name), 0, 7) === 'Symbol(') { + name = '[' + replace($String(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']'; + } + if (options && options.getter) name = 'get ' + name; + if (options && options.setter) name = 'set ' + name; + if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true }); + else value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) { + defineProperty(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn(options, 'constructor') && options.constructor) { + if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false }); + // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable + } else if (value.prototype) value.prototype = undefined; + } catch (error) { /* empty */ } + var state = enforceInternalState(value); + if (!hasOwn(state, 'source')) { + state.source = join(TEMPLATE, typeof name == 'string' ? name : ''); + } return value; +}; + +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +// eslint-disable-next-line no-extend-native -- required +Function.prototype.toString = makeBuiltIn(function toString() { + return isCallable(this) && getInternalState(this).source || inspectSource(this); +}, 'toString'); + + +/***/ }), + +/***/ 741: +/***/ ((module) => { + + +var ceil = Math.ceil; +var floor = Math.floor; + +// `Math.trunc` method +// https://tc39.es/ecma262/#sec-math.trunc +// eslint-disable-next-line es/no-math-trunc -- safe +module.exports = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); +}; + + +/***/ }), + +/***/ 6043: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var aCallable = __webpack_require__(9306); + +var $TypeError = TypeError; + +var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable(resolve); + this.reject = aCallable(reject); +}; + +// `NewPromiseCapability` abstract operation +// https://tc39.es/ecma262/#sec-newpromisecapability +module.exports.f = function (C) { + return new PromiseCapability(C); +}; + + +/***/ }), + +/***/ 2360: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +/* global ActiveXObject -- old IE, WSH */ +var anObject = __webpack_require__(8551); +var definePropertiesModule = __webpack_require__(6801); +var enumBugKeys = __webpack_require__(8727); +var hiddenKeys = __webpack_require__(421); +var html = __webpack_require__(397); +var documentCreateElement = __webpack_require__(4055); +var sharedKey = __webpack_require__(6119); + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO = sharedKey('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + // eslint-disable-next-line no-useless-assignment -- avoid memory leak + activeXDocument = null; + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys[IE_PROTO] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +// eslint-disable-next-line es/no-object-create -- safe +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); +}; + + +/***/ }), + +/***/ 6801: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +var DESCRIPTORS = __webpack_require__(3724); +var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(8686); +var definePropertyModule = __webpack_require__(4913); +var anObject = __webpack_require__(8551); +var toIndexedObject = __webpack_require__(5397); +var objectKeys = __webpack_require__(1072); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var props = toIndexedObject(Properties); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); + return O; +}; + + +/***/ }), + +/***/ 4913: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +var DESCRIPTORS = __webpack_require__(3724); +var IE8_DOM_DEFINE = __webpack_require__(5917); +var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(8686); +var anObject = __webpack_require__(8551); +var toPropertyKey = __webpack_require__(6969); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var ENUMERABLE = 'enumerable'; +var CONFIGURABLE = 'configurable'; +var WRITABLE = 'writable'; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty(O, P, Attributes); +} : $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + + +/***/ }), + +/***/ 7347: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +var DESCRIPTORS = __webpack_require__(3724); +var call = __webpack_require__(9565); +var propertyIsEnumerableModule = __webpack_require__(8773); +var createPropertyDescriptor = __webpack_require__(6980); +var toIndexedObject = __webpack_require__(5397); +var toPropertyKey = __webpack_require__(6969); +var hasOwn = __webpack_require__(9297); +var IE8_DOM_DEFINE = __webpack_require__(5917); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPropertyKey(P); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); +}; + + +/***/ }), + +/***/ 8480: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + +var internalObjectKeys = __webpack_require__(1828); +var enumBugKeys = __webpack_require__(8727); + +var hiddenKeys = enumBugKeys.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); +}; + + +/***/ }), + +/***/ 3717: +/***/ ((__unused_webpack_module, exports) => { + + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +exports.f = Object.getOwnPropertySymbols; + + +/***/ }), + +/***/ 2787: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var hasOwn = __webpack_require__(9297); +var isCallable = __webpack_require__(4901); +var toObject = __webpack_require__(8981); +var sharedKey = __webpack_require__(6119); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(2211); + +var IE_PROTO = sharedKey('IE_PROTO'); +var $Object = Object; +var ObjectPrototype = $Object.prototype; + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +// eslint-disable-next-line es/no-object-getprototypeof -- safe +module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject(O); + if (hasOwn(object, IE_PROTO)) return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object ? ObjectPrototype : null; +}; + + +/***/ }), + +/***/ 1625: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var uncurryThis = __webpack_require__(9504); + +module.exports = uncurryThis({}.isPrototypeOf); + + +/***/ }), + +/***/ 1828: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var uncurryThis = __webpack_require__(9504); +var hasOwn = __webpack_require__(9297); +var toIndexedObject = __webpack_require__(5397); +var indexOf = (__webpack_require__(9617).indexOf); +var hiddenKeys = __webpack_require__(421); + +var push = uncurryThis([].push); + +module.exports = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn(O, key = names[i++])) { + ~indexOf(result, key) || push(result, key); + } + return result; +}; + + +/***/ }), + +/***/ 1072: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var internalObjectKeys = __webpack_require__(1828); +var enumBugKeys = __webpack_require__(8727); + +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +// eslint-disable-next-line es/no-object-keys -- safe +module.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); +}; + + +/***/ }), + +/***/ 8773: +/***/ ((__unused_webpack_module, exports) => { + + +var $propertyIsEnumerable = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable; + + +/***/ }), + +/***/ 2967: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +/* eslint-disable no-proto -- safe */ +var uncurryThisAccessor = __webpack_require__(6706); +var isObject = __webpack_require__(34); +var requireObjectCoercible = __webpack_require__(7750); +var aPossiblePrototype = __webpack_require__(3506); + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +// eslint-disable-next-line es/no-object-setprototypeof -- safe +module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + requireObjectCoercible(O); + aPossiblePrototype(proto); + if (!isObject(O)) return O; + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); + + +/***/ }), + +/***/ 4270: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var call = __webpack_require__(9565); +var isCallable = __webpack_require__(4901); +var isObject = __webpack_require__(34); + +var $TypeError = TypeError; + +// `OrdinaryToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-ordinarytoprimitive +module.exports = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; + if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; + throw new $TypeError("Can't convert object to primitive value"); +}; + + +/***/ }), + +/***/ 5031: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var getBuiltIn = __webpack_require__(7751); +var uncurryThis = __webpack_require__(9504); +var getOwnPropertyNamesModule = __webpack_require__(8480); +var getOwnPropertySymbolsModule = __webpack_require__(3717); +var anObject = __webpack_require__(8551); + +var concat = uncurryThis([].concat); + +// all object keys, includes non-enumerable and symbols +module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; +}; + + +/***/ }), + +/***/ 8235: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var uncurryThis = __webpack_require__(9504); +var hasOwn = __webpack_require__(9297); + +var $SyntaxError = SyntaxError; +var $parseInt = parseInt; +var fromCharCode = String.fromCharCode; +var at = uncurryThis(''.charAt); +var slice = uncurryThis(''.slice); +var exec = uncurryThis(/./.exec); + +var codePoints = { + '\\"': '"', + '\\\\': '\\', + '\\/': '/', + '\\b': '\b', + '\\f': '\f', + '\\n': '\n', + '\\r': '\r', + '\\t': '\t' +}; + +var IS_4_HEX_DIGITS = /^[\da-f]{4}$/i; +// eslint-disable-next-line regexp/no-control-character -- safe +var IS_C0_CONTROL_CODE = /^[\u0000-\u001F]$/; + +module.exports = function (source, i) { + var unterminated = true; + var value = ''; + while (i < source.length) { + var chr = at(source, i); + if (chr === '\\') { + var twoChars = slice(source, i, i + 2); + if (hasOwn(codePoints, twoChars)) { + value += codePoints[twoChars]; + i += 2; + } else if (twoChars === '\\u') { + i += 2; + var fourHexDigits = slice(source, i, i + 4); + if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw new $SyntaxError('Bad Unicode escape at: ' + i); + value += fromCharCode($parseInt(fourHexDigits, 16)); + i += 4; + } else throw new $SyntaxError('Unknown escape sequence: "' + twoChars + '"'); + } else if (chr === '"') { + unterminated = false; + i++; + break; + } else { + if (exec(IS_C0_CONTROL_CODE, chr)) throw new $SyntaxError('Bad control character in string literal at: ' + i); + value += chr; + i++; + } + } + if (unterminated) throw new $SyntaxError('Unterminated string at: ' + i); + return { value: value, end: i }; +}; + + +/***/ }), + +/***/ 7750: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var isNullOrUndefined = __webpack_require__(4117); + +var $TypeError = TypeError; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +module.exports = function (it) { + if (isNullOrUndefined(it)) throw new $TypeError("Can't call method on " + it); + return it; +}; + + +/***/ }), + +/***/ 9286: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var SetHelpers = __webpack_require__(4402); +var iterate = __webpack_require__(8469); + +var Set = SetHelpers.Set; +var add = SetHelpers.add; + +module.exports = function (set) { + var result = new Set(); + iterate(set, function (it) { + add(result, it); + }); + return result; +}; + + +/***/ }), + +/***/ 3440: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var aSet = __webpack_require__(7080); +var SetHelpers = __webpack_require__(4402); +var clone = __webpack_require__(9286); +var size = __webpack_require__(5170); +var getSetRecord = __webpack_require__(3789); +var iterateSet = __webpack_require__(8469); +var iterateSimple = __webpack_require__(507); + +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +module.exports = function difference(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = clone(O); + if (size(O) <= otherRec.size) iterateSet(O, function (e) { + if (otherRec.includes(e)) remove(result, e); + }); + else iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, e)) remove(result, e); + }); + return result; +}; + + +/***/ }), + +/***/ 4402: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var uncurryThis = __webpack_require__(9504); + +// eslint-disable-next-line es/no-set -- safe +var SetPrototype = Set.prototype; + +module.exports = { + // eslint-disable-next-line es/no-set -- safe + Set: Set, + add: uncurryThis(SetPrototype.add), + has: uncurryThis(SetPrototype.has), + remove: uncurryThis(SetPrototype['delete']), + proto: SetPrototype +}; + + +/***/ }), + +/***/ 8750: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var aSet = __webpack_require__(7080); +var SetHelpers = __webpack_require__(4402); +var size = __webpack_require__(5170); +var getSetRecord = __webpack_require__(3789); +var iterateSet = __webpack_require__(8469); +var iterateSimple = __webpack_require__(507); + +var Set = SetHelpers.Set; +var add = SetHelpers.add; +var has = SetHelpers.has; + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +module.exports = function intersection(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = new Set(); + + if (size(O) > otherRec.size) { + iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, e)) add(result, e); + }); + } else { + iterateSet(O, function (e) { + if (otherRec.includes(e)) add(result, e); + }); + } + + return result; +}; + + +/***/ }), + +/***/ 4449: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var aSet = __webpack_require__(7080); +var has = (__webpack_require__(4402).has); +var size = __webpack_require__(5170); +var getSetRecord = __webpack_require__(3789); +var iterateSet = __webpack_require__(8469); +var iterateSimple = __webpack_require__(507); +var iteratorClose = __webpack_require__(9539); + +// `Set.prototype.isDisjointFrom` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom +module.exports = function isDisjointFrom(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) <= otherRec.size) return iterateSet(O, function (e) { + if (otherRec.includes(e)) return false; + }, true) !== false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; +}; + + +/***/ }), + +/***/ 3838: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var aSet = __webpack_require__(7080); +var size = __webpack_require__(5170); +var iterate = __webpack_require__(8469); +var getSetRecord = __webpack_require__(3789); + +// `Set.prototype.isSubsetOf` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf +module.exports = function isSubsetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) > otherRec.size) return false; + return iterate(O, function (e) { + if (!otherRec.includes(e)) return false; + }, true) !== false; +}; + + +/***/ }), + +/***/ 8527: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var aSet = __webpack_require__(7080); +var has = (__webpack_require__(4402).has); +var size = __webpack_require__(5170); +var getSetRecord = __webpack_require__(3789); +var iterateSimple = __webpack_require__(507); +var iteratorClose = __webpack_require__(9539); + +// `Set.prototype.isSupersetOf` method +// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf +module.exports = function isSupersetOf(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + if (size(O) < otherRec.size) return false; + var iterator = otherRec.getIterator(); + return iterateSimple(iterator, function (e) { + if (!has(O, e)) return iteratorClose(iterator, 'normal', false); + }) !== false; +}; + + +/***/ }), + +/***/ 8469: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var uncurryThis = __webpack_require__(9504); +var iterateSimple = __webpack_require__(507); +var SetHelpers = __webpack_require__(4402); + +var Set = SetHelpers.Set; +var SetPrototype = SetHelpers.proto; +var forEach = uncurryThis(SetPrototype.forEach); +var keys = uncurryThis(SetPrototype.keys); +var next = keys(new Set()).next; + +module.exports = function (set, fn, interruptible) { + return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn); +}; + + +/***/ }), + +/***/ 4916: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var getBuiltIn = __webpack_require__(7751); + +var createSetLike = function (size) { + return { + size: size, + has: function () { + return false; + }, + keys: function () { + return { + next: function () { + return { done: true }; + } + }; + } + }; +}; + +module.exports = function (name) { + var Set = getBuiltIn('Set'); + try { + new Set()[name](createSetLike(0)); + try { + // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it + // https://github.com/tc39/proposal-set-methods/pull/88 + new Set()[name](createSetLike(-1)); + return false; + } catch (error2) { + return true; + } + } catch (error) { + return false; + } +}; + + +/***/ }), + +/***/ 5170: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var uncurryThisAccessor = __webpack_require__(6706); +var SetHelpers = __webpack_require__(4402); + +module.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) { + return set.size; +}; + + +/***/ }), + +/***/ 3650: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var aSet = __webpack_require__(7080); +var SetHelpers = __webpack_require__(4402); +var clone = __webpack_require__(9286); +var getSetRecord = __webpack_require__(3789); +var iterateSimple = __webpack_require__(507); + +var add = SetHelpers.add; +var has = SetHelpers.has; +var remove = SetHelpers.remove; + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +module.exports = function symmetricDifference(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (e) { + if (has(O, e)) remove(result, e); + else add(result, e); + }); + return result; +}; + + +/***/ }), + +/***/ 4204: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var aSet = __webpack_require__(7080); +var add = (__webpack_require__(4402).add); +var clone = __webpack_require__(9286); +var getSetRecord = __webpack_require__(3789); +var iterateSimple = __webpack_require__(507); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +module.exports = function union(other) { + var O = aSet(this); + var keysIter = getSetRecord(other).getIterator(); + var result = clone(O); + iterateSimple(keysIter, function (it) { + add(result, it); + }); + return result; +}; + + +/***/ }), + +/***/ 6119: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var shared = __webpack_require__(5745); +var uid = __webpack_require__(3392); + +var keys = shared('keys'); + +module.exports = function (key) { + return keys[key] || (keys[key] = uid(key)); +}; + + +/***/ }), + +/***/ 7629: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var IS_PURE = __webpack_require__(6395); +var globalThis = __webpack_require__(4576); +var defineGlobalProperty = __webpack_require__(9433); + +var SHARED = '__core-js_shared__'; +var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {}); + +(store.versions || (store.versions = [])).push({ + version: '3.39.0', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.39.0/LICENSE', + source: 'https://github.com/zloirock/core-js' +}); + + +/***/ }), + +/***/ 5745: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var store = __webpack_require__(7629); + +module.exports = function (key, value) { + return store[key] || (store[key] = value || {}); +}; + + +/***/ }), + +/***/ 1548: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var globalThis = __webpack_require__(4576); +var fails = __webpack_require__(9039); +var V8 = __webpack_require__(9519); +var ENVIRONMENT = __webpack_require__(4215); + +var structuredClone = globalThis.structuredClone; + +module.exports = !!structuredClone && !fails(function () { + // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false; + var buffer = new ArrayBuffer(8); + var clone = structuredClone(buffer, { transfer: [buffer] }); + return buffer.byteLength !== 0 || clone.byteLength !== 8; +}); + + +/***/ }), + +/***/ 4495: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +/* eslint-disable es/no-symbol -- required for testing */ +var V8_VERSION = __webpack_require__(9519); +var fails = __webpack_require__(9039); +var globalThis = __webpack_require__(4576); + +var $String = globalThis.String; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +module.exports = !!Object.getOwnPropertySymbols && !fails(function () { + var symbol = Symbol('symbol detection'); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION && V8_VERSION < 41; +}); + + +/***/ }), + +/***/ 5610: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var toIntegerOrInfinity = __webpack_require__(1291); + +var max = Math.max; +var min = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +module.exports = function (index, length) { + var integer = toIntegerOrInfinity(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); +}; + + +/***/ }), + +/***/ 5854: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var toPrimitive = __webpack_require__(2777); + +var $TypeError = TypeError; + +// `ToBigInt` abstract operation +// https://tc39.es/ecma262/#sec-tobigint +module.exports = function (argument) { + var prim = toPrimitive(argument, 'number'); + if (typeof prim == 'number') throw new $TypeError("Can't convert number to bigint"); + // eslint-disable-next-line es/no-bigint -- safe + return BigInt(prim); +}; + + +/***/ }), + +/***/ 7696: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var toIntegerOrInfinity = __webpack_require__(1291); +var toLength = __webpack_require__(8014); + +var $RangeError = RangeError; + +// `ToIndex` abstract operation +// https://tc39.es/ecma262/#sec-toindex +module.exports = function (it) { + if (it === undefined) return 0; + var number = toIntegerOrInfinity(it); + var length = toLength(number); + if (number !== length) throw new $RangeError('Wrong length or index'); + return length; +}; + + +/***/ }), + +/***/ 5397: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +// toObject with fallback for non-array-like ES3 strings +var IndexedObject = __webpack_require__(7055); +var requireObjectCoercible = __webpack_require__(7750); + +module.exports = function (it) { + return IndexedObject(requireObjectCoercible(it)); +}; + + +/***/ }), + +/***/ 1291: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var trunc = __webpack_require__(741); + +// `ToIntegerOrInfinity` abstract operation +// https://tc39.es/ecma262/#sec-tointegerorinfinity +module.exports = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); +}; + + +/***/ }), + +/***/ 8014: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var toIntegerOrInfinity = __webpack_require__(1291); + +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +module.exports = function (argument) { + var len = toIntegerOrInfinity(argument); + return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + + +/***/ }), + +/***/ 8981: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var requireObjectCoercible = __webpack_require__(7750); + +var $Object = Object; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +module.exports = function (argument) { + return $Object(requireObjectCoercible(argument)); +}; + + +/***/ }), + +/***/ 2777: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var call = __webpack_require__(9565); +var isObject = __webpack_require__(34); +var isSymbol = __webpack_require__(757); +var getMethod = __webpack_require__(5966); +var ordinaryToPrimitive = __webpack_require__(4270); +var wellKnownSymbol = __webpack_require__(8227); + +var $TypeError = TypeError; +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); + +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +module.exports = function (input, pref) { + if (!isObject(input) || isSymbol(input)) return input; + var exoticToPrim = getMethod(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call(exoticToPrim, input, pref); + if (!isObject(result) || isSymbol(result)) return result; + throw new $TypeError("Can't convert object to primitive value"); + } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); +}; + + +/***/ }), + +/***/ 6969: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var toPrimitive = __webpack_require__(2777); +var isSymbol = __webpack_require__(757); + +// `ToPropertyKey` abstract operation +// https://tc39.es/ecma262/#sec-topropertykey +module.exports = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; +}; + + +/***/ }), + +/***/ 2140: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var wellKnownSymbol = __webpack_require__(8227); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var test = {}; + +test[TO_STRING_TAG] = 'z'; + +module.exports = String(test) === '[object z]'; + + +/***/ }), + +/***/ 655: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var classof = __webpack_require__(6955); + +var $String = String; + +module.exports = function (argument) { + if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); + return $String(argument); +}; + + +/***/ }), + +/***/ 6823: +/***/ ((module) => { + + +var $String = String; + +module.exports = function (argument) { + try { + return $String(argument); + } catch (error) { + return 'Object'; + } +}; + + +/***/ }), + +/***/ 3392: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var uncurryThis = __webpack_require__(9504); + +var id = 0; +var postfix = Math.random(); +var toString = uncurryThis(1.0.toString); + +module.exports = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); +}; + + +/***/ }), + +/***/ 7040: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +/* eslint-disable es/no-symbol -- required for testing */ +var NATIVE_SYMBOL = __webpack_require__(4495); + +module.exports = NATIVE_SYMBOL && + !Symbol.sham && + typeof Symbol.iterator == 'symbol'; + + +/***/ }), + +/***/ 8686: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var DESCRIPTORS = __webpack_require__(3724); +var fails = __webpack_require__(9039); + +// V8 ~ Chrome 36- +// https://bugs.chromium.org/p/v8/issues/detail?id=3334 +module.exports = DESCRIPTORS && fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype !== 42; +}); + + +/***/ }), + +/***/ 2812: +/***/ ((module) => { + + +var $TypeError = TypeError; + +module.exports = function (passed, required) { + if (passed < required) throw new $TypeError('Not enough arguments'); + return passed; +}; + + +/***/ }), + +/***/ 8622: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var globalThis = __webpack_require__(4576); +var isCallable = __webpack_require__(4901); + +var WeakMap = globalThis.WeakMap; + +module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap)); + + +/***/ }), + +/***/ 8227: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var globalThis = __webpack_require__(4576); +var shared = __webpack_require__(5745); +var hasOwn = __webpack_require__(9297); +var uid = __webpack_require__(3392); +var NATIVE_SYMBOL = __webpack_require__(4495); +var USE_SYMBOL_AS_UID = __webpack_require__(7040); + +var Symbol = globalThis.Symbol; +var WellKnownSymbolsStore = shared('wks'); +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid; + +module.exports = function (name) { + if (!hasOwn(WellKnownSymbolsStore, name)) { + WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name) + ? Symbol[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; +}; + + +/***/ }), + +/***/ 6573: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var DESCRIPTORS = __webpack_require__(3724); +var defineBuiltInAccessor = __webpack_require__(2106); +var isDetached = __webpack_require__(3238); + +var ArrayBufferPrototype = ArrayBuffer.prototype; + +// `ArrayBuffer.prototype.detached` getter +// https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.detached +if (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) { + defineBuiltInAccessor(ArrayBufferPrototype, 'detached', { + configurable: true, + get: function detached() { + return isDetached(this); + } + }); +} + + +/***/ }), + +/***/ 7936: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var $transfer = __webpack_require__(5636); + +// `ArrayBuffer.prototype.transferToFixedLength` method +// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transferToFixedLength: function transferToFixedLength() { + return $transfer(this, arguments.length ? arguments[0] : undefined, false); + } +}); + + +/***/ }), + +/***/ 8100: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var $transfer = __webpack_require__(5636); + +// `ArrayBuffer.prototype.transfer` method +// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transfer: function transfer() { + return $transfer(this, arguments.length ? arguments[0] : undefined, true); + } +}); + + +/***/ }), + +/***/ 4114: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var toObject = __webpack_require__(8981); +var lengthOfArrayLike = __webpack_require__(6198); +var setArrayLength = __webpack_require__(4527); +var doesNotExceedSafeInteger = __webpack_require__(6837); +var fails = __webpack_require__(9039); + +var INCORRECT_TO_LENGTH = fails(function () { + return [].push.call({ length: 0x100000000 }, 1) !== 4294967297; +}); + +// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError +// https://bugs.chromium.org/p/v8/issues/detail?id=12681 +var properErrorOnNonWritableLength = function () { + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).push(); + } catch (error) { + return error instanceof TypeError; + } +}; + +var FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength(); + +// `Array.prototype.push` method +// https://tc39.es/ecma262/#sec-array.prototype.push +$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + push: function push(item) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var argCount = arguments.length; + doesNotExceedSafeInteger(len + argCount); + for (var i = 0; i < argCount; i++) { + O[len] = arguments[i]; + len++; + } + setArrayLength(O, len); + return len; + } +}); + + +/***/ }), + +/***/ 8111: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var globalThis = __webpack_require__(4576); +var anInstance = __webpack_require__(679); +var anObject = __webpack_require__(8551); +var isCallable = __webpack_require__(4901); +var getPrototypeOf = __webpack_require__(2787); +var defineBuiltInAccessor = __webpack_require__(2106); +var createProperty = __webpack_require__(4659); +var fails = __webpack_require__(9039); +var hasOwn = __webpack_require__(9297); +var wellKnownSymbol = __webpack_require__(8227); +var IteratorPrototype = (__webpack_require__(7657).IteratorPrototype); +var DESCRIPTORS = __webpack_require__(3724); +var IS_PURE = __webpack_require__(6395); + +var CONSTRUCTOR = 'constructor'; +var ITERATOR = 'Iterator'; +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + +var $TypeError = TypeError; +var NativeIterator = globalThis[ITERATOR]; + +// FF56- have non-standard global helper `Iterator` +var FORCED = IS_PURE + || !isCallable(NativeIterator) + || NativeIterator.prototype !== IteratorPrototype + // FF44- non-standard `Iterator` passes previous tests + || !fails(function () { NativeIterator({}); }); + +var IteratorConstructor = function Iterator() { + anInstance(this, IteratorPrototype); + if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable'); +}; + +var defineIteratorPrototypeAccessor = function (key, value) { + if (DESCRIPTORS) { + defineBuiltInAccessor(IteratorPrototype, key, { + configurable: true, + get: function () { + return value; + }, + set: function (replacement) { + anObject(this); + if (this === IteratorPrototype) throw new $TypeError("You can't redefine this property"); + if (hasOwn(this, key)) this[key] = replacement; + else createProperty(this, key, replacement); + } + }); + } else IteratorPrototype[key] = value; +}; + +if (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR); + +if (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) { + defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor); +} + +IteratorConstructor.prototype = IteratorPrototype; + +// `Iterator` constructor +// https://tc39.es/ecma262/#sec-iterator +$({ global: true, constructor: true, forced: FORCED }, { + Iterator: IteratorConstructor +}); + + +/***/ }), + +/***/ 1148: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var iterate = __webpack_require__(2652); +var aCallable = __webpack_require__(9306); +var anObject = __webpack_require__(8551); +var getIteratorDirect = __webpack_require__(1767); + +// `Iterator.prototype.every` method +// https://tc39.es/ecma262/#sec-iterator.prototype.every +$({ target: 'Iterator', proto: true, real: true }, { + every: function every(predicate) { + anObject(this); + aCallable(predicate); + var record = getIteratorDirect(this); + var counter = 0; + return !iterate(record, function (value, stop) { + if (!predicate(value, counter++)) return stop(); + }, { IS_RECORD: true, INTERRUPTED: true }).stopped; + } +}); + + +/***/ }), + +/***/ 2489: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var call = __webpack_require__(9565); +var aCallable = __webpack_require__(9306); +var anObject = __webpack_require__(8551); +var getIteratorDirect = __webpack_require__(1767); +var createIteratorProxy = __webpack_require__(9462); +var callWithSafeIterationClosing = __webpack_require__(6319); +var IS_PURE = __webpack_require__(6395); + +var IteratorProxy = createIteratorProxy(function () { + var iterator = this.iterator; + var predicate = this.predicate; + var next = this.next; + var result, done, value; + while (true) { + result = anObject(call(next, iterator)); + done = this.done = !!result.done; + if (done) return; + value = result.value; + if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value; + } +}); + +// `Iterator.prototype.filter` method +// https://tc39.es/ecma262/#sec-iterator.prototype.filter +$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { + filter: function filter(predicate) { + anObject(this); + aCallable(predicate); + return new IteratorProxy(getIteratorDirect(this), { + predicate: predicate + }); + } +}); + + +/***/ }), + +/***/ 7588: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var iterate = __webpack_require__(2652); +var aCallable = __webpack_require__(9306); +var anObject = __webpack_require__(8551); +var getIteratorDirect = __webpack_require__(1767); + +// `Iterator.prototype.forEach` method +// https://tc39.es/ecma262/#sec-iterator.prototype.foreach +$({ target: 'Iterator', proto: true, real: true }, { + forEach: function forEach(fn) { + anObject(this); + aCallable(fn); + var record = getIteratorDirect(this); + var counter = 0; + iterate(record, function (value) { + fn(value, counter++); + }, { IS_RECORD: true }); + } +}); + + +/***/ }), + +/***/ 1701: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var map = __webpack_require__(713); +var IS_PURE = __webpack_require__(6395); + +// `Iterator.prototype.map` method +// https://tc39.es/ecma262/#sec-iterator.prototype.map +$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { + map: map +}); + + +/***/ }), + +/***/ 3579: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var iterate = __webpack_require__(2652); +var aCallable = __webpack_require__(9306); +var anObject = __webpack_require__(8551); +var getIteratorDirect = __webpack_require__(1767); + +// `Iterator.prototype.some` method +// https://tc39.es/ecma262/#sec-iterator.prototype.some +$({ target: 'Iterator', proto: true, real: true }, { + some: function some(predicate) { + anObject(this); + aCallable(predicate); + var record = getIteratorDirect(this); + var counter = 0; + return iterate(record, function (value, stop) { + if (predicate(value, counter++)) return stop(); + }, { IS_RECORD: true, INTERRUPTED: true }).stopped; + } +}); + + +/***/ }), + +/***/ 4628: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var newPromiseCapabilityModule = __webpack_require__(6043); + +// `Promise.withResolvers` method +// https://tc39.es/ecma262/#sec-promise.withResolvers +$({ target: 'Promise', stat: true }, { + withResolvers: function withResolvers() { + var promiseCapability = newPromiseCapabilityModule.f(this); + return { + promise: promiseCapability.promise, + resolve: promiseCapability.resolve, + reject: promiseCapability.reject + }; + } +}); + + +/***/ }), + +/***/ 7642: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var difference = __webpack_require__(3440); +var setMethodAcceptSetLike = __webpack_require__(4916); + +// `Set.prototype.difference` method +// https://tc39.es/ecma262/#sec-set.prototype.difference +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, { + difference: difference +}); + + +/***/ }), + +/***/ 8004: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var fails = __webpack_require__(9039); +var intersection = __webpack_require__(8750); +var setMethodAcceptSetLike = __webpack_require__(4916); + +var INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () { + // eslint-disable-next-line es/no-array-from, es/no-set -- testing + return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2'; +}); + +// `Set.prototype.intersection` method +// https://tc39.es/ecma262/#sec-set.prototype.intersection +$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, { + intersection: intersection +}); + + +/***/ }), + +/***/ 3853: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var isDisjointFrom = __webpack_require__(4449); +var setMethodAcceptSetLike = __webpack_require__(4916); + +// `Set.prototype.isDisjointFrom` method +// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, { + isDisjointFrom: isDisjointFrom +}); + + +/***/ }), + +/***/ 5876: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var isSubsetOf = __webpack_require__(3838); +var setMethodAcceptSetLike = __webpack_require__(4916); + +// `Set.prototype.isSubsetOf` method +// https://tc39.es/ecma262/#sec-set.prototype.issubsetof +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, { + isSubsetOf: isSubsetOf +}); + + +/***/ }), + +/***/ 2475: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var isSupersetOf = __webpack_require__(8527); +var setMethodAcceptSetLike = __webpack_require__(4916); + +// `Set.prototype.isSupersetOf` method +// https://tc39.es/ecma262/#sec-set.prototype.issupersetof +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, { + isSupersetOf: isSupersetOf +}); + + +/***/ }), + +/***/ 5024: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var symmetricDifference = __webpack_require__(3650); +var setMethodAcceptSetLike = __webpack_require__(4916); + +// `Set.prototype.symmetricDifference` method +// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, { + symmetricDifference: symmetricDifference +}); + + +/***/ }), + +/***/ 1698: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var union = __webpack_require__(4204); +var setMethodAcceptSetLike = __webpack_require__(4916); + +// `Set.prototype.union` method +// https://tc39.es/ecma262/#sec-set.prototype.union +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, { + union: union +}); + + +/***/ }), + +/***/ 7467: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var arrayToReversed = __webpack_require__(7628); +var ArrayBufferViewCore = __webpack_require__(4644); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; + +// `%TypedArray%.prototype.toReversed` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed +exportTypedArrayMethod('toReversed', function toReversed() { + return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this)); +}); + + +/***/ }), + +/***/ 4732: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var ArrayBufferViewCore = __webpack_require__(4644); +var uncurryThis = __webpack_require__(9504); +var aCallable = __webpack_require__(9306); +var arrayFromConstructorAndList = __webpack_require__(5370); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort); + +// `%TypedArray%.prototype.toSorted` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted +exportTypedArrayMethod('toSorted', function toSorted(compareFn) { + if (compareFn !== undefined) aCallable(compareFn); + var O = aTypedArray(this); + var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O); + return sort(A, compareFn); +}); + + +/***/ }), + +/***/ 9577: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var arrayWith = __webpack_require__(9928); +var ArrayBufferViewCore = __webpack_require__(4644); +var isBigIntArray = __webpack_require__(1108); +var toIntegerOrInfinity = __webpack_require__(1291); +var toBigInt = __webpack_require__(5854); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +var PROPER_ORDER = !!function () { + try { + // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing + new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } }); + } catch (error) { + // some early implementations, like WebKit, does not follow the final semantic + // https://github.com/tc39/proposal-change-array-by-copy/pull/86 + return error === 8; + } +}(); + +// `%TypedArray%.prototype.with` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with +exportTypedArrayMethod('with', { 'with': function (index, value) { + var O = aTypedArray(this); + var relativeIndex = toIntegerOrInfinity(index); + var actualValue = isBigIntArray(O) ? toBigInt(value) : +value; + return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue); +} }['with'], !PROPER_ORDER); + + +/***/ }), + +/***/ 8992: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(8111); + + +/***/ }), + +/***/ 3215: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(1148); + + +/***/ }), + +/***/ 4520: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(2489); + + +/***/ }), + +/***/ 3949: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(7588); + + +/***/ }), + +/***/ 1454: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(1701); + + +/***/ }), + +/***/ 7550: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(3579); + + +/***/ }), + +/***/ 8335: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var DESCRIPTORS = __webpack_require__(3724); +var globalThis = __webpack_require__(4576); +var getBuiltIn = __webpack_require__(7751); +var uncurryThis = __webpack_require__(9504); +var call = __webpack_require__(9565); +var isCallable = __webpack_require__(4901); +var isObject = __webpack_require__(34); +var isArray = __webpack_require__(4376); +var hasOwn = __webpack_require__(9297); +var toString = __webpack_require__(655); +var lengthOfArrayLike = __webpack_require__(6198); +var createProperty = __webpack_require__(4659); +var fails = __webpack_require__(9039); +var parseJSONString = __webpack_require__(8235); +var NATIVE_SYMBOL = __webpack_require__(4495); + +var JSON = globalThis.JSON; +var Number = globalThis.Number; +var SyntaxError = globalThis.SyntaxError; +var nativeParse = JSON && JSON.parse; +var enumerableOwnProperties = getBuiltIn('Object', 'keys'); +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var at = uncurryThis(''.charAt); +var slice = uncurryThis(''.slice); +var exec = uncurryThis(/./.exec); +var push = uncurryThis([].push); + +var IS_DIGIT = /^\d$/; +var IS_NON_ZERO_DIGIT = /^[1-9]$/; +var IS_NUMBER_START = /^[\d-]$/; +var IS_WHITESPACE = /^[\t\n\r ]$/; + +var PRIMITIVE = 0; +var OBJECT = 1; + +var $parse = function (source, reviver) { + source = toString(source); + var context = new Context(source, 0, ''); + var root = context.parse(); + var value = root.value; + var endIndex = context.skip(IS_WHITESPACE, root.end); + if (endIndex < source.length) { + throw new SyntaxError('Unexpected extra character: "' + at(source, endIndex) + '" after the parsed data at: ' + endIndex); + } + return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value; +}; + +var internalize = function (holder, name, reviver, node) { + var val = holder[name]; + var unmodified = node && val === node.value; + var context = unmodified && typeof node.source == 'string' ? { source: node.source } : {}; + var elementRecordsLen, keys, len, i, P; + if (isObject(val)) { + var nodeIsArray = isArray(val); + var nodes = unmodified ? node.nodes : nodeIsArray ? [] : {}; + if (nodeIsArray) { + elementRecordsLen = nodes.length; + len = lengthOfArrayLike(val); + for (i = 0; i < len; i++) { + internalizeProperty(val, i, internalize(val, '' + i, reviver, i < elementRecordsLen ? nodes[i] : undefined)); + } + } else { + keys = enumerableOwnProperties(val); + len = lengthOfArrayLike(keys); + for (i = 0; i < len; i++) { + P = keys[i]; + internalizeProperty(val, P, internalize(val, P, reviver, hasOwn(nodes, P) ? nodes[P] : undefined)); + } + } + } + return call(reviver, holder, name, val, context); +}; + +var internalizeProperty = function (object, key, value) { + if (DESCRIPTORS) { + var descriptor = getOwnPropertyDescriptor(object, key); + if (descriptor && !descriptor.configurable) return; + } + if (value === undefined) delete object[key]; + else createProperty(object, key, value); +}; + +var Node = function (value, end, source, nodes) { + this.value = value; + this.end = end; + this.source = source; + this.nodes = nodes; +}; + +var Context = function (source, index) { + this.source = source; + this.index = index; +}; + +// https://www.json.org/json-en.html +Context.prototype = { + fork: function (nextIndex) { + return new Context(this.source, nextIndex); + }, + parse: function () { + var source = this.source; + var i = this.skip(IS_WHITESPACE, this.index); + var fork = this.fork(i); + var chr = at(source, i); + if (exec(IS_NUMBER_START, chr)) return fork.number(); + switch (chr) { + case '{': + return fork.object(); + case '[': + return fork.array(); + case '"': + return fork.string(); + case 't': + return fork.keyword(true); + case 'f': + return fork.keyword(false); + case 'n': + return fork.keyword(null); + } throw new SyntaxError('Unexpected character: "' + chr + '" at: ' + i); + }, + node: function (type, value, start, end, nodes) { + return new Node(value, end, type ? null : slice(this.source, start, end), nodes); + }, + object: function () { + var source = this.source; + var i = this.index + 1; + var expectKeypair = false; + var object = {}; + var nodes = {}; + while (i < source.length) { + i = this.until(['"', '}'], i); + if (at(source, i) === '}' && !expectKeypair) { + i++; + break; + } + // Parsing the key + var result = this.fork(i).string(); + var key = result.value; + i = result.end; + i = this.until([':'], i) + 1; + // Parsing value + i = this.skip(IS_WHITESPACE, i); + result = this.fork(i).parse(); + createProperty(nodes, key, result); + createProperty(object, key, result.value); + i = this.until([',', '}'], result.end); + var chr = at(source, i); + if (chr === ',') { + expectKeypair = true; + i++; + } else if (chr === '}') { + i++; + break; + } + } + return this.node(OBJECT, object, this.index, i, nodes); + }, + array: function () { + var source = this.source; + var i = this.index + 1; + var expectElement = false; + var array = []; + var nodes = []; + while (i < source.length) { + i = this.skip(IS_WHITESPACE, i); + if (at(source, i) === ']' && !expectElement) { + i++; + break; + } + var result = this.fork(i).parse(); + push(nodes, result); + push(array, result.value); + i = this.until([',', ']'], result.end); + if (at(source, i) === ',') { + expectElement = true; + i++; + } else if (at(source, i) === ']') { + i++; + break; + } + } + return this.node(OBJECT, array, this.index, i, nodes); + }, + string: function () { + var index = this.index; + var parsed = parseJSONString(this.source, this.index + 1); + return this.node(PRIMITIVE, parsed.value, index, parsed.end); + }, + number: function () { + var source = this.source; + var startIndex = this.index; + var i = startIndex; + if (at(source, i) === '-') i++; + if (at(source, i) === '0') i++; + else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, i + 1); + else throw new SyntaxError('Failed to parse number at: ' + i); + if (at(source, i) === '.') i = this.skip(IS_DIGIT, i + 1); + if (at(source, i) === 'e' || at(source, i) === 'E') { + i++; + if (at(source, i) === '+' || at(source, i) === '-') i++; + var exponentStartIndex = i; + i = this.skip(IS_DIGIT, i); + if (exponentStartIndex === i) throw new SyntaxError("Failed to parse number's exponent value at: " + i); + } + return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i); + }, + keyword: function (value) { + var keyword = '' + value; + var index = this.index; + var endIndex = index + keyword.length; + if (slice(this.source, index, endIndex) !== keyword) throw new SyntaxError('Failed to parse value at: ' + index); + return this.node(PRIMITIVE, value, index, endIndex); + }, + skip: function (regex, i) { + var source = this.source; + for (; i < source.length; i++) if (!exec(regex, at(source, i))) break; + return i; + }, + until: function (array, i) { + i = this.skip(IS_WHITESPACE, i); + var chr = at(this.source, i); + for (var j = 0; j < array.length; j++) if (array[j] === chr) return i; + throw new SyntaxError('Unexpected character: "' + chr + '" at: ' + i); + } +}; + +var NO_SOURCE_SUPPORT = fails(function () { + var unsafeInt = '9007199254740993'; + var source; + nativeParse(unsafeInt, function (key, value, context) { + source = context.source; + }); + return source !== unsafeInt; +}); + +var PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () { + // Safari 9 bug + return 1 / nativeParse('-0 \t') !== -Infinity; +}); + +// `JSON.parse` method +// https://tc39.es/ecma262/#sec-json.parse +// https://github.com/tc39/proposal-json-parse-with-source +$({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, { + parse: function parse(text, reviver) { + return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver); + } +}); + + +/***/ }), + +/***/ 4603: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var defineBuiltIn = __webpack_require__(6840); +var uncurryThis = __webpack_require__(9504); +var toString = __webpack_require__(655); +var validateArgumentsLength = __webpack_require__(2812); + +var $URLSearchParams = URLSearchParams; +var URLSearchParamsPrototype = $URLSearchParams.prototype; +var append = uncurryThis(URLSearchParamsPrototype.append); +var $delete = uncurryThis(URLSearchParamsPrototype['delete']); +var forEach = uncurryThis(URLSearchParamsPrototype.forEach); +var push = uncurryThis([].push); +var params = new $URLSearchParams('a=1&a=2&b=3'); + +params['delete']('a', 1); +// `undefined` case is a Chromium 117 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=14222 +params['delete']('b', undefined); + +if (params + '' !== 'a=2') { + defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) { + var length = arguments.length; + var $value = length < 2 ? undefined : arguments[1]; + if (length && $value === undefined) return $delete(this, name); + var entries = []; + forEach(this, function (v, k) { // also validates `this` + push(entries, { key: k, value: v }); + }); + validateArgumentsLength(length, 1); + var key = toString(name); + var value = toString($value); + var index = 0; + var dindex = 0; + var found = false; + var entriesLength = entries.length; + var entry; + while (index < entriesLength) { + entry = entries[index++]; + if (found || entry.key === key) { + found = true; + $delete(this, entry.key); + } else dindex++; + } + while (dindex < entriesLength) { + entry = entries[dindex++]; + if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value); + } + }, { enumerable: true, unsafe: true }); +} + + +/***/ }), + +/***/ 7566: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var defineBuiltIn = __webpack_require__(6840); +var uncurryThis = __webpack_require__(9504); +var toString = __webpack_require__(655); +var validateArgumentsLength = __webpack_require__(2812); + +var $URLSearchParams = URLSearchParams; +var URLSearchParamsPrototype = $URLSearchParams.prototype; +var getAll = uncurryThis(URLSearchParamsPrototype.getAll); +var $has = uncurryThis(URLSearchParamsPrototype.has); +var params = new $URLSearchParams('a=1'); + +// `undefined` case is a Chromium 117 bug +// https://bugs.chromium.org/p/v8/issues/detail?id=14222 +if (params.has('a', 2) || !params.has('a', undefined)) { + defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) { + var length = arguments.length; + var $value = length < 2 ? undefined : arguments[1]; + if (length && $value === undefined) return $has(this, name); + var values = getAll(this, name); // also validates `this` + validateArgumentsLength(length, 1); + var value = toString($value); + var index = 0; + while (index < values.length) { + if (values[index++] === value) return true; + } return false; + }, { enumerable: true, unsafe: true }); +} + + +/***/ }), + +/***/ 8721: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var DESCRIPTORS = __webpack_require__(3724); +var uncurryThis = __webpack_require__(9504); +var defineBuiltInAccessor = __webpack_require__(2106); + +var URLSearchParamsPrototype = URLSearchParams.prototype; +var forEach = uncurryThis(URLSearchParamsPrototype.forEach); + +// `URLSearchParams.prototype.size` getter +// https://github.com/whatwg/url/pull/734 +if (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) { + defineBuiltInAccessor(URLSearchParamsPrototype, 'size', { + get: function size() { + var count = 0; + forEach(this, function () { count++; }); + return count; + }, + configurable: true, + enumerable: true + }); +} + + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + PDFViewerApplication: () => (/* reexport */ PDFViewerApplication), + PDFViewerApplicationConstants: () => (/* binding */ AppConstants), + PDFViewerApplicationOptions: () => (/* reexport */ AppOptions) +}); + +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js +var es_array_push = __webpack_require__(4114); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.difference.v2.js +var es_set_difference_v2 = __webpack_require__(7642); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.intersection.v2.js +var es_set_intersection_v2 = __webpack_require__(8004); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js +var es_set_is_disjoint_from_v2 = __webpack_require__(3853); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-subset-of.v2.js +var es_set_is_subset_of_v2 = __webpack_require__(5876); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-superset-of.v2.js +var es_set_is_superset_of_v2 = __webpack_require__(2475); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.symmetric-difference.v2.js +var es_set_symmetric_difference_v2 = __webpack_require__(5024); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.union.v2.js +var es_set_union_v2 = __webpack_require__(1698); +// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.delete.js +var web_url_search_params_delete = __webpack_require__(4603); +// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.has.js +var web_url_search_params_has = __webpack_require__(7566); +// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.size.js +var web_url_search_params_size = __webpack_require__(8721); +;// ./web/ui_utils.js + + + + + + + + + + + +const DEFAULT_SCALE_VALUE = "auto"; +const DEFAULT_SCALE = 1.0; +const DEFAULT_SCALE_DELTA = 1.1; +const MIN_SCALE = 0.1; +const MAX_SCALE = 10.0; +const UNKNOWN_SCALE = 0; +const MAX_AUTO_SCALE = 1.25; +const SCROLLBAR_PADDING = 40; +const VERTICAL_PADDING = 5; +const RenderingStates = { + INITIAL: 0, + RUNNING: 1, + PAUSED: 2, + FINISHED: 3 +}; +const PresentationModeState = { + UNKNOWN: 0, + NORMAL: 1, + CHANGING: 2, + FULLSCREEN: 3 +}; +const SidebarView = { + UNKNOWN: -1, + NONE: 0, + THUMBS: 1, + OUTLINE: 2, + ATTACHMENTS: 3, + LAYERS: 4 +}; +const TextLayerMode = { + DISABLE: 0, + ENABLE: 1, + ENABLE_PERMISSIONS: 2 +}; +const ScrollMode = { + UNKNOWN: -1, + VERTICAL: 0, + HORIZONTAL: 1, + WRAPPED: 2, + PAGE: 3 +}; +const SpreadMode = { + UNKNOWN: -1, + NONE: 0, + ODD: 1, + EVEN: 2 +}; +const CursorTool = { + SELECT: 0, + HAND: 1, + ZOOM: 2 +}; +const AutoPrintRegExp = /\bprint\s*\(/; +function scrollIntoView(element, spot, scrollMatches = false) { + let parent = element.offsetParent; + if (!parent) { + console.error("offsetParent is not set -- cannot scroll"); + return; + } + let offsetY = element.offsetTop + element.clientTop; + let offsetX = element.offsetLeft + element.clientLeft; + while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || scrollMatches && (parent.classList.contains("markedContent") || getComputedStyle(parent).overflow === "hidden")) { + offsetY += parent.offsetTop; + offsetX += parent.offsetLeft; + parent = parent.offsetParent; + if (!parent) { + return; + } + } + if (spot) { + if (spot.top !== undefined) { + offsetY += spot.top; + } + if (spot.left !== undefined) { + offsetX += spot.left; + parent.scrollLeft = offsetX; + } + } + parent.scrollTop = offsetY; +} +function watchScroll(viewAreaElement, callback, abortSignal = undefined) { + const debounceScroll = function (evt) { + if (rAF) { + return; + } + rAF = window.requestAnimationFrame(function viewAreaElementScrolled() { + rAF = null; + const currentX = viewAreaElement.scrollLeft; + const lastX = state.lastX; + if (currentX !== lastX) { + state.right = currentX > lastX; + } + state.lastX = currentX; + const currentY = viewAreaElement.scrollTop; + const lastY = state.lastY; + if (currentY !== lastY) { + state.down = currentY > lastY; + } + state.lastY = currentY; + callback(state); + }); + }; + const state = { + right: true, + down: true, + lastX: viewAreaElement.scrollLeft, + lastY: viewAreaElement.scrollTop, + _eventHandler: debounceScroll + }; + let rAF = null; + viewAreaElement.addEventListener("scroll", debounceScroll, { + useCapture: true, + signal: abortSignal + }); + abortSignal?.addEventListener("abort", () => window.cancelAnimationFrame(rAF), { + once: true + }); + return state; +} +function parseQueryString(query) { + const params = new Map(); + for (const [key, value] of new URLSearchParams(query)) { + params.set(key.toLowerCase(), value); + } + return params; +} +const InvisibleCharsRegExp = /[\x00-\x1F]/g; +function removeNullCharacters(str, replaceInvisible = false) { + if (!InvisibleCharsRegExp.test(str)) { + return str; + } + if (replaceInvisible) { + return str.replaceAll(InvisibleCharsRegExp, m => m === "\x00" ? "" : " "); + } + return str.replaceAll("\x00", ""); +} +function binarySearchFirstItem(items, condition, start = 0) { + let minIndex = start; + let maxIndex = items.length - 1; + if (maxIndex < 0 || !condition(items[maxIndex])) { + return items.length; + } + if (condition(items[minIndex])) { + return minIndex; + } + while (minIndex < maxIndex) { + const currentIndex = minIndex + maxIndex >> 1; + const currentItem = items[currentIndex]; + if (condition(currentItem)) { + maxIndex = currentIndex; + } else { + minIndex = currentIndex + 1; + } + } + return minIndex; +} +function approximateFraction(x) { + if (Math.floor(x) === x) { + return [x, 1]; + } + const xinv = 1 / x; + const limit = 8; + if (xinv > limit) { + return [1, limit]; + } else if (Math.floor(xinv) === xinv) { + return [1, xinv]; + } + const x_ = x > 1 ? xinv : x; + let a = 0, + b = 1, + c = 1, + d = 1; + while (true) { + const p = a + c, + q = b + d; + if (q > limit) { + break; + } + if (x_ <= p / q) { + c = p; + d = q; + } else { + a = p; + b = q; + } + } + let result; + if (x_ - a / b < c / d - x_) { + result = x_ === x ? [a, b] : [b, a]; + } else { + result = x_ === x ? [c, d] : [d, c]; + } + return result; +} +function floorToDivide(x, div) { + return x - x % div; +} +function getPageSizeInches({ + view, + userUnit, + rotate +}) { + const [x1, y1, x2, y2] = view; + const changeOrientation = rotate % 180 !== 0; + const width = (x2 - x1) / 72 * userUnit; + const height = (y2 - y1) / 72 * userUnit; + return { + width: changeOrientation ? height : width, + height: changeOrientation ? width : height + }; +} +function backtrackBeforeAllVisibleElements(index, views, top) { + if (index < 2) { + return index; + } + let elt = views[index].div; + let pageTop = elt.offsetTop + elt.clientTop; + if (pageTop >= top) { + elt = views[index - 1].div; + pageTop = elt.offsetTop + elt.clientTop; + } + for (let i = index - 2; i >= 0; --i) { + elt = views[i].div; + if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) { + break; + } + index = i; + } + return index; +} +function getVisibleElements({ + scrollEl, + views, + sortByVisibility = false, + horizontal = false, + rtl = false +}) { + const top = scrollEl.scrollTop, + bottom = top + scrollEl.clientHeight; + const left = scrollEl.scrollLeft, + right = left + scrollEl.clientWidth; + function isElementBottomAfterViewTop(view) { + const element = view.div; + const elementBottom = element.offsetTop + element.clientTop + element.clientHeight; + return elementBottom > top; + } + function isElementNextAfterViewHorizontally(view) { + const element = view.div; + const elementLeft = element.offsetLeft + element.clientLeft; + const elementRight = elementLeft + element.clientWidth; + return rtl ? elementLeft < right : elementRight > left; + } + const visible = [], + ids = new Set(), + numViews = views.length; + let firstVisibleElementInd = binarySearchFirstItem(views, horizontal ? isElementNextAfterViewHorizontally : isElementBottomAfterViewTop); + if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) { + firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top); + } + let lastEdge = horizontal ? right : -1; + for (let i = firstVisibleElementInd; i < numViews; i++) { + const view = views[i], + element = view.div; + const currentWidth = element.offsetLeft + element.clientLeft; + const currentHeight = element.offsetTop + element.clientTop; + const viewWidth = element.clientWidth, + viewHeight = element.clientHeight; + const viewRight = currentWidth + viewWidth; + const viewBottom = currentHeight + viewHeight; + if (lastEdge === -1) { + if (viewBottom >= bottom) { + lastEdge = viewBottom; + } + } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) { + break; + } + if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) { + continue; + } + const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom); + const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right); + const fractionHeight = (viewHeight - hiddenHeight) / viewHeight, + fractionWidth = (viewWidth - hiddenWidth) / viewWidth; + const percent = fractionHeight * fractionWidth * 100 | 0; + visible.push({ + id: view.id, + x: currentWidth, + y: currentHeight, + view, + percent, + widthPercent: fractionWidth * 100 | 0 + }); + ids.add(view.id); + } + const first = visible[0], + last = visible.at(-1); + if (sortByVisibility) { + visible.sort(function (a, b) { + const pc = a.percent - b.percent; + if (Math.abs(pc) > 0.001) { + return -pc; + } + return a.id - b.id; + }); + } + return { + first, + last, + views: visible, + ids + }; +} +function normalizeWheelEventDirection(evt) { + let delta = Math.hypot(evt.deltaX, evt.deltaY); + const angle = Math.atan2(evt.deltaY, evt.deltaX); + if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) { + delta = -delta; + } + return delta; +} +function normalizeWheelEventDelta(evt) { + const deltaMode = evt.deltaMode; + let delta = normalizeWheelEventDirection(evt); + const MOUSE_PIXELS_PER_LINE = 30; + const MOUSE_LINES_PER_PAGE = 30; + if (deltaMode === WheelEvent.DOM_DELTA_PIXEL) { + delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE; + } else if (deltaMode === WheelEvent.DOM_DELTA_LINE) { + delta /= MOUSE_LINES_PER_PAGE; + } + return delta; +} +function isValidRotation(angle) { + return Number.isInteger(angle) && angle % 90 === 0; +} +function isValidScrollMode(mode) { + return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN; +} +function isValidSpreadMode(mode) { + return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN; +} +function isPortraitOrientation(size) { + return size.width <= size.height; +} +const animationStarted = new Promise(function (resolve) { + window.requestAnimationFrame(resolve); +}); +const docStyle = document.documentElement.style; +function clamp(v, min, max) { + return Math.min(Math.max(v, min), max); +} +class ProgressBar { + #classList = null; + #disableAutoFetchTimeout = null; + #percent = 0; + #style = null; + #visible = true; + constructor(bar) { + this.#classList = bar.classList; + this.#style = bar.style; + } + get percent() { + return this.#percent; + } + set percent(val) { + this.#percent = clamp(val, 0, 100); + if (isNaN(val)) { + this.#classList.add("indeterminate"); + return; + } + this.#classList.remove("indeterminate"); + this.#style.setProperty("--progressBar-percent", `${this.#percent}%`); + } + setWidth(viewer) { + if (!viewer) { + return; + } + const container = viewer.parentNode; + const scrollbarWidth = container.offsetWidth - viewer.offsetWidth; + if (scrollbarWidth > 0) { + this.#style.setProperty("--progressBar-end-offset", `${scrollbarWidth}px`); + } + } + setDisableAutoFetch(delay = 5000) { + if (this.#percent === 100 || isNaN(this.#percent)) { + return; + } + if (this.#disableAutoFetchTimeout) { + clearTimeout(this.#disableAutoFetchTimeout); + } + this.show(); + this.#disableAutoFetchTimeout = setTimeout(() => { + this.#disableAutoFetchTimeout = null; + this.hide(); + }, delay); + } + hide() { + if (!this.#visible) { + return; + } + this.#visible = false; + this.#classList.add("hidden"); + } + show() { + if (this.#visible) { + return; + } + this.#visible = true; + this.#classList.remove("hidden"); + } +} +function getActiveOrFocusedElement() { + let curRoot = document; + let curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); + while (curActiveOrFocused?.shadowRoot) { + curRoot = curActiveOrFocused.shadowRoot; + curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); + } + return curActiveOrFocused; +} +function apiPageLayoutToViewerModes(layout) { + let scrollMode = ScrollMode.VERTICAL, + spreadMode = SpreadMode.NONE; + switch (layout) { + case "SinglePage": + scrollMode = ScrollMode.PAGE; + break; + case "OneColumn": + break; + case "TwoPageLeft": + scrollMode = ScrollMode.PAGE; + case "TwoColumnLeft": + spreadMode = SpreadMode.ODD; + break; + case "TwoPageRight": + scrollMode = ScrollMode.PAGE; + case "TwoColumnRight": + spreadMode = SpreadMode.EVEN; + break; + } + return { + scrollMode, + spreadMode + }; +} +function apiPageModeToSidebarView(mode) { + switch (mode) { + case "UseNone": + return SidebarView.NONE; + case "UseThumbs": + return SidebarView.THUMBS; + case "UseOutlines": + return SidebarView.OUTLINE; + case "UseAttachments": + return SidebarView.ATTACHMENTS; + case "UseOC": + return SidebarView.LAYERS; + } + return SidebarView.NONE; +} +function toggleCheckedBtn(button, toggle, view = null) { + button.classList.toggle("toggled", toggle); + button.setAttribute("aria-checked", toggle); + view?.classList.toggle("hidden", !toggle); +} +function toggleExpandedBtn(button, toggle, view = null) { + button.classList.toggle("toggled", toggle); + button.setAttribute("aria-expanded", toggle); + view?.classList.toggle("hidden", !toggle); +} +const calcRound = function () { + const e = document.createElement("div"); + e.style.width = "round(down, calc(1.6666666666666665 * 792px), 1px)"; + return e.style.width === "calc(1320px)" ? Math.fround : x => x; +}(); + +;// ./web/app_options.js +{ + var compatParams = new Map(); + const userAgent = navigator.userAgent || ""; + const platform = navigator.platform || ""; + const maxTouchPoints = navigator.maxTouchPoints || 1; + const isAndroid = /Android/.test(userAgent); + const isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === "MacIntel" && maxTouchPoints > 1; + (function () { + if (isIOS || isAndroid) { + compatParams.set("maxCanvasPixels", 5242880); + } + })(); + (function () { + if (isAndroid) { + compatParams.set("useSystemFonts", false); + } + })(); +} +const OptionKind = { + BROWSER: 0x01, + VIEWER: 0x02, + API: 0x04, + WORKER: 0x08, + EVENT_DISPATCH: 0x10, + PREFERENCE: 0x80 +}; +const Type = { + BOOLEAN: 0x01, + NUMBER: 0x02, + OBJECT: 0x04, + STRING: 0x08, + UNDEFINED: 0x10 +}; +const defaultOptions = { + allowedGlobalEvents: { + value: null, + kind: OptionKind.BROWSER + }, + canvasMaxAreaInBytes: { + value: -1, + kind: OptionKind.BROWSER + OptionKind.API + }, + isInAutomation: { + value: false, + kind: OptionKind.BROWSER + }, + localeProperties: { + value: { + lang: navigator.language || "en-US" + }, + kind: OptionKind.BROWSER + }, + nimbusDataStr: { + value: "", + kind: OptionKind.BROWSER + }, + supportsCaretBrowsingMode: { + value: false, + kind: OptionKind.BROWSER + }, + supportsDocumentFonts: { + value: true, + kind: OptionKind.BROWSER + }, + supportsIntegratedFind: { + value: false, + kind: OptionKind.BROWSER + }, + supportsMouseWheelZoomCtrlKey: { + value: true, + kind: OptionKind.BROWSER + }, + supportsMouseWheelZoomMetaKey: { + value: true, + kind: OptionKind.BROWSER + }, + supportsPinchToZoom: { + value: true, + kind: OptionKind.BROWSER + }, + toolbarDensity: { + value: 0, + kind: OptionKind.BROWSER + OptionKind.EVENT_DISPATCH + }, + altTextLearnMoreUrl: { + value: "", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + annotationEditorMode: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + annotationMode: { + value: 2, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + cursorToolOnLoad: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + debuggerSrc: { + value: "./debugger.mjs", + kind: OptionKind.VIEWER + }, + defaultZoomDelay: { + value: 400, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + defaultZoomValue: { + value: "", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + disableHistory: { + value: false, + kind: OptionKind.VIEWER + }, + disablePageLabels: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enableAltText: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enableAltTextModelDownload: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + OptionKind.EVENT_DISPATCH + }, + enableGuessAltText: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + OptionKind.EVENT_DISPATCH + }, + enableHighlightFloatingButton: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enableNewAltTextWhenAddingImage: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enablePermissions: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enablePrintAutoRotate: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enableScripting: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enableUpdatedAddImage: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + externalLinkRel: { + value: "noopener noreferrer nofollow", + kind: OptionKind.VIEWER + }, + externalLinkTarget: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + highlightEditorColors: { + value: "yellow=#FFFF98,green=#53FFBC,blue=#80EBFF,pink=#FFCBE6,red=#FF4F5F", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + historyUpdateUrl: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + ignoreDestinationZoom: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + imageResourcesPath: { + value: "./images/", + kind: OptionKind.VIEWER + }, + maxCanvasPixels: { + value: 2 ** 25, + kind: OptionKind.VIEWER + }, + forcePageColors: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + pageColorsBackground: { + value: "Canvas", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + pageColorsForeground: { + value: "CanvasText", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + pdfBugEnabled: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + printResolution: { + value: 150, + kind: OptionKind.VIEWER + }, + sidebarViewOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + scrollModeOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + spreadModeOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + textLayerMode: { + value: 1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + viewOnLoad: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + cMapPacked: { + value: true, + kind: OptionKind.API + }, + cMapUrl: { + value: "../web/cmaps/", + kind: OptionKind.API + }, + disableAutoFetch: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableFontFace: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableRange: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableStream: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + docBaseUrl: { + value: "", + kind: OptionKind.API + }, + enableHWA: { + value: true, + kind: OptionKind.API + OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enableXfa: { + value: true, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + fontExtraProperties: { + value: false, + kind: OptionKind.API + }, + isEvalSupported: { + value: true, + kind: OptionKind.API + }, + isOffscreenCanvasSupported: { + value: true, + kind: OptionKind.API + }, + maxImageSize: { + value: -1, + kind: OptionKind.API + }, + pdfBug: { + value: false, + kind: OptionKind.API + }, + standardFontDataUrl: { + value: "../web/standard_fonts/", + kind: OptionKind.API + }, + useSystemFonts: { + value: undefined, + kind: OptionKind.API, + type: Type.BOOLEAN + Type.UNDEFINED + }, + verbosity: { + value: 1, + kind: OptionKind.API + }, + workerPort: { + value: null, + kind: OptionKind.WORKER + }, + workerSrc: { + value: "../build/pdf.worker.mjs", + kind: OptionKind.WORKER + } +}; +{ + defaultOptions.defaultUrl = { + value: "compressed.tracemonkey-pldi-09.pdf", + kind: OptionKind.VIEWER + }; + defaultOptions.sandboxBundleSrc = { + value: "../build/pdf.sandbox.mjs", + kind: OptionKind.VIEWER + }; + defaultOptions.viewerCssTheme = { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }; + defaultOptions.enableFakeMLManager = { + value: true, + kind: OptionKind.VIEWER + }; +} +{ + defaultOptions.disablePreferences = { + value: false, + kind: OptionKind.VIEWER + }; +} +class AppOptions { + static eventBus; + static #opts = new Map(); + static { + for (const name in defaultOptions) { + this.#opts.set(name, defaultOptions[name].value); + } + for (const [name, value] of compatParams) { + this.#opts.set(name, value); + } + this._hasInvokedSet = false; + this._checkDisablePreferences = () => { + if (this.get("disablePreferences")) { + return true; + } + if (this._hasInvokedSet) { + console.warn("The Preferences may override manually set AppOptions; " + 'please use the "disablePreferences"-option to prevent that.'); + } + return false; + }; + } + static get(name) { + return this.#opts.get(name); + } + static getAll(kind = null, defaultOnly = false) { + const options = Object.create(null); + for (const name in defaultOptions) { + const defaultOpt = defaultOptions[name]; + if (kind && !(kind & defaultOpt.kind)) { + continue; + } + options[name] = !defaultOnly ? this.#opts.get(name) : defaultOpt.value; + } + return options; + } + static set(name, value) { + this.setAll({ + [name]: value + }); + } + static setAll(options, prefs = false) { + this._hasInvokedSet ||= true; + let events; + for (const name in options) { + const defaultOpt = defaultOptions[name], + userOpt = options[name]; + if (!defaultOpt || !(typeof userOpt === typeof defaultOpt.value || Type[(typeof userOpt).toUpperCase()] & defaultOpt.type)) { + continue; + } + const { + kind + } = defaultOpt; + if (prefs && !(kind & OptionKind.BROWSER || kind & OptionKind.PREFERENCE)) { + continue; + } + if (this.eventBus && kind & OptionKind.EVENT_DISPATCH) { + (events ||= new Map()).set(name, userOpt); + } + this.#opts.set(name, userOpt); + } + if (events) { + for (const [name, value] of events) { + this.eventBus.dispatch(name.toLowerCase(), { + source: this, + value + }); + } + } + } +} + +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.json.parse.js +var esnext_json_parse = __webpack_require__(8335); +;// ./web/pdf_link_service.js + + + +const DEFAULT_LINK_REL = "noopener noreferrer nofollow"; +const LinkTarget = { + NONE: 0, + SELF: 1, + BLANK: 2, + PARENT: 3, + TOP: 4 +}; +class PDFLinkService { + externalLinkEnabled = true; + constructor({ + eventBus, + externalLinkTarget = null, + externalLinkRel = null, + ignoreDestinationZoom = false + } = {}) { + this.eventBus = eventBus; + this.externalLinkTarget = externalLinkTarget; + this.externalLinkRel = externalLinkRel; + this._ignoreDestinationZoom = ignoreDestinationZoom; + this.baseUrl = null; + this.pdfDocument = null; + this.pdfViewer = null; + this.pdfHistory = null; + } + setDocument(pdfDocument, baseUrl = null) { + this.baseUrl = baseUrl; + this.pdfDocument = pdfDocument; + } + setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } + setHistory(pdfHistory) { + this.pdfHistory = pdfHistory; + } + get pagesCount() { + return this.pdfDocument ? this.pdfDocument.numPages : 0; + } + get page() { + return this.pdfDocument ? this.pdfViewer.currentPageNumber : 1; + } + set page(value) { + if (this.pdfDocument) { + this.pdfViewer.currentPageNumber = value; + } + } + get rotation() { + return this.pdfDocument ? this.pdfViewer.pagesRotation : 0; + } + set rotation(value) { + if (this.pdfDocument) { + this.pdfViewer.pagesRotation = value; + } + } + get isInPresentationMode() { + return this.pdfDocument ? this.pdfViewer.isInPresentationMode : false; + } + async goToDestination(dest) { + if (!this.pdfDocument) { + return; + } + let namedDest, explicitDest, pageNumber; + if (typeof dest === "string") { + namedDest = dest; + explicitDest = await this.pdfDocument.getDestination(dest); + } else { + namedDest = null; + explicitDest = await dest; + } + if (!Array.isArray(explicitDest)) { + console.error(`goToDestination: "${explicitDest}" is not a valid destination array, for dest="${dest}".`); + return; + } + const [destRef] = explicitDest; + if (destRef && typeof destRef === "object") { + pageNumber = this.pdfDocument.cachedPageNumber(destRef); + if (!pageNumber) { + try { + pageNumber = (await this.pdfDocument.getPageIndex(destRef)) + 1; + } catch { + console.error(`goToDestination: "${destRef}" is not a valid page reference, for dest="${dest}".`); + return; + } + } + } else if (Number.isInteger(destRef)) { + pageNumber = destRef + 1; + } + if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) { + console.error(`goToDestination: "${pageNumber}" is not a valid page number, for dest="${dest}".`); + return; + } + if (this.pdfHistory) { + this.pdfHistory.pushCurrentPosition(); + this.pdfHistory.push({ + namedDest, + explicitDest, + pageNumber + }); + } + this.pdfViewer.scrollPageIntoView({ + pageNumber, + destArray: explicitDest, + ignoreDestinationZoom: this._ignoreDestinationZoom + }); + } + goToPage(val) { + if (!this.pdfDocument) { + return; + } + const pageNumber = typeof val === "string" && this.pdfViewer.pageLabelToPageNumber(val) || val | 0; + if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { + console.error(`PDFLinkService.goToPage: "${val}" is not a valid page.`); + return; + } + if (this.pdfHistory) { + this.pdfHistory.pushCurrentPosition(); + this.pdfHistory.pushPage(pageNumber); + } + this.pdfViewer.scrollPageIntoView({ + pageNumber + }); + } + addLinkAttributes(link, url, newWindow = false) { + if (!url || typeof url !== "string") { + throw new Error('A valid "url" parameter must provided.'); + } + const target = newWindow ? LinkTarget.BLANK : this.externalLinkTarget, + rel = this.externalLinkRel; + if (this.externalLinkEnabled) { + link.href = link.title = url; + } else { + link.href = ""; + link.title = `Disabled: ${url}`; + link.onclick = () => false; + } + let targetStr = ""; + switch (target) { + case LinkTarget.NONE: + break; + case LinkTarget.SELF: + targetStr = "_self"; + break; + case LinkTarget.BLANK: + targetStr = "_blank"; + break; + case LinkTarget.PARENT: + targetStr = "_parent"; + break; + case LinkTarget.TOP: + targetStr = "_top"; + break; + } + link.target = targetStr; + link.rel = typeof rel === "string" ? rel : DEFAULT_LINK_REL; + } + getDestinationHash(dest) { + if (typeof dest === "string") { + if (dest.length > 0) { + return this.getAnchorUrl("#" + escape(dest)); + } + } else if (Array.isArray(dest)) { + const str = JSON.stringify(dest); + if (str.length > 0) { + return this.getAnchorUrl("#" + escape(str)); + } + } + return this.getAnchorUrl(""); + } + getAnchorUrl(anchor) { + return this.baseUrl ? this.baseUrl + anchor : anchor; + } + setHash(hash) { + if (!this.pdfDocument) { + return; + } + let pageNumber, dest; + if (hash.includes("=")) { + const params = parseQueryString(hash); + if (params.has("search")) { + const query = params.get("search").replaceAll('"', ""), + phrase = params.get("phrase") === "true"; + this.eventBus.dispatch("findfromurlhash", { + source: this, + query: phrase ? query : query.match(/\S+/g) + }); + } + if (params.has("page")) { + pageNumber = params.get("page") | 0 || 1; + } + if (params.has("zoom")) { + const zoomArgs = params.get("zoom").split(","); + const zoomArg = zoomArgs[0]; + const zoomArgNumber = parseFloat(zoomArg); + if (!zoomArg.includes("Fit")) { + dest = [null, { + name: "XYZ" + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg]; + } else if (zoomArg === "Fit" || zoomArg === "FitB") { + dest = [null, { + name: zoomArg + }]; + } else if (zoomArg === "FitH" || zoomArg === "FitBH" || zoomArg === "FitV" || zoomArg === "FitBV") { + dest = [null, { + name: zoomArg + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null]; + } else if (zoomArg === "FitR") { + if (zoomArgs.length !== 5) { + console.error('PDFLinkService.setHash: Not enough parameters for "FitR".'); + } else { + dest = [null, { + name: zoomArg + }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0]; + } + } else { + console.error(`PDFLinkService.setHash: "${zoomArg}" is not a valid zoom value.`); + } + } + if (dest) { + this.pdfViewer.scrollPageIntoView({ + pageNumber: pageNumber || this.page, + destArray: dest, + allowNegativeOffset: true + }); + } else if (pageNumber) { + this.page = pageNumber; + } + if (params.has("pagemode")) { + this.eventBus.dispatch("pagemode", { + source: this, + mode: params.get("pagemode") + }); + } + if (params.has("nameddest")) { + this.goToDestination(params.get("nameddest")); + } + return; + } + dest = unescape(hash); + try { + dest = JSON.parse(dest); + if (!Array.isArray(dest)) { + dest = dest.toString(); + } + } catch {} + if (typeof dest === "string" || PDFLinkService.#isValidExplicitDest(dest)) { + this.goToDestination(dest); + return; + } + console.error(`PDFLinkService.setHash: "${unescape(hash)}" is not a valid destination.`); + } + executeNamedAction(action) { + if (!this.pdfDocument) { + return; + } + switch (action) { + case "GoBack": + this.pdfHistory?.back(); + break; + case "GoForward": + this.pdfHistory?.forward(); + break; + case "NextPage": + this.pdfViewer.nextPage(); + break; + case "PrevPage": + this.pdfViewer.previousPage(); + break; + case "LastPage": + this.page = this.pagesCount; + break; + case "FirstPage": + this.page = 1; + break; + default: + break; + } + this.eventBus.dispatch("namedaction", { + source: this, + action + }); + } + async executeSetOCGState(action) { + if (!this.pdfDocument) { + return; + } + const pdfDocument = this.pdfDocument, + optionalContentConfig = await this.pdfViewer.optionalContentConfigPromise; + if (pdfDocument !== this.pdfDocument) { + return; + } + optionalContentConfig.setOCGState(action); + this.pdfViewer.optionalContentConfigPromise = Promise.resolve(optionalContentConfig); + } + static #isValidExplicitDest(dest) { + if (!Array.isArray(dest) || dest.length < 2) { + return false; + } + const [page, zoom, ...args] = dest; + if (!(typeof page === "object" && Number.isInteger(page?.num) && Number.isInteger(page?.gen)) && !Number.isInteger(page)) { + return false; + } + if (!(typeof zoom === "object" && typeof zoom?.name === "string")) { + return false; + } + const argsLen = args.length; + let allowNull = true; + switch (zoom.name) { + case "XYZ": + if (argsLen < 2 || argsLen > 3) { + return false; + } + break; + case "Fit": + case "FitB": + return argsLen === 0; + case "FitH": + case "FitBH": + case "FitV": + case "FitBV": + if (argsLen > 1) { + return false; + } + break; + case "FitR": + if (argsLen !== 4) { + return false; + } + allowNull = false; + break; + default: + return false; + } + for (const arg of args) { + if (!(typeof arg === "number" || allowNull && arg === null)) { + return false; + } + } + return true; + } +} +class SimpleLinkService extends PDFLinkService { + setDocument(pdfDocument, baseUrl = null) {} +} + +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.with-resolvers.js +var es_promise_with_resolvers = __webpack_require__(4628); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.constructor.js +var esnext_iterator_constructor = __webpack_require__(8992); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.some.js +var esnext_iterator_some = __webpack_require__(7550); +;// ./web/pdfjs.js +const { + AbortException, + AnnotationEditorLayer, + AnnotationEditorParamsType, + AnnotationEditorType, + AnnotationEditorUIManager, + AnnotationLayer, + AnnotationMode, + build, + ColorPicker, + createValidAbsoluteUrl, + DOMSVGFactory, + DrawLayer, + FeatureTest, + fetchData, + getDocument, + getFilenameFromUrl, + getPdfFilenameFromUrl: pdfjs_getPdfFilenameFromUrl, + getXfaPageViewport, + GlobalWorkerOptions, + ImageKind, + InvalidPDFException, + isDataScheme, + isPdfFile, + MissingPDFException, + noContextMenu, + normalizeUnicode, + OPS, + OutputScale, + PasswordResponses, + PDFDataRangeTransport, + PDFDateString, + PDFWorker, + PermissionFlag, + PixelsPerInch, + RenderingCancelledException, + setLayerDimensions, + shadow, + stopEvent, + TextLayer, + UnexpectedResponseException, + Util, + VerbosityLevel, + version, + XfaLayer +} = globalThis.pdfjsLib; + +;// ./web/event_utils.js + + +const WaitOnType = { + EVENT: "event", + TIMEOUT: "timeout" +}; +async function waitOnEventOrTimeout({ + target, + name, + delay = 0 +}) { + if (typeof target !== "object" || !(name && typeof name === "string") || !(Number.isInteger(delay) && delay >= 0)) { + throw new Error("waitOnEventOrTimeout - invalid parameters."); + } + const { + promise, + resolve + } = Promise.withResolvers(); + const ac = new AbortController(); + function handler(type) { + ac.abort(); + clearTimeout(timeout); + resolve(type); + } + const evtMethod = target instanceof EventBus ? "_on" : "addEventListener"; + target[evtMethod](name, handler.bind(null, WaitOnType.EVENT), { + signal: ac.signal + }); + const timeout = setTimeout(handler.bind(null, WaitOnType.TIMEOUT), delay); + return promise; +} +class EventBus { + #listeners = Object.create(null); + on(eventName, listener, options = null) { + this._on(eventName, listener, { + external: true, + once: options?.once, + signal: options?.signal + }); + } + off(eventName, listener, options = null) { + this._off(eventName, listener); + } + dispatch(eventName, data) { + const eventListeners = this.#listeners[eventName]; + if (!eventListeners || eventListeners.length === 0) { + return; + } + let externalListeners; + for (const { + listener, + external, + once + } of eventListeners.slice(0)) { + if (once) { + this._off(eventName, listener); + } + if (external) { + (externalListeners ||= []).push(listener); + continue; + } + listener(data); + } + if (externalListeners) { + for (const listener of externalListeners) { + listener(data); + } + externalListeners = null; + } + } + _on(eventName, listener, options = null) { + let rmAbort = null; + if (options?.signal instanceof AbortSignal) { + const { + signal + } = options; + if (signal.aborted) { + console.error("Cannot use an `aborted` signal."); + return; + } + const onAbort = () => this._off(eventName, listener); + rmAbort = () => signal.removeEventListener("abort", onAbort); + signal.addEventListener("abort", onAbort); + } + const eventListeners = this.#listeners[eventName] ||= []; + eventListeners.push({ + listener, + external: options?.external === true, + once: options?.once === true, + rmAbort + }); + } + _off(eventName, listener, options = null) { + const eventListeners = this.#listeners[eventName]; + if (!eventListeners) { + return; + } + for (let i = 0, ii = eventListeners.length; i < ii; i++) { + const evt = eventListeners[i]; + if (evt.listener === listener) { + evt.rmAbort?.(); + eventListeners.splice(i, 1); + return; + } + } + } +} +class FirefoxEventBus extends EventBus { + #externalServices; + #globalEventNames; + #isInAutomation; + constructor(globalEventNames, externalServices, isInAutomation) { + super(); + this.#globalEventNames = globalEventNames; + this.#externalServices = externalServices; + this.#isInAutomation = isInAutomation; + } + dispatch(eventName, data) { + throw new Error("Not implemented: FirefoxEventBus.dispatch"); + } +} + +;// ./web/external_services.js +class BaseExternalServices { + updateFindControlState(data) {} + updateFindMatchesCount(data) {} + initPassiveLoading() {} + reportTelemetry(data) {} + async createL10n() { + throw new Error("Not implemented: createL10n"); + } + createScripting() { + throw new Error("Not implemented: createScripting"); + } + updateEditorStates(data) { + throw new Error("Not implemented: updateEditorStates"); + } + dispatchGlobalEvent(_event) {} +} + +;// ./web/preferences.js + +class BasePreferences { + #defaults = Object.freeze({ + altTextLearnMoreUrl: "", + annotationEditorMode: 0, + annotationMode: 2, + cursorToolOnLoad: 0, + defaultZoomDelay: 400, + defaultZoomValue: "", + disablePageLabels: false, + enableAltText: false, + enableAltTextModelDownload: true, + enableGuessAltText: true, + enableHighlightFloatingButton: false, + enableNewAltTextWhenAddingImage: true, + enablePermissions: false, + enablePrintAutoRotate: true, + enableScripting: true, + enableUpdatedAddImage: false, + externalLinkTarget: 0, + highlightEditorColors: "yellow=#FFFF98,green=#53FFBC,blue=#80EBFF,pink=#FFCBE6,red=#FF4F5F", + historyUpdateUrl: false, + ignoreDestinationZoom: false, + forcePageColors: false, + pageColorsBackground: "Canvas", + pageColorsForeground: "CanvasText", + pdfBugEnabled: false, + sidebarViewOnLoad: -1, + scrollModeOnLoad: -1, + spreadModeOnLoad: -1, + textLayerMode: 1, + viewOnLoad: 0, + disableAutoFetch: false, + disableFontFace: false, + disableRange: false, + disableStream: false, + enableHWA: true, + enableXfa: true, + viewerCssTheme: 0 + }); + #initializedPromise = null; + constructor() { + this.#initializedPromise = this._readFromStorage(this.#defaults).then(({ + browserPrefs, + prefs + }) => { + if (AppOptions._checkDisablePreferences()) { + return; + } + AppOptions.setAll({ + ...browserPrefs, + ...prefs + }, true); + }); + } + async _writeToStorage(prefObj) { + throw new Error("Not implemented: _writeToStorage"); + } + async _readFromStorage(prefObj) { + throw new Error("Not implemented: _readFromStorage"); + } + async reset() { + await this.#initializedPromise; + AppOptions.setAll(this.#defaults, true); + await this._writeToStorage(this.#defaults); + } + async set(name, value) { + await this.#initializedPromise; + AppOptions.setAll({ + [name]: value + }, true); + await this._writeToStorage(AppOptions.getAll(OptionKind.PREFERENCE)); + } + async get(name) { + await this.#initializedPromise; + return AppOptions.get(name); + } + get initializedPromise() { + return this.#initializedPromise; + } +} + +;// ./node_modules/@fluent/bundle/esm/types.js +class FluentType { + constructor(value) { + this.value = value; + } + valueOf() { + return this.value; + } +} +class FluentNone extends FluentType { + constructor(value = "???") { + super(value); + } + toString(scope) { + return `{${this.value}}`; + } +} +class FluentNumber extends FluentType { + constructor(value, opts = {}) { + super(value); + this.opts = opts; + } + toString(scope) { + try { + const nf = scope.memoizeIntlObject(Intl.NumberFormat, this.opts); + return nf.format(this.value); + } catch (err) { + scope.reportError(err); + return this.value.toString(10); + } + } +} +class FluentDateTime extends FluentType { + constructor(value, opts = {}) { + super(value); + this.opts = opts; + } + toString(scope) { + try { + const dtf = scope.memoizeIntlObject(Intl.DateTimeFormat, this.opts); + return dtf.format(this.value); + } catch (err) { + scope.reportError(err); + return new Date(this.value).toISOString(); + } + } +} +;// ./node_modules/@fluent/bundle/esm/resolver.js + + +const MAX_PLACEABLES = 100; +const FSI = "\u2068"; +const PDI = "\u2069"; +function match(scope, selector, key) { + if (key === selector) { + return true; + } + if (key instanceof FluentNumber && selector instanceof FluentNumber && key.value === selector.value) { + return true; + } + if (selector instanceof FluentNumber && typeof key === "string") { + let category = scope.memoizeIntlObject(Intl.PluralRules, selector.opts).select(selector.value); + if (key === category) { + return true; + } + } + return false; +} +function getDefault(scope, variants, star) { + if (variants[star]) { + return resolvePattern(scope, variants[star].value); + } + scope.reportError(new RangeError("No default")); + return new FluentNone(); +} +function getArguments(scope, args) { + const positional = []; + const named = Object.create(null); + for (const arg of args) { + if (arg.type === "narg") { + named[arg.name] = resolveExpression(scope, arg.value); + } else { + positional.push(resolveExpression(scope, arg)); + } + } + return { + positional, + named + }; +} +function resolveExpression(scope, expr) { + switch (expr.type) { + case "str": + return expr.value; + case "num": + return new FluentNumber(expr.value, { + minimumFractionDigits: expr.precision + }); + case "var": + return resolveVariableReference(scope, expr); + case "mesg": + return resolveMessageReference(scope, expr); + case "term": + return resolveTermReference(scope, expr); + case "func": + return resolveFunctionReference(scope, expr); + case "select": + return resolveSelectExpression(scope, expr); + default: + return new FluentNone(); + } +} +function resolveVariableReference(scope, { + name +}) { + let arg; + if (scope.params) { + if (Object.prototype.hasOwnProperty.call(scope.params, name)) { + arg = scope.params[name]; + } else { + return new FluentNone(`$${name}`); + } + } else if (scope.args && Object.prototype.hasOwnProperty.call(scope.args, name)) { + arg = scope.args[name]; + } else { + scope.reportError(new ReferenceError(`Unknown variable: $${name}`)); + return new FluentNone(`$${name}`); + } + if (arg instanceof FluentType) { + return arg; + } + switch (typeof arg) { + case "string": + return arg; + case "number": + return new FluentNumber(arg); + case "object": + if (arg instanceof Date) { + return new FluentDateTime(arg.getTime()); + } + default: + scope.reportError(new TypeError(`Variable type not supported: $${name}, ${typeof arg}`)); + return new FluentNone(`$${name}`); + } +} +function resolveMessageReference(scope, { + name, + attr +}) { + const message = scope.bundle._messages.get(name); + if (!message) { + scope.reportError(new ReferenceError(`Unknown message: ${name}`)); + return new FluentNone(name); + } + if (attr) { + const attribute = message.attributes[attr]; + if (attribute) { + return resolvePattern(scope, attribute); + } + scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`)); + return new FluentNone(`${name}.${attr}`); + } + if (message.value) { + return resolvePattern(scope, message.value); + } + scope.reportError(new ReferenceError(`No value: ${name}`)); + return new FluentNone(name); +} +function resolveTermReference(scope, { + name, + attr, + args +}) { + const id = `-${name}`; + const term = scope.bundle._terms.get(id); + if (!term) { + scope.reportError(new ReferenceError(`Unknown term: ${id}`)); + return new FluentNone(id); + } + if (attr) { + const attribute = term.attributes[attr]; + if (attribute) { + scope.params = getArguments(scope, args).named; + const resolved = resolvePattern(scope, attribute); + scope.params = null; + return resolved; + } + scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`)); + return new FluentNone(`${id}.${attr}`); + } + scope.params = getArguments(scope, args).named; + const resolved = resolvePattern(scope, term.value); + scope.params = null; + return resolved; +} +function resolveFunctionReference(scope, { + name, + args +}) { + let func = scope.bundle._functions[name]; + if (!func) { + scope.reportError(new ReferenceError(`Unknown function: ${name}()`)); + return new FluentNone(`${name}()`); + } + if (typeof func !== "function") { + scope.reportError(new TypeError(`Function ${name}() is not callable`)); + return new FluentNone(`${name}()`); + } + try { + let resolved = getArguments(scope, args); + return func(resolved.positional, resolved.named); + } catch (err) { + scope.reportError(err); + return new FluentNone(`${name}()`); + } +} +function resolveSelectExpression(scope, { + selector, + variants, + star +}) { + let sel = resolveExpression(scope, selector); + if (sel instanceof FluentNone) { + return getDefault(scope, variants, star); + } + for (const variant of variants) { + const key = resolveExpression(scope, variant.key); + if (match(scope, sel, key)) { + return resolvePattern(scope, variant.value); + } + } + return getDefault(scope, variants, star); +} +function resolveComplexPattern(scope, ptn) { + if (scope.dirty.has(ptn)) { + scope.reportError(new RangeError("Cyclic reference")); + return new FluentNone(); + } + scope.dirty.add(ptn); + const result = []; + const useIsolating = scope.bundle._useIsolating && ptn.length > 1; + for (const elem of ptn) { + if (typeof elem === "string") { + result.push(scope.bundle._transform(elem)); + continue; + } + scope.placeables++; + if (scope.placeables > MAX_PLACEABLES) { + scope.dirty.delete(ptn); + throw new RangeError(`Too many placeables expanded: ${scope.placeables}, ` + `max allowed is ${MAX_PLACEABLES}`); + } + if (useIsolating) { + result.push(FSI); + } + result.push(resolveExpression(scope, elem).toString(scope)); + if (useIsolating) { + result.push(PDI); + } + } + scope.dirty.delete(ptn); + return result.join(""); +} +function resolvePattern(scope, value) { + if (typeof value === "string") { + return scope.bundle._transform(value); + } + return resolveComplexPattern(scope, value); +} +;// ./node_modules/@fluent/bundle/esm/scope.js + +class Scope { + constructor(bundle, errors, args) { + this.dirty = new WeakSet(); + this.params = null; + this.placeables = 0; + this.bundle = bundle; + this.errors = errors; + this.args = args; + } + reportError(error) { + if (!this.errors || !(error instanceof Error)) { + throw error; + } + this.errors.push(error); + } + memoizeIntlObject(ctor, opts) { + let cache = this.bundle._intls.get(ctor); + if (!cache) { + cache = {}; + this.bundle._intls.set(ctor, cache); + } + let id = JSON.stringify(opts); + if (!cache[id]) { + cache[id] = new ctor(this.bundle.locales, opts); + } + return cache[id]; + } +} +;// ./node_modules/@fluent/bundle/esm/builtins.js + +function values(opts, allowed) { + const unwrapped = Object.create(null); + for (const [name, opt] of Object.entries(opts)) { + if (allowed.includes(name)) { + unwrapped[name] = opt.valueOf(); + } + } + return unwrapped; +} +const NUMBER_ALLOWED = ["unitDisplay", "currencyDisplay", "useGrouping", "minimumIntegerDigits", "minimumFractionDigits", "maximumFractionDigits", "minimumSignificantDigits", "maximumSignificantDigits"]; +function NUMBER(args, opts) { + let arg = args[0]; + if (arg instanceof FluentNone) { + return new FluentNone(`NUMBER(${arg.valueOf()})`); + } + if (arg instanceof FluentNumber) { + return new FluentNumber(arg.valueOf(), { + ...arg.opts, + ...values(opts, NUMBER_ALLOWED) + }); + } + if (arg instanceof FluentDateTime) { + return new FluentNumber(arg.valueOf(), { + ...values(opts, NUMBER_ALLOWED) + }); + } + throw new TypeError("Invalid argument to NUMBER"); +} +const DATETIME_ALLOWED = ["dateStyle", "timeStyle", "fractionalSecondDigits", "dayPeriod", "hour12", "weekday", "era", "year", "month", "day", "hour", "minute", "second", "timeZoneName"]; +function DATETIME(args, opts) { + let arg = args[0]; + if (arg instanceof FluentNone) { + return new FluentNone(`DATETIME(${arg.valueOf()})`); + } + if (arg instanceof FluentDateTime) { + return new FluentDateTime(arg.valueOf(), { + ...arg.opts, + ...values(opts, DATETIME_ALLOWED) + }); + } + if (arg instanceof FluentNumber) { + return new FluentDateTime(arg.valueOf(), { + ...values(opts, DATETIME_ALLOWED) + }); + } + throw new TypeError("Invalid argument to DATETIME"); +} +;// ./node_modules/@fluent/bundle/esm/memoizer.js +const cache = new Map(); +function getMemoizerForLocale(locales) { + const stringLocale = Array.isArray(locales) ? locales.join(" ") : locales; + let memoizer = cache.get(stringLocale); + if (memoizer === undefined) { + memoizer = new Map(); + cache.set(stringLocale, memoizer); + } + return memoizer; +} +;// ./node_modules/@fluent/bundle/esm/bundle.js + + + + + + +class FluentBundle { + constructor(locales, { + functions, + useIsolating = true, + transform = v => v + } = {}) { + this._terms = new Map(); + this._messages = new Map(); + this.locales = Array.isArray(locales) ? locales : [locales]; + this._functions = { + NUMBER: NUMBER, + DATETIME: DATETIME, + ...functions + }; + this._useIsolating = useIsolating; + this._transform = transform; + this._intls = getMemoizerForLocale(locales); + } + hasMessage(id) { + return this._messages.has(id); + } + getMessage(id) { + return this._messages.get(id); + } + addResource(res, { + allowOverrides = false + } = {}) { + const errors = []; + for (let i = 0; i < res.body.length; i++) { + let entry = res.body[i]; + if (entry.id.startsWith("-")) { + if (allowOverrides === false && this._terms.has(entry.id)) { + errors.push(new Error(`Attempt to override an existing term: "${entry.id}"`)); + continue; + } + this._terms.set(entry.id, entry); + } else { + if (allowOverrides === false && this._messages.has(entry.id)) { + errors.push(new Error(`Attempt to override an existing message: "${entry.id}"`)); + continue; + } + this._messages.set(entry.id, entry); + } + } + return errors; + } + formatPattern(pattern, args = null, errors = null) { + if (typeof pattern === "string") { + return this._transform(pattern); + } + let scope = new Scope(this, errors, args); + try { + let value = resolveComplexPattern(scope, pattern); + return value.toString(scope); + } catch (err) { + if (scope.errors && err instanceof Error) { + scope.errors.push(err); + return new FluentNone().toString(scope); + } + throw err; + } + } +} +;// ./node_modules/@fluent/bundle/esm/resource.js + +const RE_MESSAGE_START = /^(-?[a-zA-Z][\w-]*) *= */gm; +const RE_ATTRIBUTE_START = /\.([a-zA-Z][\w-]*) *= */y; +const RE_VARIANT_START = /\*?\[/y; +const RE_NUMBER_LITERAL = /(-?[0-9]+(?:\.([0-9]+))?)/y; +const RE_IDENTIFIER = /([a-zA-Z][\w-]*)/y; +const RE_REFERENCE = /([$-])?([a-zA-Z][\w-]*)(?:\.([a-zA-Z][\w-]*))?/y; +const RE_FUNCTION_NAME = /^[A-Z][A-Z0-9_-]*$/; +const RE_TEXT_RUN = /([^{}\n\r]+)/y; +const RE_STRING_RUN = /([^\\"\n\r]*)/y; +const RE_STRING_ESCAPE = /\\([\\"])/y; +const RE_UNICODE_ESCAPE = /\\u([a-fA-F0-9]{4})|\\U([a-fA-F0-9]{6})/y; +const RE_LEADING_NEWLINES = /^\n+/; +const RE_TRAILING_SPACES = / +$/; +const RE_BLANK_LINES = / *\r?\n/g; +const RE_INDENT = /( *)$/; +const TOKEN_BRACE_OPEN = /{\s*/y; +const TOKEN_BRACE_CLOSE = /\s*}/y; +const TOKEN_BRACKET_OPEN = /\[\s*/y; +const TOKEN_BRACKET_CLOSE = /\s*] */y; +const TOKEN_PAREN_OPEN = /\s*\(\s*/y; +const TOKEN_ARROW = /\s*->\s*/y; +const TOKEN_COLON = /\s*:\s*/y; +const TOKEN_COMMA = /\s*,?\s*/y; +const TOKEN_BLANK = /\s+/y; +class FluentResource { + constructor(source) { + this.body = []; + RE_MESSAGE_START.lastIndex = 0; + let cursor = 0; + while (true) { + let next = RE_MESSAGE_START.exec(source); + if (next === null) { + break; + } + cursor = RE_MESSAGE_START.lastIndex; + try { + this.body.push(parseMessage(next[1])); + } catch (err) { + if (err instanceof SyntaxError) { + continue; + } + throw err; + } + } + function test(re) { + re.lastIndex = cursor; + return re.test(source); + } + function consumeChar(char, errorClass) { + if (source[cursor] === char) { + cursor++; + return true; + } + if (errorClass) { + throw new errorClass(`Expected ${char}`); + } + return false; + } + function consumeToken(re, errorClass) { + if (test(re)) { + cursor = re.lastIndex; + return true; + } + if (errorClass) { + throw new errorClass(`Expected ${re.toString()}`); + } + return false; + } + function match(re) { + re.lastIndex = cursor; + let result = re.exec(source); + if (result === null) { + throw new SyntaxError(`Expected ${re.toString()}`); + } + cursor = re.lastIndex; + return result; + } + function match1(re) { + return match(re)[1]; + } + function parseMessage(id) { + let value = parsePattern(); + let attributes = parseAttributes(); + if (value === null && Object.keys(attributes).length === 0) { + throw new SyntaxError("Expected message value or attributes"); + } + return { + id, + value, + attributes + }; + } + function parseAttributes() { + let attrs = Object.create(null); + while (test(RE_ATTRIBUTE_START)) { + let name = match1(RE_ATTRIBUTE_START); + let value = parsePattern(); + if (value === null) { + throw new SyntaxError("Expected attribute value"); + } + attrs[name] = value; + } + return attrs; + } + function parsePattern() { + let first; + if (test(RE_TEXT_RUN)) { + first = match1(RE_TEXT_RUN); + } + if (source[cursor] === "{" || source[cursor] === "}") { + return parsePatternElements(first ? [first] : [], Infinity); + } + let indent = parseIndent(); + if (indent) { + if (first) { + return parsePatternElements([first, indent], indent.length); + } + indent.value = trim(indent.value, RE_LEADING_NEWLINES); + return parsePatternElements([indent], indent.length); + } + if (first) { + return trim(first, RE_TRAILING_SPACES); + } + return null; + } + function parsePatternElements(elements = [], commonIndent) { + while (true) { + if (test(RE_TEXT_RUN)) { + elements.push(match1(RE_TEXT_RUN)); + continue; + } + if (source[cursor] === "{") { + elements.push(parsePlaceable()); + continue; + } + if (source[cursor] === "}") { + throw new SyntaxError("Unbalanced closing brace"); + } + let indent = parseIndent(); + if (indent) { + elements.push(indent); + commonIndent = Math.min(commonIndent, indent.length); + continue; + } + break; + } + let lastIndex = elements.length - 1; + let lastElement = elements[lastIndex]; + if (typeof lastElement === "string") { + elements[lastIndex] = trim(lastElement, RE_TRAILING_SPACES); + } + let baked = []; + for (let element of elements) { + if (element instanceof Indent) { + element = element.value.slice(0, element.value.length - commonIndent); + } + if (element) { + baked.push(element); + } + } + return baked; + } + function parsePlaceable() { + consumeToken(TOKEN_BRACE_OPEN, SyntaxError); + let selector = parseInlineExpression(); + if (consumeToken(TOKEN_BRACE_CLOSE)) { + return selector; + } + if (consumeToken(TOKEN_ARROW)) { + let variants = parseVariants(); + consumeToken(TOKEN_BRACE_CLOSE, SyntaxError); + return { + type: "select", + selector, + ...variants + }; + } + throw new SyntaxError("Unclosed placeable"); + } + function parseInlineExpression() { + if (source[cursor] === "{") { + return parsePlaceable(); + } + if (test(RE_REFERENCE)) { + let [, sigil, name, attr = null] = match(RE_REFERENCE); + if (sigil === "$") { + return { + type: "var", + name + }; + } + if (consumeToken(TOKEN_PAREN_OPEN)) { + let args = parseArguments(); + if (sigil === "-") { + return { + type: "term", + name, + attr, + args + }; + } + if (RE_FUNCTION_NAME.test(name)) { + return { + type: "func", + name, + args + }; + } + throw new SyntaxError("Function names must be all upper-case"); + } + if (sigil === "-") { + return { + type: "term", + name, + attr, + args: [] + }; + } + return { + type: "mesg", + name, + attr + }; + } + return parseLiteral(); + } + function parseArguments() { + let args = []; + while (true) { + switch (source[cursor]) { + case ")": + cursor++; + return args; + case undefined: + throw new SyntaxError("Unclosed argument list"); + } + args.push(parseArgument()); + consumeToken(TOKEN_COMMA); + } + } + function parseArgument() { + let expr = parseInlineExpression(); + if (expr.type !== "mesg") { + return expr; + } + if (consumeToken(TOKEN_COLON)) { + return { + type: "narg", + name: expr.name, + value: parseLiteral() + }; + } + return expr; + } + function parseVariants() { + let variants = []; + let count = 0; + let star; + while (test(RE_VARIANT_START)) { + if (consumeChar("*")) { + star = count; + } + let key = parseVariantKey(); + let value = parsePattern(); + if (value === null) { + throw new SyntaxError("Expected variant value"); + } + variants[count++] = { + key, + value + }; + } + if (count === 0) { + return null; + } + if (star === undefined) { + throw new SyntaxError("Expected default variant"); + } + return { + variants, + star + }; + } + function parseVariantKey() { + consumeToken(TOKEN_BRACKET_OPEN, SyntaxError); + let key; + if (test(RE_NUMBER_LITERAL)) { + key = parseNumberLiteral(); + } else { + key = { + type: "str", + value: match1(RE_IDENTIFIER) + }; + } + consumeToken(TOKEN_BRACKET_CLOSE, SyntaxError); + return key; + } + function parseLiteral() { + if (test(RE_NUMBER_LITERAL)) { + return parseNumberLiteral(); + } + if (source[cursor] === '"') { + return parseStringLiteral(); + } + throw new SyntaxError("Invalid expression"); + } + function parseNumberLiteral() { + let [, value, fraction = ""] = match(RE_NUMBER_LITERAL); + let precision = fraction.length; + return { + type: "num", + value: parseFloat(value), + precision + }; + } + function parseStringLiteral() { + consumeChar('"', SyntaxError); + let value = ""; + while (true) { + value += match1(RE_STRING_RUN); + if (source[cursor] === "\\") { + value += parseEscapeSequence(); + continue; + } + if (consumeChar('"')) { + return { + type: "str", + value + }; + } + throw new SyntaxError("Unclosed string literal"); + } + } + function parseEscapeSequence() { + if (test(RE_STRING_ESCAPE)) { + return match1(RE_STRING_ESCAPE); + } + if (test(RE_UNICODE_ESCAPE)) { + let [, codepoint4, codepoint6] = match(RE_UNICODE_ESCAPE); + let codepoint = parseInt(codepoint4 || codepoint6, 16); + return codepoint <= 0xd7ff || 0xe000 <= codepoint ? String.fromCodePoint(codepoint) : "�"; + } + throw new SyntaxError("Unknown escape sequence"); + } + function parseIndent() { + let start = cursor; + consumeToken(TOKEN_BLANK); + switch (source[cursor]) { + case ".": + case "[": + case "*": + case "}": + case undefined: + return false; + case "{": + return makeIndent(source.slice(start, cursor)); + } + if (source[cursor - 1] === " ") { + return makeIndent(source.slice(start, cursor)); + } + return false; + } + function trim(text, re) { + return text.replace(re, ""); + } + function makeIndent(blank) { + let value = blank.replace(RE_BLANK_LINES, "\n"); + let length = RE_INDENT.exec(blank)[1].length; + return new Indent(value, length); + } + } +} +class Indent { + constructor(value, length) { + this.value = value; + this.length = length; + } +} +;// ./node_modules/@fluent/bundle/esm/index.js + + + +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.map.js +var esnext_iterator_map = __webpack_require__(1454); +;// ./node_modules/@fluent/dom/esm/overlay.js + +const reOverlay = /<|&#?\w+;/; +const TEXT_LEVEL_ELEMENTS = { + "http://www.w3.org/1999/xhtml": ["em", "strong", "small", "s", "cite", "q", "dfn", "abbr", "data", "time", "code", "var", "samp", "kbd", "sub", "sup", "i", "b", "u", "mark", "bdi", "bdo", "span", "br", "wbr"] +}; +const LOCALIZABLE_ATTRIBUTES = { + "http://www.w3.org/1999/xhtml": { + global: ["title", "aria-label", "aria-valuetext"], + a: ["download"], + area: ["download", "alt"], + input: ["alt", "placeholder"], + menuitem: ["label"], + menu: ["label"], + optgroup: ["label"], + option: ["label"], + track: ["label"], + img: ["alt"], + textarea: ["placeholder"], + th: ["abbr"] + }, + "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul": { + global: ["accesskey", "aria-label", "aria-valuetext", "label", "title", "tooltiptext"], + description: ["value"], + key: ["key", "keycode"], + label: ["value"], + textbox: ["placeholder", "value"] + } +}; +function translateElement(element, translation) { + const { + value + } = translation; + if (typeof value === "string") { + if (element.localName === "title" && element.namespaceURI === "http://www.w3.org/1999/xhtml") { + element.textContent = value; + } else if (!reOverlay.test(value)) { + element.textContent = value; + } else { + const templateElement = element.ownerDocument.createElementNS("http://www.w3.org/1999/xhtml", "template"); + templateElement.innerHTML = value; + overlayChildNodes(templateElement.content, element); + } + } + overlayAttributes(translation, element); +} +function overlayChildNodes(fromFragment, toElement) { + for (const childNode of fromFragment.childNodes) { + if (childNode.nodeType === childNode.TEXT_NODE) { + continue; + } + if (childNode.hasAttribute("data-l10n-name")) { + const sanitized = getNodeForNamedElement(toElement, childNode); + fromFragment.replaceChild(sanitized, childNode); + continue; + } + if (isElementAllowed(childNode)) { + const sanitized = createSanitizedElement(childNode); + fromFragment.replaceChild(sanitized, childNode); + continue; + } + console.warn(`An element of forbidden type "${childNode.localName}" was found in ` + "the translation. Only safe text-level elements and elements with " + "data-l10n-name are allowed."); + fromFragment.replaceChild(createTextNodeFromTextContent(childNode), childNode); + } + toElement.textContent = ""; + toElement.appendChild(fromFragment); +} +function hasAttribute(attributes, name) { + if (!attributes) { + return false; + } + for (let attr of attributes) { + if (attr.name === name) { + return true; + } + } + return false; +} +function overlayAttributes(fromElement, toElement) { + const explicitlyAllowed = toElement.hasAttribute("data-l10n-attrs") ? toElement.getAttribute("data-l10n-attrs").split(",").map(i => i.trim()) : null; + for (const attr of Array.from(toElement.attributes)) { + if (isAttrNameLocalizable(attr.name, toElement, explicitlyAllowed) && !hasAttribute(fromElement.attributes, attr.name)) { + toElement.removeAttribute(attr.name); + } + } + if (!fromElement.attributes) { + return; + } + for (const attr of Array.from(fromElement.attributes)) { + if (isAttrNameLocalizable(attr.name, toElement, explicitlyAllowed) && toElement.getAttribute(attr.name) !== attr.value) { + toElement.setAttribute(attr.name, attr.value); + } + } +} +function getNodeForNamedElement(sourceElement, translatedChild) { + const childName = translatedChild.getAttribute("data-l10n-name"); + const sourceChild = sourceElement.querySelector(`[data-l10n-name="${childName}"]`); + if (!sourceChild) { + console.warn(`An element named "${childName}" wasn't found in the source.`); + return createTextNodeFromTextContent(translatedChild); + } + if (sourceChild.localName !== translatedChild.localName) { + console.warn(`An element named "${childName}" was found in the translation ` + `but its type ${translatedChild.localName} didn't match the ` + `element found in the source (${sourceChild.localName}).`); + return createTextNodeFromTextContent(translatedChild); + } + sourceElement.removeChild(sourceChild); + const clone = sourceChild.cloneNode(false); + return shallowPopulateUsing(translatedChild, clone); +} +function createSanitizedElement(element) { + const clone = element.ownerDocument.createElement(element.localName); + return shallowPopulateUsing(element, clone); +} +function createTextNodeFromTextContent(element) { + return element.ownerDocument.createTextNode(element.textContent); +} +function isElementAllowed(element) { + const allowed = TEXT_LEVEL_ELEMENTS[element.namespaceURI]; + return allowed && allowed.includes(element.localName); +} +function isAttrNameLocalizable(name, element, explicitlyAllowed = null) { + if (explicitlyAllowed && explicitlyAllowed.includes(name)) { + return true; + } + const allowed = LOCALIZABLE_ATTRIBUTES[element.namespaceURI]; + if (!allowed) { + return false; + } + const attrName = name.toLowerCase(); + const elemName = element.localName; + if (allowed.global.includes(attrName)) { + return true; + } + if (!allowed[elemName]) { + return false; + } + if (allowed[elemName].includes(attrName)) { + return true; + } + if (element.namespaceURI === "http://www.w3.org/1999/xhtml" && elemName === "input" && attrName === "value") { + const type = element.type.toLowerCase(); + if (type === "submit" || type === "button" || type === "reset") { + return true; + } + } + return false; +} +function shallowPopulateUsing(fromElement, toElement) { + toElement.textContent = fromElement.textContent; + overlayAttributes(fromElement, toElement); + return toElement; +} +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.filter.js +var esnext_iterator_filter = __webpack_require__(4520); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.for-each.js +var esnext_iterator_for_each = __webpack_require__(3949); +;// ./node_modules/cached-iterable/src/cached_iterable.mjs +class CachedIterable extends Array { + static from(iterable) { + if (iterable instanceof this) { + return iterable; + } + return new this(iterable); + } +} +;// ./node_modules/cached-iterable/src/cached_sync_iterable.mjs + + +class CachedSyncIterable extends CachedIterable { + constructor(iterable) { + super(); + if (Symbol.iterator in Object(iterable)) { + this.iterator = iterable[Symbol.iterator](); + } else { + throw new TypeError("Argument must implement the iteration protocol."); + } + } + [Symbol.iterator]() { + const cached = this; + let cur = 0; + return { + next() { + if (cached.length <= cur) { + cached.push(cached.iterator.next()); + } + return cached[cur++]; + } + }; + } + touchNext(count = 1) { + let idx = 0; + while (idx++ < count) { + const last = this[this.length - 1]; + if (last && last.done) { + break; + } + this.push(this.iterator.next()); + } + return this[this.length - 1]; + } +} +;// ./node_modules/cached-iterable/src/cached_async_iterable.mjs + + +class CachedAsyncIterable extends CachedIterable { + constructor(iterable) { + super(); + if (Symbol.asyncIterator in Object(iterable)) { + this.iterator = iterable[Symbol.asyncIterator](); + } else if (Symbol.iterator in Object(iterable)) { + this.iterator = iterable[Symbol.iterator](); + } else { + throw new TypeError("Argument must implement the iteration protocol."); + } + } + [Symbol.asyncIterator]() { + const cached = this; + let cur = 0; + return { + async next() { + if (cached.length <= cur) { + cached.push(cached.iterator.next()); + } + return cached[cur++]; + } + }; + } + async touchNext(count = 1) { + let idx = 0; + while (idx++ < count) { + const last = this[this.length - 1]; + if (last && (await last).done) { + break; + } + this.push(this.iterator.next()); + } + return this[this.length - 1]; + } +} +;// ./node_modules/cached-iterable/src/index.mjs + + +;// ./node_modules/@fluent/dom/esm/localization.js + + + + + + + + + + + + +class Localization { + constructor(resourceIds = [], generateBundles) { + this.resourceIds = resourceIds; + this.generateBundles = generateBundles; + this.onChange(true); + } + addResourceIds(resourceIds, eager = false) { + this.resourceIds.push(...resourceIds); + this.onChange(eager); + return this.resourceIds.length; + } + removeResourceIds(resourceIds) { + this.resourceIds = this.resourceIds.filter(r => !resourceIds.includes(r)); + this.onChange(); + return this.resourceIds.length; + } + async formatWithFallback(keys, method) { + const translations = []; + let hasAtLeastOneBundle = false; + for await (const bundle of this.bundles) { + hasAtLeastOneBundle = true; + const missingIds = keysFromBundle(method, bundle, keys, translations); + if (missingIds.size === 0) { + break; + } + if (typeof console !== "undefined") { + const locale = bundle.locales[0]; + const ids = Array.from(missingIds).join(", "); + console.warn(`[fluent] Missing translations in ${locale}: ${ids}`); + } + } + if (!hasAtLeastOneBundle && typeof console !== "undefined") { + console.warn(`[fluent] Request for keys failed because no resource bundles got generated. + keys: ${JSON.stringify(keys)}. + resourceIds: ${JSON.stringify(this.resourceIds)}.`); + } + return translations; + } + formatMessages(keys) { + return this.formatWithFallback(keys, messageFromBundle); + } + formatValues(keys) { + return this.formatWithFallback(keys, valueFromBundle); + } + async formatValue(id, args) { + const [val] = await this.formatValues([{ + id, + args + }]); + return val; + } + handleEvent() { + this.onChange(); + } + onChange(eager = false) { + this.bundles = CachedAsyncIterable.from(this.generateBundles(this.resourceIds)); + if (eager) { + this.bundles.touchNext(2); + } + } +} +function valueFromBundle(bundle, errors, message, args) { + if (message.value) { + return bundle.formatPattern(message.value, args, errors); + } + return null; +} +function messageFromBundle(bundle, errors, message, args) { + const formatted = { + value: null, + attributes: null + }; + if (message.value) { + formatted.value = bundle.formatPattern(message.value, args, errors); + } + let attrNames = Object.keys(message.attributes); + if (attrNames.length > 0) { + formatted.attributes = new Array(attrNames.length); + for (let [i, name] of attrNames.entries()) { + let value = bundle.formatPattern(message.attributes[name], args, errors); + formatted.attributes[i] = { + name, + value + }; + } + } + return formatted; +} +function keysFromBundle(method, bundle, keys, translations) { + const messageErrors = []; + const missingIds = new Set(); + keys.forEach(({ + id, + args + }, i) => { + if (translations[i] !== undefined) { + return; + } + let message = bundle.getMessage(id); + if (message) { + messageErrors.length = 0; + translations[i] = method(bundle, messageErrors, message, args); + if (messageErrors.length > 0 && typeof console !== "undefined") { + const locale = bundle.locales[0]; + const errors = messageErrors.join(", "); + console.warn(`[fluent][resolver] errors in ${locale}/${id}: ${errors}.`); + } + } else { + missingIds.add(id); + } + }); + return missingIds; +} +;// ./node_modules/@fluent/dom/esm/dom_localization.js + + + + + + + + + + + + +const L10NID_ATTR_NAME = "data-l10n-id"; +const L10NARGS_ATTR_NAME = "data-l10n-args"; +const L10N_ELEMENT_QUERY = `[${L10NID_ATTR_NAME}]`; +class DOMLocalization extends Localization { + constructor(resourceIds, generateBundles) { + super(resourceIds, generateBundles); + this.roots = new Set(); + this.pendingrAF = null; + this.pendingElements = new Set(); + this.windowElement = null; + this.mutationObserver = null; + this.observerConfig = { + attributes: true, + characterData: false, + childList: true, + subtree: true, + attributeFilter: [L10NID_ATTR_NAME, L10NARGS_ATTR_NAME] + }; + } + onChange(eager = false) { + super.onChange(eager); + if (this.roots) { + this.translateRoots(); + } + } + setAttributes(element, id, args) { + element.setAttribute(L10NID_ATTR_NAME, id); + if (args) { + element.setAttribute(L10NARGS_ATTR_NAME, JSON.stringify(args)); + } else { + element.removeAttribute(L10NARGS_ATTR_NAME); + } + return element; + } + getAttributes(element) { + return { + id: element.getAttribute(L10NID_ATTR_NAME), + args: JSON.parse(element.getAttribute(L10NARGS_ATTR_NAME) || null) + }; + } + connectRoot(newRoot) { + for (const root of this.roots) { + if (root === newRoot || root.contains(newRoot) || newRoot.contains(root)) { + throw new Error("Cannot add a root that overlaps with existing root."); + } + } + if (this.windowElement) { + if (this.windowElement !== newRoot.ownerDocument.defaultView) { + throw new Error(`Cannot connect a root: + DOMLocalization already has a root from a different window.`); + } + } else { + this.windowElement = newRoot.ownerDocument.defaultView; + this.mutationObserver = new this.windowElement.MutationObserver(mutations => this.translateMutations(mutations)); + } + this.roots.add(newRoot); + this.mutationObserver.observe(newRoot, this.observerConfig); + } + disconnectRoot(root) { + this.roots.delete(root); + this.pauseObserving(); + if (this.roots.size === 0) { + this.mutationObserver = null; + if (this.windowElement && this.pendingrAF) { + this.windowElement.cancelAnimationFrame(this.pendingrAF); + } + this.windowElement = null; + this.pendingrAF = null; + this.pendingElements.clear(); + return true; + } + this.resumeObserving(); + return false; + } + translateRoots() { + const roots = Array.from(this.roots); + return Promise.all(roots.map(root => this.translateFragment(root))); + } + pauseObserving() { + if (!this.mutationObserver) { + return; + } + this.translateMutations(this.mutationObserver.takeRecords()); + this.mutationObserver.disconnect(); + } + resumeObserving() { + if (!this.mutationObserver) { + return; + } + for (const root of this.roots) { + this.mutationObserver.observe(root, this.observerConfig); + } + } + translateMutations(mutations) { + for (const mutation of mutations) { + switch (mutation.type) { + case "attributes": + if (mutation.target.hasAttribute("data-l10n-id")) { + this.pendingElements.add(mutation.target); + } + break; + case "childList": + for (const addedNode of mutation.addedNodes) { + if (addedNode.nodeType === addedNode.ELEMENT_NODE) { + if (addedNode.childElementCount) { + for (const element of this.getTranslatables(addedNode)) { + this.pendingElements.add(element); + } + } else if (addedNode.hasAttribute(L10NID_ATTR_NAME)) { + this.pendingElements.add(addedNode); + } + } + } + break; + } + } + if (this.pendingElements.size > 0) { + if (this.pendingrAF === null) { + this.pendingrAF = this.windowElement.requestAnimationFrame(() => { + this.translateElements(Array.from(this.pendingElements)); + this.pendingElements.clear(); + this.pendingrAF = null; + }); + } + } + } + translateFragment(frag) { + return this.translateElements(this.getTranslatables(frag)); + } + async translateElements(elements) { + if (!elements.length) { + return undefined; + } + const keys = elements.map(this.getKeysForElement); + const translations = await this.formatMessages(keys); + return this.applyTranslations(elements, translations); + } + applyTranslations(elements, translations) { + this.pauseObserving(); + for (let i = 0; i < elements.length; i++) { + if (translations[i] !== undefined) { + translateElement(elements[i], translations[i]); + } + } + this.resumeObserving(); + } + getTranslatables(element) { + const nodes = Array.from(element.querySelectorAll(L10N_ELEMENT_QUERY)); + if (typeof element.hasAttribute === "function" && element.hasAttribute(L10NID_ATTR_NAME)) { + nodes.push(element); + } + return nodes; + } + getKeysForElement(element) { + return { + id: element.getAttribute(L10NID_ATTR_NAME), + args: JSON.parse(element.getAttribute(L10NARGS_ATTR_NAME) || null) + }; + } +} +;// ./node_modules/@fluent/dom/esm/index.js + + +;// ./web/l10n.js + + + + + + + + +class L10n { + #dir; + #elements; + #lang; + #l10n; + constructor({ + lang, + isRTL + }, l10n = null) { + this.#lang = L10n.#fixupLangCode(lang); + this.#l10n = l10n; + this.#dir = isRTL ?? L10n.#isRTL(this.#lang) ? "rtl" : "ltr"; + } + _setL10n(l10n) { + this.#l10n = l10n; + } + getLanguage() { + return this.#lang; + } + getDirection() { + return this.#dir; + } + async get(ids, args = null, fallback) { + if (Array.isArray(ids)) { + ids = ids.map(id => ({ + id + })); + const messages = await this.#l10n.formatMessages(ids); + return messages.map(message => message.value); + } + const messages = await this.#l10n.formatMessages([{ + id: ids, + args + }]); + return messages[0]?.value || fallback; + } + async translate(element) { + (this.#elements ||= new Set()).add(element); + try { + this.#l10n.connectRoot(element); + await this.#l10n.translateRoots(); + } catch {} + } + async translateOnce(element) { + try { + await this.#l10n.translateElements([element]); + } catch (ex) { + console.error(`translateOnce: "${ex}".`); + } + } + async destroy() { + if (this.#elements) { + for (const element of this.#elements) { + this.#l10n.disconnectRoot(element); + } + this.#elements.clear(); + this.#elements = null; + } + this.#l10n.pauseObserving(); + } + pause() { + this.#l10n.pauseObserving(); + } + resume() { + this.#l10n.resumeObserving(); + } + static #fixupLangCode(langCode) { + langCode = langCode?.toLowerCase() || "en-us"; + const PARTIAL_LANG_CODES = { + en: "en-us", + es: "es-es", + fy: "fy-nl", + ga: "ga-ie", + gu: "gu-in", + hi: "hi-in", + hy: "hy-am", + nb: "nb-no", + ne: "ne-np", + nn: "nn-no", + pa: "pa-in", + pt: "pt-pt", + sv: "sv-se", + zh: "zh-cn" + }; + return PARTIAL_LANG_CODES[langCode] || langCode; + } + static #isRTL(lang) { + const shortCode = lang.split("-", 1)[0]; + return ["ar", "he", "fa", "ps", "ur"].includes(shortCode); + } +} +const GenericL10n = null; + +;// ./web/genericl10n.js + + + + + + + + +function createBundle(lang, text) { + const resource = new FluentResource(text); + const bundle = new FluentBundle(lang); + const errors = bundle.addResource(resource); + if (errors.length) { + console.error("L10n errors", errors); + } + return bundle; +} +class genericl10n_GenericL10n extends L10n { + constructor(lang) { + super({ + lang + }); + const generateBundles = !lang ? genericl10n_GenericL10n.#generateBundlesFallback.bind(genericl10n_GenericL10n, this.getLanguage()) : genericl10n_GenericL10n.#generateBundles.bind(genericl10n_GenericL10n, "en-us", this.getLanguage()); + this._setL10n(new DOMLocalization([], generateBundles)); + } + static async *#generateBundles(defaultLang, baseLang) { + const { + baseURL, + paths + } = await this.#getPaths(); + const langs = [baseLang]; + if (defaultLang !== baseLang) { + const shortLang = baseLang.split("-", 1)[0]; + if (shortLang !== baseLang) { + langs.push(shortLang); + } + langs.push(defaultLang); + } + for (const lang of langs) { + const bundle = await this.#createBundle(lang, baseURL, paths); + if (bundle) { + yield bundle; + } else if (lang === "en-us") { + yield this.#createBundleFallback(lang); + } + } + } + static async #createBundle(lang, baseURL, paths) { + const path = paths[lang]; + if (!path) { + return null; + } + const url = new URL(path, baseURL); + const text = await fetchData(url, "text"); + return createBundle(lang, text); + } + static async #getPaths() { + try { + const { + href + } = document.querySelector(`link[type="application/l10n"]`); + const paths = await fetchData(href, "json"); + return { + baseURL: href.replace(/[^/]*$/, "") || "./", + paths + }; + } catch {} + return { + baseURL: "./", + paths: Object.create(null) + }; + } + static async *#generateBundlesFallback(lang) { + yield this.#createBundleFallback(lang); + } + static async #createBundleFallback(lang) { + const text = "pdfjs-previous-button =\n .title = Previous Page\npdfjs-previous-button-label = Previous\npdfjs-next-button =\n .title = Next Page\npdfjs-next-button-label = Next\npdfjs-page-input =\n .title = Page\npdfjs-of-pages = of { $pagesCount }\npdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })\npdfjs-zoom-out-button =\n .title = Zoom Out\npdfjs-zoom-out-button-label = Zoom Out\npdfjs-zoom-in-button =\n .title = Zoom In\npdfjs-zoom-in-button-label = Zoom In\npdfjs-zoom-select =\n .title = Zoom\npdfjs-presentation-mode-button =\n .title = Switch to Presentation Mode\npdfjs-presentation-mode-button-label = Presentation Mode\npdfjs-open-file-button =\n .title = Open File\npdfjs-open-file-button-label = Open\npdfjs-print-button =\n .title = Print\npdfjs-print-button-label = Print\npdfjs-save-button =\n .title = Save\npdfjs-save-button-label = Save\npdfjs-download-button =\n .title = Download\npdfjs-download-button-label = Download\npdfjs-bookmark-button =\n .title = Current Page (View URL from Current Page)\npdfjs-bookmark-button-label = Current Page\npdfjs-tools-button =\n .title = Tools\npdfjs-tools-button-label = Tools\npdfjs-first-page-button =\n .title = Go to First Page\npdfjs-first-page-button-label = Go to First Page\npdfjs-last-page-button =\n .title = Go to Last Page\npdfjs-last-page-button-label = Go to Last Page\npdfjs-page-rotate-cw-button =\n .title = Rotate Clockwise\npdfjs-page-rotate-cw-button-label = Rotate Clockwise\npdfjs-page-rotate-ccw-button =\n .title = Rotate Counterclockwise\npdfjs-page-rotate-ccw-button-label = Rotate Counterclockwise\npdfjs-cursor-text-select-tool-button =\n .title = Enable Text Selection Tool\npdfjs-cursor-text-select-tool-button-label = Text Selection Tool\npdfjs-cursor-hand-tool-button =\n .title = Enable Hand Tool\npdfjs-cursor-hand-tool-button-label = Hand Tool\npdfjs-scroll-page-button =\n .title = Use Page Scrolling\npdfjs-scroll-page-button-label = Page Scrolling\npdfjs-scroll-vertical-button =\n .title = Use Vertical Scrolling\npdfjs-scroll-vertical-button-label = Vertical Scrolling\npdfjs-scroll-horizontal-button =\n .title = Use Horizontal Scrolling\npdfjs-scroll-horizontal-button-label = Horizontal Scrolling\npdfjs-scroll-wrapped-button =\n .title = Use Wrapped Scrolling\npdfjs-scroll-wrapped-button-label = Wrapped Scrolling\npdfjs-spread-none-button =\n .title = Do not join page spreads\npdfjs-spread-none-button-label = No Spreads\npdfjs-spread-odd-button =\n .title = Join page spreads starting with odd-numbered pages\npdfjs-spread-odd-button-label = Odd Spreads\npdfjs-spread-even-button =\n .title = Join page spreads starting with even-numbered pages\npdfjs-spread-even-button-label = Even Spreads\npdfjs-document-properties-button =\n .title = Document Properties\u2026\npdfjs-document-properties-button-label = Document Properties\u2026\npdfjs-document-properties-file-name = File name:\npdfjs-document-properties-file-size = File size:\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Title:\npdfjs-document-properties-author = Author:\npdfjs-document-properties-subject = Subject:\npdfjs-document-properties-keywords = Keywords:\npdfjs-document-properties-creation-date = Creation Date:\npdfjs-document-properties-modification-date = Modification Date:\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Creator:\npdfjs-document-properties-producer = PDF Producer:\npdfjs-document-properties-version = PDF Version:\npdfjs-document-properties-page-count = Page Count:\npdfjs-document-properties-page-size = Page Size:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portrait\npdfjs-document-properties-page-size-orientation-landscape = landscape\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\npdfjs-document-properties-page-size-dimension-string = { $width } \xD7 { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } \xD7 { $height } { $unit } ({ $name }, { $orientation })\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Yes\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Close\npdfjs-print-progress-message = Preparing document for printing\u2026\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancel\npdfjs-printing-not-supported = Warning: Printing is not fully supported by this browser.\npdfjs-printing-not-ready = Warning: The PDF is not fully loaded for printing.\npdfjs-toggle-sidebar-button =\n .title = Toggle Sidebar\npdfjs-toggle-sidebar-notification-button =\n .title = Toggle Sidebar (document contains outline/attachments/layers)\npdfjs-toggle-sidebar-button-label = Toggle Sidebar\npdfjs-document-outline-button =\n .title = Show Document Outline (double-click to expand/collapse all items)\npdfjs-document-outline-button-label = Document Outline\npdfjs-attachments-button =\n .title = Show Attachments\npdfjs-attachments-button-label = Attachments\npdfjs-layers-button =\n .title = Show Layers (double-click to reset all layers to the default state)\npdfjs-layers-button-label = Layers\npdfjs-thumbs-button =\n .title = Show Thumbnails\npdfjs-thumbs-button-label = Thumbnails\npdfjs-current-outline-item-button =\n .title = Find Current Outline Item\npdfjs-current-outline-item-button-label = Current Outline Item\npdfjs-findbar-button =\n .title = Find in Document\npdfjs-findbar-button-label = Find\npdfjs-additional-layers = Additional Layers\npdfjs-thumb-page-title =\n .title = Page { $page }\npdfjs-thumb-page-canvas =\n .aria-label = Thumbnail of Page { $page }\npdfjs-find-input =\n .title = Find\n .placeholder = Find in document\u2026\npdfjs-find-previous-button =\n .title = Find the previous occurrence of the phrase\npdfjs-find-previous-button-label = Previous\npdfjs-find-next-button =\n .title = Find the next occurrence of the phrase\npdfjs-find-next-button-label = Next\npdfjs-find-highlight-checkbox = Highlight All\npdfjs-find-match-case-checkbox-label = Match Case\npdfjs-find-match-diacritics-checkbox-label = Match Diacritics\npdfjs-find-entire-word-checkbox-label = Whole Words\npdfjs-find-reached-top = Reached top of document, continued from bottom\npdfjs-find-reached-bottom = Reached end of document, continued from top\npdfjs-find-match-count =\n { $total ->\n [one] { $current } of { $total } match\n *[other] { $current } of { $total } matches\n }\npdfjs-find-match-count-limit =\n { $limit ->\n [one] More than { $limit } match\n *[other] More than { $limit } matches\n }\npdfjs-find-not-found = Phrase not found\npdfjs-page-scale-width = Page Width\npdfjs-page-scale-fit = Page Fit\npdfjs-page-scale-auto = Automatic Zoom\npdfjs-page-scale-actual = Actual Size\npdfjs-page-scale-percent = { $scale }%\npdfjs-page-landmark =\n .aria-label = Page { $page }\npdfjs-loading-error = An error occurred while loading the PDF.\npdfjs-invalid-file-error = Invalid or corrupted PDF file.\npdfjs-missing-file-error = Missing PDF file.\npdfjs-unexpected-response-error = Unexpected server response.\npdfjs-rendering-error = An error occurred while rendering the page.\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-text-annotation-type =\n .alt = [{ $type } Annotation]\npdfjs-password-label = Enter the password to open this PDF file.\npdfjs-password-invalid = Invalid password. Please try again.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Cancel\npdfjs-web-fonts-disabled = Web fonts are disabled: unable to use embedded PDF fonts.\npdfjs-editor-free-text-button =\n .title = Text\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n .title = Draw\npdfjs-editor-ink-button-label = Draw\npdfjs-editor-stamp-button =\n .title = Add or edit images\npdfjs-editor-stamp-button-label = Add or edit images\npdfjs-editor-highlight-button =\n .title = Highlight\npdfjs-editor-highlight-button-label = Highlight\npdfjs-highlight-floating-button1 =\n .title = Highlight\n .aria-label = Highlight\npdfjs-highlight-floating-button-label = Highlight\npdfjs-editor-remove-ink-button =\n .title = Remove drawing\npdfjs-editor-remove-freetext-button =\n .title = Remove text\npdfjs-editor-remove-stamp-button =\n .title = Remove image\npdfjs-editor-remove-highlight-button =\n .title = Remove highlight\npdfjs-editor-free-text-color-input = Color\npdfjs-editor-free-text-size-input = Size\npdfjs-editor-ink-color-input = Color\npdfjs-editor-ink-thickness-input = Thickness\npdfjs-editor-ink-opacity-input = Opacity\npdfjs-editor-stamp-add-image-button =\n .title = Add image\npdfjs-editor-stamp-add-image-button-label = Add image\npdfjs-editor-free-highlight-thickness-input = Thickness\npdfjs-editor-free-highlight-thickness-title =\n .title = Change thickness when highlighting items other than text\npdfjs-free-text2 =\n .aria-label = Text Editor\n .default-content = Start typing\u2026\npdfjs-ink =\n .aria-label = Draw Editor\npdfjs-ink-canvas =\n .aria-label = User-created image\npdfjs-editor-alt-text-button =\n .aria-label = Alt text\npdfjs-editor-alt-text-button-label = Alt text\npdfjs-editor-alt-text-edit-button =\n .aria-label = Edit alt text\npdfjs-editor-alt-text-dialog-label = Choose an option\npdfjs-editor-alt-text-dialog-description = Alt text (alternative text) helps when people can\u2019t see the image or when it doesn\u2019t load.\npdfjs-editor-alt-text-add-description-label = Add a description\npdfjs-editor-alt-text-add-description-description = Aim for 1-2 sentences that describe the subject, setting, or actions.\npdfjs-editor-alt-text-mark-decorative-label = Mark as decorative\npdfjs-editor-alt-text-mark-decorative-description = This is used for ornamental images, like borders or watermarks.\npdfjs-editor-alt-text-cancel-button = Cancel\npdfjs-editor-alt-text-save-button = Save\npdfjs-editor-alt-text-decorative-tooltip = Marked as decorative\npdfjs-editor-alt-text-textarea =\n .placeholder = For example, \u201CA young man sits down at a table to eat a meal\u201D\npdfjs-editor-resizer-top-left =\n .aria-label = Top left corner \u2014 resize\npdfjs-editor-resizer-top-middle =\n .aria-label = Top middle \u2014 resize\npdfjs-editor-resizer-top-right =\n .aria-label = Top right corner \u2014 resize\npdfjs-editor-resizer-middle-right =\n .aria-label = Middle right \u2014 resize\npdfjs-editor-resizer-bottom-right =\n .aria-label = Bottom right corner \u2014 resize\npdfjs-editor-resizer-bottom-middle =\n .aria-label = Bottom middle \u2014 resize\npdfjs-editor-resizer-bottom-left =\n .aria-label = Bottom left corner \u2014 resize\npdfjs-editor-resizer-middle-left =\n .aria-label = Middle left \u2014 resize\npdfjs-editor-highlight-colorpicker-label = Highlight color\npdfjs-editor-colorpicker-button =\n .title = Change color\npdfjs-editor-colorpicker-dropdown =\n .aria-label = Color choices\npdfjs-editor-colorpicker-yellow =\n .title = Yellow\npdfjs-editor-colorpicker-green =\n .title = Green\npdfjs-editor-colorpicker-blue =\n .title = Blue\npdfjs-editor-colorpicker-pink =\n .title = Pink\npdfjs-editor-colorpicker-red =\n .title = Red\npdfjs-editor-highlight-show-all-button-label = Show all\npdfjs-editor-highlight-show-all-button =\n .title = Show all\npdfjs-editor-new-alt-text-dialog-edit-label = Edit alt text (image description)\npdfjs-editor-new-alt-text-dialog-add-label = Add alt text (image description)\npdfjs-editor-new-alt-text-textarea =\n .placeholder = Write your description here\u2026\npdfjs-editor-new-alt-text-description = Short description for people who can\u2019t see the image or when the image doesn\u2019t load.\npdfjs-editor-new-alt-text-disclaimer1 = This alt text was created automatically and may be inaccurate.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Learn more\npdfjs-editor-new-alt-text-create-automatically-button-label = Create alt text automatically\npdfjs-editor-new-alt-text-not-now-button = Not now\npdfjs-editor-new-alt-text-error-title = Couldn\u2019t create alt text automatically\npdfjs-editor-new-alt-text-error-description = Please write your own alt text or try again later.\npdfjs-editor-new-alt-text-error-close-button = Close\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\n .aria-valuetext = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\npdfjs-editor-new-alt-text-added-button =\n .aria-label = Alt text added\npdfjs-editor-new-alt-text-added-button-label = Alt text added\npdfjs-editor-new-alt-text-missing-button =\n .aria-label = Missing alt text\npdfjs-editor-new-alt-text-missing-button-label = Missing alt text\npdfjs-editor-new-alt-text-to-review-button =\n .aria-label = Review alt text\npdfjs-editor-new-alt-text-to-review-button-label = Review alt text\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Created automatically: { $generatedAltText }\npdfjs-image-alt-text-settings-button =\n .title = Image alt text settings\npdfjs-image-alt-text-settings-button-label = Image alt text settings\npdfjs-editor-alt-text-settings-dialog-label = Image alt text settings\npdfjs-editor-alt-text-settings-automatic-title = Automatic alt text\npdfjs-editor-alt-text-settings-create-model-button-label = Create alt text automatically\npdfjs-editor-alt-text-settings-create-model-description = Suggests descriptions to help people who can\u2019t see the image or when the image doesn\u2019t load.\npdfjs-editor-alt-text-settings-download-model-label = Alt text AI model ({ $totalSize } MB)\npdfjs-editor-alt-text-settings-ai-model-description = Runs locally on your device so your data stays private. Required for automatic alt text.\npdfjs-editor-alt-text-settings-delete-model-button = Delete\npdfjs-editor-alt-text-settings-download-model-button = Download\npdfjs-editor-alt-text-settings-downloading-model-button = Downloading\u2026\npdfjs-editor-alt-text-settings-editor-title = Alt text editor\npdfjs-editor-alt-text-settings-show-dialog-button-label = Show alt text editor right away when adding an image\npdfjs-editor-alt-text-settings-show-dialog-description = Helps you make sure all your images have alt text.\npdfjs-editor-alt-text-settings-close-button = Close\npdfjs-editor-undo-bar-message-highlight = Highlight removed\npdfjs-editor-undo-bar-message-freetext = Text removed\npdfjs-editor-undo-bar-message-ink = Drawing removed\npdfjs-editor-undo-bar-message-stamp = Image removed\npdfjs-editor-undo-bar-message-multiple =\n { $count ->\n [one] { $count } annotation removed\n *[other] { $count } annotations removed\n }\npdfjs-editor-undo-bar-undo-button =\n .title = Undo\npdfjs-editor-undo-bar-undo-button-label = Undo\npdfjs-editor-undo-bar-close-button =\n .title = Close\npdfjs-editor-undo-bar-close-button-label = Close"; + return createBundle(lang, text); + } +} + +;// ./web/generic_scripting.js + +async function docProperties(pdfDocument) { + const url = "", + baseUrl = url.split("#", 1)[0]; + let { + info, + metadata, + contentDispositionFilename, + contentLength + } = await pdfDocument.getMetadata(); + if (!contentLength) { + const { + length + } = await pdfDocument.getDownloadInfo(); + contentLength = length; + } + return { + ...info, + baseURL: baseUrl, + filesize: contentLength, + filename: contentDispositionFilename || getPdfFilenameFromUrl(url), + metadata: metadata?.getRaw(), + authors: metadata?.get("dc:creator"), + numPages: pdfDocument.numPages, + URL: url + }; +} +class GenericScripting { + constructor(sandboxBundleSrc) { + this._ready = new Promise((resolve, reject) => { + const sandbox = import(/*webpackIgnore: true*/sandboxBundleSrc); + sandbox.then(pdfjsSandbox => { + resolve(pdfjsSandbox.QuickJSSandbox()); + }).catch(reject); + }); + } + async createSandbox(data) { + const sandbox = await this._ready; + sandbox.create(data); + } + async dispatchEventInSandbox(event) { + const sandbox = await this._ready; + setTimeout(() => sandbox.dispatchEvent(event), 0); + } + async destroySandbox() { + const sandbox = await this._ready; + sandbox.nukeSandbox(); + } +} + +;// ./web/genericcom.js + + + + + + + +function initCom(app) {} +class Preferences extends BasePreferences { + async _writeToStorage(prefObj) { + localStorage.setItem("pdfjs.preferences", JSON.stringify(prefObj)); + } + async _readFromStorage(prefObj) { + return { + prefs: JSON.parse(localStorage.getItem("pdfjs.preferences")) + }; + } +} +class ExternalServices extends BaseExternalServices { + async createL10n() { + return new genericl10n_GenericL10n(AppOptions.get("localeProperties")?.lang); + } + createScripting() { + return new GenericScripting(AppOptions.get("sandboxBundleSrc")); + } +} +class MLManager { + async isEnabledFor(_name) { + return false; + } + async deleteModel(_service) { + return null; + } + isReady(_name) { + return false; + } + guess(_data) {} + toggleService(_name, _enabled) {} + static getFakeMLManager(options) { + return new FakeMLManager(options); + } +} +class FakeMLManager { + eventBus = null; + hasProgress = false; + constructor({ + enableGuessAltText, + enableAltTextModelDownload + }) { + this.enableGuessAltText = enableGuessAltText; + this.enableAltTextModelDownload = enableAltTextModelDownload; + } + setEventBus(eventBus, abortSignal) { + this.eventBus = eventBus; + } + async isEnabledFor(_name) { + return this.enableGuessAltText; + } + async deleteModel(_name) { + this.enableAltTextModelDownload = false; + return null; + } + async loadModel(_name) {} + async downloadModel(_name) { + this.hasProgress = true; + const { + promise, + resolve + } = Promise.withResolvers(); + const total = 1e8; + const end = 1.5 * total; + const increment = 5e6; + let loaded = 0; + const id = setInterval(() => { + loaded += increment; + if (loaded <= end) { + this.eventBus.dispatch("loadaiengineprogress", { + source: this, + detail: { + total, + totalLoaded: loaded, + finished: loaded + increment >= end + } + }); + return; + } + clearInterval(id); + this.hasProgress = false; + this.enableAltTextModelDownload = true; + resolve(true); + }, 900); + return promise; + } + isReady(_name) { + return this.enableAltTextModelDownload; + } + guess({ + request: { + data + } + }) { + return new Promise(resolve => { + setTimeout(() => { + resolve(data ? { + output: "Fake alt text." + } : { + error: true + }); + }, 3000); + }); + } + toggleService(_name, enabled) { + this.enableGuessAltText = enabled; + } +} + +;// ./web/new_alt_text_manager.js + + + + + + + + + + +class NewAltTextManager { + #boundCancel = this.#cancel.bind(this); + #createAutomaticallyButton; + #currentEditor = null; + #cancelButton; + #descriptionContainer; + #dialog; + #disclaimer; + #downloadModel; + #downloadModelDescription; + #eventBus; + #firstTime = false; + #guessedAltText; + #hasAI = null; + #isEditing = null; + #imagePreview; + #imageData; + #isAILoading = false; + #wasAILoading = false; + #learnMore; + #notNowButton; + #overlayManager; + #textarea; + #title; + #uiManager; + #previousAltText = null; + constructor({ + descriptionContainer, + dialog, + imagePreview, + cancelButton, + disclaimer, + notNowButton, + saveButton, + textarea, + learnMore, + errorCloseButton, + createAutomaticallyButton, + downloadModel, + downloadModelDescription, + title + }, overlayManager, eventBus) { + this.#cancelButton = cancelButton; + this.#createAutomaticallyButton = createAutomaticallyButton; + this.#descriptionContainer = descriptionContainer; + this.#dialog = dialog; + this.#disclaimer = disclaimer; + this.#notNowButton = notNowButton; + this.#imagePreview = imagePreview; + this.#textarea = textarea; + this.#learnMore = learnMore; + this.#title = title; + this.#downloadModel = downloadModel; + this.#downloadModelDescription = downloadModelDescription; + this.#overlayManager = overlayManager; + this.#eventBus = eventBus; + dialog.addEventListener("close", this.#close.bind(this)); + dialog.addEventListener("contextmenu", event => { + if (event.target !== this.#textarea) { + event.preventDefault(); + } + }); + cancelButton.addEventListener("click", this.#boundCancel); + notNowButton.addEventListener("click", this.#boundCancel); + saveButton.addEventListener("click", this.#save.bind(this)); + errorCloseButton.addEventListener("click", () => { + this.#toggleError(false); + }); + createAutomaticallyButton.addEventListener("click", async () => { + const checked = createAutomaticallyButton.getAttribute("aria-pressed") !== "true"; + this.#currentEditor._reportTelemetry({ + action: "pdfjs.image.alt_text.ai_generation_check", + data: { + status: checked + } + }); + if (this.#uiManager) { + this.#uiManager.setPreference("enableGuessAltText", checked); + await this.#uiManager.mlManager.toggleService("altText", checked); + } + this.#toggleGuessAltText(checked, false); + }); + textarea.addEventListener("focus", () => { + this.#wasAILoading = this.#isAILoading; + this.#toggleLoading(false); + this.#toggleTitleAndDisclaimer(); + }); + textarea.addEventListener("blur", () => { + if (!textarea.value) { + this.#toggleLoading(this.#wasAILoading); + } + this.#toggleTitleAndDisclaimer(); + }); + textarea.addEventListener("input", () => { + this.#toggleTitleAndDisclaimer(); + }); + eventBus._on("enableguessalttext", ({ + value + }) => { + this.#toggleGuessAltText(value, false); + }); + this.#overlayManager.register(dialog); + this.#learnMore.addEventListener("click", () => { + this.#currentEditor._reportTelemetry({ + action: "pdfjs.image.alt_text.info", + data: { + topic: "alt_text" + } + }); + }); + } + #toggleLoading(value) { + if (!this.#uiManager || this.#isAILoading === value) { + return; + } + this.#isAILoading = value; + this.#descriptionContainer.classList.toggle("loading", value); + } + #toggleError(value) { + if (!this.#uiManager) { + return; + } + this.#dialog.classList.toggle("error", value); + } + async #toggleGuessAltText(value, isInitial = false) { + if (!this.#uiManager) { + return; + } + this.#dialog.classList.toggle("aiDisabled", !value); + this.#createAutomaticallyButton.setAttribute("aria-pressed", value); + if (value) { + const { + altTextLearnMoreUrl + } = this.#uiManager.mlManager; + if (altTextLearnMoreUrl) { + this.#learnMore.href = altTextLearnMoreUrl; + } + this.#mlGuessAltText(isInitial); + } else { + this.#toggleLoading(false); + this.#isAILoading = false; + this.#toggleTitleAndDisclaimer(); + } + } + #toggleNotNow() { + this.#notNowButton.classList.toggle("hidden", !this.#firstTime); + this.#cancelButton.classList.toggle("hidden", this.#firstTime); + } + #toggleAI(value) { + if (!this.#uiManager || this.#hasAI === value) { + return; + } + this.#hasAI = value; + this.#dialog.classList.toggle("noAi", !value); + this.#toggleTitleAndDisclaimer(); + } + #toggleTitleAndDisclaimer() { + const visible = this.#isAILoading || this.#guessedAltText && this.#guessedAltText === this.#textarea.value; + this.#disclaimer.hidden = !visible; + const isEditing = this.#isAILoading || !!this.#textarea.value; + if (this.#isEditing === isEditing) { + return; + } + this.#isEditing = isEditing; + this.#title.setAttribute("data-l10n-id", isEditing ? "pdfjs-editor-new-alt-text-dialog-edit-label" : "pdfjs-editor-new-alt-text-dialog-add-label"); + } + async #mlGuessAltText(isInitial) { + if (this.#isAILoading) { + return; + } + if (this.#textarea.value) { + return; + } + if (isInitial && this.#previousAltText !== null) { + return; + } + this.#guessedAltText = this.#currentEditor.guessedAltText; + if (this.#previousAltText === null && this.#guessedAltText) { + this.#addAltText(this.#guessedAltText); + return; + } + this.#toggleLoading(true); + this.#toggleTitleAndDisclaimer(); + let hasError = false; + try { + const altText = await this.#currentEditor.mlGuessAltText(this.#imageData, false); + if (altText) { + this.#guessedAltText = altText; + this.#wasAILoading = this.#isAILoading; + if (this.#isAILoading) { + this.#addAltText(altText); + } + } + } catch (e) { + console.error(e); + hasError = true; + } + this.#toggleLoading(false); + this.#toggleTitleAndDisclaimer(); + if (hasError && this.#uiManager) { + this.#toggleError(true); + } + } + #addAltText(altText) { + if (!this.#uiManager || this.#textarea.value) { + return; + } + this.#textarea.value = altText; + this.#toggleTitleAndDisclaimer(); + } + #setProgress() { + this.#downloadModel.classList.toggle("hidden", false); + const callback = async ({ + detail: { + finished, + total, + totalLoaded + } + }) => { + const ONE_MEGA_BYTES = 1e6; + totalLoaded = Math.min(0.99 * total, totalLoaded); + const totalSize = this.#downloadModelDescription.ariaValueMax = Math.round(total / ONE_MEGA_BYTES); + const downloadedSize = this.#downloadModelDescription.ariaValueNow = Math.round(totalLoaded / ONE_MEGA_BYTES); + this.#downloadModelDescription.setAttribute("data-l10n-args", JSON.stringify({ + totalSize, + downloadedSize + })); + if (!finished) { + return; + } + this.#eventBus._off("loadaiengineprogress", callback); + this.#downloadModel.classList.toggle("hidden", true); + this.#toggleAI(true); + if (!this.#uiManager) { + return; + } + const { + mlManager + } = this.#uiManager; + mlManager.toggleService("altText", true); + this.#toggleGuessAltText(await mlManager.isEnabledFor("altText"), true); + }; + this.#eventBus._on("loadaiengineprogress", callback); + } + async editAltText(uiManager, editor, firstTime) { + if (this.#currentEditor || !editor) { + return; + } + if (firstTime && editor.hasAltTextData()) { + editor.altTextFinish(); + return; + } + this.#firstTime = firstTime; + let { + mlManager + } = uiManager; + let hasAI = !!mlManager; + this.#toggleTitleAndDisclaimer(); + if (mlManager && !mlManager.isReady("altText")) { + hasAI = false; + if (mlManager.hasProgress) { + this.#setProgress(); + } else { + mlManager = null; + } + } else { + this.#downloadModel.classList.toggle("hidden", true); + } + const isAltTextEnabledPromise = mlManager?.isEnabledFor("altText"); + this.#currentEditor = editor; + this.#uiManager = uiManager; + this.#uiManager.removeEditListeners(); + ({ + altText: this.#previousAltText + } = editor.altTextData); + this.#textarea.value = this.#previousAltText ?? ""; + const AI_MAX_IMAGE_DIMENSION = 224; + const MAX_PREVIEW_DIMENSION = 180; + let canvas, width, height; + if (mlManager) { + ({ + canvas, + width, + height, + imageData: this.#imageData + } = editor.copyCanvas(AI_MAX_IMAGE_DIMENSION, MAX_PREVIEW_DIMENSION, true)); + if (hasAI) { + this.#toggleGuessAltText(await isAltTextEnabledPromise, true); + } + } else { + ({ + canvas, + width, + height + } = editor.copyCanvas(AI_MAX_IMAGE_DIMENSION, MAX_PREVIEW_DIMENSION, false)); + } + canvas.setAttribute("role", "presentation"); + const { + style + } = canvas; + style.width = `${width}px`; + style.height = `${height}px`; + this.#imagePreview.append(canvas); + this.#toggleNotNow(); + this.#toggleAI(hasAI); + this.#toggleError(false); + try { + await this.#overlayManager.open(this.#dialog); + } catch (ex) { + this.#close(); + throw ex; + } + } + #cancel() { + this.#currentEditor.altTextData = { + cancel: true + }; + const altText = this.#textarea.value.trim(); + this.#currentEditor._reportTelemetry({ + action: "pdfjs.image.alt_text.dismiss", + data: { + alt_text_type: altText ? "present" : "empty", + flow: this.#firstTime ? "image_add" : "alt_text_edit" + } + }); + this.#currentEditor._reportTelemetry({ + action: "pdfjs.image.image_added", + data: { + alt_text_modal: true, + alt_text_type: "skipped" + } + }); + this.#finish(); + } + #finish() { + if (this.#overlayManager.active === this.#dialog) { + this.#overlayManager.close(this.#dialog); + } + } + #close() { + const canvas = this.#imagePreview.firstChild; + canvas.remove(); + canvas.width = canvas.height = 0; + this.#imageData = null; + this.#toggleLoading(false); + this.#uiManager?.addEditListeners(); + this.#currentEditor.altTextFinish(); + this.#uiManager?.setSelected(this.#currentEditor); + this.#currentEditor = null; + this.#uiManager = null; + } + #extractWords(text) { + return new Set(text.toLowerCase().split(/[^\p{L}\p{N}]+/gu).filter(x => !!x)); + } + #save() { + const altText = this.#textarea.value.trim(); + this.#currentEditor.altTextData = { + altText, + decorative: false + }; + this.#currentEditor.altTextData.guessedAltText = this.#guessedAltText; + if (this.#guessedAltText && this.#guessedAltText !== altText) { + const guessedWords = this.#extractWords(this.#guessedAltText); + const words = this.#extractWords(altText); + this.#currentEditor._reportTelemetry({ + action: "pdfjs.image.alt_text.user_edit", + data: { + total_words: guessedWords.size, + words_removed: guessedWords.difference(words).size, + words_added: words.difference(guessedWords).size + } + }); + } + this.#currentEditor._reportTelemetry({ + action: "pdfjs.image.image_added", + data: { + alt_text_modal: true, + alt_text_type: altText ? "present" : "empty" + } + }); + this.#currentEditor._reportTelemetry({ + action: "pdfjs.image.alt_text.save", + data: { + alt_text_type: altText ? "present" : "empty", + flow: this.#firstTime ? "image_add" : "alt_text_edit" + } + }); + this.#finish(); + } + destroy() { + this.#uiManager = null; + this.#finish(); + } +} +class ImageAltTextSettings { + #aiModelSettings; + #createModelButton; + #downloadModelButton; + #dialog; + #eventBus; + #mlManager; + #overlayManager; + #showAltTextDialogButton; + constructor({ + dialog, + createModelButton, + aiModelSettings, + learnMore, + closeButton, + deleteModelButton, + downloadModelButton, + showAltTextDialogButton + }, overlayManager, eventBus, mlManager) { + this.#dialog = dialog; + this.#aiModelSettings = aiModelSettings; + this.#createModelButton = createModelButton; + this.#downloadModelButton = downloadModelButton; + this.#showAltTextDialogButton = showAltTextDialogButton; + this.#overlayManager = overlayManager; + this.#eventBus = eventBus; + this.#mlManager = mlManager; + const { + altTextLearnMoreUrl + } = mlManager; + if (altTextLearnMoreUrl) { + learnMore.href = altTextLearnMoreUrl; + } + dialog.addEventListener("contextmenu", noContextMenu); + createModelButton.addEventListener("click", async e => { + const checked = this.#togglePref("enableGuessAltText", e); + await mlManager.toggleService("altText", checked); + this.#reportTelemetry({ + type: "stamp", + action: "pdfjs.image.alt_text.settings_ai_generation_check", + data: { + status: checked + } + }); + }); + showAltTextDialogButton.addEventListener("click", e => { + const checked = this.#togglePref("enableNewAltTextWhenAddingImage", e); + this.#reportTelemetry({ + type: "stamp", + action: "pdfjs.image.alt_text.settings_edit_alt_text_check", + data: { + status: checked + } + }); + }); + deleteModelButton.addEventListener("click", this.#delete.bind(this, true)); + downloadModelButton.addEventListener("click", this.#download.bind(this, true)); + closeButton.addEventListener("click", this.#finish.bind(this)); + learnMore.addEventListener("click", () => { + this.#reportTelemetry({ + type: "stamp", + action: "pdfjs.image.alt_text.info", + data: { + topic: "ai_generation" + } + }); + }); + eventBus._on("enablealttextmodeldownload", ({ + value + }) => { + if (value) { + this.#download(false); + } else { + this.#delete(false); + } + }); + this.#overlayManager.register(dialog); + } + #reportTelemetry(data) { + this.#eventBus.dispatch("reporttelemetry", { + source: this, + details: { + type: "editing", + data + } + }); + } + async #download(isFromUI = false) { + if (isFromUI) { + this.#downloadModelButton.disabled = true; + const span = this.#downloadModelButton.firstChild; + span.setAttribute("data-l10n-id", "pdfjs-editor-alt-text-settings-downloading-model-button"); + await this.#mlManager.downloadModel("altText"); + span.setAttribute("data-l10n-id", "pdfjs-editor-alt-text-settings-download-model-button"); + this.#createModelButton.disabled = false; + this.#setPref("enableGuessAltText", true); + this.#mlManager.toggleService("altText", true); + this.#setPref("enableAltTextModelDownload", true); + this.#downloadModelButton.disabled = false; + } + this.#aiModelSettings.classList.toggle("download", false); + this.#createModelButton.setAttribute("aria-pressed", true); + } + async #delete(isFromUI = false) { + if (isFromUI) { + await this.#mlManager.deleteModel("altText"); + this.#setPref("enableGuessAltText", false); + this.#setPref("enableAltTextModelDownload", false); + } + this.#aiModelSettings.classList.toggle("download", true); + this.#createModelButton.disabled = true; + this.#createModelButton.setAttribute("aria-pressed", false); + } + async open({ + enableGuessAltText, + enableNewAltTextWhenAddingImage + }) { + const { + enableAltTextModelDownload + } = this.#mlManager; + this.#createModelButton.disabled = !enableAltTextModelDownload; + this.#createModelButton.setAttribute("aria-pressed", enableAltTextModelDownload && enableGuessAltText); + this.#showAltTextDialogButton.setAttribute("aria-pressed", enableNewAltTextWhenAddingImage); + this.#aiModelSettings.classList.toggle("download", !enableAltTextModelDownload); + await this.#overlayManager.open(this.#dialog); + this.#reportTelemetry({ + type: "stamp", + action: "pdfjs.image.alt_text.settings_displayed" + }); + } + #togglePref(name, { + target + }) { + const checked = target.getAttribute("aria-pressed") !== "true"; + this.#setPref(name, checked); + target.setAttribute("aria-pressed", checked); + return checked; + } + #setPref(name, value) { + this.#eventBus.dispatch("setpreference", { + source: this, + name, + value + }); + } + #finish() { + if (this.#overlayManager.active === this.#dialog) { + this.#overlayManager.close(this.#dialog); + } + } +} + +;// ./web/alt_text_manager.js + +class AltTextManager { + #clickAC = null; + #currentEditor = null; + #cancelButton; + #dialog; + #eventBus; + #hasUsedPointer = false; + #optionDescription; + #optionDecorative; + #overlayManager; + #saveButton; + #textarea; + #uiManager; + #previousAltText = null; + #resizeAC = null; + #svgElement = null; + #rectElement = null; + #container; + #telemetryData = null; + constructor({ + dialog, + optionDescription, + optionDecorative, + textarea, + cancelButton, + saveButton + }, container, overlayManager, eventBus) { + this.#dialog = dialog; + this.#optionDescription = optionDescription; + this.#optionDecorative = optionDecorative; + this.#textarea = textarea; + this.#cancelButton = cancelButton; + this.#saveButton = saveButton; + this.#overlayManager = overlayManager; + this.#eventBus = eventBus; + this.#container = container; + const onUpdateUIState = this.#updateUIState.bind(this); + dialog.addEventListener("close", this.#close.bind(this)); + dialog.addEventListener("contextmenu", event => { + if (event.target !== this.#textarea) { + event.preventDefault(); + } + }); + cancelButton.addEventListener("click", this.#finish.bind(this)); + saveButton.addEventListener("click", this.#save.bind(this)); + optionDescription.addEventListener("change", onUpdateUIState); + optionDecorative.addEventListener("change", onUpdateUIState); + this.#overlayManager.register(dialog); + } + #createSVGElement() { + if (this.#svgElement) { + return; + } + const svgFactory = new DOMSVGFactory(); + const svg = this.#svgElement = svgFactory.createElement("svg"); + svg.setAttribute("width", "0"); + svg.setAttribute("height", "0"); + const defs = svgFactory.createElement("defs"); + svg.append(defs); + const mask = svgFactory.createElement("mask"); + defs.append(mask); + mask.setAttribute("id", "alttext-manager-mask"); + mask.setAttribute("maskContentUnits", "objectBoundingBox"); + let rect = svgFactory.createElement("rect"); + mask.append(rect); + rect.setAttribute("fill", "white"); + rect.setAttribute("width", "1"); + rect.setAttribute("height", "1"); + rect.setAttribute("x", "0"); + rect.setAttribute("y", "0"); + rect = this.#rectElement = svgFactory.createElement("rect"); + mask.append(rect); + rect.setAttribute("fill", "black"); + this.#dialog.append(svg); + } + async editAltText(uiManager, editor) { + if (this.#currentEditor || !editor) { + return; + } + this.#createSVGElement(); + this.#hasUsedPointer = false; + this.#clickAC = new AbortController(); + const clickOpts = { + signal: this.#clickAC.signal + }, + onClick = this.#onClick.bind(this); + for (const element of [this.#optionDescription, this.#optionDecorative, this.#textarea, this.#saveButton, this.#cancelButton]) { + element.addEventListener("click", onClick, clickOpts); + } + const { + altText, + decorative + } = editor.altTextData; + if (decorative === true) { + this.#optionDecorative.checked = true; + this.#optionDescription.checked = false; + } else { + this.#optionDecorative.checked = false; + this.#optionDescription.checked = true; + } + this.#previousAltText = this.#textarea.value = altText?.trim() || ""; + this.#updateUIState(); + this.#currentEditor = editor; + this.#uiManager = uiManager; + this.#uiManager.removeEditListeners(); + this.#resizeAC = new AbortController(); + this.#eventBus._on("resize", this.#setPosition.bind(this), { + signal: this.#resizeAC.signal + }); + try { + await this.#overlayManager.open(this.#dialog); + this.#setPosition(); + } catch (ex) { + this.#close(); + throw ex; + } + } + #setPosition() { + if (!this.#currentEditor) { + return; + } + const dialog = this.#dialog; + const { + style + } = dialog; + const { + x: containerX, + y: containerY, + width: containerW, + height: containerH + } = this.#container.getBoundingClientRect(); + const { + innerWidth: windowW, + innerHeight: windowH + } = window; + const { + width: dialogW, + height: dialogH + } = dialog.getBoundingClientRect(); + const { + x, + y, + width, + height + } = this.#currentEditor.getClientDimensions(); + const MARGIN = 10; + const isLTR = this.#uiManager.direction === "ltr"; + const xs = Math.max(x, containerX); + const xe = Math.min(x + width, containerX + containerW); + const ys = Math.max(y, containerY); + const ye = Math.min(y + height, containerY + containerH); + this.#rectElement.setAttribute("width", `${(xe - xs) / windowW}`); + this.#rectElement.setAttribute("height", `${(ye - ys) / windowH}`); + this.#rectElement.setAttribute("x", `${xs / windowW}`); + this.#rectElement.setAttribute("y", `${ys / windowH}`); + let left = null; + let top = Math.max(y, 0); + top += Math.min(windowH - (top + dialogH), 0); + if (isLTR) { + if (x + width + MARGIN + dialogW < windowW) { + left = x + width + MARGIN; + } else if (x > dialogW + MARGIN) { + left = x - dialogW - MARGIN; + } + } else if (x > dialogW + MARGIN) { + left = x - dialogW - MARGIN; + } else if (x + width + MARGIN + dialogW < windowW) { + left = x + width + MARGIN; + } + if (left === null) { + top = null; + left = Math.max(x, 0); + left += Math.min(windowW - (left + dialogW), 0); + if (y > dialogH + MARGIN) { + top = y - dialogH - MARGIN; + } else if (y + height + MARGIN + dialogH < windowH) { + top = y + height + MARGIN; + } + } + if (top !== null) { + dialog.classList.add("positioned"); + if (isLTR) { + style.left = `${left}px`; + } else { + style.right = `${windowW - left - dialogW}px`; + } + style.top = `${top}px`; + } else { + dialog.classList.remove("positioned"); + style.left = ""; + style.top = ""; + } + } + #finish() { + if (this.#overlayManager.active === this.#dialog) { + this.#overlayManager.close(this.#dialog); + } + } + #close() { + this.#currentEditor._reportTelemetry(this.#telemetryData || { + action: "alt_text_cancel", + alt_text_keyboard: !this.#hasUsedPointer + }); + this.#telemetryData = null; + this.#removeOnClickListeners(); + this.#uiManager?.addEditListeners(); + this.#resizeAC?.abort(); + this.#resizeAC = null; + this.#currentEditor.altTextFinish(); + this.#currentEditor = null; + this.#uiManager = null; + } + #updateUIState() { + this.#textarea.disabled = this.#optionDecorative.checked; + } + #save() { + const altText = this.#textarea.value.trim(); + const decorative = this.#optionDecorative.checked; + this.#currentEditor.altTextData = { + altText, + decorative + }; + this.#telemetryData = { + action: "alt_text_save", + alt_text_description: !!altText, + alt_text_edit: !!this.#previousAltText && this.#previousAltText !== altText, + alt_text_decorative: decorative, + alt_text_keyboard: !this.#hasUsedPointer + }; + this.#finish(); + } + #onClick(evt) { + if (evt.detail === 0) { + return; + } + this.#hasUsedPointer = true; + this.#removeOnClickListeners(); + } + #removeOnClickListeners() { + this.#clickAC?.abort(); + this.#clickAC = null; + } + destroy() { + this.#uiManager = null; + this.#finish(); + this.#svgElement?.remove(); + this.#svgElement = this.#rectElement = null; + } +} + +;// ./web/annotation_editor_params.js + +class AnnotationEditorParams { + constructor(options, eventBus) { + this.eventBus = eventBus; + this.#bindListeners(options); + } + #bindListeners({ + editorFreeTextFontSize, + editorFreeTextColor, + editorInkColor, + editorInkThickness, + editorInkOpacity, + editorStampAddImage, + editorFreeHighlightThickness, + editorHighlightShowAll + }) { + const dispatchEvent = (typeStr, value) => { + this.eventBus.dispatch("switchannotationeditorparams", { + source: this, + type: AnnotationEditorParamsType[typeStr], + value + }); + }; + editorFreeTextFontSize.addEventListener("input", function () { + dispatchEvent("FREETEXT_SIZE", this.valueAsNumber); + }); + editorFreeTextColor.addEventListener("input", function () { + dispatchEvent("FREETEXT_COLOR", this.value); + }); + editorInkColor.addEventListener("input", function () { + dispatchEvent("INK_COLOR", this.value); + }); + editorInkThickness.addEventListener("input", function () { + dispatchEvent("INK_THICKNESS", this.valueAsNumber); + }); + editorInkOpacity.addEventListener("input", function () { + dispatchEvent("INK_OPACITY", this.valueAsNumber); + }); + editorStampAddImage.addEventListener("click", () => { + this.eventBus.dispatch("reporttelemetry", { + source: this, + details: { + type: "editing", + data: { + action: "pdfjs.image.add_image_click" + } + } + }); + dispatchEvent("CREATE"); + }); + editorFreeHighlightThickness.addEventListener("input", function () { + dispatchEvent("HIGHLIGHT_THICKNESS", this.valueAsNumber); + }); + editorHighlightShowAll.addEventListener("click", function () { + const checked = this.getAttribute("aria-pressed") === "true"; + this.setAttribute("aria-pressed", !checked); + dispatchEvent("HIGHLIGHT_SHOW_ALL", !checked); + }); + this.eventBus._on("annotationeditorparamschanged", evt => { + for (const [type, value] of evt.details) { + switch (type) { + case AnnotationEditorParamsType.FREETEXT_SIZE: + editorFreeTextFontSize.value = value; + break; + case AnnotationEditorParamsType.FREETEXT_COLOR: + editorFreeTextColor.value = value; + break; + case AnnotationEditorParamsType.INK_COLOR: + editorInkColor.value = value; + break; + case AnnotationEditorParamsType.INK_THICKNESS: + editorInkThickness.value = value; + break; + case AnnotationEditorParamsType.INK_OPACITY: + editorInkOpacity.value = value; + break; + case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS: + editorFreeHighlightThickness.value = value; + break; + case AnnotationEditorParamsType.HIGHLIGHT_FREE: + editorFreeHighlightThickness.disabled = !value; + break; + case AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL: + editorHighlightShowAll.setAttribute("aria-pressed", value); + break; + } + } + }); + } +} + +;// ./web/caret_browsing.js + +const PRECISION = 1e-1; +class CaretBrowsingMode { + #mainContainer; + #toolBarHeight = 0; + #viewerContainer; + constructor(abortSignal, mainContainer, viewerContainer, toolbarContainer) { + this.#mainContainer = mainContainer; + this.#viewerContainer = viewerContainer; + if (!toolbarContainer) { + return; + } + this.#toolBarHeight = toolbarContainer.getBoundingClientRect().height; + const toolbarObserver = new ResizeObserver(entries => { + for (const entry of entries) { + if (entry.target === toolbarContainer) { + this.#toolBarHeight = Math.floor(entry.borderBoxSize[0].blockSize); + break; + } + } + }); + toolbarObserver.observe(toolbarContainer); + abortSignal.addEventListener("abort", () => toolbarObserver.disconnect(), { + once: true + }); + } + #isOnSameLine(rect1, rect2) { + const top1 = rect1.y; + const bot1 = rect1.bottom; + const mid1 = rect1.y + rect1.height / 2; + const top2 = rect2.y; + const bot2 = rect2.bottom; + const mid2 = rect2.y + rect2.height / 2; + return top1 <= mid2 && mid2 <= bot1 || top2 <= mid1 && mid1 <= bot2; + } + #isUnderOver(rect, x, y, isUp) { + const midY = rect.y + rect.height / 2; + return (isUp ? y >= midY : y <= midY) && rect.x - PRECISION <= x && x <= rect.right + PRECISION; + } + #isVisible(rect) { + return rect.top >= this.#toolBarHeight && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth); + } + #getCaretPosition(selection, isUp) { + const { + focusNode, + focusOffset + } = selection; + const range = document.createRange(); + range.setStart(focusNode, focusOffset); + range.setEnd(focusNode, focusOffset); + const rect = range.getBoundingClientRect(); + return [rect.x, isUp ? rect.top : rect.bottom]; + } + static #caretPositionFromPoint(x, y) { + if (!document.caretPositionFromPoint) { + const { + startContainer: offsetNode, + startOffset: offset + } = document.caretRangeFromPoint(x, y); + return { + offsetNode, + offset + }; + } + return document.caretPositionFromPoint(x, y); + } + #setCaretPositionHelper(selection, caretX, select, element, rect) { + rect ||= element.getBoundingClientRect(); + if (caretX <= rect.x + PRECISION) { + if (select) { + selection.extend(element.firstChild, 0); + } else { + selection.setPosition(element.firstChild, 0); + } + return; + } + if (rect.right - PRECISION <= caretX) { + const { + lastChild + } = element; + if (select) { + selection.extend(lastChild, lastChild.length); + } else { + selection.setPosition(lastChild, lastChild.length); + } + return; + } + const midY = rect.y + rect.height / 2; + let caretPosition = CaretBrowsingMode.#caretPositionFromPoint(caretX, midY); + let parentElement = caretPosition.offsetNode?.parentElement; + if (parentElement && parentElement !== element) { + const elementsAtPoint = document.elementsFromPoint(caretX, midY); + const savedVisibilities = []; + for (const el of elementsAtPoint) { + if (el === element) { + break; + } + const { + style + } = el; + savedVisibilities.push([el, style.visibility]); + style.visibility = "hidden"; + } + caretPosition = CaretBrowsingMode.#caretPositionFromPoint(caretX, midY); + parentElement = caretPosition.offsetNode?.parentElement; + for (const [el, visibility] of savedVisibilities) { + el.style.visibility = visibility; + } + } + if (parentElement !== element) { + if (select) { + selection.extend(element.firstChild, 0); + } else { + selection.setPosition(element.firstChild, 0); + } + return; + } + if (select) { + selection.extend(caretPosition.offsetNode, caretPosition.offset); + } else { + selection.setPosition(caretPosition.offsetNode, caretPosition.offset); + } + } + #setCaretPosition(select, selection, newLineElement, newLineElementRect, caretX) { + if (this.#isVisible(newLineElementRect)) { + this.#setCaretPositionHelper(selection, caretX, select, newLineElement, newLineElementRect); + return; + } + this.#mainContainer.addEventListener("scrollend", this.#setCaretPositionHelper.bind(this, selection, caretX, select, newLineElement, null), { + once: true + }); + newLineElement.scrollIntoView(); + } + #getNodeOnNextPage(textLayer, isUp) { + while (true) { + const page = textLayer.closest(".page"); + const pageNumber = parseInt(page.getAttribute("data-page-number")); + const nextPage = isUp ? pageNumber - 1 : pageNumber + 1; + textLayer = this.#viewerContainer.querySelector(`.page[data-page-number="${nextPage}"] .textLayer`); + if (!textLayer) { + return null; + } + const walker = document.createTreeWalker(textLayer, NodeFilter.SHOW_TEXT); + const node = isUp ? walker.lastChild() : walker.firstChild(); + if (node) { + return node; + } + } + } + moveCaret(isUp, select) { + const selection = document.getSelection(); + if (selection.rangeCount === 0) { + return; + } + const { + focusNode + } = selection; + const focusElement = focusNode.nodeType !== Node.ELEMENT_NODE ? focusNode.parentElement : focusNode; + const root = focusElement.closest(".textLayer"); + if (!root) { + return; + } + const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT); + walker.currentNode = focusNode; + const focusRect = focusElement.getBoundingClientRect(); + let newLineElement = null; + const nodeIterator = (isUp ? walker.previousSibling : walker.nextSibling).bind(walker); + while (nodeIterator()) { + const element = walker.currentNode.parentElement; + if (!this.#isOnSameLine(focusRect, element.getBoundingClientRect())) { + newLineElement = element; + break; + } + } + if (!newLineElement) { + const node = this.#getNodeOnNextPage(root, isUp); + if (!node) { + return; + } + if (select) { + const lastNode = (isUp ? walker.firstChild() : walker.lastChild()) || focusNode; + selection.extend(lastNode, isUp ? 0 : lastNode.length); + const range = document.createRange(); + range.setStart(node, isUp ? node.length : 0); + range.setEnd(node, isUp ? node.length : 0); + selection.addRange(range); + return; + } + const [caretX] = this.#getCaretPosition(selection, isUp); + const { + parentElement + } = node; + this.#setCaretPosition(select, selection, parentElement, parentElement.getBoundingClientRect(), caretX); + return; + } + const [caretX, caretY] = this.#getCaretPosition(selection, isUp); + const newLineElementRect = newLineElement.getBoundingClientRect(); + if (this.#isUnderOver(newLineElementRect, caretX, caretY, isUp)) { + this.#setCaretPosition(select, selection, newLineElement, newLineElementRect, caretX); + return; + } + while (nodeIterator()) { + const element = walker.currentNode.parentElement; + const elementRect = element.getBoundingClientRect(); + if (!this.#isOnSameLine(newLineElementRect, elementRect)) { + break; + } + if (this.#isUnderOver(elementRect, caretX, caretY, isUp)) { + this.#setCaretPosition(select, selection, element, elementRect, caretX); + return; + } + } + this.#setCaretPosition(select, selection, newLineElement, newLineElementRect, caretX); + } +} + +;// ./web/download_manager.js + + + + +function download(blobUrl, filename) { + const a = document.createElement("a"); + if (!a.click) { + throw new Error('DownloadManager: "a.click()" is not supported.'); + } + a.href = blobUrl; + a.target = "_parent"; + if ("download" in a) { + a.download = filename; + } + (document.body || document.documentElement).append(a); + a.click(); + a.remove(); +} +class DownloadManager { + #openBlobUrls = new WeakMap(); + downloadData(data, filename, contentType) { + const blobUrl = URL.createObjectURL(new Blob([data], { + type: contentType + })); + download(blobUrl, filename); + } + openOrDownloadData(data, filename, dest = null) { + const isPdfData = isPdfFile(filename); + const contentType = isPdfData ? "application/pdf" : ""; + if (isPdfData) { + let blobUrl = this.#openBlobUrls.get(data); + if (!blobUrl) { + blobUrl = URL.createObjectURL(new Blob([data], { + type: contentType + })); + this.#openBlobUrls.set(data, blobUrl); + } + let viewerUrl; + viewerUrl = "?file=" + encodeURIComponent(blobUrl + "#" + filename); + if (dest) { + viewerUrl += `#${escape(dest)}`; + } + try { + window.open(viewerUrl); + return true; + } catch (ex) { + console.error(`openOrDownloadData: ${ex}`); + URL.revokeObjectURL(blobUrl); + this.#openBlobUrls.delete(data); + } + } + this.downloadData(data, filename, contentType); + return false; + } + download(data, url, filename) { + let blobUrl; + if (data) { + blobUrl = URL.createObjectURL(new Blob([data], { + type: "application/pdf" + })); + } else { + if (!createValidAbsoluteUrl(url, "http://example.com")) { + console.error(`download - not a valid URL: ${url}`); + return; + } + blobUrl = url + "#pdfjs.action=download"; + } + download(blobUrl, filename); + } +} + +;// ./web/editor_undo_bar.js + +class EditorUndoBar { + #closeButton = null; + #container; + #eventBus = null; + #focusTimeout = null; + #initController = null; + isOpen = false; + #message; + #showController = null; + #undoButton; + static #l10nMessages = Object.freeze({ + highlight: "pdfjs-editor-undo-bar-message-highlight", + freetext: "pdfjs-editor-undo-bar-message-freetext", + stamp: "pdfjs-editor-undo-bar-message-stamp", + ink: "pdfjs-editor-undo-bar-message-ink", + _multiple: "pdfjs-editor-undo-bar-message-multiple" + }); + constructor({ + container, + message, + undoButton, + closeButton + }, eventBus) { + this.#container = container; + this.#message = message; + this.#undoButton = undoButton; + this.#closeButton = closeButton; + this.#eventBus = eventBus; + } + destroy() { + this.#initController?.abort(); + this.#initController = null; + this.hide(); + } + show(undoAction, messageData) { + if (!this.#initController) { + this.#initController = new AbortController(); + const opts = { + signal: this.#initController.signal + }; + const boundHide = this.hide.bind(this); + this.#container.addEventListener("contextmenu", noContextMenu, opts); + this.#closeButton.addEventListener("click", boundHide, opts); + this.#eventBus._on("beforeprint", boundHide, opts); + this.#eventBus._on("download", boundHide, opts); + } + this.hide(); + if (typeof messageData === "string") { + this.#message.setAttribute("data-l10n-id", EditorUndoBar.#l10nMessages[messageData]); + } else { + this.#message.setAttribute("data-l10n-id", EditorUndoBar.#l10nMessages._multiple); + this.#message.setAttribute("data-l10n-args", JSON.stringify({ + count: messageData + })); + } + this.isOpen = true; + this.#container.hidden = false; + this.#showController = new AbortController(); + this.#undoButton.addEventListener("click", () => { + undoAction(); + this.hide(); + }, { + signal: this.#showController.signal + }); + this.#focusTimeout = setTimeout(() => { + this.#container.focus(); + this.#focusTimeout = null; + }, 100); + } + hide() { + if (!this.isOpen) { + return; + } + this.isOpen = false; + this.#container.hidden = true; + this.#showController?.abort(); + this.#showController = null; + if (this.#focusTimeout) { + clearTimeout(this.#focusTimeout); + this.#focusTimeout = null; + } + } +} + +;// ./web/overlay_manager.js +class OverlayManager { + #overlays = new WeakMap(); + #active = null; + get active() { + return this.#active; + } + async register(dialog, canForceClose = false) { + if (typeof dialog !== "object") { + throw new Error("Not enough parameters."); + } else if (this.#overlays.has(dialog)) { + throw new Error("The overlay is already registered."); + } + this.#overlays.set(dialog, { + canForceClose + }); + dialog.addEventListener("cancel", evt => { + this.#active = null; + }); + } + async open(dialog) { + if (!this.#overlays.has(dialog)) { + throw new Error("The overlay does not exist."); + } else if (this.#active) { + if (this.#active === dialog) { + throw new Error("The overlay is already active."); + } else if (this.#overlays.get(dialog).canForceClose) { + await this.close(); + } else { + throw new Error("Another overlay is currently active."); + } + } + this.#active = dialog; + dialog.showModal(); + } + async close(dialog = this.#active) { + if (!this.#overlays.has(dialog)) { + throw new Error("The overlay does not exist."); + } else if (!this.#active) { + throw new Error("The overlay is currently not active."); + } else if (this.#active !== dialog) { + throw new Error("Another overlay is currently active."); + } + dialog.close(); + this.#active = null; + } +} + +;// ./web/password_prompt.js + + +class PasswordPrompt { + #activeCapability = null; + #updateCallback = null; + #reason = null; + constructor(options, overlayManager, isViewerEmbedded = false) { + this.dialog = options.dialog; + this.label = options.label; + this.input = options.input; + this.submitButton = options.submitButton; + this.cancelButton = options.cancelButton; + this.overlayManager = overlayManager; + this._isViewerEmbedded = isViewerEmbedded; + this.submitButton.addEventListener("click", this.#verify.bind(this)); + this.cancelButton.addEventListener("click", this.close.bind(this)); + this.input.addEventListener("keydown", e => { + if (e.keyCode === 13) { + this.#verify(); + } + }); + this.overlayManager.register(this.dialog, true); + this.dialog.addEventListener("close", this.#cancel.bind(this)); + } + async open() { + await this.#activeCapability?.promise; + this.#activeCapability = Promise.withResolvers(); + try { + await this.overlayManager.open(this.dialog); + } catch (ex) { + this.#activeCapability.resolve(); + throw ex; + } + const passwordIncorrect = this.#reason === PasswordResponses.INCORRECT_PASSWORD; + if (!this._isViewerEmbedded || passwordIncorrect) { + this.input.focus(); + } + this.label.setAttribute("data-l10n-id", passwordIncorrect ? "pdfjs-password-invalid" : "pdfjs-password-label"); + } + async close() { + if (this.overlayManager.active === this.dialog) { + this.overlayManager.close(this.dialog); + } + } + #verify() { + const password = this.input.value; + if (password?.length > 0) { + this.#invokeCallback(password); + } + } + #cancel() { + this.#invokeCallback(new Error("PasswordPrompt cancelled.")); + this.#activeCapability.resolve(); + } + #invokeCallback(password) { + if (!this.#updateCallback) { + return; + } + this.close(); + this.input.value = ""; + this.#updateCallback(password); + this.#updateCallback = null; + } + async setUpdateCallback(updateCallback, reason) { + if (this.#activeCapability) { + await this.#activeCapability.promise; + } + this.#updateCallback = updateCallback; + this.#reason = reason; + } +} + +;// ./web/base_tree_viewer.js + +const TREEITEM_OFFSET_TOP = -100; +const TREEITEM_SELECTED_CLASS = "selected"; +class BaseTreeViewer { + constructor(options) { + this.container = options.container; + this.eventBus = options.eventBus; + this._l10n = options.l10n; + this.reset(); + } + reset() { + this._pdfDocument = null; + this._lastToggleIsShow = true; + this._currentTreeItem = null; + this.container.textContent = ""; + this.container.classList.remove("treeWithDeepNesting"); + } + _dispatchEvent(count) { + throw new Error("Not implemented: _dispatchEvent"); + } + _bindLink(element, params) { + throw new Error("Not implemented: _bindLink"); + } + _normalizeTextContent(str) { + return removeNullCharacters(str, true) || "\u2013"; + } + _addToggleButton(div, hidden = false) { + const toggler = document.createElement("div"); + toggler.className = "treeItemToggler"; + if (hidden) { + toggler.classList.add("treeItemsHidden"); + } + toggler.onclick = evt => { + evt.stopPropagation(); + toggler.classList.toggle("treeItemsHidden"); + if (evt.shiftKey) { + const shouldShowAll = !toggler.classList.contains("treeItemsHidden"); + this._toggleTreeItem(div, shouldShowAll); + } + }; + div.prepend(toggler); + } + _toggleTreeItem(root, show = false) { + this._l10n.pause(); + this._lastToggleIsShow = show; + for (const toggler of root.querySelectorAll(".treeItemToggler")) { + toggler.classList.toggle("treeItemsHidden", !show); + } + this._l10n.resume(); + } + _toggleAllTreeItems() { + this._toggleTreeItem(this.container, !this._lastToggleIsShow); + } + _finishRendering(fragment, count, hasAnyNesting = false) { + if (hasAnyNesting) { + this.container.classList.add("treeWithDeepNesting"); + this._lastToggleIsShow = !fragment.querySelector(".treeItemsHidden"); + } + this._l10n.pause(); + this.container.append(fragment); + this._l10n.resume(); + this._dispatchEvent(count); + } + render(params) { + throw new Error("Not implemented: render"); + } + _updateCurrentTreeItem(treeItem = null) { + if (this._currentTreeItem) { + this._currentTreeItem.classList.remove(TREEITEM_SELECTED_CLASS); + this._currentTreeItem = null; + } + if (treeItem) { + treeItem.classList.add(TREEITEM_SELECTED_CLASS); + this._currentTreeItem = treeItem; + } + } + _scrollToCurrentTreeItem(treeItem) { + if (!treeItem) { + return; + } + this._l10n.pause(); + let currentNode = treeItem.parentNode; + while (currentNode && currentNode !== this.container) { + if (currentNode.classList.contains("treeItem")) { + const toggler = currentNode.firstElementChild; + toggler?.classList.remove("treeItemsHidden"); + } + currentNode = currentNode.parentNode; + } + this._l10n.resume(); + this._updateCurrentTreeItem(treeItem); + this.container.scrollTo(treeItem.offsetLeft, treeItem.offsetTop + TREEITEM_OFFSET_TOP); + } +} + +;// ./web/pdf_attachment_viewer.js + + + +class PDFAttachmentViewer extends BaseTreeViewer { + constructor(options) { + super(options); + this.downloadManager = options.downloadManager; + this.eventBus._on("fileattachmentannotation", this.#appendAttachment.bind(this)); + } + reset(keepRenderedCapability = false) { + super.reset(); + this._attachments = null; + if (!keepRenderedCapability) { + this._renderedCapability = Promise.withResolvers(); + } + this._pendingDispatchEvent = false; + } + async _dispatchEvent(attachmentsCount) { + this._renderedCapability.resolve(); + if (attachmentsCount === 0 && !this._pendingDispatchEvent) { + this._pendingDispatchEvent = true; + await waitOnEventOrTimeout({ + target: this.eventBus, + name: "annotationlayerrendered", + delay: 1000 + }); + if (!this._pendingDispatchEvent) { + return; + } + } + this._pendingDispatchEvent = false; + this.eventBus.dispatch("attachmentsloaded", { + source: this, + attachmentsCount + }); + } + _bindLink(element, { + content, + description, + filename + }) { + if (description) { + element.title = description; + } + element.onclick = () => { + this.downloadManager.openOrDownloadData(content, filename); + return false; + }; + } + render({ + attachments, + keepRenderedCapability = false + }) { + if (this._attachments) { + this.reset(keepRenderedCapability); + } + this._attachments = attachments || null; + if (!attachments) { + this._dispatchEvent(0); + return; + } + const fragment = document.createDocumentFragment(); + let attachmentsCount = 0; + for (const name in attachments) { + const item = attachments[name]; + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + this._bindLink(element, item); + element.textContent = this._normalizeTextContent(item.filename); + div.append(element); + fragment.append(div); + attachmentsCount++; + } + this._finishRendering(fragment, attachmentsCount); + } + #appendAttachment(item) { + const renderedPromise = this._renderedCapability.promise; + renderedPromise.then(() => { + if (renderedPromise !== this._renderedCapability.promise) { + return; + } + const attachments = this._attachments || Object.create(null); + for (const name in attachments) { + if (item.filename === name) { + return; + } + } + attachments[item.filename] = item; + this.render({ + attachments, + keepRenderedCapability: true + }); + }); + } +} + +;// ./web/grab_to_pan.js + +const CSS_CLASS_GRAB = "grab-to-pan-grab"; +class GrabToPan { + #activateAC = null; + #mouseDownAC = null; + #scrollAC = null; + constructor({ + element + }) { + this.element = element; + this.document = element.ownerDocument; + const overlay = this.overlay = document.createElement("div"); + overlay.className = "grab-to-pan-grabbing"; + } + activate() { + if (!this.#activateAC) { + this.#activateAC = new AbortController(); + this.element.addEventListener("mousedown", this.#onMouseDown.bind(this), { + capture: true, + signal: this.#activateAC.signal + }); + this.element.classList.add(CSS_CLASS_GRAB); + } + } + deactivate() { + if (this.#activateAC) { + this.#activateAC.abort(); + this.#activateAC = null; + this.#endPan(); + this.element.classList.remove(CSS_CLASS_GRAB); + } + } + toggle() { + if (this.#activateAC) { + this.deactivate(); + } else { + this.activate(); + } + } + ignoreTarget(node) { + return node.matches("a[href], a[href] *, input, textarea, button, button *, select, option"); + } + #onMouseDown(event) { + if (event.button !== 0 || this.ignoreTarget(event.target)) { + return; + } + if (event.originalTarget) { + try { + event.originalTarget.tagName; + } catch { + return; + } + } + this.scrollLeftStart = this.element.scrollLeft; + this.scrollTopStart = this.element.scrollTop; + this.clientXStart = event.clientX; + this.clientYStart = event.clientY; + this.#mouseDownAC = new AbortController(); + const boundEndPan = this.#endPan.bind(this), + mouseOpts = { + capture: true, + signal: this.#mouseDownAC.signal + }; + this.document.addEventListener("mousemove", this.#onMouseMove.bind(this), mouseOpts); + this.document.addEventListener("mouseup", boundEndPan, mouseOpts); + this.#scrollAC = new AbortController(); + this.element.addEventListener("scroll", boundEndPan, { + capture: true, + signal: this.#scrollAC.signal + }); + stopEvent(event); + const focusedElement = document.activeElement; + if (focusedElement && !focusedElement.contains(event.target)) { + focusedElement.blur(); + } + } + #onMouseMove(event) { + this.#scrollAC?.abort(); + this.#scrollAC = null; + if (!(event.buttons & 1)) { + this.#endPan(); + return; + } + const xDiff = event.clientX - this.clientXStart; + const yDiff = event.clientY - this.clientYStart; + this.element.scrollTo({ + top: this.scrollTopStart - yDiff, + left: this.scrollLeftStart - xDiff, + behavior: "instant" + }); + if (!this.overlay.parentNode) { + document.body.append(this.overlay); + } + } + #endPan() { + this.#mouseDownAC?.abort(); + this.#mouseDownAC = null; + this.#scrollAC?.abort(); + this.#scrollAC = null; + this.overlay.remove(); + } +} + +;// ./web/pdf_cursor_tools.js + + + +class PDFCursorTools { + #active = CursorTool.SELECT; + #prevActive = null; + constructor({ + container, + eventBus, + cursorToolOnLoad = CursorTool.SELECT + }) { + this.container = container; + this.eventBus = eventBus; + this.#addEventListeners(); + Promise.resolve().then(() => { + this.switchTool(cursorToolOnLoad); + }); + } + get activeTool() { + return this.#active; + } + switchTool(tool) { + if (this.#prevActive !== null) { + return; + } + this.#switchTool(tool); + } + #switchTool(tool, disabled = false) { + if (tool === this.#active) { + if (this.#prevActive !== null) { + this.eventBus.dispatch("cursortoolchanged", { + source: this, + tool, + disabled + }); + } + return; + } + const disableActiveTool = () => { + switch (this.#active) { + case CursorTool.SELECT: + break; + case CursorTool.HAND: + this._handTool.deactivate(); + break; + case CursorTool.ZOOM: + } + }; + switch (tool) { + case CursorTool.SELECT: + disableActiveTool(); + break; + case CursorTool.HAND: + disableActiveTool(); + this._handTool.activate(); + break; + case CursorTool.ZOOM: + default: + console.error(`switchTool: "${tool}" is an unsupported value.`); + return; + } + this.#active = tool; + this.eventBus.dispatch("cursortoolchanged", { + source: this, + tool, + disabled + }); + } + #addEventListeners() { + this.eventBus._on("switchcursortool", evt => { + if (!evt.reset) { + this.switchTool(evt.tool); + } else if (this.#prevActive !== null) { + annotationEditorMode = AnnotationEditorType.NONE; + presentationModeState = PresentationModeState.NORMAL; + enableActive(); + } + }); + let annotationEditorMode = AnnotationEditorType.NONE, + presentationModeState = PresentationModeState.NORMAL; + const disableActive = () => { + this.#prevActive ??= this.#active; + this.#switchTool(CursorTool.SELECT, true); + }; + const enableActive = () => { + if (this.#prevActive !== null && annotationEditorMode === AnnotationEditorType.NONE && presentationModeState === PresentationModeState.NORMAL) { + this.#switchTool(this.#prevActive); + this.#prevActive = null; + } + }; + this.eventBus._on("annotationeditormodechanged", ({ + mode + }) => { + annotationEditorMode = mode; + if (mode === AnnotationEditorType.NONE) { + enableActive(); + } else { + disableActive(); + } + }); + this.eventBus._on("presentationmodechanged", ({ + state + }) => { + presentationModeState = state; + if (state === PresentationModeState.NORMAL) { + enableActive(); + } else if (state === PresentationModeState.FULLSCREEN) { + disableActive(); + } + }); + } + get _handTool() { + return shadow(this, "_handTool", new GrabToPan({ + element: this.container + })); + } +} + +;// ./web/pdf_document_properties.js + + + +const NON_METRIC_LOCALES = ["en-us", "en-lr", "my"]; +const US_PAGE_NAMES = { + "8.5x11": "pdfjs-document-properties-page-size-name-letter", + "8.5x14": "pdfjs-document-properties-page-size-name-legal" +}; +const METRIC_PAGE_NAMES = { + "297x420": "pdfjs-document-properties-page-size-name-a-three", + "210x297": "pdfjs-document-properties-page-size-name-a-four" +}; +function getPageName(size, isPortrait, pageNames) { + const width = isPortrait ? size.width : size.height; + const height = isPortrait ? size.height : size.width; + return pageNames[`${width}x${height}`]; +} +class PDFDocumentProperties { + #fieldData = null; + constructor({ + dialog, + fields, + closeButton + }, overlayManager, eventBus, l10n, fileNameLookup) { + this.dialog = dialog; + this.fields = fields; + this.overlayManager = overlayManager; + this.l10n = l10n; + this._fileNameLookup = fileNameLookup; + this.#reset(); + closeButton.addEventListener("click", this.close.bind(this)); + this.overlayManager.register(this.dialog); + eventBus._on("pagechanging", evt => { + this._currentPageNumber = evt.pageNumber; + }); + eventBus._on("rotationchanging", evt => { + this._pagesRotation = evt.pagesRotation; + }); + } + async open() { + await Promise.all([this.overlayManager.open(this.dialog), this._dataAvailableCapability.promise]); + const currentPageNumber = this._currentPageNumber; + const pagesRotation = this._pagesRotation; + if (this.#fieldData && currentPageNumber === this.#fieldData._currentPageNumber && pagesRotation === this.#fieldData._pagesRotation) { + this.#updateUI(); + return; + } + const [{ + info, + contentLength + }, pdfPage] = await Promise.all([this.pdfDocument.getMetadata(), this.pdfDocument.getPage(currentPageNumber)]); + const [fileName, fileSize, creationDate, modificationDate, pageSize, isLinearized] = await Promise.all([this._fileNameLookup(), this.#parseFileSize(contentLength), this.#parseDate(info.CreationDate), this.#parseDate(info.ModDate), this.#parsePageSize(getPageSizeInches(pdfPage), pagesRotation), this.#parseLinearization(info.IsLinearized)]); + this.#fieldData = Object.freeze({ + fileName, + fileSize, + title: info.Title, + author: info.Author, + subject: info.Subject, + keywords: info.Keywords, + creationDate, + modificationDate, + creator: info.Creator, + producer: info.Producer, + version: info.PDFFormatVersion, + pageCount: this.pdfDocument.numPages, + pageSize, + linearized: isLinearized, + _currentPageNumber: currentPageNumber, + _pagesRotation: pagesRotation + }); + this.#updateUI(); + const { + length + } = await this.pdfDocument.getDownloadInfo(); + if (contentLength === length) { + return; + } + const data = Object.assign(Object.create(null), this.#fieldData); + data.fileSize = await this.#parseFileSize(length); + this.#fieldData = Object.freeze(data); + this.#updateUI(); + } + async close() { + this.overlayManager.close(this.dialog); + } + setDocument(pdfDocument) { + if (this.pdfDocument) { + this.#reset(); + this.#updateUI(); + } + if (!pdfDocument) { + return; + } + this.pdfDocument = pdfDocument; + this._dataAvailableCapability.resolve(); + } + #reset() { + this.pdfDocument = null; + this.#fieldData = null; + this._dataAvailableCapability = Promise.withResolvers(); + this._currentPageNumber = 1; + this._pagesRotation = 0; + } + #updateUI() { + if (this.#fieldData && this.overlayManager.active !== this.dialog) { + return; + } + for (const id in this.fields) { + const content = this.#fieldData?.[id]; + this.fields[id].textContent = content || content === 0 ? content : "-"; + } + } + async #parseFileSize(b = 0) { + const kb = b / 1024, + mb = kb / 1024; + return kb ? this.l10n.get(mb >= 1 ? "pdfjs-document-properties-size-mb" : "pdfjs-document-properties-size-kb", { + mb, + kb, + b + }) : undefined; + } + async #parsePageSize(pageSizeInches, pagesRotation) { + if (!pageSizeInches) { + return undefined; + } + if (pagesRotation % 180 !== 0) { + pageSizeInches = { + width: pageSizeInches.height, + height: pageSizeInches.width + }; + } + const isPortrait = isPortraitOrientation(pageSizeInches), + nonMetric = NON_METRIC_LOCALES.includes(this.l10n.getLanguage()); + let sizeInches = { + width: Math.round(pageSizeInches.width * 100) / 100, + height: Math.round(pageSizeInches.height * 100) / 100 + }; + let sizeMillimeters = { + width: Math.round(pageSizeInches.width * 25.4 * 10) / 10, + height: Math.round(pageSizeInches.height * 25.4 * 10) / 10 + }; + let nameId = getPageName(sizeInches, isPortrait, US_PAGE_NAMES) || getPageName(sizeMillimeters, isPortrait, METRIC_PAGE_NAMES); + if (!nameId && !(Number.isInteger(sizeMillimeters.width) && Number.isInteger(sizeMillimeters.height))) { + const exactMillimeters = { + width: pageSizeInches.width * 25.4, + height: pageSizeInches.height * 25.4 + }; + const intMillimeters = { + width: Math.round(sizeMillimeters.width), + height: Math.round(sizeMillimeters.height) + }; + if (Math.abs(exactMillimeters.width - intMillimeters.width) < 0.1 && Math.abs(exactMillimeters.height - intMillimeters.height) < 0.1) { + nameId = getPageName(intMillimeters, isPortrait, METRIC_PAGE_NAMES); + if (nameId) { + sizeInches = { + width: Math.round(intMillimeters.width / 25.4 * 100) / 100, + height: Math.round(intMillimeters.height / 25.4 * 100) / 100 + }; + sizeMillimeters = intMillimeters; + } + } + } + const [{ + width, + height + }, unit, name, orientation] = await Promise.all([nonMetric ? sizeInches : sizeMillimeters, this.l10n.get(nonMetric ? "pdfjs-document-properties-page-size-unit-inches" : "pdfjs-document-properties-page-size-unit-millimeters"), nameId && this.l10n.get(nameId), this.l10n.get(isPortrait ? "pdfjs-document-properties-page-size-orientation-portrait" : "pdfjs-document-properties-page-size-orientation-landscape")]); + return this.l10n.get(name ? "pdfjs-document-properties-page-size-dimension-name-string" : "pdfjs-document-properties-page-size-dimension-string", { + width, + height, + unit, + name, + orientation + }); + } + async #parseDate(inputDate) { + const dateObj = PDFDateString.toDateObject(inputDate); + return dateObj ? this.l10n.get("pdfjs-document-properties-date-time-string", { + dateObj: dateObj.valueOf() + }) : undefined; + } + #parseLinearization(isLinearized) { + return this.l10n.get(isLinearized ? "pdfjs-document-properties-linearized-yes" : "pdfjs-document-properties-linearized-no"); + } +} + +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.detached.js +var es_array_buffer_detached = __webpack_require__(6573); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.transfer.js +var es_array_buffer_transfer = __webpack_require__(8100); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js +var es_array_buffer_transfer_to_fixed_length = __webpack_require__(7936); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-reversed.js +var es_typed_array_to_reversed = __webpack_require__(7467); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-sorted.js +var es_typed_array_to_sorted = __webpack_require__(4732); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.with.js +var es_typed_array_with = __webpack_require__(9577); +;// ./web/pdf_find_utils.js + +const CharacterType = { + SPACE: 0, + ALPHA_LETTER: 1, + PUNCT: 2, + HAN_LETTER: 3, + KATAKANA_LETTER: 4, + HIRAGANA_LETTER: 5, + HALFWIDTH_KATAKANA_LETTER: 6, + THAI_LETTER: 7 +}; +function isAlphabeticalScript(charCode) { + return charCode < 0x2e80; +} +function isAscii(charCode) { + return (charCode & 0xff80) === 0; +} +function isAsciiAlpha(charCode) { + return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a; +} +function isAsciiDigit(charCode) { + return charCode >= 0x30 && charCode <= 0x39; +} +function isAsciiSpace(charCode) { + return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a; +} +function isHan(charCode) { + return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff; +} +function isKatakana(charCode) { + return charCode >= 0x30a0 && charCode <= 0x30ff; +} +function isHiragana(charCode) { + return charCode >= 0x3040 && charCode <= 0x309f; +} +function isHalfwidthKatakana(charCode) { + return charCode >= 0xff60 && charCode <= 0xff9f; +} +function isThai(charCode) { + return (charCode & 0xff80) === 0x0e00; +} +function getCharacterType(charCode) { + if (isAlphabeticalScript(charCode)) { + if (isAscii(charCode)) { + if (isAsciiSpace(charCode)) { + return CharacterType.SPACE; + } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) { + return CharacterType.ALPHA_LETTER; + } + return CharacterType.PUNCT; + } else if (isThai(charCode)) { + return CharacterType.THAI_LETTER; + } else if (charCode === 0xa0) { + return CharacterType.SPACE; + } + return CharacterType.ALPHA_LETTER; + } + if (isHan(charCode)) { + return CharacterType.HAN_LETTER; + } else if (isKatakana(charCode)) { + return CharacterType.KATAKANA_LETTER; + } else if (isHiragana(charCode)) { + return CharacterType.HIRAGANA_LETTER; + } else if (isHalfwidthKatakana(charCode)) { + return CharacterType.HALFWIDTH_KATAKANA_LETTER; + } + return CharacterType.ALPHA_LETTER; +} +let NormalizeWithNFKC; +function getNormalizeWithNFKC() { + NormalizeWithNFKC ||= ` ¨ª¯²-µ¸-º¼-¾IJ-ijĿ-ŀʼnſDŽ-njDZ-dzʰ-ʸ˘-ËË -ˤʹͺ;΄-΅·Ï-Ï–Ï°-ϲϴ-ϵϹևٵ-ٸक़-य़ড়-à§à§Ÿà¨³à¨¶à©™-ਜ਼ਫ਼ଡ଼-à­à¸³àº³à»œ-à»à¼Œà½ƒà½à½’བྷཛྷཀྵჼᴬ-ᴮᴰ-ᴺᴼ-áµáµ-ᵪᵸᶛ-ᶿẚ-ẛάέήίόύώΆ᾽-á¿á¿‰á¿‹á¿-á¿á¿“á¿›á¿-῟ΰΎ῭-`ΌΏ´-῾ - ‑‗․-… ″-‴‶-‷‼‾â‡-â‰â—âŸâ°-â±â´-â‚Žâ‚-ₜ₨℀-℃℅-ℇ℉-â„“â„•-â„–â„™-â„â„ -™ℤΩℨK-ℭℯ-ℱℳ-ℹ℻-⅀ⅅ-â…‰â…-ⅿ↉∬-∭∯-∰〈-〉①-⓪⨌⩴-⩶⫝̸ⱼ-ⱽⵯ⺟⻳⼀-⿕ 〶〸-〺゛-゜ゟヿㄱ-ㆎ㆒-㆟㈀-㈞㈠-㉇ã‰-㉾㊀-ã¿êšœ-êšê°êŸ²-ꟴꟸ-ꟹꭜ-ꭟꭩ豈-ï¨ï¨ï¨’凞-羽蘒諸逸-都飯-ï©­ï©°-龎ff-stﬓ-ﬗï¬ï¬Ÿ-זּטּ-לּמּנּ-ï­ï­ƒ-ï­„ï­†-ﮱﯓ-ï´½ïµ-ï¶ï¶’-ﷇﷰ-ï·¼ï¸-︙︰-﹄﹇-ï¹’ï¹”-﹦﹨-﹫ﹰ-ﹲﹴﹶ-ﻼï¼-하-ᅦᅧ-ï¿ï¿’-ï¿—ï¿š-ᅵ¢-₩`; + return NormalizeWithNFKC; +} + +;// ./web/pdf_find_controller.js + + + + + + + + + + + + + + + + + + + + +const FindState = { + FOUND: 0, + NOT_FOUND: 1, + WRAPPED: 2, + PENDING: 3 +}; +const FIND_TIMEOUT = 250; +const MATCH_SCROLL_OFFSET_TOP = -50; +const MATCH_SCROLL_OFFSET_LEFT = -400; +const CHARACTERS_TO_NORMALIZE = { + "\u2010": "-", + "\u2018": "'", + "\u2019": "'", + "\u201A": "'", + "\u201B": "'", + "\u201C": '"', + "\u201D": '"', + "\u201E": '"', + "\u201F": '"', + "\u00BC": "1/4", + "\u00BD": "1/2", + "\u00BE": "3/4" +}; +const DIACRITICS_EXCEPTION = new Set([0x3099, 0x309a, 0x094d, 0x09cd, 0x0a4d, 0x0acd, 0x0b4d, 0x0bcd, 0x0c4d, 0x0ccd, 0x0d3b, 0x0d3c, 0x0d4d, 0x0dca, 0x0e3a, 0x0eba, 0x0f84, 0x1039, 0x103a, 0x1714, 0x1734, 0x17d2, 0x1a60, 0x1b44, 0x1baa, 0x1bab, 0x1bf2, 0x1bf3, 0x2d7f, 0xa806, 0xa82c, 0xa8c4, 0xa953, 0xa9c0, 0xaaf6, 0xabed, 0x0c56, 0x0f71, 0x0f72, 0x0f7a, 0x0f7b, 0x0f7c, 0x0f7d, 0x0f80, 0x0f74]); +let DIACRITICS_EXCEPTION_STR; +const DIACRITICS_REG_EXP = /\p{M}+/gu; +const SPECIAL_CHARS_REG_EXP = /([.*+?^${}()|[\]\\])|(\p{P})|(\s+)|(\p{M})|(\p{L})/gu; +const NOT_DIACRITIC_FROM_END_REG_EXP = /([^\p{M}])\p{M}*$/u; +const NOT_DIACRITIC_FROM_START_REG_EXP = /^\p{M}*([^\p{M}])/u; +const SYLLABLES_REG_EXP = /[\uAC00-\uD7AF\uFA6C\uFACF-\uFAD1\uFAD5-\uFAD7]+/g; +const SYLLABLES_LENGTHS = new Map(); +const FIRST_CHAR_SYLLABLES_REG_EXP = "[\\u1100-\\u1112\\ud7a4-\\ud7af\\ud84a\\ud84c\\ud850\\ud854\\ud857\\ud85f]"; +const NFKC_CHARS_TO_NORMALIZE = new Map(); +let noSyllablesRegExp = null; +let withSyllablesRegExp = null; +function normalize(text) { + const syllablePositions = []; + let m; + while ((m = SYLLABLES_REG_EXP.exec(text)) !== null) { + let { + index + } = m; + for (const char of m[0]) { + let len = SYLLABLES_LENGTHS.get(char); + if (!len) { + len = char.normalize("NFD").length; + SYLLABLES_LENGTHS.set(char, len); + } + syllablePositions.push([len, index++]); + } + } + let normalizationRegex; + if (syllablePositions.length === 0 && noSyllablesRegExp) { + normalizationRegex = noSyllablesRegExp; + } else if (syllablePositions.length > 0 && withSyllablesRegExp) { + normalizationRegex = withSyllablesRegExp; + } else { + const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(""); + const toNormalizeWithNFKC = getNormalizeWithNFKC(); + const CJK = "(?:\\p{Ideographic}|[\u3040-\u30FF])"; + const HKDiacritics = "(?:\u3099|\u309A)"; + const CompoundWord = "\\p{Ll}-\\n\\p{Lu}"; + const regexp = `([${replace}])|([${toNormalizeWithNFKC}])|(${HKDiacritics}\\n)|(\\p{M}+(?:-\\n)?)|(${CompoundWord})|(\\S-\\n)|(${CJK}\\n)|(\\n)`; + if (syllablePositions.length === 0) { + normalizationRegex = noSyllablesRegExp = new RegExp(regexp + "|(\\u0000)", "gum"); + } else { + normalizationRegex = withSyllablesRegExp = new RegExp(regexp + `|(${FIRST_CHAR_SYLLABLES_REG_EXP})`, "gum"); + } + } + const rawDiacriticsPositions = []; + while ((m = DIACRITICS_REG_EXP.exec(text)) !== null) { + rawDiacriticsPositions.push([m[0].length, m.index]); + } + let normalized = text.normalize("NFD"); + const positions = [0, 0]; + let rawDiacriticsIndex = 0; + let syllableIndex = 0; + let shift = 0; + let shiftOrigin = 0; + let eol = 0; + let hasDiacritics = false; + normalized = normalized.replace(normalizationRegex, (match, p1, p2, p3, p4, p5, p6, p7, p8, p9, i) => { + i -= shiftOrigin; + if (p1) { + const replacement = CHARACTERS_TO_NORMALIZE[p1]; + const jj = replacement.length; + for (let j = 1; j < jj; j++) { + positions.push(i - shift + j, shift - j); + } + shift -= jj - 1; + return replacement; + } + if (p2) { + let replacement = NFKC_CHARS_TO_NORMALIZE.get(p2); + if (!replacement) { + replacement = p2.normalize("NFKC"); + NFKC_CHARS_TO_NORMALIZE.set(p2, replacement); + } + const jj = replacement.length; + for (let j = 1; j < jj; j++) { + positions.push(i - shift + j, shift - j); + } + shift -= jj - 1; + return replacement; + } + if (p3) { + hasDiacritics = true; + if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) { + ++rawDiacriticsIndex; + } else { + positions.push(i - 1 - shift + 1, shift - 1); + shift -= 1; + shiftOrigin += 1; + } + positions.push(i - shift + 1, shift); + shiftOrigin += 1; + eol += 1; + return p3.charAt(0); + } + if (p4) { + const hasTrailingDashEOL = p4.endsWith("\n"); + const len = hasTrailingDashEOL ? p4.length - 2 : p4.length; + hasDiacritics = true; + let jj = len; + if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) { + jj -= rawDiacriticsPositions[rawDiacriticsIndex][0]; + ++rawDiacriticsIndex; + } + for (let j = 1; j <= jj; j++) { + positions.push(i - 1 - shift + j, shift - j); + } + shift -= jj; + shiftOrigin += jj; + if (hasTrailingDashEOL) { + i += len - 1; + positions.push(i - shift + 1, 1 + shift); + shift += 1; + shiftOrigin += 1; + eol += 1; + return p4.slice(0, len); + } + return p4; + } + if (p5) { + shiftOrigin += 1; + eol += 1; + return p5.replace("\n", ""); + } + if (p6) { + const len = p6.length - 2; + positions.push(i - shift + len, 1 + shift); + shift += 1; + shiftOrigin += 1; + eol += 1; + return p6.slice(0, -2); + } + if (p7) { + const len = p7.length - 1; + positions.push(i - shift + len, shift); + shiftOrigin += 1; + eol += 1; + return p7.slice(0, -1); + } + if (p8) { + positions.push(i - shift + 1, shift - 1); + shift -= 1; + shiftOrigin += 1; + eol += 1; + return " "; + } + if (i + eol === syllablePositions[syllableIndex]?.[1]) { + const newCharLen = syllablePositions[syllableIndex][0] - 1; + ++syllableIndex; + for (let j = 1; j <= newCharLen; j++) { + positions.push(i - (shift - j), shift - j); + } + shift -= newCharLen; + shiftOrigin += newCharLen; + } + return p9; + }); + positions.push(normalized.length, shift); + const starts = new Uint32Array(positions.length >> 1); + const shifts = new Int32Array(positions.length >> 1); + for (let i = 0, ii = positions.length; i < ii; i += 2) { + starts[i >> 1] = positions[i]; + shifts[i >> 1] = positions[i + 1]; + } + return [normalized, [starts, shifts], hasDiacritics]; +} +function getOriginalIndex(diffs, pos, len) { + if (!diffs) { + return [pos, len]; + } + const [starts, shifts] = diffs; + const start = pos; + const end = pos + len - 1; + let i = binarySearchFirstItem(starts, x => x >= start); + if (starts[i] > start) { + --i; + } + let j = binarySearchFirstItem(starts, x => x >= end, i); + if (starts[j] > end) { + --j; + } + const oldStart = start + shifts[i]; + const oldEnd = end + shifts[j]; + const oldLen = oldEnd + 1 - oldStart; + return [oldStart, oldLen]; +} +class PDFFindController { + #state = null; + #updateMatchesCountOnProgress = true; + #visitedPagesCount = 0; + constructor({ + linkService, + eventBus, + updateMatchesCountOnProgress = true + }) { + this._linkService = linkService; + this._eventBus = eventBus; + this.#updateMatchesCountOnProgress = updateMatchesCountOnProgress; + this.onIsPageVisible = null; + this.#reset(); + eventBus._on("find", this.#onFind.bind(this)); + eventBus._on("findbarclose", this.#onFindBarClose.bind(this)); + } + get highlightMatches() { + return this._highlightMatches; + } + get pageMatches() { + return this._pageMatches; + } + get pageMatchesLength() { + return this._pageMatchesLength; + } + get selected() { + return this._selected; + } + get state() { + return this.#state; + } + setDocument(pdfDocument) { + if (this._pdfDocument) { + this.#reset(); + } + if (!pdfDocument) { + return; + } + this._pdfDocument = pdfDocument; + this._firstPageCapability.resolve(); + } + #onFind(state) { + if (!state) { + return; + } + const pdfDocument = this._pdfDocument; + const { + type + } = state; + if (this.#state === null || this.#shouldDirtyMatch(state)) { + this._dirtyMatch = true; + } + this.#state = state; + if (type !== "highlightallchange") { + this.#updateUIState(FindState.PENDING); + } + this._firstPageCapability.promise.then(() => { + if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { + return; + } + this.#extractText(); + const findbarClosed = !this._highlightMatches; + const pendingTimeout = !!this._findTimeout; + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; + } + if (!type) { + this._findTimeout = setTimeout(() => { + this.#nextMatch(); + this._findTimeout = null; + }, FIND_TIMEOUT); + } else if (this._dirtyMatch) { + this.#nextMatch(); + } else if (type === "again") { + this.#nextMatch(); + if (findbarClosed && this.#state.highlightAll) { + this.#updateAllPages(); + } + } else if (type === "highlightallchange") { + if (pendingTimeout) { + this.#nextMatch(); + } else { + this._highlightMatches = true; + } + this.#updateAllPages(); + } else { + this.#nextMatch(); + } + }); + } + scrollMatchIntoView({ + element = null, + selectedLeft = 0, + pageIndex = -1, + matchIndex = -1 + }) { + if (!this._scrollMatches || !element) { + return; + } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) { + return; + } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) { + return; + } + this._scrollMatches = false; + const spot = { + top: MATCH_SCROLL_OFFSET_TOP, + left: selectedLeft + MATCH_SCROLL_OFFSET_LEFT + }; + scrollIntoView(element, spot, true); + } + #reset() { + this._highlightMatches = false; + this._scrollMatches = false; + this._pdfDocument = null; + this._pageMatches = []; + this._pageMatchesLength = []; + this.#visitedPagesCount = 0; + this.#state = null; + this._selected = { + pageIdx: -1, + matchIdx: -1 + }; + this._offset = { + pageIdx: null, + matchIdx: null, + wrapped: false + }; + this._extractTextPromises = []; + this._pageContents = []; + this._pageDiffs = []; + this._hasDiacritics = []; + this._matchesCountTotal = 0; + this._pagesToSearch = null; + this._pendingFindMatches = new Set(); + this._resumePageIdx = null; + this._dirtyMatch = false; + clearTimeout(this._findTimeout); + this._findTimeout = null; + this._firstPageCapability = Promise.withResolvers(); + } + get #query() { + const { + query + } = this.#state; + if (typeof query === "string") { + if (query !== this._rawQuery) { + this._rawQuery = query; + [this._normalizedQuery] = normalize(query); + } + return this._normalizedQuery; + } + return (query || []).filter(q => !!q).map(q => normalize(q)[0]); + } + #shouldDirtyMatch(state) { + const newQuery = state.query, + prevQuery = this.#state.query; + const newType = typeof newQuery, + prevType = typeof prevQuery; + if (newType !== prevType) { + return true; + } + if (newType === "string") { + if (newQuery !== prevQuery) { + return true; + } + } else if (JSON.stringify(newQuery) !== JSON.stringify(prevQuery)) { + return true; + } + switch (state.type) { + case "again": + const pageNumber = this._selected.pageIdx + 1; + const linkService = this._linkService; + return pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !(this.onIsPageVisible?.(pageNumber) ?? true); + case "highlightallchange": + return false; + } + return true; + } + #isEntireWord(content, startIdx, length) { + let match = content.slice(0, startIdx).match(NOT_DIACRITIC_FROM_END_REG_EXP); + if (match) { + const first = content.charCodeAt(startIdx); + const limit = match[1].charCodeAt(0); + if (getCharacterType(first) === getCharacterType(limit)) { + return false; + } + } + match = content.slice(startIdx + length).match(NOT_DIACRITIC_FROM_START_REG_EXP); + if (match) { + const last = content.charCodeAt(startIdx + length - 1); + const limit = match[1].charCodeAt(0); + if (getCharacterType(last) === getCharacterType(limit)) { + return false; + } + } + return true; + } + #convertToRegExpString(query, hasDiacritics) { + const { + matchDiacritics + } = this.#state; + let isUnicode = false; + query = query.replaceAll(SPECIAL_CHARS_REG_EXP, (match, p1, p2, p3, p4, p5) => { + if (p1) { + return `[ ]*\\${p1}[ ]*`; + } + if (p2) { + return `[ ]*${p2}[ ]*`; + } + if (p3) { + return "[ ]+"; + } + if (matchDiacritics) { + return p4 || p5; + } + if (p4) { + return DIACRITICS_EXCEPTION.has(p4.charCodeAt(0)) ? p4 : ""; + } + if (hasDiacritics) { + isUnicode = true; + return `${p5}\\p{M}*`; + } + return p5; + }); + const trailingSpaces = "[ ]*"; + if (query.endsWith(trailingSpaces)) { + query = query.slice(0, query.length - trailingSpaces.length); + } + if (matchDiacritics) { + if (hasDiacritics) { + DIACRITICS_EXCEPTION_STR ||= String.fromCharCode(...DIACRITICS_EXCEPTION); + isUnicode = true; + query = `${query}(?=[${DIACRITICS_EXCEPTION_STR}]|[^\\p{M}]|$)`; + } + } + return [isUnicode, query]; + } + #calculateMatch(pageIndex) { + const query = this.#query; + if (query.length === 0) { + return; + } + const pageContent = this._pageContents[pageIndex]; + const matcherResult = this.match(query, pageContent, pageIndex); + const matches = this._pageMatches[pageIndex] = []; + const matchesLength = this._pageMatchesLength[pageIndex] = []; + const diffs = this._pageDiffs[pageIndex]; + matcherResult?.forEach(({ + index, + length + }) => { + const [matchPos, matchLen] = getOriginalIndex(diffs, index, length); + if (matchLen) { + matches.push(matchPos); + matchesLength.push(matchLen); + } + }); + if (this.#state.highlightAll) { + this.#updatePage(pageIndex); + } + if (this._resumePageIdx === pageIndex) { + this._resumePageIdx = null; + this.#nextPageMatch(); + } + const pageMatchesCount = matches.length; + this._matchesCountTotal += pageMatchesCount; + if (this.#updateMatchesCountOnProgress) { + if (pageMatchesCount > 0) { + this.#updateUIResultsCount(); + } + } else if (++this.#visitedPagesCount === this._linkService.pagesCount) { + this.#updateUIResultsCount(); + } + } + match(query, pageContent, pageIndex) { + const hasDiacritics = this._hasDiacritics[pageIndex]; + let isUnicode = false; + if (typeof query === "string") { + [isUnicode, query] = this.#convertToRegExpString(query, hasDiacritics); + } else { + query = query.sort().reverse().map(q => { + const [isUnicodePart, queryPart] = this.#convertToRegExpString(q, hasDiacritics); + isUnicode ||= isUnicodePart; + return `(${queryPart})`; + }).join("|"); + } + if (!query) { + return undefined; + } + const { + caseSensitive, + entireWord + } = this.#state; + const flags = `g${isUnicode ? "u" : ""}${caseSensitive ? "" : "i"}`; + query = new RegExp(query, flags); + const matches = []; + let match; + while ((match = query.exec(pageContent)) !== null) { + if (entireWord && !this.#isEntireWord(pageContent, match.index, match[0].length)) { + continue; + } + matches.push({ + index: match.index, + length: match[0].length + }); + } + return matches; + } + #extractText() { + if (this._extractTextPromises.length > 0) { + return; + } + let deferred = Promise.resolve(); + const textOptions = { + disableNormalization: true + }; + for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) { + const { + promise, + resolve + } = Promise.withResolvers(); + this._extractTextPromises[i] = promise; + deferred = deferred.then(() => { + return this._pdfDocument.getPage(i + 1).then(pdfPage => pdfPage.getTextContent(textOptions)).then(textContent => { + const strBuf = []; + for (const textItem of textContent.items) { + strBuf.push(textItem.str); + if (textItem.hasEOL) { + strBuf.push("\n"); + } + } + [this._pageContents[i], this._pageDiffs[i], this._hasDiacritics[i]] = normalize(strBuf.join("")); + resolve(); + }, reason => { + console.error(`Unable to get text content for page ${i + 1}`, reason); + this._pageContents[i] = ""; + this._pageDiffs[i] = null; + this._hasDiacritics[i] = false; + resolve(); + }); + }); + } + } + #updatePage(index) { + if (this._scrollMatches && this._selected.pageIdx === index) { + this._linkService.page = index + 1; + } + this._eventBus.dispatch("updatetextlayermatches", { + source: this, + pageIndex: index + }); + } + #updateAllPages() { + this._eventBus.dispatch("updatetextlayermatches", { + source: this, + pageIndex: -1 + }); + } + #nextMatch() { + const previous = this.#state.findPrevious; + const currentPageIndex = this._linkService.page - 1; + const numPages = this._linkService.pagesCount; + this._highlightMatches = true; + if (this._dirtyMatch) { + this._dirtyMatch = false; + this._selected.pageIdx = this._selected.matchIdx = -1; + this._offset.pageIdx = currentPageIndex; + this._offset.matchIdx = null; + this._offset.wrapped = false; + this._resumePageIdx = null; + this._pageMatches.length = 0; + this._pageMatchesLength.length = 0; + this.#visitedPagesCount = 0; + this._matchesCountTotal = 0; + this.#updateAllPages(); + for (let i = 0; i < numPages; i++) { + if (this._pendingFindMatches.has(i)) { + continue; + } + this._pendingFindMatches.add(i); + this._extractTextPromises[i].then(() => { + this._pendingFindMatches.delete(i); + this.#calculateMatch(i); + }); + } + } + const query = this.#query; + if (query.length === 0) { + this.#updateUIState(FindState.FOUND); + return; + } + if (this._resumePageIdx) { + return; + } + const offset = this._offset; + this._pagesToSearch = numPages; + if (offset.matchIdx !== null) { + const numPageMatches = this._pageMatches[offset.pageIdx].length; + if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) { + offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1; + this.#updateMatch(true); + return; + } + this.#advanceOffsetPage(previous); + } + this.#nextPageMatch(); + } + #matchesReady(matches) { + const offset = this._offset; + const numMatches = matches.length; + const previous = this.#state.findPrevious; + if (numMatches) { + offset.matchIdx = previous ? numMatches - 1 : 0; + this.#updateMatch(true); + return true; + } + this.#advanceOffsetPage(previous); + if (offset.wrapped) { + offset.matchIdx = null; + if (this._pagesToSearch < 0) { + this.#updateMatch(false); + return true; + } + } + return false; + } + #nextPageMatch() { + if (this._resumePageIdx !== null) { + console.error("There can only be one pending page."); + } + let matches = null; + do { + const pageIdx = this._offset.pageIdx; + matches = this._pageMatches[pageIdx]; + if (!matches) { + this._resumePageIdx = pageIdx; + break; + } + } while (!this.#matchesReady(matches)); + } + #advanceOffsetPage(previous) { + const offset = this._offset; + const numPages = this._linkService.pagesCount; + offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1; + offset.matchIdx = null; + this._pagesToSearch--; + if (offset.pageIdx >= numPages || offset.pageIdx < 0) { + offset.pageIdx = previous ? numPages - 1 : 0; + offset.wrapped = true; + } + } + #updateMatch(found = false) { + let state = FindState.NOT_FOUND; + const wrapped = this._offset.wrapped; + this._offset.wrapped = false; + if (found) { + const previousPage = this._selected.pageIdx; + this._selected.pageIdx = this._offset.pageIdx; + this._selected.matchIdx = this._offset.matchIdx; + state = wrapped ? FindState.WRAPPED : FindState.FOUND; + if (previousPage !== -1 && previousPage !== this._selected.pageIdx) { + this.#updatePage(previousPage); + } + } + this.#updateUIState(state, this.#state.findPrevious); + if (this._selected.pageIdx !== -1) { + this._scrollMatches = true; + this.#updatePage(this._selected.pageIdx); + } + } + #onFindBarClose(evt) { + const pdfDocument = this._pdfDocument; + this._firstPageCapability.promise.then(() => { + if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { + return; + } + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; + } + if (this._resumePageIdx) { + this._resumePageIdx = null; + this._dirtyMatch = true; + } + this.#updateUIState(FindState.FOUND); + this._highlightMatches = false; + this.#updateAllPages(); + }); + } + #requestMatchesCount() { + const { + pageIdx, + matchIdx + } = this._selected; + let current = 0, + total = this._matchesCountTotal; + if (matchIdx !== -1) { + for (let i = 0; i < pageIdx; i++) { + current += this._pageMatches[i]?.length || 0; + } + current += matchIdx + 1; + } + if (current < 1 || current > total) { + current = total = 0; + } + return { + current, + total + }; + } + #updateUIResultsCount() { + this._eventBus.dispatch("updatefindmatchescount", { + source: this, + matchesCount: this.#requestMatchesCount() + }); + } + #updateUIState(state, previous = false) { + if (!this.#updateMatchesCountOnProgress && (this.#visitedPagesCount !== this._linkService.pagesCount || state === FindState.PENDING)) { + return; + } + this._eventBus.dispatch("updatefindcontrolstate", { + source: this, + state, + previous, + entireWord: this.#state?.entireWord ?? null, + matchesCount: this.#requestMatchesCount(), + rawQuery: this.#state?.query ?? null + }); + } +} + +;// ./web/pdf_find_bar.js + + +const MATCHES_COUNT_LIMIT = 1000; +class PDFFindBar { + #mainContainer; + #resizeObserver = new ResizeObserver(this.#resizeObserverCallback.bind(this)); + constructor(options, mainContainer, eventBus) { + this.opened = false; + this.bar = options.bar; + this.toggleButton = options.toggleButton; + this.findField = options.findField; + this.highlightAll = options.highlightAllCheckbox; + this.caseSensitive = options.caseSensitiveCheckbox; + this.matchDiacritics = options.matchDiacriticsCheckbox; + this.entireWord = options.entireWordCheckbox; + this.findMsg = options.findMsg; + this.findResultsCount = options.findResultsCount; + this.findPreviousButton = options.findPreviousButton; + this.findNextButton = options.findNextButton; + this.eventBus = eventBus; + this.#mainContainer = mainContainer; + this.toggleButton.addEventListener("click", () => { + this.toggle(); + }); + this.findField.addEventListener("input", () => { + this.dispatchEvent(""); + }); + this.bar.addEventListener("keydown", e => { + switch (e.keyCode) { + case 13: + if (e.target === this.findField) { + this.dispatchEvent("again", e.shiftKey); + } + break; + case 27: + this.close(); + break; + } + }); + this.findPreviousButton.addEventListener("click", () => { + this.dispatchEvent("again", true); + }); + this.findNextButton.addEventListener("click", () => { + this.dispatchEvent("again", false); + }); + this.highlightAll.addEventListener("click", () => { + this.dispatchEvent("highlightallchange"); + }); + this.caseSensitive.addEventListener("click", () => { + this.dispatchEvent("casesensitivitychange"); + }); + this.entireWord.addEventListener("click", () => { + this.dispatchEvent("entirewordchange"); + }); + this.matchDiacritics.addEventListener("click", () => { + this.dispatchEvent("diacriticmatchingchange"); + }); + } + reset() { + this.updateUIState(); + } + dispatchEvent(type, findPrev = false) { + this.eventBus.dispatch("find", { + source: this, + type, + query: this.findField.value, + caseSensitive: this.caseSensitive.checked, + entireWord: this.entireWord.checked, + highlightAll: this.highlightAll.checked, + findPrevious: findPrev, + matchDiacritics: this.matchDiacritics.checked + }); + } + updateUIState(state, previous, matchesCount) { + const { + findField, + findMsg + } = this; + let findMsgId = "", + status = ""; + switch (state) { + case FindState.FOUND: + break; + case FindState.PENDING: + status = "pending"; + break; + case FindState.NOT_FOUND: + findMsgId = "pdfjs-find-not-found"; + status = "notFound"; + break; + case FindState.WRAPPED: + findMsgId = previous ? "pdfjs-find-reached-top" : "pdfjs-find-reached-bottom"; + break; + } + findField.setAttribute("data-status", status); + findField.setAttribute("aria-invalid", state === FindState.NOT_FOUND); + findMsg.setAttribute("data-status", status); + if (findMsgId) { + findMsg.setAttribute("data-l10n-id", findMsgId); + } else { + findMsg.removeAttribute("data-l10n-id"); + findMsg.textContent = ""; + } + this.updateResultsCount(matchesCount); + } + updateResultsCount({ + current = 0, + total = 0 + } = {}) { + const { + findResultsCount + } = this; + if (total > 0) { + const limit = MATCHES_COUNT_LIMIT; + findResultsCount.setAttribute("data-l10n-id", total > limit ? "pdfjs-find-match-count-limit" : "pdfjs-find-match-count"); + findResultsCount.setAttribute("data-l10n-args", JSON.stringify({ + limit, + current, + total + })); + } else { + findResultsCount.removeAttribute("data-l10n-id"); + findResultsCount.textContent = ""; + } + } + open() { + if (!this.opened) { + this.#resizeObserver.observe(this.#mainContainer); + this.#resizeObserver.observe(this.bar); + this.opened = true; + toggleExpandedBtn(this.toggleButton, true, this.bar); + } + this.findField.select(); + this.findField.focus(); + } + close() { + if (!this.opened) { + return; + } + this.#resizeObserver.disconnect(); + this.opened = false; + toggleExpandedBtn(this.toggleButton, false, this.bar); + this.eventBus.dispatch("findbarclose", { + source: this + }); + } + toggle() { + if (this.opened) { + this.close(); + } else { + this.open(); + } + } + #resizeObserverCallback() { + const { + bar + } = this; + bar.classList.remove("wrapContainers"); + const findbarHeight = bar.clientHeight; + const inputContainerHeight = bar.firstElementChild.clientHeight; + if (findbarHeight > inputContainerHeight) { + bar.classList.add("wrapContainers"); + } + } +} + +;// ./web/pdf_history.js + + +const HASH_CHANGE_TIMEOUT = 1000; +const POSITION_UPDATED_THRESHOLD = 50; +const UPDATE_VIEWAREA_TIMEOUT = 1000; +function getCurrentHash() { + return document.location.hash; +} +class PDFHistory { + #eventAbortController = null; + constructor({ + linkService, + eventBus + }) { + this.linkService = linkService; + this.eventBus = eventBus; + this._initialized = false; + this._fingerprint = ""; + this.reset(); + this.eventBus._on("pagesinit", () => { + this._isPagesLoaded = false; + this.eventBus._on("pagesloaded", evt => { + this._isPagesLoaded = !!evt.pagesCount; + }, { + once: true + }); + }); + } + initialize({ + fingerprint, + resetHistory = false, + updateUrl = false + }) { + if (!fingerprint || typeof fingerprint !== "string") { + console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.'); + return; + } + if (this._initialized) { + this.reset(); + } + const reInitialized = this._fingerprint !== "" && this._fingerprint !== fingerprint; + this._fingerprint = fingerprint; + this._updateUrl = updateUrl === true; + this._initialized = true; + this.#bindEvents(); + const state = window.history.state; + this._popStateInProgress = false; + this._blockHashChange = 0; + this._currentHash = getCurrentHash(); + this._numPositionUpdates = 0; + this._uid = this._maxUid = 0; + this._destination = null; + this._position = null; + if (!this.#isValidState(state, true) || resetHistory) { + const { + hash, + page, + rotation + } = this.#parseCurrentHash(true); + if (!hash || reInitialized || resetHistory) { + this.#pushOrReplaceState(null, true); + return; + } + this.#pushOrReplaceState({ + hash, + page, + rotation + }, true); + return; + } + const destination = state.destination; + this.#updateInternalState(destination, state.uid, true); + if (destination.rotation !== undefined) { + this._initialRotation = destination.rotation; + } + if (destination.dest) { + this._initialBookmark = JSON.stringify(destination.dest); + this._destination.page = null; + } else if (destination.hash) { + this._initialBookmark = destination.hash; + } else if (destination.page) { + this._initialBookmark = `page=${destination.page}`; + } + } + reset() { + if (this._initialized) { + this.#pageHide(); + this._initialized = false; + this.#unbindEvents(); + } + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + this._initialBookmark = null; + this._initialRotation = null; + } + push({ + namedDest = null, + explicitDest, + pageNumber + }) { + if (!this._initialized) { + return; + } + if (namedDest && typeof namedDest !== "string") { + console.error("PDFHistory.push: " + `"${namedDest}" is not a valid namedDest parameter.`); + return; + } else if (!Array.isArray(explicitDest)) { + console.error("PDFHistory.push: " + `"${explicitDest}" is not a valid explicitDest parameter.`); + return; + } else if (!this.#isValidPage(pageNumber)) { + if (pageNumber !== null || this._destination) { + console.error("PDFHistory.push: " + `"${pageNumber}" is not a valid pageNumber parameter.`); + return; + } + } + const hash = namedDest || JSON.stringify(explicitDest); + if (!hash) { + return; + } + let forceReplace = false; + if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) { + if (this._destination.page) { + return; + } + forceReplace = true; + } + if (this._popStateInProgress && !forceReplace) { + return; + } + this.#pushOrReplaceState({ + dest: explicitDest, + hash, + page: pageNumber, + rotation: this.linkService.rotation + }, forceReplace); + if (!this._popStateInProgress) { + this._popStateInProgress = true; + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } + } + pushPage(pageNumber) { + if (!this._initialized) { + return; + } + if (!this.#isValidPage(pageNumber)) { + console.error(`PDFHistory.pushPage: "${pageNumber}" is not a valid page number.`); + return; + } + if (this._destination?.page === pageNumber) { + return; + } + if (this._popStateInProgress) { + return; + } + this.#pushOrReplaceState({ + dest: null, + hash: `page=${pageNumber}`, + page: pageNumber, + rotation: this.linkService.rotation + }); + if (!this._popStateInProgress) { + this._popStateInProgress = true; + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } + } + pushCurrentPosition() { + if (!this._initialized || this._popStateInProgress) { + return; + } + this.#tryPushCurrentPosition(); + } + back() { + if (!this._initialized || this._popStateInProgress) { + return; + } + const state = window.history.state; + if (this.#isValidState(state) && state.uid > 0) { + window.history.back(); + } + } + forward() { + if (!this._initialized || this._popStateInProgress) { + return; + } + const state = window.history.state; + if (this.#isValidState(state) && state.uid < this._maxUid) { + window.history.forward(); + } + } + get popStateInProgress() { + return this._initialized && (this._popStateInProgress || this._blockHashChange > 0); + } + get initialBookmark() { + return this._initialized ? this._initialBookmark : null; + } + get initialRotation() { + return this._initialized ? this._initialRotation : null; + } + #pushOrReplaceState(destination, forceReplace = false) { + const shouldReplace = forceReplace || !this._destination; + const newState = { + fingerprint: this._fingerprint, + uid: shouldReplace ? this._uid : this._uid + 1, + destination + }; + this.#updateInternalState(destination, newState.uid); + let newUrl; + if (this._updateUrl && destination?.hash) { + const baseUrl = document.location.href.split("#", 1)[0]; + if (!baseUrl.startsWith("file://")) { + newUrl = `${baseUrl}#${destination.hash}`; + } + } + if (shouldReplace) { + window.history.replaceState(newState, "", newUrl); + } else { + window.history.pushState(newState, "", newUrl); + } + } + #tryPushCurrentPosition(temporary = false) { + if (!this._position) { + return; + } + let position = this._position; + if (temporary) { + position = Object.assign(Object.create(null), this._position); + position.temporary = true; + } + if (!this._destination) { + this.#pushOrReplaceState(position); + return; + } + if (this._destination.temporary) { + this.#pushOrReplaceState(position, true); + return; + } + if (this._destination.hash === position.hash) { + return; + } + if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) { + return; + } + let forceReplace = false; + if (this._destination.page >= position.first && this._destination.page <= position.page) { + if (this._destination.dest !== undefined || !this._destination.first) { + return; + } + forceReplace = true; + } + this.#pushOrReplaceState(position, forceReplace); + } + #isValidPage(val) { + return Number.isInteger(val) && val > 0 && val <= this.linkService.pagesCount; + } + #isValidState(state, checkReload = false) { + if (!state) { + return false; + } + if (state.fingerprint !== this._fingerprint) { + if (checkReload) { + if (typeof state.fingerprint !== "string" || state.fingerprint.length !== this._fingerprint.length) { + return false; + } + const [perfEntry] = performance.getEntriesByType("navigation"); + if (perfEntry?.type !== "reload") { + return false; + } + } else { + return false; + } + } + if (!Number.isInteger(state.uid) || state.uid < 0) { + return false; + } + if (state.destination === null || typeof state.destination !== "object") { + return false; + } + return true; + } + #updateInternalState(destination, uid, removeTemporary = false) { + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + if (removeTemporary && destination?.temporary) { + delete destination.temporary; + } + this._destination = destination; + this._uid = uid; + this._maxUid = Math.max(this._maxUid, uid); + this._numPositionUpdates = 0; + } + #parseCurrentHash(checkNameddest = false) { + const hash = unescape(getCurrentHash()).substring(1); + const params = parseQueryString(hash); + const nameddest = params.get("nameddest") || ""; + let page = params.get("page") | 0; + if (!this.#isValidPage(page) || checkNameddest && nameddest.length > 0) { + page = null; + } + return { + hash, + page, + rotation: this.linkService.rotation + }; + } + #updateViewarea({ + location + }) { + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + this._position = { + hash: location.pdfOpenParams.substring(1), + page: this.linkService.page, + first: location.pageNumber, + rotation: location.rotation + }; + if (this._popStateInProgress) { + return; + } + if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) { + this._numPositionUpdates++; + } + if (UPDATE_VIEWAREA_TIMEOUT > 0) { + this._updateViewareaTimeout = setTimeout(() => { + if (!this._popStateInProgress) { + this.#tryPushCurrentPosition(true); + } + this._updateViewareaTimeout = null; + }, UPDATE_VIEWAREA_TIMEOUT); + } + } + #popState({ + state + }) { + const newHash = getCurrentHash(), + hashChanged = this._currentHash !== newHash; + this._currentHash = newHash; + if (!state) { + this._uid++; + const { + hash, + page, + rotation + } = this.#parseCurrentHash(); + this.#pushOrReplaceState({ + hash, + page, + rotation + }, true); + return; + } + if (!this.#isValidState(state)) { + return; + } + this._popStateInProgress = true; + if (hashChanged) { + this._blockHashChange++; + waitOnEventOrTimeout({ + target: window, + name: "hashchange", + delay: HASH_CHANGE_TIMEOUT + }).then(() => { + this._blockHashChange--; + }); + } + const destination = state.destination; + this.#updateInternalState(destination, state.uid, true); + if (isValidRotation(destination.rotation)) { + this.linkService.rotation = destination.rotation; + } + if (destination.dest) { + this.linkService.goToDestination(destination.dest); + } else if (destination.hash) { + this.linkService.setHash(destination.hash); + } else if (destination.page) { + this.linkService.page = destination.page; + } + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } + #pageHide() { + if (!this._destination || this._destination.temporary) { + this.#tryPushCurrentPosition(); + } + } + #bindEvents() { + if (this.#eventAbortController) { + return; + } + this.#eventAbortController = new AbortController(); + const { + signal + } = this.#eventAbortController; + this.eventBus._on("updateviewarea", this.#updateViewarea.bind(this), { + signal + }); + window.addEventListener("popstate", this.#popState.bind(this), { + signal + }); + window.addEventListener("pagehide", this.#pageHide.bind(this), { + signal + }); + } + #unbindEvents() { + this.#eventAbortController?.abort(); + this.#eventAbortController = null; + } +} +function isDestHashesEqual(destHash, pushHash) { + if (typeof destHash !== "string" || typeof pushHash !== "string") { + return false; + } + if (destHash === pushHash) { + return true; + } + const nameddest = parseQueryString(destHash).get("nameddest"); + if (nameddest === pushHash) { + return true; + } + return false; +} +function isDestArraysEqual(firstDest, secondDest) { + function isEntryEqual(first, second) { + if (typeof first !== typeof second) { + return false; + } + if (Array.isArray(first) || Array.isArray(second)) { + return false; + } + if (first !== null && typeof first === "object" && second !== null) { + if (Object.keys(first).length !== Object.keys(second).length) { + return false; + } + for (const key in first) { + if (!isEntryEqual(first[key], second[key])) { + return false; + } + } + return true; + } + return first === second || Number.isNaN(first) && Number.isNaN(second); + } + if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) { + return false; + } + if (firstDest.length !== secondDest.length) { + return false; + } + for (let i = 0, ii = firstDest.length; i < ii; i++) { + if (!isEntryEqual(firstDest[i], secondDest[i])) { + return false; + } + } + return true; +} + +;// ./web/pdf_layer_viewer.js + + +class PDFLayerViewer extends BaseTreeViewer { + constructor(options) { + super(options); + this.eventBus._on("optionalcontentconfigchanged", evt => { + this.#updateLayers(evt.promise); + }); + this.eventBus._on("resetlayers", () => { + this.#updateLayers(); + }); + this.eventBus._on("togglelayerstree", this._toggleAllTreeItems.bind(this)); + } + reset() { + super.reset(); + this._optionalContentConfig = null; + this._optionalContentVisibility?.clear(); + this._optionalContentVisibility = null; + } + _dispatchEvent(layersCount) { + this.eventBus.dispatch("layersloaded", { + source: this, + layersCount + }); + } + _bindLink(element, { + groupId, + input + }) { + const setVisibility = () => { + const visible = input.checked; + this._optionalContentConfig.setVisibility(groupId, visible); + const cached = this._optionalContentVisibility.get(groupId); + if (cached) { + cached.visible = visible; + } + this.eventBus.dispatch("optionalcontentconfig", { + source: this, + promise: Promise.resolve(this._optionalContentConfig) + }); + }; + element.onclick = evt => { + if (evt.target === input) { + setVisibility(); + return true; + } else if (evt.target !== element) { + return true; + } + input.checked = !input.checked; + setVisibility(); + return false; + }; + } + _setNestedName(element, { + name = null + }) { + if (typeof name === "string") { + element.textContent = this._normalizeTextContent(name); + return; + } + element.setAttribute("data-l10n-id", "pdfjs-additional-layers"); + element.style.fontStyle = "italic"; + this._l10n.translateOnce(element); + } + _addToggleButton(div, { + name = null + }) { + super._addToggleButton(div, name === null); + } + _toggleAllTreeItems() { + if (!this._optionalContentConfig) { + return; + } + super._toggleAllTreeItems(); + } + render({ + optionalContentConfig, + pdfDocument + }) { + if (this._optionalContentConfig) { + this.reset(); + } + this._optionalContentConfig = optionalContentConfig || null; + this._pdfDocument = pdfDocument || null; + const groups = optionalContentConfig?.getOrder(); + if (!groups) { + this._dispatchEvent(0); + return; + } + this._optionalContentVisibility = new Map(); + const fragment = document.createDocumentFragment(), + queue = [{ + parent: fragment, + groups + }]; + let layersCount = 0, + hasAnyNesting = false; + while (queue.length > 0) { + const levelData = queue.shift(); + for (const groupId of levelData.groups) { + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + div.append(element); + if (typeof groupId === "object") { + hasAnyNesting = true; + this._addToggleButton(div, groupId); + this._setNestedName(element, groupId); + const itemsDiv = document.createElement("div"); + itemsDiv.className = "treeItems"; + div.append(itemsDiv); + queue.push({ + parent: itemsDiv, + groups: groupId.order + }); + } else { + const group = optionalContentConfig.getGroup(groupId); + const input = document.createElement("input"); + this._bindLink(element, { + groupId, + input + }); + input.type = "checkbox"; + input.checked = group.visible; + this._optionalContentVisibility.set(groupId, { + input, + visible: input.checked + }); + const label = document.createElement("label"); + label.textContent = this._normalizeTextContent(group.name); + label.append(input); + element.append(label); + layersCount++; + } + levelData.parent.append(div); + } + } + this._finishRendering(fragment, layersCount, hasAnyNesting); + } + async #updateLayers(promise = null) { + if (!this._optionalContentConfig) { + return; + } + const pdfDocument = this._pdfDocument; + const optionalContentConfig = await (promise || pdfDocument.getOptionalContentConfig({ + intent: "display" + })); + if (pdfDocument !== this._pdfDocument) { + return; + } + if (promise) { + for (const [groupId, cached] of this._optionalContentVisibility) { + const group = optionalContentConfig.getGroup(groupId); + if (group && cached.visible !== group.visible) { + cached.input.checked = cached.visible = !cached.visible; + } + } + return; + } + this.eventBus.dispatch("optionalcontentconfig", { + source: this, + promise: Promise.resolve(optionalContentConfig) + }); + this.render({ + optionalContentConfig, + pdfDocument: this._pdfDocument + }); + } +} + +;// ./web/pdf_outline_viewer.js + + + + +class PDFOutlineViewer extends BaseTreeViewer { + constructor(options) { + super(options); + this.linkService = options.linkService; + this.downloadManager = options.downloadManager; + this.eventBus._on("toggleoutlinetree", this._toggleAllTreeItems.bind(this)); + this.eventBus._on("currentoutlineitem", this._currentOutlineItem.bind(this)); + this.eventBus._on("pagechanging", evt => { + this._currentPageNumber = evt.pageNumber; + }); + this.eventBus._on("pagesloaded", evt => { + this._isPagesLoaded = !!evt.pagesCount; + this._currentOutlineItemCapability?.resolve(this._isPagesLoaded); + }); + this.eventBus._on("sidebarviewchanged", evt => { + this._sidebarView = evt.view; + }); + } + reset() { + super.reset(); + this._outline = null; + this._pageNumberToDestHashCapability = null; + this._currentPageNumber = 1; + this._isPagesLoaded = null; + this._currentOutlineItemCapability?.resolve(false); + this._currentOutlineItemCapability = null; + } + _dispatchEvent(outlineCount) { + this._currentOutlineItemCapability = Promise.withResolvers(); + if (outlineCount === 0 || this._pdfDocument?.loadingParams.disableAutoFetch) { + this._currentOutlineItemCapability.resolve(false); + } else if (this._isPagesLoaded !== null) { + this._currentOutlineItemCapability.resolve(this._isPagesLoaded); + } + this.eventBus.dispatch("outlineloaded", { + source: this, + outlineCount, + currentOutlineItemPromise: this._currentOutlineItemCapability.promise + }); + } + _bindLink(element, { + url, + newWindow, + action, + attachment, + dest, + setOCGState + }) { + const { + linkService + } = this; + if (url) { + linkService.addLinkAttributes(element, url, newWindow); + return; + } + if (action) { + element.href = linkService.getAnchorUrl(""); + element.onclick = () => { + linkService.executeNamedAction(action); + return false; + }; + return; + } + if (attachment) { + element.href = linkService.getAnchorUrl(""); + element.onclick = () => { + this.downloadManager.openOrDownloadData(attachment.content, attachment.filename); + return false; + }; + return; + } + if (setOCGState) { + element.href = linkService.getAnchorUrl(""); + element.onclick = () => { + linkService.executeSetOCGState(setOCGState); + return false; + }; + return; + } + element.href = linkService.getDestinationHash(dest); + element.onclick = evt => { + this._updateCurrentTreeItem(evt.target.parentNode); + if (dest) { + linkService.goToDestination(dest); + } + return false; + }; + } + _setStyles(element, { + bold, + italic + }) { + if (bold) { + element.style.fontWeight = "bold"; + } + if (italic) { + element.style.fontStyle = "italic"; + } + } + _addToggleButton(div, { + count, + items + }) { + let hidden = false; + if (count < 0) { + let totalCount = items.length; + if (totalCount > 0) { + const queue = [...items]; + while (queue.length > 0) { + const { + count: nestedCount, + items: nestedItems + } = queue.shift(); + if (nestedCount > 0 && nestedItems.length > 0) { + totalCount += nestedItems.length; + queue.push(...nestedItems); + } + } + } + if (Math.abs(count) === totalCount) { + hidden = true; + } + } + super._addToggleButton(div, hidden); + } + _toggleAllTreeItems() { + if (!this._outline) { + return; + } + super._toggleAllTreeItems(); + } + render({ + outline, + pdfDocument + }) { + if (this._outline) { + this.reset(); + } + this._outline = outline || null; + this._pdfDocument = pdfDocument || null; + if (!outline) { + this._dispatchEvent(0); + return; + } + const fragment = document.createDocumentFragment(); + const queue = [{ + parent: fragment, + items: outline + }]; + let outlineCount = 0, + hasAnyNesting = false; + while (queue.length > 0) { + const levelData = queue.shift(); + for (const item of levelData.items) { + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + this._bindLink(element, item); + this._setStyles(element, item); + element.textContent = this._normalizeTextContent(item.title); + div.append(element); + if (item.items.length > 0) { + hasAnyNesting = true; + this._addToggleButton(div, item); + const itemsDiv = document.createElement("div"); + itemsDiv.className = "treeItems"; + div.append(itemsDiv); + queue.push({ + parent: itemsDiv, + items: item.items + }); + } + levelData.parent.append(div); + outlineCount++; + } + } + this._finishRendering(fragment, outlineCount, hasAnyNesting); + } + async _currentOutlineItem() { + if (!this._isPagesLoaded) { + throw new Error("_currentOutlineItem: All pages have not been loaded."); + } + if (!this._outline || !this._pdfDocument) { + return; + } + const pageNumberToDestHash = await this._getPageNumberToDestHash(this._pdfDocument); + if (!pageNumberToDestHash) { + return; + } + this._updateCurrentTreeItem(null); + if (this._sidebarView !== SidebarView.OUTLINE) { + return; + } + for (let i = this._currentPageNumber; i > 0; i--) { + const destHash = pageNumberToDestHash.get(i); + if (!destHash) { + continue; + } + const linkElement = this.container.querySelector(`a[href="${destHash}"]`); + if (!linkElement) { + continue; + } + this._scrollToCurrentTreeItem(linkElement.parentNode); + break; + } + } + async _getPageNumberToDestHash(pdfDocument) { + if (this._pageNumberToDestHashCapability) { + return this._pageNumberToDestHashCapability.promise; + } + this._pageNumberToDestHashCapability = Promise.withResolvers(); + const pageNumberToDestHash = new Map(), + pageNumberNesting = new Map(); + const queue = [{ + nesting: 0, + items: this._outline + }]; + while (queue.length > 0) { + const levelData = queue.shift(), + currentNesting = levelData.nesting; + for (const { + dest, + items + } of levelData.items) { + let explicitDest, pageNumber; + if (typeof dest === "string") { + explicitDest = await pdfDocument.getDestination(dest); + if (pdfDocument !== this._pdfDocument) { + return null; + } + } else { + explicitDest = dest; + } + if (Array.isArray(explicitDest)) { + const [destRef] = explicitDest; + if (destRef && typeof destRef === "object") { + pageNumber = pdfDocument.cachedPageNumber(destRef); + } else if (Number.isInteger(destRef)) { + pageNumber = destRef + 1; + } + if (Number.isInteger(pageNumber) && (!pageNumberToDestHash.has(pageNumber) || currentNesting > pageNumberNesting.get(pageNumber))) { + const destHash = this.linkService.getDestinationHash(dest); + pageNumberToDestHash.set(pageNumber, destHash); + pageNumberNesting.set(pageNumber, currentNesting); + } + } + if (items.length > 0) { + queue.push({ + nesting: currentNesting + 1, + items + }); + } + } + } + this._pageNumberToDestHashCapability.resolve(pageNumberToDestHash.size > 0 ? pageNumberToDestHash : null); + return this._pageNumberToDestHashCapability.promise; + } +} + +;// ./web/pdf_presentation_mode.js + + +const DELAY_BEFORE_HIDING_CONTROLS = 3000; +const ACTIVE_SELECTOR = "pdfPresentationMode"; +const CONTROLS_SELECTOR = "pdfPresentationModeControls"; +const MOUSE_SCROLL_COOLDOWN_TIME = 50; +const PAGE_SWITCH_THRESHOLD = 0.1; +const SWIPE_MIN_DISTANCE_THRESHOLD = 50; +const SWIPE_ANGLE_THRESHOLD = Math.PI / 6; +class PDFPresentationMode { + #state = PresentationModeState.UNKNOWN; + #args = null; + #fullscreenChangeAbortController = null; + #windowAbortController = null; + constructor({ + container, + pdfViewer, + eventBus + }) { + this.container = container; + this.pdfViewer = pdfViewer; + this.eventBus = eventBus; + this.contextMenuOpen = false; + this.mouseScrollTimeStamp = 0; + this.mouseScrollDelta = 0; + this.touchSwipeState = null; + } + async request() { + const { + container, + pdfViewer + } = this; + if (this.active || !pdfViewer.pagesCount || !container.requestFullscreen) { + return false; + } + this.#addFullscreenChangeListeners(); + this.#notifyStateChange(PresentationModeState.CHANGING); + const promise = container.requestFullscreen(); + this.#args = { + pageNumber: pdfViewer.currentPageNumber, + scaleValue: pdfViewer.currentScaleValue, + scrollMode: pdfViewer.scrollMode, + spreadMode: null, + annotationEditorMode: null + }; + if (pdfViewer.spreadMode !== SpreadMode.NONE && !(pdfViewer.pageViewsReady && pdfViewer.hasEqualPageSizes)) { + console.warn("Ignoring Spread modes when entering PresentationMode, " + "since the document may contain varying page sizes."); + this.#args.spreadMode = pdfViewer.spreadMode; + } + if (pdfViewer.annotationEditorMode !== AnnotationEditorType.DISABLE) { + this.#args.annotationEditorMode = pdfViewer.annotationEditorMode; + } + try { + await promise; + pdfViewer.focus(); + return true; + } catch { + this.#removeFullscreenChangeListeners(); + this.#notifyStateChange(PresentationModeState.NORMAL); + } + return false; + } + get active() { + return this.#state === PresentationModeState.CHANGING || this.#state === PresentationModeState.FULLSCREEN; + } + #mouseWheel(evt) { + if (!this.active) { + return; + } + evt.preventDefault(); + const delta = normalizeWheelEventDelta(evt); + const currentTime = Date.now(); + const storedTime = this.mouseScrollTimeStamp; + if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) { + return; + } + if (this.mouseScrollDelta > 0 && delta < 0 || this.mouseScrollDelta < 0 && delta > 0) { + this.#resetMouseScrollState(); + } + this.mouseScrollDelta += delta; + if (Math.abs(this.mouseScrollDelta) >= PAGE_SWITCH_THRESHOLD) { + const totalDelta = this.mouseScrollDelta; + this.#resetMouseScrollState(); + const success = totalDelta > 0 ? this.pdfViewer.previousPage() : this.pdfViewer.nextPage(); + if (success) { + this.mouseScrollTimeStamp = currentTime; + } + } + } + #notifyStateChange(state) { + this.#state = state; + this.eventBus.dispatch("presentationmodechanged", { + source: this, + state + }); + } + #enter() { + this.#notifyStateChange(PresentationModeState.FULLSCREEN); + this.container.classList.add(ACTIVE_SELECTOR); + setTimeout(() => { + this.pdfViewer.scrollMode = ScrollMode.PAGE; + if (this.#args.spreadMode !== null) { + this.pdfViewer.spreadMode = SpreadMode.NONE; + } + this.pdfViewer.currentPageNumber = this.#args.pageNumber; + this.pdfViewer.currentScaleValue = "page-fit"; + if (this.#args.annotationEditorMode !== null) { + this.pdfViewer.annotationEditorMode = { + mode: AnnotationEditorType.NONE + }; + } + }, 0); + this.#addWindowListeners(); + this.#showControls(); + this.contextMenuOpen = false; + document.getSelection().empty(); + } + #exit() { + const pageNumber = this.pdfViewer.currentPageNumber; + this.container.classList.remove(ACTIVE_SELECTOR); + setTimeout(() => { + this.#removeFullscreenChangeListeners(); + this.#notifyStateChange(PresentationModeState.NORMAL); + this.pdfViewer.scrollMode = this.#args.scrollMode; + if (this.#args.spreadMode !== null) { + this.pdfViewer.spreadMode = this.#args.spreadMode; + } + this.pdfViewer.currentScaleValue = this.#args.scaleValue; + this.pdfViewer.currentPageNumber = pageNumber; + if (this.#args.annotationEditorMode !== null) { + this.pdfViewer.annotationEditorMode = { + mode: this.#args.annotationEditorMode + }; + } + this.#args = null; + }, 0); + this.#removeWindowListeners(); + this.#hideControls(); + this.#resetMouseScrollState(); + this.contextMenuOpen = false; + } + #mouseDown(evt) { + if (this.contextMenuOpen) { + this.contextMenuOpen = false; + evt.preventDefault(); + return; + } + if (evt.button !== 0) { + return; + } + if (evt.target.href && evt.target.parentNode?.hasAttribute("data-internal-link")) { + return; + } + evt.preventDefault(); + if (evt.shiftKey) { + this.pdfViewer.previousPage(); + } else { + this.pdfViewer.nextPage(); + } + } + #contextMenu() { + this.contextMenuOpen = true; + } + #showControls() { + if (this.controlsTimeout) { + clearTimeout(this.controlsTimeout); + } else { + this.container.classList.add(CONTROLS_SELECTOR); + } + this.controlsTimeout = setTimeout(() => { + this.container.classList.remove(CONTROLS_SELECTOR); + delete this.controlsTimeout; + }, DELAY_BEFORE_HIDING_CONTROLS); + } + #hideControls() { + if (!this.controlsTimeout) { + return; + } + clearTimeout(this.controlsTimeout); + this.container.classList.remove(CONTROLS_SELECTOR); + delete this.controlsTimeout; + } + #resetMouseScrollState() { + this.mouseScrollTimeStamp = 0; + this.mouseScrollDelta = 0; + } + #touchSwipe(evt) { + if (!this.active) { + return; + } + if (evt.touches.length > 1) { + this.touchSwipeState = null; + return; + } + switch (evt.type) { + case "touchstart": + this.touchSwipeState = { + startX: evt.touches[0].pageX, + startY: evt.touches[0].pageY, + endX: evt.touches[0].pageX, + endY: evt.touches[0].pageY + }; + break; + case "touchmove": + if (this.touchSwipeState === null) { + return; + } + this.touchSwipeState.endX = evt.touches[0].pageX; + this.touchSwipeState.endY = evt.touches[0].pageY; + evt.preventDefault(); + break; + case "touchend": + if (this.touchSwipeState === null) { + return; + } + let delta = 0; + const dx = this.touchSwipeState.endX - this.touchSwipeState.startX; + const dy = this.touchSwipeState.endY - this.touchSwipeState.startY; + const absAngle = Math.abs(Math.atan2(dy, dx)); + if (Math.abs(dx) > SWIPE_MIN_DISTANCE_THRESHOLD && (absAngle <= SWIPE_ANGLE_THRESHOLD || absAngle >= Math.PI - SWIPE_ANGLE_THRESHOLD)) { + delta = dx; + } else if (Math.abs(dy) > SWIPE_MIN_DISTANCE_THRESHOLD && Math.abs(absAngle - Math.PI / 2) <= SWIPE_ANGLE_THRESHOLD) { + delta = dy; + } + if (delta > 0) { + this.pdfViewer.previousPage(); + } else if (delta < 0) { + this.pdfViewer.nextPage(); + } + break; + } + } + #addWindowListeners() { + if (this.#windowAbortController) { + return; + } + this.#windowAbortController = new AbortController(); + const { + signal + } = this.#windowAbortController; + const touchSwipeBind = this.#touchSwipe.bind(this); + window.addEventListener("mousemove", this.#showControls.bind(this), { + signal + }); + window.addEventListener("mousedown", this.#mouseDown.bind(this), { + signal + }); + window.addEventListener("wheel", this.#mouseWheel.bind(this), { + passive: false, + signal + }); + window.addEventListener("keydown", this.#resetMouseScrollState.bind(this), { + signal + }); + window.addEventListener("contextmenu", this.#contextMenu.bind(this), { + signal + }); + window.addEventListener("touchstart", touchSwipeBind, { + signal + }); + window.addEventListener("touchmove", touchSwipeBind, { + signal + }); + window.addEventListener("touchend", touchSwipeBind, { + signal + }); + } + #removeWindowListeners() { + this.#windowAbortController?.abort(); + this.#windowAbortController = null; + } + #addFullscreenChangeListeners() { + if (this.#fullscreenChangeAbortController) { + return; + } + this.#fullscreenChangeAbortController = new AbortController(); + window.addEventListener("fullscreenchange", () => { + if (document.fullscreenElement) { + this.#enter(); + } else { + this.#exit(); + } + }, { + signal: this.#fullscreenChangeAbortController.signal + }); + } + #removeFullscreenChangeListeners() { + this.#fullscreenChangeAbortController?.abort(); + this.#fullscreenChangeAbortController = null; + } +} + +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.every.js +var esnext_iterator_every = __webpack_require__(3215); +;// ./web/xfa_layer_builder.js + +class XfaLayerBuilder { + constructor({ + pdfPage, + annotationStorage = null, + linkService, + xfaHtml = null + }) { + this.pdfPage = pdfPage; + this.annotationStorage = annotationStorage; + this.linkService = linkService; + this.xfaHtml = xfaHtml; + this.div = null; + this._cancelled = false; + } + async render(viewport, intent = "display") { + if (intent === "print") { + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + xfaHtml: this.xfaHtml, + annotationStorage: this.annotationStorage, + linkService: this.linkService, + intent + }; + this.div = document.createElement("div"); + parameters.div = this.div; + return XfaLayer.render(parameters); + } + const xfaHtml = await this.pdfPage.getXfa(); + if (this._cancelled || !xfaHtml) { + return { + textDivs: [] + }; + } + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + xfaHtml, + annotationStorage: this.annotationStorage, + linkService: this.linkService, + intent + }; + if (this.div) { + return XfaLayer.update(parameters); + } + this.div = document.createElement("div"); + parameters.div = this.div; + return XfaLayer.render(parameters); + } + cancel() { + this._cancelled = true; + } + hide() { + if (!this.div) { + return; + } + this.div.hidden = true; + } +} + +;// ./web/print_utils.js + + + +function getXfaHtmlForPrinting(printContainer, pdfDocument) { + const xfaHtml = pdfDocument.allXfaHtml; + const linkService = new SimpleLinkService(); + const scale = Math.round(PixelsPerInch.PDF_TO_CSS_UNITS * 100) / 100; + for (const xfaPage of xfaHtml.children) { + const page = document.createElement("div"); + page.className = "xfaPrintedPage"; + printContainer.append(page); + const builder = new XfaLayerBuilder({ + pdfPage: null, + annotationStorage: pdfDocument.annotationStorage, + linkService, + xfaHtml: xfaPage + }); + const viewport = getXfaPageViewport(xfaPage, { + scale + }); + builder.render(viewport, "print"); + page.append(builder.div); + } +} + +;// ./web/pdf_print_service.js + + + + + + + + +let activeService = null; +let dialog = null; +let overlayManager = null; +let viewerApp = { + initialized: false +}; +function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size, printResolution, optionalContentConfigPromise, printAnnotationStoragePromise) { + const scratchCanvas = activeService.scratchCanvas; + const PRINT_UNITS = printResolution / PixelsPerInch.PDF; + scratchCanvas.width = Math.floor(size.width * PRINT_UNITS); + scratchCanvas.height = Math.floor(size.height * PRINT_UNITS); + const ctx = scratchCanvas.getContext("2d"); + ctx.save(); + ctx.fillStyle = "rgb(255, 255, 255)"; + ctx.fillRect(0, 0, scratchCanvas.width, scratchCanvas.height); + ctx.restore(); + return Promise.all([pdfDocument.getPage(pageNumber), printAnnotationStoragePromise]).then(function ([pdfPage, printAnnotationStorage]) { + const renderContext = { + canvasContext: ctx, + transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0], + viewport: pdfPage.getViewport({ + scale: 1, + rotation: size.rotation + }), + intent: "print", + annotationMode: AnnotationMode.ENABLE_STORAGE, + optionalContentConfigPromise, + printAnnotationStorage + }; + const renderTask = pdfPage.render(renderContext); + return renderTask.promise.catch(reason => { + if (!(reason instanceof RenderingCancelledException)) { + console.error(reason); + } + throw reason; + }); + }); +} +class PDFPrintService { + constructor({ + pdfDocument, + pagesOverview, + printContainer, + printResolution, + printAnnotationStoragePromise = null + }) { + this.pdfDocument = pdfDocument; + this.pagesOverview = pagesOverview; + this.printContainer = printContainer; + this._printResolution = printResolution || 150; + this._optionalContentConfigPromise = pdfDocument.getOptionalContentConfig({ + intent: "print" + }); + this._printAnnotationStoragePromise = printAnnotationStoragePromise || Promise.resolve(); + this.currentPage = -1; + this.scratchCanvas = document.createElement("canvas"); + } + layout() { + this.throwIfInactive(); + const body = document.querySelector("body"); + body.setAttribute("data-pdfjsprinting", true); + const { + width, + height + } = this.pagesOverview[0]; + const hasEqualPageSizes = this.pagesOverview.every(size => size.width === width && size.height === height); + if (!hasEqualPageSizes) { + console.warn("Not all pages have the same size. The printed result may be incorrect!"); + } + this.pageStyleSheet = document.createElement("style"); + this.pageStyleSheet.textContent = `@page { size: ${width}pt ${height}pt;}`; + body.append(this.pageStyleSheet); + } + destroy() { + if (activeService !== this) { + return; + } + this.printContainer.textContent = ""; + const body = document.querySelector("body"); + body.removeAttribute("data-pdfjsprinting"); + if (this.pageStyleSheet) { + this.pageStyleSheet.remove(); + this.pageStyleSheet = null; + } + this.scratchCanvas.width = this.scratchCanvas.height = 0; + this.scratchCanvas = null; + activeService = null; + ensureOverlay().then(function () { + if (overlayManager.active === dialog) { + overlayManager.close(dialog); + } + }); + } + renderPages() { + if (this.pdfDocument.isPureXfa) { + getXfaHtmlForPrinting(this.printContainer, this.pdfDocument); + return Promise.resolve(); + } + const pageCount = this.pagesOverview.length; + const renderNextPage = (resolve, reject) => { + this.throwIfInactive(); + if (++this.currentPage >= pageCount) { + renderProgress(pageCount, pageCount); + resolve(); + return; + } + const index = this.currentPage; + renderProgress(index, pageCount); + renderPage(this, this.pdfDocument, index + 1, this.pagesOverview[index], this._printResolution, this._optionalContentConfigPromise, this._printAnnotationStoragePromise).then(this.useRenderedPage.bind(this)).then(function () { + renderNextPage(resolve, reject); + }, reject); + }; + return new Promise(renderNextPage); + } + useRenderedPage() { + this.throwIfInactive(); + const img = document.createElement("img"); + this.scratchCanvas.toBlob(blob => { + img.src = URL.createObjectURL(blob); + }); + const wrapper = document.createElement("div"); + wrapper.className = "printedPage"; + wrapper.append(img); + this.printContainer.append(wrapper); + const { + promise, + resolve, + reject + } = Promise.withResolvers(); + img.onload = resolve; + img.onerror = reject; + promise.catch(() => {}).then(() => { + URL.revokeObjectURL(img.src); + }); + return promise; + } + performPrint() { + this.throwIfInactive(); + return new Promise(resolve => { + setTimeout(() => { + if (!this.active) { + resolve(); + return; + } + print.call(window); + setTimeout(resolve, 20); + }, 0); + }); + } + get active() { + return this === activeService; + } + throwIfInactive() { + if (!this.active) { + throw new Error("This print request was cancelled or completed."); + } + } +} +const print = window.print; +window.print = function () { + if (activeService) { + console.warn("Ignored window.print() because of a pending print job."); + return; + } + ensureOverlay().then(function () { + if (activeService) { + overlayManager.open(dialog); + } + }); + try { + dispatchEvent("beforeprint"); + } finally { + if (!activeService) { + console.error("Expected print service to be initialized."); + ensureOverlay().then(function () { + if (overlayManager.active === dialog) { + overlayManager.close(dialog); + } + }); + return; + } + const activeServiceOnEntry = activeService; + activeService.renderPages().then(function () { + return activeServiceOnEntry.performPrint(); + }).catch(function () {}).then(function () { + if (activeServiceOnEntry.active) { + abort(); + } + }); + } +}; +function dispatchEvent(eventType) { + const event = new CustomEvent(eventType, { + bubbles: false, + cancelable: false, + detail: "custom" + }); + window.dispatchEvent(event); +} +function abort() { + if (activeService) { + activeService.destroy(); + dispatchEvent("afterprint"); + } +} +function renderProgress(index, total) { + dialog ||= document.getElementById("printServiceDialog"); + const progress = Math.round(100 * index / total); + const progressBar = dialog.querySelector("progress"); + const progressPerc = dialog.querySelector(".relative-progress"); + progressBar.value = progress; + progressPerc.setAttribute("data-l10n-args", JSON.stringify({ + progress + })); +} +window.addEventListener("keydown", function (event) { + if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) { + window.print(); + event.preventDefault(); + event.stopImmediatePropagation(); + } +}, true); +if ("onbeforeprint" in window) { + const stopPropagationIfNeeded = function (event) { + if (event.detail !== "custom") { + event.stopImmediatePropagation(); + } + }; + window.addEventListener("beforeprint", stopPropagationIfNeeded); + window.addEventListener("afterprint", stopPropagationIfNeeded); +} +let overlayPromise; +function ensureOverlay() { + if (!overlayPromise) { + overlayManager = viewerApp.overlayManager; + if (!overlayManager) { + throw new Error("The overlay manager has not yet been initialized."); + } + dialog ||= document.getElementById("printServiceDialog"); + overlayPromise = overlayManager.register(dialog, true); + document.getElementById("printCancel").onclick = abort; + dialog.addEventListener("close", abort); + } + return overlayPromise; +} +class PDFPrintServiceFactory { + static initGlobals(app) { + viewerApp = app; + } + static get supportsPrinting() { + return shadow(this, "supportsPrinting", true); + } + static createPrintService(params) { + if (activeService) { + throw new Error("The print service is created and active."); + } + return activeService = new PDFPrintService(params); + } +} + +;// ./web/pdf_rendering_queue.js + + +const CLEANUP_TIMEOUT = 30000; +class PDFRenderingQueue { + constructor() { + this.pdfViewer = null; + this.pdfThumbnailViewer = null; + this.onIdle = null; + this.highestPriorityPage = null; + this.idleTimeout = null; + this.printing = false; + this.isThumbnailViewEnabled = false; + Object.defineProperty(this, "hasViewer", { + value: () => !!this.pdfViewer + }); + } + setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } + setThumbnailViewer(pdfThumbnailViewer) { + this.pdfThumbnailViewer = pdfThumbnailViewer; + } + isHighestPriority(view) { + return this.highestPriorityPage === view.renderingId; + } + renderHighestPriority(currentlyVisiblePages) { + if (this.idleTimeout) { + clearTimeout(this.idleTimeout); + this.idleTimeout = null; + } + if (this.pdfViewer.forceRendering(currentlyVisiblePages)) { + return; + } + if (this.isThumbnailViewEnabled && this.pdfThumbnailViewer?.forceRendering()) { + return; + } + if (this.printing) { + return; + } + if (this.onIdle) { + this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT); + } + } + getHighestPriority(visible, views, scrolledDown, preRenderExtra = false) { + const visibleViews = visible.views, + numVisible = visibleViews.length; + if (numVisible === 0) { + return null; + } + for (let i = 0; i < numVisible; i++) { + const view = visibleViews[i].view; + if (!this.isViewFinished(view)) { + return view; + } + } + const firstId = visible.first.id, + lastId = visible.last.id; + if (lastId - firstId + 1 > numVisible) { + const visibleIds = visible.ids; + for (let i = 1, ii = lastId - firstId; i < ii; i++) { + const holeId = scrolledDown ? firstId + i : lastId - i; + if (visibleIds.has(holeId)) { + continue; + } + const holeView = views[holeId - 1]; + if (!this.isViewFinished(holeView)) { + return holeView; + } + } + } + let preRenderIndex = scrolledDown ? lastId : firstId - 2; + let preRenderView = views[preRenderIndex]; + if (preRenderView && !this.isViewFinished(preRenderView)) { + return preRenderView; + } + if (preRenderExtra) { + preRenderIndex += scrolledDown ? 1 : -1; + preRenderView = views[preRenderIndex]; + if (preRenderView && !this.isViewFinished(preRenderView)) { + return preRenderView; + } + } + return null; + } + isViewFinished(view) { + return view.renderingState === RenderingStates.FINISHED; + } + renderView(view) { + switch (view.renderingState) { + case RenderingStates.FINISHED: + return false; + case RenderingStates.PAUSED: + this.highestPriorityPage = view.renderingId; + view.resume(); + break; + case RenderingStates.RUNNING: + this.highestPriorityPage = view.renderingId; + break; + case RenderingStates.INITIAL: + this.highestPriorityPage = view.renderingId; + view.draw().finally(() => { + this.renderHighestPriority(); + }).catch(reason => { + if (reason instanceof RenderingCancelledException) { + return; + } + console.error(`renderView: "${reason}"`); + }); + break; + } + return true; + } +} + +;// ./web/pdf_scripting_manager.js + + + + + + + + + + +class PDFScriptingManager { + #closeCapability = null; + #destroyCapability = null; + #docProperties = null; + #eventAbortController = null; + #eventBus = null; + #externalServices = null; + #pdfDocument = null; + #pdfViewer = null; + #ready = false; + #scripting = null; + #willPrintCapability = null; + constructor({ + eventBus, + externalServices = null, + docProperties = null + }) { + this.#eventBus = eventBus; + this.#externalServices = externalServices; + this.#docProperties = docProperties; + } + setViewer(pdfViewer) { + this.#pdfViewer = pdfViewer; + } + async setDocument(pdfDocument) { + if (this.#pdfDocument) { + await this.#destroyScripting(); + } + this.#pdfDocument = pdfDocument; + if (!pdfDocument) { + return; + } + const [objects, calculationOrder, docActions] = await Promise.all([pdfDocument.getFieldObjects(), pdfDocument.getCalculationOrderIds(), pdfDocument.getJSActions()]); + if (!objects && !docActions) { + await this.#destroyScripting(); + return; + } + if (pdfDocument !== this.#pdfDocument) { + return; + } + try { + this.#scripting = this.#initScripting(); + } catch (error) { + console.error(`setDocument: "${error.message}".`); + await this.#destroyScripting(); + return; + } + const eventBus = this.#eventBus; + this.#eventAbortController = new AbortController(); + const { + signal + } = this.#eventAbortController; + eventBus._on("updatefromsandbox", event => { + if (event?.source === window) { + this.#updateFromSandbox(event.detail); + } + }, { + signal + }); + eventBus._on("dispatcheventinsandbox", event => { + this.#scripting?.dispatchEventInSandbox(event.detail); + }, { + signal + }); + eventBus._on("pagechanging", ({ + pageNumber, + previous + }) => { + if (pageNumber === previous) { + return; + } + this.#dispatchPageClose(previous); + this.#dispatchPageOpen(pageNumber); + }, { + signal + }); + eventBus._on("pagerendered", ({ + pageNumber + }) => { + if (!this._pageOpenPending.has(pageNumber)) { + return; + } + if (pageNumber !== this.#pdfViewer.currentPageNumber) { + return; + } + this.#dispatchPageOpen(pageNumber); + }, { + signal + }); + eventBus._on("pagesdestroy", async () => { + await this.#dispatchPageClose(this.#pdfViewer.currentPageNumber); + await this.#scripting?.dispatchEventInSandbox({ + id: "doc", + name: "WillClose" + }); + this.#closeCapability?.resolve(); + }, { + signal + }); + try { + const docProperties = await this.#docProperties(pdfDocument); + if (pdfDocument !== this.#pdfDocument) { + return; + } + await this.#scripting.createSandbox({ + objects, + calculationOrder, + appInfo: { + platform: navigator.platform, + language: navigator.language + }, + docInfo: { + ...docProperties, + actions: docActions + } + }); + eventBus.dispatch("sandboxcreated", { + source: this + }); + } catch (error) { + console.error(`setDocument: "${error.message}".`); + await this.#destroyScripting(); + return; + } + await this.#scripting?.dispatchEventInSandbox({ + id: "doc", + name: "Open" + }); + await this.#dispatchPageOpen(this.#pdfViewer.currentPageNumber, true); + Promise.resolve().then(() => { + if (pdfDocument === this.#pdfDocument) { + this.#ready = true; + } + }); + } + async dispatchWillSave() { + return this.#scripting?.dispatchEventInSandbox({ + id: "doc", + name: "WillSave" + }); + } + async dispatchDidSave() { + return this.#scripting?.dispatchEventInSandbox({ + id: "doc", + name: "DidSave" + }); + } + async dispatchWillPrint() { + if (!this.#scripting) { + return; + } + await this.#willPrintCapability?.promise; + this.#willPrintCapability = Promise.withResolvers(); + try { + await this.#scripting.dispatchEventInSandbox({ + id: "doc", + name: "WillPrint" + }); + } catch (ex) { + this.#willPrintCapability.resolve(); + this.#willPrintCapability = null; + throw ex; + } + await this.#willPrintCapability.promise; + } + async dispatchDidPrint() { + return this.#scripting?.dispatchEventInSandbox({ + id: "doc", + name: "DidPrint" + }); + } + get destroyPromise() { + return this.#destroyCapability?.promise || null; + } + get ready() { + return this.#ready; + } + get _pageOpenPending() { + return shadow(this, "_pageOpenPending", new Set()); + } + get _visitedPages() { + return shadow(this, "_visitedPages", new Map()); + } + async #updateFromSandbox(detail) { + const pdfViewer = this.#pdfViewer; + const isInPresentationMode = pdfViewer.isInPresentationMode || pdfViewer.isChangingPresentationMode; + const { + id, + siblings, + command, + value + } = detail; + if (!id) { + switch (command) { + case "clear": + console.clear(); + break; + case "error": + console.error(value); + break; + case "layout": + if (!isInPresentationMode) { + const modes = apiPageLayoutToViewerModes(value); + pdfViewer.spreadMode = modes.spreadMode; + } + break; + case "page-num": + pdfViewer.currentPageNumber = value + 1; + break; + case "print": + await pdfViewer.pagesPromise; + this.#eventBus.dispatch("print", { + source: this + }); + break; + case "println": + console.log(value); + break; + case "zoom": + if (!isInPresentationMode) { + pdfViewer.currentScaleValue = value; + } + break; + case "SaveAs": + this.#eventBus.dispatch("download", { + source: this + }); + break; + case "FirstPage": + pdfViewer.currentPageNumber = 1; + break; + case "LastPage": + pdfViewer.currentPageNumber = pdfViewer.pagesCount; + break; + case "NextPage": + pdfViewer.nextPage(); + break; + case "PrevPage": + pdfViewer.previousPage(); + break; + case "ZoomViewIn": + if (!isInPresentationMode) { + pdfViewer.increaseScale(); + } + break; + case "ZoomViewOut": + if (!isInPresentationMode) { + pdfViewer.decreaseScale(); + } + break; + case "WillPrintFinished": + this.#willPrintCapability?.resolve(); + this.#willPrintCapability = null; + break; + } + return; + } + if (isInPresentationMode && detail.focus) { + return; + } + delete detail.id; + delete detail.siblings; + const ids = siblings ? [id, ...siblings] : [id]; + for (const elementId of ids) { + const element = document.querySelector(`[data-element-id="${elementId}"]`); + if (element) { + element.dispatchEvent(new CustomEvent("updatefromsandbox", { + detail + })); + } else { + this.#pdfDocument?.annotationStorage.setValue(elementId, detail); + } + } + } + async #dispatchPageOpen(pageNumber, initialize = false) { + const pdfDocument = this.#pdfDocument, + visitedPages = this._visitedPages; + if (initialize) { + this.#closeCapability = Promise.withResolvers(); + } + if (!this.#closeCapability) { + return; + } + const pageView = this.#pdfViewer.getPageView(pageNumber - 1); + if (pageView?.renderingState !== RenderingStates.FINISHED) { + this._pageOpenPending.add(pageNumber); + return; + } + this._pageOpenPending.delete(pageNumber); + const actionsPromise = (async () => { + const actions = await (!visitedPages.has(pageNumber) ? pageView.pdfPage?.getJSActions() : null); + if (pdfDocument !== this.#pdfDocument) { + return; + } + await this.#scripting?.dispatchEventInSandbox({ + id: "page", + name: "PageOpen", + pageNumber, + actions + }); + })(); + visitedPages.set(pageNumber, actionsPromise); + } + async #dispatchPageClose(pageNumber) { + const pdfDocument = this.#pdfDocument, + visitedPages = this._visitedPages; + if (!this.#closeCapability) { + return; + } + if (this._pageOpenPending.has(pageNumber)) { + return; + } + const actionsPromise = visitedPages.get(pageNumber); + if (!actionsPromise) { + return; + } + visitedPages.set(pageNumber, null); + await actionsPromise; + if (pdfDocument !== this.#pdfDocument) { + return; + } + await this.#scripting?.dispatchEventInSandbox({ + id: "page", + name: "PageClose", + pageNumber + }); + } + #initScripting() { + this.#destroyCapability = Promise.withResolvers(); + if (this.#scripting) { + throw new Error("#initScripting: Scripting already exists."); + } + return this.#externalServices.createScripting(); + } + async #destroyScripting() { + if (!this.#scripting) { + this.#pdfDocument = null; + this.#destroyCapability?.resolve(); + return; + } + if (this.#closeCapability) { + await Promise.race([this.#closeCapability.promise, new Promise(resolve => { + setTimeout(resolve, 1000); + })]).catch(() => {}); + this.#closeCapability = null; + } + this.#pdfDocument = null; + try { + await this.#scripting.destroySandbox(); + } catch {} + this.#willPrintCapability?.reject(new Error("Scripting destroyed.")); + this.#willPrintCapability = null; + this.#eventAbortController?.abort(); + this.#eventAbortController = null; + this._pageOpenPending.clear(); + this._visitedPages.clear(); + this.#scripting = null; + this.#ready = false; + this.#destroyCapability?.resolve(); + } +} + +;// ./web/pdf_sidebar.js + +const SIDEBAR_WIDTH_VAR = "--sidebar-width"; +const SIDEBAR_MIN_WIDTH = 200; +const SIDEBAR_RESIZING_CLASS = "sidebarResizing"; +const UI_NOTIFICATION_CLASS = "pdfSidebarNotification"; +class PDFSidebar { + #isRTL = false; + #mouseAC = null; + #outerContainerWidth = null; + #width = null; + constructor({ + elements, + eventBus, + l10n + }) { + this.isOpen = false; + this.active = SidebarView.THUMBS; + this.isInitialViewSet = false; + this.isInitialEventDispatched = false; + this.onToggled = null; + this.onUpdateThumbnails = null; + this.outerContainer = elements.outerContainer; + this.sidebarContainer = elements.sidebarContainer; + this.toggleButton = elements.toggleButton; + this.resizer = elements.resizer; + this.thumbnailButton = elements.thumbnailButton; + this.outlineButton = elements.outlineButton; + this.attachmentsButton = elements.attachmentsButton; + this.layersButton = elements.layersButton; + this.thumbnailView = elements.thumbnailView; + this.outlineView = elements.outlineView; + this.attachmentsView = elements.attachmentsView; + this.layersView = elements.layersView; + this._currentOutlineItemButton = elements.currentOutlineItemButton; + this.eventBus = eventBus; + this.#isRTL = l10n.getDirection() === "rtl"; + this.#addEventListeners(); + } + reset() { + this.isInitialViewSet = false; + this.isInitialEventDispatched = false; + this.#hideUINotification(true); + this.switchView(SidebarView.THUMBS); + this.outlineButton.disabled = false; + this.attachmentsButton.disabled = false; + this.layersButton.disabled = false; + this._currentOutlineItemButton.disabled = true; + } + get visibleView() { + return this.isOpen ? this.active : SidebarView.NONE; + } + setInitialView(view = SidebarView.NONE) { + if (this.isInitialViewSet) { + return; + } + this.isInitialViewSet = true; + if (view === SidebarView.NONE || view === SidebarView.UNKNOWN) { + this.#dispatchEvent(); + return; + } + this.switchView(view, true); + if (!this.isInitialEventDispatched) { + this.#dispatchEvent(); + } + } + switchView(view, forceOpen = false) { + const isViewChanged = view !== this.active; + let forceRendering = false; + switch (view) { + case SidebarView.NONE: + if (this.isOpen) { + this.close(); + } + return; + case SidebarView.THUMBS: + if (this.isOpen && isViewChanged) { + forceRendering = true; + } + break; + case SidebarView.OUTLINE: + if (this.outlineButton.disabled) { + return; + } + break; + case SidebarView.ATTACHMENTS: + if (this.attachmentsButton.disabled) { + return; + } + break; + case SidebarView.LAYERS: + if (this.layersButton.disabled) { + return; + } + break; + default: + console.error(`PDFSidebar.switchView: "${view}" is not a valid view.`); + return; + } + this.active = view; + toggleCheckedBtn(this.thumbnailButton, view === SidebarView.THUMBS, this.thumbnailView); + toggleCheckedBtn(this.outlineButton, view === SidebarView.OUTLINE, this.outlineView); + toggleCheckedBtn(this.attachmentsButton, view === SidebarView.ATTACHMENTS, this.attachmentsView); + toggleCheckedBtn(this.layersButton, view === SidebarView.LAYERS, this.layersView); + if (forceOpen && !this.isOpen) { + this.open(); + return; + } + if (forceRendering) { + this.onUpdateThumbnails(); + this.onToggled(); + } + if (isViewChanged) { + this.#dispatchEvent(); + } + } + open() { + if (this.isOpen) { + return; + } + this.isOpen = true; + toggleExpandedBtn(this.toggleButton, true); + this.outerContainer.classList.add("sidebarMoving", "sidebarOpen"); + if (this.active === SidebarView.THUMBS) { + this.onUpdateThumbnails(); + } + this.onToggled(); + this.#dispatchEvent(); + this.#hideUINotification(); + } + close(evt = null) { + if (!this.isOpen) { + return; + } + this.isOpen = false; + toggleExpandedBtn(this.toggleButton, false); + this.outerContainer.classList.add("sidebarMoving"); + this.outerContainer.classList.remove("sidebarOpen"); + this.onToggled(); + this.#dispatchEvent(); + if (evt?.detail > 0) { + this.toggleButton.blur(); + } + } + toggle(evt = null) { + if (this.isOpen) { + this.close(evt); + } else { + this.open(); + } + } + #dispatchEvent() { + if (this.isInitialViewSet) { + this.isInitialEventDispatched ||= true; + } + this.eventBus.dispatch("sidebarviewchanged", { + source: this, + view: this.visibleView + }); + } + #showUINotification() { + this.toggleButton.setAttribute("data-l10n-id", "pdfjs-toggle-sidebar-notification-button"); + if (!this.isOpen) { + this.toggleButton.classList.add(UI_NOTIFICATION_CLASS); + } + } + #hideUINotification(reset = false) { + if (this.isOpen || reset) { + this.toggleButton.classList.remove(UI_NOTIFICATION_CLASS); + } + if (reset) { + this.toggleButton.setAttribute("data-l10n-id", "pdfjs-toggle-sidebar-button"); + } + } + #addEventListeners() { + const { + eventBus, + outerContainer + } = this; + this.sidebarContainer.addEventListener("transitionend", evt => { + if (evt.target === this.sidebarContainer) { + outerContainer.classList.remove("sidebarMoving"); + eventBus.dispatch("resize", { + source: this + }); + } + }); + this.toggleButton.addEventListener("click", evt => { + this.toggle(evt); + }); + this.thumbnailButton.addEventListener("click", () => { + this.switchView(SidebarView.THUMBS); + }); + this.outlineButton.addEventListener("click", () => { + this.switchView(SidebarView.OUTLINE); + }); + this.outlineButton.addEventListener("dblclick", () => { + eventBus.dispatch("toggleoutlinetree", { + source: this + }); + }); + this.attachmentsButton.addEventListener("click", () => { + this.switchView(SidebarView.ATTACHMENTS); + }); + this.layersButton.addEventListener("click", () => { + this.switchView(SidebarView.LAYERS); + }); + this.layersButton.addEventListener("dblclick", () => { + eventBus.dispatch("resetlayers", { + source: this + }); + }); + this._currentOutlineItemButton.addEventListener("click", () => { + eventBus.dispatch("currentoutlineitem", { + source: this + }); + }); + const onTreeLoaded = (count, button, view) => { + button.disabled = !count; + if (count) { + this.#showUINotification(); + } else if (this.active === view) { + this.switchView(SidebarView.THUMBS); + } + }; + eventBus._on("outlineloaded", evt => { + onTreeLoaded(evt.outlineCount, this.outlineButton, SidebarView.OUTLINE); + evt.currentOutlineItemPromise.then(enabled => { + if (!this.isInitialViewSet) { + return; + } + this._currentOutlineItemButton.disabled = !enabled; + }); + }); + eventBus._on("attachmentsloaded", evt => { + onTreeLoaded(evt.attachmentsCount, this.attachmentsButton, SidebarView.ATTACHMENTS); + }); + eventBus._on("layersloaded", evt => { + onTreeLoaded(evt.layersCount, this.layersButton, SidebarView.LAYERS); + }); + eventBus._on("presentationmodechanged", evt => { + if (evt.state === PresentationModeState.NORMAL && this.visibleView === SidebarView.THUMBS) { + this.onUpdateThumbnails(); + } + }); + this.resizer.addEventListener("mousedown", evt => { + if (evt.button !== 0) { + return; + } + outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + this.#mouseAC = new AbortController(); + const opts = { + signal: this.#mouseAC.signal + }; + window.addEventListener("mousemove", this.#mouseMove.bind(this), opts); + window.addEventListener("mouseup", this.#mouseUp.bind(this), opts); + window.addEventListener("blur", this.#mouseUp.bind(this), opts); + }); + eventBus._on("resize", evt => { + if (evt.source !== window) { + return; + } + this.#outerContainerWidth = null; + if (!this.#width) { + return; + } + if (!this.isOpen) { + this.#updateWidth(this.#width); + return; + } + outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + const updated = this.#updateWidth(this.#width); + Promise.resolve().then(() => { + outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); + if (updated) { + eventBus.dispatch("resize", { + source: this + }); + } + }); + }); + } + get outerContainerWidth() { + return this.#outerContainerWidth ||= this.outerContainer.clientWidth; + } + #updateWidth(width = 0) { + const maxWidth = Math.floor(this.outerContainerWidth / 2); + if (width > maxWidth) { + width = maxWidth; + } + if (width < SIDEBAR_MIN_WIDTH) { + width = SIDEBAR_MIN_WIDTH; + } + if (width === this.#width) { + return false; + } + this.#width = width; + docStyle.setProperty(SIDEBAR_WIDTH_VAR, `${width}px`); + return true; + } + #mouseMove(evt) { + let width = evt.clientX; + if (this.#isRTL) { + width = this.outerContainerWidth - width; + } + this.#updateWidth(width); + } + #mouseUp(evt) { + this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); + this.eventBus.dispatch("resize", { + source: this + }); + this.#mouseAC?.abort(); + this.#mouseAC = null; + } +} + +;// ./web/pdf_thumbnail_view.js + + +const DRAW_UPSCALE_FACTOR = 2; +const MAX_NUM_SCALING_STEPS = 3; +const THUMBNAIL_WIDTH = 98; +class TempImageFactory { + static #tempCanvas = null; + static getCanvas(width, height) { + const tempCanvas = this.#tempCanvas ||= document.createElement("canvas"); + tempCanvas.width = width; + tempCanvas.height = height; + const ctx = tempCanvas.getContext("2d", { + alpha: false + }); + ctx.save(); + ctx.fillStyle = "rgb(255, 255, 255)"; + ctx.fillRect(0, 0, width, height); + ctx.restore(); + return [tempCanvas, tempCanvas.getContext("2d")]; + } + static destroyCanvas() { + const tempCanvas = this.#tempCanvas; + if (tempCanvas) { + tempCanvas.width = 0; + tempCanvas.height = 0; + } + this.#tempCanvas = null; + } +} +class PDFThumbnailView { + constructor({ + container, + eventBus, + id, + defaultViewport, + optionalContentConfigPromise, + linkService, + renderingQueue, + pageColors, + enableHWA + }) { + this.id = id; + this.renderingId = "thumbnail" + id; + this.pageLabel = null; + this.pdfPage = null; + this.rotation = 0; + this.viewport = defaultViewport; + this.pdfPageRotate = defaultViewport.rotation; + this._optionalContentConfigPromise = optionalContentConfigPromise || null; + this.pageColors = pageColors || null; + this.enableHWA = enableHWA || false; + this.eventBus = eventBus; + this.linkService = linkService; + this.renderingQueue = renderingQueue; + this.renderTask = null; + this.renderingState = RenderingStates.INITIAL; + this.resume = null; + const anchor = document.createElement("a"); + anchor.href = linkService.getAnchorUrl("#page=" + id); + anchor.setAttribute("data-l10n-id", "pdfjs-thumb-page-title"); + anchor.setAttribute("data-l10n-args", this.#pageL10nArgs); + anchor.onclick = function () { + linkService.goToPage(id); + return false; + }; + this.anchor = anchor; + const div = document.createElement("div"); + div.className = "thumbnail"; + div.setAttribute("data-page-number", this.id); + this.div = div; + this.#updateDims(); + const img = document.createElement("div"); + img.className = "thumbnailImage"; + this._placeholderImg = img; + div.append(img); + anchor.append(div); + container.append(anchor); + } + #updateDims() { + const { + width, + height + } = this.viewport; + const ratio = width / height; + this.canvasWidth = THUMBNAIL_WIDTH; + this.canvasHeight = this.canvasWidth / ratio | 0; + this.scale = this.canvasWidth / width; + const { + style + } = this.div; + style.setProperty("--thumbnail-width", `${this.canvasWidth}px`); + style.setProperty("--thumbnail-height", `${this.canvasHeight}px`); + } + setPdfPage(pdfPage) { + this.pdfPage = pdfPage; + this.pdfPageRotate = pdfPage.rotate; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = pdfPage.getViewport({ + scale: 1, + rotation: totalRotation + }); + this.reset(); + } + reset() { + this.cancelRendering(); + this.renderingState = RenderingStates.INITIAL; + this.div.removeAttribute("data-loaded"); + this.image?.replaceWith(this._placeholderImg); + this.#updateDims(); + if (this.image) { + this.image.removeAttribute("src"); + delete this.image; + } + } + update({ + rotation = null + }) { + if (typeof rotation === "number") { + this.rotation = rotation; + } + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = this.viewport.clone({ + scale: 1, + rotation: totalRotation + }); + this.reset(); + } + cancelRendering() { + if (this.renderTask) { + this.renderTask.cancel(); + this.renderTask = null; + } + this.resume = null; + } + #getPageDrawContext(upscaleFactor = 1, enableHWA = this.enableHWA) { + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d", { + alpha: false, + willReadFrequently: !enableHWA + }); + const outputScale = new OutputScale(); + canvas.width = upscaleFactor * this.canvasWidth * outputScale.sx | 0; + canvas.height = upscaleFactor * this.canvasHeight * outputScale.sy | 0; + const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null; + return { + ctx, + canvas, + transform + }; + } + #convertCanvasToImage(canvas) { + if (this.renderingState !== RenderingStates.FINISHED) { + throw new Error("#convertCanvasToImage: Rendering has not finished."); + } + const reducedCanvas = this.#reduceImage(canvas); + const image = document.createElement("img"); + image.className = "thumbnailImage"; + image.setAttribute("data-l10n-id", "pdfjs-thumb-page-canvas"); + image.setAttribute("data-l10n-args", this.#pageL10nArgs); + image.src = reducedCanvas.toDataURL(); + this.image = image; + this.div.setAttribute("data-loaded", true); + this._placeholderImg.replaceWith(image); + reducedCanvas.width = 0; + reducedCanvas.height = 0; + } + async #finishRenderTask(renderTask, canvas, error = null) { + if (renderTask === this.renderTask) { + this.renderTask = null; + } + if (error instanceof RenderingCancelledException) { + return; + } + this.renderingState = RenderingStates.FINISHED; + this.#convertCanvasToImage(canvas); + if (error) { + throw error; + } + } + async draw() { + if (this.renderingState !== RenderingStates.INITIAL) { + console.error("Must be in new state before drawing"); + return undefined; + } + const { + pdfPage + } = this; + if (!pdfPage) { + this.renderingState = RenderingStates.FINISHED; + throw new Error("pdfPage is not loaded"); + } + this.renderingState = RenderingStates.RUNNING; + const { + ctx, + canvas, + transform + } = this.#getPageDrawContext(DRAW_UPSCALE_FACTOR); + const drawViewport = this.viewport.clone({ + scale: DRAW_UPSCALE_FACTOR * this.scale + }); + const renderContinueCallback = cont => { + if (!this.renderingQueue.isHighestPriority(this)) { + this.renderingState = RenderingStates.PAUSED; + this.resume = () => { + this.renderingState = RenderingStates.RUNNING; + cont(); + }; + return; + } + cont(); + }; + const renderContext = { + canvasContext: ctx, + transform, + viewport: drawViewport, + optionalContentConfigPromise: this._optionalContentConfigPromise, + pageColors: this.pageColors + }; + const renderTask = this.renderTask = pdfPage.render(renderContext); + renderTask.onContinue = renderContinueCallback; + const resultPromise = renderTask.promise.then(() => this.#finishRenderTask(renderTask, canvas), error => this.#finishRenderTask(renderTask, canvas, error)); + resultPromise.finally(() => { + canvas.width = 0; + canvas.height = 0; + this.eventBus.dispatch("thumbnailrendered", { + source: this, + pageNumber: this.id, + pdfPage: this.pdfPage + }); + }); + return resultPromise; + } + setImage(pageView) { + if (this.renderingState !== RenderingStates.INITIAL) { + return; + } + const { + thumbnailCanvas: canvas, + pdfPage, + scale + } = pageView; + if (!canvas) { + return; + } + if (!this.pdfPage) { + this.setPdfPage(pdfPage); + } + if (scale < this.scale) { + return; + } + this.renderingState = RenderingStates.FINISHED; + this.#convertCanvasToImage(canvas); + } + #reduceImage(img) { + const { + ctx, + canvas + } = this.#getPageDrawContext(1, true); + if (img.width <= 2 * canvas.width) { + ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height); + return canvas; + } + let reducedWidth = canvas.width << MAX_NUM_SCALING_STEPS; + let reducedHeight = canvas.height << MAX_NUM_SCALING_STEPS; + const [reducedImage, reducedImageCtx] = TempImageFactory.getCanvas(reducedWidth, reducedHeight); + while (reducedWidth > img.width || reducedHeight > img.height) { + reducedWidth >>= 1; + reducedHeight >>= 1; + } + reducedImageCtx.drawImage(img, 0, 0, img.width, img.height, 0, 0, reducedWidth, reducedHeight); + while (reducedWidth > 2 * canvas.width) { + reducedImageCtx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, reducedWidth >> 1, reducedHeight >> 1); + reducedWidth >>= 1; + reducedHeight >>= 1; + } + ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, canvas.width, canvas.height); + return canvas; + } + get #pageL10nArgs() { + return JSON.stringify({ + page: this.pageLabel ?? this.id + }); + } + setPageLabel(label) { + this.pageLabel = typeof label === "string" ? label : null; + this.anchor.setAttribute("data-l10n-args", this.#pageL10nArgs); + if (this.renderingState !== RenderingStates.FINISHED) { + return; + } + this.image?.setAttribute("data-l10n-args", this.#pageL10nArgs); + } +} + +;// ./web/pdf_thumbnail_viewer.js + + + +const THUMBNAIL_SCROLL_MARGIN = -19; +const THUMBNAIL_SELECTED_CLASS = "selected"; +class PDFThumbnailViewer { + constructor({ + container, + eventBus, + linkService, + renderingQueue, + pageColors, + abortSignal, + enableHWA + }) { + this.container = container; + this.eventBus = eventBus; + this.linkService = linkService; + this.renderingQueue = renderingQueue; + this.pageColors = pageColors || null; + this.enableHWA = enableHWA || false; + this.scroll = watchScroll(this.container, this.#scrollUpdated.bind(this), abortSignal); + this.#resetView(); + } + #scrollUpdated() { + this.renderingQueue.renderHighestPriority(); + } + getThumbnail(index) { + return this._thumbnails[index]; + } + #getVisibleThumbs() { + return getVisibleElements({ + scrollEl: this.container, + views: this._thumbnails + }); + } + scrollThumbnailIntoView(pageNumber) { + if (!this.pdfDocument) { + return; + } + const thumbnailView = this._thumbnails[pageNumber - 1]; + if (!thumbnailView) { + console.error('scrollThumbnailIntoView: Invalid "pageNumber" parameter.'); + return; + } + if (pageNumber !== this._currentPageNumber) { + const prevThumbnailView = this._thumbnails[this._currentPageNumber - 1]; + prevThumbnailView.div.classList.remove(THUMBNAIL_SELECTED_CLASS); + thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); + } + const { + first, + last, + views + } = this.#getVisibleThumbs(); + if (views.length > 0) { + let shouldScroll = false; + if (pageNumber <= first.id || pageNumber >= last.id) { + shouldScroll = true; + } else { + for (const { + id, + percent + } of views) { + if (id !== pageNumber) { + continue; + } + shouldScroll = percent < 100; + break; + } + } + if (shouldScroll) { + scrollIntoView(thumbnailView.div, { + top: THUMBNAIL_SCROLL_MARGIN + }); + } + } + this._currentPageNumber = pageNumber; + } + get pagesRotation() { + return this._pagesRotation; + } + set pagesRotation(rotation) { + if (!isValidRotation(rotation)) { + throw new Error("Invalid thumbnails rotation angle."); + } + if (!this.pdfDocument) { + return; + } + if (this._pagesRotation === rotation) { + return; + } + this._pagesRotation = rotation; + const updateArgs = { + rotation + }; + for (const thumbnail of this._thumbnails) { + thumbnail.update(updateArgs); + } + } + cleanup() { + for (const thumbnail of this._thumbnails) { + if (thumbnail.renderingState !== RenderingStates.FINISHED) { + thumbnail.reset(); + } + } + TempImageFactory.destroyCanvas(); + } + #resetView() { + this._thumbnails = []; + this._currentPageNumber = 1; + this._pageLabels = null; + this._pagesRotation = 0; + this.container.textContent = ""; + } + setDocument(pdfDocument) { + if (this.pdfDocument) { + this.#cancelRendering(); + this.#resetView(); + } + this.pdfDocument = pdfDocument; + if (!pdfDocument) { + return; + } + const firstPagePromise = pdfDocument.getPage(1); + const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig({ + intent: "display" + }); + firstPagePromise.then(firstPdfPage => { + const pagesCount = pdfDocument.numPages; + const viewport = firstPdfPage.getViewport({ + scale: 1 + }); + for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { + const thumbnail = new PDFThumbnailView({ + container: this.container, + eventBus: this.eventBus, + id: pageNum, + defaultViewport: viewport.clone(), + optionalContentConfigPromise, + linkService: this.linkService, + renderingQueue: this.renderingQueue, + pageColors: this.pageColors, + enableHWA: this.enableHWA + }); + this._thumbnails.push(thumbnail); + } + this._thumbnails[0]?.setPdfPage(firstPdfPage); + const thumbnailView = this._thumbnails[this._currentPageNumber - 1]; + thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); + }).catch(reason => { + console.error("Unable to initialize thumbnail viewer", reason); + }); + } + #cancelRendering() { + for (const thumbnail of this._thumbnails) { + thumbnail.cancelRendering(); + } + } + setPageLabels(labels) { + if (!this.pdfDocument) { + return; + } + if (!labels) { + this._pageLabels = null; + } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { + this._pageLabels = null; + console.error("PDFThumbnailViewer_setPageLabels: Invalid page labels."); + } else { + this._pageLabels = labels; + } + for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { + this._thumbnails[i].setPageLabel(this._pageLabels?.[i] ?? null); + } + } + async #ensurePdfPageLoaded(thumbView) { + if (thumbView.pdfPage) { + return thumbView.pdfPage; + } + try { + const pdfPage = await this.pdfDocument.getPage(thumbView.id); + if (!thumbView.pdfPage) { + thumbView.setPdfPage(pdfPage); + } + return pdfPage; + } catch (reason) { + console.error("Unable to get page for thumb view", reason); + return null; + } + } + #getScrollAhead(visible) { + if (visible.first?.id === 1) { + return true; + } else if (visible.last?.id === this._thumbnails.length) { + return false; + } + return this.scroll.down; + } + forceRendering() { + const visibleThumbs = this.#getVisibleThumbs(); + const scrollAhead = this.#getScrollAhead(visibleThumbs); + const thumbView = this.renderingQueue.getHighestPriority(visibleThumbs, this._thumbnails, scrollAhead); + if (thumbView) { + this.#ensurePdfPageLoaded(thumbView).then(() => { + this.renderingQueue.renderView(thumbView); + }); + return true; + } + return false; + } +} + +;// ./web/annotation_editor_layer_builder.js + + +class AnnotationEditorLayerBuilder { + #annotationLayer = null; + #drawLayer = null; + #onAppend = null; + #structTreeLayer = null; + #textLayer = null; + #uiManager; + constructor(options) { + this.pdfPage = options.pdfPage; + this.accessibilityManager = options.accessibilityManager; + this.l10n = options.l10n; + this.l10n ||= new genericl10n_GenericL10n(); + this.annotationEditorLayer = null; + this.div = null; + this._cancelled = false; + this.#uiManager = options.uiManager; + this.#annotationLayer = options.annotationLayer || null; + this.#textLayer = options.textLayer || null; + this.#drawLayer = options.drawLayer || null; + this.#onAppend = options.onAppend || null; + this.#structTreeLayer = options.structTreeLayer || null; + } + async render(viewport, intent = "display") { + if (intent !== "display") { + return; + } + if (this._cancelled) { + return; + } + const clonedViewport = viewport.clone({ + dontFlip: true + }); + if (this.div) { + this.annotationEditorLayer.update({ + viewport: clonedViewport + }); + this.show(); + return; + } + const div = this.div = document.createElement("div"); + div.className = "annotationEditorLayer"; + div.hidden = true; + div.dir = this.#uiManager.direction; + this.#onAppend?.(div); + this.annotationEditorLayer = new AnnotationEditorLayer({ + uiManager: this.#uiManager, + div, + structTreeLayer: this.#structTreeLayer, + accessibilityManager: this.accessibilityManager, + pageIndex: this.pdfPage.pageNumber - 1, + l10n: this.l10n, + viewport: clonedViewport, + annotationLayer: this.#annotationLayer, + textLayer: this.#textLayer, + drawLayer: this.#drawLayer + }); + const parameters = { + viewport: clonedViewport, + div, + annotations: null, + intent + }; + this.annotationEditorLayer.render(parameters); + this.show(); + } + cancel() { + this._cancelled = true; + if (!this.div) { + return; + } + this.annotationEditorLayer.destroy(); + } + hide() { + if (!this.div) { + return; + } + this.div.hidden = true; + } + show() { + if (!this.div || this.annotationEditorLayer.isInvisible) { + return; + } + this.div.hidden = false; + } +} + +;// ./web/annotation_layer_builder.js + + +class AnnotationLayerBuilder { + #onAppend = null; + #eventAbortController = null; + constructor({ + pdfPage, + linkService, + downloadManager, + annotationStorage = null, + imageResourcesPath = "", + renderForms = true, + enableScripting = false, + hasJSActionsPromise = null, + fieldObjectsPromise = null, + annotationCanvasMap = null, + accessibilityManager = null, + annotationEditorUIManager = null, + onAppend = null + }) { + this.pdfPage = pdfPage; + this.linkService = linkService; + this.downloadManager = downloadManager; + this.imageResourcesPath = imageResourcesPath; + this.renderForms = renderForms; + this.annotationStorage = annotationStorage; + this.enableScripting = enableScripting; + this._hasJSActionsPromise = hasJSActionsPromise || Promise.resolve(false); + this._fieldObjectsPromise = fieldObjectsPromise || Promise.resolve(null); + this._annotationCanvasMap = annotationCanvasMap; + this._accessibilityManager = accessibilityManager; + this._annotationEditorUIManager = annotationEditorUIManager; + this.#onAppend = onAppend; + this.annotationLayer = null; + this.div = null; + this._cancelled = false; + this._eventBus = linkService.eventBus; + } + async render(viewport, options, intent = "display") { + if (this.div) { + if (this._cancelled || !this.annotationLayer) { + return; + } + this.annotationLayer.update({ + viewport: viewport.clone({ + dontFlip: true + }) + }); + return; + } + const [annotations, hasJSActions, fieldObjects] = await Promise.all([this.pdfPage.getAnnotations({ + intent + }), this._hasJSActionsPromise, this._fieldObjectsPromise]); + if (this._cancelled) { + return; + } + const div = this.div = document.createElement("div"); + div.className = "annotationLayer"; + this.#onAppend?.(div); + if (annotations.length === 0) { + this.hide(); + return; + } + this.annotationLayer = new AnnotationLayer({ + div, + accessibilityManager: this._accessibilityManager, + annotationCanvasMap: this._annotationCanvasMap, + annotationEditorUIManager: this._annotationEditorUIManager, + page: this.pdfPage, + viewport: viewport.clone({ + dontFlip: true + }), + structTreeLayer: options?.structTreeLayer || null + }); + await this.annotationLayer.render({ + annotations, + imageResourcesPath: this.imageResourcesPath, + renderForms: this.renderForms, + linkService: this.linkService, + downloadManager: this.downloadManager, + annotationStorage: this.annotationStorage, + enableScripting: this.enableScripting, + hasJSActions, + fieldObjects + }); + if (this.linkService.isInPresentationMode) { + this.#updatePresentationModeState(PresentationModeState.FULLSCREEN); + } + if (!this.#eventAbortController) { + this.#eventAbortController = new AbortController(); + this._eventBus?._on("presentationmodechanged", evt => { + this.#updatePresentationModeState(evt.state); + }, { + signal: this.#eventAbortController.signal + }); + } + } + cancel() { + this._cancelled = true; + this.#eventAbortController?.abort(); + this.#eventAbortController = null; + } + hide() { + if (!this.div) { + return; + } + this.div.hidden = true; + } + hasEditableAnnotations() { + return !!this.annotationLayer?.hasEditableAnnotations(); + } + #updatePresentationModeState(state) { + if (!this.div) { + return; + } + let disableFormElements = false; + switch (state) { + case PresentationModeState.FULLSCREEN: + disableFormElements = true; + break; + case PresentationModeState.NORMAL: + break; + default: + return; + } + for (const section of this.div.childNodes) { + if (section.hasAttribute("data-internal-link")) { + continue; + } + section.inert = disableFormElements; + } + } +} + +;// ./web/draw_layer_builder.js + +class DrawLayerBuilder { + #drawLayer = null; + constructor(options) { + this.pageIndex = options.pageIndex; + } + async render(intent = "display") { + if (intent !== "display" || this.#drawLayer || this._cancelled) { + return; + } + this.#drawLayer = new DrawLayer({ + pageIndex: this.pageIndex + }); + } + cancel() { + this._cancelled = true; + if (!this.#drawLayer) { + return; + } + this.#drawLayer.destroy(); + this.#drawLayer = null; + } + setParent(parent) { + this.#drawLayer?.setParent(parent); + } + getDrawLayer() { + return this.#drawLayer; + } +} + +;// ./web/struct_tree_layer_builder.js + + +const PDF_ROLE_TO_HTML_ROLE = { + Document: null, + DocumentFragment: null, + Part: "group", + Sect: "group", + Div: "group", + Aside: "note", + NonStruct: "none", + P: null, + H: "heading", + Title: null, + FENote: "note", + Sub: "group", + Lbl: null, + Span: null, + Em: null, + Strong: null, + Link: "link", + Annot: "note", + Form: "form", + Ruby: null, + RB: null, + RT: null, + RP: null, + Warichu: null, + WT: null, + WP: null, + L: "list", + LI: "listitem", + LBody: null, + Table: "table", + TR: "row", + TH: "columnheader", + TD: "cell", + THead: "columnheader", + TBody: null, + TFoot: null, + Caption: null, + Figure: "figure", + Formula: null, + Artifact: null +}; +const HEADING_PATTERN = /^H(\d+)$/; +class StructTreeLayerBuilder { + #promise; + #treeDom = null; + #treePromise; + #elementAttributes = new Map(); + #rawDims; + #elementsToAddToTextLayer = null; + constructor(pdfPage, rawDims) { + this.#promise = pdfPage.getStructTree(); + this.#rawDims = rawDims; + } + async render() { + if (this.#treePromise) { + return this.#treePromise; + } + const { + promise, + resolve, + reject + } = Promise.withResolvers(); + this.#treePromise = promise; + try { + this.#treeDom = this.#walk(await this.#promise); + } catch (ex) { + reject(ex); + } + this.#promise = null; + this.#treeDom?.classList.add("structTree"); + resolve(this.#treeDom); + return promise; + } + async getAriaAttributes(annotationId) { + try { + await this.render(); + return this.#elementAttributes.get(annotationId); + } catch {} + return null; + } + hide() { + if (this.#treeDom && !this.#treeDom.hidden) { + this.#treeDom.hidden = true; + } + } + show() { + if (this.#treeDom?.hidden) { + this.#treeDom.hidden = false; + } + } + #setAttributes(structElement, htmlElement) { + const { + alt, + id, + lang + } = structElement; + if (alt !== undefined) { + let added = false; + const label = removeNullCharacters(alt); + for (const child of structElement.children) { + if (child.type === "annotation") { + let attrs = this.#elementAttributes.get(child.id); + if (!attrs) { + attrs = new Map(); + this.#elementAttributes.set(child.id, attrs); + } + attrs.set("aria-label", label); + added = true; + } + } + if (!added) { + htmlElement.setAttribute("aria-label", label); + } + } + if (id !== undefined) { + htmlElement.setAttribute("aria-owns", id); + } + if (lang !== undefined) { + htmlElement.setAttribute("lang", removeNullCharacters(lang, true)); + } + } + #addImageInTextLayer(node, element) { + const { + alt, + bbox, + children + } = node; + const child = children?.[0]; + if (!this.#rawDims || !alt || !bbox || child?.type !== "content") { + return false; + } + const { + id + } = child; + if (!id) { + return false; + } + element.setAttribute("aria-owns", id); + const img = document.createElement("span"); + (this.#elementsToAddToTextLayer ||= new Map()).set(id, img); + img.setAttribute("role", "img"); + img.setAttribute("aria-label", removeNullCharacters(alt)); + const { + pageHeight, + pageX, + pageY + } = this.#rawDims; + const calc = "calc(var(--scale-factor)*"; + const { + style + } = img; + style.width = `${calc}${bbox[2] - bbox[0]}px)`; + style.height = `${calc}${bbox[3] - bbox[1]}px)`; + style.left = `${calc}${bbox[0] - pageX}px)`; + style.top = `${calc}${pageHeight - bbox[3] + pageY}px)`; + return true; + } + addElementsToTextLayer() { + if (!this.#elementsToAddToTextLayer) { + return; + } + for (const [id, img] of this.#elementsToAddToTextLayer) { + document.getElementById(id)?.append(img); + } + this.#elementsToAddToTextLayer.clear(); + this.#elementsToAddToTextLayer = null; + } + #walk(node) { + if (!node) { + return null; + } + const element = document.createElement("span"); + if ("role" in node) { + const { + role + } = node; + const match = role.match(HEADING_PATTERN); + if (match) { + element.setAttribute("role", "heading"); + element.setAttribute("aria-level", match[1]); + } else if (PDF_ROLE_TO_HTML_ROLE[role]) { + element.setAttribute("role", PDF_ROLE_TO_HTML_ROLE[role]); + } + if (role === "Figure" && this.#addImageInTextLayer(node, element)) { + return element; + } + } + this.#setAttributes(node, element); + if (node.children) { + if (node.children.length === 1 && "id" in node.children[0]) { + this.#setAttributes(node.children[0], element); + } else { + for (const kid of node.children) { + element.append(this.#walk(kid)); + } + } + } + return element; + } +} + +;// ./web/text_accessibility.js + + + +class TextAccessibilityManager { + #enabled = false; + #textChildren = null; + #textNodes = new Map(); + #waitingElements = new Map(); + setTextMapping(textDivs) { + this.#textChildren = textDivs; + } + static #compareElementPositions(e1, e2) { + const rect1 = e1.getBoundingClientRect(); + const rect2 = e2.getBoundingClientRect(); + if (rect1.width === 0 && rect1.height === 0) { + return +1; + } + if (rect2.width === 0 && rect2.height === 0) { + return -1; + } + const top1 = rect1.y; + const bot1 = rect1.y + rect1.height; + const mid1 = rect1.y + rect1.height / 2; + const top2 = rect2.y; + const bot2 = rect2.y + rect2.height; + const mid2 = rect2.y + rect2.height / 2; + if (mid1 <= top2 && mid2 >= bot1) { + return -1; + } + if (mid2 <= top1 && mid1 >= bot2) { + return +1; + } + const centerX1 = rect1.x + rect1.width / 2; + const centerX2 = rect2.x + rect2.width / 2; + return centerX1 - centerX2; + } + enable() { + if (this.#enabled) { + throw new Error("TextAccessibilityManager is already enabled."); + } + if (!this.#textChildren) { + throw new Error("Text divs and strings have not been set."); + } + this.#enabled = true; + this.#textChildren = this.#textChildren.slice(); + this.#textChildren.sort(TextAccessibilityManager.#compareElementPositions); + if (this.#textNodes.size > 0) { + const textChildren = this.#textChildren; + for (const [id, nodeIndex] of this.#textNodes) { + const element = document.getElementById(id); + if (!element) { + this.#textNodes.delete(id); + continue; + } + this.#addIdToAriaOwns(id, textChildren[nodeIndex]); + } + } + for (const [element, isRemovable] of this.#waitingElements) { + this.addPointerInTextLayer(element, isRemovable); + } + this.#waitingElements.clear(); + } + disable() { + if (!this.#enabled) { + return; + } + this.#waitingElements.clear(); + this.#textChildren = null; + this.#enabled = false; + } + removePointerInTextLayer(element) { + if (!this.#enabled) { + this.#waitingElements.delete(element); + return; + } + const children = this.#textChildren; + if (!children || children.length === 0) { + return; + } + const { + id + } = element; + const nodeIndex = this.#textNodes.get(id); + if (nodeIndex === undefined) { + return; + } + const node = children[nodeIndex]; + this.#textNodes.delete(id); + let owns = node.getAttribute("aria-owns"); + if (owns?.includes(id)) { + owns = owns.split(" ").filter(x => x !== id).join(" "); + if (owns) { + node.setAttribute("aria-owns", owns); + } else { + node.removeAttribute("aria-owns"); + node.setAttribute("role", "presentation"); + } + } + } + #addIdToAriaOwns(id, node) { + const owns = node.getAttribute("aria-owns"); + if (!owns?.includes(id)) { + node.setAttribute("aria-owns", owns ? `${owns} ${id}` : id); + } + node.removeAttribute("role"); + } + addPointerInTextLayer(element, isRemovable) { + const { + id + } = element; + if (!id) { + return null; + } + if (!this.#enabled) { + this.#waitingElements.set(element, isRemovable); + return null; + } + if (isRemovable) { + this.removePointerInTextLayer(element); + } + const children = this.#textChildren; + if (!children || children.length === 0) { + return null; + } + const index = binarySearchFirstItem(children, node => TextAccessibilityManager.#compareElementPositions(element, node) < 0); + const nodeIndex = Math.max(0, index - 1); + const child = children[nodeIndex]; + this.#addIdToAriaOwns(id, child); + this.#textNodes.set(id, nodeIndex); + const parent = child.parentNode; + return parent?.classList.contains("markedContent") ? parent.id : null; + } + moveElementInDOM(container, element, contentElement, isRemovable) { + const id = this.addPointerInTextLayer(contentElement, isRemovable); + if (!container.hasChildNodes()) { + container.append(element); + return id; + } + const children = Array.from(container.childNodes).filter(node => node !== element); + if (children.length === 0) { + return id; + } + const elementToCompare = contentElement || element; + const index = binarySearchFirstItem(children, node => TextAccessibilityManager.#compareElementPositions(elementToCompare, node) < 0); + if (index === 0) { + children[0].before(element); + } else { + children[index - 1].after(element); + } + return id; + } +} + +;// ./web/text_highlighter.js + +class TextHighlighter { + #eventAbortController = null; + constructor({ + findController, + eventBus, + pageIndex + }) { + this.findController = findController; + this.matches = []; + this.eventBus = eventBus; + this.pageIdx = pageIndex; + this.textDivs = null; + this.textContentItemsStr = null; + this.enabled = false; + } + setTextMapping(divs, texts) { + this.textDivs = divs; + this.textContentItemsStr = texts; + } + enable() { + if (!this.textDivs || !this.textContentItemsStr) { + throw new Error("Text divs and strings have not been set."); + } + if (this.enabled) { + throw new Error("TextHighlighter is already enabled."); + } + this.enabled = true; + if (!this.#eventAbortController) { + this.#eventAbortController = new AbortController(); + this.eventBus._on("updatetextlayermatches", evt => { + if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) { + this._updateMatches(); + } + }, { + signal: this.#eventAbortController.signal + }); + } + this._updateMatches(); + } + disable() { + if (!this.enabled) { + return; + } + this.enabled = false; + this.#eventAbortController?.abort(); + this.#eventAbortController = null; + this._updateMatches(true); + } + _convertMatches(matches, matchesLength) { + if (!matches) { + return []; + } + const { + textContentItemsStr + } = this; + let i = 0, + iIndex = 0; + const end = textContentItemsStr.length - 1; + const result = []; + for (let m = 0, mm = matches.length; m < mm; m++) { + let matchIdx = matches[m]; + while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) { + iIndex += textContentItemsStr[i].length; + i++; + } + if (i === textContentItemsStr.length) { + console.error("Could not find a matching mapping"); + } + const match = { + begin: { + divIdx: i, + offset: matchIdx - iIndex + } + }; + matchIdx += matchesLength[m]; + while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) { + iIndex += textContentItemsStr[i].length; + i++; + } + match.end = { + divIdx: i, + offset: matchIdx - iIndex + }; + result.push(match); + } + return result; + } + _renderMatches(matches) { + if (matches.length === 0) { + return; + } + const { + findController, + pageIdx + } = this; + const { + textContentItemsStr, + textDivs + } = this; + const isSelectedPage = pageIdx === findController.selected.pageIdx; + const selectedMatchIdx = findController.selected.matchIdx; + const highlightAll = findController.state.highlightAll; + let prevEnd = null; + const infinity = { + divIdx: -1, + offset: undefined + }; + function beginText(begin, className) { + const divIdx = begin.divIdx; + textDivs[divIdx].textContent = ""; + return appendTextToDiv(divIdx, 0, begin.offset, className); + } + function appendTextToDiv(divIdx, fromOffset, toOffset, className) { + let div = textDivs[divIdx]; + if (div.nodeType === Node.TEXT_NODE) { + const span = document.createElement("span"); + div.before(span); + span.append(div); + textDivs[divIdx] = span; + div = span; + } + const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset); + const node = document.createTextNode(content); + if (className) { + const span = document.createElement("span"); + span.className = `${className} appended`; + span.append(node); + div.append(span); + return className.includes("selected") ? span.offsetLeft : 0; + } + div.append(node); + return 0; + } + let i0 = selectedMatchIdx, + i1 = i0 + 1; + if (highlightAll) { + i0 = 0; + i1 = matches.length; + } else if (!isSelectedPage) { + return; + } + let lastDivIdx = -1; + let lastOffset = -1; + for (let i = i0; i < i1; i++) { + const match = matches[i]; + const begin = match.begin; + if (begin.divIdx === lastDivIdx && begin.offset === lastOffset) { + continue; + } + lastDivIdx = begin.divIdx; + lastOffset = begin.offset; + const end = match.end; + const isSelected = isSelectedPage && i === selectedMatchIdx; + const highlightSuffix = isSelected ? " selected" : ""; + let selectedLeft = 0; + if (!prevEnd || begin.divIdx !== prevEnd.divIdx) { + if (prevEnd !== null) { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); + } + beginText(begin); + } else { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset); + } + if (begin.divIdx === end.divIdx) { + selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, end.offset, "highlight" + highlightSuffix); + } else { + selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, "highlight begin" + highlightSuffix); + for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) { + textDivs[n0].className = "highlight middle" + highlightSuffix; + } + beginText(end, "highlight end" + highlightSuffix); + } + prevEnd = end; + if (isSelected) { + findController.scrollMatchIntoView({ + element: textDivs[begin.divIdx], + selectedLeft, + pageIndex: pageIdx, + matchIndex: selectedMatchIdx + }); + } + } + if (prevEnd) { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); + } + } + _updateMatches(reset = false) { + if (!this.enabled && !reset) { + return; + } + const { + findController, + matches, + pageIdx + } = this; + const { + textContentItemsStr, + textDivs + } = this; + let clearedUntilDivIdx = -1; + for (const match of matches) { + const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx); + for (let n = begin, end = match.end.divIdx; n <= end; n++) { + const div = textDivs[n]; + div.textContent = textContentItemsStr[n]; + div.className = ""; + } + clearedUntilDivIdx = match.end.divIdx + 1; + } + if (!findController?.highlightMatches || reset) { + return; + } + const pageMatches = findController.pageMatches[pageIdx] || null; + const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null; + this.matches = this._convertMatches(pageMatches, pageMatchesLength); + this._renderMatches(this.matches); + } +} + +;// ./web/text_layer_builder.js + + + + + + + + + + + +class TextLayerBuilder { + #enablePermissions = false; + #onAppend = null; + #renderingDone = false; + #textLayer = null; + static #textLayers = new Map(); + static #selectionChangeAbortController = null; + constructor({ + pdfPage, + highlighter = null, + accessibilityManager = null, + enablePermissions = false, + onAppend = null + }) { + this.pdfPage = pdfPage; + this.highlighter = highlighter; + this.accessibilityManager = accessibilityManager; + this.#enablePermissions = enablePermissions === true; + this.#onAppend = onAppend; + this.div = document.createElement("div"); + this.div.tabIndex = 0; + this.div.className = "textLayer"; + } + async render(viewport, textContentParams = null) { + if (this.#renderingDone && this.#textLayer) { + this.#textLayer.update({ + viewport, + onBefore: this.hide.bind(this) + }); + this.show(); + return; + } + this.cancel(); + this.#textLayer = new TextLayer({ + textContentSource: this.pdfPage.streamTextContent(textContentParams || { + includeMarkedContent: true, + disableNormalization: true + }), + container: this.div, + viewport + }); + const { + textDivs, + textContentItemsStr + } = this.#textLayer; + this.highlighter?.setTextMapping(textDivs, textContentItemsStr); + this.accessibilityManager?.setTextMapping(textDivs); + await this.#textLayer.render(); + this.#renderingDone = true; + const endOfContent = document.createElement("div"); + endOfContent.className = "endOfContent"; + this.div.append(endOfContent); + this.#bindMouse(endOfContent); + this.#onAppend?.(this.div); + this.highlighter?.enable(); + this.accessibilityManager?.enable(); + } + hide() { + if (!this.div.hidden && this.#renderingDone) { + this.highlighter?.disable(); + this.div.hidden = true; + } + } + show() { + if (this.div.hidden && this.#renderingDone) { + this.div.hidden = false; + this.highlighter?.enable(); + } + } + cancel() { + this.#textLayer?.cancel(); + this.#textLayer = null; + this.highlighter?.disable(); + this.accessibilityManager?.disable(); + TextLayerBuilder.#removeGlobalSelectionListener(this.div); + } + #bindMouse(end) { + const { + div + } = this; + div.addEventListener("mousedown", () => { + div.classList.add("selecting"); + }); + div.addEventListener("copy", event => { + if (!this.#enablePermissions) { + const selection = document.getSelection(); + event.clipboardData.setData("text/plain", removeNullCharacters(normalizeUnicode(selection.toString()))); + } + stopEvent(event); + }); + TextLayerBuilder.#textLayers.set(div, end); + TextLayerBuilder.#enableGlobalSelectionListener(); + } + static #removeGlobalSelectionListener(textLayerDiv) { + this.#textLayers.delete(textLayerDiv); + if (this.#textLayers.size === 0) { + this.#selectionChangeAbortController?.abort(); + this.#selectionChangeAbortController = null; + } + } + static #enableGlobalSelectionListener() { + if (this.#selectionChangeAbortController) { + return; + } + this.#selectionChangeAbortController = new AbortController(); + const { + signal + } = this.#selectionChangeAbortController; + const reset = (end, textLayer) => { + textLayer.append(end); + end.style.width = ""; + end.style.height = ""; + textLayer.classList.remove("selecting"); + }; + let isPointerDown = false; + document.addEventListener("pointerdown", () => { + isPointerDown = true; + }, { + signal + }); + document.addEventListener("pointerup", () => { + isPointerDown = false; + this.#textLayers.forEach(reset); + }, { + signal + }); + window.addEventListener("blur", () => { + isPointerDown = false; + this.#textLayers.forEach(reset); + }, { + signal + }); + document.addEventListener("keyup", () => { + if (!isPointerDown) { + this.#textLayers.forEach(reset); + } + }, { + signal + }); + var isFirefox, prevRange; + document.addEventListener("selectionchange", () => { + const selection = document.getSelection(); + if (selection.rangeCount === 0) { + this.#textLayers.forEach(reset); + return; + } + const activeTextLayers = new Set(); + for (let i = 0; i < selection.rangeCount; i++) { + const range = selection.getRangeAt(i); + for (const textLayerDiv of this.#textLayers.keys()) { + if (!activeTextLayers.has(textLayerDiv) && range.intersectsNode(textLayerDiv)) { + activeTextLayers.add(textLayerDiv); + } + } + } + for (const [textLayerDiv, endDiv] of this.#textLayers) { + if (activeTextLayers.has(textLayerDiv)) { + textLayerDiv.classList.add("selecting"); + } else { + reset(endDiv, textLayerDiv); + } + } + isFirefox ??= getComputedStyle(this.#textLayers.values().next().value).getPropertyValue("-moz-user-select") === "none"; + if (isFirefox) { + return; + } + const range = selection.getRangeAt(0); + const modifyStart = prevRange && (range.compareBoundaryPoints(Range.END_TO_END, prevRange) === 0 || range.compareBoundaryPoints(Range.START_TO_END, prevRange) === 0); + let anchor = modifyStart ? range.startContainer : range.endContainer; + if (anchor.nodeType === Node.TEXT_NODE) { + anchor = anchor.parentNode; + } + const parentTextLayer = anchor.parentElement?.closest(".textLayer"); + const endDiv = this.#textLayers.get(parentTextLayer); + if (endDiv) { + endDiv.style.width = parentTextLayer.style.width; + endDiv.style.height = parentTextLayer.style.height; + anchor.parentElement.insertBefore(endDiv, modifyStart ? anchor : anchor.nextSibling); + } + prevRange = range.cloneRange(); + }, { + signal + }); + } +} + +;// ./web/pdf_page_view.js + + + + + + + + + + + + + + +const DEFAULT_LAYER_PROPERTIES = null; +const LAYERS_ORDER = new Map([["canvasWrapper", 0], ["textLayer", 1], ["annotationLayer", 2], ["annotationEditorLayer", 3], ["xfaLayer", 3]]); +class PDFPageView { + #annotationMode = AnnotationMode.ENABLE_FORMS; + #enableHWA = false; + #hasRestrictedScaling = false; + #isEditing = false; + #layerProperties = null; + #loadingId = null; + #previousRotation = null; + #scaleRoundX = 1; + #scaleRoundY = 1; + #renderError = null; + #renderingState = RenderingStates.INITIAL; + #textLayerMode = TextLayerMode.ENABLE; + #useThumbnailCanvas = { + directDrawing: true, + initialOptionalContent: true, + regularAnnotations: true + }; + #viewportMap = new WeakMap(); + #layers = [null, null, null, null]; + constructor(options) { + const container = options.container; + const defaultViewport = options.defaultViewport; + this.id = options.id; + this.renderingId = "page" + this.id; + this.#layerProperties = options.layerProperties || DEFAULT_LAYER_PROPERTIES; + this.pdfPage = null; + this.pageLabel = null; + this.rotation = 0; + this.scale = options.scale || DEFAULT_SCALE; + this.viewport = defaultViewport; + this.pdfPageRotate = defaultViewport.rotation; + this._optionalContentConfigPromise = options.optionalContentConfigPromise || null; + this.#textLayerMode = options.textLayerMode ?? TextLayerMode.ENABLE; + this.#annotationMode = options.annotationMode ?? AnnotationMode.ENABLE_FORMS; + this.imageResourcesPath = options.imageResourcesPath || ""; + this.maxCanvasPixels = options.maxCanvasPixels ?? AppOptions.get("maxCanvasPixels"); + this.pageColors = options.pageColors || null; + this.#enableHWA = options.enableHWA || false; + this.eventBus = options.eventBus; + this.renderingQueue = options.renderingQueue; + this.l10n = options.l10n; + this.l10n ||= new genericl10n_GenericL10n(); + this.renderTask = null; + this.resume = null; + this._isStandalone = !this.renderingQueue?.hasViewer(); + this._container = container; + this._annotationCanvasMap = null; + this.annotationLayer = null; + this.annotationEditorLayer = null; + this.textLayer = null; + this.zoomLayer = null; + this.xfaLayer = null; + this.structTreeLayer = null; + this.drawLayer = null; + const div = document.createElement("div"); + div.className = "page"; + div.setAttribute("data-page-number", this.id); + div.setAttribute("role", "region"); + div.setAttribute("data-l10n-id", "pdfjs-page-landmark"); + div.setAttribute("data-l10n-args", JSON.stringify({ + page: this.id + })); + this.div = div; + this.#setDimensions(); + container?.append(div); + if (this._isStandalone) { + container?.style.setProperty("--scale-factor", this.scale * PixelsPerInch.PDF_TO_CSS_UNITS); + if (this.pageColors?.background) { + container?.style.setProperty("--page-bg-color", this.pageColors.background); + } + const { + optionalContentConfigPromise + } = options; + if (optionalContentConfigPromise) { + optionalContentConfigPromise.then(optionalContentConfig => { + if (optionalContentConfigPromise !== this._optionalContentConfigPromise) { + return; + } + this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility; + }); + } + if (!options.l10n) { + this.l10n.translate(this.div); + } + } + } + #addLayer(div, name) { + const pos = LAYERS_ORDER.get(name); + const oldDiv = this.#layers[pos]; + this.#layers[pos] = div; + if (oldDiv) { + oldDiv.replaceWith(div); + return; + } + for (let i = pos - 1; i >= 0; i--) { + const layer = this.#layers[i]; + if (layer) { + layer.after(div); + return; + } + } + this.div.prepend(div); + } + get renderingState() { + return this.#renderingState; + } + set renderingState(state) { + if (state === this.#renderingState) { + return; + } + this.#renderingState = state; + if (this.#loadingId) { + clearTimeout(this.#loadingId); + this.#loadingId = null; + } + switch (state) { + case RenderingStates.PAUSED: + this.div.classList.remove("loading"); + break; + case RenderingStates.RUNNING: + this.div.classList.add("loadingIcon"); + this.#loadingId = setTimeout(() => { + this.div.classList.add("loading"); + this.#loadingId = null; + }, 0); + break; + case RenderingStates.INITIAL: + case RenderingStates.FINISHED: + this.div.classList.remove("loadingIcon", "loading"); + break; + } + } + #setDimensions() { + const { + viewport + } = this; + if (this.pdfPage) { + if (this.#previousRotation === viewport.rotation) { + return; + } + this.#previousRotation = viewport.rotation; + } + setLayerDimensions(this.div, viewport, true, false); + } + setPdfPage(pdfPage) { + if (this._isStandalone && (this.pageColors?.foreground === "CanvasText" || this.pageColors?.background === "Canvas")) { + this._container?.style.setProperty("--hcm-highlight-filter", pdfPage.filterFactory.addHighlightHCMFilter("highlight", "CanvasText", "Canvas", "HighlightText", "Highlight")); + this._container?.style.setProperty("--hcm-highlight-selected-filter", pdfPage.filterFactory.addHighlightHCMFilter("highlight_selected", "CanvasText", "Canvas", "HighlightText", "Highlight")); + } + this.pdfPage = pdfPage; + this.pdfPageRotate = pdfPage.rotate; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = pdfPage.getViewport({ + scale: this.scale * PixelsPerInch.PDF_TO_CSS_UNITS, + rotation: totalRotation + }); + this.#setDimensions(); + this.reset(); + } + destroy() { + this.reset(); + this.pdfPage?.cleanup(); + } + hasEditableAnnotations() { + return !!this.annotationLayer?.hasEditableAnnotations(); + } + get _textHighlighter() { + return shadow(this, "_textHighlighter", new TextHighlighter({ + pageIndex: this.id - 1, + eventBus: this.eventBus, + findController: this.#layerProperties.findController + })); + } + #dispatchLayerRendered(name, error) { + this.eventBus.dispatch(name, { + source: this, + pageNumber: this.id, + error + }); + } + async #renderAnnotationLayer() { + let error = null; + try { + await this.annotationLayer.render(this.viewport, { + structTreeLayer: this.structTreeLayer + }, "display"); + } catch (ex) { + console.error(`#renderAnnotationLayer: "${ex}".`); + error = ex; + } finally { + this.#dispatchLayerRendered("annotationlayerrendered", error); + } + } + async #renderAnnotationEditorLayer() { + let error = null; + try { + await this.annotationEditorLayer.render(this.viewport, "display"); + } catch (ex) { + console.error(`#renderAnnotationEditorLayer: "${ex}".`); + error = ex; + } finally { + this.#dispatchLayerRendered("annotationeditorlayerrendered", error); + } + } + async #renderDrawLayer() { + try { + await this.drawLayer.render("display"); + } catch (ex) { + console.error(`#renderDrawLayer: "${ex}".`); + } + } + async #renderXfaLayer() { + let error = null; + try { + const result = await this.xfaLayer.render(this.viewport, "display"); + if (result?.textDivs && this._textHighlighter) { + this.#buildXfaTextContentItems(result.textDivs); + } + } catch (ex) { + console.error(`#renderXfaLayer: "${ex}".`); + error = ex; + } finally { + if (this.xfaLayer?.div) { + this.l10n.pause(); + this.#addLayer(this.xfaLayer.div, "xfaLayer"); + this.l10n.resume(); + } + this.#dispatchLayerRendered("xfalayerrendered", error); + } + } + async #renderTextLayer() { + if (!this.textLayer) { + return; + } + let error = null; + try { + await this.textLayer.render(this.viewport); + } catch (ex) { + if (ex instanceof AbortException) { + return; + } + console.error(`#renderTextLayer: "${ex}".`); + error = ex; + } + this.#dispatchLayerRendered("textlayerrendered", error); + this.#renderStructTreeLayer(); + } + async #renderStructTreeLayer() { + if (!this.textLayer) { + return; + } + const treeDom = await this.structTreeLayer?.render(); + if (treeDom) { + this.l10n.pause(); + this.structTreeLayer?.addElementsToTextLayer(); + if (this.canvas && treeDom.parentNode !== this.canvas) { + this.canvas.append(treeDom); + } + this.l10n.resume(); + } + this.structTreeLayer?.show(); + } + async #buildXfaTextContentItems(textDivs) { + const text = await this.pdfPage.getTextContent(); + const items = []; + for (const item of text.items) { + items.push(item.str); + } + this._textHighlighter.setTextMapping(textDivs, items); + this._textHighlighter.enable(); + } + _resetZoomLayer(removeFromDOM = false) { + if (!this.zoomLayer) { + return; + } + const zoomLayerCanvas = this.zoomLayer.firstChild; + this.#viewportMap.delete(zoomLayerCanvas); + zoomLayerCanvas.width = 0; + zoomLayerCanvas.height = 0; + if (removeFromDOM) { + this.zoomLayer.remove(); + } + this.zoomLayer = null; + } + reset({ + keepZoomLayer = false, + keepAnnotationLayer = false, + keepAnnotationEditorLayer = false, + keepXfaLayer = false, + keepTextLayer = false + } = {}) { + this.cancelRendering({ + keepAnnotationLayer, + keepAnnotationEditorLayer, + keepXfaLayer, + keepTextLayer + }); + this.renderingState = RenderingStates.INITIAL; + const div = this.div; + const childNodes = div.childNodes, + zoomLayerNode = keepZoomLayer && this.zoomLayer || null, + annotationLayerNode = keepAnnotationLayer && this.annotationLayer?.div || null, + annotationEditorLayerNode = keepAnnotationEditorLayer && this.annotationEditorLayer?.div || null, + xfaLayerNode = keepXfaLayer && this.xfaLayer?.div || null, + textLayerNode = keepTextLayer && this.textLayer?.div || null; + for (let i = childNodes.length - 1; i >= 0; i--) { + const node = childNodes[i]; + switch (node) { + case zoomLayerNode: + case annotationLayerNode: + case annotationEditorLayerNode: + case xfaLayerNode: + case textLayerNode: + continue; + } + node.remove(); + const layerIndex = this.#layers.indexOf(node); + if (layerIndex >= 0) { + this.#layers[layerIndex] = null; + } + } + div.removeAttribute("data-loaded"); + if (annotationLayerNode) { + this.annotationLayer.hide(); + } + if (annotationEditorLayerNode) { + this.annotationEditorLayer.hide(); + } + if (xfaLayerNode) { + this.xfaLayer.hide(); + } + if (textLayerNode) { + this.textLayer.hide(); + } + this.structTreeLayer?.hide(); + if (!zoomLayerNode) { + if (this.canvas) { + this.#viewportMap.delete(this.canvas); + this.canvas.width = 0; + this.canvas.height = 0; + delete this.canvas; + } + this._resetZoomLayer(); + } + } + toggleEditingMode(isEditing) { + if (!this.hasEditableAnnotations()) { + return; + } + this.#isEditing = isEditing; + this.reset({ + keepZoomLayer: true, + keepAnnotationLayer: true, + keepAnnotationEditorLayer: true, + keepXfaLayer: true, + keepTextLayer: true + }); + } + update({ + scale = 0, + rotation = null, + optionalContentConfigPromise = null, + drawingDelay = -1 + }) { + this.scale = scale || this.scale; + if (typeof rotation === "number") { + this.rotation = rotation; + } + if (optionalContentConfigPromise instanceof Promise) { + this._optionalContentConfigPromise = optionalContentConfigPromise; + optionalContentConfigPromise.then(optionalContentConfig => { + if (optionalContentConfigPromise !== this._optionalContentConfigPromise) { + return; + } + this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility; + }); + } + this.#useThumbnailCanvas.directDrawing = true; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = this.viewport.clone({ + scale: this.scale * PixelsPerInch.PDF_TO_CSS_UNITS, + rotation: totalRotation + }); + this.#setDimensions(); + if (this._isStandalone) { + this._container?.style.setProperty("--scale-factor", this.viewport.scale); + } + if (this.canvas) { + let onlyCssZoom = false; + if (this.#hasRestrictedScaling) { + if (this.maxCanvasPixels === 0) { + onlyCssZoom = true; + } else if (this.maxCanvasPixels > 0) { + const { + width, + height + } = this.viewport; + const { + sx, + sy + } = this.outputScale; + onlyCssZoom = (Math.floor(width) * sx | 0) * (Math.floor(height) * sy | 0) > this.maxCanvasPixels; + } + } + const postponeDrawing = drawingDelay >= 0 && drawingDelay < 1000; + if (postponeDrawing || onlyCssZoom) { + if (postponeDrawing && !onlyCssZoom && this.renderingState !== RenderingStates.FINISHED) { + this.cancelRendering({ + keepZoomLayer: true, + keepAnnotationLayer: true, + keepAnnotationEditorLayer: true, + keepXfaLayer: true, + keepTextLayer: true, + cancelExtraDelay: drawingDelay + }); + this.renderingState = RenderingStates.FINISHED; + this.#useThumbnailCanvas.directDrawing = false; + } + this.cssTransform({ + target: this.canvas, + redrawAnnotationLayer: true, + redrawAnnotationEditorLayer: true, + redrawXfaLayer: true, + redrawTextLayer: !postponeDrawing, + hideTextLayer: postponeDrawing + }); + if (postponeDrawing) { + return; + } + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: true, + timestamp: performance.now(), + error: this.#renderError + }); + return; + } + if (!this.zoomLayer && !this.canvas.hidden) { + this.zoomLayer = this.canvas.parentNode; + this.zoomLayer.style.position = "absolute"; + } + } + if (this.zoomLayer) { + this.cssTransform({ + target: this.zoomLayer.firstChild + }); + } + this.reset({ + keepZoomLayer: true, + keepAnnotationLayer: true, + keepAnnotationEditorLayer: true, + keepXfaLayer: true, + keepTextLayer: true + }); + } + cancelRendering({ + keepAnnotationLayer = false, + keepAnnotationEditorLayer = false, + keepXfaLayer = false, + keepTextLayer = false, + cancelExtraDelay = 0 + } = {}) { + if (this.renderTask) { + this.renderTask.cancel(cancelExtraDelay); + this.renderTask = null; + } + this.resume = null; + if (this.textLayer && (!keepTextLayer || !this.textLayer.div)) { + this.textLayer.cancel(); + this.textLayer = null; + } + if (this.annotationLayer && (!keepAnnotationLayer || !this.annotationLayer.div)) { + this.annotationLayer.cancel(); + this.annotationLayer = null; + this._annotationCanvasMap = null; + } + if (this.structTreeLayer && !this.textLayer) { + this.structTreeLayer = null; + } + if (this.annotationEditorLayer && (!keepAnnotationEditorLayer || !this.annotationEditorLayer.div)) { + if (this.drawLayer) { + this.drawLayer.cancel(); + this.drawLayer = null; + } + this.annotationEditorLayer.cancel(); + this.annotationEditorLayer = null; + } + if (this.xfaLayer && (!keepXfaLayer || !this.xfaLayer.div)) { + this.xfaLayer.cancel(); + this.xfaLayer = null; + this._textHighlighter?.disable(); + } + } + cssTransform({ + target, + redrawAnnotationLayer = false, + redrawAnnotationEditorLayer = false, + redrawXfaLayer = false, + redrawTextLayer = false, + hideTextLayer = false + }) { + if (!target.hasAttribute("zooming")) { + target.setAttribute("zooming", true); + const { + style + } = target; + style.width = style.height = ""; + } + const originalViewport = this.#viewportMap.get(target); + if (this.viewport !== originalViewport) { + const relativeRotation = this.viewport.rotation - originalViewport.rotation; + const absRotation = Math.abs(relativeRotation); + let scaleX = 1, + scaleY = 1; + if (absRotation === 90 || absRotation === 270) { + const { + width, + height + } = this.viewport; + scaleX = height / width; + scaleY = width / height; + } + target.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX}, ${scaleY})`; + } + if (redrawAnnotationLayer && this.annotationLayer) { + this.#renderAnnotationLayer(); + } + if (redrawAnnotationEditorLayer && this.annotationEditorLayer) { + if (this.drawLayer) { + this.#renderDrawLayer(); + } + this.#renderAnnotationEditorLayer(); + } + if (redrawXfaLayer && this.xfaLayer) { + this.#renderXfaLayer(); + } + if (this.textLayer) { + if (hideTextLayer) { + this.textLayer.hide(); + this.structTreeLayer?.hide(); + } else if (redrawTextLayer) { + this.#renderTextLayer(); + } + } + } + get width() { + return this.viewport.width; + } + get height() { + return this.viewport.height; + } + getPagePoint(x, y) { + return this.viewport.convertToPdfPoint(x, y); + } + async #finishRenderTask(renderTask, error = null) { + if (renderTask === this.renderTask) { + this.renderTask = null; + } + if (error instanceof RenderingCancelledException) { + this.#renderError = null; + return; + } + this.#renderError = error; + this.renderingState = RenderingStates.FINISHED; + this._resetZoomLayer(true); + this.#useThumbnailCanvas.regularAnnotations = !renderTask.separateAnnots; + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: false, + timestamp: performance.now(), + error: this.#renderError + }); + if (error) { + throw error; + } + } + async draw() { + if (this.renderingState !== RenderingStates.INITIAL) { + console.error("Must be in new state before drawing"); + this.reset(); + } + const { + div, + l10n, + pageColors, + pdfPage, + viewport + } = this; + if (!pdfPage) { + this.renderingState = RenderingStates.FINISHED; + throw new Error("pdfPage is not loaded"); + } + this.renderingState = RenderingStates.RUNNING; + const canvasWrapper = document.createElement("div"); + canvasWrapper.classList.add("canvasWrapper"); + this.#addLayer(canvasWrapper, "canvasWrapper"); + if (!this.textLayer && this.#textLayerMode !== TextLayerMode.DISABLE && !pdfPage.isPureXfa) { + this._accessibilityManager ||= new TextAccessibilityManager(); + this.textLayer = new TextLayerBuilder({ + pdfPage, + highlighter: this._textHighlighter, + accessibilityManager: this._accessibilityManager, + enablePermissions: this.#textLayerMode === TextLayerMode.ENABLE_PERMISSIONS, + onAppend: textLayerDiv => { + this.l10n.pause(); + this.#addLayer(textLayerDiv, "textLayer"); + this.l10n.resume(); + } + }); + } + if (!this.annotationLayer && this.#annotationMode !== AnnotationMode.DISABLE) { + const { + annotationStorage, + annotationEditorUIManager, + downloadManager, + enableScripting, + fieldObjectsPromise, + hasJSActionsPromise, + linkService + } = this.#layerProperties; + this._annotationCanvasMap ||= new Map(); + this.annotationLayer = new AnnotationLayerBuilder({ + pdfPage, + annotationStorage, + imageResourcesPath: this.imageResourcesPath, + renderForms: this.#annotationMode === AnnotationMode.ENABLE_FORMS, + linkService, + downloadManager, + enableScripting, + hasJSActionsPromise, + fieldObjectsPromise, + annotationCanvasMap: this._annotationCanvasMap, + accessibilityManager: this._accessibilityManager, + annotationEditorUIManager, + onAppend: annotationLayerDiv => { + this.#addLayer(annotationLayerDiv, "annotationLayer"); + } + }); + } + const renderContinueCallback = cont => { + showCanvas?.(false); + if (this.renderingQueue && !this.renderingQueue.isHighestPriority(this)) { + this.renderingState = RenderingStates.PAUSED; + this.resume = () => { + this.renderingState = RenderingStates.RUNNING; + cont(); + }; + return; + } + cont(); + }; + const { + width, + height + } = viewport; + const canvas = document.createElement("canvas"); + canvas.setAttribute("role", "presentation"); + canvas.hidden = true; + const hasHCM = !!(pageColors?.background && pageColors?.foreground); + let showCanvas = isLastShow => { + if (!hasHCM || isLastShow) { + canvas.hidden = false; + showCanvas = null; + } + }; + canvasWrapper.append(canvas); + this.canvas = canvas; + const ctx = canvas.getContext("2d", { + alpha: false, + willReadFrequently: !this.#enableHWA + }); + const outputScale = this.outputScale = new OutputScale(); + if (this.maxCanvasPixels === 0) { + const invScale = 1 / this.scale; + outputScale.sx *= invScale; + outputScale.sy *= invScale; + this.#hasRestrictedScaling = true; + } else if (this.maxCanvasPixels > 0) { + const pixelsInViewport = width * height; + const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport); + if (outputScale.sx > maxScale || outputScale.sy > maxScale) { + outputScale.sx = maxScale; + outputScale.sy = maxScale; + this.#hasRestrictedScaling = true; + } else { + this.#hasRestrictedScaling = false; + } + } + const sfx = approximateFraction(outputScale.sx); + const sfy = approximateFraction(outputScale.sy); + const canvasWidth = canvas.width = floorToDivide(calcRound(width * outputScale.sx), sfx[0]); + const canvasHeight = canvas.height = floorToDivide(calcRound(height * outputScale.sy), sfy[0]); + const pageWidth = floorToDivide(calcRound(width), sfx[1]); + const pageHeight = floorToDivide(calcRound(height), sfy[1]); + outputScale.sx = canvasWidth / pageWidth; + outputScale.sy = canvasHeight / pageHeight; + if (this.#scaleRoundX !== sfx[1]) { + div.style.setProperty("--scale-round-x", `${sfx[1]}px`); + this.#scaleRoundX = sfx[1]; + } + if (this.#scaleRoundY !== sfy[1]) { + div.style.setProperty("--scale-round-y", `${sfy[1]}px`); + this.#scaleRoundY = sfy[1]; + } + this.#viewportMap.set(canvas, viewport); + const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null; + const renderContext = { + canvasContext: ctx, + transform, + viewport, + annotationMode: this.#annotationMode, + optionalContentConfigPromise: this._optionalContentConfigPromise, + annotationCanvasMap: this._annotationCanvasMap, + pageColors, + isEditing: this.#isEditing + }; + const renderTask = this.renderTask = pdfPage.render(renderContext); + renderTask.onContinue = renderContinueCallback; + const resultPromise = renderTask.promise.then(async () => { + showCanvas?.(true); + await this.#finishRenderTask(renderTask); + this.structTreeLayer ||= new StructTreeLayerBuilder(pdfPage, viewport.rawDims); + this.#renderTextLayer(); + if (this.annotationLayer) { + await this.#renderAnnotationLayer(); + } + const { + annotationEditorUIManager + } = this.#layerProperties; + if (!annotationEditorUIManager) { + return; + } + this.drawLayer ||= new DrawLayerBuilder({ + pageIndex: this.id + }); + await this.#renderDrawLayer(); + this.drawLayer.setParent(canvasWrapper); + this.annotationEditorLayer ||= new AnnotationEditorLayerBuilder({ + uiManager: annotationEditorUIManager, + pdfPage, + l10n, + structTreeLayer: this.structTreeLayer, + accessibilityManager: this._accessibilityManager, + annotationLayer: this.annotationLayer?.annotationLayer, + textLayer: this.textLayer, + drawLayer: this.drawLayer.getDrawLayer(), + onAppend: annotationEditorLayerDiv => { + this.#addLayer(annotationEditorLayerDiv, "annotationEditorLayer"); + } + }); + this.#renderAnnotationEditorLayer(); + }, error => { + if (!(error instanceof RenderingCancelledException)) { + showCanvas?.(true); + } + return this.#finishRenderTask(renderTask, error); + }); + if (pdfPage.isPureXfa) { + if (!this.xfaLayer) { + const { + annotationStorage, + linkService + } = this.#layerProperties; + this.xfaLayer = new XfaLayerBuilder({ + pdfPage, + annotationStorage, + linkService + }); + } + this.#renderXfaLayer(); + } + div.setAttribute("data-loaded", true); + this.eventBus.dispatch("pagerender", { + source: this, + pageNumber: this.id + }); + return resultPromise; + } + setPageLabel(label) { + this.pageLabel = typeof label === "string" ? label : null; + this.div.setAttribute("data-l10n-args", JSON.stringify({ + page: this.pageLabel ?? this.id + })); + if (this.pageLabel !== null) { + this.div.setAttribute("data-page-label", this.pageLabel); + } else { + this.div.removeAttribute("data-page-label"); + } + } + get thumbnailCanvas() { + const { + directDrawing, + initialOptionalContent, + regularAnnotations + } = this.#useThumbnailCanvas; + return directDrawing && initialOptionalContent && regularAnnotations ? this.canvas : null; + } +} + +;// ./web/pdf_viewer.js + + + + + + + + + + + + + + + + + + +const DEFAULT_CACHE_SIZE = 10; +const PagesCountLimit = { + FORCE_SCROLL_MODE_PAGE: 10000, + FORCE_LAZY_PAGE_INIT: 5000, + PAUSE_EAGER_PAGE_INIT: 250 +}; +function isValidAnnotationEditorMode(mode) { + return Object.values(AnnotationEditorType).includes(mode) && mode !== AnnotationEditorType.DISABLE; +} +class PDFPageViewBuffer { + #buf = new Set(); + #size = 0; + constructor(size) { + this.#size = size; + } + push(view) { + const buf = this.#buf; + if (buf.has(view)) { + buf.delete(view); + } + buf.add(view); + if (buf.size > this.#size) { + this.#destroyFirstView(); + } + } + resize(newSize, idsToKeep = null) { + this.#size = newSize; + const buf = this.#buf; + if (idsToKeep) { + const ii = buf.size; + let i = 1; + for (const view of buf) { + if (idsToKeep.has(view.id)) { + buf.delete(view); + buf.add(view); + } + if (++i > ii) { + break; + } + } + } + while (buf.size > this.#size) { + this.#destroyFirstView(); + } + } + has(view) { + return this.#buf.has(view); + } + [Symbol.iterator]() { + return this.#buf.keys(); + } + #destroyFirstView() { + const firstView = this.#buf.keys().next().value; + firstView?.destroy(); + this.#buf.delete(firstView); + } +} +class PDFViewer { + #buffer = null; + #altTextManager = null; + #annotationEditorHighlightColors = null; + #annotationEditorMode = AnnotationEditorType.NONE; + #annotationEditorUIManager = null; + #annotationMode = AnnotationMode.ENABLE_FORMS; + #containerTopLeft = null; + #editorUndoBar = null; + #enableHWA = false; + #enableHighlightFloatingButton = false; + #enablePermissions = false; + #enableUpdatedAddImage = false; + #enableNewAltTextWhenAddingImage = false; + #eventAbortController = null; + #mlManager = null; + #switchAnnotationEditorModeAC = null; + #switchAnnotationEditorModeTimeoutId = null; + #getAllTextInProgress = false; + #hiddenCopyElement = null; + #interruptCopyCondition = false; + #previousContainerHeight = 0; + #resizeObserver = new ResizeObserver(this.#resizeObserverCallback.bind(this)); + #scrollModePageState = null; + #scaleTimeoutId = null; + #textLayerMode = TextLayerMode.ENABLE; + constructor(options) { + const viewerVersion = "4.9.155"; + if (version !== viewerVersion) { + throw new Error(`The API version "${version}" does not match the Viewer version "${viewerVersion}".`); + } + this.container = options.container; + this.viewer = options.viewer || options.container.firstElementChild; + if (this.container?.tagName !== "DIV" || this.viewer?.tagName !== "DIV") { + throw new Error("Invalid `container` and/or `viewer` option."); + } + if (this.container.offsetParent && getComputedStyle(this.container).position !== "absolute") { + throw new Error("The `container` must be absolutely positioned."); + } + this.#resizeObserver.observe(this.container); + this.eventBus = options.eventBus; + this.linkService = options.linkService || new SimpleLinkService(); + this.downloadManager = options.downloadManager || null; + this.findController = options.findController || null; + this.#altTextManager = options.altTextManager || null; + this.#editorUndoBar = options.editorUndoBar || null; + if (this.findController) { + this.findController.onIsPageVisible = pageNumber => this._getVisiblePages().ids.has(pageNumber); + } + this._scriptingManager = options.scriptingManager || null; + this.#textLayerMode = options.textLayerMode ?? TextLayerMode.ENABLE; + this.#annotationMode = options.annotationMode ?? AnnotationMode.ENABLE_FORMS; + this.#annotationEditorMode = options.annotationEditorMode ?? AnnotationEditorType.NONE; + this.#annotationEditorHighlightColors = options.annotationEditorHighlightColors || null; + this.#enableHighlightFloatingButton = options.enableHighlightFloatingButton === true; + this.#enableUpdatedAddImage = options.enableUpdatedAddImage === true; + this.#enableNewAltTextWhenAddingImage = options.enableNewAltTextWhenAddingImage === true; + this.imageResourcesPath = options.imageResourcesPath || ""; + this.enablePrintAutoRotate = options.enablePrintAutoRotate || false; + this.removePageBorders = options.removePageBorders || false; + this.maxCanvasPixels = options.maxCanvasPixels; + this.l10n = options.l10n; + this.l10n ||= new genericl10n_GenericL10n(); + this.#enablePermissions = options.enablePermissions || false; + this.pageColors = options.pageColors || null; + this.#mlManager = options.mlManager || null; + this.#enableHWA = options.enableHWA || false; + this.defaultRenderingQueue = !options.renderingQueue; + if (this.defaultRenderingQueue) { + this.renderingQueue = new PDFRenderingQueue(); + this.renderingQueue.setViewer(this); + } else { + this.renderingQueue = options.renderingQueue; + } + const { + abortSignal + } = options; + abortSignal?.addEventListener("abort", () => { + this.#resizeObserver.disconnect(); + this.#resizeObserver = null; + }, { + once: true + }); + this.scroll = watchScroll(this.container, this._scrollUpdate.bind(this), abortSignal); + this.presentationModeState = PresentationModeState.UNKNOWN; + this._resetView(); + if (this.removePageBorders) { + this.viewer.classList.add("removePageBorders"); + } + this.#updateContainerHeightCss(); + this.eventBus._on("thumbnailrendered", ({ + pageNumber, + pdfPage + }) => { + const pageView = this._pages[pageNumber - 1]; + if (!this.#buffer.has(pageView)) { + pdfPage?.cleanup(); + } + }); + if (!options.l10n) { + this.l10n.translate(this.container); + } + } + get pagesCount() { + return this._pages.length; + } + getPageView(index) { + return this._pages[index]; + } + getCachedPageViews() { + return new Set(this.#buffer); + } + get pageViewsReady() { + return this._pages.every(pageView => pageView?.pdfPage); + } + get renderForms() { + return this.#annotationMode === AnnotationMode.ENABLE_FORMS; + } + get enableScripting() { + return !!this._scriptingManager; + } + get currentPageNumber() { + return this._currentPageNumber; + } + set currentPageNumber(val) { + if (!Number.isInteger(val)) { + throw new Error("Invalid page number."); + } + if (!this.pdfDocument) { + return; + } + if (!this._setCurrentPageNumber(val, true)) { + console.error(`currentPageNumber: "${val}" is not a valid page.`); + } + } + _setCurrentPageNumber(val, resetCurrentPageView = false) { + if (this._currentPageNumber === val) { + if (resetCurrentPageView) { + this.#resetCurrentPageView(); + } + return true; + } + if (!(0 < val && val <= this.pagesCount)) { + return false; + } + const previous = this._currentPageNumber; + this._currentPageNumber = val; + this.eventBus.dispatch("pagechanging", { + source: this, + pageNumber: val, + pageLabel: this._pageLabels?.[val - 1] ?? null, + previous + }); + if (resetCurrentPageView) { + this.#resetCurrentPageView(); + } + return true; + } + get currentPageLabel() { + return this._pageLabels?.[this._currentPageNumber - 1] ?? null; + } + set currentPageLabel(val) { + if (!this.pdfDocument) { + return; + } + let page = val | 0; + if (this._pageLabels) { + const i = this._pageLabels.indexOf(val); + if (i >= 0) { + page = i + 1; + } + } + if (!this._setCurrentPageNumber(page, true)) { + console.error(`currentPageLabel: "${val}" is not a valid page.`); + } + } + get currentScale() { + return this._currentScale !== UNKNOWN_SCALE ? this._currentScale : DEFAULT_SCALE; + } + set currentScale(val) { + if (isNaN(val)) { + throw new Error("Invalid numeric scale."); + } + if (!this.pdfDocument) { + return; + } + this.#setScale(val, { + noScroll: false + }); + } + get currentScaleValue() { + return this._currentScaleValue; + } + set currentScaleValue(val) { + if (!this.pdfDocument) { + return; + } + this.#setScale(val, { + noScroll: false + }); + } + get pagesRotation() { + return this._pagesRotation; + } + set pagesRotation(rotation) { + if (!isValidRotation(rotation)) { + throw new Error("Invalid pages rotation angle."); + } + if (!this.pdfDocument) { + return; + } + rotation %= 360; + if (rotation < 0) { + rotation += 360; + } + if (this._pagesRotation === rotation) { + return; + } + this._pagesRotation = rotation; + const pageNumber = this._currentPageNumber; + this.refresh(true, { + rotation + }); + if (this._currentScaleValue) { + this.#setScale(this._currentScaleValue, { + noScroll: true + }); + } + this.eventBus.dispatch("rotationchanging", { + source: this, + pagesRotation: rotation, + pageNumber + }); + if (this.defaultRenderingQueue) { + this.update(); + } + } + get firstPagePromise() { + return this.pdfDocument ? this._firstPageCapability.promise : null; + } + get onePageRendered() { + return this.pdfDocument ? this._onePageRenderedCapability.promise : null; + } + get pagesPromise() { + return this.pdfDocument ? this._pagesCapability.promise : null; + } + get _layerProperties() { + const self = this; + return shadow(this, "_layerProperties", { + get annotationEditorUIManager() { + return self.#annotationEditorUIManager; + }, + get annotationStorage() { + return self.pdfDocument?.annotationStorage; + }, + get downloadManager() { + return self.downloadManager; + }, + get enableScripting() { + return !!self._scriptingManager; + }, + get fieldObjectsPromise() { + return self.pdfDocument?.getFieldObjects(); + }, + get findController() { + return self.findController; + }, + get hasJSActionsPromise() { + return self.pdfDocument?.hasJSActions(); + }, + get linkService() { + return self.linkService; + } + }); + } + #initializePermissions(permissions) { + const params = { + annotationEditorMode: this.#annotationEditorMode, + annotationMode: this.#annotationMode, + textLayerMode: this.#textLayerMode + }; + if (!permissions) { + return params; + } + if (!permissions.includes(PermissionFlag.COPY) && this.#textLayerMode === TextLayerMode.ENABLE) { + params.textLayerMode = TextLayerMode.ENABLE_PERMISSIONS; + } + if (!permissions.includes(PermissionFlag.MODIFY_CONTENTS)) { + params.annotationEditorMode = AnnotationEditorType.DISABLE; + } + if (!permissions.includes(PermissionFlag.MODIFY_ANNOTATIONS) && !permissions.includes(PermissionFlag.FILL_INTERACTIVE_FORMS) && this.#annotationMode === AnnotationMode.ENABLE_FORMS) { + params.annotationMode = AnnotationMode.ENABLE; + } + return params; + } + async #onePageRenderedOrForceFetch(signal) { + if (document.visibilityState === "hidden" || !this.container.offsetParent || this._getVisiblePages().views.length === 0) { + return; + } + const hiddenCapability = Promise.withResolvers(), + ac = new AbortController(); + document.addEventListener("visibilitychange", () => { + if (document.visibilityState === "hidden") { + hiddenCapability.resolve(); + } + }, { + signal: typeof AbortSignal.any === "function" ? AbortSignal.any([signal, ac.signal]) : signal + }); + await Promise.race([this._onePageRenderedCapability.promise, hiddenCapability.promise]); + ac.abort(); + } + async getAllText() { + const texts = []; + const buffer = []; + for (let pageNum = 1, pagesCount = this.pdfDocument.numPages; pageNum <= pagesCount; ++pageNum) { + if (this.#interruptCopyCondition) { + return null; + } + buffer.length = 0; + const page = await this.pdfDocument.getPage(pageNum); + const { + items + } = await page.getTextContent(); + for (const item of items) { + if (item.str) { + buffer.push(item.str); + } + if (item.hasEOL) { + buffer.push("\n"); + } + } + texts.push(removeNullCharacters(buffer.join(""))); + } + return texts.join("\n"); + } + #copyCallback(textLayerMode, event) { + const selection = document.getSelection(); + const { + focusNode, + anchorNode + } = selection; + if (anchorNode && focusNode && selection.containsNode(this.#hiddenCopyElement)) { + if (this.#getAllTextInProgress || textLayerMode === TextLayerMode.ENABLE_PERMISSIONS) { + stopEvent(event); + return; + } + this.#getAllTextInProgress = true; + const { + classList + } = this.viewer; + classList.add("copyAll"); + const ac = new AbortController(); + window.addEventListener("keydown", ev => this.#interruptCopyCondition = ev.key === "Escape", { + signal: ac.signal + }); + this.getAllText().then(async text => { + if (text !== null) { + await navigator.clipboard.writeText(text); + } + }).catch(reason => { + console.warn(`Something goes wrong when extracting the text: ${reason.message}`); + }).finally(() => { + this.#getAllTextInProgress = false; + this.#interruptCopyCondition = false; + ac.abort(); + classList.remove("copyAll"); + }); + stopEvent(event); + } + } + setDocument(pdfDocument) { + if (this.pdfDocument) { + this.eventBus.dispatch("pagesdestroy", { + source: this + }); + this._cancelRendering(); + this._resetView(); + this.findController?.setDocument(null); + this._scriptingManager?.setDocument(null); + this.#annotationEditorUIManager?.destroy(); + this.#annotationEditorUIManager = null; + } + this.pdfDocument = pdfDocument; + if (!pdfDocument) { + return; + } + const pagesCount = pdfDocument.numPages; + const firstPagePromise = pdfDocument.getPage(1); + const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig({ + intent: "display" + }); + const permissionsPromise = this.#enablePermissions ? pdfDocument.getPermissions() : Promise.resolve(); + const { + eventBus, + pageColors, + viewer + } = this; + this.#eventAbortController = new AbortController(); + const { + signal + } = this.#eventAbortController; + if (pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) { + console.warn("Forcing PAGE-scrolling for performance reasons, given the length of the document."); + const mode = this._scrollMode = ScrollMode.PAGE; + eventBus.dispatch("scrollmodechanged", { + source: this, + mode + }); + } + this._pagesCapability.promise.then(() => { + eventBus.dispatch("pagesloaded", { + source: this, + pagesCount + }); + }, () => {}); + const onBeforeDraw = evt => { + const pageView = this._pages[evt.pageNumber - 1]; + if (!pageView) { + return; + } + this.#buffer.push(pageView); + }; + eventBus._on("pagerender", onBeforeDraw, { + signal + }); + const onAfterDraw = evt => { + if (evt.cssTransform) { + return; + } + this._onePageRenderedCapability.resolve({ + timestamp: evt.timestamp + }); + eventBus._off("pagerendered", onAfterDraw); + }; + eventBus._on("pagerendered", onAfterDraw, { + signal + }); + Promise.all([firstPagePromise, permissionsPromise]).then(([firstPdfPage, permissions]) => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this._firstPageCapability.resolve(firstPdfPage); + this._optionalContentConfigPromise = optionalContentConfigPromise; + const { + annotationEditorMode, + annotationMode, + textLayerMode + } = this.#initializePermissions(permissions); + if (textLayerMode !== TextLayerMode.DISABLE) { + const element = this.#hiddenCopyElement = document.createElement("div"); + element.id = "hiddenCopyElement"; + viewer.before(element); + } + if (typeof AbortSignal.any === "function" && annotationEditorMode !== AnnotationEditorType.DISABLE) { + const mode = annotationEditorMode; + if (pdfDocument.isPureXfa) { + console.warn("Warning: XFA-editing is not implemented."); + } else if (isValidAnnotationEditorMode(mode)) { + this.#annotationEditorUIManager = new AnnotationEditorUIManager(this.container, viewer, this.#altTextManager, eventBus, pdfDocument, pageColors, this.#annotationEditorHighlightColors, this.#enableHighlightFloatingButton, this.#enableUpdatedAddImage, this.#enableNewAltTextWhenAddingImage, this.#mlManager, this.#editorUndoBar); + eventBus.dispatch("annotationeditoruimanager", { + source: this, + uiManager: this.#annotationEditorUIManager + }); + if (mode !== AnnotationEditorType.NONE) { + if (mode === AnnotationEditorType.STAMP) { + this.#mlManager?.loadModel("altText"); + } + this.#annotationEditorUIManager.updateMode(mode); + } + } else { + console.error(`Invalid AnnotationEditor mode: ${mode}`); + } + } + const viewerElement = this._scrollMode === ScrollMode.PAGE ? null : viewer; + const scale = this.currentScale; + const viewport = firstPdfPage.getViewport({ + scale: scale * PixelsPerInch.PDF_TO_CSS_UNITS + }); + viewer.style.setProperty("--scale-factor", viewport.scale); + if (pageColors?.background) { + viewer.style.setProperty("--page-bg-color", pageColors.background); + } + if (pageColors?.foreground === "CanvasText" || pageColors?.background === "Canvas") { + viewer.style.setProperty("--hcm-highlight-filter", pdfDocument.filterFactory.addHighlightHCMFilter("highlight", "CanvasText", "Canvas", "HighlightText", "Highlight")); + viewer.style.setProperty("--hcm-highlight-selected-filter", pdfDocument.filterFactory.addHighlightHCMFilter("highlight_selected", "CanvasText", "Canvas", "HighlightText", "ButtonText")); + } + for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { + const pageView = new PDFPageView({ + container: viewerElement, + eventBus, + id: pageNum, + scale, + defaultViewport: viewport.clone(), + optionalContentConfigPromise, + renderingQueue: this.renderingQueue, + textLayerMode, + annotationMode, + imageResourcesPath: this.imageResourcesPath, + maxCanvasPixels: this.maxCanvasPixels, + pageColors, + l10n: this.l10n, + layerProperties: this._layerProperties, + enableHWA: this.#enableHWA + }); + this._pages.push(pageView); + } + this._pages[0]?.setPdfPage(firstPdfPage); + if (this._scrollMode === ScrollMode.PAGE) { + this.#ensurePageViewVisible(); + } else if (this._spreadMode !== SpreadMode.NONE) { + this._updateSpreadMode(); + } + this.#onePageRenderedOrForceFetch(signal).then(async () => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this.findController?.setDocument(pdfDocument); + this._scriptingManager?.setDocument(pdfDocument); + if (this.#hiddenCopyElement) { + document.addEventListener("copy", this.#copyCallback.bind(this, textLayerMode), { + signal + }); + } + if (this.#annotationEditorUIManager) { + eventBus.dispatch("annotationeditormodechanged", { + source: this, + mode: this.#annotationEditorMode + }); + } + if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > PagesCountLimit.FORCE_LAZY_PAGE_INIT) { + this._pagesCapability.resolve(); + return; + } + let getPagesLeft = pagesCount - 1; + if (getPagesLeft <= 0) { + this._pagesCapability.resolve(); + return; + } + for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) { + const promise = pdfDocument.getPage(pageNum).then(pdfPage => { + const pageView = this._pages[pageNum - 1]; + if (!pageView.pdfPage) { + pageView.setPdfPage(pdfPage); + } + if (--getPagesLeft === 0) { + this._pagesCapability.resolve(); + } + }, reason => { + console.error(`Unable to get page ${pageNum} to initialize viewer`, reason); + if (--getPagesLeft === 0) { + this._pagesCapability.resolve(); + } + }); + if (pageNum % PagesCountLimit.PAUSE_EAGER_PAGE_INIT === 0) { + await promise; + } + } + }); + eventBus.dispatch("pagesinit", { + source: this + }); + pdfDocument.getMetadata().then(({ + info + }) => { + if (pdfDocument !== this.pdfDocument) { + return; + } + if (info.Language) { + viewer.lang = info.Language; + } + }); + if (this.defaultRenderingQueue) { + this.update(); + } + }).catch(reason => { + console.error("Unable to initialize viewer", reason); + this._pagesCapability.reject(reason); + }); + } + setPageLabels(labels) { + if (!this.pdfDocument) { + return; + } + if (!labels) { + this._pageLabels = null; + } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { + this._pageLabels = null; + console.error(`setPageLabels: Invalid page labels.`); + } else { + this._pageLabels = labels; + } + for (let i = 0, ii = this._pages.length; i < ii; i++) { + this._pages[i].setPageLabel(this._pageLabels?.[i] ?? null); + } + } + _resetView() { + this._pages = []; + this._currentPageNumber = 1; + this._currentScale = UNKNOWN_SCALE; + this._currentScaleValue = null; + this._pageLabels = null; + this.#buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE); + this._location = null; + this._pagesRotation = 0; + this._optionalContentConfigPromise = null; + this._firstPageCapability = Promise.withResolvers(); + this._onePageRenderedCapability = Promise.withResolvers(); + this._pagesCapability = Promise.withResolvers(); + this._scrollMode = ScrollMode.VERTICAL; + this._previousScrollMode = ScrollMode.UNKNOWN; + this._spreadMode = SpreadMode.NONE; + this.#scrollModePageState = { + previousPageNumber: 1, + scrollDown: true, + pages: [] + }; + this.#eventAbortController?.abort(); + this.#eventAbortController = null; + this.viewer.textContent = ""; + this._updateScrollMode(); + this.viewer.removeAttribute("lang"); + this.#hiddenCopyElement?.remove(); + this.#hiddenCopyElement = null; + this.#cleanupSwitchAnnotationEditorMode(); + } + #ensurePageViewVisible() { + if (this._scrollMode !== ScrollMode.PAGE) { + throw new Error("#ensurePageViewVisible: Invalid scrollMode value."); + } + const pageNumber = this._currentPageNumber, + state = this.#scrollModePageState, + viewer = this.viewer; + viewer.textContent = ""; + state.pages.length = 0; + if (this._spreadMode === SpreadMode.NONE && !this.isInPresentationMode) { + const pageView = this._pages[pageNumber - 1]; + viewer.append(pageView.div); + state.pages.push(pageView); + } else { + const pageIndexSet = new Set(), + parity = this._spreadMode - 1; + if (parity === -1) { + pageIndexSet.add(pageNumber - 1); + } else if (pageNumber % 2 !== parity) { + pageIndexSet.add(pageNumber - 1); + pageIndexSet.add(pageNumber); + } else { + pageIndexSet.add(pageNumber - 2); + pageIndexSet.add(pageNumber - 1); + } + const spread = document.createElement("div"); + spread.className = "spread"; + if (this.isInPresentationMode) { + const dummyPage = document.createElement("div"); + dummyPage.className = "dummyPage"; + spread.append(dummyPage); + } + for (const i of pageIndexSet) { + const pageView = this._pages[i]; + if (!pageView) { + continue; + } + spread.append(pageView.div); + state.pages.push(pageView); + } + viewer.append(spread); + } + state.scrollDown = pageNumber >= state.previousPageNumber; + state.previousPageNumber = pageNumber; + } + _scrollUpdate() { + if (this.pagesCount === 0) { + return; + } + this.update(); + } + #scrollIntoView(pageView, pageSpot = null) { + const { + div, + id + } = pageView; + if (this._currentPageNumber !== id) { + this._setCurrentPageNumber(id); + } + if (this._scrollMode === ScrollMode.PAGE) { + this.#ensurePageViewVisible(); + this.update(); + } + if (!pageSpot && !this.isInPresentationMode) { + const left = div.offsetLeft + div.clientLeft, + right = left + div.clientWidth; + const { + scrollLeft, + clientWidth + } = this.container; + if (this._scrollMode === ScrollMode.HORIZONTAL || left < scrollLeft || right > scrollLeft + clientWidth) { + pageSpot = { + left: 0, + top: 0 + }; + } + } + scrollIntoView(div, pageSpot); + if (!this._currentScaleValue && this._location) { + this._location = null; + } + } + #isSameScale(newScale) { + return newScale === this._currentScale || Math.abs(newScale - this._currentScale) < 1e-15; + } + #setScaleUpdatePages(newScale, newValue, { + noScroll = false, + preset = false, + drawingDelay = -1, + origin = null + }) { + this._currentScaleValue = newValue.toString(); + if (this.#isSameScale(newScale)) { + if (preset) { + this.eventBus.dispatch("scalechanging", { + source: this, + scale: newScale, + presetValue: newValue + }); + } + return; + } + this.viewer.style.setProperty("--scale-factor", newScale * PixelsPerInch.PDF_TO_CSS_UNITS); + const postponeDrawing = drawingDelay >= 0 && drawingDelay < 1000; + this.refresh(true, { + scale: newScale, + drawingDelay: postponeDrawing ? drawingDelay : -1 + }); + if (postponeDrawing) { + this.#scaleTimeoutId = setTimeout(() => { + this.#scaleTimeoutId = null; + this.refresh(); + }, drawingDelay); + } + const previousScale = this._currentScale; + this._currentScale = newScale; + if (!noScroll) { + let page = this._currentPageNumber, + dest; + if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) { + page = this._location.pageNumber; + dest = [null, { + name: "XYZ" + }, this._location.left, this._location.top, null]; + } + this.scrollPageIntoView({ + pageNumber: page, + destArray: dest, + allowNegativeOffset: true + }); + if (Array.isArray(origin)) { + const scaleDiff = newScale / previousScale - 1; + const [top, left] = this.containerTopLeft; + this.container.scrollLeft += (origin[0] - left) * scaleDiff; + this.container.scrollTop += (origin[1] - top) * scaleDiff; + } + } + this.eventBus.dispatch("scalechanging", { + source: this, + scale: newScale, + presetValue: preset ? newValue : undefined + }); + if (this.defaultRenderingQueue) { + this.update(); + } + } + get #pageWidthScaleFactor() { + if (this._spreadMode !== SpreadMode.NONE && this._scrollMode !== ScrollMode.HORIZONTAL) { + return 2; + } + return 1; + } + #setScale(value, options) { + let scale = parseFloat(value); + if (scale > 0) { + options.preset = false; + this.#setScaleUpdatePages(scale, value, options); + } else { + const currentPage = this._pages[this._currentPageNumber - 1]; + if (!currentPage) { + return; + } + let hPadding = SCROLLBAR_PADDING, + vPadding = VERTICAL_PADDING; + if (this.isInPresentationMode) { + hPadding = vPadding = 4; + if (this._spreadMode !== SpreadMode.NONE) { + hPadding *= 2; + } + } else if (this.removePageBorders) { + hPadding = vPadding = 0; + } else if (this._scrollMode === ScrollMode.HORIZONTAL) { + [hPadding, vPadding] = [vPadding, hPadding]; + } + const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this.#pageWidthScaleFactor; + const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale; + switch (value) { + case "page-actual": + scale = 1; + break; + case "page-width": + scale = pageWidthScale; + break; + case "page-height": + scale = pageHeightScale; + break; + case "page-fit": + scale = Math.min(pageWidthScale, pageHeightScale); + break; + case "auto": + const horizontalScale = isPortraitOrientation(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale); + scale = Math.min(MAX_AUTO_SCALE, horizontalScale); + break; + default: + console.error(`#setScale: "${value}" is an unknown zoom value.`); + return; + } + options.preset = true; + this.#setScaleUpdatePages(scale, value, options); + } + } + #resetCurrentPageView() { + const pageView = this._pages[this._currentPageNumber - 1]; + if (this.isInPresentationMode) { + this.#setScale(this._currentScaleValue, { + noScroll: true + }); + } + this.#scrollIntoView(pageView); + } + pageLabelToPageNumber(label) { + if (!this._pageLabels) { + return null; + } + const i = this._pageLabels.indexOf(label); + if (i < 0) { + return null; + } + return i + 1; + } + scrollPageIntoView({ + pageNumber, + destArray = null, + allowNegativeOffset = false, + ignoreDestinationZoom = false + }) { + if (!this.pdfDocument) { + return; + } + const pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1]; + if (!pageView) { + console.error(`scrollPageIntoView: "${pageNumber}" is not a valid pageNumber parameter.`); + return; + } + if (this.isInPresentationMode || !destArray) { + this._setCurrentPageNumber(pageNumber, true); + return; + } + let x = 0, + y = 0; + let width = 0, + height = 0, + widthScale, + heightScale; + const changeOrientation = pageView.rotation % 180 !== 0; + const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / PixelsPerInch.PDF_TO_CSS_UNITS; + const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / PixelsPerInch.PDF_TO_CSS_UNITS; + let scale = 0; + switch (destArray[1].name) { + case "XYZ": + x = destArray[2]; + y = destArray[3]; + scale = destArray[4]; + x = x !== null ? x : 0; + y = y !== null ? y : pageHeight; + break; + case "Fit": + case "FitB": + scale = "page-fit"; + break; + case "FitH": + case "FitBH": + y = destArray[2]; + scale = "page-width"; + if (y === null && this._location) { + x = this._location.left; + y = this._location.top; + } else if (typeof y !== "number" || y < 0) { + y = pageHeight; + } + break; + case "FitV": + case "FitBV": + x = destArray[2]; + width = pageWidth; + height = pageHeight; + scale = "page-height"; + break; + case "FitR": + x = destArray[2]; + y = destArray[3]; + width = destArray[4] - x; + height = destArray[5] - y; + let hPadding = SCROLLBAR_PADDING, + vPadding = VERTICAL_PADDING; + if (this.removePageBorders) { + hPadding = vPadding = 0; + } + widthScale = (this.container.clientWidth - hPadding) / width / PixelsPerInch.PDF_TO_CSS_UNITS; + heightScale = (this.container.clientHeight - vPadding) / height / PixelsPerInch.PDF_TO_CSS_UNITS; + scale = Math.min(Math.abs(widthScale), Math.abs(heightScale)); + break; + default: + console.error(`scrollPageIntoView: "${destArray[1].name}" is not a valid destination type.`); + return; + } + if (!ignoreDestinationZoom) { + if (scale && scale !== this._currentScale) { + this.currentScaleValue = scale; + } else if (this._currentScale === UNKNOWN_SCALE) { + this.currentScaleValue = DEFAULT_SCALE_VALUE; + } + } + if (scale === "page-fit" && !destArray[4]) { + this.#scrollIntoView(pageView); + return; + } + const boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)]; + let left = Math.min(boundingRect[0][0], boundingRect[1][0]); + let top = Math.min(boundingRect[0][1], boundingRect[1][1]); + if (!allowNegativeOffset) { + left = Math.max(left, 0); + top = Math.max(top, 0); + } + this.#scrollIntoView(pageView, { + left, + top + }); + } + _updateLocation(firstPage) { + const currentScale = this._currentScale; + const currentScaleValue = this._currentScaleValue; + const normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue; + const pageNumber = firstPage.id; + const currentPageView = this._pages[pageNumber - 1]; + const container = this.container; + const topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y); + const intLeft = Math.round(topLeft[0]); + const intTop = Math.round(topLeft[1]); + let pdfOpenParams = `#page=${pageNumber}`; + if (!this.isInPresentationMode) { + pdfOpenParams += `&zoom=${normalizedScaleValue},${intLeft},${intTop}`; + } + this._location = { + pageNumber, + scale: normalizedScaleValue, + top: intTop, + left: intLeft, + rotation: this._pagesRotation, + pdfOpenParams + }; + } + update() { + const visible = this._getVisiblePages(); + const visiblePages = visible.views, + numVisiblePages = visiblePages.length; + if (numVisiblePages === 0) { + return; + } + const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1); + this.#buffer.resize(newCacheSize, visible.ids); + this.renderingQueue.renderHighestPriority(visible); + const isSimpleLayout = this._spreadMode === SpreadMode.NONE && (this._scrollMode === ScrollMode.PAGE || this._scrollMode === ScrollMode.VERTICAL); + const currentId = this._currentPageNumber; + let stillFullyVisible = false; + for (const page of visiblePages) { + if (page.percent < 100) { + break; + } + if (page.id === currentId && isSimpleLayout) { + stillFullyVisible = true; + break; + } + } + this._setCurrentPageNumber(stillFullyVisible ? currentId : visiblePages[0].id); + this._updateLocation(visible.first); + this.eventBus.dispatch("updateviewarea", { + source: this, + location: this._location + }); + } + #switchToEditAnnotationMode() { + const visible = this._getVisiblePages(); + const pagesToRefresh = []; + const { + ids, + views + } = visible; + for (const page of views) { + const { + view + } = page; + if (!view.hasEditableAnnotations()) { + ids.delete(view.id); + continue; + } + pagesToRefresh.push(page); + } + if (pagesToRefresh.length === 0) { + return null; + } + this.renderingQueue.renderHighestPriority({ + first: pagesToRefresh[0], + last: pagesToRefresh.at(-1), + views: pagesToRefresh, + ids + }); + return ids; + } + containsElement(element) { + return this.container.contains(element); + } + focus() { + this.container.focus(); + } + get _isContainerRtl() { + return getComputedStyle(this.container).direction === "rtl"; + } + get isInPresentationMode() { + return this.presentationModeState === PresentationModeState.FULLSCREEN; + } + get isChangingPresentationMode() { + return this.presentationModeState === PresentationModeState.CHANGING; + } + get isHorizontalScrollbarEnabled() { + return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth; + } + get isVerticalScrollbarEnabled() { + return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight; + } + _getVisiblePages() { + const views = this._scrollMode === ScrollMode.PAGE ? this.#scrollModePageState.pages : this._pages, + horizontal = this._scrollMode === ScrollMode.HORIZONTAL, + rtl = horizontal && this._isContainerRtl; + return getVisibleElements({ + scrollEl: this.container, + views, + sortByVisibility: true, + horizontal, + rtl + }); + } + cleanup() { + for (const pageView of this._pages) { + if (pageView.renderingState !== RenderingStates.FINISHED) { + pageView.reset(); + } + } + } + _cancelRendering() { + for (const pageView of this._pages) { + pageView.cancelRendering(); + } + } + async #ensurePdfPageLoaded(pageView) { + if (pageView.pdfPage) { + return pageView.pdfPage; + } + try { + const pdfPage = await this.pdfDocument.getPage(pageView.id); + if (!pageView.pdfPage) { + pageView.setPdfPage(pdfPage); + } + return pdfPage; + } catch (reason) { + console.error("Unable to get page for page view", reason); + return null; + } + } + #getScrollAhead(visible) { + if (visible.first?.id === 1) { + return true; + } else if (visible.last?.id === this.pagesCount) { + return false; + } + switch (this._scrollMode) { + case ScrollMode.PAGE: + return this.#scrollModePageState.scrollDown; + case ScrollMode.HORIZONTAL: + return this.scroll.right; + } + return this.scroll.down; + } + forceRendering(currentlyVisiblePages) { + const visiblePages = currentlyVisiblePages || this._getVisiblePages(); + const scrollAhead = this.#getScrollAhead(visiblePages); + const preRenderExtra = this._spreadMode !== SpreadMode.NONE && this._scrollMode !== ScrollMode.HORIZONTAL; + const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead, preRenderExtra); + if (pageView) { + this.#ensurePdfPageLoaded(pageView).then(() => { + this.renderingQueue.renderView(pageView); + }); + return true; + } + return false; + } + get hasEqualPageSizes() { + const firstPageView = this._pages[0]; + for (let i = 1, ii = this._pages.length; i < ii; ++i) { + const pageView = this._pages[i]; + if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) { + return false; + } + } + return true; + } + getPagesOverview() { + let initialOrientation; + return this._pages.map(pageView => { + const viewport = pageView.pdfPage.getViewport({ + scale: 1 + }); + const orientation = isPortraitOrientation(viewport); + if (initialOrientation === undefined) { + initialOrientation = orientation; + } else if (this.enablePrintAutoRotate && orientation !== initialOrientation) { + return { + width: viewport.height, + height: viewport.width, + rotation: (viewport.rotation - 90) % 360 + }; + } + return { + width: viewport.width, + height: viewport.height, + rotation: viewport.rotation + }; + }); + } + get optionalContentConfigPromise() { + if (!this.pdfDocument) { + return Promise.resolve(null); + } + if (!this._optionalContentConfigPromise) { + console.error("optionalContentConfigPromise: Not initialized yet."); + return this.pdfDocument.getOptionalContentConfig({ + intent: "display" + }); + } + return this._optionalContentConfigPromise; + } + set optionalContentConfigPromise(promise) { + if (!(promise instanceof Promise)) { + throw new Error(`Invalid optionalContentConfigPromise: ${promise}`); + } + if (!this.pdfDocument) { + return; + } + if (!this._optionalContentConfigPromise) { + return; + } + this._optionalContentConfigPromise = promise; + this.refresh(false, { + optionalContentConfigPromise: promise + }); + this.eventBus.dispatch("optionalcontentconfigchanged", { + source: this, + promise + }); + } + get scrollMode() { + return this._scrollMode; + } + set scrollMode(mode) { + if (this._scrollMode === mode) { + return; + } + if (!isValidScrollMode(mode)) { + throw new Error(`Invalid scroll mode: ${mode}`); + } + if (this.pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) { + return; + } + this._previousScrollMode = this._scrollMode; + this._scrollMode = mode; + this.eventBus.dispatch("scrollmodechanged", { + source: this, + mode + }); + this._updateScrollMode(this._currentPageNumber); + } + _updateScrollMode(pageNumber = null) { + const scrollMode = this._scrollMode, + viewer = this.viewer; + viewer.classList.toggle("scrollHorizontal", scrollMode === ScrollMode.HORIZONTAL); + viewer.classList.toggle("scrollWrapped", scrollMode === ScrollMode.WRAPPED); + if (!this.pdfDocument || !pageNumber) { + return; + } + if (scrollMode === ScrollMode.PAGE) { + this.#ensurePageViewVisible(); + } else if (this._previousScrollMode === ScrollMode.PAGE) { + this._updateSpreadMode(); + } + if (this._currentScaleValue && isNaN(this._currentScaleValue)) { + this.#setScale(this._currentScaleValue, { + noScroll: true + }); + } + this._setCurrentPageNumber(pageNumber, true); + this.update(); + } + get spreadMode() { + return this._spreadMode; + } + set spreadMode(mode) { + if (this._spreadMode === mode) { + return; + } + if (!isValidSpreadMode(mode)) { + throw new Error(`Invalid spread mode: ${mode}`); + } + this._spreadMode = mode; + this.eventBus.dispatch("spreadmodechanged", { + source: this, + mode + }); + this._updateSpreadMode(this._currentPageNumber); + } + _updateSpreadMode(pageNumber = null) { + if (!this.pdfDocument) { + return; + } + const viewer = this.viewer, + pages = this._pages; + if (this._scrollMode === ScrollMode.PAGE) { + this.#ensurePageViewVisible(); + } else { + viewer.textContent = ""; + if (this._spreadMode === SpreadMode.NONE) { + for (const pageView of this._pages) { + viewer.append(pageView.div); + } + } else { + const parity = this._spreadMode - 1; + let spread = null; + for (let i = 0, ii = pages.length; i < ii; ++i) { + if (spread === null) { + spread = document.createElement("div"); + spread.className = "spread"; + viewer.append(spread); + } else if (i % 2 === parity) { + spread = spread.cloneNode(false); + viewer.append(spread); + } + spread.append(pages[i].div); + } + } + } + if (!pageNumber) { + return; + } + if (this._currentScaleValue && isNaN(this._currentScaleValue)) { + this.#setScale(this._currentScaleValue, { + noScroll: true + }); + } + this._setCurrentPageNumber(pageNumber, true); + this.update(); + } + _getPageAdvance(currentPageNumber, previous = false) { + switch (this._scrollMode) { + case ScrollMode.WRAPPED: + { + const { + views + } = this._getVisiblePages(), + pageLayout = new Map(); + for (const { + id, + y, + percent, + widthPercent + } of views) { + if (percent === 0 || widthPercent < 100) { + continue; + } + let yArray = pageLayout.get(y); + if (!yArray) { + pageLayout.set(y, yArray ||= []); + } + yArray.push(id); + } + for (const yArray of pageLayout.values()) { + const currentIndex = yArray.indexOf(currentPageNumber); + if (currentIndex === -1) { + continue; + } + const numPages = yArray.length; + if (numPages === 1) { + break; + } + if (previous) { + for (let i = currentIndex - 1, ii = 0; i >= ii; i--) { + const currentId = yArray[i], + expectedId = yArray[i + 1] - 1; + if (currentId < expectedId) { + return currentPageNumber - expectedId; + } + } + } else { + for (let i = currentIndex + 1, ii = numPages; i < ii; i++) { + const currentId = yArray[i], + expectedId = yArray[i - 1] + 1; + if (currentId > expectedId) { + return expectedId - currentPageNumber; + } + } + } + if (previous) { + const firstId = yArray[0]; + if (firstId < currentPageNumber) { + return currentPageNumber - firstId + 1; + } + } else { + const lastId = yArray[numPages - 1]; + if (lastId > currentPageNumber) { + return lastId - currentPageNumber + 1; + } + } + break; + } + break; + } + case ScrollMode.HORIZONTAL: + { + break; + } + case ScrollMode.PAGE: + case ScrollMode.VERTICAL: + { + if (this._spreadMode === SpreadMode.NONE) { + break; + } + const parity = this._spreadMode - 1; + if (previous && currentPageNumber % 2 !== parity) { + break; + } else if (!previous && currentPageNumber % 2 === parity) { + break; + } + const { + views + } = this._getVisiblePages(), + expectedId = previous ? currentPageNumber - 1 : currentPageNumber + 1; + for (const { + id, + percent, + widthPercent + } of views) { + if (id !== expectedId) { + continue; + } + if (percent > 0 && widthPercent === 100) { + return 2; + } + break; + } + break; + } + } + return 1; + } + nextPage() { + const currentPageNumber = this._currentPageNumber, + pagesCount = this.pagesCount; + if (currentPageNumber >= pagesCount) { + return false; + } + const advance = this._getPageAdvance(currentPageNumber, false) || 1; + this.currentPageNumber = Math.min(currentPageNumber + advance, pagesCount); + return true; + } + previousPage() { + const currentPageNumber = this._currentPageNumber; + if (currentPageNumber <= 1) { + return false; + } + const advance = this._getPageAdvance(currentPageNumber, true) || 1; + this.currentPageNumber = Math.max(currentPageNumber - advance, 1); + return true; + } + updateScale({ + drawingDelay, + scaleFactor = null, + steps = null, + origin + }) { + if (steps === null && scaleFactor === null) { + throw new Error("Invalid updateScale options: either `steps` or `scaleFactor` must be provided."); + } + if (!this.pdfDocument) { + return; + } + let newScale = this._currentScale; + if (scaleFactor > 0 && scaleFactor !== 1) { + newScale = Math.round(newScale * scaleFactor * 100) / 100; + } else if (steps) { + const delta = steps > 0 ? DEFAULT_SCALE_DELTA : 1 / DEFAULT_SCALE_DELTA; + const round = steps > 0 ? Math.ceil : Math.floor; + steps = Math.abs(steps); + do { + newScale = round((newScale * delta).toFixed(2) * 10) / 10; + } while (--steps > 0); + } + newScale = Math.max(MIN_SCALE, Math.min(MAX_SCALE, newScale)); + this.#setScale(newScale, { + noScroll: false, + drawingDelay, + origin + }); + } + increaseScale(options = {}) { + this.updateScale({ + ...options, + steps: options.steps ?? 1 + }); + } + decreaseScale(options = {}) { + this.updateScale({ + ...options, + steps: -(options.steps ?? 1) + }); + } + #updateContainerHeightCss(height = this.container.clientHeight) { + if (height !== this.#previousContainerHeight) { + this.#previousContainerHeight = height; + docStyle.setProperty("--viewer-container-height", `${height}px`); + } + } + #resizeObserverCallback(entries) { + for (const entry of entries) { + if (entry.target === this.container) { + this.#updateContainerHeightCss(Math.floor(entry.borderBoxSize[0].blockSize)); + this.#containerTopLeft = null; + break; + } + } + } + get containerTopLeft() { + return this.#containerTopLeft ||= [this.container.offsetTop, this.container.offsetLeft]; + } + #cleanupSwitchAnnotationEditorMode() { + this.#switchAnnotationEditorModeAC?.abort(); + this.#switchAnnotationEditorModeAC = null; + if (this.#switchAnnotationEditorModeTimeoutId !== null) { + clearTimeout(this.#switchAnnotationEditorModeTimeoutId); + this.#switchAnnotationEditorModeTimeoutId = null; + } + } + get annotationEditorMode() { + return this.#annotationEditorUIManager ? this.#annotationEditorMode : AnnotationEditorType.DISABLE; + } + set annotationEditorMode({ + mode, + editId = null, + isFromKeyboard = false + }) { + if (!this.#annotationEditorUIManager) { + throw new Error(`The AnnotationEditor is not enabled.`); + } + if (this.#annotationEditorMode === mode) { + return; + } + if (!isValidAnnotationEditorMode(mode)) { + throw new Error(`Invalid AnnotationEditor mode: ${mode}`); + } + if (!this.pdfDocument) { + return; + } + if (mode === AnnotationEditorType.STAMP) { + this.#mlManager?.loadModel("altText"); + } + const { + eventBus + } = this; + const updater = () => { + this.#cleanupSwitchAnnotationEditorMode(); + this.#annotationEditorMode = mode; + this.#annotationEditorUIManager.updateMode(mode, editId, isFromKeyboard); + eventBus.dispatch("annotationeditormodechanged", { + source: this, + mode + }); + }; + if (mode === AnnotationEditorType.NONE || this.#annotationEditorMode === AnnotationEditorType.NONE) { + const isEditing = mode !== AnnotationEditorType.NONE; + if (!isEditing) { + this.pdfDocument.annotationStorage.resetModifiedIds(); + } + for (const pageView of this._pages) { + pageView.toggleEditingMode(isEditing); + } + const idsToRefresh = this.#switchToEditAnnotationMode(); + if (isEditing && idsToRefresh) { + this.#cleanupSwitchAnnotationEditorMode(); + this.#switchAnnotationEditorModeAC = new AbortController(); + const signal = AbortSignal.any([this.#eventAbortController.signal, this.#switchAnnotationEditorModeAC.signal]); + eventBus._on("pagerendered", ({ + pageNumber + }) => { + idsToRefresh.delete(pageNumber); + if (idsToRefresh.size === 0) { + this.#switchAnnotationEditorModeTimeoutId = setTimeout(updater, 0); + } + }, { + signal + }); + return; + } + } + updater(); + } + refresh(noUpdate = false, updateArgs = Object.create(null)) { + if (!this.pdfDocument) { + return; + } + for (const pageView of this._pages) { + pageView.update(updateArgs); + } + if (this.#scaleTimeoutId !== null) { + clearTimeout(this.#scaleTimeoutId); + this.#scaleTimeoutId = null; + } + if (!noUpdate) { + this.update(); + } + } +} + +;// ./web/secondary_toolbar.js + + + +class SecondaryToolbar { + #opts; + constructor(options, eventBus) { + this.#opts = options; + const buttons = [{ + element: options.presentationModeButton, + eventName: "presentationmode", + close: true + }, { + element: options.printButton, + eventName: "print", + close: true + }, { + element: options.downloadButton, + eventName: "download", + close: true + }, { + element: options.viewBookmarkButton, + eventName: null, + close: true + }, { + element: options.firstPageButton, + eventName: "firstpage", + close: true + }, { + element: options.lastPageButton, + eventName: "lastpage", + close: true + }, { + element: options.pageRotateCwButton, + eventName: "rotatecw", + close: false + }, { + element: options.pageRotateCcwButton, + eventName: "rotateccw", + close: false + }, { + element: options.cursorSelectToolButton, + eventName: "switchcursortool", + eventDetails: { + tool: CursorTool.SELECT + }, + close: true + }, { + element: options.cursorHandToolButton, + eventName: "switchcursortool", + eventDetails: { + tool: CursorTool.HAND + }, + close: true + }, { + element: options.scrollPageButton, + eventName: "switchscrollmode", + eventDetails: { + mode: ScrollMode.PAGE + }, + close: true + }, { + element: options.scrollVerticalButton, + eventName: "switchscrollmode", + eventDetails: { + mode: ScrollMode.VERTICAL + }, + close: true + }, { + element: options.scrollHorizontalButton, + eventName: "switchscrollmode", + eventDetails: { + mode: ScrollMode.HORIZONTAL + }, + close: true + }, { + element: options.scrollWrappedButton, + eventName: "switchscrollmode", + eventDetails: { + mode: ScrollMode.WRAPPED + }, + close: true + }, { + element: options.spreadNoneButton, + eventName: "switchspreadmode", + eventDetails: { + mode: SpreadMode.NONE + }, + close: true + }, { + element: options.spreadOddButton, + eventName: "switchspreadmode", + eventDetails: { + mode: SpreadMode.ODD + }, + close: true + }, { + element: options.spreadEvenButton, + eventName: "switchspreadmode", + eventDetails: { + mode: SpreadMode.EVEN + }, + close: true + }, { + element: options.imageAltTextSettingsButton, + eventName: "imagealttextsettings", + close: true + }, { + element: options.documentPropertiesButton, + eventName: "documentproperties", + close: true + }]; + buttons.push({ + element: options.openFileButton, + eventName: "openfile", + close: true + }); + this.eventBus = eventBus; + this.opened = false; + this.#bindListeners(buttons); + this.reset(); + } + get isOpen() { + return this.opened; + } + setPageNumber(pageNumber) { + this.pageNumber = pageNumber; + this.#updateUIState(); + } + setPagesCount(pagesCount) { + this.pagesCount = pagesCount; + this.#updateUIState(); + } + reset() { + this.pageNumber = 0; + this.pagesCount = 0; + this.#updateUIState(); + this.eventBus.dispatch("switchcursortool", { + source: this, + reset: true + }); + this.#scrollModeChanged({ + mode: ScrollMode.VERTICAL + }); + this.#spreadModeChanged({ + mode: SpreadMode.NONE + }); + } + #updateUIState() { + const { + firstPageButton, + lastPageButton, + pageRotateCwButton, + pageRotateCcwButton + } = this.#opts; + firstPageButton.disabled = this.pageNumber <= 1; + lastPageButton.disabled = this.pageNumber >= this.pagesCount; + pageRotateCwButton.disabled = this.pagesCount === 0; + pageRotateCcwButton.disabled = this.pagesCount === 0; + } + #bindListeners(buttons) { + const { + eventBus + } = this; + const { + toggleButton + } = this.#opts; + toggleButton.addEventListener("click", this.toggle.bind(this)); + for (const { + element, + eventName, + close, + eventDetails + } of buttons) { + element.addEventListener("click", evt => { + if (eventName !== null) { + eventBus.dispatch(eventName, { + source: this, + ...eventDetails + }); + } + if (close) { + this.close(); + } + eventBus.dispatch("reporttelemetry", { + source: this, + details: { + type: "buttons", + data: { + id: element.id + } + } + }); + }); + } + eventBus._on("cursortoolchanged", this.#cursorToolChanged.bind(this)); + eventBus._on("scrollmodechanged", this.#scrollModeChanged.bind(this)); + eventBus._on("spreadmodechanged", this.#spreadModeChanged.bind(this)); + } + #cursorToolChanged({ + tool, + disabled + }) { + const { + cursorSelectToolButton, + cursorHandToolButton + } = this.#opts; + toggleCheckedBtn(cursorSelectToolButton, tool === CursorTool.SELECT); + toggleCheckedBtn(cursorHandToolButton, tool === CursorTool.HAND); + cursorSelectToolButton.disabled = disabled; + cursorHandToolButton.disabled = disabled; + } + #scrollModeChanged({ + mode + }) { + const { + scrollPageButton, + scrollVerticalButton, + scrollHorizontalButton, + scrollWrappedButton, + spreadNoneButton, + spreadOddButton, + spreadEvenButton + } = this.#opts; + toggleCheckedBtn(scrollPageButton, mode === ScrollMode.PAGE); + toggleCheckedBtn(scrollVerticalButton, mode === ScrollMode.VERTICAL); + toggleCheckedBtn(scrollHorizontalButton, mode === ScrollMode.HORIZONTAL); + toggleCheckedBtn(scrollWrappedButton, mode === ScrollMode.WRAPPED); + const forceScrollModePage = this.pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE; + scrollPageButton.disabled = forceScrollModePage; + scrollVerticalButton.disabled = forceScrollModePage; + scrollHorizontalButton.disabled = forceScrollModePage; + scrollWrappedButton.disabled = forceScrollModePage; + const isHorizontal = mode === ScrollMode.HORIZONTAL; + spreadNoneButton.disabled = isHorizontal; + spreadOddButton.disabled = isHorizontal; + spreadEvenButton.disabled = isHorizontal; + } + #spreadModeChanged({ + mode + }) { + const { + spreadNoneButton, + spreadOddButton, + spreadEvenButton + } = this.#opts; + toggleCheckedBtn(spreadNoneButton, mode === SpreadMode.NONE); + toggleCheckedBtn(spreadOddButton, mode === SpreadMode.ODD); + toggleCheckedBtn(spreadEvenButton, mode === SpreadMode.EVEN); + } + open() { + if (this.opened) { + return; + } + this.opened = true; + const { + toggleButton, + toolbar + } = this.#opts; + toggleExpandedBtn(toggleButton, true, toolbar); + } + close() { + if (!this.opened) { + return; + } + this.opened = false; + const { + toggleButton, + toolbar + } = this.#opts; + toggleExpandedBtn(toggleButton, false, toolbar); + } + toggle() { + if (this.opened) { + this.close(); + } else { + this.open(); + } + } +} + +;// ./web/toolbar.js + + +class Toolbar { + #opts; + constructor(options, eventBus, toolbarDensity = 0) { + this.#opts = options; + this.eventBus = eventBus; + const buttons = [{ + element: options.previous, + eventName: "previouspage" + }, { + element: options.next, + eventName: "nextpage" + }, { + element: options.zoomIn, + eventName: "zoomin" + }, { + element: options.zoomOut, + eventName: "zoomout" + }, { + element: options.print, + eventName: "print" + }, { + element: options.download, + eventName: "download" + }, { + element: options.editorFreeTextButton, + eventName: "switchannotationeditormode", + eventDetails: { + get mode() { + const { + classList + } = options.editorFreeTextButton; + return classList.contains("toggled") ? AnnotationEditorType.NONE : AnnotationEditorType.FREETEXT; + } + } + }, { + element: options.editorHighlightButton, + eventName: "switchannotationeditormode", + eventDetails: { + get mode() { + const { + classList + } = options.editorHighlightButton; + return classList.contains("toggled") ? AnnotationEditorType.NONE : AnnotationEditorType.HIGHLIGHT; + } + } + }, { + element: options.editorInkButton, + eventName: "switchannotationeditormode", + eventDetails: { + get mode() { + const { + classList + } = options.editorInkButton; + return classList.contains("toggled") ? AnnotationEditorType.NONE : AnnotationEditorType.INK; + } + } + }, { + element: options.editorStampButton, + eventName: "switchannotationeditormode", + eventDetails: { + get mode() { + const { + classList + } = options.editorStampButton; + return classList.contains("toggled") ? AnnotationEditorType.NONE : AnnotationEditorType.STAMP; + } + }, + telemetry: { + type: "editing", + data: { + action: "pdfjs.image.icon_click" + } + } + }]; + this.#bindListeners(buttons); + this.#updateToolbarDensity({ + value: toolbarDensity + }); + this.reset(); + } + #updateToolbarDensity({ + value + }) { + let name = "normal"; + switch (value) { + case 1: + name = "compact"; + break; + case 2: + name = "touch"; + break; + } + document.documentElement.setAttribute("data-toolbar-density", name); + } + #setAnnotationEditorUIManager(uiManager, parentContainer) { + const colorPicker = new ColorPicker({ + uiManager + }); + uiManager.setMainHighlightColorPicker(colorPicker); + parentContainer.append(colorPicker.renderMainDropdown()); + } + setPageNumber(pageNumber, pageLabel) { + this.pageNumber = pageNumber; + this.pageLabel = pageLabel; + this.#updateUIState(false); + } + setPagesCount(pagesCount, hasPageLabels) { + this.pagesCount = pagesCount; + this.hasPageLabels = hasPageLabels; + this.#updateUIState(true); + } + setPageScale(pageScaleValue, pageScale) { + this.pageScaleValue = (pageScaleValue || pageScale).toString(); + this.pageScale = pageScale; + this.#updateUIState(false); + } + reset() { + this.pageNumber = 0; + this.pageLabel = null; + this.hasPageLabels = false; + this.pagesCount = 0; + this.pageScaleValue = DEFAULT_SCALE_VALUE; + this.pageScale = DEFAULT_SCALE; + this.#updateUIState(true); + this.updateLoadingIndicatorState(); + this.#editorModeChanged({ + mode: AnnotationEditorType.DISABLE + }); + } + #bindListeners(buttons) { + const { + eventBus + } = this; + const { + editorHighlightColorPicker, + editorHighlightButton, + pageNumber, + scaleSelect + } = this.#opts; + const self = this; + for (const { + element, + eventName, + eventDetails, + telemetry + } of buttons) { + element.addEventListener("click", evt => { + if (eventName !== null) { + eventBus.dispatch(eventName, { + source: this, + ...eventDetails, + isFromKeyboard: evt.detail === 0 + }); + } + if (telemetry) { + eventBus.dispatch("reporttelemetry", { + source: this, + details: telemetry + }); + } + }); + } + pageNumber.addEventListener("click", function () { + this.select(); + }); + pageNumber.addEventListener("change", function () { + eventBus.dispatch("pagenumberchanged", { + source: self, + value: this.value + }); + }); + scaleSelect.addEventListener("change", function () { + if (this.value === "custom") { + return; + } + eventBus.dispatch("scalechanged", { + source: self, + value: this.value + }); + }); + scaleSelect.addEventListener("click", function ({ + target + }) { + if (this.value === self.pageScaleValue && target.tagName.toUpperCase() === "OPTION") { + this.blur(); + } + }); + scaleSelect.oncontextmenu = noContextMenu; + eventBus._on("annotationeditormodechanged", this.#editorModeChanged.bind(this)); + eventBus._on("showannotationeditorui", ({ + mode + }) => { + switch (mode) { + case AnnotationEditorType.HIGHLIGHT: + editorHighlightButton.click(); + break; + } + }); + eventBus._on("toolbardensity", this.#updateToolbarDensity.bind(this)); + if (editorHighlightColorPicker) { + eventBus._on("annotationeditoruimanager", ({ + uiManager + }) => { + this.#setAnnotationEditorUIManager(uiManager, editorHighlightColorPicker); + }, { + once: true + }); + } + } + #editorModeChanged({ + mode + }) { + const { + editorFreeTextButton, + editorFreeTextParamsToolbar, + editorHighlightButton, + editorHighlightParamsToolbar, + editorInkButton, + editorInkParamsToolbar, + editorStampButton, + editorStampParamsToolbar + } = this.#opts; + toggleExpandedBtn(editorFreeTextButton, mode === AnnotationEditorType.FREETEXT, editorFreeTextParamsToolbar); + toggleExpandedBtn(editorHighlightButton, mode === AnnotationEditorType.HIGHLIGHT, editorHighlightParamsToolbar); + toggleExpandedBtn(editorInkButton, mode === AnnotationEditorType.INK, editorInkParamsToolbar); + toggleExpandedBtn(editorStampButton, mode === AnnotationEditorType.STAMP, editorStampParamsToolbar); + const isDisable = mode === AnnotationEditorType.DISABLE; + editorFreeTextButton.disabled = isDisable; + editorHighlightButton.disabled = isDisable; + editorInkButton.disabled = isDisable; + editorStampButton.disabled = isDisable; + } + #updateUIState(resetNumPages = false) { + const { + pageNumber, + pagesCount, + pageScaleValue, + pageScale + } = this; + const opts = this.#opts; + if (resetNumPages) { + if (this.hasPageLabels) { + opts.pageNumber.type = "text"; + opts.numPages.setAttribute("data-l10n-id", "pdfjs-page-of-pages"); + } else { + opts.pageNumber.type = "number"; + opts.numPages.setAttribute("data-l10n-id", "pdfjs-of-pages"); + opts.numPages.setAttribute("data-l10n-args", JSON.stringify({ + pagesCount + })); + } + opts.pageNumber.max = pagesCount; + } + if (this.hasPageLabels) { + opts.pageNumber.value = this.pageLabel; + opts.numPages.setAttribute("data-l10n-args", JSON.stringify({ + pageNumber, + pagesCount + })); + } else { + opts.pageNumber.value = pageNumber; + } + opts.previous.disabled = pageNumber <= 1; + opts.next.disabled = pageNumber >= pagesCount; + opts.zoomOut.disabled = pageScale <= MIN_SCALE; + opts.zoomIn.disabled = pageScale >= MAX_SCALE; + let predefinedValueFound = false; + for (const option of opts.scaleSelect.options) { + if (option.value !== pageScaleValue) { + option.selected = false; + continue; + } + option.selected = true; + predefinedValueFound = true; + } + if (!predefinedValueFound) { + opts.customScaleOption.selected = true; + opts.customScaleOption.setAttribute("data-l10n-args", JSON.stringify({ + scale: Math.round(pageScale * 10000) / 100 + })); + } + } + updateLoadingIndicatorState(loading = false) { + const { + pageNumber + } = this.#opts; + pageNumber.classList.toggle("loading", loading); + } +} + +;// ./web/view_history.js + + +const DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20; +class ViewHistory { + constructor(fingerprint, cacheSize = DEFAULT_VIEW_HISTORY_CACHE_SIZE) { + this.fingerprint = fingerprint; + this.cacheSize = cacheSize; + this._initializedPromise = this._readFromStorage().then(databaseStr => { + const database = JSON.parse(databaseStr || "{}"); + let index = -1; + if (!Array.isArray(database.files)) { + database.files = []; + } else { + while (database.files.length >= this.cacheSize) { + database.files.shift(); + } + for (let i = 0, ii = database.files.length; i < ii; i++) { + const branch = database.files[i]; + if (branch.fingerprint === this.fingerprint) { + index = i; + break; + } + } + } + if (index === -1) { + index = database.files.push({ + fingerprint: this.fingerprint + }) - 1; + } + this.file = database.files[index]; + this.database = database; + }); + } + async _writeToStorage() { + const databaseStr = JSON.stringify(this.database); + localStorage.setItem("pdfjs.history", databaseStr); + } + async _readFromStorage() { + return localStorage.getItem("pdfjs.history"); + } + async set(name, val) { + await this._initializedPromise; + this.file[name] = val; + return this._writeToStorage(); + } + async setMultiple(properties) { + await this._initializedPromise; + for (const name in properties) { + this.file[name] = properties[name]; + } + return this._writeToStorage(); + } + async get(name, defaultValue) { + await this._initializedPromise; + const val = this.file[name]; + return val !== undefined ? val : defaultValue; + } + async getMultiple(properties) { + await this._initializedPromise; + const values = Object.create(null); + for (const name in properties) { + const val = this.file[name]; + values[name] = val !== undefined ? val : properties[name]; + } + return values; + } +} + +;// ./web/app.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +const FORCE_PAGES_LOADED_TIMEOUT = 10000; +const MIN_TOUCH_DISTANCE_TO_PINCH = 35 / (window.devicePixelRatio || 1); +const ViewOnLoad = { + UNKNOWN: -1, + PREVIOUS: 0, + INITIAL: 1 +}; +const PDFViewerApplication = { + initialBookmark: document.location.hash.substring(1), + _initializedCapability: { + ...Promise.withResolvers(), + settled: false + }, + appConfig: null, + pdfDocument: null, + pdfLoadingTask: null, + printService: null, + pdfViewer: null, + pdfThumbnailViewer: null, + pdfRenderingQueue: null, + pdfPresentationMode: null, + pdfDocumentProperties: null, + pdfLinkService: null, + pdfHistory: null, + pdfSidebar: null, + pdfOutlineViewer: null, + pdfAttachmentViewer: null, + pdfLayerViewer: null, + pdfCursorTools: null, + pdfScriptingManager: null, + store: null, + downloadManager: null, + overlayManager: null, + preferences: new Preferences(), + toolbar: null, + secondaryToolbar: null, + eventBus: null, + l10n: null, + annotationEditorParams: null, + imageAltTextSettings: null, + isInitialViewSet: false, + isViewerEmbedded: window.parent !== window, + url: "", + baseUrl: "", + mlManager: null, + _downloadUrl: "", + _eventBusAbortController: null, + _windowAbortController: null, + _globalAbortController: new AbortController(), + documentInfo: null, + metadata: null, + _contentDispositionFilename: null, + _contentLength: null, + _saveInProgress: false, + _wheelUnusedTicks: 0, + _wheelUnusedFactor: 1, + _touchUnusedTicks: 0, + _touchUnusedFactor: 1, + _PDFBug: null, + _hasAnnotationEditors: false, + _title: document.title, + _printAnnotationStoragePromise: null, + _touchInfo: null, + _isPinching: false, + _isCtrlKeyDown: false, + _caretBrowsing: null, + _isScrolling: false, + editorUndoBar: null, + async initialize(appConfig) { + this.appConfig = appConfig; + try { + await this.preferences.initializedPromise; + } catch (ex) { + console.error(`initialize: "${ex.message}".`); + } + if (AppOptions.get("pdfBugEnabled")) { + await this._parseHashParams(); + } + let mode; + switch (AppOptions.get("viewerCssTheme")) { + case 1: + mode = "is-light"; + break; + case 2: + mode = "is-dark"; + break; + } + if (mode) { + document.documentElement.classList.add(mode); + } + this.l10n = await this.externalServices.createL10n(); + document.getElementsByTagName("html")[0].dir = this.l10n.getDirection(); + this.l10n.translate(appConfig.appContainer || document.documentElement); + if (this.isViewerEmbedded && AppOptions.get("externalLinkTarget") === LinkTarget.NONE) { + AppOptions.set("externalLinkTarget", LinkTarget.TOP); + } + await this._initializeViewerComponents(); + this.bindEvents(); + this.bindWindowEvents(); + this._initializedCapability.settled = true; + this._initializedCapability.resolve(); + }, + async _parseHashParams() { + const hash = document.location.hash.substring(1); + if (!hash) { + return; + } + const { + mainContainer, + viewerContainer + } = this.appConfig, + params = parseQueryString(hash); + const loadPDFBug = async () => { + if (this._PDFBug) { + return; + } + const { + PDFBug + } = await import(/*webpackIgnore: true*/AppOptions.get("debuggerSrc")); + this._PDFBug = PDFBug; + }; + if (params.get("disableworker") === "true") { + try { + GlobalWorkerOptions.workerSrc ||= AppOptions.get("workerSrc"); + await import(/*webpackIgnore: true*/PDFWorker.workerSrc); + } catch (ex) { + console.error(`_parseHashParams: "${ex.message}".`); + } + } + if (params.has("textlayer")) { + switch (params.get("textlayer")) { + case "off": + AppOptions.set("textLayerMode", TextLayerMode.DISABLE); + break; + case "visible": + case "shadow": + case "hover": + viewerContainer.classList.add(`textLayer-${params.get("textlayer")}`); + try { + await loadPDFBug(); + this._PDFBug.loadCSS(); + } catch (ex) { + console.error(`_parseHashParams: "${ex.message}".`); + } + break; + } + } + if (params.has("pdfbug")) { + AppOptions.setAll({ + pdfBug: true, + fontExtraProperties: true + }); + const enabled = params.get("pdfbug").split(","); + try { + await loadPDFBug(); + this._PDFBug.init(mainContainer, enabled); + } catch (ex) { + console.error(`_parseHashParams: "${ex.message}".`); + } + } + if (params.has("locale")) { + AppOptions.set("localeProperties", { + lang: params.get("locale") + }); + } + const opts = { + disableAutoFetch: x => x === "true", + disableFontFace: x => x === "true", + disableHistory: x => x === "true", + disableRange: x => x === "true", + disableStream: x => x === "true", + verbosity: x => x | 0 + }; + for (const name in opts) { + const check = opts[name], + key = name.toLowerCase(); + if (params.has(key)) { + AppOptions.set(name, check(params.get(key))); + } + } + }, + async _initializeViewerComponents() { + const { + appConfig, + externalServices, + l10n + } = this; + const eventBus = new EventBus(); + this.eventBus = AppOptions.eventBus = eventBus; + this.mlManager?.setEventBus(eventBus, this._globalAbortController.signal); + this.overlayManager = new OverlayManager(); + const pdfRenderingQueue = new PDFRenderingQueue(); + pdfRenderingQueue.onIdle = this._cleanup.bind(this); + this.pdfRenderingQueue = pdfRenderingQueue; + const pdfLinkService = new PDFLinkService({ + eventBus, + externalLinkTarget: AppOptions.get("externalLinkTarget"), + externalLinkRel: AppOptions.get("externalLinkRel"), + ignoreDestinationZoom: AppOptions.get("ignoreDestinationZoom") + }); + this.pdfLinkService = pdfLinkService; + const downloadManager = this.downloadManager = new DownloadManager(); + const findController = new PDFFindController({ + linkService: pdfLinkService, + eventBus, + updateMatchesCountOnProgress: true + }); + this.findController = findController; + const pdfScriptingManager = new PDFScriptingManager({ + eventBus, + externalServices, + docProperties: this._scriptingDocProperties.bind(this) + }); + this.pdfScriptingManager = pdfScriptingManager; + const container = appConfig.mainContainer, + viewer = appConfig.viewerContainer; + const annotationEditorMode = AppOptions.get("annotationEditorMode"); + const pageColors = AppOptions.get("forcePageColors") || window.matchMedia("(forced-colors: active)").matches ? { + background: AppOptions.get("pageColorsBackground"), + foreground: AppOptions.get("pageColorsForeground") + } : null; + let altTextManager; + if (AppOptions.get("enableUpdatedAddImage")) { + altTextManager = appConfig.newAltTextDialog ? new NewAltTextManager(appConfig.newAltTextDialog, this.overlayManager, eventBus) : null; + } else { + altTextManager = appConfig.altTextDialog ? new AltTextManager(appConfig.altTextDialog, container, this.overlayManager, eventBus) : null; + } + if (appConfig.editorUndoBar) { + this.editorUndoBar = new EditorUndoBar(appConfig.editorUndoBar, eventBus); + } + const enableHWA = AppOptions.get("enableHWA"); + const pdfViewer = new PDFViewer({ + container, + viewer, + eventBus, + renderingQueue: pdfRenderingQueue, + linkService: pdfLinkService, + downloadManager, + altTextManager, + editorUndoBar: this.editorUndoBar, + findController, + scriptingManager: AppOptions.get("enableScripting") && pdfScriptingManager, + l10n, + textLayerMode: AppOptions.get("textLayerMode"), + annotationMode: AppOptions.get("annotationMode"), + annotationEditorMode, + annotationEditorHighlightColors: AppOptions.get("highlightEditorColors"), + enableHighlightFloatingButton: AppOptions.get("enableHighlightFloatingButton"), + enableUpdatedAddImage: AppOptions.get("enableUpdatedAddImage"), + enableNewAltTextWhenAddingImage: AppOptions.get("enableNewAltTextWhenAddingImage"), + imageResourcesPath: AppOptions.get("imageResourcesPath"), + enablePrintAutoRotate: AppOptions.get("enablePrintAutoRotate"), + maxCanvasPixels: AppOptions.get("maxCanvasPixels"), + enablePermissions: AppOptions.get("enablePermissions"), + pageColors, + mlManager: this.mlManager, + abortSignal: this._globalAbortController.signal, + enableHWA + }); + this.pdfViewer = pdfViewer; + pdfRenderingQueue.setViewer(pdfViewer); + pdfLinkService.setViewer(pdfViewer); + pdfScriptingManager.setViewer(pdfViewer); + if (appConfig.sidebar?.thumbnailView) { + this.pdfThumbnailViewer = new PDFThumbnailViewer({ + container: appConfig.sidebar.thumbnailView, + eventBus, + renderingQueue: pdfRenderingQueue, + linkService: pdfLinkService, + pageColors, + abortSignal: this._globalAbortController.signal, + enableHWA + }); + pdfRenderingQueue.setThumbnailViewer(this.pdfThumbnailViewer); + } + if (!this.isViewerEmbedded && !AppOptions.get("disableHistory")) { + this.pdfHistory = new PDFHistory({ + linkService: pdfLinkService, + eventBus + }); + pdfLinkService.setHistory(this.pdfHistory); + } + if (!this.supportsIntegratedFind && appConfig.findBar) { + this.findBar = new PDFFindBar(appConfig.findBar, appConfig.principalContainer, eventBus); + } + if (appConfig.annotationEditorParams) { + if (typeof AbortSignal.any === "function" && annotationEditorMode !== AnnotationEditorType.DISABLE) { + this.annotationEditorParams = new AnnotationEditorParams(appConfig.annotationEditorParams, eventBus); + } else { + for (const id of ["editorModeButtons", "editorModeSeparator"]) { + document.getElementById(id)?.classList.add("hidden"); + } + } + } + if (this.mlManager && appConfig.secondaryToolbar?.imageAltTextSettingsButton) { + this.imageAltTextSettings = new ImageAltTextSettings(appConfig.altTextSettingsDialog, this.overlayManager, eventBus, this.mlManager); + } + if (appConfig.documentProperties) { + this.pdfDocumentProperties = new PDFDocumentProperties(appConfig.documentProperties, this.overlayManager, eventBus, l10n, () => this._docFilename); + } + if (appConfig.secondaryToolbar?.cursorHandToolButton) { + this.pdfCursorTools = new PDFCursorTools({ + container, + eventBus, + cursorToolOnLoad: AppOptions.get("cursorToolOnLoad") + }); + } + if (appConfig.toolbar) { + this.toolbar = new Toolbar(appConfig.toolbar, eventBus, AppOptions.get("toolbarDensity")); + } + if (appConfig.secondaryToolbar) { + if (AppOptions.get("enableAltText")) { + appConfig.secondaryToolbar.imageAltTextSettingsButton?.classList.remove("hidden"); + appConfig.secondaryToolbar.imageAltTextSettingsSeparator?.classList.remove("hidden"); + } + this.secondaryToolbar = new SecondaryToolbar(appConfig.secondaryToolbar, eventBus); + } + if (this.supportsFullscreen && appConfig.secondaryToolbar?.presentationModeButton) { + this.pdfPresentationMode = new PDFPresentationMode({ + container, + pdfViewer, + eventBus + }); + } + if (appConfig.passwordOverlay) { + this.passwordPrompt = new PasswordPrompt(appConfig.passwordOverlay, this.overlayManager, this.isViewerEmbedded); + } + if (appConfig.sidebar?.outlineView) { + this.pdfOutlineViewer = new PDFOutlineViewer({ + container: appConfig.sidebar.outlineView, + eventBus, + l10n, + linkService: pdfLinkService, + downloadManager + }); + } + if (appConfig.sidebar?.attachmentsView) { + this.pdfAttachmentViewer = new PDFAttachmentViewer({ + container: appConfig.sidebar.attachmentsView, + eventBus, + l10n, + downloadManager + }); + } + if (appConfig.sidebar?.layersView) { + this.pdfLayerViewer = new PDFLayerViewer({ + container: appConfig.sidebar.layersView, + eventBus, + l10n + }); + } + if (appConfig.sidebar) { + this.pdfSidebar = new PDFSidebar({ + elements: appConfig.sidebar, + eventBus, + l10n + }); + this.pdfSidebar.onToggled = this.forceRendering.bind(this); + this.pdfSidebar.onUpdateThumbnails = () => { + for (const pageView of pdfViewer.getCachedPageViews()) { + if (pageView.renderingState === RenderingStates.FINISHED) { + this.pdfThumbnailViewer.getThumbnail(pageView.id - 1)?.setImage(pageView); + } + } + this.pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber); + }; + } + }, + async run(config) { + await this.initialize(config); + const { + appConfig, + eventBus + } = this; + let file; + const queryString = document.location.search.substring(1); + const params = parseQueryString(queryString); + file = params.get("file") ?? AppOptions.get("defaultUrl"); + validateFileURL(file); + const fileInput = this._openFileInput = document.createElement("input"); + fileInput.id = "fileInput"; + fileInput.hidden = true; + fileInput.type = "file"; + fileInput.value = null; + document.body.append(fileInput); + fileInput.addEventListener("change", function (evt) { + const { + files + } = evt.target; + if (!files || files.length === 0) { + return; + } + eventBus.dispatch("fileinputchange", { + source: this, + fileInput: evt.target + }); + }); + appConfig.mainContainer.addEventListener("dragover", function (evt) { + for (const item of evt.dataTransfer.items) { + if (item.type === "application/pdf") { + evt.dataTransfer.dropEffect = evt.dataTransfer.effectAllowed === "copy" ? "copy" : "move"; + stopEvent(evt); + return; + } + } + }); + appConfig.mainContainer.addEventListener("drop", function (evt) { + if (evt.dataTransfer.files?.[0].type !== "application/pdf") { + return; + } + stopEvent(evt); + eventBus.dispatch("fileinputchange", { + source: this, + fileInput: evt.dataTransfer + }); + }); + if (!AppOptions.get("supportsDocumentFonts")) { + AppOptions.set("disableFontFace", true); + this.l10n.get("pdfjs-web-fonts-disabled").then(msg => { + console.warn(msg); + }); + } + if (!this.supportsPrinting) { + appConfig.toolbar?.print?.classList.add("hidden"); + appConfig.secondaryToolbar?.printButton.classList.add("hidden"); + } + if (!this.supportsFullscreen) { + appConfig.secondaryToolbar?.presentationModeButton.classList.add("hidden"); + } + if (this.supportsIntegratedFind) { + appConfig.findBar?.toggleButton?.classList.add("hidden"); + } + if (file) { + this.open({ + url: file + }); + } else { + this._hideViewBookmark(); + } + }, + get externalServices() { + return shadow(this, "externalServices", new ExternalServices()); + }, + get initialized() { + return this._initializedCapability.settled; + }, + get initializedPromise() { + return this._initializedCapability.promise; + }, + updateZoom(steps, scaleFactor, origin) { + if (this.pdfViewer.isInPresentationMode) { + return; + } + this.pdfViewer.updateScale({ + drawingDelay: AppOptions.get("defaultZoomDelay"), + steps, + scaleFactor, + origin + }); + }, + zoomIn() { + this.updateZoom(1); + }, + zoomOut() { + this.updateZoom(-1); + }, + zoomReset() { + if (this.pdfViewer.isInPresentationMode) { + return; + } + this.pdfViewer.currentScaleValue = DEFAULT_SCALE_VALUE; + }, + get pagesCount() { + return this.pdfDocument ? this.pdfDocument.numPages : 0; + }, + get page() { + return this.pdfViewer.currentPageNumber; + }, + set page(val) { + this.pdfViewer.currentPageNumber = val; + }, + get supportsPrinting() { + return PDFPrintServiceFactory.supportsPrinting; + }, + get supportsFullscreen() { + return shadow(this, "supportsFullscreen", document.fullscreenEnabled); + }, + get supportsPinchToZoom() { + return shadow(this, "supportsPinchToZoom", AppOptions.get("supportsPinchToZoom")); + }, + get supportsIntegratedFind() { + return shadow(this, "supportsIntegratedFind", AppOptions.get("supportsIntegratedFind")); + }, + get loadingBar() { + const barElement = document.getElementById("loadingBar"); + const bar = barElement ? new ProgressBar(barElement) : null; + return shadow(this, "loadingBar", bar); + }, + get supportsMouseWheelZoomCtrlKey() { + return shadow(this, "supportsMouseWheelZoomCtrlKey", AppOptions.get("supportsMouseWheelZoomCtrlKey")); + }, + get supportsMouseWheelZoomMetaKey() { + return shadow(this, "supportsMouseWheelZoomMetaKey", AppOptions.get("supportsMouseWheelZoomMetaKey")); + }, + get supportsCaretBrowsingMode() { + return AppOptions.get("supportsCaretBrowsingMode"); + }, + moveCaret(isUp, select) { + this._caretBrowsing ||= new CaretBrowsingMode(this._globalAbortController.signal, this.appConfig.mainContainer, this.appConfig.viewerContainer, this.appConfig.toolbar?.container); + this._caretBrowsing.moveCaret(isUp, select); + }, + setTitleUsingUrl(url = "", downloadUrl = null) { + this.url = url; + this.baseUrl = url.split("#", 1)[0]; + if (downloadUrl) { + this._downloadUrl = downloadUrl === url ? this.baseUrl : downloadUrl.split("#", 1)[0]; + } + if (isDataScheme(url)) { + this._hideViewBookmark(); + } + let title = pdfjs_getPdfFilenameFromUrl(url, ""); + if (!title) { + try { + title = decodeURIComponent(getFilenameFromUrl(url)); + } catch {} + } + this.setTitle(title || url); + }, + setTitle(title = this._title) { + this._title = title; + if (this.isViewerEmbedded) { + return; + } + const editorIndicator = this._hasAnnotationEditors && !this.pdfRenderingQueue.printing; + document.title = `${editorIndicator ? "* " : ""}${title}`; + }, + get _docFilename() { + return this._contentDispositionFilename || pdfjs_getPdfFilenameFromUrl(this.url); + }, + _hideViewBookmark() { + const { + secondaryToolbar + } = this.appConfig; + secondaryToolbar?.viewBookmarkButton.classList.add("hidden"); + if (secondaryToolbar?.presentationModeButton.classList.contains("hidden")) { + document.getElementById("viewBookmarkSeparator")?.classList.add("hidden"); + } + }, + async close() { + this._unblockDocumentLoadEvent(); + this._hideViewBookmark(); + if (!this.pdfLoadingTask) { + return; + } + if (this.pdfDocument?.annotationStorage.size > 0 && this._annotationStorageModified) { + try { + await this.save(); + } catch {} + } + const promises = []; + promises.push(this.pdfLoadingTask.destroy()); + this.pdfLoadingTask = null; + if (this.pdfDocument) { + this.pdfDocument = null; + this.pdfThumbnailViewer?.setDocument(null); + this.pdfViewer.setDocument(null); + this.pdfLinkService.setDocument(null); + this.pdfDocumentProperties?.setDocument(null); + } + this.pdfLinkService.externalLinkEnabled = true; + this.store = null; + this.isInitialViewSet = false; + this.url = ""; + this.baseUrl = ""; + this._downloadUrl = ""; + this.documentInfo = null; + this.metadata = null; + this._contentDispositionFilename = null; + this._contentLength = null; + this._saveInProgress = false; + this._hasAnnotationEditors = false; + promises.push(this.pdfScriptingManager.destroyPromise, this.passwordPrompt.close()); + this.setTitle(); + this.pdfSidebar?.reset(); + this.pdfOutlineViewer?.reset(); + this.pdfAttachmentViewer?.reset(); + this.pdfLayerViewer?.reset(); + this.pdfHistory?.reset(); + this.findBar?.reset(); + this.toolbar?.reset(); + this.secondaryToolbar?.reset(); + this._PDFBug?.cleanup(); + await Promise.all(promises); + }, + async open(args) { + if (this.pdfLoadingTask) { + await this.close(); + } + const workerParams = AppOptions.getAll(OptionKind.WORKER); + Object.assign(GlobalWorkerOptions, workerParams); + if (args.url) { + this.setTitleUsingUrl(args.originalUrl || args.url, args.url); + } + const apiParams = AppOptions.getAll(OptionKind.API); + const loadingTask = getDocument({ + ...apiParams, + ...args + }); + this.pdfLoadingTask = loadingTask; + loadingTask.onPassword = (updateCallback, reason) => { + if (this.isViewerEmbedded) { + this._unblockDocumentLoadEvent(); + } + this.pdfLinkService.externalLinkEnabled = false; + this.passwordPrompt.setUpdateCallback(updateCallback, reason); + this.passwordPrompt.open(); + }; + loadingTask.onProgress = ({ + loaded, + total + }) => { + this.progress(loaded / total); + }; + return loadingTask.promise.then(pdfDocument => { + this.load(pdfDocument); + }, reason => { + if (loadingTask !== this.pdfLoadingTask) { + return undefined; + } + let key = "pdfjs-loading-error"; + if (reason instanceof InvalidPDFException) { + key = "pdfjs-invalid-file-error"; + } else if (reason instanceof MissingPDFException) { + key = "pdfjs-missing-file-error"; + } else if (reason instanceof UnexpectedResponseException) { + key = "pdfjs-unexpected-response-error"; + } + return this._documentError(key, { + message: reason.message + }).then(() => { + throw reason; + }); + }); + }, + async download() { + let data; + try { + data = await this.pdfDocument.getData(); + } catch {} + this.downloadManager.download(data, this._downloadUrl, this._docFilename); + }, + async save() { + if (this._saveInProgress) { + return; + } + this._saveInProgress = true; + await this.pdfScriptingManager.dispatchWillSave(); + try { + const data = await this.pdfDocument.saveDocument(); + this.downloadManager.download(data, this._downloadUrl, this._docFilename); + } catch (reason) { + console.error(`Error when saving the document: ${reason.message}`); + await this.download(); + } finally { + await this.pdfScriptingManager.dispatchDidSave(); + this._saveInProgress = false; + } + if (this._hasAnnotationEditors) { + this.externalServices.reportTelemetry({ + type: "editing", + data: { + type: "save", + stats: this.pdfDocument?.annotationStorage.editorStats + } + }); + } + }, + async downloadOrSave() { + const { + classList + } = this.appConfig.appContainer; + classList.add("wait"); + await (this.pdfDocument?.annotationStorage.size > 0 ? this.save() : this.download()); + classList.remove("wait"); + }, + async _documentError(key, moreInfo = null) { + this._unblockDocumentLoadEvent(); + const message = await this._otherError(key || "pdfjs-loading-error", moreInfo); + this.eventBus.dispatch("documenterror", { + source: this, + message, + reason: moreInfo?.message ?? null + }); + }, + async _otherError(key, moreInfo = null) { + const message = await this.l10n.get(key); + const moreInfoText = [`PDF.js v${version || "?"} (build: ${build || "?"})`]; + if (moreInfo) { + moreInfoText.push(`Message: ${moreInfo.message}`); + if (moreInfo.stack) { + moreInfoText.push(`Stack: ${moreInfo.stack}`); + } else { + if (moreInfo.filename) { + moreInfoText.push(`File: ${moreInfo.filename}`); + } + if (moreInfo.lineNumber) { + moreInfoText.push(`Line: ${moreInfo.lineNumber}`); + } + } + } + console.error(`${message}\n\n${moreInfoText.join("\n")}`); + return message; + }, + progress(level) { + const percent = Math.round(level * 100); + if (!this.loadingBar || percent <= this.loadingBar.percent) { + return; + } + this.loadingBar.percent = percent; + if (this.pdfDocument?.loadingParams.disableAutoFetch ?? AppOptions.get("disableAutoFetch")) { + this.loadingBar.setDisableAutoFetch(); + } + }, + load(pdfDocument) { + this.pdfDocument = pdfDocument; + pdfDocument.getDownloadInfo().then(({ + length + }) => { + this._contentLength = length; + this.loadingBar?.hide(); + firstPagePromise.then(() => { + this.eventBus.dispatch("documentloaded", { + source: this + }); + }); + }); + const pageLayoutPromise = pdfDocument.getPageLayout().catch(() => {}); + const pageModePromise = pdfDocument.getPageMode().catch(() => {}); + const openActionPromise = pdfDocument.getOpenAction().catch(() => {}); + this.toolbar?.setPagesCount(pdfDocument.numPages, false); + this.secondaryToolbar?.setPagesCount(pdfDocument.numPages); + this.pdfLinkService.setDocument(pdfDocument); + this.pdfDocumentProperties?.setDocument(pdfDocument); + const pdfViewer = this.pdfViewer; + pdfViewer.setDocument(pdfDocument); + const { + firstPagePromise, + onePageRendered, + pagesPromise + } = pdfViewer; + this.pdfThumbnailViewer?.setDocument(pdfDocument); + const storedPromise = (this.store = new ViewHistory(pdfDocument.fingerprints[0])).getMultiple({ + page: null, + zoom: DEFAULT_SCALE_VALUE, + scrollLeft: "0", + scrollTop: "0", + rotation: null, + sidebarView: SidebarView.UNKNOWN, + scrollMode: ScrollMode.UNKNOWN, + spreadMode: SpreadMode.UNKNOWN + }).catch(() => {}); + firstPagePromise.then(pdfPage => { + this.loadingBar?.setWidth(this.appConfig.viewerContainer); + this._initializeAnnotationStorageCallbacks(pdfDocument); + Promise.all([animationStarted, storedPromise, pageLayoutPromise, pageModePromise, openActionPromise]).then(async ([timeStamp, stored, pageLayout, pageMode, openAction]) => { + const viewOnLoad = AppOptions.get("viewOnLoad"); + this._initializePdfHistory({ + fingerprint: pdfDocument.fingerprints[0], + viewOnLoad, + initialDest: openAction?.dest + }); + const initialBookmark = this.initialBookmark; + const zoom = AppOptions.get("defaultZoomValue"); + let hash = zoom ? `zoom=${zoom}` : null; + let rotation = null; + let sidebarView = AppOptions.get("sidebarViewOnLoad"); + let scrollMode = AppOptions.get("scrollModeOnLoad"); + let spreadMode = AppOptions.get("spreadModeOnLoad"); + if (stored?.page && viewOnLoad !== ViewOnLoad.INITIAL) { + hash = `page=${stored.page}&zoom=${zoom || stored.zoom},` + `${stored.scrollLeft},${stored.scrollTop}`; + rotation = parseInt(stored.rotation, 10); + if (sidebarView === SidebarView.UNKNOWN) { + sidebarView = stored.sidebarView | 0; + } + if (scrollMode === ScrollMode.UNKNOWN) { + scrollMode = stored.scrollMode | 0; + } + if (spreadMode === SpreadMode.UNKNOWN) { + spreadMode = stored.spreadMode | 0; + } + } + if (pageMode && sidebarView === SidebarView.UNKNOWN) { + sidebarView = apiPageModeToSidebarView(pageMode); + } + if (pageLayout && scrollMode === ScrollMode.UNKNOWN && spreadMode === SpreadMode.UNKNOWN) { + const modes = apiPageLayoutToViewerModes(pageLayout); + spreadMode = modes.spreadMode; + } + this.setInitialView(hash, { + rotation, + sidebarView, + scrollMode, + spreadMode + }); + this.eventBus.dispatch("documentinit", { + source: this + }); + if (!this.isViewerEmbedded) { + pdfViewer.focus(); + } + await Promise.race([pagesPromise, new Promise(resolve => { + setTimeout(resolve, FORCE_PAGES_LOADED_TIMEOUT); + })]); + if (!initialBookmark && !hash) { + return; + } + if (pdfViewer.hasEqualPageSizes) { + return; + } + this.initialBookmark = initialBookmark; + pdfViewer.currentScaleValue = pdfViewer.currentScaleValue; + this.setInitialView(hash); + }).catch(() => { + this.setInitialView(); + }).then(function () { + pdfViewer.update(); + }); + }); + pagesPromise.then(() => { + this._unblockDocumentLoadEvent(); + this._initializeAutoPrint(pdfDocument, openActionPromise); + }, reason => { + this._documentError("pdfjs-loading-error", { + message: reason.message + }); + }); + onePageRendered.then(data => { + this.externalServices.reportTelemetry({ + type: "pageInfo", + timestamp: data.timestamp + }); + if (this.pdfOutlineViewer) { + pdfDocument.getOutline().then(outline => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this.pdfOutlineViewer.render({ + outline, + pdfDocument + }); + }); + } + if (this.pdfAttachmentViewer) { + pdfDocument.getAttachments().then(attachments => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this.pdfAttachmentViewer.render({ + attachments + }); + }); + } + if (this.pdfLayerViewer) { + pdfViewer.optionalContentConfigPromise.then(optionalContentConfig => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this.pdfLayerViewer.render({ + optionalContentConfig, + pdfDocument + }); + }); + } + }); + this._initializePageLabels(pdfDocument); + this._initializeMetadata(pdfDocument); + }, + async _scriptingDocProperties(pdfDocument) { + if (!this.documentInfo) { + await new Promise(resolve => { + this.eventBus._on("metadataloaded", resolve, { + once: true + }); + }); + if (pdfDocument !== this.pdfDocument) { + return null; + } + } + if (!this._contentLength) { + await new Promise(resolve => { + this.eventBus._on("documentloaded", resolve, { + once: true + }); + }); + if (pdfDocument !== this.pdfDocument) { + return null; + } + } + return { + ...this.documentInfo, + baseURL: this.baseUrl, + filesize: this._contentLength, + filename: this._docFilename, + metadata: this.metadata?.getRaw(), + authors: this.metadata?.get("dc:creator"), + numPages: this.pagesCount, + URL: this.url + }; + }, + async _initializeAutoPrint(pdfDocument, openActionPromise) { + const [openAction, jsActions] = await Promise.all([openActionPromise, this.pdfViewer.enableScripting ? null : pdfDocument.getJSActions()]); + if (pdfDocument !== this.pdfDocument) { + return; + } + let triggerAutoPrint = openAction?.action === "Print"; + if (jsActions) { + console.warn("Warning: JavaScript support is not enabled"); + for (const name in jsActions) { + if (triggerAutoPrint) { + break; + } + switch (name) { + case "WillClose": + case "WillSave": + case "DidSave": + case "WillPrint": + case "DidPrint": + continue; + } + triggerAutoPrint = jsActions[name].some(js => AutoPrintRegExp.test(js)); + } + } + if (triggerAutoPrint) { + this.triggerPrinting(); + } + }, + async _initializeMetadata(pdfDocument) { + const { + info, + metadata, + contentDispositionFilename, + contentLength + } = await pdfDocument.getMetadata(); + if (pdfDocument !== this.pdfDocument) { + return; + } + this.documentInfo = info; + this.metadata = metadata; + this._contentDispositionFilename ??= contentDispositionFilename; + this._contentLength ??= contentLength; + console.log(`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` + `${(info.Producer || "-").trim()} / ${(info.Creator || "-").trim()}] ` + `(PDF.js: ${version || "?"} [${build || "?"}])`); + let pdfTitle = info.Title; + const metadataTitle = metadata?.get("dc:title"); + if (metadataTitle) { + if (metadataTitle !== "Untitled" && !/[\uFFF0-\uFFFF]/g.test(metadataTitle)) { + pdfTitle = metadataTitle; + } + } + if (pdfTitle) { + this.setTitle(`${pdfTitle} - ${this._contentDispositionFilename || this._title}`); + } else if (this._contentDispositionFilename) { + this.setTitle(this._contentDispositionFilename); + } + if (info.IsXFAPresent && !info.IsAcroFormPresent && !pdfDocument.isPureXfa) { + if (pdfDocument.loadingParams.enableXfa) { + console.warn("Warning: XFA Foreground documents are not supported"); + } else { + console.warn("Warning: XFA support is not enabled"); + } + } else if ((info.IsAcroFormPresent || info.IsXFAPresent) && !this.pdfViewer.renderForms) { + console.warn("Warning: Interactive form support is not enabled"); + } + if (info.IsSignaturesPresent) { + console.warn("Warning: Digital signatures validation is not supported"); + } + this.eventBus.dispatch("metadataloaded", { + source: this + }); + }, + async _initializePageLabels(pdfDocument) { + const labels = await pdfDocument.getPageLabels(); + if (pdfDocument !== this.pdfDocument) { + return; + } + if (!labels || AppOptions.get("disablePageLabels")) { + return; + } + const numLabels = labels.length; + let standardLabels = 0, + emptyLabels = 0; + for (let i = 0; i < numLabels; i++) { + const label = labels[i]; + if (label === (i + 1).toString()) { + standardLabels++; + } else if (label === "") { + emptyLabels++; + } else { + break; + } + } + if (standardLabels >= numLabels || emptyLabels >= numLabels) { + return; + } + const { + pdfViewer, + pdfThumbnailViewer, + toolbar + } = this; + pdfViewer.setPageLabels(labels); + pdfThumbnailViewer?.setPageLabels(labels); + toolbar?.setPagesCount(numLabels, true); + toolbar?.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + }, + _initializePdfHistory({ + fingerprint, + viewOnLoad, + initialDest = null + }) { + if (!this.pdfHistory) { + return; + } + this.pdfHistory.initialize({ + fingerprint, + resetHistory: viewOnLoad === ViewOnLoad.INITIAL, + updateUrl: AppOptions.get("historyUpdateUrl") + }); + if (this.pdfHistory.initialBookmark) { + this.initialBookmark = this.pdfHistory.initialBookmark; + this.initialRotation = this.pdfHistory.initialRotation; + } + if (initialDest && !this.initialBookmark && viewOnLoad === ViewOnLoad.UNKNOWN) { + this.initialBookmark = JSON.stringify(initialDest); + this.pdfHistory.push({ + explicitDest: initialDest, + pageNumber: null + }); + } + }, + _initializeAnnotationStorageCallbacks(pdfDocument) { + if (pdfDocument !== this.pdfDocument) { + return; + } + const { + annotationStorage + } = pdfDocument; + annotationStorage.onSetModified = () => { + window.addEventListener("beforeunload", beforeUnload); + this._annotationStorageModified = true; + }; + annotationStorage.onResetModified = () => { + window.removeEventListener("beforeunload", beforeUnload); + delete this._annotationStorageModified; + }; + annotationStorage.onAnnotationEditor = typeStr => { + this._hasAnnotationEditors = !!typeStr; + this.setTitle(); + }; + }, + setInitialView(storedHash, { + rotation, + sidebarView, + scrollMode, + spreadMode + } = {}) { + const setRotation = angle => { + if (isValidRotation(angle)) { + this.pdfViewer.pagesRotation = angle; + } + }; + const setViewerModes = (scroll, spread) => { + if (isValidScrollMode(scroll)) { + this.pdfViewer.scrollMode = scroll; + } + if (isValidSpreadMode(spread)) { + this.pdfViewer.spreadMode = spread; + } + }; + this.isInitialViewSet = true; + this.pdfSidebar?.setInitialView(sidebarView); + setViewerModes(scrollMode, spreadMode); + if (this.initialBookmark) { + setRotation(this.initialRotation); + delete this.initialRotation; + this.pdfLinkService.setHash(this.initialBookmark); + this.initialBookmark = null; + } else if (storedHash) { + setRotation(rotation); + this.pdfLinkService.setHash(storedHash); + } + this.toolbar?.setPageNumber(this.pdfViewer.currentPageNumber, this.pdfViewer.currentPageLabel); + this.secondaryToolbar?.setPageNumber(this.pdfViewer.currentPageNumber); + if (!this.pdfViewer.currentScaleValue) { + this.pdfViewer.currentScaleValue = DEFAULT_SCALE_VALUE; + } + }, + _cleanup() { + if (!this.pdfDocument) { + return; + } + this.pdfViewer.cleanup(); + this.pdfThumbnailViewer?.cleanup(); + this.pdfDocument.cleanup(AppOptions.get("fontExtraProperties")); + }, + forceRendering() { + this.pdfRenderingQueue.printing = !!this.printService; + this.pdfRenderingQueue.isThumbnailViewEnabled = this.pdfSidebar?.visibleView === SidebarView.THUMBS; + this.pdfRenderingQueue.renderHighestPriority(); + }, + beforePrint() { + this._printAnnotationStoragePromise = this.pdfScriptingManager.dispatchWillPrint().catch(() => {}).then(() => this.pdfDocument?.annotationStorage.print); + if (this.printService) { + return; + } + if (!this.supportsPrinting) { + this._otherError("pdfjs-printing-not-supported"); + return; + } + if (!this.pdfViewer.pageViewsReady) { + this.l10n.get("pdfjs-printing-not-ready").then(msg => { + window.alert(msg); + }); + return; + } + this.printService = PDFPrintServiceFactory.createPrintService({ + pdfDocument: this.pdfDocument, + pagesOverview: this.pdfViewer.getPagesOverview(), + printContainer: this.appConfig.printContainer, + printResolution: AppOptions.get("printResolution"), + printAnnotationStoragePromise: this._printAnnotationStoragePromise + }); + this.forceRendering(); + this.setTitle(); + this.printService.layout(); + if (this._hasAnnotationEditors) { + this.externalServices.reportTelemetry({ + type: "editing", + data: { + type: "print", + stats: this.pdfDocument?.annotationStorage.editorStats + } + }); + } + }, + afterPrint() { + if (this._printAnnotationStoragePromise) { + this._printAnnotationStoragePromise.then(() => { + this.pdfScriptingManager.dispatchDidPrint(); + }); + this._printAnnotationStoragePromise = null; + } + if (this.printService) { + this.printService.destroy(); + this.printService = null; + this.pdfDocument?.annotationStorage.resetModified(); + } + this.forceRendering(); + this.setTitle(); + }, + rotatePages(delta) { + this.pdfViewer.pagesRotation += delta; + }, + requestPresentationMode() { + this.pdfPresentationMode?.request(); + }, + triggerPrinting() { + if (this.supportsPrinting) { + window.print(); + } + }, + bindEvents() { + if (this._eventBusAbortController) { + return; + } + const ac = this._eventBusAbortController = new AbortController(); + const opts = { + signal: ac.signal + }; + const { + eventBus, + externalServices, + pdfDocumentProperties, + pdfViewer, + preferences + } = this; + eventBus._on("resize", onResize.bind(this), opts); + eventBus._on("hashchange", onHashchange.bind(this), opts); + eventBus._on("beforeprint", this.beforePrint.bind(this), opts); + eventBus._on("afterprint", this.afterPrint.bind(this), opts); + eventBus._on("pagerender", onPageRender.bind(this), opts); + eventBus._on("pagerendered", onPageRendered.bind(this), opts); + eventBus._on("updateviewarea", onUpdateViewarea.bind(this), opts); + eventBus._on("pagechanging", onPageChanging.bind(this), opts); + eventBus._on("scalechanging", onScaleChanging.bind(this), opts); + eventBus._on("rotationchanging", onRotationChanging.bind(this), opts); + eventBus._on("sidebarviewchanged", onSidebarViewChanged.bind(this), opts); + eventBus._on("pagemode", onPageMode.bind(this), opts); + eventBus._on("namedaction", onNamedAction.bind(this), opts); + eventBus._on("presentationmodechanged", evt => pdfViewer.presentationModeState = evt.state, opts); + eventBus._on("presentationmode", this.requestPresentationMode.bind(this), opts); + eventBus._on("switchannotationeditormode", evt => pdfViewer.annotationEditorMode = evt, opts); + eventBus._on("print", this.triggerPrinting.bind(this), opts); + eventBus._on("download", this.downloadOrSave.bind(this), opts); + eventBus._on("firstpage", () => this.page = 1, opts); + eventBus._on("lastpage", () => this.page = this.pagesCount, opts); + eventBus._on("nextpage", () => pdfViewer.nextPage(), opts); + eventBus._on("previouspage", () => pdfViewer.previousPage(), opts); + eventBus._on("zoomin", this.zoomIn.bind(this), opts); + eventBus._on("zoomout", this.zoomOut.bind(this), opts); + eventBus._on("zoomreset", this.zoomReset.bind(this), opts); + eventBus._on("pagenumberchanged", onPageNumberChanged.bind(this), opts); + eventBus._on("scalechanged", evt => pdfViewer.currentScaleValue = evt.value, opts); + eventBus._on("rotatecw", this.rotatePages.bind(this, 90), opts); + eventBus._on("rotateccw", this.rotatePages.bind(this, -90), opts); + eventBus._on("optionalcontentconfig", evt => pdfViewer.optionalContentConfigPromise = evt.promise, opts); + eventBus._on("switchscrollmode", evt => pdfViewer.scrollMode = evt.mode, opts); + eventBus._on("scrollmodechanged", onViewerModesChanged.bind(this, "scrollMode"), opts); + eventBus._on("switchspreadmode", evt => pdfViewer.spreadMode = evt.mode, opts); + eventBus._on("spreadmodechanged", onViewerModesChanged.bind(this, "spreadMode"), opts); + eventBus._on("imagealttextsettings", onImageAltTextSettings.bind(this), opts); + eventBus._on("documentproperties", () => pdfDocumentProperties?.open(), opts); + eventBus._on("findfromurlhash", onFindFromUrlHash.bind(this), opts); + eventBus._on("updatefindmatchescount", onUpdateFindMatchesCount.bind(this), opts); + eventBus._on("updatefindcontrolstate", onUpdateFindControlState.bind(this), opts); + eventBus._on("fileinputchange", onFileInputChange.bind(this), opts); + eventBus._on("openfile", onOpenFile.bind(this), opts); + }, + bindWindowEvents() { + if (this._windowAbortController) { + return; + } + this._windowAbortController = new AbortController(); + const { + eventBus, + appConfig: { + mainContainer + }, + pdfViewer, + _windowAbortController: { + signal + } + } = this; + function addWindowResolutionChange(evt = null) { + if (evt) { + pdfViewer.refresh(); + } + const mediaQueryList = window.matchMedia(`(resolution: ${window.devicePixelRatio || 1}dppx)`); + mediaQueryList.addEventListener("change", addWindowResolutionChange, { + once: true, + signal + }); + } + addWindowResolutionChange(); + window.addEventListener("wheel", onWheel.bind(this), { + passive: false, + signal + }); + window.addEventListener("touchstart", onTouchStart.bind(this), { + passive: false, + signal + }); + window.addEventListener("touchmove", onTouchMove.bind(this), { + passive: false, + signal + }); + window.addEventListener("touchend", onTouchEnd.bind(this), { + passive: false, + signal + }); + window.addEventListener("click", onClick.bind(this), { + signal + }); + window.addEventListener("keydown", onKeyDown.bind(this), { + signal + }); + window.addEventListener("keyup", onKeyUp.bind(this), { + signal + }); + window.addEventListener("resize", () => eventBus.dispatch("resize", { + source: window + }), { + signal + }); + window.addEventListener("hashchange", () => { + eventBus.dispatch("hashchange", { + source: window, + hash: document.location.hash.substring(1) + }); + }, { + signal + }); + window.addEventListener("beforeprint", () => eventBus.dispatch("beforeprint", { + source: window + }), { + signal + }); + window.addEventListener("afterprint", () => eventBus.dispatch("afterprint", { + source: window + }), { + signal + }); + window.addEventListener("updatefromsandbox", evt => { + eventBus.dispatch("updatefromsandbox", { + source: window, + detail: evt.detail + }); + }, { + signal + }); + if (!("onscrollend" in document.documentElement)) { + return; + } + ({ + scrollTop: this._lastScrollTop, + scrollLeft: this._lastScrollLeft + } = mainContainer); + const scrollend = () => { + ({ + scrollTop: this._lastScrollTop, + scrollLeft: this._lastScrollLeft + } = mainContainer); + this._isScrolling = false; + mainContainer.addEventListener("scroll", scroll, { + passive: true, + signal + }); + mainContainer.removeEventListener("scrollend", scrollend); + mainContainer.removeEventListener("blur", scrollend); + }; + const scroll = () => { + if (this._isCtrlKeyDown) { + return; + } + if (this._lastScrollTop === mainContainer.scrollTop && this._lastScrollLeft === mainContainer.scrollLeft) { + return; + } + mainContainer.removeEventListener("scroll", scroll); + this._isScrolling = true; + mainContainer.addEventListener("scrollend", scrollend, { + signal + }); + mainContainer.addEventListener("blur", scrollend, { + signal + }); + }; + mainContainer.addEventListener("scroll", scroll, { + passive: true, + signal + }); + }, + unbindEvents() { + this._eventBusAbortController?.abort(); + this._eventBusAbortController = null; + }, + unbindWindowEvents() { + this._windowAbortController?.abort(); + this._windowAbortController = null; + }, + async testingClose() { + this.unbindEvents(); + this.unbindWindowEvents(); + this._globalAbortController?.abort(); + this._globalAbortController = null; + this.findBar?.close(); + await Promise.all([this.l10n?.destroy(), this.close()]); + }, + _accumulateTicks(ticks, prop) { + if (this[prop] > 0 && ticks < 0 || this[prop] < 0 && ticks > 0) { + this[prop] = 0; + } + this[prop] += ticks; + const wholeTicks = Math.trunc(this[prop]); + this[prop] -= wholeTicks; + return wholeTicks; + }, + _accumulateFactor(previousScale, factor, prop) { + if (factor === 1) { + return 1; + } + if (this[prop] > 1 && factor < 1 || this[prop] < 1 && factor > 1) { + this[prop] = 1; + } + const newFactor = Math.floor(previousScale * factor * this[prop] * 100) / (100 * previousScale); + this[prop] = factor / newFactor; + return newFactor; + }, + _unblockDocumentLoadEvent() { + document.blockUnblockOnload?.(false); + this._unblockDocumentLoadEvent = () => {}; + }, + get scriptingReady() { + return this.pdfScriptingManager.ready; + } +}; +initCom(PDFViewerApplication); +{ + PDFPrintServiceFactory.initGlobals(PDFViewerApplication); +} +{ + const HOSTED_VIEWER_ORIGINS = ["null", "http://mozilla.github.io", "https://mozilla.github.io"]; + var validateFileURL = function (file) { + if (!file) { + return; + } + try { + const viewerOrigin = new URL(window.location.href).origin || "null"; + if (HOSTED_VIEWER_ORIGINS.includes(viewerOrigin)) { + return; + } + const fileOrigin = new URL(file, window.location.href).origin; + if (fileOrigin !== viewerOrigin) { + throw new Error("file origin does not match viewer's"); + } + } catch (ex) { + PDFViewerApplication._documentError("pdfjs-loading-error", { + message: ex.message + }); + throw ex; + } + }; + var onFileInputChange = function (evt) { + if (this.pdfViewer?.isInPresentationMode) { + return; + } + const file = evt.fileInput.files[0]; + this.open({ + url: URL.createObjectURL(file), + originalUrl: file.name + }); + }; + var onOpenFile = function (evt) { + this._openFileInput?.click(); + }; +} +function onPageRender({ + pageNumber +}) { + if (pageNumber === this.page) { + this.toolbar?.updateLoadingIndicatorState(true); + } +} +function onPageRendered({ + pageNumber, + error +}) { + if (pageNumber === this.page) { + this.toolbar?.updateLoadingIndicatorState(false); + } + if (this.pdfSidebar?.visibleView === SidebarView.THUMBS) { + const pageView = this.pdfViewer.getPageView(pageNumber - 1); + const thumbnailView = this.pdfThumbnailViewer?.getThumbnail(pageNumber - 1); + if (pageView) { + thumbnailView?.setImage(pageView); + } + } + if (error) { + this._otherError("pdfjs-rendering-error", error); + } +} +function onPageMode({ + mode +}) { + let view; + switch (mode) { + case "thumbs": + view = SidebarView.THUMBS; + break; + case "bookmarks": + case "outline": + view = SidebarView.OUTLINE; + break; + case "attachments": + view = SidebarView.ATTACHMENTS; + break; + case "layers": + view = SidebarView.LAYERS; + break; + case "none": + view = SidebarView.NONE; + break; + default: + console.error('Invalid "pagemode" hash parameter: ' + mode); + return; + } + this.pdfSidebar?.switchView(view, true); +} +function onNamedAction(evt) { + switch (evt.action) { + case "GoToPage": + this.appConfig.toolbar?.pageNumber.select(); + break; + case "Find": + if (!this.supportsIntegratedFind) { + this.findBar?.toggle(); + } + break; + case "Print": + this.triggerPrinting(); + break; + case "SaveAs": + this.downloadOrSave(); + break; + } +} +function onSidebarViewChanged({ + view +}) { + this.pdfRenderingQueue.isThumbnailViewEnabled = view === SidebarView.THUMBS; + if (this.isInitialViewSet) { + this.store?.set("sidebarView", view).catch(() => {}); + } +} +function onUpdateViewarea({ + location +}) { + if (this.isInitialViewSet) { + this.store?.setMultiple({ + page: location.pageNumber, + zoom: location.scale, + scrollLeft: location.left, + scrollTop: location.top, + rotation: location.rotation + }).catch(() => {}); + } + if (this.appConfig.secondaryToolbar) { + this.appConfig.secondaryToolbar.viewBookmarkButton.href = this.pdfLinkService.getAnchorUrl(location.pdfOpenParams); + } +} +function onViewerModesChanged(name, evt) { + if (this.isInitialViewSet && !this.pdfViewer.isInPresentationMode) { + this.store?.set(name, evt.mode).catch(() => {}); + } +} +function onResize() { + const { + pdfDocument, + pdfViewer, + pdfRenderingQueue + } = this; + if (pdfRenderingQueue.printing && window.matchMedia("print").matches) { + return; + } + if (!pdfDocument) { + return; + } + const currentScaleValue = pdfViewer.currentScaleValue; + if (currentScaleValue === "auto" || currentScaleValue === "page-fit" || currentScaleValue === "page-width") { + pdfViewer.currentScaleValue = currentScaleValue; + } + pdfViewer.update(); +} +function onHashchange(evt) { + const hash = evt.hash; + if (!hash) { + return; + } + if (!this.isInitialViewSet) { + this.initialBookmark = hash; + } else if (!this.pdfHistory?.popStateInProgress) { + this.pdfLinkService.setHash(hash); + } +} +function onPageNumberChanged(evt) { + const { + pdfViewer + } = this; + if (evt.value !== "") { + this.pdfLinkService.goToPage(evt.value); + } + if (evt.value !== pdfViewer.currentPageNumber.toString() && evt.value !== pdfViewer.currentPageLabel) { + this.toolbar?.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + } +} +function onImageAltTextSettings() { + this.imageAltTextSettings?.open({ + enableGuessAltText: AppOptions.get("enableGuessAltText"), + enableNewAltTextWhenAddingImage: AppOptions.get("enableNewAltTextWhenAddingImage") + }); +} +function onFindFromUrlHash(evt) { + this.eventBus.dispatch("find", { + source: evt.source, + type: "", + query: evt.query, + caseSensitive: false, + entireWord: false, + highlightAll: true, + findPrevious: false, + matchDiacritics: true + }); +} +function onUpdateFindMatchesCount({ + matchesCount +}) { + if (this.supportsIntegratedFind) { + this.externalServices.updateFindMatchesCount(matchesCount); + } else { + this.findBar?.updateResultsCount(matchesCount); + } +} +function onUpdateFindControlState({ + state, + previous, + entireWord, + matchesCount, + rawQuery +}) { + if (this.supportsIntegratedFind) { + this.externalServices.updateFindControlState({ + result: state, + findPrevious: previous, + entireWord, + matchesCount, + rawQuery + }); + } else { + this.findBar?.updateUIState(state, previous, matchesCount); + } +} +function onScaleChanging(evt) { + this.toolbar?.setPageScale(evt.presetValue, evt.scale); + this.pdfViewer.update(); +} +function onRotationChanging(evt) { + if (this.pdfThumbnailViewer) { + this.pdfThumbnailViewer.pagesRotation = evt.pagesRotation; + } + this.forceRendering(); + this.pdfViewer.currentPageNumber = evt.pageNumber; +} +function onPageChanging({ + pageNumber, + pageLabel +}) { + this.toolbar?.setPageNumber(pageNumber, pageLabel); + this.secondaryToolbar?.setPageNumber(pageNumber); + if (this.pdfSidebar?.visibleView === SidebarView.THUMBS) { + this.pdfThumbnailViewer?.scrollThumbnailIntoView(pageNumber); + } + const currentPage = this.pdfViewer.getPageView(pageNumber - 1); + this.toolbar?.updateLoadingIndicatorState(currentPage?.renderingState === RenderingStates.RUNNING); +} +function onWheel(evt) { + const { + pdfViewer, + supportsMouseWheelZoomCtrlKey, + supportsMouseWheelZoomMetaKey, + supportsPinchToZoom + } = this; + if (pdfViewer.isInPresentationMode) { + return; + } + const deltaMode = evt.deltaMode; + let scaleFactor = Math.exp(-evt.deltaY / 100); + const isBuiltInMac = false; + const isPinchToZoom = evt.ctrlKey && !this._isCtrlKeyDown && deltaMode === WheelEvent.DOM_DELTA_PIXEL && evt.deltaX === 0 && (Math.abs(scaleFactor - 1) < 0.05 || isBuiltInMac) && evt.deltaZ === 0; + const origin = [evt.clientX, evt.clientY]; + if (isPinchToZoom || evt.ctrlKey && supportsMouseWheelZoomCtrlKey || evt.metaKey && supportsMouseWheelZoomMetaKey) { + evt.preventDefault(); + if (this._isScrolling || document.visibilityState === "hidden" || this.overlayManager.active) { + return; + } + if (isPinchToZoom && supportsPinchToZoom) { + scaleFactor = this._accumulateFactor(pdfViewer.currentScale, scaleFactor, "_wheelUnusedFactor"); + this.updateZoom(null, scaleFactor, origin); + } else { + const delta = normalizeWheelEventDirection(evt); + let ticks = 0; + if (deltaMode === WheelEvent.DOM_DELTA_LINE || deltaMode === WheelEvent.DOM_DELTA_PAGE) { + ticks = Math.abs(delta) >= 1 ? Math.sign(delta) : this._accumulateTicks(delta, "_wheelUnusedTicks"); + } else { + const PIXELS_PER_LINE_SCALE = 30; + ticks = this._accumulateTicks(delta / PIXELS_PER_LINE_SCALE, "_wheelUnusedTicks"); + } + this.updateZoom(ticks, null, origin); + } + } +} +function onTouchStart(evt) { + if (this.pdfViewer.isInPresentationMode || evt.touches.length < 2) { + return; + } + evt.preventDefault(); + if (evt.touches.length !== 2 || this.overlayManager.active) { + this._touchInfo = null; + return; + } + let [touch0, touch1] = evt.touches; + if (touch0.identifier > touch1.identifier) { + [touch0, touch1] = [touch1, touch0]; + } + this._touchInfo = { + touch0X: touch0.screenX, + touch0Y: touch0.screenY, + touch1X: touch1.screenX, + touch1Y: touch1.screenY + }; +} +function onTouchMove(evt) { + if (!this._touchInfo || evt.touches.length !== 2) { + return; + } + const { + pdfViewer, + _touchInfo, + supportsPinchToZoom + } = this; + let [touch0, touch1] = evt.touches; + if (touch0.identifier > touch1.identifier) { + [touch0, touch1] = [touch1, touch0]; + } + const { + screenX: screen0X, + screenY: screen0Y + } = touch0; + const { + screenX: screen1X, + screenY: screen1Y + } = touch1; + const { + touch0X: pTouch0X, + touch0Y: pTouch0Y, + touch1X: pTouch1X, + touch1Y: pTouch1Y + } = _touchInfo; + const prevGapX = pTouch1X - pTouch0X; + const prevGapY = pTouch1Y - pTouch0Y; + const currGapX = screen1X - screen0X; + const currGapY = screen1Y - screen0Y; + const distance = Math.hypot(currGapX, currGapY) || 1; + const pDistance = Math.hypot(prevGapX, prevGapY) || 1; + if (!this._isPinching && Math.abs(pDistance - distance) <= MIN_TOUCH_DISTANCE_TO_PINCH) { + return; + } + _touchInfo.touch0X = screen0X; + _touchInfo.touch0Y = screen0Y; + _touchInfo.touch1X = screen1X; + _touchInfo.touch1Y = screen1Y; + evt.preventDefault(); + if (!this._isPinching) { + this._isPinching = true; + return; + } + const origin = [(screen0X + screen1X) / 2, (screen0Y + screen1Y) / 2]; + if (supportsPinchToZoom) { + const newScaleFactor = this._accumulateFactor(pdfViewer.currentScale, distance / pDistance, "_touchUnusedFactor"); + this.updateZoom(null, newScaleFactor, origin); + } else { + const PIXELS_PER_LINE_SCALE = 30; + const ticks = this._accumulateTicks((distance - pDistance) / PIXELS_PER_LINE_SCALE, "_touchUnusedTicks"); + this.updateZoom(ticks, null, origin); + } +} +function onTouchEnd(evt) { + if (!this._touchInfo) { + return; + } + evt.preventDefault(); + this._touchInfo = null; + this._touchUnusedTicks = 0; + this._touchUnusedFactor = 1; + this._isPinching = false; +} +function closeSecondaryToolbar(evt) { + if (!this.secondaryToolbar?.isOpen) { + return; + } + const appConfig = this.appConfig; + if (this.pdfViewer.containsElement(evt.target) || appConfig.toolbar?.container.contains(evt.target) && !appConfig.secondaryToolbar?.toggleButton.contains(evt.target)) { + this.secondaryToolbar.close(); + } +} +function closeEditorUndoBar(evt) { + if (!this.editorUndoBar?.isOpen) { + return; + } + if (this.appConfig.secondaryToolbar?.toolbar.contains(evt.target)) { + this.editorUndoBar.hide(); + } +} +function onClick(evt) { + closeSecondaryToolbar.call(this, evt); + closeEditorUndoBar.call(this, evt); +} +function onKeyUp(evt) { + if (evt.key === "Control") { + this._isCtrlKeyDown = false; + } +} +function onKeyDown(evt) { + this._isCtrlKeyDown = evt.key === "Control"; + if (this.editorUndoBar?.isOpen && evt.keyCode !== 9 && evt.keyCode !== 16 && !((evt.keyCode === 13 || evt.keyCode === 32) && getActiveOrFocusedElement() === this.appConfig.editorUndoBar.undoButton)) { + this.editorUndoBar.hide(); + } + if (this.overlayManager.active) { + return; + } + const { + eventBus, + pdfViewer + } = this; + const isViewerInPresentationMode = pdfViewer.isInPresentationMode; + let handled = false, + ensureViewerFocused = false; + const cmd = (evt.ctrlKey ? 1 : 0) | (evt.altKey ? 2 : 0) | (evt.shiftKey ? 4 : 0) | (evt.metaKey ? 8 : 0); + if (cmd === 1 || cmd === 8 || cmd === 5 || cmd === 12) { + switch (evt.keyCode) { + case 70: + if (!this.supportsIntegratedFind && !evt.shiftKey) { + this.findBar?.open(); + handled = true; + } + break; + case 71: + if (!this.supportsIntegratedFind) { + const { + state + } = this.findController; + if (state) { + const newState = { + source: window, + type: "again", + findPrevious: cmd === 5 || cmd === 12 + }; + eventBus.dispatch("find", { + ...state, + ...newState + }); + } + handled = true; + } + break; + case 61: + case 107: + case 187: + case 171: + this.zoomIn(); + handled = true; + break; + case 173: + case 109: + case 189: + this.zoomOut(); + handled = true; + break; + case 48: + case 96: + if (!isViewerInPresentationMode) { + setTimeout(() => { + this.zoomReset(); + }); + handled = false; + } + break; + case 38: + if (isViewerInPresentationMode || this.page > 1) { + this.page = 1; + handled = true; + ensureViewerFocused = true; + } + break; + case 40: + if (isViewerInPresentationMode || this.page < this.pagesCount) { + this.page = this.pagesCount; + handled = true; + ensureViewerFocused = true; + } + break; + } + } + if (cmd === 1 || cmd === 8) { + switch (evt.keyCode) { + case 83: + eventBus.dispatch("download", { + source: window + }); + handled = true; + break; + case 79: + { + eventBus.dispatch("openfile", { + source: window + }); + handled = true; + } + break; + } + } + if (cmd === 3 || cmd === 10) { + switch (evt.keyCode) { + case 80: + this.requestPresentationMode(); + handled = true; + this.externalServices.reportTelemetry({ + type: "buttons", + data: { + id: "presentationModeKeyboard" + } + }); + break; + case 71: + if (this.appConfig.toolbar) { + this.appConfig.toolbar.pageNumber.select(); + handled = true; + } + break; + } + } + if (handled) { + if (ensureViewerFocused && !isViewerInPresentationMode) { + pdfViewer.focus(); + } + evt.preventDefault(); + return; + } + const curElement = getActiveOrFocusedElement(); + const curElementTagName = curElement?.tagName.toUpperCase(); + if (curElementTagName === "INPUT" || curElementTagName === "TEXTAREA" || curElementTagName === "SELECT" || curElementTagName === "BUTTON" && (evt.keyCode === 13 || evt.keyCode === 32) || curElement?.isContentEditable) { + if (evt.keyCode !== 27) { + return; + } + } + if (cmd === 0) { + let turnPage = 0, + turnOnlyIfPageFit = false; + switch (evt.keyCode) { + case 38: + if (this.supportsCaretBrowsingMode) { + this.moveCaret(true, false); + handled = true; + break; + } + case 33: + if (pdfViewer.isVerticalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + turnPage = -1; + break; + case 8: + if (!isViewerInPresentationMode) { + turnOnlyIfPageFit = true; + } + turnPage = -1; + break; + case 37: + if (this.supportsCaretBrowsingMode) { + return; + } + if (pdfViewer.isHorizontalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + case 75: + case 80: + turnPage = -1; + break; + case 27: + if (this.secondaryToolbar?.isOpen) { + this.secondaryToolbar.close(); + handled = true; + } + if (!this.supportsIntegratedFind && this.findBar?.opened) { + this.findBar.close(); + handled = true; + } + break; + case 40: + if (this.supportsCaretBrowsingMode) { + this.moveCaret(false, false); + handled = true; + break; + } + case 34: + if (pdfViewer.isVerticalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + turnPage = 1; + break; + case 13: + case 32: + if (!isViewerInPresentationMode) { + turnOnlyIfPageFit = true; + } + turnPage = 1; + break; + case 39: + if (this.supportsCaretBrowsingMode) { + return; + } + if (pdfViewer.isHorizontalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + case 74: + case 78: + turnPage = 1; + break; + case 36: + if (isViewerInPresentationMode || this.page > 1) { + this.page = 1; + handled = true; + ensureViewerFocused = true; + } + break; + case 35: + if (isViewerInPresentationMode || this.page < this.pagesCount) { + this.page = this.pagesCount; + handled = true; + ensureViewerFocused = true; + } + break; + case 83: + this.pdfCursorTools?.switchTool(CursorTool.SELECT); + break; + case 72: + this.pdfCursorTools?.switchTool(CursorTool.HAND); + break; + case 82: + this.rotatePages(90); + break; + case 115: + this.pdfSidebar?.toggle(); + break; + } + if (turnPage !== 0 && (!turnOnlyIfPageFit || pdfViewer.currentScaleValue === "page-fit")) { + if (turnPage > 0) { + pdfViewer.nextPage(); + } else { + pdfViewer.previousPage(); + } + handled = true; + } + } + if (cmd === 4) { + switch (evt.keyCode) { + case 13: + case 32: + if (!isViewerInPresentationMode && pdfViewer.currentScaleValue !== "page-fit") { + break; + } + pdfViewer.previousPage(); + handled = true; + break; + case 38: + this.moveCaret(true, true); + handled = true; + break; + case 40: + this.moveCaret(false, true); + handled = true; + break; + case 82: + this.rotatePages(-90); + break; + } + } + if (!handled && !isViewerInPresentationMode) { + if (evt.keyCode >= 33 && evt.keyCode <= 40 || evt.keyCode === 32 && curElementTagName !== "BUTTON") { + ensureViewerFocused = true; + } + } + if (ensureViewerFocused && !pdfViewer.containsElement(curElement)) { + pdfViewer.focus(); + } + if (handled) { + evt.preventDefault(); + } +} +function beforeUnload(evt) { + evt.preventDefault(); + evt.returnValue = ""; + return false; +} + +;// ./web/viewer.js + + + + +const pdfjsVersion = "4.9.155"; +const pdfjsBuild = "a4eb8407c"; +const AppConstants = { + LinkTarget: LinkTarget, + RenderingStates: RenderingStates, + ScrollMode: ScrollMode, + SpreadMode: SpreadMode +}; +window.PDFViewerApplication = PDFViewerApplication; +window.PDFViewerApplicationConstants = AppConstants; +window.PDFViewerApplicationOptions = AppOptions; +function getViewerConfiguration() { + return { + appContainer: document.body, + principalContainer: document.getElementById("mainContainer"), + mainContainer: document.getElementById("viewerContainer"), + viewerContainer: document.getElementById("viewer"), + toolbar: { + container: document.getElementById("toolbarContainer"), + numPages: document.getElementById("numPages"), + pageNumber: document.getElementById("pageNumber"), + scaleSelect: document.getElementById("scaleSelect"), + customScaleOption: document.getElementById("customScaleOption"), + previous: document.getElementById("previous"), + next: document.getElementById("next"), + zoomIn: document.getElementById("zoomInButton"), + zoomOut: document.getElementById("zoomOutButton"), + print: document.getElementById("printButton"), + editorFreeTextButton: document.getElementById("editorFreeTextButton"), + editorFreeTextParamsToolbar: document.getElementById("editorFreeTextParamsToolbar"), + editorHighlightButton: document.getElementById("editorHighlightButton"), + editorHighlightParamsToolbar: document.getElementById("editorHighlightParamsToolbar"), + editorHighlightColorPicker: document.getElementById("editorHighlightColorPicker"), + editorInkButton: document.getElementById("editorInkButton"), + editorInkParamsToolbar: document.getElementById("editorInkParamsToolbar"), + editorStampButton: document.getElementById("editorStampButton"), + editorStampParamsToolbar: document.getElementById("editorStampParamsToolbar"), + download: document.getElementById("downloadButton") + }, + secondaryToolbar: { + toolbar: document.getElementById("secondaryToolbar"), + toggleButton: document.getElementById("secondaryToolbarToggleButton"), + presentationModeButton: document.getElementById("presentationMode"), + openFileButton: document.getElementById("secondaryOpenFile"), + printButton: document.getElementById("secondaryPrint"), + downloadButton: document.getElementById("secondaryDownload"), + viewBookmarkButton: document.getElementById("viewBookmark"), + firstPageButton: document.getElementById("firstPage"), + lastPageButton: document.getElementById("lastPage"), + pageRotateCwButton: document.getElementById("pageRotateCw"), + pageRotateCcwButton: document.getElementById("pageRotateCcw"), + cursorSelectToolButton: document.getElementById("cursorSelectTool"), + cursorHandToolButton: document.getElementById("cursorHandTool"), + scrollPageButton: document.getElementById("scrollPage"), + scrollVerticalButton: document.getElementById("scrollVertical"), + scrollHorizontalButton: document.getElementById("scrollHorizontal"), + scrollWrappedButton: document.getElementById("scrollWrapped"), + spreadNoneButton: document.getElementById("spreadNone"), + spreadOddButton: document.getElementById("spreadOdd"), + spreadEvenButton: document.getElementById("spreadEven"), + imageAltTextSettingsButton: document.getElementById("imageAltTextSettings"), + imageAltTextSettingsSeparator: document.getElementById("imageAltTextSettingsSeparator"), + documentPropertiesButton: document.getElementById("documentProperties") + }, + sidebar: { + outerContainer: document.getElementById("outerContainer"), + sidebarContainer: document.getElementById("sidebarContainer"), + toggleButton: document.getElementById("sidebarToggleButton"), + resizer: document.getElementById("sidebarResizer"), + thumbnailButton: document.getElementById("viewThumbnail"), + outlineButton: document.getElementById("viewOutline"), + attachmentsButton: document.getElementById("viewAttachments"), + layersButton: document.getElementById("viewLayers"), + thumbnailView: document.getElementById("thumbnailView"), + outlineView: document.getElementById("outlineView"), + attachmentsView: document.getElementById("attachmentsView"), + layersView: document.getElementById("layersView"), + currentOutlineItemButton: document.getElementById("currentOutlineItem") + }, + findBar: { + bar: document.getElementById("findbar"), + toggleButton: document.getElementById("viewFindButton"), + findField: document.getElementById("findInput"), + highlightAllCheckbox: document.getElementById("findHighlightAll"), + caseSensitiveCheckbox: document.getElementById("findMatchCase"), + matchDiacriticsCheckbox: document.getElementById("findMatchDiacritics"), + entireWordCheckbox: document.getElementById("findEntireWord"), + findMsg: document.getElementById("findMsg"), + findResultsCount: document.getElementById("findResultsCount"), + findPreviousButton: document.getElementById("findPreviousButton"), + findNextButton: document.getElementById("findNextButton") + }, + passwordOverlay: { + dialog: document.getElementById("passwordDialog"), + label: document.getElementById("passwordText"), + input: document.getElementById("password"), + submitButton: document.getElementById("passwordSubmit"), + cancelButton: document.getElementById("passwordCancel") + }, + documentProperties: { + dialog: document.getElementById("documentPropertiesDialog"), + closeButton: document.getElementById("documentPropertiesClose"), + fields: { + fileName: document.getElementById("fileNameField"), + fileSize: document.getElementById("fileSizeField"), + title: document.getElementById("titleField"), + author: document.getElementById("authorField"), + subject: document.getElementById("subjectField"), + keywords: document.getElementById("keywordsField"), + creationDate: document.getElementById("creationDateField"), + modificationDate: document.getElementById("modificationDateField"), + creator: document.getElementById("creatorField"), + producer: document.getElementById("producerField"), + version: document.getElementById("versionField"), + pageCount: document.getElementById("pageCountField"), + pageSize: document.getElementById("pageSizeField"), + linearized: document.getElementById("linearizedField") + } + }, + altTextDialog: { + dialog: document.getElementById("altTextDialog"), + optionDescription: document.getElementById("descriptionButton"), + optionDecorative: document.getElementById("decorativeButton"), + textarea: document.getElementById("descriptionTextarea"), + cancelButton: document.getElementById("altTextCancel"), + saveButton: document.getElementById("altTextSave") + }, + newAltTextDialog: { + dialog: document.getElementById("newAltTextDialog"), + title: document.getElementById("newAltTextTitle"), + descriptionContainer: document.getElementById("newAltTextDescriptionContainer"), + textarea: document.getElementById("newAltTextDescriptionTextarea"), + disclaimer: document.getElementById("newAltTextDisclaimer"), + learnMore: document.getElementById("newAltTextLearnMore"), + imagePreview: document.getElementById("newAltTextImagePreview"), + createAutomatically: document.getElementById("newAltTextCreateAutomatically"), + createAutomaticallyButton: document.getElementById("newAltTextCreateAutomaticallyButton"), + downloadModel: document.getElementById("newAltTextDownloadModel"), + downloadModelDescription: document.getElementById("newAltTextDownloadModelDescription"), + error: document.getElementById("newAltTextError"), + errorCloseButton: document.getElementById("newAltTextCloseButton"), + cancelButton: document.getElementById("newAltTextCancel"), + notNowButton: document.getElementById("newAltTextNotNow"), + saveButton: document.getElementById("newAltTextSave") + }, + altTextSettingsDialog: { + dialog: document.getElementById("altTextSettingsDialog"), + createModelButton: document.getElementById("createModelButton"), + aiModelSettings: document.getElementById("aiModelSettings"), + learnMore: document.getElementById("altTextSettingsLearnMore"), + deleteModelButton: document.getElementById("deleteModelButton"), + downloadModelButton: document.getElementById("downloadModelButton"), + showAltTextDialogButton: document.getElementById("showAltTextDialogButton"), + altTextSettingsCloseButton: document.getElementById("altTextSettingsCloseButton"), + closeButton: document.getElementById("altTextSettingsCloseButton") + }, + annotationEditorParams: { + editorFreeTextFontSize: document.getElementById("editorFreeTextFontSize"), + editorFreeTextColor: document.getElementById("editorFreeTextColor"), + editorInkColor: document.getElementById("editorInkColor"), + editorInkThickness: document.getElementById("editorInkThickness"), + editorInkOpacity: document.getElementById("editorInkOpacity"), + editorStampAddImage: document.getElementById("editorStampAddImage"), + editorFreeHighlightThickness: document.getElementById("editorFreeHighlightThickness"), + editorHighlightShowAll: document.getElementById("editorHighlightShowAll") + }, + printContainer: document.getElementById("printContainer"), + editorUndoBar: { + container: document.getElementById("editorUndoBar"), + message: document.getElementById("editorUndoBarMessage"), + undoButton: document.getElementById("editorUndoBarUndoButton"), + closeButton: document.getElementById("editorUndoBarCloseButton") + } + }; +} +function webViewerLoad() { + const config = getViewerConfiguration(); + const event = new CustomEvent("webviewerloaded", { + bubbles: true, + cancelable: true, + detail: { + source: window + } + }); + try { + parent.document.dispatchEvent(event); + } catch (ex) { + console.error(`webviewerloaded: ${ex}`); + document.dispatchEvent(event); + } + PDFViewerApplication.run(config); +} +document.blockUnblockOnload?.(true); +if (document.readyState === "interactive" || document.readyState === "complete") { + webViewerLoad(); +} else { + document.addEventListener("DOMContentLoaded", webViewerLoad, true); +} + +var __webpack_exports__PDFViewerApplication = __webpack_exports__.PDFViewerApplication; +var __webpack_exports__PDFViewerApplicationConstants = __webpack_exports__.PDFViewerApplicationConstants; +var __webpack_exports__PDFViewerApplicationOptions = __webpack_exports__.PDFViewerApplicationOptions; +export { __webpack_exports__PDFViewerApplication as PDFViewerApplication, __webpack_exports__PDFViewerApplicationConstants as PDFViewerApplicationConstants, __webpack_exports__PDFViewerApplicationOptions as PDFViewerApplicationOptions }; + +//# sourceMappingURL=viewer.mjs.map \ No newline at end of file diff --git a/web/static/apps/pdfjs/web/viewer.mjs.map b/web/static/apps/pdfjs/web/viewer.mjs.map new file mode 100644 index 0000000..93777b6 --- /dev/null +++ b/web/static/apps/pdfjs/web/viewer.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"viewer.mjs","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAa;AACb,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,kBAAkB,mBAAO,CAAC,IAA4B;;AAEtD;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACVa;AACb,0BAA0B,mBAAO,CAAC,IAAoC;;AAEtE;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACTa;AACb,UAAU,+BAAuC;;AAEjD;AACA;AACA;AACA;AACA;;;;;;;;ACPa;AACb,oBAAoB,mBAAO,CAAC,IAAqC;;AAEjE;;AAEA;AACA;AACA;AACA;;;;;;;;ACRa;AACb,eAAe,mBAAO,CAAC,EAAwB;;AAE/C;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACVa;AACb;AACA;;;;;;;;ACFa;AACb,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,0BAA0B,mBAAO,CAAC,IAA6C;AAC/E,cAAc,mBAAO,CAAC,IAA0B;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACda;AACb,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,kBAAkB,mBAAO,CAAC,IAA2C;AACrE,4BAA4B,mBAAO,CAAC,IAAuC;;AAE3E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;AClBa;AACb,iBAAiB,mBAAO,CAAC,IAAuC;;AAEhE;;AAEA;AACA;AACA;AACA;;;;;;;;ACRa;AACb,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,0BAA0B,mBAAO,CAAC,IAA6C;AAC/E,cAAc,mBAAO,CAAC,IAAuB;AAC7C,kBAAkB,mBAAO,CAAC,IAAwC;AAClE,4BAA4B,mBAAO,CAAC,IAAuC;AAC3E,yBAAyB,mBAAO,CAAC,IAAkC;AACnE,uCAAuC,mBAAO,CAAC,IAA+C;;AAE9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,yBAAyB;AAC1E;AACA;AACA;AACA;AACA,IAAI;AACJ,4EAA4E,4CAA4C;AACxH;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;;;;;;;;AC5Ca;AACb,0BAA0B,mBAAO,CAAC,IAA2C;AAC7E,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,eAAe,mBAAO,CAAC,EAAwB;AAC/C,aAAa,mBAAO,CAAC,IAA+B;AACpD,cAAc,mBAAO,CAAC,IAAsB;AAC5C,kBAAkB,mBAAO,CAAC,IAA4B;AACtD,kCAAkC,mBAAO,CAAC,IAA6C;AACvF,oBAAoB,mBAAO,CAAC,IAA8B;AAC1D,4BAA4B,mBAAO,CAAC,IAAuC;AAC3E,oBAAoB,mBAAO,CAAC,IAAqC;AACjE,qBAAqB,mBAAO,CAAC,IAAsC;AACnE,qBAAqB,mBAAO,CAAC,IAAsC;AACnE,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,UAAU,mBAAO,CAAC,IAAkB;AACpC,0BAA0B,mBAAO,CAAC,IAA6B;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChMa;AACb,wBAAwB,mBAAO,CAAC,IAAmC;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTa;AACb,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,wBAAwB,mBAAO,CAAC,IAAmC;;AAEnE,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,gBAAgB;AACjC;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjCa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,cAAc,mBAAO,CAAC,IAAuB;;AAE7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D,IAAI;AACJ;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;;;;;;;;AC1Ba;AACb,wBAAwB,mBAAO,CAAC,IAAmC;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;;;;;;;;ACXa;AACb,wBAAwB,mBAAO,CAAC,IAAmC;AACnE,0BAA0B,mBAAO,CAAC,IAAqC;;AAEvE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;;;;;;;;ACjBa;AACb,eAAe,mBAAO,CAAC,IAAwB;AAC/C,oBAAoB,mBAAO,CAAC,IAA6B;;AAEzD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;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AEA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtEa;AACb,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,gBAAgB,mBAAO,CAAC,IAAwB;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACVa;AACb,cAAc,mBAAO,CAAC,IAA0B;;AAEhD;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRa;AACb,cAAc,mBAAO,CAAC,IAAsB;;AAE5C;AACA;AACA;AACA;;;;;;;;ACNa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;ACXa;AACb,YAAY,mBAAO,CAAC,IAAoB;AACxC,iBAAiB,mBAAO,CAAC,IAA0B;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;ACtBa;AACb;AACA;AACA;AACA;AACA;;;;;;;;ACLa;AACb,iBAAiB,mBAAO,CAAC,IAA0B;;AAEnD;AACA;AACA;;;;;;;;ACLa;AACb,eAAe,mBAAO,CAAC,EAAwB;;AAE/C;AACA;AACA;;;;;;;;ACLa;AACb;;;;;;;;ACDa;AACb,iBAAiB,mBAAO,CAAC,IAA2B;AACpD,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,oBAAoB,mBAAO,CAAC,IAAqC;AACjE,wBAAwB,mBAAO,CAAC,IAAgC;;AAEhE;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;;;;;;;ACba;AACb,WAAW,mBAAO,CAAC,IAA4B;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXa;AACb,WAAW,mBAAO,CAA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B,mBAAO,CAAC,IAA6B;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,aAAa,cAAc,UAAU;AAC3E,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iCAAiC;AACtF;AACA;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA,4DAA4D,iBAAiB;AAC7E;AACA,MAAM;AACN,IAAI,gBAAgB;AACpB;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACtDY;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVa;AACb,gBAAgB,mBAAO,CAAC,IAAyB;;AAEjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;;;;;;;;ACpBa;AACb;AACA,eAAe,mBAAO,CAAC,IAAwB;AAC/C,6BAA6B,mBAAO,CAAC,IAAuC;AAC5E,kBAAkB,mBAAO,CAAC,IAA4B;AACtD,iBAAiB,mBAAO,CAAC,GAA0B;AACnD,WAAW,mBAAO,CAAC,GAAmB;AACtC,4BAA4B,mBAAO,CAAC,IAAsC;AAC1E,gBAAgB,mBAAO,CAAC,IAAyB;;AAEjD;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;;;;;;;ACpFa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,8BAA8B,mBAAO,CAAC,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,WAAW;AACxD;;AAEA;AACA;AACA;AACA,iEAAiE,sBAAsB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA,MAAM;AACN;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,QAAQ,mBAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA,GAAG;AACH;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,IAAI,uDAAuD;AAC3D;AACA;AACA;AACA,CAAC;;;;;;;;AC1PY;AACb,oBAAoB,mBAAO,CAAC,IAA8B;AAC1D,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,eAAe,mBAAO,CAAC,GAAwB;AAC/C,8BAA8B,mBAAO,CAAC,IAAwC;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,sBAAsB,kBAAkB;AACxC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI,gCAAgC;AACvC;;;;;;;;AChDa;AACb,oBAAoB,mBAAO,CAAC,IAA8B;AAC1D,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,eAAe,mBAAO,CAAC,GAAwB;AAC/C,8BAA8B,mBAAO,CAAC,IAAwC;;AAE9E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,GAAG,IAAI,gCAAgC;AACvC;;;;;;;;AC3Ba;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,4BAA4B,mBAAO,CAAC,IAAuC;;AAE3E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;;;;;;SCpBA;SACA;;SAEA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;;SAEA;SACA;;SAEA;SACA;SACA;;;;;UCtBA;UACA;UACA;UACA;UACA,yCAAyC,wCAAwC;UACjF;UACA;UACA;;;;;UCPA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","sources":["webpack://pdf.js/./node_modules/core-js/internals/a-callable.js","webpack://pdf.js/./node_modules/core-js/internals/a-possible-prototype.js","webpack://pdf.js/./node_modules/core-js/internals/a-set.js","webpack://pdf.js/./node_modules/core-js/internals/an-instance.js","webpack://pdf.js/./node_modules/core-js/internals/an-object.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-byte-length.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-is-detached.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-not-detached.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-transfer.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://pdf.js/./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack://pdf.js/./node_modules/core-js/internals/array-includes.js","webpack://pdf.js/./node_modules/core-js/internals/array-set-length.js","webpack://pdf.js/./node_modules/core-js/internals/array-to-reversed.js","webpack://pdf.js/./node_modules/core-js/internals/array-with.js","webpack://pdf.js/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://pdf.js/./node_modules/core-js/internals/classof-raw.js","webpack://pdf.js/./node_modules/core-js/internals/classof.js","webpack://pdf.js/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdf.js/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdf.js/./node_modules/core-js/internals/create-iter-result-object.js","webpack://pdf.js/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdf.js/./node_modules/core-js/internals/create-property-descriptor.js","webpack://pdf.js/./node_modules/core-js/internals/create-property.js","webpack://pdf.js/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://pdf.js/./node_modules/core-js/internals/define-built-in.js","webpack://pdf.js/./node_modules/core-js/internals/define-built-ins.js","webpack://pdf.js/./node_modules/core-js/internals/define-global-property.js","webpack://pdf.js/./node_modules/core-js/internals/descriptors.js","webpack://pdf.js/./node_modules/core-js/internals/detach-transferable.js","webpack://pdf.js/./node_modules/core-js/internals/document-create-element.js","webpack://pdf.js/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://pdf.js/./node_modules/core-js/internals/enum-bug-keys.js","webpack://pdf.js/./node_modules/core-js/internals/environment-is-node.js","webpack://pdf.js/./node_modules/core-js/internals/environment-user-agent.js","webpack://pdf.js/./node_modules/core-js/internals/environment-v8-version.js","webpack://pdf.js/./node_modules/core-js/internals/environment.js","webpack://pdf.js/./node_modules/core-js/internals/export.js","webpack://pdf.js/./node_modules/core-js/internals/fails.js","webpack://pdf.js/./node_modules/core-js/internals/function-bind-context.js","webpack://pdf.js/./node_modules/core-js/internals/function-bind-native.js","webpack://pdf.js/./node_modules/core-js/internals/function-call.js","webpack://pdf.js/./node_modules/core-js/internals/function-name.js","webpack://pdf.js/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://pdf.js/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://pdf.js/./node_modules/core-js/internals/function-uncurry-this.js","webpack://pdf.js/./node_modules/core-js/internals/get-built-in-node-module.js","webpack://pdf.js/./node_modules/core-js/internals/get-built-in.js","webpack://pdf.js/./node_modules/core-js/internals/get-iterator-direct.js","webpack://pdf.js/./node_modules/core-js/internals/get-iterator-method.js","webpack://pdf.js/./node_modules/core-js/internals/get-iterator.js","webpack://pdf.js/./node_modules/core-js/internals/get-method.js","webpack://pdf.js/./node_modules/core-js/internals/get-set-record.js","webpack://pdf.js/./node_modules/core-js/internals/global-this.js","webpack://pdf.js/./node_modules/core-js/internals/has-own-property.js","webpack://pdf.js/./node_modules/core-js/internals/hidden-keys.js","webpack://pdf.js/./node_modules/core-js/internals/html.js","webpack://pdf.js/./node_modules/core-js/internals/ie8-dom-define.js","webpack://pdf.js/./node_modules/core-js/internals/indexed-object.js","webpack://pdf.js/./node_modules/core-js/internals/inspect-source.js","webpack://pdf.js/./node_modules/core-js/internals/internal-state.js","webpack://pdf.js/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://pdf.js/./node_modules/core-js/internals/is-array.js","webpack://pdf.js/./node_modules/core-js/internals/is-big-int-array.js","webpack://pdf.js/./node_modules/core-js/internals/is-callable.js","webpack://pdf.js/./node_modules/core-js/internals/is-forced.js","webpack://pdf.js/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://pdf.js/./node_modules/core-js/internals/is-object.js","webpack://pdf.js/./node_modules/core-js/internals/is-possible-prototype.js","webpack://pdf.js/./node_modules/core-js/internals/is-pure.js","webpack://pdf.js/./node_modules/core-js/internals/is-symbol.js","webpack://pdf.js/./node_modules/core-js/internals/iterate-simple.js","webpack://pdf.js/./node_modules/core-js/internals/iterate.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-close.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-create-proxy.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-map.js","webpack://pdf.js/./node_modules/core-js/internals/iterators-core.js","webpack://pdf.js/./node_modules/core-js/internals/iterators.js","webpack://pdf.js/./node_modules/core-js/internals/length-of-array-like.js","webpack://pdf.js/./node_modules/core-js/internals/make-built-in.js","webpack://pdf.js/./node_modules/core-js/internals/math-trunc.js","webpack://pdf.js/./node_modules/core-js/internals/new-promise-capability.js","webpack://pdf.js/./node_modules/core-js/internals/object-create.js","webpack://pdf.js/./node_modules/core-js/internals/object-define-properties.js","webpack://pdf.js/./node_modules/core-js/internals/object-define-property.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdf.js/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://pdf.js/./node_modules/core-js/internals/object-keys-internal.js","webpack://pdf.js/./node_modules/core-js/internals/object-keys.js","webpack://pdf.js/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdf.js/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdf.js/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://pdf.js/./node_modules/core-js/internals/own-keys.js","webpack://pdf.js/./node_modules/core-js/internals/parse-json-string.js","webpack://pdf.js/./node_modules/core-js/internals/require-object-coercible.js","webpack://pdf.js/./node_modules/core-js/internals/set-clone.js","webpack://pdf.js/./node_modules/core-js/internals/set-difference.js","webpack://pdf.js/./node_modules/core-js/internals/set-helpers.js","webpack://pdf.js/./node_modules/core-js/internals/set-intersection.js","webpack://pdf.js/./node_modules/core-js/internals/set-is-disjoint-from.js","webpack://pdf.js/./node_modules/core-js/internals/set-is-subset-of.js","webpack://pdf.js/./node_modules/core-js/internals/set-is-superset-of.js","webpack://pdf.js/./node_modules/core-js/internals/set-iterate.js","webpack://pdf.js/./node_modules/core-js/internals/set-method-accept-set-like.js","webpack://pdf.js/./node_modules/core-js/internals/set-size.js","webpack://pdf.js/./node_modules/core-js/internals/set-symmetric-difference.js","webpack://pdf.js/./node_modules/core-js/internals/set-union.js","webpack://pdf.js/./node_modules/core-js/internals/shared-key.js","webpack://pdf.js/./node_modules/core-js/internals/shared-store.js","webpack://pdf.js/./node_modules/core-js/internals/shared.js","webpack://pdf.js/./node_modules/core-js/internals/structured-clone-proper-transfer.js","webpack://pdf.js/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://pdf.js/./node_modules/core-js/internals/to-absolute-index.js","webpack://pdf.js/./node_modules/core-js/internals/to-big-int.js","webpack://pdf.js/./node_modules/core-js/internals/to-index.js","webpack://pdf.js/./node_modules/core-js/internals/to-indexed-object.js","webpack://pdf.js/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://pdf.js/./node_modules/core-js/internals/to-length.js","webpack://pdf.js/./node_modules/core-js/internals/to-object.js","webpack://pdf.js/./node_modules/core-js/internals/to-primitive.js","webpack://pdf.js/./node_modules/core-js/internals/to-property-key.js","webpack://pdf.js/./node_modules/core-js/internals/to-string-tag-support.js","webpack://pdf.js/./node_modules/core-js/internals/to-string.js","webpack://pdf.js/./node_modules/core-js/internals/try-to-string.js","webpack://pdf.js/./node_modules/core-js/internals/uid.js","webpack://pdf.js/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdf.js/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://pdf.js/./node_modules/core-js/internals/validate-arguments-length.js","webpack://pdf.js/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://pdf.js/./node_modules/core-js/internals/well-known-symbol.js","webpack://pdf.js/./node_modules/core-js/modules/es.array-buffer.detached.js","webpack://pdf.js/./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js","webpack://pdf.js/./node_modules/core-js/modules/es.array-buffer.transfer.js","webpack://pdf.js/./node_modules/core-js/modules/es.array.push.js","webpack://pdf.js/./node_modules/core-js/modules/es.iterator.constructor.js","webpack://pdf.js/./node_modules/core-js/modules/es.iterator.every.js","webpack://pdf.js/./node_modules/core-js/modules/es.iterator.filter.js","webpack://pdf.js/./node_modules/core-js/modules/es.iterator.for-each.js","webpack://pdf.js/./node_modules/core-js/modules/es.iterator.map.js","webpack://pdf.js/./node_modules/core-js/modules/es.iterator.some.js","webpack://pdf.js/./node_modules/core-js/modules/es.promise.with-resolvers.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.difference.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.intersection.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.is-subset-of.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.is-superset-of.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.symmetric-difference.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.union.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.typed-array.to-reversed.js","webpack://pdf.js/./node_modules/core-js/modules/es.typed-array.to-sorted.js","webpack://pdf.js/./node_modules/core-js/modules/es.typed-array.with.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.iterator.constructor.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.iterator.every.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.iterator.filter.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.iterator.for-each.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.iterator.map.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.iterator.some.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.json.parse.js","webpack://pdf.js/./node_modules/core-js/modules/web.url-search-params.delete.js","webpack://pdf.js/./node_modules/core-js/modules/web.url-search-params.has.js","webpack://pdf.js/./node_modules/core-js/modules/web.url-search-params.size.js","webpack://pdf.js/webpack/bootstrap","webpack://pdf.js/webpack/runtime/define property getters","webpack://pdf.js/webpack/runtime/hasOwnProperty shorthand","webpack://pdf.js/./web/ui_utils.js","webpack://pdf.js/./web/app_options.js","webpack://pdf.js/./web/pdf_link_service.js","webpack://pdf.js/./web/pdfjs.js","webpack://pdf.js/./web/event_utils.js","webpack://pdf.js/./web/external_services.js","webpack://pdf.js/./web/preferences.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/types.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/resolver.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/scope.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/builtins.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/memoizer.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/bundle.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/resource.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/index.js","webpack://pdf.js/./node_modules/@fluent/dom/esm/overlay.js","webpack://pdf.js/./node_modules/cached-iterable/src/cached_iterable.mjs","webpack://pdf.js/./node_modules/cached-iterable/src/cached_sync_iterable.mjs","webpack://pdf.js/./node_modules/cached-iterable/src/cached_async_iterable.mjs","webpack://pdf.js/./node_modules/cached-iterable/src/index.mjs","webpack://pdf.js/./node_modules/@fluent/dom/esm/localization.js","webpack://pdf.js/./node_modules/@fluent/dom/esm/dom_localization.js","webpack://pdf.js/./node_modules/@fluent/dom/esm/index.js","webpack://pdf.js/./web/l10n.js","webpack://pdf.js/./web/genericl10n.js","webpack://pdf.js/./web/generic_scripting.js","webpack://pdf.js/./web/genericcom.js","webpack://pdf.js/./web/new_alt_text_manager.js","webpack://pdf.js/./web/alt_text_manager.js","webpack://pdf.js/./web/annotation_editor_params.js","webpack://pdf.js/./web/caret_browsing.js","webpack://pdf.js/./web/download_manager.js","webpack://pdf.js/./web/editor_undo_bar.js","webpack://pdf.js/./web/overlay_manager.js","webpack://pdf.js/./web/password_prompt.js","webpack://pdf.js/./web/base_tree_viewer.js","webpack://pdf.js/./web/pdf_attachment_viewer.js","webpack://pdf.js/./web/grab_to_pan.js","webpack://pdf.js/./web/pdf_cursor_tools.js","webpack://pdf.js/./web/pdf_document_properties.js","webpack://pdf.js/./web/pdf_find_utils.js","webpack://pdf.js/./web/pdf_find_controller.js","webpack://pdf.js/./web/pdf_find_bar.js","webpack://pdf.js/./web/pdf_history.js","webpack://pdf.js/./web/pdf_layer_viewer.js","webpack://pdf.js/./web/pdf_outline_viewer.js","webpack://pdf.js/./web/pdf_presentation_mode.js","webpack://pdf.js/./web/xfa_layer_builder.js","webpack://pdf.js/./web/print_utils.js","webpack://pdf.js/./web/pdf_print_service.js","webpack://pdf.js/./web/pdf_rendering_queue.js","webpack://pdf.js/./web/pdf_scripting_manager.js","webpack://pdf.js/./web/pdf_sidebar.js","webpack://pdf.js/./web/pdf_thumbnail_view.js","webpack://pdf.js/./web/pdf_thumbnail_viewer.js","webpack://pdf.js/./web/annotation_editor_layer_builder.js","webpack://pdf.js/./web/annotation_layer_builder.js","webpack://pdf.js/./web/draw_layer_builder.js","webpack://pdf.js/./web/struct_tree_layer_builder.js","webpack://pdf.js/./web/text_accessibility.js","webpack://pdf.js/./web/text_highlighter.js","webpack://pdf.js/./web/text_layer_builder.js","webpack://pdf.js/./web/pdf_page_view.js","webpack://pdf.js/./web/pdf_viewer.js","webpack://pdf.js/./web/secondary_toolbar.js","webpack://pdf.js/./web/toolbar.js","webpack://pdf.js/./web/view_history.js","webpack://pdf.js/./web/app.js","webpack://pdf.js/./web/viewer.js"],"sourcesContent":["'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar has = require('../internals/set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar classof = require('../internals/classof-raw');\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar TypeError = globalThis.TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = ArrayBuffer && uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n if (classof(O) !== 'ArrayBuffer') throw new TypeError('ArrayBuffer expected');\n return O.byteLength;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer && ArrayBuffer.prototype;\nvar slice = ArrayBufferPrototype && uncurryThis(ArrayBufferPrototype.slice);\n\nmodule.exports = function (O) {\n if (arrayBufferByteLength(O) !== 0) return false;\n if (!slice) return false;\n try {\n slice(O, 0, 0);\n return false;\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isDetached(it)) throw new $TypeError('ArrayBuffer is detached');\n return it;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar toIndex = require('../internals/to-index');\nvar notDetached = require('../internals/array-buffer-not-detached');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\nvar detachTransferable = require('../internals/detach-transferable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar DataView = globalThis.DataView;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {\n var byteLength = arrayBufferByteLength(arrayBuffer);\n var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);\n var fixedLength = !isResizable || !isResizable(arrayBuffer);\n var newBuffer;\n notDetached(arrayBuffer);\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;\n }\n if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {\n newBuffer = slice(arrayBuffer, 0, newByteLength);\n } else {\n var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined;\n newBuffer = new ArrayBuffer(newByteLength, options);\n var a = new DataView(arrayBuffer);\n var b = new DataView(newBuffer);\n var copyLength = min(newByteLength, byteLength);\n for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));\n }\n if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);\n return newBuffer;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = globalThis.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = globalThis.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(globalThis.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw new TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (globalThis[NAME]) {\n createNonEnumerableProperty(globalThis[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list, $length) {\n var index = 0;\n var length = arguments.length > 2 ? $length : lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed\nmodule.exports = function (O, C) {\n var len = lengthOfArrayLike(O);\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = O[len - k - 1];\n return A;\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with\nmodule.exports = function (O, C, index, value) {\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = k === actualIndex ? value : O[k];\n return A;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getBuiltInNodeModule = require('../internals/get-built-in-node-module');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar $ArrayBuffer = globalThis.ArrayBuffer;\nvar $MessageChannel = globalThis.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n detach = function (transferable) {\n structuredClone(transferable, { transfer: [transferable] });\n };\n} else if ($ArrayBuffer) try {\n if (!$MessageChannel) {\n WorkerThreads = getBuiltInNodeModule('worker_threads');\n if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n }\n\n if ($MessageChannel) {\n channel = new $MessageChannel();\n buffer = new $ArrayBuffer(2);\n\n $detach = function (transferable) {\n channel.port1.postMessage(null, [transferable]);\n };\n\n if (buffer.byteLength === 2) {\n $detach(buffer);\n if (buffer.byteLength === 0) detach = $detach;\n }\n }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar IS_NODE = require('../internals/environment-is-node');\n\nmodule.exports = function (name) {\n if (IS_NODE) {\n try {\n return globalThis.process.getBuiltinModule(name);\n } catch (error) { /* empty */ }\n try {\n // eslint-disable-next-line no-new-func -- safe\n return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: obj.next,\n done: false\n };\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n this.set = set;\n this.size = max(intSize, 0);\n this.has = aCallable(set.has);\n this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n getIterator: function () {\n return getIteratorDirect(anObject(call(this.keys, this.set)));\n },\n includes: function (it) {\n return call(this.has, this.set, it);\n }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n anObject(obj);\n var numSize = +obj.size;\n // NOTE: If size is undefined, then numSize will be NaN\n // eslint-disable-next-line no-self-compare -- NaN check\n if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n var intSize = toIntegerOrInfinity(numSize);\n if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n return new SetRecord(obj, intSize);\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n var next = record.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n return defineBuiltIns(create(IteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n // for simplification:\n // for `%WrapForValidIteratorPrototype%.next` our `nextHandler` returns `IterResultObject`\n // for `%IteratorHelperPrototype%.next` - just a value\n if (IS_ITERATOR) return state.nextHandler();\n try {\n var result = state.done ? undefined : state.nextHandler();\n return createIterResultObject(result, state.done);\n } catch (error) {\n state.done = true;\n throw error;\n }\n },\n 'return': function () {\n var state = getInternalState(this);\n var iterator = state.iterator;\n state.done = true;\n if (IS_ITERATOR) {\n var returnMethod = getMethod(iterator, 'return');\n return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n }\n if (state.inner) try {\n iteratorClose(state.inner.iterator, 'normal');\n } catch (error) {\n return iteratorClose(iterator, 'throw', error);\n }\n if (iterator) iteratorClose(iterator, 'normal');\n return createIterResultObject(undefined, true);\n }\n });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n var IteratorProxy = function Iterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n return IteratorProxy;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function map(mapper) {\n anObject(this);\n aCallable(mapper);\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\n\nvar $SyntaxError = SyntaxError;\nvar $parseInt = parseInt;\nvar fromCharCode = String.fromCharCode;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\n\nvar codePoints = {\n '\\\\\"': '\"',\n '\\\\\\\\': '\\\\',\n '\\\\/': '/',\n '\\\\b': '\\b',\n '\\\\f': '\\f',\n '\\\\n': '\\n',\n '\\\\r': '\\r',\n '\\\\t': '\\t'\n};\n\nvar IS_4_HEX_DIGITS = /^[\\da-f]{4}$/i;\n// eslint-disable-next-line regexp/no-control-character -- safe\nvar IS_C0_CONTROL_CODE = /^[\\u0000-\\u001F]$/;\n\nmodule.exports = function (source, i) {\n var unterminated = true;\n var value = '';\n while (i < source.length) {\n var chr = at(source, i);\n if (chr === '\\\\') {\n var twoChars = slice(source, i, i + 2);\n if (hasOwn(codePoints, twoChars)) {\n value += codePoints[twoChars];\n i += 2;\n } else if (twoChars === '\\\\u') {\n i += 2;\n var fourHexDigits = slice(source, i, i + 4);\n if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw new $SyntaxError('Bad Unicode escape at: ' + i);\n value += fromCharCode($parseInt(fourHexDigits, 16));\n i += 4;\n } else throw new $SyntaxError('Unknown escape sequence: \"' + twoChars + '\"');\n } else if (chr === '\"') {\n unterminated = false;\n i++;\n break;\n } else {\n if (exec(IS_C0_CONTROL_CODE, chr)) throw new $SyntaxError('Bad control character in string literal at: ' + i);\n value += chr;\n i++;\n }\n }\n if (unterminated) throw new $SyntaxError('Unterminated string at: ' + i);\n return { value: value, end: i };\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n var result = new Set();\n iterate(set, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function difference(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = clone(O);\n if (size(O) <= otherRec.size) iterateSet(O, function (e) {\n if (otherRec.includes(e)) remove(result, e);\n });\n else iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) remove(result, e);\n });\n return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-set -- safe\n Set: Set,\n add: uncurryThis(SetPrototype.add),\n has: uncurryThis(SetPrototype.has),\n remove: uncurryThis(SetPrototype['delete']),\n proto: SetPrototype\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function intersection(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = new Set();\n\n if (size(O) > otherRec.size) {\n iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) add(result, e);\n });\n } else {\n iterateSet(O, function (e) {\n if (otherRec.includes(e)) add(result, e);\n });\n }\n\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom\nmodule.exports = function isDisjointFrom(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n if (otherRec.includes(e)) return false;\n }, true) !== false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf\nmodule.exports = function isSubsetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) > otherRec.size) return false;\n return iterate(O, function (e) {\n if (!otherRec.includes(e)) return false;\n }, true) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf\nmodule.exports = function isSupersetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) < otherRec.size) return false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar createSetLike = function (size) {\n return {\n size: size,\n has: function () {\n return false;\n },\n keys: function () {\n return {\n next: function () {\n return { done: true };\n }\n };\n }\n };\n};\n\nmodule.exports = function (name) {\n var Set = getBuiltIn('Set');\n try {\n new Set()[name](createSetLike(0));\n try {\n // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it\n // https://github.com/tc39/proposal-set-methods/pull/88\n new Set()[name](createSetLike(-1));\n return false;\n } catch (error2) {\n return true;\n }\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n return set.size;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function symmetricDifference(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (e) {\n if (has(O, e)) remove(result, e);\n else add(result, e);\n });\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function union(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.39.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.39.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/environment-v8-version');\nvar ENVIRONMENT = require('../internals/environment');\n\nvar structuredClone = globalThis.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = structuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw new $RangeError('Wrong length or index');\n return length;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\n// `ArrayBuffer.prototype.detached` getter\n// https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.detached\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n configurable: true,\n get: function detached() {\n return isDetached(this);\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transferToFixedLength: function transferToFixedLength() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transfer: function transfer() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar CONSTRUCTOR = 'constructor';\nvar ITERATOR = 'Iterator';\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\nvar NativeIterator = globalThis[ITERATOR];\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n || !isCallable(NativeIterator)\n || NativeIterator.prototype !== IteratorPrototype\n // FF44- non-standard `Iterator` passes previous tests\n || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n anInstance(this, IteratorPrototype);\n if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');\n};\n\nvar defineIteratorPrototypeAccessor = function (key, value) {\n if (DESCRIPTORS) {\n defineBuiltInAccessor(IteratorPrototype, key, {\n configurable: true,\n get: function () {\n return value;\n },\n set: function (replacement) {\n anObject(this);\n if (this === IteratorPrototype) throw new $TypeError(\"You can't redefine this property\");\n if (hasOwn(this, key)) this[key] = replacement;\n else createProperty(this, key, replacement);\n }\n });\n } else IteratorPrototype[key] = value;\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);\n\nif (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {\n defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://tc39.es/ecma262/#sec-iterator\n$({ global: true, constructor: true, forced: FORCED }, {\n Iterator: IteratorConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.every` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.every\n$({ target: 'Iterator', proto: true, real: true }, {\n every: function every(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return !iterate(record, function (value, stop) {\n if (!predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var predicate = this.predicate;\n var next = this.next;\n var result, done, value;\n while (true) {\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n value = result.value;\n if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n }\n});\n\n// `Iterator.prototype.filter` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.filter\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n filter: function filter(predicate) {\n anObject(this);\n aCallable(predicate);\n return new IteratorProxy(getIteratorDirect(this), {\n predicate: predicate\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.foreach\n$({ target: 'Iterator', proto: true, real: true }, {\n forEach: function forEach(fn) {\n anObject(this);\n aCallable(fn);\n var record = getIteratorDirect(this);\n var counter = 0;\n iterate(record, function (value) {\n fn(value, counter++);\n }, { IS_RECORD: true });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar map = require('../internals/iterator-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Iterator.prototype.map` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.map\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n map: map\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.some` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.some\n$({ target: 'Iterator', proto: true, real: true }, {\n some: function some(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\n// `Promise.withResolvers` method\n// https://tc39.es/ecma262/#sec-promise.withResolvers\n$({ target: 'Promise', stat: true }, {\n withResolvers: function withResolvers() {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n return {\n promise: promiseCapability.promise,\n resolve: promiseCapability.resolve,\n reject: promiseCapability.reject\n };\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar difference = require('../internals/set-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, {\n difference: difference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar intersection = require('../internals/set-intersection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () {\n // eslint-disable-next-line es/no-array-from, es/no-set -- testing\n return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n intersection: intersection\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, {\n isDisjointFrom: isDisjointFrom\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, {\n isSubsetOf: isSubsetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, {\n isSupersetOf: isSupersetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {\n symmetricDifference: symmetricDifference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {\n union: union\n});\n","'use strict';\nvar arrayToReversed = require('../internals/array-to-reversed');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// `%TypedArray%.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed\nexportTypedArrayMethod('toReversed', function toReversed() {\n return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this));\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);\n\n// `%TypedArray%.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted\nexportTypedArrayMethod('toSorted', function toSorted(compareFn) {\n if (compareFn !== undefined) aCallable(compareFn);\n var O = aTypedArray(this);\n var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O);\n return sort(A, compareFn);\n});\n","'use strict';\nvar arrayWith = require('../internals/array-with');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar PROPER_ORDER = !!function () {\n try {\n // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n } catch (error) {\n // some early implementations, like WebKit, does not follow the final semantic\n // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n return error === 8;\n }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n var O = aTypedArray(this);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualValue = isBigIntArray(O) ? toBigInt(value) : +value;\n return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue);\n} }['with'], !PROPER_ORDER);\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.constructor');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.every');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.filter');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.for-each');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.map');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.iterator.some');\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar parseJSONString = require('../internals/parse-json-string');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar JSON = globalThis.JSON;\nvar Number = globalThis.Number;\nvar SyntaxError = globalThis.SyntaxError;\nvar nativeParse = JSON && JSON.parse;\nvar enumerableOwnProperties = getBuiltIn('Object', 'keys');\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis([].push);\n\nvar IS_DIGIT = /^\\d$/;\nvar IS_NON_ZERO_DIGIT = /^[1-9]$/;\nvar IS_NUMBER_START = /^[\\d-]$/;\nvar IS_WHITESPACE = /^[\\t\\n\\r ]$/;\n\nvar PRIMITIVE = 0;\nvar OBJECT = 1;\n\nvar $parse = function (source, reviver) {\n source = toString(source);\n var context = new Context(source, 0, '');\n var root = context.parse();\n var value = root.value;\n var endIndex = context.skip(IS_WHITESPACE, root.end);\n if (endIndex < source.length) {\n throw new SyntaxError('Unexpected extra character: \"' + at(source, endIndex) + '\" after the parsed data at: ' + endIndex);\n }\n return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value;\n};\n\nvar internalize = function (holder, name, reviver, node) {\n var val = holder[name];\n var unmodified = node && val === node.value;\n var context = unmodified && typeof node.source == 'string' ? { source: node.source } : {};\n var elementRecordsLen, keys, len, i, P;\n if (isObject(val)) {\n var nodeIsArray = isArray(val);\n var nodes = unmodified ? node.nodes : nodeIsArray ? [] : {};\n if (nodeIsArray) {\n elementRecordsLen = nodes.length;\n len = lengthOfArrayLike(val);\n for (i = 0; i < len; i++) {\n internalizeProperty(val, i, internalize(val, '' + i, reviver, i < elementRecordsLen ? nodes[i] : undefined));\n }\n } else {\n keys = enumerableOwnProperties(val);\n len = lengthOfArrayLike(keys);\n for (i = 0; i < len; i++) {\n P = keys[i];\n internalizeProperty(val, P, internalize(val, P, reviver, hasOwn(nodes, P) ? nodes[P] : undefined));\n }\n }\n }\n return call(reviver, holder, name, val, context);\n};\n\nvar internalizeProperty = function (object, key, value) {\n if (DESCRIPTORS) {\n var descriptor = getOwnPropertyDescriptor(object, key);\n if (descriptor && !descriptor.configurable) return;\n }\n if (value === undefined) delete object[key];\n else createProperty(object, key, value);\n};\n\nvar Node = function (value, end, source, nodes) {\n this.value = value;\n this.end = end;\n this.source = source;\n this.nodes = nodes;\n};\n\nvar Context = function (source, index) {\n this.source = source;\n this.index = index;\n};\n\n// https://www.json.org/json-en.html\nContext.prototype = {\n fork: function (nextIndex) {\n return new Context(this.source, nextIndex);\n },\n parse: function () {\n var source = this.source;\n var i = this.skip(IS_WHITESPACE, this.index);\n var fork = this.fork(i);\n var chr = at(source, i);\n if (exec(IS_NUMBER_START, chr)) return fork.number();\n switch (chr) {\n case '{':\n return fork.object();\n case '[':\n return fork.array();\n case '\"':\n return fork.string();\n case 't':\n return fork.keyword(true);\n case 'f':\n return fork.keyword(false);\n case 'n':\n return fork.keyword(null);\n } throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n },\n node: function (type, value, start, end, nodes) {\n return new Node(value, end, type ? null : slice(this.source, start, end), nodes);\n },\n object: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectKeypair = false;\n var object = {};\n var nodes = {};\n while (i < source.length) {\n i = this.until(['\"', '}'], i);\n if (at(source, i) === '}' && !expectKeypair) {\n i++;\n break;\n }\n // Parsing the key\n var result = this.fork(i).string();\n var key = result.value;\n i = result.end;\n i = this.until([':'], i) + 1;\n // Parsing value\n i = this.skip(IS_WHITESPACE, i);\n result = this.fork(i).parse();\n createProperty(nodes, key, result);\n createProperty(object, key, result.value);\n i = this.until([',', '}'], result.end);\n var chr = at(source, i);\n if (chr === ',') {\n expectKeypair = true;\n i++;\n } else if (chr === '}') {\n i++;\n break;\n }\n }\n return this.node(OBJECT, object, this.index, i, nodes);\n },\n array: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectElement = false;\n var array = [];\n var nodes = [];\n while (i < source.length) {\n i = this.skip(IS_WHITESPACE, i);\n if (at(source, i) === ']' && !expectElement) {\n i++;\n break;\n }\n var result = this.fork(i).parse();\n push(nodes, result);\n push(array, result.value);\n i = this.until([',', ']'], result.end);\n if (at(source, i) === ',') {\n expectElement = true;\n i++;\n } else if (at(source, i) === ']') {\n i++;\n break;\n }\n }\n return this.node(OBJECT, array, this.index, i, nodes);\n },\n string: function () {\n var index = this.index;\n var parsed = parseJSONString(this.source, this.index + 1);\n return this.node(PRIMITIVE, parsed.value, index, parsed.end);\n },\n number: function () {\n var source = this.source;\n var startIndex = this.index;\n var i = startIndex;\n if (at(source, i) === '-') i++;\n if (at(source, i) === '0') i++;\n else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, i + 1);\n else throw new SyntaxError('Failed to parse number at: ' + i);\n if (at(source, i) === '.') i = this.skip(IS_DIGIT, i + 1);\n if (at(source, i) === 'e' || at(source, i) === 'E') {\n i++;\n if (at(source, i) === '+' || at(source, i) === '-') i++;\n var exponentStartIndex = i;\n i = this.skip(IS_DIGIT, i);\n if (exponentStartIndex === i) throw new SyntaxError(\"Failed to parse number's exponent value at: \" + i);\n }\n return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i);\n },\n keyword: function (value) {\n var keyword = '' + value;\n var index = this.index;\n var endIndex = index + keyword.length;\n if (slice(this.source, index, endIndex) !== keyword) throw new SyntaxError('Failed to parse value at: ' + index);\n return this.node(PRIMITIVE, value, index, endIndex);\n },\n skip: function (regex, i) {\n var source = this.source;\n for (; i < source.length; i++) if (!exec(regex, at(source, i))) break;\n return i;\n },\n until: function (array, i) {\n i = this.skip(IS_WHITESPACE, i);\n var chr = at(this.source, i);\n for (var j = 0; j < array.length; j++) if (array[j] === chr) return i;\n throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n }\n};\n\nvar NO_SOURCE_SUPPORT = fails(function () {\n var unsafeInt = '9007199254740993';\n var source;\n nativeParse(unsafeInt, function (key, value, context) {\n source = context.source;\n });\n return source !== unsafeInt;\n});\n\nvar PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () {\n // Safari 9 bug\n return 1 / nativeParse('-0 \\t') !== -Infinity;\n});\n\n// `JSON.parse` method\n// https://tc39.es/ecma262/#sec-json.parse\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, {\n parse: function parse(text, reviver) {\n return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver);\n }\n});\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $delete(this, name);\n var entries = [];\n forEach(this, function (v, k) { // also validates `this`\n push(entries, { key: k, value: v });\n });\n validateArgumentsLength(length, 1);\n var key = toString(name);\n var value = toString($value);\n var index = 0;\n var dindex = 0;\n var found = false;\n var entriesLength = entries.length;\n var entry;\n while (index < entriesLength) {\n entry = entries[index++];\n if (found || entry.key === key) {\n found = true;\n $delete(this, entry.key);\n } else dindex++;\n }\n while (dindex < entriesLength) {\n entry = entries[dindex++];\n if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n }\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $has(this, name);\n var values = getAll(this, name); // also validates `this`\n validateArgumentsLength(length, 1);\n var value = toString($value);\n var index = 0;\n while (index < values.length) {\n if (values[index++] === value) return true;\n } return false;\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n var count = 0;\n forEach(this, function () { count++; });\n return count;\n },\n configurable: true,\n enumerable: true\n });\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst DEFAULT_SCALE_VALUE = \"auto\";\nconst DEFAULT_SCALE = 1.0;\nconst DEFAULT_SCALE_DELTA = 1.1;\nconst MIN_SCALE = 0.1;\nconst MAX_SCALE = 10.0;\nconst UNKNOWN_SCALE = 0;\nconst MAX_AUTO_SCALE = 1.25;\nconst SCROLLBAR_PADDING = 40;\nconst VERTICAL_PADDING = 5;\n\nconst RenderingStates = {\n INITIAL: 0,\n RUNNING: 1,\n PAUSED: 2,\n FINISHED: 3,\n};\n\nconst PresentationModeState = {\n UNKNOWN: 0,\n NORMAL: 1,\n CHANGING: 2,\n FULLSCREEN: 3,\n};\n\nconst SidebarView = {\n UNKNOWN: -1,\n NONE: 0,\n THUMBS: 1, // Default value.\n OUTLINE: 2,\n ATTACHMENTS: 3,\n LAYERS: 4,\n};\n\nconst TextLayerMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_PERMISSIONS: 2,\n};\n\nconst ScrollMode = {\n UNKNOWN: -1,\n VERTICAL: 0, // Default value.\n HORIZONTAL: 1,\n WRAPPED: 2,\n PAGE: 3,\n};\n\nconst SpreadMode = {\n UNKNOWN: -1,\n NONE: 0, // Default value.\n ODD: 1,\n EVEN: 2,\n};\n\nconst CursorTool = {\n SELECT: 0, // The default value.\n HAND: 1,\n ZOOM: 2,\n};\n\n// Used by `PDFViewerApplication`, and by the API unit-tests.\nconst AutoPrintRegExp = /\\bprint\\s*\\(/;\n\n/**\n * Scrolls specified element into view of its parent.\n * @param {HTMLElement} element - The element to be visible.\n * @param {Object} [spot] - An object with optional top and left properties,\n * specifying the offset from the top left edge.\n * @param {number} [spot.left]\n * @param {number} [spot.top]\n * @param {boolean} [scrollMatches] - When scrolling search results into view,\n * ignore elements that either: Contains marked content identifiers,\n * or have the CSS-rule `overflow: hidden;` set. The default value is `false`.\n */\nfunction scrollIntoView(element, spot, scrollMatches = false) {\n // Assuming offsetParent is available (it's not available when viewer is in\n // hidden iframe or object). We have to scroll: if the offsetParent is not set\n // producing the error. See also animationStarted.\n let parent = element.offsetParent;\n if (!parent) {\n console.error(\"offsetParent is not set -- cannot scroll\");\n return;\n }\n let offsetY = element.offsetTop + element.clientTop;\n let offsetX = element.offsetLeft + element.clientLeft;\n while (\n (parent.clientHeight === parent.scrollHeight &&\n parent.clientWidth === parent.scrollWidth) ||\n (scrollMatches &&\n (parent.classList.contains(\"markedContent\") ||\n getComputedStyle(parent).overflow === \"hidden\"))\n ) {\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n\n parent = parent.offsetParent;\n if (!parent) {\n return; // no need to scroll\n }\n }\n if (spot) {\n if (spot.top !== undefined) {\n offsetY += spot.top;\n }\n if (spot.left !== undefined) {\n offsetX += spot.left;\n parent.scrollLeft = offsetX;\n }\n }\n parent.scrollTop = offsetY;\n}\n\n/**\n * Helper function to start monitoring the scroll event and converting them into\n * PDF.js friendly one: with scroll debounce and scroll direction.\n */\nfunction watchScroll(viewAreaElement, callback, abortSignal = undefined) {\n const debounceScroll = function (evt) {\n if (rAF) {\n return;\n }\n // schedule an invocation of scroll for next animation frame.\n rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n rAF = null;\n\n const currentX = viewAreaElement.scrollLeft;\n const lastX = state.lastX;\n if (currentX !== lastX) {\n state.right = currentX > lastX;\n }\n state.lastX = currentX;\n const currentY = viewAreaElement.scrollTop;\n const lastY = state.lastY;\n if (currentY !== lastY) {\n state.down = currentY > lastY;\n }\n state.lastY = currentY;\n callback(state);\n });\n };\n\n const state = {\n right: true,\n down: true,\n lastX: viewAreaElement.scrollLeft,\n lastY: viewAreaElement.scrollTop,\n _eventHandler: debounceScroll,\n };\n\n let rAF = null;\n viewAreaElement.addEventListener(\"scroll\", debounceScroll, {\n useCapture: true,\n signal: abortSignal,\n });\n abortSignal?.addEventListener(\n \"abort\",\n () => window.cancelAnimationFrame(rAF),\n { once: true }\n );\n return state;\n}\n\n/**\n * Helper function to parse query string (e.g. ?param1=value¶m2=...).\n * @param {string} query\n * @returns {Map}\n */\nfunction parseQueryString(query) {\n const params = new Map();\n for (const [key, value] of new URLSearchParams(query)) {\n params.set(key.toLowerCase(), value);\n }\n return params;\n}\n\nconst InvisibleCharsRegExp = /[\\x00-\\x1F]/g;\n\n/**\n * @param {string} str\n * @param {boolean} [replaceInvisible]\n */\nfunction removeNullCharacters(str, replaceInvisible = false) {\n if (!InvisibleCharsRegExp.test(str)) {\n return str;\n }\n if (replaceInvisible) {\n return str.replaceAll(InvisibleCharsRegExp, m => (m === \"\\x00\" ? \"\" : \" \"));\n }\n return str.replaceAll(\"\\x00\", \"\");\n}\n\n/**\n * Use binary search to find the index of the first item in a given array which\n * passes a given condition. The items are expected to be sorted in the sense\n * that if the condition is true for one item in the array, then it is also true\n * for all following items.\n *\n * @returns {number} Index of the first array element to pass the test,\n * or |items.length| if no such element exists.\n */\nfunction binarySearchFirstItem(items, condition, start = 0) {\n let minIndex = start;\n let maxIndex = items.length - 1;\n\n if (maxIndex < 0 || !condition(items[maxIndex])) {\n return items.length;\n }\n if (condition(items[minIndex])) {\n return minIndex;\n }\n\n while (minIndex < maxIndex) {\n const currentIndex = (minIndex + maxIndex) >> 1;\n const currentItem = items[currentIndex];\n if (condition(currentItem)) {\n maxIndex = currentIndex;\n } else {\n minIndex = currentIndex + 1;\n }\n }\n return minIndex; /* === maxIndex */\n}\n\n/**\n * Approximates float number as a fraction using Farey sequence (max order\n * of 8).\n * @param {number} x - Positive float number.\n * @returns {Array} Estimated fraction: the first array item is a numerator,\n * the second one is a denominator.\n * They are both natural numbers.\n */\nfunction approximateFraction(x) {\n // Fast paths for int numbers or their inversions.\n if (Math.floor(x) === x) {\n return [x, 1];\n }\n const xinv = 1 / x;\n const limit = 8;\n if (xinv > limit) {\n return [1, limit];\n } else if (Math.floor(xinv) === xinv) {\n return [1, xinv];\n }\n\n const x_ = x > 1 ? xinv : x;\n // a/b and c/d are neighbours in Farey sequence.\n let a = 0,\n b = 1,\n c = 1,\n d = 1;\n // Limiting search to order 8.\n while (true) {\n // Generating next term in sequence (order of q).\n const p = a + c,\n q = b + d;\n if (q > limit) {\n break;\n }\n if (x_ <= p / q) {\n c = p;\n d = q;\n } else {\n a = p;\n b = q;\n }\n }\n let result;\n // Select closest of the neighbours to x.\n if (x_ - a / b < c / d - x_) {\n result = x_ === x ? [a, b] : [b, a];\n } else {\n result = x_ === x ? [c, d] : [d, c];\n }\n return result;\n}\n\n/**\n * @param {number} x - A positive number to round to a multiple of `div`.\n * @param {number} div - A natural number.\n */\nfunction floorToDivide(x, div) {\n return x - (x % div);\n}\n\n/**\n * @typedef {Object} GetPageSizeInchesParameters\n * @property {number[]} view\n * @property {number} userUnit\n * @property {number} rotate\n */\n\n/**\n * @typedef {Object} PageSize\n * @property {number} width - In inches.\n * @property {number} height - In inches.\n */\n\n/**\n * Gets the size of the specified page, converted from PDF units to inches.\n * @param {GetPageSizeInchesParameters} params\n * @returns {PageSize}\n */\nfunction getPageSizeInches({ view, userUnit, rotate }) {\n const [x1, y1, x2, y2] = view;\n // We need to take the page rotation into account as well.\n const changeOrientation = rotate % 180 !== 0;\n\n const width = ((x2 - x1) / 72) * userUnit;\n const height = ((y2 - y1) / 72) * userUnit;\n\n return {\n width: changeOrientation ? height : width,\n height: changeOrientation ? width : height,\n };\n}\n\n/**\n * Helper function for getVisibleElements.\n *\n * @param {number} index - initial guess at the first visible element\n * @param {Array} views - array of pages, into which `index` is an index\n * @param {number} top - the top of the scroll pane\n * @returns {number} less than or equal to `index` that is definitely at or\n * before the first visible element in `views`, but not by too much. (Usually,\n * this will be the first element in the first partially visible row in\n * `views`, although sometimes it goes back one row further.)\n */\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n // binarySearchFirstItem's assumption is that the input is ordered, with only\n // one index where the conditions flips from false to true: [false ...,\n // true...]. With vertical scrolling and spreads, it is possible to have\n // [false ..., true, false, true ...]. With wrapped scrolling we can have a\n // similar sequence, with many more mixed true and false in the middle.\n //\n // So there is no guarantee that the binary search yields the index of the\n // first visible element. It could have been any of the other visible elements\n // that were preceded by a hidden element.\n\n // Of course, if either this element or the previous (hidden) element is also\n // the first element, there's nothing to worry about.\n if (index < 2) {\n return index;\n }\n\n // That aside, the possible cases are represented below.\n //\n // **** = fully hidden\n // A*B* = mix of partially visible and/or hidden pages\n // CDEF = fully visible\n //\n // (1) Binary search could have returned A, in which case we can stop.\n // (2) Binary search could also have returned B, in which case we need to\n // check the whole row.\n // (3) Binary search could also have returned C, in which case we need to\n // check the whole previous row.\n //\n // There's one other possibility:\n //\n // **** = fully hidden\n // ABCD = mix of fully and/or partially visible pages\n //\n // (4) Binary search could only have returned A.\n\n // Initially assume that we need to find the beginning of the current row\n // (case 1, 2, or 4), which means finding a page that is above the current\n // page's top. If the found page is partially visible, we're definitely not in\n // case 3, and this assumption is correct.\n let elt = views[index].div;\n let pageTop = elt.offsetTop + elt.clientTop;\n\n if (pageTop >= top) {\n // The found page is fully visible, so we're actually either in case 3 or 4,\n // and unfortunately we can't tell the difference between them without\n // scanning the entire previous row, so we just conservatively assume that\n // we do need to backtrack to that row. In both cases, the previous page is\n // in the previous row, so use its top instead.\n elt = views[index - 1].div;\n pageTop = elt.offsetTop + elt.clientTop;\n }\n\n // Now we backtrack to the first page that still has its bottom below\n // `pageTop`, which is the top of a page in the first visible row (unless\n // we're in case 4, in which case it's the row before that).\n // `index` is found by binary search, so the page at `index - 1` is\n // invisible and we can start looking for potentially visible pages from\n // `index - 2`. (However, if this loop terminates on its first iteration,\n // which is the case when pages are stacked vertically, `index` should remain\n // unchanged, so we use a distinct loop variable.)\n for (let i = index - 2; i >= 0; --i) {\n elt = views[i].div;\n if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n // We have reached the previous row, so stop now.\n // This loop is expected to terminate relatively quickly because the\n // number of pages per row is expected to be small.\n break;\n }\n index = i;\n }\n return index;\n}\n\n/**\n * @typedef {Object} GetVisibleElementsParameters\n * @property {HTMLElement} scrollEl - A container that can possibly scroll.\n * @property {Array} views - Objects with a `div` property that contains an\n * HTMLElement, which should all be descendants of `scrollEl` satisfying the\n * relevant layout assumptions.\n * @property {boolean} sortByVisibility - If `true`, the returned elements are\n * sorted in descending order of the percent of their padding box that is\n * visible. The default value is `false`.\n * @property {boolean} horizontal - If `true`, the elements are assumed to be\n * laid out horizontally instead of vertically. The default value is `false`.\n * @property {boolean} rtl - If `true`, the `scrollEl` container is assumed to\n * be in right-to-left mode. The default value is `false`.\n */\n\n/**\n * Generic helper to find out what elements are visible within a scroll pane.\n *\n * Well, pretty generic. There are some assumptions placed on the elements\n * referenced by `views`:\n * - If `horizontal`, no left of any earlier element is to the right of the\n * left of any later element.\n * - Otherwise, `views` can be split into contiguous rows where, within a row,\n * no top of any element is below the bottom of any other element, and\n * between rows, no bottom of any element in an earlier row is below the\n * top of any element in a later row.\n *\n * (Here, top, left, etc. all refer to the padding edge of the element in\n * question. For pages, that ends up being equivalent to the bounding box of the\n * rendering canvas. Earlier and later refer to index in `views`, not page\n * layout.)\n *\n * @param {GetVisibleElementsParameters} params\n * @returns {Object} `{ first, last, views: [{ id, x, y, view, percent }] }`\n */\nfunction getVisibleElements({\n scrollEl,\n views,\n sortByVisibility = false,\n horizontal = false,\n rtl = false,\n}) {\n const top = scrollEl.scrollTop,\n bottom = top + scrollEl.clientHeight;\n const left = scrollEl.scrollLeft,\n right = left + scrollEl.clientWidth;\n\n // Throughout this \"generic\" function, comments will assume we're working with\n // PDF document pages, which is the most important and complex case. In this\n // case, the visible elements we're actually interested is the page canvas,\n // which is contained in a wrapper which adds no padding/border/margin, which\n // is itself contained in `view.div` which adds no padding (but does add a\n // border). So, as specified in this function's doc comment, this function\n // does all of its work on the padding edge of the provided views, starting at\n // offsetLeft/Top (which includes margin) and adding clientLeft/Top (which is\n // the border). Adding clientWidth/Height gets us the bottom-right corner of\n // the padding edge.\n function isElementBottomAfterViewTop(view) {\n const element = view.div;\n const elementBottom =\n element.offsetTop + element.clientTop + element.clientHeight;\n return elementBottom > top;\n }\n function isElementNextAfterViewHorizontally(view) {\n const element = view.div;\n const elementLeft = element.offsetLeft + element.clientLeft;\n const elementRight = elementLeft + element.clientWidth;\n return rtl ? elementLeft < right : elementRight > left;\n }\n\n const visible = [],\n ids = new Set(),\n numViews = views.length;\n let firstVisibleElementInd = binarySearchFirstItem(\n views,\n horizontal\n ? isElementNextAfterViewHorizontally\n : isElementBottomAfterViewTop\n );\n\n // Please note the return value of the `binarySearchFirstItem` function when\n // no valid element is found (hence the `firstVisibleElementInd` check below).\n if (\n firstVisibleElementInd > 0 &&\n firstVisibleElementInd < numViews &&\n !horizontal\n ) {\n // In wrapped scrolling (or vertical scrolling with spreads), with some page\n // sizes, isElementBottomAfterViewTop doesn't satisfy the binary search\n // condition: there can be pages with bottoms above the view top between\n // pages with bottoms below. This function detects and corrects that error;\n // see it for more comments.\n firstVisibleElementInd = backtrackBeforeAllVisibleElements(\n firstVisibleElementInd,\n views,\n top\n );\n }\n\n // lastEdge acts as a cutoff for us to stop looping, because we know all\n // subsequent pages will be hidden.\n //\n // When using wrapped scrolling or vertical scrolling with spreads, we can't\n // simply stop the first time we reach a page below the bottom of the view;\n // the tops of subsequent pages on the same row could still be visible. In\n // horizontal scrolling, we don't have that issue, so we can stop as soon as\n // we pass `right`, without needing the code below that handles the -1 case.\n let lastEdge = horizontal ? right : -1;\n\n for (let i = firstVisibleElementInd; i < numViews; i++) {\n const view = views[i],\n element = view.div;\n const currentWidth = element.offsetLeft + element.clientLeft;\n const currentHeight = element.offsetTop + element.clientTop;\n const viewWidth = element.clientWidth,\n viewHeight = element.clientHeight;\n const viewRight = currentWidth + viewWidth;\n const viewBottom = currentHeight + viewHeight;\n\n if (lastEdge === -1) {\n // As commented above, this is only needed in non-horizontal cases.\n // Setting lastEdge to the bottom of the first page that is partially\n // visible ensures that the next page fully below lastEdge is on the\n // next row, which has to be fully hidden along with all subsequent rows.\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n break;\n }\n\n if (\n viewBottom <= top ||\n currentHeight >= bottom ||\n viewRight <= left ||\n currentWidth >= right\n ) {\n continue;\n }\n\n const hiddenHeight =\n Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);\n const hiddenWidth =\n Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);\n\n const fractionHeight = (viewHeight - hiddenHeight) / viewHeight,\n fractionWidth = (viewWidth - hiddenWidth) / viewWidth;\n const percent = (fractionHeight * fractionWidth * 100) | 0;\n\n visible.push({\n id: view.id,\n x: currentWidth,\n y: currentHeight,\n view,\n percent,\n widthPercent: (fractionWidth * 100) | 0,\n });\n ids.add(view.id);\n }\n\n const first = visible[0],\n last = visible.at(-1);\n\n if (sortByVisibility) {\n visible.sort(function (a, b) {\n const pc = a.percent - b.percent;\n if (Math.abs(pc) > 0.001) {\n return -pc;\n }\n return a.id - b.id; // ensure stability\n });\n }\n return { first, last, views: visible, ids };\n}\n\nfunction normalizeWheelEventDirection(evt) {\n let delta = Math.hypot(evt.deltaX, evt.deltaY);\n const angle = Math.atan2(evt.deltaY, evt.deltaX);\n if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n // All that is left-up oriented has to change the sign.\n delta = -delta;\n }\n return delta;\n}\n\nfunction normalizeWheelEventDelta(evt) {\n const deltaMode = evt.deltaMode; // Avoid being affected by bug 1392460.\n let delta = normalizeWheelEventDirection(evt);\n\n const MOUSE_PIXELS_PER_LINE = 30;\n const MOUSE_LINES_PER_PAGE = 30;\n\n // Converts delta to per-page units\n if (deltaMode === WheelEvent.DOM_DELTA_PIXEL) {\n delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n } else if (deltaMode === WheelEvent.DOM_DELTA_LINE) {\n delta /= MOUSE_LINES_PER_PAGE;\n }\n return delta;\n}\n\nfunction isValidRotation(angle) {\n return Number.isInteger(angle) && angle % 90 === 0;\n}\n\nfunction isValidScrollMode(mode) {\n return (\n Number.isInteger(mode) &&\n Object.values(ScrollMode).includes(mode) &&\n mode !== ScrollMode.UNKNOWN\n );\n}\n\nfunction isValidSpreadMode(mode) {\n return (\n Number.isInteger(mode) &&\n Object.values(SpreadMode).includes(mode) &&\n mode !== SpreadMode.UNKNOWN\n );\n}\n\nfunction isPortraitOrientation(size) {\n return size.width <= size.height;\n}\n\n/**\n * Promise that is resolved when DOM window becomes visible.\n */\nconst animationStarted = new Promise(function (resolve) {\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"LIB\") &&\n typeof window === \"undefined\"\n ) {\n // Prevent \"ReferenceError: window is not defined\" errors when running the\n // unit-tests in Node.js environments.\n setTimeout(resolve, 20);\n return;\n }\n window.requestAnimationFrame(resolve);\n});\n\nconst docStyle =\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"LIB\") &&\n typeof document === \"undefined\"\n ? null\n : document.documentElement.style;\n\nfunction clamp(v, min, max) {\n return Math.min(Math.max(v, min), max);\n}\n\nclass ProgressBar {\n #classList = null;\n\n #disableAutoFetchTimeout = null;\n\n #percent = 0;\n\n #style = null;\n\n #visible = true;\n\n constructor(bar) {\n this.#classList = bar.classList;\n this.#style = bar.style;\n }\n\n get percent() {\n return this.#percent;\n }\n\n set percent(val) {\n this.#percent = clamp(val, 0, 100);\n\n if (isNaN(val)) {\n this.#classList.add(\"indeterminate\");\n return;\n }\n this.#classList.remove(\"indeterminate\");\n\n this.#style.setProperty(\"--progressBar-percent\", `${this.#percent}%`);\n }\n\n setWidth(viewer) {\n if (!viewer) {\n return;\n }\n const container = viewer.parentNode;\n const scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n if (scrollbarWidth > 0) {\n this.#style.setProperty(\n \"--progressBar-end-offset\",\n `${scrollbarWidth}px`\n );\n }\n }\n\n setDisableAutoFetch(delay = /* ms = */ 5000) {\n if (this.#percent === 100 || isNaN(this.#percent)) {\n return;\n }\n if (this.#disableAutoFetchTimeout) {\n clearTimeout(this.#disableAutoFetchTimeout);\n }\n this.show();\n\n this.#disableAutoFetchTimeout = setTimeout(() => {\n this.#disableAutoFetchTimeout = null;\n this.hide();\n }, delay);\n }\n\n hide() {\n if (!this.#visible) {\n return;\n }\n this.#visible = false;\n this.#classList.add(\"hidden\");\n }\n\n show() {\n if (this.#visible) {\n return;\n }\n this.#visible = true;\n this.#classList.remove(\"hidden\");\n }\n}\n\n/**\n * Get the active or focused element in current DOM.\n *\n * Recursively search for the truly active or focused element in case there are\n * shadow DOMs.\n *\n * @returns {Element} the truly active or focused element.\n */\nfunction getActiveOrFocusedElement() {\n let curRoot = document;\n let curActiveOrFocused =\n curRoot.activeElement || curRoot.querySelector(\":focus\");\n\n while (curActiveOrFocused?.shadowRoot) {\n curRoot = curActiveOrFocused.shadowRoot;\n curActiveOrFocused =\n curRoot.activeElement || curRoot.querySelector(\":focus\");\n }\n\n return curActiveOrFocused;\n}\n\n/**\n * Converts API PageLayout values to the format used by `BaseViewer`.\n * @param {string} layout - The API PageLayout value.\n * @returns {Object}\n */\nfunction apiPageLayoutToViewerModes(layout) {\n let scrollMode = ScrollMode.VERTICAL,\n spreadMode = SpreadMode.NONE;\n\n switch (layout) {\n case \"SinglePage\":\n scrollMode = ScrollMode.PAGE;\n break;\n case \"OneColumn\":\n break;\n case \"TwoPageLeft\":\n scrollMode = ScrollMode.PAGE;\n /* falls through */\n case \"TwoColumnLeft\":\n spreadMode = SpreadMode.ODD;\n break;\n case \"TwoPageRight\":\n scrollMode = ScrollMode.PAGE;\n /* falls through */\n case \"TwoColumnRight\":\n spreadMode = SpreadMode.EVEN;\n break;\n }\n return { scrollMode, spreadMode };\n}\n\n/**\n * Converts API PageMode values to the format used by `PDFSidebar`.\n * NOTE: There's also a \"FullScreen\" parameter which is not possible to support,\n * since the Fullscreen API used in browsers requires that entering\n * fullscreen mode only occurs as a result of a user-initiated event.\n * @param {string} mode - The API PageMode value.\n * @returns {number} A value from {SidebarView}.\n */\nfunction apiPageModeToSidebarView(mode) {\n switch (mode) {\n case \"UseNone\":\n return SidebarView.NONE;\n case \"UseThumbs\":\n return SidebarView.THUMBS;\n case \"UseOutlines\":\n return SidebarView.OUTLINE;\n case \"UseAttachments\":\n return SidebarView.ATTACHMENTS;\n case \"UseOC\":\n return SidebarView.LAYERS;\n }\n return SidebarView.NONE; // Default value.\n}\n\nfunction toggleCheckedBtn(button, toggle, view = null) {\n button.classList.toggle(\"toggled\", toggle);\n button.setAttribute(\"aria-checked\", toggle);\n\n view?.classList.toggle(\"hidden\", !toggle);\n}\n\nfunction toggleExpandedBtn(button, toggle, view = null) {\n button.classList.toggle(\"toggled\", toggle);\n button.setAttribute(\"aria-expanded\", toggle);\n\n view?.classList.toggle(\"hidden\", !toggle);\n}\n\n// In Firefox, the css calc function uses f32 precision but the Chrome or Safari\n// are using f64 one. So in order to have the same rendering in all browsers, we\n// need to use the right precision in order to have correct dimensions.\nconst calcRound =\n typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")\n ? Math.fround\n : (function () {\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"LIB\") &&\n typeof document === \"undefined\"\n ) {\n return x => x;\n }\n const e = document.createElement(\"div\");\n e.style.width = \"round(down, calc(1.6666666666666665 * 792px), 1px)\";\n return e.style.width === \"calc(1320px)\" ? Math.fround : x => x;\n })();\n\nexport {\n animationStarted,\n apiPageLayoutToViewerModes,\n apiPageModeToSidebarView,\n approximateFraction,\n AutoPrintRegExp,\n backtrackBeforeAllVisibleElements, // only exported for testing\n binarySearchFirstItem,\n calcRound,\n CursorTool,\n DEFAULT_SCALE,\n DEFAULT_SCALE_DELTA,\n DEFAULT_SCALE_VALUE,\n docStyle,\n floorToDivide,\n getActiveOrFocusedElement,\n getPageSizeInches,\n getVisibleElements,\n isPortraitOrientation,\n isValidRotation,\n isValidScrollMode,\n isValidSpreadMode,\n MAX_AUTO_SCALE,\n MAX_SCALE,\n MIN_SCALE,\n normalizeWheelEventDelta,\n normalizeWheelEventDirection,\n parseQueryString,\n PresentationModeState,\n ProgressBar,\n removeNullCharacters,\n RenderingStates,\n SCROLLBAR_PADDING,\n scrollIntoView,\n ScrollMode,\n SidebarView,\n SpreadMode,\n TextLayerMode,\n toggleCheckedBtn,\n toggleExpandedBtn,\n UNKNOWN_SCALE,\n VERTICAL_PADDING,\n watchScroll,\n};\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nif (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n // eslint-disable-next-line no-var\n var compatParams = new Map();\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"LIB\") &&\n typeof navigator === \"undefined\"\n ) {\n globalThis.navigator = Object.create(null);\n }\n const userAgent = navigator.userAgent || \"\";\n const platform = navigator.platform || \"\";\n const maxTouchPoints = navigator.maxTouchPoints || 1;\n\n const isAndroid = /Android/.test(userAgent);\n const isIOS =\n /\\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) ||\n (platform === \"MacIntel\" && maxTouchPoints > 1);\n\n // Limit canvas size to 5 mega-pixels on mobile.\n // Support: Android, iOS\n (function () {\n if (isIOS || isAndroid) {\n compatParams.set(\"maxCanvasPixels\", 5242880);\n }\n })();\n\n // Don't use system fonts on Android (issue 18210).\n // Support: Android\n (function () {\n if (isAndroid) {\n compatParams.set(\"useSystemFonts\", false);\n }\n })();\n}\n\nconst OptionKind = {\n BROWSER: 0x01,\n VIEWER: 0x02,\n API: 0x04,\n WORKER: 0x08,\n EVENT_DISPATCH: 0x10,\n PREFERENCE: 0x80,\n};\n\n// Should only be used with options that allow multiple types.\nconst Type = {\n BOOLEAN: 0x01,\n NUMBER: 0x02,\n OBJECT: 0x04,\n STRING: 0x08,\n UNDEFINED: 0x10,\n};\n\n/**\n * NOTE: These options are used to generate the `default_preferences.json` file,\n * see `OptionKind.PREFERENCE`, hence the values below must use only\n * primitive types and cannot rely on any imported types.\n */\nconst defaultOptions = {\n allowedGlobalEvents: {\n /** @type {Object} */\n value: null,\n kind: OptionKind.BROWSER,\n },\n canvasMaxAreaInBytes: {\n /** @type {number} */\n value: -1,\n kind: OptionKind.BROWSER + OptionKind.API,\n },\n isInAutomation: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.BROWSER,\n },\n localeProperties: {\n /** @type {Object} */\n value:\n typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")\n ? { lang: navigator.language || \"en-US\" }\n : null,\n kind: OptionKind.BROWSER,\n },\n nimbusDataStr: {\n /** @type {string} */\n value: \"\",\n kind: OptionKind.BROWSER,\n },\n supportsCaretBrowsingMode: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.BROWSER,\n },\n supportsDocumentFonts: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.BROWSER,\n },\n supportsIntegratedFind: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.BROWSER,\n },\n supportsMouseWheelZoomCtrlKey: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.BROWSER,\n },\n supportsMouseWheelZoomMetaKey: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.BROWSER,\n },\n supportsPinchToZoom: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.BROWSER,\n },\n toolbarDensity: {\n /** @type {number} */\n value: 0, // 0 = \"normal\", 1 = \"compact\", 2 = \"touch\"\n kind: OptionKind.BROWSER + OptionKind.EVENT_DISPATCH,\n },\n\n altTextLearnMoreUrl: {\n /** @type {string} */\n value:\n typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")\n ? \"https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/pdf-alt-text\"\n : \"\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n annotationEditorMode: {\n /** @type {number} */\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n annotationMode: {\n /** @type {number} */\n value: 2,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n cursorToolOnLoad: {\n /** @type {number} */\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n debuggerSrc: {\n /** @type {string} */\n value: \"./debugger.mjs\",\n kind: OptionKind.VIEWER,\n },\n defaultZoomDelay: {\n /** @type {number} */\n value: 400,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n defaultZoomValue: {\n /** @type {string} */\n value: \"\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n disableHistory: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER,\n },\n disablePageLabels: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n enableAltText: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n enableAltTextModelDownload: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE + OptionKind.EVENT_DISPATCH,\n },\n enableGuessAltText: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE + OptionKind.EVENT_DISPATCH,\n },\n enableHighlightFloatingButton: {\n // We'll probably want to make some experiments before enabling this\n // in Firefox release, but it has to be temporary.\n // TODO: remove it when unnecessary.\n /** @type {boolean} */\n value: typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\"),\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n enableNewAltTextWhenAddingImage: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n enablePermissions: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n enablePrintAutoRotate: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n enableScripting: {\n /** @type {boolean} */\n value: typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"CHROME\"),\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n enableUpdatedAddImage: {\n // We'll probably want to make some experiments before enabling this\n // in Firefox release, but it has to be temporary.\n // TODO: remove it when unnecessary.\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n externalLinkRel: {\n /** @type {string} */\n value: \"noopener noreferrer nofollow\",\n kind: OptionKind.VIEWER,\n },\n externalLinkTarget: {\n /** @type {number} */\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n highlightEditorColors: {\n /** @type {string} */\n value: \"yellow=#FFFF98,green=#53FFBC,blue=#80EBFF,pink=#FFCBE6,red=#FF4F5F\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n historyUpdateUrl: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n ignoreDestinationZoom: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n imageResourcesPath: {\n /** @type {string} */\n value:\n typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")\n ? \"resource://pdf.js/web/images/\"\n : \"./images/\",\n kind: OptionKind.VIEWER,\n },\n maxCanvasPixels: {\n /** @type {number} */\n value: 2 ** 25,\n kind: OptionKind.VIEWER,\n },\n forcePageColors: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n pageColorsBackground: {\n /** @type {string} */\n value: \"Canvas\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n pageColorsForeground: {\n /** @type {string} */\n value: \"CanvasText\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n pdfBugEnabled: {\n /** @type {boolean} */\n value: typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\"),\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n printResolution: {\n /** @type {number} */\n value: 150,\n kind: OptionKind.VIEWER,\n },\n sidebarViewOnLoad: {\n /** @type {number} */\n value: -1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n scrollModeOnLoad: {\n /** @type {number} */\n value: -1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n spreadModeOnLoad: {\n /** @type {number} */\n value: -1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n textLayerMode: {\n /** @type {number} */\n value: 1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n viewOnLoad: {\n /** @type {boolean} */\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n\n cMapPacked: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.API,\n },\n cMapUrl: {\n /** @type {string} */\n value:\n // eslint-disable-next-line no-nested-ternary\n typeof PDFJSDev === \"undefined\"\n ? \"../external/bcmaps/\"\n : PDFJSDev.test(\"MOZCENTRAL\")\n ? \"resource://pdf.js/web/cmaps/\"\n : \"../web/cmaps/\",\n kind: OptionKind.API,\n },\n disableAutoFetch: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE,\n },\n disableFontFace: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE,\n },\n disableRange: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE,\n },\n disableStream: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE,\n },\n docBaseUrl: {\n /** @type {string} */\n value: typeof PDFJSDev === \"undefined\" ? document.URL.split(\"#\", 1)[0] : \"\",\n kind: OptionKind.API,\n },\n enableHWA: {\n /** @type {boolean} */\n value: typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"MOZCENTRAL\"),\n kind: OptionKind.API + OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n enableXfa: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.API + OptionKind.PREFERENCE,\n },\n fontExtraProperties: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.API,\n },\n isEvalSupported: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.API,\n },\n isOffscreenCanvasSupported: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.API,\n },\n maxImageSize: {\n /** @type {number} */\n value: -1,\n kind: OptionKind.API,\n },\n pdfBug: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.API,\n },\n standardFontDataUrl: {\n /** @type {string} */\n value:\n // eslint-disable-next-line no-nested-ternary\n typeof PDFJSDev === \"undefined\"\n ? \"../external/standard_fonts/\"\n : PDFJSDev.test(\"MOZCENTRAL\")\n ? \"resource://pdf.js/web/standard_fonts/\"\n : \"../web/standard_fonts/\",\n kind: OptionKind.API,\n },\n useSystemFonts: {\n // On Android, there is almost no chance to have the font we want so we\n // don't use the system fonts in this case (bug 1882613).\n /** @type {boolean|undefined} */\n value: (\n typeof PDFJSDev === \"undefined\"\n ? window.isGECKOVIEW\n : PDFJSDev.test(\"GECKOVIEW\")\n )\n ? false\n : undefined,\n kind: OptionKind.API,\n type: Type.BOOLEAN + Type.UNDEFINED,\n },\n verbosity: {\n /** @type {number} */\n value: 1,\n kind: OptionKind.API,\n },\n\n workerPort: {\n /** @type {Object} */\n value: null,\n kind: OptionKind.WORKER,\n },\n workerSrc: {\n /** @type {string} */\n value:\n // eslint-disable-next-line no-nested-ternary\n typeof PDFJSDev === \"undefined\"\n ? \"../src/pdf.worker.js\"\n : PDFJSDev.test(\"MOZCENTRAL\")\n ? \"resource://pdf.js/build/pdf.worker.mjs\"\n : \"../build/pdf.worker.mjs\",\n kind: OptionKind.WORKER,\n },\n};\nif (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) {\n defaultOptions.defaultUrl = {\n /** @type {string} */\n value:\n typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"CHROME\")\n ? \"\"\n : \"compressed.tracemonkey-pldi-09.pdf\",\n kind: OptionKind.VIEWER,\n };\n defaultOptions.sandboxBundleSrc = {\n /** @type {string} */\n value:\n typeof PDFJSDev === \"undefined\"\n ? \"../build/dev-sandbox/pdf.sandbox.mjs\"\n : \"../build/pdf.sandbox.mjs\",\n kind: OptionKind.VIEWER,\n };\n defaultOptions.viewerCssTheme = {\n /** @type {number} */\n value: typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"CHROME\") ? 2 : 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n };\n defaultOptions.enableFakeMLManager = {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.VIEWER,\n };\n}\nif (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n defaultOptions.disablePreferences = {\n /** @type {boolean} */\n value: typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\"),\n kind: OptionKind.VIEWER,\n };\n} else if (PDFJSDev.test(\"CHROME\")) {\n defaultOptions.disableTelemetry = {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n };\n}\n\nif (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING || LIB\")) {\n // Ensure that the `defaultOptions` are correctly specified.\n for (const name in defaultOptions) {\n const { value, kind, type } = defaultOptions[name];\n\n if (kind & OptionKind.PREFERENCE) {\n if (kind === OptionKind.PREFERENCE) {\n throw new Error(`Cannot use only \"PREFERENCE\" kind: ${name}`);\n }\n if (kind & OptionKind.BROWSER) {\n throw new Error(`Cannot mix \"PREFERENCE\" and \"BROWSER\" kind: ${name}`);\n }\n if (type !== undefined) {\n throw new Error(\n `Cannot have \\`type\\`-field for \"PREFERENCE\" kind: ${name}`\n );\n }\n if (typeof compatParams === \"object\" && compatParams.has(name)) {\n throw new Error(\n `Should not have compatibility-value for \"PREFERENCE\" kind: ${name}`\n );\n }\n // Only \"simple\" preference-values are allowed.\n if (\n typeof value !== \"boolean\" &&\n typeof value !== \"string\" &&\n !Number.isInteger(value)\n ) {\n throw new Error(`Invalid value for \"PREFERENCE\" kind: ${name}`);\n }\n } else if (kind & OptionKind.BROWSER) {\n if (type !== undefined) {\n throw new Error(\n `Cannot have \\`type\\`-field for \"BROWSER\" kind: ${name}`\n );\n }\n if (typeof compatParams === \"object\" && compatParams.has(name)) {\n throw new Error(\n `Should not have compatibility-value for \"BROWSER\" kind: ${name}`\n );\n }\n if (value === undefined) {\n throw new Error(`Invalid value for \"BROWSER\" kind: ${name}`);\n }\n }\n }\n}\n\nclass AppOptions {\n static eventBus;\n\n static #opts = new Map();\n\n static {\n // Initialize all the user-options.\n for (const name in defaultOptions) {\n this.#opts.set(name, defaultOptions[name].value);\n }\n\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n // Apply any compatibility-values to the user-options.\n for (const [name, value] of compatParams) {\n this.#opts.set(name, value);\n }\n this._hasInvokedSet = false;\n\n this._checkDisablePreferences = () => {\n if (this.get(\"disablePreferences\")) {\n // Give custom implementations of the default viewer a simpler way to\n // opt-out of having the `Preferences` override existing `AppOptions`.\n return true;\n }\n if (this._hasInvokedSet) {\n console.warn(\n \"The Preferences may override manually set AppOptions; \" +\n 'please use the \"disablePreferences\"-option to prevent that.'\n );\n }\n return false;\n };\n }\n }\n\n constructor() {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n throw new Error(\"Cannot initialize AppOptions.\");\n }\n }\n\n static get(name) {\n return this.#opts.get(name);\n }\n\n static getAll(kind = null, defaultOnly = false) {\n const options = Object.create(null);\n for (const name in defaultOptions) {\n const defaultOpt = defaultOptions[name];\n\n if (kind && !(kind & defaultOpt.kind)) {\n continue;\n }\n options[name] = !defaultOnly ? this.#opts.get(name) : defaultOpt.value;\n }\n return options;\n }\n\n static set(name, value) {\n this.setAll({ [name]: value });\n }\n\n static setAll(options, prefs = false) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n this._hasInvokedSet ||= true;\n }\n let events;\n\n for (const name in options) {\n const defaultOpt = defaultOptions[name],\n userOpt = options[name];\n\n if (\n !defaultOpt ||\n !(\n typeof userOpt === typeof defaultOpt.value ||\n Type[(typeof userOpt).toUpperCase()] & defaultOpt.type\n )\n ) {\n continue;\n }\n const { kind } = defaultOpt;\n\n if (\n prefs &&\n !(kind & OptionKind.BROWSER || kind & OptionKind.PREFERENCE)\n ) {\n continue;\n }\n if (this.eventBus && kind & OptionKind.EVENT_DISPATCH) {\n (events ||= new Map()).set(name, userOpt);\n }\n this.#opts.set(name, userOpt);\n }\n\n if (events) {\n for (const [name, value] of events) {\n this.eventBus.dispatch(name.toLowerCase(), { source: this, value });\n }\n }\n }\n}\n\nexport { AppOptions, OptionKind };\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./event_utils\").EventBus} EventBus */\n/** @typedef {import(\"./interfaces\").IPDFLinkService} IPDFLinkService */\n\nimport { parseQueryString } from \"./ui_utils.js\";\n\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\n\nconst LinkTarget = {\n NONE: 0, // Default value.\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4,\n};\n\n/**\n * @typedef {Object} PDFLinkServiceOptions\n * @property {EventBus} eventBus - The application event bus.\n * @property {number} [externalLinkTarget] - Specifies the `target` attribute\n * for external links. Must use one of the values from {LinkTarget}.\n * Defaults to using no target.\n * @property {string} [externalLinkRel] - Specifies the `rel` attribute for\n * external links. Defaults to stripping the referrer.\n * @property {boolean} [ignoreDestinationZoom] - Ignores the zoom argument,\n * thus preserving the current zoom level in the viewer, when navigating\n * to internal destinations. The default value is `false`.\n */\n\n/**\n * Performs navigation functions inside PDF, such as opening specified page,\n * or destination.\n * @implements {IPDFLinkService}\n */\nclass PDFLinkService {\n externalLinkEnabled = true;\n\n /**\n * @param {PDFLinkServiceOptions} options\n */\n constructor({\n eventBus,\n externalLinkTarget = null,\n externalLinkRel = null,\n ignoreDestinationZoom = false,\n } = {}) {\n this.eventBus = eventBus;\n this.externalLinkTarget = externalLinkTarget;\n this.externalLinkRel = externalLinkRel;\n this._ignoreDestinationZoom = ignoreDestinationZoom;\n\n this.baseUrl = null;\n this.pdfDocument = null;\n this.pdfViewer = null;\n this.pdfHistory = null;\n }\n\n setDocument(pdfDocument, baseUrl = null) {\n this.baseUrl = baseUrl;\n this.pdfDocument = pdfDocument;\n }\n\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n\n setHistory(pdfHistory) {\n this.pdfHistory = pdfHistory;\n }\n\n /**\n * @type {number}\n */\n get pagesCount() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n\n /**\n * @type {number}\n */\n get page() {\n return this.pdfDocument ? this.pdfViewer.currentPageNumber : 1;\n }\n\n /**\n * @param {number} value\n */\n set page(value) {\n if (this.pdfDocument) {\n this.pdfViewer.currentPageNumber = value;\n }\n }\n\n /**\n * @type {number}\n */\n get rotation() {\n return this.pdfDocument ? this.pdfViewer.pagesRotation : 0;\n }\n\n /**\n * @param {number} value\n */\n set rotation(value) {\n if (this.pdfDocument) {\n this.pdfViewer.pagesRotation = value;\n }\n }\n\n /**\n * @type {boolean}\n */\n get isInPresentationMode() {\n return this.pdfDocument ? this.pdfViewer.isInPresentationMode : false;\n }\n\n /**\n * This method will, when available, also update the browser history.\n *\n * @param {string|Array} dest - The named, or explicit, PDF destination.\n */\n async goToDestination(dest) {\n if (!this.pdfDocument) {\n return;\n }\n let namedDest, explicitDest, pageNumber;\n if (typeof dest === \"string\") {\n namedDest = dest;\n explicitDest = await this.pdfDocument.getDestination(dest);\n } else {\n namedDest = null;\n explicitDest = await dest;\n }\n if (!Array.isArray(explicitDest)) {\n console.error(\n `goToDestination: \"${explicitDest}\" is not a valid destination array, for dest=\"${dest}\".`\n );\n return;\n }\n // Dest array looks like that: \n const [destRef] = explicitDest;\n\n if (destRef && typeof destRef === \"object\") {\n pageNumber = this.pdfDocument.cachedPageNumber(destRef);\n\n if (!pageNumber) {\n // Fetch the page reference if it's not yet available. This could\n // only occur during loading, before all pages have been resolved.\n try {\n pageNumber = (await this.pdfDocument.getPageIndex(destRef)) + 1;\n } catch {\n console.error(\n `goToDestination: \"${destRef}\" is not a valid page reference, for dest=\"${dest}\".`\n );\n return;\n }\n }\n } else if (Number.isInteger(destRef)) {\n pageNumber = destRef + 1;\n }\n if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) {\n console.error(\n `goToDestination: \"${pageNumber}\" is not a valid page number, for dest=\"${dest}\".`\n );\n return;\n }\n\n if (this.pdfHistory) {\n // Update the browser history before scrolling the new destination into\n // view, to be able to accurately capture the current document position.\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.push({ namedDest, explicitDest, pageNumber });\n }\n\n this.pdfViewer.scrollPageIntoView({\n pageNumber,\n destArray: explicitDest,\n ignoreDestinationZoom: this._ignoreDestinationZoom,\n });\n }\n\n /**\n * This method will, when available, also update the browser history.\n *\n * @param {number|string} val - The page number, or page label.\n */\n goToPage(val) {\n if (!this.pdfDocument) {\n return;\n }\n const pageNumber =\n (typeof val === \"string\" && this.pdfViewer.pageLabelToPageNumber(val)) ||\n val | 0;\n if (\n !(\n Number.isInteger(pageNumber) &&\n pageNumber > 0 &&\n pageNumber <= this.pagesCount\n )\n ) {\n console.error(`PDFLinkService.goToPage: \"${val}\" is not a valid page.`);\n return;\n }\n\n if (this.pdfHistory) {\n // Update the browser history before scrolling the new page into view,\n // to be able to accurately capture the current document position.\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.pushPage(pageNumber);\n }\n\n this.pdfViewer.scrollPageIntoView({ pageNumber });\n }\n\n /**\n * Adds various attributes (href, title, target, rel) to hyperlinks.\n * @param {HTMLAnchorElement} link\n * @param {string} url\n * @param {boolean} [newWindow]\n */\n addLinkAttributes(link, url, newWindow = false) {\n if (!url || typeof url !== \"string\") {\n throw new Error('A valid \"url\" parameter must provided.');\n }\n const target = newWindow ? LinkTarget.BLANK : this.externalLinkTarget,\n rel = this.externalLinkRel;\n\n if (this.externalLinkEnabled) {\n link.href = link.title = url;\n } else {\n link.href = \"\";\n link.title = `Disabled: ${url}`;\n link.onclick = () => false;\n }\n\n let targetStr = \"\"; // LinkTarget.NONE\n switch (target) {\n case LinkTarget.NONE:\n break;\n case LinkTarget.SELF:\n targetStr = \"_self\";\n break;\n case LinkTarget.BLANK:\n targetStr = \"_blank\";\n break;\n case LinkTarget.PARENT:\n targetStr = \"_parent\";\n break;\n case LinkTarget.TOP:\n targetStr = \"_top\";\n break;\n }\n link.target = targetStr;\n\n link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n }\n\n /**\n * @param {string|Array} dest - The PDF destination object.\n * @returns {string} The hyperlink to the PDF object.\n */\n getDestinationHash(dest) {\n if (typeof dest === \"string\") {\n if (dest.length > 0) {\n return this.getAnchorUrl(\"#\" + escape(dest));\n }\n } else if (Array.isArray(dest)) {\n const str = JSON.stringify(dest);\n if (str.length > 0) {\n return this.getAnchorUrl(\"#\" + escape(str));\n }\n }\n return this.getAnchorUrl(\"\");\n }\n\n /**\n * Prefix the full url on anchor links to make sure that links are resolved\n * relative to the current URL instead of the one defined in .\n * @param {string} anchor - The anchor hash, including the #.\n * @returns {string} The hyperlink to the PDF object.\n */\n getAnchorUrl(anchor) {\n return this.baseUrl ? this.baseUrl + anchor : anchor;\n }\n\n /**\n * @param {string} hash\n */\n setHash(hash) {\n if (!this.pdfDocument) {\n return;\n }\n let pageNumber, dest;\n if (hash.includes(\"=\")) {\n const params = parseQueryString(hash);\n if (params.has(\"search\")) {\n const query = params.get(\"search\").replaceAll('\"', \"\"),\n phrase = params.get(\"phrase\") === \"true\";\n\n this.eventBus.dispatch(\"findfromurlhash\", {\n source: this,\n query: phrase ? query : query.match(/\\S+/g),\n });\n }\n // borrowing syntax from \"Parameters for Opening PDF Files\"\n if (params.has(\"page\")) {\n pageNumber = params.get(\"page\") | 0 || 1;\n }\n if (params.has(\"zoom\")) {\n // Build the destination array.\n const zoomArgs = params.get(\"zoom\").split(\",\"); // scale,left,top\n const zoomArg = zoomArgs[0];\n const zoomArgNumber = parseFloat(zoomArg);\n\n if (!zoomArg.includes(\"Fit\")) {\n // If the zoomArg is a number, it has to get divided by 100. If it's\n // a string, it should stay as it is.\n dest = [\n null,\n { name: \"XYZ\" },\n zoomArgs.length > 1 ? zoomArgs[1] | 0 : null,\n zoomArgs.length > 2 ? zoomArgs[2] | 0 : null,\n zoomArgNumber ? zoomArgNumber / 100 : zoomArg,\n ];\n } else if (zoomArg === \"Fit\" || zoomArg === \"FitB\") {\n dest = [null, { name: zoomArg }];\n } else if (\n zoomArg === \"FitH\" ||\n zoomArg === \"FitBH\" ||\n zoomArg === \"FitV\" ||\n zoomArg === \"FitBV\"\n ) {\n dest = [\n null,\n { name: zoomArg },\n zoomArgs.length > 1 ? zoomArgs[1] | 0 : null,\n ];\n } else if (zoomArg === \"FitR\") {\n if (zoomArgs.length !== 5) {\n console.error(\n 'PDFLinkService.setHash: Not enough parameters for \"FitR\".'\n );\n } else {\n dest = [\n null,\n { name: zoomArg },\n zoomArgs[1] | 0,\n zoomArgs[2] | 0,\n zoomArgs[3] | 0,\n zoomArgs[4] | 0,\n ];\n }\n } else {\n console.error(\n `PDFLinkService.setHash: \"${zoomArg}\" is not a valid zoom value.`\n );\n }\n }\n if (dest) {\n this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber || this.page,\n destArray: dest,\n allowNegativeOffset: true,\n });\n } else if (pageNumber) {\n this.page = pageNumber; // simple page\n }\n if (params.has(\"pagemode\")) {\n this.eventBus.dispatch(\"pagemode\", {\n source: this,\n mode: params.get(\"pagemode\"),\n });\n }\n // Ensure that this parameter is *always* handled last, in order to\n // guarantee that it won't be overridden (e.g. by the \"page\" parameter).\n if (params.has(\"nameddest\")) {\n this.goToDestination(params.get(\"nameddest\"));\n }\n\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) {\n return;\n }\n // Support opening of PDF attachments in the Firefox PDF Viewer,\n // which uses a couple of non-standard hash parameters; refer to\n // `DownloadManager.openOrDownloadData` in the firefoxcom.js file.\n if (!params.has(\"filename\") || !params.has(\"filedest\")) {\n return;\n }\n hash = params.get(\"filedest\");\n }\n\n // Named (or explicit) destination.\n dest = unescape(hash);\n try {\n dest = JSON.parse(dest);\n\n if (!Array.isArray(dest)) {\n // Avoid incorrectly rejecting a valid named destination, such as\n // e.g. \"4.3\" or \"true\", because `JSON.parse` converted its type.\n dest = dest.toString();\n }\n } catch {}\n\n if (typeof dest === \"string\" || PDFLinkService.#isValidExplicitDest(dest)) {\n this.goToDestination(dest);\n return;\n }\n console.error(\n `PDFLinkService.setHash: \"${unescape(hash)}\" is not a valid destination.`\n );\n }\n\n /**\n * @param {string} action\n */\n executeNamedAction(action) {\n if (!this.pdfDocument) {\n return;\n }\n // See PDF reference, table 8.45 - Named action\n switch (action) {\n case \"GoBack\":\n this.pdfHistory?.back();\n break;\n\n case \"GoForward\":\n this.pdfHistory?.forward();\n break;\n\n case \"NextPage\":\n this.pdfViewer.nextPage();\n break;\n\n case \"PrevPage\":\n this.pdfViewer.previousPage();\n break;\n\n case \"LastPage\":\n this.page = this.pagesCount;\n break;\n\n case \"FirstPage\":\n this.page = 1;\n break;\n\n default:\n break; // No action according to spec\n }\n\n this.eventBus.dispatch(\"namedaction\", {\n source: this,\n action,\n });\n }\n\n /**\n * @param {Object} action\n */\n async executeSetOCGState(action) {\n if (!this.pdfDocument) {\n return;\n }\n const pdfDocument = this.pdfDocument,\n optionalContentConfig = await this.pdfViewer.optionalContentConfigPromise;\n\n if (pdfDocument !== this.pdfDocument) {\n return; // The document was closed while the optional content resolved.\n }\n optionalContentConfig.setOCGState(action);\n\n this.pdfViewer.optionalContentConfigPromise = Promise.resolve(\n optionalContentConfig\n );\n }\n\n static #isValidExplicitDest(dest) {\n if (!Array.isArray(dest) || dest.length < 2) {\n return false;\n }\n const [page, zoom, ...args] = dest;\n if (\n !(\n typeof page === \"object\" &&\n Number.isInteger(page?.num) &&\n Number.isInteger(page?.gen)\n ) &&\n !Number.isInteger(page)\n ) {\n return false;\n }\n if (!(typeof zoom === \"object\" && typeof zoom?.name === \"string\")) {\n return false;\n }\n const argsLen = args.length;\n let allowNull = true;\n switch (zoom.name) {\n case \"XYZ\":\n if (argsLen < 2 || argsLen > 3) {\n return false;\n }\n break;\n case \"Fit\":\n case \"FitB\":\n return argsLen === 0;\n case \"FitH\":\n case \"FitBH\":\n case \"FitV\":\n case \"FitBV\":\n if (argsLen > 1) {\n return false;\n }\n break;\n case \"FitR\":\n if (argsLen !== 4) {\n return false;\n }\n allowNull = false;\n break;\n default:\n return false;\n }\n for (const arg of args) {\n if (!(typeof arg === \"number\" || (allowNull && arg === null))) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * @implements {IPDFLinkService}\n */\nclass SimpleLinkService extends PDFLinkService {\n setDocument(pdfDocument, baseUrl = null) {}\n}\n\nexport { LinkTarget, PDFLinkService, SimpleLinkService };\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst {\n AbortException,\n AnnotationEditorLayer,\n AnnotationEditorParamsType,\n AnnotationEditorType,\n AnnotationEditorUIManager,\n AnnotationLayer,\n AnnotationMode,\n build,\n ColorPicker,\n createValidAbsoluteUrl,\n DOMSVGFactory,\n DrawLayer,\n FeatureTest,\n fetchData,\n getDocument,\n getFilenameFromUrl,\n getPdfFilenameFromUrl,\n getXfaPageViewport,\n GlobalWorkerOptions,\n ImageKind,\n InvalidPDFException,\n isDataScheme,\n isPdfFile,\n MissingPDFException,\n noContextMenu,\n normalizeUnicode,\n OPS,\n OutputScale,\n PasswordResponses,\n PDFDataRangeTransport,\n PDFDateString,\n PDFWorker,\n PermissionFlag,\n PixelsPerInch,\n RenderingCancelledException,\n setLayerDimensions,\n shadow,\n stopEvent,\n TextLayer,\n UnexpectedResponseException,\n Util,\n VerbosityLevel,\n version,\n XfaLayer,\n} = globalThis.pdfjsLib;\n\nexport {\n AbortException,\n AnnotationEditorLayer,\n AnnotationEditorParamsType,\n AnnotationEditorType,\n AnnotationEditorUIManager,\n AnnotationLayer,\n AnnotationMode,\n build,\n ColorPicker,\n createValidAbsoluteUrl,\n DOMSVGFactory,\n DrawLayer,\n FeatureTest,\n fetchData,\n getDocument,\n getFilenameFromUrl,\n getPdfFilenameFromUrl,\n getXfaPageViewport,\n GlobalWorkerOptions,\n ImageKind,\n InvalidPDFException,\n isDataScheme,\n isPdfFile,\n MissingPDFException,\n noContextMenu,\n normalizeUnicode,\n OPS,\n OutputScale,\n PasswordResponses,\n PDFDataRangeTransport,\n PDFDateString,\n PDFWorker,\n PermissionFlag,\n PixelsPerInch,\n RenderingCancelledException,\n setLayerDimensions,\n shadow,\n stopEvent,\n TextLayer,\n UnexpectedResponseException,\n Util,\n VerbosityLevel,\n version,\n XfaLayer,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst WaitOnType = {\n EVENT: \"event\",\n TIMEOUT: \"timeout\",\n};\n\n/**\n * @typedef {Object} WaitOnEventOrTimeoutParameters\n * @property {Object} target - The event target, can for example be:\n * `window`, `document`, a DOM element, or an {EventBus} instance.\n * @property {string} name - The name of the event.\n * @property {number} delay - The delay, in milliseconds, after which the\n * timeout occurs (if the event wasn't already dispatched).\n */\n\n/**\n * Allows waiting for an event or a timeout, whichever occurs first.\n * Can be used to ensure that an action always occurs, even when an event\n * arrives late or not at all.\n *\n * @param {WaitOnEventOrTimeoutParameters}\n * @returns {Promise} A promise that is resolved with a {WaitOnType} value.\n */\nasync function waitOnEventOrTimeout({ target, name, delay = 0 }) {\n if (\n typeof target !== \"object\" ||\n !(name && typeof name === \"string\") ||\n !(Number.isInteger(delay) && delay >= 0)\n ) {\n throw new Error(\"waitOnEventOrTimeout - invalid parameters.\");\n }\n const { promise, resolve } = Promise.withResolvers();\n const ac = new AbortController();\n\n function handler(type) {\n ac.abort(); // Remove event listener.\n clearTimeout(timeout);\n\n resolve(type);\n }\n\n const evtMethod = target instanceof EventBus ? \"_on\" : \"addEventListener\";\n target[evtMethod](name, handler.bind(null, WaitOnType.EVENT), {\n signal: ac.signal,\n });\n\n const timeout = setTimeout(handler.bind(null, WaitOnType.TIMEOUT), delay);\n\n return promise;\n}\n\n/**\n * Simple event bus for an application. Listeners are attached using the `on`\n * and `off` methods. To raise an event, the `dispatch` method shall be used.\n */\nclass EventBus {\n #listeners = Object.create(null);\n\n /**\n * @param {string} eventName\n * @param {function} listener\n * @param {Object} [options]\n */\n on(eventName, listener, options = null) {\n this._on(eventName, listener, {\n external: true,\n once: options?.once,\n signal: options?.signal,\n });\n }\n\n /**\n * @param {string} eventName\n * @param {function} listener\n * @param {Object} [options]\n */\n off(eventName, listener, options = null) {\n this._off(eventName, listener);\n }\n\n /**\n * @param {string} eventName\n * @param {Object} data\n */\n dispatch(eventName, data) {\n const eventListeners = this.#listeners[eventName];\n if (!eventListeners || eventListeners.length === 0) {\n return;\n }\n let externalListeners;\n // Making copy of the listeners array in case if it will be modified\n // during dispatch.\n for (const { listener, external, once } of eventListeners.slice(0)) {\n if (once) {\n this._off(eventName, listener);\n }\n if (external) {\n (externalListeners ||= []).push(listener);\n continue;\n }\n listener(data);\n }\n // Dispatch any \"external\" listeners *after* the internal ones, to give the\n // viewer components time to handle events and update their state first.\n if (externalListeners) {\n for (const listener of externalListeners) {\n listener(data);\n }\n externalListeners = null;\n }\n }\n\n /**\n * @ignore\n */\n _on(eventName, listener, options = null) {\n let rmAbort = null;\n if (options?.signal instanceof AbortSignal) {\n const { signal } = options;\n if (signal.aborted) {\n console.error(\"Cannot use an `aborted` signal.\");\n return;\n }\n const onAbort = () => this._off(eventName, listener);\n rmAbort = () => signal.removeEventListener(\"abort\", onAbort);\n\n signal.addEventListener(\"abort\", onAbort);\n }\n\n const eventListeners = (this.#listeners[eventName] ||= []);\n eventListeners.push({\n listener,\n external: options?.external === true,\n once: options?.once === true,\n rmAbort,\n });\n }\n\n /**\n * @ignore\n */\n _off(eventName, listener, options = null) {\n const eventListeners = this.#listeners[eventName];\n if (!eventListeners) {\n return;\n }\n for (let i = 0, ii = eventListeners.length; i < ii; i++) {\n const evt = eventListeners[i];\n if (evt.listener === listener) {\n evt.rmAbort?.(); // Ensure that the `AbortSignal` listener is removed.\n eventListeners.splice(i, 1);\n return;\n }\n }\n }\n}\n\n/**\n * NOTE: Only used in the Firefox build-in pdf viewer.\n */\nclass FirefoxEventBus extends EventBus {\n #externalServices;\n\n #globalEventNames;\n\n #isInAutomation;\n\n constructor(globalEventNames, externalServices, isInAutomation) {\n super();\n this.#globalEventNames = globalEventNames;\n this.#externalServices = externalServices;\n this.#isInAutomation = isInAutomation;\n }\n\n dispatch(eventName, data) {\n if (typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\"Not implemented: FirefoxEventBus.dispatch\");\n }\n super.dispatch(eventName, data);\n\n if (this.#isInAutomation) {\n const detail = Object.create(null);\n if (data) {\n for (const key in data) {\n const value = data[key];\n if (key === \"source\") {\n if (value === window || value === document) {\n return; // No need to re-dispatch (already) global events.\n }\n continue; // Ignore the `source` property.\n }\n detail[key] = value;\n }\n }\n const event = new CustomEvent(eventName, {\n bubbles: true,\n cancelable: true,\n detail,\n });\n document.dispatchEvent(event);\n }\n\n if (this.#globalEventNames?.has(eventName)) {\n this.#externalServices.dispatchGlobalEvent({\n eventName,\n detail: data,\n });\n }\n }\n}\n\nexport { EventBus, FirefoxEventBus, waitOnEventOrTimeout, WaitOnType };\n","/* Copyright 2024 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./interfaces.js\").IL10n} IL10n */\n\nclass BaseExternalServices {\n constructor() {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n this.constructor === BaseExternalServices\n ) {\n throw new Error(\"Cannot initialize BaseExternalServices.\");\n }\n }\n\n updateFindControlState(data) {}\n\n updateFindMatchesCount(data) {}\n\n initPassiveLoading() {}\n\n reportTelemetry(data) {}\n\n /**\n * @returns {Promise}\n */\n async createL10n() {\n throw new Error(\"Not implemented: createL10n\");\n }\n\n createScripting() {\n throw new Error(\"Not implemented: createScripting\");\n }\n\n updateEditorStates(data) {\n throw new Error(\"Not implemented: updateEditorStates\");\n }\n\n dispatchGlobalEvent(_event) {}\n}\n\nexport { BaseExternalServices };\n","/* Copyright 2013 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AppOptions, OptionKind } from \"./app_options.js\";\n\n/**\n * BasePreferences - Abstract base class for storing persistent settings.\n * Used for settings that should be applied to all opened documents,\n * or every time the viewer is loaded.\n */\nclass BasePreferences {\n #defaults = Object.freeze(\n typeof PDFJSDev === \"undefined\"\n ? AppOptions.getAll(OptionKind.PREFERENCE, /* defaultOnly = */ true)\n : PDFJSDev.eval(\"DEFAULT_PREFERENCES\")\n );\n\n #initializedPromise = null;\n\n constructor() {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n this.constructor === BasePreferences\n ) {\n throw new Error(\"Cannot initialize BasePreferences.\");\n }\n\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"CHROME\")) {\n Object.defineProperty(this, \"defaults\", {\n get() {\n return this.#defaults;\n },\n });\n }\n\n this.#initializedPromise = this._readFromStorage(this.#defaults).then(\n ({ browserPrefs, prefs }) => {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n AppOptions._checkDisablePreferences()\n ) {\n return;\n }\n AppOptions.setAll({ ...browserPrefs, ...prefs }, /* prefs = */ true);\n }\n );\n\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n window.addEventListener(\n \"updatedPreference\",\n async ({ detail: { name, value } }) => {\n await this.#initializedPromise;\n AppOptions.setAll({ [name]: value }, /* prefs = */ true);\n }\n );\n }\n }\n\n /**\n * Stub function for writing preferences to storage.\n * @param {Object} prefObj The preferences that should be written to storage.\n * @returns {Promise} A promise that is resolved when the preference values\n * have been written.\n */\n async _writeToStorage(prefObj) {\n throw new Error(\"Not implemented: _writeToStorage\");\n }\n\n /**\n * Stub function for reading preferences from storage.\n * @param {Object} prefObj The preferences that should be read from storage.\n * @returns {Promise} A promise that is resolved with an {Object} containing\n * the preferences that have been read.\n */\n async _readFromStorage(prefObj) {\n throw new Error(\"Not implemented: _readFromStorage\");\n }\n\n /**\n * Reset the preferences to their default values and update storage.\n * @returns {Promise} A promise that is resolved when the preference values\n * have been reset.\n */\n async reset() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\"Please use `about:config` to change preferences.\");\n }\n await this.#initializedPromise;\n AppOptions.setAll(this.#defaults, /* prefs = */ true);\n\n await this._writeToStorage(this.#defaults);\n }\n\n /**\n * Set the value of a preference.\n * @param {string} name The name of the preference that should be changed.\n * @param {boolean|number|string} value The new value of the preference.\n * @returns {Promise} A promise that is resolved when the value has been set,\n * provided that the preference exists and the types match.\n */\n async set(name, value) {\n await this.#initializedPromise;\n AppOptions.setAll({ [name]: value }, /* prefs = */ true);\n\n await this._writeToStorage(\n typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")\n ? { [name]: AppOptions.get(name) }\n : AppOptions.getAll(OptionKind.PREFERENCE)\n );\n }\n\n /**\n * Get the value of a preference.\n * @param {string} name The name of the preference whose value is requested.\n * @returns {Promise} A promise resolved with a {boolean|number|string}\n * containing the value of the preference.\n */\n async get(name) {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\"Not implemented: get\");\n }\n await this.#initializedPromise;\n return AppOptions.get(name);\n }\n\n get initializedPromise() {\n return this.#initializedPromise;\n }\n}\n\nexport { BasePreferences };\n","/**\n * The `FluentType` class is the base of Fluent's type system.\n *\n * Fluent types wrap JavaScript values and store additional configuration for\n * them, which can then be used in the `toString` method together with a proper\n * `Intl` formatter.\n */\nexport class FluentType {\n /**\n * Create a `FluentType` instance.\n *\n * @param value The JavaScript value to wrap.\n */\n constructor(value) {\n this.value = value;\n }\n /**\n * Unwrap the raw value stored by this `FluentType`.\n */\n valueOf() {\n return this.value;\n }\n}\n/**\n * A `FluentType` representing no correct value.\n */\nexport class FluentNone extends FluentType {\n /**\n * Create an instance of `FluentNone` with an optional fallback value.\n * @param value The fallback value of this `FluentNone`.\n */\n constructor(value = \"???\") {\n super(value);\n }\n /**\n * Format this `FluentNone` to the fallback string.\n */\n toString(scope) {\n return `{${this.value}}`;\n }\n}\n/**\n * A `FluentType` representing a number.\n *\n * A `FluentNumber` instance stores the number value of the number it\n * represents. It may also store an option bag of options which will be passed\n * to `Intl.NumerFormat` when the `FluentNumber` is formatted to a string.\n */\nexport class FluentNumber extends FluentType {\n /**\n * Create an instance of `FluentNumber` with options to the\n * `Intl.NumberFormat` constructor.\n *\n * @param value The number value of this `FluentNumber`.\n * @param opts Options which will be passed to `Intl.NumberFormat`.\n */\n constructor(value, opts = {}) {\n super(value);\n this.opts = opts;\n }\n /**\n * Format this `FluentNumber` to a string.\n */\n toString(scope) {\n try {\n const nf = scope.memoizeIntlObject(Intl.NumberFormat, this.opts);\n return nf.format(this.value);\n }\n catch (err) {\n scope.reportError(err);\n return this.value.toString(10);\n }\n }\n}\n/**\n * A `FluentType` representing a date and time.\n *\n * A `FluentDateTime` instance stores the number value of the date it\n * represents, as a numerical timestamp in milliseconds. It may also store an\n * option bag of options which will be passed to `Intl.DateTimeFormat` when the\n * `FluentDateTime` is formatted to a string.\n */\nexport class FluentDateTime extends FluentType {\n /**\n * Create an instance of `FluentDateTime` with options to the\n * `Intl.DateTimeFormat` constructor.\n *\n * @param value The number value of this `FluentDateTime`, in milliseconds.\n * @param opts Options which will be passed to `Intl.DateTimeFormat`.\n */\n constructor(value, opts = {}) {\n super(value);\n this.opts = opts;\n }\n /**\n * Format this `FluentDateTime` to a string.\n */\n toString(scope) {\n try {\n const dtf = scope.memoizeIntlObject(Intl.DateTimeFormat, this.opts);\n return dtf.format(this.value);\n }\n catch (err) {\n scope.reportError(err);\n return new Date(this.value).toISOString();\n }\n }\n}\n","/* global Intl */\n/**\n * @overview\n *\n * The role of the Fluent resolver is to format a `Pattern` to an instance of\n * `FluentValue`. For performance reasons, primitive strings are considered\n * such instances, too.\n *\n * Translations can contain references to other messages or variables,\n * conditional logic in form of select expressions, traits which describe their\n * grammatical features, and can use Fluent builtins which make use of the\n * `Intl` formatters to format numbers and dates into the bundle's languages.\n * See the documentation of the Fluent syntax for more information.\n *\n * In case of errors the resolver will try to salvage as much of the\n * translation as possible. In rare situations where the resolver didn't know\n * how to recover from an error it will return an instance of `FluentNone`.\n *\n * All expressions resolve to an instance of `FluentValue`. The caller should\n * use the `toString` method to convert the instance to a native value.\n *\n * Functions in this file pass around an instance of the `Scope` class, which\n * stores the data required for successful resolution and error recovery.\n */\nimport { FluentType, FluentNone, FluentNumber, FluentDateTime, } from \"./types.js\";\n/**\n * The maximum number of placeables which can be expanded in a single call to\n * `formatPattern`. The limit protects against the Billion Laughs and Quadratic\n * Blowup attacks. See https://msdn.microsoft.com/en-us/magazine/ee335713.aspx.\n */\nconst MAX_PLACEABLES = 100;\n/** Unicode bidi isolation characters. */\nconst FSI = \"\\u2068\";\nconst PDI = \"\\u2069\";\n/** Helper: match a variant key to the given selector. */\nfunction match(scope, selector, key) {\n if (key === selector) {\n // Both are strings.\n return true;\n }\n // XXX Consider comparing options too, e.g. minimumFractionDigits.\n if (key instanceof FluentNumber &&\n selector instanceof FluentNumber &&\n key.value === selector.value) {\n return true;\n }\n if (selector instanceof FluentNumber && typeof key === \"string\") {\n let category = scope\n .memoizeIntlObject(Intl.PluralRules, selector.opts)\n .select(selector.value);\n if (key === category) {\n return true;\n }\n }\n return false;\n}\n/** Helper: resolve the default variant from a list of variants. */\nfunction getDefault(scope, variants, star) {\n if (variants[star]) {\n return resolvePattern(scope, variants[star].value);\n }\n scope.reportError(new RangeError(\"No default\"));\n return new FluentNone();\n}\n/** Helper: resolve arguments to a call expression. */\nfunction getArguments(scope, args) {\n const positional = [];\n const named = Object.create(null);\n for (const arg of args) {\n if (arg.type === \"narg\") {\n named[arg.name] = resolveExpression(scope, arg.value);\n }\n else {\n positional.push(resolveExpression(scope, arg));\n }\n }\n return { positional, named };\n}\n/** Resolve an expression to a Fluent type. */\nfunction resolveExpression(scope, expr) {\n switch (expr.type) {\n case \"str\":\n return expr.value;\n case \"num\":\n return new FluentNumber(expr.value, {\n minimumFractionDigits: expr.precision,\n });\n case \"var\":\n return resolveVariableReference(scope, expr);\n case \"mesg\":\n return resolveMessageReference(scope, expr);\n case \"term\":\n return resolveTermReference(scope, expr);\n case \"func\":\n return resolveFunctionReference(scope, expr);\n case \"select\":\n return resolveSelectExpression(scope, expr);\n default:\n return new FluentNone();\n }\n}\n/** Resolve a reference to a variable. */\nfunction resolveVariableReference(scope, { name }) {\n let arg;\n if (scope.params) {\n // We're inside a TermReference. It's OK to reference undefined parameters.\n if (Object.prototype.hasOwnProperty.call(scope.params, name)) {\n arg = scope.params[name];\n }\n else {\n return new FluentNone(`$${name}`);\n }\n }\n else if (scope.args &&\n Object.prototype.hasOwnProperty.call(scope.args, name)) {\n // We're in the top-level Pattern or inside a MessageReference. Missing\n // variables references produce ReferenceErrors.\n arg = scope.args[name];\n }\n else {\n scope.reportError(new ReferenceError(`Unknown variable: $${name}`));\n return new FluentNone(`$${name}`);\n }\n // Return early if the argument already is an instance of FluentType.\n if (arg instanceof FluentType) {\n return arg;\n }\n // Convert the argument to a Fluent type.\n switch (typeof arg) {\n case \"string\":\n return arg;\n case \"number\":\n return new FluentNumber(arg);\n case \"object\":\n if (arg instanceof Date) {\n return new FluentDateTime(arg.getTime());\n }\n // eslint-disable-next-line no-fallthrough\n default:\n scope.reportError(new TypeError(`Variable type not supported: $${name}, ${typeof arg}`));\n return new FluentNone(`$${name}`);\n }\n}\n/** Resolve a reference to another message. */\nfunction resolveMessageReference(scope, { name, attr }) {\n const message = scope.bundle._messages.get(name);\n if (!message) {\n scope.reportError(new ReferenceError(`Unknown message: ${name}`));\n return new FluentNone(name);\n }\n if (attr) {\n const attribute = message.attributes[attr];\n if (attribute) {\n return resolvePattern(scope, attribute);\n }\n scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`));\n return new FluentNone(`${name}.${attr}`);\n }\n if (message.value) {\n return resolvePattern(scope, message.value);\n }\n scope.reportError(new ReferenceError(`No value: ${name}`));\n return new FluentNone(name);\n}\n/** Resolve a call to a Term with key-value arguments. */\nfunction resolveTermReference(scope, { name, attr, args }) {\n const id = `-${name}`;\n const term = scope.bundle._terms.get(id);\n if (!term) {\n scope.reportError(new ReferenceError(`Unknown term: ${id}`));\n return new FluentNone(id);\n }\n if (attr) {\n const attribute = term.attributes[attr];\n if (attribute) {\n // Every TermReference has its own variables.\n scope.params = getArguments(scope, args).named;\n const resolved = resolvePattern(scope, attribute);\n scope.params = null;\n return resolved;\n }\n scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`));\n return new FluentNone(`${id}.${attr}`);\n }\n scope.params = getArguments(scope, args).named;\n const resolved = resolvePattern(scope, term.value);\n scope.params = null;\n return resolved;\n}\n/** Resolve a call to a Function with positional and key-value arguments. */\nfunction resolveFunctionReference(scope, { name, args }) {\n // Some functions are built-in. Others may be provided by the runtime via\n // the `FluentBundle` constructor.\n let func = scope.bundle._functions[name];\n if (!func) {\n scope.reportError(new ReferenceError(`Unknown function: ${name}()`));\n return new FluentNone(`${name}()`);\n }\n if (typeof func !== \"function\") {\n scope.reportError(new TypeError(`Function ${name}() is not callable`));\n return new FluentNone(`${name}()`);\n }\n try {\n let resolved = getArguments(scope, args);\n return func(resolved.positional, resolved.named);\n }\n catch (err) {\n scope.reportError(err);\n return new FluentNone(`${name}()`);\n }\n}\n/** Resolve a select expression to the member object. */\nfunction resolveSelectExpression(scope, { selector, variants, star }) {\n let sel = resolveExpression(scope, selector);\n if (sel instanceof FluentNone) {\n return getDefault(scope, variants, star);\n }\n // Match the selector against keys of each variant, in order.\n for (const variant of variants) {\n const key = resolveExpression(scope, variant.key);\n if (match(scope, sel, key)) {\n return resolvePattern(scope, variant.value);\n }\n }\n return getDefault(scope, variants, star);\n}\n/** Resolve a pattern (a complex string with placeables). */\nexport function resolveComplexPattern(scope, ptn) {\n if (scope.dirty.has(ptn)) {\n scope.reportError(new RangeError(\"Cyclic reference\"));\n return new FluentNone();\n }\n // Tag the pattern as dirty for the purpose of the current resolution.\n scope.dirty.add(ptn);\n const result = [];\n // Wrap interpolations with Directional Isolate Formatting characters\n // only when the pattern has more than one element.\n const useIsolating = scope.bundle._useIsolating && ptn.length > 1;\n for (const elem of ptn) {\n if (typeof elem === \"string\") {\n result.push(scope.bundle._transform(elem));\n continue;\n }\n scope.placeables++;\n if (scope.placeables > MAX_PLACEABLES) {\n scope.dirty.delete(ptn);\n // This is a fatal error which causes the resolver to instantly bail out\n // on this pattern. The length check protects against excessive memory\n // usage, and throwing protects against eating up the CPU when long\n // placeables are deeply nested.\n throw new RangeError(`Too many placeables expanded: ${scope.placeables}, ` +\n `max allowed is ${MAX_PLACEABLES}`);\n }\n if (useIsolating) {\n result.push(FSI);\n }\n result.push(resolveExpression(scope, elem).toString(scope));\n if (useIsolating) {\n result.push(PDI);\n }\n }\n scope.dirty.delete(ptn);\n return result.join(\"\");\n}\n/**\n * Resolve a simple or a complex Pattern to a FluentString\n * (which is really the string primitive).\n */\nfunction resolvePattern(scope, value) {\n // Resolve a simple pattern.\n if (typeof value === \"string\") {\n return scope.bundle._transform(value);\n }\n return resolveComplexPattern(scope, value);\n}\n","export class Scope {\n constructor(bundle, errors, args) {\n /**\n * The Set of patterns already encountered during this resolution.\n * Used to detect and prevent cyclic resolutions.\n * @ignore\n */\n this.dirty = new WeakSet();\n /** A dict of parameters passed to a TermReference. */\n this.params = null;\n /**\n * The running count of placeables resolved so far.\n * Used to detect the Billion Laughs and Quadratic Blowup attacks.\n * @ignore\n */\n this.placeables = 0;\n this.bundle = bundle;\n this.errors = errors;\n this.args = args;\n }\n reportError(error) {\n if (!this.errors || !(error instanceof Error)) {\n throw error;\n }\n this.errors.push(error);\n }\n memoizeIntlObject(ctor, opts) {\n let cache = this.bundle._intls.get(ctor);\n if (!cache) {\n cache = {};\n this.bundle._intls.set(ctor, cache);\n }\n let id = JSON.stringify(opts);\n if (!cache[id]) {\n cache[id] = new ctor(this.bundle.locales, opts);\n }\n return cache[id];\n }\n}\n","/**\n * @overview\n *\n * The FTL resolver ships with a number of functions built-in.\n *\n * Each function take two arguments:\n * - args - an array of positional args\n * - opts - an object of key-value args\n *\n * Arguments to functions are guaranteed to already be instances of\n * `FluentValue`. Functions must return `FluentValues` as well.\n */\nimport { FluentNone, FluentNumber, FluentDateTime, } from \"./types.js\";\nfunction values(opts, allowed) {\n const unwrapped = Object.create(null);\n for (const [name, opt] of Object.entries(opts)) {\n if (allowed.includes(name)) {\n unwrapped[name] = opt.valueOf();\n }\n }\n return unwrapped;\n}\nconst NUMBER_ALLOWED = [\n \"unitDisplay\",\n \"currencyDisplay\",\n \"useGrouping\",\n \"minimumIntegerDigits\",\n \"minimumFractionDigits\",\n \"maximumFractionDigits\",\n \"minimumSignificantDigits\",\n \"maximumSignificantDigits\",\n];\n/**\n * The implementation of the `NUMBER()` builtin available to translations.\n *\n * Translations may call the `NUMBER()` builtin in order to specify formatting\n * options of a number. For example:\n *\n * pi = The value of Ï€ is {NUMBER($pi, maximumFractionDigits: 2)}.\n *\n * The implementation expects an array of `FluentValues` representing the\n * positional arguments, and an object of named `FluentValues` representing the\n * named parameters.\n *\n * The following options are recognized:\n *\n * unitDisplay\n * currencyDisplay\n * useGrouping\n * minimumIntegerDigits\n * minimumFractionDigits\n * maximumFractionDigits\n * minimumSignificantDigits\n * maximumSignificantDigits\n *\n * Other options are ignored.\n *\n * @param args The positional arguments passed to this `NUMBER()`.\n * @param opts The named argments passed to this `NUMBER()`.\n */\nexport function NUMBER(args, opts) {\n let arg = args[0];\n if (arg instanceof FluentNone) {\n return new FluentNone(`NUMBER(${arg.valueOf()})`);\n }\n if (arg instanceof FluentNumber) {\n return new FluentNumber(arg.valueOf(), {\n ...arg.opts,\n ...values(opts, NUMBER_ALLOWED),\n });\n }\n if (arg instanceof FluentDateTime) {\n return new FluentNumber(arg.valueOf(), {\n ...values(opts, NUMBER_ALLOWED),\n });\n }\n throw new TypeError(\"Invalid argument to NUMBER\");\n}\nconst DATETIME_ALLOWED = [\n \"dateStyle\",\n \"timeStyle\",\n \"fractionalSecondDigits\",\n \"dayPeriod\",\n \"hour12\",\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n];\n/**\n * The implementation of the `DATETIME()` builtin available to translations.\n *\n * Translations may call the `DATETIME()` builtin in order to specify\n * formatting options of a number. For example:\n *\n * now = It's {DATETIME($today, month: \"long\")}.\n *\n * The implementation expects an array of `FluentValues` representing the\n * positional arguments, and an object of named `FluentValues` representing the\n * named parameters.\n *\n * The following options are recognized:\n *\n * dateStyle\n * timeStyle\n * fractionalSecondDigits\n * dayPeriod\n * hour12\n * weekday\n * era\n * year\n * month\n * day\n * hour\n * minute\n * second\n * timeZoneName\n *\n * Other options are ignored.\n *\n * @param args The positional arguments passed to this `DATETIME()`.\n * @param opts The named argments passed to this `DATETIME()`.\n */\nexport function DATETIME(args, opts) {\n let arg = args[0];\n if (arg instanceof FluentNone) {\n return new FluentNone(`DATETIME(${arg.valueOf()})`);\n }\n if (arg instanceof FluentDateTime) {\n return new FluentDateTime(arg.valueOf(), {\n ...arg.opts,\n ...values(opts, DATETIME_ALLOWED),\n });\n }\n if (arg instanceof FluentNumber) {\n return new FluentDateTime(arg.valueOf(), {\n ...values(opts, DATETIME_ALLOWED),\n });\n }\n throw new TypeError(\"Invalid argument to DATETIME\");\n}\n","const cache = new Map();\nexport function getMemoizerForLocale(locales) {\n const stringLocale = Array.isArray(locales) ? locales.join(\" \") : locales;\n let memoizer = cache.get(stringLocale);\n if (memoizer === undefined) {\n memoizer = new Map();\n cache.set(stringLocale, memoizer);\n }\n return memoizer;\n}\n","import { resolveComplexPattern } from \"./resolver.js\";\nimport { Scope } from \"./scope.js\";\nimport { FluentNone } from \"./types.js\";\nimport { NUMBER, DATETIME } from \"./builtins.js\";\nimport { getMemoizerForLocale } from \"./memoizer.js\";\n/**\n * Message bundles are single-language stores of translation resources. They are\n * responsible for formatting message values and attributes to strings.\n */\nexport class FluentBundle {\n /**\n * Create an instance of `FluentBundle`.\n *\n * @example\n * ```js\n * let bundle = new FluentBundle([\"en-US\", \"en\"]);\n *\n * let bundle = new FluentBundle(locales, {useIsolating: false});\n *\n * let bundle = new FluentBundle(locales, {\n * useIsolating: true,\n * functions: {\n * NODE_ENV: () => process.env.NODE_ENV\n * }\n * });\n * ```\n *\n * @param locales - Used to instantiate `Intl` formatters used by translations.\n * @param options - Optional configuration for the bundle.\n */\n constructor(locales, { functions, useIsolating = true, transform = (v) => v, } = {}) {\n /** @ignore */\n this._terms = new Map();\n /** @ignore */\n this._messages = new Map();\n this.locales = Array.isArray(locales) ? locales : [locales];\n this._functions = {\n NUMBER,\n DATETIME,\n ...functions,\n };\n this._useIsolating = useIsolating;\n this._transform = transform;\n this._intls = getMemoizerForLocale(locales);\n }\n /**\n * Check if a message is present in the bundle.\n *\n * @param id - The identifier of the message to check.\n */\n hasMessage(id) {\n return this._messages.has(id);\n }\n /**\n * Return a raw unformatted message object from the bundle.\n *\n * Raw messages are `{value, attributes}` shapes containing translation units\n * called `Patterns`. `Patterns` are implementation-specific; they should be\n * treated as black boxes and formatted with `FluentBundle.formatPattern`.\n *\n * @param id - The identifier of the message to check.\n */\n getMessage(id) {\n return this._messages.get(id);\n }\n /**\n * Add a translation resource to the bundle.\n *\n * @example\n * ```js\n * let res = new FluentResource(\"foo = Foo\");\n * bundle.addResource(res);\n * bundle.getMessage(\"foo\");\n * // → {value: .., attributes: {..}}\n * ```\n *\n * @param res\n * @param options\n */\n addResource(res, { allowOverrides = false, } = {}) {\n const errors = [];\n for (let i = 0; i < res.body.length; i++) {\n let entry = res.body[i];\n if (entry.id.startsWith(\"-\")) {\n // Identifiers starting with a dash (-) define terms. Terms are private\n // and cannot be retrieved from FluentBundle.\n if (allowOverrides === false && this._terms.has(entry.id)) {\n errors.push(new Error(`Attempt to override an existing term: \"${entry.id}\"`));\n continue;\n }\n this._terms.set(entry.id, entry);\n }\n else {\n if (allowOverrides === false && this._messages.has(entry.id)) {\n errors.push(new Error(`Attempt to override an existing message: \"${entry.id}\"`));\n continue;\n }\n this._messages.set(entry.id, entry);\n }\n }\n return errors;\n }\n /**\n * Format a `Pattern` to a string.\n *\n * Format a raw `Pattern` into a string. `args` will be used to resolve\n * references to variables passed as arguments to the translation.\n *\n * In case of errors `formatPattern` will try to salvage as much of the\n * translation as possible and will still return a string. For performance\n * reasons, the encountered errors are not returned but instead are appended\n * to the `errors` array passed as the third argument.\n *\n * If `errors` is omitted, the first encountered error will be thrown.\n *\n * @example\n * ```js\n * let errors = [];\n * bundle.addResource(\n * new FluentResource(\"hello = Hello, {$name}!\"));\n *\n * let hello = bundle.getMessage(\"hello\");\n * if (hello.value) {\n * bundle.formatPattern(hello.value, {name: \"Jane\"}, errors);\n * // Returns \"Hello, Jane!\" and `errors` is empty.\n *\n * bundle.formatPattern(hello.value, undefined, errors);\n * // Returns \"Hello, {$name}!\" and `errors` is now:\n * // []\n * }\n * ```\n */\n formatPattern(pattern, args = null, errors = null) {\n // Resolve a simple pattern without creating a scope. No error handling is\n // required; by definition simple patterns don't have placeables.\n if (typeof pattern === \"string\") {\n return this._transform(pattern);\n }\n // Resolve a complex pattern.\n let scope = new Scope(this, errors, args);\n try {\n let value = resolveComplexPattern(scope, pattern);\n return value.toString(scope);\n }\n catch (err) {\n if (scope.errors && err instanceof Error) {\n scope.errors.push(err);\n return new FluentNone().toString(scope);\n }\n throw err;\n }\n }\n}\n","// This regex is used to iterate through the beginnings of messages and terms.\n// With the /m flag, the ^ matches at the beginning of every line.\nconst RE_MESSAGE_START = /^(-?[a-zA-Z][\\w-]*) *= */gm;\n// Both Attributes and Variants are parsed in while loops. These regexes are\n// used to break out of them.\nconst RE_ATTRIBUTE_START = /\\.([a-zA-Z][\\w-]*) *= */y;\nconst RE_VARIANT_START = /\\*?\\[/y;\nconst RE_NUMBER_LITERAL = /(-?[0-9]+(?:\\.([0-9]+))?)/y;\nconst RE_IDENTIFIER = /([a-zA-Z][\\w-]*)/y;\nconst RE_REFERENCE = /([$-])?([a-zA-Z][\\w-]*)(?:\\.([a-zA-Z][\\w-]*))?/y;\nconst RE_FUNCTION_NAME = /^[A-Z][A-Z0-9_-]*$/;\n// A \"run\" is a sequence of text or string literal characters which don't\n// require any special handling. For TextElements such special characters are: {\n// (starts a placeable), and line breaks which require additional logic to check\n// if the next line is indented. For StringLiterals they are: \\ (starts an\n// escape sequence), \" (ends the literal), and line breaks which are not allowed\n// in StringLiterals. Note that string runs may be empty; text runs may not.\nconst RE_TEXT_RUN = /([^{}\\n\\r]+)/y;\nconst RE_STRING_RUN = /([^\\\\\"\\n\\r]*)/y;\n// Escape sequences.\nconst RE_STRING_ESCAPE = /\\\\([\\\\\"])/y;\nconst RE_UNICODE_ESCAPE = /\\\\u([a-fA-F0-9]{4})|\\\\U([a-fA-F0-9]{6})/y;\n// Used for trimming TextElements and indents.\nconst RE_LEADING_NEWLINES = /^\\n+/;\nconst RE_TRAILING_SPACES = / +$/;\n// Used in makeIndent to strip spaces from blank lines and normalize CRLF to LF.\nconst RE_BLANK_LINES = / *\\r?\\n/g;\n// Used in makeIndent to measure the indentation.\nconst RE_INDENT = /( *)$/;\n// Common tokens.\nconst TOKEN_BRACE_OPEN = /{\\s*/y;\nconst TOKEN_BRACE_CLOSE = /\\s*}/y;\nconst TOKEN_BRACKET_OPEN = /\\[\\s*/y;\nconst TOKEN_BRACKET_CLOSE = /\\s*] */y;\nconst TOKEN_PAREN_OPEN = /\\s*\\(\\s*/y;\nconst TOKEN_ARROW = /\\s*->\\s*/y;\nconst TOKEN_COLON = /\\s*:\\s*/y;\n// Note the optional comma. As a deviation from the Fluent EBNF, the parser\n// doesn't enforce commas between call arguments.\nconst TOKEN_COMMA = /\\s*,?\\s*/y;\nconst TOKEN_BLANK = /\\s+/y;\n/**\n * Fluent Resource is a structure storing parsed localization entries.\n */\nexport class FluentResource {\n constructor(source) {\n this.body = [];\n RE_MESSAGE_START.lastIndex = 0;\n let cursor = 0;\n // Iterate over the beginnings of messages and terms to efficiently skip\n // comments and recover from errors.\n while (true) {\n let next = RE_MESSAGE_START.exec(source);\n if (next === null) {\n break;\n }\n cursor = RE_MESSAGE_START.lastIndex;\n try {\n this.body.push(parseMessage(next[1]));\n }\n catch (err) {\n if (err instanceof SyntaxError) {\n // Don't report any Fluent syntax errors. Skip directly to the\n // beginning of the next message or term.\n continue;\n }\n throw err;\n }\n }\n // The parser implementation is inlined below for performance reasons,\n // as well as for convenience of accessing `source` and `cursor`.\n // The parser focuses on minimizing the number of false negatives at the\n // expense of increasing the risk of false positives. In other words, it\n // aims at parsing valid Fluent messages with a success rate of 100%, but it\n // may also parse a few invalid messages which the reference parser would\n // reject. The parser doesn't perform any validation and may produce entries\n // which wouldn't make sense in the real world. For best results users are\n // advised to validate translations with the fluent-syntax parser\n // pre-runtime.\n // The parser makes an extensive use of sticky regexes which can be anchored\n // to any offset of the source string without slicing it. Errors are thrown\n // to bail out of parsing of ill-formed messages.\n function test(re) {\n re.lastIndex = cursor;\n return re.test(source);\n }\n // Advance the cursor by the char if it matches. May be used as a predicate\n // (was the match found?) or, if errorClass is passed, as an assertion.\n function consumeChar(char, errorClass) {\n if (source[cursor] === char) {\n cursor++;\n return true;\n }\n if (errorClass) {\n throw new errorClass(`Expected ${char}`);\n }\n return false;\n }\n // Advance the cursor by the token if it matches. May be used as a predicate\n // (was the match found?) or, if errorClass is passed, as an assertion.\n function consumeToken(re, errorClass) {\n if (test(re)) {\n cursor = re.lastIndex;\n return true;\n }\n if (errorClass) {\n throw new errorClass(`Expected ${re.toString()}`);\n }\n return false;\n }\n // Execute a regex, advance the cursor, and return all capture groups.\n function match(re) {\n re.lastIndex = cursor;\n let result = re.exec(source);\n if (result === null) {\n throw new SyntaxError(`Expected ${re.toString()}`);\n }\n cursor = re.lastIndex;\n return result;\n }\n // Execute a regex, advance the cursor, and return the capture group.\n function match1(re) {\n return match(re)[1];\n }\n function parseMessage(id) {\n let value = parsePattern();\n let attributes = parseAttributes();\n if (value === null && Object.keys(attributes).length === 0) {\n throw new SyntaxError(\"Expected message value or attributes\");\n }\n return { id, value, attributes };\n }\n function parseAttributes() {\n let attrs = Object.create(null);\n while (test(RE_ATTRIBUTE_START)) {\n let name = match1(RE_ATTRIBUTE_START);\n let value = parsePattern();\n if (value === null) {\n throw new SyntaxError(\"Expected attribute value\");\n }\n attrs[name] = value;\n }\n return attrs;\n }\n function parsePattern() {\n let first;\n // First try to parse any simple text on the same line as the id.\n if (test(RE_TEXT_RUN)) {\n first = match1(RE_TEXT_RUN);\n }\n // If there's a placeable on the first line, parse a complex pattern.\n if (source[cursor] === \"{\" || source[cursor] === \"}\") {\n // Re-use the text parsed above, if possible.\n return parsePatternElements(first ? [first] : [], Infinity);\n }\n // RE_TEXT_VALUE stops at newlines. Only continue parsing the pattern if\n // what comes after the newline is indented.\n let indent = parseIndent();\n if (indent) {\n if (first) {\n // If there's text on the first line, the blank block is part of the\n // translation content in its entirety.\n return parsePatternElements([first, indent], indent.length);\n }\n // Otherwise, we're dealing with a block pattern, i.e. a pattern which\n // starts on a new line. Discrad the leading newlines but keep the\n // inline indent; it will be used by the dedentation logic.\n indent.value = trim(indent.value, RE_LEADING_NEWLINES);\n return parsePatternElements([indent], indent.length);\n }\n if (first) {\n // It was just a simple inline text after all.\n return trim(first, RE_TRAILING_SPACES);\n }\n return null;\n }\n // Parse a complex pattern as an array of elements.\n function parsePatternElements(elements = [], commonIndent) {\n while (true) {\n if (test(RE_TEXT_RUN)) {\n elements.push(match1(RE_TEXT_RUN));\n continue;\n }\n if (source[cursor] === \"{\") {\n elements.push(parsePlaceable());\n continue;\n }\n if (source[cursor] === \"}\") {\n throw new SyntaxError(\"Unbalanced closing brace\");\n }\n let indent = parseIndent();\n if (indent) {\n elements.push(indent);\n commonIndent = Math.min(commonIndent, indent.length);\n continue;\n }\n break;\n }\n let lastIndex = elements.length - 1;\n let lastElement = elements[lastIndex];\n // Trim the trailing spaces in the last element if it's a TextElement.\n if (typeof lastElement === \"string\") {\n elements[lastIndex] = trim(lastElement, RE_TRAILING_SPACES);\n }\n let baked = [];\n for (let element of elements) {\n if (element instanceof Indent) {\n // Dedent indented lines by the maximum common indent.\n element = element.value.slice(0, element.value.length - commonIndent);\n }\n if (element) {\n baked.push(element);\n }\n }\n return baked;\n }\n function parsePlaceable() {\n consumeToken(TOKEN_BRACE_OPEN, SyntaxError);\n let selector = parseInlineExpression();\n if (consumeToken(TOKEN_BRACE_CLOSE)) {\n return selector;\n }\n if (consumeToken(TOKEN_ARROW)) {\n let variants = parseVariants();\n consumeToken(TOKEN_BRACE_CLOSE, SyntaxError);\n return {\n type: \"select\",\n selector,\n ...variants,\n };\n }\n throw new SyntaxError(\"Unclosed placeable\");\n }\n function parseInlineExpression() {\n if (source[cursor] === \"{\") {\n // It's a nested placeable.\n return parsePlaceable();\n }\n if (test(RE_REFERENCE)) {\n let [, sigil, name, attr = null] = match(RE_REFERENCE);\n if (sigil === \"$\") {\n return { type: \"var\", name };\n }\n if (consumeToken(TOKEN_PAREN_OPEN)) {\n let args = parseArguments();\n if (sigil === \"-\") {\n // A parameterized term: -term(...).\n return { type: \"term\", name, attr, args };\n }\n if (RE_FUNCTION_NAME.test(name)) {\n return { type: \"func\", name, args };\n }\n throw new SyntaxError(\"Function names must be all upper-case\");\n }\n if (sigil === \"-\") {\n // A non-parameterized term: -term.\n return {\n type: \"term\",\n name,\n attr,\n args: [],\n };\n }\n return { type: \"mesg\", name, attr };\n }\n return parseLiteral();\n }\n function parseArguments() {\n let args = [];\n while (true) {\n switch (source[cursor]) {\n case \")\": // End of the argument list.\n cursor++;\n return args;\n case undefined: // EOF\n throw new SyntaxError(\"Unclosed argument list\");\n }\n args.push(parseArgument());\n // Commas between arguments are treated as whitespace.\n consumeToken(TOKEN_COMMA);\n }\n }\n function parseArgument() {\n let expr = parseInlineExpression();\n if (expr.type !== \"mesg\") {\n return expr;\n }\n if (consumeToken(TOKEN_COLON)) {\n // The reference is the beginning of a named argument.\n return {\n type: \"narg\",\n name: expr.name,\n value: parseLiteral(),\n };\n }\n // It's a regular message reference.\n return expr;\n }\n function parseVariants() {\n let variants = [];\n let count = 0;\n let star;\n while (test(RE_VARIANT_START)) {\n if (consumeChar(\"*\")) {\n star = count;\n }\n let key = parseVariantKey();\n let value = parsePattern();\n if (value === null) {\n throw new SyntaxError(\"Expected variant value\");\n }\n variants[count++] = { key, value };\n }\n if (count === 0) {\n return null;\n }\n if (star === undefined) {\n throw new SyntaxError(\"Expected default variant\");\n }\n return { variants, star };\n }\n function parseVariantKey() {\n consumeToken(TOKEN_BRACKET_OPEN, SyntaxError);\n let key;\n if (test(RE_NUMBER_LITERAL)) {\n key = parseNumberLiteral();\n }\n else {\n key = {\n type: \"str\",\n value: match1(RE_IDENTIFIER),\n };\n }\n consumeToken(TOKEN_BRACKET_CLOSE, SyntaxError);\n return key;\n }\n function parseLiteral() {\n if (test(RE_NUMBER_LITERAL)) {\n return parseNumberLiteral();\n }\n if (source[cursor] === '\"') {\n return parseStringLiteral();\n }\n throw new SyntaxError(\"Invalid expression\");\n }\n function parseNumberLiteral() {\n let [, value, fraction = \"\"] = match(RE_NUMBER_LITERAL);\n let precision = fraction.length;\n return {\n type: \"num\",\n value: parseFloat(value),\n precision,\n };\n }\n function parseStringLiteral() {\n consumeChar('\"', SyntaxError);\n let value = \"\";\n while (true) {\n value += match1(RE_STRING_RUN);\n if (source[cursor] === \"\\\\\") {\n value += parseEscapeSequence();\n continue;\n }\n if (consumeChar('\"')) {\n return { type: \"str\", value };\n }\n // We've reached an EOL of EOF.\n throw new SyntaxError(\"Unclosed string literal\");\n }\n }\n // Unescape known escape sequences.\n function parseEscapeSequence() {\n if (test(RE_STRING_ESCAPE)) {\n return match1(RE_STRING_ESCAPE);\n }\n if (test(RE_UNICODE_ESCAPE)) {\n let [, codepoint4, codepoint6] = match(RE_UNICODE_ESCAPE);\n let codepoint = parseInt(codepoint4 || codepoint6, 16);\n return codepoint <= 0xd7ff || 0xe000 <= codepoint\n ? // It's a Unicode scalar value.\n String.fromCodePoint(codepoint)\n : // Lonely surrogates can cause trouble when the parsing result is\n // saved using UTF-8. Use U+FFFD REPLACEMENT CHARACTER instead.\n \"�\";\n }\n throw new SyntaxError(\"Unknown escape sequence\");\n }\n // Parse blank space. Return it if it looks like indent before a pattern\n // line. Skip it othwerwise.\n function parseIndent() {\n let start = cursor;\n consumeToken(TOKEN_BLANK);\n // Check the first non-blank character after the indent.\n switch (source[cursor]) {\n case \".\":\n case \"[\":\n case \"*\":\n case \"}\":\n case undefined: // EOF\n // A special character. End the Pattern.\n return false;\n case \"{\":\n // Placeables don't require indentation (in EBNF: block-placeable).\n // Continue the Pattern.\n return makeIndent(source.slice(start, cursor));\n }\n // If the first character on the line is not one of the special characters\n // listed above, it's a regular text character. Check if there's at least\n // one space of indent before it.\n if (source[cursor - 1] === \" \") {\n // It's an indented text character (in EBNF: indented-char). Continue\n // the Pattern.\n return makeIndent(source.slice(start, cursor));\n }\n // A not-indented text character is likely the identifier of the next\n // message. End the Pattern.\n return false;\n }\n // Trim blanks in text according to the given regex.\n function trim(text, re) {\n return text.replace(re, \"\");\n }\n // Normalize a blank block and extract the indent details.\n function makeIndent(blank) {\n let value = blank.replace(RE_BLANK_LINES, \"\\n\");\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n let length = RE_INDENT.exec(blank)[1].length;\n return new Indent(value, length);\n }\n }\n}\nclass Indent {\n constructor(value, length) {\n this.value = value;\n this.length = length;\n }\n}\n","/**\n * @module fluent\n * @overview\n *\n * `fluent` is a JavaScript implementation of Project Fluent, a localization\n * framework designed to unleash the expressive power of the natural language.\n *\n */\nexport { FluentBundle } from \"./bundle.js\";\nexport { FluentResource } from \"./resource.js\";\nexport { FluentType, FluentNone, FluentNumber, FluentDateTime, } from \"./types.js\";\n","/* eslint no-console: [\"error\", {allow: [\"warn\"]}] */\n/* global console */\n// Match the opening angle bracket (<) in HTML tags, and HTML entities like\n// &, &, &.\nconst reOverlay = /<|&#?\\w+;/;\n/**\n * Elements allowed in translations even if they are not present in the source\n * HTML. They are text-level elements as defined by the HTML5 spec:\n * https://www.w3.org/TR/html5/text-level-semantics.html with the exception of:\n *\n * - a - because we don't allow href on it anyways,\n * - ruby, rt, rp - because we don't allow nested elements to be inserted.\n */\nconst TEXT_LEVEL_ELEMENTS = {\n \"http://www.w3.org/1999/xhtml\": [\n \"em\",\n \"strong\",\n \"small\",\n \"s\",\n \"cite\",\n \"q\",\n \"dfn\",\n \"abbr\",\n \"data\",\n \"time\",\n \"code\",\n \"var\",\n \"samp\",\n \"kbd\",\n \"sub\",\n \"sup\",\n \"i\",\n \"b\",\n \"u\",\n \"mark\",\n \"bdi\",\n \"bdo\",\n \"span\",\n \"br\",\n \"wbr\",\n ],\n};\nconst LOCALIZABLE_ATTRIBUTES = {\n \"http://www.w3.org/1999/xhtml\": {\n global: [\"title\", \"aria-label\", \"aria-valuetext\"],\n a: [\"download\"],\n area: [\"download\", \"alt\"],\n // value is special-cased in isAttrNameLocalizable\n input: [\"alt\", \"placeholder\"],\n menuitem: [\"label\"],\n menu: [\"label\"],\n optgroup: [\"label\"],\n option: [\"label\"],\n track: [\"label\"],\n img: [\"alt\"],\n textarea: [\"placeholder\"],\n th: [\"abbr\"],\n },\n \"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul\": {\n global: [\n \"accesskey\",\n \"aria-label\",\n \"aria-valuetext\",\n \"label\",\n \"title\",\n \"tooltiptext\",\n ],\n description: [\"value\"],\n key: [\"key\", \"keycode\"],\n label: [\"value\"],\n textbox: [\"placeholder\", \"value\"],\n },\n};\n/**\n * Translate an element.\n *\n * Translate the element's text content and attributes. Some HTML markup is\n * allowed in the translation. The element's children with the data-l10n-name\n * attribute will be treated as arguments to the translation. If the\n * translation defines the same children, their attributes and text contents\n * will be used for translating the matching source child.\n *\n * @param {Element} element\n * @param {Object} translation\n * @private\n */\nexport default function translateElement(element, translation) {\n const { value } = translation;\n if (typeof value === \"string\") {\n if (element.localName === \"title\" &&\n element.namespaceURI === \"http://www.w3.org/1999/xhtml\") {\n // A special case for the HTML title element whose content must be text.\n element.textContent = value;\n }\n else if (!reOverlay.test(value)) {\n // If the translation doesn't contain any markup skip the overlay logic.\n element.textContent = value;\n }\n else {\n // Else parse the translation's HTML using an inert template element,\n // sanitize it and replace the element's content.\n const templateElement = element.ownerDocument.createElementNS(\"http://www.w3.org/1999/xhtml\", \"template\");\n templateElement.innerHTML = value;\n overlayChildNodes(templateElement.content, element);\n }\n }\n // Even if the translation doesn't define any localizable attributes, run\n // overlayAttributes to remove any localizable attributes set by previous\n // translations.\n overlayAttributes(translation, element);\n}\n/**\n * Replace child nodes of an element with child nodes of another element.\n *\n * The contents of the target element will be cleared and fully replaced with\n * sanitized contents of the source element.\n *\n * @param {DocumentFragment} fromFragment - The source of children to overlay.\n * @param {Element} toElement - The target of the overlay.\n * @private\n */\nfunction overlayChildNodes(fromFragment, toElement) {\n for (const childNode of fromFragment.childNodes) {\n if (childNode.nodeType === childNode.TEXT_NODE) {\n // Keep the translated text node.\n continue;\n }\n if (childNode.hasAttribute(\"data-l10n-name\")) {\n const sanitized = getNodeForNamedElement(toElement, childNode);\n fromFragment.replaceChild(sanitized, childNode);\n continue;\n }\n if (isElementAllowed(childNode)) {\n const sanitized = createSanitizedElement(childNode);\n fromFragment.replaceChild(sanitized, childNode);\n continue;\n }\n console.warn(`An element of forbidden type \"${childNode.localName}\" was found in ` +\n \"the translation. Only safe text-level elements and elements with \" +\n \"data-l10n-name are allowed.\");\n // If all else fails, replace the element with its text content.\n fromFragment.replaceChild(createTextNodeFromTextContent(childNode), childNode);\n }\n toElement.textContent = \"\";\n toElement.appendChild(fromFragment);\n}\nfunction hasAttribute(attributes, name) {\n if (!attributes) {\n return false;\n }\n for (let attr of attributes) {\n if (attr.name === name) {\n return true;\n }\n }\n return false;\n}\n/**\n * Transplant localizable attributes of an element to another element.\n *\n * Any localizable attributes already set on the target element will be\n * cleared.\n *\n * @param {Element|Object} fromElement - The source of child nodes to overlay.\n * @param {Element} toElement - The target of the overlay.\n * @private\n */\nfunction overlayAttributes(fromElement, toElement) {\n const explicitlyAllowed = toElement.hasAttribute(\"data-l10n-attrs\")\n ? toElement\n .getAttribute(\"data-l10n-attrs\")\n .split(\",\")\n .map(i => i.trim())\n : null;\n // Remove existing localizable attributes if they\n // will not be used in the new translation.\n for (const attr of Array.from(toElement.attributes)) {\n if (isAttrNameLocalizable(attr.name, toElement, explicitlyAllowed) &&\n !hasAttribute(fromElement.attributes, attr.name)) {\n toElement.removeAttribute(attr.name);\n }\n }\n // fromElement might be a {value, attributes} object as returned by\n // Localization.messageFromBundle. In which case attributes may be null to\n // save GC cycles.\n if (!fromElement.attributes) {\n return;\n }\n // Set localizable attributes.\n for (const attr of Array.from(fromElement.attributes)) {\n if (isAttrNameLocalizable(attr.name, toElement, explicitlyAllowed) &&\n toElement.getAttribute(attr.name) !== attr.value) {\n toElement.setAttribute(attr.name, attr.value);\n }\n }\n}\n/**\n * Sanitize a child element created by the translation.\n *\n * Try to find a corresponding child in sourceElement and use it as the base\n * for the sanitization. This will preserve functional attribtues defined on\n * the child element in the source HTML.\n *\n * @param {Element} sourceElement - The source for data-l10n-name lookups.\n * @param {Element} translatedChild - The translated child to be sanitized.\n * @returns {Element}\n * @private\n */\nfunction getNodeForNamedElement(sourceElement, translatedChild) {\n const childName = translatedChild.getAttribute(\"data-l10n-name\");\n const sourceChild = sourceElement.querySelector(`[data-l10n-name=\"${childName}\"]`);\n if (!sourceChild) {\n console.warn(`An element named \"${childName}\" wasn't found in the source.`);\n return createTextNodeFromTextContent(translatedChild);\n }\n if (sourceChild.localName !== translatedChild.localName) {\n console.warn(`An element named \"${childName}\" was found in the translation ` +\n `but its type ${translatedChild.localName} didn't match the ` +\n `element found in the source (${sourceChild.localName}).`);\n return createTextNodeFromTextContent(translatedChild);\n }\n // Remove it from sourceElement so that the translation cannot use\n // the same reference name again.\n sourceElement.removeChild(sourceChild);\n // We can't currently guarantee that a translation won't remove\n // sourceChild from the element completely, which could break the app if\n // it relies on an event handler attached to the sourceChild. Let's make\n // this limitation explicit for now by breaking the identitiy of the\n // sourceChild by cloning it. This will destroy all event handlers\n // attached to sourceChild via addEventListener and via on\n // properties.\n const clone = sourceChild.cloneNode(false);\n return shallowPopulateUsing(translatedChild, clone);\n}\n/**\n * Sanitize an allowed element.\n *\n * Text-level elements allowed in translations may only use safe attributes\n * and will have any nested markup stripped to text content.\n *\n * @param {Element} element - The element to be sanitized.\n * @returns {Element}\n * @private\n */\nfunction createSanitizedElement(element) {\n // Start with an empty element of the same type to remove nested children\n // and non-localizable attributes defined by the translation.\n const clone = element.ownerDocument.createElement(element.localName);\n return shallowPopulateUsing(element, clone);\n}\n/**\n * Convert an element to a text node.\n *\n * @param {Element} element - The element to be sanitized.\n * @returns {Node}\n * @private\n */\nfunction createTextNodeFromTextContent(element) {\n return element.ownerDocument.createTextNode(element.textContent);\n}\n/**\n * Check if element is allowed in the translation.\n *\n * This method is used by the sanitizer when the translation markup contains\n * an element which is not present in the source code.\n *\n * @param {Element} element\n * @returns {boolean}\n * @private\n */\nfunction isElementAllowed(element) {\n const allowed = TEXT_LEVEL_ELEMENTS[element.namespaceURI];\n return allowed && allowed.includes(element.localName);\n}\n/**\n * Check if attribute is allowed for the given element.\n *\n * This method is used by the sanitizer when the translation markup contains\n * DOM attributes, or when the translation has traits which map to DOM\n * attributes.\n *\n * `explicitlyAllowed` can be passed as a list of attributes explicitly\n * allowed on this element.\n *\n * @param {string} name\n * @param {Element} element\n * @param {Array} explicitlyAllowed\n * @returns {boolean}\n * @private\n */\nfunction isAttrNameLocalizable(name, element, explicitlyAllowed = null) {\n if (explicitlyAllowed && explicitlyAllowed.includes(name)) {\n return true;\n }\n const allowed = LOCALIZABLE_ATTRIBUTES[element.namespaceURI];\n if (!allowed) {\n return false;\n }\n const attrName = name.toLowerCase();\n const elemName = element.localName;\n // Is it a globally safe attribute?\n if (allowed.global.includes(attrName)) {\n return true;\n }\n // Are there no allowed attributes for this element?\n if (!allowed[elemName]) {\n return false;\n }\n // Is it allowed on this element?\n if (allowed[elemName].includes(attrName)) {\n return true;\n }\n // Special case for value on HTML inputs with type button, reset, submit\n if (element.namespaceURI === \"http://www.w3.org/1999/xhtml\" &&\n elemName === \"input\" &&\n attrName === \"value\") {\n const type = element.type.toLowerCase();\n if (type === \"submit\" || type === \"button\" || type === \"reset\") {\n return true;\n }\n }\n return false;\n}\n/**\n * Helper to set textContent and localizable attributes on an element.\n *\n * @param {Element} fromElement\n * @param {Element} toElement\n * @returns {Element}\n * @private\n */\nfunction shallowPopulateUsing(fromElement, toElement) {\n toElement.textContent = fromElement.textContent;\n overlayAttributes(fromElement, toElement);\n return toElement;\n}\n","/*\n * Base CachedIterable class.\n */\nexport default class CachedIterable extends Array {\n /**\n * Create a `CachedIterable` instance from an iterable or, if another\n * instance of `CachedIterable` is passed, return it without any\n * modifications.\n *\n * @param {Iterable} iterable\n * @returns {CachedIterable}\n */\n static from(iterable) {\n if (iterable instanceof this) {\n return iterable;\n }\n\n return new this(iterable);\n }\n}\n","import CachedIterable from \"./cached_iterable.mjs\";\n\n/*\n * CachedSyncIterable caches the elements yielded by an iterable.\n *\n * It can be used to iterate over an iterable many times without depleting the\n * iterable.\n */\nexport default class CachedSyncIterable extends CachedIterable {\n /**\n * Create an `CachedSyncIterable` instance.\n *\n * @param {Iterable} iterable\n * @returns {CachedSyncIterable}\n */\n constructor(iterable) {\n super();\n\n if (Symbol.iterator in Object(iterable)) {\n this.iterator = iterable[Symbol.iterator]();\n } else {\n throw new TypeError(\"Argument must implement the iteration protocol.\");\n }\n }\n\n [Symbol.iterator]() {\n const cached = this;\n let cur = 0;\n\n return {\n next() {\n if (cached.length <= cur) {\n cached.push(cached.iterator.next());\n }\n return cached[cur++];\n }\n };\n }\n\n /**\n * This method allows user to consume the next element from the iterator\n * into the cache.\n *\n * @param {number} count - number of elements to consume\n */\n touchNext(count = 1) {\n let idx = 0;\n while (idx++ < count) {\n const last = this[this.length - 1];\n if (last && last.done) {\n break;\n }\n this.push(this.iterator.next());\n }\n // Return the last cached {value, done} object to allow the calling\n // code to decide if it needs to call touchNext again.\n return this[this.length - 1];\n }\n}\n","import CachedIterable from \"./cached_iterable.mjs\";\n\n/*\n * CachedAsyncIterable caches the elements yielded by an async iterable.\n *\n * It can be used to iterate over an iterable many times without depleting the\n * iterable.\n */\nexport default class CachedAsyncIterable extends CachedIterable {\n /**\n * Create an `CachedAsyncIterable` instance.\n *\n * @param {Iterable} iterable\n * @returns {CachedAsyncIterable}\n */\n constructor(iterable) {\n super();\n\n if (Symbol.asyncIterator in Object(iterable)) {\n this.iterator = iterable[Symbol.asyncIterator]();\n } else if (Symbol.iterator in Object(iterable)) {\n this.iterator = iterable[Symbol.iterator]();\n } else {\n throw new TypeError(\"Argument must implement the iteration protocol.\");\n }\n }\n\n /**\n * Asynchronous iterator caching the yielded elements.\n *\n * Elements yielded by the original iterable will be cached and available\n * synchronously. Returns an async generator object implementing the\n * iterator protocol over the elements of the original (async or sync)\n * iterable.\n */\n [Symbol.asyncIterator]() {\n const cached = this;\n let cur = 0;\n\n return {\n async next() {\n if (cached.length <= cur) {\n cached.push(cached.iterator.next());\n }\n return cached[cur++];\n }\n };\n }\n\n /**\n * This method allows user to consume the next element from the iterator\n * into the cache.\n *\n * @param {number} count - number of elements to consume\n */\n async touchNext(count = 1) {\n let idx = 0;\n while (idx++ < count) {\n const last = this[this.length - 1];\n if (last && (await last).done) {\n break;\n }\n this.push(this.iterator.next());\n }\n // Return the last cached {value, done} object to allow the calling\n // code to decide if it needs to call touchNext again.\n return this[this.length - 1];\n }\n}\n","export {default as CachedSyncIterable} from \"./cached_sync_iterable.mjs\";\nexport {default as CachedAsyncIterable} from \"./cached_async_iterable.mjs\";\n","/* eslint no-console: [\"error\", { allow: [\"warn\", \"error\"] }] */\n/* global console */\nimport { CachedAsyncIterable } from \"cached-iterable\";\n/**\n * The `Localization` class is a central high-level API for vanilla\n * JavaScript use of Fluent.\n * It combines language negotiation, FluentBundle and I/O to\n * provide a scriptable API to format translations.\n */\nexport default class Localization {\n /**\n * @param {Array} resourceIds - List of resource IDs\n * @param {Function} generateBundles - Function that returns a\n * generator over FluentBundles\n *\n * @returns {Localization}\n */\n constructor(resourceIds = [], generateBundles) {\n this.resourceIds = resourceIds;\n this.generateBundles = generateBundles;\n this.onChange(true);\n }\n addResourceIds(resourceIds, eager = false) {\n this.resourceIds.push(...resourceIds);\n this.onChange(eager);\n return this.resourceIds.length;\n }\n removeResourceIds(resourceIds) {\n this.resourceIds = this.resourceIds.filter(r => !resourceIds.includes(r));\n this.onChange();\n return this.resourceIds.length;\n }\n /**\n * Format translations and handle fallback if needed.\n *\n * Format translations for `keys` from `FluentBundle` instances on this\n * DOMLocalization. In case of errors, fetch the next context in the\n * fallback chain.\n *\n * @param {Array} keys - Translation keys to format.\n * @param {Function} method - Formatting function.\n * @returns {Promise>}\n * @private\n */\n async formatWithFallback(keys, method) {\n const translations = [];\n let hasAtLeastOneBundle = false;\n for await (const bundle of this.bundles) {\n hasAtLeastOneBundle = true;\n const missingIds = keysFromBundle(method, bundle, keys, translations);\n if (missingIds.size === 0) {\n break;\n }\n if (typeof console !== \"undefined\") {\n const locale = bundle.locales[0];\n const ids = Array.from(missingIds).join(\", \");\n console.warn(`[fluent] Missing translations in ${locale}: ${ids}`);\n }\n }\n if (!hasAtLeastOneBundle && typeof console !== \"undefined\") {\n // eslint-disable-next-line max-len\n console.warn(`[fluent] Request for keys failed because no resource bundles got generated.\n keys: ${JSON.stringify(keys)}.\n resourceIds: ${JSON.stringify(this.resourceIds)}.`);\n }\n return translations;\n }\n /**\n * Format translations into `{value, attributes}` objects.\n *\n * The fallback logic is the same as in `formatValues`\n * but it returns `{value, attributes}` objects\n * which are suitable for the translation of DOM elements.\n *\n * Returns a Promise resolving to an array of the translation strings.\n *\n * @example\n * ```js\n * docL10n.formatMessages([\n * {id: 'hello', args: { who: 'Mary' }},\n * {id: 'welcome'}\n * ]).then(console.log);\n *\n * // [\n * // { value: 'Hello, Mary!', attributes: null },\n * // {\n * // value: 'Welcome!',\n * // attributes: [ { name: \"title\", value: 'Hello' } ]\n * // }\n * // ]\n * ```\n *\n * @param {Array} keys\n * @returns {Promise>}\n * @private\n */\n formatMessages(keys) {\n return this.formatWithFallback(keys, messageFromBundle);\n }\n /**\n * Retrieve translations corresponding to the passed keys.\n *\n * A generalized version of `DOMLocalization.formatValue`. Keys must\n * be `{id, args}` objects.\n *\n * Returns a Promise resolving to an array of the translation strings.\n *\n * @example\n * ```js\n * docL10n.formatValues([\n * {id: 'hello', args: { who: 'Mary' }},\n * {id: 'hello', args: { who: 'John' }},\n * {id: 'welcome'}\n * ]).then(console.log);\n *\n * // ['Hello, Mary!', 'Hello, John!', 'Welcome!']\n * ```\n *\n * @param {Array} keys\n * @returns {Promise>}\n */\n formatValues(keys) {\n return this.formatWithFallback(keys, valueFromBundle);\n }\n /**\n * Retrieve the translation corresponding to the `id` identifier.\n *\n * If passed, `args` is a simple hash object with a list of variables that\n * will be interpolated in the value of the translation.\n *\n * Returns a Promise resolving to the translation string.\n *\n * Use this sparingly for one-off messages which don't need to be\n * retranslated when the user changes their language preferences, e.g. in\n * notifications.\n *\n * @example\n * ```js\n * docL10n.formatValue(\n * 'hello', { who: 'world' }\n * ).then(console.log);\n *\n * // 'Hello, world!'\n * ```\n *\n * @param {string} id - Identifier of the translation to format\n * @param {Object} [args] - Optional external arguments\n * @returns {Promise}\n */\n async formatValue(id, args) {\n const [val] = await this.formatValues([{ id, args }]);\n return val;\n }\n handleEvent() {\n this.onChange();\n }\n /**\n * This method should be called when there's a reason to believe\n * that language negotiation or available resources changed.\n */\n onChange(eager = false) {\n this.bundles = CachedAsyncIterable.from(this.generateBundles(this.resourceIds));\n if (eager) {\n this.bundles.touchNext(2);\n }\n }\n}\n/**\n * Format the value of a message into a string or `null`.\n *\n * This function is passed as a method to `keysFromBundle` and resolve\n * a value of a single L10n Entity using provided `FluentBundle`.\n *\n * If the message doesn't have a value, return `null`.\n *\n * @param {FluentBundle} bundle\n * @param {Array} errors\n * @param {Object} message\n * @param {Object} args\n * @returns {string|null}\n * @private\n */\nfunction valueFromBundle(bundle, errors, message, args) {\n if (message.value) {\n return bundle.formatPattern(message.value, args, errors);\n }\n return null;\n}\n/**\n * Format all public values of a message into a {value, attributes} object.\n *\n * This function is passed as a method to `keysFromBundle` and resolve\n * a single L10n Entity using provided `FluentBundle`.\n *\n * The function will return an object with a value and attributes of the\n * entity.\n *\n * @param {FluentBundle} bundle\n * @param {Array} errors\n * @param {Object} message\n * @param {Object} args\n * @returns {Object}\n * @private\n */\nfunction messageFromBundle(bundle, errors, message, args) {\n const formatted = {\n value: null,\n attributes: null,\n };\n if (message.value) {\n formatted.value = bundle.formatPattern(message.value, args, errors);\n }\n let attrNames = Object.keys(message.attributes);\n if (attrNames.length > 0) {\n formatted.attributes = new Array(attrNames.length);\n for (let [i, name] of attrNames.entries()) {\n let value = bundle.formatPattern(message.attributes[name], args, errors);\n formatted.attributes[i] = { name, value };\n }\n }\n return formatted;\n}\n/**\n * This function is an inner function for `Localization.formatWithFallback`.\n *\n * It takes a `FluentBundle`, list of l10n-ids and a method to be used for\n * key resolution (either `valueFromBundle` or `messageFromBundle`) and\n * optionally a value returned from `keysFromBundle` executed against\n * another `FluentBundle`.\n *\n * The idea here is that if the previous `FluentBundle` did not resolve\n * all keys, we're calling this function with the next context to resolve\n * the remaining ones.\n *\n * In the function, we loop over `keys` and check if we have the `prev`\n * passed and if it has an error entry for the position we're in.\n *\n * If it doesn't, it means that we have a good translation for this key and\n * we return it. If it does, we'll try to resolve the key using the passed\n * `FluentBundle`.\n *\n * In the end, we fill the translations array, and return the Set with\n * missing ids.\n *\n * See `Localization.formatWithFallback` for more info on how this is used.\n *\n * @param {Function} method\n * @param {FluentBundle} bundle\n * @param {Array} keys\n * @param {{Array<{value: string, attributes: Object}>}} translations\n *\n * @returns {Set}\n * @private\n */\nfunction keysFromBundle(method, bundle, keys, translations) {\n const messageErrors = [];\n const missingIds = new Set();\n keys.forEach(({ id, args }, i) => {\n if (translations[i] !== undefined) {\n return;\n }\n let message = bundle.getMessage(id);\n if (message) {\n messageErrors.length = 0;\n translations[i] = method(bundle, messageErrors, message, args);\n if (messageErrors.length > 0 && typeof console !== \"undefined\") {\n const locale = bundle.locales[0];\n const errors = messageErrors.join(\", \");\n // eslint-disable-next-line max-len\n console.warn(`[fluent][resolver] errors in ${locale}/${id}: ${errors}.`);\n }\n }\n else {\n missingIds.add(id);\n }\n });\n return missingIds;\n}\n","import translateElement from \"./overlay.js\";\nimport Localization from \"./localization.js\";\nconst L10NID_ATTR_NAME = \"data-l10n-id\";\nconst L10NARGS_ATTR_NAME = \"data-l10n-args\";\nconst L10N_ELEMENT_QUERY = `[${L10NID_ATTR_NAME}]`;\n/**\n * The `DOMLocalization` class is responsible for fetching resources and\n * formatting translations.\n *\n * It implements the fallback strategy in case of errors encountered during the\n * formatting of translations and methods for observing DOM\n * trees with a `MutationObserver`.\n */\nexport default class DOMLocalization extends Localization {\n /**\n * @param {Array} resourceIds - List of resource IDs\n * @param {Function} generateBundles - Function that returns a\n * generator over FluentBundles\n * @returns {DOMLocalization}\n */\n constructor(resourceIds, generateBundles) {\n super(resourceIds, generateBundles);\n // A Set of DOM trees observed by the `MutationObserver`.\n this.roots = new Set();\n // requestAnimationFrame handler.\n this.pendingrAF = null;\n // list of elements pending for translation.\n this.pendingElements = new Set();\n this.windowElement = null;\n this.mutationObserver = null;\n this.observerConfig = {\n attributes: true,\n characterData: false,\n childList: true,\n subtree: true,\n attributeFilter: [L10NID_ATTR_NAME, L10NARGS_ATTR_NAME],\n };\n }\n onChange(eager = false) {\n super.onChange(eager);\n if (this.roots) {\n this.translateRoots();\n }\n }\n /**\n * Set the `data-l10n-id` and `data-l10n-args` attributes on DOM elements.\n * FluentDOM makes use of mutation observers to detect changes\n * to `data-l10n-*` attributes and translate elements asynchronously.\n * `setAttributes` is a convenience method which allows to translate\n * DOM elements declaratively.\n *\n * You should always prefer to use `data-l10n-id` on elements (statically in\n * HTML or dynamically via `setAttributes`) over manually retrieving\n * translations with `format`. The use of attributes ensures that the\n * elements can be retranslated when the user changes their language\n * preferences.\n *\n * ```javascript\n * localization.setAttributes(\n * document.querySelector('#welcome'), 'hello', { who: 'world' }\n * );\n * ```\n *\n * This will set the following attributes on the `#welcome` element.\n * The MutationObserver will pick up this change and will localize the element\n * asynchronously.\n *\n * ```html\n *

\n *

\n * ```\n *\n * @param {Element} element - Element to set attributes on\n * @param {string} id - l10n-id string\n * @param {Object} args - KVP list of l10n arguments\n * @returns {Element}\n */\n setAttributes(element, id, args) {\n element.setAttribute(L10NID_ATTR_NAME, id);\n if (args) {\n element.setAttribute(L10NARGS_ATTR_NAME, JSON.stringify(args));\n }\n else {\n element.removeAttribute(L10NARGS_ATTR_NAME);\n }\n return element;\n }\n /**\n * Get the `data-l10n-*` attributes from DOM elements.\n *\n * ```javascript\n * localization.getAttributes(\n * document.querySelector('#welcome')\n * );\n * // -> { id: 'hello', args: { who: 'world' } }\n * ```\n *\n * @param {Element} element - HTML element\n * @returns {{id: string, args: Object}}\n */\n getAttributes(element) {\n return {\n id: element.getAttribute(L10NID_ATTR_NAME),\n args: JSON.parse(element.getAttribute(L10NARGS_ATTR_NAME) || null),\n };\n }\n /**\n * Add `newRoot` to the list of roots managed by this `DOMLocalization`.\n *\n * Additionally, if this `DOMLocalization` has an observer, start observing\n * `newRoot` in order to translate mutations in it.\n *\n * @param {Element} newRoot - Root to observe.\n */\n connectRoot(newRoot) {\n for (const root of this.roots) {\n if (root === newRoot ||\n root.contains(newRoot) ||\n newRoot.contains(root)) {\n throw new Error(\"Cannot add a root that overlaps with existing root.\");\n }\n }\n if (this.windowElement) {\n if (this.windowElement !== newRoot.ownerDocument.defaultView) {\n throw new Error(`Cannot connect a root:\n DOMLocalization already has a root from a different window.`);\n }\n }\n else {\n this.windowElement = newRoot.ownerDocument.defaultView;\n this.mutationObserver = new this.windowElement.MutationObserver(mutations => this.translateMutations(mutations));\n }\n this.roots.add(newRoot);\n this.mutationObserver.observe(newRoot, this.observerConfig);\n }\n /**\n * Remove `root` from the list of roots managed by this `DOMLocalization`.\n *\n * Additionally, if this `DOMLocalization` has an observer, stop observing\n * `root`.\n *\n * Returns `true` if the root was the last one managed by this\n * `DOMLocalization`.\n *\n * @param {Element} root - Root to disconnect.\n * @returns {boolean}\n */\n disconnectRoot(root) {\n this.roots.delete(root);\n // Pause the mutation observer to stop observing `root`.\n this.pauseObserving();\n if (this.roots.size === 0) {\n this.mutationObserver = null;\n if (this.windowElement && this.pendingrAF) {\n this.windowElement.cancelAnimationFrame(this.pendingrAF);\n }\n this.windowElement = null;\n this.pendingrAF = null;\n this.pendingElements.clear();\n return true;\n }\n // Resume observing all other roots.\n this.resumeObserving();\n return false;\n }\n /**\n * Translate all roots associated with this `DOMLocalization`.\n *\n * @returns {Promise}\n */\n translateRoots() {\n const roots = Array.from(this.roots);\n return Promise.all(roots.map(root => this.translateFragment(root)));\n }\n /**\n * Pauses the `MutationObserver`.\n */\n pauseObserving() {\n if (!this.mutationObserver) {\n return;\n }\n this.translateMutations(this.mutationObserver.takeRecords());\n this.mutationObserver.disconnect();\n }\n /**\n * Resumes the `MutationObserver`.\n */\n resumeObserving() {\n if (!this.mutationObserver) {\n return;\n }\n for (const root of this.roots) {\n this.mutationObserver.observe(root, this.observerConfig);\n }\n }\n /**\n * Translate mutations detected by the `MutationObserver`.\n *\n * @private\n */\n translateMutations(mutations) {\n for (const mutation of mutations) {\n switch (mutation.type) {\n case \"attributes\":\n if (mutation.target.hasAttribute(\"data-l10n-id\")) {\n this.pendingElements.add(mutation.target);\n }\n break;\n case \"childList\":\n for (const addedNode of mutation.addedNodes) {\n if (addedNode.nodeType === addedNode.ELEMENT_NODE) {\n if (addedNode.childElementCount) {\n for (const element of this.getTranslatables(addedNode)) {\n this.pendingElements.add(element);\n }\n }\n else if (addedNode.hasAttribute(L10NID_ATTR_NAME)) {\n this.pendingElements.add(addedNode);\n }\n }\n }\n break;\n }\n }\n // This fragment allows us to coalesce all pending translations\n // into a single requestAnimationFrame.\n if (this.pendingElements.size > 0) {\n if (this.pendingrAF === null) {\n this.pendingrAF = this.windowElement.requestAnimationFrame(() => {\n this.translateElements(Array.from(this.pendingElements));\n this.pendingElements.clear();\n this.pendingrAF = null;\n });\n }\n }\n }\n /**\n * Translate a DOM element or fragment asynchronously using this\n * `DOMLocalization` object.\n *\n * Manually trigger the translation (or re-translation) of a DOM fragment.\n * Use the `data-l10n-id` and `data-l10n-args` attributes to mark up the DOM\n * with information about which translations to use.\n *\n * Returns a `Promise` that gets resolved once the translation is complete.\n *\n * @param {DOMFragment} frag - Element or DocumentFragment to be translated\n * @returns {Promise}\n */\n translateFragment(frag) {\n return this.translateElements(this.getTranslatables(frag));\n }\n /**\n * Translate a list of DOM elements asynchronously using this\n * `DOMLocalization` object.\n *\n * Manually trigger the translation (or re-translation) of a list of elements.\n * Use the `data-l10n-id` and `data-l10n-args` attributes to mark up the DOM\n * with information about which translations to use.\n *\n * Returns a `Promise` that gets resolved once the translation is complete.\n *\n * @param {Array} elements - List of elements to be translated\n * @returns {Promise}\n */\n async translateElements(elements) {\n if (!elements.length) {\n return undefined;\n }\n const keys = elements.map(this.getKeysForElement);\n const translations = await this.formatMessages(keys);\n return this.applyTranslations(elements, translations);\n }\n /**\n * Applies translations onto elements.\n *\n * @param {Array} elements\n * @param {Array} translations\n * @private\n */\n applyTranslations(elements, translations) {\n this.pauseObserving();\n for (let i = 0; i < elements.length; i++) {\n if (translations[i] !== undefined) {\n translateElement(elements[i], translations[i]);\n }\n }\n this.resumeObserving();\n }\n /**\n * Collects all translatable child elements of the element.\n *\n * @param {Element} element\n * @returns {Array}\n * @private\n */\n getTranslatables(element) {\n const nodes = Array.from(element.querySelectorAll(L10N_ELEMENT_QUERY));\n if (typeof element.hasAttribute === \"function\" &&\n element.hasAttribute(L10NID_ATTR_NAME)) {\n nodes.push(element);\n }\n return nodes;\n }\n /**\n * Get the `data-l10n-*` attributes from DOM elements as a two-element\n * array.\n *\n * @param {Element} element\n * @returns {Object}\n * @private\n */\n getKeysForElement(element) {\n return {\n id: element.getAttribute(L10NID_ATTR_NAME),\n args: JSON.parse(element.getAttribute(L10NARGS_ATTR_NAME) || null),\n };\n }\n}\n","export { default as DOMLocalization } from \"./dom_localization.js\";\nexport { default as Localization } from \"./localization.js\";\n","/* Copyright 2023 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./interfaces\").IL10n} IL10n */\n\n/**\n * NOTE: The L10n-implementations should use lowercase language-codes\n * internally.\n * @implements {IL10n}\n */\nclass L10n {\n #dir;\n\n #elements;\n\n #lang;\n\n #l10n;\n\n constructor({ lang, isRTL }, l10n = null) {\n this.#lang = L10n.#fixupLangCode(lang);\n this.#l10n = l10n;\n this.#dir = (isRTL ?? L10n.#isRTL(this.#lang)) ? \"rtl\" : \"ltr\";\n }\n\n _setL10n(l10n) {\n this.#l10n = l10n;\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n document.l10n = l10n;\n }\n }\n\n /** @inheritdoc */\n getLanguage() {\n return this.#lang;\n }\n\n /** @inheritdoc */\n getDirection() {\n return this.#dir;\n }\n\n /** @inheritdoc */\n async get(ids, args = null, fallback) {\n if (Array.isArray(ids)) {\n ids = ids.map(id => ({ id }));\n const messages = await this.#l10n.formatMessages(ids);\n return messages.map(message => message.value);\n }\n\n const messages = await this.#l10n.formatMessages([\n {\n id: ids,\n args,\n },\n ]);\n return messages[0]?.value || fallback;\n }\n\n /** @inheritdoc */\n async translate(element) {\n (this.#elements ||= new Set()).add(element);\n try {\n this.#l10n.connectRoot(element);\n await this.#l10n.translateRoots();\n } catch {\n // Element is under an existing root, so there is no need to add it again.\n }\n }\n\n /** @inheritdoc */\n async translateOnce(element) {\n try {\n await this.#l10n.translateElements([element]);\n } catch (ex) {\n console.error(`translateOnce: \"${ex}\".`);\n }\n }\n\n /** @inheritdoc */\n async destroy() {\n if (this.#elements) {\n for (const element of this.#elements) {\n this.#l10n.disconnectRoot(element);\n }\n this.#elements.clear();\n this.#elements = null;\n }\n this.#l10n.pauseObserving();\n }\n\n /** @inheritdoc */\n pause() {\n this.#l10n.pauseObserving();\n }\n\n /** @inheritdoc */\n resume() {\n this.#l10n.resumeObserving();\n }\n\n static #fixupLangCode(langCode) {\n // Use only lowercase language-codes internally, and fallback to English.\n langCode = langCode?.toLowerCase() || \"en-us\";\n\n // Try to support \"incompletely\" specified language codes (see issue 13689).\n const PARTIAL_LANG_CODES = {\n en: \"en-us\",\n es: \"es-es\",\n fy: \"fy-nl\",\n ga: \"ga-ie\",\n gu: \"gu-in\",\n hi: \"hi-in\",\n hy: \"hy-am\",\n nb: \"nb-no\",\n ne: \"ne-np\",\n nn: \"nn-no\",\n pa: \"pa-in\",\n pt: \"pt-pt\",\n sv: \"sv-se\",\n zh: \"zh-cn\",\n };\n return PARTIAL_LANG_CODES[langCode] || langCode;\n }\n\n static #isRTL(lang) {\n const shortCode = lang.split(\"-\", 1)[0];\n return [\"ar\", \"he\", \"fa\", \"ps\", \"ur\"].includes(shortCode);\n }\n}\n\nconst GenericL10n = null;\n\nexport { GenericL10n, L10n };\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./interfaces\").IL10n} IL10n */\n\nimport { FluentBundle, FluentResource } from \"fluent-bundle\";\nimport { DOMLocalization } from \"fluent-dom\";\nimport { fetchData } from \"pdfjs-lib\";\nimport { L10n } from \"./l10n.js\";\n\nfunction createBundle(lang, text) {\n const resource = new FluentResource(text);\n const bundle = new FluentBundle(lang);\n const errors = bundle.addResource(resource);\n if (errors.length) {\n console.error(\"L10n errors\", errors);\n }\n return bundle;\n}\n\n/**\n * @implements {IL10n}\n */\nclass GenericL10n extends L10n {\n constructor(lang) {\n super({ lang });\n\n const generateBundles = !lang\n ? GenericL10n.#generateBundlesFallback.bind(\n GenericL10n,\n this.getLanguage()\n )\n : GenericL10n.#generateBundles.bind(\n GenericL10n,\n \"en-us\",\n this.getLanguage()\n );\n this._setL10n(new DOMLocalization([], generateBundles));\n }\n\n /**\n * Generate the bundles for Fluent.\n * @param {String} defaultLang - The fallback language to use for\n * translations.\n * @param {String} baseLang - The base language to use for translations.\n */\n static async *#generateBundles(defaultLang, baseLang) {\n const { baseURL, paths } = await this.#getPaths();\n\n const langs = [baseLang];\n if (defaultLang !== baseLang) {\n // Also fallback to the short-format of the base language\n // (see issue 17269).\n const shortLang = baseLang.split(\"-\", 1)[0];\n\n if (shortLang !== baseLang) {\n langs.push(shortLang);\n }\n langs.push(defaultLang);\n }\n for (const lang of langs) {\n const bundle = await this.#createBundle(lang, baseURL, paths);\n if (bundle) {\n yield bundle;\n } else if (lang === \"en-us\") {\n yield this.#createBundleFallback(lang);\n }\n }\n }\n\n static async #createBundle(lang, baseURL, paths) {\n const path = paths[lang];\n if (!path) {\n return null;\n }\n const url = new URL(path, baseURL);\n const text = await fetchData(url, /* type = */ \"text\");\n\n return createBundle(lang, text);\n }\n\n static async #getPaths() {\n try {\n const { href } = document.querySelector(`link[type=\"application/l10n\"]`);\n const paths = await fetchData(href, /* type = */ \"json\");\n\n return { baseURL: href.replace(/[^/]*$/, \"\") || \"./\", paths };\n } catch {}\n return { baseURL: \"./\", paths: Object.create(null) };\n }\n\n static async *#generateBundlesFallback(lang) {\n yield this.#createBundleFallback(lang);\n }\n\n static async #createBundleFallback(lang) {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n throw new Error(\"Not implemented: #createBundleFallback\");\n }\n const text =\n typeof PDFJSDev === \"undefined\"\n ? await fetchData(\n new URL(\"../l10n/en-US/viewer.ftl\", window.location.href),\n /* type = */ \"text\"\n )\n : PDFJSDev.eval(\"DEFAULT_FTL\");\n\n return createBundle(lang, text);\n }\n}\n\nexport { GenericL10n };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getPdfFilenameFromUrl } from \"pdfjs-lib\";\n\nasync function docProperties(pdfDocument) {\n const url = \"\",\n baseUrl = url.split(\"#\", 1)[0];\n // eslint-disable-next-line prefer-const\n let { info, metadata, contentDispositionFilename, contentLength } =\n await pdfDocument.getMetadata();\n\n if (!contentLength) {\n const { length } = await pdfDocument.getDownloadInfo();\n contentLength = length;\n }\n\n return {\n ...info,\n baseURL: baseUrl,\n filesize: contentLength,\n filename: contentDispositionFilename || getPdfFilenameFromUrl(url),\n metadata: metadata?.getRaw(),\n authors: metadata?.get(\"dc:creator\"),\n numPages: pdfDocument.numPages,\n URL: url,\n };\n}\n\nclass GenericScripting {\n constructor(sandboxBundleSrc) {\n this._ready = new Promise((resolve, reject) => {\n const sandbox =\n typeof PDFJSDev === \"undefined\"\n ? import(sandboxBundleSrc) // eslint-disable-line no-unsanitized/method\n : __non_webpack_import__(sandboxBundleSrc);\n sandbox\n .then(pdfjsSandbox => {\n resolve(pdfjsSandbox.QuickJSSandbox());\n })\n .catch(reject);\n });\n }\n\n async createSandbox(data) {\n const sandbox = await this._ready;\n sandbox.create(data);\n }\n\n async dispatchEventInSandbox(event) {\n const sandbox = await this._ready;\n setTimeout(() => sandbox.dispatchEvent(event), 0);\n }\n\n async destroySandbox() {\n const sandbox = await this._ready;\n sandbox.nukeSandbox();\n }\n}\n\nexport { docProperties, GenericScripting };\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AppOptions } from \"./app_options.js\";\nimport { BaseExternalServices } from \"./external_services.js\";\nimport { BasePreferences } from \"./preferences.js\";\nimport { GenericL10n } from \"./genericl10n.js\";\nimport { GenericScripting } from \"./generic_scripting.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"GENERIC\")) {\n throw new Error(\n 'Module \"pdfjs-web/genericcom\" shall not be used outside GENERIC build.'\n );\n}\n\nfunction initCom(app) {}\n\nclass Preferences extends BasePreferences {\n async _writeToStorage(prefObj) {\n localStorage.setItem(\"pdfjs.preferences\", JSON.stringify(prefObj));\n }\n\n async _readFromStorage(prefObj) {\n return { prefs: JSON.parse(localStorage.getItem(\"pdfjs.preferences\")) };\n }\n}\n\nclass ExternalServices extends BaseExternalServices {\n async createL10n() {\n return new GenericL10n(AppOptions.get(\"localeProperties\")?.lang);\n }\n\n createScripting() {\n return new GenericScripting(AppOptions.get(\"sandboxBundleSrc\"));\n }\n}\n\nclass MLManager {\n async isEnabledFor(_name) {\n return false;\n }\n\n async deleteModel(_service) {\n return null;\n }\n\n isReady(_name) {\n return false;\n }\n\n guess(_data) {}\n\n toggleService(_name, _enabled) {}\n\n static getFakeMLManager(options) {\n return new FakeMLManager(options);\n }\n}\n\nclass FakeMLManager {\n eventBus = null;\n\n hasProgress = false;\n\n constructor({ enableGuessAltText, enableAltTextModelDownload }) {\n this.enableGuessAltText = enableGuessAltText;\n this.enableAltTextModelDownload = enableAltTextModelDownload;\n }\n\n setEventBus(eventBus, abortSignal) {\n this.eventBus = eventBus;\n }\n\n async isEnabledFor(_name) {\n return this.enableGuessAltText;\n }\n\n async deleteModel(_name) {\n this.enableAltTextModelDownload = false;\n return null;\n }\n\n async loadModel(_name) {}\n\n async downloadModel(_name) {\n // Simulate downloading the model but with progress.\n // The progress can be seen in the new alt-text dialog.\n this.hasProgress = true;\n\n const { promise, resolve } = Promise.withResolvers();\n const total = 1e8;\n const end = 1.5 * total;\n const increment = 5e6;\n let loaded = 0;\n const id = setInterval(() => {\n loaded += increment;\n if (loaded <= end) {\n this.eventBus.dispatch(\"loadaiengineprogress\", {\n source: this,\n detail: {\n total,\n totalLoaded: loaded,\n finished: loaded + increment >= end,\n },\n });\n return;\n }\n clearInterval(id);\n this.hasProgress = false;\n this.enableAltTextModelDownload = true;\n resolve(true);\n }, 900);\n return promise;\n }\n\n isReady(_name) {\n return this.enableAltTextModelDownload;\n }\n\n guess({ request: { data } }) {\n return new Promise(resolve => {\n setTimeout(() => {\n resolve(data ? { output: \"Fake alt text.\" } : { error: true });\n }, 3000);\n });\n }\n\n toggleService(_name, enabled) {\n this.enableGuessAltText = enabled;\n }\n}\n\nexport { ExternalServices, initCom, MLManager, Preferences };\n","/* Copyright 2024 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { noContextMenu } from \"pdfjs-lib\";\n\nclass NewAltTextManager {\n #boundCancel = this.#cancel.bind(this);\n\n #createAutomaticallyButton;\n\n #currentEditor = null;\n\n #cancelButton;\n\n #descriptionContainer;\n\n #dialog;\n\n #disclaimer;\n\n #downloadModel;\n\n #downloadModelDescription;\n\n #eventBus;\n\n #firstTime = false;\n\n #guessedAltText;\n\n #hasAI = null;\n\n #isEditing = null;\n\n #imagePreview;\n\n #imageData;\n\n #isAILoading = false;\n\n #wasAILoading = false;\n\n #learnMore;\n\n #notNowButton;\n\n #overlayManager;\n\n #textarea;\n\n #title;\n\n #uiManager;\n\n #previousAltText = null;\n\n constructor(\n {\n descriptionContainer,\n dialog,\n imagePreview,\n cancelButton,\n disclaimer,\n notNowButton,\n saveButton,\n textarea,\n learnMore,\n errorCloseButton,\n createAutomaticallyButton,\n downloadModel,\n downloadModelDescription,\n title,\n },\n overlayManager,\n eventBus\n ) {\n this.#cancelButton = cancelButton;\n this.#createAutomaticallyButton = createAutomaticallyButton;\n this.#descriptionContainer = descriptionContainer;\n this.#dialog = dialog;\n this.#disclaimer = disclaimer;\n this.#notNowButton = notNowButton;\n this.#imagePreview = imagePreview;\n this.#textarea = textarea;\n this.#learnMore = learnMore;\n this.#title = title;\n this.#downloadModel = downloadModel;\n this.#downloadModelDescription = downloadModelDescription;\n this.#overlayManager = overlayManager;\n this.#eventBus = eventBus;\n\n dialog.addEventListener(\"close\", this.#close.bind(this));\n dialog.addEventListener(\"contextmenu\", event => {\n if (event.target !== this.#textarea) {\n event.preventDefault();\n }\n });\n cancelButton.addEventListener(\"click\", this.#boundCancel);\n notNowButton.addEventListener(\"click\", this.#boundCancel);\n saveButton.addEventListener(\"click\", this.#save.bind(this));\n errorCloseButton.addEventListener(\"click\", () => {\n this.#toggleError(false);\n });\n createAutomaticallyButton.addEventListener(\"click\", async () => {\n const checked =\n createAutomaticallyButton.getAttribute(\"aria-pressed\") !== \"true\";\n this.#currentEditor._reportTelemetry({\n action: \"pdfjs.image.alt_text.ai_generation_check\",\n data: { status: checked },\n });\n\n if (this.#uiManager) {\n this.#uiManager.setPreference(\"enableGuessAltText\", checked);\n await this.#uiManager.mlManager.toggleService(\"altText\", checked);\n }\n this.#toggleGuessAltText(checked, /* isInitial = */ false);\n });\n textarea.addEventListener(\"focus\", () => {\n this.#wasAILoading = this.#isAILoading;\n this.#toggleLoading(false);\n this.#toggleTitleAndDisclaimer();\n });\n textarea.addEventListener(\"blur\", () => {\n if (!textarea.value) {\n this.#toggleLoading(this.#wasAILoading);\n }\n this.#toggleTitleAndDisclaimer();\n });\n textarea.addEventListener(\"input\", () => {\n this.#toggleTitleAndDisclaimer();\n });\n\n eventBus._on(\"enableguessalttext\", ({ value }) => {\n this.#toggleGuessAltText(value, /* isInitial = */ false);\n });\n\n this.#overlayManager.register(dialog);\n\n this.#learnMore.addEventListener(\"click\", () => {\n this.#currentEditor._reportTelemetry({\n action: \"pdfjs.image.alt_text.info\",\n data: { topic: \"alt_text\" },\n });\n });\n }\n\n #toggleLoading(value) {\n if (!this.#uiManager || this.#isAILoading === value) {\n return;\n }\n this.#isAILoading = value;\n this.#descriptionContainer.classList.toggle(\"loading\", value);\n }\n\n #toggleError(value) {\n if (!this.#uiManager) {\n return;\n }\n this.#dialog.classList.toggle(\"error\", value);\n }\n\n async #toggleGuessAltText(value, isInitial = false) {\n if (!this.#uiManager) {\n return;\n }\n this.#dialog.classList.toggle(\"aiDisabled\", !value);\n this.#createAutomaticallyButton.setAttribute(\"aria-pressed\", value);\n\n if (value) {\n const { altTextLearnMoreUrl } = this.#uiManager.mlManager;\n if (altTextLearnMoreUrl) {\n this.#learnMore.href = altTextLearnMoreUrl;\n }\n this.#mlGuessAltText(isInitial);\n } else {\n this.#toggleLoading(false);\n this.#isAILoading = false;\n this.#toggleTitleAndDisclaimer();\n }\n }\n\n #toggleNotNow() {\n this.#notNowButton.classList.toggle(\"hidden\", !this.#firstTime);\n this.#cancelButton.classList.toggle(\"hidden\", this.#firstTime);\n }\n\n #toggleAI(value) {\n if (!this.#uiManager || this.#hasAI === value) {\n return;\n }\n this.#hasAI = value;\n this.#dialog.classList.toggle(\"noAi\", !value);\n this.#toggleTitleAndDisclaimer();\n }\n\n #toggleTitleAndDisclaimer() {\n // Disclaimer is visible when the AI is loading or the user didn't change\n // the guessed alt text.\n const visible =\n this.#isAILoading ||\n (this.#guessedAltText && this.#guessedAltText === this.#textarea.value);\n this.#disclaimer.hidden = !visible;\n\n // The title changes depending if the text area is empty or not.\n const isEditing = this.#isAILoading || !!this.#textarea.value;\n if (this.#isEditing === isEditing) {\n return;\n }\n this.#isEditing = isEditing;\n this.#title.setAttribute(\n \"data-l10n-id\",\n isEditing\n ? \"pdfjs-editor-new-alt-text-dialog-edit-label\"\n : \"pdfjs-editor-new-alt-text-dialog-add-label\"\n );\n }\n\n async #mlGuessAltText(isInitial) {\n if (this.#isAILoading) {\n // We're still loading the previous guess.\n return;\n }\n\n if (this.#textarea.value) {\n // The user has already set an alt text.\n return;\n }\n\n if (isInitial && this.#previousAltText !== null) {\n // The user has already set an alt text (empty or not).\n return;\n }\n\n this.#guessedAltText = this.#currentEditor.guessedAltText;\n if (this.#previousAltText === null && this.#guessedAltText) {\n // We have a guessed alt text and the user didn't change it.\n this.#addAltText(this.#guessedAltText);\n return;\n }\n\n this.#toggleLoading(true);\n this.#toggleTitleAndDisclaimer();\n\n let hasError = false;\n try {\n // When calling #mlGuessAltText we don't wait for it, so we must take care\n // that the alt text dialog can have been closed before the response is.\n\n const altText = await this.#currentEditor.mlGuessAltText(\n this.#imageData,\n /* updateAltTextData = */ false\n );\n if (altText) {\n this.#guessedAltText = altText;\n this.#wasAILoading = this.#isAILoading;\n if (this.#isAILoading) {\n this.#addAltText(altText);\n }\n }\n } catch (e) {\n console.error(e);\n hasError = true;\n }\n\n this.#toggleLoading(false);\n this.#toggleTitleAndDisclaimer();\n\n if (hasError && this.#uiManager) {\n this.#toggleError(true);\n }\n }\n\n #addAltText(altText) {\n if (!this.#uiManager || this.#textarea.value) {\n return;\n }\n this.#textarea.value = altText;\n this.#toggleTitleAndDisclaimer();\n }\n\n #setProgress() {\n // Show the download model progress.\n this.#downloadModel.classList.toggle(\"hidden\", false);\n\n const callback = async ({ detail: { finished, total, totalLoaded } }) => {\n const ONE_MEGA_BYTES = 1e6;\n // totalLoaded can be greater than total if the download is compressed.\n // So we cheat to avoid any confusion.\n totalLoaded = Math.min(0.99 * total, totalLoaded);\n\n // Update the progress.\n const totalSize = (this.#downloadModelDescription.ariaValueMax =\n Math.round(total / ONE_MEGA_BYTES));\n const downloadedSize = (this.#downloadModelDescription.ariaValueNow =\n Math.round(totalLoaded / ONE_MEGA_BYTES));\n this.#downloadModelDescription.setAttribute(\n \"data-l10n-args\",\n JSON.stringify({ totalSize, downloadedSize })\n );\n if (!finished) {\n return;\n }\n\n // We're done, remove the listener and hide the download model progress.\n this.#eventBus._off(\"loadaiengineprogress\", callback);\n this.#downloadModel.classList.toggle(\"hidden\", true);\n\n this.#toggleAI(true);\n if (!this.#uiManager) {\n return;\n }\n const { mlManager } = this.#uiManager;\n\n // The model has been downloaded, we can now enable the AI service.\n mlManager.toggleService(\"altText\", true);\n this.#toggleGuessAltText(\n await mlManager.isEnabledFor(\"altText\"),\n /* isInitial = */ true\n );\n };\n this.#eventBus._on(\"loadaiengineprogress\", callback);\n }\n\n async editAltText(uiManager, editor, firstTime) {\n if (this.#currentEditor || !editor) {\n return;\n }\n\n if (firstTime && editor.hasAltTextData()) {\n editor.altTextFinish();\n return;\n }\n\n this.#firstTime = firstTime;\n let { mlManager } = uiManager;\n let hasAI = !!mlManager;\n this.#toggleTitleAndDisclaimer();\n\n if (mlManager && !mlManager.isReady(\"altText\")) {\n hasAI = false;\n if (mlManager.hasProgress) {\n this.#setProgress();\n } else {\n mlManager = null;\n }\n } else {\n this.#downloadModel.classList.toggle(\"hidden\", true);\n }\n\n const isAltTextEnabledPromise = mlManager?.isEnabledFor(\"altText\");\n\n this.#currentEditor = editor;\n this.#uiManager = uiManager;\n this.#uiManager.removeEditListeners();\n\n ({ altText: this.#previousAltText } = editor.altTextData);\n this.#textarea.value = this.#previousAltText ?? \"\";\n\n // TODO: get this value from Firefox\n // (https://bugzilla.mozilla.org/show_bug.cgi?id=1908184)\n const AI_MAX_IMAGE_DIMENSION = 224;\n const MAX_PREVIEW_DIMENSION = 180;\n\n // The max dimension of the preview in the dialog is 180px, so we keep 224px\n // and rescale it thanks to css.\n\n let canvas, width, height;\n if (mlManager) {\n ({\n canvas,\n width,\n height,\n imageData: this.#imageData,\n } = editor.copyCanvas(\n AI_MAX_IMAGE_DIMENSION,\n MAX_PREVIEW_DIMENSION,\n /* createImageData = */ true\n ));\n if (hasAI) {\n this.#toggleGuessAltText(\n await isAltTextEnabledPromise,\n /* isInitial = */ true\n );\n }\n } else {\n ({ canvas, width, height } = editor.copyCanvas(\n AI_MAX_IMAGE_DIMENSION,\n MAX_PREVIEW_DIMENSION,\n /* createImageData = */ false\n ));\n }\n\n canvas.setAttribute(\"role\", \"presentation\");\n const { style } = canvas;\n style.width = `${width}px`;\n style.height = `${height}px`;\n this.#imagePreview.append(canvas);\n\n this.#toggleNotNow();\n this.#toggleAI(hasAI);\n this.#toggleError(false);\n\n try {\n await this.#overlayManager.open(this.#dialog);\n } catch (ex) {\n this.#close();\n throw ex;\n }\n }\n\n #cancel() {\n this.#currentEditor.altTextData = {\n cancel: true,\n };\n const altText = this.#textarea.value.trim();\n this.#currentEditor._reportTelemetry({\n action: \"pdfjs.image.alt_text.dismiss\",\n data: {\n alt_text_type: altText ? \"present\" : \"empty\",\n flow: this.#firstTime ? \"image_add\" : \"alt_text_edit\",\n },\n });\n this.#currentEditor._reportTelemetry({\n action: \"pdfjs.image.image_added\",\n data: { alt_text_modal: true, alt_text_type: \"skipped\" },\n });\n this.#finish();\n }\n\n #finish() {\n if (this.#overlayManager.active === this.#dialog) {\n this.#overlayManager.close(this.#dialog);\n }\n }\n\n #close() {\n const canvas = this.#imagePreview.firstChild;\n canvas.remove();\n canvas.width = canvas.height = 0;\n this.#imageData = null;\n\n this.#toggleLoading(false);\n\n this.#uiManager?.addEditListeners();\n this.#currentEditor.altTextFinish();\n this.#uiManager?.setSelected(this.#currentEditor);\n this.#currentEditor = null;\n this.#uiManager = null;\n }\n\n #extractWords(text) {\n return new Set(\n text\n .toLowerCase()\n .split(/[^\\p{L}\\p{N}]+/gu)\n .filter(x => !!x)\n );\n }\n\n #save() {\n const altText = this.#textarea.value.trim();\n this.#currentEditor.altTextData = {\n altText,\n decorative: false,\n };\n this.#currentEditor.altTextData.guessedAltText = this.#guessedAltText;\n\n if (this.#guessedAltText && this.#guessedAltText !== altText) {\n const guessedWords = this.#extractWords(this.#guessedAltText);\n const words = this.#extractWords(altText);\n this.#currentEditor._reportTelemetry({\n action: \"pdfjs.image.alt_text.user_edit\",\n data: {\n total_words: guessedWords.size,\n words_removed: guessedWords.difference(words).size,\n words_added: words.difference(guessedWords).size,\n },\n });\n }\n this.#currentEditor._reportTelemetry({\n action: \"pdfjs.image.image_added\",\n data: {\n alt_text_modal: true,\n alt_text_type: altText ? \"present\" : \"empty\",\n },\n });\n\n this.#currentEditor._reportTelemetry({\n action: \"pdfjs.image.alt_text.save\",\n data: {\n alt_text_type: altText ? \"present\" : \"empty\",\n flow: this.#firstTime ? \"image_add\" : \"alt_text_edit\",\n },\n });\n\n this.#finish();\n }\n\n destroy() {\n this.#uiManager = null; // Avoid re-adding the edit listeners.\n this.#finish();\n }\n}\n\nclass ImageAltTextSettings {\n #aiModelSettings;\n\n #createModelButton;\n\n #downloadModelButton;\n\n #dialog;\n\n #eventBus;\n\n #mlManager;\n\n #overlayManager;\n\n #showAltTextDialogButton;\n\n constructor(\n {\n dialog,\n createModelButton,\n aiModelSettings,\n learnMore,\n closeButton,\n deleteModelButton,\n downloadModelButton,\n showAltTextDialogButton,\n },\n overlayManager,\n eventBus,\n mlManager\n ) {\n this.#dialog = dialog;\n this.#aiModelSettings = aiModelSettings;\n this.#createModelButton = createModelButton;\n this.#downloadModelButton = downloadModelButton;\n this.#showAltTextDialogButton = showAltTextDialogButton;\n this.#overlayManager = overlayManager;\n this.#eventBus = eventBus;\n this.#mlManager = mlManager;\n\n const { altTextLearnMoreUrl } = mlManager;\n if (altTextLearnMoreUrl) {\n learnMore.href = altTextLearnMoreUrl;\n }\n\n dialog.addEventListener(\"contextmenu\", noContextMenu);\n\n createModelButton.addEventListener(\"click\", async e => {\n const checked = this.#togglePref(\"enableGuessAltText\", e);\n await mlManager.toggleService(\"altText\", checked);\n this.#reportTelemetry({\n type: \"stamp\",\n action: \"pdfjs.image.alt_text.settings_ai_generation_check\",\n data: { status: checked },\n });\n });\n\n showAltTextDialogButton.addEventListener(\"click\", e => {\n const checked = this.#togglePref(\"enableNewAltTextWhenAddingImage\", e);\n this.#reportTelemetry({\n type: \"stamp\",\n action: \"pdfjs.image.alt_text.settings_edit_alt_text_check\",\n data: { status: checked },\n });\n });\n\n deleteModelButton.addEventListener(\"click\", this.#delete.bind(this, true));\n downloadModelButton.addEventListener(\n \"click\",\n this.#download.bind(this, true)\n );\n\n closeButton.addEventListener(\"click\", this.#finish.bind(this));\n\n learnMore.addEventListener(\"click\", () => {\n this.#reportTelemetry({\n type: \"stamp\",\n action: \"pdfjs.image.alt_text.info\",\n data: { topic: \"ai_generation\" },\n });\n });\n\n eventBus._on(\"enablealttextmodeldownload\", ({ value }) => {\n if (value) {\n this.#download(false);\n } else {\n this.#delete(false);\n }\n });\n\n this.#overlayManager.register(dialog);\n }\n\n #reportTelemetry(data) {\n this.#eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n data,\n },\n });\n }\n\n async #download(isFromUI = false) {\n if (isFromUI) {\n this.#downloadModelButton.disabled = true;\n const span = this.#downloadModelButton.firstChild;\n span.setAttribute(\n \"data-l10n-id\",\n \"pdfjs-editor-alt-text-settings-downloading-model-button\"\n );\n\n await this.#mlManager.downloadModel(\"altText\");\n\n span.setAttribute(\n \"data-l10n-id\",\n \"pdfjs-editor-alt-text-settings-download-model-button\"\n );\n\n this.#createModelButton.disabled = false;\n this.#setPref(\"enableGuessAltText\", true);\n this.#mlManager.toggleService(\"altText\", true);\n this.#setPref(\"enableAltTextModelDownload\", true);\n this.#downloadModelButton.disabled = false;\n }\n\n this.#aiModelSettings.classList.toggle(\"download\", false);\n this.#createModelButton.setAttribute(\"aria-pressed\", true);\n }\n\n async #delete(isFromUI = false) {\n if (isFromUI) {\n await this.#mlManager.deleteModel(\"altText\");\n this.#setPref(\"enableGuessAltText\", false);\n this.#setPref(\"enableAltTextModelDownload\", false);\n }\n\n this.#aiModelSettings.classList.toggle(\"download\", true);\n this.#createModelButton.disabled = true;\n this.#createModelButton.setAttribute(\"aria-pressed\", false);\n }\n\n async open({ enableGuessAltText, enableNewAltTextWhenAddingImage }) {\n const { enableAltTextModelDownload } = this.#mlManager;\n this.#createModelButton.disabled = !enableAltTextModelDownload;\n this.#createModelButton.setAttribute(\n \"aria-pressed\",\n enableAltTextModelDownload && enableGuessAltText\n );\n this.#showAltTextDialogButton.setAttribute(\n \"aria-pressed\",\n enableNewAltTextWhenAddingImage\n );\n this.#aiModelSettings.classList.toggle(\n \"download\",\n !enableAltTextModelDownload\n );\n\n await this.#overlayManager.open(this.#dialog);\n this.#reportTelemetry({\n type: \"stamp\",\n action: \"pdfjs.image.alt_text.settings_displayed\",\n });\n }\n\n #togglePref(name, { target }) {\n const checked = target.getAttribute(\"aria-pressed\") !== \"true\";\n this.#setPref(name, checked);\n target.setAttribute(\"aria-pressed\", checked);\n return checked;\n }\n\n #setPref(name, value) {\n this.#eventBus.dispatch(\"setpreference\", {\n source: this,\n name,\n value,\n });\n }\n\n #finish() {\n if (this.#overlayManager.active === this.#dialog) {\n this.#overlayManager.close(this.#dialog);\n }\n }\n}\n\nexport { ImageAltTextSettings, NewAltTextManager };\n","/* Copyright 2023 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DOMSVGFactory } from \"pdfjs-lib\";\n\nclass AltTextManager {\n #clickAC = null;\n\n #currentEditor = null;\n\n #cancelButton;\n\n #dialog;\n\n #eventBus;\n\n #hasUsedPointer = false;\n\n #optionDescription;\n\n #optionDecorative;\n\n #overlayManager;\n\n #saveButton;\n\n #textarea;\n\n #uiManager;\n\n #previousAltText = null;\n\n #resizeAC = null;\n\n #svgElement = null;\n\n #rectElement = null;\n\n #container;\n\n #telemetryData = null;\n\n constructor(\n {\n dialog,\n optionDescription,\n optionDecorative,\n textarea,\n cancelButton,\n saveButton,\n },\n container,\n overlayManager,\n eventBus\n ) {\n this.#dialog = dialog;\n this.#optionDescription = optionDescription;\n this.#optionDecorative = optionDecorative;\n this.#textarea = textarea;\n this.#cancelButton = cancelButton;\n this.#saveButton = saveButton;\n this.#overlayManager = overlayManager;\n this.#eventBus = eventBus;\n this.#container = container;\n\n const onUpdateUIState = this.#updateUIState.bind(this);\n\n dialog.addEventListener(\"close\", this.#close.bind(this));\n dialog.addEventListener(\"contextmenu\", event => {\n if (event.target !== this.#textarea) {\n event.preventDefault();\n }\n });\n cancelButton.addEventListener(\"click\", this.#finish.bind(this));\n saveButton.addEventListener(\"click\", this.#save.bind(this));\n optionDescription.addEventListener(\"change\", onUpdateUIState);\n optionDecorative.addEventListener(\"change\", onUpdateUIState);\n\n this.#overlayManager.register(dialog);\n }\n\n #createSVGElement() {\n if (this.#svgElement) {\n return;\n }\n\n // We create a mask to add to the dialog backdrop: the idea is to have a\n // darken background everywhere except on the editor to clearly see the\n // picture to describe.\n\n const svgFactory = new DOMSVGFactory();\n const svg = (this.#svgElement = svgFactory.createElement(\"svg\"));\n svg.setAttribute(\"width\", \"0\");\n svg.setAttribute(\"height\", \"0\");\n const defs = svgFactory.createElement(\"defs\");\n svg.append(defs);\n const mask = svgFactory.createElement(\"mask\");\n defs.append(mask);\n mask.setAttribute(\"id\", \"alttext-manager-mask\");\n mask.setAttribute(\"maskContentUnits\", \"objectBoundingBox\");\n let rect = svgFactory.createElement(\"rect\");\n mask.append(rect);\n rect.setAttribute(\"fill\", \"white\");\n rect.setAttribute(\"width\", \"1\");\n rect.setAttribute(\"height\", \"1\");\n rect.setAttribute(\"x\", \"0\");\n rect.setAttribute(\"y\", \"0\");\n\n rect = this.#rectElement = svgFactory.createElement(\"rect\");\n mask.append(rect);\n rect.setAttribute(\"fill\", \"black\");\n this.#dialog.append(svg);\n }\n\n async editAltText(uiManager, editor) {\n if (this.#currentEditor || !editor) {\n return;\n }\n this.#createSVGElement();\n\n this.#hasUsedPointer = false;\n\n this.#clickAC = new AbortController();\n const clickOpts = { signal: this.#clickAC.signal },\n onClick = this.#onClick.bind(this);\n for (const element of [\n this.#optionDescription,\n this.#optionDecorative,\n this.#textarea,\n this.#saveButton,\n this.#cancelButton,\n ]) {\n element.addEventListener(\"click\", onClick, clickOpts);\n }\n\n const { altText, decorative } = editor.altTextData;\n if (decorative === true) {\n this.#optionDecorative.checked = true;\n this.#optionDescription.checked = false;\n } else {\n this.#optionDecorative.checked = false;\n this.#optionDescription.checked = true;\n }\n this.#previousAltText = this.#textarea.value = altText?.trim() || \"\";\n this.#updateUIState();\n\n this.#currentEditor = editor;\n this.#uiManager = uiManager;\n this.#uiManager.removeEditListeners();\n\n this.#resizeAC = new AbortController();\n this.#eventBus._on(\"resize\", this.#setPosition.bind(this), {\n signal: this.#resizeAC.signal,\n });\n\n try {\n await this.#overlayManager.open(this.#dialog);\n this.#setPosition();\n } catch (ex) {\n this.#close();\n throw ex;\n }\n }\n\n #setPosition() {\n if (!this.#currentEditor) {\n return;\n }\n const dialog = this.#dialog;\n const { style } = dialog;\n const {\n x: containerX,\n y: containerY,\n width: containerW,\n height: containerH,\n } = this.#container.getBoundingClientRect();\n const { innerWidth: windowW, innerHeight: windowH } = window;\n const { width: dialogW, height: dialogH } = dialog.getBoundingClientRect();\n const { x, y, width, height } = this.#currentEditor.getClientDimensions();\n const MARGIN = 10;\n const isLTR = this.#uiManager.direction === \"ltr\";\n\n const xs = Math.max(x, containerX);\n const xe = Math.min(x + width, containerX + containerW);\n const ys = Math.max(y, containerY);\n const ye = Math.min(y + height, containerY + containerH);\n this.#rectElement.setAttribute(\"width\", `${(xe - xs) / windowW}`);\n this.#rectElement.setAttribute(\"height\", `${(ye - ys) / windowH}`);\n this.#rectElement.setAttribute(\"x\", `${xs / windowW}`);\n this.#rectElement.setAttribute(\"y\", `${ys / windowH}`);\n\n let left = null;\n let top = Math.max(y, 0);\n top += Math.min(windowH - (top + dialogH), 0);\n\n if (isLTR) {\n // Prefer to position the dialog \"after\" (so on the right) the editor.\n if (x + width + MARGIN + dialogW < windowW) {\n left = x + width + MARGIN;\n } else if (x > dialogW + MARGIN) {\n left = x - dialogW - MARGIN;\n }\n } else if (x > dialogW + MARGIN) {\n left = x - dialogW - MARGIN;\n } else if (x + width + MARGIN + dialogW < windowW) {\n left = x + width + MARGIN;\n }\n\n if (left === null) {\n top = null;\n left = Math.max(x, 0);\n left += Math.min(windowW - (left + dialogW), 0);\n if (y > dialogH + MARGIN) {\n top = y - dialogH - MARGIN;\n } else if (y + height + MARGIN + dialogH < windowH) {\n top = y + height + MARGIN;\n }\n }\n\n if (top !== null) {\n dialog.classList.add(\"positioned\");\n if (isLTR) {\n style.left = `${left}px`;\n } else {\n style.right = `${windowW - left - dialogW}px`;\n }\n style.top = `${top}px`;\n } else {\n dialog.classList.remove(\"positioned\");\n style.left = \"\";\n style.top = \"\";\n }\n }\n\n #finish() {\n if (this.#overlayManager.active === this.#dialog) {\n this.#overlayManager.close(this.#dialog);\n }\n }\n\n #close() {\n this.#currentEditor._reportTelemetry(\n this.#telemetryData || {\n action: \"alt_text_cancel\",\n alt_text_keyboard: !this.#hasUsedPointer,\n }\n );\n this.#telemetryData = null;\n\n this.#removeOnClickListeners();\n this.#uiManager?.addEditListeners();\n this.#resizeAC?.abort();\n this.#resizeAC = null;\n this.#currentEditor.altTextFinish();\n this.#currentEditor = null;\n this.#uiManager = null;\n }\n\n #updateUIState() {\n this.#textarea.disabled = this.#optionDecorative.checked;\n }\n\n #save() {\n const altText = this.#textarea.value.trim();\n const decorative = this.#optionDecorative.checked;\n this.#currentEditor.altTextData = {\n altText,\n decorative,\n };\n this.#telemetryData = {\n action: \"alt_text_save\",\n alt_text_description: !!altText,\n alt_text_edit:\n !!this.#previousAltText && this.#previousAltText !== altText,\n alt_text_decorative: decorative,\n alt_text_keyboard: !this.#hasUsedPointer,\n };\n this.#finish();\n }\n\n #onClick(evt) {\n if (evt.detail === 0) {\n return; // The keyboard was used.\n }\n this.#hasUsedPointer = true;\n this.#removeOnClickListeners();\n }\n\n #removeOnClickListeners() {\n this.#clickAC?.abort();\n this.#clickAC = null;\n }\n\n destroy() {\n this.#uiManager = null; // Avoid re-adding the edit listeners.\n this.#finish();\n this.#svgElement?.remove();\n this.#svgElement = this.#rectElement = null;\n }\n}\n\nexport { AltTextManager };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./event_utils.js\").EventBus} EventBus */\n\nimport { AnnotationEditorParamsType } from \"pdfjs-lib\";\n\n/**\n * @typedef {Object} AnnotationEditorParamsOptions\n * @property {HTMLInputElement} editorFreeTextFontSize\n * @property {HTMLInputElement} editorFreeTextColor\n * @property {HTMLInputElement} editorInkColor\n * @property {HTMLInputElement} editorInkThickness\n * @property {HTMLInputElement} editorInkOpacity\n * @property {HTMLButtonElement} editorStampAddImage\n * @property {HTMLInputElement} editorFreeHighlightThickness\n * @property {HTMLButtonElement} editorHighlightShowAll\n */\n\nclass AnnotationEditorParams {\n /**\n * @param {AnnotationEditorParamsOptions} options\n * @param {EventBus} eventBus\n */\n constructor(options, eventBus) {\n this.eventBus = eventBus;\n this.#bindListeners(options);\n }\n\n /**\n * @param {AnnotationEditorParamsOptions} options\n */\n #bindListeners({\n editorFreeTextFontSize,\n editorFreeTextColor,\n editorInkColor,\n editorInkThickness,\n editorInkOpacity,\n editorStampAddImage,\n editorFreeHighlightThickness,\n editorHighlightShowAll,\n }) {\n const dispatchEvent = (typeStr, value) => {\n this.eventBus.dispatch(\"switchannotationeditorparams\", {\n source: this,\n type: AnnotationEditorParamsType[typeStr],\n value,\n });\n };\n editorFreeTextFontSize.addEventListener(\"input\", function () {\n dispatchEvent(\"FREETEXT_SIZE\", this.valueAsNumber);\n });\n editorFreeTextColor.addEventListener(\"input\", function () {\n dispatchEvent(\"FREETEXT_COLOR\", this.value);\n });\n editorInkColor.addEventListener(\"input\", function () {\n dispatchEvent(\"INK_COLOR\", this.value);\n });\n editorInkThickness.addEventListener(\"input\", function () {\n dispatchEvent(\"INK_THICKNESS\", this.valueAsNumber);\n });\n editorInkOpacity.addEventListener(\"input\", function () {\n dispatchEvent(\"INK_OPACITY\", this.valueAsNumber);\n });\n editorStampAddImage.addEventListener(\"click\", () => {\n this.eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n data: { action: \"pdfjs.image.add_image_click\" },\n },\n });\n dispatchEvent(\"CREATE\");\n });\n editorFreeHighlightThickness.addEventListener(\"input\", function () {\n dispatchEvent(\"HIGHLIGHT_THICKNESS\", this.valueAsNumber);\n });\n editorHighlightShowAll.addEventListener(\"click\", function () {\n const checked = this.getAttribute(\"aria-pressed\") === \"true\";\n this.setAttribute(\"aria-pressed\", !checked);\n dispatchEvent(\"HIGHLIGHT_SHOW_ALL\", !checked);\n });\n\n this.eventBus._on(\"annotationeditorparamschanged\", evt => {\n for (const [type, value] of evt.details) {\n switch (type) {\n case AnnotationEditorParamsType.FREETEXT_SIZE:\n editorFreeTextFontSize.value = value;\n break;\n case AnnotationEditorParamsType.FREETEXT_COLOR:\n editorFreeTextColor.value = value;\n break;\n case AnnotationEditorParamsType.INK_COLOR:\n editorInkColor.value = value;\n break;\n case AnnotationEditorParamsType.INK_THICKNESS:\n editorInkThickness.value = value;\n break;\n case AnnotationEditorParamsType.INK_OPACITY:\n editorInkOpacity.value = value;\n break;\n case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:\n editorFreeHighlightThickness.value = value;\n break;\n case AnnotationEditorParamsType.HIGHLIGHT_FREE:\n editorFreeHighlightThickness.disabled = !value;\n break;\n case AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL:\n editorHighlightShowAll.setAttribute(\"aria-pressed\", value);\n break;\n }\n }\n });\n }\n}\n\nexport { AnnotationEditorParams };\n","/* Copyright 2024 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Used to compare floats: there is no exact equality due to rounding errors.\nconst PRECISION = 1e-1;\n\nclass CaretBrowsingMode {\n #mainContainer;\n\n #toolBarHeight = 0;\n\n #viewerContainer;\n\n constructor(abortSignal, mainContainer, viewerContainer, toolbarContainer) {\n this.#mainContainer = mainContainer;\n this.#viewerContainer = viewerContainer;\n\n if (!toolbarContainer) {\n return;\n }\n this.#toolBarHeight = toolbarContainer.getBoundingClientRect().height;\n\n const toolbarObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n if (entry.target === toolbarContainer) {\n this.#toolBarHeight = Math.floor(entry.borderBoxSize[0].blockSize);\n break;\n }\n }\n });\n toolbarObserver.observe(toolbarContainer);\n\n abortSignal.addEventListener(\"abort\", () => toolbarObserver.disconnect(), {\n once: true,\n });\n }\n\n /**\n * Return true if the two rectangles are on the same line.\n * @param {DOMRect} rect1\n * @param {DOMRect} rect2\n * @returns {boolean}\n */\n #isOnSameLine(rect1, rect2) {\n const top1 = rect1.y;\n const bot1 = rect1.bottom;\n const mid1 = rect1.y + rect1.height / 2;\n\n const top2 = rect2.y;\n const bot2 = rect2.bottom;\n const mid2 = rect2.y + rect2.height / 2;\n\n return (top1 <= mid2 && mid2 <= bot1) || (top2 <= mid1 && mid1 <= bot2);\n }\n\n /**\n * Return `true` if the rectangle is:\n * - under the caret when `isUp === false`.\n * - over the caret when `isUp === true`.\n * @param {DOMRect} rect\n * @param {number} x\n * @param {number} y\n * @param {boolean} isUp\n * @returns {boolean}\n */\n #isUnderOver(rect, x, y, isUp) {\n const midY = rect.y + rect.height / 2;\n return (\n (isUp ? y >= midY : y <= midY) &&\n rect.x - PRECISION <= x &&\n x <= rect.right + PRECISION\n );\n }\n\n /**\n * Check if the rectangle is visible.\n * @param {DOMRect} rect\n * @returns {boolean}\n */\n #isVisible(rect) {\n return (\n rect.top >= this.#toolBarHeight &&\n rect.left >= 0 &&\n rect.bottom <=\n (window.innerHeight || document.documentElement.clientHeight) &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth)\n );\n }\n\n /**\n * Get the position of the caret.\n * @param {Selection} selection\n * @param {boolean} isUp\n * @returns {Array}\n */\n #getCaretPosition(selection, isUp) {\n const { focusNode, focusOffset } = selection;\n const range = document.createRange();\n range.setStart(focusNode, focusOffset);\n range.setEnd(focusNode, focusOffset);\n const rect = range.getBoundingClientRect();\n\n return [rect.x, isUp ? rect.top : rect.bottom];\n }\n\n static #caretPositionFromPoint(x, y) {\n if (\n (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) &&\n !document.caretPositionFromPoint\n ) {\n const { startContainer: offsetNode, startOffset: offset } =\n document.caretRangeFromPoint(x, y);\n return { offsetNode, offset };\n }\n return document.caretPositionFromPoint(x, y);\n }\n\n #setCaretPositionHelper(selection, caretX, select, element, rect) {\n rect ||= element.getBoundingClientRect();\n if (caretX <= rect.x + PRECISION) {\n if (select) {\n selection.extend(element.firstChild, 0);\n } else {\n selection.setPosition(element.firstChild, 0);\n }\n return;\n }\n if (rect.right - PRECISION <= caretX) {\n const { lastChild } = element;\n if (select) {\n selection.extend(lastChild, lastChild.length);\n } else {\n selection.setPosition(lastChild, lastChild.length);\n }\n return;\n }\n\n const midY = rect.y + rect.height / 2;\n let caretPosition = CaretBrowsingMode.#caretPositionFromPoint(caretX, midY);\n let parentElement = caretPosition.offsetNode?.parentElement;\n if (parentElement && parentElement !== element) {\n // There is an element on top of the one in the text layer, so we\n // need to hide all the elements (except the one in the text layer)\n // at this position in order to get the correct caret position.\n const elementsAtPoint = document.elementsFromPoint(caretX, midY);\n const savedVisibilities = [];\n for (const el of elementsAtPoint) {\n if (el === element) {\n break;\n }\n const { style } = el;\n savedVisibilities.push([el, style.visibility]);\n style.visibility = \"hidden\";\n }\n caretPosition = CaretBrowsingMode.#caretPositionFromPoint(caretX, midY);\n parentElement = caretPosition.offsetNode?.parentElement;\n for (const [el, visibility] of savedVisibilities) {\n el.style.visibility = visibility;\n }\n }\n if (parentElement !== element) {\n // The element targeted by caretPositionFromPoint isn't in the text\n // layer.\n if (select) {\n selection.extend(element.firstChild, 0);\n } else {\n selection.setPosition(element.firstChild, 0);\n }\n return;\n }\n if (select) {\n selection.extend(caretPosition.offsetNode, caretPosition.offset);\n } else {\n selection.setPosition(caretPosition.offsetNode, caretPosition.offset);\n }\n }\n\n /**\n * Set the caret position or extend the selection (it depends on the select\n * parameter).\n * @param {boolean} select\n * @param {Selection} selection\n * @param {Element} newLineElement\n * @param {DOMRect} newLineElementRect\n * @param {number} caretX\n */\n #setCaretPosition(\n select,\n selection,\n newLineElement,\n newLineElementRect,\n caretX\n ) {\n if (this.#isVisible(newLineElementRect)) {\n this.#setCaretPositionHelper(\n selection,\n caretX,\n select,\n newLineElement,\n newLineElementRect\n );\n return;\n }\n this.#mainContainer.addEventListener(\n \"scrollend\",\n this.#setCaretPositionHelper.bind(\n this,\n selection,\n caretX,\n select,\n newLineElement,\n null\n ),\n { once: true }\n );\n newLineElement.scrollIntoView();\n }\n\n /**\n * Get the node on the next page.\n * @param {Element} textLayer\n * @param {boolean} isUp\n * @returns {Node}\n */\n #getNodeOnNextPage(textLayer, isUp) {\n while (true) {\n const page = textLayer.closest(\".page\");\n const pageNumber = parseInt(page.getAttribute(\"data-page-number\"));\n const nextPage = isUp ? pageNumber - 1 : pageNumber + 1;\n textLayer = this.#viewerContainer.querySelector(\n `.page[data-page-number=\"${nextPage}\"] .textLayer`\n );\n if (!textLayer) {\n return null;\n }\n const walker = document.createTreeWalker(textLayer, NodeFilter.SHOW_TEXT);\n const node = isUp ? walker.lastChild() : walker.firstChild();\n if (node) {\n return node;\n }\n }\n }\n\n /**\n * Move the caret in the given direction.\n * @param {boolean} isUp\n * @param {boolean} select\n */\n moveCaret(isUp, select) {\n const selection = document.getSelection();\n if (selection.rangeCount === 0) {\n return;\n }\n const { focusNode } = selection;\n const focusElement =\n focusNode.nodeType !== Node.ELEMENT_NODE\n ? focusNode.parentElement\n : focusNode;\n const root = focusElement.closest(\".textLayer\");\n if (!root) {\n return;\n }\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT);\n walker.currentNode = focusNode;\n\n // Move to the next element which is not on the same line as the focus\n // element.\n const focusRect = focusElement.getBoundingClientRect();\n let newLineElement = null;\n const nodeIterator = (\n isUp ? walker.previousSibling : walker.nextSibling\n ).bind(walker);\n while (nodeIterator()) {\n const element = walker.currentNode.parentElement;\n if (!this.#isOnSameLine(focusRect, element.getBoundingClientRect())) {\n newLineElement = element;\n break;\n }\n }\n\n if (!newLineElement) {\n // Need to find the next line on the next page.\n const node = this.#getNodeOnNextPage(root, isUp);\n if (!node) {\n return;\n }\n if (select) {\n const lastNode =\n (isUp ? walker.firstChild() : walker.lastChild()) || focusNode;\n selection.extend(lastNode, isUp ? 0 : lastNode.length);\n const range = document.createRange();\n range.setStart(node, isUp ? node.length : 0);\n range.setEnd(node, isUp ? node.length : 0);\n selection.addRange(range);\n return;\n }\n const [caretX] = this.#getCaretPosition(selection, isUp);\n const { parentElement } = node;\n this.#setCaretPosition(\n select,\n selection,\n parentElement,\n parentElement.getBoundingClientRect(),\n caretX\n );\n return;\n }\n\n // We've a candidate for the next line now we want to find the first element\n // which is under/over the caret.\n const [caretX, caretY] = this.#getCaretPosition(selection, isUp);\n const newLineElementRect = newLineElement.getBoundingClientRect();\n\n // Maybe the element on the new line is a valid candidate.\n if (this.#isUnderOver(newLineElementRect, caretX, caretY, isUp)) {\n this.#setCaretPosition(\n select,\n selection,\n newLineElement,\n newLineElementRect,\n caretX\n );\n return;\n }\n\n while (nodeIterator()) {\n // Search an element on the same line as newLineElement\n // which could be under/over the caret.\n const element = walker.currentNode.parentElement;\n const elementRect = element.getBoundingClientRect();\n if (!this.#isOnSameLine(newLineElementRect, elementRect)) {\n break;\n }\n if (this.#isUnderOver(elementRect, caretX, caretY, isUp)) {\n // We found the element.\n this.#setCaretPosition(select, selection, element, elementRect, caretX);\n return;\n }\n }\n\n // No element has been found so just put the caret on the element on the new\n // line.\n this.#setCaretPosition(\n select,\n selection,\n newLineElement,\n newLineElementRect,\n caretX\n );\n }\n}\n\nexport { CaretBrowsingMode };\n","/* Copyright 2013 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./interfaces\").IDownloadManager} IDownloadManager */\n\nimport { createValidAbsoluteUrl, isPdfFile } from \"pdfjs-lib\";\n\nif (typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"CHROME || GENERIC\")) {\n throw new Error(\n 'Module \"pdfjs-web/download_manager\" shall not be used ' +\n \"outside CHROME and GENERIC builds.\"\n );\n}\n\nfunction download(blobUrl, filename) {\n const a = document.createElement(\"a\");\n if (!a.click) {\n throw new Error('DownloadManager: \"a.click()\" is not supported.');\n }\n a.href = blobUrl;\n a.target = \"_parent\";\n // Use a.download if available. This increases the likelihood that\n // the file is downloaded instead of opened by another PDF plugin.\n if (\"download\" in a) {\n a.download = filename;\n }\n // must be in the document for recent Firefox versions,\n // otherwise .click() is ignored.\n (document.body || document.documentElement).append(a);\n a.click();\n a.remove();\n}\n\n/**\n * @implements {IDownloadManager}\n */\nclass DownloadManager {\n #openBlobUrls = new WeakMap();\n\n downloadData(data, filename, contentType) {\n const blobUrl = URL.createObjectURL(\n new Blob([data], { type: contentType })\n );\n download(blobUrl, filename);\n }\n\n /**\n * @returns {boolean} Indicating if the data was opened.\n */\n openOrDownloadData(data, filename, dest = null) {\n const isPdfData = isPdfFile(filename);\n const contentType = isPdfData ? \"application/pdf\" : \"\";\n\n if (\n (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"COMPONENTS\")) &&\n isPdfData\n ) {\n let blobUrl = this.#openBlobUrls.get(data);\n if (!blobUrl) {\n blobUrl = URL.createObjectURL(new Blob([data], { type: contentType }));\n this.#openBlobUrls.set(data, blobUrl);\n }\n let viewerUrl;\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n // The current URL is the viewer, let's use it and append the file.\n viewerUrl = \"?file=\" + encodeURIComponent(blobUrl + \"#\" + filename);\n } else if (PDFJSDev.test(\"CHROME\")) {\n // In the Chrome extension, the URL is rewritten using the history API\n // in viewer.js, so an absolute URL must be generated.\n viewerUrl =\n // eslint-disable-next-line no-undef\n chrome.runtime.getURL(\"/content/web/viewer.html\") +\n \"?file=\" +\n encodeURIComponent(blobUrl + \"#\" + filename);\n }\n if (dest) {\n viewerUrl += `#${escape(dest)}`;\n }\n\n try {\n window.open(viewerUrl);\n return true;\n } catch (ex) {\n console.error(`openOrDownloadData: ${ex}`);\n // Release the `blobUrl`, since opening it failed, and fallback to\n // downloading the PDF file.\n URL.revokeObjectURL(blobUrl);\n this.#openBlobUrls.delete(data);\n }\n }\n\n this.downloadData(data, filename, contentType);\n return false;\n }\n\n download(data, url, filename) {\n let blobUrl;\n if (data) {\n blobUrl = URL.createObjectURL(\n new Blob([data], { type: \"application/pdf\" })\n );\n } else {\n if (!createValidAbsoluteUrl(url, \"http://example.com\")) {\n console.error(`download - not a valid URL: ${url}`);\n return;\n }\n blobUrl = url + \"#pdfjs.action=download\";\n }\n download(blobUrl, filename);\n }\n}\n\nexport { DownloadManager };\n","/* Copyright 2024 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { noContextMenu } from \"pdfjs-lib\";\n\nclass EditorUndoBar {\n #closeButton = null;\n\n #container;\n\n #eventBus = null;\n\n #focusTimeout = null;\n\n #initController = null;\n\n isOpen = false;\n\n #message;\n\n #showController = null;\n\n #undoButton;\n\n static #l10nMessages = Object.freeze({\n highlight: \"pdfjs-editor-undo-bar-message-highlight\",\n freetext: \"pdfjs-editor-undo-bar-message-freetext\",\n stamp: \"pdfjs-editor-undo-bar-message-stamp\",\n ink: \"pdfjs-editor-undo-bar-message-ink\",\n _multiple: \"pdfjs-editor-undo-bar-message-multiple\",\n });\n\n constructor({ container, message, undoButton, closeButton }, eventBus) {\n this.#container = container;\n this.#message = message;\n this.#undoButton = undoButton;\n this.#closeButton = closeButton;\n this.#eventBus = eventBus;\n }\n\n destroy() {\n this.#initController?.abort();\n this.#initController = null;\n\n this.hide();\n }\n\n show(undoAction, messageData) {\n if (!this.#initController) {\n this.#initController = new AbortController();\n const opts = { signal: this.#initController.signal };\n const boundHide = this.hide.bind(this);\n\n this.#container.addEventListener(\"contextmenu\", noContextMenu, opts);\n this.#closeButton.addEventListener(\"click\", boundHide, opts);\n this.#eventBus._on(\"beforeprint\", boundHide, opts);\n this.#eventBus._on(\"download\", boundHide, opts);\n }\n\n this.hide();\n\n if (typeof messageData === \"string\") {\n this.#message.setAttribute(\n \"data-l10n-id\",\n EditorUndoBar.#l10nMessages[messageData]\n );\n } else {\n this.#message.setAttribute(\n \"data-l10n-id\",\n EditorUndoBar.#l10nMessages._multiple\n );\n this.#message.setAttribute(\n \"data-l10n-args\",\n JSON.stringify({ count: messageData })\n );\n }\n this.isOpen = true;\n this.#container.hidden = false;\n\n this.#showController = new AbortController();\n\n this.#undoButton.addEventListener(\n \"click\",\n () => {\n undoAction();\n this.hide();\n },\n { signal: this.#showController.signal }\n );\n\n // Without the setTimeout, VoiceOver will read out the document title\n // instead of the popup label.\n this.#focusTimeout = setTimeout(() => {\n this.#container.focus();\n this.#focusTimeout = null;\n }, 100);\n }\n\n hide() {\n if (!this.isOpen) {\n return;\n }\n this.isOpen = false;\n this.#container.hidden = true;\n\n this.#showController?.abort();\n this.#showController = null;\n\n if (this.#focusTimeout) {\n clearTimeout(this.#focusTimeout);\n this.#focusTimeout = null;\n }\n }\n}\n\nexport { EditorUndoBar };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nclass OverlayManager {\n #overlays = new WeakMap();\n\n #active = null;\n\n get active() {\n return this.#active;\n }\n\n /**\n * @param {HTMLDialogElement} dialog - The overlay's DOM element.\n * @param {boolean} [canForceClose] - Indicates if opening the overlay closes\n * an active overlay. The default is `false`.\n * @returns {Promise} A promise that is resolved when the overlay has been\n * registered.\n */\n async register(dialog, canForceClose = false) {\n if (typeof dialog !== \"object\") {\n throw new Error(\"Not enough parameters.\");\n } else if (this.#overlays.has(dialog)) {\n throw new Error(\"The overlay is already registered.\");\n }\n this.#overlays.set(dialog, { canForceClose });\n\n dialog.addEventListener(\"cancel\", evt => {\n this.#active = null;\n });\n }\n\n /**\n * @param {HTMLDialogElement} dialog - The overlay's DOM element.\n * @returns {Promise} A promise that is resolved when the overlay has been\n * opened.\n */\n async open(dialog) {\n if (!this.#overlays.has(dialog)) {\n throw new Error(\"The overlay does not exist.\");\n } else if (this.#active) {\n if (this.#active === dialog) {\n throw new Error(\"The overlay is already active.\");\n } else if (this.#overlays.get(dialog).canForceClose) {\n await this.close();\n } else {\n throw new Error(\"Another overlay is currently active.\");\n }\n }\n this.#active = dialog;\n dialog.showModal();\n }\n\n /**\n * @param {HTMLDialogElement} dialog - The overlay's DOM element.\n * @returns {Promise} A promise that is resolved when the overlay has been\n * closed.\n */\n async close(dialog = this.#active) {\n if (!this.#overlays.has(dialog)) {\n throw new Error(\"The overlay does not exist.\");\n } else if (!this.#active) {\n throw new Error(\"The overlay is currently not active.\");\n } else if (this.#active !== dialog) {\n throw new Error(\"Another overlay is currently active.\");\n }\n dialog.close();\n this.#active = null;\n }\n}\n\nexport { OverlayManager };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./overlay_manager.js\").OverlayManager} OverlayManager */\n\nimport { PasswordResponses } from \"pdfjs-lib\";\n\n/**\n * @typedef {Object} PasswordPromptOptions\n * @property {HTMLDialogElement} dialog - The overlay's DOM element.\n * @property {HTMLParagraphElement} label - Label containing instructions for\n * entering the password.\n * @property {HTMLInputElement} input - Input field for entering the password.\n * @property {HTMLButtonElement} submitButton - Button for submitting the\n * password.\n * @property {HTMLButtonElement} cancelButton - Button for cancelling password\n * entry.\n */\n\nclass PasswordPrompt {\n #activeCapability = null;\n\n #updateCallback = null;\n\n #reason = null;\n\n /**\n * @param {PasswordPromptOptions} options\n * @param {OverlayManager} overlayManager - Manager for the viewer overlays.\n * @param {boolean} [isViewerEmbedded] - If the viewer is embedded, in e.g.\n * an