react-iiif-vault 0.9.13 → 0.9.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle/cjs/index.js +3 -11
- package/dist/bundle/cjs/index.js.map +1 -1
- package/dist/bundle/esm/index.mjs +16 -48
- package/dist/bundle/esm/index.mjs.map +1 -1
- package/dist/canvas-panel/cjs/canvas-panel.js +3 -11
- package/dist/canvas-panel/cjs/canvas-panel.js.map +1 -1
- package/dist/canvas-panel/esm/canvas-panel.mjs +16 -48
- package/dist/canvas-panel/esm/canvas-panel.mjs.map +1 -1
- package/dist/index.umd.js +27 -35
- package/dist/index.umd.js.map +1 -1
- package/package.json +2 -2
package/dist/index.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../node_modules/object-assign/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/react-reconciler/cjs/react-reconciler.production.min.js","../node_modules/react-reconciler/index.js","../node_modules/@atlas-viewer/atlas/dist/bundle/esm/index.mjs","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-error-boundary/dist/react-error-boundary.esm.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/jsx-runtime.js","../react/jsx-runtime","../src/context/ResourceContext.tsx","../src/context/VaultContext.tsx","../src/hooks/useVault.ts","../src/hooks/useExternalResource.ts","../src/hooks/useExternalManifest.ts","../src/context/ManifestContext.tsx","../src/context/CanvasContext.tsx","../src/hooks/useVaultSelector.ts","../src/context/VisibleCanvasContext.tsx","../src/viewers/SimpleViewerContext.tsx","../src/context/ContextBridge.tsx","../node_modules/typesafe-actions/dist/typesafe-actions.es.production.js","../node_modules/@iiif/vault/dist/actions/esm/index.mjs","../src/hooks/useDispatch.ts","../src/hooks/useVirtualAnnotationPage.ts","../src/hooks/useVirtualAnnotationPageContext.tsx","../src/canvas-panel/render/DefaultCanvasFallback.tsx","../node_modules/react-dom/client.js","../src/context/ViewerPresetContext.tsx","../src/context/PortalContext.tsx","../src/canvas-panel/Viewer.tsx","../node_modules/@iiif/vault-helpers/dist/events/esm/events.mjs","../src/hooks/useResourceEvents.ts","../node_modules/@iiif/vault-helpers/dist/styles/esm/styles.mjs","../src/hooks/useStyles.ts","../node_modules/@iiif/vault-helpers/dist/annotation-targets/esm/annotation-targets.mjs","../src/hooks/useAnnotation.ts","../src/hooks/useCanvas.ts","../src/canvas-panel/render/Annotation.tsx","../src/canvas-panel/render/AnnotationPage.tsx","../src/canvas-panel/render/Image.tsx","../src/features/rendering-strategy/rendering-utils.ts","../src/hooks/useManifest.ts","../src/hooks/useEnabledAnnotationPageIds.ts","../src/utility/flatten-annotation-page-ids.ts","../src/hooks/useAnnotationPageManager.ts","../src/hooks/useResources.ts","../src/context/ImageServiceLoaderContext.tsx","../src/hooks/useLoadImageService.ts","../src/hooks/usePaintingAnnotations.ts","../src/hooks/usePaintables.ts","../src/features/rendering-strategy/image-strategy.ts","../src/features/rendering-strategy/3d-strategy.ts","../src/features/rendering-strategy/audio-strategy.ts","../src/features/rendering-strategy/video-strategy.ts","../src/hooks/useRenderingStrategy.ts","../src/hooks/useVaultEffect.ts","../node_modules/@iiif/vault-helpers/dist/thumbnail/esm/thumbnail.mjs","../src/hooks/useThumbnail.ts","../src/hooks/useSimpleMediaPlayer.ts","../src/context/MediaContext.tsx","../src/canvas-panel/render/Audio.tsx","../src/canvas-panel/render/Video.tsx","../src/canvas-panel/render/Model.tsx","../src/canvas-panel/render/Canvas.tsx","../src/canvas-panel/index.ts","../src/context/AnnotationContext.tsx","../src/context/CollectionContext.tsx","../src/context/RangeContext.tsx","../src/hooks/useAnnotationsAtTime.ts","../src/hooks/useCanvasClock.ts","../src/hooks/useCollection.ts","../src/hooks/useEventListener.ts","../src/hooks/useExistingVault.ts","../src/hooks/useExternalCollection.ts","../src/hooks/useImageService.ts","../src/hooks/useImageTile.ts","../src/hooks/useRange.ts","../src/hooks/useSearchService.ts","../src/hooks/useStyleHelper.ts"],"sourcesContent":["/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):D=0<a?Math.floor(1E3/a):5};var F=new MessageChannel,G=F.port2;F.port1.onmessage=function(){if(null!==B){var a=exports.unstable_now();E=a+D;try{B(!0,a)?G.postMessage(null):(A=!1,B=null)}catch(b){throw G.postMessage(null),b;}}else A=!1};f=function(a){B=a;A||(A=!0,G.postMessage(null))};g=function(a,b){C=\nx(function(){a(exports.unstable_now())},b)};h=function(){y(C);C=-1}}function H(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<I(e,b))a[d]=b,a[c]=e,c=d;else break a}}function J(a){a=a[0];return void 0===a?null:a}\nfunction K(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:N++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/** @license React v0.26.2\n * react-reconciler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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 */\nmodule.exports = function $$$reconciler($$$hostConfig) {\n var exports = {};\n'use strict';var aa=require(\"object-assign\"),ba=require(\"react\"),m=require(\"scheduler\");function q(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar ca=ba.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,da=60103,ea=60106,fa=60107,ha=60108,ia=60114,ja=60109,ka=60110,la=60112,ma=60113,na=60120,oa=60115,pa=60116,qa=60121,ra=60129,sa=60130,ta=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var r=Symbol.for;da=r(\"react.element\");ea=r(\"react.portal\");fa=r(\"react.fragment\");ha=r(\"react.strict_mode\");ia=r(\"react.profiler\");ja=r(\"react.provider\");ka=r(\"react.context\");la=r(\"react.forward_ref\");ma=r(\"react.suspense\");na=r(\"react.suspense_list\");oa=r(\"react.memo\");pa=r(\"react.lazy\");qa=r(\"react.block\");r(\"react.scope\");ra=r(\"react.debug_trace_mode\");sa=r(\"react.offscreen\");ta=r(\"react.legacy_hidden\")}var ua=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction va(a){if(null===a||\"object\"!==typeof a)return null;a=ua&&a[ua]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nfunction wa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case fa:return\"Fragment\";case ea:return\"Portal\";case ia:return\"Profiler\";case ha:return\"StrictMode\";case ma:return\"Suspense\";case na:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case ka:return(a.displayName||\"Context\")+\".Consumer\";case ja:return(a._context.displayName||\"Context\")+\".Provider\";case la:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case oa:return wa(a.type);case qa:return wa(a._render);case pa:b=a._payload;a=a._init;try{return wa(a(b))}catch(c){}}return null}function xa(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ya(a){if(xa(a)!==a)throw Error(q(188));}\nfunction za(a){var b=a.alternate;if(!b){b=xa(a);if(null===b)throw Error(q(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return ya(e),a;if(f===d)return ya(e),b;f=f.sibling}throw Error(q(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(q(189));}}if(c.alternate!==d)throw Error(q(190));}if(3!==c.tag)throw Error(q(188));return c.stateNode.current===c?a:b}function Aa(a){a=za(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction Ba(a){a=za(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child&&4!==b.tag)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}function Ca(a,b){for(var c=a.alternate;null!==b;){if(b===a||b===c)return!0;b=b.return}return!1}\nvar Da=$$$hostConfig.getPublicInstance,Ea=$$$hostConfig.getRootHostContext,Fa=$$$hostConfig.getChildHostContext,Ga=$$$hostConfig.prepareForCommit,Ha=$$$hostConfig.resetAfterCommit,Ia=$$$hostConfig.createInstance,Ja=$$$hostConfig.appendInitialChild,Ka=$$$hostConfig.finalizeInitialChildren,La=$$$hostConfig.prepareUpdate,Ma=$$$hostConfig.shouldSetTextContent,Na=$$$hostConfig.createTextInstance,Pa=$$$hostConfig.scheduleTimeout,Qa=$$$hostConfig.cancelTimeout,Ra=$$$hostConfig.noTimeout,Sa=$$$hostConfig.isPrimaryRenderer,\nTa=$$$hostConfig.supportsMutation,Ua=$$$hostConfig.supportsPersistence,Va=$$$hostConfig.supportsHydration,Wa=$$$hostConfig.getInstanceFromNode,Xa=$$$hostConfig.makeOpaqueHydratingObject,Ya=$$$hostConfig.makeClientId,Za=$$$hostConfig.beforeActiveInstanceBlur,$a=$$$hostConfig.afterActiveInstanceBlur,ab=$$$hostConfig.preparePortalMount,bb=$$$hostConfig.supportsTestSelectors,cb=$$$hostConfig.findFiberRoot,db=$$$hostConfig.getBoundingRect,eb=$$$hostConfig.getTextContent,fb=$$$hostConfig.isHiddenSubtree,\ngb=$$$hostConfig.matchAccessibilityRole,hb=$$$hostConfig.setFocusIfFocusable,ib=$$$hostConfig.setupIntersectionObserver,jb=$$$hostConfig.appendChild,kb=$$$hostConfig.appendChildToContainer,lb=$$$hostConfig.commitTextUpdate,mb=$$$hostConfig.commitMount,nb=$$$hostConfig.commitUpdate,ob=$$$hostConfig.insertBefore,pb=$$$hostConfig.insertInContainerBefore,qb=$$$hostConfig.removeChild,rb=$$$hostConfig.removeChildFromContainer,sb=$$$hostConfig.resetTextContent,tb=$$$hostConfig.hideInstance,ub=$$$hostConfig.hideTextInstance,\nvb=$$$hostConfig.unhideInstance,wb=$$$hostConfig.unhideTextInstance,xb=$$$hostConfig.clearContainer,yb=$$$hostConfig.cloneInstance,zb=$$$hostConfig.createContainerChildSet,Ab=$$$hostConfig.appendChildToContainerChildSet,Bb=$$$hostConfig.finalizeContainerChildren,Cb=$$$hostConfig.replaceContainerChildren,Db=$$$hostConfig.cloneHiddenInstance,Eb=$$$hostConfig.cloneHiddenTextInstance,Fb=$$$hostConfig.canHydrateInstance,Gb=$$$hostConfig.canHydrateTextInstance,Hb=$$$hostConfig.isSuspenseInstancePending,\nIb=$$$hostConfig.isSuspenseInstanceFallback,Jb=$$$hostConfig.getNextHydratableSibling,Kb=$$$hostConfig.getFirstHydratableChild,Lb=$$$hostConfig.hydrateInstance,Mb=$$$hostConfig.hydrateTextInstance,Nb=$$$hostConfig.getNextHydratableInstanceAfterSuspenseInstance,Ob=$$$hostConfig.commitHydratedContainer,Pb=$$$hostConfig.commitHydratedSuspenseInstance,Qb;function Rb(a){if(void 0===Qb)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);Qb=b&&b[1]||\"\"}return\"\\n\"+Qb+a}var Sb=!1;\nfunction Tb(a,b){if(!a||Sb)return\"\";Sb=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(k){var d=k}Reflect.construct(a,[],b)}else{try{b.call()}catch(k){d=k}a.call(b.prototype)}else{try{throw Error();}catch(k){d=k}a()}}catch(k){if(k&&d&&\"string\"===typeof k.stack){for(var e=k.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Sb=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Rb(a):\"\"}var Ub=[],Vb=-1;function Wb(a){return{current:a}}function z(a){0>Vb||(a.current=Ub[Vb],Ub[Vb]=null,Vb--)}function A(a,b){Vb++;Ub[Vb]=a.current;a.current=b}\nvar Xb={},B=Wb(Xb),D=Wb(!1),Yb=Xb;function Zb(a,b){var c=a.type.contextTypes;if(!c)return Xb;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function E(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $b(){z(D);z(B)}\nfunction ac(a,b,c){if(B.current!==Xb)throw Error(q(168));A(B,b);A(D,c)}function bc(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(q(108,wa(b)||\"Unknown\",e));return aa({},c,d)}function cc(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Xb;Yb=B.current;A(B,a);A(D,D.current);return!0}\nfunction dc(a,b,c){var d=a.stateNode;if(!d)throw Error(q(169));c?(a=bc(a,b,Yb),d.__reactInternalMemoizedMergedChildContext=a,z(D),z(B),A(B,a)):z(D);A(D,c)}var ec=null,fc=null,gc=m.unstable_now;gc();var hc=0,F=8;\nfunction ic(a){if(0!==(1&a))return F=15,1;if(0!==(2&a))return F=14,2;if(0!==(4&a))return F=13,4;var b=24&a;if(0!==b)return F=12,b;if(0!==(a&32))return F=11,32;b=192&a;if(0!==b)return F=10,b;if(0!==(a&256))return F=9,256;b=3584&a;if(0!==b)return F=8,b;if(0!==(a&4096))return F=7,4096;b=4186112&a;if(0!==b)return F=6,b;b=62914560&a;if(0!==b)return F=5,b;if(a&67108864)return F=4,67108864;if(0!==(a&134217728))return F=3,134217728;b=805306368&a;if(0!==b)return F=2,b;if(0!==(1073741824&a))return F=1,1073741824;\nF=8;return a}function jc(a){switch(a){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function kc(a){switch(a){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(q(358,a));}}\nfunction lc(a,b){var c=a.pendingLanes;if(0===c)return F=0;var d=0,e=0,f=a.expiredLanes,g=a.suspendedLanes,h=a.pingedLanes;if(0!==f)d=f,e=F=15;else if(f=c&134217727,0!==f){var k=f&~g;0!==k?(d=ic(k),e=F):(h&=f,0!==h&&(d=ic(h),e=F))}else f=c&~g,0!==f?(d=ic(f),e=F):0!==h&&(d=ic(h),e=F);if(0===d)return 0;d=31-mc(d);d=c&((0>d?0:1<<d)<<1)-1;if(0!==b&&b!==d&&0===(b&g)){ic(b);if(e<=F)return b;F=e}b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-mc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction nc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function oc(a,b){switch(a){case 15:return 1;case 14:return 2;case 12:return a=pc(24&~b),0===a?oc(10,b):a;case 10:return a=pc(192&~b),0===a?oc(8,b):a;case 8:return a=pc(3584&~b),0===a&&(a=pc(4186112&~b),0===a&&(a=512)),a;case 2:return b=pc(805306368&~b),0===b&&(b=268435456),b}throw Error(q(358,a));}function pc(a){return a&-a}function qc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction rc(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-mc(b);a[b]=c}var mc=Math.clz32?Math.clz32:sc,tc=Math.log,uc=Math.LN2;function sc(a){return 0===a?32:31-(tc(a)/uc|0)|0}\nvar vc=m.unstable_runWithPriority,wc=m.unstable_scheduleCallback,xc=m.unstable_cancelCallback,yc=m.unstable_shouldYield,zc=m.unstable_requestPaint,Ac=m.unstable_now,Bc=m.unstable_getCurrentPriorityLevel,Cc=m.unstable_ImmediatePriority,Dc=m.unstable_UserBlockingPriority,Ec=m.unstable_NormalPriority,Fc=m.unstable_LowPriority,Gc=m.unstable_IdlePriority,Hc={},Ic=void 0!==zc?zc:function(){},Jc=null,Kc=null,Lc=!1,Mc=Ac(),G=1E4>Mc?Ac:function(){return Ac()-Mc};\nfunction Nc(){switch(Bc()){case Cc:return 99;case Dc:return 98;case Ec:return 97;case Fc:return 96;case Gc:return 95;default:throw Error(q(332));}}function Oc(a){switch(a){case 99:return Cc;case 98:return Dc;case 97:return Ec;case 96:return Fc;case 95:return Gc;default:throw Error(q(332));}}function Pc(a,b){a=Oc(a);return vc(a,b)}function Qc(a,b,c){a=Oc(a);return wc(a,b,c)}function H(){if(null!==Kc){var a=Kc;Kc=null;xc(a)}Rc()}\nfunction Rc(){if(!Lc&&null!==Jc){Lc=!0;var a=0;try{var b=Jc;Pc(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});Jc=null}catch(c){throw null!==Jc&&(Jc=Jc.slice(a+1)),wc(Cc,H),c;}finally{Lc=!1}}}var Sc=ca.ReactCurrentBatchConfig;function Tc(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var I=\"function\"===typeof Object.is?Object.is:Tc,Uc=Object.prototype.hasOwnProperty;\nfunction Vc(a,b){if(I(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!Uc.call(b,c[d])||!I(a[c[d]],b[c[d]]))return!1;return!0}\nfunction Wc(a){switch(a.tag){case 5:return Rb(a.type);case 16:return Rb(\"Lazy\");case 13:return Rb(\"Suspense\");case 19:return Rb(\"SuspenseList\");case 0:case 2:case 15:return a=Tb(a.type,!1),a;case 11:return a=Tb(a.type.render,!1),a;case 22:return a=Tb(a.type._render,!1),a;case 1:return a=Tb(a.type,!0),a;default:return\"\"}}function Xc(a,b){if(a&&a.defaultProps){b=aa({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Yc=Wb(null),Zc=null,$c=null,ad=null;\nfunction bd(){ad=$c=Zc=null}function cd(a,b){a=a.type._context;Sa?(A(Yc,a._currentValue),a._currentValue=b):(A(Yc,a._currentValue2),a._currentValue2=b)}function dd(a){var b=Yc.current;z(Yc);a=a.type._context;Sa?a._currentValue=b:a._currentValue2=b}function ed(a,b){for(;null!==a;){var c=a.alternate;if((a.childLanes&b)===b)if(null===c||(c.childLanes&b)===b)break;else c.childLanes|=b;else a.childLanes|=b,null!==c&&(c.childLanes|=b);a=a.return}}\nfunction fd(a,b){Zc=a;ad=$c=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(gd=!0),a.firstContext=null)}function J(a,b){if(ad!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)ad=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===$c){if(null===Zc)throw Error(q(308));$c=b;Zc.dependencies={lanes:0,firstContext:b,responders:null}}else $c=$c.next=b}return Sa?a._currentValue:a._currentValue2}var hd=!1;\nfunction id(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function jd(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function kd(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction md(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction nd(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction od(a,b,c,d){var e=a.updateQueue;hd=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var n=a.alternate;if(null!==n){n=n.updateQueue;var t=n.lastBaseUpdate;t!==g&&(null===t?n.firstBaseUpdate=l:t.next=l,n.lastBaseUpdate=k)}}if(null!==f){t=e.baseState;g=0;n=l=k=null;do{h=f.lane;var p=f.eventTime;if((d&h)===h){null!==n&&(n=n.next={eventTime:p,lane:0,tag:f.tag,payload:f.payload,callback:f.callback,\nnext:null});a:{var y=a,x=f;h=b;p=c;switch(x.tag){case 1:y=x.payload;if(\"function\"===typeof y){t=y.call(p,t,h);break a}t=y;break a;case 3:y.flags=y.flags&-4097|64;case 0:y=x.payload;h=\"function\"===typeof y?y.call(p,t,h):y;if(null===h||void 0===h)break a;t=aa({},t,h);break a;case 2:hd=!0}}null!==f.callback&&(a.flags|=32,h=e.effects,null===h?e.effects=[f]:h.push(f))}else p={eventTime:p,lane:h,tag:f.tag,payload:f.payload,callback:f.callback,next:null},null===n?(l=n=p,k=t):n=n.next=p,g|=h;f=f.next;if(null===\nf)if(h=e.shared.pending,null===h)break;else f=h.next,h.next=null,e.lastBaseUpdate=h,e.shared.pending=null}while(1);null===n&&(k=t);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=n;pd|=g;a.lanes=g;a.memoizedState=t}}function qd(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(q(191,e));e.call(d)}}}var rd=(new ba.Component).refs;\nfunction sd(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:aa({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar vd={isMounted:function(a){return(a=a._reactInternals)?xa(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=K(),e=td(a),f=kd(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);md(a,f);ud(a,e,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=K(),e=td(a),f=kd(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);md(a,f);ud(a,e,d)},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=K(),d=td(a),e=kd(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=\nb);md(a,e);ud(a,d,c)}};function wd(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Vc(c,d)||!Vc(e,f):!0}\nfunction xd(a,b,c){var d=!1,e=Xb;var f=b.contextType;\"object\"===typeof f&&null!==f?f=J(f):(e=E(b)?Yb:B.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Zb(a,e):Xb);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=vd;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction yd(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&vd.enqueueReplaceState(b,b.state,null)}\nfunction zd(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=rd;id(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=J(f):(f=E(b)?Yb:B.current,e.context=Zb(a,f));od(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(sd(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&vd.enqueueReplaceState(e,e.state,null),od(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4)}var Ad=Array.isArray;\nfunction Bd(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(q(309));var d=c.stateNode}if(!d)throw Error(q(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===rd&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(q(284));if(!c._owner)throw Error(q(290,a));}return a}\nfunction Cd(a,b){if(\"textarea\"!==a.type)throw Error(q(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b));}\nfunction Dd(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.flags=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Ed(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags=2,\nc):d;b.flags=2;return c}function g(b){a&&null===b.alternate&&(b.flags=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Fd(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Bd(a,b,c),d.return=a,d;d=Gd(c.type,c.key,c.props,null,a.mode,d);d.ref=Bd(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=\nHd(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function n(a,b,c,d,f){if(null===b||7!==b.tag)return b=Id(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function t(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Fd(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case da:return c=Gd(b.type,b.key,b.props,null,a.mode,c),c.ref=Bd(a,null,b),c.return=a,c;case ea:return b=Hd(b,a.mode,c),b.return=a,b}if(Ad(b)||va(b))return b=Id(b,\na.mode,c,null),b.return=a,b;Cd(a,b)}return null}function p(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case da:return c.key===e?c.type===fa?n(a,b,c.props.children,d,e):k(a,b,c,d):null;case ea:return c.key===e?l(a,b,c,d):null}if(Ad(c)||va(c))return null!==e?null:n(a,b,c,d,null);Cd(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||\nnull,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case da:return a=a.get(null===d.key?c:d.key)||null,d.type===fa?n(b,a,d.props.children,e,d.key):k(b,a,d,e);case ea:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Ad(d)||va(d))return a=a.get(c)||null,n(b,a,d,e,null);Cd(b,d)}return null}function x(e,g,h,k){for(var l=null,v=null,u=g,C=g=0,n=null;null!==u&&C<h.length;C++){u.index>C?(n=u,u=null):n=u.sibling;var w=p(e,u,h[C],k);if(null===w){null===u&&(u=n);break}a&&u&&null===\nw.alternate&&b(e,u);g=f(w,g,C);null===v?l=w:v.sibling=w;v=w;u=n}if(C===h.length)return c(e,u),l;if(null===u){for(;C<h.length;C++)u=t(e,h[C],k),null!==u&&(g=f(u,g,C),null===v?l=u:v.sibling=u,v=u);return l}for(u=d(e,u);C<h.length;C++)n=y(u,e,C,h[C],k),null!==n&&(a&&null!==n.alternate&&u.delete(null===n.key?C:n.key),g=f(n,g,C),null===v?l=n:v.sibling=n,v=n);a&&u.forEach(function(a){return b(e,a)});return l}function Y(e,g,h,k){var l=va(h);if(\"function\"!==typeof l)throw Error(q(150));h=l.call(h);if(null==\nh)throw Error(q(151));for(var u=l=null,v=g,n=g=0,C=null,w=h.next();null!==v&&!w.done;n++,w=h.next()){v.index>n?(C=v,v=null):C=v.sibling;var x=p(e,v,w.value,k);if(null===x){null===v&&(v=C);break}a&&v&&null===x.alternate&&b(e,v);g=f(x,g,n);null===u?l=x:u.sibling=x;u=x;v=C}if(w.done)return c(e,v),l;if(null===v){for(;!w.done;n++,w=h.next())w=t(e,w.value,k),null!==w&&(g=f(w,g,n),null===u?l=w:u.sibling=w,u=w);return l}for(v=d(e,v);!w.done;n++,w=h.next())w=y(v,e,n,w.value,k),null!==w&&(a&&null!==w.alternate&&\nv.delete(null===w.key?n:w.key),g=f(w,g,n),null===u?l=w:u.sibling=w,u=w);a&&v.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===fa&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case da:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===fa){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Bd(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===fa?(d=Id(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Gd(f.type,f.key,f.props,null,a.mode,h),h.ref=Bd(a,d,f),h.return=a,a=h)}return g(a);case ea:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nHd(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Fd(f,a.mode,h),d.return=a,a=d),g(a);if(Ad(f))return x(a,d,f,h);if(va(f))return Y(a,d,f,h);l&&Cd(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(q(152,wa(a.type)||\"Component\"));}return c(a,d)}}var Jd=Dd(!0),Kd=Dd(!1),Ld={},L=Wb(Ld),Md=Wb(Ld),Nd=Wb(Ld);\nfunction Od(a){if(a===Ld)throw Error(q(174));return a}function Pd(a,b){A(Nd,b);A(Md,a);A(L,Ld);a=Ea(b);z(L);A(L,a)}function Qd(){z(L);z(Md);z(Nd)}function Rd(a){var b=Od(Nd.current),c=Od(L.current);b=Fa(c,a.type,b);c!==b&&(A(Md,a),A(L,b))}function Sd(a){Md.current===a&&(z(L),z(Md))}var M=Wb(0);\nfunction Td(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||Hb(c)||Ib(c)))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Ud=null,Vd=null,Wd=!1;\nfunction Xd(a,b){var c=Yd(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function Zd(a,b){switch(a.tag){case 5:return b=Fb(b,a.type,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;case 6:return b=Gb(b,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction $d(a){if(Wd){var b=Vd;if(b){var c=b;if(!Zd(a,b)){b=Jb(c);if(!b||!Zd(a,b)){a.flags=a.flags&-1025|2;Wd=!1;Ud=a;return}Xd(Ud,c)}Ud=a;Vd=Kb(b)}else a.flags=a.flags&-1025|2,Wd=!1,Ud=a}}function ae(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;Ud=a}\nfunction be(a){if(!Va||a!==Ud)return!1;if(!Wd)return ae(a),Wd=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Ma(b,a.memoizedProps))for(b=Vd;b;)Xd(a,b),b=Jb(b);ae(a);if(13===a.tag){if(!Va)throw Error(q(316));a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(q(317));Vd=Nb(a)}else Vd=Ud?Jb(a.stateNode):null;return!0}function ce(){Va&&(Vd=Ud=null,Wd=!1)}var de=[];\nfunction ee(){for(var a=0;a<de.length;a++){var b=de[a];Sa?b._workInProgressVersionPrimary=null:b._workInProgressVersionSecondary=null}de.length=0}var fe=ca.ReactCurrentDispatcher,ge=ca.ReactCurrentBatchConfig,he=0,N=null,O=null,P=null,ie=!1,je=!1;function Q(){throw Error(q(321));}function ke(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!I(a[c],b[c]))return!1;return!0}\nfunction le(a,b,c,d,e,f){he=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;fe.current=null===a||null===a.memoizedState?me:ne;a=c(d,e);if(je){f=0;do{je=!1;if(!(25>f))throw Error(q(301));f+=1;P=O=null;b.updateQueue=null;fe.current=oe;a=c(d,e)}while(je)}fe.current=pe;b=null!==O&&null!==O.next;he=0;P=O=N=null;ie=!1;if(b)throw Error(q(300));return a}function qe(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}\nfunction re(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(q(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}function se(a,b){return\"function\"===typeof b?b(a):b}\nfunction te(a){var b=re(),c=b.queue;if(null===c)throw Error(q(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((he&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;N.lanes|=l;pd|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;I(d,b.memoizedState)||(gd=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction ue(a){var b=re(),c=b.queue;if(null===c)throw Error(q(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);I(f,b.memoizedState)||(gd=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction ve(a,b,c){var d=b._getVersion;d=d(b._source);var e=Sa?b._workInProgressVersionPrimary:b._workInProgressVersionSecondary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(he&a)===a)Sa?b._workInProgressVersionPrimary=d:b._workInProgressVersionSecondary=d,de.push(b);if(a)return c(b._source);de.push(b);throw Error(q(350));}\nfunction we(a,b,c,d){var e=R;if(null===e)throw Error(q(349));var f=b._getVersion,g=f(b._source),h=fe.current,k=h.useState(function(){return ve(e,b,c)}),l=k[1],n=k[0];k=P;var t=a.memoizedState,p=t.refs,y=p.getSnapshot,x=t.source;t=t.subscribe;var Y=N;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!I(g,a)){a=c(b._source);I(n,a)||(l(a),a=td(Y),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0<h;){var k=31-mc(h),t=1<<k;d[k]|=a;h&=~t}}},[c,b,d]);h.useEffect(function(){return d(b._source,function(){var a=p.getSnapshot,c=p.setSnapshot;try{c(a(b._source));var d=td(Y);e.mutableReadLanes|=d&e.pendingLanes}catch(Oa){c(function(){throw Oa;})}})},[b,d]);I(y,c)&&I(x,b)&&I(t,d)||(a={pending:null,dispatch:null,lastRenderedReducer:se,lastRenderedState:n},a.dispatch=l=xe.bind(null,N,a),k.queue=a,k.baseQueue=null,n=ve(e,b,c),k.memoizedState=k.baseState=n);return n}\nfunction ye(a,b,c){var d=re();return we(d,a,b,c)}function ze(a){var b=qe();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:se,lastRenderedState:a};a=a.dispatch=xe.bind(null,N,a);return[b.memoizedState,a]}\nfunction Ae(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function Be(a){var b=qe();a={current:a};return b.memoizedState=a}function Ce(){return re().memoizedState}function De(a,b,c,d){var e=qe();N.flags|=a;e.memoizedState=Ae(1|b,c,void 0,void 0===d?null:d)}\nfunction Ee(a,b,c,d){var e=re();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&ke(d,g.deps)){Ae(b,c,f,d);return}}N.flags|=a;e.memoizedState=Ae(1|b,c,f,d)}function Fe(a,b){return De(516,4,a,b)}function Ge(a,b){return Ee(516,4,a,b)}function He(a,b){return Ee(4,2,a,b)}function Ie(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}\nfunction Je(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Ee(4,2,Ie.bind(null,b,a),c)}function Ke(){}function Le(a,b){var c=re();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&ke(b,d[1]))return d[0];c.memoizedState=[a,b];return a}function Me(a,b){var c=re();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&ke(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}\nfunction Ne(a,b){var c=Nc();Pc(98>c?98:c,function(){a(!0)});Pc(97<c?97:c,function(){var c=ge.transition;ge.transition=1;try{a(!1),b()}finally{ge.transition=c}})}\nfunction xe(a,b,c){var d=K(),e=td(a),f={lane:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.pending;null===g?f.next=f:(f.next=g.next,g.next=f);b.pending=f;g=a.alternate;if(a===N||null!==g&&g===N)je=ie=!0;else{if(0===a.lanes&&(null===g||0===g.lanes)&&(g=b.lastRenderedReducer,null!==g))try{var h=b.lastRenderedState,k=g(h,c);f.eagerReducer=g;f.eagerState=k;if(I(k,h))return}catch(l){}finally{}ud(a,e,d)}}\nvar pe={readContext:J,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useOpaqueIdentifier:Q,unstable_isNewReconciler:!1},me={readContext:J,useCallback:function(a,b){qe().memoizedState=[a,void 0===b?null:b];return a},useContext:J,useEffect:Fe,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return De(4,2,Ie.bind(null,b,a),c)},useLayoutEffect:function(a,\nb){return De(4,2,a,b)},useMemo:function(a,b){var c=qe();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=qe();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=xe.bind(null,N,a);return[d.memoizedState,a]},useRef:Be,useState:ze,useDebugValue:Ke,useDeferredValue:function(a){var b=ze(a),c=b[0],d=b[1];Fe(function(){var b=ge.transition;ge.transition=1;try{d(a)}finally{ge.transition=\nb}},[a]);return c},useTransition:function(){var a=ze(!1),b=a[0];a=Ne.bind(null,a[1]);Be(a);return[a,b]},useMutableSource:function(a,b,c){var d=qe();d.memoizedState={refs:{getSnapshot:b,setSnapshot:null},source:a,subscribe:c};return we(d,a,b,c)},useOpaqueIdentifier:function(){if(Wd){var a=!1,b=Xa(function(){a||(a=!0,c(Ya()));throw Error(q(355));}),c=ze(b)[1];0===(N.mode&2)&&(N.flags|=516,Ae(5,function(){c(Ya())},void 0,null));return b}b=Ya();ze(b);return b},unstable_isNewReconciler:!1},ne={readContext:J,\nuseCallback:Le,useContext:J,useEffect:Ge,useImperativeHandle:Je,useLayoutEffect:He,useMemo:Me,useReducer:te,useRef:Ce,useState:function(){return te(se)},useDebugValue:Ke,useDeferredValue:function(a){var b=te(se),c=b[0],d=b[1];Ge(function(){var b=ge.transition;ge.transition=1;try{d(a)}finally{ge.transition=b}},[a]);return c},useTransition:function(){var a=te(se)[0];return[Ce().current,a]},useMutableSource:ye,useOpaqueIdentifier:function(){return te(se)[0]},unstable_isNewReconciler:!1},oe={readContext:J,\nuseCallback:Le,useContext:J,useEffect:Ge,useImperativeHandle:Je,useLayoutEffect:He,useMemo:Me,useReducer:ue,useRef:Ce,useState:function(){return ue(se)},useDebugValue:Ke,useDeferredValue:function(a){var b=ue(se),c=b[0],d=b[1];Ge(function(){var b=ge.transition;ge.transition=1;try{d(a)}finally{ge.transition=b}},[a]);return c},useTransition:function(){var a=ue(se)[0];return[Ce().current,a]},useMutableSource:ye,useOpaqueIdentifier:function(){return ue(se)[0]},unstable_isNewReconciler:!1},Oe=ca.ReactCurrentOwner,\ngd=!1;function S(a,b,c,d){b.child=null===a?Kd(b,null,c,d):Jd(b,a.child,c,d)}function Pe(a,b,c,d,e){c=c.render;var f=b.ref;fd(b,e);d=le(a,b,c,d,f,e);if(null!==a&&!gd)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,Re(a,b,e);b.flags|=1;S(a,b,d,e);return b.child}\nfunction Se(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!Te(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,Ue(a,b,g,d,e,f);a=Gd(c.type,null,d,b,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(0===(e&f)&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:Vc,c(e,d)&&a.ref===b.ref))return Re(a,b,f);b.flags|=1;a=Ed(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction Ue(a,b,c,d,e,f){if(null!==a&&Vc(a.memoizedProps,d)&&a.ref===b.ref)if(gd=!1,0!==(f&e))0!==(a.flags&16384)&&(gd=!0);else return b.lanes=a.lanes,Re(a,b,f);return Ve(a,b,c,d,f)}\nfunction We(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode||\"unstable-defer-without-hiding\"===d.mode)if(0===(b.mode&4))b.memoizedState={baseLanes:0},Xe(b,c);else if(0!==(c&1073741824))b.memoizedState={baseLanes:0},Xe(b,null!==f?f.baseLanes:c);else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a},Xe(b,a),null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,Xe(b,d);S(a,b,e,c);return b.child}\nfunction Ye(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=128}function Ve(a,b,c,d,e){var f=E(c)?Yb:B.current;f=Zb(b,f);fd(b,e);c=le(a,b,c,d,f,e);if(null!==a&&!gd)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,Re(a,b,e);b.flags|=1;S(a,b,c,e);return b.child}\nfunction Ze(a,b,c,d,e){if(E(c)){var f=!0;cc(b)}else f=!1;fd(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),xd(b,c,d),zd(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=J(l):(l=E(c)?Yb:B.current,l=Zb(b,l));var n=c.getDerivedStateFromProps,t=\"function\"===typeof n||\"function\"===typeof g.getSnapshotBeforeUpdate;t||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==\ntypeof g.componentWillReceiveProps||(h!==d||k!==l)&&yd(b,g,d,l);hd=!1;var p=b.memoizedState;g.state=p;od(b,d,g,e);k=b.memoizedState;h!==d||p!==k||D.current||hd?(\"function\"===typeof n&&(sd(b,c,n,d),k=b.memoizedState),(h=hd||wd(b,c,h,d,p,k,l))?(t||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&\n(b.flags|=4)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),d=!1)}else{g=b.stateNode;jd(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Xc(b.type,h);g.props=l;t=b.pendingProps;p=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=J(k):(k=E(c)?Yb:B.current,k=Zb(b,k));var y=c.getDerivedStateFromProps;(n=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==t||p!==k)&&yd(b,g,d,k);hd=!1;p=b.memoizedState;g.state=p;od(b,d,g,e);var x=b.memoizedState;h!==t||p!==x||D.current||hd?(\"function\"===typeof y&&(sd(b,c,y,d),x=b.memoizedState),(l=hd||wd(b,c,l,d,p,x,k))?(n||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,x,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,x,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&p===a.memoizedState||\n(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),d=!1)}return $e(a,b,c,d,f,e)}function $e(a,b,c,d,e,f){Ye(a,b);var g=0!==(b.flags&64);if(!d&&!g)return e&&dc(b,c,!1),Re(a,b,f);d=b.stateNode;Oe.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Jd(b,a.child,null,f),b.child=Jd(b,null,h,f)):S(a,b,h,f);b.memoizedState=d.state;e&&dc(b,c,!0);return b.child}\nfunction af(a){var b=a.stateNode;b.pendingContext?ac(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ac(a,b.context,!1);Pd(a,b.containerInfo)}var bf={dehydrated:null,retryLane:0};\nfunction cf(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g;(g=0!==(b.flags&64))||(g=null!==a&&null===a.memoizedState?!1:0!==(e&2));g?(f=!0,b.flags&=-65):null!==a&&null===a.memoizedState||void 0===d.fallback||!0===d.unstable_avoidThisFallback||(e|=1);A(M,e&1);if(null===a){void 0!==d.fallback&&$d(b);a=d.children;e=d.fallback;if(f)return a=df(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=bf,a;if(\"number\"===typeof d.unstable_expectedLoadTime)return a=df(b,a,e,c),b.child.memoizedState={baseLanes:c},\nb.memoizedState=bf,b.lanes=33554432,a;c=ef({mode:\"visible\",children:a},b.mode,c,null);c.return=b;return b.child=c}if(null!==a.memoizedState){if(f)return d=ff(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=bf,d;c=gf(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=ff(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:\n{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=bf,d;c=gf(a,b,d.children,c);b.memoizedState=null;return c}function df(a,b,c,d){var e=a.mode,f=a.child;b={mode:\"hidden\",children:b};0===(e&2)&&null!==f?(f.childLanes=0,f.pendingProps=b):f=ef(b,e,0,null);c=Id(c,e,d,null);f.return=a;c.return=a;f.sibling=c;a.child=f;return c}\nfunction gf(a,b,c,d){var e=a.child;a=e.sibling;c=Ed(e,{mode:\"visible\",children:c});0===(b.mode&2)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(a.nextEffect=null,a.flags=8,b.firstEffect=b.lastEffect=a);return b.child=c}\nfunction ff(a,b,c,d,e){var f=b.mode,g=a.child;a=g.sibling;var h={mode:\"hidden\",children:c};0===(f&2)&&b.child!==g?(c=b.child,c.childLanes=0,c.pendingProps=h,g=c.lastEffect,null!==g?(b.firstEffect=c.firstEffect,b.lastEffect=g,g.nextEffect=null):b.firstEffect=b.lastEffect=null):c=Ed(g,h);null!==a?d=Ed(a,d):(d=Id(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function hf(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);ed(a.return,b)}\nfunction jf(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailMode=e,g.lastEffect=f)}\nfunction kf(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;S(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=64;else{if(null!==a&&0!==(a.flags&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&hf(a,c);else if(19===a.tag)hf(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}A(M,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Td(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);jf(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Td(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}jf(b,!0,c,null,f,b.lastEffect);break;case \"together\":jf(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction Re(a,b,c){null!==a&&(b.dependencies=a.dependencies);pd|=b.lanes;if(0!==(c&b.childLanes)){if(null!==a&&b.child!==a.child)throw Error(q(153));if(null!==b.child){a=b.child;c=Ed(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Ed(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}return null}function lf(a){a.flags|=4}var mf,nf,of,pf;\nif(Ta)mf=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)Ja(a,c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}},nf=function(){},of=function(a,b,c,d,e){a=a.memoizedProps;if(a!==d){var f=b.stateNode,g=Od(L.current);c=La(f,c,a,d,e,g);(b.updateQueue=c)&&lf(b)}},pf=function(a,b,c,d){c!==d&&lf(b)};else if(Ua){mf=function(a,\nb,c,d){for(var e=b.child;null!==e;){if(5===e.tag){var f=e.stateNode;c&&d&&(f=Db(f,e.type,e.memoizedProps,e));Ja(a,f)}else if(6===e.tag)f=e.stateNode,c&&d&&(f=Eb(f,e.memoizedProps,e)),Ja(a,f);else if(4!==e.tag){if(13===e.tag&&0!==(e.flags&4)&&(f=null!==e.memoizedState)){var g=e.child;if(null!==g&&(null!==g.child&&(g.child.return=g,mf(a,g,!0,f)),f=g.sibling,null!==f)){f.return=e;e=f;continue}}if(null!==e.child){e.child.return=e;e=e.child;continue}}if(e===b)break;for(;null===e.sibling;){if(null===e.return||\ne.return===b)return;e=e.return}e.sibling.return=e.return;e=e.sibling}};var qf=function(a,b,c,d){for(var e=b.child;null!==e;){if(5===e.tag){var f=e.stateNode;c&&d&&(f=Db(f,e.type,e.memoizedProps,e));Ab(a,f)}else if(6===e.tag)f=e.stateNode,c&&d&&(f=Eb(f,e.memoizedProps,e)),Ab(a,f);else if(4!==e.tag){if(13===e.tag&&0!==(e.flags&4)&&(f=null!==e.memoizedState)){var g=e.child;if(null!==g&&(null!==g.child&&(g.child.return=g,qf(a,g,!0,f)),f=g.sibling,null!==f)){f.return=e;e=f;continue}}if(null!==e.child){e.child.return=\ne;e=e.child;continue}}if(e===b)break;for(;null===e.sibling;){if(null===e.return||e.return===b)return;e=e.return}e.sibling.return=e.return;e=e.sibling}};nf=function(a){var b=a.stateNode;if(null!==a.firstEffect){var c=b.containerInfo,d=zb(c);qf(d,a,!1,!1);b.pendingChildren=d;lf(a);Bb(c,d)}};of=function(a,b,c,d,e){var f=a.stateNode,g=a.memoizedProps;if((a=null===b.firstEffect)&&g===d)b.stateNode=f;else{var h=b.stateNode,k=Od(L.current),l=null;g!==d&&(l=La(h,c,g,d,e,k));a&&null===l?b.stateNode=f:(f=yb(f,\nl,c,g,d,b,a,h),Ka(f,c,d,e,k)&&lf(b),b.stateNode=f,a?lf(b):mf(f,b,!1,!1))}};pf=function(a,b,c,d){c!==d?(a=Od(Nd.current),c=Od(L.current),b.stateNode=Na(d,a,c,b),lf(b)):b.stateNode=a.stateNode}}else nf=function(){},of=function(){},pf=function(){};\nfunction rf(a,b){if(!Wd)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction sf(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return E(b.type)&&$b(),null;case 3:Qd();z(D);z(B);ee();d=b.stateNode;d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)be(b)?lf(b):d.hydrate||(b.flags|=256);nf(b);return null;case 5:Sd(b);var e=Od(Nd.current);c=b.type;if(null!==a&&null!=b.stateNode)of(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=128);else{if(!d){if(null===\nb.stateNode)throw Error(q(166));return null}a=Od(L.current);if(be(b)){if(!Va)throw Error(q(175));a=Lb(b.stateNode,b.type,b.memoizedProps,e,a,b);b.updateQueue=a;null!==a&&lf(b)}else{var f=Ia(c,d,e,a,b);mf(f,b,!1,!1);b.stateNode=f;Ka(f,c,d,e,a)&&lf(b)}null!==b.ref&&(b.flags|=128)}return null;case 6:if(a&&null!=b.stateNode)pf(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(q(166));a=Od(Nd.current);e=Od(L.current);if(be(b)){if(!Va)throw Error(q(176));Mb(b.stateNode,\nb.memoizedProps,b)&&lf(b)}else b.stateNode=Na(d,a,e,b)}return null;case 13:z(M);d=b.memoizedState;if(0!==(b.flags&64))return b.lanes=c,b;d=null!==d;e=!1;null===a?void 0!==b.memoizedProps.fallback&&be(b):e=null!==a.memoizedState;if(d&&!e&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(M.current&1))0===T&&(T=3);else{if(0===T||3===T)T=4;null===R||0===(pd&134217727)&&0===(tf&134217727)||uf(R,U)}Ua&&d&&(b.flags|=4);Ta&&(d||e)&&(b.flags|=4);return null;case 4:return Qd(),\nnf(b),null===a&&ab(b.stateNode.containerInfo),null;case 10:return dd(b),null;case 17:return E(b.type)&&$b(),null;case 19:z(M);d=b.memoizedState;if(null===d)return null;e=0!==(b.flags&64);f=d.rendering;if(null===f)if(e)rf(d,!1);else{if(0!==T||null!==a&&0!==(a.flags&64))for(a=b.child;null!==a;){f=Td(a);if(null!==f){b.flags|=64;rf(d,!1);a=f.updateQueue;null!==a&&(b.updateQueue=a,b.flags|=4);null===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;a=c;for(d=b.child;null!==d;)e=d,c=a,e.flags&=\n2,e.nextEffect=null,e.firstEffect=null,e.lastEffect=null,f=e.alternate,null===f?(e.childLanes=0,e.lanes=c,e.child=null,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=f.childLanes,e.lanes=f.lanes,e.child=f.child,e.memoizedProps=f.memoizedProps,e.memoizedState=f.memoizedState,e.updateQueue=f.updateQueue,e.type=f.type,c=f.dependencies,e.dependencies=null===c?null:{lanes:c.lanes,firstContext:c.firstContext}),d=d.sibling;A(M,M.current&1|\n2);return b.child}a=a.sibling}null!==d.tail&&G()>vf&&(b.flags|=64,e=!0,rf(d,!1),b.lanes=33554432)}else{if(!e)if(a=Td(f),null!==a){if(b.flags|=64,e=!0,a=a.updateQueue,null!==a&&(b.updateQueue=a,b.flags|=4),rf(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!f.alternate&&!Wd)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*G()-d.renderingStartTime>vf&&1073741824!==c&&(b.flags|=64,e=!0,rf(d,!1),b.lanes=33554432);d.isBackwards?(f.sibling=b.child,b.child=f):(a=d.last,null!==a?a.sibling=\nf:b.child=f,d.last=f)}return null!==d.tail?(a=d.tail,d.rendering=a,d.tail=a.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=G(),a.sibling=null,b=M.current,A(M,e?b&1|2:b&1),a):null;case 23:case 24:return wf(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(q(156,b.tag));}\nfunction xf(a){switch(a.tag){case 1:E(a.type)&&$b();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:Qd();z(D);z(B);ee();b=a.flags;if(0!==(b&64))throw Error(q(285));a.flags=b&-4097|64;return a;case 5:return Sd(a),null;case 13:return z(M),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return z(M),null;case 4:return Qd(),null;case 10:return dd(a),null;case 23:case 24:return wf(),null;default:return null}}\nfunction yf(a,b){try{var c=\"\",d=b;do c+=Wc(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function zf(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Af=\"function\"===typeof WeakMap?WeakMap:Map;function Bf(a,b,c){c=kd(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Cf||(Cf=!0,Df=d);zf(a,b)};return c}\nfunction Ef(a,b,c){c=kd(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){zf(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ff?Ff=new Set([this]):Ff.add(this),zf(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Gf=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Hf(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){If(a,c)}else b.current=null}\nfunction Jf(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:Xc(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:Ta&&b.flags&256&&xb(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(q(163));}\nfunction Kf(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.destroy;c.destroy=void 0;void 0!==d&&d()}c=c.next}while(c!==b)}}\nfunction Lf(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Mf(c,a),Nf(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:Xc(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&qd(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=Da(c.child.stateNode);break;case 1:a=c.child.stateNode}qd(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mb(a,c.type,c.memoizedProps,c);return;case 6:return;case 4:return;case 12:return;case 13:Va&&null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&\nPb(c))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(q(163));}\nfunction Of(a,b){if(Ta)for(var c=a;;){if(5===c.tag){var d=c.stateNode;b?tb(d):vb(c.stateNode,c.memoizedProps)}else if(6===c.tag)d=c.stateNode,b?ub(d):wb(d,c.memoizedProps);else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===a)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction Pf(a,b){if(fc&&\"function\"===typeof fc.onCommitFiberUnmount)try{fc.onCommitFiberUnmount(ec,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Mf(b,c);else{d=b;try{e()}catch(f){If(d,f)}}c=c.next}while(c!==a)}break;case 1:Hf(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){If(b,\nf)}break;case 5:Hf(b);break;case 4:Ta?Qf(a,b):Ua&&Ua&&(b=b.stateNode.containerInfo,a=zb(b),Cb(b,a))}}function Rf(a,b){for(var c=b;;)if(Pf(a,c),null===c.child||Ta&&4===c.tag){if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}else c.child.return=c,c=c.child}\nfunction Sf(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function Tf(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uf(a){if(Ta){a:{for(var b=a.return;null!==b;){if(Tf(b))break a;b=b.return}throw Error(q(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(q(161));}c.flags&16&&(sb(b),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Tf(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?Vf(a,c,b):Wf(a,c,b)}}function Vf(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?pb(c,a,b):kb(c,a);else if(4!==d&&(a=a.child,null!==a))for(Vf(a,b,c),a=a.sibling;null!==a;)Vf(a,b,c),a=a.sibling}\nfunction Wf(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?ob(c,a,b):jb(c,a);else if(4!==d&&(a=a.child,null!==a))for(Wf(a,b,c),a=a.sibling;null!==a;)Wf(a,b,c),a=a.sibling}\nfunction Qf(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(q(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag)Rf(a,c),f?rb(e,c.stateNode):qb(e,c.stateNode);else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(Pf(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;\nfor(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction Xf(a,b){if(Ta){switch(b.tag){case 0:case 11:case 14:case 15:case 22:Kf(3,b);return;case 1:return;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps;a=null!==a?a.memoizedProps:d;var e=b.type,f=b.updateQueue;b.updateQueue=null;null!==f&&nb(c,f,e,a,d,b)}return;case 6:if(null===b.stateNode)throw Error(q(162));c=b.memoizedProps;lb(b.stateNode,null!==a?a.memoizedProps:c,c);return;case 3:Va&&(b=b.stateNode,b.hydrate&&(b.hydrate=!1,Ob(b.containerInfo)));return;case 12:return;case 13:Yf(b);\nZf(b);return;case 19:Zf(b);return;case 17:return;case 23:case 24:Of(b,null!==b.memoizedState);return}throw Error(q(163));}switch(b.tag){case 0:case 11:case 14:case 15:case 22:Kf(3,b);return;case 12:return;case 13:Yf(b);Zf(b);return;case 19:Zf(b);return;case 3:Va&&(c=b.stateNode,c.hydrate&&(c.hydrate=!1,Ob(c.containerInfo)));break;case 23:case 24:return}a:if(Ua){switch(b.tag){case 1:case 5:case 6:case 20:break a;case 3:case 4:b=b.stateNode;Cb(b.containerInfo,b.pendingChildren);break a}throw Error(q(163));\n}}function Yf(a){null!==a.memoizedState&&($f=G(),Ta&&Of(a.child,!0))}function Zf(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Gf);b.forEach(function(b){var d=ag.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}function bg(a,b){return null!==a&&(a=a.memoizedState,null===a||null!==a.dehydrated)?(b=b.memoizedState,null!==b&&null===b.dehydrated):!1}var cg=0,dg=1,eg=2,fg=3,gg=4;\nif(\"function\"===typeof Symbol&&Symbol.for){var hg=Symbol.for;cg=hg(\"selector.component\");dg=hg(\"selector.has_pseudo_class\");eg=hg(\"selector.role\");fg=hg(\"selector.test_id\");gg=hg(\"selector.text\")}function ig(a){var b=Wa(a);if(null!=b){if(\"string\"!==typeof b.memoizedProps[\"data-testname\"])throw Error(q(364));return b}a=cb(a);if(null===a)throw Error(q(362));return a.stateNode.current}\nfunction jg(a,b){switch(b.$$typeof){case cg:if(a.type===b.value)return!0;break;case dg:a:{b=b.value;a=[a,0];for(var c=0;c<a.length;){var d=a[c++],e=a[c++],f=b[e];if(5!==d.tag||!fb(d)){for(;null!=f&&jg(d,f);)e++,f=b[e];if(e===b.length){b=!0;break a}else for(d=d.child;null!==d;)a.push(d,e),d=d.sibling}}b=!1}return b;case eg:if(5===a.tag&&gb(a.stateNode,b.value))return!0;break;case gg:if(5===a.tag||6===a.tag)if(a=eb(a),null!==a&&0<=a.indexOf(b.value))return!0;break;case fg:if(5===a.tag&&(a=a.memoizedProps[\"data-testname\"],\n\"string\"===typeof a&&a.toLowerCase()===b.value.toLowerCase()))return!0;break;default:throw Error(q(365,b));}return!1}function kg(a){switch(a.$$typeof){case cg:return\"<\"+(wa(a.value)||\"Unknown\")+\">\";case dg:return\":has(\"+(kg(a)||\"\")+\")\";case eg:return'[role=\"'+a.value+'\"]';case gg:return'\"'+a.value+'\"';case fg:return'[data-testname=\"'+a.value+'\"]';default:throw Error(q(365,a));}}\nfunction lg(a,b){var c=[];a=[a,0];for(var d=0;d<a.length;){var e=a[d++],f=a[d++],g=b[f];if(5!==e.tag||!fb(e)){for(;null!=g&&jg(e,g);)f++,g=b[f];if(f===b.length)c.push(e);else for(e=e.child;null!==e;)a.push(e,f),e=e.sibling}}return c}function mg(a,b){if(!bb)throw Error(q(363));a=ig(a);a=lg(a,b);b=[];a=Array.from(a);for(var c=0;c<a.length;){var d=a[c++];if(5===d.tag)fb(d)||b.push(d.stateNode);else for(d=d.child;null!==d;)a.push(d),d=d.sibling}return b}var ng=null;\nfunction og(a){if(null===ng)try{var b=(\"require\"+Math.random()).slice(0,7);ng=(module&&module[b]).call(module,\"timers\").setImmediate}catch(c){ng=function(a){var b=new MessageChannel;b.port1.onmessage=a;b.port2.postMessage(void 0)}}return ng(a)}var pg=Math.ceil,qg=ca.ReactCurrentDispatcher,rg=ca.ReactCurrentOwner,sg=ca.IsSomeRendererActing,V=0,R=null,W=null,U=0,tg=0,ug=Wb(0),T=0,vg=null,wg=0,pd=0,tf=0,xg=0,yg=null,$f=0,vf=Infinity;function zg(){vf=G()+500}\nvar X=null,Cf=!1,Df=null,Ff=null,Ag=!1,Bg=null,Cg=90,Dg=[],Eg=[],Fg=null,Gg=0,Hg=null,Ig=-1,Jg=0,Kg=0,Lg=null,Mg=!1;function K(){return 0!==(V&48)?G():-1!==Ig?Ig:Ig=G()}function td(a){a=a.mode;if(0===(a&2))return 1;if(0===(a&4))return 99===Nc()?1:2;0===Jg&&(Jg=wg);if(0!==Sc.transition){0!==Kg&&(Kg=null!==yg?yg.pendingLanes:0);a=Jg;var b=4186112&~Kg;b&=-b;0===b&&(a=4186112&~a,b=a&-a,0===b&&(b=8192));return b}a=Nc();0!==(V&4)&&98===a?a=oc(12,Jg):(a=jc(a),a=oc(a,Jg));return a}\nfunction ud(a,b,c){if(50<Gg)throw Gg=0,Hg=null,Error(q(185));a=Ng(a,b);if(null===a)return null;rc(a,b,c);a===R&&(tf|=b,4===T&&uf(a,U));var d=Nc();1===b?0!==(V&8)&&0===(V&48)?Og(a):(Z(a,c),0===V&&(zg(),H())):(0===(V&4)||98!==d&&99!==d||(null===Fg?Fg=new Set([a]):Fg.add(a)),Z(a,c));yg=a}function Ng(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}\nfunction Z(a,b){for(var c=a.callbackNode,d=a.suspendedLanes,e=a.pingedLanes,f=a.expirationTimes,g=a.pendingLanes;0<g;){var h=31-mc(g),k=1<<h,l=f[h];if(-1===l){if(0===(k&d)||0!==(k&e)){l=b;ic(k);var n=F;f[h]=10<=n?l+250:6<=n?l+5E3:-1}}else l<=b&&(a.expiredLanes|=k);g&=~k}d=lc(a,a===R?U:0);b=F;if(0===d)null!==c&&(c!==Hc&&xc(c),a.callbackNode=null,a.callbackPriority=0);else{if(null!==c){if(a.callbackPriority===b)return;c!==Hc&&xc(c)}15===b?(c=Og.bind(null,a),null===Jc?(Jc=[c],Kc=wc(Cc,Rc)):Jc.push(c),\nc=Hc):14===b?c=Qc(99,Og.bind(null,a)):(c=kc(b),c=Qc(c,Pg.bind(null,a)));a.callbackPriority=b;a.callbackNode=c}}\nfunction Pg(a){Ig=-1;Kg=Jg=0;if(0!==(V&48))throw Error(q(327));var b=a.callbackNode;if(Qg()&&a.callbackNode!==b)return null;var c=lc(a,a===R?U:0);if(0===c)return null;var d=c;var e=V;V|=16;var f=Rg();if(R!==a||U!==d)zg(),Sg(a,d);do try{Tg();break}catch(h){Ug(a,h)}while(1);bd();qg.current=f;V=e;null!==W?d=0:(R=null,U=0,d=T);if(0!==(wg&tf))Sg(a,0);else if(0!==d){2===d&&(V|=64,a.hydrate&&(a.hydrate=!1,xb(a.containerInfo)),c=nc(a),0!==c&&(d=Vg(a,c)));if(1===d)throw b=vg,Sg(a,0),uf(a,c),Z(a,G()),b;a.finishedWork=\na.current.alternate;a.finishedLanes=c;switch(d){case 0:case 1:throw Error(q(345));case 2:Zg(a);break;case 3:uf(a,c);if((c&62914560)===c&&(d=$f+500-G(),10<d)){if(0!==lc(a,0))break;e=a.suspendedLanes;if((e&c)!==c){K();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Pa(Zg.bind(null,a),d);break}Zg(a);break;case 4:uf(a,c);if((c&4186112)===c)break;d=a.eventTimes;for(e=-1;0<c;){var g=31-mc(c);f=1<<g;g=d[g];g>e&&(e=g);c&=~f}c=e;c=G()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*pg(c/1960))-c;if(10<c){a.timeoutHandle=Pa(Zg.bind(null,a),c);break}Zg(a);break;case 5:Zg(a);break;default:throw Error(q(329));}}Z(a,G());return a.callbackNode===b?Pg.bind(null,a):null}function uf(a,b){b&=~xg;b&=~tf;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-mc(b),d=1<<c;a[c]=-1;b&=~d}}\nfunction Og(a){if(0!==(V&48))throw Error(q(327));Qg();if(a===R&&0!==(a.expiredLanes&U)){var b=U;var c=Vg(a,b);0!==(wg&tf)&&(b=lc(a,b),c=Vg(a,b))}else b=lc(a,0),c=Vg(a,b);0!==a.tag&&2===c&&(V|=64,a.hydrate&&(a.hydrate=!1,xb(a.containerInfo)),b=nc(a),0!==b&&(c=Vg(a,b)));if(1===c)throw c=vg,Sg(a,0),uf(a,b),Z(a,G()),c;a.finishedWork=a.current.alternate;a.finishedLanes=b;Zg(a);Z(a,G());return null}\nfunction $g(){if(null!==Fg){var a=Fg;Fg=null;a.forEach(function(a){a.expiredLanes|=24&a.pendingLanes;Z(a,G())})}H()}function ah(a,b){var c=V;V|=1;try{return a(b)}finally{V=c,0===V&&(zg(),H())}}function bh(a,b){var c=V;if(0!==(c&48))return a(b);V|=1;try{if(a)return Pc(99,a.bind(null,b))}finally{V=c,H()}}function Xe(a,b){A(ug,tg);tg|=b;wg|=b}function wf(){tg=ug.current;z(ug)}\nfunction Sg(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;c!==Ra&&(a.timeoutHandle=Ra,Qa(c));if(null!==W)for(c=W.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$b();break;case 3:Qd();z(D);z(B);ee();break;case 5:Sd(d);break;case 4:Qd();break;case 13:z(M);break;case 19:z(M);break;case 10:dd(d);break;case 23:case 24:wf()}c=c.return}R=a;W=Ed(a.current,null);U=tg=wg=b;T=0;vg=null;xg=tf=pd=0}\nfunction Ug(a,b){do{var c=W;try{bd();fe.current=pe;if(ie){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}ie=!1}he=0;P=O=N=null;je=!1;rg.current=null;if(null===c||null===c.return){T=1;vg=b;W=null;break}a:{var f=a,g=c.return,h=c,k=b;b=U;h.flags|=2048;h.firstEffect=h.lastEffect=null;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k;if(0===(h.mode&2)){var n=h.alternate;n?(h.updateQueue=n.updateQueue,h.memoizedState=n.memoizedState,h.lanes=n.lanes):\n(h.updateQueue=null,h.memoizedState=null)}var t=0!==(M.current&1),p=g;do{var y;if(y=13===p.tag){var x=p.memoizedState;if(null!==x)y=null!==x.dehydrated?!0:!1;else{var Y=p.memoizedProps;y=void 0===Y.fallback?!1:!0!==Y.unstable_avoidThisFallback?!0:t?!1:!0}}if(y){var u=p.updateQueue;if(null===u){var v=new Set;v.add(l);p.updateQueue=v}else u.add(l);if(0===(p.mode&2)){p.flags|=64;h.flags|=16384;h.flags&=-2981;if(1===h.tag)if(null===h.alternate)h.tag=17;else{var C=kd(-1,1);C.tag=2;md(h,C)}h.lanes|=1;break a}k=\nvoid 0;h=b;var Oa=f.pingCache;null===Oa?(Oa=f.pingCache=new Af,k=new Set,Oa.set(l,k)):(k=Oa.get(l),void 0===k&&(k=new Set,Oa.set(l,k)));if(!k.has(h)){k.add(h);var Qe=ch.bind(null,f,l,h);l.then(Qe,Qe)}p.flags|=4096;p.lanes=b;break a}p=p.return}while(null!==p);k=Error((wa(h.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==T&&(T=2);k=\nyf(k,h);p=g;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var Wg=Bf(p,f,b);nd(p,Wg);break a;case 1:f=k;var Xg=p.type,ld=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof Xg.getDerivedStateFromError||null!==ld&&\"function\"===typeof ld.componentDidCatch&&(null===Ff||!Ff.has(ld)))){p.flags|=4096;b&=-b;p.lanes|=b;var Yg=Ef(p,f,b);nd(p,Yg);break a}}p=p.return}while(null!==p)}dh(c)}catch(w){b=w;W===c&&null!==c&&(W=c=c.return);continue}break}while(1)}\nfunction Rg(){var a=qg.current;qg.current=pe;return null===a?pe:a}function Vg(a,b){var c=V;V|=16;var d=Rg();R===a&&U===b||Sg(a,b);do try{eh();break}catch(e){Ug(a,e)}while(1);bd();V=c;qg.current=d;if(null!==W)throw Error(q(261));R=null;U=0;return T}function eh(){for(;null!==W;)fh(W)}function Tg(){for(;null!==W&&!yc();)fh(W)}function fh(a){var b=gh(a.alternate,a,tg);a.memoizedProps=a.pendingProps;null===b?dh(a):W=b;rg.current=null}\nfunction dh(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=sf(c,b,tg);if(null!==c){W=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(tg&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1<b.flags&&(null!==\na.lastEffect?a.lastEffect.nextEffect=b:a.firstEffect=b,a.lastEffect=b))}else{c=xf(b);if(null!==c){c.flags&=2047;W=c;return}null!==a&&(a.firstEffect=a.lastEffect=null,a.flags|=2048)}b=b.sibling;if(null!==b){W=b;return}W=b=a}while(null!==b);0===T&&(T=5)}function Zg(a){var b=Nc();Pc(99,hh.bind(null,a,b));return null}\nfunction hh(a,b){do Qg();while(null!==Bg);if(0!==(V&48))throw Error(q(327));var c=a.finishedWork;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(q(177));a.callbackNode=null;var d=c.lanes|c.childLanes,e=d,f=a.pendingLanes&~e;a.pendingLanes=e;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=e;a.mutableReadLanes&=e;a.entangledLanes&=e;e=a.entanglements;for(var g=a.eventTimes,h=a.expirationTimes;0<f;){var k=31-mc(f),l=1<<k;e[k]=0;g[k]=-1;h[k]=-1;f&=~l}null!==\nFg&&0===(d&24)&&Fg.has(a)&&Fg.delete(a);a===R&&(W=R=null,U=0);1<c.flags?null!==c.lastEffect?(c.lastEffect.nextEffect=c,d=c.firstEffect):d=c:d=c.firstEffect;if(null!==d){e=V;V|=32;rg.current=null;Lg=Ga(a.containerInfo);Mg=!1;X=d;do try{ih()}catch(v){if(null===X)throw Error(q(330));If(X,v);X=X.nextEffect}while(null!==X);Lg=null;X=d;do try{for(g=a;null!==X;){var n=X.flags;n&16&&Ta&&sb(X.stateNode);if(n&128){var t=X.alternate;if(null!==t){var p=t.ref;null!==p&&(\"function\"===typeof p?p(null):p.current=\nnull)}}switch(n&1038){case 2:Uf(X);X.flags&=-3;break;case 6:Uf(X);X.flags&=-3;Xf(X.alternate,X);break;case 1024:X.flags&=-1025;break;case 1028:X.flags&=-1025;Xf(X.alternate,X);break;case 4:Xf(X.alternate,X);break;case 8:h=g;f=X;Ta?Qf(h,f):Rf(h,f);var y=f.alternate;Sf(f);null!==y&&Sf(y)}X=X.nextEffect}}catch(v){if(null===X)throw Error(q(330));If(X,v);X=X.nextEffect}while(null!==X);Mg&&$a();Ha(a.containerInfo);a.current=c;X=d;do try{for(n=a;null!==X;){var x=X.flags;x&36&&Lf(n,X.alternate,X);if(x&128){t=\nvoid 0;var Y=X.ref;if(null!==Y){var u=X.stateNode;switch(X.tag){case 5:t=Da(u);break;default:t=u}\"function\"===typeof Y?Y(t):Y.current=t}}X=X.nextEffect}}catch(v){if(null===X)throw Error(q(330));If(X,v);X=X.nextEffect}while(null!==X);X=null;Ic();V=e}else a.current=c;if(Ag)Ag=!1,Bg=a,Cg=b;else for(X=d;null!==X;)b=X.nextEffect,X.nextEffect=null,X.flags&8&&(x=X,x.sibling=null,x.stateNode=null),X=b;d=a.pendingLanes;0===d&&(Ff=null);1===d?a===Hg?Gg++:(Gg=0,Hg=a):Gg=0;c=c.stateNode;if(fc&&\"function\"===typeof fc.onCommitFiberRoot)try{fc.onCommitFiberRoot(ec,\nc,void 0,64===(c.current.flags&64))}catch(v){}Z(a,G());if(Cf)throw Cf=!1,a=Df,Df=null,a;if(0!==(V&8))return null;H();return null}function ih(){for(;null!==X;){var a=X.alternate;Mg||null===Lg||(0!==(X.flags&8)?Ca(X,Lg)&&(Mg=!0,Za()):13===X.tag&&bg(a,X)&&Ca(X,Lg)&&(Mg=!0,Za()));var b=X.flags;0!==(b&256)&&Jf(a,X);0===(b&512)||Ag||(Ag=!0,Qc(97,function(){Qg();return null}));X=X.nextEffect}}function Qg(){if(90!==Cg){var a=97<Cg?97:Cg;Cg=90;return Pc(a,jh)}return!1}\nfunction Nf(a,b){Dg.push(b,a);Ag||(Ag=!0,Qc(97,function(){Qg();return null}))}function Mf(a,b){Eg.push(b,a);Ag||(Ag=!0,Qc(97,function(){Qg();return null}))}\nfunction jh(){if(null===Bg)return!1;var a=Bg;Bg=null;if(0!==(V&48))throw Error(q(331));var b=V;V|=32;var c=Eg;Eg=[];for(var d=0;d<c.length;d+=2){var e=c[d],f=c[d+1],g=e.destroy;e.destroy=void 0;if(\"function\"===typeof g)try{g()}catch(k){if(null===f)throw Error(q(330));If(f,k)}}c=Dg;Dg=[];for(d=0;d<c.length;d+=2){e=c[d];f=c[d+1];try{var h=e.create;e.destroy=h()}catch(k){if(null===f)throw Error(q(330));If(f,k)}}for(h=a.current.firstEffect;null!==h;)a=h.nextEffect,h.nextEffect=null,h.flags&8&&(h.sibling=\nnull,h.stateNode=null),h=a;V=b;H();return!0}function kh(a,b,c){b=yf(c,b);b=Bf(a,b,1);md(a,b);b=K();a=Ng(a,1);null!==a&&(rc(a,1,b),Z(a,b))}\nfunction If(a,b){if(3===a.tag)kh(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){kh(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ff||!Ff.has(d))){a=yf(b,a);var e=Ef(c,a,1);md(c,e);e=K();c=Ng(c,1);if(null!==c)rc(c,1,e),Z(c,e);else if(\"function\"===typeof d.componentDidCatch&&(null===Ff||!Ff.has(d)))try{d.componentDidCatch(b,a)}catch(f){}break}}c=c.return}}\nfunction ch(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=K();a.pingedLanes|=a.suspendedLanes&c;R===a&&(U&c)===c&&(4===T||3===T&&(U&62914560)===U&&500>G()-$f?Sg(a,0):xg|=c);Z(a,b)}function ag(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===Nc()?1:2:(0===Jg&&(Jg=wg),b=pc(62914560&~Jg),0===b&&(b=4194304)));c=K();a=Ng(a,b);null!==a&&(rc(a,b,c),Z(a,c))}var gh;\ngh=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||D.current)gd=!0;else if(0!==(c&d))gd=0!==(a.flags&16384)?!0:!1;else{gd=!1;switch(b.tag){case 3:af(b);ce();break;case 5:Rd(b);break;case 1:E(b.type)&&cc(b);break;case 4:Pd(b,b.stateNode.containerInfo);break;case 10:cd(b,b.memoizedProps.value);break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return cf(a,b,c);A(M,M.current&1);b=Re(a,b,c);return null!==b?b.sibling:null}A(M,M.current&1);break;case 19:d=\n0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return kf(a,b,c);b.flags|=64}var e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);A(M,M.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,We(a,b,c)}return Re(a,b,c)}else gd=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Zb(b,B.current);fd(b,c);e=le(null,b,d,a,e,c);b.flags|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&\nvoid 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(E(d)){var f=!0;cc(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;id(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&sd(b,d,g,a);e.updater=vd;b.stateNode=e;e._reactInternals=b;zd(b,d,a,c);b=$e(null,b,d,!0,f,c)}else b.tag=0,S(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;\nf=b.tag=lh(e);a=Xc(e,a);switch(f){case 0:b=Ve(null,b,e,a,c);break a;case 1:b=Ze(null,b,e,a,c);break a;case 11:b=Pe(null,b,e,a,c);break a;case 14:b=Se(null,b,e,Xc(e.type,a),d,c);break a}throw Error(q(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Xc(d,e),Ve(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Xc(d,e),Ze(a,b,d,e,c);case 3:af(b);d=b.updateQueue;if(null===a||null===d)throw Error(q(282));d=b.pendingProps;e=b.memoizedState;e=null!==\ne?e.element:null;jd(a,b);od(b,d,null,c);d=b.memoizedState.element;if(d===e)ce(),b=Re(a,b,c);else{e=b.stateNode;if(f=e.hydrate)Va?(Vd=Kb(b.stateNode.containerInfo),Ud=b,f=Wd=!0):f=!1;if(f){if(Va&&(a=e.mutableSourceEagerHydrationData,null!=a))for(e=0;e<a.length;e+=2)f=a[e],g=a[e+1],Sa?f._workInProgressVersionPrimary=g:f._workInProgressVersionSecondary=g,de.push(f);c=Kd(b,null,d,c);for(b.child=c;c;)c.flags=c.flags&-3|1024,c=c.sibling}else S(a,b,d,c),ce();b=b.child}return b;case 5:return Rd(b),null===\na&&$d(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ma(d,e)?g=null:null!==f&&Ma(d,f)&&(b.flags|=16),Ye(a,b),S(a,b,g,c),b.child;case 6:return null===a&&$d(b),null;case 13:return cf(a,b,c);case 4:return Pd(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Jd(b,null,d,c):S(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Xc(d,e),Pe(a,b,d,e,c);case 7:return S(a,b,b.pendingProps,c),b.child;case 8:return S(a,b,b.pendingProps.children,\nc),b.child;case 12:return S(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;cd(b,f);if(null!==g){var h=g.value;f=I(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!D.current){b=Re(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==\n(l.observedBits&f)){1===h.tag&&(l=kd(-1,c&-c),l.tag=2,md(h,l));h.lanes|=c;l=h.alternate;null!==l&&(l.lanes|=c);ed(h.return,c);k.lanes|=c;break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=g}}S(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,fd(b,c),e=J(e,f.unstable_observedBits),d=d(e),b.flags|=1,S(a,b,\nd,c),b.child;case 14:return e=b.type,f=Xc(e,b.pendingProps),f=Xc(e.type,f),Se(a,b,e,f,d,c);case 15:return Ue(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Xc(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,E(d)?(a=!0,cc(b)):a=!1,fd(b,c),xd(b,d,e),zd(b,d,e,c),$e(null,b,d,!0,a,c);case 19:return kf(a,b,c);case 23:return We(a,b,c);case 24:return We(a,b,c)}throw Error(q(156,b.tag));};\nvar mh={current:!1},nh=m.unstable_flushAllWithoutAsserting,oh=\"function\"===typeof nh;function ph(){if(void 0!==nh)return nh();for(var a=!1;Qg();)a=!0;return a}function qh(a){try{ph(),og(function(){ph()?qh(a):a()})}catch(b){a(b)}}var rh=0,sh=!1;\nfunction th(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.flags=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childLanes=this.lanes=0;this.alternate=null}function Yd(a,b,c,d){return new th(a,b,c,d)}function Te(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction lh(a){if(\"function\"===typeof a)return Te(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===la)return 11;if(a===oa)return 14}return 2}\nfunction Ed(a,b){var c=a.alternate;null===c?(c=Yd(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Gd(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)Te(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case fa:return Id(c.children,e,f,b);case ra:g=8;e|=16;break;case ha:g=8;e|=1;break;case ia:return a=Yd(12,c,b,e|8),a.elementType=ia,a.type=ia,a.lanes=f,a;case ma:return a=Yd(13,c,b,e),a.type=ma,a.elementType=ma,a.lanes=f,a;case na:return a=Yd(19,c,b,e),a.elementType=na,a.lanes=f,a;case sa:return ef(c,e,f,b);case ta:return a=Yd(24,c,b,e),a.elementType=ta,a.lanes=f,a;default:if(\"object\"===\ntypeof a&&null!==a)switch(a.$$typeof){case ja:g=10;break a;case ka:g=9;break a;case la:g=11;break a;case oa:g=14;break a;case pa:g=16;d=null;break a;case qa:g=22;break a}throw Error(q(130,null==a?a:typeof a,\"\"));}b=Yd(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Id(a,b,c,d){a=Yd(7,a,d,b);a.lanes=c;return a}function ef(a,b,c,d){a=Yd(23,a,d,b);a.elementType=sa;a.lanes=c;return a}function Fd(a,b,c){a=Yd(6,a,null,b);a.lanes=c;return a}\nfunction Hd(a,b,c){b=Yd(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction uh(a,b,c){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=Ra;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=0;this.eventTimes=qc(0);this.expirationTimes=qc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=qc(0);Va&&(this.mutableSourceEagerHydrationData=null)}\nfunction vh(a){var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(q(188));throw Error(q(268,Object.keys(a)));}a=Aa(b);return null===a?null:a.stateNode}function wh(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function xh(a,b){wh(a,b);(a=a.alternate)&&wh(a,b)}function yh(a){a=Aa(a);return null===a?null:a.stateNode}function zh(){return null}exports.IsThisRendererActing=mh;\nexports.act=function(a){function b(){rh--;sg.current=c;mh.current=d}!1===sh&&(sh=!0,console.error(\"act(...) is not supported in production builds of React, and might not behave as expected.\"));rh++;var c=sg.current,d=mh.current;sg.current=!0;mh.current=!0;try{var e=ah(a)}catch(f){throw b(),f;}if(null!==e&&\"object\"===typeof e&&\"function\"===typeof e.then)return{then:function(a,d){e.then(function(){1<rh||!0===oh&&!0===c?(b(),a()):qh(function(c){b();c?d(c):a()})},function(a){b();d(a)})}};try{1!==rh||\n!1!==oh&&!1!==c||ph(),b()}catch(f){throw b(),f;}return{then:function(a){a()}}};exports.attemptContinuousHydration=function(a){if(13===a.tag){var b=K();ud(a,67108864,b);xh(a,67108864)}};exports.attemptHydrationAtCurrentPriority=function(a){if(13===a.tag){var b=K(),c=td(a);ud(a,c,b);xh(a,c)}};\nexports.attemptSynchronousHydration=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.hydrate){var c=ic(b.pendingLanes);b.expiredLanes|=c&b.pendingLanes;Z(b,G());0===(V&48)&&(zg(),H())}break;case 13:var d=K();bh(function(){return ud(a,1,d)});xh(a,4)}};exports.attemptUserBlockingHydration=function(a){if(13===a.tag){var b=K();ud(a,4,b);xh(a,4)}};exports.batchedEventUpdates=function(a,b){var c=V;V|=2;try{return a(b)}finally{V=c,0===V&&(zg(),H())}};exports.batchedUpdates=ah;\nexports.createComponentSelector=function(a){return{$$typeof:cg,value:a}};exports.createContainer=function(a,b,c){a=new uh(a,b,c);b=Yd(3,null,null,2===b?7:1===b?3:0);a.current=b;b.stateNode=a;id(b);return a};exports.createHasPsuedoClassSelector=function(a){return{$$typeof:dg,value:a}};exports.createPortal=function(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:ea,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}};\nexports.createRoleSelector=function(a){return{$$typeof:eg,value:a}};exports.createTestNameSelector=function(a){return{$$typeof:fg,value:a}};exports.createTextSelector=function(a){return{$$typeof:gg,value:a}};exports.deferredUpdates=function(a){return Pc(97,a)};exports.discreteUpdates=function(a,b,c,d,e){var f=V;V|=4;try{return Pc(98,a.bind(null,b,c,d,e))}finally{V=f,0===V&&(zg(),H())}};exports.findAllNodes=mg;\nexports.findBoundingRects=function(a,b){if(!bb)throw Error(q(363));b=mg(a,b);a=[];for(var c=0;c<b.length;c++)a.push(db(b[c]));for(b=a.length-1;0<b;b--){c=a[b];for(var d=c.x,e=d+c.width,f=c.y,g=f+c.height,h=b-1;0<=h;h--)if(b!==h){var k=a[h],l=k.x,n=l+k.width,t=k.y,p=t+k.height;if(d>=l&&f>=t&&e<=n&&g<=p){a.splice(b,1);break}else if(!(d!==l||c.width!==k.width||p<f||t>g)){t>f&&(k.height+=t-f,k.y=f);p<g&&(k.height=g-t);a.splice(b,1);break}else if(!(f!==t||c.height!==k.height||n<d||l>e)){l>d&&(k.width+=\nl-d,k.x=d);n<e&&(k.width=e-l);a.splice(b,1);break}}}return a};exports.findHostInstance=vh;exports.findHostInstanceWithNoPortals=function(a){a=Ba(a);return null===a?null:20===a.tag?a.stateNode.instance:a.stateNode};exports.findHostInstanceWithWarning=function(a){return vh(a)};exports.flushControlled=function(a){var b=V;V|=1;try{Pc(99,a)}finally{V=b,0===V&&(zg(),H())}};exports.flushDiscreteUpdates=function(){0===(V&49)&&($g(),Qg())};exports.flushPassiveEffects=Qg;exports.flushSync=bh;\nexports.focusWithin=function(a,b){if(!bb)throw Error(q(363));a=ig(a);b=lg(a,b);b=Array.from(b);for(a=0;a<b.length;){var c=b[a++];if(!fb(c)){if(5===c.tag&&hb(c.stateNode))return!0;for(c=c.child;null!==c;)b.push(c),c=c.sibling}}return!1};exports.getCurrentUpdateLanePriority=function(){return hc};\nexports.getFindAllNodesFailureDescription=function(a,b){if(!bb)throw Error(q(363));var c=0,d=[];a=[ig(a),0];for(var e=0;e<a.length;){var f=a[e++],g=a[e++],h=b[g];if(5!==f.tag||!fb(f))if(jg(f,h)&&(d.push(kg(h)),g++,g>c&&(c=g)),g<b.length)for(f=f.child;null!==f;)a.push(f,g),f=f.sibling}if(c<b.length){for(a=[];c<b.length;c++)a.push(kg(b[c]));return\"findAllNodes was able to match part of the selector:\\n \"+(d.join(\" > \")+\"\\n\\nNo matching component was found for:\\n \")+a.join(\" > \")}return null};\nexports.getPublicRootInstance=function(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return Da(a.child.stateNode);default:return a.child.stateNode}};\nexports.injectIntoDevTools=function(a){a={bundleType:a.bundleType,version:a.version,rendererPackageName:a.rendererPackageName,rendererConfig:a.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ca.ReactCurrentDispatcher,findHostInstanceByFiber:yh,findFiberByHostInstance:a.findFiberByHostInstance||zh,findHostInstancesForRefresh:null,\nscheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)a=!1;else{var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!b.isDisabled&&b.supportsFiber)try{ec=b.inject(a),fc=b}catch(c){}a=!0}return a};exports.observeVisibleRects=function(a,b,c,d){if(!bb)throw Error(q(363));a=mg(a,b);var e=ib(a,c,d).disconnect;return{disconnect:function(){e()}}};\nexports.registerMutableSourceForHydration=function(a,b){var c=b._getVersion;c=c(b._source);null==a.mutableSourceEagerHydrationData?a.mutableSourceEagerHydrationData=[b,c]:a.mutableSourceEagerHydrationData.push(b,c)};exports.runWithPriority=function(a,b){var c=hc;try{return hc=a,b()}finally{hc=c}};exports.shouldSuspend=function(){return!1};exports.unbatchedUpdates=function(a,b){var c=V;V&=-2;V|=8;try{return a(b)}finally{V=c,0===V&&(zg(),H())}};\nexports.updateContainer=function(a,b,c,d){var e=b.current,f=K(),g=td(e);a:if(c){c=c._reactInternals;b:{if(xa(c)!==c||1!==c.tag)throw Error(q(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(E(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(q(171));}if(1===c.tag){var k=c.type;if(E(k)){c=bc(c,k,h);break a}}c=h}else c=Xb;null===b.context?b.context=c:b.pendingContext=c;b=kd(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);md(e,b);ud(e,g,f);return g};\n\n return exports;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-reconciler.production.min.js');\n} else {\n module.exports = require('./cjs/react-reconciler.development.js');\n}\n","import React, { useContext, useState, useRef, useEffect, useMemo, useCallback, useLayoutEffect, version } from \"react\";\nimport Reconciler from \"react-reconciler\";\nconst supportedEventAttributes = [\n \"onMouseDown\",\n \"onMouseEnter\",\n \"onMouseLeave\",\n \"onMouseMove\",\n \"onMouseOut\",\n \"onMouseOver\",\n \"onMouseUp\",\n \"onTouchCancel\",\n \"onTouchEnd\",\n \"onTouchMove\",\n \"onTouchStart\",\n \"onPointerDown\",\n \"onPointerMove\",\n \"onPointerUp\",\n \"onPointerCancel\",\n \"onPointerEnter\",\n \"onPointerLeave\",\n \"onPointerOver\",\n \"onPointerOut\",\n \"onScroll\",\n \"onWheel\",\n \"onClick\",\n \"onDragStart\",\n \"onDragEnd\",\n \"onDragEnter\",\n \"onDragExit\",\n \"onDrag\",\n \"onDragOver\"\n];\nfunction createDefaultEventMap() {\n return supportedEventAttributes.reduce((acc, next) => {\n acc[next] = [];\n return acc;\n }, {});\n}\nconst supportedEventMap = supportedEventAttributes.reduce((acc, ev) => {\n acc[ev.slice(2).toLowerCase()] = ev;\n acc[ev] = ev;\n return acc;\n}, {});\nconst hidePointsOutsideRegion = (points, target, buffer) => {\n const len = points.length;\n const ret = buffer ? buffer : dna(len);\n for (let index = 0; index < len; index++) {\n ret[index] = index % 5 === 0 ? points[index + 1] < target[3] && points[index + 3] > target[1] && points[index + 2] < target[4] && points[index + 4] > target[2] ? 1 : 0 : points[index];\n }\n return ret;\n};\nfunction dna(buffer, byteOffset, length) {\n return new Float32Array(buffer, byteOffset, length);\n}\nconst getIntersection = (boxA, boxB, buffer) => {\n const intersects = boxA[1] <= boxB[3] && boxA[3] >= boxB[1] && boxA[2] <= boxB[4] && boxA[4] >= boxB[2];\n const mem = buffer ? buffer : dna(5);\n if (!intersects) {\n mem[0] = 0;\n mem[1] = 0;\n mem[2] = 0;\n mem[3] = 0;\n mem[4] = 0;\n return mem;\n }\n mem[0] = 1;\n mem[1] = Math.max(boxA[1], boxB[1]);\n mem[2] = Math.max(boxA[2], boxB[2]);\n mem[3] = Math.min(boxA[3], boxB[3]);\n mem[4] = Math.min(boxA[4], boxB[4]);\n return mem;\n};\nconst dnaLength = (points) => points.length / 5;\nconst compose = (transformA, transformB, buffer) => {\n const mem = buffer ? buffer : dna(9);\n mem[0] = transformA[0] * transformB[0] + transformA[1] * transformB[3] + transformA[2] * transformB[6];\n mem[1] = transformA[0] * transformB[1] + transformA[1] * transformB[4] + transformA[2] * transformB[7];\n mem[2] = transformA[0] * transformB[2] + transformA[1] * transformB[5] + transformA[2] * transformB[8];\n mem[3] = transformA[3] * transformB[0] + transformA[4] * transformB[3] + transformA[5] * transformB[6];\n mem[4] = transformA[3] * transformB[1] + transformA[4] * transformB[4] + transformA[5] * transformB[7];\n mem[5] = transformA[3] * transformB[2] + transformA[4] * transformB[5] + transformA[5] * transformB[8];\n mem[6] = transformA[6] * transformB[0] + transformA[7] * transformB[3] + transformA[8] * transformB[6];\n mem[7] = transformA[6] * transformB[1] + transformA[7] * transformB[4] + transformA[8] * transformB[7];\n mem[8] = transformA[6] * transformB[2] + transformA[7] * transformB[5] + transformA[8] * transformB[8];\n return mem;\n};\nclass DnaFactory {\n constructor(length) {\n this.index = 0;\n this.length = length;\n this.points = dna(this.length);\n }\n static grid(columns = 1, rows = 1) {\n return new DnaFactory(5 * columns * rows);\n }\n static point(x2, y2) {\n const point = dna(5);\n point[0] = 1;\n point[1] = x2;\n point[2] = y2;\n point[3] = x2;\n point[4] = y2;\n return point;\n }\n static positionPair(positionPair) {\n const pair = dna(5);\n pair[0] = 1;\n pair[1] = positionPair.x1;\n pair[2] = positionPair.y1;\n pair[3] = positionPair.x2;\n pair[4] = positionPair.y2;\n return pair;\n }\n static projection(projection) {\n return DnaFactory.singleBox(projection.width, projection.height, projection.x, projection.y);\n }\n static singleBox(width, height, x2 = 0, y2 = 0) {\n const box = dna(5);\n box[0] = 1;\n box[1] = x2;\n box[2] = y2;\n box[3] = width + x2;\n box[4] = height + y2;\n return box;\n }\n row(func) {\n return func(this);\n }\n addPoints(x1, y1, x2, y2) {\n this.points[this.index] = 1;\n this.points[1 + this.index] = x1;\n this.points[2 + this.index] = y1;\n this.points[3 + this.index] = x2;\n this.points[4 + this.index] = y2;\n this.index += 5;\n return this;\n }\n addBox(x2, y2, width, height) {\n this.addPoints(x2, y2, x2 + width, y2 + height);\n return this;\n }\n build() {\n return this.points;\n }\n}\nconst mutate = (points, transformation) => {\n const len = points.length;\n for (let index = 0; index < len; index++) {\n points[index] = index % 5 === 0 ? transformation[6] * points[index + 1] + transformation[7] * points[index + 2] + transformation[8] * points[index] : index % 5 % 2 === 1 ? transformation[0] * points[index] + transformation[1] * points[index + 1] + transformation[2] : transformation[3] * points[index - 1] + transformation[4] * points[index] + transformation[5];\n }\n return points;\n};\nconst scale = (factor) => {\n const scaleTransform = dna(9);\n scaleTransform[0] = factor;\n scaleTransform[4] = factor;\n scaleTransform[8] = 1;\n return scaleTransform;\n};\nconst translate = (x2, y2) => {\n const translation = dna(9);\n translation[0] = 1;\n translation[2] = x2;\n translation[4] = 1;\n translation[5] = y2;\n translation[8] = 1;\n return translation;\n};\nconst scaleAtOrigin = (factor, x2, y2) => compose(translate((1 - factor) * x2, (1 - factor) * y2), scale(factor));\nconst transform = (points, transformation, buffer) => {\n const len = points.length;\n const ret = buffer && buffer.length >= len ? buffer.slice(0, len) : dna(len);\n for (let index = 0; index < len; index++) {\n ret[index] = index % 5 === 0 ? transformation[6] * points[index + 1] + transformation[7] * points[index + 2] + transformation[8] * points[index] : index % 5 % 2 === 1 ? transformation[0] * points[index] + transformation[1] * points[index + 1] + transformation[2] : transformation[3] * points[index - 1] + transformation[4] * points[index] + transformation[5];\n }\n return ret;\n};\nlet nanoid = (size = 21) => crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63;\n if (byte < 36) {\n id += byte.toString(36);\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase();\n } else if (byte > 62) {\n id += \"-\";\n } else {\n id += \"_\";\n }\n return id;\n}, \"\");\nclass BaseObject {\n constructor() {\n this.__revision = 0;\n this.__state = {};\n this.scale = 1;\n this.layers = [];\n this.time = [];\n this.addEventListener = (name, cb, options) => {\n const event = supportedEventMap[name];\n if (!this.eventHandlers[event]) {\n throw new Error(`Unknown event ${event}`);\n }\n if (this.eventHandlers[event].indexOf(cb) === -1) {\n this.eventHandlers[event].push(cb);\n }\n };\n this.removeEventListener = (name, cb) => {\n const event = supportedEventMap[name];\n if (!this.eventHandlers[event]) {\n console.warn(`Unknown event ${event}`);\n return;\n }\n if (this.eventHandlers[event].indexOf(cb) !== -1) {\n this.eventHandlers[event] = this.eventHandlers[event].filter((e) => e !== cb);\n }\n };\n this.id = this.__id = nanoid();\n this.eventHandlers = createDefaultEventMap();\n }\n getObjectsAt(target) {\n return [];\n }\n getAllPointsAt(target, aggregate, scale2) {\n return [];\n }\n getScheduledUpdates(target, scaleFactor) {\n return [];\n }\n dispatchEvent(name, e) {\n const listeners = this.eventHandlers[name];\n const len = listeners ? listeners.length : 0;\n let didFire = false;\n if (len) {\n for (let x2 = 0; x2 < len; x2++) {\n try {\n listeners[x2](e);\n didFire = true;\n } catch (e2) {\n console.error(name, e2);\n }\n }\n }\n return didFire;\n }\n get x() {\n return this.points[1];\n }\n get y() {\n return this.points[2];\n }\n get width() {\n return this.points[3] - this.points[1];\n }\n get height() {\n return this.points[4] - this.points[2];\n }\n translate(x2, y2) {\n mutate(this.points, translate(x2, y2));\n }\n atScale(factor) {\n mutate(this.points, scaleAtOrigin(factor, this.x, this.y));\n this.scale *= factor;\n }\n transform(op) {\n mutate(this.points, op);\n }\n applyProps(props) {\n this.__revision++;\n }\n appendChild(item) {\n }\n removeChild(item) {\n }\n insertBefore(item, before) {\n }\n hideInstance() {\n }\n}\nclass SingleImage extends BaseObject {\n constructor(data) {\n super();\n this.type = \"spacial-content\";\n this.style = { opacity: 1 };\n if (!data) {\n this.id = \"\";\n this.uri = \"\";\n this.display = { scale: 1, width: 0, height: 0, points: dna(5) };\n this.points = dna(5);\n } else {\n const scale2 = data.scale || 1;\n this.id = data.id || data.uri;\n this.uri = data.uri;\n this.points = DnaFactory.singleBox(data.width, data.height, data.x, data.y);\n this.display = {\n scale: scale2,\n width: data.width / scale2,\n height: data.height / scale2,\n points: scale2 !== 1 ? DnaFactory.singleBox(data.width / scale2, data.height / scale2) : this.points\n };\n }\n }\n applyProps(props) {\n const width = props.display ? props.display.width : props.target.width;\n const scale2 = props.target.width / width;\n this.id = props.id || props.uri;\n this.uri = props.uri;\n this.points.set(DnaFactory.singleBox(props.target.width, props.target.height, props.target.x, props.target.y));\n if (props.style && typeof props.style.opacity !== \"undefined\") {\n this.style.opacity = props.style.opacity;\n }\n this.display.scale = scale2;\n this.display.width = props.target.width / scale2;\n this.display.height = props.target.height / scale2;\n this.display.points = scale2 !== 1 ? DnaFactory.singleBox(props.target.width / scale2, props.target.height / scale2) : this.points;\n }\n getAllPointsAt(target, aggregate, scale2) {\n return [[this, this.crop || this.points, aggregate]];\n }\n static fromSvg(svg, target, display, id) {\n return SingleImage.fromImage(\"data:image/svg+xml;base64,\" + btoa(svg), target, display, id);\n }\n static fromImage(uri, target, display, id) {\n const instance = new SingleImage();\n instance.applyProps({\n uri,\n id,\n display,\n target\n });\n return instance;\n }\n getImageUrl() {\n return this.uri;\n }\n}\nclass ImageTexture extends BaseObject {\n constructor(data) {\n super();\n this.type = \"spacial-content\";\n this.getTexture = () => {\n return { source: void 0, hash: -1 };\n };\n if (!data) {\n this.id = \"\";\n this.uri = \"\";\n this.display = { scale: 1, width: 0, height: 0, points: dna(5) };\n this.points = dna(5);\n } else {\n const scale2 = data.scale || 1;\n this.id = data.id || data.uri;\n this.uri = data.uri;\n this.points = DnaFactory.singleBox(data.width, data.height);\n this.display = {\n scale: scale2,\n width: data.width / scale2,\n height: data.height / scale2,\n points: scale2 !== 1 ? DnaFactory.singleBox(data.width / scale2, data.height / scale2) : this.points\n };\n }\n }\n applyProps(props) {\n const width = props.display ? props.display.width : props.target.width;\n const scale2 = props.target.width / width;\n this.id = props.id;\n this.points.set(DnaFactory.singleBox(props.target.width, props.target.height));\n this.display.scale = scale2;\n this.display.width = props.target.width / scale2;\n this.display.height = props.target.height / scale2;\n this.getTexture = props.getTexture;\n this.display.points = scale2 !== 1 ? DnaFactory.singleBox(props.target.width / scale2, props.target.height / scale2) : this.points;\n }\n getAllPointsAt(target, aggregate, scale2) {\n return [[this, this.points, aggregate]];\n }\n}\nfunction bestResourceIndexAtRatio(ratio, resources, quality = 1) {\n const len = resources.length;\n if (len === 0) {\n throw new Error(\"No resources passed in.\");\n }\n let best = 0;\n for (let i = 0; i < len; i++) {\n if (!resources[i] || !resources[i].display) {\n break;\n }\n best = Math.abs(resources[i].display.scale - ratio) * quality < Math.abs(resources[best].display.scale - ratio) ? i : best;\n }\n return best;\n}\nfunction distance1D(a, b2) {\n return Math.abs(a - b2);\n}\nfunction distance(a, b2) {\n const xDelta = distance1D(a.x, b2.x);\n const yDelta = distance1D(a.y, b2.y);\n return Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2));\n}\nfunction stripInfoJson(id) {\n const len = id.length;\n if (id.indexOf(\"/info.json\") === len - 10) {\n return id.slice(0, -10);\n }\n return id;\n}\nclass TiledImage extends BaseObject {\n constructor(data) {\n super();\n this.type = \"spacial-content\";\n this.style = { opacity: 1 };\n this.id = stripInfoJson(data.url);\n this.points = data.displayPoints ? data.displayPoints : transform(data.points, scale(data.scaleFactor));\n this.tileWidth = data.tileWidth;\n this.display = {\n width: data.width / data.scaleFactor,\n height: data.height / data.scaleFactor,\n points: data.points,\n scale: data.scaleFactor\n };\n }\n applyProps(props) {\n if (props.style && typeof props.style.opacity !== \"undefined\") {\n this.style.opacity = props.style.opacity;\n }\n if (props.service !== this.service) {\n this.service = props.service;\n }\n }\n static fromTile(url, canvas, tile, scaleFactor, service) {\n tile.height = tile.height ? tile.height : tile.width;\n const fullWidth = Math.ceil(canvas.width / scaleFactor);\n const fullHeight = Math.ceil(canvas.height / scaleFactor);\n const mWidth = Math.ceil(fullWidth / tile.width);\n const mHeight = Math.ceil(fullHeight / tile.height);\n const pointsFactory = DnaFactory.grid(mWidth, mHeight);\n const displayPoints = DnaFactory.grid(mWidth, mHeight);\n for (let y2 = 0; y2 < mHeight; y2++) {\n for (let x2 = 0; x2 < mWidth; x2++) {\n const rx = x2 * tile.width;\n const ry = y2 * tile.height;\n displayPoints.addPoints(rx * scaleFactor, ry * scaleFactor, x2 === mWidth - 1 ? canvas.width : (rx + tile.width) * scaleFactor, y2 === mHeight - 1 ? canvas.height : (ry + tile.height) * scaleFactor);\n pointsFactory.addPoints(rx, ry, x2 === mWidth - 1 ? fullWidth : rx + tile.width, y2 === mHeight - 1 ? fullHeight : ry + tile.height);\n }\n }\n const tiledImage = new TiledImage({\n url,\n scaleFactor,\n points: pointsFactory.build(),\n displayPoints: displayPoints.build(),\n width: canvas.width,\n height: canvas.height,\n tileWidth: tile.width\n });\n tiledImage.applyProps({\n service\n });\n return tiledImage;\n }\n getImageUrl(index) {\n const im = this.points.slice(index * 5, index * 5 + 5);\n const x2 = im[3] - im[1];\n const y2 = im[4] - im[2];\n const w2 = Math.ceil(x2 / this.display.scale);\n return `${this.id}/${im[1]},${im[2]},${x2},${y2}/${w2 > this.tileWidth ? this.tileWidth : w2},/0/default.jpg`;\n }\n getAllPointsAt(target, aggregate, scaleFactor) {\n const points = hidePointsOutsideRegion(this.points, target);\n return [[this, points, aggregate]];\n }\n transform(op) {\n mutate(this.points, op);\n }\n getScheduledUpdates(target, scaleFactor) {\n return [];\n }\n}\nclass AbstractContent extends BaseObject {\n constructor() {\n super(...arguments);\n this.type = \"spacial-content\";\n }\n getAllPointsAt(target, aggregate, scale2) {\n return [[this, this.points, aggregate]];\n }\n}\nclass CompositeResource extends AbstractContent {\n constructor(data) {\n super();\n this.images = [];\n this.allImages = [];\n this.scaleFactors = [];\n this.aggregateBuffer = dna(9);\n this.isFullyLoaded = false;\n this.maxScaleFactor = 0;\n this._scheduleSortByScales = false;\n this._sortByScales = () => {\n this._scheduleSortByScales = false;\n this.allImages.sort((a, b2) => b2.display.width - a.display.width);\n this.images = [];\n let lastScale = 0.1;\n for (const image of this.allImages) {\n if (image.display.width < this.renderOptions.minSize && image.display.height < this.renderOptions.minSize && !image.priority) {\n continue;\n }\n if (image instanceof SingleImage && (image.display.width > this.renderOptions.maxImageSize || image.display.height > this.renderOptions.maxImageSize) && !image.priority) {\n continue;\n }\n const diff = Math.abs(image.display.scale - lastScale);\n if (diff < 0.25 || image.priority) {\n const otherImage = this.images.pop();\n if (otherImage && (otherImage instanceof SingleImage || otherImage.priority)) {\n if (image.priority) {\n this.images.push(image);\n }\n this.images.push(otherImage);\n } else {\n if (image) {\n this.images.push(image);\n }\n }\n } else {\n if (image) {\n this.images.push(image);\n }\n }\n lastScale = image.display.scale;\n }\n if (this.images.length === 0) {\n this.images = [...this.allImages];\n }\n this.scaleFactors = this.images.map((singleImage) => singleImage.display.scale);\n this.maxScaleFactor = Math.max(...this.scaleFactors);\n };\n this.loadFullResource = async () => {\n if (this.isFullyLoaded) {\n return;\n }\n if (this.lazyLoader) {\n this.isFullyLoaded = true;\n const newImages = await this.lazyLoader();\n this.addImages(newImages);\n }\n };\n this.fallback = [this.loadFullResource];\n this.id = data.id;\n this.points = DnaFactory.singleBox(data.width, data.height);\n this.lazyLoader = data.loadFullImages;\n if (!data.loadFullImages) {\n this.isFullyLoaded = true;\n }\n this.display = {\n points: DnaFactory.singleBox(data.width, data.height),\n height: data.height,\n width: data.width,\n scale: 1\n };\n this.renderOptions = {\n renderSmallestFallback: true,\n renderLayers: 2,\n minSize: 256,\n maxImageSize: 1024,\n quality: 1.1,\n ...data.renderOptions || {}\n };\n this.addImages(data.images);\n }\n applyProps(props) {\n if (typeof props.renderSmallestFallback !== \"undefined\" && props.renderSmallestFallback !== this.renderOptions.renderSmallestFallback) {\n this.renderOptions.renderSmallestFallback = props.renderSmallestFallback;\n }\n if (typeof props.renderLayers !== \"undefined\" && props.renderLayers !== this.renderOptions.renderLayers) {\n this.renderOptions.renderLayers = props.renderLayers;\n }\n if (typeof props.minSize !== \"undefined\" && props.minSize !== this.renderOptions.minSize) {\n this.renderOptions.minSize = props.minSize;\n }\n if (typeof props.maxImageSize !== \"undefined\" && props.maxImageSize !== this.renderOptions.maxImageSize) {\n this.renderOptions.maxImageSize = props.maxImageSize;\n }\n if (typeof props.quality !== \"undefined\" && props.quality !== this.renderOptions.quality) {\n this.renderOptions.quality = props.quality;\n }\n }\n appendChild(item) {\n this.addImages([item]);\n }\n removeChild(item) {\n if (this.images.indexOf(item) === -1) {\n return;\n }\n this.images = this.images.filter((image) => image !== item);\n this.sortByScales();\n }\n insertBefore(item, before) {\n this.addImages([item]);\n }\n hideInstance() {\n }\n addImages(images) {\n for (const image of images) {\n image.__parent = this;\n }\n this.allImages.push(...images.filter(Boolean));\n this.sortByScales();\n }\n sortByScales() {\n this._scheduleSortByScales = true;\n }\n getScheduledUpdates(target, scaleFactor) {\n if (this._scheduleSortByScales) {\n return [this._sortByScales];\n }\n if (this.isFullyLoaded) {\n return [];\n }\n if (scaleFactor > 1 / this.maxScaleFactor) {\n return this.fallback;\n }\n return [];\n }\n getAllPointsAt(target, aggregate, scale2) {\n if (this.images.length === 0) {\n return [];\n }\n const bestIndex = bestResourceIndexAtRatio(1 / (scale2 || 1) / (window.devicePixelRatio || 1), this.images, this.renderOptions.quality);\n const len = this.images.length;\n const newAggregate = aggregate ? compose(aggregate, translate(this.x, this.y)) : translate(this.x, this.y);\n if (bestIndex !== this.images.length - 1 && this.images[bestIndex + 1]) {\n let toPaintIdx = [];\n for (let i = len - 1; i >= bestIndex; i--) {\n toPaintIdx.push(i);\n }\n const smallestIdx = toPaintIdx[0];\n if (this.renderOptions.renderLayers) {\n toPaintIdx = toPaintIdx.slice(-this.renderOptions.renderLayers);\n }\n if (this.renderOptions.renderSmallestFallback && toPaintIdx.indexOf(smallestIdx) === -1) {\n toPaintIdx.unshift(smallestIdx);\n }\n const toPaint = [];\n for (let i = 0; i < toPaintIdx.length; i++) {\n toPaint.push(...this.images[toPaintIdx[i]].getAllPointsAt(target, newAggregate, scale2));\n }\n return toPaint;\n }\n return this.images[bestIndex].getAllPointsAt(target, newAggregate, scale2);\n }\n}\nclass WorldObject extends BaseObject {\n constructor(props, position) {\n super();\n this.type = \"world-object\";\n this.intersectionBuffer = dna(5);\n this.aggregateBuffer = dna(9);\n this.invertedBuffer = dna(9);\n this._updatedList = [];\n const { x: x2 = 0, y: y2 = 0 } = position || {};\n if (!props) {\n this.id = \"\";\n this.scale = 1;\n this.layers = [];\n this.points = dna(5);\n this.worldPoints = dna(5);\n this.filteredPointsBuffer = dna(5);\n } else {\n this.id = props.id || \"\";\n this.scale = 1;\n this.layers = props.layers;\n this.points = dna([1, x2, y2, props.width, props.height]);\n this.worldPoints = dna([1, x2, y2, props.width, props.height]);\n this.filteredPointsBuffer = dna(props.layers.length * 5);\n }\n }\n static createWithProps(props) {\n const instance = new WorldObject();\n instance.applyProps(props);\n return instance;\n }\n applyProps(props) {\n const x2 = props.x || 0;\n const y2 = props.y || 0;\n this.id = props.id;\n const s = typeof props.scale !== \"undefined\" ? props.scale : this.scale;\n this.points[0] = 1;\n this.points[1] = x2;\n this.points[2] = y2;\n this.points[3] = x2 + props.width;\n this.points[4] = y2 + props.height;\n this.worldPoints[3] = this.worldPoints[1] + props.width * s;\n this.worldPoints[4] = this.worldPoints[2] + props.height * s;\n if (props.scale && props.scale !== 1) {\n this.atScale(s);\n }\n this.scale = s;\n }\n appendChild(item) {\n if (item.points[0] === 0) {\n item.points.set(this.points);\n }\n this.addLayers([item]);\n }\n removeChild(item) {\n this.layers = this.layers.filter((layer) => layer !== item);\n this.filteredPointsBuffer = dna(this.layers.length * 5);\n }\n insertBefore(item, before) {\n const index = this.layers.indexOf(before);\n if (index === -1) {\n return;\n }\n if (this.layers.indexOf(item) !== -1) {\n return;\n }\n const beforeLayers = this.layers.slice(0, index - 1);\n const afterLayers = this.layers.slice(index);\n this.layers = [...beforeLayers, item, ...afterLayers];\n }\n hideInstance() {\n console.warn(\"hideInstance: not yet implemented\");\n }\n getObjectsAt(target, all) {\n const filteredPoints = hidePointsOutsideRegion(this.points, target, this.filteredPointsBuffer);\n if (filteredPoints[0] === 0) {\n return [];\n }\n const len = this.layers.length;\n const objects = [];\n for (let index = 0; index < len; index++) {\n const layer = this.layers[index];\n const filter = hidePointsOutsideRegion(transform(layer.points, translate(this.x, this.y)), target, this.filteredPointsBuffer);\n if (filter[0] !== 0) {\n objects.push(layer);\n }\n if (all) {\n const object = layer;\n objects.push(...object.getObjectsAt(target, all));\n }\n }\n return objects;\n }\n getAllPointsAt(target, aggregate, scaleFactor) {\n const transformer = compose(translate(this.x, this.y), scale(this.scale), this.aggregateBuffer);\n const inter = getIntersection(target, this.points, this.intersectionBuffer);\n const len = this.layers.length;\n const arr = [];\n const t = transform(inter, compose(scale(1 / this.scale), translate(-this.x, -this.y), this.invertedBuffer));\n const agg = aggregate ? compose(aggregate, transformer, this.aggregateBuffer) : transformer;\n const s = scaleFactor * this.scale;\n for (let i = 0; i < len; i++) {\n arr.push(...this.layers[i].getAllPointsAt(t, agg, s));\n }\n return arr;\n }\n addLayers(paintables) {\n const paintablesToAdd = [];\n for (const paintable of paintables) {\n if (this.layers.indexOf(paintable) !== -1) {\n continue;\n }\n paintablesToAdd.push(paintable);\n if (paintable.points.length === 5 && (paintable.points[1] < this.worldPoints[1] / this.scale || paintable.points[2] < this.worldPoints[2] / this.scale || paintable.points[3] > this.worldPoints[3] / this.scale || paintable.points[4] > this.worldPoints[4] / this.scale)) {\n paintable.crop = dna([\n 1,\n Math.max(this.worldPoints[1] / this.scale, paintable.points[1]),\n Math.max(this.worldPoints[2] / this.scale, paintable.points[2]),\n Math.min(this.worldPoints[3] / this.scale, paintable.points[3]),\n Math.min(this.worldPoints[4] / this.scale, paintable.points[4])\n ]);\n }\n }\n this.layers = this.layers.concat(paintablesToAdd);\n this.filteredPointsBuffer = dna(this.layers.length * 5);\n }\n getScheduledUpdates(target, scaleFactor) {\n const len = this.layers.length;\n this._updatedList = [];\n const s = scaleFactor * this.scale;\n for (let i = 0; i < len; i++) {\n const updates = this.layers[i].getScheduledUpdates(target, s);\n if (updates) {\n this._updatedList.push(...updates);\n }\n }\n return this._updatedList;\n }\n}\nclass World extends BaseObject {\n constructor(width = 0, height = 0, worldObjectCount = 100, viewingDirection = \"left-to-right\") {\n super();\n this.id = \"world\";\n this.aggregateBuffer = dna(9);\n this.isDirty = false;\n this.zones = [];\n this.triggerQueue = [];\n this.activatedEvents = [];\n this._updatedList = [];\n this.translationBuffer = dna(9);\n this.needsRecalculate = true;\n this.emptyPaintables = [];\n this.renderOrder = [];\n this.objects = [];\n this.subscriptions = [];\n this._propagateEventTargets = [];\n this._alreadyFlushed = [];\n this._width = width;\n this._height = height;\n this.aspectRatio = Number.isNaN(width / height) ? 1 : width / height;\n this.viewingDirection = viewingDirection;\n this.points = dna(worldObjectCount * 5);\n this.filteredPointsBuffer = dna(worldObjectCount * 5);\n }\n get x() {\n return 0;\n }\n get y() {\n return 0;\n }\n get width() {\n return this._width;\n }\n get height() {\n return this._height;\n }\n static withProps(props) {\n const instance = new World();\n instance.applyProps(props);\n return instance;\n }\n applyProps(props) {\n if (typeof props.width !== \"undefined\" && typeof props.height !== \"undefined\" && (props.width !== this._width || props.height !== this._height)) {\n this.resize(props.width, props.height);\n }\n if (props.viewingDirection !== this.viewingDirection) {\n this.viewingDirection = props.viewingDirection;\n this.triggerRepaint();\n }\n }\n propagateTouchEvent(eventName, e, touchTargets) {\n const targets = [];\n for (const touch of touchTargets) {\n if (touch.x && touch.y) {\n const point = DnaFactory.singleBox(1, 1, touch.x, touch.y);\n targets.push(this.getObjectsAt(point, true).reverse());\n }\n }\n return targets.map((target) => this.propagateEvent(eventName, e, target, { bubbles: true, cancelable: true }));\n }\n propagatePointerEvent(eventName, e, x2, y2, opts = {}) {\n const point = DnaFactory.singleBox(1, 1, x2, y2);\n const worldObjects = this.getObjectsAt(point, true).reverse();\n return this.propagateEvent(eventName, e, worldObjects, opts);\n }\n propagateEvent(eventName, e, worldObjects, { bubbles = false, cancelable = false } = {}) {\n e.atlasTarget = this;\n this._propagateEventTargets.length = 1;\n this._propagateEventTargets[0] = this;\n let stopped = false;\n e.stopPropagation = () => {\n stopped = true;\n };\n const woLen = worldObjects.length;\n for (let w2 = woLen - 1; w2 >= 0; w2--) {\n this._propagateEventTargets.unshift(worldObjects[w2][0]);\n const len2 = worldObjects[w2][1].length;\n if (len2) {\n for (let i = 0; i < len2; i++) {\n this._propagateEventTargets.unshift(worldObjects[w2][1][i]);\n }\n }\n }\n const len = this._propagateEventTargets.length;\n let didFire = false;\n for (let i = 0; i < len; i++) {\n e.atlasTarget = this._propagateEventTargets[i];\n e.atlasWorld = this;\n didFire = this._propagateEventTargets[i].dispatchEvent(eventName, e) || didFire;\n if (stopped)\n break;\n }\n if (didFire) {\n this.triggerRepaint();\n }\n return this._propagateEventTargets;\n }\n appendChild(item) {\n const idx = this.appendWorldObject(item);\n this.renderOrder.push(idx / 5);\n }\n removeChild(item) {\n const index = this.objects.indexOf(item);\n if (index === -1) {\n for (const obj of this.objects) {\n if (obj && obj.id === item.id) {\n this.removeChild(obj);\n return;\n }\n }\n return;\n }\n this.objects[index] = null;\n this.renderOrder = this.renderOrder.filter((t) => t !== index);\n this.points[index * 5] = 0;\n this.triggerRepaint();\n this.needsRecalculate = true;\n }\n insertBefore(item, before) {\n const beforeIndex = this.objects.indexOf(before);\n if (beforeIndex === -1) {\n return;\n }\n const idx = this.appendWorldObject(item);\n this.renderOrder.splice(beforeIndex - 1, 0, idx / 5);\n }\n hideInstance() {\n }\n asWorldObject() {\n return null;\n }\n addZone(zone) {\n this.zones.push(zone);\n }\n selectZone(id) {\n if (typeof id === \"string\") {\n const len = this.zones.length;\n for (let i = 0; i < len; i++) {\n if (this.zones[i].id === id) {\n this.selectedZone = i;\n this.trigger(\"zone-changed\");\n return;\n }\n }\n } else {\n if (this.zones[id]) {\n this.selectedZone = id;\n this.trigger(\"zone-changed\");\n }\n }\n }\n deselectZone() {\n this.selectedZone = void 0;\n }\n getActiveZone() {\n if (this.selectedZone) {\n return this.zones[this.selectedZone];\n }\n return void 0;\n }\n hasActiveZone() {\n return typeof this.selectedZone !== \"undefined\";\n }\n checkResizeInternalBuffer() {\n if (dnaLength(this.points) === this.objects.length) {\n const points = this.points;\n const newPoints = dna(this.points.length * 2);\n newPoints.set(points, 0);\n this.points = newPoints;\n }\n }\n appendWorldObject(object) {\n this.checkResizeInternalBuffer();\n const index = this.objects.length * 5;\n const pointValues = object.points;\n object.points = this.points.subarray(this.objects.length * 5, this.objects.length * 5 + 5);\n object.points[1] = pointValues[1];\n object.points[2] = pointValues[2];\n object.points[3] = pointValues[3];\n object.points[4] = pointValues[4];\n this.objects.push(object);\n this.filteredPointsBuffer = dna(this.objects.length * 5);\n this.needsRecalculate = true;\n this.triggerRepaint();\n return index;\n }\n recalculateWorldSize() {\n let didChange = false;\n if (this.needsRecalculate) {\n const wBuffer = new Int32Array(this.objects.length);\n const hBuffer = new Int32Array(this.objects.length);\n const len = this.renderOrder.length;\n for (let _index = 0; _index < len; _index++) {\n const index = this.renderOrder[_index];\n const object = this.objects[index];\n if (object) {\n wBuffer[_index] = this.points[index * 5 + 3];\n hBuffer[_index] = this.points[index * 5 + 4];\n }\n }\n const newWidth = Math.max(...wBuffer);\n if (newWidth !== this._width) {\n this._width = newWidth;\n didChange = true;\n }\n const newHeight = Math.max(...hBuffer);\n if (newHeight !== this._height) {\n this._height = newHeight;\n didChange = true;\n }\n if (didChange) {\n this.trigger(\"recalculate-world-size\", { width: newWidth, height: newHeight });\n }\n this.needsRecalculate = false;\n }\n return didChange;\n }\n addObjectAt(object, target) {\n if (target.width && !target.height) {\n target.height = target.width / object.width * object.height;\n } else if (target.height && !target.width) {\n target.width = target.height / object.height * object.width;\n }\n if (!target || !target.width || !target.height) {\n target.width = object.width;\n target.height = object.height;\n }\n const { width, x: x2, y: y2 } = target;\n const scaleFactor = width / object.width;\n this.checkResizeInternalBuffer();\n this.points.set(DnaFactory.singleBox(object.width, object.height, 0, 0), this.objects.length * 5);\n const worldObject = new WorldObject(object);\n worldObject.points = this.points.subarray(this.objects.length * 5, this.objects.length * 5 + 5);\n this.objects.push(worldObject);\n this.scaleWorldObject(this.objects.length - 1, scaleFactor);\n this.translateWorldObject(this.objects.length - 1, x2, y2);\n this.filteredPointsBuffer = dna(this.points.length * 2);\n this.triggerRepaint();\n this.needsRecalculate = true;\n return worldObject;\n }\n scaleWorldObject(index, factor) {\n mutate(this.points.subarray(index * 5, index * 5 + 5), scaleAtOrigin(factor, this.points[index * 5 + 1], this.points[index * 5 + 2]));\n const obj = this.objects[index];\n if (obj) {\n obj.atScale(factor);\n this.triggerRepaint();\n }\n }\n translateWorldObject(index, x2, y2) {\n mutate(this.points.subarray(index * 5, index * 5 + 5), translate(x2, y2));\n const obj = this.objects[index];\n if (obj) {\n obj.translate(x2, y2);\n this.triggerRepaint();\n }\n }\n resize(width, height) {\n this._width = width;\n this._height = height;\n this.aspectRatio = width / height;\n this.triggerRepaint();\n return this;\n }\n getObjects() {\n return this.objects;\n }\n getPoints() {\n return this.points;\n }\n getPointsFromViewer(target, aggregate) {\n const targetPoints = DnaFactory.singleBox(target.width, target.height, target.x, target.y);\n return this.getPointsAt(targetPoints, aggregate, target.scale);\n }\n addLayoutSubscriber(subscription) {\n this.subscriptions.push(subscription);\n return () => {\n this.subscriptions.splice(this.subscriptions.indexOf(subscription), 1);\n };\n }\n getScheduledUpdates(target, scaleFactor) {\n const filteredPoints = hidePointsOutsideRegion(this.points, target, this.filteredPointsBuffer);\n const len = this.objects.length;\n this._updatedList = [];\n for (let index = 0; index < len; index++) {\n if (filteredPoints[index * 5] !== 0) {\n if (!this.objects[index])\n continue;\n this._updatedList.push(...this.objects[index].getScheduledUpdates(target, scaleFactor));\n }\n }\n return this._updatedList;\n }\n getObjectsAt(target, all = false) {\n const zone = this.getActiveZone();\n const filteredPoints = hidePointsOutsideRegion(this.points, target, this.filteredPointsBuffer);\n const len = this.renderOrder.length;\n const objects = [];\n for (let _index = 0; _index < len; _index++) {\n const index = this.renderOrder[_index];\n if (filteredPoints[index * 5] !== 0) {\n const object = this.objects[index];\n if (!object || zone && zone.objects.indexOf(object) === -1) {\n continue;\n }\n if (object.type !== \"world-object\") {\n objects.push([object, [object]]);\n continue;\n }\n if (all) {\n objects.push([object, object.getObjectsAt(target, all)]);\n } else {\n objects.push([object, this.emptyPaintables]);\n }\n }\n }\n return objects;\n }\n getPointsAt(target, aggregate, scaleFactor = 1) {\n const objects = this.getObjectsAt(target);\n const translation = compose(scale(scaleFactor), translate(-target[1], -target[2]), this.translationBuffer);\n const transformer = aggregate ? compose(aggregate, translation, this.aggregateBuffer) : translation;\n const len = objects.length;\n const layers = [];\n for (let index = 0; index < len; index++) {\n if (objects[index]) {\n layers.push(...objects[index][0].getAllPointsAt(target, transformer, scaleFactor));\n }\n }\n return layers;\n }\n flushSubscriptions() {\n if (this.triggerQueue.length) {\n this._alreadyFlushed = [];\n const queueLen = this.triggerQueue.length;\n for (let x2 = 0; x2 < queueLen; x2++) {\n if (this._alreadyFlushed.indexOf(this.triggerQueue[x2][0]) !== -1) {\n continue;\n }\n if (typeof this.triggerQueue[x2][1] === \"undefined\") {\n this._alreadyFlushed.push(this.triggerQueue[x2][0]);\n }\n const len = this.subscriptions.length;\n for (let i = 0; i < len; i++) {\n this.subscriptions[i].apply(null, this.triggerQueue[x2]);\n }\n }\n this.triggerQueue = [];\n }\n }\n trigger(type, data) {\n this.triggerQueue.push([type, data]);\n }\n triggerEventActivation() {\n this.trigger(\"event-activation\");\n }\n triggerRepaint() {\n this.trigger(\"repaint\");\n }\n gotoRegion(data) {\n this.trigger(\"goto-region\", data);\n }\n goHome(immediate = false) {\n this.trigger(\"go-home\", {\n immediate\n });\n }\n zoomTo(factor, point, stream) {\n this.trigger(\"zoom-to\", {\n point,\n factor,\n stream\n });\n }\n zoomIn(point) {\n this.trigger(\"zoom-to\", {\n point,\n factor: 0.5\n });\n }\n zoomOut(point) {\n this.trigger(\"zoom-to\", {\n point,\n factor: 2\n });\n }\n constraintBounds(immediate) {\n this.trigger(\"constrain-bounds\", { immediate });\n }\n}\nfunction fromImage(image) {\n const { src, target } = image;\n const width = target ? target.width : image.width;\n const height = target ? target.height : image.height;\n return new WorldObject({\n id: src,\n height,\n width,\n layers: [SingleImage.fromImage(src, { height, width }, { width: image.width, height: image.height })]\n });\n}\nconst defaultConfig$1 = {\n margin: 0\n};\nclass Zone {\n constructor(objects, config = {}) {\n this.id = objects.map((obj) => obj.id).join(\"$$\");\n this.config = {\n ...defaultConfig$1,\n ...config\n };\n this.points = dna(5);\n this.objects = objects;\n this.recalculateBounds();\n }\n recalculateBounds() {\n this.points.set([\n 1,\n Math.min(...this.objects.map((obj) => obj.points[1])) - this.config.margin,\n Math.min(...this.objects.map((obj) => obj.points[2])) - this.config.margin,\n Math.max(...this.objects.map((obj) => obj.points[3])) + this.config.margin,\n Math.max(...this.objects.map((obj) => obj.points[4])) + this.config.margin\n ]);\n }\n getPointsAt(target, aggregate, scaleFactor) {\n return [];\n }\n}\nconst borderRegex = /([0-9]+(px|em)\\s+)+(solid)\\s+(.*)/g;\nconst borderRegexCache = {};\nconst styleProps = [\n \"backgroundColor\",\n \"opacity\",\n \"boxShadow\",\n \"borderColor\",\n \"borderWidth\",\n \"borderStyle\",\n \"outlineColor\",\n \"outlineWidth\",\n \"outlineOffset\",\n \"outlineStyle\"\n];\nclass Box extends BaseObject {\n constructor() {\n super();\n this.type = \"spacial-content\";\n this.hoverEvents = false;\n this.activeEvents = false;\n this.display = {\n scale: 1,\n width: -1,\n height: -1,\n points: dna(5)\n };\n this._parsed = {\n border: { id: null, match: [] },\n outline: { id: null, match: [] }\n };\n this.props = {};\n this.addHover = () => {\n this.hovering = true;\n this.__revision++;\n };\n this.removeHover = () => {\n this.hovering = false;\n this.pressing = false;\n this.__revision++;\n };\n this.addPress = () => {\n this.pressing = true;\n this.__revision++;\n };\n this.removePress = () => {\n this.pressing = false;\n this.__revision++;\n };\n this.id = nanoid(12);\n this.points = dna(5);\n }\n getAllPointsAt(target, aggregate) {\n return [[this, this.points, aggregate]];\n }\n applyProps(props = {}) {\n let didUpdate = false;\n if (props.interactive !== this.props.interactive) {\n didUpdate = true;\n this.props.interactive = props.interactive;\n }\n if (props.style) {\n const borderStyle = props.border || props.style.border;\n if (borderStyle !== this._parsed.border.id) {\n if (!borderStyle) {\n this._parsed.border.id = null;\n this._parsed.border.match = [];\n } else {\n const match = borderRegexCache[borderStyle] || borderRegex.exec(borderStyle) || borderRegex.exec(borderStyle);\n if (match) {\n this._parsed.border.id = borderStyle;\n this._parsed.border.match = borderRegexCache[borderStyle] = match;\n }\n }\n }\n if (this._parsed.border.id) {\n props.style.borderWidth = this._parsed.border.match[1];\n props.style.borderStyle = \"solid\";\n props.style.borderColor = this._parsed.border.match[4];\n }\n if (props.style.outline !== this._parsed.outline.id) {\n if (!props.style.outline) {\n this._parsed.outline.id = null;\n this._parsed.outline.match = [];\n } else {\n const match = borderRegexCache[props.style.outline] || borderRegex.exec(props.style.outline) || borderRegex.exec(props.style.outline);\n if (match) {\n this._parsed.outline.id = props.style.outline;\n this._parsed.outline.match = borderRegexCache[props.style.outline] = match;\n }\n }\n }\n if (this._parsed.outline.id) {\n props.style.outlineWidth = this._parsed.outline.match[1];\n props.style.outlineStyle = \"solid\";\n props.style.outlineColor = this._parsed.outline.match[4];\n }\n this.props.style = props.style;\n if (props.backgroundColor && !this.props.style.backgroundColor) {\n this.props.style.backgroundColor = props.backgroundColor;\n didUpdate = true;\n }\n if (props.style.background && !this.props.style.backgroundColor) {\n this.props.style.backgroundColor = props.style.background;\n didUpdate = true;\n }\n for (const prop of styleProps) {\n if (this.props.style[prop] !== props.style[prop]) {\n didUpdate = true;\n break;\n }\n }\n if (props.style[\":hover\"] !== this.props.hoverStyles) {\n this.props.hoverStyles = props.style[\":hover\"];\n if (!this.hoverEvents) {\n this.hoverEvents = true;\n this.addEventListener(\"pointerenter\", this.addHover);\n this.addEventListener(\"pointerleave\", this.removeHover);\n }\n didUpdate = true;\n }\n if (props.style[\":active\"] !== this.props.pressStyles) {\n this.props.pressStyles = props.style[\":active\"];\n if (!this.activeEvents) {\n this.activeEvents = true;\n this.addEventListener(\"mousedown\", this.addPress);\n this.addEventListener(\"mouseup\", this.removePress);\n }\n didUpdate = true;\n }\n }\n if (props.href !== this.props.href) {\n this.props.href = props.href;\n didUpdate = true;\n }\n if (props.hrefTarget !== this.props.hrefTarget) {\n this.props.hrefTarget = props.hrefTarget;\n didUpdate = true;\n }\n if (props.title !== this.props.title) {\n this.props.title = props.title;\n didUpdate = true;\n }\n if (props.className !== this.props.className) {\n this.props.className = props.className;\n if (props.className && !this.hoverEvents) {\n this.hoverEvents = true;\n this.addEventListener(\"pointerenter\", this.addHover);\n this.addEventListener(\"pointerleave\", this.removeHover);\n }\n if (props.className && !this.activeEvents) {\n this.activeEvents = true;\n this.addEventListener(\"mousedown\", this.addPress);\n this.addEventListener(\"mouseup\", this.removePress);\n }\n didUpdate = true;\n }\n if (props.relativeSize !== this.props.relativeSize) {\n this.props.relativeSize = props.relativeSize;\n didUpdate = true;\n }\n if (props.relativeStyle !== this.props.relativeStyle) {\n this.props.relativeStyle = props.relativeStyle;\n didUpdate = true;\n }\n if (props.html !== this.props.html) {\n this.props.html = props.html;\n didUpdate = true;\n }\n if (props.target) {\n if (props.target.width !== this.display.width || props.target.height !== this.display.height || props.target.x !== this.points[1] || props.target.y !== this.points[2]) {\n didUpdate = true;\n this.points = DnaFactory.singleBox(props.target.width, props.target.height, props.target.x, props.target.y);\n this.display.points = DnaFactory.singleBox(props.target.width, props.target.height, props.target.x, props.target.y);\n this.display.width = props.target.width;\n this.display.height = props.target.height;\n }\n }\n if (didUpdate) {\n this.__revision++;\n }\n }\n}\nclass Text extends BaseObject {\n constructor() {\n super();\n this.type = \"spacial-content\";\n this.color = \"#000\";\n this.text = \"\";\n this.display = {\n scale: 1,\n width: 100,\n height: 100,\n points: dna(5)\n };\n this.interactive = false;\n this.props = {\n font: \"18px Arial, sans-serif\",\n lineHeight: 1,\n textAlign: \"left\",\n verticalAlign: \"top\",\n paddingX: 0,\n paddingY: 0,\n fitParent: false,\n lineBreak: \"auto\",\n strokeText: false,\n sizeToFill: false,\n maxFontSizeToFill: void 0,\n allowNewLine: true,\n justifyLines: false,\n renderHDPI: false,\n textDecoration: \"none\",\n interactive: false,\n relativeSize: false\n };\n this.id = \"\";\n this.points = dna(5);\n }\n getAllPointsAt(target, aggregate) {\n return [[this, this.points, aggregate]];\n }\n applyProps({\n id,\n target,\n text,\n color,\n backgroundColor,\n fontSize = 18,\n interactive,\n fontFamily = \"Arial, sans-serif\",\n ...props\n }) {\n props.font = `${fontSize}px ${fontFamily}`;\n this.interactive = interactive || false;\n if (typeof text !== \"undefined\") {\n this.text = text || \"\";\n }\n if (color) {\n this.color = color;\n }\n if (backgroundColor) {\n this.backgroundColor = backgroundColor;\n }\n if (id) {\n this.id = id;\n }\n if (target) {\n this.points = DnaFactory.singleBox(target.width, target.height, target.x, target.y);\n this.display.points = this.points;\n this.display.width = target.width;\n this.display.height = target.height;\n }\n this.props = { ...this.props, ...props };\n this.__revision++;\n }\n}\nconst pow = Math.pow;\nconst sqrt = Math.sqrt;\nconst sin = Math.sin;\nconst cos = Math.cos;\nconst PI = Math.PI;\nconst c1 = 1.70158;\nconst c2 = c1 * 1.525;\nconst c3 = c1 + 1;\nconst c4 = 2 * PI / 3;\nconst c5 = 2 * PI / 4.5;\nconst bounceOut = function(x2) {\n const n1 = 7.5625;\n const d1 = 2.75;\n if (x2 < 1 / d1) {\n return n1 * x2 * x2;\n } else if (x2 < 2 / d1) {\n return n1 * (x2 -= 1.5 / d1) * x2 + 0.75;\n } else if (x2 < 2.5 / d1) {\n return n1 * (x2 -= 2.25 / d1) * x2 + 0.9375;\n } else {\n return n1 * (x2 -= 2.625 / d1) * x2 + 0.984375;\n }\n};\nconst easingFunctions = {\n linear: (x2) => x2,\n easeInQuad: function(x2) {\n return x2 * x2;\n },\n easeOutQuad: function(x2) {\n return 1 - (1 - x2) * (1 - x2);\n },\n easeInOutQuad: function(x2) {\n return x2 < 0.5 ? 2 * x2 * x2 : 1 - pow(-2 * x2 + 2, 2) / 2;\n },\n easeInCubic: function(x2) {\n return x2 * x2 * x2;\n },\n easeOutCubic: function(x2) {\n return 1 - pow(1 - x2, 3);\n },\n easeInOutCubic: function(x2) {\n return x2 < 0.5 ? 4 * x2 * x2 * x2 : 1 - pow(-2 * x2 + 2, 3) / 2;\n },\n easeInQuart: function(x2) {\n return x2 * x2 * x2 * x2;\n },\n easeOutQuart: function(x2) {\n return 1 - pow(1 - x2, 4);\n },\n easeInOutQuart: function(x2) {\n return x2 < 0.5 ? 8 * x2 * x2 * x2 * x2 : 1 - pow(-2 * x2 + 2, 4) / 2;\n },\n easeInQuint: function(x2) {\n return x2 * x2 * x2 * x2 * x2;\n },\n easeOutQuint: function(x2) {\n return 1 - pow(1 - x2, 5);\n },\n easeInOutQuint: function(x2) {\n return x2 < 0.5 ? 16 * x2 * x2 * x2 * x2 * x2 : 1 - pow(-2 * x2 + 2, 5) / 2;\n },\n easeInSine: function(x2) {\n return 1 - cos(x2 * PI / 2);\n },\n easeOutSine: function(x2) {\n return sin(x2 * PI / 2);\n },\n easeInOutSine: function(x2) {\n return -(cos(PI * x2) - 1) / 2;\n },\n easeInExpo: function(x2) {\n return x2 === 0 ? 0 : pow(2, 10 * x2 - 10);\n },\n easeOutExpo: function(x2) {\n return x2 === 1 ? 1 : 1 - pow(2, -10 * x2);\n },\n easeInOutExpo: function(x2) {\n return x2 === 0 ? 0 : x2 === 1 ? 1 : x2 < 0.5 ? pow(2, 20 * x2 - 10) / 2 : (2 - pow(2, -20 * x2 + 10)) / 2;\n },\n easeInCirc: function(x2) {\n return 1 - sqrt(1 - pow(x2, 2));\n },\n easeOutCirc: function(x2) {\n return sqrt(1 - pow(x2 - 1, 2));\n },\n easeInOutCirc: function(x2) {\n return x2 < 0.5 ? (1 - sqrt(1 - pow(2 * x2, 2))) / 2 : (sqrt(1 - pow(-2 * x2 + 2, 2)) + 1) / 2;\n },\n easeInBack: function(x2) {\n return c3 * x2 * x2 * x2 - c1 * x2 * x2;\n },\n easeOutBack: function(x2) {\n return 1 + c3 * pow(x2 - 1, 3) + c1 * pow(x2 - 1, 2);\n },\n easeInOutBack: function(x2) {\n return x2 < 0.5 ? pow(2 * x2, 2) * ((c2 + 1) * 2 * x2 - c2) / 2 : (pow(2 * x2 - 2, 2) * ((c2 + 1) * (x2 * 2 - 2) + c2) + 2) / 2;\n },\n easeInElastic: function(x2) {\n return x2 === 0 ? 0 : x2 === 1 ? 1 : -pow(2, 10 * x2 - 10) * sin((x2 * 10 - 10.75) * c4);\n },\n easeOutElastic: function(x2) {\n return x2 === 0 ? 0 : x2 === 1 ? 1 : pow(2, -10 * x2) * sin((x2 * 10 - 0.75) * c4) + 1;\n },\n easeInOutElastic: function(x2) {\n return x2 === 0 ? 0 : x2 === 1 ? 1 : x2 < 0.5 ? -(pow(2, 20 * x2 - 10) * sin((20 * x2 - 11.125) * c5)) / 2 : pow(2, -20 * x2 + 10) * sin((20 * x2 - 11.125) * c5) / 2 + 1;\n },\n easeInBounce: function(x2) {\n return 1 - bounceOut(1 - x2);\n },\n easeOutBounce: bounceOut,\n easeInOutBounce: function(x2) {\n return x2 < 0.5 ? (1 - bounceOut(1 - 2 * x2)) / 2 : (1 + bounceOut(2 * x2 - 1)) / 2;\n }\n};\nclass TransitionManager {\n constructor(runtime) {\n this.runtime = runtime;\n this.pendingTransition = {\n from: dna(5),\n to: dna(5),\n elapsed_time: 0,\n done: true,\n total_time: 0,\n timingFunction: easingFunctions.easeInOutQuad,\n constrain: false\n };\n }\n hasPending() {\n return !this.pendingTransition.done;\n }\n getPendingTransition() {\n return this.pendingTransition;\n }\n getPendingFrom() {\n return this.pendingTransition.from;\n }\n customTransition(func) {\n func(this.pendingTransition);\n }\n stopTransition() {\n this.pendingTransition.from = dna(this.runtime.target);\n this.pendingTransition.to = dna(this.runtime.target);\n this.pendingTransition.done = true;\n this.pendingTransition.elapsed_time = 0;\n this.pendingTransition.total_time = 0;\n }\n runTransition(target, delta) {\n if (!this.pendingTransition.done) {\n const transition = this.pendingTransition;\n const td = (transition.elapsed_time + delta) / transition.total_time;\n const step = transition.timingFunction(td > 1 ? 1 : td);\n target[1] = transition.from[1] + (transition.to[1] - transition.from[1]) * step;\n target[2] = transition.from[2] + (transition.to[2] - transition.from[2]) * step;\n target[3] = transition.from[3] + (transition.to[3] - transition.from[3]) * step;\n target[4] = transition.from[4] + (transition.to[4] - transition.from[4]) * step;\n this.pendingTransition.elapsed_time += delta;\n if (this.pendingTransition.elapsed_time >= this.pendingTransition.total_time) {\n this.pendingTransition.done = true;\n if (this.pendingTransition.constrain) {\n this.constrainBounds({\n transition: {\n duration: this.pendingTransition.total_time === 0 ? 0 : 500,\n easing: easingFunctions.easeOutExpo\n }\n });\n }\n }\n }\n }\n zoomTo(factor, {\n origin,\n stream = false,\n transition\n } = {}) {\n const newPoints = this.runtime.getZoomedPosition(factor, { origin });\n const dist = Math.abs(1 - factor);\n this.applyTransition(newPoints, transition, {\n duration: 2e3 * dist,\n easing: easingFunctions.easeOutExpo,\n constrain: true\n }, { stream: false });\n }\n constrainBounds({\n transition,\n panPadding = 0\n } = {}) {\n const [isConstrained, constrained] = this.runtime.constrainBounds(this.runtime.target, { panPadding });\n if (isConstrained) {\n this.applyTransition(constrained, transition, {\n duration: 500,\n easing: easingFunctions.easeOutQuart,\n constrain: false\n });\n this.runtime.updateNextFrame();\n }\n }\n applyTransition(target, transition, defaults, {\n stream\n } = {}) {\n this.pendingTransition.from = dna(this.runtime.target);\n this.pendingTransition.to = target;\n if (!stream) {\n this.pendingTransition.elapsed_time = 0;\n }\n this.pendingTransition.done = false;\n this.pendingTransition.total_time = typeof (transition == null ? void 0 : transition.duration) !== \"undefined\" ? transition.duration : typeof (defaults == null ? void 0 : defaults.duration) !== \"undefined\" ? defaults.duration : 1e3;\n this.pendingTransition.constrain = typeof (transition == null ? void 0 : transition.constrain) !== \"undefined\" ? transition.constrain : typeof (defaults == null ? void 0 : defaults.constrain) !== \"undefined\" ? defaults.constrain : false;\n this.pendingTransition.timingFunction = (transition == null ? void 0 : transition.easing) || (defaults == null ? void 0 : defaults.easing) || easingFunctions.easeInOutSine;\n }\n goToRegion(target, {\n transition\n } = {}) {\n const clampedRegion = this.runtime.clampRegion(target);\n this.applyTransition(DnaFactory.singleBox(clampedRegion.width, clampedRegion.height, clampedRegion.x, clampedRegion.y), transition, {\n duration: 1e3,\n easing: easingFunctions.easeOutExpo,\n constrain: true\n });\n this.runtime.updateNextFrame();\n }\n}\nclass Runtime {\n constructor(renderer, world, target, controllers = [], options) {\n this.ready = false;\n this.transformBuffer = dna(500);\n this.lastTarget = dna(5);\n this.zoomBuffer = dna(5);\n this.logNextRender = false;\n this.pendingUpdate = true;\n this.firstRender = true;\n this.mode = \"explore\";\n this.controllers = [];\n this.controllersRunning = false;\n this.controllerStopFunctions = [];\n this.maxScaleFactor = 1;\n this._viewerToWorld = { x: 0, y: 0 };\n this._lastGoodScale = 1;\n this.hooks = {\n useFrame: [],\n useBeforeFrame: [],\n useAfterPaint: [],\n useAfterFrame: []\n };\n this._viewport = { x: 0, y: 0, width: 0, height: 0 };\n this.setViewport = (data) => {\n const x2 = typeof data.x === \"undefined\" ? this.target[1] : data.x;\n const y2 = typeof data.y === \"undefined\" ? this.target[2] : data.y;\n if (data.width) {\n this.target[3] = x2 + data.width;\n } else {\n this.target[3] = this.target[3] - this.target[1] + x2;\n }\n if (data.height) {\n this.target[4] = y2 + data.height;\n } else {\n this.target[4] = this.target[4] - this.target[2] + y2;\n }\n if (Math.abs(this.target[1] - x2) > 0.01) {\n this.target[1] = x2;\n }\n if (Math.abs(this.target[2] - y2) > 0.01) {\n this.target[2] = y2;\n }\n this.pendingUpdate = true;\n };\n this.render = (t) => {\n const delta = t - this.lastTime;\n if (this.fpsLimit && delta < 1e3 / this.fpsLimit) {\n this.stopId = window.requestAnimationFrame(this.render);\n return;\n }\n this.lastTime = t;\n this.world.flushSubscriptions();\n this.stopId = window.requestAnimationFrame(this.render);\n this.hook(\"useFrame\", delta);\n const pendingUpdate = this.pendingUpdate;\n const rendererPendingUpdate = this.renderer.pendingUpdate();\n if (this.transitionManager.hasPending()) {\n this.transitionManager.runTransition(this.target, delta);\n this.pendingUpdate = true;\n this.updateControllerPosition();\n }\n if (!this.firstRender && !pendingUpdate && !rendererPendingUpdate && this.target[0] === this.lastTarget[0] && this.target[1] === this.lastTarget[1] && this.target[2] === this.lastTarget[2] && this.target[3] === this.lastTarget[3] && this.target[4] === this.lastTarget[4]) {\n return;\n }\n this.hook(\"useBeforeFrame\", delta);\n this.renderer.beforeFrame(this.world, delta, this.target);\n const scaleFactor = this.getScaleFactor();\n const points = this.renderer.getPointsAt(this.world, this.target, this.aggregate, scaleFactor);\n const pointsLen = points.length;\n for (let p2 = 0; p2 < pointsLen; p2++) {\n const paint = points[p2][0];\n const point = points[p2][1];\n const transformation = points[p2][2];\n this.renderer.prepareLayer(paint);\n const position = transformation ? transform(point, transformation, this.transformBuffer) : point;\n const totalTiles = position.length / 5;\n for (let i = 0; i < totalTiles; i++) {\n const key = i * 5;\n if (position[key] === 0) {\n continue;\n }\n this.renderer.paint(paint, i, position[key + 1], position[key + 2], position[key + 3] - position[key + 1], position[key + 4] - position[key + 2]);\n this.hook(\"useAfterPaint\", paint);\n }\n }\n this.renderer.afterFrame(this.world, delta, this.target);\n this.hook(\"useAfterFrame\", delta);\n this.lastTarget[0] = this.target[0];\n this.lastTarget[1] = this.target[1];\n this.lastTarget[2] = this.target[2];\n this.lastTarget[3] = this.target[3];\n this.lastTarget[4] = this.target[4];\n this.firstRender = false;\n this.pendingUpdate = false;\n this.logNextRender = false;\n if (this.renderer.isReady()) {\n this.ready = true;\n this.world.trigger(\"ready\");\n }\n this.world.flushSubscriptions();\n const updates = this.world.getScheduledUpdates(this.target, scaleFactor);\n const len = updates.length;\n if (len > 0) {\n for (let i = 0; i < len; i++) {\n const update = updates[len - i - 1]();\n if (update) {\n update.then(() => {\n this.pendingUpdate = true;\n });\n } else {\n this.pendingUpdate = true;\n }\n }\n }\n };\n this.renderer = renderer;\n this.world = world;\n this.options = {\n maxOverZoom: 1,\n maxUnderZoom: 1,\n visibilityRatio: 1.5,\n ...options || {}\n };\n this.target = DnaFactory.projection(target);\n this.manualHomePosition = false;\n this.pendingUpdate = true;\n this.homePosition = DnaFactory.projection(this.world);\n this.manualFocalPosition = false;\n this.focalPosition = this.target;\n this.updateFocalPosition();\n this.transitionManager = new TransitionManager(this);\n this.aggregate = scale(1);\n this.world.addLayoutSubscriber((type) => {\n if (type === \"repaint\") {\n this.pendingUpdate = true;\n }\n if (type === \"recalculate-world-size\") {\n if (!this.manualHomePosition) {\n this.setHomePosition();\n this.goHome();\n }\n this.updateFocalPosition();\n }\n });\n this.lastTime = performance.now();\n this.controllers = controllers;\n this.render(this.lastTime);\n this.startControllers();\n }\n get x() {\n return this.target[1];\n }\n set x(x2) {\n this.target[1] = x2;\n }\n get y() {\n return this.target[2];\n }\n set y(y2) {\n this.target[2] = y2;\n }\n get x2() {\n return this.target[3];\n }\n set x2(x2) {\n this.target[3] = x2;\n }\n get y2() {\n return this.target[4];\n }\n set y2(y2) {\n this.target[4] = y2;\n }\n get width() {\n return this.target[3] - this.target[1];\n }\n set width(width) {\n this.target[3] = this.target[1] + width;\n }\n get height() {\n return this.target[4] - this.target[2];\n }\n set height(height) {\n this.target[4] = this.target[2] = height;\n }\n setHomePosition(position) {\n this.homePosition.set(DnaFactory.projection(position ? position : this.world));\n this.pendingUpdate = true;\n }\n startControllers() {\n if (this.controllersRunning) {\n return;\n }\n for (const controller of this.controllers) {\n this.controllerStopFunctions.push(controller.start(this));\n }\n this.controllersRunning = true;\n }\n stopControllers() {\n if (!this.controllersRunning) {\n return;\n }\n for (const controller of this.controllerStopFunctions) {\n controller();\n }\n this.controllersRunning = false;\n this.controllerStopFunctions = [];\n }\n updateControllerPosition() {\n for (const controller of this.controllers) {\n controller.updatePosition(this.x, this.y, this.width, this.height);\n }\n }\n triggerResize() {\n if (this.renderer.triggerResize) {\n this.renderer.triggerResize();\n }\n this.pendingUpdate = true;\n }\n addController(controller) {\n this.controllers.push(controller);\n if (this.controllersRunning) {\n controller.start(this);\n }\n this.pendingUpdate = true;\n }\n cover() {\n return this.goHome({ cover: true });\n }\n getRendererScreenPosition() {\n return this.renderer.getRendererScreenPosition();\n }\n updateRendererScreenPosition() {\n this.pendingUpdate = true;\n this.renderer.resize();\n }\n goHome(options = {}) {\n if (this.world.width <= 0 || this.world.height <= 0)\n return;\n const scaleFactor = this.getScaleFactor();\n const target = options.position ? {\n x: options.position[1],\n y: options.position[2],\n width: options.position[3] - options.position[1],\n height: options.position[4] - options.position[2]\n } : {\n x: this.homePosition[1],\n y: this.homePosition[2],\n width: this.homePosition[3] - this.homePosition[1],\n height: this.homePosition[4] - this.homePosition[2]\n };\n const width = this.width * scaleFactor;\n const height = this.height * scaleFactor;\n const widthScale = target.width / width;\n const heightScale = target.height / height;\n const ar = width / height;\n if (options.cover ? widthScale > heightScale : widthScale < heightScale) {\n const fullWidth = ar * target.height;\n const space = (fullWidth - target.width) / 2;\n this.target[1] = -space + target.x;\n this.target[2] = target.y;\n this.target[3] = fullWidth - space + target.x;\n this.target[4] = target.height + target.y;\n } else {\n const fullHeight = target.width / ar;\n const space = (fullHeight - target.height) / 2;\n this.target[1] = target.x;\n this.target[2] = target.y - space;\n this.target[3] = target.x + target.width;\n this.target[4] = target.y + fullHeight - space;\n }\n this.constrainBounds(this.target);\n this.updateControllerPosition();\n }\n resize(fromWidth, toWidth, fromHeight, toHeight) {\n this.updateFocalPosition(fromWidth - toWidth, fromHeight - toHeight);\n const widthRatio = toWidth / fromWidth;\n const heightRatio = toHeight / fromHeight;\n this.target[3] = this.target[1] + (this.target[3] - this.target[1]) * widthRatio;\n this.target[4] = this.target[2] + (this.target[4] - this.target[2]) * heightRatio;\n this.goHome({ position: this.focalPosition });\n this.renderer.resize(toWidth, toHeight);\n this.pendingUpdate = true;\n }\n updateFocalPosition(widthDiff, heightDiff) {\n if (!this.manualFocalPosition) {\n const w2 = this.width;\n const h2 = this.height;\n const min = Math.min(w2, h2);\n const marginTrimWidth = 0;\n const marginTrimHeight = 0;\n const baseX = this.x + marginTrimWidth;\n const baseY = this.y + marginTrimHeight;\n if (w2 < h2) {\n const diff = this.height - this.width;\n this.focalPosition = DnaFactory.projection({\n x: baseX,\n y: baseY + diff / 2,\n width: min - marginTrimWidth * 2,\n height: min - marginTrimHeight * 2\n });\n this.pendingUpdate = true;\n } else {\n const diff = this.width - this.height;\n this.focalPosition = DnaFactory.projection({\n x: baseX + diff / 2,\n y: baseY,\n width: min - marginTrimWidth * 2,\n height: min - marginTrimHeight * 2\n });\n this.pendingUpdate = true;\n }\n }\n }\n getViewport() {\n this._viewport.x = this.target[1];\n this._viewport.y = this.target[2];\n this._viewport.width = this.target[3] - this.target[1];\n this._viewport.height = this.target[4] - this.target[2];\n return this._viewport;\n }\n constrainBounds(target, { panPadding = 0, ref = false } = {}) {\n const { minX, maxX, minY, maxY } = this.getBounds({ target, padding: panPadding });\n let isConstrained = false;\n const constrained = ref ? target : dna(target);\n const width = target[3] - target[1];\n const height = target[4] - target[2];\n if (minX > target[1]) {\n isConstrained = true;\n constrained[1] = minX;\n constrained[3] = minX + width;\n }\n if (minY > target[2]) {\n isConstrained = true;\n constrained[2] = minY;\n constrained[4] = minY + height;\n }\n if (maxX < target[1]) {\n isConstrained = true;\n constrained[1] = maxX;\n constrained[3] = maxX + width;\n }\n if (maxY < target[2]) {\n isConstrained = true;\n constrained[2] = maxY;\n constrained[4] = maxY + height;\n }\n return [isConstrained, constrained];\n }\n getBounds(options) {\n const target = options.target || this.target;\n const padding = options.padding;\n const visRatio = this.options.visibilityRatio;\n const hiddenRatio = Math.abs(1 - visRatio);\n if (this.world.hasActiveZone()) {\n const zone = this.world.getActiveZone();\n if (zone) {\n const xCon = target[3] - target[1] < zone.points[3] - zone.points[1];\n const yCon = target[4] - target[2] < zone.points[4] - zone.points[2];\n return {\n minX: xCon ? zone.points[1] - padding : zone.points[1] + (zone.points[3] - zone.points[1]) / 2 - (target[3] - target[1]) / 2,\n maxX: yCon ? zone.points[2] - padding : zone.points[2] + (zone.points[4] - zone.points[2]) / 2 - (target[4] - target[2]) / 2,\n minY: xCon ? zone.points[3] + padding : zone.points[1] + (zone.points[3] - zone.points[1]) / 2 - (target[3] - target[1]) / 2,\n maxY: yCon ? zone.points[4] + padding : zone.points[2] + (zone.points[4] - zone.points[2]) / 2 - (target[4] - target[2]) / 2\n };\n }\n }\n const wt = target[3] - target[1];\n const ww = this.world.width;\n const xB = -wt * hiddenRatio;\n const xD = ww - wt - xB;\n const ht = target[4] - target[2];\n const hw = this.world.height;\n const yB = -ht * hiddenRatio;\n const yD = hw - ht - yB;\n const maxX = Math.max(xB, xD);\n const minX = Math.min(xB, xD);\n const maxY = Math.max(yB, yD);\n const minY = Math.min(yB, yD);\n return { minX, maxX, minY, maxY };\n }\n getScaleFactor(dpi = false) {\n const scale2 = this.renderer.getScale(this.target[3] - this.target[1], this.target[4] - this.target[2], dpi);\n if (scale2 === 0) {\n return this._lastGoodScale;\n }\n this._lastGoodScale = scale2;\n return scale2;\n }\n getZoomedPosition(factor, {\n origin,\n fromPos: _fromPos\n }) {\n var _a;\n const fromPos = _fromPos ? { width: _fromPos[3] - _fromPos[1], height: _fromPos[4] - _fromPos[2] } : void 0;\n const scaleFactor = fromPos ? this.renderer.getScale(fromPos.width, fromPos.height) : this.getScaleFactor();\n const w2 = fromPos ? fromPos.width : this.width;\n const h2 = fromPos ? fromPos.height : this.height;\n const sWidth = (_a = this.getRendererScreenPosition()) == null ? void 0 : _a.width;\n const wWidth = this.world.width;\n const ratio = sWidth ? sWidth / wWidth : 1;\n const maxUnderZoom = this.options.maxUnderZoom;\n const maxOverZoom = Math.max(ratio || 1, this.options.maxOverZoom);\n const realFactor = 1 / factor;\n const proposedFactor = scaleFactor * realFactor;\n const isZoomingOut = realFactor < 1;\n if (isZoomingOut) {\n const width = w2 * scaleFactor;\n const height = h2 * scaleFactor;\n const widthScale = this.world.width / width;\n const heightScale = this.world.height / height;\n if (widthScale > heightScale) {\n const proposedWorldDisplayWidth = this.world.width * proposedFactor;\n const displayWidth = ~~(w2 * scaleFactor);\n const displayWidthAdjusted = displayWidth * maxUnderZoom;\n if (proposedWorldDisplayWidth < displayWidthAdjusted) {\n factor = this.world.width * scaleFactor / (w2 * scaleFactor * maxUnderZoom);\n }\n } else {\n const proposedWorldDisplayHeight = this.world.height * proposedFactor;\n const displayHeight = ~~(h2 * scaleFactor);\n const displayHeightAdjusted = displayHeight * maxUnderZoom;\n if (proposedWorldDisplayHeight < displayHeightAdjusted) {\n factor = this.world.height * scaleFactor / (h2 * scaleFactor * maxUnderZoom);\n }\n }\n } else {\n if (proposedFactor > 1) {\n factor = scaleFactor / maxOverZoom;\n }\n }\n const proposedStrand = transform(this.target, scaleAtOrigin(factor, origin ? origin.x : this.target[1] + (this.target[3] - this.target[1]) / 2, origin ? origin.y : this.target[2] + (this.target[4] - this.target[2]) / 2), this.zoomBuffer);\n this.constrainBounds(proposedStrand, { ref: true, panPadding: 100 });\n return proposedStrand;\n }\n clampRegion({\n x: x2,\n y: y2,\n width,\n height,\n padding = 0\n }) {\n const w2 = this.width;\n const h2 = this.height;\n const matchesHeight = width / w2 < height / h2;\n const rx = x2 - padding;\n const ry = y2 - padding;\n const rWidth = width + padding * 2;\n const rHeight = height + padding * 2;\n if (matchesHeight) {\n const actualWidth = rHeight / h2 * w2;\n return {\n x: rx - (actualWidth - rWidth) / 2,\n y: ry,\n width: actualWidth,\n height: rHeight\n };\n }\n const actualHeight = rWidth / w2 * h2;\n return {\n x: rx,\n y: ry - (actualHeight - rHeight) / 2,\n width: rWidth,\n height: actualHeight\n };\n }\n viewerToWorld(x2, y2) {\n const scaleFactor = this.getScaleFactor();\n this._viewerToWorld.x = this.target[1] + x2 / scaleFactor;\n this._viewerToWorld.y = this.target[2] + y2 / scaleFactor;\n return this._viewerToWorld;\n }\n worldToViewer(x2, y2, width, height) {\n const strand = DnaFactory.singleBox(width, height, x2, y2);\n mutate(strand, compose(scale(this.getScaleFactor()), translate(-this.target[1], -this.target[2])));\n return {\n x: strand[1],\n y: strand[2],\n width: strand[3] - strand[1],\n height: strand[4] - strand[2],\n strand\n };\n }\n setScale(scaleFactor, origin) {\n mutate(this.target, scaleAtOrigin(scaleFactor, origin ? origin.x : this.target[1] + (this.target[3] - this.target[1]) / 2, origin ? origin.y : this.target[2] + (this.target[4] - this.target[2]) / 2));\n this.pendingUpdate = true;\n }\n syncTo(runtime) {\n const oldTarget = this.target;\n this.target = runtime.target;\n this.pendingUpdate = true;\n return () => {\n this.target = oldTarget;\n };\n }\n stop() {\n if (typeof this.stopId !== \"undefined\") {\n window.cancelAnimationFrame(this.stopId);\n this.stopId = void 0;\n }\n return () => {\n this.render(performance.now());\n };\n }\n selectZone(zone) {\n this.world.selectZone(zone);\n this.pendingUpdate = true;\n }\n deselectZone() {\n this.world.deselectZone();\n this.pendingUpdate = true;\n }\n hook(name, arg) {\n const len = this.hooks[name].length;\n if (len !== 0) {\n for (let x2 = 0; x2 < len; x2++) {\n this.hooks[name][x2](arg);\n }\n }\n }\n registerHook(name, hook) {\n this.hooks[name].push(hook);\n return () => {\n this.hooks[name] = this.hooks[name].filter((e) => e !== hook);\n };\n }\n updateNextFrame() {\n this.pendingUpdate = true;\n }\n}\nconst shadowRegex = /(-?[0-9]+(px|em)\\s+|0\\s+)(-?[0-9]+(px|em)\\s+|0\\s+)(-?[0-9]+(px|em)\\s+|0\\s+)?(-?[0-9]+(px|em)\\s+|0\\s+)?(.*)/g;\nconst shadowRegexCache = {};\nconst imageCache = {};\nconst hostCache = {};\nclass CanvasRenderer {\n constructor(canvas, options) {\n this.imagesPending = 0;\n this.imagesLoaded = 0;\n this.frameIsRendering = false;\n this.pendingDrawCall = false;\n this.firstMeaningfulPaint = false;\n this.parallelTasks = 8;\n this.frameTasks = 3;\n this.loadingQueueOrdered = true;\n this.loadingQueue = [];\n this.currentTask = Promise.resolve();\n this.tasksRunning = 0;\n this.averageJobTime = 1e3;\n this.lastKnownScale = 1;\n this.visible = [];\n this.previousVisible = [];\n this.drawCalls = [];\n this._worker = () => {\n if (this.loadingQueue.length && this.tasksRunning < this.parallelTasks && this.frameTasks < this.parallelTasks) {\n const next = this.loadingQueue.pop();\n if (next) {\n const outOfBounds = !next.shifted && Math.abs(1 - next.scale / (1 / this.lastKnownScale)) >= 1;\n if (outOfBounds && !next.shifted) {\n next.shifted = true;\n this.loadingQueue.unshift(next);\n return;\n }\n this.tasksRunning++;\n this.frameTasks++;\n this.currentTask = next.task().then(() => {\n this.tasksRunning--;\n }).catch(() => {\n this.tasksRunning--;\n });\n }\n }\n };\n this._scheduled = 0;\n this._doWork = () => {\n if (this.frameIsRendering || this.loadingQueue.length === 0 && this.tasksRunning === 0 && this._scheduled) {\n clearInterval(this._scheduled);\n this._scheduled = 0;\n }\n this._worker();\n };\n this.canvas = canvas;\n this.rendererPosition = canvas.getBoundingClientRect();\n this.ctx = canvas.getContext(\"2d\", { alpha: false });\n this.ctx.imageSmoothingEnabled = true;\n this.options = options || {};\n this.canvas.style.opacity = \"0\";\n this.canvas.style.transition = \"opacity .3s\";\n this.dpi = (options == null ? void 0 : options.dpi) || 1;\n }\n getCanvasDims() {\n return { width: this.canvas.width / this.dpi, height: this.canvas.height / this.dpi };\n }\n resize() {\n this.rendererPosition = this.canvas.getBoundingClientRect();\n }\n isReady() {\n return this.firstMeaningfulPaint;\n }\n afterFrame(world) {\n this.frameIsRendering = false;\n this.imagesPending = this.imagesPending - this.imagesLoaded;\n this.imagesLoaded = 0;\n if (!this.loadingQueueOrdered) {\n this.loadingQueue = this.loadingQueue.sort((a, b2) => {\n return a.scale - b2.scale || b2.distance - a.distance;\n });\n this.loadingQueueOrdered = true;\n }\n this.previousVisible = this.visible;\n this.pendingDrawCall = !!this.drawCalls.length;\n if (this.pendingDrawCall) {\n const nextCall = this.drawCalls.shift();\n if (nextCall)\n nextCall();\n }\n this.doOffscreenWork();\n if (this.options.debug && this.stats) {\n this.stats.end();\n }\n }\n doOffscreenWork() {\n this.frameTasks = 0;\n if (this.loadingQueue.length) {\n this._worker();\n if (this.loadingQueue.length && this.tasksRunning < this.parallelTasks) {\n if (!this._scheduled) {\n this._scheduled = setInterval(this._doWork, 0);\n }\n }\n }\n }\n getScale(width, height, dpi) {\n if (Number.isNaN(width) || Number.isNaN(height)) {\n return this.lastKnownScale;\n }\n const canvas = this.getCanvasDims();\n const w2 = canvas.width / width;\n const h2 = canvas.height / height;\n const scale2 = (w2 < h2 ? h2 : w2) * (dpi ? this.dpi || 1 : 1);\n if (!Number.isNaN(scale2)) {\n this.lastKnownScale = scale2;\n }\n return this.lastKnownScale;\n }\n beforeFrame(world, delta, target) {\n if (this.options.debug && this.stats) {\n this.stats.begin();\n }\n this.frameIsRendering = true;\n this.visible = [];\n if (this.options.beforeFrame) {\n this.options.beforeFrame(delta);\n }\n const canvas = this.getCanvasDims();\n this.ctx.globalAlpha = 1;\n this.ctx.fillStyle = this.options.background || \"rgb(0, 0, 0)\";\n this.ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n paint(paint, index, x2, y2, width, height) {\n const ga = this.ctx.globalAlpha;\n if (paint instanceof SingleImage || paint instanceof TiledImage) {\n this.visible.push(paint);\n if (typeof paint.style && paint.style.opacity !== \"undefined\") {\n if (!paint.style.opacity) {\n return;\n }\n this.ctx.globalAlpha = paint.style.opacity;\n }\n try {\n const imageBuffer = paint.__host.canvas;\n const canvas = this.getCanvasDims();\n if (imageBuffer.indices.indexOf(index) === -1) {\n this.schedulePaintToCanvas(imageBuffer, paint, index, distance({ x: x2 + width / 2, y: y2 + width / 2 }, { x: canvas.width / 2, y: canvas.height / 2 }));\n }\n if (!this.firstMeaningfulPaint) {\n return;\n }\n const canvasToPaint = imageBuffer.canvases[index];\n if (canvasToPaint) {\n if (paint.crop) {\n if (paint.crop[0]) {\n this.ctx.drawImage(canvasToPaint, paint.display.points[index * 5 + 1] - paint.crop[index * 5 + 1], paint.display.points[index * 5 + 2] - paint.crop[index * 5 + 2], paint.crop[index * 5 + 3] - paint.crop[index * 5 + 1] - 1, paint.crop[index * 5 + 4] - paint.crop[index * 5 + 2] - 1, x2, y2, width + Number.MIN_VALUE, height + Number.MIN_VALUE);\n }\n } else {\n this.ctx.drawImage(canvasToPaint, 0, 0, paint.display.points[index * 5 + 3] - paint.display.points[index * 5 + 1] - 1, paint.display.points[index * 5 + 4] - paint.display.points[index * 5 + 2] - 1, x2, y2, width + Number.MIN_VALUE, height + Number.MIN_VALUE);\n }\n }\n } catch (err) {\n }\n }\n if (this.options.box && paint instanceof Box && !paint.props.className && !paint.props.html && !paint.props.href) {\n if (paint.props.style) {\n const style = Object.assign({}, paint.props.style || {}, paint.hovering ? paint.props.hoverStyles : {}, paint.pressing ? paint.props.pressStyles : {});\n const scale2 = paint.props.relativeStyle ? 1 : width / paint.width;\n if (typeof style.opacity !== \"undefined\") {\n this.ctx.globalAlpha = style.opacity;\n }\n let bw = 0;\n if (typeof style.borderWidth !== \"undefined\") {\n bw = parseInt(style.borderWidth, 10) * scale2;\n }\n let ow = 0;\n if (typeof style.outlineWidth !== \"undefined\") {\n ow = parseInt(style.outlineWidth, 10) * scale2;\n }\n let oo = 0;\n if (typeof style.outlineOffset !== \"undefined\") {\n oo = parseInt(style.outlineOffset, 10) * scale2;\n }\n if (style.borderColor) {\n this.ctx.strokeStyle = style.borderColor;\n }\n if (style.boxShadow) {\n const shadows = style.boxShadow.split(/,(?![^(]*\\))/);\n for (const shadow of shadows) {\n const parsed = shadowRegexCache[shadow] || shadowRegex.exec(shadow) || shadowRegex.exec(shadow);\n shadowRegexCache[shadow] = parsed;\n if (parsed) {\n this.ctx.save();\n this.ctx.shadowOffsetX = parseInt(parsed[1]) * this.dpi * scale2;\n this.ctx.shadowOffsetY = parseInt(parsed[3]) * this.dpi * scale2;\n this.ctx.shadowBlur = parseInt(parsed[5]) * this.dpi * scale2;\n this.ctx.shadowColor = parsed[9];\n this.ctx.fillStyle = \"rgba(0,0,0,1)\";\n this.ctx.fillRect(x2 + bw, y2 + bw, width, height);\n this.ctx.restore();\n }\n }\n }\n this.ctx.fillStyle = style.backgroundColor || \"transparent\";\n this.ctx.lineWidth = bw;\n if (bw) {\n this.ctx.strokeRect(x2 + bw / 2, y2 + bw / 2, width + bw, height + bw);\n }\n this.ctx.fillRect(x2 + bw, y2 + bw, width, height);\n if (ow) {\n if (style.outlineColor) {\n this.ctx.strokeStyle = style.outlineColor;\n }\n this.ctx.lineWidth = ow;\n this.ctx.strokeRect(x2 - ow / 2 - oo, y2 - ow / 2 - oo, width + bw * 2 + ow + oo * 2, height + bw * 2 + ow + oo * 2);\n }\n }\n this.ctx.globalAlpha = ga;\n }\n }\n loadImage(url, callback, err) {\n if (imageCache[url] && imageCache[url].naturalWidth > 0) {\n callback(imageCache[url]);\n return;\n }\n try {\n const image = document.createElement(\"img\");\n image.decoding = \"auto\";\n image.onload = function() {\n callback(image);\n imageCache[url] = image;\n image.onload = null;\n };\n if (this.options.crossOrigin) {\n image.crossOrigin = \"anonymous\";\n }\n image.src = url;\n } catch (e) {\n err(e);\n }\n }\n schedulePaintToCanvas(imageBuffer, paint, index, priority) {\n this.imagesPending++;\n imageBuffer.indices.push(index);\n imageBuffer.canvases[index] = document.createElement(\"canvas\");\n paint.__host.canvas.loading = true;\n const id = `${paint.id}--${paint.display.scale}`;\n this.loadingQueueOrdered = false;\n this.loadingQueue.push({\n id,\n scale: paint.display.scale,\n distance: priority,\n task: () => new Promise((resolve) => {\n if (this.visible.indexOf(paint) === -1) {\n this.imagesPending--;\n imageBuffer.indices.splice(imageBuffer.indices.indexOf(index), 1);\n resolve();\n return;\n }\n const url = paint.getImageUrl(index);\n this.loadImage(url, (image) => {\n this.loadingQueue.push({\n id,\n scale: paint.display.scale,\n distance: priority,\n task: () => {\n return new Promise((innerResolve) => {\n this.imagesLoaded++;\n imageBuffer.loaded.push(index);\n if (imageBuffer.loaded.length === imageBuffer.indices.length) {\n imageBuffer.loading = false;\n }\n const points = paint.display.points.slice(index * 5, index * 5 + 5);\n const canvas = imageBuffer.canvases[index];\n const ctx = canvas.getContext(\"2d\");\n canvas.width = points[3] - points[1];\n canvas.height = points[4] - points[2];\n this.drawCalls.push(() => {\n ctx.drawImage(image, 0, 0, points[3] - points[1], points[4] - points[2]);\n innerResolve();\n });\n });\n }\n });\n resolve();\n }, (err) => {\n this.imagesPending--;\n imageBuffer.indices.splice(imageBuffer.indices.indexOf(index), 1);\n console.log(\"Error loading image\", err);\n resolve();\n });\n })\n });\n }\n afterPaintLayer(paint, transform2) {\n }\n prepareLayer(paint) {\n if (!paint.__host || !paint.__host.canvas) {\n if (paint instanceof SingleImage || paint instanceof TiledImage) {\n this.createImageHost(paint);\n }\n }\n }\n createImageHost(paint) {\n var _a;\n const canvas = document.createElement(\"canvas\");\n canvas.width = paint.display.width;\n canvas.height = paint.display.height;\n (_a = canvas.getContext(\"2d\")) == null ? void 0 : _a.clearRect(0, 0, paint.display.width, paint.display.height);\n paint.__host = paint.__host ? paint.__host : {};\n paint.__host.canvas = { canvas, canvases: [], indices: [], loaded: [], loading: false };\n hostCache[paint.id] = paint.__host;\n }\n getPointsAt(world, target, aggregate, scaleFactor) {\n return world.getPointsAt(target, aggregate, scaleFactor);\n }\n getViewportBounds(world, target, padding) {\n const zone = world.getActiveZone();\n if (zone) {\n const xCon = target[3] - target[1] < zone.points[3] - zone.points[1];\n const yCon = target[4] - target[2] < zone.points[4] - zone.points[2];\n return {\n x1: xCon ? zone.points[1] - padding : zone.points[1] + (zone.points[3] - zone.points[1]) / 2 - (target[3] - target[1]) / 2,\n y1: yCon ? zone.points[2] - padding : zone.points[2] + (zone.points[4] - zone.points[2]) / 2 - (target[4] - target[2]) / 2,\n x2: xCon ? zone.points[3] + padding : zone.points[1] + (zone.points[3] - zone.points[1]) / 2 - (target[3] - target[1]) / 2,\n y2: yCon ? zone.points[4] + padding : zone.points[2] + (zone.points[4] - zone.points[2]) / 2 - (target[4] - target[2]) / 2\n };\n }\n return null;\n }\n pendingUpdate() {\n const ready = !this.pendingDrawCall && this.drawCalls.length === 0 && this.imagesPending === 0 && this.loadingQueue.length === 0 && this.tasksRunning === 0;\n if (!this.firstMeaningfulPaint && ready) {\n this.canvas.style.opacity = \"1\";\n this.firstMeaningfulPaint = ready;\n return true;\n }\n if (this.options.debug) {\n return true;\n }\n return !ready;\n }\n getRendererScreenPosition() {\n return this.rendererPosition;\n }\n}\nclass CompositeRenderer {\n constructor(renderers) {\n this.renderers = [];\n for (const renderer of renderers) {\n if (renderer) {\n this.renderers.push(renderer);\n }\n }\n this.length = this.renderers.length;\n }\n afterFrame(world, delta, target) {\n for (let i = 0; i < this.length; i++) {\n this.renderers[i].afterFrame(world, delta, target);\n }\n }\n afterPaintLayer(paint, transform2) {\n for (let i = 0; i < this.length; i++) {\n this.renderers[i].afterPaintLayer(paint, transform2);\n }\n }\n beforeFrame(world, delta, target) {\n for (let i = 0; i < this.length; i++) {\n this.renderers[i].beforeFrame(world, delta, target);\n }\n }\n triggerResize() {\n for (let i = 0; i < this.length; i++) {\n const renderer = this.renderers[i];\n if (renderer.triggerResize) {\n renderer.triggerResize();\n }\n }\n }\n getPointsAt(world, target, aggregate, scaleFactor) {\n return this.renderers[0].getPointsAt(world, target, aggregate, scaleFactor);\n }\n getScale(width, height) {\n return this.renderers[0].getScale(width, height);\n }\n getViewportBounds(world, target, padding) {\n return this.renderers[0].getViewportBounds(world, target, padding);\n }\n getRendererScreenPosition() {\n return this.renderers[0].getRendererScreenPosition();\n }\n isReady() {\n for (let i = 0; i < this.length; i++) {\n if (!this.renderers[i].isReady()) {\n return false;\n }\n }\n return true;\n }\n paint(paint, index, x2, y2, width, height) {\n for (let i = 0; i < this.length; i++) {\n this.renderers[i].paint(paint, index, x2, y2, width, height);\n }\n }\n pendingUpdate() {\n for (let i = 0; i < this.length; i++) {\n if (this.renderers[i].pendingUpdate()) {\n return true;\n }\n }\n return false;\n }\n prepareLayer(paint) {\n for (let i = 0; i < this.length; i++) {\n this.renderers[i].prepareLayer(paint);\n }\n }\n resize(width, height) {\n for (let i = 0; i < this.length; i++) {\n this.renderers[i].resize(width, height);\n }\n }\n}\nclass DebugRenderer {\n constructor(canvas) {\n this.heightRatio = 1;\n this.widthRatio = 1;\n this.target = new Float32Array(5);\n this.delta = 0;\n this.renderNextFrame = true;\n this.canvas = canvas;\n this.initialWidth = canvas.width;\n this.initialHeight = canvas.height;\n this.context = canvas.getContext(\"2d\");\n this.context.globalAlpha = 0.5;\n this.aggregate = scale(1);\n }\n isReady() {\n return true;\n }\n resize() {\n this.initialWidth = this.canvas.width;\n this.initialHeight = this.canvas.height;\n this.renderNextFrame = true;\n }\n afterFrame(world, delta, target) {\n if (this.renderNextFrame) {\n this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);\n const widthRatio = this.initialWidth / world.width;\n const heightRatio = this.initialHeight / world.height;\n const ratio = this.widthRatio > this.heightRatio ? widthRatio : heightRatio;\n this.target = target;\n if (this.bounds) {\n const points = world.getPointsAt(this.bounds, this.aggregate, ratio);\n for (const [paint, point] of points) {\n if (paint instanceof SingleImage) {\n if (paint.__host.canvas) {\n const total = point.length / 5;\n for (let i = 0; i < total; i++) {\n const toPaint = paint.__host.canvas.canvases[i];\n if (toPaint) {\n const toDraw = {\n x1: point[i + 1] * ratio,\n y1: point[i + 2] * ratio,\n width: (point[i + 3] - point[i + 1]) * ratio,\n height: (point[i + 4] - point[i + 2]) * ratio\n };\n this.context.drawImage(toPaint, toDraw.x1, toDraw.y1, toDraw.width, toDraw.height);\n }\n }\n }\n }\n }\n }\n world.getPoints().forEach((v2, k2, arr) => {\n if (k2 % 5 === 0 && v2) {\n const toDraw = {\n x1: arr[k2 + 1] * ratio,\n y1: arr[k2 + 2] * ratio,\n x2: arr[k2 + 3] * ratio,\n y2: arr[k2 + 4] * ratio,\n width: (arr[k2 + 3] - arr[k2 + 1]) * ratio,\n height: (arr[k2 + 4] - arr[k2 + 2]) * ratio\n };\n this.context.strokeStyle = \"red\";\n this.context.strokeRect(toDraw.x1, toDraw.y1, toDraw.width, toDraw.height);\n }\n });\n if (target) {\n this.context.strokeStyle = \"red\";\n this.context.lineWidth = window.devicePixelRatio || 1;\n this.context.strokeRect(target[1] * ratio, target[2] * ratio, (target[3] - target[1]) * ratio, (target[4] - target[2]) * ratio);\n }\n }\n }\n getActiveZone(world) {\n return null;\n }\n getPointsAt(world, target, aggregate, scaleFactor) {\n return world.getPointsAt(target, aggregate, scaleFactor);\n }\n getScale(width, height) {\n return 1;\n }\n beforeFrame(world, delta) {\n this.bounds = DnaFactory.singleBox(world.width, world.height);\n }\n drawImage() {\n }\n afterPaintLayer(paint, transform2) {\n }\n paint(paint, index, x2, y2, width, height) {\n this.renderNextFrame = true;\n }\n prepareLayer(paint) {\n }\n pendingUpdate() {\n return false;\n }\n hasActiveZone() {\n return false;\n }\n getViewportBounds(world, target, padding) {\n return null;\n }\n getRendererScreenPosition() {\n return this.canvas.getBoundingClientRect();\n }\n}\nclass GridBuilder {\n constructor() {\n this.autoWidth = false;\n this.autoHeight = true;\n this.content = [];\n this.viewingDirection = \"left-to-right\";\n this.columns = 4;\n this.spacing = 20;\n this.reversed = false;\n this.padding = 20;\n this.world = World.withProps({ width: 0, height: 0, viewingDirection: \"left-to-right\" });\n this.width = 0;\n this.height = 0;\n }\n setViewingDirection(viewingDirection) {\n this.viewingDirection = viewingDirection;\n }\n addContent(content) {\n this.content.push(...content.map((item) => this.world.addObjectAt(item, {\n width: 0,\n height: 0,\n x: 0,\n y: 0\n })));\n }\n setWidth(width) {\n this.width = width;\n }\n setHeight(height) {\n this.height = height;\n }\n setSpacing(spacing) {\n this.spacing = spacing;\n }\n setPadding(padding) {\n this.padding = padding;\n }\n setRows(rows) {\n this.autoWidth = true;\n this.rows = rows;\n }\n setColumns(columns) {\n this.autoHeight = true;\n this.columns = columns;\n }\n recalculate() {\n if (this.height === 0 && this.width === 0) {\n return;\n }\n if (this.rows === 0 || this.columns === 0) {\n return;\n }\n if (this.autoHeight && !this.width) {\n throw new Error(\"Cannot set auto height without setting a width\");\n }\n if (this.autoWidth && !this.height) {\n throw new Error(\"Cannot set auto width without setting a height\");\n }\n if ((this.viewingDirection === \"left-to-right\" || this.viewingDirection === \"top-to-bottom\") && this.reversed) {\n this.reversed = false;\n this.content.reverse();\n }\n if ((this.viewingDirection === \"right-to-left\" || this.viewingDirection === \"bottom-to-top\") && !this.reversed) {\n this.reversed = true;\n this.content.reverse();\n }\n const len = this.content.length;\n const getColumns = () => {\n if (this.autoWidth && this.rows) {\n const rowsValue = len > this.rows ? this.rows : len;\n return {\n columns: Math.ceil(len / rowsValue),\n rows: rowsValue\n };\n }\n if (this.autoHeight && this.columns) {\n const columnsValue = len > this.columns ? this.columns : len;\n return {\n columns: columnsValue,\n rows: Math.ceil(len / columnsValue)\n };\n }\n throw new Error(\"Something went wrong.\");\n };\n const { columns, rows } = getColumns();\n const contentWidth = this.autoWidth ? -1 : this.width - this.padding * 2;\n const itemWidth = this.autoWidth ? -1 : (contentWidth - this.spacing * (columns - 1)) / columns;\n if (this.autoHeight && !this.autoWidth) {\n let index = 0;\n let rowHeights = this.padding;\n for (let r = 0; r < rows; r++) {\n if (index === len) {\n break;\n }\n let rowHeight = 0;\n const row = [];\n for (let c = 0; c < columns; c++) {\n const realIndex = this.reversed ? len - index : index;\n if (index === len) {\n break;\n }\n const item = this.content[realIndex];\n const width = item.width;\n const aspectRatio = item.width / item.height;\n const currentRowHeight = itemWidth / aspectRatio;\n row.push([\n index,\n itemWidth,\n currentRowHeight,\n itemWidth / width\n ]);\n if (currentRowHeight > rowHeight) {\n rowHeight = currentRowHeight;\n }\n index++;\n }\n for (let c = 0; c < columns; c++) {\n if (!row[c]) {\n break;\n }\n const worldPoints = this.world.getPoints();\n const currentIndex = row[c][0];\n const width = row[c][1];\n const height = row[c][2];\n const scale2 = row[c][3];\n const x2 = this.padding + c * (this.spacing + width);\n const y2 = rowHeights + (rowHeight - height) / 2;\n const realIndex = this.reversed ? len - currentIndex : currentIndex;\n const prevX = worldPoints[realIndex * 5 + 1];\n const prevY = worldPoints[realIndex * 5 + 2];\n this.world.scaleWorldObject(currentIndex, scale2);\n if (prevX !== x2 || prevY !== y2) {\n this.world.translateWorldObject(realIndex, x2 - prevX, y2 - prevY);\n }\n }\n rowHeights += rowHeight + this.spacing;\n }\n this.height = rowHeights + this.padding;\n this.world.resize(this.width, this.height);\n return;\n }\n if (this.autoWidth && !this.autoHeight)\n ;\n if (!this.autoWidth && !this.autoHeight)\n ;\n }\n getWorld() {\n return this.world;\n }\n}\nvar _populated = false;\nvar _ie, _firefox, _opera, _webkit, _chrome;\nvar _ie_real_version;\nvar _osx, _windows, _linux, _android;\nvar _win64;\nvar _iphone, _ipad, _native;\nvar _mobile;\nfunction _populate() {\n if (_populated) {\n return;\n }\n _populated = true;\n var uas = navigator.userAgent;\n var agent = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(uas);\n var os = /(Mac OS X)|(Windows)|(Linux)/.exec(uas);\n _iphone = /\\b(iPhone|iP[ao]d)/.exec(uas);\n _ipad = /\\b(iP[ao]d)/.exec(uas);\n _android = /Android/i.exec(uas);\n _native = /FBAN\\/\\w+;/i.exec(uas);\n _mobile = /Mobile/i.exec(uas);\n _win64 = !!/Win64/.exec(uas);\n if (agent) {\n _ie = agent[1] ? parseFloat(agent[1]) : agent[5] ? parseFloat(agent[5]) : NaN;\n if (_ie && document && document.documentMode) {\n _ie = document.documentMode;\n }\n var trident = /(?:Trident\\/(\\d+.\\d+))/.exec(uas);\n _ie_real_version = trident ? parseFloat(trident[1]) + 4 : _ie;\n _firefox = agent[2] ? parseFloat(agent[2]) : NaN;\n _opera = agent[3] ? parseFloat(agent[3]) : NaN;\n _webkit = agent[4] ? parseFloat(agent[4]) : NaN;\n if (_webkit) {\n agent = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(uas);\n _chrome = agent && agent[1] ? parseFloat(agent[1]) : NaN;\n } else {\n _chrome = NaN;\n }\n } else {\n _ie = _firefox = _opera = _chrome = _webkit = NaN;\n }\n if (os) {\n if (os[1]) {\n var ver = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(uas);\n _osx = ver ? parseFloat(ver[1].replace(\"_\", \".\")) : true;\n } else {\n _osx = false;\n }\n _windows = !!os[2];\n _linux = !!os[3];\n } else {\n _osx = _windows = _linux = false;\n }\n}\nvar UserAgent_DEPRECATED$1 = {\n ie: function() {\n return _populate() || _ie;\n },\n ieCompatibilityMode: function() {\n return _populate() || _ie_real_version > _ie;\n },\n ie64: function() {\n return UserAgent_DEPRECATED$1.ie() && _win64;\n },\n firefox: function() {\n return _populate() || _firefox;\n },\n opera: function() {\n return _populate() || _opera;\n },\n webkit: function() {\n return _populate() || _webkit;\n },\n safari: function() {\n return UserAgent_DEPRECATED$1.webkit();\n },\n chrome: function() {\n return _populate() || _chrome;\n },\n windows: function() {\n return _populate() || _windows;\n },\n osx: function() {\n return _populate() || _osx;\n },\n linux: function() {\n return _populate() || _linux;\n },\n iphone: function() {\n return _populate() || _iphone;\n },\n mobile: function() {\n return _populate() || (_iphone || _ipad || _android || _mobile);\n },\n nativeApp: function() {\n return _populate() || _native;\n },\n android: function() {\n return _populate() || _android;\n },\n ipad: function() {\n return _populate() || _ipad;\n }\n};\nvar UserAgent_DEPRECATED_1 = UserAgent_DEPRECATED$1;\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar ExecutionEnvironment$1 = {\n canUseDOM,\n canUseWorkers: typeof Worker !== \"undefined\",\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n canUseViewport: canUseDOM && !!window.screen,\n isInWorker: !canUseDOM\n};\nvar ExecutionEnvironment_1 = ExecutionEnvironment$1;\nvar ExecutionEnvironment = ExecutionEnvironment_1;\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature = document.implementation && document.implementation.hasFeature && document.implementation.hasFeature(\"\", \"\") !== true;\n}\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported$1(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM || capture && !(\"addEventListener\" in document)) {\n return false;\n }\n var eventName = \"on\" + eventNameSuffix;\n var isSupported = eventName in document;\n if (!isSupported) {\n var element = document.createElement(\"div\");\n element.setAttribute(eventName, \"return;\");\n isSupported = typeof element[eventName] === \"function\";\n }\n if (!isSupported && useHasFeature && eventNameSuffix === \"wheel\") {\n isSupported = document.implementation.hasFeature(\"Events.wheel\", \"3.0\");\n }\n return isSupported;\n}\nvar isEventSupported_1 = isEventSupported$1;\nvar UserAgent_DEPRECATED = UserAgent_DEPRECATED_1;\nvar isEventSupported = isEventSupported_1;\nvar PIXEL_STEP = 10;\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\nfunction normalizeWheel$1(event) {\n var sX = 0, sY = 0, pX = 0, pY = 0;\n if (\"detail\" in event) {\n sY = event.detail;\n }\n if (\"wheelDelta\" in event) {\n sY = -event.wheelDelta / 120;\n }\n if (\"wheelDeltaY\" in event) {\n sY = -event.wheelDeltaY / 120;\n }\n if (\"wheelDeltaX\" in event) {\n sX = -event.wheelDeltaX / 120;\n }\n if (\"axis\" in event && event.axis === event.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if (\"deltaY\" in event) {\n pY = event.deltaY;\n }\n if (\"deltaX\" in event) {\n pX = event.deltaX;\n }\n if ((pX || pY) && event.deltaMode) {\n if (event.deltaMode == 1) {\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n}\nnormalizeWheel$1.getEventType = function() {\n return UserAgent_DEPRECATED.firefox() ? \"DOMMouseScroll\" : isEventSupported(\"wheel\") ? \"wheel\" : \"mousewheel\";\n};\nvar normalizeWheel_1 = normalizeWheel$1;\nvar normalizeWheel = normalizeWheel_1;\nfunction toBox(strand) {\n return {\n x: strand[1],\n y: strand[2],\n width: strand[3] - strand[1],\n height: strand[4] - strand[2]\n };\n}\nconst defaultConfig = {\n zoomOutFactor: 0.8,\n zoomInFactor: 1.25,\n maxZoomFactor: 1,\n minZoomFactor: 0.05,\n zoomDuration: 300,\n zoomWheelConstant: 20,\n zoomClamp: 0.6,\n panBounceStiffness: 120,\n panBounceDamping: 15,\n panTimeConstant: 240,\n panPower: 0.1,\n nudgeDistance: 100,\n panPadding: 0,\n devicePixelRatio: 1,\n enableWheel: true,\n enableClickToZoom: false,\n onPanInSketchMode: () => {\n }\n};\nconst popmotionController = (config = {}) => {\n return {\n start: function(runtime) {\n const { zoomWheelConstant, enableWheel, enableClickToZoom } = {\n ...defaultConfig,\n ...config\n };\n const state = {\n pointerStart: { x: 0, y: 0 },\n isPressing: false,\n mousemoveBuffer: dna(5),\n multiTouch: {\n distance: 0\n }\n };\n runtime.world.activatedEvents.push(\"onMouseUp\", \"onMouseDown\", \"onMouseMove\", \"onTouchStart\", \"onTouchEnd\", \"onTouchMove\", \"onPointerUp\", \"onPointerDown\", \"onPointerMove\");\n function onMouseUp() {\n runtime.world.constraintBounds();\n currentDistance = 0;\n }\n function onMouseDown(e) {\n if (e.which > 1) {\n state.isPressing = false;\n return;\n }\n if (runtime.mode === \"explore\") {\n e.preventDefault();\n state.pointerStart.x = e.atlas.x;\n state.pointerStart.y = e.atlas.y;\n runtime.transitionManager.stopTransition();\n state.isPressing = true;\n }\n }\n function onWindowMouseUp() {\n if (state.isPressing) {\n if (runtime.mode === \"explore\") {\n runtime.world.constraintBounds();\n }\n state.isPressing = false;\n }\n }\n let currentDistance = 0;\n function onTouchStart(e) {\n if (runtime.mode === \"explore\") {\n if (e.atlasTouches.length === 1) {\n e.preventDefault();\n state.pointerStart.x = e.atlasTouches[0].x;\n state.pointerStart.y = e.atlasTouches[0].y;\n }\n if (e.atlasTouches.length === 2) {\n e.preventDefault();\n const x1 = e.atlasTouches[0].x;\n const x2 = e.atlasTouches[1].x;\n state.pointerStart.x = (x1 + x2) / 2;\n const y1 = e.atlasTouches[0].y;\n const y2 = e.atlasTouches[1].y;\n state.pointerStart.y = (y1 + y2) / 2;\n currentDistance = distance({ x: e.touches[0].clientX, y: e.touches[0].clientY }, { x: e.touches[1].clientX, y: e.touches[1].clientY });\n }\n runtime.transitionManager.stopTransition();\n state.isPressing = true;\n }\n }\n function onTouchMove(e) {\n let clientX = null;\n let clientY = null;\n let newDistance = 0;\n if (state.isPressing && e.touches.length === 2) {\n const x1 = e.touches[0].clientX;\n const x2 = e.touches[1].clientX;\n clientX = (x1 + x2) / 2;\n const y1 = e.touches[0].clientY;\n const y2 = e.touches[1].clientY;\n clientY = (y1 + y2) / 2;\n newDistance = distance({ x: e.touches[0].clientX, y: e.touches[0].clientY }, { x: e.touches[1].clientX, y: e.touches[1].clientY });\n }\n if (state.isPressing && e.touches.length === 1) {\n const touch = e.touches[0];\n clientX = touch.clientX;\n clientY = touch.clientY;\n }\n if (clientX !== null && clientY !== null) {\n const bounds = runtime.getRendererScreenPosition();\n if (bounds) {\n const { x: x2, y: y2 } = runtime.viewerToWorld(clientX - bounds.x, clientY - bounds.y);\n const deltaDistance = newDistance && currentDistance ? newDistance / currentDistance : 1;\n runtime.transitionManager.customTransition((pendingTransition) => {\n pendingTransition.from = dna(runtime.target);\n pendingTransition.to = transform(pendingTransition.from, compose(translate(state.pointerStart.x - x2, state.pointerStart.y - y2), scaleAtOrigin(1 / deltaDistance, x2, y2)), state.mousemoveBuffer);\n pendingTransition.elapsed_time = 0;\n pendingTransition.total_time = 0;\n pendingTransition.timingFunction = easingFunctions.easeInOutExpo;\n pendingTransition.done = false;\n });\n }\n currentDistance = newDistance;\n }\n }\n function onMouseMove(e) {\n if (state.isPressing) {\n const bounds = runtime.getRendererScreenPosition();\n if (bounds) {\n const { x: x2, y: y2 } = runtime.viewerToWorld(e.clientX - bounds.x, e.clientY - bounds.y);\n runtime.transitionManager.customTransition((pendingTransition) => {\n pendingTransition.from = dna(runtime.target);\n pendingTransition.to = transform(pendingTransition.from, translate(state.pointerStart.x - x2, state.pointerStart.y - y2), state.mousemoveBuffer);\n pendingTransition.elapsed_time = 0;\n pendingTransition.total_time = 0;\n pendingTransition.timingFunction = easingFunctions.easeInOutExpo;\n pendingTransition.done = false;\n });\n }\n }\n }\n function onClick(e) {\n if (runtime.mode === \"explore\") {\n runtime.world.zoomIn(e.atlas);\n }\n }\n function onWheel(e) {\n const normalized = normalizeWheel(e);\n const zoomFactor = 1 + normalized.spinY / zoomWheelConstant;\n runtime.world.zoomTo(zoomFactor, e.atlas, true);\n }\n runtime.world.addEventListener(\"mouseup\", onMouseUp);\n runtime.world.addEventListener(\"touchend\", onMouseUp);\n runtime.world.addEventListener(\"touchstart\", onTouchStart);\n runtime.world.addEventListener(\"mousedown\", onMouseDown);\n window.addEventListener(\"touchend\", onWindowMouseUp);\n window.addEventListener(\"mouseup\", onWindowMouseUp);\n window.addEventListener(\"mousemove\", onMouseMove);\n window.addEventListener(\"touchmove\", onTouchMove);\n if (enableClickToZoom) {\n runtime.world.activatedEvents.push(\"onClick\");\n runtime.world.addEventListener(\"click\", onClick);\n }\n if (enableWheel) {\n runtime.world.activatedEvents.push(\"onWheel\");\n runtime.world.addEventListener(\"wheel\", onWheel);\n }\n const removeLayout = runtime.world.addLayoutSubscriber((type, data) => {\n if (type === \"zone-changed\") {\n runtime.transitionManager.constrainBounds({\n transition: { duration: 0 }\n });\n }\n if (type === \"zoom-to\" && data) {\n runtime.transitionManager.zoomTo(data.factor, {\n origin: data.point,\n stream: data.stream\n });\n }\n if (type === \"go-home\") {\n const transition = data.immediate ? { duration: 0 } : void 0;\n runtime.transitionManager.goToRegion(toBox(runtime.homePosition), { transition });\n }\n if (type === \"goto-region\" && data) {\n const transition = data.immediate ? { duration: 0 } : {};\n runtime.transitionManager.goToRegion(data, { transition });\n }\n if (type === \"constrain-bounds\") {\n runtime.transitionManager.constrainBounds({\n transition: (data == null ? void 0 : data.immediate) ? { duration: 0 } : void 0\n });\n }\n });\n return () => {\n runtime.world.removeEventListener(\"mouseup\", onMouseUp);\n runtime.world.removeEventListener(\"touchend\", onMouseUp);\n runtime.world.removeEventListener(\"touchstart\", onTouchStart);\n runtime.world.removeEventListener(\"mousedown\", onMouseDown);\n window.removeEventListener(\"touchend\", onWindowMouseUp);\n window.removeEventListener(\"mouseup\", onWindowMouseUp);\n runtime.world.removeEventListener(\"mousemove\", onMouseMove);\n runtime.world.removeEventListener(\"touchmove\", onMouseMove);\n if (enableClickToZoom) {\n runtime.world.removeEventListener(\"click\", onClick);\n }\n if (enableWheel) {\n runtime.world.removeEventListener(\"wheel\", onWheel);\n }\n removeLayout();\n };\n },\n updatePosition() {\n }\n };\n};\nconst ModeContext = React.createContext(\"explore\");\nconst useMode = () => {\n return useContext(ModeContext);\n};\nfunction debounce(func, wait, immediate) {\n var timeout, args, context, timestamp, result;\n if (null == wait)\n wait = 100;\n function later() {\n var last = Date.now() - timestamp;\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n }\n var debounced = function() {\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout)\n timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n return result;\n };\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n clearTimeout(timeout);\n timeout = null;\n }\n };\n return debounced;\n}\ndebounce.debounce = debounce;\nvar debounce_1 = debounce;\nfunction useMeasure(_temp) {\n let {\n debounce: debounce2,\n scroll,\n polyfill,\n offsetSize\n } = _temp === void 0 ? {\n debounce: 0,\n scroll: false,\n offsetSize: false\n } : _temp;\n const ResizeObserver = polyfill || (typeof window === \"undefined\" ? class ResizeObserver {\n } : window.ResizeObserver);\n if (!ResizeObserver) {\n throw new Error(\"This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills\");\n }\n const [bounds, set] = useState({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n bottom: 0,\n right: 0,\n x: 0,\n y: 0\n });\n const state = useRef({\n element: null,\n scrollContainers: null,\n resizeObserver: null,\n lastBounds: bounds\n });\n const scrollDebounce = debounce2 ? typeof debounce2 === \"number\" ? debounce2 : debounce2.scroll : null;\n const resizeDebounce = debounce2 ? typeof debounce2 === \"number\" ? debounce2 : debounce2.resize : null;\n const mounted = useRef(false);\n useEffect(() => {\n mounted.current = true;\n return () => void (mounted.current = false);\n });\n const [forceRefresh, resizeChange, scrollChange] = useMemo(() => {\n const callback = () => {\n if (!state.current.element)\n return;\n const {\n left,\n top,\n width,\n height,\n bottom,\n right,\n x: x2,\n y: y2\n } = state.current.element.getBoundingClientRect();\n const size = {\n left,\n top,\n width,\n height,\n bottom,\n right,\n x: x2,\n y: y2\n };\n if (state.current.element instanceof HTMLElement && offsetSize) {\n size.height = state.current.element.offsetHeight;\n size.width = state.current.element.offsetWidth;\n }\n Object.freeze(size);\n if (mounted.current && !areBoundsEqual(state.current.lastBounds, size))\n set(state.current.lastBounds = size);\n };\n return [callback, resizeDebounce ? debounce_1(callback, resizeDebounce) : callback, scrollDebounce ? debounce_1(callback, scrollDebounce) : callback];\n }, [set, offsetSize, scrollDebounce, resizeDebounce]);\n function removeListeners() {\n if (state.current.scrollContainers) {\n state.current.scrollContainers.forEach((element) => element.removeEventListener(\"scroll\", scrollChange, true));\n state.current.scrollContainers = null;\n }\n if (state.current.resizeObserver) {\n state.current.resizeObserver.disconnect();\n state.current.resizeObserver = null;\n }\n }\n function addListeners() {\n if (!state.current.element)\n return;\n state.current.resizeObserver = new ResizeObserver(scrollChange);\n state.current.resizeObserver.observe(state.current.element);\n if (scroll && state.current.scrollContainers) {\n state.current.scrollContainers.forEach((scrollContainer) => scrollContainer.addEventListener(\"scroll\", scrollChange, {\n capture: true,\n passive: true\n }));\n }\n }\n const ref = (node) => {\n if (!node || node === state.current.element)\n return;\n removeListeners();\n state.current.element = node;\n state.current.scrollContainers = findScrollContainers(node);\n addListeners();\n };\n useOnWindowScroll(scrollChange, Boolean(scroll));\n useOnWindowResize(resizeChange);\n useEffect(() => {\n removeListeners();\n addListeners();\n }, [scroll, scrollChange, resizeChange]);\n useEffect(() => removeListeners, []);\n return [ref, bounds, forceRefresh];\n}\nfunction useOnWindowResize(onWindowResize) {\n useEffect(() => {\n const cb = onWindowResize;\n window.addEventListener(\"resize\", cb);\n return () => void window.removeEventListener(\"resize\", cb);\n }, [onWindowResize]);\n}\nfunction useOnWindowScroll(onScroll, enabled) {\n useEffect(() => {\n if (enabled) {\n const cb = onScroll;\n window.addEventListener(\"scroll\", cb, {\n capture: true,\n passive: true\n });\n return () => void window.removeEventListener(\"scroll\", cb, true);\n }\n }, [onScroll, enabled]);\n}\nfunction findScrollContainers(element) {\n const result = [];\n if (!element || element === document.body)\n return result;\n const {\n overflow,\n overflowX,\n overflowY\n } = window.getComputedStyle(element);\n if ([overflow, overflowX, overflowY].some((prop) => prop === \"auto\" || prop === \"scroll\"))\n result.push(element);\n return [...result, ...findScrollContainers(element.parentElement)];\n}\nconst keys = [\"x\", \"y\", \"top\", \"bottom\", \"left\", \"right\", \"width\", \"height\"];\nconst areBoundsEqual = (a, b2) => keys.every((key) => a[key] === b2[key]);\nconst AtlasContext = React.createContext(null);\nconst BoundsContext = React.createContext(null);\nlet getCurrentTime;\nconst hasPerformanceNow = typeof performance === \"object\" && typeof performance.now === \"function\";\nif (hasPerformanceNow) {\n const localPerformance = performance;\n getCurrentTime = () => localPerformance.now();\n} else {\n const localDate = Date;\n const initialTime = localDate.now();\n getCurrentTime = () => localDate.now() - initialTime;\n}\nfunction appendChild(parent, child) {\n if (parent && parent.appendChild && child) {\n parent.appendChild(child);\n }\n}\nfunction removeChild(parent, child) {\n if (parent && parent.removeChild && child) {\n parent.removeChild(child);\n }\n}\nfunction removeChildFromContainer(parent, child) {\n return removeChild(parent.world, child);\n}\nfunction insertInContainerBefore(container, child, beforeChild) {\n return insertBefore(container.world, child, beforeChild);\n}\nfunction insertBefore(parent, child, before) {\n if (parent && parent instanceof Runtime) {\n parent = parent.world;\n }\n if (parent && parent.insertBefore) {\n parent.insertBefore(child, before);\n }\n}\nfunction applyProps(instance, oldProps, newProps) {\n if (!newProps) {\n return;\n }\n if (instance.applyProps) {\n instance.applyProps(newProps);\n }\n if (instance instanceof BaseObject) {\n for (const ev of supportedEventAttributes) {\n const event = ev.slice(2).toLowerCase();\n if (newProps[ev] !== oldProps[ev]) {\n if (oldProps[ev]) {\n instance.removeEventListener(event, oldProps[ev]);\n }\n instance.addEventListener(event, newProps[ev]);\n }\n }\n }\n}\nfunction activateEvents(world, props) {\n const keys2 = Object.keys(props);\n let didActivate = false;\n for (const key of keys2) {\n if (supportedEventAttributes.indexOf(key) !== -1) {\n const ev = supportedEventMap[key];\n if (ev) {\n if (world.activatedEvents.indexOf(ev) !== -1)\n continue;\n didActivate = true;\n world.activatedEvents.push(ev);\n }\n }\n }\n if (didActivate) {\n world.triggerEventActivation();\n }\n}\nconst roots = /* @__PURE__ */ new Map();\nconst emptyObject = {};\nfunction createInstance(type, { args = [], ...props }, runtime, hostContext, internalInstanceHandle) {\n if (!(runtime instanceof Runtime) && internalInstanceHandle) {\n const fn = (node) => {\n if (!node.return)\n return node.stateNode && node.stateNode.containerInfo;\n else\n return fn(node.return);\n };\n runtime = fn(internalInstanceHandle);\n }\n let instance;\n let world = runtime.world;\n switch (type) {\n case \"world\":\n instance = World.withProps({ width: props.width, height: props.height, viewingDirection: \"left-to-right\" });\n instance.activatedEvents = world.activatedEvents;\n instance.eventHandlers = world.eventHandlers;\n instance.subscriptions = world.subscriptions;\n instance.triggerEventActivation();\n world = instance;\n break;\n case \"box\":\n instance = new Box();\n break;\n case \"worldObject\":\n case \"world-object\":\n instance = new WorldObject();\n break;\n case \"worldImage\":\n case \"world-image\":\n instance = new SingleImage();\n break;\n case \"texture\":\n instance = new ImageTexture();\n break;\n case \"compositeImage\":\n case \"composite-image\":\n instance = new CompositeResource({\n id: props.id,\n width: props.width,\n height: props.height,\n images: []\n });\n break;\n case \"tiledImage\":\n case \"tiled-image\":\n instance = TiledImage.fromTile(props.uri, props.display, props.tile, props.scaleFactor);\n break;\n case \"paragraph\":\n instance = new Text();\n instance.text = props.children;\n break;\n default:\n return;\n }\n activateEvents(world, props);\n applyProps(instance, {}, props);\n return instance;\n}\nfunction appendChildToContainer(runtime, world) {\n if (world instanceof World) {\n runtime.world = world;\n } else if (world instanceof WorldObject) {\n runtime.world.appendChild(world);\n } else if (world) {\n throw new Error(\"Invalid root\");\n }\n}\nconst reconciler = Reconciler({\n unstable_now: getCurrentTime,\n now: getCurrentTime,\n createInstance,\n removeChild,\n appendChild,\n appendInitialChild: appendChild,\n insertBefore,\n warnsIfNotActing: true,\n supportsMutation: true,\n isPrimaryRenderer: false,\n scheduleTimeout: typeof setTimeout !== \"undefined\" ? setTimeout : void 0,\n cancelTimeout: typeof clearTimeout !== \"undefined\" ? clearTimeout : void 0,\n setTimeout: typeof setTimeout !== \"undefined\" ? setTimeout : void 0,\n clearTimeout: typeof clearTimeout !== \"undefined\" ? clearTimeout : void 0,\n noTimeout: -1,\n appendChildToContainer,\n removeChildFromContainer,\n createTextInstance() {\n },\n insertInContainerBefore,\n prepareUpdate(instance, type, oldProps, newProps, runtime) {\n activateEvents(runtime.world, newProps);\n return newProps;\n },\n commitUpdate(instance, updatePayload, type, oldProps, newProps, finishedWork) {\n if (instance.applyProps && updatePayload) {\n applyProps(instance, oldProps, updatePayload);\n }\n },\n finalizeInitialChildren(instance) {\n return instance.__handlers;\n },\n getChildHostContext() {\n return emptyObject;\n },\n getRootHostContext() {\n return emptyObject;\n },\n prepareForCommit() {\n return null;\n },\n hideInstance(instance) {\n if (instance && instance.points) {\n instance.points[0] = 0;\n }\n },\n unhideInstance(instance, props) {\n if (instance && instance.points) {\n instance.points[0] = 1;\n }\n },\n getPublicInstance(instance) {\n return instance;\n },\n hideTextInstance() {\n throw new Error(\"Text is not allowed in the react-three-fibre tree. You may have extraneous whitespace between components.\");\n },\n resetAfterCommit(runtime) {\n runtime.pendingUpdate = true;\n if (runtime.world) {\n if (runtime.world.needsRecalculate) {\n runtime.world.recalculateWorldSize();\n runtime.world.triggerRepaint();\n }\n }\n },\n shouldSetTextContent() {\n return false;\n },\n clearContainer() {\n return false;\n }\n});\nreconciler.injectIntoDevTools({\n bundleType: 0,\n version: \"17.0.2\",\n rendererPackageName: \"@atlas-viewer/atlas\",\n findFiberByHostInstance: (instance) => {\n return null;\n }\n});\nfunction unmountComponentAtNode(runtime, callback) {\n const root = roots.get(runtime);\n if (root) {\n reconciler.updateContainer(null, root, null, () => {\n roots.delete(runtime);\n if (callback)\n callback(runtime);\n });\n }\n}\nconst ReactAtlas = {\n render(whatToRender, runtime) {\n const root = roots.get(runtime);\n if (root) {\n reconciler.updateContainer(whatToRender, root, null, () => void 0);\n } else {\n const newRoot = reconciler.createContainer(runtime, 0, null, false, null, \"\", () => {\n }, null);\n reconciler.updateContainer(whatToRender, newRoot, null, null);\n roots.set(runtime, newRoot);\n }\n }\n};\nvar jsxRuntime = { exports: {} };\nvar reactJsxRuntime_production_min = {};\n/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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 */\nvar f = React, k$1 = Symbol.for(\"react.element\"), l = Symbol.for(\"react.fragment\"), m = Object.prototype.hasOwnProperty, n = f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, p$1 = { key: true, ref: true, __self: true, __source: true };\nfunction q$1(c, a, g2) {\n var b2, d = {}, e = null, h2 = null;\n void 0 !== g2 && (e = \"\" + g2);\n void 0 !== a.key && (e = \"\" + a.key);\n void 0 !== a.ref && (h2 = a.ref);\n for (b2 in a)\n m.call(a, b2) && !p$1.hasOwnProperty(b2) && (d[b2] = a[b2]);\n if (c && c.defaultProps)\n for (b2 in a = c.defaultProps, a)\n void 0 === d[b2] && (d[b2] = a[b2]);\n return { $$typeof: k$1, type: c, key: e, ref: h2, props: d, _owner: n.current };\n}\nreactJsxRuntime_production_min.Fragment = l;\nreactJsxRuntime_production_min.jsx = q$1;\nreactJsxRuntime_production_min.jsxs = q$1;\n{\n jsxRuntime.exports = reactJsxRuntime_production_min;\n}\nconst jsx = jsxRuntime.exports.jsx;\nconst jsxs = jsxRuntime.exports.jsxs;\nconst Fragment = jsxRuntime.exports.Fragment;\nconst AtlasWithReconciler = React.memo(({\n children,\n setIsReady,\n onCreated,\n bounds,\n preset,\n mode = \"explore\"\n}) => {\n const Canvas = useCallback(function Canvas2(props) {\n const activate = () => {\n setIsReady(true);\n };\n useEffect(() => {\n if (preset) {\n preset.runtime.goHome();\n const result = onCreated && onCreated(preset);\n return void (result && result.then ? result.then(activate) : activate());\n }\n return () => {\n };\n }, []);\n return props.children;\n }, [preset]);\n useLayoutEffect(() => {\n if (preset) {\n const runtime = preset.runtime;\n if (mode !== runtime.mode) {\n runtime.mode = mode;\n }\n ReactAtlas.render(/* @__PURE__ */ jsx(React.StrictMode, {\n children: /* @__PURE__ */ jsx(Canvas, {\n children: /* @__PURE__ */ jsx(BoundsContext.Provider, {\n value: bounds,\n children: /* @__PURE__ */ jsx(ModeContext.Provider, {\n value: mode,\n children: /* @__PURE__ */ jsx(AtlasContext.Provider, {\n value: preset,\n children\n })\n })\n })\n })\n }), runtime);\n }\n }, [preset, mode, children]);\n return null;\n});\nclass WebGLRenderer {\n constructor(canvas, options) {\n this.fragmentShaderSource = `\n precision mediump float;\n\n uniform sampler2D u_image;\n varying vec2 v_texCoord;\n\n void main() {\n gl_FragColor = texture2D(u_image, v_texCoord);\n }\n `;\n this.vertexShaderSource = `\n attribute vec2 a_position;\n uniform vec2 u_resolution;\n varying vec4 v_color;\n uniform sampler2D u_texture;\n\n attribute vec2 a_texCoord;\n varying vec2 v_texCoord;\n\n void main() {\n\n // convert the position from pixels to 0.0 to 1.0\n vec2 zeroToOne = a_position / u_resolution;\n\n // convert from 0->1 to 0->2\n vec2 zeroToTwo = zeroToOne * 2.0;\n\n // convert from 0->2 to -1->+1 (clip space)\n vec2 clipSpace = zeroToTwo - 1.0;\n\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);\n \n v_texCoord = a_texCoord;\n }\n `;\n this.lastResize = 0;\n this.lastKnownScale = 1;\n this.canvas = canvas;\n this.rendererPosition = canvas.getBoundingClientRect();\n this.gl = canvas.getContext(\"webgl2\");\n this.fragmentShader = this.createShader(this.gl.FRAGMENT_SHADER, this.fragmentShaderSource);\n this.vertexShader = this.createShader(this.gl.VERTEX_SHADER, this.vertexShaderSource);\n this.program = this.createProgram(this.vertexShader, this.fragmentShader);\n this.dpi = (options == null ? void 0 : options.dpi) || 1;\n this.attributes = {\n position: this.gl.getAttribLocation(this.program, \"a_position\"),\n texCoord: this.gl.getAttribLocation(this.program, \"a_texCoord\")\n };\n this.uniforms = {\n resolution: this.gl.getUniformLocation(this.program, \"u_resolution\"),\n texture: this.gl.getUniformLocation(this.program, \"u_texture\")\n };\n this.buffers = {\n position: this.createArrayBuffer(),\n texCoord: this.createArrayBuffer(new Float32Array([0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1]))\n };\n this.rectBuffer = new Float32Array(12);\n this.resize();\n this.gl.viewport(0, 0, this.gl.canvas.width, this.gl.canvas.height);\n this.gl.clearColor(0, 0, 0, 0);\n this.gl.clear(this.gl.COLOR_BUFFER_BIT);\n this.gl.useProgram(this.program);\n this.gl.enableVertexAttribArray(this.attributes.position);\n }\n resize() {\n this.resizeCanvasToDisplaySize();\n this.gl.viewport(0, 0, this.gl.canvas.width, this.gl.canvas.height);\n this.rendererPosition = this.canvas.getBoundingClientRect();\n }\n isReady() {\n return true;\n }\n beforeFrame(world, delta, target) {\n this.gl.clearColor(0, 0, 0, 0);\n this.gl.clear(this.gl.COLOR_BUFFER_BIT);\n this.gl.vertexAttribPointer(this.attributes.position, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.uniform2f(this.uniforms.resolution, this.gl.canvas.width, this.gl.canvas.height);\n if (this.lastResize > 1e3) {\n this.lastResize = 0;\n this.resizeCanvasToDisplaySize();\n }\n this.lastResize += delta;\n }\n prepareLayer(paint) {\n if (!paint.__host || !paint.__host.webgl) {\n if (paint instanceof SingleImage || paint instanceof TiledImage) {\n this.createImageHost(paint);\n }\n if (paint instanceof ImageTexture) {\n this.createTextureHost(paint);\n }\n }\n }\n createTextureHost(paint) {\n paint.__host = paint.__host ? paint.__host : {};\n const gl = this.gl;\n const texture = this.gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n let lastImage;\n if (paint instanceof ImageTexture) {\n const initial = paint.getTexture();\n if (initial.source) {\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, initial.source);\n }\n lastImage = initial;\n }\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n paint.__host.webgl = {\n height: paint.height,\n width: paint.width,\n texture,\n lastImage\n };\n }\n createImageHost(paint) {\n const textures = [...new Array(paint.points.length / 5)];\n paint.__host = paint.__host ? paint.__host : {};\n paint.__host.webgl = {\n height: paint.height,\n width: paint.width,\n textures,\n loading: [],\n loaded: [],\n lastLevelRendered: -1,\n onLoad: (index, image) => {\n const gl = this.gl;\n const texture = this.gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.bindTexture(gl.TEXTURE_2D, null);\n paint.__host.webgl.textures[index] = texture;\n paint.__host.webgl.loaded.push(index);\n }\n };\n }\n paint(paint, index, x2, y2, width, height) {\n if (paint.type === \"spacial-content\") {\n if (paint.__host && paint.__host.webgl) {\n if (paint.getTexture) {\n const newText = paint == null ? void 0 : paint.getTexture();\n if (newText && paint.__host.webgl.lastImage !== newText.hash && newText.source && !paint.__host.webgl.error) {\n try {\n const level = 0;\n const internalFormat = this.gl.RGBA;\n const srcFormat = this.gl.RGBA;\n const srcType = this.gl.UNSIGNED_BYTE;\n this.gl.bindTexture(this.gl.TEXTURE_2D, paint.__host.webgl.texture);\n this.gl.texImage2D(this.gl.TEXTURE_2D, level, internalFormat, srcFormat, srcType, newText.source);\n paint.__host.webgl.lastImage = newText.hash;\n } catch (e) {\n paint.__host.webgl.error = e;\n }\n }\n }\n if (paint.__host.webgl.loading && paint.__host.webgl.loading.indexOf(index) === -1 && paint.getImageUrl) {\n paint.__host.webgl.loading.push(index);\n const image = document.createElement(\"img\");\n image.decoding = \"async\";\n image.crossOrigin = \"anonymous\";\n image.src = paint.getImageUrl(index);\n image.onload = () => {\n image.onload = null;\n return paint.__host.webgl.onLoad(index, image);\n };\n }\n const texture = paint.__host.webgl.texture ? paint.__host.webgl.texture : paint.__host.webgl.textures[index];\n if (texture) {\n this.gl.enableVertexAttribArray(this.attributes.texCoord);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.buffers.texCoord);\n this.gl.enableVertexAttribArray(this.attributes.texCoord);\n this.gl.vertexAttribPointer(this.attributes.texCoord, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.buffers.position);\n this.gl.enableVertexAttribArray(this.attributes.position);\n this.gl.vertexAttribPointer(this.attributes.position, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.uniform1i(this.uniforms.texture, 0);\n this.setRectangle(x2, y2, width, height);\n this.gl.drawArrays(this.gl.TRIANGLES, 0, 6);\n }\n }\n }\n }\n afterPaintLayer(paint, transform2) {\n }\n pendingUpdate() {\n return true;\n }\n getPointsAt(world, target, aggregate, scaleFactor) {\n return world.getPointsAt(target, aggregate, scaleFactor);\n }\n afterFrame() {\n }\n getScale(width, height, dpi) {\n if (Number.isNaN(width) || Number.isNaN(height)) {\n return this.lastKnownScale;\n }\n const canvas = this.getCanvasDims();\n const w2 = canvas.width / width;\n const h2 = canvas.height / height;\n const scale2 = (w2 < h2 ? h2 : w2) * (dpi ? this.dpi || 1 : 1);\n if (!Number.isNaN(scale2)) {\n this.lastKnownScale = scale2;\n }\n return this.lastKnownScale;\n }\n getCanvasDims() {\n return { width: this.canvas.width / this.dpi, height: this.canvas.height / this.dpi };\n }\n getViewportBounds(world, target, padding) {\n return null;\n }\n createShader(type, source) {\n const shader = this.gl.createShader(type);\n if (shader) {\n this.gl.shaderSource(shader, source);\n this.gl.compileShader(shader);\n const success = this.gl.getShaderParameter(shader, this.gl.COMPILE_STATUS);\n if (success) {\n return shader;\n }\n const info = this.gl.getShaderInfoLog(shader);\n this.gl.deleteShader(shader);\n if (info) {\n throw new Error(info);\n }\n }\n throw new Error(\"Invalid shader\");\n }\n createProgram(vertexShader, fragmentShader) {\n const program = this.gl.createProgram();\n if (program) {\n this.gl.attachShader(program, vertexShader);\n this.gl.attachShader(program, fragmentShader);\n this.gl.linkProgram(program);\n const success = this.gl.getProgramParameter(program, this.gl.LINK_STATUS);\n if (success) {\n return program;\n }\n const info = this.gl.getProgramInfoLog(program);\n this.gl.deleteProgram(program);\n if (info) {\n throw new Error(info);\n }\n }\n throw new Error(\"Invalid program\");\n }\n resizeCanvasToDisplaySize() {\n const canvas = this.gl.canvas;\n const displayWidth = canvas.clientWidth;\n const displayHeight = canvas.clientHeight;\n const needResize = canvas.width !== displayWidth || canvas.height !== displayHeight;\n if (needResize) {\n canvas.width = displayWidth;\n canvas.height = displayHeight;\n }\n return needResize;\n }\n createArrayBuffer(data) {\n const buffer = this.gl.createBuffer();\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);\n if (data) {\n this.gl.bufferData(this.gl.ARRAY_BUFFER, data, this.gl.STATIC_DRAW);\n }\n if (!buffer) {\n throw new Error(\"Cannot create buffer\");\n }\n return buffer;\n }\n setRectangle(x2, y2, width, height) {\n this.gl.bufferData(this.gl.ARRAY_BUFFER, this.getRectangle(x2, y2, width, height), this.gl.STATIC_DRAW);\n }\n getRectangle(x2, y2, width, height) {\n const x1 = x2;\n const x22 = x2 + width;\n const y1 = y2;\n const y22 = y2 + height;\n this.rectBuffer.set([x1, y1, x22, y1, x1, y22, x1, y22, x22, y1, x22, y22]);\n return this.rectBuffer;\n }\n getRendererScreenPosition() {\n return this.rendererPosition;\n }\n}\nfunction hash(object, str) {\n const text = str ? object : JSON.stringify(object);\n let numHash = 5381, index = text.length;\n while (index) {\n numHash = numHash * 33 ^ text.charCodeAt(--index);\n }\n const num = numHash >>> 0;\n const hexString = num.toString(16);\n if (hexString.length % 2) {\n return \"0\" + hexString;\n }\n return hexString;\n}\nclass Stylesheet {\n constructor(options) {\n this.sheetPrefix = (options == null ? void 0 : options.sheetPrefix) || \"a-\";\n this.$element = document.createElement(\"style\");\n this.stylesheetClasses = [];\n this.activeStylesheetClasses = [];\n this.sheetsDidUpdate = false;\n this.stylesheetEntries = {};\n }\n getElement() {\n return this.$element;\n }\n addStylesheet(_sheet) {\n const sheet = _sheet.replace(/\\s\\s+/g, \" \").replace(/: /g, \":\").replace(/; /g, \";\").trim();\n const className = this.sheetPrefix + hash(sheet, true);\n if (this.stylesheetClasses.indexOf(className) !== -1) {\n return className;\n }\n this.stylesheetClasses.push(className);\n this.activeStylesheetClasses.push(className);\n this.stylesheetEntries[className] = sheet;\n this.sheetsDidUpdate = true;\n return className;\n }\n removeStylesheet(obj) {\n const className = this.sheetPrefix + hash(obj, true);\n if (this.stylesheetClasses.indexOf(className)) {\n this.stylesheetClasses = this.stylesheetClasses.filter((t) => t !== className);\n }\n this.sheetsDidUpdate = true;\n }\n clearClasses() {\n this.activeStylesheetClasses = [];\n }\n didUpdateActive() {\n if (this.activeStylesheetClasses.length) {\n for (const sheet of this.activeStylesheetClasses) {\n if (this.stylesheetClasses.indexOf(sheet) === -1) {\n return true;\n }\n }\n for (const sheet of this.stylesheetClasses) {\n if (this.activeStylesheetClasses.indexOf(sheet) === -1) {\n return true;\n }\n }\n }\n return false;\n }\n updateSheet() {\n if (this.sheetsDidUpdate || this.didUpdateActive()) {\n this.$element.innerText = this.activeStylesheetClasses.map((className) => `.${className}{${this.stylesheetEntries[className]}}`).join(\"\");\n this.sheetsDidUpdate = false;\n this.stylesheetClasses = [...this.activeStylesheetClasses];\n }\n }\n}\nclass OverlayRenderer {\n constructor(htmlContainer, options) {\n this.visible = [];\n this.previousVisible = [];\n this.htmlIds = [];\n this.firstMeaningfulPaint = false;\n this.paintTx = 1;\n this.zIndex = 0;\n this.htmlContainer = htmlContainer;\n this.htmlContainer.innerHTML = \"\";\n this.rendererPosition = this.htmlContainer.getBoundingClientRect();\n this.options = {\n triggerResize: () => {\n },\n box: false,\n text: false,\n sheetPrefix: \"\",\n inlineStyles: false,\n background: \"\",\n ...options || {}\n };\n this.stylesheet = new Stylesheet({ sheetPrefix: this.options.sheetPrefix });\n if (!this.options.inlineStyles) {\n this.htmlContainer.appendChild(this.stylesheet.getElement());\n }\n if (this.options.background) {\n this.htmlContainer.classList.add(this.stylesheet.addStylesheet(`\n background: ${this.options.background};\n `));\n }\n this.classes = {\n hostClassName: this.stylesheet.addStylesheet(`\n position: absolute;\n transform-origin: 0px 0px;\n `),\n interactive: this.stylesheet.addStylesheet(`pointer-events: all`),\n nonInteractive: this.stylesheet.addStylesheet(`pointer-events: none`)\n };\n this.stylesheet.updateSheet();\n }\n createHtmlHost(paint) {\n if (this.htmlContainer && (this.options.box || paint.props.className || paint.props.html || paint.props.href)) {\n const div = document.createElement(paint.props.href ? \"a\" : \"div\");\n if (paint.props.href) {\n div.style.display = \"block\";\n div.href = paint.props.href;\n const target = paint.props.hrefTarget || \"_blank\";\n div.target = target;\n if (target !== \"_self\") {\n div.rel = \"noopener noreferrer\";\n }\n }\n div.title = paint.props.title || \"\";\n if (this.options.inlineStyles) {\n div.style.display = \"block\";\n div.style.position = \"absolute\";\n div.style.overflow = \"hidden\";\n div.style.transformOrigin = \"0px 0px\";\n } else {\n div.classList.add(this.classes.hostClassName);\n }\n paint.__host = { element: div, revision: null, relative: false };\n this.updateHtmlHost(paint, paint.width, paint.height);\n if (paint.__onCreate) {\n paint.__onCreate();\n }\n }\n }\n triggerResize() {\n this.options.triggerResize();\n }\n updateHtmlHost(paint, width, height) {\n if (paint.__revision !== paint.__host.revision) {\n const div = paint.__host.element;\n const classes = [this.classes.hostClassName];\n if (paint.props.interactive) {\n if (this.options.inlineStyles) {\n div.style.pointerEvents = \"all\";\n } else {\n classes.push(this.classes.interactive);\n }\n } else {\n if (this.options.inlineStyles) {\n div.style.pointerEvents = \"none\";\n } else {\n classes.push(this.classes.nonInteractive);\n }\n }\n if (paint.props.href) {\n div.style.display = \"block\";\n div.href = paint.props.href;\n const target = paint.props.hrefTarget || \"_blank\";\n div.target = target;\n if (target !== \"_self\") {\n div.rel = \"noopener noreferrer\";\n } else {\n div.rel = \"\";\n }\n } else if (div.href) {\n div.removeAttribute(\"href\");\n }\n if (paint.props.title) {\n div.title = paint.props.title || \"\";\n }\n if (paint.props.className) {\n classes.push(paint.props.className);\n if (paint.hovering) {\n classes.push(`${paint.props.className}--hover`);\n }\n if (paint.pressing) {\n classes.push(`${paint.props.className}--active`);\n }\n }\n if (paint.props.relativeStyle) {\n div.style.width = `${width || paint.width}px`;\n div.style.height = `${height || paint.height}px`;\n } else {\n div.style.width = `${paint.width}px`;\n div.style.height = `${paint.height}px`;\n }\n const style = paint.props.style;\n if (style) {\n Object.assign(div.style, paint.props.style || {}, paint.hovering ? paint.props.hoverStyles || {} : {}, paint.pressing ? paint.props.pressStyles || {} : {});\n return;\n }\n if (this.options.text && paint instanceof Text) {\n if (paint.text) {\n div.innerText = paint.text;\n }\n if (paint.backgroundColor) {\n div.style.backgroundColor = paint.backgroundColor;\n }\n if (paint.color) {\n div.style.color = paint.color;\n }\n if (paint.props.font) {\n div.style.font = paint.props.font;\n }\n if (paint.props.textAlign) {\n div.style.textAlign = paint.props.textAlign;\n }\n paint.__host.revision = paint.__revision;\n const classNames2 = classes.join(\" \");\n div.className = classNames2;\n div.part = classNames2;\n }\n if (paint instanceof Box && (this.options.box || paint.props.className || paint.props.html)) {\n if (paint.props.backgroundColor) {\n div.style.backgroundColor = paint.props.backgroundColor;\n }\n if (paint.props.border !== div.style.border) {\n div.style.border = paint.props.border;\n }\n }\n const classNames = classes.join(\" \");\n div.className = classNames;\n div.part = classNames;\n }\n }\n afterFrame(world, delta, target) {\n this.stylesheet.updateSheet();\n for (const prev of this.previousVisible) {\n if (this.visible.indexOf(prev) === -1) {\n if (this.htmlContainer && prev.__id && this.htmlIds.indexOf(prev.__id) !== -1) {\n this.htmlContainer.removeChild(prev.__host.element);\n }\n }\n }\n this.previousVisible = this.visible;\n }\n afterPaintLayer(paint, transform2) {\n }\n beforeFrame(world, delta, target) {\n this.stylesheet.clearClasses();\n this.paintTx++;\n this.zIndex = 0;\n this.visible = [];\n }\n getPointsAt(world, target, aggregate, scaleFactor) {\n return world.getPointsAt(target, aggregate, scaleFactor);\n }\n getScale(width, height) {\n const w2 = this.rendererPosition.width / width;\n const h2 = this.rendererPosition.height / height;\n return w2 < h2 ? h2 : w2;\n }\n getViewportBounds(world, target, padding) {\n return null;\n }\n isReady() {\n return false;\n }\n paint(paint, index, x2, y2, width, height) {\n this.zIndex++;\n if ((this.options.text && paint instanceof Text || paint instanceof Box && (this.options.box || paint.props.className || paint.props.html)) && paint.__host.tx !== this.paintTx) {\n this.visible.push(paint);\n paint.__host.tx = this.paintTx;\n if (this.htmlContainer) {\n this.updateHtmlHost(paint, width, height);\n const scale2 = width / paint.width;\n const element = paint.__host.element;\n element.style.zIndex = `${this.zIndex}`;\n if (paint.props.relativeStyle) {\n element.style.transform = `translate(${Math.round(x2)}px, ${Math.round(y2)}px)`;\n } else {\n element.style.transform = `translate(${Math.round(x2)}px, ${Math.round(y2)}px) scale(${scale2})`;\n }\n if (this.previousVisible.indexOf(paint) === -1) {\n this.htmlContainer.appendChild(element);\n }\n if (this.htmlIds.indexOf(paint.__id) === -1) {\n this.htmlIds.push(paint.__id);\n }\n }\n }\n }\n pendingUpdate() {\n return false;\n }\n prepareLayer(paint) {\n if (!paint.__host) {\n if (paint instanceof Text || paint instanceof Box) {\n this.createHtmlHost(paint);\n }\n }\n }\n resize(width, height) {\n if (typeof width !== \"undefined\" && typeof height !== \"undefined\") {\n this.htmlContainer.style.width = `${width}px`;\n this.htmlContainer.style.height = `${height}px`;\n }\n this.rendererPosition = this.htmlContainer.getBoundingClientRect();\n }\n getRendererScreenPosition() {\n return this.rendererPosition;\n }\n}\nconst _BrowserEventManager = class {\n constructor(element, runtime, options) {\n this.activatedEvents = [];\n this.eventHandlers = [];\n this.pointerMoveEvent = void 0;\n this.pointerEventState = {\n isClicking: false,\n isDragging: false,\n isPressed: false,\n mousedOver: [],\n itemsBeingDragged: [],\n mouseDownStart: { x: 0, y: 0 },\n lastTouches: []\n };\n this._realPointerMove = (e) => {\n this.pointerMoveEvent = e;\n };\n this.onWheelEvent = (e) => {\n e.preventDefault();\n this.onPointerEvent(e);\n };\n this.onTouchEvent = (e) => {\n const type = supportedEventMap[e.type];\n const atlasTouches = [];\n const len = e.touches.length;\n for (let i = 0; i < len; i++) {\n const touch = e.touches.item(i);\n if (!touch)\n continue;\n const { x: x2, y: y2 } = this.runtime.viewerToWorld(touch.clientX - this.bounds.left, touch.clientY - this.bounds.top);\n const atlasTouch = { id: touch.identifier, x: x2, y: y2 };\n atlasTouches.push(atlasTouch);\n }\n if (atlasTouches.length) {\n this.assignToEvent(e, atlasTouches[0].x, atlasTouches[0].y);\n }\n if (type !== \"onTouchEnd\") {\n this.pointerEventState.lastTouches = atlasTouches;\n e.atlasTouches = atlasTouches;\n this.runtime.world.propagateTouchEvent(type, e, atlasTouches);\n } else {\n e.atlasTouches = [];\n this.runtime.world.propagateTouchEvent(type, e, this.pointerEventState.lastTouches);\n this.pointerEventState.lastTouches = [];\n }\n };\n this.onPointerEvent = (e) => {\n const ev = supportedEventMap[e.type];\n if (ev && this.runtime.world.activatedEvents.indexOf(ev) !== -1) {\n const { x: x2, y: y2 } = this.runtime.viewerToWorld(e.clientX - this.bounds.left, e.clientY - this.bounds.top);\n this.assignToEvent(e, x2, y2);\n this.runtime.world.propagatePointerEvent(ev, e, x2, y2);\n }\n };\n this.onPointerDown = (e) => {\n this.pointerEventState.isPressed = true;\n this.pointerEventState.isClicking = true;\n this.pointerEventState.mouseDownStart.x = e.clientX;\n this.pointerEventState.mouseDownStart.y = e.clientY;\n setTimeout(() => {\n if (this.runtime) {\n this.pointerEventState.isClicking = false;\n }\n }, 250);\n setTimeout(() => {\n if (this.runtime && this.pointerEventState.isPressed && !this.pointerEventState.isDragging) {\n const dragStart = this.runtime.viewerToWorld(this.pointerEventState.mouseDownStart.x - this.bounds.left, this.pointerEventState.mouseDownStart.y - this.bounds.top);\n this.pointerEventState.isDragging = true;\n this.pointerEventState.itemsBeingDragged = this.runtime.world.propagatePointerEvent(\"onDragStart\", e, dragStart.x, dragStart.y);\n }\n }, 800);\n this.onPointerEvent(e);\n };\n this.onPointerUp = (e) => {\n if (this.pointerEventState.isClicking) {\n const { x: x2, y: y2 } = this.runtime.viewerToWorld(e.clientX - this.bounds.left, e.clientY - this.bounds.top);\n this.assignToEvent(e, x2, y2);\n this.runtime.world.propagatePointerEvent(\"onClick\", e, x2, y2);\n }\n if (this.pointerEventState.isDragging) {\n for (const item of this.pointerEventState.itemsBeingDragged) {\n item.dispatchEvent(\"onDragEnd\", e);\n }\n this.pointerEventState.isDragging = false;\n }\n this.pointerEventState.isClicking = false;\n this.pointerEventState.isPressed = false;\n this.pointerEventState.itemsBeingDragged = [];\n this.onPointerEvent(e);\n };\n this.onPointerMove = (e) => {\n this.pointerMoveEvent = void 0;\n const { x: x2, y: y2 } = this.runtime.viewerToWorld(e.clientX - this.bounds.left, e.clientY - this.bounds.top);\n if (Number.isNaN(x2) || Number.isNaN(y2)) {\n return;\n }\n this.assignToEvent(e, x2, y2);\n this.runtime.world.propagatePointerEvent(\"onPointerMove\", e, x2, y2);\n const newList = this.runtime.world.propagatePointerEvent(\"onMouseMove\", e, x2, y2);\n const newIds = [];\n const newItems = [];\n for (const item of newList) {\n newIds.push(item.id);\n newItems.push(item);\n if (this.pointerEventState.mousedOver.indexOf(item) === -1) {\n item.dispatchEvent(\"onMouseEnter\", e);\n item.dispatchEvent(\"onPointerEnter\", e);\n item.dispatchEvent(\"onMouseOver\", e);\n item.dispatchEvent(\"onPointerOver\", e);\n }\n }\n for (const oldItem of this.pointerEventState.mousedOver) {\n if (newIds.indexOf(oldItem.id) === -1) {\n oldItem.dispatchEvent(\"onMouseLeave\", e);\n oldItem.dispatchEvent(\"onPointerLeave\", e);\n oldItem.dispatchEvent(\"onMouseOut\", e);\n oldItem.dispatchEvent(\"onPointerOut\", e);\n }\n }\n if (this.pointerEventState.isDragging) {\n for (const item of this.pointerEventState.itemsBeingDragged) {\n item.dispatchEvent(\"onDrag\", e);\n }\n }\n if (this.pointerEventState.isPressed && !this.pointerEventState.isDragging && distance(this.pointerEventState.mouseDownStart, { x: e.clientX, y: e.clientY }) > 50) {\n const dragStart = this.runtime.viewerToWorld(this.pointerEventState.mouseDownStart.x - this.bounds.left, this.pointerEventState.mouseDownStart.y - this.bounds.top);\n this.pointerEventState.isDragging = true;\n this.pointerEventState.itemsBeingDragged = this.runtime.world.propagatePointerEvent(\"onDragStart\", { ...e, atlas: { x: dragStart.x, y: dragStart.y } }, dragStart.x, dragStart.y);\n }\n this.pointerEventState.mousedOver = newItems;\n };\n this.element = element;\n this.runtime = runtime;\n this.unsubscribe = runtime.world.addLayoutSubscriber(this.layoutSubscriber.bind(this));\n this.bounds = element.getBoundingClientRect();\n this.options = {\n simulationRate: 0,\n ...options || {}\n };\n let tAcc = 0;\n runtime.registerHook(\"useFrame\", (t) => {\n tAcc += t;\n if (tAcc > this.options.simulationRate && this.pointerMoveEvent) {\n tAcc = 0;\n runtime.updateNextFrame();\n }\n });\n runtime.registerHook(\"useBeforeFrame\", () => {\n if (this.pointerMoveEvent) {\n this.onPointerMove(this.pointerMoveEvent);\n }\n });\n this.activateEvents();\n }\n updateBounds() {\n this.bounds = this.element.getBoundingClientRect();\n this.runtime.updateRendererScreenPosition();\n }\n layoutSubscriber(type) {\n if (type === \"event-activation\") {\n this.activateEvents();\n }\n }\n assignToEvent(e, x2, y2) {\n _BrowserEventManager.eventPool.atlas.x = x2;\n _BrowserEventManager.eventPool.atlas.y = y2;\n e.atlas = _BrowserEventManager.eventPool.atlas;\n }\n activateEvents() {\n this.element.addEventListener(\"pointermove\", this._realPointerMove);\n this.element.addEventListener(\"pointerup\", this.onPointerUp);\n this.element.addEventListener(\"pointerdown\", this.onPointerDown);\n this.element.addEventListener(\"mousedown\", this.onPointerEvent);\n this.element.addEventListener(\"mouseup\", this.onPointerEvent);\n this.element.addEventListener(\"pointercancel\", this.onPointerEvent);\n this.element.addEventListener(\"wheel\", this.onWheelEvent);\n this.element.addEventListener(\"touchstart\", this.onTouchEvent);\n this.element.addEventListener(\"touchcancel\", this.onTouchEvent);\n this.element.addEventListener(\"touchend\", this.onTouchEvent);\n this.element.addEventListener(\"touchmove\", this.onTouchEvent);\n }\n normalizeEventName(event) {\n if (event.startsWith(\"on\")) {\n return event.slice(2).toLowerCase();\n }\n return event.toLowerCase();\n }\n stop() {\n this.unsubscribe();\n for (const [event, handler] of this.eventHandlers) {\n this.element.removeEventListener(this.normalizeEventName(event), handler);\n }\n }\n};\nlet BrowserEventManager = _BrowserEventManager;\nBrowserEventManager.eventPool = {\n atlas: { x: 0, y: 0 }\n};\nfunction defaultPreset({\n interactive = true,\n viewport,\n forceRefresh,\n canvasElement,\n overlayElement,\n controllerConfig,\n unstable_webglRenderer,\n dpi,\n debug,\n canvasBox = true,\n navigatorElement,\n background,\n runtimeOptions\n}) {\n if (!canvasElement) {\n throw new Error(\"Invalid container\");\n }\n canvasElement.style.userSelect = \"none\";\n const controller = interactive ? popmotionController({\n minZoomFactor: 0.5,\n maxZoomFactor: 3,\n enableClickToZoom: false,\n ...controllerConfig || {}\n }) : void 0;\n const renderer = new CompositeRenderer([\n unstable_webglRenderer ? new WebGLRenderer(canvasElement, { dpi }) : new CanvasRenderer(canvasElement, { dpi, debug, box: canvasBox, background }),\n overlayElement ? new OverlayRenderer(overlayElement, {\n box: unstable_webglRenderer || !canvasBox,\n text: true,\n triggerResize: forceRefresh\n }) : void 0,\n navigatorElement ? new DebugRenderer(navigatorElement) : void 0\n ]);\n const runtime = new Runtime(renderer, new World(1024, 1024), viewport, controller ? [controller] : [], runtimeOptions);\n const em = new BrowserEventManager(canvasElement, runtime);\n return {\n name: \"default-preset\",\n em,\n runtime,\n renderer,\n controller,\n canvas: canvasElement,\n navigator: navigatorElement,\n unmount() {\n unmountComponentAtNode(runtime);\n runtime.stopControllers();\n runtime.stop();\n if (em) {\n em.stop();\n }\n }\n };\n}\nclass StaticRenderer {\n constructor(container, options) {\n this.pending = true;\n this.zIndex = 0;\n this.lastKnownScale = 1;\n this.currentlyVisible = [];\n this.previouslyVisible = [];\n this.container = container;\n this.rendererPosition = container.getBoundingClientRect();\n const { width, height } = this.rendererPosition;\n this.width = width;\n this.height = height;\n this.options = {\n addPart: false,\n setDraggableFalse: false,\n imageClass: \"\",\n widthStylesheet: false,\n sheetPrefix: \"position-\",\n background: \"#000\",\n ...options || {}\n };\n this.stylesheet = new Stylesheet({ sheetPrefix: this.options.sheetPrefix });\n this.container.classList.add(this.stylesheet.addStylesheet(`\n background: ${this.options.background};\n `));\n if (this.options.widthStylesheet) {\n this.container.appendChild(this.stylesheet.getElement());\n }\n }\n isReady() {\n return true;\n }\n resize() {\n this.rendererPosition = this.container.getBoundingClientRect();\n this.width = this.rendererPosition.width;\n this.height = this.rendererPosition.height;\n }\n getRendererScreenPosition() {\n return this.rendererPosition;\n }\n afterFrame(world, delta, target) {\n this.stylesheet.updateSheet();\n for (const item of this.previouslyVisible) {\n if (this.currentlyVisible.indexOf(item) === -1) {\n this.container.removeChild(item);\n }\n }\n for (const item of this.currentlyVisible) {\n if (this.previouslyVisible.indexOf(item) === -1) {\n this.container.appendChild(item);\n }\n }\n this.previouslyVisible = this.currentlyVisible;\n this.currentlyVisible = [];\n }\n afterPaintLayer(paint, transform2) {\n }\n beforeFrame(world, delta, target) {\n this.stylesheet.clearClasses();\n this.zIndex = 0;\n }\n getPointsAt(world, target, aggregate, scaleFactor) {\n return world.getPointsAt(target, aggregate, scaleFactor);\n }\n getScale(width, height) {\n if (Number.isNaN(width) || Number.isNaN(height)) {\n return this.lastKnownScale;\n }\n const w2 = this.width / width;\n const h2 = this.height / height;\n const scale2 = w2 < h2 ? h2 : w2;\n if (!Number.isNaN(scale2)) {\n this.lastKnownScale = scale2;\n }\n return this.lastKnownScale;\n }\n getViewportBounds(world, target, padding) {\n return null;\n }\n createImage() {\n const image = document.createElement(\"img\");\n if (this.options.imageClass) {\n image.className = this.options.imageClass;\n if (this.options.addPart) {\n image.setAttribute(\"part\", this.options.imageClass);\n }\n } else {\n image.style.position = \"absolute\";\n image.style.pointerEvents = \"none\";\n image.style.userSelect = \"none\";\n }\n if (this.options.setDraggableFalse) {\n image.setAttribute(\"draggable\", \"false\");\n }\n return image;\n }\n paint(paint, index, x2, y2, width, height) {\n this.pending = false;\n this.zIndex++;\n if (paint instanceof SingleImage) {\n if (!paint.__host) {\n const image = this.createImage();\n image.src = paint.uri;\n paint.__host = image;\n this.container.appendChild(paint.__host);\n }\n const element = paint.__host;\n this.currentlyVisible.push(element);\n element.style.zIndex = `${this.zIndex}`;\n element.style.opacity = `${paint.style.opacity}`;\n if (this.options.widthStylesheet) {\n element.className = this.options.imageClass + \" \" + this.stylesheet.addStylesheet(`width:${(width + Number.MIN_VALUE).toFixed(2)}px;height:${(height + Number.MIN_VALUE).toFixed(2)}px;`);\n } else {\n element.style.width = `${width + Number.MIN_VALUE}px`;\n element.style.height = `${height + Number.MIN_VALUE}px`;\n }\n element.style.transform = `translate(${x2}px, ${y2}px)`;\n }\n if (paint instanceof TiledImage) {\n if (!paint.__host) {\n paint.__host = {\n images: []\n };\n }\n if (!paint.__host.images[index]) {\n const url = paint.getImageUrl(index);\n const image = this.createImage();\n image.src = url;\n paint.__host.images[index] = image;\n this.container.appendChild(image);\n }\n const element = paint.__host.images[index];\n element.style.zIndex = `${this.zIndex}`;\n element.style.opacity = `${paint.style.opacity}`;\n this.currentlyVisible.push(element);\n if (this.options.widthStylesheet) {\n element.className = this.options.imageClass + \" \" + this.stylesheet.addStylesheet(`width:${(width + Number.MIN_VALUE).toFixed(2)}px;height:${(height + Number.MIN_VALUE).toFixed(2)}px;`);\n } else {\n element.style.width = `${width + Number.MIN_VALUE}px`;\n element.style.height = `${height + Number.MIN_VALUE}px`;\n }\n element.style.transform = `translate(${x2}px, ${y2}px)`;\n }\n }\n pendingUpdate() {\n return this.pending;\n }\n prepareLayer(paint) {\n }\n}\nfunction staticPreset({\n interactive,\n viewport,\n forceRefresh,\n containerElement,\n overlayElement,\n controllerConfig,\n background\n}) {\n if (!containerElement) {\n throw new Error(\"Invalid container\");\n }\n containerElement.style.userSelect = \"none\";\n const controller = interactive ? popmotionController({\n minZoomFactor: 0.5,\n maxZoomFactor: 3,\n enableClickToZoom: false,\n ...controllerConfig || {}\n }) : void 0;\n const staticRenderer = new StaticRenderer(containerElement, {\n addPart: false,\n setDraggableFalse: false,\n imageClass: \"atlas-static-image\",\n background\n });\n const renderer = overlayElement ? new CompositeRenderer([\n staticRenderer,\n new OverlayRenderer(overlayElement, {\n box: true,\n text: true,\n triggerResize: forceRefresh\n })\n ]) : staticRenderer;\n const runtime = new Runtime(renderer, new World(1024, 1024), viewport, controller ? [controller] : []);\n const em = new BrowserEventManager(containerElement, runtime);\n return {\n name: \"static-preset\",\n em,\n runtime,\n renderer,\n controller,\n container: containerElement,\n overlay: overlayElement,\n unmount() {\n unmountComponentAtNode(runtime);\n runtime.stopControllers();\n runtime.stop();\n if (em) {\n em.stop();\n }\n }\n };\n}\nconst presets = {\n \"default-preset\": defaultPreset,\n \"static-preset\": staticPreset\n};\nconst defaultArgs = {};\nfunction usePreset(renderPreset, options) {\n const overlayRef = useRef();\n const canvasRef = useRef();\n const navigatorRef = useRef();\n const containerRef = useRef();\n const viewport = useRef({\n width: options.width,\n height: options.height,\n didUpdate: true\n });\n const [presetName = \"default-preset\", presetArgs = defaultArgs] = Array.isArray(renderPreset) ? renderPreset || [] : [renderPreset];\n const [preset, setPreset] = useState(null);\n useLayoutEffect(() => {\n const canvasElement = canvasRef.current;\n const containerElement = containerRef.current;\n const overlayElement = overlayRef.current;\n const navigatorElement = navigatorRef.current;\n const presetFn = presets[presetName] || defaultPreset;\n const createdPreset = presetFn({\n containerElement,\n canvasElement,\n overlayElement,\n navigatorElement,\n viewport: viewport.current,\n dpi: window.devicePixelRatio || 1,\n forceRefresh: options.forceRefresh,\n unstable_webglRenderer: options.unstable_webglRenderer,\n ...presetArgs || {}\n });\n setPreset(createdPreset);\n return () => {\n if (createdPreset) {\n createdPreset.unmount();\n }\n };\n }, [presetName, presetArgs]);\n const refs = useMemo(() => ({\n canvas: canvasRef,\n overlay: overlayRef,\n container: containerRef,\n navigator: navigatorRef\n }), []);\n return [presetName, preset, viewport, refs];\n}\nfunction useClassname(deps) {\n return useMemo(() => hash(deps), deps);\n}\nconst Container = React.forwardRef((props, ref) => {\n return /* @__PURE__ */ jsx(\"div\", {\n ...props,\n ref,\n part: props.className\n });\n});\nconst Atlas = ({\n htmlChildren,\n renderPreset: _renderPreset,\n onCreated,\n mode: _mode = \"explore\",\n resetWorldOnChange = true,\n unstable_webglRenderer = false,\n unstable_noReconciler = false,\n hideInlineStyle = false,\n controllerConfig,\n children,\n overlayStyle,\n containerStyle,\n enableNavigator,\n className,\n containerProps = {},\n homePosition,\n background: _background,\n debug,\n ...restProps\n}) => {\n const [background, setBackground] = useState(_background);\n const [mode, setMode] = useState(_mode);\n const [isReady, setIsReady] = useState(false);\n const renderPreset = useMemo(() => {\n if (typeof _renderPreset === \"string\") {\n _renderPreset = [_renderPreset, {}];\n }\n if (background || debug) {\n if (_renderPreset) {\n return [_renderPreset[0], {\n debug,\n background,\n ..._renderPreset[1] || {}\n }];\n }\n return [\"default-preset\", {\n background,\n debug\n }];\n }\n return _renderPreset || \"default-preset\";\n }, [_renderPreset, background, debug]);\n const [_ref, bounds, forceRefresh] = useMeasure({\n scroll: true\n });\n const outerContainerRef = useRef();\n const ref = (component) => {\n outerContainerRef.current = component;\n _ref(component);\n };\n const [presetName, preset, viewport, refs] = usePreset(renderPreset, {\n width: restProps.width,\n height: restProps.height,\n forceRefresh,\n unstable_webglRenderer\n });\n const [containerClassName, setContainerClassName] = useState(\"\");\n useEffect(() => {\n setMode(_mode);\n }, [_mode]);\n useEffect(() => {\n if (preset && preset.em) {\n preset.em.updateBounds();\n }\n }, [preset, bounds]);\n useEffect(() => {\n if (preset && preset.runtime) {\n preset.runtime.mode = mode;\n }\n if (isReady && preset) {\n preset.ready = true;\n }\n }, [preset, isReady, mode]);\n useEffect(() => {\n if (preset) {\n preset.runtime.manualHomePosition = !!homePosition;\n preset.runtime.setHomePosition(homePosition);\n }\n }, [preset, homePosition]);\n useEffect(() => {\n if (preset) {\n const rt = preset.runtime;\n rt.resize(viewport.current.width, restProps.width, viewport.current.height, restProps.height);\n viewport.current.width = restProps.width;\n viewport.current.height = restProps.height;\n rt.updateNextFrame();\n viewport.current.didUpdate = true;\n }\n }, [preset, restProps.width, restProps.height]);\n useLayoutEffect(() => {\n if (preset) {\n if (preset.overlay) {\n preset.overlay.style.width = `${bounds.width}px`;\n preset.overlay.style.height = `${bounds.height}px`;\n }\n if (preset.container) {\n preset.container.style.width = `${bounds.width}px`;\n preset.container.style.height = `${bounds.height}px`;\n }\n }\n }, [preset, bounds.height, bounds.width]);\n useLayoutEffect(() => {\n const windowResizeCallback = () => {\n if (preset) {\n const rt = preset.runtime;\n if (viewport.current.width !== restProps.width && viewport.current.height !== restProps.height) {\n rt.resize(viewport.current.width, restProps.width, viewport.current.height, restProps.height);\n viewport.current.width = restProps.width;\n viewport.current.height = restProps.height;\n rt.updateNextFrame();\n viewport.current.didUpdate = true;\n }\n }\n };\n window.addEventListener(\"resize\", windowResizeCallback);\n return () => window.removeEventListener(\"resize\", windowResizeCallback);\n }, [preset, restProps.height, restProps.width]);\n const navigatorOptions = {\n width: 120\n };\n const recalculateNavigatorDimensions = () => {\n if (preset && preset.navigator) {\n const wHeight = preset.runtime.world.height;\n const wWidth = preset.runtime.world.width;\n const ratio = window.devicePixelRatio || 1;\n const canvasWidth = navigatorOptions.width;\n const canvasHeight = navigatorOptions.width / wWidth * wHeight;\n preset.navigator.width = canvasWidth * ratio;\n preset.navigator.height = canvasHeight * ratio;\n preset.navigator.style.width = canvasWidth + \"px\";\n preset.navigator.style.height = canvasHeight + \"px\";\n }\n };\n useLayoutEffect(() => {\n if (preset) {\n recalculateNavigatorDimensions();\n const rt = preset.runtime;\n return rt.world.addLayoutSubscriber((type) => {\n if (type === \"recalculate-world-size\") {\n recalculateNavigatorDimensions();\n rt.resize(viewport.current.width, restProps.width, viewport.current.height, restProps.height);\n }\n });\n }\n return () => {\n };\n }, [preset]);\n const Canvas = useCallback(function Canvas2(props) {\n const activate = () => {\n setIsReady(true);\n };\n useEffect(() => {\n if (preset) {\n preset.runtime.goHome();\n const result = onCreated && onCreated(preset);\n return void (result && result.then ? result.then(activate) : activate());\n } else {\n throw new Error(\"Invalid configuration - no runtime found\");\n }\n }, []);\n return props.children;\n }, [preset]);\n useEffect(() => {\n if (preset) {\n const rt = preset.runtime;\n if (resetWorldOnChange) {\n return rt.world.addLayoutSubscriber((type) => {\n if (type === \"recalculate-world-size\") {\n rt.goHome();\n }\n });\n }\n }\n return () => {\n };\n }, [preset, resetWorldOnChange]);\n useEffect(() => {\n if (preset) {\n const rt = preset.runtime;\n return rt.registerHook(\"useBeforeFrame\", () => {\n var _a;\n if (viewport.current.didUpdate && preset.canvas) {\n const ratio = window.devicePixelRatio || 1;\n const canvasWidth = viewport.current.width;\n const canvasHeight = viewport.current.height;\n preset.canvas.width = canvasWidth * ratio;\n preset.canvas.height = canvasHeight * ratio;\n preset.canvas.style.width = canvasWidth + \"px\";\n preset.canvas.style.height = canvasHeight + \"px\";\n (_a = preset.canvas.getContext(\"2d\")) == null ? void 0 : _a.scale(ratio, ratio);\n if (preset && preset.em) {\n preset.em.updateBounds();\n }\n viewport.current.didUpdate = false;\n }\n });\n }\n return () => {\n };\n }, [preset, resetWorldOnChange]);\n useEffect(() => {\n const keyupSpace = () => {\n if (preset) {\n setMode(\"sketch\");\n setContainerClassName(\"mode-sketch\");\n }\n window.removeEventListener(\"keyup\", keyupSpace);\n };\n const keydownSpace = (e) => {\n if (e.code === \"Space\" && preset && preset.runtime.mode === \"sketch\") {\n if (e.target && e.target.tagName && e.target.tagName.toLowerCase() === \"input\")\n return;\n e.preventDefault();\n setMode(\"explore\");\n setContainerClassName(\"mode-explore\");\n window.addEventListener(\"keyup\", keyupSpace);\n }\n };\n window.addEventListener(\"keydown\", keydownSpace);\n return () => {\n window.removeEventListener(\"keydown\", keydownSpace);\n window.removeEventListener(\"keyup\", keyupSpace);\n };\n }, [preset]);\n useLayoutEffect(() => {\n if (outerContainerRef.current && !background) {\n const computed = getComputedStyle(outerContainerRef.current);\n const _background2 = computed.getPropertyValue(\"--atlas-background\");\n if (_background2) {\n setBackground(_background2);\n }\n }\n }, [background]);\n const {\n height: _2,\n width: __,\n ...canvasProps\n } = restProps;\n const widthClassName = useClassname([restProps.width, restProps.height]);\n return /* @__PURE__ */ jsxs(Container, {\n ref,\n className: [\"atlas\", hideInlineStyle ? \"\" : `atlas-width-${widthClassName}`, containerClassName, className].filter(Boolean).join(\" \").trim(),\n style: {\n ...containerStyle,\n ...hideInlineStyle ? {} : {\n width: restProps.width,\n height: restProps.height\n }\n },\n children: [presetName === \"static-preset\" ? /* @__PURE__ */ jsx(Container, {\n className: \"atlas-static-container\",\n style: preset && preset.controller ? void 0 : {\n pointerEvents: \"none\"\n },\n ref: refs.container,\n tabIndex: 0,\n ...containerProps\n }) : /* @__PURE__ */ jsx(\"canvas\", {\n className: \"atlas-canvas\",\n part: \"atlas-canvas\",\n tabIndex: 0,\n ...canvasProps,\n ...containerProps,\n ref: refs.canvas\n }), /* @__PURE__ */ jsx(Container, {\n className: \"atlas-overlay\",\n style: {\n ...overlayStyle || {}\n },\n ref: refs.overlay,\n children: unstable_noReconciler ? /* @__PURE__ */ jsx(Canvas, {\n children: /* @__PURE__ */ jsx(BoundsContext.Provider, {\n value: bounds,\n children: /* @__PURE__ */ jsx(ModeContext.Provider, {\n value: mode,\n children: /* @__PURE__ */ jsx(AtlasContext.Provider, {\n value: preset,\n children\n })\n })\n })\n }) : /* @__PURE__ */ jsx(AtlasWithReconciler, {\n bounds,\n preset,\n mode,\n setIsReady,\n onCreated,\n children\n })\n }), enableNavigator ? /* @__PURE__ */ jsx(Container, {\n className: \"atlas-navigator\",\n children: /* @__PURE__ */ jsx(\"canvas\", {\n className: \"atlas-navigator-canvas\",\n part: \"atlas-navigator-canvas\",\n ref: refs.navigator\n })\n }) : null, hideInlineStyle ? /* @__PURE__ */ jsx(\"style\", {\n children: `.atlas-width-${widthClassName} { width: ${restProps.width}px; height: ${restProps.height}px; }`\n }) : /* @__PURE__ */ jsx(\"style\", {\n children: `\n .atlas { position: relative; user-select: none; display: flex; background: var(--atlas-background, #000); z-index: var(--atlas-z-index, 10); touch-action: none; }\n .atlas-width-${widthClassName} { width: ${restProps.width}px; height: ${restProps.height}px; }\n .atlas-canvas { flex: 1 1 0px; }\n .atlas-canvas:focus, .atlas-static-container:focus { outline: none }\n .atlas-canvas:focus-visible, .atlas-canvas-container:focus-visible { outline: var(--atlas-focus, 2px solid darkorange) }\n .atlas-static-container { position: relative; overflow: hidden; flex: 1 1 0px; }\n .atlas-overlay { position: absolute; top: 0; left: 0; pointer-events: none; overflow: hidden; }\n .atlas-static-image { position: absolute; pointer-events: none; user-select: none; transform-origin: 0px 0px; }\n .atlas-navigator { position: absolute; top: var(--atlas-navigator-top, 10px); right: var(--atlas-navigator-bottom, 10px); left: var(--atlas-navigator-left); bottom: var(--atlas-navigator-bottom); opacity: .8 }\n .atlas-navigator-canvas { width: 100%; }\n `\n }), htmlChildren]\n });\n};\nfunction toPx(str) {\n if (Number(str) == str) {\n return `${str}px`;\n }\n return str;\n}\nconst AtlasAuto = ({\n resizeHash,\n aspectRatio,\n containerProps = {},\n ...props\n}) => {\n const [ref, _bounds, forceRefresh] = useMeasure();\n const {\n height,\n width,\n ...restProps\n } = props;\n useEffect(() => {\n forceRefresh();\n }, [width, height, resizeHash, forceRefresh]);\n const bounds = useMemo(() => {\n if (!aspectRatio) {\n return _bounds;\n }\n return {\n width: _bounds.width,\n height: _bounds.width * (1 / aspectRatio)\n };\n }, [_bounds, aspectRatio]);\n return /* @__PURE__ */ jsxs(Container, {\n ref,\n className: \"atlas-container\",\n ...containerProps,\n children: [bounds.width ? /* @__PURE__ */ jsx(Atlas, {\n width: bounds.width || 100,\n height: bounds.height || 100,\n ...restProps,\n children: props.children\n }) : null, props.hideInlineStyle ? null : /* @__PURE__ */ jsx(\"style\", {\n children: `\n .atlas-container { \n display: var(--atlas-container-display, block);\n flex: var(--atlas-container-flex, none);\n width: var(--atlas-container-width, ${width ? `${width}px` : \"100%\"});\n height: var(--atlas-container-height, ${toPx(height ? height : aspectRatio ? bounds.height : 512)}) \n }\n `\n }), props.htmlChildren]\n });\n};\nconst useAtlas = () => {\n return useContext(AtlasContext);\n};\nconst useRuntime = () => {\n const atlas = useAtlas();\n return atlas ? atlas.runtime : void 0;\n};\nconst useAfterFrame = (callback, deps = []) => {\n const runtime = useRuntime();\n useEffect(() => {\n if (runtime) {\n return runtime.registerHook(\"useAfterFrame\", callback);\n }\n return () => {\n };\n }, deps);\n};\nconst useFrame = (callback, deps = []) => {\n const runtime = useRuntime();\n useEffect(() => {\n if (runtime) {\n return runtime.registerHook(\"useFrame\", callback);\n }\n return () => {\n };\n }, deps);\n};\nconst useCanvas = () => {\n const atlas = useAtlas();\n return atlas && atlas.canvas ? atlas.canvas : void 0;\n};\nfunction useCanvasPosition() {\n return useContext(BoundsContext);\n}\nconst DrawBox = ({\n onCreate\n}) => {\n const mousePosition = useRef({\n x: 0,\n y: 0\n });\n const canvas = useCanvas();\n const canvasPosition = useCanvasPosition();\n const runtime = useRuntime();\n const [firstCorner, setFirstCorner] = useState();\n const [secondCorner, setSecondCorner] = useState();\n const mode = useMode();\n useFrame(() => {\n if (runtime && firstCorner && !secondCorner) {\n runtime.pendingUpdate = true;\n }\n }, [firstCorner, secondCorner]);\n useAfterFrame(() => {\n if (firstCorner && canvas && runtime) {\n const ctx = canvas.getContext(\"2d\");\n if (ctx) {\n const {\n x: x2,\n y: y2,\n width,\n height\n } = runtime.worldToViewer(firstCorner.x, firstCorner.y, (secondCorner ? secondCorner.x : mousePosition.current.x) - firstCorner.x, (secondCorner ? secondCorner.y : mousePosition.current.y) - firstCorner.y);\n ctx.lineWidth = secondCorner ? 3 : 1;\n ctx.strokeStyle = \"#fff\";\n ctx.strokeRect(x2, y2, width, height);\n ctx.lineWidth = secondCorner ? 3 : 1;\n ctx.strokeStyle = \"#000\";\n ctx.strokeRect(x2 + 1, y2 + 1, width - 2, height - 2);\n }\n }\n }, [firstCorner, secondCorner]);\n useEffect(() => {\n const cb = (e) => {\n if (canvasPosition && runtime) {\n const {\n x: x2,\n y: y2\n } = runtime.viewerToWorld(e.clientX - canvasPosition.left, e.clientY - canvasPosition.top);\n mousePosition.current.x = ~~x2;\n mousePosition.current.y = ~~y2;\n }\n };\n if (canvas) {\n canvas.addEventListener(\"mousemove\", cb);\n return () => canvas.removeEventListener(\"mousemove\", cb);\n }\n return () => {\n };\n }, [canvasPosition, canvas, runtime]);\n useEffect(() => {\n const cb = (e) => {\n if (mode === \"sketch\") {\n setFirstCorner({\n x: Math.round(mousePosition.current.x),\n y: Math.round(mousePosition.current.y)\n });\n setSecondCorner(void 0);\n }\n };\n if (canvas) {\n canvas.addEventListener(\"mousedown\", cb);\n return () => canvas.removeEventListener(\"mousedown\", cb);\n }\n return () => {\n };\n }, [canvas, mode]);\n useEffect(() => {\n const cb = (e) => {\n if (firstCorner && !secondCorner) {\n setSecondCorner({\n x: Math.round(mousePosition.current.x),\n y: Math.round(mousePosition.current.y)\n });\n }\n };\n if (canvas) {\n canvas.addEventListener(\"mouseup\", cb);\n return () => canvas.removeEventListener(\"mouseup\", cb);\n }\n return () => {\n };\n }, [canvas, firstCorner, secondCorner]);\n useEffect(() => {\n if (firstCorner && secondCorner) {\n onCreate({\n x: Math.min(firstCorner.x, secondCorner.x),\n y: Math.min(firstCorner.y, secondCorner.y),\n width: Math.abs(secondCorner.x - firstCorner.x),\n height: Math.abs(secondCorner.y - firstCorner.y)\n });\n }\n }, [firstCorner, onCreate, secondCorner]);\n return null;\n};\nasync function renderReactDom(html, toRender, root) {\n if (version.startsWith(\"18.\")) {\n const { createRoot } = await import(\"react-dom/client\");\n if (!root.current) {\n root.current = createRoot(html);\n }\n root.current.render(toRender);\n } else {\n if (typeof ReactDOM !== \"undefined\") {\n const { render } = ReactDOM;\n render(toRender, html);\n } else {\n const { render } = await import(\"react-dom\");\n render(toRender, html);\n }\n }\n}\nconst HTMLPortal = React.forwardRef(({\n children,\n ...props\n}, fwdRef) => {\n const ref = useRef();\n const runtime = useRuntime();\n const lastScale = useRef(0);\n const boxRef = useRef();\n const root = useRef();\n useFrame(() => {\n if (props.relative) {\n const relativeBox = ref.current;\n if (relativeBox && runtime) {\n const scaleFactor = runtime.getScaleFactor();\n if (lastScale.current !== scaleFactor) {\n lastScale.current = scaleFactor;\n relativeBox.style.transformOrigin = \"0 0\";\n relativeBox.style.transform = `scale(${1 / lastScale.current})`;\n relativeBox.style.width = `${lastScale.current * 100}%`;\n relativeBox.style.height = `${lastScale.current * 100}%`;\n }\n }\n }\n }, [props.relative]);\n useLayoutEffect(() => {\n const box = boxRef.current;\n if (fwdRef && box) {\n if (typeof fwdRef === \"function\") {\n fwdRef(box);\n } else {\n fwdRef.current = box;\n }\n }\n async function renderHost() {\n if (box && box.__host) {\n const toRender = props.relative ? /* @__PURE__ */ jsx(\"div\", {\n ref,\n children\n }) : children;\n await renderReactDom(box.__host.element, toRender, root);\n }\n }\n if (box && box.__host) {\n renderHost();\n } else if (box) {\n box.__onCreate = renderHost;\n }\n }, [fwdRef, children, boxRef, props.relative]);\n useLayoutEffect(() => {\n return () => {\n if (root.current) {\n setTimeout(() => {\n root.current.unmount();\n }, 0);\n }\n };\n }, []);\n return /* @__PURE__ */ jsx(\"box\", {\n html: true,\n ...props,\n ref: boxRef\n });\n});\nconst useWorldEvent = (name, cb, deps = []) => {\n const runtime = useRuntime();\n const world = runtime ? runtime.world : void 0;\n useEffect(() => {\n if (runtime) {\n const callback = cb;\n const realName = supportedEventMap[name];\n runtime.world.activatedEvents.push(realName);\n const ev = realName.slice(2).toLowerCase();\n runtime.world.addEventListener(ev, callback);\n return () => {\n runtime.world.removeEventListener(ev, callback);\n };\n }\n return () => {\n };\n }, [world, name, ...deps]);\n};\nfunction getRatio(a, b2) {\n if (a === 0) {\n return [0, 1];\n }\n if (b2 === 0) {\n return [1, 0];\n }\n const ratio = Math.abs(a) / Math.abs(b2);\n return [ratio, 1 - ratio];\n}\nfunction useModifierKeys() {\n const modifierKeys = useRef({\n ctrl: false,\n shift: false,\n alt: false\n });\n useLayoutEffect(() => {\n function keyDown(e) {\n if (e.key === \"Shift\")\n modifierKeys.current.shift = true;\n if (e.key === \"Control\")\n modifierKeys.current.ctrl = true;\n if (e.key === \"Alt\")\n modifierKeys.current.alt = true;\n }\n function keyUp(e) {\n if (e.key === \"Shift\")\n modifierKeys.current.shift = false;\n if (e.key === \"Control\")\n modifierKeys.current.ctrl = false;\n if (e.key === \"Alt\")\n modifierKeys.current.alt = false;\n }\n window.addEventListener(\"keydown\", keyDown);\n window.addEventListener(\"keyup\", keyUp);\n return () => {\n window.removeEventListener(\"keydown\", keyDown);\n window.removeEventListener(\"keyup\", keyUp);\n };\n }, []);\n return modifierKeys;\n}\nconst useResizeWorldItem = (props, onSave) => {\n const mode = useMode();\n const runtime = useRuntime();\n const canvasPosition = useCanvasPosition();\n const resizeMode = useRef();\n const portalRef = useRef(null);\n const mouseStart = useRef();\n const [isEditing, setIsEditing] = useState(false);\n const cardinalDeltas = useRef({ north: 0, south: 0, east: 0, west: 0 });\n const keys2 = useModifierKeys();\n const mouseEvent = (direction) => (e) => {\n setIsEditing(true);\n if (canvasPosition && runtime) {\n const { top, left } = canvasPosition;\n const current = runtime.viewerToWorld(e.pageX - left, e.pageY - top);\n mouseStart.current = { x: current.x, y: current.y };\n resizeMode.current = direction;\n }\n };\n const aspectRatio = useMemo(() => {\n return props.width / props.height;\n }, [props.width, props.height]);\n const constrainToAspectRatio = useCallback((deltas) => {\n const hasDeltas = Math.abs(deltas.north - deltas.south + (deltas.east - deltas.west));\n if (!hasDeltas)\n return;\n const xDelta = -deltas.west + deltas.east;\n const yDelta = -deltas.north + deltas.south;\n const originalWidth = props.width + xDelta;\n const originalHeight = props.height + yDelta;\n const newAspectRatio = originalWidth / originalHeight;\n if (newAspectRatio >= aspectRatio) {\n const width = originalHeight * aspectRatio;\n const margin = originalWidth - width;\n const [eastRatio, westRatio] = getRatio(deltas.east, deltas.west);\n deltas.west = deltas.west + margin * westRatio;\n deltas.east = deltas.east - margin * eastRatio;\n } else {\n const height = originalWidth / aspectRatio;\n const margin = originalHeight - height;\n const [northRatio, southRatio] = getRatio(deltas.north, deltas.south);\n deltas.north = deltas.north + margin * northRatio;\n deltas.south = deltas.south - margin * southRatio;\n }\n }, [props.width, props.height, aspectRatio]);\n useFrame(() => {\n if (mouseStart && runtime) {\n runtime.updateNextFrame();\n }\n });\n useEffect(() => {\n if (runtime) {\n runtime.updateNextFrame();\n }\n }, [runtime, isEditing]);\n const onPointerMoveCallback = useCallback((e) => {\n var _a;\n const position = e.atlasTouches ? e.atlasTouches[0] : e.atlas ? e.atlas : { x: e.pageX, y: e.pageY };\n if (!runtime || runtime.mode !== \"sketch\")\n return;\n const box = portalRef.current;\n const alt = !props.maintainAspectRatio && keys2.current.alt;\n const shift = !alt && keys2.current.shift && ((_a = resizeMode.current) == null ? void 0 : _a.indexOf(\"-\")) !== -1;\n if (resizeMode.current === \"translate\" || resizeMode.current === \"east\" || resizeMode.current === \"north-east\" || resizeMode.current === \"south-east\") {\n cardinalDeltas.current.east = position.x - (mouseStart.current ? mouseStart.current.x : 0);\n if (alt) {\n cardinalDeltas.current.west = -cardinalDeltas.current.east;\n }\n }\n if (resizeMode.current === \"translate\" || resizeMode.current === \"west\" || resizeMode.current === \"north-west\" || resizeMode.current === \"south-west\") {\n cardinalDeltas.current.west = position.x - (mouseStart.current ? mouseStart.current.x : 0);\n if (alt) {\n cardinalDeltas.current.east = -cardinalDeltas.current.west;\n }\n }\n if (resizeMode.current === \"translate\" || resizeMode.current === \"north\" || resizeMode.current === \"north-east\" || resizeMode.current === \"north-west\") {\n cardinalDeltas.current.north = position.y - (mouseStart.current ? mouseStart.current.y : 0);\n if (alt) {\n cardinalDeltas.current.south = -cardinalDeltas.current.north;\n }\n }\n if (resizeMode.current === \"translate\" || resizeMode.current === \"south\" || resizeMode.current === \"south-west\" || resizeMode.current === \"south-east\") {\n cardinalDeltas.current.south = position.y - (mouseStart.current ? mouseStart.current.y : 0);\n if (alt) {\n cardinalDeltas.current.north = -cardinalDeltas.current.south;\n }\n }\n if (props.maintainAspectRatio || shift) {\n constrainToAspectRatio(cardinalDeltas.current);\n }\n if (box) {\n const dX1 = cardinalDeltas.current.west;\n const dY1 = cardinalDeltas.current.north;\n const dX2 = props.width + cardinalDeltas.current.east;\n const dY2 = props.height + cardinalDeltas.current.south;\n box.points[1] = Math.min(dX1, dX2);\n box.points[2] = Math.min(dY1, dY2);\n box.points[3] = Math.max(dX1, dX2);\n box.points[4] = Math.max(dY1, dY2);\n runtime.updateNextFrame();\n }\n }, [runtime, props.width, props.height, props.maintainAspectRatio]);\n useWorldEvent(\"mousemove\", onPointerMoveCallback, [props.width, props.height]);\n useWorldEvent(\"pointermove\", onPointerMoveCallback, [props.width, props.height]);\n const windowPointerUp = useRef();\n useEffect(() => {\n windowPointerUp.current = () => {\n if (isEditing) {\n const dX1 = cardinalDeltas.current.west;\n const dY1 = cardinalDeltas.current.north;\n const dX2 = props.width + cardinalDeltas.current.east;\n const dY2 = props.height + cardinalDeltas.current.south;\n const x1 = Math.min(dX1, dX2);\n const y1 = Math.min(dY1, dY2);\n const x2 = Math.max(dX1, dX2);\n const y2 = Math.max(dY1, dY2);\n const realSize = {\n x: (props.x || 0) + x1,\n y: (props.y || 0) + y1,\n width: x2 - x1 || 1,\n height: y2 - y1 || 1\n };\n if (props.maintainAspectRatio) {\n onSave(realSize);\n } else {\n onSave(realSize);\n }\n resizeMode.current = void 0;\n mouseStart.current = void 0;\n cardinalDeltas.current.east = 0;\n cardinalDeltas.current.west = 0;\n cardinalDeltas.current.north = 0;\n cardinalDeltas.current.south = 0;\n setIsEditing(false);\n }\n };\n }, [isEditing, onSave, props.height, props.width, props.x, props.y]);\n useEffect(() => {\n const cb = () => {\n if (windowPointerUp.current) {\n windowPointerUp.current();\n }\n };\n window.addEventListener(\"pointerup\", cb);\n window.addEventListener(\"touchend\", cb);\n return () => {\n window.removeEventListener(\"pointerup\", cb);\n window.removeEventListener(\"touchend\", cb);\n };\n }, []);\n return {\n portalRef,\n mode,\n mouseEvent,\n onPointerMoveCallback,\n isEditing\n };\n};\nconst ResizeWorldItem = ({\n handleSize: _handleSize,\n resizable,\n onSave,\n children,\n maintainAspectRatio,\n disableCardinalControls,\n ...props\n}) => {\n const handleSize = typeof _handleSize === \"undefined\" ? maintainAspectRatio ? 10 : 8 : _handleSize;\n const {\n portalRef,\n mode,\n mouseEvent,\n isEditing\n } = useResizeWorldItem({\n x: props.x || 0,\n y: props.y || 0,\n width: props.width,\n height: props.height,\n maintainAspectRatio\n }, onSave);\n const translate2 = useMemo(() => mouseEvent(\"translate\"), [mouseEvent]);\n const east = useMemo(() => mouseEvent(\"east\"), [mouseEvent]);\n const west = useMemo(() => mouseEvent(\"west\"), [mouseEvent]);\n const south = useMemo(() => mouseEvent(\"south\"), [mouseEvent]);\n const north = useMemo(() => mouseEvent(\"north\"), [mouseEvent]);\n const southEast = useMemo(() => mouseEvent(\"south-east\"), [mouseEvent]);\n const southWest = useMemo(() => mouseEvent(\"south-west\"), [mouseEvent]);\n const northEast = useMemo(() => mouseEvent(\"north-east\"), [mouseEvent]);\n const northWest = useMemo(() => mouseEvent(\"north-west\"), [mouseEvent]);\n const inSketchMode = mode === \"sketch\";\n const baseStyle = {\n zIndex: 999,\n boxShadow: \"0px 2px 3px 0 rgba(0,0,0,0.2)\",\n border: \"1px solid rgba(155,155,155,.7)\",\n borderRadius: maintainAspectRatio || disableCardinalControls ? \"50%\" : 2,\n position: \"absolute\",\n background: \"#fff\",\n pointerEvents: isEditing ? \"none\" : inSketchMode ? \"initial\" : \"none\"\n };\n return /* @__PURE__ */ jsx(Fragment, {\n children: /* @__PURE__ */ jsxs(\"world-object\", {\n ...props,\n children: [children, inSketchMode && resizable ? /* @__PURE__ */ jsx(HTMLPortal, {\n ref: portalRef,\n target: {\n x: 0,\n y: 0,\n height: props.height,\n width: props.width\n },\n relative: false,\n interactive: false,\n children: inSketchMode && resizable ? /* @__PURE__ */ jsxs(Fragment, {\n children: [/* @__PURE__ */ jsx(\"div\", {\n onMouseDown: translate2,\n onTouchStart: translate2,\n style: {\n display: \"block\",\n width: \"100%\",\n height: \"100%\",\n border: \"1px solid rgba(155,155,155, .7)\",\n boxSizing: \"border-box\",\n pointerEvents: isEditing ? \"none\" : inSketchMode ? \"initial\" : \"none\"\n }\n }), !maintainAspectRatio ? /* @__PURE__ */ jsxs(Fragment, {\n children: [/* @__PURE__ */ jsx(\"div\", {\n title: \"east\",\n onTouchStart: east,\n onMouseDown: east,\n style: {\n ...baseStyle,\n cursor: \"e-resize\",\n height: handleSize * 2,\n width: handleSize,\n right: 0,\n top: \"50%\",\n opacity: disableCardinalControls ? 0 : 1,\n transform: `translate(${handleSize / 2}px, -${handleSize}px)`\n }\n }), /* @__PURE__ */ jsx(\"div\", {\n title: \"west\",\n onMouseDown: west,\n style: {\n ...baseStyle,\n cursor: \"w-resize\",\n position: \"absolute\",\n height: handleSize * 2,\n width: handleSize,\n left: 0,\n top: \"50%\",\n opacity: disableCardinalControls ? 0 : 1,\n transform: `translate(-${handleSize / 2}px, -${handleSize}px)`\n }\n }), /* @__PURE__ */ jsx(\"div\", {\n title: \"north\",\n onMouseDown: north,\n style: {\n ...baseStyle,\n cursor: \"n-resize\",\n position: \"absolute\",\n height: handleSize,\n width: handleSize * 2,\n left: \"50%\",\n top: 0,\n opacity: disableCardinalControls ? 0 : 1,\n transform: `translate(-${handleSize}px, -${handleSize / 2}px)`\n }\n }), /* @__PURE__ */ jsx(\"div\", {\n title: \"south\",\n onMouseDown: south,\n style: {\n ...baseStyle,\n cursor: \"s-resize\",\n position: \"absolute\",\n height: handleSize,\n width: handleSize * 2,\n left: \"50%\",\n bottom: 0,\n opacity: disableCardinalControls ? 0 : 1,\n transform: `translate(-${handleSize}px, ${handleSize / 2}px)`\n }\n })]\n }) : null, /* @__PURE__ */ jsx(\"div\", {\n title: \"north-east\",\n onMouseDown: northEast,\n style: {\n ...baseStyle,\n cursor: \"ne-resize\",\n position: \"absolute\",\n height: handleSize,\n width: handleSize,\n right: 0,\n top: 0,\n transform: `translate(${handleSize / 2}px, -${handleSize / 2}px)`\n }\n }), /* @__PURE__ */ jsx(\"div\", {\n title: \"south-east\",\n onMouseDown: southEast,\n style: {\n ...baseStyle,\n cursor: \"se-resize\",\n position: \"absolute\",\n height: handleSize,\n width: handleSize,\n bottom: 0,\n right: 0,\n transform: `translate(${handleSize / 2}px, ${handleSize / 2}px)`\n }\n }), /* @__PURE__ */ jsx(\"div\", {\n title: \"south-west\",\n onMouseDown: southWest,\n style: {\n ...baseStyle,\n cursor: \"sw-resize\",\n position: \"absolute\",\n height: handleSize,\n width: handleSize,\n bottom: 0,\n left: 0,\n transform: `translate(-${handleSize / 2}px, ${handleSize / 2}px)`\n }\n }), /* @__PURE__ */ jsx(\"div\", {\n title: \"north-west\",\n onMouseDown: northWest,\n style: {\n ...baseStyle,\n cursor: \"nw-resize\",\n position: \"absolute\",\n height: handleSize,\n width: handleSize,\n top: 0,\n left: 0,\n transform: `translate(-${handleSize / 2}px, -${handleSize / 2}px)`\n }\n })]\n }) : null\n }) : null]\n })\n });\n};\nconst RegionHighlight = ({\n interactive,\n region,\n onClick,\n onSave,\n maintainAspectRatio,\n disableCardinalControls,\n isEditing,\n style = {\n backgroundColor: \"rgba(0,0,0,.5)\"\n }\n}) => {\n const saveCallback = useCallback((bounds) => {\n onSave({\n id: region.id,\n x: region.x,\n y: region.y,\n height: region.height,\n width: region.width,\n ...bounds\n });\n }, [onSave, region.id, region.x, region.y, region.height, region.width]);\n return /* @__PURE__ */ jsx(ResizeWorldItem, {\n x: region.x,\n y: region.y,\n width: region.width,\n height: region.height,\n resizable: isEditing,\n onSave: saveCallback,\n maintainAspectRatio,\n disableCardinalControls,\n children: /* @__PURE__ */ jsx(\"box\", {\n interactive,\n onClick: (e) => {\n e.preventDefault();\n e.stopPropagation();\n onClick(region);\n },\n target: {\n x: 0,\n y: 0,\n width: region.width,\n height: region.height\n },\n style\n })\n });\n};\nconst TileSet = (props) => {\n const scale2 = props.width / props.tiles.width;\n const tiles = props.tiles.imageService.tiles || [];\n const sizes = props.tiles.imageService.sizes || [];\n const canonicalId = useMemo(() => {\n const id = props.tiles.imageService.id || props.tiles.imageService[\"@id\"];\n if (id && id.endsWith(\"/info.json\")) {\n return id.slice(0, -1 * \"/info.json\".length);\n }\n return id;\n }, [props.tiles.imageService.id]);\n return /* @__PURE__ */ jsx(\"world-object\", {\n scale: scale2,\n height: props.tiles.height,\n width: props.tiles.width,\n x: props.x,\n y: props.y,\n children: /* @__PURE__ */ jsxs(\"composite-image\", {\n id: props.tiles.imageService.id,\n width: props.tiles.width,\n height: props.tiles.height,\n children: [props.tiles.thumbnail ? /* @__PURE__ */ jsx(\"world-image\", {\n priority: true,\n uri: props.tiles.thumbnail.id,\n target: {\n width: props.tiles.width,\n height: props.tiles.height\n },\n display: {\n width: props.tiles.thumbnail.width,\n height: props.tiles.thumbnail.height\n }\n }) : null, sizes.map((size, n2) => /* @__PURE__ */ jsx(\"world-image\", {\n uri: `${canonicalId}/full/${size.width},${size.height}/0/default.jpg`,\n target: {\n width: props.tiles.width,\n height: props.tiles.height\n },\n display: {\n width: size.width,\n height: size.height\n }\n }, n2)), tiles.map((tile) => (tile.scaleFactors || []).map((size) => /* @__PURE__ */ jsx(\"tiled-image\", {\n uri: props.tiles.imageService.id,\n display: {\n width: props.tiles.width,\n height: props.tiles.height\n },\n tile,\n scaleFactor: size\n }, `${props.tiles.imageService.id}-tile-${size}`)))]\n }, props.tiles.imageService.id)\n }, props.tiles.imageService.id);\n};\nfunction getId(entity) {\n return entity.id || entity[\"@id\"];\n}\nfunction g(i) {\n return i.endsWith(\"info.json\") ? i : i.endsWith(\"/\") ? `${i}info.json` : `${i}/info.json`;\n}\nconst Y = \"http://library.stanford.edu/iiif/image-api/compliance.html#level0\", F = \"http://library.stanford.edu/iiif/image-api/compliance.html#level1\", v = \"http://library.stanford.edu/iiif/image-api/compliance.html#level2\", q = \"http://library.stanford.edu/iiif/image-api/conformance.html#level0\", O = \"http://library.stanford.edu/iiif/image-api/conformance.html#level1\", z = \"http://library.stanford.edu/iiif/image-api/conformance.html#level2\", ee = \"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0\", E = \"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1\", A = \"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2\", ie = \"http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0\", b = \"http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1\", L = \"http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2\", te = \"http://iiif.io/api/image/1/level0.json\", re = \"http://iiif.io/api/image/1/profiles/level0.json\", M = \"http://iiif.io/api/image/1/level1.json\", W = \"http://iiif.io/api/image/1/profiles/level1.json\", j = \"http://iiif.io/api/image/1/level2.json\", P = \"http://iiif.io/api/image/1/profiles/level2.json\", ne = \"http://iiif.io/api/image/2/level0.json\", se = \"http://iiif.io/api/image/2/profiles/level0.json\", C = \"http://iiif.io/api/image/2/level1.json\", B = \"http://iiif.io/api/image/2/profiles/level1.json\", N = \"http://iiif.io/api/image/2/level2.json\", R = \"http://iiif.io/api/image/2/profiles/level2.json\", ae = \"level0\", $ = \"level1\", H = \"level2\", oe = \"http://iiif.io/api/image/2/level0\", G = \"http://iiif.io/api/image/2/level1\", T = \"http://iiif.io/api/image/2/level2\", k = [T, v, z, A, L, j, P, N, R, H], Q = [...k, G, F, O, E, b, M, W, C, B, $], V = [oe, G, T, Y, F, v, q, O, z, ee, E, A, ie, b, L, te, re, M, W, j, P, ne, se, C, B, N, R, ae, $, H], fe = { extraFormats: [\"jpg\"], extraQualities: [\"default\"], extraFeatures: [\"sizeByWhListed\"] }, le = { extraFormats: [\"jpg\"], extraQualities: [\"default\"], extraFeatures: [\"baseUriRedirect\", \"cors\", \"jsonldMediaType\", \"regionByPx\", \"regionSquare\", \"sizeByWhListed\", \"sizeByH\", \"sizeByW\", \"sizeByWh\"] }, he = { extraFormats: [\"jpg\", \"png\"], extraQualities: [\"default\"], extraFeatures: [\"baseUriRedirect\", \"cors\", \"jsonldMediaType\", \"regionByPct\", \"regionByPx\", \"regionSquare\", \"rotationBy90s\", \"sizeByWhListed\", \"sizeByConfinedWh\", \"sizeByH\", \"sizeByPct\", \"sizeByW\", \"sizeByWh\"] };\nfunction ue(i) {\n return k.indexOf(i) !== -1 ? he : Q.indexOf(i) !== -1 ? le : fe;\n}\nfunction U(i) {\n const e = i ? Array.isArray(i.profile) ? i.profile : [i.profile] : [], t = { extraQualities: [], extraFormats: [], extraFeatures: [] };\n for (let r of e)\n if (typeof r == \"string\" && (r = ue(r)), !!r) {\n if (r.formats)\n for (const n2 of r.formats)\n t.extraFormats.indexOf(n2) === -1 && t.extraFormats.push(n2);\n if (r.qualities)\n for (const n2 of r.qualities)\n t.extraQualities.indexOf(n2) === -1 && t.extraQualities.push(n2);\n if (r.supports)\n for (const n2 of r.supports)\n t.extraFeatures.indexOf(n2) === -1 && t.extraFeatures.push(n2);\n if (r.maxHeight && (t.maxHeight = r.maxHeight), r.maxWidth && (t.maxWidth = r.maxWidth), r.maxArea && (t.maxArea = r.maxArea), r.extraFormats)\n for (const n2 of r.extraFormats)\n t.extraFormats.indexOf(n2) === -1 && t.extraFormats.push(n2);\n if (r.extraQualities)\n for (const n2 of r.extraQualities)\n t.extraQualities.indexOf(n2) === -1 && t.extraQualities.push(n2);\n if (r.extraFeatures)\n for (const n2 of r.extraFeatures)\n t.extraFeatures.indexOf(n2) === -1 && t.extraFeatures.push(n2);\n r.maxHeight && (t.maxHeight = r.maxHeight), r.maxWidth && (t.maxWidth = r.maxWidth), r.maxArea && (t.maxArea = r.maxArea);\n }\n if (i.extraFormats)\n for (const r of i.extraFormats)\n t.extraFormats.indexOf(r) === -1 && t.extraFormats.push(r);\n if (i.extraFeatures)\n for (const r of i.extraFeatures)\n t.extraFeatures.indexOf(r) === -1 && t.extraFeatures.push(r);\n if (i.extraQualities)\n for (const r of i.extraQualities)\n t.extraQualities.indexOf(r) === -1 && t.extraQualities.push(r);\n return t;\n}\nfunction ce(i) {\n try {\n if (i === \"full\")\n return { full: true };\n if (i === \"square\")\n return { square: true };\n const e = i.startsWith(\"pct:\"), r = i.substr(e ? 4 : 0).split(\",\").map((n2) => parseFloat(n2));\n return { x: r[0], y: r[1], w: r[2], h: r[3], percent: e };\n } catch {\n throw new Error(\"Expected 'full', 'square' or 'x,y,w,h'. Found \" + i);\n }\n}\nfunction de(i) {\n const e = { upscaled: false, max: false, confined: false };\n if (i[0] === \"^\" && (e.upscaled = true, i = i.slice(1)), i === \"max\" || i === \"full\")\n return e.max = true, e.serialiseAsFull = i === \"full\", e;\n if (i[0] === \"!\" && (e.confined = true, i = i.slice(1)), i[0] === \"p\")\n return e.percentScale = parseFloat(i.slice(4)), e;\n const t = i.split(\",\").map((r) => r.trim());\n return t.length && (t[0] !== \"\" && (e.width = parseInt(t[0], 10)), t[1] !== \"\" && (e.height = parseInt(t[1], 10))), e;\n}\nfunction ge(i) {\n const e = { angle: 0 };\n if (i[0] === \"!\" && (e.mirror = true, i = i.substr(1)), e.angle = parseFloat(i) % 360, Number.isNaN(e.angle))\n throw new Error(`Invalid rotation ${i}`);\n return e;\n}\nfunction me(i, e = \"\") {\n const t = i.match(/^(([a-zA-Z]+):\\/\\/([^/]+))?((.*)+)/);\n if (!t)\n throw new Error(`Invalid or unknown input ${i}`);\n const r = t[2], n2 = t[3];\n let s = t[4];\n if (s[0] === \"/\" && (s = s.substr(1)), e.length > 0) {\n if (e[0] === \"/\" && (e = e.substr(1)), e !== s.substr(0, e.length))\n throw new Error(`Path does not start with prefix (path: ${s}, prefix: ${e})`);\n s = s.substr(e.length);\n }\n return { scheme: r, server: n2, path: s, prefix: e };\n}\nfunction pe(i, e = \"\") {\n const { path: t, scheme: r, server: n2, prefix: s } = me(i, e), a = t.split(\"/\").reverse(), [o, l2, f2, u, ...I] = a, d = I.reverse().filter(Boolean).join(\"/\");\n if (a.length === 1 || o === \"\")\n return { type: \"base\", scheme: r, server: n2, prefix: s, identifier: d };\n if (o === \"info.json\") {\n const [, ...m2] = a;\n return { type: \"info\", scheme: r, server: n2, prefix: s, identifier: m2.reverse().filter(Boolean).join(\"/\") };\n }\n const c = o.split(\".\");\n return { type: \"image\", scheme: r, server: n2, prefix: s, identifier: d, originalPath: t, region: ce(u), size: de(f2), rotation: ge(l2), quality: c[0], format: c[1] };\n}\nfunction xe(i) {\n const e = pe(g(i.id));\n if (e.type !== \"info\")\n throw new Error(\"Invalid service URL\");\n const t = U(i);\n return { identifier: e.identifier, originalPath: \"\", server: e.server, prefix: e.prefix, scheme: e.scheme, type: \"image\", quality: t.extraQualities.indexOf(\"default\") === -1 ? t.extraQualities[0] : \"default\", region: { full: true }, size: { max: true, upscaled: false, confined: false }, format: \"jpg\", rotation: { angle: 0 } };\n}\nfunction Ie(i, e, t) {\n const r = t.length, n2 = [];\n for (let s = 0; s < r; s++) {\n const o = t[s].width;\n n2.push(i / o);\n }\n return n2;\n}\nfunction _e(i, e, t) {\n const r = t.length, n2 = [];\n for (let s = 0; s < r; s++) {\n const a = t[s];\n n2.push({ width: Math.floor(i / a), height: Math.floor(e / a) });\n }\n return n2;\n}\nfunction h(i) {\n if (i[\"@id\"])\n return i[\"@id\"];\n if (i.id)\n return i.id;\n}\nfunction _(i) {\n if (!i || !i.profile || !h(i))\n return false;\n const e = Array.isArray(i.profile) ? i.profile : [i.profile];\n for (const t of e)\n if (typeof t == \"string\" && V.indexOf(t) !== -1)\n return true;\n return false;\n}\nfunction ye(i) {\n if (!_(i))\n return false;\n const e = Array.isArray(i.profile) ? i.profile : [i.profile];\n for (const t of e)\n if (typeof t == \"string\") {\n if (Q.indexOf(t) !== -1)\n return true;\n } else {\n const r = [...t.supports || [], ...t.extraFeatures || []];\n if (r.indexOf(\"regionByPx\") !== -1 && (r.indexOf(\"sizeByW\") !== -1 || r.indexOf(\"sizeByWh\") !== -1))\n return true;\n }\n return false;\n}\nfunction we(i) {\n if (!ye(i))\n return [];\n const e = [], t = Array.isArray(i.profile) ? i.profile : [i.profile], r = t.length;\n for (let n2 = 0; n2 < r; n2++) {\n const s = t[n2];\n if (typeof s != \"string\" && (s.maxHeight || s.maxWidth))\n return [{ id: h(i), type: \"variable\", minWidth: 0, minHeight: 0, maxHeight: s.maxHeight || s.maxWidth, maxWidth: s.maxWidth || s.maxHeight }];\n }\n if (i.tiles) {\n const n2 = i.tiles.length;\n for (let s = 0; s < n2; s++) {\n const a = i.tiles[s];\n (a.height || a.width) && e.push({ id: h(i), type: \"variable\", minHeight: 0, minWidth: 0, maxHeight: a.height || a.width, maxWidth: a.width });\n }\n }\n return e;\n}\nfunction J(i) {\n const e = /^.*\\/(full)\\/(((\\d+),(\\d+)?)|max)\\/(\\d+)\\/default\\.(jpg|png|jpeg)$/, t = i.match(e);\n if (t) {\n const r = t[1], n2 = parseInt(t[4], 10), s = parseInt(t[5], 10), a = t[7];\n if ((r === \"max\" || r === \"full\") && n2 && s && a)\n return { type: \"fixed\", id: i, height: s, width: n2 };\n }\n return { type: \"unknown\", id: i };\n}\nfunction Se(i) {\n if (i[\"@type\"])\n return i[\"@type\"];\n if (i.type)\n return i.type;\n}\nfunction Fe(i) {\n if (typeof i == \"string\")\n return J(i);\n const e = Se(i);\n if (e !== \"Image\" && e !== \"sc:Image\")\n return null;\n const t = i, r = h(t);\n return r ? r && t.width && t.height ? { id: r, type: \"fixed\", width: t.width, height: t.height, unsafe: true } : J(r) : null;\n}\nfunction ve(i) {\n return _(i) ? (i && i.sizes ? i.sizes : []).map((e) => ({ id: h(i), type: \"fixed-service\", height: e.height, width: e.width })) : [];\n}\nfunction Z(i) {\n const e = [], t = i.length;\n for (let r = 0; r < t; r++) {\n const n2 = ve(i[r]);\n n2.length && e.push(...n2);\n const s = we(i[r]);\n s.length && e.push(...s);\n }\n return e;\n}\nfunction K(i) {\n const e = i.service ? Array.isArray(i.service) ? i.service : [i.service] : [], t = e.length, r = [];\n for (let n2 = 0; n2 < t; n2++)\n _(e[n2]) && r.push(e[n2]);\n return r;\n}\nfunction Oe(i, e = true, t) {\n const r = [], n2 = Fe(i);\n if (n2 === null)\n return r;\n const s = i;\n if (r.push(n2), e && s.width && s.height) {\n const a = [], o = K(s);\n for (const l2 of o) {\n const f2 = { id: h(l2), width: s.width, height: s.height };\n if (t.canLoadSync(f2)) {\n const u = t.loadServiceSync(f2);\n u && (u.height || (u.height = s.height), u.width || (u.width = s.width), a.push(...Z([u])));\n }\n }\n if (a.length)\n return r.push(...a), r;\n }\n return s.service && r.push(...Z(s.service)), r;\n}\nfunction ze({ x: i = 0, y: e = 0, w: t, h: r, full: n2, square: s, percent: a }) {\n if (n2)\n return \"full\";\n if (s)\n return \"square\";\n if (typeof t > \"u\" || typeof r > \"u\")\n throw new Error(\"RegionParameter: invalid region\");\n const o = `${i},${e},${t},${r}`;\n return a ? `pct:${o}` : o;\n}\nfunction Ee({ max: i, percentScale: e, upscaled: t, confined: r, width: n2, height: s, serialiseAsFull: a }) {\n const o = [];\n return t && o.push(\"^\"), i ? (o.push(a ? \"full\" : \"max\"), o.join(\"\")) : (r && o.push(\"!\"), e && o.push(`pct:${e}`), n2 && o.push(`${n2}`), o.push(\",\"), s && o.push(`${s}`), o.join(\"\"));\n}\nfunction Ae(i) {\n return `${i.mirror ? \"!\" : \"\"}${(i.angle || 0) % 360}`;\n}\nvar He = Object.defineProperty, Ge = Object.defineProperties, Te = Object.getOwnPropertyDescriptors, be = Object.getOwnPropertySymbols, ke = Object.prototype.hasOwnProperty, Qe = Object.prototype.propertyIsEnumerable, Le = (i, e, t) => e in i ? He(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t, y = (i, e) => {\n for (var t in e || (e = {}))\n ke.call(e, t) && Le(i, t, e[t]);\n if (be)\n for (var t of be(e))\n Qe.call(e, t) && Le(i, t, e[t]);\n return i;\n}, w = (i, e) => Ge(i, Te(e));\nfunction Me(i, e) {\n const t = i.prefix.startsWith(\"/\") ? i.prefix.substr(1) : i.prefix, r = `${i.scheme}://${i.server}/${t ? `${t}/` : \"\"}${i.identifier}`;\n if (i.type === \"base\")\n return r;\n if (i.type === \"info\")\n return `${r}/info.json`;\n let { region: n2, size: s, rotation: a, format: o, quality: l2 } = i;\n if (e) {\n const f2 = e[\"@context\"] ? Array.isArray(e[\"@context\"]) ? e[\"@context\"] : [e[\"@context\"]] : [], u = f2.indexOf(\"http://iiif.io/api/image/2/context.json\") !== -1, I = f2.indexOf(\"http://iiif.io/api/image/3/context.json\") !== -1;\n if ((s.width === e.width && !s.height || s.height === e.height && !s.width || s.width === e.width && s.height === e.height) && (s = w(y({}, s), { max: true })), u && (s.max && !s.serialiseAsFull && (s = w(y({}, s), { serialiseAsFull: true })), !s.max && s.width && s.height && (s = w(y({}, s), { height: void 0 }))), I && (s.max && s.serialiseAsFull && (s = w(y({}, s), { serialiseAsFull: false })), s.width && !s.height && e.width && e.height)) {\n const d = e.height / e.width;\n s = w(y({}, s), { height: Math.ceil(s.width * d) });\n }\n }\n return [r, ze(n2), Ee(s), Ae(a), `${l2}.${o}`].filter(Boolean).join(\"/\");\n}\nfunction S(i, e, t) {\n const r = xe({ id: g(h(i)), profile: \"level2\", type: \"ImageService2\" });\n if (r.type !== \"image\")\n throw new Error(\"Invalid service\");\n return r.size.max = false, r.size.width = e, r.size.height = t, { id: Me(r), type: \"fixed\", width: e, height: t || i.height / (i.width || 1) * e, unsafe: i.width > e };\n}\nfunction p(i) {\n const e = i.replace(/(https?:\\/\\/)?(www.)?/i, \"\");\n return e.indexOf(\"/\") !== -1 ? e.split(\"/\")[0] : e;\n}\nfunction We(i, e, t) {\n const r = i.width ? i.width : i.maxWidth;\n return t.height <= i.maxHeight && t.width <= i.maxWidth && t.height >= i.minHeight && t.width >= i.minWidth && (!e || Math.abs(t.width - r) < Math.abs(e.width - r));\n}\nfunction je(i, e) {\n const t = [], r = Object.assign({ unsafeImageService: false, atAnyCost: true, fallback: true, minHeight: 64, minWidth: 64, maxHeight: 1 / 0, maxWidth: 1 / 0, returnAllOptions: false, preferFixedSize: false, allowUnsafe: false, explain: false, height: 0, width: 0 }, i), n2 = [], s = [];\n let a = null;\n const o = (f2, u) => {\n if (We(r, u, f2)) {\n if (r.preferFixedSize && f2.unsafe) {\n s.push(f2);\n return;\n }\n r.returnAllOptions && u && s.push(u), a = f2;\n } else\n r.returnAllOptions && s.push(f2);\n }, l2 = e.length;\n for (let f2 = 0; f2 < l2; f2++) {\n const u = e[f2](), I = u.length;\n for (let d = 0; d < I; d++) {\n const c = u[d];\n if (c.type === \"unknown\" && r.atAnyCost && n2.push(c), c.type === \"fixed\" && (c.unsafe ? n2.push(c) : o(c, a)), c.type === \"fixed-service\")\n if (r.unsafeImageService) {\n const m2 = S(c, r.width, r.height);\n o(m2, a);\n } else {\n const m2 = S(c, c.width, c.height);\n o(m2, a);\n }\n if (c.type === \"variable\" && c.maxWidth) {\n const m2 = S({ id: c.id, type: \"fixed-service\", width: c.maxWidth, height: c.maxWidth }, c.maxWidth);\n o(m2, a);\n }\n }\n if (a && !r.returnAllOptions) {\n if (a.unsafe || r.allowUnsafe)\n continue;\n break;\n }\n }\n return r.atAnyCost && s.length === 0 ? { best: a || n2[0], fallback: n2.slice(1), log: t } : r.returnAllOptions ? { best: r.atAnyCost ? a || s[0] || n2[0] : a || s[0], fallback: [...s, ...n2], log: t } : { best: a || s[0] || null, fallback: a ? s : s.slice(1), log: t };\n}\nvar Je = Object.defineProperty, Ze = Object.defineProperties, Ke = Object.getOwnPropertyDescriptors, Pe = Object.getOwnPropertySymbols, Xe = Object.prototype.hasOwnProperty, Ye = Object.prototype.propertyIsEnumerable, Ce = (i, e, t) => e in i ? Je(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t, qe = (i, e) => {\n for (var t in e || (e = {}))\n Xe.call(e, t) && Ce(i, t, e[t]);\n if (Pe)\n for (var t of Pe(e))\n Ye.call(e, t) && Ce(i, t, e[t]);\n return i;\n}, ei = (i, e) => Ze(i, Ke(e));\nfunction Be(i, e, t) {\n const r = i > e ? i : e, n2 = t.length, s = [];\n for (let a = 0; a < n2; a++) {\n const o = t[a];\n let l2 = o.scaleFactors[0], f2 = r / l2;\n const u = [l2];\n for (; f2 >= o.width; )\n l2 = l2 * 2, u.push(l2), f2 = f2 / 2;\n s.push(ei(qe({}, o), { scaleFactors: u }));\n }\n return s;\n}\nfunction Ne(i, e) {\n if (i.length !== e.length)\n return false;\n if (i.length === 0 && e.length === 0)\n return true;\n const t = i.length;\n let r = true;\n for (let s = 0; s < t; s++) {\n const a = i[s], o = e[s];\n if (a.width !== o.width || a.height !== o.height) {\n r = false;\n break;\n }\n }\n if (r)\n return true;\n let n2 = 0;\n for (let s = 0; s < t; s++)\n for (let a = 0; a < t; a++)\n if (i[s].width === e[a].width && i[s].height === e[a].height) {\n n2++;\n break;\n }\n return n2 === t;\n}\nvar x = (i, e, t) => new Promise((r, n2) => {\n var s = (l2) => {\n try {\n o(t.next(l2));\n } catch (f2) {\n n2(f2);\n }\n }, a = (l2) => {\n try {\n o(t.throw(l2));\n } catch (f2) {\n n2(f2);\n }\n }, o = (l2) => l2.done ? r(l2.value) : Promise.resolve(l2.value).then(s, a);\n o((t = t.apply(i, e)).next());\n});\nclass Re {\n constructor() {\n this.config = { verificationsRequired: 1, approximateServices: true, enableFetching: true, disableThrottling: false }, this.fetchingCount = 0, this.imageServices = {}, this.knownImageServers = {};\n }\n setConfig(e) {\n Object.assign(this.config, e);\n }\n sample(e, t, r = true) {\n const n2 = p(h(e)), s = g(h(e)), a = this.knownImageServers[n2];\n return this.imageServices[s] = Object.assign(e, { real: true }), !a && e.tiles ? (this.knownImageServers[n2] = { verifications: 0, malformed: false, root: n2, preLoaded: r, sampledId: h(e), verified: false, server: null, result: { context: e[\"@context\"] || [], sampledProfile: e.profile, resourceServiceRatio: t && e.height ? t.height / e.height : 1, sampledSizes: e.sizes || [], sizeRatios: Ie(e.width, e.height, e.sizes || []), sampledTiles: e.tiles || [] } }, true) : this.verify(e);\n }\n preLoad(e, t = true) {\n this.knownImageServers[e.root] = e, t && (this.knownImageServers[e.root].malformed = false, this.knownImageServers[e.root].verifications = this.config.verificationsRequired);\n }\n predict(e, t = false, r = false) {\n const n2 = e == null ? void 0 : e.source, s = p(h(e)), a = this.knownImageServers[s];\n if (!a || !a.result || !r && (a.malformed || a.verifications < this.config.verificationsRequired))\n return null;\n const o = g(h(e));\n return this.imageServices[o] || (this.imageServices[o] = { \"@context\": a.result.context, \"@id\": h(e), id: h(e), protocol: \"http://iiif.io/api/image\", tiles: (n2 == null ? void 0 : n2.tiles) || Be(e.width, e.height, a.result.sampledTiles), sizes: (n2 == null ? void 0 : n2.sizes) || _e(Math.round(e.width / a.result.resourceServiceRatio), Math.round(e.height / a.result.resourceServiceRatio), a.result.sizeRatios), profile: (n2 == null ? void 0 : n2.profile) || a.result.sampledProfile, height: (n2 == null ? void 0 : n2.height) || e.height, width: (n2 == null ? void 0 : n2.width) || e.width, real: false }), this.imageServices[o];\n }\n getThumbnailFromResource(e, t) {\n return x(this, arguments, function* (r, n2, s = true, a = []) {\n const o = yield this.getImageCandidates(r, s);\n return je(n2, [() => a, () => o]);\n });\n }\n getImageCandidates(e, t = true) {\n return x(this, null, function* () {\n const r = e;\n if (t && r.height && r.width) {\n const n2 = K(r);\n for (const s of n2) {\n const a = { id: h(s), width: s.width ? s.width : r.width, height: s.height ? s.height : r.height, source: s };\n yield this.loadService(a);\n }\n }\n return Oe(e, t, this);\n });\n }\n verify(e) {\n return x(this, null, function* () {\n const t = this.predict(e, false, true), r = yield this.fetchService(h(e));\n if (!t)\n return false;\n const n2 = t.height === r.height && t.width === r.width && t[\"@context\"] === r[\"@context\"] && Ne(t.sizes || [], r.sizes || []);\n if (n2) {\n const s = p(h(e));\n this.knownImageServers[s].verifications += 1, this.knownImageServers[s].verifications >= this.config.verificationsRequired && (this.knownImageServers[s].verified = true);\n }\n return n2;\n });\n }\n canLoadSync(e) {\n const t = typeof e == \"string\" ? e : h(e), r = g(t);\n if (this.imageServices[r])\n return true;\n const n2 = this.knownImageServers[p(t)];\n return n2 && !n2.malformed && n2.verifications >= this.config.verificationsRequired;\n }\n markAsMalformed(e) {\n return x(this, null, function* () {\n return this.knownImageServers[p(h(e))].malformed = true, this.loadService(e, true);\n });\n }\n fetchService(e, t = false) {\n return x(this, null, function* () {\n const r = g(e);\n if (this.imageServices[r] && (!t || this.imageServices[r].real))\n return this.imageServices[r];\n if (!this.config.enableFetching)\n throw new Error(\"Fetching is not enabled\");\n const n2 = yield this.fetch(r).then((s) => s.json());\n return !n2.id && n2[\"@id\"] && (n2.id = n2[\"@id\"]), n2.id !== e && (n2.id = e, n2[\"@id\"] && (n2[\"@id\"] = e)), this.imageServices[r] = Object.assign(n2, { real: true }), this.imageServices[r];\n });\n }\n fetch(e, t) {\n return x(this, null, function* () {\n return fetch(e, t);\n });\n }\n loadService(e, t = false) {\n return x(this, null, function* () {\n if (!this.config.disableThrottling) {\n let s = true;\n for (; s; )\n if (this.fetchingCount >= this.config.verificationsRequired)\n yield new Promise((a) => setTimeout(a, 500));\n else {\n s = false;\n break;\n }\n }\n const r = this.knownImageServers[p(h(e))];\n if (r && !r.malformed && !t) {\n yield r.result;\n const s = this.loadServiceSync(e);\n if (s)\n return s;\n }\n this.fetchingCount++;\n const n2 = yield this.fetchService(h(e), t);\n return this.fetchingCount--, n2.real && this.sample(n2, e), n2;\n });\n }\n loadServiceSync(e) {\n const t = g(h(e));\n return this.imageServices[t] ? this.imageServices[t] : this.predict(e);\n }\n}\nnew Re();\nfunction createThumbnailHelper(vault, dependencies = {}) {\n const imageServiceLoader = dependencies.imageServiceLoader || new Re();\n async function getBestThumbnailAtSize(input, request, dereference, candidates = [], dimensions) {\n if (typeof input === \"string\") {\n return { best: Fe(input), fallback: [], log: [] };\n }\n const fullInput = vault.get(input);\n if (typeof fullInput === \"string\") {\n return { best: Fe(fullInput), fallback: [], log: [] };\n }\n switch (fullInput.type) {\n case \"Annotation\": {\n const contentResources = fullInput.body;\n const firstContentResources = vault.get(contentResources[0]);\n if (dimensions && !firstContentResources.width) {\n firstContentResources.width = dimensions.width;\n firstContentResources.height = dimensions.height;\n }\n return await imageServiceLoader.getThumbnailFromResource(firstContentResources, request, dereference, candidates);\n }\n case \"Canvas\": {\n const canvas = fullInput;\n if (canvas.thumbnail && canvas.thumbnail.length) {\n const thumbnail = vault.get(canvas.thumbnail[0]);\n const potentialThumbnails = await imageServiceLoader.getImageCandidates(thumbnail, dereference);\n if (potentialThumbnails && potentialThumbnails.length) {\n candidates.push(...potentialThumbnails);\n }\n }\n return getBestThumbnailAtSize(canvas.items[0], request, dereference, candidates, {\n width: canvas.width,\n height: canvas.height\n });\n }\n case \"AnnotationPage\": {\n const annotationPage = fullInput;\n return getBestThumbnailAtSize(annotationPage.items[0], request, dereference, candidates, dimensions);\n }\n case \"Choice\": {\n const choice = fullInput;\n return getBestThumbnailAtSize(choice.items[0], request, dereference, candidates, dimensions);\n }\n case \"Collection\": {\n const collection = fullInput;\n const firstManifest = collection.items[0];\n return getBestThumbnailAtSize(firstManifest, request, dereference, candidates, dimensions);\n }\n case \"Manifest\": {\n const manifest = fullInput;\n const firstCanvas = manifest.items[0];\n return getBestThumbnailAtSize(firstCanvas, request, dereference, candidates, dimensions);\n }\n case \"SpecificResource\":\n case \"Image\":\n case \"Dataset\":\n case \"Sound\":\n case \"Text\":\n case \"TextualBody\":\n case \"Video\":\n if (dimensions && !fullInput.width) {\n fullInput.width = dimensions.width;\n fullInput.height = dimensions.height;\n }\n return imageServiceLoader.getThumbnailFromResource(fullInput, request, dereference, candidates);\n case \"Service\":\n case \"Range\":\n case \"AnnotationCollection\":\n case \"CanvasReference\":\n case \"ContentResource\":\n return { best: void 0, fallback: [], log: [] };\n }\n return { best: void 0, fallback: [], log: [] };\n }\n return {\n getBestThumbnailAtSize\n };\n}\nfunction getGlobal() {\n if (typeof self !== \"undefined\") {\n return self;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n return {};\n}\nfunction getGlobalVault() {\n const g2 = getGlobal();\n if (typeof g2[\"IIIF_VAULT\"] !== \"undefined\") {\n return g2[\"IIIF_VAULT\"];\n }\n if (typeof g2.IIIFVault === \"undefined\") {\n throw new Error(\"Vault not found\");\n }\n g2[\"IIIF_VAULT\"] = new g2.IIIFVault.Vault();\n return g2[\"IIIF_VAULT\"];\n}\nconst moduleState = {};\nfunction getVaultHelper() {\n if (!moduleState.helper) {\n moduleState.vault = getGlobalVault();\n moduleState.loader = new Re();\n moduleState.helper = createThumbnailHelper(moduleState.vault, { imageServiceLoader: moduleState.loader });\n }\n return moduleState;\n}\nasync function getTileFromImageService(infoJsonId, width, height) {\n const { loader } = getVaultHelper();\n const imageService = await loader.loadService({\n id: infoJsonId,\n width,\n height\n });\n return {\n id: getId(imageService),\n width,\n height,\n imageService,\n thumbnail: void 0\n };\n}\nasync function getTileFromCanvas(canvas, thumbnailSize = 512) {\n const { vault, loader, helper } = getVaultHelper();\n const tiles = [];\n for (const page of canvas.items) {\n for (const anno of vault.get(page).items) {\n const annotation = vault.get(vault.get(anno).body[0]);\n const serviceSnippet = annotation.service[0];\n const tile = await getTileFromImageService(serviceSnippet.id, canvas.width, canvas.height);\n const { best: thumbnail } = await helper.getBestThumbnailAtSize(vault, loader, canvas, {\n maxHeight: thumbnailSize,\n maxWidth: thumbnailSize\n }, true);\n if (thumbnail) {\n tile.thumbnail = thumbnail;\n }\n tiles.push(tile);\n }\n }\n return tiles;\n}\nasync function getTilesFromManifest(manifest) {\n const { vault } = getVaultHelper();\n const tiles = [];\n for (const canvasRef of manifest.items) {\n const canvas = vault.get(canvasRef);\n tiles.push(...await getTileFromCanvas(canvas));\n }\n return tiles;\n}\nasync function getTiles(manifestId) {\n try {\n const { vault } = getVaultHelper();\n const manifest = await vault.loadManifest(manifestId);\n if (!manifest) {\n return [];\n }\n return getTilesFromManifest(manifest);\n } catch (err) {\n console.log(\"ERR\", err);\n return [];\n }\n}\nconst ImageService = (props) => {\n const [tiles, setTile] = useState();\n useEffect(() => {\n getTileFromImageService(props.id, props.width, props.height).then((s) => {\n setTile(s);\n });\n }, [props.height, props.id, props.width]);\n return /* @__PURE__ */ jsx(\"world-object\", {\n x: props.x || 0,\n y: props.y || 0,\n width: props.width,\n height: props.height,\n children: tiles ? /* @__PURE__ */ jsx(TileSet, {\n tiles,\n x: 0,\n y: 0,\n width: props.width,\n height: props.height\n }) : null\n });\n};\nconst useAfterPaint = (callback, deps = []) => {\n const runtime = useRuntime();\n useEffect(() => {\n if (runtime) {\n return runtime.registerHook(\"useAfterPaint\", callback);\n }\n return () => {\n };\n }, deps);\n};\nconst useAtlasImage = (children, {\n onCreated,\n resetWorldOnChange = true,\n mode = \"explore\",\n cover,\n containerRef,\n ...restProps\n}) => {\n const [ready, setReady] = useState(false);\n const [imageUrl, setImageUrl] = useState(void 0);\n const [imageError, setError] = useState(void 0);\n const canvasRef = useRef();\n const overlayRef = useRef();\n const bounds = useMemo(() => {\n return {\n width: restProps.width,\n height: restProps.height\n };\n }, [restProps.width, restProps.height]);\n const [presetName, preset, viewport, refs] = usePreset(void 0, {\n width: restProps.width,\n height: restProps.height\n });\n useLayoutEffect(() => {\n const $cvs = document.createElement(\"canvas\");\n $cvs.height = bounds.height;\n $cvs.width = bounds.width;\n canvasRef.current = $cvs;\n }, []);\n useLayoutEffect(() => {\n const $cvs = canvasRef.current;\n if ($cvs) {\n $cvs.height = bounds.height;\n $cvs.width = bounds.width;\n }\n }, [bounds.width, bounds.height]);\n useEffect(() => {\n if (preset) {\n const runtime = preset.runtime;\n return runtime.registerHook(\"useAfterFrame\", () => {\n if (canvasRef.current) {\n try {\n setImageUrl(canvasRef.current.toDataURL());\n } catch (e) {\n if (e instanceof Error) {\n setError(e.message);\n }\n }\n }\n });\n }\n return () => {\n };\n }, []);\n useEffect(() => {\n if (preset) {\n const runtime = preset.runtime;\n return runtime.world.addLayoutSubscriber((type) => {\n if (type === \"ready\") {\n setReady(true);\n }\n });\n }\n return () => {\n };\n }, []);\n useEffect(() => {\n if (preset && preset.em) {\n preset.em.updateBounds();\n }\n }, [bounds]);\n useEffect(() => {\n if (preset) {\n preset.runtime.mode = mode;\n }\n }, [mode]);\n useEffect(() => {\n if (preset) {\n const rt = preset.runtime;\n rt.resize(viewport.current.width, restProps.width, viewport.current.height, restProps.height);\n if (cover) {\n rt.cover();\n } else {\n rt.goHome();\n }\n viewport.current.width = restProps.width;\n viewport.current.height = restProps.height;\n rt.updateNextFrame();\n }\n }, [restProps.width, restProps.height]);\n useLayoutEffect(() => {\n const overlay = overlayRef.current;\n if (!overlay)\n return;\n overlay.style.width = `${bounds.width}px`;\n overlay.style.height = `${bounds.height}px`;\n overlay.style.pointerEvents = \"none\";\n overlay.style.overflow = \"hidden\";\n }, [bounds.height, bounds.width]);\n useLayoutEffect(() => {\n const windowResizeCallback = () => {\n if (preset && preset.runtime) {\n const rt = preset.runtime;\n rt.resize(viewport.current.width, restProps.width, viewport.current.height, restProps.height);\n viewport.current.width = restProps.width;\n viewport.current.height = restProps.height;\n rt.updateNextFrame();\n }\n };\n window.addEventListener(\"resize\", windowResizeCallback);\n return () => window.removeEventListener(\"resize\", windowResizeCallback);\n }, [preset, restProps.height, restProps.width]);\n const Canvas = useCallback(function Canvas2(props) {\n const activate = () => {\n if (preset) {\n preset.ready = true;\n }\n };\n useEffect(() => {\n if (preset) {\n const result = onCreated && onCreated(preset);\n return void (result && result.then ? result.then(activate) : activate());\n }\n return () => {\n };\n }, []);\n return props.children;\n }, [preset]);\n useEffect(() => {\n if (preset && preset.runtime) {\n const rt = preset.runtime;\n if (resetWorldOnChange) {\n return rt.world.addLayoutSubscriber((type) => {\n if (type === \"recalculate-world-size\") {\n rt.goHome({\n cover\n });\n }\n });\n }\n }\n return () => {\n };\n }, [preset, cover, resetWorldOnChange]);\n useLayoutEffect(() => {\n if (preset) {\n ReactAtlas.render(/* @__PURE__ */ jsx(Canvas, {\n children: /* @__PURE__ */ jsx(ModeContext.Provider, {\n value: mode,\n children: /* @__PURE__ */ jsx(AtlasContext.Provider, {\n value: preset,\n children\n })\n })\n }), preset.runtime);\n }\n }, [preset, mode, children]);\n return {\n loading: !imageUrl && ready,\n uri: imageUrl,\n imageError\n };\n};\nconst useBeforeFrame = (callback, deps = []) => {\n const runtime = useRuntime();\n useEffect(() => {\n if (runtime) {\n return runtime.registerHook(\"useBeforeFrame\", callback);\n }\n return () => {\n };\n }, deps);\n};\nconst useControlledAnnotationList = (initialList = []) => {\n const [annotations, setAnnotations] = useState(initialList);\n const [isEditing, setIsEditing] = useState(false);\n const [selectedAnnotation, setSelectedAnnotation] = useState();\n const addNewAnnotation = useCallback(() => {\n setIsEditing(true);\n setSelectedAnnotation(void 0);\n }, []);\n const editAnnotation = useCallback((id) => {\n setIsEditing(true);\n setSelectedAnnotation(id);\n }, []);\n const onUpdateAnnotation = (newAnno) => {\n setAnnotations((val) => val.map((ann) => {\n if (ann.id === newAnno.id) {\n return newAnno;\n }\n return ann;\n }));\n };\n const onCreateNewAnnotation = useCallback((bounds) => {\n const id = nanoid();\n setAnnotations((a) => [...a, { id, ...bounds }]);\n setIsEditing(false);\n setSelectedAnnotation(void 0);\n }, []);\n const onDeselect = useCallback(() => {\n setIsEditing(false);\n setSelectedAnnotation(void 0);\n }, []);\n return {\n isEditing,\n onDeselect,\n selectedAnnotation,\n onCreateNewAnnotation,\n annotations,\n onUpdateAnnotation,\n setIsEditing,\n setSelectedAnnotation,\n editAnnotation,\n addNewAnnotation\n };\n};\nfunction canDrag(ref) {\n return ref.current === \"sketch\";\n}\nfunction mergeStyles(defaultStyle, style) {\n if (!defaultStyle) {\n return style;\n }\n if (!style) {\n return defaultStyle;\n }\n return {\n ...defaultStyle,\n ...style || {},\n \":hover\": defaultStyle[\":hover\"] ? Object.assign(defaultStyle[\":hover\"] || {}, style[\":hover\"] || {}) : style[\":hover\"],\n \":active\": defaultStyle[\":active\"] ? Object.assign(defaultStyle[\":active\"] || {}, style[\":active\"] || {}) : style[\":hover\"]\n };\n}\nexport { Atlas, AtlasAuto, AtlasContext, BoundsContext, Box, BrowserEventManager, CanvasRenderer, CompositeRenderer, CompositeResource, DebugRenderer, DrawBox, GridBuilder, HTMLPortal, ImageService, ImageTexture, ModeContext, OverlayRenderer, ReactAtlas, RegionHighlight, ResizeWorldItem, Runtime, SingleImage, StaticRenderer, Text, TileSet, TiledImage, WebGLRenderer, World, WorldObject, Zone, activateEvents, applyProps, bounceOut, canDrag, createDefaultEventMap, defaultConfig, defaultPreset, easingFunctions, fromImage, getId, getTileFromCanvas, getTileFromImageService, getTiles, getTilesFromManifest, mergeStyles, popmotionController, presets, staticPreset, supportedEventAttributes, supportedEventMap, unmountComponentAtNode, useAfterFrame, useAfterPaint, useAtlas, useAtlasImage, useBeforeFrame, useCanvas, useControlledAnnotationList, useFrame, useMode, useResizeWorldItem, useRuntime, useWorldEvent };\n//# sourceMappingURL=index.mjs.map\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport * as React from 'react';\n\nvar changedArray = function changedArray(a, b) {\n if (a === void 0) {\n a = [];\n }\n\n if (b === void 0) {\n b = [];\n }\n\n return a.length !== b.length || a.some(function (item, index) {\n return !Object.is(item, b[index]);\n });\n};\n\nvar initialState = {\n error: null\n};\n\nvar ErrorBoundary = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ErrorBoundary, _React$Component);\n\n function ErrorBoundary() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n _this.state = initialState;\n\n _this.resetErrorBoundary = function () {\n var _this$props;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this.props.onReset == null ? void 0 : (_this$props = _this.props).onReset.apply(_this$props, args);\n\n _this.reset();\n };\n\n return _this;\n }\n\n ErrorBoundary.getDerivedStateFromError = function getDerivedStateFromError(error) {\n return {\n error: error\n };\n };\n\n var _proto = ErrorBoundary.prototype;\n\n _proto.reset = function reset() {\n this.setState(initialState);\n };\n\n _proto.componentDidCatch = function componentDidCatch(error, info) {\n var _this$props$onError, _this$props2;\n\n (_this$props$onError = (_this$props2 = this.props).onError) == null ? void 0 : _this$props$onError.call(_this$props2, error, info);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n var error = this.state.error;\n var resetKeys = this.props.resetKeys; // There's an edge case where if the thing that triggered the error\n // happens to *also* be in the resetKeys array, we'd end up resetting\n // the error boundary immediately. This would likely trigger a second\n // error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call\n // of cDU after the error is set\n\n if (error !== null && prevState.error !== null && changedArray(prevProps.resetKeys, resetKeys)) {\n var _this$props$onResetKe, _this$props3;\n\n (_this$props$onResetKe = (_this$props3 = this.props).onResetKeysChange) == null ? void 0 : _this$props$onResetKe.call(_this$props3, prevProps.resetKeys, resetKeys);\n this.reset();\n }\n };\n\n _proto.render = function render() {\n var error = this.state.error;\n var _this$props4 = this.props,\n fallbackRender = _this$props4.fallbackRender,\n FallbackComponent = _this$props4.FallbackComponent,\n fallback = _this$props4.fallback;\n\n if (error !== null) {\n var _props = {\n error: error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n\n if ( /*#__PURE__*/React.isValidElement(fallback)) {\n return fallback;\n } else if (typeof fallbackRender === 'function') {\n return fallbackRender(_props);\n } else if (FallbackComponent) {\n return /*#__PURE__*/React.createElement(FallbackComponent, _props);\n } else {\n throw new Error('react-error-boundary requires either a fallback, fallbackRender, or FallbackComponent prop');\n }\n }\n\n return this.props.children;\n };\n\n return ErrorBoundary;\n}(React.Component);\n\nfunction withErrorBoundary(Component, errorBoundaryProps) {\n var Wrapped = function Wrapped(props) {\n return /*#__PURE__*/React.createElement(ErrorBoundary, errorBoundaryProps, /*#__PURE__*/React.createElement(Component, props));\n }; // Format for display in DevTools\n\n\n var name = Component.displayName || Component.name || 'Unknown';\n Wrapped.displayName = \"withErrorBoundary(\" + name + \")\";\n return Wrapped;\n}\n\nfunction useErrorHandler(givenError) {\n var _React$useState = React.useState(null),\n error = _React$useState[0],\n setError = _React$useState[1];\n\n if (givenError != null) throw givenError;\n if (error != null) throw error;\n return setError;\n}\n/*\neslint\n @typescript-eslint/sort-type-union-intersection-members: \"off\",\n @typescript-eslint/no-throw-literal: \"off\",\n @typescript-eslint/prefer-nullish-coalescing: \"off\"\n*/\n\nexport { ErrorBoundary, useErrorHandler, withErrorBoundary };\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import * as jsxRuntime from \"/home/runner/work/react-iiif-vault/react-iiif-vault/node_modules/react/jsx-runtime.js\"\nexport const jsx = jsxRuntime.jsx\nexport const jsxs = jsxRuntime.jsxs\nexport const Fragment = jsxRuntime.Fragment","import React, { ReactNode, useContext, useMemo } from 'react';\n\nconst defaultResourceContext = {\n collection: undefined,\n manifest: undefined,\n range: undefined,\n canvas: undefined,\n annotation: undefined,\n};\n\nexport type ResourceContextType = {\n collection?: string;\n manifest?: string;\n range?: string;\n canvas?: string;\n annotation?: string;\n};\n\nexport const ResourceReactContext = React.createContext<ResourceContextType>(defaultResourceContext);\n\nexport const useResourceContext = () => {\n return useContext(ResourceReactContext);\n};\n\nexport function ResourceProvider({ value, children }: { value: ResourceContextType; children: ReactNode }) {\n const parentContext = useResourceContext();\n const newContext = useMemo(() => {\n return {\n ...parentContext,\n ...value,\n };\n }, [value, parentContext]);\n\n return <ResourceReactContext.Provider value={newContext}>{children}</ResourceReactContext.Provider>;\n}\n","import React, { ReactElement, ReactNode, useState } from 'react';\nimport { Vault, VaultOptions, globalVault } from '@iiif/vault';\nimport { ResourceContextType, ResourceProvider } from './ResourceContext';\n\nexport const ReactVaultContext = React.createContext<{\n vault: Vault | null;\n setVaultInstance: (vault: Vault) => void;\n}>({\n vault: null,\n setVaultInstance: (vault: Vault) => {\n // Do nothing.\n },\n});\n\nexport function VaultProvider({\n vault,\n vaultOptions,\n useGlobal,\n resources,\n children,\n}: {\n vault?: Vault;\n useGlobal?: boolean;\n vaultOptions?: VaultOptions;\n resources?: ResourceContextType;\n children: ReactNode;\n}) {\n const [vaultInstance, setVaultInstance] = useState<Vault>(() => {\n if (vault) {\n return vault;\n }\n if (useGlobal) {\n return globalVault(vaultOptions);\n }\n if (vaultOptions) {\n return new Vault(vaultOptions);\n }\n return new Vault();\n });\n\n return (\n <ReactVaultContext.Provider value={{ vault: vaultInstance, setVaultInstance }}>\n <ResourceProvider value={resources || {}}>{children}</ResourceProvider>\n </ReactVaultContext.Provider>\n );\n}\n","import { ReactVaultContext } from '../context/VaultContext';\nimport { useContext } from 'react';\nimport { Vault } from '@iiif/vault';\n\nexport const useVault = (): Vault => {\n const { vault } = useContext(ReactVaultContext);\n\n if (vault === null) {\n throw new Error('Vault not found. Ensure you have your provider set up correctly.');\n }\n\n return vault as Vault;\n};\n","import { useVault } from './useVault';\nimport { useEffect, useMemo, useState } from 'react';\n\nexport type ResourceRequestOptions = {\n noCache?: boolean;\n};\n\nexport function useExternalResource<T extends { id: string }>(\n idOrRef: string | { id: string; type: string },\n { noCache = false }: ResourceRequestOptions = {}\n): {\n id: string;\n requestId: string;\n isLoaded: boolean;\n error: any;\n cached: boolean;\n resource?: T;\n} {\n const id = typeof idOrRef === 'string' ? idOrRef : idOrRef.id;\n const vault = useVault();\n const [realId, setRealId] = useState(id);\n const [error, setError] = useState<Error | undefined>(undefined);\n const initialData = useMemo(() => {\n return vault.get<T>(id, { skipSelfReturn: true }) || undefined;\n }, [id, vault]);\n const [resource, setResource] = useState<T | undefined>(initialData);\n\n useEffect(() => {\n (async () => {\n try {\n const fetchedResource = initialData && !noCache ? initialData : await vault.load<T>(id);\n const _realId = fetchedResource ? fetchedResource.id || (fetchedResource as any)['@id'] : null;\n if (fetchedResource && realId !== _realId) {\n setRealId(_realId);\n }\n\n setResource(fetchedResource);\n } catch (err) {\n setError(err as Error);\n }\n })();\n }, [id, noCache]);\n\n return {\n isLoaded: !!resource,\n id: realId,\n requestId: id,\n error,\n resource,\n cached: !!(resource && resource === initialData),\n };\n}\n","import { ManifestNormalized } from '@iiif/presentation-3';\nimport { ResourceRequestOptions, useExternalResource } from './useExternalResource';\n\nexport function useExternalManifest(\n idOrRef: string | { id: string; type: string },\n options?: ResourceRequestOptions\n): {\n id: string;\n requestId: string;\n isLoaded: boolean;\n cached?: boolean;\n error: any;\n manifest?: ManifestNormalized;\n} {\n const { id, isLoaded, error, resource, requestId, cached } = useExternalResource<ManifestNormalized>(\n idOrRef,\n options\n );\n\n return { id, isLoaded, error, manifest: resource, requestId, cached };\n}\n","import { ResourceProvider } from './ResourceContext';\nimport React, { ReactNode } from 'react';\n\nexport function ManifestContext({ manifest, children }: { manifest: string; children: ReactNode }) {\n return <ResourceProvider value={{ manifest }}>{children}</ResourceProvider>;\n}\n","import { ResourceProvider } from './ResourceContext';\nimport React, { ReactNode } from 'react';\n\nexport function CanvasContext({ canvas, children }: { canvas: string; children: ReactNode }) {\n return <ResourceProvider value={{ canvas }}>{children}</ResourceProvider>;\n}\n","import { useVault } from './useVault';\nimport { IIIFStore, Vault } from '@iiif/vault';\nimport { useEffect, useState } from 'react';\n\nexport function useVaultSelector<T>(selector: (state: IIIFStore, vault: Vault) => T, deps: any[] = []) {\n const vault = useVault();\n const [selectedState, setSelectedState] = useState<T>(() => selector(vault.getState(), vault));\n\n useEffect(() => {\n return vault.subscribe(\n (s) => selector(s, vault),\n (s) => {\n setSelectedState(s);\n },\n false\n );\n }, deps);\n\n return selectedState as T;\n}\n","import { useContext } from 'react';\nimport React from 'react';\nimport { CanvasNormalized } from '@iiif/presentation-3';\nimport { useVaultSelector } from '../hooks/useVaultSelector';\n\nexport const VisibleCanvasReactContext = React.createContext<string[]>([]);\n\nexport function useVisibleCanvases(): CanvasNormalized[] {\n const ids = useContext(VisibleCanvasReactContext);\n\n return useVaultSelector<CanvasNormalized[]>(\n (state) => {\n return ids.map((id) => state.iiif.entities.Canvas[id]).filter(Boolean);\n },\n [ids]\n );\n}\n","import React, { ReactNode, useCallback, useContext, useEffect } from 'react';\n/**\n * Simple viewer context\n * *****************************************************************************\n *\n * This will be the context to use to get a basic IIIF viewer up and running.\n * It will not focus on having compatibility with the full range of IIIF\n * resources, instead offering a viewer for a Manifest, cycling through canvases\n * while ignoring the paged/facing-pages/continuous behaviors.\n *\n * There will not be support for canvas-on-canvas annotations. Annotations will\n * be filtered, giving details of the canvas space and images to be annotated\n * onto that space. The demo implementation of this viewer will use\n * OpenSeadragon to display.\n *\n * Navigation functions will include the basics:\n * - nextCanvas()\n * - previousCanvas()\n * - goToCanvas(id)\n * - goToCanvasIndex(idx)\n * - goToFirstCanvas()\n * - goToLastCanvas()\n *\n * It will take in only a Manifest ID and will load that Manifest when the\n * context loads.\n *\n * There will be no support for external or embedded annotation lists, although\n * you can set up a nested context to support this.\n *\n * There will be no support for ranges in this view.\n *\n * To use this component, first you will need the provider:\n * import { SimpleViewerProvider } from '...';\n *\n * <SimpleViewerProvider id=\"http://example.org/manifest.json\">\n * <CustomComponent />\n * </SimpleViewerProvider>\n *\n * This is in addition to the core Vault context further up the tree.\n *\n * In components that you want to use parts of the state you can grab the hooks\n * from this file.\n *\n * import { useSimpleViewer } from '...';\n *\n * And use them in your components to get the actions.\n *\n * function NextButton() {\n * const { nextCanvas } = useSimpleViewer();\n *\n * return <button onClick={nextCanvas}>Next</button>;\n * }\n *\n * Since this is a single-context, there is only ever one manifest, canvas and\n * annotation list. You can access the current resource using the normal hooks.\n *\n * function CanvasMetadata() {\n * const metadata = useCanvas(metadataSelector);\n *\n * return <div> ... </div>\n * }\n *\n * So long as this is inside the provider, it will have the correct context.\n */\nimport { createContext, FC, useMemo, useState } from 'react';\nimport { useExternalManifest } from '../hooks/useExternalManifest';\nimport { ManifestContext } from '../context/ManifestContext';\nimport { CanvasContext } from '../context/CanvasContext';\nimport { VisibleCanvasReactContext } from '../context/VisibleCanvasContext';\n\ntype SimpleViewerContext = {\n setCurrentCanvasId: (newId: string | ((prev: string) => string)) => void;\n setCurrentCanvasIndex: (newId: number | ((prev: number) => number)) => void;\n currentCanvasIndex: number;\n pagingView: boolean;\n totalCanvases: number;\n nextCanvas: () => void;\n previousCanvas: () => void;\n};\n\nconst noop = () => {\n //\n};\n\nexport const SimpleViewerReactContext = createContext<SimpleViewerContext>({\n setCurrentCanvasId: noop,\n setCurrentCanvasIndex: noop,\n nextCanvas: noop,\n previousCanvas: noop,\n currentCanvasIndex: -1,\n totalCanvases: 0,\n pagingView: true,\n});\n\nexport function SimpleViewerProvider(props: { manifest: string; pagingEnabled?: boolean; children: ReactNode }) {\n const manifest = useExternalManifest(props.manifest);\n const [currentCanvasId, setCurrentCanvasId] = useState('');\n const [visible, setVisible] = useState<string[]>([]);\n const pagingView =\n (typeof props.pagingEnabled === 'undefined' || props.pagingEnabled) &&\n manifest.manifest &&\n manifest.manifest.behavior &&\n manifest.manifest.behavior.includes('paged');\n\n useEffect(() => {\n if (manifest.manifest) {\n setCurrentCanvasId(manifest.manifest.items[0]?.id);\n setVisible([manifest.manifest.items[0]?.id]);\n }\n }, [manifest.manifest, props.manifest]);\n\n const canvasList = useMemo(() => {\n return manifest.manifest?.items.map((c) => c.id) || [];\n }, [manifest.manifest, props.manifest]);\n\n const currentCanvasIndex = useMemo(() => canvasList.indexOf(currentCanvasId), [canvasList, currentCanvasId]);\n\n const nextCanvas = useCallback(() => {\n if (canvasList.length && currentCanvasId) {\n if (currentCanvasIndex === -1) {\n // This is an error?\n return;\n }\n if (\n canvasList[currentCanvasIndex + 2]\n ? currentCanvasIndex + 2 === canvasList.length\n : currentCanvasIndex === canvasList.length\n ) {\n // We are at the end.\n return;\n }\n const newCanvas =\n pagingView && currentCanvasIndex !== 0\n ? canvasList[currentCanvasIndex + 2]\n : canvasList[currentCanvasIndex + 1];\n\n const pageCanvas = pagingView\n ? currentCanvasIndex !== 0\n ? canvasList[currentCanvasIndex + 3]\n : canvasList[currentCanvasIndex + 2]\n : null;\n\n if (newCanvas) {\n setCurrentCanvasId(newCanvas);\n setVisible(pageCanvas ? [newCanvas, pageCanvas] : [newCanvas]);\n }\n }\n }, [pagingView, canvasList, currentCanvasId, currentCanvasIndex]);\n\n const previousCanvas = useCallback(() => {\n if (canvasList.length && currentCanvasId) {\n if (currentCanvasIndex === 0 || currentCanvasIndex === -1) {\n return;\n }\n\n const newCanvas =\n pagingView && currentCanvasIndex !== 1\n ? canvasList[currentCanvasIndex - 2]\n : canvasList[currentCanvasIndex - 1];\n const pageCanvas = pagingView && currentCanvasIndex !== 1 ? canvasList[currentCanvasIndex - 1] : null;\n if (newCanvas) {\n setCurrentCanvasId(newCanvas);\n setVisible(pageCanvas ? [newCanvas, pageCanvas] : [newCanvas]);\n }\n }\n }, [pagingView, canvasList, currentCanvasId, currentCanvasIndex]);\n\n const setCurrentCanvasIndex = useCallback(\n (idx: number) => {\n const realIdx = pagingView && idx % 2 === 1 ? idx - 1 : idx;\n const newId = canvasList[realIdx];\n const newNextId = pagingView && realIdx !== 0 ? canvasList[realIdx + 1] : null;\n if (newId) {\n setCurrentCanvasId(newId);\n setVisible((prevValue) => {\n const newValue = newNextId ? [newId, newNextId] : [newId];\n if (prevValue.length === prevValue.length) {\n for (let i = 0; i < prevValue.length; i++) {\n if (prevValue[i] !== newValue[i]) {\n return newValue;\n }\n }\n return prevValue;\n }\n return newValue;\n });\n }\n },\n [pagingView, canvasList]\n );\n\n const internalSetCurrentCanvasId = useCallback(\n (nextId: string) => {\n const idx = canvasList.indexOf(nextId);\n if (idx !== -1) {\n setCurrentCanvasIndex(idx);\n }\n },\n [canvasList, setCurrentCanvasIndex]\n );\n\n const ctx = useMemo(\n () =>\n ({\n // Extra functions.\n setCurrentCanvasId: internalSetCurrentCanvasId,\n nextCanvas,\n previousCanvas,\n currentCanvasIndex,\n totalCanvases: canvasList.length,\n setCurrentCanvasIndex,\n pagingView: true,\n } as SimpleViewerContext),\n [nextCanvas, previousCanvas, currentCanvasIndex, canvasList, setCurrentCanvasIndex, internalSetCurrentCanvasId]\n );\n\n if (!manifest.manifest) {\n console.warn('The manifest passed to the provider is not a valid IIIF manifest.');\n return <div>Sorry, something went wrong.</div>;\n }\n\n if (!manifest.isLoaded) {\n return <div>Loading...</div>;\n }\n\n return (\n <SimpleViewerReactContext.Provider value={ctx}>\n <VisibleCanvasReactContext.Provider value={visible}>\n <ManifestContext manifest={manifest.manifest.id}>\n <CanvasContext canvas={currentCanvasId}>{props.children}</CanvasContext>\n </ManifestContext>\n </VisibleCanvasReactContext.Provider>\n </SimpleViewerReactContext.Provider>\n );\n}\n\nexport function useSimpleViewer() {\n return useContext(SimpleViewerReactContext);\n}\n","import React, { ReactNode, useContext } from 'react';\nimport { ResourceReactContext } from './ResourceContext';\nimport { ReactVaultContext, VaultProvider } from './VaultContext';\nimport { SimpleViewerReactContext } from '../viewers/SimpleViewerContext';\nimport { VisibleCanvasReactContext } from './VisibleCanvasContext';\n\nexport function useContextBridge() {\n return {\n VaultContext: useContext(ReactVaultContext),\n ResourceContext: useContext(ResourceReactContext),\n SimpleViewerReactContext: useContext(SimpleViewerReactContext),\n VisibleCanvasReactContext: useContext(VisibleCanvasReactContext),\n };\n}\n\nexport function ContextBridge(props: { bridge: ReturnType<typeof useContextBridge>; children: ReactNode }) {\n return (\n <VaultProvider vault={props.bridge.VaultContext.vault || undefined} resources={props.bridge.ResourceContext}>\n <VisibleCanvasReactContext.Provider value={props.bridge.VisibleCanvasReactContext}>\n <SimpleViewerReactContext.Provider value={props.bridge.SimpleViewerReactContext}>\n {props.children}\n </SimpleViewerReactContext.Provider>\n </VisibleCanvasReactContext.Provider>\n </VaultProvider>\n );\n}\n","function n(n){return null==n}function t(n){throw new Error(\"Argument \"+n+\" is empty.\")}function r(n){return\"function\"==typeof n&&\"getType\"in n}function e(n){throw new Error(\"Argument \"+n+' is invalid, it should be an action-creator instance from \"typesafe-actions\"')}function i(n,t){if(null==n)throw new Error(\"Argument contains array with empty element at index \"+t);if(null==n.getType)throw new Error(\"Argument contains array with invalid element at index \"+t+', it should be an action-creator instance from \"typesafe-actions\"')}function o(n){return\"string\"==typeof n||\"symbol\"==typeof n}function u(n){return!o(n)}function a(n){throw new Error(\"Argument \"+n+\" is invalid, it should be an action type of type: string | symbol\")}function c(n,t){if(null==n)throw new Error(\"Argument contains array with empty element at index \"+t);if(\"string\"!=typeof n&&\"symbol\"!=typeof n)throw new Error(\"Argument contains array with invalid element at index \"+t+\", it should be of type: string | symbol\")}function f(r,i,o,a){return n(r)&&t(1),u(r)&&e(1),{type:r,payload:i,meta:o,error:a}}function s(r,e){n(r)&&t(1),u(r)&&a(1);return Object.assign((function(){var n=null!=e?e.apply(void 0,arguments):void 0;return Object.assign({type:r},n)}),{getType:function(){return r},toString:function(){return r}})}function y(r,e,i){return n(r)&&t(1),u(r)&&a(1),function(){return s(r,(function(){var n=arguments.length<=0?void 0:arguments[0],t=arguments.length<=1?void 0:arguments[1];return null==e&&null==i||(n=null!=e?e.apply(void 0,arguments):void 0,t=null!=i?i.apply(void 0,arguments):void 0),Object.assign({},void 0!==n&&{payload:n},{},void 0!==t&&{meta:t})}))}}function l(n,t,r,e){return function(){var i=[n,t,r,e].map((function(n,t){return Array.isArray(n)?y(n[0],n[1],n[2])():\"string\"==typeof n||\"symbol\"==typeof n?y(n)():void(t<3&&function(n){throw new Error(\"Argument \"+n+' is invalid, it should be an action type of \"string | symbol\" or a tuple of \"[string | symbol, Function, Function?]\"')}(t))}));return{request:i[0],success:i[1],failure:i[2],cancel:i[3]}}}function p(i){return n(i)&&t(1),r(i)||e(1),i.getType()}function d(n,t){void 0===t&&(t={});var e=Object.assign({},t),i=function(t,i){var u=Array.isArray(t)?t:[t],a={};return u.map((function(n,t){return r(n)?p(n):o(n)?n:function(n){throw new Error(\"Argument \"+n+' is invalid, it should be an action-creator instance from \"typesafe-actions\" or action type of type: string | symbol')}(t+1)})).forEach((function(n){return a[n]=i})),d(n,Object.assign({},e,{},a))};return Object.assign((function(t,r){if(void 0===t&&(t=n),e.hasOwnProperty(r.type)){var i=e[r.type];if(\"function\"!=typeof i)throw Error('Reducer under \"'+r.type+'\" key is not a valid reducer');return i(t,r)}return t}),{handlers:Object.assign({},e),handleAction:i,handleType:i})}function g(r,e){n(r)&&t(1);var i=Array.isArray(r)?r:[r];i.forEach(c);var o=function(n){return i.includes(n.type)};return void 0===e?o:o(e)}function m(r,e){n(r)&&t(1);var o=Array.isArray(r)?r:[r];o.forEach(i);var u=function(n){return o.some((function(t){return n.type===t.getType()}))};return void 0===e?u:u(e)}function v(r,e){n(r)&&t(1),u(r)&&a(1);var i=null!=e?e(r):function(){return{type:r}};return Object.assign(i,{getType:function(){return r},toString:function(){return r}})}var h={createAction:function(n,t){var r=null==t?function(){return f(n)}:t(f.bind(null,n));return Object.assign(r,{getType:function(){return n},toString:function(){return n}})},createCustomAction:v,createStandardAction:function(r){return n(r)&&t(1),u(r)&&a(1),Object.assign((function(){return v(r,(function(n){return function(t,r){return{type:n,payload:t,meta:r}}}))}),{map:function(n){return v(r,(function(t){return function(r,e){return Object.assign(n(r,e),{type:t})}}))}})}};export{f as action,y as createAction,l as createAsyncAction,s as createCustomAction,d as createReducer,h as deprecated,p as getType,m as isActionOf,g as isOfType};\n//# sourceMappingURL=typesafe-actions.es.production.js.map\n","import { createAction } from 'typesafe-actions';\n\nconst IMPORT_ENTITIES = \"@iiif/IMPORT_ENTITIES\";\nconst MODIFY_ENTITY_FIELD = \"@iiif/MODIFY_ENTITY_FIELD\";\nconst REORDER_ENTITY_FIELD = \"@iiif/REORDER_ENTITY_FIELD\";\nconst ADD_REFERENCE = \"@iiif/ADD_REFERENCE\";\nconst REMOVE_REFERENCE = \"@iiif/REMOVE_REFERENCE\";\nconst importEntities = createAction(IMPORT_ENTITIES)();\nconst modifyEntityField = createAction(MODIFY_ENTITY_FIELD)();\nconst reorderEntityField = createAction(REORDER_ENTITY_FIELD)();\nconst addReference = createAction(ADD_REFERENCE)();\nconst removeReference = createAction(REMOVE_REFERENCE)();\nconst entityActions = { importEntities, modifyEntityField, reorderEntityField, addReference, removeReference };\n\nconst ADD_MAPPING = \"@iiif/ADD_MAPPING\";\nconst ADD_MAPPINGS = \"@iiif/ADD_MAPPINGS\";\nconst addMapping = createAction(ADD_MAPPING)();\nconst addMappings = createAction(ADD_MAPPINGS)();\nconst mappingActions = { addMapping, addMappings };\n\nconst SET_META_VALUE = \"@iiif/SET_META_VALUE\";\nconst SET_META_VALUE_DYNAMIC = \"@iiif/SET_META_VALUE_DYNAMIC\";\nconst UNSET_META_VALUE = \"@iiif/UNSET_META_VALUE\";\nconst setMetaValue = createAction(SET_META_VALUE)();\nconst setMetaValueDynamic = createAction(SET_META_VALUE_DYNAMIC)();\nconst unsetMetaValue = createAction(UNSET_META_VALUE)();\nconst metaActions = {\n setMetaValue,\n setMetaValueDynamic,\n unsetMetaValue\n};\n\nconst RESOURCE_ERROR = \"RESOURCE_ERROR\";\nconst RESOURCE_LOADING = \"RESOURCE_LOADING\";\nconst RESOURCE_READY = \"RESOURCE_READY\";\nconst REQUEST_RESOURCE = \"@iiif/REQUEST_RESOURCE\";\nconst REQUEST_ERROR = \"@iiif/REQUEST_ERROR\";\nconst REQUEST_MISMATCH = \"@iiif/REQUEST_MISMATCH\";\nconst REQUEST_COMPLETE = \"@iiif/REQUEST_COMPLETE\";\nconst REQUEST_OFFLINE_RESOURCE = \"@iiif/REQUEST_OFFLINE_RESOURCE\";\nconst requestResource = createAction(REQUEST_RESOURCE)();\nconst requestError = createAction(REQUEST_ERROR)();\nconst requestMismatch = createAction(REQUEST_MISMATCH)();\nconst requestComplete = createAction(REQUEST_COMPLETE)();\nconst requestOfflineResource = createAction(REQUEST_OFFLINE_RESOURCE)();\nconst requestActions = {\n requestResource,\n requestError,\n requestMismatch,\n requestComplete,\n requestOfflineResource\n};\n\nconst BATCH_ACTIONS = \"@iiif/BATCH\";\nconst BATCH_IMPORT = \"@iiif/BATCH_IMPORT\";\nconst batchActions = createAction(BATCH_ACTIONS)();\nconst batchImport = createAction(BATCH_IMPORT)();\n\nexport { ADD_MAPPING, ADD_MAPPINGS, ADD_REFERENCE, BATCH_ACTIONS, BATCH_IMPORT, IMPORT_ENTITIES, MODIFY_ENTITY_FIELD, REMOVE_REFERENCE, REORDER_ENTITY_FIELD, REQUEST_COMPLETE, REQUEST_ERROR, REQUEST_MISMATCH, REQUEST_OFFLINE_RESOURCE, REQUEST_RESOURCE, RESOURCE_ERROR, RESOURCE_LOADING, RESOURCE_READY, SET_META_VALUE, SET_META_VALUE_DYNAMIC, UNSET_META_VALUE, addMapping, addMappings, addReference, batchActions, batchImport, entityActions, importEntities, mappingActions, metaActions, modifyEntityField, removeReference, reorderEntityField, requestActions, requestComplete, requestError, requestMismatch, requestOfflineResource, requestResource };\n","import { useVault } from './useVault';\nimport { useMemo } from 'react';\nimport { ReduxStore } from '@iiif/vault';\n\nexport function useDispatch(): ReduxStore['dispatch'] {\n const vault = useVault();\n const store = vault.getStore();\n\n return useMemo(() => {\n return (action: any) => store.dispatch(action);\n }, [store]);\n}\n","import { useCallback, useLayoutEffect, useMemo, useRef } from 'react';\nimport { Annotation, AnnotationNormalized, AnnotationPageNormalized } from '@iiif/presentation-3';\nimport { useVault } from './useVault';\nimport { useVaultSelector } from './useVaultSelector';\nimport { entityActions } from '@iiif/vault/actions';\nimport { useDispatch } from './useDispatch';\nimport { Vault } from '@iiif/vault';\n\nexport interface VaultActivatedAnnotation {\n __vault?: Vault;\n bindToVault(vault: Vault): void;\n source: string | { id: string };\n}\n\nfunction isVaultActivated(obj: any): obj is VaultActivatedAnnotation {\n return typeof obj !== 'string' && obj && obj.bindToVault;\n}\n\nexport function useVirtualAnnotationPage() {\n const vault = useVault();\n const sources = useRef<Record<any, any>>([]);\n const dispatch = useDispatch();\n const virtualId = useMemo(() => {\n return `vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random() * 1000000000).toString(16)}`;\n }, []);\n\n useLayoutEffect(() => {\n const page: AnnotationPageNormalized = {\n id: virtualId,\n type: 'AnnotationPage',\n behavior: [],\n motivation: null,\n label: null,\n thumbnail: [],\n summary: null,\n requiredStatement: null,\n metadata: [],\n rights: null,\n provider: [],\n items: [],\n seeAlso: [],\n homepage: [],\n logo: [],\n rendering: [],\n service: [],\n };\n\n dispatch(\n entityActions.importEntities({\n entities: {\n AnnotationPage: {\n [page.id]: page,\n },\n },\n })\n );\n }, [virtualId]);\n\n const fullPage: AnnotationPageNormalized | null = useVaultSelector(\n (state) => (virtualId ? state.iiif.entities.AnnotationPage[virtualId] : null),\n [virtualId]\n );\n\n const addAnnotation = useCallback(\n (id: string | Annotation | VaultActivatedAnnotation | AnnotationNormalized, atIndex?: number) => {\n if (virtualId) {\n if (isVaultActivated(id)) {\n const display = id;\n if (!display.__vault) {\n // First bind to vault.\n display.bindToVault(vault);\n }\n id = typeof display.source === 'string' ? display.source : display.source.id;\n sources.current[id] = display;\n } else if (typeof id !== 'string') {\n id = id.id;\n }\n\n const full: AnnotationPageNormalized = vault.get({ id: virtualId, type: 'AnnotationPage' });\n const annotation: AnnotationNormalized = vault.get({ id, type: 'Annotation' });\n if (full && annotation) {\n if (!full.items.find((r: any) => r.id === annotation.id)) {\n dispatch(\n entityActions.addReference({\n id: virtualId,\n type: 'AnnotationPage',\n key: 'items',\n reference: {\n id,\n type: 'Annotation',\n },\n index: atIndex,\n })\n );\n }\n }\n }\n },\n [virtualId]\n );\n const removeAnnotation = useCallback(\n (id: string | Annotation | VaultActivatedAnnotation | AnnotationNormalized) => {\n if (virtualId) {\n if (isVaultActivated(id)) {\n id = typeof id.source === 'string' ? id.source : id.source.id;\n } else if (typeof id !== 'string') {\n id = id.id;\n }\n\n if (sources.current[id]) {\n sources.current[id].beforeRemove();\n }\n\n const full: AnnotationPageNormalized = vault.get({ id: virtualId, type: 'AnnotationPage' });\n if (full) {\n dispatch(\n entityActions.removeReference({\n id: virtualId,\n type: 'AnnotationPage',\n key: 'items',\n reference: {\n id,\n type: 'Annotation',\n },\n })\n );\n }\n }\n },\n [virtualId]\n );\n\n return [\n fullPage,\n {\n addAnnotation,\n removeAnnotation,\n },\n ] as const;\n}\n","import { Annotation, AnnotationNormalized, AnnotationPageNormalized } from '@iiif/presentation-3';\nimport React, { createContext, useContext, useMemo } from 'react';\nimport { useVirtualAnnotationPage, VaultActivatedAnnotation } from './useVirtualAnnotationPage';\n\nconst VirtualAnnotationPageContext = createContext<{\n fullPage: AnnotationPageNormalized | null;\n addAnnotation: (\n id: string | Annotation | VaultActivatedAnnotation | AnnotationNormalized,\n atIndex?: number | undefined\n ) => void;\n removeAnnotation: (id: string | Annotation | VaultActivatedAnnotation | AnnotationNormalized) => void;\n} | null>(null);\n\nexport function useVirtualAnnotationPageContext() {\n const ctx = useContext(VirtualAnnotationPageContext);\n\n return [\n ctx!.fullPage,\n {\n addAnnotation: ctx!.addAnnotation,\n removeAnnotation: ctx!.removeAnnotation,\n },\n ] as const;\n}\n\nexport function VirtualAnnotationProvider({ children }: { children: any }) {\n const [fullPage, { addAnnotation, removeAnnotation }] = useVirtualAnnotationPage();\n\n return (\n <VirtualAnnotationPageContext.Provider\n value={useMemo(() => ({ fullPage, addAnnotation, removeAnnotation }), [fullPage])}\n >\n {children}\n </VirtualAnnotationPageContext.Provider>\n );\n}\n","import React from 'react';\n\nexport function DefaultCanvasFallback({ width, style, height }: { width?: number; height?: number; style?: any }) {\n return <div style={{ width, height, minHeight: 500, ...(style || {}), background: '#f9f9f9' }}>Unknown error</div>;\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","import { createContext, useContext } from 'react';\nimport { Preset } from '@atlas-viewer/atlas';\n\nexport const ViewerPresetContext = createContext<Preset | null | undefined>(null);\n\nexport function useViewerPreset() {\n return useContext(ViewerPresetContext);\n}\n","import React, { ReactNode, useContext, useLayoutEffect, useMemo, useRef } from 'react';\nimport { createRoot, Root } from 'react-dom/client';\nimport { useViewerPreset, ViewerPresetContext } from './ViewerPresetContext';\n\nexport const PortalContext = React.createContext<HTMLDivElement | null>(null);\nexport const OverlayPortalContext = React.createContext<HTMLDivElement | null>(null);\n\nexport function CanvasPortal({ children, overlay }: { children: ReactNode; overlay?: boolean }) {\n const htmlElement = useContext(overlay ? OverlayPortalContext : PortalContext);\n const rootRef = useRef<Root | null>(null);\n const preset = useViewerPreset();\n\n useLayoutEffect(() => {\n if (!rootRef.current) {\n rootRef.current = htmlElement ? createRoot(htmlElement) : null;\n }\n }, []);\n\n useLayoutEffect(() => {\n return () => {\n rootRef.current?.unmount();\n rootRef.current = null;\n };\n }, []);\n\n useLayoutEffect(() => {\n if (rootRef.current) {\n rootRef.current.render(<ViewerPresetContext.Provider value={preset}>{children}</ViewerPresetContext.Provider>);\n }\n }, [children, preset]);\n\n return null;\n}\n","import React, { ReactNode, useLayoutEffect, useRef, useState } from 'react';\nimport { AtlasAuto, Preset } from '@atlas-viewer/atlas';\nimport { ErrorBoundary } from 'react-error-boundary';\nimport { ContextBridge, useContextBridge } from '../context/ContextBridge';\nimport { VirtualAnnotationProvider } from '../hooks/useVirtualAnnotationPageContext';\nimport { AtlasProps } from '@atlas-viewer/atlas/dist/types/modules/react-reconciler/Atlas';\nimport { DefaultCanvasFallback } from './render/DefaultCanvasFallback';\nimport { OverlayPortalContext, PortalContext } from '../context/PortalContext';\nimport { ViewerPresetContext } from '../context/ViewerPresetContext';\n\nexport function Viewer({\n children,\n errorFallback,\n outerContainerProps = {},\n ...props\n}: AtlasProps & {\n height?: number | string;\n width?: number | string;\n resizeHash?: number;\n containerProps?: any;\n outerContainerProps?: any;\n aspectRatio?: number;\n errorFallback?: any;\n} & { children: ReactNode }) {\n const portal = useRef<HTMLDivElement>(null);\n const [portalElement, setPortalElement] = useState<HTMLDivElement | null>();\n const [viewerPreset, setViewerPreset] = useState<Preset | null>();\n const overlayPortal = useRef<HTMLDivElement>(null);\n const [overlayPortalElement, setOverlayPortalElement] = useState<HTMLDivElement | null>();\n const bridge = useContextBridge();\n const ErrorFallback: any = errorFallback || DefaultCanvasFallback;\n\n useLayoutEffect(() => {\n setPortalElement(portal.current);\n setOverlayPortalElement(overlayPortal.current);\n }, []);\n\n return (\n <ErrorBoundary fallbackRender={() => <ErrorFallback {...props} />}>\n <AtlasAuto\n {...props}\n containerProps={{ style: { position: 'relative' }, ...(props.containerProps || {}) }}\n htmlChildren={<div ref={overlayPortal} />}\n onCreated={(preset: any) => {\n setViewerPreset(preset);\n if (props.onCreated) {\n props.onCreated(preset);\n }\n }}\n >\n <ViewerPresetContext.Provider value={viewerPreset}>\n <PortalContext.Provider value={portalElement as any}>\n <OverlayPortalContext.Provider value={overlayPortalElement as any}>\n <ContextBridge bridge={bridge}>\n <VirtualAnnotationProvider>{children}</VirtualAnnotationProvider>\n </ContextBridge>\n </OverlayPortalContext.Provider>\n </PortalContext.Provider>\n </ViewerPresetContext.Provider>\n </AtlasAuto>\n <div ref={portal} />\n </ErrorBoundary>\n );\n}\n","function createEventsHelper(vault) {\n return {\n addEventListener(resource, event, listener, scope) {\n if (!resource) {\n return;\n }\n vault.setMetaValue([resource.id, \"eventManager\", event], (registeredCallbacks) => {\n const callbacks = registeredCallbacks || [];\n for (const registered of callbacks) {\n if (registered.callback === listener) {\n return callbacks;\n }\n }\n return [...callbacks, { callback: listener, scope }];\n });\n return listener;\n },\n removeEventListener(resource, event, listener) {\n if (!resource) {\n return;\n }\n vault.setMetaValue([resource.id, \"eventManager\", event], (registeredCallbacks) => {\n return (registeredCallbacks || []).filter((registeredCallback) => registeredCallback.callback !== listener);\n });\n },\n getListenersAsProps(resourceOrId, scope) {\n const resource = typeof resourceOrId === \"string\" ? { id: resourceOrId } : resourceOrId;\n if (!resource || !resource.id) {\n return {};\n }\n const hooks = vault.getResourceMeta(resource.id, \"eventManager\");\n const props = {};\n if (hooks && resource) {\n for (const hook of Object.keys(hooks)) {\n props[hook] = (e) => {\n const fullResource = vault.get(resource);\n for (const { callback, scope: _scope } of hooks[hook] || []) {\n if (!_scope || scope && _scope.indexOf(scope) !== -1) {\n callback(e, fullResource);\n }\n }\n };\n }\n }\n return props;\n }\n };\n}\nexport { createEventsHelper };\n//# sourceMappingURL=events.mjs.map\n","import { useVault } from './useVault';\nimport { useVaultSelector } from './useVaultSelector';\nimport { useMemo } from 'react';\nimport { NormalizedEntity } from '@iiif/vault';\nimport { Reference } from '@iiif/presentation-3';\nimport { createEventsHelper } from '@iiif/vault-helpers/events';\n\nexport function useResourceEvents<T extends NormalizedEntity>(resource?: Reference, scope?: string[]) {\n const vault = useVault();\n const helper = useMemo(() => createEventsHelper(vault), [vault]);\n\n const hooks = useVaultSelector(() => {\n if (resource && resource.id) {\n return vault.getResourceMeta(resource.id, 'eventManager');\n }\n return null;\n }, [resource]);\n\n return useMemo(() => {\n return resource ? helper.getListenersAsProps(resource, scope) : {};\n }, [hooks, resource, vault, scope]);\n}\n","function createStylesHelper(vault) {\n return {\n applyStyles(resource, scope, styles) {\n const id = typeof resource === \"string\" ? resource : resource.id;\n return vault.setMetaValue([id, \"styles\", scope], styles);\n },\n getAppliedStyles(resource) {\n const id = typeof resource === \"string\" ? resource : resource.id;\n return vault.getResourceMeta(id, \"styles\");\n }\n };\n}\nexport { createStylesHelper };\n//# sourceMappingURL=styles.mjs.map\n","import { useVault } from './useVault';\nimport { useMemo } from 'react';\nimport { Reference } from '@iiif/presentation-3';\nimport { createStylesHelper } from '@iiif/vault-helpers/styles';\nimport { useVaultSelector } from './useVaultSelector';\n\nexport function useStyles<Style extends Record<string, Record<string, any>>>(\n resource: undefined | Reference<any>\n): Style;\nexport function useStyles<Style extends Record<string, any>>(\n resource: undefined | Reference<any>,\n scope: string\n): Style;\nexport function useStyles<Style>(resource?: Reference, scope?: string): Style {\n const vault = useVault();\n const helper = useMemo(() => createStylesHelper(vault), [vault]);\n\n return useVaultSelector(() => {\n if (!resource) {\n return null;\n }\n\n const styles = helper.getAppliedStyles(resource.id);\n return styles ? (scope ? styles[scope] : styles) : undefined;\n }, [resource, scope]) as Style;\n}\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst BOX_SELECTOR = /&?(xywh=)?(pixel:|percent:|pct:)?([0-9]+(?:\\.[0-9]+)?),([0-9]+(?:\\.[0-9]+)?),([0-9]+(?:\\.[0-9]+)?),([0-9]+(?:\\.[0-9]+)?)/;\nconst TEMPORAL_SELECTOR = /&?(t=)(npt:)?([0-9]+(.[0-9]+)?)?(,([0-9]+(.[0-9]+)?))?/;\nfunction parseSelector(source) {\n if (Array.isArray(source)) {\n return source.reduce((data, nextSource) => {\n const { selector, selectors } = parseSelector(nextSource);\n if (selector) {\n if (!data.selector) {\n data.selector = selector;\n }\n data.selectors.push(...selectors);\n }\n return data;\n }, {\n selector: null,\n selectors: []\n });\n }\n if (!source) {\n return {\n selector: null,\n selectors: []\n };\n }\n if (typeof source === \"string\") {\n const [id, fragment] = source.split(\"#\");\n if (!fragment) {\n return {\n selector: null,\n selectors: []\n };\n }\n return parseSelector({ type: \"FragmentSelector\", value: fragment });\n }\n if (source.type === \"PointSelector\" && (source.t || source.t === 0)) {\n const selector = {\n type: \"TemporalSelector\",\n temporal: {\n startTime: source.t\n }\n };\n return {\n selector,\n selectors: [selector]\n };\n }\n if (source.type === \"FragmentSelector\") {\n const matchBoxSelector = BOX_SELECTOR.exec(source.value);\n if (matchBoxSelector) {\n const selector = {\n type: \"BoxSelector\",\n spatial: {\n unit: matchBoxSelector[2] === \"percent:\" || matchBoxSelector[2] === \"pct:\" ? \"percent\" : \"pixel\",\n x: parseFloat(matchBoxSelector[3]),\n y: parseFloat(matchBoxSelector[4]),\n width: parseFloat(matchBoxSelector[5]),\n height: parseFloat(matchBoxSelector[6])\n }\n };\n return {\n selector,\n selectors: [selector]\n };\n }\n const matchTimeSelector = source.value.match(TEMPORAL_SELECTOR);\n if (matchTimeSelector) {\n const selector = {\n type: \"TemporalSelector\",\n temporal: {\n startTime: matchTimeSelector[4] ? parseFloat(matchTimeSelector[4]) : 0,\n endTime: matchTimeSelector[7] ? parseFloat(matchTimeSelector[7]) : void 0\n }\n };\n return {\n selector,\n selectors: [selector]\n };\n }\n return {\n selector: null,\n selectors: []\n };\n }\n return {\n selector: null,\n selectors: []\n };\n}\nfunction expandTarget(target, options = {}) {\n if (Array.isArray(target)) {\n return expandTarget(target[0]);\n }\n if (typeof target === \"string\") {\n const [id, fragment] = target.split(\"#\");\n if (!fragment) {\n return {\n type: \"SpecificResource\",\n source: { id, type: options.typeMap && options.typeMap[id] || \"Unknown\" },\n selector: null,\n selectors: []\n };\n }\n return expandTarget({\n type: \"SpecificResource\",\n source: { id, type: \"Unknown\" },\n selector: {\n type: \"FragmentSelector\",\n value: fragment\n }\n });\n }\n if (target.type === \"Choice\" || target.type === \"List\" || target.type === \"Composite\" || target.type === \"Independents\") {\n return expandTarget(target.items[0]);\n }\n if (target.type === \"SpecificResource\") {\n if (target.source.type === \"Canvas\" && target.source.partOf && typeof target.source.partOf === \"string\") {\n target.source.partOf = [\n {\n id: target.source.partOf,\n type: \"Manifest\"\n }\n ];\n }\n const { selector, selectors } = target.selector ? parseSelector(target.selector) : { selector: null, selectors: [] };\n return {\n type: \"SpecificResource\",\n source: target.source,\n selector,\n selectors\n };\n }\n if (target.id) {\n if (target.type === \"Canvas\" && target.partOf && typeof target.partOf === \"string\") {\n target.partOf = [\n {\n id: target.partOf,\n type: \"Manifest\"\n }\n ];\n }\n const [id, fragment] = target.id.split(\"#\");\n if (!fragment) {\n return {\n type: \"SpecificResource\",\n source: __spreadProps(__spreadValues({}, target), {\n id\n }),\n selector: null,\n selectors: []\n };\n }\n return expandTarget({\n type: \"SpecificResource\",\n source: __spreadProps(__spreadValues({}, target), {\n id\n }),\n selector: {\n type: \"FragmentSelector\",\n value: fragment\n }\n });\n }\n return {\n type: \"SpecificResource\",\n source: target,\n selector: null,\n selectors: []\n };\n}\nexport { expandTarget, parseSelector };\n//# sourceMappingURL=annotation-targets.mjs.map\n","import { useResourceContext } from '../context/ResourceContext';\nimport { AnnotationNormalized } from '@iiif/presentation-3';\nimport { useMemo } from 'react';\nimport { useVaultSelector } from './useVaultSelector';\nimport { expandTarget } from '@iiif/vault-helpers/annotation-targets';\nimport { useVault } from './useVault';\n\nexport function useAnnotation(options?: { id: string }): AnnotationNormalized | undefined;\nexport function useAnnotation<T>(\n options?: { id: string; selector: (annotation: AnnotationNormalized) => T },\n deps?: any[]\n): T | undefined;\nexport function useAnnotation<T = AnnotationNormalized>(\n options: {\n id?: string;\n selector?: (annotation: AnnotationNormalized) => T;\n } = {},\n deps: any[] = []\n): AnnotationNormalized | T | undefined {\n const { id, selector } = options;\n const ctx = useResourceContext();\n const vault = useVault();\n const annotationId = id ? id : ctx.annotation;\n\n const annotation = useVaultSelector(\n (s) => (annotationId ? s.iiif.entities.Annotation[annotationId] : undefined),\n [annotationId]\n );\n\n const body = useVaultSelector(\n (s) =>\n annotation && annotation.body\n ? annotation.body\n .map((singleBody) => (singleBody ? s.iiif.entities[singleBody.type][singleBody.id] : null))\n .filter(Boolean)\n : [],\n [annotation]\n );\n\n return useMemo(() => {\n if (!annotation) {\n return undefined;\n }\n\n const newAnnotation: any = {\n ...annotation,\n body,\n target: expandTarget(annotation.target as any, { typeMap: vault.getState().iiif.mapping }),\n };\n\n if (selector) {\n return selector(newAnnotation);\n }\n return newAnnotation;\n }, [annotation, selector, body, ...deps]);\n}\n","import { useResourceContext } from '../context/ResourceContext';\nimport { CanvasNormalized } from '@iiif/presentation-3';\nimport { useMemo } from 'react';\nimport { useVaultSelector } from './useVaultSelector';\n\nexport function useCanvas(options?: { id: string }): CanvasNormalized | undefined;\nexport function useCanvas<T>(\n options?: { id: string; selector: (canvas: CanvasNormalized) => T },\n deps?: any[]\n): T | undefined;\nexport function useCanvas<T = CanvasNormalized>(\n options: {\n id?: string;\n selector?: (canvas: CanvasNormalized) => T;\n } = {},\n deps: any[] = []\n): CanvasNormalized | T | undefined {\n const { id, selector } = options;\n const ctx = useResourceContext();\n const canvasId = id ? id : ctx.canvas;\n\n const canvas = useVaultSelector((s) => (canvasId ? s.iiif.entities.Canvas[canvasId] : undefined), [canvasId]);\n\n return useMemo(() => {\n if (!canvas) {\n return undefined;\n }\n if (selector) {\n return selector(canvas);\n }\n return canvas;\n }, [canvas, selector, ...deps]);\n}\n","import { BoxStyle, mergeStyles, RegionHighlight } from '@atlas-viewer/atlas';\nimport { useResourceEvents } from '../../hooks/useResourceEvents';\nimport { useStyles } from '../../hooks/useStyles';\nimport React, { FC, useMemo } from 'react';\nimport { useAnnotation } from '../../hooks/useAnnotation';\nimport { useCanvas } from '../../hooks/useCanvas';\n\nexport const RenderAnnotation: FC<{ id: string; className?: string; style?: BoxStyle; interactive?: boolean }> = ({\n id,\n style: defaultStyle,\n className,\n interactive,\n}) => {\n const annotation = useAnnotation({ id });\n const style = useStyles<BoxStyle>(annotation, 'atlas');\n const html = useStyles<{ className?: string; href?: string; title?: string; target?: string }>(annotation, 'html');\n const events = useResourceEvents(annotation as any, ['atlas']);\n const canvas = useCanvas();\n\n const allStyles = useMemo(() => {\n return mergeStyles(defaultStyle, style);\n }, [defaultStyle, style]);\n\n const isValid =\n canvas &&\n annotation &&\n annotation.target &&\n (annotation.target as any).selector &&\n (annotation.target as any).selector.type === 'BoxSelector' &&\n (annotation.target as any).source &&\n (annotation.target as any).source.id === canvas.id;\n\n if (!isValid) {\n return null;\n }\n\n return (\n <RegionHighlight\n id={annotation.id}\n isEditing={true}\n region={(annotation.target as any).selector.spatial}\n style={allStyles}\n className={html?.className || className}\n interactive={!!(html?.href || interactive)}\n href={html?.href || null}\n title={html?.title || null}\n hrefTarget={html?.target || null}\n {...events}\n />\n );\n};\n","import { AnnotationPage, AnnotationPageNormalized } from '@iiif/presentation-3';\nimport { RenderAnnotation } from './Annotation';\nimport { BoxStyle } from '@atlas-viewer/atlas';\nimport { useStyles } from '../../hooks/useStyles';\nimport { useVaultSelector } from '../../hooks/useVaultSelector';\nimport React, { FC, Fragment } from 'react';\n\nexport const RenderAnnotationPage: FC<{ page: AnnotationPage | AnnotationPageNormalized; className?: string }> = ({\n className,\n page,\n}) => {\n const style = useStyles<BoxStyle>(page, 'atlas');\n const html = useStyles<{ className?: string }>(page, 'html');\n\n useVaultSelector((state) => (page.id ? state.iiif.entities.AnnotationPage[page.id] : null), []);\n\n return (\n <Fragment>\n {page.items?.map((annotation) => {\n return (\n <RenderAnnotation\n key={annotation.id}\n id={annotation.id}\n style={style}\n className={html?.className || className}\n />\n );\n })}\n </Fragment>\n );\n};\n","import { ImageCandidate } from '@atlas-viewer/iiif-image-api';\nimport React, { Fragment, ReactNode } from 'react';\nimport { TileSet } from '@atlas-viewer/atlas';\nimport { ImageWithOptionalService } from '../../features/rendering-strategy/resource-types';\n\nexport function RenderImage({\n id,\n image,\n thumbnail,\n isStatic,\n x = 0,\n y = 0,\n annotations,\n children,\n}: {\n id: string;\n image: ImageWithOptionalService;\n thumbnail?: ImageCandidate;\n isStatic?: boolean;\n x?: number;\n y?: number;\n annotations?: ReactNode;\n children?: ReactNode;\n}) {\n return (\n <Fragment key={id}>\n {!image.service ? (\n <Fragment key=\"no-service\">\n <world-image\n uri={image.id}\n target={image.target.spatial}\n display={\n image.width && image.height\n ? {\n width: image.width,\n height: image.height,\n }\n : undefined\n }\n />\n {annotations}\n {children}\n </Fragment>\n ) : (\n <Fragment key=\"service\">\n <TileSet\n tiles={{\n id: image.service.id || image.service['@id'] || 'unknown',\n height: image.height as number,\n width: image.width as number,\n imageService: image.service as any,\n thumbnail: thumbnail && thumbnail.type === 'fixed' ? thumbnail : undefined,\n }}\n x={image.target?.spatial.x + x}\n y={image.target?.spatial.y + y}\n width={image.target?.spatial.width}\n height={image.target?.spatial.height}\n />\n {annotations}\n {children}\n </Fragment>\n )}\n </Fragment>\n );\n}\n","import {AnnotationNormalized, ContentResource, IIIFExternalWebResource, SpecificResource,} from '@iiif/presentation-3';\nimport {Vault} from '@iiif/vault';\nimport {ChoiceDescription} from './choice-types';\nimport {UseRenderingStrategy} from '../../hooks/useRenderingStrategy';\n\n/**\n * Parse specific resource.\n *\n * This could be expanded to support pulling out more from the specific resource.\n *\n * @param resource\n */\nexport function parseSpecificResource(resource: ContentResource) {\n if (resource.type === 'SpecificResource') {\n return [resource.source, { selector: resource.selector }];\n }\n\n return [resource, { selector: null }];\n}\n\nexport interface Paintables {\n choice: ChoiceDescription | null;\n types: string[];\n items: Array<{\n type: string;\n resource: IIIFExternalWebResource | SpecificResource;\n target: any;\n selector: any;\n }>;\n}\n\nexport function getPaintables(\n vault: Vault,\n paintingAnnotations: AnnotationNormalized[],\n enabledChoices: string[]\n): Paintables {\n const types: string[] = [];\n let choice: Paintables['choice'] = null;\n const items: Paintables['items'] = [];\n\n for (const annotation of paintingAnnotations) {\n const bodies = vault.get<ContentResource>(annotation.body);\n for (const unknownBody of bodies) {\n const [body, { selector }] = parseSpecificResource(unknownBody);\n const type = (body.type || 'unknown').toLowerCase();\n\n // Choice\n if (type === 'choice') {\n const nestedBodies = vault.get<ContentResource>(body.items) as ContentResource[];\n\n // Which are active? By default the first, but we could push multiple here.\n const selected = enabledChoices.length\n ? enabledChoices.map((cid) => nestedBodies.find((b) => b.id === cid)).filter(Boolean)\n : [nestedBodies[0]];\n\n if (selected.length === 0) {\n selected.push(nestedBodies[0]);\n }\n\n // Store choice.\n choice = {\n type: 'single-choice',\n items: nestedBodies.map((b) => ({\n id: b.id,\n label: (b as any).label as any,\n selected: selected.indexOf(b) !== -1,\n })) as any[],\n label: (unknownBody as any).label,\n };\n\n // @todo insert in the right order.\n bodies.push(...(selected as any[]));\n\n continue;\n }\n\n if (types.indexOf(type) === -1) {\n types.push(type);\n }\n\n items.push({\n type: type,\n resource: body as IIIFExternalWebResource,\n target: annotation.target,\n selector,\n });\n }\n }\n\n return {\n types,\n items,\n choice,\n };\n}\n\nexport const emptyActions = {\n makeChoice: () => {\n // no-op\n },\n};\n\nexport const unknownResponse: UseRenderingStrategy[0] = { type: 'unknown' };\n\nexport const unsupportedStrategy = (reason: string): UseRenderingStrategy[0] => {\n return { type: 'unknown', reason, annotations: { pages: [] } };\n};\n\n","import { useResourceContext } from '../context/ResourceContext';\nimport { ManifestNormalized } from '@iiif/presentation-3';\nimport { useVault } from './useVault';\nimport { useMemo } from 'react';\nimport { useVaultSelector } from './useVaultSelector';\n\nexport function useManifest(options?: { id: string }): ManifestNormalized | undefined;\nexport function useManifest<T>(\n options?: { id: string; selector: (manifest: ManifestNormalized) => T },\n deps?: any[]\n): T | undefined;\nexport function useManifest<T = ManifestNormalized>(\n options: {\n id?: string;\n selector?: (manifest: ManifestNormalized) => T;\n } = {},\n deps: any[] = []\n): ManifestNormalized | T | undefined {\n const { id, selector } = options;\n const ctx = useResourceContext();\n const vault = useVault();\n const manifestId = id ? id : ctx.manifest;\n\n const manifest = useVaultSelector(\n (s) => (manifestId ? s.iiif.entities.Manifest[manifestId] : undefined),\n [manifestId]\n );\n\n return useMemo(() => {\n if (!manifest) {\n return undefined;\n }\n if (selector) {\n return selector(manifest);\n }\n return manifest;\n }, [manifest, selector, ...deps]);\n}\n","import { useVaultSelector } from './useVaultSelector';\nimport { IIIFStore } from '@iiif/vault';\n\nfunction getMeta(state: IIIFStore, resourceId: string) {\n const resourceMeta = state?.iiif?.meta[resourceId];\n if (!resourceMeta) {\n return null;\n }\n return resourceMeta.annotationPageManager as any;\n}\n\nexport function useEnabledAnnotationPageIds(resourceId?: string, availablePageIds?: string[]) {\n return useVaultSelector(\n (state) => {\n const pageIds: string[] = [];\n if (!resourceId) {\n return pageIds;\n }\n const allAnnotationListIds = Object.keys(state.iiif.entities.AnnotationPage);\n for (const annotationListId of allAnnotationListIds) {\n if (!availablePageIds || availablePageIds.indexOf(annotationListId) !== -1) {\n const annotationListMeta = getMeta(state, annotationListId);\n if (annotationListMeta && annotationListMeta.views && annotationListMeta.views[resourceId]) {\n pageIds.push(annotationListId);\n }\n }\n }\n\n return pageIds;\n },\n [resourceId, availablePageIds]\n );\n}\n","import { CanvasNormalized, ManifestNormalized } from '@iiif/presentation-3';\n\nexport function flattenAnnotationPageIds({\n canvas,\n manifest,\n all,\n canvases,\n}: {\n manifest?: ManifestNormalized;\n canvas?: CanvasNormalized;\n canvases?: CanvasNormalized[];\n all?: boolean;\n}) {\n const foundIds: string[] = [];\n\n if (manifest) {\n for (const page of manifest.annotations) {\n if (foundIds.indexOf(page.id) === -1) {\n foundIds.push(page.id);\n }\n }\n }\n\n if (all) {\n if (canvases && canvases.length) {\n for (const canvas_ of canvases) {\n for (const page of canvas_.annotations) {\n if (foundIds.indexOf(page.id) === -1) {\n foundIds.push(page.id);\n }\n }\n }\n }\n } else if (canvas) {\n for (const page of canvas.annotations) {\n if (foundIds.indexOf(page.id) === -1) {\n foundIds.push(page.id);\n }\n }\n }\n\n // Remove enabled page IDs for now.\n // for (const enabledPage of enabledPageIds) {\n // if (foundIds.indexOf(enabledPage) === -1) {\n // foundIds.push(enabledPage);\n // }\n // }\n\n return foundIds;\n}\n","import { useCallback, useMemo } from 'react';\nimport { useVault } from './useVault';\nimport { useManifest } from './useManifest';\nimport { useCanvas } from './useCanvas';\nimport { useVisibleCanvases } from '../context/VisibleCanvasContext';\nimport { useEnabledAnnotationPageIds } from './useEnabledAnnotationPageIds';\nimport { flattenAnnotationPageIds } from '../utility/flatten-annotation-page-ids';\nimport { IIIFStore } from '@iiif/vault';\n\ntype AnnotationPageResourceMap = {\n [id: string]: boolean;\n};\n\ntype AnnotationPageManager = {\n views: AnnotationPageResourceMap;\n};\n\nfunction getMeta(state: IIIFStore, resourceId: string) {\n const resourceMeta = state?.iiif?.meta[resourceId];\n if (!resourceMeta) {\n return null;\n }\n return resourceMeta.annotationPageManager as AnnotationPageManager;\n}\n\nexport function useAnnotationPageManager(resourceId?: string, options: { all?: boolean } = {}) {\n const vault = useVault();\n const manifest = useManifest();\n const canvas = useCanvas();\n const canvases = useVisibleCanvases();\n const availablePageIds = useMemo(() => {\n return flattenAnnotationPageIds({\n all: options.all,\n manifest,\n canvas,\n canvases,\n });\n }, [options.all, canvas, canvases, manifest]);\n const enabledPageIds = useEnabledAnnotationPageIds(resourceId, options.all ? undefined : availablePageIds);\n\n const setPageDisabled = useCallback(\n (deselectId: string) => {\n if (!resourceId) {\n return;\n }\n vault.setMetaValue<AnnotationPageResourceMap>(\n [deselectId, 'annotationPageManager', 'views'],\n (existingResources: AnnotationPageResourceMap | undefined) => {\n if (existingResources && !existingResources[resourceId]) {\n return existingResources;\n }\n\n return {\n ...(existingResources || {}),\n [resourceId]: false,\n };\n }\n );\n },\n [resourceId, vault]\n );\n\n const setPageEnabled = useCallback(\n (id: string, opt: { deselectOthers?: boolean } = {}) => {\n if (!resourceId) {\n return;\n }\n const state = vault.getState();\n const toDeselect = [];\n\n // Deselect these.\n if (opt?.deselectOthers) {\n const allAnnotationListIds = Object.keys(state.iiif.entities.AnnotationPage);\n for (const annotationPageId of allAnnotationListIds) {\n const annotationListMeta = getMeta(state, annotationPageId);\n if (annotationListMeta && annotationListMeta.views && annotationListMeta.views[resourceId]) {\n toDeselect.push(annotationPageId);\n }\n }\n }\n\n // Disable first.\n for (const deselectId of toDeselect) {\n setPageDisabled(deselectId);\n }\n\n // Then enable.\n vault.setMetaValue<AnnotationPageResourceMap>(\n [id, 'annotationPageManager', 'views'],\n (existingResources: AnnotationPageResourceMap | undefined) => {\n if (existingResources && existingResources[resourceId]) {\n return existingResources;\n }\n return {\n ...(existingResources || {}),\n [resourceId]: true,\n };\n }\n );\n },\n [resourceId, setPageDisabled, vault]\n );\n\n return {\n availablePageIds,\n enabledPageIds,\n setPageEnabled,\n setPageDisabled,\n };\n}\n","import { useVaultSelector } from './useVaultSelector';\n\nexport function useResources<Type>(ids: string[], type: string): Type[] {\n return useVaultSelector((state, vault) => vault.get<Type>(ids.map((id) => ({ id, type }))) as any, [ids, type]);\n}\n","import React, { useContext } from 'react';\nimport { ImageServiceLoader } from '@atlas-viewer/iiif-image-api';\n\nexport const ImageServiceLoaderContext = React.createContext<ImageServiceLoader>(new ImageServiceLoader());\n\nexport function useImageServiceLoader() {\n return useContext(ImageServiceLoaderContext);\n}\n","import { ImageService } from '@iiif/presentation-3';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { useImageServiceLoader } from '../context/ImageServiceLoaderContext';\n\nexport type ImageServiceLoaderType = (\n imageService: any | undefined,\n { height, width }: { height: number; width: number }\n) => ImageService | undefined;\n\nexport function useLoadImageService() {\n const loader = useImageServiceLoader();\n const [imageServiceStatus, setImageServiceStatus] = useState<Record<string, string>>({});\n const didUnmount = useRef(false);\n useEffect(() => {\n return () => {\n didUnmount.current = true;\n };\n }, []);\n const loadImageService = useCallback<ImageServiceLoaderType>(\n (imageService, { height, width }) => {\n if (imageService) {\n const imageServiceId = imageService.id || (imageService['@id'] as string);\n // We want to kick this off.\n const syncLoaded = loader.loadServiceSync({\n id: imageServiceId,\n width: imageService.width || width,\n height: imageService.height || height,\n source: imageService,\n });\n\n if (syncLoaded) {\n imageService = syncLoaded;\n } else if (!imageServiceStatus[imageServiceId]) {\n if (!didUnmount.current) {\n setImageServiceStatus((r) => {\n return {\n ...r,\n [imageServiceId]: 'loading',\n };\n });\n }\n loader\n .loadService({\n id: imageServiceId,\n width: imageService.width || width,\n height: imageService.height || height,\n })\n .then(() => {\n if (!didUnmount.current) {\n setImageServiceStatus((r) => {\n return {\n ...r,\n [imageServiceId]: 'done',\n };\n });\n }\n });\n }\n }\n return imageService;\n },\n [loader, imageServiceStatus]\n );\n\n return [loadImageService, imageServiceStatus] as const;\n}\n","// This is valid under a canvas context.\nimport { AnnotationNormalized, AnnotationPageNormalized } from '@iiif/presentation-3';\nimport { useCanvas } from './useCanvas';\nimport { useVaultSelector } from './useVaultSelector';\n\nexport function usePaintingAnnotations(options: { canvasId?: string } = {}): AnnotationNormalized[] {\n const canvas = useCanvas(options.canvasId ? { id: options.canvasId } : undefined);\n\n return useVaultSelector(\n (state, vault) => {\n if (!canvas) {\n return [];\n }\n const annotationPages = vault.get<AnnotationPageNormalized>(canvas.items);\n const flatAnnotations: AnnotationNormalized[] = [];\n for (const page of annotationPages) {\n flatAnnotations.push(...vault.get<AnnotationNormalized>(page.items));\n }\n return flatAnnotations;\n },\n [canvas]\n );\n}\n","import { useCallback, useMemo, useState } from 'react';\nimport { getPaintables } from '../features/rendering-strategy/rendering-utils';\nimport { useVault } from './useVault';\nimport { usePaintingAnnotations } from './usePaintingAnnotations';\n\nexport function usePaintables(options?: { defaultChoices?: string[] }, deps: any[] = []) {\n const vault = useVault();\n const paintingAnnotations = usePaintingAnnotations();\n const [enabledChoices, setEnabledChoices] = useState<string[]>(options?.defaultChoices || []);\n\n const paintables = useMemo(\n () => getPaintables(vault, paintingAnnotations, enabledChoices),\n [vault, paintingAnnotations, enabledChoices, ...deps]\n );\n\n const makeChoice = useCallback(\n (\n id: string,\n { deselectOthers = true, deselect = false }: { deselectOthers?: boolean; deselect?: boolean } = {}\n ) => {\n if (paintables.choice) {\n // Don't support multiple choice yet.\n if (paintables.choice.type !== 'single-choice') {\n throw new Error('Complex choice not supported yet');\n }\n\n setEnabledChoices((prevChoices) => {\n if (deselect) {\n const without = prevChoices.filter((e) => e !== id);\n\n if (without.length === 0) {\n const defaultId = paintables.items[0].resource.id;\n if (defaultId) {\n return [defaultId];\n } else {\n return [];\n }\n }\n\n return without;\n }\n\n if (deselectOthers) {\n return [id];\n }\n\n const newChoices = [...prevChoices];\n\n // Add the default ID.\n if (newChoices.length === 0 && paintables.items.length) {\n const defaultId = paintables.items[0].resource.id;\n if (defaultId) {\n newChoices.push(defaultId);\n }\n }\n\n if (prevChoices.indexOf(id) !== -1) {\n return prevChoices;\n }\n\n return [...prevChoices, id];\n });\n }\n },\n [paintables.choice]\n );\n\n const actions = { makeChoice };\n\n return [paintables, actions] as const;\n}\n","import { CanvasNormalized, IIIFExternalWebResource } from '@iiif/presentation-3';\nimport { ImageServiceLoaderType } from '../../hooks/useLoadImageService';\nimport { AnnotationPageDescription, ImageWithOptionalService } from './resource-types';\nimport { getImageServices } from '@atlas-viewer/iiif-image-api';\nimport { Paintables, unsupportedStrategy } from './rendering-utils';\nimport { ChoiceDescription } from './choice-types';\nimport { expandTarget, BoxSelector, SupportedSelectors } from '@iiif/vault-helpers/annotation-targets';\n\nexport type SingleImageStrategy = {\n type: 'images';\n image: ImageWithOptionalService;\n images: Array<ImageWithOptionalService>;\n choice?: ChoiceDescription;\n annotations?: AnnotationPageDescription;\n};\n\nexport function getImageStrategy(\n canvas: CanvasNormalized,\n paintables: Paintables,\n loadImageService: ImageServiceLoaderType\n) {\n const imageTypes: ImageWithOptionalService[] = [];\n for (const singleImage of paintables.items) {\n // SingleImageStrategy\n const resource: IIIFExternalWebResource =\n singleImage.resource && singleImage.resource.type === 'SpecificResource'\n ? singleImage.resource.source\n : singleImage.resource;\n\n // Validation.\n if (!resource.id) {\n // @todo we could skip this?\n return unsupportedStrategy('No resource Identifier');\n }\n\n let imageService = undefined;\n if (resource.service) {\n const imageServices = getImageServices(resource as any) as any[];\n if (imageServices[0]) {\n imageService = loadImageService(imageServices[0], canvas);\n }\n }\n\n const { selector: imageTarget, source } = expandTarget(singleImage.target);\n\n if (source.id !== canvas.id) {\n // Skip invalid targets.\n continue;\n }\n\n // Target is where it should be painted.\n const defaultTarget: BoxSelector = {\n type: 'BoxSelector',\n spatial: {\n x: 0,\n y: 0,\n width: canvas.width,\n height: canvas.height,\n },\n };\n\n const target: SupportedSelectors | null = imageTarget\n ? imageTarget.type === 'TemporalSelector'\n ? {\n type: 'TemporalBoxSelector',\n temporal: imageTarget.temporal,\n spatial: defaultTarget.spatial,\n }\n : imageTarget\n : null;\n\n // Support for cropping before painting an annotation.\n const defaultImageSelector = {\n type: 'BoxSelector',\n spatial: {\n x: 0,\n y: 0,\n width: canvas.width,\n height: canvas.height,\n },\n } as BoxSelector;\n const imageSelector = singleImage.resource.type === 'SpecificResource' ? expandTarget(singleImage.resource) : null;\n const selector: BoxSelector =\n imageSelector &&\n imageSelector.selector &&\n (imageSelector.selector.type === 'BoxSelector' || imageSelector.selector.type === 'TemporalBoxSelector')\n ? {\n type: 'BoxSelector',\n spatial: {\n x: imageSelector.selector.spatial.x,\n y: imageSelector.selector.spatial.y,\n width: imageSelector.selector.spatial.width,\n height: imageSelector.selector.spatial.height,\n },\n }\n : defaultImageSelector;\n\n if (imageService && !imageService.id) {\n (imageService as any).id = imageService['@id'];\n }\n\n const imageType: ImageWithOptionalService = {\n id: resource.id,\n type: 'Image',\n width: target ? resource.width : canvas.width,\n height: target ? resource.height : canvas.height,\n service: imageService,\n sizes:\n imageService && imageService.sizes\n ? imageService.sizes\n : resource.width && resource.height\n ? [{ width: resource.width, height: resource.height }]\n : [],\n target: target && target.type !== 'PointSelector' ? target : defaultTarget,\n selector,\n };\n\n imageTypes.push(imageType);\n }\n\n return {\n type: 'images',\n image: imageTypes[0],\n images: imageTypes,\n choice: paintables.choice,\n } as SingleImageStrategy;\n}\n","import { CanvasNormalized } from '@iiif/presentation-3';\nimport { Paintables, unsupportedStrategy } from './rendering-utils';\nimport { AnnotationPageDescription } from './resource-types';\nimport { ChoiceDescription } from './choice-types';\nimport { ExternalWebResource } from '@iiif/presentation-3/resources/annotation';\nimport { RenderingStrategy } from './strategies';\n\nexport type Single3DModelStrategy = {\n type: '3d-model';\n model: ExternalWebResource;\n choice?: ChoiceDescription; // future\n annotations?: AnnotationPageDescription; // future\n};\n\nconst supportedFormats = ['model/gltf-binary'];\n\nexport function get3dStrategy(canvas: CanvasNormalized, paintables: Paintables): RenderingStrategy {\n const first = paintables.items[0];\n const resource = first.resource as ExternalWebResource;\n\n if (!resource.format) {\n return unsupportedStrategy('Unknown format');\n }\n\n if (supportedFormats.indexOf(resource.format) === -1) {\n return unsupportedStrategy(`3D format: ${resource.format} is unsupported`);\n }\n\n return {\n type: '3d-model',\n model: resource as any,\n } as Single3DModelStrategy;\n}\n","import { CanvasNormalized } from '@iiif/presentation-3';\nimport { Paintables, unsupportedStrategy } from './rendering-utils';\nimport { MediaStrategy } from './strategies';\n\nexport function getAudioStrategy(canvas: CanvasNormalized, paintables: Paintables) {\n if (!canvas.duration) {\n return unsupportedStrategy('No duration on canvas');\n }\n\n if (paintables.items.length > 1) {\n return unsupportedStrategy('Only one audio source supported');\n }\n\n const audioResource = paintables.items[0]?.resource as any; // @todo stronger type for what this might be.\n\n if (!audioResource) {\n return unsupportedStrategy('Unknown audio');\n }\n\n if (!audioResource.format) {\n return unsupportedStrategy('Audio does not have format');\n }\n\n return {\n type: 'media',\n media: {\n duration: canvas.duration,\n url: audioResource.id,\n type: 'Sound',\n target: {\n type: 'TemporalSelector',\n temporal: {\n startTime: 0,\n endTime: canvas.duration,\n },\n },\n format: audioResource.format,\n selector: {\n type: 'TemporalSelector',\n temporal: {\n startTime: 0,\n endTime: canvas.duration,\n },\n },\n },\n annotations: {\n pages: [],\n },\n } as MediaStrategy;\n}\n","import { CanvasNormalized } from '@iiif/presentation-3';\nimport { Paintables, unsupportedStrategy } from './rendering-utils';\nimport { MediaStrategy } from './strategies';\nimport { SingleVideo } from './resource-types';\n\nexport function getVideoStrategy(canvas: CanvasNormalized, paintables: Paintables) {\n const videoPaintables = paintables.items.filter((t) => t.type === 'video');\n\n if (!canvas.duration) {\n return unsupportedStrategy('No duration on canvas');\n }\n\n if (videoPaintables.length > 1) {\n return unsupportedStrategy('Only one video source supported');\n }\n\n const audioResource = videoPaintables[0]?.resource as any; // @todo stronger type for what this might be.\n\n if (!audioResource) {\n return unsupportedStrategy('Unknown video');\n }\n\n if (!audioResource.format) {\n return unsupportedStrategy('Video does not have format');\n }\n\n // @todo support VTT\n\n return {\n type: 'media',\n media: {\n duration: canvas.duration,\n url: audioResource.id,\n type: 'Video',\n items: [],\n target: {\n type: 'TemporalSelector',\n temporal: {\n startTime: 0,\n endTime: canvas.duration,\n },\n },\n format: audioResource.format,\n selector: {\n type: 'TemporalSelector',\n temporal: {\n startTime: 0,\n endTime: canvas.duration,\n },\n },\n },\n annotations: {\n pages: [],\n },\n } as MediaStrategy;\n}\n","import { AnnotationPageNormalized } from '@iiif/presentation-3';\nimport { useCanvas } from './useCanvas';\nimport { useMemo } from 'react';\nimport { useVault } from './useVault';\nimport { RenderingStrategy } from '../features/rendering-strategy/strategies';\nimport { emptyActions, unknownResponse, unsupportedStrategy } from '../features/rendering-strategy/rendering-utils';\nimport { useAnnotationPageManager } from './useAnnotationPageManager';\nimport { useManifest } from './useManifest';\nimport { useResources } from './useResources';\nimport { useLoadImageService } from './useLoadImageService';\nimport { usePaintables } from './usePaintables';\nimport { getImageStrategy } from '../features/rendering-strategy/image-strategy';\nimport { get3dStrategy } from '../features/rendering-strategy/3d-strategy';\nimport { getAudioStrategy } from '../features/rendering-strategy/audio-strategy';\nimport { getVideoStrategy } from '../features/rendering-strategy/video-strategy';\n\n// @todo we may not have any actions returned from the rendering strategy.\nexport type StrategyActions = {\n makeChoice: (id: string, options?: { deselectOthers?: boolean; deselect?: boolean }) => void;\n};\n\nexport type UseRenderingStrategy = [RenderingStrategy, StrategyActions];\n\nexport type UseRenderingStrategyOptions = {\n strategies?: Array<RenderingStrategy['type']>;\n annotationPageManagerId?: string;\n defaultChoices?: string[];\n};\n\nexport function useRenderingStrategy(options?: UseRenderingStrategyOptions): UseRenderingStrategy {\n const manifest = useManifest();\n const canvas = useCanvas();\n const vault = useVault();\n const [loadImageService, imageServiceStatus] = useLoadImageService();\n const { enabledPageIds } = useAnnotationPageManager(options?.annotationPageManagerId || manifest?.id || canvas?.id, {\n all: false,\n });\n const enabledPages = useResources<AnnotationPageNormalized>(enabledPageIds, 'AnnotationPage');\n\n const supports: RenderingStrategy['type'][] = options?.strategies || ['images', 'media', 'complex-timeline'];\n\n const [paintables, actions] = usePaintables(options, [imageServiceStatus]);\n\n const strategy = useMemo(() => {\n if (!canvas || paintables.types.length === 0) {\n return unknownResponse;\n }\n\n if (paintables.types.length !== 1) {\n if (paintables.types.length === 2 && paintables.types.indexOf('text') !== -1) {\n paintables.types = paintables.types.filter((t) => t !== 'text');\n } else {\n if (supports.indexOf('complex-timeline') === -1) {\n return unsupportedStrategy('Complex timeline not supported');\n }\n return unsupportedStrategy('ComplexTimelineStrategy not yet supported');\n }\n }\n\n const mainType = paintables.types[0];\n\n // Image\n if (mainType === 'image') {\n if (supports.indexOf('images') === -1) {\n return unsupportedStrategy('Image not supported');\n }\n\n return getImageStrategy(canvas, paintables, loadImageService);\n }\n\n // 3D\n if (mainType === 'Model' || mainType === 'model') {\n if (supports.indexOf('3d-model') === -1) {\n return unsupportedStrategy('3D not supported');\n }\n\n return get3dStrategy(canvas, paintables);\n }\n\n\n if (mainType === 'sound' || mainType === 'audio') {\n if (supports.indexOf('media') === -1) {\n return unsupportedStrategy('Media not supported');\n }\n\n // Media Strategy with audio or audio sequence.\n return getAudioStrategy(canvas, paintables);\n }\n\n if (mainType === 'video') {\n if (supports.indexOf('media') === -1) {\n return unsupportedStrategy('Media not supported');\n }\n\n // Media Strategy with video or video sequence.\n return getVideoStrategy(canvas, paintables);\n }\n\n // Unknown fallback.\n return unknownResponse;\n }, [canvas, paintables, vault, actions.makeChoice]);\n\n return useMemo(() => {\n if (strategy.type === 'unknown') {\n return [strategy, emptyActions];\n }\n\n return [\n {\n ...strategy,\n annotations: { pages: enabledPages },\n },\n actions,\n ];\n }, [strategy, enabledPages]);\n}\n","import { Vault } from '@iiif/vault';\nimport { useVault } from './useVault';\nimport { useEffect } from 'react';\n\nexport const useVaultEffect = (callback: (vault: Vault) => void, deps: any[] = []): void => {\n const vault = useVault();\n\n useEffect(() => {\n callback(vault);\n }, [vault, ...deps]);\n};\n","import { ImageServiceLoader, getFixedSizeFromImage } from \"@atlas-viewer/iiif-image-api\";\nfunction createThumbnailHelper(vault, dependencies = {}) {\n const imageServiceLoader = dependencies.imageServiceLoader || new ImageServiceLoader();\n async function getBestThumbnailAtSize(input, request, dereference, candidates = [], dimensions) {\n if (typeof input === \"string\") {\n return { best: getFixedSizeFromImage(input), fallback: [], log: [] };\n }\n const fullInput = vault.get(input);\n if (typeof fullInput === \"string\") {\n return { best: getFixedSizeFromImage(fullInput), fallback: [], log: [] };\n }\n switch (fullInput.type) {\n case \"Annotation\": {\n const contentResources = fullInput.body;\n const firstContentResources = vault.get(contentResources[0]);\n if (dimensions && !firstContentResources.width) {\n firstContentResources.width = dimensions.width;\n firstContentResources.height = dimensions.height;\n }\n return await imageServiceLoader.getThumbnailFromResource(firstContentResources, request, dereference, candidates);\n }\n case \"Canvas\": {\n const canvas = fullInput;\n if (canvas.thumbnail && canvas.thumbnail.length) {\n const thumbnail = vault.get(canvas.thumbnail[0]);\n const potentialThumbnails = await imageServiceLoader.getImageCandidates(thumbnail, dereference);\n if (potentialThumbnails && potentialThumbnails.length) {\n candidates.push(...potentialThumbnails);\n }\n }\n return getBestThumbnailAtSize(canvas.items[0], request, dereference, candidates, {\n width: canvas.width,\n height: canvas.height\n });\n }\n case \"AnnotationPage\": {\n const annotationPage = fullInput;\n return getBestThumbnailAtSize(annotationPage.items[0], request, dereference, candidates, dimensions);\n }\n case \"Choice\": {\n const choice = fullInput;\n return getBestThumbnailAtSize(choice.items[0], request, dereference, candidates, dimensions);\n }\n case \"Collection\": {\n const collection = fullInput;\n const firstManifest = collection.items[0];\n return getBestThumbnailAtSize(firstManifest, request, dereference, candidates, dimensions);\n }\n case \"Manifest\": {\n const manifest = fullInput;\n const firstCanvas = manifest.items[0];\n return getBestThumbnailAtSize(firstCanvas, request, dereference, candidates, dimensions);\n }\n case \"SpecificResource\":\n case \"Image\":\n case \"Dataset\":\n case \"Sound\":\n case \"Text\":\n case \"TextualBody\":\n case \"Video\":\n if (dimensions && !fullInput.width) {\n fullInput.width = dimensions.width;\n fullInput.height = dimensions.height;\n }\n return imageServiceLoader.getThumbnailFromResource(fullInput, request, dereference, candidates);\n case \"Service\":\n case \"Range\":\n case \"AnnotationCollection\":\n case \"CanvasReference\":\n case \"ContentResource\":\n return { best: void 0, fallback: [], log: [] };\n }\n return { best: void 0, fallback: [], log: [] };\n }\n return {\n getBestThumbnailAtSize\n };\n}\nexport { createThumbnailHelper };\n//# sourceMappingURL=thumbnail.mjs.map\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport { useManifest } from './useManifest';\nimport { useCanvas } from './useCanvas';\nimport { useVaultEffect } from './useVaultEffect';\nimport { ImageCandidate, ImageCandidateRequest } from '@atlas-viewer/iiif-image-api';\nimport { useImageServiceLoader } from '../context/ImageServiceLoaderContext';\nimport { createThumbnailHelper } from '@iiif/vault-helpers/thumbnail';\nimport { useVault } from './useVault';\n\nexport function useThumbnail(\n request: ImageCandidateRequest,\n dereference?: boolean,\n { canvasId, manifestId }: { canvasId?: string; manifestId?: string } = {}\n) {\n const vault = useVault();\n const loader = useImageServiceLoader();\n const helper = useMemo(() => createThumbnailHelper(vault, { imageServiceLoader: loader }), [vault, loader]);\n\n const [thumbnail, setThumbnail] = useState<ImageCandidate | undefined>();\n const manifest = useManifest(manifestId ? { id: manifestId } : undefined);\n const canvas = useCanvas(canvasId ? { id: canvasId } : undefined);\n const subject = canvas ? canvas : manifest;\n const didUnmount = useRef(false);\n\n useEffect(() => {\n return () => {\n didUnmount.current = true;\n };\n }, []);\n\n if (!subject) {\n throw new Error('Must be called under a manifest or canvas context.');\n }\n\n useVaultEffect(\n (v) => {\n helper.getBestThumbnailAtSize(subject, request, dereference).then((thumb) => {\n if (thumb.best && !didUnmount.current) {\n setThumbnail(thumb.best);\n }\n });\n },\n [subject]\n );\n\n return thumbnail;\n}\n","import { RefObject, useCallback, useEffect, useReducer, useRef } from 'react';\n\ntype MediaPlayerAction =\n | { type: 'PLAY_PAUSE' }\n | { type: 'TOGGLE_MUTE' }\n | { type: 'MUTE' }\n | { type: 'UNMUTE' }\n | { type: 'SET_VOLUME'; volume: number }\n | { type: 'PLAY' }\n | { type: 'PLAY_REQUESTED' }\n | { type: 'PAUSE' }\n | { type: 'FINISHED' };\n\nexport type MediaPlayerState = {\n isPlaying: boolean;\n isMuted: boolean;\n playRequested: boolean;\n volume: number;\n isFinished: boolean;\n duration: number;\n};\n\nexport type MediaPlayerActions = {\n play(): void;\n pause(): void;\n playPause(): void;\n mute(): void;\n unmute(): void;\n toggleMute(): void;\n setVolume(volume: number): void;\n setDurationPercent(percent: number): void;\n setTime(time: number): void;\n};\n\nfunction getDefaultState(duration: number): MediaPlayerState {\n return { isMuted: false, playRequested: false, isPlaying: false, isFinished: false, volume: 100, duration };\n}\n\nfunction reducer(state: MediaPlayerState, action: MediaPlayerAction) {\n switch (action.type) {\n case 'FINISHED':\n return { ...state, isFinished: true, isPlaying: false, playRequested: false };\n case 'PLAY_PAUSE':\n return { ...state, isFinished: false, isPlaying: !state.isPlaying };\n case 'PLAY_REQUESTED':\n return { ...state, isFinished: false, playRequested: true };\n case 'PAUSE':\n return { ...state, isPlaying: false };\n case 'PLAY':\n return { ...state, isFinished: false, playRequested: false, isPlaying: true };\n case 'MUTE':\n return { ...state, isMuted: true };\n case 'SET_VOLUME':\n return { ...state, volume: action.volume, isMuted: action.volume === 0 };\n case 'TOGGLE_MUTE':\n return { ...state, isMuted: !state.isMuted };\n case 'UNMUTE':\n return { ...state, isMuted: false };\n }\n return state;\n}\n\nexport function formatTime(time: number) {\n const seconds = Math.round(time);\n return `${Math.floor(seconds / 60)}:${`${seconds % 60}`.padStart(2, '0')}`;\n}\n\nexport function useSimpleMediaPlayer(props: { duration: number }): readonly [\n {\n element: RefObject<HTMLAudioElement | HTMLVideoElement>;\n currentTime: RefObject<HTMLDivElement>;\n progress: RefObject<HTMLDivElement>;\n },\n MediaPlayerState,\n MediaPlayerActions\n] {\n const [state, dispatch] = useReducer(reducer, getDefaultState(props.duration));\n\n const media = useRef<HTMLAudioElement | HTMLVideoElement>(null);\n const currentTime = useRef<HTMLDivElement>(null);\n const progress = useRef<HTMLDivElement>(null);\n const _isMuted = useRef(false);\n\n const _updateCurrentTime = useCallback(() => {\n if (currentTime.current && media.current) {\n currentTime.current.innerHTML = formatTime(media.current.currentTime);\n if (progress.current) {\n progress.current.style.width = `${(media.current.currentTime / props.duration) * 100}%`;\n }\n if (_isMuted.current !== media.current.muted) {\n _isMuted.current = media.current.muted;\n dispatch(media.current.muted ? { type: 'MUTE' } : { type: 'UNMUTE' });\n }\n }\n }, [props.duration]);\n\n const play = useCallback(() => {\n if (media.current) {\n dispatch({ type: 'PLAY_REQUESTED' });\n media.current.play().then(() => {\n dispatch({ type: 'PLAY' });\n });\n _updateCurrentTime();\n }\n }, [_updateCurrentTime]);\n\n const playPause = useCallback(() => {\n if (media.current) {\n if (media.current.duration > 0 && media.current.paused) {\n play();\n } else {\n pause();\n }\n }\n }, [_updateCurrentTime]);\n\n const pause = useCallback(() => {\n if (media.current) {\n media.current.pause();\n dispatch({ type: 'PAUSE' });\n _updateCurrentTime();\n }\n }, [_updateCurrentTime]);\n\n const toggleMute = useCallback(() => {\n if (media.current) {\n media.current.muted = !media.current.muted;\n dispatch(media.current.muted ? { type: 'MUTE' } : { type: 'UNMUTE' });\n }\n }, []);\n\n const mute = useCallback(() => {\n if (media.current) {\n media.current.muted = true;\n dispatch({ type: 'MUTE' });\n }\n }, []);\n\n const unmute = useCallback(() => {\n if (media.current) {\n media.current.muted = false;\n dispatch({ type: 'UNMUTE' });\n }\n }, []);\n\n const setVolume = useCallback((newVolume: number) => {\n if (media.current) {\n media.current.muted = false;\n media.current.volume = newVolume / 100;\n dispatch({ type: 'SET_VOLUME', volume: newVolume });\n }\n }, []);\n\n const setDurationPercent = useCallback((percent: number) => {\n if (media.current) {\n media.current.currentTime = Math.max(0, Math.min(percent * props.duration, props.duration));\n _updateCurrentTime();\n }\n }, []);\n\n const setTime = useCallback((time: number) => {\n if (media.current) {\n media.current.currentTime = Math.max(0, Math.min(time, props.duration));\n _updateCurrentTime();\n }\n }, []);\n\n useEffect(() => {\n const interval = setInterval(() => {\n _updateCurrentTime();\n }, 350);\n\n return () => clearInterval(interval);\n }, [_updateCurrentTime, props.duration]);\n\n useEffect(() => {\n const ended = () => {\n dispatch({ type: 'FINISHED' });\n };\n const _media = media.current;\n\n _media?.addEventListener('ended', ended);\n\n return () => _media?.removeEventListener('ended', ended);\n }, []);\n\n return [\n { element: media, currentTime, progress },\n state,\n {\n play,\n pause,\n playPause,\n mute,\n unmute,\n toggleMute,\n setVolume,\n setDurationPercent,\n setTime,\n },\n ];\n}\n","import { createContext, ReactNode, RefObject, useContext } from 'react';\nimport { MediaPlayerActions, MediaPlayerState } from '../hooks/useSimpleMediaPlayer';\n\nconst MediaReactContextState = createContext<MediaPlayerState | null>(null);\nconst MediaReactContextActions = createContext<MediaPlayerActions | null>(null);\nconst MediaReactContextElements = createContext<{\n element: RefObject<HTMLAudioElement | HTMLVideoElement>;\n currentTime: RefObject<HTMLDivElement>;\n progress: RefObject<HTMLDivElement>;\n} | null>(null);\n\nexport function useMediaState() {\n const ctx = useContext(MediaReactContextState);\n if (!ctx) {\n throw new Error('Ctx not found');\n }\n return ctx;\n}\n\nexport function useMediaActions() {\n const ctx = useContext(MediaReactContextActions);\n if (!ctx) {\n throw new Error('Ctx not found');\n }\n return ctx;\n}\n\nexport function useMediaElements() {\n const ctx = useContext(MediaReactContextElements);\n if (!ctx) {\n throw new Error('Ctx not found');\n }\n return ctx;\n}\n\nexport function MediaPlayerProvider({\n actions,\n state,\n children,\n currentTime,\n progress,\n element,\n}: {\n actions: MediaPlayerActions;\n state: MediaPlayerState;\n children: ReactNode;\n currentTime: RefObject<HTMLDivElement>;\n progress: RefObject<HTMLDivElement>;\n element: RefObject<HTMLAudioElement | HTMLVideoElement>;\n}) {\n return (\n <MediaReactContextElements.Provider value={{ currentTime, progress, element }}>\n <MediaReactContextActions.Provider value={actions}>\n <MediaReactContextState.Provider value={state}>{children}</MediaReactContextState.Provider>\n </MediaReactContextActions.Provider>\n </MediaReactContextElements.Provider>\n );\n}\n","import { ReactNode } from 'react';\nimport { useSimpleMediaPlayer } from '../../hooks/useSimpleMediaPlayer';\nimport { SingleAudio } from '../../features/rendering-strategy/resource-types';\nimport { MediaPlayerProvider } from '../../context/MediaContext';\nimport { CanvasPortal } from '../../context/PortalContext';\n\nexport function Audio({ media, children }: { media: SingleAudio; children: ReactNode }) {\n const [{ element, currentTime, progress }, state, actions] = useSimpleMediaPlayer({ duration: media.duration });\n\n return (\n <>\n <CanvasPortal>\n <MediaPlayerProvider\n state={state}\n actions={actions}\n currentTime={currentTime}\n progress={progress}\n element={element}\n >\n <audio ref={element} src={media.url} />\n {children}\n </MediaPlayerProvider>\n </CanvasPortal>\n </>\n );\n}\n","import { ReactNode } from 'react';\nimport { useSimpleMediaPlayer } from '../../hooks/useSimpleMediaPlayer';\nimport { SingleAudio, SingleVideo } from '../../features/rendering-strategy/resource-types';\nimport { MediaPlayerProvider } from '../../context/MediaContext';\nimport { CanvasPortal } from '../../context/PortalContext';\n\nexport function Video({ media, children }: { media: SingleVideo; children: ReactNode }) {\n const [{ element, currentTime, progress }, state, actions] = useSimpleMediaPlayer({ duration: media.duration });\n const Component = 'div' as any;\n\n return (\n <>\n <CanvasPortal overlay>\n <style>\n {`\n .video-container {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background: #000;\n z-index: 13;\n display: flex;\n justify-content: center;\n pointer-events: visible;\n }\n `}\n </style>\n <Component className=\"video-container\" part=\"video-container\" onClick={() => actions.playPause()}>\n <video ref={element as any} src={media.url} style={{ width: '100%', objectFit: 'contain' }} />\n </Component>\n </CanvasPortal>\n <CanvasPortal>\n <MediaPlayerProvider\n state={state}\n actions={actions}\n currentTime={currentTime}\n progress={progress}\n element={element}\n >\n {children}\n </MediaPlayerProvider>\n </CanvasPortal>\n </>\n );\n}\n","// @ts-ignore\nimport ModelViewer from 'react-model-viewer';\nimport { CanvasPortal } from '../../context/PortalContext';\n\nexport function Model({ model }: { model: any }) {\n return (\n <CanvasPortal overlay>\n <style>\n {`\n .model-container {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background: #000;\n z-index: 13;\n display: flex;\n justify-content: center;\n pointer-events: visible;\n }\n `}\n </style>\n <div className=\"model-container\">\n {/*@ts-ignore*/}\n <model-viewer\n interaction-prompt=\"none\"\n style={{ width: '100%', height: '100%' }}\n camera-controls=\"\"\n ar-status=\"not-presenting\"\n src={model.id}\n />\n </div>\n </CanvasPortal>\n );\n}\n","import { createStylesHelper } from '@iiif/vault-helpers/styles';\nimport { RenderImage } from './Image';\nimport React, { Fragment, ReactNode, useEffect, useLayoutEffect, useMemo } from 'react';\nimport { useVirtualAnnotationPageContext } from '../../hooks/useVirtualAnnotationPageContext';\nimport { ChoiceDescription } from '../../features/rendering-strategy/choice-types';\nimport { StrategyActions, useRenderingStrategy } from '../../hooks/useRenderingStrategy';\nimport { useVault } from '../../hooks/useVault';\nimport { useResourceEvents } from '../../hooks/useResourceEvents';\nimport { useThumbnail } from '../../hooks/useThumbnail';\nimport { useCanvas } from '../../hooks/useCanvas';\nimport { RenderAnnotationPage } from './AnnotationPage';\nimport { Audio } from './Audio';\nimport { MediaStrategy, RenderingStrategy } from '../../features/rendering-strategy/strategies';\nimport { Video } from './Video';\nimport { Model } from './Model';\nimport { CanvasContext } from '../../context/CanvasContext';\nimport { SingleImageStrategy } from '../../features/rendering-strategy/image-strategy';\nimport { CanvasPortal } from '../../context/PortalContext';\n\ntype CanvasProps = {\n x?: number;\n y?: number;\n onCreated?: any;\n onChoiceChange?: (choice?: ChoiceDescription) => void;\n registerActions?: (actions: StrategyActions) => void;\n defaultChoices?: Array<{ id: string; opacity?: number }>;\n isStatic?: boolean;\n children?: ReactNode;\n renderViewerControls?: (strategy: SingleImageStrategy) => ReactNode;\n renderMediaControls?: (strategy: MediaStrategy) => ReactNode;\n strategies?: Array<RenderingStrategy['type']>;\n};\n\nexport function RenderCanvas({\n x,\n y,\n onChoiceChange,\n registerActions,\n defaultChoices,\n isStatic,\n renderViewerControls,\n renderMediaControls,\n strategies,\n children,\n}: CanvasProps) {\n const canvas = useCanvas();\n const elementProps = useResourceEvents(canvas, ['deep-zoom']);\n const [virtualPage] = useVirtualAnnotationPageContext();\n const vault = useVault();\n const helper = useMemo(() => createStylesHelper(vault), [vault]);\n const [strategy, actions] = useRenderingStrategy({\n strategies: strategies || ['images'],\n defaultChoices: defaultChoices?.map(({ id }) => id),\n });\n const choice = strategy.type === 'images' ? strategy.choice : undefined;\n\n useEffect(() => {\n if (registerActions) {\n registerActions(actions);\n }\n }, [strategy.annotations]);\n\n useEffect(() => {\n if (defaultChoices) {\n for (const choice of defaultChoices) {\n if (typeof choice.opacity !== 'undefined') {\n helper.applyStyles({ id: choice.id }, 'atlas', {\n opacity: choice.opacity,\n });\n }\n }\n }\n }, [defaultChoices]);\n\n useLayoutEffect(() => {\n if (onChoiceChange) {\n onChoiceChange(choice);\n }\n }, [choice]);\n\n const thumbnail = useThumbnail({ maxWidth: 256, maxHeight: 256 });\n\n if (!canvas) {\n return null;\n }\n\n // accompanyingCanvas\n const accompanyingCanvas = canvas.accompanyingCanvas;\n\n const thumbnailFallbackImage =\n thumbnail && thumbnail.type === 'fixed' ? (\n <world-object height={canvas.height} width={canvas.width} x={x} y={y}>\n <world-image\n uri={thumbnail.id}\n target={{ x: 0, y: 0, width: canvas.width, height: canvas.height }}\n display={\n thumbnail.width && thumbnail.height\n ? {\n width: thumbnail.width,\n height: thumbnail.height,\n }\n : undefined\n }\n />\n </world-object>\n ) : null;\n\n if (strategy.type === 'unknown') {\n if (thumbnailFallbackImage) {\n return thumbnailFallbackImage;\n }\n\n throw new Error(strategy.reason || 'Unknown image strategy');\n }\n\n const annotations = (\n <Fragment>\n {virtualPage ? <RenderAnnotationPage page={virtualPage} /> : null}\n {strategy.annotations && strategy.annotations.pages\n ? strategy.annotations.pages.map((page) => {\n return <RenderAnnotationPage key={page.id} page={page} />;\n })\n : null}\n {children}\n </Fragment>\n );\n\n return (\n <>\n <world-object key={strategy.type} height={canvas.height} width={canvas.width} x={x} y={y} {...elementProps}>\n {strategy.type === 'images' ? (\n <>\n {strategy.images.map((image, idx) => {\n return (\n <RenderImage\n isStatic={isStatic}\n key={image.id}\n image={image}\n id={image.id}\n thumbnail={idx === 0 ? thumbnail : undefined}\n annotations={annotations}\n />\n );\n })}\n {renderViewerControls ? <CanvasPortal overlay>{renderViewerControls(strategy)}</CanvasPortal> : null}\n </>\n ) : null}\n {strategy.type === '3d-model' ? <Model model={strategy.model} /> : null}\n {strategy.type === 'media' ? (\n <>\n {strategy.media.type === 'Sound' ? (\n <Audio media={strategy.media}>\n {thumbnailFallbackImage}\n {renderMediaControls ? renderMediaControls(strategy) : null}\n </Audio>\n ) : strategy.media.type === 'Video' ? (\n <Video media={strategy.media}>\n {thumbnailFallbackImage}\n {renderMediaControls ? renderMediaControls(strategy) : null}\n </Video>\n ) : null}\n </>\n ) : null}\n {/* This is required to fix a race condition. */}\n </world-object>\n {strategy.type === 'media' && strategy.media.type === 'Sound' && accompanyingCanvas ? (\n <CanvasContext canvas={accompanyingCanvas.id}>\n <RenderCanvas renderViewerControls={renderViewerControls} />\n </CanvasContext>\n ) : null}\n </>\n );\n}\n","import { Viewer } from './Viewer';\nimport { RenderAnnotation } from './render/Annotation';\nimport { RenderAnnotationPage } from './render/AnnotationPage';\nimport { RenderCanvas } from './render/Canvas';\nimport { RenderImage } from './render/Image';\n\nexport const CanvasPanel = {\n RenderImage,\n RenderCanvas,\n RenderAnnotationPage,\n RenderAnnotation,\n Viewer,\n};\n","import { ResourceProvider } from './ResourceContext';\nimport React, { ReactNode } from 'react';\n\nexport function AnnotationContext({ annotation, children }: { annotation: string; children: ReactNode }) {\n return <ResourceProvider value={{ annotation }}>{children}</ResourceProvider>;\n}\n","import { ResourceProvider } from './ResourceContext';\nimport React, { ReactNode } from 'react';\n\nexport function CollectionContext({ collection, children }: { collection: string; children: ReactNode }) {\n return <ResourceProvider value={{ collection }}>{children}</ResourceProvider>;\n}\n","import { ResourceProvider } from './ResourceContext';\nimport React, { ReactNode } from 'react';\n\nexport function RangeContext({ range, children }: { range: string; children: ReactNode }) {\n return <ResourceProvider value={{ range }}>{children}</ResourceProvider>;\n}\n","// This works under a canvas context\n// The canvas must have a duration\n// When given a timestamp (ms) from the canvas clock will return a list of annotations\n// that need to be painted.\nimport { AnnotationNormalized } from '@iiif/presentation-3';\nimport { usePaintingAnnotations } from './usePaintingAnnotations';\n\nexport function useAnnotationsAtTime(time: number, options: { canvasId?: string } = {}): AnnotationNormalized[] {\n const allAnnotations = usePaintingAnnotations(options);\n\n // @todo filter.\n\n return allAnnotations;\n}\n","// This will be valid under a canvas.\n// It will be an interface for controlling a virtual clock.\n// It will take in some configuration, like frequency\n// and return some data, like current time\n// It will also provide some methods, like high performance syncing for media\n// And it will also have some basic hooks into the HTML audio/video elements to sync those.\n// Other methods for controlling the clock would be:\n// - set current time\n// - fast forward\n// - rewind\n// - set playback speed\n//\n// Other hooks might come out for priority updates. Like: useLowPriorityCanvasClock(), which will update at a preset\n// lower tick rate.\n\nexport function useCanvasClock(canvasId?: string, autoplay = false) {\n /*\n const canvas = useCanvas(canvasId ? { id: canvasId } : undefined);\n if (!canvas || typeof canvas.duration === 'undefined') {\n throw new Error('Unsupported or undefined canvas');\n }\n\n const update = useUpdate();\n const [lastCall, setLastCall] = useState(0);\n const [currentTime, setCurrentTime] = useState(0);\n\n const [loopStop, loopStart, isActive] = useRafLoop((time) => {\n const timeInSeconds = lastCall === 0 ? 0 : (time - lastCall) / 1000;\n if (currentTime + timeInSeconds < canvas.duration) {\n setCurrentTime((t) => t + timeInSeconds);\n } else {\n setCurrentTime(canvas.duration);\n loopStop();\n }\n setLastCall(time);\n }, autoplay);\n\n const play = useCallback(() => {\n if (currentTime === canvas.duration) {\n setCurrentTime(0);\n setLastCall(0);\n }\n loopStart();\n update();\n }, [currentTime, loopStart, update]);\n\n const pause = useCallback(() => {\n loopStop();\n update();\n }, [loopStop, update]);\n\n return {\n isPlaying: isActive(),\n currentTime,\n duration: canvas.duration,\n play,\n pause,\n seek: setCurrentTime,\n };\n\n */\n}\n","import { useResourceContext } from '../context/ResourceContext';\nimport { CollectionNormalized } from '@iiif/presentation-3';\nimport { useMemo } from 'react';\nimport { useVaultSelector } from './useVaultSelector';\n\nexport function useCollection(options: { id: string }): CollectionNormalized | undefined;\nexport function useCollection<T>(\n options: { id: string; selector: (collection: CollectionNormalized) => T },\n deps?: any[]\n): T | undefined;\nexport function useCollection<T = CollectionNormalized>(\n options: {\n id?: string;\n selector?: (collection: CollectionNormalized) => T;\n },\n deps: any[] = []\n): CollectionNormalized | T | undefined {\n const { id, selector } = options;\n const ctx = useResourceContext();\n const collectionId = id ? id : ctx.collection;\n\n const collection = useVaultSelector(\n (s) => (collectionId ? s.iiif.entities.Collection[collectionId] : undefined),\n [collectionId]\n );\n\n return useMemo(() => {\n if (!collection) {\n return undefined;\n }\n if (selector) {\n return selector(collection);\n }\n return collection;\n }, [collection, selector, ...deps]);\n}\n","import { Reference } from '@iiif/presentation-3';\nimport { useVault } from './useVault';\nimport { useEffect, useMemo } from 'react';\nimport { createEventsHelper } from '@iiif/vault-helpers/events';\n\ntype SupportedEvents = 'onClick';\n\nexport function useEventListener<T>(\n resource: Reference,\n name: SupportedEvents,\n listener: (e: any, resource: T) => void,\n scope?: string[],\n deps: any[] = []\n) {\n const vault = useVault();\n const helper = useMemo(() => createEventsHelper(vault), [vault]);\n\n useEffect(() => {\n const currentResource = resource;\n if (!currentResource) {\n return () => {\n //\n };\n }\n helper.addEventListener(currentResource, name, listener, scope);\n return () => {\n helper.removeEventListener(currentResource, name, listener);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [helper, resource, name, ...deps]);\n}\n","import { globalVault } from '@iiif/vault';\nimport { useContext } from 'react';\nimport { ReactVaultContext } from '../context/VaultContext';\n\nexport function useExistingVault() {\n const oldContext: any = useContext(ReactVaultContext);\n\n return oldContext && oldContext.vault ? (oldContext.vault as any) : globalVault();\n}\n","import { CollectionNormalized } from '@iiif/presentation-3';\nimport { ResourceRequestOptions, useExternalResource } from './useExternalResource';\n\nexport function useExternalCollection(\n idOrRef: string | { id: string; type: string },\n options?: ResourceRequestOptions\n): {\n id: string;\n requestId: string;\n isLoaded: boolean;\n cached?: boolean;\n error: any;\n manifest?: CollectionNormalized;\n} {\n const { id, isLoaded, error, resource, requestId, cached } = useExternalResource<CollectionNormalized>(\n idOrRef,\n options\n );\n\n return { id, isLoaded, error, manifest: resource, requestId, cached };\n}\n","import { usePaintingAnnotations } from './usePaintingAnnotations';\nimport { getImageServices } from '@atlas-viewer/iiif-image-api';\nimport { useCanvas } from './useCanvas';\nimport { useVault } from './useVault';\nimport { IIIFExternalWebResource, ImageService } from '@iiif/presentation-3';\nimport { useImageServiceLoader } from '../context/ImageServiceLoaderContext';\nimport { useEffect, useMemo, useState } from 'react';\n\nexport interface ImageServiceRequestOptions {\n cacheKey?: string;\n}\n\n/**\n * Returns the First image service on the current canvas.\n *\n * @note It is better to use the hook useRenderingStrategy for rendering.\n */\nexport function useImageService({ cacheKey }: ImageServiceRequestOptions = {}): {\n data: ImageService | undefined;\n isFetching: boolean;\n status: 'error' | 'success' | 'loading' | 'idle';\n} {\n const canvas = useCanvas();\n const annotations = usePaintingAnnotations();\n const vault = useVault();\n const imageService = useImageServiceLoader();\n const [_data, setData] = useState<ImageService | undefined>(undefined);\n const [isFetching, setIsFetching] = useState(false);\n const [status, setStatus] = useState<'error' | 'success' | 'loading' | 'idle'>('idle');\n const [error, setError] = useState<Error | undefined>(undefined);\n const key = canvas ? canvas.id : 'undefined';\n const initialData = useMemo(() => {\n try {\n if (canvas && annotations.length) {\n const annotation = annotations[0];\n const resource = vault.get<IIIFExternalWebResource>(annotation.body[0]);\n const imageServices = getImageServices(resource as any);\n const firstImageService = imageServices[0];\n\n if (!firstImageService) {\n return undefined;\n }\n\n return (\n imageService.loadServiceSync({\n id: firstImageService.id || (firstImageService['@id'] as string),\n width: firstImageService.width || canvas.width,\n height: firstImageService.height || canvas.height,\n }) || undefined\n );\n }\n } catch (e) {\n console.error(e);\n // silent error.\n }\n\n return undefined;\n\n // This is specifically not exhaustive. We only want to try to loadSync initially or when the canvas changes.\n }, [key, cacheKey, canvas]);\n\n const data = status === 'success' && _data ? _data : initialData;\n\n useEffect(() => {\n (async () => {\n try {\n if (canvas && annotations.length) {\n const annotation = annotations[0];\n const resource = vault.get<IIIFExternalWebResource>(annotation.body[0]);\n const imageServices = getImageServices(resource as any) as any[];\n const firstImageService = imageServices[0] as any;\n\n if (!firstImageService) {\n return;\n }\n\n setIsFetching(true);\n setStatus('loading');\n\n try {\n const loadedService =\n (await imageService.loadService({\n id: firstImageService.id || firstImageService['@id'],\n width: firstImageService.width || canvas.width,\n height: firstImageService.height || canvas.height,\n })) || undefined;\n\n setData(loadedService);\n setStatus('success');\n setIsFetching(false);\n } catch (err) {\n setStatus('error');\n setError(err as Error);\n }\n }\n } catch (err) {\n setStatus('error');\n setError(err as Error);\n }\n })();\n\n // It's important that this DOESN'T refresh every time there is a new canvas change.\n // In an editing situation, the cache key should be used.\n }, [key, cacheKey]);\n\n return useMemo(() => {\n return {\n data,\n isFetching,\n status,\n error,\n };\n }, [data, isFetching, status, error]);\n}\n","import { useImageService } from './useImageService';\nimport { ImageService } from '@iiif/presentation-3';\n\nexport function useImageTile() {\n const imageService = useImageService();\n\n return {\n isLoading: imageService.isFetching,\n tile: imageService.data\n ? {\n id: imageService.data.id || imageService.data['@id'],\n width: imageService.data.width,\n height: imageService.data.height,\n imageService: imageService.data as ImageService,\n thumbnail: undefined,\n }\n : null,\n };\n}\n","// This is valid under a range context.\nimport { useResourceContext } from '../context/ResourceContext';\nimport { RangeNormalized } from '@iiif/presentation-3';\nimport { useMemo } from 'react';\nimport { useVaultSelector } from './useVaultSelector';\n\nexport function useRange(options?: { id: string }): RangeNormalized | undefined;\nexport function useRange<T>(\n options?: { id: string; selector: (range: RangeNormalized) => T },\n deps?: any[]\n): T | undefined;\nexport function useRange<T = RangeNormalized>(\n options: {\n id?: string;\n selector?: (range: RangeNormalized) => T;\n } = {},\n deps: any[] = []\n): RangeNormalized | T | undefined {\n const { id, selector } = options;\n const ctx = useResourceContext();\n const rangeId = id ? id : ctx.range;\n\n const range = useVaultSelector((s) => (rangeId ? s.iiif.entities.Range[rangeId] : undefined), [rangeId]);\n\n return useMemo(() => {\n if (!range) {\n return undefined;\n }\n if (selector) {\n return selector(range);\n }\n return range;\n }, [range, selector, ...deps]);\n}\n","// This works inside of a manifest context\n// Final API to be decided, but this hook will be for driving search querying itself\n// Another hook/context will handle actually getting the search results for a particular canvas\nimport { useManifest } from './useManifest';\nimport { SearchService, ServiceNormalized } from '@iiif/presentation-3';\n\nexport function useSearchService(): SearchService | undefined {\n const manifest = useManifest();\n return manifest\n ? (manifest.service.find(\n (service: ServiceNormalized) =>\n service.profile === 'SearchService1' || service.profile === 'http://iiif.io/api/search/1/search'\n ) as any)\n : undefined;\n}\n","import { useVault } from './useVault';\nimport { createStylesHelper } from '@iiif/vault-helpers/styles';\nimport { useMemo } from 'react';\n\nexport function useStyleHelper() {\n const vault = useVault();\n return useMemo(() => createStylesHelper(vault), [vault]);\n}\n"],"names":["schedulerModule","require$$0","require$$1","require$$2","reactReconcilerModule","React","useContext","useState","useRef","useEffect","useMemo","jsxRuntime","reactJsxRuntime_production_min","f","l","m","n","jsx","jsxs","Fragment","useCallback","useLayoutEffect","version","setPrototypeOf","jsxRuntimeModule","jsxRuntime.jsx","jsxRuntime.jsxs","jsxRuntime.Fragment","defaultResourceContext","collection","undefined","manifest","range","canvas","annotation","ResourceReactContext","createContext","useResourceContext","value","children","parentContext","newContext","_jsx","ReactVaultContext","vault","setVaultInstance","vaultOptions","useGlobal","resources","vaultInstance","globalVault","Vault","VisibleCanvasReactContext","ids","useVaultSelector","state","map","id","iiif","entities","Canvas","filter","Boolean","noop","SimpleViewerReactContext","setCurrentCanvasId","setCurrentCanvasIndex","nextCanvas","previousCanvas","currentCanvasIndex","totalCanvases","pagingView","props","useExternalManifest","currentCanvasId","visible","setVisible","pagingEnabled","behavior","includes","items","canvasList","c","indexOf","length","newCanvas","pageCanvas","idx","realIdx","newId","newNextId","prevValue","newValue","i","internalSetCurrentCanvasId","nextId","ctx","isLoaded","console","warn","VaultContext","ResourceContext","bridge","createAction","VirtualAnnotationPageContext","fullPage","addAnnotation","removeAnnotation","useVirtualAnnotationPage","width","style","height","minHeight","background","client","ViewerPresetContext","PortalContext","OverlayPortalContext","overlay","htmlElement","rootRef","preset","useViewerPreset","current","createRoot","unmount","render","errorFallback","outerContainerProps","portal","portalElement","setPortalElement","viewerPreset","setViewerPreset","overlayPortal","overlayPortalElement","setOverlayPortalElement","useContextBridge","ErrorFallback","DefaultCanvasFallback","position","containerProps","onCreated","RenderAnnotation","defaultStyle","className","interactive","useAnnotation","useStyles","html","events","useResourceEvents","useCanvas","allStyles","mergeStyles","target","selector","type","source","spatial","href","title","RenderAnnotationPage","page","AnnotationPage","image","thumbnail","isStatic","x","y","annotations","service","_jsxs","imageService","getMeta","ImageServiceLoaderContext","ImageServiceLoader","getImageServices","getFixedSizeFromImage","useReducer","MediaReactContextState","MediaReactContextActions","MediaReactContextElements","Error","actions","currentTime","progress","element","media","useSimpleMediaPlayer","duration","_Fragment","url","playPause","objectFit","model","onChoiceChange","registerActions","defaultChoices","renderViewerControls","renderMediaControls","strategies","elementProps","virtualPage","useVirtualAnnotationPageContext","useVault","helper","createStylesHelper","strategy","useRenderingStrategy","choice","opacity","applyStyles","useThumbnail","maxWidth","maxHeight","accompanyingCanvas","thumbnailFallbackImage","reason","pages","images"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../node_modules/object-assign/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/react-reconciler/cjs/react-reconciler.production.min.js","../node_modules/react-reconciler/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/jsx-runtime.js","../react/jsx-runtime","../node_modules/@atlas-viewer/atlas/dist/bundle/esm/index.mjs","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-error-boundary/dist/react-error-boundary.esm.js","../src/context/ResourceContext.tsx","../src/context/VaultContext.tsx","../src/hooks/useVault.ts","../src/hooks/useExternalResource.ts","../src/hooks/useExternalManifest.ts","../src/context/ManifestContext.tsx","../src/context/CanvasContext.tsx","../src/hooks/useVaultSelector.ts","../src/context/VisibleCanvasContext.tsx","../src/viewers/SimpleViewerContext.tsx","../src/context/ContextBridge.tsx","../node_modules/typesafe-actions/dist/typesafe-actions.es.production.js","../node_modules/@iiif/vault/dist/actions/esm/index.mjs","../src/hooks/useDispatch.ts","../src/hooks/useVirtualAnnotationPage.ts","../src/hooks/useVirtualAnnotationPageContext.tsx","../src/canvas-panel/render/DefaultCanvasFallback.tsx","../node_modules/react-dom/client.js","../src/context/ViewerPresetContext.tsx","../src/context/PortalContext.tsx","../src/canvas-panel/Viewer.tsx","../node_modules/@iiif/vault-helpers/dist/events/esm/events.mjs","../src/hooks/useResourceEvents.ts","../node_modules/@iiif/vault-helpers/dist/styles/esm/styles.mjs","../src/hooks/useStyles.ts","../node_modules/@iiif/vault-helpers/dist/annotation-targets/esm/annotation-targets.mjs","../src/hooks/useAnnotation.ts","../src/hooks/useCanvas.ts","../src/canvas-panel/render/Annotation.tsx","../src/canvas-panel/render/AnnotationPage.tsx","../src/canvas-panel/render/Image.tsx","../src/features/rendering-strategy/rendering-utils.ts","../src/hooks/useManifest.ts","../src/hooks/useEnabledAnnotationPageIds.ts","../src/utility/flatten-annotation-page-ids.ts","../src/hooks/useAnnotationPageManager.ts","../src/hooks/useResources.ts","../src/context/ImageServiceLoaderContext.tsx","../src/hooks/useLoadImageService.ts","../src/hooks/usePaintingAnnotations.ts","../src/hooks/usePaintables.ts","../src/features/rendering-strategy/image-strategy.ts","../src/features/rendering-strategy/3d-strategy.ts","../src/features/rendering-strategy/audio-strategy.ts","../src/features/rendering-strategy/video-strategy.ts","../src/hooks/useRenderingStrategy.ts","../src/hooks/useVaultEffect.ts","../node_modules/@iiif/vault-helpers/dist/thumbnail/esm/thumbnail.mjs","../src/hooks/useThumbnail.ts","../src/hooks/useSimpleMediaPlayer.ts","../src/context/MediaContext.tsx","../src/canvas-panel/render/Audio.tsx","../src/canvas-panel/render/Video.tsx","../src/canvas-panel/render/Model.tsx","../src/canvas-panel/render/Canvas.tsx","../src/canvas-panel/index.ts","../src/context/AnnotationContext.tsx","../src/context/CollectionContext.tsx","../src/context/RangeContext.tsx","../src/hooks/useAnnotationsAtTime.ts","../src/hooks/useCanvasClock.ts","../src/hooks/useCollection.ts","../src/hooks/useEventListener.ts","../src/hooks/useExistingVault.ts","../src/hooks/useExternalCollection.ts","../src/hooks/useImageService.ts","../src/hooks/useImageTile.ts","../src/hooks/useRange.ts","../src/hooks/useSearchService.ts","../src/hooks/useStyleHelper.ts"],"sourcesContent":["/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):D=0<a?Math.floor(1E3/a):5};var F=new MessageChannel,G=F.port2;F.port1.onmessage=function(){if(null!==B){var a=exports.unstable_now();E=a+D;try{B(!0,a)?G.postMessage(null):(A=!1,B=null)}catch(b){throw G.postMessage(null),b;}}else A=!1};f=function(a){B=a;A||(A=!0,G.postMessage(null))};g=function(a,b){C=\nx(function(){a(exports.unstable_now())},b)};h=function(){y(C);C=-1}}function H(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<I(e,b))a[d]=b,a[c]=e,c=d;else break a}}function J(a){a=a[0];return void 0===a?null:a}\nfunction K(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:N++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/** @license React v0.26.2\n * react-reconciler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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 */\nmodule.exports = function $$$reconciler($$$hostConfig) {\n var exports = {};\n'use strict';var aa=require(\"object-assign\"),ba=require(\"react\"),m=require(\"scheduler\");function q(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar ca=ba.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,da=60103,ea=60106,fa=60107,ha=60108,ia=60114,ja=60109,ka=60110,la=60112,ma=60113,na=60120,oa=60115,pa=60116,qa=60121,ra=60129,sa=60130,ta=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var r=Symbol.for;da=r(\"react.element\");ea=r(\"react.portal\");fa=r(\"react.fragment\");ha=r(\"react.strict_mode\");ia=r(\"react.profiler\");ja=r(\"react.provider\");ka=r(\"react.context\");la=r(\"react.forward_ref\");ma=r(\"react.suspense\");na=r(\"react.suspense_list\");oa=r(\"react.memo\");pa=r(\"react.lazy\");qa=r(\"react.block\");r(\"react.scope\");ra=r(\"react.debug_trace_mode\");sa=r(\"react.offscreen\");ta=r(\"react.legacy_hidden\")}var ua=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction va(a){if(null===a||\"object\"!==typeof a)return null;a=ua&&a[ua]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nfunction wa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case fa:return\"Fragment\";case ea:return\"Portal\";case ia:return\"Profiler\";case ha:return\"StrictMode\";case ma:return\"Suspense\";case na:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case ka:return(a.displayName||\"Context\")+\".Consumer\";case ja:return(a._context.displayName||\"Context\")+\".Provider\";case la:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case oa:return wa(a.type);case qa:return wa(a._render);case pa:b=a._payload;a=a._init;try{return wa(a(b))}catch(c){}}return null}function xa(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ya(a){if(xa(a)!==a)throw Error(q(188));}\nfunction za(a){var b=a.alternate;if(!b){b=xa(a);if(null===b)throw Error(q(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return ya(e),a;if(f===d)return ya(e),b;f=f.sibling}throw Error(q(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(q(189));}}if(c.alternate!==d)throw Error(q(190));}if(3!==c.tag)throw Error(q(188));return c.stateNode.current===c?a:b}function Aa(a){a=za(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction Ba(a){a=za(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child&&4!==b.tag)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}function Ca(a,b){for(var c=a.alternate;null!==b;){if(b===a||b===c)return!0;b=b.return}return!1}\nvar Da=$$$hostConfig.getPublicInstance,Ea=$$$hostConfig.getRootHostContext,Fa=$$$hostConfig.getChildHostContext,Ga=$$$hostConfig.prepareForCommit,Ha=$$$hostConfig.resetAfterCommit,Ia=$$$hostConfig.createInstance,Ja=$$$hostConfig.appendInitialChild,Ka=$$$hostConfig.finalizeInitialChildren,La=$$$hostConfig.prepareUpdate,Ma=$$$hostConfig.shouldSetTextContent,Na=$$$hostConfig.createTextInstance,Pa=$$$hostConfig.scheduleTimeout,Qa=$$$hostConfig.cancelTimeout,Ra=$$$hostConfig.noTimeout,Sa=$$$hostConfig.isPrimaryRenderer,\nTa=$$$hostConfig.supportsMutation,Ua=$$$hostConfig.supportsPersistence,Va=$$$hostConfig.supportsHydration,Wa=$$$hostConfig.getInstanceFromNode,Xa=$$$hostConfig.makeOpaqueHydratingObject,Ya=$$$hostConfig.makeClientId,Za=$$$hostConfig.beforeActiveInstanceBlur,$a=$$$hostConfig.afterActiveInstanceBlur,ab=$$$hostConfig.preparePortalMount,bb=$$$hostConfig.supportsTestSelectors,cb=$$$hostConfig.findFiberRoot,db=$$$hostConfig.getBoundingRect,eb=$$$hostConfig.getTextContent,fb=$$$hostConfig.isHiddenSubtree,\ngb=$$$hostConfig.matchAccessibilityRole,hb=$$$hostConfig.setFocusIfFocusable,ib=$$$hostConfig.setupIntersectionObserver,jb=$$$hostConfig.appendChild,kb=$$$hostConfig.appendChildToContainer,lb=$$$hostConfig.commitTextUpdate,mb=$$$hostConfig.commitMount,nb=$$$hostConfig.commitUpdate,ob=$$$hostConfig.insertBefore,pb=$$$hostConfig.insertInContainerBefore,qb=$$$hostConfig.removeChild,rb=$$$hostConfig.removeChildFromContainer,sb=$$$hostConfig.resetTextContent,tb=$$$hostConfig.hideInstance,ub=$$$hostConfig.hideTextInstance,\nvb=$$$hostConfig.unhideInstance,wb=$$$hostConfig.unhideTextInstance,xb=$$$hostConfig.clearContainer,yb=$$$hostConfig.cloneInstance,zb=$$$hostConfig.createContainerChildSet,Ab=$$$hostConfig.appendChildToContainerChildSet,Bb=$$$hostConfig.finalizeContainerChildren,Cb=$$$hostConfig.replaceContainerChildren,Db=$$$hostConfig.cloneHiddenInstance,Eb=$$$hostConfig.cloneHiddenTextInstance,Fb=$$$hostConfig.canHydrateInstance,Gb=$$$hostConfig.canHydrateTextInstance,Hb=$$$hostConfig.isSuspenseInstancePending,\nIb=$$$hostConfig.isSuspenseInstanceFallback,Jb=$$$hostConfig.getNextHydratableSibling,Kb=$$$hostConfig.getFirstHydratableChild,Lb=$$$hostConfig.hydrateInstance,Mb=$$$hostConfig.hydrateTextInstance,Nb=$$$hostConfig.getNextHydratableInstanceAfterSuspenseInstance,Ob=$$$hostConfig.commitHydratedContainer,Pb=$$$hostConfig.commitHydratedSuspenseInstance,Qb;function Rb(a){if(void 0===Qb)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);Qb=b&&b[1]||\"\"}return\"\\n\"+Qb+a}var Sb=!1;\nfunction Tb(a,b){if(!a||Sb)return\"\";Sb=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(k){var d=k}Reflect.construct(a,[],b)}else{try{b.call()}catch(k){d=k}a.call(b.prototype)}else{try{throw Error();}catch(k){d=k}a()}}catch(k){if(k&&d&&\"string\"===typeof k.stack){for(var e=k.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Sb=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Rb(a):\"\"}var Ub=[],Vb=-1;function Wb(a){return{current:a}}function z(a){0>Vb||(a.current=Ub[Vb],Ub[Vb]=null,Vb--)}function A(a,b){Vb++;Ub[Vb]=a.current;a.current=b}\nvar Xb={},B=Wb(Xb),D=Wb(!1),Yb=Xb;function Zb(a,b){var c=a.type.contextTypes;if(!c)return Xb;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function E(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $b(){z(D);z(B)}\nfunction ac(a,b,c){if(B.current!==Xb)throw Error(q(168));A(B,b);A(D,c)}function bc(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(q(108,wa(b)||\"Unknown\",e));return aa({},c,d)}function cc(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Xb;Yb=B.current;A(B,a);A(D,D.current);return!0}\nfunction dc(a,b,c){var d=a.stateNode;if(!d)throw Error(q(169));c?(a=bc(a,b,Yb),d.__reactInternalMemoizedMergedChildContext=a,z(D),z(B),A(B,a)):z(D);A(D,c)}var ec=null,fc=null,gc=m.unstable_now;gc();var hc=0,F=8;\nfunction ic(a){if(0!==(1&a))return F=15,1;if(0!==(2&a))return F=14,2;if(0!==(4&a))return F=13,4;var b=24&a;if(0!==b)return F=12,b;if(0!==(a&32))return F=11,32;b=192&a;if(0!==b)return F=10,b;if(0!==(a&256))return F=9,256;b=3584&a;if(0!==b)return F=8,b;if(0!==(a&4096))return F=7,4096;b=4186112&a;if(0!==b)return F=6,b;b=62914560&a;if(0!==b)return F=5,b;if(a&67108864)return F=4,67108864;if(0!==(a&134217728))return F=3,134217728;b=805306368&a;if(0!==b)return F=2,b;if(0!==(1073741824&a))return F=1,1073741824;\nF=8;return a}function jc(a){switch(a){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function kc(a){switch(a){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(q(358,a));}}\nfunction lc(a,b){var c=a.pendingLanes;if(0===c)return F=0;var d=0,e=0,f=a.expiredLanes,g=a.suspendedLanes,h=a.pingedLanes;if(0!==f)d=f,e=F=15;else if(f=c&134217727,0!==f){var k=f&~g;0!==k?(d=ic(k),e=F):(h&=f,0!==h&&(d=ic(h),e=F))}else f=c&~g,0!==f?(d=ic(f),e=F):0!==h&&(d=ic(h),e=F);if(0===d)return 0;d=31-mc(d);d=c&((0>d?0:1<<d)<<1)-1;if(0!==b&&b!==d&&0===(b&g)){ic(b);if(e<=F)return b;F=e}b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-mc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction nc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function oc(a,b){switch(a){case 15:return 1;case 14:return 2;case 12:return a=pc(24&~b),0===a?oc(10,b):a;case 10:return a=pc(192&~b),0===a?oc(8,b):a;case 8:return a=pc(3584&~b),0===a&&(a=pc(4186112&~b),0===a&&(a=512)),a;case 2:return b=pc(805306368&~b),0===b&&(b=268435456),b}throw Error(q(358,a));}function pc(a){return a&-a}function qc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction rc(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-mc(b);a[b]=c}var mc=Math.clz32?Math.clz32:sc,tc=Math.log,uc=Math.LN2;function sc(a){return 0===a?32:31-(tc(a)/uc|0)|0}\nvar vc=m.unstable_runWithPriority,wc=m.unstable_scheduleCallback,xc=m.unstable_cancelCallback,yc=m.unstable_shouldYield,zc=m.unstable_requestPaint,Ac=m.unstable_now,Bc=m.unstable_getCurrentPriorityLevel,Cc=m.unstable_ImmediatePriority,Dc=m.unstable_UserBlockingPriority,Ec=m.unstable_NormalPriority,Fc=m.unstable_LowPriority,Gc=m.unstable_IdlePriority,Hc={},Ic=void 0!==zc?zc:function(){},Jc=null,Kc=null,Lc=!1,Mc=Ac(),G=1E4>Mc?Ac:function(){return Ac()-Mc};\nfunction Nc(){switch(Bc()){case Cc:return 99;case Dc:return 98;case Ec:return 97;case Fc:return 96;case Gc:return 95;default:throw Error(q(332));}}function Oc(a){switch(a){case 99:return Cc;case 98:return Dc;case 97:return Ec;case 96:return Fc;case 95:return Gc;default:throw Error(q(332));}}function Pc(a,b){a=Oc(a);return vc(a,b)}function Qc(a,b,c){a=Oc(a);return wc(a,b,c)}function H(){if(null!==Kc){var a=Kc;Kc=null;xc(a)}Rc()}\nfunction Rc(){if(!Lc&&null!==Jc){Lc=!0;var a=0;try{var b=Jc;Pc(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});Jc=null}catch(c){throw null!==Jc&&(Jc=Jc.slice(a+1)),wc(Cc,H),c;}finally{Lc=!1}}}var Sc=ca.ReactCurrentBatchConfig;function Tc(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var I=\"function\"===typeof Object.is?Object.is:Tc,Uc=Object.prototype.hasOwnProperty;\nfunction Vc(a,b){if(I(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!Uc.call(b,c[d])||!I(a[c[d]],b[c[d]]))return!1;return!0}\nfunction Wc(a){switch(a.tag){case 5:return Rb(a.type);case 16:return Rb(\"Lazy\");case 13:return Rb(\"Suspense\");case 19:return Rb(\"SuspenseList\");case 0:case 2:case 15:return a=Tb(a.type,!1),a;case 11:return a=Tb(a.type.render,!1),a;case 22:return a=Tb(a.type._render,!1),a;case 1:return a=Tb(a.type,!0),a;default:return\"\"}}function Xc(a,b){if(a&&a.defaultProps){b=aa({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Yc=Wb(null),Zc=null,$c=null,ad=null;\nfunction bd(){ad=$c=Zc=null}function cd(a,b){a=a.type._context;Sa?(A(Yc,a._currentValue),a._currentValue=b):(A(Yc,a._currentValue2),a._currentValue2=b)}function dd(a){var b=Yc.current;z(Yc);a=a.type._context;Sa?a._currentValue=b:a._currentValue2=b}function ed(a,b){for(;null!==a;){var c=a.alternate;if((a.childLanes&b)===b)if(null===c||(c.childLanes&b)===b)break;else c.childLanes|=b;else a.childLanes|=b,null!==c&&(c.childLanes|=b);a=a.return}}\nfunction fd(a,b){Zc=a;ad=$c=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(gd=!0),a.firstContext=null)}function J(a,b){if(ad!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)ad=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===$c){if(null===Zc)throw Error(q(308));$c=b;Zc.dependencies={lanes:0,firstContext:b,responders:null}}else $c=$c.next=b}return Sa?a._currentValue:a._currentValue2}var hd=!1;\nfunction id(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function jd(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function kd(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction md(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction nd(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction od(a,b,c,d){var e=a.updateQueue;hd=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var n=a.alternate;if(null!==n){n=n.updateQueue;var t=n.lastBaseUpdate;t!==g&&(null===t?n.firstBaseUpdate=l:t.next=l,n.lastBaseUpdate=k)}}if(null!==f){t=e.baseState;g=0;n=l=k=null;do{h=f.lane;var p=f.eventTime;if((d&h)===h){null!==n&&(n=n.next={eventTime:p,lane:0,tag:f.tag,payload:f.payload,callback:f.callback,\nnext:null});a:{var y=a,x=f;h=b;p=c;switch(x.tag){case 1:y=x.payload;if(\"function\"===typeof y){t=y.call(p,t,h);break a}t=y;break a;case 3:y.flags=y.flags&-4097|64;case 0:y=x.payload;h=\"function\"===typeof y?y.call(p,t,h):y;if(null===h||void 0===h)break a;t=aa({},t,h);break a;case 2:hd=!0}}null!==f.callback&&(a.flags|=32,h=e.effects,null===h?e.effects=[f]:h.push(f))}else p={eventTime:p,lane:h,tag:f.tag,payload:f.payload,callback:f.callback,next:null},null===n?(l=n=p,k=t):n=n.next=p,g|=h;f=f.next;if(null===\nf)if(h=e.shared.pending,null===h)break;else f=h.next,h.next=null,e.lastBaseUpdate=h,e.shared.pending=null}while(1);null===n&&(k=t);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=n;pd|=g;a.lanes=g;a.memoizedState=t}}function qd(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(q(191,e));e.call(d)}}}var rd=(new ba.Component).refs;\nfunction sd(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:aa({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar vd={isMounted:function(a){return(a=a._reactInternals)?xa(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=K(),e=td(a),f=kd(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);md(a,f);ud(a,e,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=K(),e=td(a),f=kd(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);md(a,f);ud(a,e,d)},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=K(),d=td(a),e=kd(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=\nb);md(a,e);ud(a,d,c)}};function wd(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Vc(c,d)||!Vc(e,f):!0}\nfunction xd(a,b,c){var d=!1,e=Xb;var f=b.contextType;\"object\"===typeof f&&null!==f?f=J(f):(e=E(b)?Yb:B.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Zb(a,e):Xb);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=vd;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction yd(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&vd.enqueueReplaceState(b,b.state,null)}\nfunction zd(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=rd;id(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=J(f):(f=E(b)?Yb:B.current,e.context=Zb(a,f));od(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(sd(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&vd.enqueueReplaceState(e,e.state,null),od(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4)}var Ad=Array.isArray;\nfunction Bd(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(q(309));var d=c.stateNode}if(!d)throw Error(q(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===rd&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(q(284));if(!c._owner)throw Error(q(290,a));}return a}\nfunction Cd(a,b){if(\"textarea\"!==a.type)throw Error(q(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b));}\nfunction Dd(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.flags=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Ed(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags=2,\nc):d;b.flags=2;return c}function g(b){a&&null===b.alternate&&(b.flags=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Fd(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Bd(a,b,c),d.return=a,d;d=Gd(c.type,c.key,c.props,null,a.mode,d);d.ref=Bd(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=\nHd(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function n(a,b,c,d,f){if(null===b||7!==b.tag)return b=Id(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function t(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Fd(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case da:return c=Gd(b.type,b.key,b.props,null,a.mode,c),c.ref=Bd(a,null,b),c.return=a,c;case ea:return b=Hd(b,a.mode,c),b.return=a,b}if(Ad(b)||va(b))return b=Id(b,\na.mode,c,null),b.return=a,b;Cd(a,b)}return null}function p(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case da:return c.key===e?c.type===fa?n(a,b,c.props.children,d,e):k(a,b,c,d):null;case ea:return c.key===e?l(a,b,c,d):null}if(Ad(c)||va(c))return null!==e?null:n(a,b,c,d,null);Cd(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||\nnull,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case da:return a=a.get(null===d.key?c:d.key)||null,d.type===fa?n(b,a,d.props.children,e,d.key):k(b,a,d,e);case ea:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Ad(d)||va(d))return a=a.get(c)||null,n(b,a,d,e,null);Cd(b,d)}return null}function x(e,g,h,k){for(var l=null,v=null,u=g,C=g=0,n=null;null!==u&&C<h.length;C++){u.index>C?(n=u,u=null):n=u.sibling;var w=p(e,u,h[C],k);if(null===w){null===u&&(u=n);break}a&&u&&null===\nw.alternate&&b(e,u);g=f(w,g,C);null===v?l=w:v.sibling=w;v=w;u=n}if(C===h.length)return c(e,u),l;if(null===u){for(;C<h.length;C++)u=t(e,h[C],k),null!==u&&(g=f(u,g,C),null===v?l=u:v.sibling=u,v=u);return l}for(u=d(e,u);C<h.length;C++)n=y(u,e,C,h[C],k),null!==n&&(a&&null!==n.alternate&&u.delete(null===n.key?C:n.key),g=f(n,g,C),null===v?l=n:v.sibling=n,v=n);a&&u.forEach(function(a){return b(e,a)});return l}function Y(e,g,h,k){var l=va(h);if(\"function\"!==typeof l)throw Error(q(150));h=l.call(h);if(null==\nh)throw Error(q(151));for(var u=l=null,v=g,n=g=0,C=null,w=h.next();null!==v&&!w.done;n++,w=h.next()){v.index>n?(C=v,v=null):C=v.sibling;var x=p(e,v,w.value,k);if(null===x){null===v&&(v=C);break}a&&v&&null===x.alternate&&b(e,v);g=f(x,g,n);null===u?l=x:u.sibling=x;u=x;v=C}if(w.done)return c(e,v),l;if(null===v){for(;!w.done;n++,w=h.next())w=t(e,w.value,k),null!==w&&(g=f(w,g,n),null===u?l=w:u.sibling=w,u=w);return l}for(v=d(e,v);!w.done;n++,w=h.next())w=y(v,e,n,w.value,k),null!==w&&(a&&null!==w.alternate&&\nv.delete(null===w.key?n:w.key),g=f(w,g,n),null===u?l=w:u.sibling=w,u=w);a&&v.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===fa&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case da:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===fa){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Bd(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===fa?(d=Id(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Gd(f.type,f.key,f.props,null,a.mode,h),h.ref=Bd(a,d,f),h.return=a,a=h)}return g(a);case ea:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nHd(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Fd(f,a.mode,h),d.return=a,a=d),g(a);if(Ad(f))return x(a,d,f,h);if(va(f))return Y(a,d,f,h);l&&Cd(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(q(152,wa(a.type)||\"Component\"));}return c(a,d)}}var Jd=Dd(!0),Kd=Dd(!1),Ld={},L=Wb(Ld),Md=Wb(Ld),Nd=Wb(Ld);\nfunction Od(a){if(a===Ld)throw Error(q(174));return a}function Pd(a,b){A(Nd,b);A(Md,a);A(L,Ld);a=Ea(b);z(L);A(L,a)}function Qd(){z(L);z(Md);z(Nd)}function Rd(a){var b=Od(Nd.current),c=Od(L.current);b=Fa(c,a.type,b);c!==b&&(A(Md,a),A(L,b))}function Sd(a){Md.current===a&&(z(L),z(Md))}var M=Wb(0);\nfunction Td(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||Hb(c)||Ib(c)))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Ud=null,Vd=null,Wd=!1;\nfunction Xd(a,b){var c=Yd(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function Zd(a,b){switch(a.tag){case 5:return b=Fb(b,a.type,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;case 6:return b=Gb(b,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction $d(a){if(Wd){var b=Vd;if(b){var c=b;if(!Zd(a,b)){b=Jb(c);if(!b||!Zd(a,b)){a.flags=a.flags&-1025|2;Wd=!1;Ud=a;return}Xd(Ud,c)}Ud=a;Vd=Kb(b)}else a.flags=a.flags&-1025|2,Wd=!1,Ud=a}}function ae(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;Ud=a}\nfunction be(a){if(!Va||a!==Ud)return!1;if(!Wd)return ae(a),Wd=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Ma(b,a.memoizedProps))for(b=Vd;b;)Xd(a,b),b=Jb(b);ae(a);if(13===a.tag){if(!Va)throw Error(q(316));a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(q(317));Vd=Nb(a)}else Vd=Ud?Jb(a.stateNode):null;return!0}function ce(){Va&&(Vd=Ud=null,Wd=!1)}var de=[];\nfunction ee(){for(var a=0;a<de.length;a++){var b=de[a];Sa?b._workInProgressVersionPrimary=null:b._workInProgressVersionSecondary=null}de.length=0}var fe=ca.ReactCurrentDispatcher,ge=ca.ReactCurrentBatchConfig,he=0,N=null,O=null,P=null,ie=!1,je=!1;function Q(){throw Error(q(321));}function ke(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!I(a[c],b[c]))return!1;return!0}\nfunction le(a,b,c,d,e,f){he=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;fe.current=null===a||null===a.memoizedState?me:ne;a=c(d,e);if(je){f=0;do{je=!1;if(!(25>f))throw Error(q(301));f+=1;P=O=null;b.updateQueue=null;fe.current=oe;a=c(d,e)}while(je)}fe.current=pe;b=null!==O&&null!==O.next;he=0;P=O=N=null;ie=!1;if(b)throw Error(q(300));return a}function qe(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}\nfunction re(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(q(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}function se(a,b){return\"function\"===typeof b?b(a):b}\nfunction te(a){var b=re(),c=b.queue;if(null===c)throw Error(q(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((he&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;N.lanes|=l;pd|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;I(d,b.memoizedState)||(gd=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction ue(a){var b=re(),c=b.queue;if(null===c)throw Error(q(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);I(f,b.memoizedState)||(gd=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction ve(a,b,c){var d=b._getVersion;d=d(b._source);var e=Sa?b._workInProgressVersionPrimary:b._workInProgressVersionSecondary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(he&a)===a)Sa?b._workInProgressVersionPrimary=d:b._workInProgressVersionSecondary=d,de.push(b);if(a)return c(b._source);de.push(b);throw Error(q(350));}\nfunction we(a,b,c,d){var e=R;if(null===e)throw Error(q(349));var f=b._getVersion,g=f(b._source),h=fe.current,k=h.useState(function(){return ve(e,b,c)}),l=k[1],n=k[0];k=P;var t=a.memoizedState,p=t.refs,y=p.getSnapshot,x=t.source;t=t.subscribe;var Y=N;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!I(g,a)){a=c(b._source);I(n,a)||(l(a),a=td(Y),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0<h;){var k=31-mc(h),t=1<<k;d[k]|=a;h&=~t}}},[c,b,d]);h.useEffect(function(){return d(b._source,function(){var a=p.getSnapshot,c=p.setSnapshot;try{c(a(b._source));var d=td(Y);e.mutableReadLanes|=d&e.pendingLanes}catch(Oa){c(function(){throw Oa;})}})},[b,d]);I(y,c)&&I(x,b)&&I(t,d)||(a={pending:null,dispatch:null,lastRenderedReducer:se,lastRenderedState:n},a.dispatch=l=xe.bind(null,N,a),k.queue=a,k.baseQueue=null,n=ve(e,b,c),k.memoizedState=k.baseState=n);return n}\nfunction ye(a,b,c){var d=re();return we(d,a,b,c)}function ze(a){var b=qe();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:se,lastRenderedState:a};a=a.dispatch=xe.bind(null,N,a);return[b.memoizedState,a]}\nfunction Ae(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function Be(a){var b=qe();a={current:a};return b.memoizedState=a}function Ce(){return re().memoizedState}function De(a,b,c,d){var e=qe();N.flags|=a;e.memoizedState=Ae(1|b,c,void 0,void 0===d?null:d)}\nfunction Ee(a,b,c,d){var e=re();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&ke(d,g.deps)){Ae(b,c,f,d);return}}N.flags|=a;e.memoizedState=Ae(1|b,c,f,d)}function Fe(a,b){return De(516,4,a,b)}function Ge(a,b){return Ee(516,4,a,b)}function He(a,b){return Ee(4,2,a,b)}function Ie(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}\nfunction Je(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Ee(4,2,Ie.bind(null,b,a),c)}function Ke(){}function Le(a,b){var c=re();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&ke(b,d[1]))return d[0];c.memoizedState=[a,b];return a}function Me(a,b){var c=re();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&ke(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}\nfunction Ne(a,b){var c=Nc();Pc(98>c?98:c,function(){a(!0)});Pc(97<c?97:c,function(){var c=ge.transition;ge.transition=1;try{a(!1),b()}finally{ge.transition=c}})}\nfunction xe(a,b,c){var d=K(),e=td(a),f={lane:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.pending;null===g?f.next=f:(f.next=g.next,g.next=f);b.pending=f;g=a.alternate;if(a===N||null!==g&&g===N)je=ie=!0;else{if(0===a.lanes&&(null===g||0===g.lanes)&&(g=b.lastRenderedReducer,null!==g))try{var h=b.lastRenderedState,k=g(h,c);f.eagerReducer=g;f.eagerState=k;if(I(k,h))return}catch(l){}finally{}ud(a,e,d)}}\nvar pe={readContext:J,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useOpaqueIdentifier:Q,unstable_isNewReconciler:!1},me={readContext:J,useCallback:function(a,b){qe().memoizedState=[a,void 0===b?null:b];return a},useContext:J,useEffect:Fe,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return De(4,2,Ie.bind(null,b,a),c)},useLayoutEffect:function(a,\nb){return De(4,2,a,b)},useMemo:function(a,b){var c=qe();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=qe();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=xe.bind(null,N,a);return[d.memoizedState,a]},useRef:Be,useState:ze,useDebugValue:Ke,useDeferredValue:function(a){var b=ze(a),c=b[0],d=b[1];Fe(function(){var b=ge.transition;ge.transition=1;try{d(a)}finally{ge.transition=\nb}},[a]);return c},useTransition:function(){var a=ze(!1),b=a[0];a=Ne.bind(null,a[1]);Be(a);return[a,b]},useMutableSource:function(a,b,c){var d=qe();d.memoizedState={refs:{getSnapshot:b,setSnapshot:null},source:a,subscribe:c};return we(d,a,b,c)},useOpaqueIdentifier:function(){if(Wd){var a=!1,b=Xa(function(){a||(a=!0,c(Ya()));throw Error(q(355));}),c=ze(b)[1];0===(N.mode&2)&&(N.flags|=516,Ae(5,function(){c(Ya())},void 0,null));return b}b=Ya();ze(b);return b},unstable_isNewReconciler:!1},ne={readContext:J,\nuseCallback:Le,useContext:J,useEffect:Ge,useImperativeHandle:Je,useLayoutEffect:He,useMemo:Me,useReducer:te,useRef:Ce,useState:function(){return te(se)},useDebugValue:Ke,useDeferredValue:function(a){var b=te(se),c=b[0],d=b[1];Ge(function(){var b=ge.transition;ge.transition=1;try{d(a)}finally{ge.transition=b}},[a]);return c},useTransition:function(){var a=te(se)[0];return[Ce().current,a]},useMutableSource:ye,useOpaqueIdentifier:function(){return te(se)[0]},unstable_isNewReconciler:!1},oe={readContext:J,\nuseCallback:Le,useContext:J,useEffect:Ge,useImperativeHandle:Je,useLayoutEffect:He,useMemo:Me,useReducer:ue,useRef:Ce,useState:function(){return ue(se)},useDebugValue:Ke,useDeferredValue:function(a){var b=ue(se),c=b[0],d=b[1];Ge(function(){var b=ge.transition;ge.transition=1;try{d(a)}finally{ge.transition=b}},[a]);return c},useTransition:function(){var a=ue(se)[0];return[Ce().current,a]},useMutableSource:ye,useOpaqueIdentifier:function(){return ue(se)[0]},unstable_isNewReconciler:!1},Oe=ca.ReactCurrentOwner,\ngd=!1;function S(a,b,c,d){b.child=null===a?Kd(b,null,c,d):Jd(b,a.child,c,d)}function Pe(a,b,c,d,e){c=c.render;var f=b.ref;fd(b,e);d=le(a,b,c,d,f,e);if(null!==a&&!gd)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,Re(a,b,e);b.flags|=1;S(a,b,d,e);return b.child}\nfunction Se(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!Te(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,Ue(a,b,g,d,e,f);a=Gd(c.type,null,d,b,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(0===(e&f)&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:Vc,c(e,d)&&a.ref===b.ref))return Re(a,b,f);b.flags|=1;a=Ed(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction Ue(a,b,c,d,e,f){if(null!==a&&Vc(a.memoizedProps,d)&&a.ref===b.ref)if(gd=!1,0!==(f&e))0!==(a.flags&16384)&&(gd=!0);else return b.lanes=a.lanes,Re(a,b,f);return Ve(a,b,c,d,f)}\nfunction We(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode||\"unstable-defer-without-hiding\"===d.mode)if(0===(b.mode&4))b.memoizedState={baseLanes:0},Xe(b,c);else if(0!==(c&1073741824))b.memoizedState={baseLanes:0},Xe(b,null!==f?f.baseLanes:c);else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a},Xe(b,a),null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,Xe(b,d);S(a,b,e,c);return b.child}\nfunction Ye(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=128}function Ve(a,b,c,d,e){var f=E(c)?Yb:B.current;f=Zb(b,f);fd(b,e);c=le(a,b,c,d,f,e);if(null!==a&&!gd)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,Re(a,b,e);b.flags|=1;S(a,b,c,e);return b.child}\nfunction Ze(a,b,c,d,e){if(E(c)){var f=!0;cc(b)}else f=!1;fd(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),xd(b,c,d),zd(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=J(l):(l=E(c)?Yb:B.current,l=Zb(b,l));var n=c.getDerivedStateFromProps,t=\"function\"===typeof n||\"function\"===typeof g.getSnapshotBeforeUpdate;t||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==\ntypeof g.componentWillReceiveProps||(h!==d||k!==l)&&yd(b,g,d,l);hd=!1;var p=b.memoizedState;g.state=p;od(b,d,g,e);k=b.memoizedState;h!==d||p!==k||D.current||hd?(\"function\"===typeof n&&(sd(b,c,n,d),k=b.memoizedState),(h=hd||wd(b,c,h,d,p,k,l))?(t||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&\n(b.flags|=4)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),d=!1)}else{g=b.stateNode;jd(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Xc(b.type,h);g.props=l;t=b.pendingProps;p=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=J(k):(k=E(c)?Yb:B.current,k=Zb(b,k));var y=c.getDerivedStateFromProps;(n=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==t||p!==k)&&yd(b,g,d,k);hd=!1;p=b.memoizedState;g.state=p;od(b,d,g,e);var x=b.memoizedState;h!==t||p!==x||D.current||hd?(\"function\"===typeof y&&(sd(b,c,y,d),x=b.memoizedState),(l=hd||wd(b,c,l,d,p,x,k))?(n||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,x,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,x,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&p===a.memoizedState||\n(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),d=!1)}return $e(a,b,c,d,f,e)}function $e(a,b,c,d,e,f){Ye(a,b);var g=0!==(b.flags&64);if(!d&&!g)return e&&dc(b,c,!1),Re(a,b,f);d=b.stateNode;Oe.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Jd(b,a.child,null,f),b.child=Jd(b,null,h,f)):S(a,b,h,f);b.memoizedState=d.state;e&&dc(b,c,!0);return b.child}\nfunction af(a){var b=a.stateNode;b.pendingContext?ac(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ac(a,b.context,!1);Pd(a,b.containerInfo)}var bf={dehydrated:null,retryLane:0};\nfunction cf(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g;(g=0!==(b.flags&64))||(g=null!==a&&null===a.memoizedState?!1:0!==(e&2));g?(f=!0,b.flags&=-65):null!==a&&null===a.memoizedState||void 0===d.fallback||!0===d.unstable_avoidThisFallback||(e|=1);A(M,e&1);if(null===a){void 0!==d.fallback&&$d(b);a=d.children;e=d.fallback;if(f)return a=df(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=bf,a;if(\"number\"===typeof d.unstable_expectedLoadTime)return a=df(b,a,e,c),b.child.memoizedState={baseLanes:c},\nb.memoizedState=bf,b.lanes=33554432,a;c=ef({mode:\"visible\",children:a},b.mode,c,null);c.return=b;return b.child=c}if(null!==a.memoizedState){if(f)return d=ff(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=bf,d;c=gf(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=ff(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:\n{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=bf,d;c=gf(a,b,d.children,c);b.memoizedState=null;return c}function df(a,b,c,d){var e=a.mode,f=a.child;b={mode:\"hidden\",children:b};0===(e&2)&&null!==f?(f.childLanes=0,f.pendingProps=b):f=ef(b,e,0,null);c=Id(c,e,d,null);f.return=a;c.return=a;f.sibling=c;a.child=f;return c}\nfunction gf(a,b,c,d){var e=a.child;a=e.sibling;c=Ed(e,{mode:\"visible\",children:c});0===(b.mode&2)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(a.nextEffect=null,a.flags=8,b.firstEffect=b.lastEffect=a);return b.child=c}\nfunction ff(a,b,c,d,e){var f=b.mode,g=a.child;a=g.sibling;var h={mode:\"hidden\",children:c};0===(f&2)&&b.child!==g?(c=b.child,c.childLanes=0,c.pendingProps=h,g=c.lastEffect,null!==g?(b.firstEffect=c.firstEffect,b.lastEffect=g,g.nextEffect=null):b.firstEffect=b.lastEffect=null):c=Ed(g,h);null!==a?d=Ed(a,d):(d=Id(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function hf(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);ed(a.return,b)}\nfunction jf(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailMode=e,g.lastEffect=f)}\nfunction kf(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;S(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=64;else{if(null!==a&&0!==(a.flags&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&hf(a,c);else if(19===a.tag)hf(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}A(M,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Td(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);jf(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Td(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}jf(b,!0,c,null,f,b.lastEffect);break;case \"together\":jf(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction Re(a,b,c){null!==a&&(b.dependencies=a.dependencies);pd|=b.lanes;if(0!==(c&b.childLanes)){if(null!==a&&b.child!==a.child)throw Error(q(153));if(null!==b.child){a=b.child;c=Ed(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Ed(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}return null}function lf(a){a.flags|=4}var mf,nf,of,pf;\nif(Ta)mf=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)Ja(a,c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}},nf=function(){},of=function(a,b,c,d,e){a=a.memoizedProps;if(a!==d){var f=b.stateNode,g=Od(L.current);c=La(f,c,a,d,e,g);(b.updateQueue=c)&&lf(b)}},pf=function(a,b,c,d){c!==d&&lf(b)};else if(Ua){mf=function(a,\nb,c,d){for(var e=b.child;null!==e;){if(5===e.tag){var f=e.stateNode;c&&d&&(f=Db(f,e.type,e.memoizedProps,e));Ja(a,f)}else if(6===e.tag)f=e.stateNode,c&&d&&(f=Eb(f,e.memoizedProps,e)),Ja(a,f);else if(4!==e.tag){if(13===e.tag&&0!==(e.flags&4)&&(f=null!==e.memoizedState)){var g=e.child;if(null!==g&&(null!==g.child&&(g.child.return=g,mf(a,g,!0,f)),f=g.sibling,null!==f)){f.return=e;e=f;continue}}if(null!==e.child){e.child.return=e;e=e.child;continue}}if(e===b)break;for(;null===e.sibling;){if(null===e.return||\ne.return===b)return;e=e.return}e.sibling.return=e.return;e=e.sibling}};var qf=function(a,b,c,d){for(var e=b.child;null!==e;){if(5===e.tag){var f=e.stateNode;c&&d&&(f=Db(f,e.type,e.memoizedProps,e));Ab(a,f)}else if(6===e.tag)f=e.stateNode,c&&d&&(f=Eb(f,e.memoizedProps,e)),Ab(a,f);else if(4!==e.tag){if(13===e.tag&&0!==(e.flags&4)&&(f=null!==e.memoizedState)){var g=e.child;if(null!==g&&(null!==g.child&&(g.child.return=g,qf(a,g,!0,f)),f=g.sibling,null!==f)){f.return=e;e=f;continue}}if(null!==e.child){e.child.return=\ne;e=e.child;continue}}if(e===b)break;for(;null===e.sibling;){if(null===e.return||e.return===b)return;e=e.return}e.sibling.return=e.return;e=e.sibling}};nf=function(a){var b=a.stateNode;if(null!==a.firstEffect){var c=b.containerInfo,d=zb(c);qf(d,a,!1,!1);b.pendingChildren=d;lf(a);Bb(c,d)}};of=function(a,b,c,d,e){var f=a.stateNode,g=a.memoizedProps;if((a=null===b.firstEffect)&&g===d)b.stateNode=f;else{var h=b.stateNode,k=Od(L.current),l=null;g!==d&&(l=La(h,c,g,d,e,k));a&&null===l?b.stateNode=f:(f=yb(f,\nl,c,g,d,b,a,h),Ka(f,c,d,e,k)&&lf(b),b.stateNode=f,a?lf(b):mf(f,b,!1,!1))}};pf=function(a,b,c,d){c!==d?(a=Od(Nd.current),c=Od(L.current),b.stateNode=Na(d,a,c,b),lf(b)):b.stateNode=a.stateNode}}else nf=function(){},of=function(){},pf=function(){};\nfunction rf(a,b){if(!Wd)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction sf(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return E(b.type)&&$b(),null;case 3:Qd();z(D);z(B);ee();d=b.stateNode;d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)be(b)?lf(b):d.hydrate||(b.flags|=256);nf(b);return null;case 5:Sd(b);var e=Od(Nd.current);c=b.type;if(null!==a&&null!=b.stateNode)of(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=128);else{if(!d){if(null===\nb.stateNode)throw Error(q(166));return null}a=Od(L.current);if(be(b)){if(!Va)throw Error(q(175));a=Lb(b.stateNode,b.type,b.memoizedProps,e,a,b);b.updateQueue=a;null!==a&&lf(b)}else{var f=Ia(c,d,e,a,b);mf(f,b,!1,!1);b.stateNode=f;Ka(f,c,d,e,a)&&lf(b)}null!==b.ref&&(b.flags|=128)}return null;case 6:if(a&&null!=b.stateNode)pf(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(q(166));a=Od(Nd.current);e=Od(L.current);if(be(b)){if(!Va)throw Error(q(176));Mb(b.stateNode,\nb.memoizedProps,b)&&lf(b)}else b.stateNode=Na(d,a,e,b)}return null;case 13:z(M);d=b.memoizedState;if(0!==(b.flags&64))return b.lanes=c,b;d=null!==d;e=!1;null===a?void 0!==b.memoizedProps.fallback&&be(b):e=null!==a.memoizedState;if(d&&!e&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(M.current&1))0===T&&(T=3);else{if(0===T||3===T)T=4;null===R||0===(pd&134217727)&&0===(tf&134217727)||uf(R,U)}Ua&&d&&(b.flags|=4);Ta&&(d||e)&&(b.flags|=4);return null;case 4:return Qd(),\nnf(b),null===a&&ab(b.stateNode.containerInfo),null;case 10:return dd(b),null;case 17:return E(b.type)&&$b(),null;case 19:z(M);d=b.memoizedState;if(null===d)return null;e=0!==(b.flags&64);f=d.rendering;if(null===f)if(e)rf(d,!1);else{if(0!==T||null!==a&&0!==(a.flags&64))for(a=b.child;null!==a;){f=Td(a);if(null!==f){b.flags|=64;rf(d,!1);a=f.updateQueue;null!==a&&(b.updateQueue=a,b.flags|=4);null===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;a=c;for(d=b.child;null!==d;)e=d,c=a,e.flags&=\n2,e.nextEffect=null,e.firstEffect=null,e.lastEffect=null,f=e.alternate,null===f?(e.childLanes=0,e.lanes=c,e.child=null,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=f.childLanes,e.lanes=f.lanes,e.child=f.child,e.memoizedProps=f.memoizedProps,e.memoizedState=f.memoizedState,e.updateQueue=f.updateQueue,e.type=f.type,c=f.dependencies,e.dependencies=null===c?null:{lanes:c.lanes,firstContext:c.firstContext}),d=d.sibling;A(M,M.current&1|\n2);return b.child}a=a.sibling}null!==d.tail&&G()>vf&&(b.flags|=64,e=!0,rf(d,!1),b.lanes=33554432)}else{if(!e)if(a=Td(f),null!==a){if(b.flags|=64,e=!0,a=a.updateQueue,null!==a&&(b.updateQueue=a,b.flags|=4),rf(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!f.alternate&&!Wd)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*G()-d.renderingStartTime>vf&&1073741824!==c&&(b.flags|=64,e=!0,rf(d,!1),b.lanes=33554432);d.isBackwards?(f.sibling=b.child,b.child=f):(a=d.last,null!==a?a.sibling=\nf:b.child=f,d.last=f)}return null!==d.tail?(a=d.tail,d.rendering=a,d.tail=a.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=G(),a.sibling=null,b=M.current,A(M,e?b&1|2:b&1),a):null;case 23:case 24:return wf(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(q(156,b.tag));}\nfunction xf(a){switch(a.tag){case 1:E(a.type)&&$b();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:Qd();z(D);z(B);ee();b=a.flags;if(0!==(b&64))throw Error(q(285));a.flags=b&-4097|64;return a;case 5:return Sd(a),null;case 13:return z(M),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return z(M),null;case 4:return Qd(),null;case 10:return dd(a),null;case 23:case 24:return wf(),null;default:return null}}\nfunction yf(a,b){try{var c=\"\",d=b;do c+=Wc(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function zf(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Af=\"function\"===typeof WeakMap?WeakMap:Map;function Bf(a,b,c){c=kd(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Cf||(Cf=!0,Df=d);zf(a,b)};return c}\nfunction Ef(a,b,c){c=kd(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){zf(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ff?Ff=new Set([this]):Ff.add(this),zf(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Gf=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Hf(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){If(a,c)}else b.current=null}\nfunction Jf(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:Xc(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:Ta&&b.flags&256&&xb(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(q(163));}\nfunction Kf(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.destroy;c.destroy=void 0;void 0!==d&&d()}c=c.next}while(c!==b)}}\nfunction Lf(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Mf(c,a),Nf(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:Xc(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&qd(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=Da(c.child.stateNode);break;case 1:a=c.child.stateNode}qd(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mb(a,c.type,c.memoizedProps,c);return;case 6:return;case 4:return;case 12:return;case 13:Va&&null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&\nPb(c))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(q(163));}\nfunction Of(a,b){if(Ta)for(var c=a;;){if(5===c.tag){var d=c.stateNode;b?tb(d):vb(c.stateNode,c.memoizedProps)}else if(6===c.tag)d=c.stateNode,b?ub(d):wb(d,c.memoizedProps);else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===a)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction Pf(a,b){if(fc&&\"function\"===typeof fc.onCommitFiberUnmount)try{fc.onCommitFiberUnmount(ec,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Mf(b,c);else{d=b;try{e()}catch(f){If(d,f)}}c=c.next}while(c!==a)}break;case 1:Hf(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){If(b,\nf)}break;case 5:Hf(b);break;case 4:Ta?Qf(a,b):Ua&&Ua&&(b=b.stateNode.containerInfo,a=zb(b),Cb(b,a))}}function Rf(a,b){for(var c=b;;)if(Pf(a,c),null===c.child||Ta&&4===c.tag){if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}else c.child.return=c,c=c.child}\nfunction Sf(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function Tf(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uf(a){if(Ta){a:{for(var b=a.return;null!==b;){if(Tf(b))break a;b=b.return}throw Error(q(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(q(161));}c.flags&16&&(sb(b),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Tf(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?Vf(a,c,b):Wf(a,c,b)}}function Vf(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?pb(c,a,b):kb(c,a);else if(4!==d&&(a=a.child,null!==a))for(Vf(a,b,c),a=a.sibling;null!==a;)Vf(a,b,c),a=a.sibling}\nfunction Wf(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?ob(c,a,b):jb(c,a);else if(4!==d&&(a=a.child,null!==a))for(Wf(a,b,c),a=a.sibling;null!==a;)Wf(a,b,c),a=a.sibling}\nfunction Qf(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(q(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag)Rf(a,c),f?rb(e,c.stateNode):qb(e,c.stateNode);else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(Pf(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;\nfor(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction Xf(a,b){if(Ta){switch(b.tag){case 0:case 11:case 14:case 15:case 22:Kf(3,b);return;case 1:return;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps;a=null!==a?a.memoizedProps:d;var e=b.type,f=b.updateQueue;b.updateQueue=null;null!==f&&nb(c,f,e,a,d,b)}return;case 6:if(null===b.stateNode)throw Error(q(162));c=b.memoizedProps;lb(b.stateNode,null!==a?a.memoizedProps:c,c);return;case 3:Va&&(b=b.stateNode,b.hydrate&&(b.hydrate=!1,Ob(b.containerInfo)));return;case 12:return;case 13:Yf(b);\nZf(b);return;case 19:Zf(b);return;case 17:return;case 23:case 24:Of(b,null!==b.memoizedState);return}throw Error(q(163));}switch(b.tag){case 0:case 11:case 14:case 15:case 22:Kf(3,b);return;case 12:return;case 13:Yf(b);Zf(b);return;case 19:Zf(b);return;case 3:Va&&(c=b.stateNode,c.hydrate&&(c.hydrate=!1,Ob(c.containerInfo)));break;case 23:case 24:return}a:if(Ua){switch(b.tag){case 1:case 5:case 6:case 20:break a;case 3:case 4:b=b.stateNode;Cb(b.containerInfo,b.pendingChildren);break a}throw Error(q(163));\n}}function Yf(a){null!==a.memoizedState&&($f=G(),Ta&&Of(a.child,!0))}function Zf(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Gf);b.forEach(function(b){var d=ag.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}function bg(a,b){return null!==a&&(a=a.memoizedState,null===a||null!==a.dehydrated)?(b=b.memoizedState,null!==b&&null===b.dehydrated):!1}var cg=0,dg=1,eg=2,fg=3,gg=4;\nif(\"function\"===typeof Symbol&&Symbol.for){var hg=Symbol.for;cg=hg(\"selector.component\");dg=hg(\"selector.has_pseudo_class\");eg=hg(\"selector.role\");fg=hg(\"selector.test_id\");gg=hg(\"selector.text\")}function ig(a){var b=Wa(a);if(null!=b){if(\"string\"!==typeof b.memoizedProps[\"data-testname\"])throw Error(q(364));return b}a=cb(a);if(null===a)throw Error(q(362));return a.stateNode.current}\nfunction jg(a,b){switch(b.$$typeof){case cg:if(a.type===b.value)return!0;break;case dg:a:{b=b.value;a=[a,0];for(var c=0;c<a.length;){var d=a[c++],e=a[c++],f=b[e];if(5!==d.tag||!fb(d)){for(;null!=f&&jg(d,f);)e++,f=b[e];if(e===b.length){b=!0;break a}else for(d=d.child;null!==d;)a.push(d,e),d=d.sibling}}b=!1}return b;case eg:if(5===a.tag&&gb(a.stateNode,b.value))return!0;break;case gg:if(5===a.tag||6===a.tag)if(a=eb(a),null!==a&&0<=a.indexOf(b.value))return!0;break;case fg:if(5===a.tag&&(a=a.memoizedProps[\"data-testname\"],\n\"string\"===typeof a&&a.toLowerCase()===b.value.toLowerCase()))return!0;break;default:throw Error(q(365,b));}return!1}function kg(a){switch(a.$$typeof){case cg:return\"<\"+(wa(a.value)||\"Unknown\")+\">\";case dg:return\":has(\"+(kg(a)||\"\")+\")\";case eg:return'[role=\"'+a.value+'\"]';case gg:return'\"'+a.value+'\"';case fg:return'[data-testname=\"'+a.value+'\"]';default:throw Error(q(365,a));}}\nfunction lg(a,b){var c=[];a=[a,0];for(var d=0;d<a.length;){var e=a[d++],f=a[d++],g=b[f];if(5!==e.tag||!fb(e)){for(;null!=g&&jg(e,g);)f++,g=b[f];if(f===b.length)c.push(e);else for(e=e.child;null!==e;)a.push(e,f),e=e.sibling}}return c}function mg(a,b){if(!bb)throw Error(q(363));a=ig(a);a=lg(a,b);b=[];a=Array.from(a);for(var c=0;c<a.length;){var d=a[c++];if(5===d.tag)fb(d)||b.push(d.stateNode);else for(d=d.child;null!==d;)a.push(d),d=d.sibling}return b}var ng=null;\nfunction og(a){if(null===ng)try{var b=(\"require\"+Math.random()).slice(0,7);ng=(module&&module[b]).call(module,\"timers\").setImmediate}catch(c){ng=function(a){var b=new MessageChannel;b.port1.onmessage=a;b.port2.postMessage(void 0)}}return ng(a)}var pg=Math.ceil,qg=ca.ReactCurrentDispatcher,rg=ca.ReactCurrentOwner,sg=ca.IsSomeRendererActing,V=0,R=null,W=null,U=0,tg=0,ug=Wb(0),T=0,vg=null,wg=0,pd=0,tf=0,xg=0,yg=null,$f=0,vf=Infinity;function zg(){vf=G()+500}\nvar X=null,Cf=!1,Df=null,Ff=null,Ag=!1,Bg=null,Cg=90,Dg=[],Eg=[],Fg=null,Gg=0,Hg=null,Ig=-1,Jg=0,Kg=0,Lg=null,Mg=!1;function K(){return 0!==(V&48)?G():-1!==Ig?Ig:Ig=G()}function td(a){a=a.mode;if(0===(a&2))return 1;if(0===(a&4))return 99===Nc()?1:2;0===Jg&&(Jg=wg);if(0!==Sc.transition){0!==Kg&&(Kg=null!==yg?yg.pendingLanes:0);a=Jg;var b=4186112&~Kg;b&=-b;0===b&&(a=4186112&~a,b=a&-a,0===b&&(b=8192));return b}a=Nc();0!==(V&4)&&98===a?a=oc(12,Jg):(a=jc(a),a=oc(a,Jg));return a}\nfunction ud(a,b,c){if(50<Gg)throw Gg=0,Hg=null,Error(q(185));a=Ng(a,b);if(null===a)return null;rc(a,b,c);a===R&&(tf|=b,4===T&&uf(a,U));var d=Nc();1===b?0!==(V&8)&&0===(V&48)?Og(a):(Z(a,c),0===V&&(zg(),H())):(0===(V&4)||98!==d&&99!==d||(null===Fg?Fg=new Set([a]):Fg.add(a)),Z(a,c));yg=a}function Ng(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}\nfunction Z(a,b){for(var c=a.callbackNode,d=a.suspendedLanes,e=a.pingedLanes,f=a.expirationTimes,g=a.pendingLanes;0<g;){var h=31-mc(g),k=1<<h,l=f[h];if(-1===l){if(0===(k&d)||0!==(k&e)){l=b;ic(k);var n=F;f[h]=10<=n?l+250:6<=n?l+5E3:-1}}else l<=b&&(a.expiredLanes|=k);g&=~k}d=lc(a,a===R?U:0);b=F;if(0===d)null!==c&&(c!==Hc&&xc(c),a.callbackNode=null,a.callbackPriority=0);else{if(null!==c){if(a.callbackPriority===b)return;c!==Hc&&xc(c)}15===b?(c=Og.bind(null,a),null===Jc?(Jc=[c],Kc=wc(Cc,Rc)):Jc.push(c),\nc=Hc):14===b?c=Qc(99,Og.bind(null,a)):(c=kc(b),c=Qc(c,Pg.bind(null,a)));a.callbackPriority=b;a.callbackNode=c}}\nfunction Pg(a){Ig=-1;Kg=Jg=0;if(0!==(V&48))throw Error(q(327));var b=a.callbackNode;if(Qg()&&a.callbackNode!==b)return null;var c=lc(a,a===R?U:0);if(0===c)return null;var d=c;var e=V;V|=16;var f=Rg();if(R!==a||U!==d)zg(),Sg(a,d);do try{Tg();break}catch(h){Ug(a,h)}while(1);bd();qg.current=f;V=e;null!==W?d=0:(R=null,U=0,d=T);if(0!==(wg&tf))Sg(a,0);else if(0!==d){2===d&&(V|=64,a.hydrate&&(a.hydrate=!1,xb(a.containerInfo)),c=nc(a),0!==c&&(d=Vg(a,c)));if(1===d)throw b=vg,Sg(a,0),uf(a,c),Z(a,G()),b;a.finishedWork=\na.current.alternate;a.finishedLanes=c;switch(d){case 0:case 1:throw Error(q(345));case 2:Zg(a);break;case 3:uf(a,c);if((c&62914560)===c&&(d=$f+500-G(),10<d)){if(0!==lc(a,0))break;e=a.suspendedLanes;if((e&c)!==c){K();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Pa(Zg.bind(null,a),d);break}Zg(a);break;case 4:uf(a,c);if((c&4186112)===c)break;d=a.eventTimes;for(e=-1;0<c;){var g=31-mc(c);f=1<<g;g=d[g];g>e&&(e=g);c&=~f}c=e;c=G()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*pg(c/1960))-c;if(10<c){a.timeoutHandle=Pa(Zg.bind(null,a),c);break}Zg(a);break;case 5:Zg(a);break;default:throw Error(q(329));}}Z(a,G());return a.callbackNode===b?Pg.bind(null,a):null}function uf(a,b){b&=~xg;b&=~tf;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-mc(b),d=1<<c;a[c]=-1;b&=~d}}\nfunction Og(a){if(0!==(V&48))throw Error(q(327));Qg();if(a===R&&0!==(a.expiredLanes&U)){var b=U;var c=Vg(a,b);0!==(wg&tf)&&(b=lc(a,b),c=Vg(a,b))}else b=lc(a,0),c=Vg(a,b);0!==a.tag&&2===c&&(V|=64,a.hydrate&&(a.hydrate=!1,xb(a.containerInfo)),b=nc(a),0!==b&&(c=Vg(a,b)));if(1===c)throw c=vg,Sg(a,0),uf(a,b),Z(a,G()),c;a.finishedWork=a.current.alternate;a.finishedLanes=b;Zg(a);Z(a,G());return null}\nfunction $g(){if(null!==Fg){var a=Fg;Fg=null;a.forEach(function(a){a.expiredLanes|=24&a.pendingLanes;Z(a,G())})}H()}function ah(a,b){var c=V;V|=1;try{return a(b)}finally{V=c,0===V&&(zg(),H())}}function bh(a,b){var c=V;if(0!==(c&48))return a(b);V|=1;try{if(a)return Pc(99,a.bind(null,b))}finally{V=c,H()}}function Xe(a,b){A(ug,tg);tg|=b;wg|=b}function wf(){tg=ug.current;z(ug)}\nfunction Sg(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;c!==Ra&&(a.timeoutHandle=Ra,Qa(c));if(null!==W)for(c=W.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$b();break;case 3:Qd();z(D);z(B);ee();break;case 5:Sd(d);break;case 4:Qd();break;case 13:z(M);break;case 19:z(M);break;case 10:dd(d);break;case 23:case 24:wf()}c=c.return}R=a;W=Ed(a.current,null);U=tg=wg=b;T=0;vg=null;xg=tf=pd=0}\nfunction Ug(a,b){do{var c=W;try{bd();fe.current=pe;if(ie){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}ie=!1}he=0;P=O=N=null;je=!1;rg.current=null;if(null===c||null===c.return){T=1;vg=b;W=null;break}a:{var f=a,g=c.return,h=c,k=b;b=U;h.flags|=2048;h.firstEffect=h.lastEffect=null;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k;if(0===(h.mode&2)){var n=h.alternate;n?(h.updateQueue=n.updateQueue,h.memoizedState=n.memoizedState,h.lanes=n.lanes):\n(h.updateQueue=null,h.memoizedState=null)}var t=0!==(M.current&1),p=g;do{var y;if(y=13===p.tag){var x=p.memoizedState;if(null!==x)y=null!==x.dehydrated?!0:!1;else{var Y=p.memoizedProps;y=void 0===Y.fallback?!1:!0!==Y.unstable_avoidThisFallback?!0:t?!1:!0}}if(y){var u=p.updateQueue;if(null===u){var v=new Set;v.add(l);p.updateQueue=v}else u.add(l);if(0===(p.mode&2)){p.flags|=64;h.flags|=16384;h.flags&=-2981;if(1===h.tag)if(null===h.alternate)h.tag=17;else{var C=kd(-1,1);C.tag=2;md(h,C)}h.lanes|=1;break a}k=\nvoid 0;h=b;var Oa=f.pingCache;null===Oa?(Oa=f.pingCache=new Af,k=new Set,Oa.set(l,k)):(k=Oa.get(l),void 0===k&&(k=new Set,Oa.set(l,k)));if(!k.has(h)){k.add(h);var Qe=ch.bind(null,f,l,h);l.then(Qe,Qe)}p.flags|=4096;p.lanes=b;break a}p=p.return}while(null!==p);k=Error((wa(h.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==T&&(T=2);k=\nyf(k,h);p=g;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var Wg=Bf(p,f,b);nd(p,Wg);break a;case 1:f=k;var Xg=p.type,ld=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof Xg.getDerivedStateFromError||null!==ld&&\"function\"===typeof ld.componentDidCatch&&(null===Ff||!Ff.has(ld)))){p.flags|=4096;b&=-b;p.lanes|=b;var Yg=Ef(p,f,b);nd(p,Yg);break a}}p=p.return}while(null!==p)}dh(c)}catch(w){b=w;W===c&&null!==c&&(W=c=c.return);continue}break}while(1)}\nfunction Rg(){var a=qg.current;qg.current=pe;return null===a?pe:a}function Vg(a,b){var c=V;V|=16;var d=Rg();R===a&&U===b||Sg(a,b);do try{eh();break}catch(e){Ug(a,e)}while(1);bd();V=c;qg.current=d;if(null!==W)throw Error(q(261));R=null;U=0;return T}function eh(){for(;null!==W;)fh(W)}function Tg(){for(;null!==W&&!yc();)fh(W)}function fh(a){var b=gh(a.alternate,a,tg);a.memoizedProps=a.pendingProps;null===b?dh(a):W=b;rg.current=null}\nfunction dh(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=sf(c,b,tg);if(null!==c){W=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(tg&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1<b.flags&&(null!==\na.lastEffect?a.lastEffect.nextEffect=b:a.firstEffect=b,a.lastEffect=b))}else{c=xf(b);if(null!==c){c.flags&=2047;W=c;return}null!==a&&(a.firstEffect=a.lastEffect=null,a.flags|=2048)}b=b.sibling;if(null!==b){W=b;return}W=b=a}while(null!==b);0===T&&(T=5)}function Zg(a){var b=Nc();Pc(99,hh.bind(null,a,b));return null}\nfunction hh(a,b){do Qg();while(null!==Bg);if(0!==(V&48))throw Error(q(327));var c=a.finishedWork;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(q(177));a.callbackNode=null;var d=c.lanes|c.childLanes,e=d,f=a.pendingLanes&~e;a.pendingLanes=e;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=e;a.mutableReadLanes&=e;a.entangledLanes&=e;e=a.entanglements;for(var g=a.eventTimes,h=a.expirationTimes;0<f;){var k=31-mc(f),l=1<<k;e[k]=0;g[k]=-1;h[k]=-1;f&=~l}null!==\nFg&&0===(d&24)&&Fg.has(a)&&Fg.delete(a);a===R&&(W=R=null,U=0);1<c.flags?null!==c.lastEffect?(c.lastEffect.nextEffect=c,d=c.firstEffect):d=c:d=c.firstEffect;if(null!==d){e=V;V|=32;rg.current=null;Lg=Ga(a.containerInfo);Mg=!1;X=d;do try{ih()}catch(v){if(null===X)throw Error(q(330));If(X,v);X=X.nextEffect}while(null!==X);Lg=null;X=d;do try{for(g=a;null!==X;){var n=X.flags;n&16&&Ta&&sb(X.stateNode);if(n&128){var t=X.alternate;if(null!==t){var p=t.ref;null!==p&&(\"function\"===typeof p?p(null):p.current=\nnull)}}switch(n&1038){case 2:Uf(X);X.flags&=-3;break;case 6:Uf(X);X.flags&=-3;Xf(X.alternate,X);break;case 1024:X.flags&=-1025;break;case 1028:X.flags&=-1025;Xf(X.alternate,X);break;case 4:Xf(X.alternate,X);break;case 8:h=g;f=X;Ta?Qf(h,f):Rf(h,f);var y=f.alternate;Sf(f);null!==y&&Sf(y)}X=X.nextEffect}}catch(v){if(null===X)throw Error(q(330));If(X,v);X=X.nextEffect}while(null!==X);Mg&&$a();Ha(a.containerInfo);a.current=c;X=d;do try{for(n=a;null!==X;){var x=X.flags;x&36&&Lf(n,X.alternate,X);if(x&128){t=\nvoid 0;var Y=X.ref;if(null!==Y){var u=X.stateNode;switch(X.tag){case 5:t=Da(u);break;default:t=u}\"function\"===typeof Y?Y(t):Y.current=t}}X=X.nextEffect}}catch(v){if(null===X)throw Error(q(330));If(X,v);X=X.nextEffect}while(null!==X);X=null;Ic();V=e}else a.current=c;if(Ag)Ag=!1,Bg=a,Cg=b;else for(X=d;null!==X;)b=X.nextEffect,X.nextEffect=null,X.flags&8&&(x=X,x.sibling=null,x.stateNode=null),X=b;d=a.pendingLanes;0===d&&(Ff=null);1===d?a===Hg?Gg++:(Gg=0,Hg=a):Gg=0;c=c.stateNode;if(fc&&\"function\"===typeof fc.onCommitFiberRoot)try{fc.onCommitFiberRoot(ec,\nc,void 0,64===(c.current.flags&64))}catch(v){}Z(a,G());if(Cf)throw Cf=!1,a=Df,Df=null,a;if(0!==(V&8))return null;H();return null}function ih(){for(;null!==X;){var a=X.alternate;Mg||null===Lg||(0!==(X.flags&8)?Ca(X,Lg)&&(Mg=!0,Za()):13===X.tag&&bg(a,X)&&Ca(X,Lg)&&(Mg=!0,Za()));var b=X.flags;0!==(b&256)&&Jf(a,X);0===(b&512)||Ag||(Ag=!0,Qc(97,function(){Qg();return null}));X=X.nextEffect}}function Qg(){if(90!==Cg){var a=97<Cg?97:Cg;Cg=90;return Pc(a,jh)}return!1}\nfunction Nf(a,b){Dg.push(b,a);Ag||(Ag=!0,Qc(97,function(){Qg();return null}))}function Mf(a,b){Eg.push(b,a);Ag||(Ag=!0,Qc(97,function(){Qg();return null}))}\nfunction jh(){if(null===Bg)return!1;var a=Bg;Bg=null;if(0!==(V&48))throw Error(q(331));var b=V;V|=32;var c=Eg;Eg=[];for(var d=0;d<c.length;d+=2){var e=c[d],f=c[d+1],g=e.destroy;e.destroy=void 0;if(\"function\"===typeof g)try{g()}catch(k){if(null===f)throw Error(q(330));If(f,k)}}c=Dg;Dg=[];for(d=0;d<c.length;d+=2){e=c[d];f=c[d+1];try{var h=e.create;e.destroy=h()}catch(k){if(null===f)throw Error(q(330));If(f,k)}}for(h=a.current.firstEffect;null!==h;)a=h.nextEffect,h.nextEffect=null,h.flags&8&&(h.sibling=\nnull,h.stateNode=null),h=a;V=b;H();return!0}function kh(a,b,c){b=yf(c,b);b=Bf(a,b,1);md(a,b);b=K();a=Ng(a,1);null!==a&&(rc(a,1,b),Z(a,b))}\nfunction If(a,b){if(3===a.tag)kh(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){kh(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ff||!Ff.has(d))){a=yf(b,a);var e=Ef(c,a,1);md(c,e);e=K();c=Ng(c,1);if(null!==c)rc(c,1,e),Z(c,e);else if(\"function\"===typeof d.componentDidCatch&&(null===Ff||!Ff.has(d)))try{d.componentDidCatch(b,a)}catch(f){}break}}c=c.return}}\nfunction ch(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=K();a.pingedLanes|=a.suspendedLanes&c;R===a&&(U&c)===c&&(4===T||3===T&&(U&62914560)===U&&500>G()-$f?Sg(a,0):xg|=c);Z(a,b)}function ag(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===Nc()?1:2:(0===Jg&&(Jg=wg),b=pc(62914560&~Jg),0===b&&(b=4194304)));c=K();a=Ng(a,b);null!==a&&(rc(a,b,c),Z(a,c))}var gh;\ngh=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||D.current)gd=!0;else if(0!==(c&d))gd=0!==(a.flags&16384)?!0:!1;else{gd=!1;switch(b.tag){case 3:af(b);ce();break;case 5:Rd(b);break;case 1:E(b.type)&&cc(b);break;case 4:Pd(b,b.stateNode.containerInfo);break;case 10:cd(b,b.memoizedProps.value);break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return cf(a,b,c);A(M,M.current&1);b=Re(a,b,c);return null!==b?b.sibling:null}A(M,M.current&1);break;case 19:d=\n0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return kf(a,b,c);b.flags|=64}var e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);A(M,M.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,We(a,b,c)}return Re(a,b,c)}else gd=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Zb(b,B.current);fd(b,c);e=le(null,b,d,a,e,c);b.flags|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&\nvoid 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(E(d)){var f=!0;cc(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;id(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&sd(b,d,g,a);e.updater=vd;b.stateNode=e;e._reactInternals=b;zd(b,d,a,c);b=$e(null,b,d,!0,f,c)}else b.tag=0,S(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;\nf=b.tag=lh(e);a=Xc(e,a);switch(f){case 0:b=Ve(null,b,e,a,c);break a;case 1:b=Ze(null,b,e,a,c);break a;case 11:b=Pe(null,b,e,a,c);break a;case 14:b=Se(null,b,e,Xc(e.type,a),d,c);break a}throw Error(q(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Xc(d,e),Ve(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Xc(d,e),Ze(a,b,d,e,c);case 3:af(b);d=b.updateQueue;if(null===a||null===d)throw Error(q(282));d=b.pendingProps;e=b.memoizedState;e=null!==\ne?e.element:null;jd(a,b);od(b,d,null,c);d=b.memoizedState.element;if(d===e)ce(),b=Re(a,b,c);else{e=b.stateNode;if(f=e.hydrate)Va?(Vd=Kb(b.stateNode.containerInfo),Ud=b,f=Wd=!0):f=!1;if(f){if(Va&&(a=e.mutableSourceEagerHydrationData,null!=a))for(e=0;e<a.length;e+=2)f=a[e],g=a[e+1],Sa?f._workInProgressVersionPrimary=g:f._workInProgressVersionSecondary=g,de.push(f);c=Kd(b,null,d,c);for(b.child=c;c;)c.flags=c.flags&-3|1024,c=c.sibling}else S(a,b,d,c),ce();b=b.child}return b;case 5:return Rd(b),null===\na&&$d(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ma(d,e)?g=null:null!==f&&Ma(d,f)&&(b.flags|=16),Ye(a,b),S(a,b,g,c),b.child;case 6:return null===a&&$d(b),null;case 13:return cf(a,b,c);case 4:return Pd(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Jd(b,null,d,c):S(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Xc(d,e),Pe(a,b,d,e,c);case 7:return S(a,b,b.pendingProps,c),b.child;case 8:return S(a,b,b.pendingProps.children,\nc),b.child;case 12:return S(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;cd(b,f);if(null!==g){var h=g.value;f=I(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!D.current){b=Re(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==\n(l.observedBits&f)){1===h.tag&&(l=kd(-1,c&-c),l.tag=2,md(h,l));h.lanes|=c;l=h.alternate;null!==l&&(l.lanes|=c);ed(h.return,c);k.lanes|=c;break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=g}}S(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,fd(b,c),e=J(e,f.unstable_observedBits),d=d(e),b.flags|=1,S(a,b,\nd,c),b.child;case 14:return e=b.type,f=Xc(e,b.pendingProps),f=Xc(e.type,f),Se(a,b,e,f,d,c);case 15:return Ue(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Xc(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,E(d)?(a=!0,cc(b)):a=!1,fd(b,c),xd(b,d,e),zd(b,d,e,c),$e(null,b,d,!0,a,c);case 19:return kf(a,b,c);case 23:return We(a,b,c);case 24:return We(a,b,c)}throw Error(q(156,b.tag));};\nvar mh={current:!1},nh=m.unstable_flushAllWithoutAsserting,oh=\"function\"===typeof nh;function ph(){if(void 0!==nh)return nh();for(var a=!1;Qg();)a=!0;return a}function qh(a){try{ph(),og(function(){ph()?qh(a):a()})}catch(b){a(b)}}var rh=0,sh=!1;\nfunction th(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.flags=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childLanes=this.lanes=0;this.alternate=null}function Yd(a,b,c,d){return new th(a,b,c,d)}function Te(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction lh(a){if(\"function\"===typeof a)return Te(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===la)return 11;if(a===oa)return 14}return 2}\nfunction Ed(a,b){var c=a.alternate;null===c?(c=Yd(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Gd(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)Te(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case fa:return Id(c.children,e,f,b);case ra:g=8;e|=16;break;case ha:g=8;e|=1;break;case ia:return a=Yd(12,c,b,e|8),a.elementType=ia,a.type=ia,a.lanes=f,a;case ma:return a=Yd(13,c,b,e),a.type=ma,a.elementType=ma,a.lanes=f,a;case na:return a=Yd(19,c,b,e),a.elementType=na,a.lanes=f,a;case sa:return ef(c,e,f,b);case ta:return a=Yd(24,c,b,e),a.elementType=ta,a.lanes=f,a;default:if(\"object\"===\ntypeof a&&null!==a)switch(a.$$typeof){case ja:g=10;break a;case ka:g=9;break a;case la:g=11;break a;case oa:g=14;break a;case pa:g=16;d=null;break a;case qa:g=22;break a}throw Error(q(130,null==a?a:typeof a,\"\"));}b=Yd(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Id(a,b,c,d){a=Yd(7,a,d,b);a.lanes=c;return a}function ef(a,b,c,d){a=Yd(23,a,d,b);a.elementType=sa;a.lanes=c;return a}function Fd(a,b,c){a=Yd(6,a,null,b);a.lanes=c;return a}\nfunction Hd(a,b,c){b=Yd(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction uh(a,b,c){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=Ra;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=0;this.eventTimes=qc(0);this.expirationTimes=qc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=qc(0);Va&&(this.mutableSourceEagerHydrationData=null)}\nfunction vh(a){var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(q(188));throw Error(q(268,Object.keys(a)));}a=Aa(b);return null===a?null:a.stateNode}function wh(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function xh(a,b){wh(a,b);(a=a.alternate)&&wh(a,b)}function yh(a){a=Aa(a);return null===a?null:a.stateNode}function zh(){return null}exports.IsThisRendererActing=mh;\nexports.act=function(a){function b(){rh--;sg.current=c;mh.current=d}!1===sh&&(sh=!0,console.error(\"act(...) is not supported in production builds of React, and might not behave as expected.\"));rh++;var c=sg.current,d=mh.current;sg.current=!0;mh.current=!0;try{var e=ah(a)}catch(f){throw b(),f;}if(null!==e&&\"object\"===typeof e&&\"function\"===typeof e.then)return{then:function(a,d){e.then(function(){1<rh||!0===oh&&!0===c?(b(),a()):qh(function(c){b();c?d(c):a()})},function(a){b();d(a)})}};try{1!==rh||\n!1!==oh&&!1!==c||ph(),b()}catch(f){throw b(),f;}return{then:function(a){a()}}};exports.attemptContinuousHydration=function(a){if(13===a.tag){var b=K();ud(a,67108864,b);xh(a,67108864)}};exports.attemptHydrationAtCurrentPriority=function(a){if(13===a.tag){var b=K(),c=td(a);ud(a,c,b);xh(a,c)}};\nexports.attemptSynchronousHydration=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.hydrate){var c=ic(b.pendingLanes);b.expiredLanes|=c&b.pendingLanes;Z(b,G());0===(V&48)&&(zg(),H())}break;case 13:var d=K();bh(function(){return ud(a,1,d)});xh(a,4)}};exports.attemptUserBlockingHydration=function(a){if(13===a.tag){var b=K();ud(a,4,b);xh(a,4)}};exports.batchedEventUpdates=function(a,b){var c=V;V|=2;try{return a(b)}finally{V=c,0===V&&(zg(),H())}};exports.batchedUpdates=ah;\nexports.createComponentSelector=function(a){return{$$typeof:cg,value:a}};exports.createContainer=function(a,b,c){a=new uh(a,b,c);b=Yd(3,null,null,2===b?7:1===b?3:0);a.current=b;b.stateNode=a;id(b);return a};exports.createHasPsuedoClassSelector=function(a){return{$$typeof:dg,value:a}};exports.createPortal=function(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:ea,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}};\nexports.createRoleSelector=function(a){return{$$typeof:eg,value:a}};exports.createTestNameSelector=function(a){return{$$typeof:fg,value:a}};exports.createTextSelector=function(a){return{$$typeof:gg,value:a}};exports.deferredUpdates=function(a){return Pc(97,a)};exports.discreteUpdates=function(a,b,c,d,e){var f=V;V|=4;try{return Pc(98,a.bind(null,b,c,d,e))}finally{V=f,0===V&&(zg(),H())}};exports.findAllNodes=mg;\nexports.findBoundingRects=function(a,b){if(!bb)throw Error(q(363));b=mg(a,b);a=[];for(var c=0;c<b.length;c++)a.push(db(b[c]));for(b=a.length-1;0<b;b--){c=a[b];for(var d=c.x,e=d+c.width,f=c.y,g=f+c.height,h=b-1;0<=h;h--)if(b!==h){var k=a[h],l=k.x,n=l+k.width,t=k.y,p=t+k.height;if(d>=l&&f>=t&&e<=n&&g<=p){a.splice(b,1);break}else if(!(d!==l||c.width!==k.width||p<f||t>g)){t>f&&(k.height+=t-f,k.y=f);p<g&&(k.height=g-t);a.splice(b,1);break}else if(!(f!==t||c.height!==k.height||n<d||l>e)){l>d&&(k.width+=\nl-d,k.x=d);n<e&&(k.width=e-l);a.splice(b,1);break}}}return a};exports.findHostInstance=vh;exports.findHostInstanceWithNoPortals=function(a){a=Ba(a);return null===a?null:20===a.tag?a.stateNode.instance:a.stateNode};exports.findHostInstanceWithWarning=function(a){return vh(a)};exports.flushControlled=function(a){var b=V;V|=1;try{Pc(99,a)}finally{V=b,0===V&&(zg(),H())}};exports.flushDiscreteUpdates=function(){0===(V&49)&&($g(),Qg())};exports.flushPassiveEffects=Qg;exports.flushSync=bh;\nexports.focusWithin=function(a,b){if(!bb)throw Error(q(363));a=ig(a);b=lg(a,b);b=Array.from(b);for(a=0;a<b.length;){var c=b[a++];if(!fb(c)){if(5===c.tag&&hb(c.stateNode))return!0;for(c=c.child;null!==c;)b.push(c),c=c.sibling}}return!1};exports.getCurrentUpdateLanePriority=function(){return hc};\nexports.getFindAllNodesFailureDescription=function(a,b){if(!bb)throw Error(q(363));var c=0,d=[];a=[ig(a),0];for(var e=0;e<a.length;){var f=a[e++],g=a[e++],h=b[g];if(5!==f.tag||!fb(f))if(jg(f,h)&&(d.push(kg(h)),g++,g>c&&(c=g)),g<b.length)for(f=f.child;null!==f;)a.push(f,g),f=f.sibling}if(c<b.length){for(a=[];c<b.length;c++)a.push(kg(b[c]));return\"findAllNodes was able to match part of the selector:\\n \"+(d.join(\" > \")+\"\\n\\nNo matching component was found for:\\n \")+a.join(\" > \")}return null};\nexports.getPublicRootInstance=function(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return Da(a.child.stateNode);default:return a.child.stateNode}};\nexports.injectIntoDevTools=function(a){a={bundleType:a.bundleType,version:a.version,rendererPackageName:a.rendererPackageName,rendererConfig:a.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ca.ReactCurrentDispatcher,findHostInstanceByFiber:yh,findFiberByHostInstance:a.findFiberByHostInstance||zh,findHostInstancesForRefresh:null,\nscheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)a=!1;else{var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!b.isDisabled&&b.supportsFiber)try{ec=b.inject(a),fc=b}catch(c){}a=!0}return a};exports.observeVisibleRects=function(a,b,c,d){if(!bb)throw Error(q(363));a=mg(a,b);var e=ib(a,c,d).disconnect;return{disconnect:function(){e()}}};\nexports.registerMutableSourceForHydration=function(a,b){var c=b._getVersion;c=c(b._source);null==a.mutableSourceEagerHydrationData?a.mutableSourceEagerHydrationData=[b,c]:a.mutableSourceEagerHydrationData.push(b,c)};exports.runWithPriority=function(a,b){var c=hc;try{return hc=a,b()}finally{hc=c}};exports.shouldSuspend=function(){return!1};exports.unbatchedUpdates=function(a,b){var c=V;V&=-2;V|=8;try{return a(b)}finally{V=c,0===V&&(zg(),H())}};\nexports.updateContainer=function(a,b,c,d){var e=b.current,f=K(),g=td(e);a:if(c){c=c._reactInternals;b:{if(xa(c)!==c||1!==c.tag)throw Error(q(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(E(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(q(171));}if(1===c.tag){var k=c.type;if(E(k)){c=bc(c,k,h);break a}}c=h}else c=Xb;null===b.context?b.context=c:b.pendingContext=c;b=kd(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);md(e,b);ud(e,g,f);return g};\n\n return exports;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-reconciler.production.min.js');\n} else {\n module.exports = require('./cjs/react-reconciler.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import * as jsxRuntime from \"/home/runner/work/react-iiif-vault/react-iiif-vault/node_modules/react/jsx-runtime.js\"\nexport const jsx = jsxRuntime.jsx\nexport const jsxs = jsxRuntime.jsxs\nexport const Fragment = jsxRuntime.Fragment","import React, { useContext, useState, useRef, useEffect, useMemo, useCallback, useLayoutEffect, version } from \"react\";\nimport Reconciler from \"react-reconciler\";\nimport { jsx, jsxs, Fragment } from \"react/jsx-runtime\";\nconst supportedEventAttributes = [\n \"onMouseDown\",\n \"onMouseEnter\",\n \"onMouseLeave\",\n \"onMouseMove\",\n \"onMouseOut\",\n \"onMouseOver\",\n \"onMouseUp\",\n \"onTouchCancel\",\n \"onTouchEnd\",\n \"onTouchMove\",\n \"onTouchStart\",\n \"onPointerDown\",\n \"onPointerMove\",\n \"onPointerUp\",\n \"onPointerCancel\",\n \"onPointerEnter\",\n \"onPointerLeave\",\n \"onPointerOver\",\n \"onPointerOut\",\n \"onScroll\",\n \"onWheel\",\n \"onClick\",\n \"onDragStart\",\n \"onDragEnd\",\n \"onDragEnter\",\n \"onDragExit\",\n \"onDrag\",\n \"onDragOver\"\n];\nfunction createDefaultEventMap() {\n return supportedEventAttributes.reduce((acc, next) => {\n acc[next] = [];\n return acc;\n }, {});\n}\nconst supportedEventMap = supportedEventAttributes.reduce((acc, ev) => {\n acc[ev.slice(2).toLowerCase()] = ev;\n acc[ev] = ev;\n return acc;\n}, {});\nconst hidePointsOutsideRegion = (points, target, buffer) => {\n const len = points.length;\n const ret = buffer ? buffer : dna(len);\n for (let index = 0; index < len; index++) {\n ret[index] = index % 5 === 0 ? points[index + 1] < target[3] && points[index + 3] > target[1] && points[index + 2] < target[4] && points[index + 4] > target[2] ? 1 : 0 : points[index];\n }\n return ret;\n};\nfunction dna(buffer, byteOffset, length) {\n return new Float32Array(buffer, byteOffset, length);\n}\nconst getIntersection = (boxA, boxB, buffer) => {\n const intersects = boxA[1] <= boxB[3] && boxA[3] >= boxB[1] && boxA[2] <= boxB[4] && boxA[4] >= boxB[2];\n const mem = buffer ? buffer : dna(5);\n if (!intersects) {\n mem[0] = 0;\n mem[1] = 0;\n mem[2] = 0;\n mem[3] = 0;\n mem[4] = 0;\n return mem;\n }\n mem[0] = 1;\n mem[1] = Math.max(boxA[1], boxB[1]);\n mem[2] = Math.max(boxA[2], boxB[2]);\n mem[3] = Math.min(boxA[3], boxB[3]);\n mem[4] = Math.min(boxA[4], boxB[4]);\n return mem;\n};\nconst dnaLength = (points) => points.length / 5;\nconst compose = (transformA, transformB, buffer) => {\n const mem = buffer ? buffer : dna(9);\n mem[0] = transformA[0] * transformB[0] + transformA[1] * transformB[3] + transformA[2] * transformB[6];\n mem[1] = transformA[0] * transformB[1] + transformA[1] * transformB[4] + transformA[2] * transformB[7];\n mem[2] = transformA[0] * transformB[2] + transformA[1] * transformB[5] + transformA[2] * transformB[8];\n mem[3] = transformA[3] * transformB[0] + transformA[4] * transformB[3] + transformA[5] * transformB[6];\n mem[4] = transformA[3] * transformB[1] + transformA[4] * transformB[4] + transformA[5] * transformB[7];\n mem[5] = transformA[3] * transformB[2] + transformA[4] * transformB[5] + transformA[5] * transformB[8];\n mem[6] = transformA[6] * transformB[0] + transformA[7] * transformB[3] + transformA[8] * transformB[6];\n mem[7] = transformA[6] * transformB[1] + transformA[7] * transformB[4] + transformA[8] * transformB[7];\n mem[8] = transformA[6] * transformB[2] + transformA[7] * transformB[5] + transformA[8] * transformB[8];\n return mem;\n};\nclass DnaFactory {\n constructor(length) {\n this.index = 0;\n this.length = length;\n this.points = dna(this.length);\n }\n static grid(columns = 1, rows = 1) {\n return new DnaFactory(5 * columns * rows);\n }\n static point(x2, y2) {\n const point = dna(5);\n point[0] = 1;\n point[1] = x2;\n point[2] = y2;\n point[3] = x2;\n point[4] = y2;\n return point;\n }\n static positionPair(positionPair) {\n const pair = dna(5);\n pair[0] = 1;\n pair[1] = positionPair.x1;\n pair[2] = positionPair.y1;\n pair[3] = positionPair.x2;\n pair[4] = positionPair.y2;\n return pair;\n }\n static projection(projection) {\n return DnaFactory.singleBox(projection.width, projection.height, projection.x, projection.y);\n }\n static singleBox(width, height, x2 = 0, y2 = 0) {\n const box = dna(5);\n box[0] = 1;\n box[1] = x2;\n box[2] = y2;\n box[3] = width + x2;\n box[4] = height + y2;\n return box;\n }\n row(func) {\n return func(this);\n }\n addPoints(x1, y1, x2, y2) {\n this.points[this.index] = 1;\n this.points[1 + this.index] = x1;\n this.points[2 + this.index] = y1;\n this.points[3 + this.index] = x2;\n this.points[4 + this.index] = y2;\n this.index += 5;\n return this;\n }\n addBox(x2, y2, width, height) {\n this.addPoints(x2, y2, x2 + width, y2 + height);\n return this;\n }\n build() {\n return this.points;\n }\n}\nconst mutate = (points, transformation) => {\n const len = points.length;\n for (let index = 0; index < len; index++) {\n points[index] = index % 5 === 0 ? transformation[6] * points[index + 1] + transformation[7] * points[index + 2] + transformation[8] * points[index] : index % 5 % 2 === 1 ? transformation[0] * points[index] + transformation[1] * points[index + 1] + transformation[2] : transformation[3] * points[index - 1] + transformation[4] * points[index] + transformation[5];\n }\n return points;\n};\nconst scale = (factor) => {\n const scaleTransform = dna(9);\n scaleTransform[0] = factor;\n scaleTransform[4] = factor;\n scaleTransform[8] = 1;\n return scaleTransform;\n};\nconst translate = (x2, y2) => {\n const translation = dna(9);\n translation[0] = 1;\n translation[2] = x2;\n translation[4] = 1;\n translation[5] = y2;\n translation[8] = 1;\n return translation;\n};\nconst scaleAtOrigin = (factor, x2, y2) => compose(translate((1 - factor) * x2, (1 - factor) * y2), scale(factor));\nconst transform = (points, transformation, buffer) => {\n const len = points.length;\n const ret = buffer && buffer.length >= len ? buffer.slice(0, len) : dna(len);\n for (let index = 0; index < len; index++) {\n ret[index] = index % 5 === 0 ? transformation[6] * points[index + 1] + transformation[7] * points[index + 2] + transformation[8] * points[index] : index % 5 % 2 === 1 ? transformation[0] * points[index] + transformation[1] * points[index + 1] + transformation[2] : transformation[3] * points[index - 1] + transformation[4] * points[index] + transformation[5];\n }\n return ret;\n};\nlet nanoid = (size = 21) => crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63;\n if (byte < 36) {\n id += byte.toString(36);\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase();\n } else if (byte > 62) {\n id += \"-\";\n } else {\n id += \"_\";\n }\n return id;\n}, \"\");\nclass BaseObject {\n constructor() {\n this.__revision = 0;\n this.__state = {};\n this.scale = 1;\n this.layers = [];\n this.time = [];\n this.addEventListener = (name, cb, options) => {\n const event = supportedEventMap[name];\n if (!this.eventHandlers[event]) {\n throw new Error(`Unknown event ${event}`);\n }\n if (this.eventHandlers[event].indexOf(cb) === -1) {\n this.eventHandlers[event].push(cb);\n }\n };\n this.removeEventListener = (name, cb) => {\n const event = supportedEventMap[name];\n if (!this.eventHandlers[event]) {\n console.warn(`Unknown event ${event}`);\n return;\n }\n if (this.eventHandlers[event].indexOf(cb) !== -1) {\n this.eventHandlers[event] = this.eventHandlers[event].filter((e) => e !== cb);\n }\n };\n this.id = this.__id = nanoid();\n this.eventHandlers = createDefaultEventMap();\n }\n getObjectsAt(target) {\n return [];\n }\n getAllPointsAt(target, aggregate, scale2) {\n return [];\n }\n getScheduledUpdates(target, scaleFactor) {\n return [];\n }\n dispatchEvent(name, e) {\n const listeners = this.eventHandlers[name];\n const len = listeners ? listeners.length : 0;\n let didFire = false;\n if (len) {\n for (let x2 = 0; x2 < len; x2++) {\n try {\n listeners[x2](e);\n didFire = true;\n } catch (e2) {\n console.error(name, e2);\n }\n }\n }\n return didFire;\n }\n get x() {\n return this.points[1];\n }\n get y() {\n return this.points[2];\n }\n get width() {\n return this.points[3] - this.points[1];\n }\n get height() {\n return this.points[4] - this.points[2];\n }\n translate(x2, y2) {\n mutate(this.points, translate(x2, y2));\n }\n atScale(factor) {\n mutate(this.points, scaleAtOrigin(factor, this.x, this.y));\n this.scale *= factor;\n }\n transform(op) {\n mutate(this.points, op);\n }\n applyProps(props) {\n this.__revision++;\n }\n appendChild(item) {\n }\n removeChild(item) {\n }\n insertBefore(item, before) {\n }\n hideInstance() {\n }\n}\nclass SingleImage extends BaseObject {\n constructor(data) {\n super();\n this.type = \"spacial-content\";\n this.style = { opacity: 1 };\n if (!data) {\n this.id = \"\";\n this.uri = \"\";\n this.display = { scale: 1, width: 0, height: 0, points: dna(5) };\n this.points = dna(5);\n } else {\n const scale2 = data.scale || 1;\n this.id = data.id || data.uri;\n this.uri = data.uri;\n this.points = DnaFactory.singleBox(data.width, data.height, data.x, data.y);\n this.display = {\n scale: scale2,\n width: data.width / scale2,\n height: data.height / scale2,\n points: scale2 !== 1 ? DnaFactory.singleBox(data.width / scale2, data.height / scale2) : this.points\n };\n }\n }\n applyProps(props) {\n const width = props.display ? props.display.width : props.target.width;\n const scale2 = props.target.width / width;\n this.id = props.id || props.uri;\n this.uri = props.uri;\n this.points.set(DnaFactory.singleBox(props.target.width, props.target.height, props.target.x, props.target.y));\n if (props.style && typeof props.style.opacity !== \"undefined\") {\n this.style.opacity = props.style.opacity;\n }\n this.display.scale = scale2;\n this.display.width = props.target.width / scale2;\n this.display.height = props.target.height / scale2;\n this.display.points = scale2 !== 1 ? DnaFactory.singleBox(props.target.width / scale2, props.target.height / scale2) : this.points;\n }\n getAllPointsAt(target, aggregate, scale2) {\n return [[this, this.crop || this.points, aggregate]];\n }\n static fromSvg(svg, target, display, id) {\n return SingleImage.fromImage(\"data:image/svg+xml;base64,\" + btoa(svg), target, display, id);\n }\n static fromImage(uri, target, display, id) {\n const instance = new SingleImage();\n instance.applyProps({\n uri,\n id,\n display,\n target\n });\n return instance;\n }\n getImageUrl() {\n return this.uri;\n }\n}\nclass ImageTexture extends BaseObject {\n constructor(data) {\n super();\n this.type = \"spacial-content\";\n this.getTexture = () => {\n return { source: void 0, hash: -1 };\n };\n if (!data) {\n this.id = \"\";\n this.uri = \"\";\n this.display = { scale: 1, width: 0, height: 0, points: dna(5) };\n this.points = dna(5);\n } else {\n const scale2 = data.scale || 1;\n this.id = data.id || data.uri;\n this.uri = data.uri;\n this.points = DnaFactory.singleBox(data.width, data.height);\n this.display = {\n scale: scale2,\n width: data.width / scale2,\n height: data.height / scale2,\n points: scale2 !== 1 ? DnaFactory.singleBox(data.width / scale2, data.height / scale2) : this.points\n };\n }\n }\n applyProps(props) {\n const width = props.display ? props.display.width : props.target.width;\n const scale2 = props.target.width / width;\n this.id = props.id;\n this.points.set(DnaFactory.singleBox(props.target.width, props.target.height));\n this.display.scale = scale2;\n this.display.width = props.target.width / scale2;\n this.display.height = props.target.height / scale2;\n this.getTexture = props.getTexture;\n this.display.points = scale2 !== 1 ? DnaFactory.singleBox(props.target.width / scale2, props.target.height / scale2) : this.points;\n }\n getAllPointsAt(target, aggregate, scale2) {\n return [[this, this.points, aggregate]];\n }\n}\nfunction bestResourceIndexAtRatio(ratio, resources, quality = 1) {\n const len = resources.length;\n if (len === 0) {\n throw new Error(\"No resources passed in.\");\n }\n let best = 0;\n for (let i = 0; i < len; i++) {\n if (!resources[i] || !resources[i].display) {\n break;\n }\n best = Math.abs(resources[i].display.scale - ratio) * quality < Math.abs(resources[best].display.scale - ratio) ? i : best;\n }\n return best;\n}\nfunction distance1D(a, b2) {\n return Math.abs(a - b2);\n}\nfunction distance(a, b2) {\n const xDelta = distance1D(a.x, b2.x);\n const yDelta = distance1D(a.y, b2.y);\n return Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2));\n}\nfunction stripInfoJson(id) {\n const len = id.length;\n if (id.indexOf(\"/info.json\") === len - 10) {\n return id.slice(0, -10);\n }\n return id;\n}\nclass TiledImage extends BaseObject {\n constructor(data) {\n super();\n this.type = \"spacial-content\";\n this.style = { opacity: 1 };\n this.id = stripInfoJson(data.url);\n this.points = data.displayPoints ? data.displayPoints : transform(data.points, scale(data.scaleFactor));\n this.tileWidth = data.tileWidth;\n this.display = {\n width: data.width / data.scaleFactor,\n height: data.height / data.scaleFactor,\n points: data.points,\n scale: data.scaleFactor\n };\n }\n applyProps(props) {\n if (props.style && typeof props.style.opacity !== \"undefined\") {\n this.style.opacity = props.style.opacity;\n }\n if (props.service !== this.service) {\n this.service = props.service;\n }\n }\n static fromTile(url, canvas, tile, scaleFactor, service) {\n tile.height = tile.height ? tile.height : tile.width;\n const fullWidth = Math.ceil(canvas.width / scaleFactor);\n const fullHeight = Math.ceil(canvas.height / scaleFactor);\n const mWidth = Math.ceil(fullWidth / tile.width);\n const mHeight = Math.ceil(fullHeight / tile.height);\n const pointsFactory = DnaFactory.grid(mWidth, mHeight);\n const displayPoints = DnaFactory.grid(mWidth, mHeight);\n for (let y2 = 0; y2 < mHeight; y2++) {\n for (let x2 = 0; x2 < mWidth; x2++) {\n const rx = x2 * tile.width;\n const ry = y2 * tile.height;\n displayPoints.addPoints(rx * scaleFactor, ry * scaleFactor, x2 === mWidth - 1 ? canvas.width : (rx + tile.width) * scaleFactor, y2 === mHeight - 1 ? canvas.height : (ry + tile.height) * scaleFactor);\n pointsFactory.addPoints(rx, ry, x2 === mWidth - 1 ? fullWidth : rx + tile.width, y2 === mHeight - 1 ? fullHeight : ry + tile.height);\n }\n }\n const tiledImage = new TiledImage({\n url,\n scaleFactor,\n points: pointsFactory.build(),\n displayPoints: displayPoints.build(),\n width: canvas.width,\n height: canvas.height,\n tileWidth: tile.width\n });\n tiledImage.applyProps({\n service\n });\n return tiledImage;\n }\n getImageUrl(index) {\n const im = this.points.slice(index * 5, index * 5 + 5);\n const x2 = im[3] - im[1];\n const y2 = im[4] - im[2];\n const w2 = Math.ceil(x2 / this.display.scale);\n return `${this.id}/${im[1]},${im[2]},${x2},${y2}/${w2 > this.tileWidth ? this.tileWidth : w2},/0/default.jpg`;\n }\n getAllPointsAt(target, aggregate, scaleFactor) {\n const points = hidePointsOutsideRegion(this.points, target);\n return [[this, points, aggregate]];\n }\n transform(op) {\n mutate(this.points, op);\n }\n getScheduledUpdates(target, scaleFactor) {\n return [];\n }\n}\nclass AbstractContent extends BaseObject {\n constructor() {\n super(...arguments);\n this.type = \"spacial-content\";\n }\n getAllPointsAt(target, aggregate, scale2) {\n return [[this, this.points, aggregate]];\n }\n}\nclass CompositeResource extends AbstractContent {\n constructor(data) {\n super();\n this.images = [];\n this.allImages = [];\n this.scaleFactors = [];\n this.aggregateBuffer = dna(9);\n this.isFullyLoaded = false;\n this.maxScaleFactor = 0;\n this._scheduleSortByScales = false;\n this._sortByScales = () => {\n this._scheduleSortByScales = false;\n this.allImages.sort((a, b2) => b2.display.width - a.display.width);\n this.images = [];\n let lastScale = 0.1;\n for (const image of this.allImages) {\n if (image.display.width < this.renderOptions.minSize && image.display.height < this.renderOptions.minSize && !image.priority) {\n continue;\n }\n if (image instanceof SingleImage && (image.display.width > this.renderOptions.maxImageSize || image.display.height > this.renderOptions.maxImageSize) && !image.priority) {\n continue;\n }\n const diff = Math.abs(image.display.scale - lastScale);\n if (diff < 0.25 || image.priority) {\n const otherImage = this.images.pop();\n if (otherImage && (otherImage instanceof SingleImage || otherImage.priority)) {\n if (image.priority) {\n this.images.push(image);\n }\n this.images.push(otherImage);\n } else {\n if (image) {\n this.images.push(image);\n }\n }\n } else {\n if (image) {\n this.images.push(image);\n }\n }\n lastScale = image.display.scale;\n }\n if (this.images.length === 0) {\n this.images = [...this.allImages];\n }\n this.scaleFactors = this.images.map((singleImage) => singleImage.display.scale);\n this.maxScaleFactor = Math.max(...this.scaleFactors);\n };\n this.loadFullResource = async () => {\n if (this.isFullyLoaded) {\n return;\n }\n if (this.lazyLoader) {\n this.isFullyLoaded = true;\n const newImages = await this.lazyLoader();\n this.addImages(newImages);\n }\n };\n this.fallback = [this.loadFullResource];\n this.id = data.id;\n this.points = DnaFactory.singleBox(data.width, data.height);\n this.lazyLoader = data.loadFullImages;\n if (!data.loadFullImages) {\n this.isFullyLoaded = true;\n }\n this.display = {\n points: DnaFactory.singleBox(data.width, data.height),\n height: data.height,\n width: data.width,\n scale: 1\n };\n this.renderOptions = {\n renderSmallestFallback: true,\n renderLayers: 2,\n minSize: 256,\n maxImageSize: 1024,\n quality: 1.1,\n ...data.renderOptions || {}\n };\n this.addImages(data.images);\n }\n applyProps(props) {\n if (typeof props.renderSmallestFallback !== \"undefined\" && props.renderSmallestFallback !== this.renderOptions.renderSmallestFallback) {\n this.renderOptions.renderSmallestFallback = props.renderSmallestFallback;\n }\n if (typeof props.renderLayers !== \"undefined\" && props.renderLayers !== this.renderOptions.renderLayers) {\n this.renderOptions.renderLayers = props.renderLayers;\n }\n if (typeof props.minSize !== \"undefined\" && props.minSize !== this.renderOptions.minSize) {\n this.renderOptions.minSize = props.minSize;\n }\n if (typeof props.maxImageSize !== \"undefined\" && props.maxImageSize !== this.renderOptions.maxImageSize) {\n this.renderOptions.maxImageSize = props.maxImageSize;\n }\n if (typeof props.quality !== \"undefined\" && props.quality !== this.renderOptions.quality) {\n this.renderOptions.quality = props.quality;\n }\n }\n appendChild(item) {\n this.addImages([item]);\n }\n removeChild(item) {\n if (this.images.indexOf(item) === -1) {\n return;\n }\n this.images = this.images.filter((image) => image !== item);\n this.sortByScales();\n }\n insertBefore(item, before) {\n this.addImages([item]);\n }\n hideInstance() {\n }\n addImages(images) {\n for (const image of images) {\n image.__parent = this;\n }\n this.allImages.push(...images.filter(Boolean));\n this.sortByScales();\n }\n sortByScales() {\n this._scheduleSortByScales = true;\n }\n getScheduledUpdates(target, scaleFactor) {\n if (this._scheduleSortByScales) {\n return [this._sortByScales];\n }\n if (this.isFullyLoaded) {\n return [];\n }\n if (scaleFactor > 1 / this.maxScaleFactor) {\n return this.fallback;\n }\n return [];\n }\n getAllPointsAt(target, aggregate, scale2) {\n if (this.images.length === 0) {\n return [];\n }\n const bestIndex = bestResourceIndexAtRatio(1 / (scale2 || 1) / (window.devicePixelRatio || 1), this.images, this.renderOptions.quality);\n const len = this.images.length;\n const newAggregate = aggregate ? compose(aggregate, translate(this.x, this.y)) : translate(this.x, this.y);\n if (bestIndex !== this.images.length - 1 && this.images[bestIndex + 1]) {\n let toPaintIdx = [];\n for (let i = len - 1; i >= bestIndex; i--) {\n toPaintIdx.push(i);\n }\n const smallestIdx = toPaintIdx[0];\n if (this.renderOptions.renderLayers) {\n toPaintIdx = toPaintIdx.slice(-this.renderOptions.renderLayers);\n }\n if (this.renderOptions.renderSmallestFallback && toPaintIdx.indexOf(smallestIdx) === -1) {\n toPaintIdx.unshift(smallestIdx);\n }\n const toPaint = [];\n for (let i = 0; i < toPaintIdx.length; i++) {\n toPaint.push(...this.images[toPaintIdx[i]].getAllPointsAt(target, newAggregate, scale2));\n }\n return toPaint;\n }\n return this.images[bestIndex].getAllPointsAt(target, newAggregate, scale2);\n }\n}\nclass WorldObject extends BaseObject {\n constructor(props, position) {\n super();\n this.type = \"world-object\";\n this.intersectionBuffer = dna(5);\n this.aggregateBuffer = dna(9);\n this.invertedBuffer = dna(9);\n this._updatedList = [];\n const { x: x2 = 0, y: y2 = 0 } = position || {};\n if (!props) {\n this.id = \"\";\n this.scale = 1;\n this.layers = [];\n this.points = dna(5);\n this.worldPoints = dna(5);\n this.filteredPointsBuffer = dna(5);\n } else {\n this.id = props.id || \"\";\n this.scale = 1;\n this.layers = props.layers;\n this.points = dna([1, x2, y2, props.width, props.height]);\n this.worldPoints = dna([1, x2, y2, props.width, props.height]);\n this.filteredPointsBuffer = dna(props.layers.length * 5);\n }\n }\n static createWithProps(props) {\n const instance = new WorldObject();\n instance.applyProps(props);\n return instance;\n }\n applyProps(props) {\n const x2 = props.x || 0;\n const y2 = props.y || 0;\n this.id = props.id;\n const s = typeof props.scale !== \"undefined\" ? props.scale : this.scale;\n this.points[0] = 1;\n this.points[1] = x2;\n this.points[2] = y2;\n this.points[3] = x2 + props.width;\n this.points[4] = y2 + props.height;\n this.worldPoints[3] = this.worldPoints[1] + props.width * s;\n this.worldPoints[4] = this.worldPoints[2] + props.height * s;\n if (props.scale && props.scale !== 1) {\n this.atScale(s);\n }\n this.scale = s;\n }\n appendChild(item) {\n if (item.points[0] === 0) {\n item.points.set(this.points);\n }\n this.addLayers([item]);\n }\n removeChild(item) {\n this.layers = this.layers.filter((layer) => layer !== item);\n this.filteredPointsBuffer = dna(this.layers.length * 5);\n }\n insertBefore(item, before) {\n const index = this.layers.indexOf(before);\n if (index === -1) {\n return;\n }\n if (this.layers.indexOf(item) !== -1) {\n return;\n }\n const beforeLayers = this.layers.slice(0, index - 1);\n const afterLayers = this.layers.slice(index);\n this.layers = [...beforeLayers, item, ...afterLayers];\n }\n hideInstance() {\n console.warn(\"hideInstance: not yet implemented\");\n }\n getObjectsAt(target, all) {\n const filteredPoints = hidePointsOutsideRegion(this.points, target, this.filteredPointsBuffer);\n if (filteredPoints[0] === 0) {\n return [];\n }\n const len = this.layers.length;\n const objects = [];\n for (let index = 0; index < len; index++) {\n const layer = this.layers[index];\n const filter = hidePointsOutsideRegion(transform(layer.points, translate(this.x, this.y)), target, this.filteredPointsBuffer);\n if (filter[0] !== 0) {\n objects.push(layer);\n }\n if (all) {\n const object = layer;\n objects.push(...object.getObjectsAt(target, all));\n }\n }\n return objects;\n }\n getAllPointsAt(target, aggregate, scaleFactor) {\n const transformer = compose(translate(this.x, this.y), scale(this.scale), this.aggregateBuffer);\n const inter = getIntersection(target, this.points, this.intersectionBuffer);\n const len = this.layers.length;\n const arr = [];\n const t = transform(inter, compose(scale(1 / this.scale), translate(-this.x, -this.y), this.invertedBuffer));\n const agg = aggregate ? compose(aggregate, transformer, this.aggregateBuffer) : transformer;\n const s = scaleFactor * this.scale;\n for (let i = 0; i < len; i++) {\n arr.push(...this.layers[i].getAllPointsAt(t, agg, s));\n }\n return arr;\n }\n addLayers(paintables) {\n const paintablesToAdd = [];\n for (const paintable of paintables) {\n if (this.layers.indexOf(paintable) !== -1) {\n continue;\n }\n paintablesToAdd.push(paintable);\n if (paintable.points.length === 5 && (paintable.points[1] < this.worldPoints[1] / this.scale || paintable.points[2] < this.worldPoints[2] / this.scale || paintable.points[3] > this.worldPoints[3] / this.scale || paintable.points[4] > this.worldPoints[4] / this.scale)) {\n paintable.crop = dna([\n 1,\n Math.max(this.worldPoints[1] / this.scale, paintable.points[1]),\n Math.max(this.worldPoints[2] / this.scale, paintable.points[2]),\n Math.min(this.worldPoints[3] / this.scale, paintable.points[3]),\n Math.min(this.worldPoints[4] / this.scale, paintable.points[4])\n ]);\n }\n }\n this.layers = this.layers.concat(paintablesToAdd);\n this.filteredPointsBuffer = dna(this.layers.length * 5);\n }\n getScheduledUpdates(target, scaleFactor) {\n const len = this.layers.length;\n this._updatedList = [];\n const s = scaleFactor * this.scale;\n for (let i = 0; i < len; i++) {\n const updates = this.layers[i].getScheduledUpdates(target, s);\n if (updates) {\n this._updatedList.push(...updates);\n }\n }\n return this._updatedList;\n }\n}\nclass World extends BaseObject {\n constructor(width = 0, height = 0, worldObjectCount = 100, viewingDirection = \"left-to-right\") {\n super();\n this.id = \"world\";\n this.aggregateBuffer = dna(9);\n this.isDirty = false;\n this.zones = [];\n this.triggerQueue = [];\n this.activatedEvents = [];\n this._updatedList = [];\n this.translationBuffer = dna(9);\n this.needsRecalculate = true;\n this.emptyPaintables = [];\n this.renderOrder = [];\n this.objects = [];\n this.subscriptions = [];\n this._propagateEventTargets = [];\n this._alreadyFlushed = [];\n this._width = width;\n this._height = height;\n this.aspectRatio = Number.isNaN(width / height) ? 1 : width / height;\n this.viewingDirection = viewingDirection;\n this.points = dna(worldObjectCount * 5);\n this.filteredPointsBuffer = dna(worldObjectCount * 5);\n }\n get x() {\n return 0;\n }\n get y() {\n return 0;\n }\n get width() {\n return this._width;\n }\n get height() {\n return this._height;\n }\n static withProps(props) {\n const instance = new World();\n instance.applyProps(props);\n return instance;\n }\n applyProps(props) {\n if (typeof props.width !== \"undefined\" && typeof props.height !== \"undefined\" && (props.width !== this._width || props.height !== this._height)) {\n this.resize(props.width, props.height);\n }\n if (props.viewingDirection !== this.viewingDirection) {\n this.viewingDirection = props.viewingDirection;\n this.triggerRepaint();\n }\n }\n propagateTouchEvent(eventName, e, touchTargets) {\n const targets = [];\n for (const touch of touchTargets) {\n if (touch.x && touch.y) {\n const point = DnaFactory.singleBox(1, 1, touch.x, touch.y);\n targets.push(this.getObjectsAt(point, true).reverse());\n }\n }\n return targets.map((target) => this.propagateEvent(eventName, e, target, { bubbles: true, cancelable: true }));\n }\n propagatePointerEvent(eventName, e, x2, y2, opts = {}) {\n const point = DnaFactory.singleBox(1, 1, x2, y2);\n const worldObjects = this.getObjectsAt(point, true).reverse();\n return this.propagateEvent(eventName, e, worldObjects, opts);\n }\n propagateEvent(eventName, e, worldObjects, { bubbles = false, cancelable = false } = {}) {\n e.atlasTarget = this;\n this._propagateEventTargets.length = 1;\n this._propagateEventTargets[0] = this;\n let stopped = false;\n e.stopPropagation = () => {\n stopped = true;\n };\n const woLen = worldObjects.length;\n for (let w2 = woLen - 1; w2 >= 0; w2--) {\n this._propagateEventTargets.unshift(worldObjects[w2][0]);\n const len2 = worldObjects[w2][1].length;\n if (len2) {\n for (let i = 0; i < len2; i++) {\n this._propagateEventTargets.unshift(worldObjects[w2][1][i]);\n }\n }\n }\n const len = this._propagateEventTargets.length;\n let didFire = false;\n for (let i = 0; i < len; i++) {\n e.atlasTarget = this._propagateEventTargets[i];\n e.atlasWorld = this;\n didFire = this._propagateEventTargets[i].dispatchEvent(eventName, e) || didFire;\n if (stopped)\n break;\n }\n if (didFire) {\n this.triggerRepaint();\n }\n return this._propagateEventTargets;\n }\n appendChild(item) {\n const idx = this.appendWorldObject(item);\n this.renderOrder.push(idx / 5);\n }\n removeChild(item) {\n const index = this.objects.indexOf(item);\n if (index === -1) {\n for (const obj of this.objects) {\n if (obj && obj.id === item.id) {\n this.removeChild(obj);\n return;\n }\n }\n return;\n }\n this.objects[index] = null;\n this.renderOrder = this.renderOrder.filter((t) => t !== index);\n this.points[index * 5] = 0;\n this.triggerRepaint();\n this.needsRecalculate = true;\n }\n insertBefore(item, before) {\n const beforeIndex = this.objects.indexOf(before);\n if (beforeIndex === -1) {\n return;\n }\n const idx = this.appendWorldObject(item);\n this.renderOrder.splice(beforeIndex - 1, 0, idx / 5);\n }\n hideInstance() {\n }\n asWorldObject() {\n return null;\n }\n addZone(zone) {\n this.zones.push(zone);\n }\n selectZone(id) {\n if (typeof id === \"string\") {\n const len = this.zones.length;\n for (let i = 0; i < len; i++) {\n if (this.zones[i].id === id) {\n this.selectedZone = i;\n this.trigger(\"zone-changed\");\n return;\n }\n }\n } else {\n if (this.zones[id]) {\n this.selectedZone = id;\n this.trigger(\"zone-changed\");\n }\n }\n }\n deselectZone() {\n this.selectedZone = void 0;\n }\n getActiveZone() {\n if (this.selectedZone) {\n return this.zones[this.selectedZone];\n }\n return void 0;\n }\n hasActiveZone() {\n return typeof this.selectedZone !== \"undefined\";\n }\n checkResizeInternalBuffer() {\n if (dnaLength(this.points) === this.objects.length) {\n const points = this.points;\n const newPoints = dna(this.points.length * 2);\n newPoints.set(points, 0);\n this.points = newPoints;\n }\n }\n appendWorldObject(object) {\n this.checkResizeInternalBuffer();\n const index = this.objects.length * 5;\n const pointValues = object.points;\n object.points = this.points.subarray(this.objects.length * 5, this.objects.length * 5 + 5);\n object.points[1] = pointValues[1];\n object.points[2] = pointValues[2];\n object.points[3] = pointValues[3];\n object.points[4] = pointValues[4];\n this.objects.push(object);\n this.filteredPointsBuffer = dna(this.objects.length * 5);\n this.needsRecalculate = true;\n this.triggerRepaint();\n return index;\n }\n recalculateWorldSize() {\n let didChange = false;\n if (this.needsRecalculate) {\n const wBuffer = new Int32Array(this.objects.length);\n const hBuffer = new Int32Array(this.objects.length);\n const len = this.renderOrder.length;\n for (let _index = 0; _index < len; _index++) {\n const index = this.renderOrder[_index];\n const object = this.objects[index];\n if (object) {\n wBuffer[_index] = this.points[index * 5 + 3];\n hBuffer[_index] = this.points[index * 5 + 4];\n }\n }\n const newWidth = Math.max(...wBuffer);\n if (newWidth !== this._width) {\n this._width = newWidth;\n didChange = true;\n }\n const newHeight = Math.max(...hBuffer);\n if (newHeight !== this._height) {\n this._height = newHeight;\n didChange = true;\n }\n if (didChange) {\n this.trigger(\"recalculate-world-size\", { width: newWidth, height: newHeight });\n }\n this.needsRecalculate = false;\n }\n return didChange;\n }\n addObjectAt(object, target) {\n if (target.width && !target.height) {\n target.height = target.width / object.width * object.height;\n } else if (target.height && !target.width) {\n target.width = target.height / object.height * object.width;\n }\n if (!target || !target.width || !target.height) {\n target.width = object.width;\n target.height = object.height;\n }\n const { width, x: x2, y: y2 } = target;\n const scaleFactor = width / object.width;\n this.checkResizeInternalBuffer();\n this.points.set(DnaFactory.singleBox(object.width, object.height, 0, 0), this.objects.length * 5);\n const worldObject = new WorldObject(object);\n worldObject.points = this.points.subarray(this.objects.length * 5, this.objects.length * 5 + 5);\n this.objects.push(worldObject);\n this.scaleWorldObject(this.objects.length - 1, scaleFactor);\n this.translateWorldObject(this.objects.length - 1, x2, y2);\n this.filteredPointsBuffer = dna(this.points.length * 2);\n this.triggerRepaint();\n this.needsRecalculate = true;\n return worldObject;\n }\n scaleWorldObject(index, factor) {\n mutate(this.points.subarray(index * 5, index * 5 + 5), scaleAtOrigin(factor, this.points[index * 5 + 1], this.points[index * 5 + 2]));\n const obj = this.objects[index];\n if (obj) {\n obj.atScale(factor);\n this.triggerRepaint();\n }\n }\n translateWorldObject(index, x2, y2) {\n mutate(this.points.subarray(index * 5, index * 5 + 5), translate(x2, y2));\n const obj = this.objects[index];\n if (obj) {\n obj.translate(x2, y2);\n this.triggerRepaint();\n }\n }\n resize(width, height) {\n this._width = width;\n this._height = height;\n this.aspectRatio = width / height;\n this.triggerRepaint();\n return this;\n }\n getObjects() {\n return this.objects;\n }\n getPoints() {\n return this.points;\n }\n getPointsFromViewer(target, aggregate) {\n const targetPoints = DnaFactory.singleBox(target.width, target.height, target.x, target.y);\n return this.getPointsAt(targetPoints, aggregate, target.scale);\n }\n addLayoutSubscriber(subscription) {\n this.subscriptions.push(subscription);\n return () => {\n this.subscriptions.splice(this.subscriptions.indexOf(subscription), 1);\n };\n }\n getScheduledUpdates(target, scaleFactor) {\n const filteredPoints = hidePointsOutsideRegion(this.points, target, this.filteredPointsBuffer);\n const len = this.objects.length;\n this._updatedList = [];\n for (let index = 0; index < len; index++) {\n if (filteredPoints[index * 5] !== 0) {\n if (!this.objects[index])\n continue;\n this._updatedList.push(...this.objects[index].getScheduledUpdates(target, scaleFactor));\n }\n }\n return this._updatedList;\n }\n getObjectsAt(target, all = false) {\n const zone = this.getActiveZone();\n const filteredPoints = hidePointsOutsideRegion(this.points, target, this.filteredPointsBuffer);\n const len = this.renderOrder.length;\n const objects = [];\n for (let _index = 0; _index < len; _index++) {\n const index = this.renderOrder[_index];\n if (filteredPoints[index * 5] !== 0) {\n const object = this.objects[index];\n if (!object || zone && zone.objects.indexOf(object) === -1) {\n continue;\n }\n if (object.type !== \"world-object\") {\n objects.push([object, [object]]);\n continue;\n }\n if (all) {\n objects.push([object, object.getObjectsAt(target, all)]);\n } else {\n objects.push([object, this.emptyPaintables]);\n }\n }\n }\n return objects;\n }\n getPointsAt(target, aggregate, scaleFactor = 1) {\n const objects = this.getObjectsAt(target);\n const translation = compose(scale(scaleFactor), translate(-target[1], -target[2]), this.translationBuffer);\n const transformer = aggregate ? compose(aggregate, translation, this.aggregateBuffer) : translation;\n const len = objects.length;\n const layers = [];\n for (let index = 0; index < len; index++) {\n if (objects[index]) {\n layers.push(...objects[index][0].getAllPointsAt(target, transformer, scaleFactor));\n }\n }\n return layers;\n }\n flushSubscriptions() {\n if (this.triggerQueue.length) {\n this._alreadyFlushed = [];\n const queueLen = this.triggerQueue.length;\n for (let x2 = 0; x2 < queueLen; x2++) {\n if (this._alreadyFlushed.indexOf(this.triggerQueue[x2][0]) !== -1) {\n continue;\n }\n if (typeof this.triggerQueue[x2][1] === \"undefined\") {\n this._alreadyFlushed.push(this.triggerQueue[x2][0]);\n }\n const len = this.subscriptions.length;\n for (let i = 0; i < len; i++) {\n this.subscriptions[i].apply(null, this.triggerQueue[x2]);\n }\n }\n this.triggerQueue = [];\n }\n }\n trigger(type, data) {\n this.triggerQueue.push([type, data]);\n }\n triggerEventActivation() {\n this.trigger(\"event-activation\");\n }\n triggerRepaint() {\n this.trigger(\"repaint\");\n }\n gotoRegion(data) {\n this.trigger(\"goto-region\", data);\n }\n goHome(immediate = false) {\n this.trigger(\"go-home\", {\n immediate\n });\n }\n zoomTo(factor, point, stream) {\n this.trigger(\"zoom-to\", {\n point,\n factor,\n stream\n });\n }\n zoomIn(point) {\n this.trigger(\"zoom-to\", {\n point,\n factor: 0.5\n });\n }\n zoomOut(point) {\n this.trigger(\"zoom-to\", {\n point,\n factor: 2\n });\n }\n constraintBounds(immediate) {\n this.trigger(\"constrain-bounds\", { immediate });\n }\n}\nfunction fromImage(image) {\n const { src, target } = image;\n const width = target ? target.width : image.width;\n const height = target ? target.height : image.height;\n return new WorldObject({\n id: src,\n height,\n width,\n layers: [SingleImage.fromImage(src, { height, width }, { width: image.width, height: image.height })]\n });\n}\nconst defaultConfig$1 = {\n margin: 0\n};\nclass Zone {\n constructor(objects, config = {}) {\n this.id = objects.map((obj) => obj.id).join(\"$$\");\n this.config = {\n ...defaultConfig$1,\n ...config\n };\n this.points = dna(5);\n this.objects = objects;\n this.recalculateBounds();\n }\n recalculateBounds() {\n this.points.set([\n 1,\n Math.min(...this.objects.map((obj) => obj.points[1])) - this.config.margin,\n Math.min(...this.objects.map((obj) => obj.points[2])) - this.config.margin,\n Math.max(...this.objects.map((obj) => obj.points[3])) + this.config.margin,\n Math.max(...this.objects.map((obj) => obj.points[4])) + this.config.margin\n ]);\n }\n getPointsAt(target, aggregate, scaleFactor) {\n return [];\n }\n}\nconst borderRegex = /([0-9]+(px|em)\\s+)+(solid)\\s+(.*)/g;\nconst borderRegexCache = {};\nconst styleProps = [\n \"backgroundColor\",\n \"opacity\",\n \"boxShadow\",\n \"borderColor\",\n \"borderWidth\",\n \"borderStyle\",\n \"outlineColor\",\n \"outlineWidth\",\n \"outlineOffset\",\n \"outlineStyle\"\n];\nclass Box extends BaseObject {\n constructor() {\n super();\n this.type = \"spacial-content\";\n this.hoverEvents = false;\n this.activeEvents = false;\n this.display = {\n scale: 1,\n width: -1,\n height: -1,\n points: dna(5)\n };\n this._parsed = {\n border: { id: null, match: [] },\n outline: { id: null, match: [] }\n };\n this.props = {};\n this.addHover = () => {\n this.hovering = true;\n this.__revision++;\n };\n this.removeHover = () => {\n this.hovering = false;\n this.pressing = false;\n this.__revision++;\n };\n this.addPress = () => {\n this.pressing = true;\n this.__revision++;\n };\n this.removePress = () => {\n this.pressing = false;\n this.__revision++;\n };\n this.id = nanoid(12);\n this.points = dna(5);\n }\n getAllPointsAt(target, aggregate) {\n return [[this, this.points, aggregate]];\n }\n applyProps(props = {}) {\n let didUpdate = false;\n if (props.interactive !== this.props.interactive) {\n didUpdate = true;\n this.props.interactive = props.interactive;\n }\n if (props.style) {\n const borderStyle = props.border || props.style.border;\n if (borderStyle !== this._parsed.border.id) {\n if (!borderStyle) {\n this._parsed.border.id = null;\n this._parsed.border.match = [];\n } else {\n const match = borderRegexCache[borderStyle] || borderRegex.exec(borderStyle) || borderRegex.exec(borderStyle);\n if (match) {\n this._parsed.border.id = borderStyle;\n this._parsed.border.match = borderRegexCache[borderStyle] = match;\n }\n }\n }\n if (this._parsed.border.id) {\n props.style.borderWidth = this._parsed.border.match[1];\n props.style.borderStyle = \"solid\";\n props.style.borderColor = this._parsed.border.match[4];\n }\n if (props.style.outline !== this._parsed.outline.id) {\n if (!props.style.outline) {\n this._parsed.outline.id = null;\n this._parsed.outline.match = [];\n } else {\n const match = borderRegexCache[props.style.outline] || borderRegex.exec(props.style.outline) || borderRegex.exec(props.style.outline);\n if (match) {\n this._parsed.outline.id = props.style.outline;\n this._parsed.outline.match = borderRegexCache[props.style.outline] = match;\n }\n }\n }\n if (this._parsed.outline.id) {\n props.style.outlineWidth = this._parsed.outline.match[1];\n props.style.outlineStyle = \"solid\";\n props.style.outlineColor = this._parsed.outline.match[4];\n }\n this.props.style = props.style;\n if (props.backgroundColor && !this.props.style.backgroundColor) {\n this.props.style.backgroundColor = props.backgroundColor;\n didUpdate = true;\n }\n if (props.style.background && !this.props.style.backgroundColor) {\n this.props.style.backgroundColor = props.style.background;\n didUpdate = true;\n }\n for (const prop of styleProps) {\n if (this.props.style[prop] !== props.style[prop]) {\n didUpdate = true;\n break;\n }\n }\n if (props.style[\":hover\"] !== this.props.hoverStyles) {\n this.props.hoverStyles = props.style[\":hover\"];\n if (!this.hoverEvents) {\n this.hoverEvents = true;\n this.addEventListener(\"pointerenter\", this.addHover);\n this.addEventListener(\"pointerleave\", this.removeHover);\n }\n didUpdate = true;\n }\n if (props.style[\":active\"] !== this.props.pressStyles) {\n this.props.pressStyles = props.style[\":active\"];\n if (!this.activeEvents) {\n this.activeEvents = true;\n this.addEventListener(\"mousedown\", this.addPress);\n this.addEventListener(\"mouseup\", this.removePress);\n }\n didUpdate = true;\n }\n }\n if (props.href !== this.props.href) {\n this.props.href = props.href;\n didUpdate = true;\n }\n if (props.hrefTarget !== this.props.hrefTarget) {\n this.props.hrefTarget = props.hrefTarget;\n didUpdate = true;\n }\n if (props.title !== this.props.title) {\n this.props.title = props.title;\n didUpdate = true;\n }\n if (props.className !== this.props.className) {\n this.props.className = props.className;\n if (props.className && !this.hoverEvents) {\n this.hoverEvents = true;\n this.addEventListener(\"pointerenter\", this.addHover);\n this.addEventListener(\"pointerleave\", this.removeHover);\n }\n if (props.className && !this.activeEvents) {\n this.activeEvents = true;\n this.addEventListener(\"mousedown\", this.addPress);\n this.addEventListener(\"mouseup\", this.removePress);\n }\n didUpdate = true;\n }\n if (props.relativeSize !== this.props.relativeSize) {\n this.props.relativeSize = props.relativeSize;\n didUpdate = true;\n }\n if (props.relativeStyle !== this.props.relativeStyle) {\n this.props.relativeStyle = props.relativeStyle;\n didUpdate = true;\n }\n if (props.html !== this.props.html) {\n this.props.html = props.html;\n didUpdate = true;\n }\n if (props.target) {\n if (props.target.width !== this.display.width || props.target.height !== this.display.height || props.target.x !== this.points[1] || props.target.y !== this.points[2]) {\n didUpdate = true;\n this.points = DnaFactory.singleBox(props.target.width, props.target.height, props.target.x, props.target.y);\n this.display.points = DnaFactory.singleBox(props.target.width, props.target.height, props.target.x, props.target.y);\n this.display.width = props.target.width;\n this.display.height = props.target.height;\n }\n }\n if (didUpdate) {\n this.__revision++;\n }\n }\n}\nclass Text extends BaseObject {\n constructor() {\n super();\n this.type = \"spacial-content\";\n this.color = \"#000\";\n this.text = \"\";\n this.display = {\n scale: 1,\n width: 100,\n height: 100,\n points: dna(5)\n };\n this.interactive = false;\n this.props = {\n font: \"18px Arial, sans-serif\",\n lineHeight: 1,\n textAlign: \"left\",\n verticalAlign: \"top\",\n paddingX: 0,\n paddingY: 0,\n fitParent: false,\n lineBreak: \"auto\",\n strokeText: false,\n sizeToFill: false,\n maxFontSizeToFill: void 0,\n allowNewLine: true,\n justifyLines: false,\n renderHDPI: false,\n textDecoration: \"none\",\n interactive: false,\n relativeSize: false\n };\n this.id = \"\";\n this.points = dna(5);\n }\n getAllPointsAt(target, aggregate) {\n return [[this, this.points, aggregate]];\n }\n applyProps({\n id,\n target,\n text,\n color,\n backgroundColor,\n fontSize = 18,\n interactive,\n fontFamily = \"Arial, sans-serif\",\n ...props\n }) {\n props.font = `${fontSize}px ${fontFamily}`;\n this.interactive = interactive || false;\n if (typeof text !== \"undefined\") {\n this.text = text || \"\";\n }\n if (color) {\n this.color = color;\n }\n if (backgroundColor) {\n this.backgroundColor = backgroundColor;\n }\n if (id) {\n this.id = id;\n }\n if (target) {\n this.points = DnaFactory.singleBox(target.width, target.height, target.x, target.y);\n this.display.points = this.points;\n this.display.width = target.width;\n this.display.height = target.height;\n }\n this.props = { ...this.props, ...props };\n this.__revision++;\n }\n}\nconst pow = Math.pow;\nconst sqrt = Math.sqrt;\nconst sin = Math.sin;\nconst cos = Math.cos;\nconst PI = Math.PI;\nconst c1 = 1.70158;\nconst c2 = c1 * 1.525;\nconst c3 = c1 + 1;\nconst c4 = 2 * PI / 3;\nconst c5 = 2 * PI / 4.5;\nconst bounceOut = function(x2) {\n const n1 = 7.5625;\n const d1 = 2.75;\n if (x2 < 1 / d1) {\n return n1 * x2 * x2;\n } else if (x2 < 2 / d1) {\n return n1 * (x2 -= 1.5 / d1) * x2 + 0.75;\n } else if (x2 < 2.5 / d1) {\n return n1 * (x2 -= 2.25 / d1) * x2 + 0.9375;\n } else {\n return n1 * (x2 -= 2.625 / d1) * x2 + 0.984375;\n }\n};\nconst easingFunctions = {\n linear: (x2) => x2,\n easeInQuad: function(x2) {\n return x2 * x2;\n },\n easeOutQuad: function(x2) {\n return 1 - (1 - x2) * (1 - x2);\n },\n easeInOutQuad: function(x2) {\n return x2 < 0.5 ? 2 * x2 * x2 : 1 - pow(-2 * x2 + 2, 2) / 2;\n },\n easeInCubic: function(x2) {\n return x2 * x2 * x2;\n },\n easeOutCubic: function(x2) {\n return 1 - pow(1 - x2, 3);\n },\n easeInOutCubic: function(x2) {\n return x2 < 0.5 ? 4 * x2 * x2 * x2 : 1 - pow(-2 * x2 + 2, 3) / 2;\n },\n easeInQuart: function(x2) {\n return x2 * x2 * x2 * x2;\n },\n easeOutQuart: function(x2) {\n return 1 - pow(1 - x2, 4);\n },\n easeInOutQuart: function(x2) {\n return x2 < 0.5 ? 8 * x2 * x2 * x2 * x2 : 1 - pow(-2 * x2 + 2, 4) / 2;\n },\n easeInQuint: function(x2) {\n return x2 * x2 * x2 * x2 * x2;\n },\n easeOutQuint: function(x2) {\n return 1 - pow(1 - x2, 5);\n },\n easeInOutQuint: function(x2) {\n return x2 < 0.5 ? 16 * x2 * x2 * x2 * x2 * x2 : 1 - pow(-2 * x2 + 2, 5) / 2;\n },\n easeInSine: function(x2) {\n return 1 - cos(x2 * PI / 2);\n },\n easeOutSine: function(x2) {\n return sin(x2 * PI / 2);\n },\n easeInOutSine: function(x2) {\n return -(cos(PI * x2) - 1) / 2;\n },\n easeInExpo: function(x2) {\n return x2 === 0 ? 0 : pow(2, 10 * x2 - 10);\n },\n easeOutExpo: function(x2) {\n return x2 === 1 ? 1 : 1 - pow(2, -10 * x2);\n },\n easeInOutExpo: function(x2) {\n return x2 === 0 ? 0 : x2 === 1 ? 1 : x2 < 0.5 ? pow(2, 20 * x2 - 10) / 2 : (2 - pow(2, -20 * x2 + 10)) / 2;\n },\n easeInCirc: function(x2) {\n return 1 - sqrt(1 - pow(x2, 2));\n },\n easeOutCirc: function(x2) {\n return sqrt(1 - pow(x2 - 1, 2));\n },\n easeInOutCirc: function(x2) {\n return x2 < 0.5 ? (1 - sqrt(1 - pow(2 * x2, 2))) / 2 : (sqrt(1 - pow(-2 * x2 + 2, 2)) + 1) / 2;\n },\n easeInBack: function(x2) {\n return c3 * x2 * x2 * x2 - c1 * x2 * x2;\n },\n easeOutBack: function(x2) {\n return 1 + c3 * pow(x2 - 1, 3) + c1 * pow(x2 - 1, 2);\n },\n easeInOutBack: function(x2) {\n return x2 < 0.5 ? pow(2 * x2, 2) * ((c2 + 1) * 2 * x2 - c2) / 2 : (pow(2 * x2 - 2, 2) * ((c2 + 1) * (x2 * 2 - 2) + c2) + 2) / 2;\n },\n easeInElastic: function(x2) {\n return x2 === 0 ? 0 : x2 === 1 ? 1 : -pow(2, 10 * x2 - 10) * sin((x2 * 10 - 10.75) * c4);\n },\n easeOutElastic: function(x2) {\n return x2 === 0 ? 0 : x2 === 1 ? 1 : pow(2, -10 * x2) * sin((x2 * 10 - 0.75) * c4) + 1;\n },\n easeInOutElastic: function(x2) {\n return x2 === 0 ? 0 : x2 === 1 ? 1 : x2 < 0.5 ? -(pow(2, 20 * x2 - 10) * sin((20 * x2 - 11.125) * c5)) / 2 : pow(2, -20 * x2 + 10) * sin((20 * x2 - 11.125) * c5) / 2 + 1;\n },\n easeInBounce: function(x2) {\n return 1 - bounceOut(1 - x2);\n },\n easeOutBounce: bounceOut,\n easeInOutBounce: function(x2) {\n return x2 < 0.5 ? (1 - bounceOut(1 - 2 * x2)) / 2 : (1 + bounceOut(2 * x2 - 1)) / 2;\n }\n};\nclass TransitionManager {\n constructor(runtime) {\n this.runtime = runtime;\n this.pendingTransition = {\n from: dna(5),\n to: dna(5),\n elapsed_time: 0,\n done: true,\n total_time: 0,\n timingFunction: easingFunctions.easeInOutQuad,\n constrain: false\n };\n }\n hasPending() {\n return !this.pendingTransition.done;\n }\n getPendingTransition() {\n return this.pendingTransition;\n }\n getPendingFrom() {\n return this.pendingTransition.from;\n }\n customTransition(func) {\n func(this.pendingTransition);\n }\n stopTransition() {\n this.pendingTransition.from = dna(this.runtime.target);\n this.pendingTransition.to = dna(this.runtime.target);\n this.pendingTransition.done = true;\n this.pendingTransition.elapsed_time = 0;\n this.pendingTransition.total_time = 0;\n }\n runTransition(target, delta) {\n if (!this.pendingTransition.done) {\n const transition = this.pendingTransition;\n const td = (transition.elapsed_time + delta) / transition.total_time;\n const step = transition.timingFunction(td > 1 ? 1 : td);\n target[1] = transition.from[1] + (transition.to[1] - transition.from[1]) * step;\n target[2] = transition.from[2] + (transition.to[2] - transition.from[2]) * step;\n target[3] = transition.from[3] + (transition.to[3] - transition.from[3]) * step;\n target[4] = transition.from[4] + (transition.to[4] - transition.from[4]) * step;\n this.pendingTransition.elapsed_time += delta;\n if (this.pendingTransition.elapsed_time >= this.pendingTransition.total_time) {\n this.pendingTransition.done = true;\n if (this.pendingTransition.constrain) {\n this.constrainBounds({\n transition: {\n duration: this.pendingTransition.total_time === 0 ? 0 : 500,\n easing: easingFunctions.easeOutExpo\n }\n });\n }\n }\n }\n }\n zoomTo(factor, {\n origin,\n stream = false,\n transition\n } = {}) {\n const newPoints = this.runtime.getZoomedPosition(factor, { origin });\n const dist = Math.abs(1 - factor);\n this.applyTransition(newPoints, transition, {\n duration: 2e3 * dist,\n easing: easingFunctions.easeOutExpo,\n constrain: true\n }, { stream: false });\n }\n constrainBounds({\n transition,\n panPadding = 0\n } = {}) {\n const [isConstrained, constrained] = this.runtime.constrainBounds(this.runtime.target, { panPadding });\n if (isConstrained) {\n this.applyTransition(constrained, transition, {\n duration: 500,\n easing: easingFunctions.easeOutQuart,\n constrain: false\n });\n this.runtime.updateNextFrame();\n }\n }\n applyTransition(target, transition, defaults, {\n stream\n } = {}) {\n this.pendingTransition.from = dna(this.runtime.target);\n this.pendingTransition.to = target;\n if (!stream) {\n this.pendingTransition.elapsed_time = 0;\n }\n this.pendingTransition.done = false;\n this.pendingTransition.total_time = typeof (transition == null ? void 0 : transition.duration) !== \"undefined\" ? transition.duration : typeof (defaults == null ? void 0 : defaults.duration) !== \"undefined\" ? defaults.duration : 1e3;\n this.pendingTransition.constrain = typeof (transition == null ? void 0 : transition.constrain) !== \"undefined\" ? transition.constrain : typeof (defaults == null ? void 0 : defaults.constrain) !== \"undefined\" ? defaults.constrain : false;\n this.pendingTransition.timingFunction = (transition == null ? void 0 : transition.easing) || (defaults == null ? void 0 : defaults.easing) || easingFunctions.easeInOutSine;\n }\n goToRegion(target, {\n transition\n } = {}) {\n const clampedRegion = this.runtime.clampRegion(target);\n this.applyTransition(DnaFactory.singleBox(clampedRegion.width, clampedRegion.height, clampedRegion.x, clampedRegion.y), transition, {\n duration: 1e3,\n easing: easingFunctions.easeOutExpo,\n constrain: true\n });\n this.runtime.updateNextFrame();\n }\n}\nclass Runtime {\n constructor(renderer, world, target, controllers = [], options) {\n this.ready = false;\n this.transformBuffer = dna(500);\n this.lastTarget = dna(5);\n this.zoomBuffer = dna(5);\n this.logNextRender = false;\n this.pendingUpdate = true;\n this.firstRender = true;\n this.mode = \"explore\";\n this.controllers = [];\n this.controllersRunning = false;\n this.controllerStopFunctions = [];\n this.maxScaleFactor = 1;\n this._viewerToWorld = { x: 0, y: 0 };\n this._lastGoodScale = 1;\n this.hooks = {\n useFrame: [],\n useBeforeFrame: [],\n useAfterPaint: [],\n useAfterFrame: []\n };\n this._viewport = { x: 0, y: 0, width: 0, height: 0 };\n this.setViewport = (data) => {\n const x2 = typeof data.x === \"undefined\" ? this.target[1] : data.x;\n const y2 = typeof data.y === \"undefined\" ? this.target[2] : data.y;\n if (data.width) {\n this.target[3] = x2 + data.width;\n } else {\n this.target[3] = this.target[3] - this.target[1] + x2;\n }\n if (data.height) {\n this.target[4] = y2 + data.height;\n } else {\n this.target[4] = this.target[4] - this.target[2] + y2;\n }\n if (Math.abs(this.target[1] - x2) > 0.01) {\n this.target[1] = x2;\n }\n if (Math.abs(this.target[2] - y2) > 0.01) {\n this.target[2] = y2;\n }\n this.pendingUpdate = true;\n };\n this.render = (t) => {\n const delta = t - this.lastTime;\n if (this.fpsLimit && delta < 1e3 / this.fpsLimit) {\n this.stopId = window.requestAnimationFrame(this.render);\n return;\n }\n this.lastTime = t;\n this.world.flushSubscriptions();\n this.stopId = window.requestAnimationFrame(this.render);\n this.hook(\"useFrame\", delta);\n const pendingUpdate = this.pendingUpdate;\n const rendererPendingUpdate = this.renderer.pendingUpdate();\n if (this.transitionManager.hasPending()) {\n this.transitionManager.runTransition(this.target, delta);\n this.pendingUpdate = true;\n this.updateControllerPosition();\n }\n if (!this.firstRender && !pendingUpdate && !rendererPendingUpdate && this.target[0] === this.lastTarget[0] && this.target[1] === this.lastTarget[1] && this.target[2] === this.lastTarget[2] && this.target[3] === this.lastTarget[3] && this.target[4] === this.lastTarget[4]) {\n return;\n }\n this.hook(\"useBeforeFrame\", delta);\n this.renderer.beforeFrame(this.world, delta, this.target);\n const scaleFactor = this.getScaleFactor();\n const points = this.renderer.getPointsAt(this.world, this.target, this.aggregate, scaleFactor);\n const pointsLen = points.length;\n for (let p2 = 0; p2 < pointsLen; p2++) {\n const paint = points[p2][0];\n const point = points[p2][1];\n const transformation = points[p2][2];\n this.renderer.prepareLayer(paint);\n const position = transformation ? transform(point, transformation, this.transformBuffer) : point;\n const totalTiles = position.length / 5;\n for (let i = 0; i < totalTiles; i++) {\n const key = i * 5;\n if (position[key] === 0) {\n continue;\n }\n this.renderer.paint(paint, i, position[key + 1], position[key + 2], position[key + 3] - position[key + 1], position[key + 4] - position[key + 2]);\n this.hook(\"useAfterPaint\", paint);\n }\n }\n this.renderer.afterFrame(this.world, delta, this.target);\n this.hook(\"useAfterFrame\", delta);\n this.lastTarget[0] = this.target[0];\n this.lastTarget[1] = this.target[1];\n this.lastTarget[2] = this.target[2];\n this.lastTarget[3] = this.target[3];\n this.lastTarget[4] = this.target[4];\n this.firstRender = false;\n this.pendingUpdate = false;\n this.logNextRender = false;\n if (this.renderer.isReady()) {\n this.ready = true;\n this.world.trigger(\"ready\");\n }\n this.world.flushSubscriptions();\n const updates = this.world.getScheduledUpdates(this.target, scaleFactor);\n const len = updates.length;\n if (len > 0) {\n for (let i = 0; i < len; i++) {\n const update = updates[len - i - 1]();\n if (update) {\n update.then(() => {\n this.pendingUpdate = true;\n });\n } else {\n this.pendingUpdate = true;\n }\n }\n }\n };\n this.renderer = renderer;\n this.world = world;\n this.options = {\n maxOverZoom: 1,\n maxUnderZoom: 1,\n visibilityRatio: 1.5,\n ...options || {}\n };\n this.target = DnaFactory.projection(target);\n this.manualHomePosition = false;\n this.pendingUpdate = true;\n this.homePosition = DnaFactory.projection(this.world);\n this.manualFocalPosition = false;\n this.focalPosition = this.target;\n this.updateFocalPosition();\n this.transitionManager = new TransitionManager(this);\n this.aggregate = scale(1);\n this.world.addLayoutSubscriber((type) => {\n if (type === \"repaint\") {\n this.pendingUpdate = true;\n }\n if (type === \"recalculate-world-size\") {\n if (!this.manualHomePosition) {\n this.setHomePosition();\n this.goHome();\n }\n this.updateFocalPosition();\n }\n });\n this.lastTime = performance.now();\n this.controllers = controllers;\n this.render(this.lastTime);\n this.startControllers();\n }\n get x() {\n return this.target[1];\n }\n set x(x2) {\n this.target[1] = x2;\n }\n get y() {\n return this.target[2];\n }\n set y(y2) {\n this.target[2] = y2;\n }\n get x2() {\n return this.target[3];\n }\n set x2(x2) {\n this.target[3] = x2;\n }\n get y2() {\n return this.target[4];\n }\n set y2(y2) {\n this.target[4] = y2;\n }\n get width() {\n return this.target[3] - this.target[1];\n }\n set width(width) {\n this.target[3] = this.target[1] + width;\n }\n get height() {\n return this.target[4] - this.target[2];\n }\n set height(height) {\n this.target[4] = this.target[2] = height;\n }\n setHomePosition(position) {\n this.homePosition.set(DnaFactory.projection(position ? position : this.world));\n this.pendingUpdate = true;\n }\n startControllers() {\n if (this.controllersRunning) {\n return;\n }\n for (const controller of this.controllers) {\n this.controllerStopFunctions.push(controller.start(this));\n }\n this.controllersRunning = true;\n }\n stopControllers() {\n if (!this.controllersRunning) {\n return;\n }\n for (const controller of this.controllerStopFunctions) {\n controller();\n }\n this.controllersRunning = false;\n this.controllerStopFunctions = [];\n }\n updateControllerPosition() {\n for (const controller of this.controllers) {\n controller.updatePosition(this.x, this.y, this.width, this.height);\n }\n }\n triggerResize() {\n if (this.renderer.triggerResize) {\n this.renderer.triggerResize();\n }\n this.pendingUpdate = true;\n }\n addController(controller) {\n this.controllers.push(controller);\n if (this.controllersRunning) {\n controller.start(this);\n }\n this.pendingUpdate = true;\n }\n cover() {\n return this.goHome({ cover: true });\n }\n getRendererScreenPosition() {\n return this.renderer.getRendererScreenPosition();\n }\n updateRendererScreenPosition() {\n this.pendingUpdate = true;\n this.renderer.resize();\n }\n goHome(options = {}) {\n if (this.world.width <= 0 || this.world.height <= 0)\n return;\n const scaleFactor = this.getScaleFactor();\n const target = options.position ? {\n x: options.position[1],\n y: options.position[2],\n width: options.position[3] - options.position[1],\n height: options.position[4] - options.position[2]\n } : {\n x: this.homePosition[1],\n y: this.homePosition[2],\n width: this.homePosition[3] - this.homePosition[1],\n height: this.homePosition[4] - this.homePosition[2]\n };\n const width = this.width * scaleFactor;\n const height = this.height * scaleFactor;\n const widthScale = target.width / width;\n const heightScale = target.height / height;\n const ar = width / height;\n if (options.cover ? widthScale > heightScale : widthScale < heightScale) {\n const fullWidth = ar * target.height;\n const space = (fullWidth - target.width) / 2;\n this.target[1] = -space + target.x;\n this.target[2] = target.y;\n this.target[3] = fullWidth - space + target.x;\n this.target[4] = target.height + target.y;\n } else {\n const fullHeight = target.width / ar;\n const space = (fullHeight - target.height) / 2;\n this.target[1] = target.x;\n this.target[2] = target.y - space;\n this.target[3] = target.x + target.width;\n this.target[4] = target.y + fullHeight - space;\n }\n this.constrainBounds(this.target);\n this.updateControllerPosition();\n }\n resize(fromWidth, toWidth, fromHeight, toHeight) {\n this.updateFocalPosition(fromWidth - toWidth, fromHeight - toHeight);\n const widthRatio = toWidth / fromWidth;\n const heightRatio = toHeight / fromHeight;\n this.target[3] = this.target[1] + (this.target[3] - this.target[1]) * widthRatio;\n this.target[4] = this.target[2] + (this.target[4] - this.target[2]) * heightRatio;\n this.goHome({ position: this.focalPosition });\n this.renderer.resize(toWidth, toHeight);\n this.pendingUpdate = true;\n }\n updateFocalPosition(widthDiff, heightDiff) {\n if (!this.manualFocalPosition) {\n const w2 = this.width;\n const h2 = this.height;\n const min = Math.min(w2, h2);\n const marginTrimWidth = 0;\n const marginTrimHeight = 0;\n const baseX = this.x + marginTrimWidth;\n const baseY = this.y + marginTrimHeight;\n if (w2 < h2) {\n const diff = this.height - this.width;\n this.focalPosition = DnaFactory.projection({\n x: baseX,\n y: baseY + diff / 2,\n width: min - marginTrimWidth * 2,\n height: min - marginTrimHeight * 2\n });\n this.pendingUpdate = true;\n } else {\n const diff = this.width - this.height;\n this.focalPosition = DnaFactory.projection({\n x: baseX + diff / 2,\n y: baseY,\n width: min - marginTrimWidth * 2,\n height: min - marginTrimHeight * 2\n });\n this.pendingUpdate = true;\n }\n }\n }\n getViewport() {\n this._viewport.x = this.target[1];\n this._viewport.y = this.target[2];\n this._viewport.width = this.target[3] - this.target[1];\n this._viewport.height = this.target[4] - this.target[2];\n return this._viewport;\n }\n constrainBounds(target, { panPadding = 0, ref = false } = {}) {\n const { minX, maxX, minY, maxY } = this.getBounds({ target, padding: panPadding });\n let isConstrained = false;\n const constrained = ref ? target : dna(target);\n const width = target[3] - target[1];\n const height = target[4] - target[2];\n if (minX > target[1]) {\n isConstrained = true;\n constrained[1] = minX;\n constrained[3] = minX + width;\n }\n if (minY > target[2]) {\n isConstrained = true;\n constrained[2] = minY;\n constrained[4] = minY + height;\n }\n if (maxX < target[1]) {\n isConstrained = true;\n constrained[1] = maxX;\n constrained[3] = maxX + width;\n }\n if (maxY < target[2]) {\n isConstrained = true;\n constrained[2] = maxY;\n constrained[4] = maxY + height;\n }\n return [isConstrained, constrained];\n }\n getBounds(options) {\n const target = options.target || this.target;\n const padding = options.padding;\n const visRatio = this.options.visibilityRatio;\n const hiddenRatio = Math.abs(1 - visRatio);\n if (this.world.hasActiveZone()) {\n const zone = this.world.getActiveZone();\n if (zone) {\n const xCon = target[3] - target[1] < zone.points[3] - zone.points[1];\n const yCon = target[4] - target[2] < zone.points[4] - zone.points[2];\n return {\n minX: xCon ? zone.points[1] - padding : zone.points[1] + (zone.points[3] - zone.points[1]) / 2 - (target[3] - target[1]) / 2,\n maxX: yCon ? zone.points[2] - padding : zone.points[2] + (zone.points[4] - zone.points[2]) / 2 - (target[4] - target[2]) / 2,\n minY: xCon ? zone.points[3] + padding : zone.points[1] + (zone.points[3] - zone.points[1]) / 2 - (target[3] - target[1]) / 2,\n maxY: yCon ? zone.points[4] + padding : zone.points[2] + (zone.points[4] - zone.points[2]) / 2 - (target[4] - target[2]) / 2\n };\n }\n }\n const wt = target[3] - target[1];\n const ww = this.world.width;\n const xB = -wt * hiddenRatio;\n const xD = ww - wt - xB;\n const ht = target[4] - target[2];\n const hw = this.world.height;\n const yB = -ht * hiddenRatio;\n const yD = hw - ht - yB;\n const maxX = Math.max(xB, xD);\n const minX = Math.min(xB, xD);\n const maxY = Math.max(yB, yD);\n const minY = Math.min(yB, yD);\n return { minX, maxX, minY, maxY };\n }\n getScaleFactor(dpi = false) {\n const scale2 = this.renderer.getScale(this.target[3] - this.target[1], this.target[4] - this.target[2], dpi);\n if (scale2 === 0) {\n return this._lastGoodScale;\n }\n this._lastGoodScale = scale2;\n return scale2;\n }\n getZoomedPosition(factor, {\n origin,\n fromPos: _fromPos\n }) {\n var _a;\n const fromPos = _fromPos ? { width: _fromPos[3] - _fromPos[1], height: _fromPos[4] - _fromPos[2] } : void 0;\n const scaleFactor = fromPos ? this.renderer.getScale(fromPos.width, fromPos.height) : this.getScaleFactor();\n const w2 = fromPos ? fromPos.width : this.width;\n const h2 = fromPos ? fromPos.height : this.height;\n const sWidth = (_a = this.getRendererScreenPosition()) == null ? void 0 : _a.width;\n const wWidth = this.world.width;\n const ratio = sWidth ? sWidth / wWidth : 1;\n const maxUnderZoom = this.options.maxUnderZoom;\n const maxOverZoom = Math.max(ratio || 1, this.options.maxOverZoom);\n const realFactor = 1 / factor;\n const proposedFactor = scaleFactor * realFactor;\n const isZoomingOut = realFactor < 1;\n if (isZoomingOut) {\n const width = w2 * scaleFactor;\n const height = h2 * scaleFactor;\n const widthScale = this.world.width / width;\n const heightScale = this.world.height / height;\n if (widthScale > heightScale) {\n const proposedWorldDisplayWidth = this.world.width * proposedFactor;\n const displayWidth = ~~(w2 * scaleFactor);\n const displayWidthAdjusted = displayWidth * maxUnderZoom;\n if (proposedWorldDisplayWidth < displayWidthAdjusted) {\n factor = this.world.width * scaleFactor / (w2 * scaleFactor * maxUnderZoom);\n }\n } else {\n const proposedWorldDisplayHeight = this.world.height * proposedFactor;\n const displayHeight = ~~(h2 * scaleFactor);\n const displayHeightAdjusted = displayHeight * maxUnderZoom;\n if (proposedWorldDisplayHeight < displayHeightAdjusted) {\n factor = this.world.height * scaleFactor / (h2 * scaleFactor * maxUnderZoom);\n }\n }\n } else {\n if (proposedFactor > 1) {\n factor = scaleFactor / maxOverZoom;\n }\n }\n const proposedStrand = transform(this.target, scaleAtOrigin(factor, origin ? origin.x : this.target[1] + (this.target[3] - this.target[1]) / 2, origin ? origin.y : this.target[2] + (this.target[4] - this.target[2]) / 2), this.zoomBuffer);\n this.constrainBounds(proposedStrand, { ref: true, panPadding: 100 });\n return proposedStrand;\n }\n clampRegion({\n x: x2,\n y: y2,\n width,\n height,\n padding = 0\n }) {\n const w2 = this.width;\n const h2 = this.height;\n const matchesHeight = width / w2 < height / h2;\n const rx = x2 - padding;\n const ry = y2 - padding;\n const rWidth = width + padding * 2;\n const rHeight = height + padding * 2;\n if (matchesHeight) {\n const actualWidth = rHeight / h2 * w2;\n return {\n x: rx - (actualWidth - rWidth) / 2,\n y: ry,\n width: actualWidth,\n height: rHeight\n };\n }\n const actualHeight = rWidth / w2 * h2;\n return {\n x: rx,\n y: ry - (actualHeight - rHeight) / 2,\n width: rWidth,\n height: actualHeight\n };\n }\n viewerToWorld(x2, y2) {\n const scaleFactor = this.getScaleFactor();\n this._viewerToWorld.x = this.target[1] + x2 / scaleFactor;\n this._viewerToWorld.y = this.target[2] + y2 / scaleFactor;\n return this._viewerToWorld;\n }\n worldToViewer(x2, y2, width, height) {\n const strand = DnaFactory.singleBox(width, height, x2, y2);\n mutate(strand, compose(scale(this.getScaleFactor()), translate(-this.target[1], -this.target[2])));\n return {\n x: strand[1],\n y: strand[2],\n width: strand[3] - strand[1],\n height: strand[4] - strand[2],\n strand\n };\n }\n setScale(scaleFactor, origin) {\n mutate(this.target, scaleAtOrigin(scaleFactor, origin ? origin.x : this.target[1] + (this.target[3] - this.target[1]) / 2, origin ? origin.y : this.target[2] + (this.target[4] - this.target[2]) / 2));\n this.pendingUpdate = true;\n }\n syncTo(runtime) {\n const oldTarget = this.target;\n this.target = runtime.target;\n this.pendingUpdate = true;\n return () => {\n this.target = oldTarget;\n };\n }\n stop() {\n if (typeof this.stopId !== \"undefined\") {\n window.cancelAnimationFrame(this.stopId);\n this.stopId = void 0;\n }\n return () => {\n this.render(performance.now());\n };\n }\n selectZone(zone) {\n this.world.selectZone(zone);\n this.pendingUpdate = true;\n }\n deselectZone() {\n this.world.deselectZone();\n this.pendingUpdate = true;\n }\n hook(name, arg) {\n const len = this.hooks[name].length;\n if (len !== 0) {\n for (let x2 = 0; x2 < len; x2++) {\n this.hooks[name][x2](arg);\n }\n }\n }\n registerHook(name, hook) {\n this.hooks[name].push(hook);\n return () => {\n this.hooks[name] = this.hooks[name].filter((e) => e !== hook);\n };\n }\n updateNextFrame() {\n this.pendingUpdate = true;\n }\n}\nconst shadowRegex = /(-?[0-9]+(px|em)\\s+|0\\s+)(-?[0-9]+(px|em)\\s+|0\\s+)(-?[0-9]+(px|em)\\s+|0\\s+)?(-?[0-9]+(px|em)\\s+|0\\s+)?(.*)/g;\nconst shadowRegexCache = {};\nconst imageCache = {};\nconst hostCache = {};\nclass CanvasRenderer {\n constructor(canvas, options) {\n this.imagesPending = 0;\n this.imagesLoaded = 0;\n this.frameIsRendering = false;\n this.pendingDrawCall = false;\n this.firstMeaningfulPaint = false;\n this.parallelTasks = 8;\n this.frameTasks = 3;\n this.loadingQueueOrdered = true;\n this.loadingQueue = [];\n this.currentTask = Promise.resolve();\n this.tasksRunning = 0;\n this.averageJobTime = 1e3;\n this.lastKnownScale = 1;\n this.visible = [];\n this.previousVisible = [];\n this.drawCalls = [];\n this._worker = () => {\n if (this.loadingQueue.length && this.tasksRunning < this.parallelTasks && this.frameTasks < this.parallelTasks) {\n const next = this.loadingQueue.pop();\n if (next) {\n const outOfBounds = !next.shifted && Math.abs(1 - next.scale / (1 / this.lastKnownScale)) >= 1;\n if (outOfBounds && !next.shifted) {\n next.shifted = true;\n this.loadingQueue.unshift(next);\n return;\n }\n this.tasksRunning++;\n this.frameTasks++;\n this.currentTask = next.task().then(() => {\n this.tasksRunning--;\n }).catch(() => {\n this.tasksRunning--;\n });\n }\n }\n };\n this._scheduled = 0;\n this._doWork = () => {\n if (this.frameIsRendering || this.loadingQueue.length === 0 && this.tasksRunning === 0 && this._scheduled) {\n clearInterval(this._scheduled);\n this._scheduled = 0;\n }\n this._worker();\n };\n this.canvas = canvas;\n this.rendererPosition = canvas.getBoundingClientRect();\n this.ctx = canvas.getContext(\"2d\", { alpha: false });\n this.ctx.imageSmoothingEnabled = true;\n this.options = options || {};\n this.canvas.style.opacity = \"0\";\n this.canvas.style.transition = \"opacity .3s\";\n this.dpi = (options == null ? void 0 : options.dpi) || 1;\n }\n getCanvasDims() {\n return { width: this.canvas.width / this.dpi, height: this.canvas.height / this.dpi };\n }\n resize() {\n this.rendererPosition = this.canvas.getBoundingClientRect();\n }\n isReady() {\n return this.firstMeaningfulPaint;\n }\n afterFrame(world) {\n this.frameIsRendering = false;\n this.imagesPending = this.imagesPending - this.imagesLoaded;\n this.imagesLoaded = 0;\n if (!this.loadingQueueOrdered) {\n this.loadingQueue = this.loadingQueue.sort((a, b2) => {\n return a.scale - b2.scale || b2.distance - a.distance;\n });\n this.loadingQueueOrdered = true;\n }\n this.previousVisible = this.visible;\n this.pendingDrawCall = !!this.drawCalls.length;\n if (this.pendingDrawCall) {\n const nextCall = this.drawCalls.shift();\n if (nextCall)\n nextCall();\n }\n this.doOffscreenWork();\n if (this.options.debug && this.stats) {\n this.stats.end();\n }\n }\n doOffscreenWork() {\n this.frameTasks = 0;\n if (this.loadingQueue.length) {\n this._worker();\n if (this.loadingQueue.length && this.tasksRunning < this.parallelTasks) {\n if (!this._scheduled) {\n this._scheduled = setInterval(this._doWork, 0);\n }\n }\n }\n }\n getScale(width, height, dpi) {\n if (Number.isNaN(width) || Number.isNaN(height)) {\n return this.lastKnownScale;\n }\n const canvas = this.getCanvasDims();\n const w2 = canvas.width / width;\n const h2 = canvas.height / height;\n const scale2 = (w2 < h2 ? h2 : w2) * (dpi ? this.dpi || 1 : 1);\n if (!Number.isNaN(scale2)) {\n this.lastKnownScale = scale2;\n }\n return this.lastKnownScale;\n }\n beforeFrame(world, delta, target) {\n if (this.options.debug && this.stats) {\n this.stats.begin();\n }\n this.frameIsRendering = true;\n this.visible = [];\n if (this.options.beforeFrame) {\n this.options.beforeFrame(delta);\n }\n const canvas = this.getCanvasDims();\n this.ctx.globalAlpha = 1;\n this.ctx.fillStyle = this.options.background || \"rgb(0, 0, 0)\";\n this.ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n paint(paint, index, x2, y2, width, height) {\n const ga = this.ctx.globalAlpha;\n if (paint instanceof SingleImage || paint instanceof TiledImage) {\n this.visible.push(paint);\n if (typeof paint.style && paint.style.opacity !== \"undefined\") {\n if (!paint.style.opacity) {\n return;\n }\n this.ctx.globalAlpha = paint.style.opacity;\n }\n try {\n const imageBuffer = paint.__host.canvas;\n const canvas = this.getCanvasDims();\n if (imageBuffer.indices.indexOf(index) === -1) {\n this.schedulePaintToCanvas(imageBuffer, paint, index, distance({ x: x2 + width / 2, y: y2 + width / 2 }, { x: canvas.width / 2, y: canvas.height / 2 }));\n }\n if (!this.firstMeaningfulPaint) {\n return;\n }\n const canvasToPaint = imageBuffer.canvases[index];\n if (canvasToPaint) {\n if (paint.crop) {\n if (paint.crop[0]) {\n this.ctx.drawImage(canvasToPaint, paint.display.points[index * 5 + 1] - paint.crop[index * 5 + 1], paint.display.points[index * 5 + 2] - paint.crop[index * 5 + 2], paint.crop[index * 5 + 3] - paint.crop[index * 5 + 1] - 1, paint.crop[index * 5 + 4] - paint.crop[index * 5 + 2] - 1, x2, y2, width + Number.MIN_VALUE, height + Number.MIN_VALUE);\n }\n } else {\n this.ctx.drawImage(canvasToPaint, 0, 0, paint.display.points[index * 5 + 3] - paint.display.points[index * 5 + 1] - 1, paint.display.points[index * 5 + 4] - paint.display.points[index * 5 + 2] - 1, x2, y2, width + Number.MIN_VALUE, height + Number.MIN_VALUE);\n }\n }\n } catch (err) {\n }\n }\n if (this.options.box && paint instanceof Box && !paint.props.className && !paint.props.html && !paint.props.href) {\n if (paint.props.style) {\n const style = Object.assign({}, paint.props.style || {}, paint.hovering ? paint.props.hoverStyles : {}, paint.pressing ? paint.props.pressStyles : {});\n const scale2 = paint.props.relativeStyle ? 1 : width / paint.width;\n if (typeof style.opacity !== \"undefined\") {\n this.ctx.globalAlpha = style.opacity;\n }\n let bw = 0;\n if (typeof style.borderWidth !== \"undefined\") {\n bw = parseInt(style.borderWidth, 10) * scale2;\n }\n let ow = 0;\n if (typeof style.outlineWidth !== \"undefined\") {\n ow = parseInt(style.outlineWidth, 10) * scale2;\n }\n let oo = 0;\n if (typeof style.outlineOffset !== \"undefined\") {\n oo = parseInt(style.outlineOffset, 10) * scale2;\n }\n if (style.borderColor) {\n this.ctx.strokeStyle = style.borderColor;\n }\n if (style.boxShadow) {\n const shadows = style.boxShadow.split(/,(?![^(]*\\))/);\n for (const shadow of shadows) {\n const parsed = shadowRegexCache[shadow] || shadowRegex.exec(shadow) || shadowRegex.exec(shadow);\n shadowRegexCache[shadow] = parsed;\n if (parsed) {\n this.ctx.save();\n this.ctx.shadowOffsetX = parseInt(parsed[1]) * this.dpi * scale2;\n this.ctx.shadowOffsetY = parseInt(parsed[3]) * this.dpi * scale2;\n this.ctx.shadowBlur = parseInt(parsed[5]) * this.dpi * scale2;\n this.ctx.shadowColor = parsed[9];\n this.ctx.fillStyle = \"rgba(0,0,0,1)\";\n this.ctx.fillRect(x2 + bw, y2 + bw, width, height);\n this.ctx.restore();\n }\n }\n }\n this.ctx.fillStyle = style.backgroundColor || \"transparent\";\n this.ctx.lineWidth = bw;\n if (bw) {\n this.ctx.strokeRect(x2 + bw / 2, y2 + bw / 2, width + bw, height + bw);\n }\n this.ctx.fillRect(x2 + bw, y2 + bw, width, height);\n if (ow) {\n if (style.outlineColor) {\n this.ctx.strokeStyle = style.outlineColor;\n }\n this.ctx.lineWidth = ow;\n this.ctx.strokeRect(x2 - ow / 2 - oo, y2 - ow / 2 - oo, width + bw * 2 + ow + oo * 2, height + bw * 2 + ow + oo * 2);\n }\n }\n this.ctx.globalAlpha = ga;\n }\n }\n loadImage(url, callback, err) {\n if (imageCache[url] && imageCache[url].naturalWidth > 0) {\n callback(imageCache[url]);\n return;\n }\n try {\n const image = document.createElement(\"img\");\n image.decoding = \"auto\";\n image.onload = function() {\n callback(image);\n imageCache[url] = image;\n image.onload = null;\n };\n if (this.options.crossOrigin) {\n image.crossOrigin = \"anonymous\";\n }\n image.src = url;\n } catch (e) {\n err(e);\n }\n }\n schedulePaintToCanvas(imageBuffer, paint, index, priority) {\n this.imagesPending++;\n imageBuffer.indices.push(index);\n imageBuffer.canvases[index] = document.createElement(\"canvas\");\n paint.__host.canvas.loading = true;\n const id = `${paint.id}--${paint.display.scale}`;\n this.loadingQueueOrdered = false;\n this.loadingQueue.push({\n id,\n scale: paint.display.scale,\n distance: priority,\n task: () => new Promise((resolve) => {\n if (this.visible.indexOf(paint) === -1) {\n this.imagesPending--;\n imageBuffer.indices.splice(imageBuffer.indices.indexOf(index), 1);\n resolve();\n return;\n }\n const url = paint.getImageUrl(index);\n this.loadImage(url, (image) => {\n this.loadingQueue.push({\n id,\n scale: paint.display.scale,\n distance: priority,\n task: () => {\n return new Promise((innerResolve) => {\n this.imagesLoaded++;\n imageBuffer.loaded.push(index);\n if (imageBuffer.loaded.length === imageBuffer.indices.length) {\n imageBuffer.loading = false;\n }\n const points = paint.display.points.slice(index * 5, index * 5 + 5);\n const canvas = imageBuffer.canvases[index];\n const ctx = canvas.getContext(\"2d\");\n canvas.width = points[3] - points[1];\n canvas.height = points[4] - points[2];\n this.drawCalls.push(() => {\n ctx.drawImage(image, 0, 0, points[3] - points[1], points[4] - points[2]);\n innerResolve();\n });\n });\n }\n });\n resolve();\n }, (err) => {\n this.imagesPending--;\n imageBuffer.indices.splice(imageBuffer.indices.indexOf(index), 1);\n console.log(\"Error loading image\", err);\n resolve();\n });\n })\n });\n }\n afterPaintLayer(paint, transform2) {\n }\n prepareLayer(paint) {\n if (!paint.__host || !paint.__host.canvas) {\n if (paint instanceof SingleImage || paint instanceof TiledImage) {\n this.createImageHost(paint);\n }\n }\n }\n createImageHost(paint) {\n var _a;\n const canvas = document.createElement(\"canvas\");\n canvas.width = paint.display.width;\n canvas.height = paint.display.height;\n (_a = canvas.getContext(\"2d\")) == null ? void 0 : _a.clearRect(0, 0, paint.display.width, paint.display.height);\n paint.__host = paint.__host ? paint.__host : {};\n paint.__host.canvas = { canvas, canvases: [], indices: [], loaded: [], loading: false };\n hostCache[paint.id] = paint.__host;\n }\n getPointsAt(world, target, aggregate, scaleFactor) {\n return world.getPointsAt(target, aggregate, scaleFactor);\n }\n getViewportBounds(world, target, padding) {\n const zone = world.getActiveZone();\n if (zone) {\n const xCon = target[3] - target[1] < zone.points[3] - zone.points[1];\n const yCon = target[4] - target[2] < zone.points[4] - zone.points[2];\n return {\n x1: xCon ? zone.points[1] - padding : zone.points[1] + (zone.points[3] - zone.points[1]) / 2 - (target[3] - target[1]) / 2,\n y1: yCon ? zone.points[2] - padding : zone.points[2] + (zone.points[4] - zone.points[2]) / 2 - (target[4] - target[2]) / 2,\n x2: xCon ? zone.points[3] + padding : zone.points[1] + (zone.points[3] - zone.points[1]) / 2 - (target[3] - target[1]) / 2,\n y2: yCon ? zone.points[4] + padding : zone.points[2] + (zone.points[4] - zone.points[2]) / 2 - (target[4] - target[2]) / 2\n };\n }\n return null;\n }\n pendingUpdate() {\n const ready = !this.pendingDrawCall && this.drawCalls.length === 0 && this.imagesPending === 0 && this.loadingQueue.length === 0 && this.tasksRunning === 0;\n if (!this.firstMeaningfulPaint && ready) {\n this.canvas.style.opacity = \"1\";\n this.firstMeaningfulPaint = ready;\n return true;\n }\n if (this.options.debug) {\n return true;\n }\n return !ready;\n }\n getRendererScreenPosition() {\n return this.rendererPosition;\n }\n}\nclass CompositeRenderer {\n constructor(renderers) {\n this.renderers = [];\n for (const renderer of renderers) {\n if (renderer) {\n this.renderers.push(renderer);\n }\n }\n this.length = this.renderers.length;\n }\n afterFrame(world, delta, target) {\n for (let i = 0; i < this.length; i++) {\n this.renderers[i].afterFrame(world, delta, target);\n }\n }\n afterPaintLayer(paint, transform2) {\n for (let i = 0; i < this.length; i++) {\n this.renderers[i].afterPaintLayer(paint, transform2);\n }\n }\n beforeFrame(world, delta, target) {\n for (let i = 0; i < this.length; i++) {\n this.renderers[i].beforeFrame(world, delta, target);\n }\n }\n triggerResize() {\n for (let i = 0; i < this.length; i++) {\n const renderer = this.renderers[i];\n if (renderer.triggerResize) {\n renderer.triggerResize();\n }\n }\n }\n getPointsAt(world, target, aggregate, scaleFactor) {\n return this.renderers[0].getPointsAt(world, target, aggregate, scaleFactor);\n }\n getScale(width, height) {\n return this.renderers[0].getScale(width, height);\n }\n getViewportBounds(world, target, padding) {\n return this.renderers[0].getViewportBounds(world, target, padding);\n }\n getRendererScreenPosition() {\n return this.renderers[0].getRendererScreenPosition();\n }\n isReady() {\n for (let i = 0; i < this.length; i++) {\n if (!this.renderers[i].isReady()) {\n return false;\n }\n }\n return true;\n }\n paint(paint, index, x2, y2, width, height) {\n for (let i = 0; i < this.length; i++) {\n this.renderers[i].paint(paint, index, x2, y2, width, height);\n }\n }\n pendingUpdate() {\n for (let i = 0; i < this.length; i++) {\n if (this.renderers[i].pendingUpdate()) {\n return true;\n }\n }\n return false;\n }\n prepareLayer(paint) {\n for (let i = 0; i < this.length; i++) {\n this.renderers[i].prepareLayer(paint);\n }\n }\n resize(width, height) {\n for (let i = 0; i < this.length; i++) {\n this.renderers[i].resize(width, height);\n }\n }\n}\nclass DebugRenderer {\n constructor(canvas) {\n this.heightRatio = 1;\n this.widthRatio = 1;\n this.target = new Float32Array(5);\n this.delta = 0;\n this.renderNextFrame = true;\n this.canvas = canvas;\n this.initialWidth = canvas.width;\n this.initialHeight = canvas.height;\n this.context = canvas.getContext(\"2d\");\n this.context.globalAlpha = 0.5;\n this.aggregate = scale(1);\n }\n isReady() {\n return true;\n }\n resize() {\n this.initialWidth = this.canvas.width;\n this.initialHeight = this.canvas.height;\n this.renderNextFrame = true;\n }\n afterFrame(world, delta, target) {\n if (this.renderNextFrame) {\n this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);\n const widthRatio = this.initialWidth / world.width;\n const heightRatio = this.initialHeight / world.height;\n const ratio = this.widthRatio > this.heightRatio ? widthRatio : heightRatio;\n this.target = target;\n if (this.bounds) {\n const points = world.getPointsAt(this.bounds, this.aggregate, ratio);\n for (const [paint, point] of points) {\n if (paint instanceof SingleImage) {\n if (paint.__host.canvas) {\n const total = point.length / 5;\n for (let i = 0; i < total; i++) {\n const toPaint = paint.__host.canvas.canvases[i];\n if (toPaint) {\n const toDraw = {\n x1: point[i + 1] * ratio,\n y1: point[i + 2] * ratio,\n width: (point[i + 3] - point[i + 1]) * ratio,\n height: (point[i + 4] - point[i + 2]) * ratio\n };\n this.context.drawImage(toPaint, toDraw.x1, toDraw.y1, toDraw.width, toDraw.height);\n }\n }\n }\n }\n }\n }\n world.getPoints().forEach((v2, k2, arr) => {\n if (k2 % 5 === 0 && v2) {\n const toDraw = {\n x1: arr[k2 + 1] * ratio,\n y1: arr[k2 + 2] * ratio,\n x2: arr[k2 + 3] * ratio,\n y2: arr[k2 + 4] * ratio,\n width: (arr[k2 + 3] - arr[k2 + 1]) * ratio,\n height: (arr[k2 + 4] - arr[k2 + 2]) * ratio\n };\n this.context.strokeStyle = \"red\";\n this.context.strokeRect(toDraw.x1, toDraw.y1, toDraw.width, toDraw.height);\n }\n });\n if (target) {\n this.context.strokeStyle = \"red\";\n this.context.lineWidth = window.devicePixelRatio || 1;\n this.context.strokeRect(target[1] * ratio, target[2] * ratio, (target[3] - target[1]) * ratio, (target[4] - target[2]) * ratio);\n }\n }\n }\n getActiveZone(world) {\n return null;\n }\n getPointsAt(world, target, aggregate, scaleFactor) {\n return world.getPointsAt(target, aggregate, scaleFactor);\n }\n getScale(width, height) {\n return 1;\n }\n beforeFrame(world, delta) {\n this.bounds = DnaFactory.singleBox(world.width, world.height);\n }\n drawImage() {\n }\n afterPaintLayer(paint, transform2) {\n }\n paint(paint, index, x2, y2, width, height) {\n this.renderNextFrame = true;\n }\n prepareLayer(paint) {\n }\n pendingUpdate() {\n return false;\n }\n hasActiveZone() {\n return false;\n }\n getViewportBounds(world, target, padding) {\n return null;\n }\n getRendererScreenPosition() {\n return this.canvas.getBoundingClientRect();\n }\n}\nclass GridBuilder {\n constructor() {\n this.autoWidth = false;\n this.autoHeight = true;\n this.content = [];\n this.viewingDirection = \"left-to-right\";\n this.columns = 4;\n this.spacing = 20;\n this.reversed = false;\n this.padding = 20;\n this.world = World.withProps({ width: 0, height: 0, viewingDirection: \"left-to-right\" });\n this.width = 0;\n this.height = 0;\n }\n setViewingDirection(viewingDirection) {\n this.viewingDirection = viewingDirection;\n }\n addContent(content) {\n this.content.push(...content.map((item) => this.world.addObjectAt(item, {\n width: 0,\n height: 0,\n x: 0,\n y: 0\n })));\n }\n setWidth(width) {\n this.width = width;\n }\n setHeight(height) {\n this.height = height;\n }\n setSpacing(spacing) {\n this.spacing = spacing;\n }\n setPadding(padding) {\n this.padding = padding;\n }\n setRows(rows) {\n this.autoWidth = true;\n this.rows = rows;\n }\n setColumns(columns) {\n this.autoHeight = true;\n this.columns = columns;\n }\n recalculate() {\n if (this.height === 0 && this.width === 0) {\n return;\n }\n if (this.rows === 0 || this.columns === 0) {\n return;\n }\n if (this.autoHeight && !this.width) {\n throw new Error(\"Cannot set auto height without setting a width\");\n }\n if (this.autoWidth && !this.height) {\n throw new Error(\"Cannot set auto width without setting a height\");\n }\n if ((this.viewingDirection === \"left-to-right\" || this.viewingDirection === \"top-to-bottom\") && this.reversed) {\n this.reversed = false;\n this.content.reverse();\n }\n if ((this.viewingDirection === \"right-to-left\" || this.viewingDirection === \"bottom-to-top\") && !this.reversed) {\n this.reversed = true;\n this.content.reverse();\n }\n const len = this.content.length;\n const getColumns = () => {\n if (this.autoWidth && this.rows) {\n const rowsValue = len > this.rows ? this.rows : len;\n return {\n columns: Math.ceil(len / rowsValue),\n rows: rowsValue\n };\n }\n if (this.autoHeight && this.columns) {\n const columnsValue = len > this.columns ? this.columns : len;\n return {\n columns: columnsValue,\n rows: Math.ceil(len / columnsValue)\n };\n }\n throw new Error(\"Something went wrong.\");\n };\n const { columns, rows } = getColumns();\n const contentWidth = this.autoWidth ? -1 : this.width - this.padding * 2;\n const itemWidth = this.autoWidth ? -1 : (contentWidth - this.spacing * (columns - 1)) / columns;\n if (this.autoHeight && !this.autoWidth) {\n let index = 0;\n let rowHeights = this.padding;\n for (let r = 0; r < rows; r++) {\n if (index === len) {\n break;\n }\n let rowHeight = 0;\n const row = [];\n for (let c = 0; c < columns; c++) {\n const realIndex = this.reversed ? len - index : index;\n if (index === len) {\n break;\n }\n const item = this.content[realIndex];\n const width = item.width;\n const aspectRatio = item.width / item.height;\n const currentRowHeight = itemWidth / aspectRatio;\n row.push([\n index,\n itemWidth,\n currentRowHeight,\n itemWidth / width\n ]);\n if (currentRowHeight > rowHeight) {\n rowHeight = currentRowHeight;\n }\n index++;\n }\n for (let c = 0; c < columns; c++) {\n if (!row[c]) {\n break;\n }\n const worldPoints = this.world.getPoints();\n const currentIndex = row[c][0];\n const width = row[c][1];\n const height = row[c][2];\n const scale2 = row[c][3];\n const x2 = this.padding + c * (this.spacing + width);\n const y2 = rowHeights + (rowHeight - height) / 2;\n const realIndex = this.reversed ? len - currentIndex : currentIndex;\n const prevX = worldPoints[realIndex * 5 + 1];\n const prevY = worldPoints[realIndex * 5 + 2];\n this.world.scaleWorldObject(currentIndex, scale2);\n if (prevX !== x2 || prevY !== y2) {\n this.world.translateWorldObject(realIndex, x2 - prevX, y2 - prevY);\n }\n }\n rowHeights += rowHeight + this.spacing;\n }\n this.height = rowHeights + this.padding;\n this.world.resize(this.width, this.height);\n return;\n }\n if (this.autoWidth && !this.autoHeight)\n ;\n if (!this.autoWidth && !this.autoHeight)\n ;\n }\n getWorld() {\n return this.world;\n }\n}\nvar _populated = false;\nvar _ie, _firefox, _opera, _webkit, _chrome;\nvar _ie_real_version;\nvar _osx, _windows, _linux, _android;\nvar _win64;\nvar _iphone, _ipad, _native;\nvar _mobile;\nfunction _populate() {\n if (_populated) {\n return;\n }\n _populated = true;\n var uas = navigator.userAgent;\n var agent = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(uas);\n var os = /(Mac OS X)|(Windows)|(Linux)/.exec(uas);\n _iphone = /\\b(iPhone|iP[ao]d)/.exec(uas);\n _ipad = /\\b(iP[ao]d)/.exec(uas);\n _android = /Android/i.exec(uas);\n _native = /FBAN\\/\\w+;/i.exec(uas);\n _mobile = /Mobile/i.exec(uas);\n _win64 = !!/Win64/.exec(uas);\n if (agent) {\n _ie = agent[1] ? parseFloat(agent[1]) : agent[5] ? parseFloat(agent[5]) : NaN;\n if (_ie && document && document.documentMode) {\n _ie = document.documentMode;\n }\n var trident = /(?:Trident\\/(\\d+.\\d+))/.exec(uas);\n _ie_real_version = trident ? parseFloat(trident[1]) + 4 : _ie;\n _firefox = agent[2] ? parseFloat(agent[2]) : NaN;\n _opera = agent[3] ? parseFloat(agent[3]) : NaN;\n _webkit = agent[4] ? parseFloat(agent[4]) : NaN;\n if (_webkit) {\n agent = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(uas);\n _chrome = agent && agent[1] ? parseFloat(agent[1]) : NaN;\n } else {\n _chrome = NaN;\n }\n } else {\n _ie = _firefox = _opera = _chrome = _webkit = NaN;\n }\n if (os) {\n if (os[1]) {\n var ver = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(uas);\n _osx = ver ? parseFloat(ver[1].replace(\"_\", \".\")) : true;\n } else {\n _osx = false;\n }\n _windows = !!os[2];\n _linux = !!os[3];\n } else {\n _osx = _windows = _linux = false;\n }\n}\nvar UserAgent_DEPRECATED$1 = {\n ie: function() {\n return _populate() || _ie;\n },\n ieCompatibilityMode: function() {\n return _populate() || _ie_real_version > _ie;\n },\n ie64: function() {\n return UserAgent_DEPRECATED$1.ie() && _win64;\n },\n firefox: function() {\n return _populate() || _firefox;\n },\n opera: function() {\n return _populate() || _opera;\n },\n webkit: function() {\n return _populate() || _webkit;\n },\n safari: function() {\n return UserAgent_DEPRECATED$1.webkit();\n },\n chrome: function() {\n return _populate() || _chrome;\n },\n windows: function() {\n return _populate() || _windows;\n },\n osx: function() {\n return _populate() || _osx;\n },\n linux: function() {\n return _populate() || _linux;\n },\n iphone: function() {\n return _populate() || _iphone;\n },\n mobile: function() {\n return _populate() || (_iphone || _ipad || _android || _mobile);\n },\n nativeApp: function() {\n return _populate() || _native;\n },\n android: function() {\n return _populate() || _android;\n },\n ipad: function() {\n return _populate() || _ipad;\n }\n};\nvar UserAgent_DEPRECATED_1 = UserAgent_DEPRECATED$1;\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar ExecutionEnvironment$1 = {\n canUseDOM,\n canUseWorkers: typeof Worker !== \"undefined\",\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n canUseViewport: canUseDOM && !!window.screen,\n isInWorker: !canUseDOM\n};\nvar ExecutionEnvironment_1 = ExecutionEnvironment$1;\nvar ExecutionEnvironment = ExecutionEnvironment_1;\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature = document.implementation && document.implementation.hasFeature && document.implementation.hasFeature(\"\", \"\") !== true;\n}\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported$1(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM || capture && !(\"addEventListener\" in document)) {\n return false;\n }\n var eventName = \"on\" + eventNameSuffix;\n var isSupported = eventName in document;\n if (!isSupported) {\n var element = document.createElement(\"div\");\n element.setAttribute(eventName, \"return;\");\n isSupported = typeof element[eventName] === \"function\";\n }\n if (!isSupported && useHasFeature && eventNameSuffix === \"wheel\") {\n isSupported = document.implementation.hasFeature(\"Events.wheel\", \"3.0\");\n }\n return isSupported;\n}\nvar isEventSupported_1 = isEventSupported$1;\nvar UserAgent_DEPRECATED = UserAgent_DEPRECATED_1;\nvar isEventSupported = isEventSupported_1;\nvar PIXEL_STEP = 10;\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\nfunction normalizeWheel$1(event) {\n var sX = 0, sY = 0, pX = 0, pY = 0;\n if (\"detail\" in event) {\n sY = event.detail;\n }\n if (\"wheelDelta\" in event) {\n sY = -event.wheelDelta / 120;\n }\n if (\"wheelDeltaY\" in event) {\n sY = -event.wheelDeltaY / 120;\n }\n if (\"wheelDeltaX\" in event) {\n sX = -event.wheelDeltaX / 120;\n }\n if (\"axis\" in event && event.axis === event.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if (\"deltaY\" in event) {\n pY = event.deltaY;\n }\n if (\"deltaX\" in event) {\n pX = event.deltaX;\n }\n if ((pX || pY) && event.deltaMode) {\n if (event.deltaMode == 1) {\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n}\nnormalizeWheel$1.getEventType = function() {\n return UserAgent_DEPRECATED.firefox() ? \"DOMMouseScroll\" : isEventSupported(\"wheel\") ? \"wheel\" : \"mousewheel\";\n};\nvar normalizeWheel_1 = normalizeWheel$1;\nvar normalizeWheel = normalizeWheel_1;\nfunction toBox(strand) {\n return {\n x: strand[1],\n y: strand[2],\n width: strand[3] - strand[1],\n height: strand[4] - strand[2]\n };\n}\nconst defaultConfig = {\n zoomOutFactor: 0.8,\n zoomInFactor: 1.25,\n maxZoomFactor: 1,\n minZoomFactor: 0.05,\n zoomDuration: 300,\n zoomWheelConstant: 20,\n zoomClamp: 0.6,\n panBounceStiffness: 120,\n panBounceDamping: 15,\n panTimeConstant: 240,\n panPower: 0.1,\n nudgeDistance: 100,\n panPadding: 0,\n devicePixelRatio: 1,\n enableWheel: true,\n enableClickToZoom: false,\n onPanInSketchMode: () => {\n }\n};\nconst popmotionController = (config = {}) => {\n return {\n start: function(runtime) {\n const { zoomWheelConstant, enableWheel, enableClickToZoom } = {\n ...defaultConfig,\n ...config\n };\n const state = {\n pointerStart: { x: 0, y: 0 },\n isPressing: false,\n mousemoveBuffer: dna(5),\n multiTouch: {\n distance: 0\n }\n };\n runtime.world.activatedEvents.push(\"onMouseUp\", \"onMouseDown\", \"onMouseMove\", \"onTouchStart\", \"onTouchEnd\", \"onTouchMove\", \"onPointerUp\", \"onPointerDown\", \"onPointerMove\");\n function onMouseUp() {\n runtime.world.constraintBounds();\n currentDistance = 0;\n }\n function onMouseDown(e) {\n if (e.which > 1) {\n state.isPressing = false;\n return;\n }\n if (runtime.mode === \"explore\") {\n e.preventDefault();\n state.pointerStart.x = e.atlas.x;\n state.pointerStart.y = e.atlas.y;\n runtime.transitionManager.stopTransition();\n state.isPressing = true;\n }\n }\n function onWindowMouseUp() {\n if (state.isPressing) {\n if (runtime.mode === \"explore\") {\n runtime.world.constraintBounds();\n }\n state.isPressing = false;\n }\n }\n let currentDistance = 0;\n function onTouchStart(e) {\n if (runtime.mode === \"explore\") {\n if (e.atlasTouches.length === 1) {\n e.preventDefault();\n state.pointerStart.x = e.atlasTouches[0].x;\n state.pointerStart.y = e.atlasTouches[0].y;\n }\n if (e.atlasTouches.length === 2) {\n e.preventDefault();\n const x1 = e.atlasTouches[0].x;\n const x2 = e.atlasTouches[1].x;\n state.pointerStart.x = (x1 + x2) / 2;\n const y1 = e.atlasTouches[0].y;\n const y2 = e.atlasTouches[1].y;\n state.pointerStart.y = (y1 + y2) / 2;\n currentDistance = distance({ x: e.touches[0].clientX, y: e.touches[0].clientY }, { x: e.touches[1].clientX, y: e.touches[1].clientY });\n }\n runtime.transitionManager.stopTransition();\n state.isPressing = true;\n }\n }\n function onTouchMove(e) {\n let clientX = null;\n let clientY = null;\n let newDistance = 0;\n if (state.isPressing && e.touches.length === 2) {\n const x1 = e.touches[0].clientX;\n const x2 = e.touches[1].clientX;\n clientX = (x1 + x2) / 2;\n const y1 = e.touches[0].clientY;\n const y2 = e.touches[1].clientY;\n clientY = (y1 + y2) / 2;\n newDistance = distance({ x: e.touches[0].clientX, y: e.touches[0].clientY }, { x: e.touches[1].clientX, y: e.touches[1].clientY });\n }\n if (state.isPressing && e.touches.length === 1) {\n const touch = e.touches[0];\n clientX = touch.clientX;\n clientY = touch.clientY;\n }\n if (clientX !== null && clientY !== null) {\n const bounds = runtime.getRendererScreenPosition();\n if (bounds) {\n const { x: x2, y: y2 } = runtime.viewerToWorld(clientX - bounds.x, clientY - bounds.y);\n const deltaDistance = newDistance && currentDistance ? newDistance / currentDistance : 1;\n runtime.transitionManager.customTransition((pendingTransition) => {\n pendingTransition.from = dna(runtime.target);\n pendingTransition.to = transform(pendingTransition.from, compose(translate(state.pointerStart.x - x2, state.pointerStart.y - y2), scaleAtOrigin(1 / deltaDistance, x2, y2)), state.mousemoveBuffer);\n pendingTransition.elapsed_time = 0;\n pendingTransition.total_time = 0;\n pendingTransition.timingFunction = easingFunctions.easeInOutExpo;\n pendingTransition.done = false;\n });\n }\n currentDistance = newDistance;\n }\n }\n function onMouseMove(e) {\n if (state.isPressing) {\n const bounds = runtime.getRendererScreenPosition();\n if (bounds) {\n const { x: x2, y: y2 } = runtime.viewerToWorld(e.clientX - bounds.x, e.clientY - bounds.y);\n runtime.transitionManager.customTransition((pendingTransition) => {\n pendingTransition.from = dna(runtime.target);\n pendingTransition.to = transform(pendingTransition.from, translate(state.pointerStart.x - x2, state.pointerStart.y - y2), state.mousemoveBuffer);\n pendingTransition.elapsed_time = 0;\n pendingTransition.total_time = 0;\n pendingTransition.timingFunction = easingFunctions.easeInOutExpo;\n pendingTransition.done = false;\n });\n }\n }\n }\n function onClick(e) {\n if (runtime.mode === \"explore\") {\n runtime.world.zoomIn(e.atlas);\n }\n }\n function onWheel(e) {\n const normalized = normalizeWheel(e);\n const zoomFactor = 1 + normalized.spinY / zoomWheelConstant;\n runtime.world.zoomTo(zoomFactor, e.atlas, true);\n }\n runtime.world.addEventListener(\"mouseup\", onMouseUp);\n runtime.world.addEventListener(\"touchend\", onMouseUp);\n runtime.world.addEventListener(\"touchstart\", onTouchStart);\n runtime.world.addEventListener(\"mousedown\", onMouseDown);\n window.addEventListener(\"touchend\", onWindowMouseUp);\n window.addEventListener(\"mouseup\", onWindowMouseUp);\n window.addEventListener(\"mousemove\", onMouseMove);\n window.addEventListener(\"touchmove\", onTouchMove);\n if (enableClickToZoom) {\n runtime.world.activatedEvents.push(\"onClick\");\n runtime.world.addEventListener(\"click\", onClick);\n }\n if (enableWheel) {\n runtime.world.activatedEvents.push(\"onWheel\");\n runtime.world.addEventListener(\"wheel\", onWheel);\n }\n const removeLayout = runtime.world.addLayoutSubscriber((type, data) => {\n if (type === \"zone-changed\") {\n runtime.transitionManager.constrainBounds({\n transition: { duration: 0 }\n });\n }\n if (type === \"zoom-to\" && data) {\n runtime.transitionManager.zoomTo(data.factor, {\n origin: data.point,\n stream: data.stream\n });\n }\n if (type === \"go-home\") {\n const transition = data.immediate ? { duration: 0 } : void 0;\n runtime.transitionManager.goToRegion(toBox(runtime.homePosition), { transition });\n }\n if (type === \"goto-region\" && data) {\n const transition = data.immediate ? { duration: 0 } : {};\n runtime.transitionManager.goToRegion(data, { transition });\n }\n if (type === \"constrain-bounds\") {\n runtime.transitionManager.constrainBounds({\n transition: (data == null ? void 0 : data.immediate) ? { duration: 0 } : void 0\n });\n }\n });\n return () => {\n runtime.world.removeEventListener(\"mouseup\", onMouseUp);\n runtime.world.removeEventListener(\"touchend\", onMouseUp);\n runtime.world.removeEventListener(\"touchstart\", onTouchStart);\n runtime.world.removeEventListener(\"mousedown\", onMouseDown);\n window.removeEventListener(\"touchend\", onWindowMouseUp);\n window.removeEventListener(\"mouseup\", onWindowMouseUp);\n runtime.world.removeEventListener(\"mousemove\", onMouseMove);\n runtime.world.removeEventListener(\"touchmove\", onMouseMove);\n if (enableClickToZoom) {\n runtime.world.removeEventListener(\"click\", onClick);\n }\n if (enableWheel) {\n runtime.world.removeEventListener(\"wheel\", onWheel);\n }\n removeLayout();\n };\n },\n updatePosition() {\n }\n };\n};\nconst ModeContext = React.createContext(\"explore\");\nconst useMode = () => {\n return useContext(ModeContext);\n};\nfunction debounce(func, wait, immediate) {\n var timeout, args, context, timestamp, result;\n if (null == wait)\n wait = 100;\n function later() {\n var last = Date.now() - timestamp;\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n }\n var debounced = function() {\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout)\n timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n return result;\n };\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n clearTimeout(timeout);\n timeout = null;\n }\n };\n return debounced;\n}\ndebounce.debounce = debounce;\nvar debounce_1 = debounce;\nfunction useMeasure(_temp) {\n let {\n debounce: debounce2,\n scroll,\n polyfill,\n offsetSize\n } = _temp === void 0 ? {\n debounce: 0,\n scroll: false,\n offsetSize: false\n } : _temp;\n const ResizeObserver = polyfill || (typeof window === \"undefined\" ? class ResizeObserver {\n } : window.ResizeObserver);\n if (!ResizeObserver) {\n throw new Error(\"This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills\");\n }\n const [bounds, set] = useState({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n bottom: 0,\n right: 0,\n x: 0,\n y: 0\n });\n const state = useRef({\n element: null,\n scrollContainers: null,\n resizeObserver: null,\n lastBounds: bounds\n });\n const scrollDebounce = debounce2 ? typeof debounce2 === \"number\" ? debounce2 : debounce2.scroll : null;\n const resizeDebounce = debounce2 ? typeof debounce2 === \"number\" ? debounce2 : debounce2.resize : null;\n const mounted = useRef(false);\n useEffect(() => {\n mounted.current = true;\n return () => void (mounted.current = false);\n });\n const [forceRefresh, resizeChange, scrollChange] = useMemo(() => {\n const callback = () => {\n if (!state.current.element)\n return;\n const {\n left,\n top,\n width,\n height,\n bottom,\n right,\n x: x2,\n y: y2\n } = state.current.element.getBoundingClientRect();\n const size = {\n left,\n top,\n width,\n height,\n bottom,\n right,\n x: x2,\n y: y2\n };\n if (state.current.element instanceof HTMLElement && offsetSize) {\n size.height = state.current.element.offsetHeight;\n size.width = state.current.element.offsetWidth;\n }\n Object.freeze(size);\n if (mounted.current && !areBoundsEqual(state.current.lastBounds, size))\n set(state.current.lastBounds = size);\n };\n return [callback, resizeDebounce ? debounce_1(callback, resizeDebounce) : callback, scrollDebounce ? debounce_1(callback, scrollDebounce) : callback];\n }, [set, offsetSize, scrollDebounce, resizeDebounce]);\n function removeListeners() {\n if (state.current.scrollContainers) {\n state.current.scrollContainers.forEach((element) => element.removeEventListener(\"scroll\", scrollChange, true));\n state.current.scrollContainers = null;\n }\n if (state.current.resizeObserver) {\n state.current.resizeObserver.disconnect();\n state.current.resizeObserver = null;\n }\n }\n function addListeners() {\n if (!state.current.element)\n return;\n state.current.resizeObserver = new ResizeObserver(scrollChange);\n state.current.resizeObserver.observe(state.current.element);\n if (scroll && state.current.scrollContainers) {\n state.current.scrollContainers.forEach((scrollContainer) => scrollContainer.addEventListener(\"scroll\", scrollChange, {\n capture: true,\n passive: true\n }));\n }\n }\n const ref = (node) => {\n if (!node || node === state.current.element)\n return;\n removeListeners();\n state.current.element = node;\n state.current.scrollContainers = findScrollContainers(node);\n addListeners();\n };\n useOnWindowScroll(scrollChange, Boolean(scroll));\n useOnWindowResize(resizeChange);\n useEffect(() => {\n removeListeners();\n addListeners();\n }, [scroll, scrollChange, resizeChange]);\n useEffect(() => removeListeners, []);\n return [ref, bounds, forceRefresh];\n}\nfunction useOnWindowResize(onWindowResize) {\n useEffect(() => {\n const cb = onWindowResize;\n window.addEventListener(\"resize\", cb);\n return () => void window.removeEventListener(\"resize\", cb);\n }, [onWindowResize]);\n}\nfunction useOnWindowScroll(onScroll, enabled) {\n useEffect(() => {\n if (enabled) {\n const cb = onScroll;\n window.addEventListener(\"scroll\", cb, {\n capture: true,\n passive: true\n });\n return () => void window.removeEventListener(\"scroll\", cb, true);\n }\n }, [onScroll, enabled]);\n}\nfunction findScrollContainers(element) {\n const result = [];\n if (!element || element === document.body)\n return result;\n const {\n overflow,\n overflowX,\n overflowY\n } = window.getComputedStyle(element);\n if ([overflow, overflowX, overflowY].some((prop) => prop === \"auto\" || prop === \"scroll\"))\n result.push(element);\n return [...result, ...findScrollContainers(element.parentElement)];\n}\nconst keys = [\"x\", \"y\", \"top\", \"bottom\", \"left\", \"right\", \"width\", \"height\"];\nconst areBoundsEqual = (a, b2) => keys.every((key) => a[key] === b2[key]);\nconst AtlasContext = React.createContext(null);\nconst BoundsContext = React.createContext(null);\nlet getCurrentTime;\nconst hasPerformanceNow = typeof performance === \"object\" && typeof performance.now === \"function\";\nif (hasPerformanceNow) {\n const localPerformance = performance;\n getCurrentTime = () => localPerformance.now();\n} else {\n const localDate = Date;\n const initialTime = localDate.now();\n getCurrentTime = () => localDate.now() - initialTime;\n}\nfunction appendChild(parent, child) {\n if (parent && parent.appendChild && child) {\n parent.appendChild(child);\n }\n}\nfunction removeChild(parent, child) {\n if (parent && parent.removeChild && child) {\n parent.removeChild(child);\n }\n}\nfunction removeChildFromContainer(parent, child) {\n return removeChild(parent.world, child);\n}\nfunction insertInContainerBefore(container, child, beforeChild) {\n return insertBefore(container.world, child, beforeChild);\n}\nfunction insertBefore(parent, child, before) {\n if (parent && parent instanceof Runtime) {\n parent = parent.world;\n }\n if (parent && parent.insertBefore) {\n parent.insertBefore(child, before);\n }\n}\nfunction applyProps(instance, oldProps, newProps) {\n if (!newProps) {\n return;\n }\n if (instance.applyProps) {\n instance.applyProps(newProps);\n }\n if (instance instanceof BaseObject) {\n for (const ev of supportedEventAttributes) {\n const event = ev.slice(2).toLowerCase();\n if (newProps[ev] !== oldProps[ev]) {\n if (oldProps[ev]) {\n instance.removeEventListener(event, oldProps[ev]);\n }\n instance.addEventListener(event, newProps[ev]);\n }\n }\n }\n}\nfunction activateEvents(world, props) {\n const keys2 = Object.keys(props);\n let didActivate = false;\n for (const key of keys2) {\n if (supportedEventAttributes.indexOf(key) !== -1) {\n const ev = supportedEventMap[key];\n if (ev) {\n if (world.activatedEvents.indexOf(ev) !== -1)\n continue;\n didActivate = true;\n world.activatedEvents.push(ev);\n }\n }\n }\n if (didActivate) {\n world.triggerEventActivation();\n }\n}\nconst roots = /* @__PURE__ */ new Map();\nconst emptyObject = {};\nfunction createInstance(type, { args = [], ...props }, runtime, hostContext, internalInstanceHandle) {\n if (!(runtime instanceof Runtime) && internalInstanceHandle) {\n const fn = (node) => {\n if (!node.return)\n return node.stateNode && node.stateNode.containerInfo;\n else\n return fn(node.return);\n };\n runtime = fn(internalInstanceHandle);\n }\n let instance;\n let world = runtime.world;\n switch (type) {\n case \"world\":\n instance = World.withProps({ width: props.width, height: props.height, viewingDirection: \"left-to-right\" });\n instance.activatedEvents = world.activatedEvents;\n instance.eventHandlers = world.eventHandlers;\n instance.subscriptions = world.subscriptions;\n instance.triggerEventActivation();\n world = instance;\n break;\n case \"box\":\n instance = new Box();\n break;\n case \"worldObject\":\n case \"world-object\":\n instance = new WorldObject();\n break;\n case \"worldImage\":\n case \"world-image\":\n instance = new SingleImage();\n break;\n case \"texture\":\n instance = new ImageTexture();\n break;\n case \"compositeImage\":\n case \"composite-image\":\n instance = new CompositeResource({\n id: props.id,\n width: props.width,\n height: props.height,\n images: []\n });\n break;\n case \"tiledImage\":\n case \"tiled-image\":\n instance = TiledImage.fromTile(props.uri, props.display, props.tile, props.scaleFactor);\n break;\n case \"paragraph\":\n instance = new Text();\n instance.text = props.children;\n break;\n default:\n return;\n }\n activateEvents(world, props);\n applyProps(instance, {}, props);\n return instance;\n}\nfunction appendChildToContainer(runtime, world) {\n if (world instanceof World) {\n runtime.world = world;\n } else if (world instanceof WorldObject) {\n runtime.world.appendChild(world);\n } else if (world) {\n throw new Error(\"Invalid root\");\n }\n}\nconst reconciler = Reconciler({\n unstable_now: getCurrentTime,\n now: getCurrentTime,\n createInstance,\n removeChild,\n appendChild,\n appendInitialChild: appendChild,\n insertBefore,\n warnsIfNotActing: true,\n supportsMutation: true,\n isPrimaryRenderer: false,\n scheduleTimeout: typeof setTimeout !== \"undefined\" ? setTimeout : void 0,\n cancelTimeout: typeof clearTimeout !== \"undefined\" ? clearTimeout : void 0,\n setTimeout: typeof setTimeout !== \"undefined\" ? setTimeout : void 0,\n clearTimeout: typeof clearTimeout !== \"undefined\" ? clearTimeout : void 0,\n noTimeout: -1,\n appendChildToContainer,\n removeChildFromContainer,\n createTextInstance() {\n },\n insertInContainerBefore,\n prepareUpdate(instance, type, oldProps, newProps, runtime) {\n activateEvents(runtime.world, newProps);\n return newProps;\n },\n commitUpdate(instance, updatePayload, type, oldProps, newProps, finishedWork) {\n if (instance.applyProps && updatePayload) {\n applyProps(instance, oldProps, updatePayload);\n }\n },\n finalizeInitialChildren(instance) {\n return instance.__handlers;\n },\n getChildHostContext() {\n return emptyObject;\n },\n getRootHostContext() {\n return emptyObject;\n },\n prepareForCommit() {\n return null;\n },\n hideInstance(instance) {\n if (instance && instance.points) {\n instance.points[0] = 0;\n }\n },\n unhideInstance(instance, props) {\n if (instance && instance.points) {\n instance.points[0] = 1;\n }\n },\n getPublicInstance(instance) {\n return instance;\n },\n hideTextInstance() {\n throw new Error(\"Text is not allowed in the react-three-fibre tree. You may have extraneous whitespace between components.\");\n },\n resetAfterCommit(runtime) {\n runtime.pendingUpdate = true;\n if (runtime.world) {\n if (runtime.world.needsRecalculate) {\n runtime.world.recalculateWorldSize();\n runtime.world.triggerRepaint();\n }\n }\n },\n shouldSetTextContent() {\n return false;\n },\n clearContainer() {\n return false;\n }\n});\nreconciler.injectIntoDevTools({\n bundleType: 0,\n version: \"17.0.2\",\n rendererPackageName: \"@atlas-viewer/atlas\",\n findFiberByHostInstance: (instance) => {\n return null;\n }\n});\nfunction unmountComponentAtNode(runtime, callback) {\n const root = roots.get(runtime);\n if (root) {\n reconciler.updateContainer(null, root, null, () => {\n roots.delete(runtime);\n if (callback)\n callback(runtime);\n });\n }\n}\nconst ReactAtlas = {\n render(whatToRender, runtime) {\n const root = roots.get(runtime);\n if (root) {\n reconciler.updateContainer(whatToRender, root, null, () => void 0);\n } else {\n const newRoot = reconciler.createContainer(runtime, 0, null, false, null, \"\", () => {\n }, null);\n reconciler.updateContainer(whatToRender, newRoot, null, null);\n roots.set(runtime, newRoot);\n }\n }\n};\nconst AtlasWithReconciler = React.memo(({\n children,\n setIsReady,\n onCreated,\n bounds,\n preset,\n mode = \"explore\"\n}) => {\n const Canvas = useCallback(function Canvas2(props) {\n const activate = () => {\n setIsReady(true);\n };\n useEffect(() => {\n if (preset) {\n preset.runtime.goHome();\n const result = onCreated && onCreated(preset);\n return void (result && result.then ? result.then(activate) : activate());\n }\n return () => {\n };\n }, []);\n return props.children;\n }, [preset]);\n useLayoutEffect(() => {\n if (preset) {\n const runtime = preset.runtime;\n if (mode !== runtime.mode) {\n runtime.mode = mode;\n }\n ReactAtlas.render(/* @__PURE__ */ jsx(React.StrictMode, {\n children: /* @__PURE__ */ jsx(Canvas, {\n children: /* @__PURE__ */ jsx(BoundsContext.Provider, {\n value: bounds,\n children: /* @__PURE__ */ jsx(ModeContext.Provider, {\n value: mode,\n children: /* @__PURE__ */ jsx(AtlasContext.Provider, {\n value: preset,\n children\n })\n })\n })\n })\n }), runtime);\n }\n }, [preset, mode, children]);\n return null;\n});\nclass WebGLRenderer {\n constructor(canvas, options) {\n this.fragmentShaderSource = `\n precision mediump float;\n\n uniform sampler2D u_image;\n varying vec2 v_texCoord;\n\n void main() {\n gl_FragColor = texture2D(u_image, v_texCoord);\n }\n `;\n this.vertexShaderSource = `\n attribute vec2 a_position;\n uniform vec2 u_resolution;\n varying vec4 v_color;\n uniform sampler2D u_texture;\n\n attribute vec2 a_texCoord;\n varying vec2 v_texCoord;\n\n void main() {\n\n // convert the position from pixels to 0.0 to 1.0\n vec2 zeroToOne = a_position / u_resolution;\n\n // convert from 0->1 to 0->2\n vec2 zeroToTwo = zeroToOne * 2.0;\n\n // convert from 0->2 to -1->+1 (clip space)\n vec2 clipSpace = zeroToTwo - 1.0;\n\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);\n \n v_texCoord = a_texCoord;\n }\n `;\n this.lastResize = 0;\n this.lastKnownScale = 1;\n this.canvas = canvas;\n this.rendererPosition = canvas.getBoundingClientRect();\n this.gl = canvas.getContext(\"webgl2\");\n this.fragmentShader = this.createShader(this.gl.FRAGMENT_SHADER, this.fragmentShaderSource);\n this.vertexShader = this.createShader(this.gl.VERTEX_SHADER, this.vertexShaderSource);\n this.program = this.createProgram(this.vertexShader, this.fragmentShader);\n this.dpi = (options == null ? void 0 : options.dpi) || 1;\n this.attributes = {\n position: this.gl.getAttribLocation(this.program, \"a_position\"),\n texCoord: this.gl.getAttribLocation(this.program, \"a_texCoord\")\n };\n this.uniforms = {\n resolution: this.gl.getUniformLocation(this.program, \"u_resolution\"),\n texture: this.gl.getUniformLocation(this.program, \"u_texture\")\n };\n this.buffers = {\n position: this.createArrayBuffer(),\n texCoord: this.createArrayBuffer(new Float32Array([0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1]))\n };\n this.rectBuffer = new Float32Array(12);\n this.resize();\n this.gl.viewport(0, 0, this.gl.canvas.width, this.gl.canvas.height);\n this.gl.clearColor(0, 0, 0, 0);\n this.gl.clear(this.gl.COLOR_BUFFER_BIT);\n this.gl.useProgram(this.program);\n this.gl.enableVertexAttribArray(this.attributes.position);\n }\n resize() {\n this.resizeCanvasToDisplaySize();\n this.gl.viewport(0, 0, this.gl.canvas.width, this.gl.canvas.height);\n this.rendererPosition = this.canvas.getBoundingClientRect();\n }\n isReady() {\n return true;\n }\n beforeFrame(world, delta, target) {\n this.gl.clearColor(0, 0, 0, 0);\n this.gl.clear(this.gl.COLOR_BUFFER_BIT);\n this.gl.vertexAttribPointer(this.attributes.position, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.uniform2f(this.uniforms.resolution, this.gl.canvas.width, this.gl.canvas.height);\n if (this.lastResize > 1e3) {\n this.lastResize = 0;\n this.resizeCanvasToDisplaySize();\n }\n this.lastResize += delta;\n }\n prepareLayer(paint) {\n if (!paint.__host || !paint.__host.webgl) {\n if (paint instanceof SingleImage || paint instanceof TiledImage) {\n this.createImageHost(paint);\n }\n if (paint instanceof ImageTexture) {\n this.createTextureHost(paint);\n }\n }\n }\n createTextureHost(paint) {\n paint.__host = paint.__host ? paint.__host : {};\n const gl = this.gl;\n const texture = this.gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n let lastImage;\n if (paint instanceof ImageTexture) {\n const initial = paint.getTexture();\n if (initial.source) {\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, initial.source);\n }\n lastImage = initial;\n }\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n paint.__host.webgl = {\n height: paint.height,\n width: paint.width,\n texture,\n lastImage\n };\n }\n createImageHost(paint) {\n const textures = [...new Array(paint.points.length / 5)];\n paint.__host = paint.__host ? paint.__host : {};\n paint.__host.webgl = {\n height: paint.height,\n width: paint.width,\n textures,\n loading: [],\n loaded: [],\n lastLevelRendered: -1,\n onLoad: (index, image) => {\n const gl = this.gl;\n const texture = this.gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.bindTexture(gl.TEXTURE_2D, null);\n paint.__host.webgl.textures[index] = texture;\n paint.__host.webgl.loaded.push(index);\n }\n };\n }\n paint(paint, index, x2, y2, width, height) {\n if (paint.type === \"spacial-content\") {\n if (paint.__host && paint.__host.webgl) {\n if (paint.getTexture) {\n const newText = paint == null ? void 0 : paint.getTexture();\n if (newText && paint.__host.webgl.lastImage !== newText.hash && newText.source && !paint.__host.webgl.error) {\n try {\n const level = 0;\n const internalFormat = this.gl.RGBA;\n const srcFormat = this.gl.RGBA;\n const srcType = this.gl.UNSIGNED_BYTE;\n this.gl.bindTexture(this.gl.TEXTURE_2D, paint.__host.webgl.texture);\n this.gl.texImage2D(this.gl.TEXTURE_2D, level, internalFormat, srcFormat, srcType, newText.source);\n paint.__host.webgl.lastImage = newText.hash;\n } catch (e) {\n paint.__host.webgl.error = e;\n }\n }\n }\n if (paint.__host.webgl.loading && paint.__host.webgl.loading.indexOf(index) === -1 && paint.getImageUrl) {\n paint.__host.webgl.loading.push(index);\n const image = document.createElement(\"img\");\n image.decoding = \"async\";\n image.crossOrigin = \"anonymous\";\n image.src = paint.getImageUrl(index);\n image.onload = () => {\n image.onload = null;\n return paint.__host.webgl.onLoad(index, image);\n };\n }\n const texture = paint.__host.webgl.texture ? paint.__host.webgl.texture : paint.__host.webgl.textures[index];\n if (texture) {\n this.gl.enableVertexAttribArray(this.attributes.texCoord);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.buffers.texCoord);\n this.gl.enableVertexAttribArray(this.attributes.texCoord);\n this.gl.vertexAttribPointer(this.attributes.texCoord, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.buffers.position);\n this.gl.enableVertexAttribArray(this.attributes.position);\n this.gl.vertexAttribPointer(this.attributes.position, 2, this.gl.FLOAT, false, 0, 0);\n this.gl.bindTexture(this.gl.TEXTURE_2D, texture);\n this.gl.uniform1i(this.uniforms.texture, 0);\n this.setRectangle(x2, y2, width, height);\n this.gl.drawArrays(this.gl.TRIANGLES, 0, 6);\n }\n }\n }\n }\n afterPaintLayer(paint, transform2) {\n }\n pendingUpdate() {\n return true;\n }\n getPointsAt(world, target, aggregate, scaleFactor) {\n return world.getPointsAt(target, aggregate, scaleFactor);\n }\n afterFrame() {\n }\n getScale(width, height, dpi) {\n if (Number.isNaN(width) || Number.isNaN(height)) {\n return this.lastKnownScale;\n }\n const canvas = this.getCanvasDims();\n const w2 = canvas.width / width;\n const h2 = canvas.height / height;\n const scale2 = (w2 < h2 ? h2 : w2) * (dpi ? this.dpi || 1 : 1);\n if (!Number.isNaN(scale2)) {\n this.lastKnownScale = scale2;\n }\n return this.lastKnownScale;\n }\n getCanvasDims() {\n return { width: this.canvas.width / this.dpi, height: this.canvas.height / this.dpi };\n }\n getViewportBounds(world, target, padding) {\n return null;\n }\n createShader(type, source) {\n const shader = this.gl.createShader(type);\n if (shader) {\n this.gl.shaderSource(shader, source);\n this.gl.compileShader(shader);\n const success = this.gl.getShaderParameter(shader, this.gl.COMPILE_STATUS);\n if (success) {\n return shader;\n }\n const info = this.gl.getShaderInfoLog(shader);\n this.gl.deleteShader(shader);\n if (info) {\n throw new Error(info);\n }\n }\n throw new Error(\"Invalid shader\");\n }\n createProgram(vertexShader, fragmentShader) {\n const program = this.gl.createProgram();\n if (program) {\n this.gl.attachShader(program, vertexShader);\n this.gl.attachShader(program, fragmentShader);\n this.gl.linkProgram(program);\n const success = this.gl.getProgramParameter(program, this.gl.LINK_STATUS);\n if (success) {\n return program;\n }\n const info = this.gl.getProgramInfoLog(program);\n this.gl.deleteProgram(program);\n if (info) {\n throw new Error(info);\n }\n }\n throw new Error(\"Invalid program\");\n }\n resizeCanvasToDisplaySize() {\n const canvas = this.gl.canvas;\n const displayWidth = canvas.clientWidth;\n const displayHeight = canvas.clientHeight;\n const needResize = canvas.width !== displayWidth || canvas.height !== displayHeight;\n if (needResize) {\n canvas.width = displayWidth;\n canvas.height = displayHeight;\n }\n return needResize;\n }\n createArrayBuffer(data) {\n const buffer = this.gl.createBuffer();\n this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);\n if (data) {\n this.gl.bufferData(this.gl.ARRAY_BUFFER, data, this.gl.STATIC_DRAW);\n }\n if (!buffer) {\n throw new Error(\"Cannot create buffer\");\n }\n return buffer;\n }\n setRectangle(x2, y2, width, height) {\n this.gl.bufferData(this.gl.ARRAY_BUFFER, this.getRectangle(x2, y2, width, height), this.gl.STATIC_DRAW);\n }\n getRectangle(x2, y2, width, height) {\n const x1 = x2;\n const x22 = x2 + width;\n const y1 = y2;\n const y22 = y2 + height;\n this.rectBuffer.set([x1, y1, x22, y1, x1, y22, x1, y22, x22, y1, x22, y22]);\n return this.rectBuffer;\n }\n getRendererScreenPosition() {\n return this.rendererPosition;\n }\n}\nfunction hash(object, str) {\n const text = str ? object : JSON.stringify(object);\n let numHash = 5381, index = text.length;\n while (index) {\n numHash = numHash * 33 ^ text.charCodeAt(--index);\n }\n const num = numHash >>> 0;\n const hexString = num.toString(16);\n if (hexString.length % 2) {\n return \"0\" + hexString;\n }\n return hexString;\n}\nclass Stylesheet {\n constructor(options) {\n this.sheetPrefix = (options == null ? void 0 : options.sheetPrefix) || \"a-\";\n this.$element = document.createElement(\"style\");\n this.stylesheetClasses = [];\n this.activeStylesheetClasses = [];\n this.sheetsDidUpdate = false;\n this.stylesheetEntries = {};\n }\n getElement() {\n return this.$element;\n }\n addStylesheet(_sheet) {\n const sheet = _sheet.replace(/\\s\\s+/g, \" \").replace(/: /g, \":\").replace(/; /g, \";\").trim();\n const className = this.sheetPrefix + hash(sheet, true);\n if (this.stylesheetClasses.indexOf(className) !== -1) {\n return className;\n }\n this.stylesheetClasses.push(className);\n this.activeStylesheetClasses.push(className);\n this.stylesheetEntries[className] = sheet;\n this.sheetsDidUpdate = true;\n return className;\n }\n removeStylesheet(obj) {\n const className = this.sheetPrefix + hash(obj, true);\n if (this.stylesheetClasses.indexOf(className)) {\n this.stylesheetClasses = this.stylesheetClasses.filter((t) => t !== className);\n }\n this.sheetsDidUpdate = true;\n }\n clearClasses() {\n this.activeStylesheetClasses = [];\n }\n didUpdateActive() {\n if (this.activeStylesheetClasses.length) {\n for (const sheet of this.activeStylesheetClasses) {\n if (this.stylesheetClasses.indexOf(sheet) === -1) {\n return true;\n }\n }\n for (const sheet of this.stylesheetClasses) {\n if (this.activeStylesheetClasses.indexOf(sheet) === -1) {\n return true;\n }\n }\n }\n return false;\n }\n updateSheet() {\n if (this.sheetsDidUpdate || this.didUpdateActive()) {\n this.$element.innerText = this.activeStylesheetClasses.map((className) => `.${className}{${this.stylesheetEntries[className]}}`).join(\"\");\n this.sheetsDidUpdate = false;\n this.stylesheetClasses = [...this.activeStylesheetClasses];\n }\n }\n}\nclass OverlayRenderer {\n constructor(htmlContainer, options) {\n this.visible = [];\n this.previousVisible = [];\n this.htmlIds = [];\n this.firstMeaningfulPaint = false;\n this.paintTx = 1;\n this.zIndex = 0;\n this.htmlContainer = htmlContainer;\n this.htmlContainer.innerHTML = \"\";\n this.rendererPosition = this.htmlContainer.getBoundingClientRect();\n this.options = {\n triggerResize: () => {\n },\n box: false,\n text: false,\n sheetPrefix: \"\",\n inlineStyles: false,\n background: \"\",\n ...options || {}\n };\n this.stylesheet = new Stylesheet({ sheetPrefix: this.options.sheetPrefix });\n if (!this.options.inlineStyles) {\n this.htmlContainer.appendChild(this.stylesheet.getElement());\n }\n if (this.options.background) {\n this.htmlContainer.classList.add(this.stylesheet.addStylesheet(`\n background: ${this.options.background};\n `));\n }\n this.classes = {\n hostClassName: this.stylesheet.addStylesheet(`\n position: absolute;\n transform-origin: 0px 0px;\n `),\n interactive: this.stylesheet.addStylesheet(`pointer-events: all`),\n nonInteractive: this.stylesheet.addStylesheet(`pointer-events: none`)\n };\n this.stylesheet.updateSheet();\n }\n createHtmlHost(paint) {\n if (this.htmlContainer && (this.options.box || paint.props.className || paint.props.html || paint.props.href)) {\n const div = document.createElement(paint.props.href ? \"a\" : \"div\");\n if (paint.props.href) {\n div.style.display = \"block\";\n div.href = paint.props.href;\n const target = paint.props.hrefTarget || \"_blank\";\n div.target = target;\n if (target !== \"_self\") {\n div.rel = \"noopener noreferrer\";\n }\n }\n div.title = paint.props.title || \"\";\n if (this.options.inlineStyles) {\n div.style.display = \"block\";\n div.style.position = \"absolute\";\n div.style.overflow = \"hidden\";\n div.style.transformOrigin = \"0px 0px\";\n } else {\n div.classList.add(this.classes.hostClassName);\n }\n paint.__host = { element: div, revision: null, relative: false };\n this.updateHtmlHost(paint, paint.width, paint.height);\n if (paint.__onCreate) {\n paint.__onCreate();\n }\n }\n }\n triggerResize() {\n this.options.triggerResize();\n }\n updateHtmlHost(paint, width, height) {\n if (paint.__revision !== paint.__host.revision) {\n const div = paint.__host.element;\n const classes = [this.classes.hostClassName];\n if (paint.props.interactive) {\n if (this.options.inlineStyles) {\n div.style.pointerEvents = \"all\";\n } else {\n classes.push(this.classes.interactive);\n }\n } else {\n if (this.options.inlineStyles) {\n div.style.pointerEvents = \"none\";\n } else {\n classes.push(this.classes.nonInteractive);\n }\n }\n if (paint.props.href) {\n div.style.display = \"block\";\n div.href = paint.props.href;\n const target = paint.props.hrefTarget || \"_blank\";\n div.target = target;\n if (target !== \"_self\") {\n div.rel = \"noopener noreferrer\";\n } else {\n div.rel = \"\";\n }\n } else if (div.href) {\n div.removeAttribute(\"href\");\n }\n if (paint.props.title) {\n div.title = paint.props.title || \"\";\n }\n if (paint.props.className) {\n classes.push(paint.props.className);\n if (paint.hovering) {\n classes.push(`${paint.props.className}--hover`);\n }\n if (paint.pressing) {\n classes.push(`${paint.props.className}--active`);\n }\n }\n if (paint.props.relativeStyle) {\n div.style.width = `${width || paint.width}px`;\n div.style.height = `${height || paint.height}px`;\n } else {\n div.style.width = `${paint.width}px`;\n div.style.height = `${paint.height}px`;\n }\n const style = paint.props.style;\n if (style) {\n Object.assign(div.style, paint.props.style || {}, paint.hovering ? paint.props.hoverStyles || {} : {}, paint.pressing ? paint.props.pressStyles || {} : {});\n return;\n }\n if (this.options.text && paint instanceof Text) {\n if (paint.text) {\n div.innerText = paint.text;\n }\n if (paint.backgroundColor) {\n div.style.backgroundColor = paint.backgroundColor;\n }\n if (paint.color) {\n div.style.color = paint.color;\n }\n if (paint.props.font) {\n div.style.font = paint.props.font;\n }\n if (paint.props.textAlign) {\n div.style.textAlign = paint.props.textAlign;\n }\n paint.__host.revision = paint.__revision;\n const classNames2 = classes.join(\" \");\n div.className = classNames2;\n div.part = classNames2;\n }\n if (paint instanceof Box && (this.options.box || paint.props.className || paint.props.html)) {\n if (paint.props.backgroundColor) {\n div.style.backgroundColor = paint.props.backgroundColor;\n }\n if (paint.props.border !== div.style.border) {\n div.style.border = paint.props.border;\n }\n }\n const classNames = classes.join(\" \");\n div.className = classNames;\n div.part = classNames;\n }\n }\n afterFrame(world, delta, target) {\n this.stylesheet.updateSheet();\n for (const prev of this.previousVisible) {\n if (this.visible.indexOf(prev) === -1) {\n if (this.htmlContainer && prev.__id && this.htmlIds.indexOf(prev.__id) !== -1) {\n this.htmlContainer.removeChild(prev.__host.element);\n }\n }\n }\n this.previousVisible = this.visible;\n }\n afterPaintLayer(paint, transform2) {\n }\n beforeFrame(world, delta, target) {\n this.stylesheet.clearClasses();\n this.paintTx++;\n this.zIndex = 0;\n this.visible = [];\n }\n getPointsAt(world, target, aggregate, scaleFactor) {\n return world.getPointsAt(target, aggregate, scaleFactor);\n }\n getScale(width, height) {\n const w2 = this.rendererPosition.width / width;\n const h2 = this.rendererPosition.height / height;\n return w2 < h2 ? h2 : w2;\n }\n getViewportBounds(world, target, padding) {\n return null;\n }\n isReady() {\n return false;\n }\n paint(paint, index, x2, y2, width, height) {\n this.zIndex++;\n if ((this.options.text && paint instanceof Text || paint instanceof Box && (this.options.box || paint.props.className || paint.props.html)) && paint.__host.tx !== this.paintTx) {\n this.visible.push(paint);\n paint.__host.tx = this.paintTx;\n if (this.htmlContainer) {\n this.updateHtmlHost(paint, width, height);\n const scale2 = width / paint.width;\n const element = paint.__host.element;\n element.style.zIndex = `${this.zIndex}`;\n if (paint.props.relativeStyle) {\n element.style.transform = `translate(${Math.round(x2)}px, ${Math.round(y2)}px)`;\n } else {\n element.style.transform = `translate(${Math.round(x2)}px, ${Math.round(y2)}px) scale(${scale2})`;\n }\n if (this.previousVisible.indexOf(paint) === -1) {\n this.htmlContainer.appendChild(element);\n }\n if (this.htmlIds.indexOf(paint.__id) === -1) {\n this.htmlIds.push(paint.__id);\n }\n }\n }\n }\n pendingUpdate() {\n return false;\n }\n prepareLayer(paint) {\n if (!paint.__host) {\n if (paint instanceof Text || paint instanceof Box) {\n this.createHtmlHost(paint);\n }\n }\n }\n resize(width, height) {\n if (typeof width !== \"undefined\" && typeof height !== \"undefined\") {\n this.htmlContainer.style.width = `${width}px`;\n this.htmlContainer.style.height = `${height}px`;\n }\n this.rendererPosition = this.htmlContainer.getBoundingClientRect();\n }\n getRendererScreenPosition() {\n return this.rendererPosition;\n }\n}\nconst _BrowserEventManager = class {\n constructor(element, runtime, options) {\n this.activatedEvents = [];\n this.eventHandlers = [];\n this.pointerMoveEvent = void 0;\n this.pointerEventState = {\n isClicking: false,\n isDragging: false,\n isPressed: false,\n mousedOver: [],\n itemsBeingDragged: [],\n mouseDownStart: { x: 0, y: 0 },\n lastTouches: []\n };\n this._realPointerMove = (e) => {\n this.pointerMoveEvent = e;\n };\n this.onWheelEvent = (e) => {\n e.preventDefault();\n this.onPointerEvent(e);\n };\n this.onTouchEvent = (e) => {\n const type = supportedEventMap[e.type];\n const atlasTouches = [];\n const len = e.touches.length;\n for (let i = 0; i < len; i++) {\n const touch = e.touches.item(i);\n if (!touch)\n continue;\n const { x: x2, y: y2 } = this.runtime.viewerToWorld(touch.clientX - this.bounds.left, touch.clientY - this.bounds.top);\n const atlasTouch = { id: touch.identifier, x: x2, y: y2 };\n atlasTouches.push(atlasTouch);\n }\n if (atlasTouches.length) {\n this.assignToEvent(e, atlasTouches[0].x, atlasTouches[0].y);\n }\n if (type !== \"onTouchEnd\") {\n this.pointerEventState.lastTouches = atlasTouches;\n e.atlasTouches = atlasTouches;\n this.runtime.world.propagateTouchEvent(type, e, atlasTouches);\n } else {\n e.atlasTouches = [];\n this.runtime.world.propagateTouchEvent(type, e, this.pointerEventState.lastTouches);\n this.pointerEventState.lastTouches = [];\n }\n };\n this.onPointerEvent = (e) => {\n const ev = supportedEventMap[e.type];\n if (ev && this.runtime.world.activatedEvents.indexOf(ev) !== -1) {\n const { x: x2, y: y2 } = this.runtime.viewerToWorld(e.clientX - this.bounds.left, e.clientY - this.bounds.top);\n this.assignToEvent(e, x2, y2);\n this.runtime.world.propagatePointerEvent(ev, e, x2, y2);\n }\n };\n this.onPointerDown = (e) => {\n this.pointerEventState.isPressed = true;\n this.pointerEventState.isClicking = true;\n this.pointerEventState.mouseDownStart.x = e.clientX;\n this.pointerEventState.mouseDownStart.y = e.clientY;\n setTimeout(() => {\n if (this.runtime) {\n this.pointerEventState.isClicking = false;\n }\n }, 250);\n setTimeout(() => {\n if (this.runtime && this.pointerEventState.isPressed && !this.pointerEventState.isDragging) {\n const dragStart = this.runtime.viewerToWorld(this.pointerEventState.mouseDownStart.x - this.bounds.left, this.pointerEventState.mouseDownStart.y - this.bounds.top);\n this.pointerEventState.isDragging = true;\n this.pointerEventState.itemsBeingDragged = this.runtime.world.propagatePointerEvent(\"onDragStart\", e, dragStart.x, dragStart.y);\n }\n }, 800);\n this.onPointerEvent(e);\n };\n this.onPointerUp = (e) => {\n if (this.pointerEventState.isClicking) {\n const { x: x2, y: y2 } = this.runtime.viewerToWorld(e.clientX - this.bounds.left, e.clientY - this.bounds.top);\n this.assignToEvent(e, x2, y2);\n this.runtime.world.propagatePointerEvent(\"onClick\", e, x2, y2);\n }\n if (this.pointerEventState.isDragging) {\n for (const item of this.pointerEventState.itemsBeingDragged) {\n item.dispatchEvent(\"onDragEnd\", e);\n }\n this.pointerEventState.isDragging = false;\n }\n this.pointerEventState.isClicking = false;\n this.pointerEventState.isPressed = false;\n this.pointerEventState.itemsBeingDragged = [];\n this.onPointerEvent(e);\n };\n this.onPointerMove = (e) => {\n this.pointerMoveEvent = void 0;\n const { x: x2, y: y2 } = this.runtime.viewerToWorld(e.clientX - this.bounds.left, e.clientY - this.bounds.top);\n if (Number.isNaN(x2) || Number.isNaN(y2)) {\n return;\n }\n this.assignToEvent(e, x2, y2);\n this.runtime.world.propagatePointerEvent(\"onPointerMove\", e, x2, y2);\n const newList = this.runtime.world.propagatePointerEvent(\"onMouseMove\", e, x2, y2);\n const newIds = [];\n const newItems = [];\n for (const item of newList) {\n newIds.push(item.id);\n newItems.push(item);\n if (this.pointerEventState.mousedOver.indexOf(item) === -1) {\n item.dispatchEvent(\"onMouseEnter\", e);\n item.dispatchEvent(\"onPointerEnter\", e);\n item.dispatchEvent(\"onMouseOver\", e);\n item.dispatchEvent(\"onPointerOver\", e);\n }\n }\n for (const oldItem of this.pointerEventState.mousedOver) {\n if (newIds.indexOf(oldItem.id) === -1) {\n oldItem.dispatchEvent(\"onMouseLeave\", e);\n oldItem.dispatchEvent(\"onPointerLeave\", e);\n oldItem.dispatchEvent(\"onMouseOut\", e);\n oldItem.dispatchEvent(\"onPointerOut\", e);\n }\n }\n if (this.pointerEventState.isDragging) {\n for (const item of this.pointerEventState.itemsBeingDragged) {\n item.dispatchEvent(\"onDrag\", e);\n }\n }\n if (this.pointerEventState.isPressed && !this.pointerEventState.isDragging && distance(this.pointerEventState.mouseDownStart, { x: e.clientX, y: e.clientY }) > 50) {\n const dragStart = this.runtime.viewerToWorld(this.pointerEventState.mouseDownStart.x - this.bounds.left, this.pointerEventState.mouseDownStart.y - this.bounds.top);\n this.pointerEventState.isDragging = true;\n this.pointerEventState.itemsBeingDragged = this.runtime.world.propagatePointerEvent(\"onDragStart\", { ...e, atlas: { x: dragStart.x, y: dragStart.y } }, dragStart.x, dragStart.y);\n }\n this.pointerEventState.mousedOver = newItems;\n };\n this.element = element;\n this.runtime = runtime;\n this.unsubscribe = runtime.world.addLayoutSubscriber(this.layoutSubscriber.bind(this));\n this.bounds = element.getBoundingClientRect();\n this.options = {\n simulationRate: 0,\n ...options || {}\n };\n let tAcc = 0;\n runtime.registerHook(\"useFrame\", (t) => {\n tAcc += t;\n if (tAcc > this.options.simulationRate && this.pointerMoveEvent) {\n tAcc = 0;\n runtime.updateNextFrame();\n }\n });\n runtime.registerHook(\"useBeforeFrame\", () => {\n if (this.pointerMoveEvent) {\n this.onPointerMove(this.pointerMoveEvent);\n }\n });\n this.activateEvents();\n }\n updateBounds() {\n this.bounds = this.element.getBoundingClientRect();\n this.runtime.updateRendererScreenPosition();\n }\n layoutSubscriber(type) {\n if (type === \"event-activation\") {\n this.activateEvents();\n }\n }\n assignToEvent(e, x2, y2) {\n _BrowserEventManager.eventPool.atlas.x = x2;\n _BrowserEventManager.eventPool.atlas.y = y2;\n e.atlas = _BrowserEventManager.eventPool.atlas;\n }\n activateEvents() {\n this.element.addEventListener(\"pointermove\", this._realPointerMove);\n this.element.addEventListener(\"pointerup\", this.onPointerUp);\n this.element.addEventListener(\"pointerdown\", this.onPointerDown);\n this.element.addEventListener(\"mousedown\", this.onPointerEvent);\n this.element.addEventListener(\"mouseup\", this.onPointerEvent);\n this.element.addEventListener(\"pointercancel\", this.onPointerEvent);\n this.element.addEventListener(\"wheel\", this.onWheelEvent);\n this.element.addEventListener(\"touchstart\", this.onTouchEvent);\n this.element.addEventListener(\"touchcancel\", this.onTouchEvent);\n this.element.addEventListener(\"touchend\", this.onTouchEvent);\n this.element.addEventListener(\"touchmove\", this.onTouchEvent);\n }\n normalizeEventName(event) {\n if (event.startsWith(\"on\")) {\n return event.slice(2).toLowerCase();\n }\n return event.toLowerCase();\n }\n stop() {\n this.unsubscribe();\n for (const [event, handler] of this.eventHandlers) {\n this.element.removeEventListener(this.normalizeEventName(event), handler);\n }\n }\n};\nlet BrowserEventManager = _BrowserEventManager;\nBrowserEventManager.eventPool = {\n atlas: { x: 0, y: 0 }\n};\nfunction defaultPreset({\n interactive = true,\n viewport,\n forceRefresh,\n canvasElement,\n overlayElement,\n controllerConfig,\n unstable_webglRenderer,\n dpi,\n debug,\n canvasBox = true,\n navigatorElement,\n background,\n runtimeOptions\n}) {\n if (!canvasElement) {\n throw new Error(\"Invalid container\");\n }\n canvasElement.style.userSelect = \"none\";\n const controller = interactive ? popmotionController({\n minZoomFactor: 0.5,\n maxZoomFactor: 3,\n enableClickToZoom: false,\n ...controllerConfig || {}\n }) : void 0;\n const renderer = new CompositeRenderer([\n unstable_webglRenderer ? new WebGLRenderer(canvasElement, { dpi }) : new CanvasRenderer(canvasElement, { dpi, debug, box: canvasBox, background }),\n overlayElement ? new OverlayRenderer(overlayElement, {\n box: unstable_webglRenderer || !canvasBox,\n text: true,\n triggerResize: forceRefresh\n }) : void 0,\n navigatorElement ? new DebugRenderer(navigatorElement) : void 0\n ]);\n const runtime = new Runtime(renderer, new World(1024, 1024), viewport, controller ? [controller] : [], runtimeOptions);\n const em = new BrowserEventManager(canvasElement, runtime);\n return {\n name: \"default-preset\",\n em,\n runtime,\n renderer,\n controller,\n canvas: canvasElement,\n navigator: navigatorElement,\n unmount() {\n unmountComponentAtNode(runtime);\n runtime.stopControllers();\n runtime.stop();\n if (em) {\n em.stop();\n }\n }\n };\n}\nclass StaticRenderer {\n constructor(container, options) {\n this.pending = true;\n this.zIndex = 0;\n this.lastKnownScale = 1;\n this.currentlyVisible = [];\n this.previouslyVisible = [];\n this.container = container;\n this.rendererPosition = container.getBoundingClientRect();\n const { width, height } = this.rendererPosition;\n this.width = width;\n this.height = height;\n this.options = {\n addPart: false,\n setDraggableFalse: false,\n imageClass: \"\",\n widthStylesheet: false,\n sheetPrefix: \"position-\",\n background: \"#000\",\n ...options || {}\n };\n this.stylesheet = new Stylesheet({ sheetPrefix: this.options.sheetPrefix });\n this.container.classList.add(this.stylesheet.addStylesheet(`\n background: ${this.options.background};\n `));\n if (this.options.widthStylesheet) {\n this.container.appendChild(this.stylesheet.getElement());\n }\n }\n isReady() {\n return true;\n }\n resize() {\n this.rendererPosition = this.container.getBoundingClientRect();\n this.width = this.rendererPosition.width;\n this.height = this.rendererPosition.height;\n }\n getRendererScreenPosition() {\n return this.rendererPosition;\n }\n afterFrame(world, delta, target) {\n this.stylesheet.updateSheet();\n for (const item of this.previouslyVisible) {\n if (this.currentlyVisible.indexOf(item) === -1) {\n this.container.removeChild(item);\n }\n }\n for (const item of this.currentlyVisible) {\n if (this.previouslyVisible.indexOf(item) === -1) {\n this.container.appendChild(item);\n }\n }\n this.previouslyVisible = this.currentlyVisible;\n this.currentlyVisible = [];\n }\n afterPaintLayer(paint, transform2) {\n }\n beforeFrame(world, delta, target) {\n this.stylesheet.clearClasses();\n this.zIndex = 0;\n }\n getPointsAt(world, target, aggregate, scaleFactor) {\n return world.getPointsAt(target, aggregate, scaleFactor);\n }\n getScale(width, height) {\n if (Number.isNaN(width) || Number.isNaN(height)) {\n return this.lastKnownScale;\n }\n const w2 = this.width / width;\n const h2 = this.height / height;\n const scale2 = w2 < h2 ? h2 : w2;\n if (!Number.isNaN(scale2)) {\n this.lastKnownScale = scale2;\n }\n return this.lastKnownScale;\n }\n getViewportBounds(world, target, padding) {\n return null;\n }\n createImage() {\n const image = document.createElement(\"img\");\n if (this.options.imageClass) {\n image.className = this.options.imageClass;\n if (this.options.addPart) {\n image.setAttribute(\"part\", this.options.imageClass);\n }\n } else {\n image.style.position = \"absolute\";\n image.style.pointerEvents = \"none\";\n image.style.userSelect = \"none\";\n }\n if (this.options.setDraggableFalse) {\n image.setAttribute(\"draggable\", \"false\");\n }\n return image;\n }\n paint(paint, index, x2, y2, width, height) {\n this.pending = false;\n this.zIndex++;\n if (paint instanceof SingleImage) {\n if (!paint.__host) {\n const image = this.createImage();\n image.src = paint.uri;\n paint.__host = image;\n this.container.appendChild(paint.__host);\n }\n const element = paint.__host;\n this.currentlyVisible.push(element);\n element.style.zIndex = `${this.zIndex}`;\n element.style.opacity = `${paint.style.opacity}`;\n if (this.options.widthStylesheet) {\n element.className = this.options.imageClass + \" \" + this.stylesheet.addStylesheet(`width:${(width + Number.MIN_VALUE).toFixed(2)}px;height:${(height + Number.MIN_VALUE).toFixed(2)}px;`);\n } else {\n element.style.width = `${width + Number.MIN_VALUE}px`;\n element.style.height = `${height + Number.MIN_VALUE}px`;\n }\n element.style.transform = `translate(${x2}px, ${y2}px)`;\n }\n if (paint instanceof TiledImage) {\n if (!paint.__host) {\n paint.__host = {\n images: []\n };\n }\n if (!paint.__host.images[index]) {\n const url = paint.getImageUrl(index);\n const image = this.createImage();\n image.src = url;\n paint.__host.images[index] = image;\n this.container.appendChild(image);\n }\n const element = paint.__host.images[index];\n element.style.zIndex = `${this.zIndex}`;\n element.style.opacity = `${paint.style.opacity}`;\n this.currentlyVisible.push(element);\n if (this.options.widthStylesheet) {\n element.className = this.options.imageClass + \" \" + this.stylesheet.addStylesheet(`width:${(width + Number.MIN_VALUE).toFixed(2)}px;height:${(height + Number.MIN_VALUE).toFixed(2)}px;`);\n } else {\n element.style.width = `${width + Number.MIN_VALUE}px`;\n element.style.height = `${height + Number.MIN_VALUE}px`;\n }\n element.style.transform = `translate(${x2}px, ${y2}px)`;\n }\n }\n pendingUpdate() {\n return this.pending;\n }\n prepareLayer(paint) {\n }\n}\nfunction staticPreset({\n interactive,\n viewport,\n forceRefresh,\n containerElement,\n overlayElement,\n controllerConfig,\n background\n}) {\n if (!containerElement) {\n throw new Error(\"Invalid container\");\n }\n containerElement.style.userSelect = \"none\";\n const controller = interactive ? popmotionController({\n minZoomFactor: 0.5,\n maxZoomFactor: 3,\n enableClickToZoom: false,\n ...controllerConfig || {}\n }) : void 0;\n const staticRenderer = new StaticRenderer(containerElement, {\n addPart: false,\n setDraggableFalse: false,\n imageClass: \"atlas-static-image\",\n background\n });\n const renderer = overlayElement ? new CompositeRenderer([\n staticRenderer,\n new OverlayRenderer(overlayElement, {\n box: true,\n text: true,\n triggerResize: forceRefresh\n })\n ]) : staticRenderer;\n const runtime = new Runtime(renderer, new World(1024, 1024), viewport, controller ? [controller] : []);\n const em = new BrowserEventManager(containerElement, runtime);\n return {\n name: \"static-preset\",\n em,\n runtime,\n renderer,\n controller,\n container: containerElement,\n overlay: overlayElement,\n unmount() {\n unmountComponentAtNode(runtime);\n runtime.stopControllers();\n runtime.stop();\n if (em) {\n em.stop();\n }\n }\n };\n}\nconst presets = {\n \"default-preset\": defaultPreset,\n \"static-preset\": staticPreset\n};\nconst defaultArgs = {};\nfunction usePreset(renderPreset, options) {\n const overlayRef = useRef();\n const canvasRef = useRef();\n const navigatorRef = useRef();\n const containerRef = useRef();\n const viewport = useRef({\n width: options.width,\n height: options.height,\n didUpdate: true\n });\n const [presetName = \"default-preset\", presetArgs = defaultArgs] = Array.isArray(renderPreset) ? renderPreset || [] : [renderPreset];\n const [preset, setPreset] = useState(null);\n useLayoutEffect(() => {\n const canvasElement = canvasRef.current;\n const containerElement = containerRef.current;\n const overlayElement = overlayRef.current;\n const navigatorElement = navigatorRef.current;\n const presetFn = presets[presetName] || defaultPreset;\n const createdPreset = presetFn({\n containerElement,\n canvasElement,\n overlayElement,\n navigatorElement,\n viewport: viewport.current,\n dpi: window.devicePixelRatio || 1,\n forceRefresh: options.forceRefresh,\n unstable_webglRenderer: options.unstable_webglRenderer,\n ...presetArgs || {}\n });\n setPreset(createdPreset);\n return () => {\n if (createdPreset) {\n createdPreset.unmount();\n }\n };\n }, [presetName, presetArgs]);\n const refs = useMemo(() => ({\n canvas: canvasRef,\n overlay: overlayRef,\n container: containerRef,\n navigator: navigatorRef\n }), []);\n return [presetName, preset, viewport, refs];\n}\nfunction useClassname(deps) {\n return useMemo(() => hash(deps), deps);\n}\nconst Container = React.forwardRef((props, ref) => {\n return /* @__PURE__ */ jsx(\"div\", {\n ...props,\n ref,\n part: props.className\n });\n});\nconst Atlas = ({\n htmlChildren,\n renderPreset: _renderPreset,\n onCreated,\n mode: _mode = \"explore\",\n resetWorldOnChange = true,\n unstable_webglRenderer = false,\n unstable_noReconciler = false,\n hideInlineStyle = false,\n controllerConfig,\n children,\n overlayStyle,\n containerStyle,\n enableNavigator,\n className,\n containerProps = {},\n homePosition,\n background: _background,\n debug,\n ...restProps\n}) => {\n const [background, setBackground] = useState(_background);\n const [mode, setMode] = useState(_mode);\n const [isReady, setIsReady] = useState(false);\n const renderPreset = useMemo(() => {\n if (typeof _renderPreset === \"string\") {\n _renderPreset = [_renderPreset, {}];\n }\n if (background || debug) {\n if (_renderPreset) {\n return [_renderPreset[0], {\n debug,\n background,\n ..._renderPreset[1] || {}\n }];\n }\n return [\"default-preset\", {\n background,\n debug\n }];\n }\n return _renderPreset || \"default-preset\";\n }, [_renderPreset, background, debug]);\n const [_ref, bounds, forceRefresh] = useMeasure({\n scroll: true\n });\n const outerContainerRef = useRef();\n const ref = (component) => {\n outerContainerRef.current = component;\n _ref(component);\n };\n const [presetName, preset, viewport, refs] = usePreset(renderPreset, {\n width: restProps.width,\n height: restProps.height,\n forceRefresh,\n unstable_webglRenderer\n });\n const [containerClassName, setContainerClassName] = useState(\"\");\n useEffect(() => {\n setMode(_mode);\n }, [_mode]);\n useEffect(() => {\n if (preset && preset.em) {\n preset.em.updateBounds();\n }\n }, [preset, bounds]);\n useEffect(() => {\n if (preset && preset.runtime) {\n preset.runtime.mode = mode;\n }\n if (isReady && preset) {\n preset.ready = true;\n }\n }, [preset, isReady, mode]);\n useEffect(() => {\n if (preset) {\n preset.runtime.manualHomePosition = !!homePosition;\n preset.runtime.setHomePosition(homePosition);\n }\n }, [preset, homePosition]);\n useEffect(() => {\n if (preset) {\n const rt = preset.runtime;\n rt.resize(viewport.current.width, restProps.width, viewport.current.height, restProps.height);\n viewport.current.width = restProps.width;\n viewport.current.height = restProps.height;\n rt.updateNextFrame();\n viewport.current.didUpdate = true;\n }\n }, [preset, restProps.width, restProps.height]);\n useLayoutEffect(() => {\n if (preset) {\n if (preset.overlay) {\n preset.overlay.style.width = `${bounds.width}px`;\n preset.overlay.style.height = `${bounds.height}px`;\n }\n if (preset.container) {\n preset.container.style.width = `${bounds.width}px`;\n preset.container.style.height = `${bounds.height}px`;\n }\n }\n }, [preset, bounds.height, bounds.width]);\n useLayoutEffect(() => {\n const windowResizeCallback = () => {\n if (preset) {\n const rt = preset.runtime;\n if (viewport.current.width !== restProps.width && viewport.current.height !== restProps.height) {\n rt.resize(viewport.current.width, restProps.width, viewport.current.height, restProps.height);\n viewport.current.width = restProps.width;\n viewport.current.height = restProps.height;\n rt.updateNextFrame();\n viewport.current.didUpdate = true;\n }\n }\n };\n window.addEventListener(\"resize\", windowResizeCallback);\n return () => window.removeEventListener(\"resize\", windowResizeCallback);\n }, [preset, restProps.height, restProps.width]);\n const navigatorOptions = {\n width: 120\n };\n const recalculateNavigatorDimensions = () => {\n if (preset && preset.navigator) {\n const wHeight = preset.runtime.world.height;\n const wWidth = preset.runtime.world.width;\n const ratio = window.devicePixelRatio || 1;\n const canvasWidth = navigatorOptions.width;\n const canvasHeight = navigatorOptions.width / wWidth * wHeight;\n preset.navigator.width = canvasWidth * ratio;\n preset.navigator.height = canvasHeight * ratio;\n preset.navigator.style.width = canvasWidth + \"px\";\n preset.navigator.style.height = canvasHeight + \"px\";\n }\n };\n useLayoutEffect(() => {\n if (preset) {\n recalculateNavigatorDimensions();\n const rt = preset.runtime;\n return rt.world.addLayoutSubscriber((type) => {\n if (type === \"recalculate-world-size\") {\n recalculateNavigatorDimensions();\n rt.resize(viewport.current.width, restProps.width, viewport.current.height, restProps.height);\n }\n });\n }\n return () => {\n };\n }, [preset]);\n const Canvas = useCallback(function Canvas2(props) {\n const activate = () => {\n setIsReady(true);\n };\n useEffect(() => {\n if (preset) {\n preset.runtime.goHome();\n const result = onCreated && onCreated(preset);\n return void (result && result.then ? result.then(activate) : activate());\n } else {\n throw new Error(\"Invalid configuration - no runtime found\");\n }\n }, []);\n return props.children;\n }, [preset]);\n useEffect(() => {\n if (preset) {\n const rt = preset.runtime;\n if (resetWorldOnChange) {\n return rt.world.addLayoutSubscriber((type) => {\n if (type === \"recalculate-world-size\") {\n rt.goHome();\n }\n });\n }\n }\n return () => {\n };\n }, [preset, resetWorldOnChange]);\n useEffect(() => {\n if (preset) {\n const rt = preset.runtime;\n return rt.registerHook(\"useBeforeFrame\", () => {\n var _a;\n if (viewport.current.didUpdate && preset.canvas) {\n const ratio = window.devicePixelRatio || 1;\n const canvasWidth = viewport.current.width;\n const canvasHeight = viewport.current.height;\n preset.canvas.width = canvasWidth * ratio;\n preset.canvas.height = canvasHeight * ratio;\n preset.canvas.style.width = canvasWidth + \"px\";\n preset.canvas.style.height = canvasHeight + \"px\";\n (_a = preset.canvas.getContext(\"2d\")) == null ? void 0 : _a.scale(ratio, ratio);\n if (preset && preset.em) {\n preset.em.updateBounds();\n }\n viewport.current.didUpdate = false;\n }\n });\n }\n return () => {\n };\n }, [preset, resetWorldOnChange]);\n useEffect(() => {\n const keyupSpace = () => {\n if (preset) {\n setMode(\"sketch\");\n setContainerClassName(\"mode-sketch\");\n }\n window.removeEventListener(\"keyup\", keyupSpace);\n };\n const keydownSpace = (e) => {\n if (e.code === \"Space\" && preset && preset.runtime.mode === \"sketch\") {\n if (e.target && e.target.tagName && e.target.tagName.toLowerCase() === \"input\")\n return;\n e.preventDefault();\n setMode(\"explore\");\n setContainerClassName(\"mode-explore\");\n window.addEventListener(\"keyup\", keyupSpace);\n }\n };\n window.addEventListener(\"keydown\", keydownSpace);\n return () => {\n window.removeEventListener(\"keydown\", keydownSpace);\n window.removeEventListener(\"keyup\", keyupSpace);\n };\n }, [preset]);\n useLayoutEffect(() => {\n if (outerContainerRef.current && !background) {\n const computed = getComputedStyle(outerContainerRef.current);\n const _background2 = computed.getPropertyValue(\"--atlas-background\");\n if (_background2) {\n setBackground(_background2);\n }\n }\n }, [background]);\n const {\n height: _2,\n width: __,\n ...canvasProps\n } = restProps;\n const widthClassName = useClassname([restProps.width, restProps.height]);\n return /* @__PURE__ */ jsxs(Container, {\n ref,\n className: [\"atlas\", hideInlineStyle ? \"\" : `atlas-width-${widthClassName}`, containerClassName, className].filter(Boolean).join(\" \").trim(),\n style: {\n ...containerStyle,\n ...hideInlineStyle ? {} : {\n width: restProps.width,\n height: restProps.height\n }\n },\n children: [presetName === \"static-preset\" ? /* @__PURE__ */ jsx(Container, {\n className: \"atlas-static-container\",\n style: preset && preset.controller ? void 0 : {\n pointerEvents: \"none\"\n },\n ref: refs.container,\n tabIndex: 0,\n ...containerProps\n }) : /* @__PURE__ */ jsx(\"canvas\", {\n className: \"atlas-canvas\",\n part: \"atlas-canvas\",\n tabIndex: 0,\n ...canvasProps,\n ...containerProps,\n ref: refs.canvas\n }), /* @__PURE__ */ jsx(Container, {\n className: \"atlas-overlay\",\n style: {\n ...overlayStyle || {}\n },\n ref: refs.overlay,\n children: unstable_noReconciler ? /* @__PURE__ */ jsx(Canvas, {\n children: /* @__PURE__ */ jsx(BoundsContext.Provider, {\n value: bounds,\n children: /* @__PURE__ */ jsx(ModeContext.Provider, {\n value: mode,\n children: /* @__PURE__ */ jsx(AtlasContext.Provider, {\n value: preset,\n children\n })\n })\n })\n }) : /* @__PURE__ */ jsx(AtlasWithReconciler, {\n bounds,\n preset,\n mode,\n setIsReady,\n onCreated,\n children\n })\n }), enableNavigator ? /* @__PURE__ */ jsx(Container, {\n className: \"atlas-navigator\",\n children: /* @__PURE__ */ jsx(\"canvas\", {\n className: \"atlas-navigator-canvas\",\n part: \"atlas-navigator-canvas\",\n ref: refs.navigator\n })\n }) : null, hideInlineStyle ? /* @__PURE__ */ jsx(\"style\", {\n children: `.atlas-width-${widthClassName} { width: ${restProps.width}px; height: ${restProps.height}px; }`\n }) : /* @__PURE__ */ jsx(\"style\", {\n children: `\n .atlas { position: relative; user-select: none; display: flex; background: var(--atlas-background, #000); z-index: var(--atlas-z-index, 10); touch-action: none; }\n .atlas-width-${widthClassName} { width: ${restProps.width}px; height: ${restProps.height}px; }\n .atlas-canvas { flex: 1 1 0px; }\n .atlas-canvas:focus, .atlas-static-container:focus { outline: none }\n .atlas-canvas:focus-visible, .atlas-canvas-container:focus-visible { outline: var(--atlas-focus, 2px solid darkorange) }\n .atlas-static-container { position: relative; overflow: hidden; flex: 1 1 0px; }\n .atlas-overlay { position: absolute; top: 0; left: 0; pointer-events: none; overflow: hidden; }\n .atlas-static-image { position: absolute; pointer-events: none; user-select: none; transform-origin: 0px 0px; }\n .atlas-navigator { position: absolute; top: var(--atlas-navigator-top, 10px); right: var(--atlas-navigator-bottom, 10px); left: var(--atlas-navigator-left); bottom: var(--atlas-navigator-bottom); opacity: .8 }\n .atlas-navigator-canvas { width: 100%; }\n `\n }), htmlChildren]\n });\n};\nfunction toPx(str) {\n if (Number(str) == str) {\n return `${str}px`;\n }\n return str;\n}\nconst AtlasAuto = ({\n resizeHash,\n aspectRatio,\n containerProps = {},\n ...props\n}) => {\n const [ref, _bounds, forceRefresh] = useMeasure();\n const {\n height,\n width,\n ...restProps\n } = props;\n useEffect(() => {\n forceRefresh();\n }, [width, height, resizeHash, forceRefresh]);\n const bounds = useMemo(() => {\n if (!aspectRatio) {\n return _bounds;\n }\n return {\n width: _bounds.width,\n height: _bounds.width * (1 / aspectRatio)\n };\n }, [_bounds, aspectRatio]);\n return /* @__PURE__ */ jsxs(Container, {\n ref,\n className: \"atlas-container\",\n ...containerProps,\n children: [bounds.width ? /* @__PURE__ */ jsx(Atlas, {\n width: bounds.width || 100,\n height: bounds.height || 100,\n ...restProps,\n children: props.children\n }) : null, props.hideInlineStyle ? null : /* @__PURE__ */ jsx(\"style\", {\n children: `\n .atlas-container { \n display: var(--atlas-container-display, block);\n flex: var(--atlas-container-flex, none);\n width: var(--atlas-container-width, ${width ? `${width}px` : \"100%\"});\n height: var(--atlas-container-height, ${toPx(height ? height : aspectRatio ? bounds.height : 512)}) \n }\n `\n }), props.htmlChildren]\n });\n};\nconst useAtlas = () => {\n return useContext(AtlasContext);\n};\nconst useRuntime = () => {\n const atlas = useAtlas();\n return atlas ? atlas.runtime : void 0;\n};\nconst useAfterFrame = (callback, deps = []) => {\n const runtime = useRuntime();\n useEffect(() => {\n if (runtime) {\n return runtime.registerHook(\"useAfterFrame\", callback);\n }\n return () => {\n };\n }, deps);\n};\nconst useFrame = (callback, deps = []) => {\n const runtime = useRuntime();\n useEffect(() => {\n if (runtime) {\n return runtime.registerHook(\"useFrame\", callback);\n }\n return () => {\n };\n }, deps);\n};\nconst useCanvas = () => {\n const atlas = useAtlas();\n return atlas && atlas.canvas ? atlas.canvas : void 0;\n};\nfunction useCanvasPosition() {\n return useContext(BoundsContext);\n}\nconst DrawBox = ({\n onCreate\n}) => {\n const mousePosition = useRef({\n x: 0,\n y: 0\n });\n const canvas = useCanvas();\n const canvasPosition = useCanvasPosition();\n const runtime = useRuntime();\n const [firstCorner, setFirstCorner] = useState();\n const [secondCorner, setSecondCorner] = useState();\n const mode = useMode();\n useFrame(() => {\n if (runtime && firstCorner && !secondCorner) {\n runtime.pendingUpdate = true;\n }\n }, [firstCorner, secondCorner]);\n useAfterFrame(() => {\n if (firstCorner && canvas && runtime) {\n const ctx = canvas.getContext(\"2d\");\n if (ctx) {\n const {\n x: x2,\n y: y2,\n width,\n height\n } = runtime.worldToViewer(firstCorner.x, firstCorner.y, (secondCorner ? secondCorner.x : mousePosition.current.x) - firstCorner.x, (secondCorner ? secondCorner.y : mousePosition.current.y) - firstCorner.y);\n ctx.lineWidth = secondCorner ? 3 : 1;\n ctx.strokeStyle = \"#fff\";\n ctx.strokeRect(x2, y2, width, height);\n ctx.lineWidth = secondCorner ? 3 : 1;\n ctx.strokeStyle = \"#000\";\n ctx.strokeRect(x2 + 1, y2 + 1, width - 2, height - 2);\n }\n }\n }, [firstCorner, secondCorner]);\n useEffect(() => {\n const cb = (e) => {\n if (canvasPosition && runtime) {\n const {\n x: x2,\n y: y2\n } = runtime.viewerToWorld(e.clientX - canvasPosition.left, e.clientY - canvasPosition.top);\n mousePosition.current.x = ~~x2;\n mousePosition.current.y = ~~y2;\n }\n };\n if (canvas) {\n canvas.addEventListener(\"mousemove\", cb);\n return () => canvas.removeEventListener(\"mousemove\", cb);\n }\n return () => {\n };\n }, [canvasPosition, canvas, runtime]);\n useEffect(() => {\n const cb = (e) => {\n if (mode === \"sketch\") {\n setFirstCorner({\n x: Math.round(mousePosition.current.x),\n y: Math.round(mousePosition.current.y)\n });\n setSecondCorner(void 0);\n }\n };\n if (canvas) {\n canvas.addEventListener(\"mousedown\", cb);\n return () => canvas.removeEventListener(\"mousedown\", cb);\n }\n return () => {\n };\n }, [canvas, mode]);\n useEffect(() => {\n const cb = (e) => {\n if (firstCorner && !secondCorner) {\n setSecondCorner({\n x: Math.round(mousePosition.current.x),\n y: Math.round(mousePosition.current.y)\n });\n }\n };\n if (canvas) {\n canvas.addEventListener(\"mouseup\", cb);\n return () => canvas.removeEventListener(\"mouseup\", cb);\n }\n return () => {\n };\n }, [canvas, firstCorner, secondCorner]);\n useEffect(() => {\n if (firstCorner && secondCorner) {\n onCreate({\n x: Math.min(firstCorner.x, secondCorner.x),\n y: Math.min(firstCorner.y, secondCorner.y),\n width: Math.abs(secondCorner.x - firstCorner.x),\n height: Math.abs(secondCorner.y - firstCorner.y)\n });\n }\n }, [firstCorner, onCreate, secondCorner]);\n return null;\n};\nasync function renderReactDom(html, toRender, root) {\n if (version.startsWith(\"18.\")) {\n const { createRoot } = await import(\"react-dom/client\");\n if (!root.current) {\n root.current = createRoot(html);\n }\n root.current.render(toRender);\n } else {\n if (typeof ReactDOM !== \"undefined\") {\n const { render } = ReactDOM;\n render(toRender, html);\n } else {\n const { render } = await import(\"react-dom\");\n render(toRender, html);\n }\n }\n}\nconst HTMLPortal = React.forwardRef(({\n children,\n ...props\n}, fwdRef) => {\n const ref = useRef();\n const runtime = useRuntime();\n const lastScale = useRef(0);\n const boxRef = useRef();\n const root = useRef();\n useFrame(() => {\n if (props.relative) {\n const relativeBox = ref.current;\n if (relativeBox && runtime) {\n const scaleFactor = runtime.getScaleFactor();\n if (lastScale.current !== scaleFactor) {\n lastScale.current = scaleFactor;\n relativeBox.style.transformOrigin = \"0 0\";\n relativeBox.style.transform = `scale(${1 / lastScale.current})`;\n relativeBox.style.width = `${lastScale.current * 100}%`;\n relativeBox.style.height = `${lastScale.current * 100}%`;\n }\n }\n }\n }, [props.relative]);\n useLayoutEffect(() => {\n const box = boxRef.current;\n if (fwdRef && box) {\n if (typeof fwdRef === \"function\") {\n fwdRef(box);\n } else {\n fwdRef.current = box;\n }\n }\n async function renderHost() {\n if (box && box.__host) {\n const toRender = props.relative ? /* @__PURE__ */ jsx(\"div\", {\n ref,\n children\n }) : children;\n await renderReactDom(box.__host.element, toRender, root);\n }\n }\n if (box && box.__host) {\n renderHost();\n } else if (box) {\n box.__onCreate = renderHost;\n }\n }, [fwdRef, children, boxRef, props.relative]);\n useLayoutEffect(() => {\n return () => {\n if (root.current) {\n setTimeout(() => {\n root.current.unmount();\n }, 0);\n }\n };\n }, []);\n return /* @__PURE__ */ jsx(\"box\", {\n html: true,\n ...props,\n ref: boxRef\n });\n});\nconst useWorldEvent = (name, cb, deps = []) => {\n const runtime = useRuntime();\n const world = runtime ? runtime.world : void 0;\n useEffect(() => {\n if (runtime) {\n const callback = cb;\n const realName = supportedEventMap[name];\n runtime.world.activatedEvents.push(realName);\n const ev = realName.slice(2).toLowerCase();\n runtime.world.addEventListener(ev, callback);\n return () => {\n runtime.world.removeEventListener(ev, callback);\n };\n }\n return () => {\n };\n }, [world, name, ...deps]);\n};\nfunction getRatio(a, b2) {\n if (a === 0) {\n return [0, 1];\n }\n if (b2 === 0) {\n return [1, 0];\n }\n const ratio = Math.abs(a) / Math.abs(b2);\n return [ratio, 1 - ratio];\n}\nfunction useModifierKeys() {\n const modifierKeys = useRef({\n ctrl: false,\n shift: false,\n alt: false\n });\n useLayoutEffect(() => {\n function keyDown(e) {\n if (e.key === \"Shift\")\n modifierKeys.current.shift = true;\n if (e.key === \"Control\")\n modifierKeys.current.ctrl = true;\n if (e.key === \"Alt\")\n modifierKeys.current.alt = true;\n }\n function keyUp(e) {\n if (e.key === \"Shift\")\n modifierKeys.current.shift = false;\n if (e.key === \"Control\")\n modifierKeys.current.ctrl = false;\n if (e.key === \"Alt\")\n modifierKeys.current.alt = false;\n }\n window.addEventListener(\"keydown\", keyDown);\n window.addEventListener(\"keyup\", keyUp);\n return () => {\n window.removeEventListener(\"keydown\", keyDown);\n window.removeEventListener(\"keyup\", keyUp);\n };\n }, []);\n return modifierKeys;\n}\nconst useResizeWorldItem = (props, onSave) => {\n const mode = useMode();\n const runtime = useRuntime();\n const canvasPosition = useCanvasPosition();\n const resizeMode = useRef();\n const portalRef = useRef(null);\n const mouseStart = useRef();\n const [isEditing, setIsEditing] = useState(false);\n const cardinalDeltas = useRef({ north: 0, south: 0, east: 0, west: 0 });\n const keys2 = useModifierKeys();\n const mouseEvent = (direction) => (e) => {\n setIsEditing(true);\n if (canvasPosition && runtime) {\n const { top, left } = canvasPosition;\n const current = runtime.viewerToWorld(e.pageX - left, e.pageY - top);\n mouseStart.current = { x: current.x, y: current.y };\n resizeMode.current = direction;\n }\n };\n const aspectRatio = useMemo(() => {\n return props.width / props.height;\n }, [props.width, props.height]);\n const constrainToAspectRatio = useCallback((deltas) => {\n const hasDeltas = Math.abs(deltas.north - deltas.south + (deltas.east - deltas.west));\n if (!hasDeltas)\n return;\n const xDelta = -deltas.west + deltas.east;\n const yDelta = -deltas.north + deltas.south;\n const originalWidth = props.width + xDelta;\n const originalHeight = props.height + yDelta;\n const newAspectRatio = originalWidth / originalHeight;\n if (newAspectRatio >= aspectRatio) {\n const width = originalHeight * aspectRatio;\n const margin = originalWidth - width;\n const [eastRatio, westRatio] = getRatio(deltas.east, deltas.west);\n deltas.west = deltas.west + margin * westRatio;\n deltas.east = deltas.east - margin * eastRatio;\n } else {\n const height = originalWidth / aspectRatio;\n const margin = originalHeight - height;\n const [northRatio, southRatio] = getRatio(deltas.north, deltas.south);\n deltas.north = deltas.north + margin * northRatio;\n deltas.south = deltas.south - margin * southRatio;\n }\n }, [props.width, props.height, aspectRatio]);\n useFrame(() => {\n if (mouseStart && runtime) {\n runtime.updateNextFrame();\n }\n });\n useEffect(() => {\n if (runtime) {\n runtime.updateNextFrame();\n }\n }, [runtime, isEditing]);\n const onPointerMoveCallback = useCallback((e) => {\n var _a;\n const position = e.atlasTouches ? e.atlasTouches[0] : e.atlas ? e.atlas : { x: e.pageX, y: e.pageY };\n if (!runtime || runtime.mode !== \"sketch\")\n return;\n const box = portalRef.current;\n const alt = !props.maintainAspectRatio && keys2.current.alt;\n const shift = !alt && keys2.current.shift && ((_a = resizeMode.current) == null ? void 0 : _a.indexOf(\"-\")) !== -1;\n if (resizeMode.current === \"translate\" || resizeMode.current === \"east\" || resizeMode.current === \"north-east\" || resizeMode.current === \"south-east\") {\n cardinalDeltas.current.east = position.x - (mouseStart.current ? mouseStart.current.x : 0);\n if (alt) {\n cardinalDeltas.current.west = -cardinalDeltas.current.east;\n }\n }\n if (resizeMode.current === \"translate\" || resizeMode.current === \"west\" || resizeMode.current === \"north-west\" || resizeMode.current === \"south-west\") {\n cardinalDeltas.current.west = position.x - (mouseStart.current ? mouseStart.current.x : 0);\n if (alt) {\n cardinalDeltas.current.east = -cardinalDeltas.current.west;\n }\n }\n if (resizeMode.current === \"translate\" || resizeMode.current === \"north\" || resizeMode.current === \"north-east\" || resizeMode.current === \"north-west\") {\n cardinalDeltas.current.north = position.y - (mouseStart.current ? mouseStart.current.y : 0);\n if (alt) {\n cardinalDeltas.current.south = -cardinalDeltas.current.north;\n }\n }\n if (resizeMode.current === \"translate\" || resizeMode.current === \"south\" || resizeMode.current === \"south-west\" || resizeMode.current === \"south-east\") {\n cardinalDeltas.current.south = position.y - (mouseStart.current ? mouseStart.current.y : 0);\n if (alt) {\n cardinalDeltas.current.north = -cardinalDeltas.current.south;\n }\n }\n if (props.maintainAspectRatio || shift) {\n constrainToAspectRatio(cardinalDeltas.current);\n }\n if (box) {\n const dX1 = cardinalDeltas.current.west;\n const dY1 = cardinalDeltas.current.north;\n const dX2 = props.width + cardinalDeltas.current.east;\n const dY2 = props.height + cardinalDeltas.current.south;\n box.points[1] = Math.min(dX1, dX2);\n box.points[2] = Math.min(dY1, dY2);\n box.points[3] = Math.max(dX1, dX2);\n box.points[4] = Math.max(dY1, dY2);\n runtime.updateNextFrame();\n }\n }, [runtime, props.width, props.height, props.maintainAspectRatio]);\n useWorldEvent(\"mousemove\", onPointerMoveCallback, [props.width, props.height]);\n useWorldEvent(\"pointermove\", onPointerMoveCallback, [props.width, props.height]);\n const windowPointerUp = useRef();\n useEffect(() => {\n windowPointerUp.current = () => {\n if (isEditing) {\n const dX1 = cardinalDeltas.current.west;\n const dY1 = cardinalDeltas.current.north;\n const dX2 = props.width + cardinalDeltas.current.east;\n const dY2 = props.height + cardinalDeltas.current.south;\n const x1 = Math.min(dX1, dX2);\n const y1 = Math.min(dY1, dY2);\n const x2 = Math.max(dX1, dX2);\n const y2 = Math.max(dY1, dY2);\n const realSize = {\n x: (props.x || 0) + x1,\n y: (props.y || 0) + y1,\n width: x2 - x1 || 1,\n height: y2 - y1 || 1\n };\n if (props.maintainAspectRatio) {\n onSave(realSize);\n } else {\n onSave(realSize);\n }\n resizeMode.current = void 0;\n mouseStart.current = void 0;\n cardinalDeltas.current.east = 0;\n cardinalDeltas.current.west = 0;\n cardinalDeltas.current.north = 0;\n cardinalDeltas.current.south = 0;\n setIsEditing(false);\n }\n };\n }, [isEditing, onSave, props.height, props.width, props.x, props.y]);\n useEffect(() => {\n const cb = () => {\n if (windowPointerUp.current) {\n windowPointerUp.current();\n }\n };\n window.addEventListener(\"pointerup\", cb);\n window.addEventListener(\"touchend\", cb);\n return () => {\n window.removeEventListener(\"pointerup\", cb);\n window.removeEventListener(\"touchend\", cb);\n };\n }, []);\n return {\n portalRef,\n mode,\n mouseEvent,\n onPointerMoveCallback,\n isEditing\n };\n};\nconst ResizeWorldItem = ({\n handleSize: _handleSize,\n resizable,\n onSave,\n children,\n maintainAspectRatio,\n disableCardinalControls,\n ...props\n}) => {\n const handleSize = typeof _handleSize === \"undefined\" ? maintainAspectRatio ? 10 : 8 : _handleSize;\n const {\n portalRef,\n mode,\n mouseEvent,\n isEditing\n } = useResizeWorldItem({\n x: props.x || 0,\n y: props.y || 0,\n width: props.width,\n height: props.height,\n maintainAspectRatio\n }, onSave);\n const translate2 = useMemo(() => mouseEvent(\"translate\"), [mouseEvent]);\n const east = useMemo(() => mouseEvent(\"east\"), [mouseEvent]);\n const west = useMemo(() => mouseEvent(\"west\"), [mouseEvent]);\n const south = useMemo(() => mouseEvent(\"south\"), [mouseEvent]);\n const north = useMemo(() => mouseEvent(\"north\"), [mouseEvent]);\n const southEast = useMemo(() => mouseEvent(\"south-east\"), [mouseEvent]);\n const southWest = useMemo(() => mouseEvent(\"south-west\"), [mouseEvent]);\n const northEast = useMemo(() => mouseEvent(\"north-east\"), [mouseEvent]);\n const northWest = useMemo(() => mouseEvent(\"north-west\"), [mouseEvent]);\n const inSketchMode = mode === \"sketch\";\n const baseStyle = {\n zIndex: 999,\n boxShadow: \"0px 2px 3px 0 rgba(0,0,0,0.2)\",\n border: \"1px solid rgba(155,155,155,.7)\",\n borderRadius: maintainAspectRatio || disableCardinalControls ? \"50%\" : 2,\n position: \"absolute\",\n background: \"#fff\",\n pointerEvents: isEditing ? \"none\" : inSketchMode ? \"initial\" : \"none\"\n };\n return /* @__PURE__ */ jsx(Fragment, {\n children: /* @__PURE__ */ jsxs(\"world-object\", {\n ...props,\n children: [children, inSketchMode && resizable ? /* @__PURE__ */ jsx(HTMLPortal, {\n ref: portalRef,\n target: {\n x: 0,\n y: 0,\n height: props.height,\n width: props.width\n },\n relative: false,\n interactive: false,\n children: inSketchMode && resizable ? /* @__PURE__ */ jsxs(Fragment, {\n children: [/* @__PURE__ */ jsx(\"div\", {\n onMouseDown: translate2,\n onTouchStart: translate2,\n style: {\n display: \"block\",\n width: \"100%\",\n height: \"100%\",\n border: \"1px solid rgba(155,155,155, .7)\",\n boxSizing: \"border-box\",\n pointerEvents: isEditing ? \"none\" : inSketchMode ? \"initial\" : \"none\"\n }\n }), !maintainAspectRatio ? /* @__PURE__ */ jsxs(Fragment, {\n children: [/* @__PURE__ */ jsx(\"div\", {\n title: \"east\",\n onTouchStart: east,\n onMouseDown: east,\n style: {\n ...baseStyle,\n cursor: \"e-resize\",\n height: handleSize * 2,\n width: handleSize,\n right: 0,\n top: \"50%\",\n opacity: disableCardinalControls ? 0 : 1,\n transform: `translate(${handleSize / 2}px, -${handleSize}px)`\n }\n }), /* @__PURE__ */ jsx(\"div\", {\n title: \"west\",\n onMouseDown: west,\n style: {\n ...baseStyle,\n cursor: \"w-resize\",\n position: \"absolute\",\n height: handleSize * 2,\n width: handleSize,\n left: 0,\n top: \"50%\",\n opacity: disableCardinalControls ? 0 : 1,\n transform: `translate(-${handleSize / 2}px, -${handleSize}px)`\n }\n }), /* @__PURE__ */ jsx(\"div\", {\n title: \"north\",\n onMouseDown: north,\n style: {\n ...baseStyle,\n cursor: \"n-resize\",\n position: \"absolute\",\n height: handleSize,\n width: handleSize * 2,\n left: \"50%\",\n top: 0,\n opacity: disableCardinalControls ? 0 : 1,\n transform: `translate(-${handleSize}px, -${handleSize / 2}px)`\n }\n }), /* @__PURE__ */ jsx(\"div\", {\n title: \"south\",\n onMouseDown: south,\n style: {\n ...baseStyle,\n cursor: \"s-resize\",\n position: \"absolute\",\n height: handleSize,\n width: handleSize * 2,\n left: \"50%\",\n bottom: 0,\n opacity: disableCardinalControls ? 0 : 1,\n transform: `translate(-${handleSize}px, ${handleSize / 2}px)`\n }\n })]\n }) : null, /* @__PURE__ */ jsx(\"div\", {\n title: \"north-east\",\n onMouseDown: northEast,\n style: {\n ...baseStyle,\n cursor: \"ne-resize\",\n position: \"absolute\",\n height: handleSize,\n width: handleSize,\n right: 0,\n top: 0,\n transform: `translate(${handleSize / 2}px, -${handleSize / 2}px)`\n }\n }), /* @__PURE__ */ jsx(\"div\", {\n title: \"south-east\",\n onMouseDown: southEast,\n style: {\n ...baseStyle,\n cursor: \"se-resize\",\n position: \"absolute\",\n height: handleSize,\n width: handleSize,\n bottom: 0,\n right: 0,\n transform: `translate(${handleSize / 2}px, ${handleSize / 2}px)`\n }\n }), /* @__PURE__ */ jsx(\"div\", {\n title: \"south-west\",\n onMouseDown: southWest,\n style: {\n ...baseStyle,\n cursor: \"sw-resize\",\n position: \"absolute\",\n height: handleSize,\n width: handleSize,\n bottom: 0,\n left: 0,\n transform: `translate(-${handleSize / 2}px, ${handleSize / 2}px)`\n }\n }), /* @__PURE__ */ jsx(\"div\", {\n title: \"north-west\",\n onMouseDown: northWest,\n style: {\n ...baseStyle,\n cursor: \"nw-resize\",\n position: \"absolute\",\n height: handleSize,\n width: handleSize,\n top: 0,\n left: 0,\n transform: `translate(-${handleSize / 2}px, -${handleSize / 2}px)`\n }\n })]\n }) : null\n }) : null]\n })\n });\n};\nconst RegionHighlight = ({\n interactive,\n region,\n onClick,\n onSave,\n maintainAspectRatio,\n disableCardinalControls,\n isEditing,\n style = {\n backgroundColor: \"rgba(0,0,0,.5)\"\n }\n}) => {\n const saveCallback = useCallback((bounds) => {\n onSave({\n id: region.id,\n x: region.x,\n y: region.y,\n height: region.height,\n width: region.width,\n ...bounds\n });\n }, [onSave, region.id, region.x, region.y, region.height, region.width]);\n return /* @__PURE__ */ jsx(ResizeWorldItem, {\n x: region.x,\n y: region.y,\n width: region.width,\n height: region.height,\n resizable: isEditing,\n onSave: saveCallback,\n maintainAspectRatio,\n disableCardinalControls,\n children: /* @__PURE__ */ jsx(\"box\", {\n interactive,\n onClick: (e) => {\n e.preventDefault();\n e.stopPropagation();\n onClick(region);\n },\n target: {\n x: 0,\n y: 0,\n width: region.width,\n height: region.height\n },\n style\n })\n });\n};\nconst TileSet = (props) => {\n const scale2 = props.width / props.tiles.width;\n const tiles = props.tiles.imageService.tiles || [];\n const sizes = props.tiles.imageService.sizes || [];\n const canonicalId = useMemo(() => {\n const id = props.tiles.imageService.id || props.tiles.imageService[\"@id\"];\n if (id && id.endsWith(\"/info.json\")) {\n return id.slice(0, -1 * \"/info.json\".length);\n }\n return id;\n }, [props.tiles.imageService.id]);\n return /* @__PURE__ */ jsx(\"world-object\", {\n scale: scale2,\n height: props.tiles.height,\n width: props.tiles.width,\n x: props.x,\n y: props.y,\n children: /* @__PURE__ */ jsxs(\"composite-image\", {\n id: props.tiles.imageService.id,\n width: props.tiles.width,\n height: props.tiles.height,\n children: [props.tiles.thumbnail ? /* @__PURE__ */ jsx(\"world-image\", {\n priority: true,\n uri: props.tiles.thumbnail.id,\n target: {\n width: props.tiles.width,\n height: props.tiles.height\n },\n display: {\n width: props.tiles.thumbnail.width,\n height: props.tiles.thumbnail.height\n }\n }) : null, sizes.map((size, n) => /* @__PURE__ */ jsx(\"world-image\", {\n uri: `${canonicalId}/full/${size.width},${size.height}/0/default.jpg`,\n target: {\n width: props.tiles.width,\n height: props.tiles.height\n },\n display: {\n width: size.width,\n height: size.height\n }\n }, n)), tiles.map((tile) => (tile.scaleFactors || []).map((size) => /* @__PURE__ */ jsx(\"tiled-image\", {\n uri: props.tiles.imageService.id,\n display: {\n width: props.tiles.width,\n height: props.tiles.height\n },\n tile,\n scaleFactor: size\n }, `${props.tiles.imageService.id}-tile-${size}`)))]\n }, props.tiles.imageService.id)\n }, props.tiles.imageService.id);\n};\nfunction getId(entity) {\n return entity.id || entity[\"@id\"];\n}\nfunction g(i) {\n return i.endsWith(\"info.json\") ? i : i.endsWith(\"/\") ? `${i}info.json` : `${i}/info.json`;\n}\nconst Y = \"http://library.stanford.edu/iiif/image-api/compliance.html#level0\", F = \"http://library.stanford.edu/iiif/image-api/compliance.html#level1\", v = \"http://library.stanford.edu/iiif/image-api/compliance.html#level2\", q = \"http://library.stanford.edu/iiif/image-api/conformance.html#level0\", O = \"http://library.stanford.edu/iiif/image-api/conformance.html#level1\", z = \"http://library.stanford.edu/iiif/image-api/conformance.html#level2\", ee = \"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0\", E = \"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level1\", A = \"http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2\", ie = \"http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level0\", b = \"http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1\", L = \"http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level2\", te = \"http://iiif.io/api/image/1/level0.json\", re = \"http://iiif.io/api/image/1/profiles/level0.json\", M = \"http://iiif.io/api/image/1/level1.json\", W = \"http://iiif.io/api/image/1/profiles/level1.json\", j = \"http://iiif.io/api/image/1/level2.json\", P = \"http://iiif.io/api/image/1/profiles/level2.json\", ne = \"http://iiif.io/api/image/2/level0.json\", se = \"http://iiif.io/api/image/2/profiles/level0.json\", C = \"http://iiif.io/api/image/2/level1.json\", B = \"http://iiif.io/api/image/2/profiles/level1.json\", N = \"http://iiif.io/api/image/2/level2.json\", R = \"http://iiif.io/api/image/2/profiles/level2.json\", ae = \"level0\", $ = \"level1\", H = \"level2\", oe = \"http://iiif.io/api/image/2/level0\", G = \"http://iiif.io/api/image/2/level1\", T = \"http://iiif.io/api/image/2/level2\", k = [T, v, z, A, L, j, P, N, R, H], Q = [...k, G, F, O, E, b, M, W, C, B, $], V = [oe, G, T, Y, F, v, q, O, z, ee, E, A, ie, b, L, te, re, M, W, j, P, ne, se, C, B, N, R, ae, $, H], fe = { extraFormats: [\"jpg\"], extraQualities: [\"default\"], extraFeatures: [\"sizeByWhListed\"] }, le = { extraFormats: [\"jpg\"], extraQualities: [\"default\"], extraFeatures: [\"baseUriRedirect\", \"cors\", \"jsonldMediaType\", \"regionByPx\", \"regionSquare\", \"sizeByWhListed\", \"sizeByH\", \"sizeByW\", \"sizeByWh\"] }, he = { extraFormats: [\"jpg\", \"png\"], extraQualities: [\"default\"], extraFeatures: [\"baseUriRedirect\", \"cors\", \"jsonldMediaType\", \"regionByPct\", \"regionByPx\", \"regionSquare\", \"rotationBy90s\", \"sizeByWhListed\", \"sizeByConfinedWh\", \"sizeByH\", \"sizeByPct\", \"sizeByW\", \"sizeByWh\"] };\nfunction ue(i) {\n return k.indexOf(i) !== -1 ? he : Q.indexOf(i) !== -1 ? le : fe;\n}\nfunction U(i) {\n const e = i ? Array.isArray(i.profile) ? i.profile : [i.profile] : [], t = { extraQualities: [], extraFormats: [], extraFeatures: [] };\n for (let r of e)\n if (typeof r == \"string\" && (r = ue(r)), !!r) {\n if (r.formats)\n for (const n of r.formats)\n t.extraFormats.indexOf(n) === -1 && t.extraFormats.push(n);\n if (r.qualities)\n for (const n of r.qualities)\n t.extraQualities.indexOf(n) === -1 && t.extraQualities.push(n);\n if (r.supports)\n for (const n of r.supports)\n t.extraFeatures.indexOf(n) === -1 && t.extraFeatures.push(n);\n if (r.maxHeight && (t.maxHeight = r.maxHeight), r.maxWidth && (t.maxWidth = r.maxWidth), r.maxArea && (t.maxArea = r.maxArea), r.extraFormats)\n for (const n of r.extraFormats)\n t.extraFormats.indexOf(n) === -1 && t.extraFormats.push(n);\n if (r.extraQualities)\n for (const n of r.extraQualities)\n t.extraQualities.indexOf(n) === -1 && t.extraQualities.push(n);\n if (r.extraFeatures)\n for (const n of r.extraFeatures)\n t.extraFeatures.indexOf(n) === -1 && t.extraFeatures.push(n);\n r.maxHeight && (t.maxHeight = r.maxHeight), r.maxWidth && (t.maxWidth = r.maxWidth), r.maxArea && (t.maxArea = r.maxArea);\n }\n if (i.extraFormats)\n for (const r of i.extraFormats)\n t.extraFormats.indexOf(r) === -1 && t.extraFormats.push(r);\n if (i.extraFeatures)\n for (const r of i.extraFeatures)\n t.extraFeatures.indexOf(r) === -1 && t.extraFeatures.push(r);\n if (i.extraQualities)\n for (const r of i.extraQualities)\n t.extraQualities.indexOf(r) === -1 && t.extraQualities.push(r);\n return t;\n}\nfunction ce(i) {\n try {\n if (i === \"full\")\n return { full: true };\n if (i === \"square\")\n return { square: true };\n const e = i.startsWith(\"pct:\"), r = i.substr(e ? 4 : 0).split(\",\").map((n) => parseFloat(n));\n return { x: r[0], y: r[1], w: r[2], h: r[3], percent: e };\n } catch {\n throw new Error(\"Expected 'full', 'square' or 'x,y,w,h'. Found \" + i);\n }\n}\nfunction de(i) {\n const e = { upscaled: false, max: false, confined: false };\n if (i[0] === \"^\" && (e.upscaled = true, i = i.slice(1)), i === \"max\" || i === \"full\")\n return e.max = true, e.serialiseAsFull = i === \"full\", e;\n if (i[0] === \"!\" && (e.confined = true, i = i.slice(1)), i[0] === \"p\")\n return e.percentScale = parseFloat(i.slice(4)), e;\n const t = i.split(\",\").map((r) => r.trim());\n return t.length && (t[0] !== \"\" && (e.width = parseInt(t[0], 10)), t[1] !== \"\" && (e.height = parseInt(t[1], 10))), e;\n}\nfunction ge(i) {\n const e = { angle: 0 };\n if (i[0] === \"!\" && (e.mirror = true, i = i.substr(1)), e.angle = parseFloat(i) % 360, Number.isNaN(e.angle))\n throw new Error(`Invalid rotation ${i}`);\n return e;\n}\nfunction me(i, e = \"\") {\n const t = i.match(/^(([a-zA-Z]+):\\/\\/([^/]+))?((.*)+)/);\n if (!t)\n throw new Error(`Invalid or unknown input ${i}`);\n const r = t[2], n = t[3];\n let s = t[4];\n if (s[0] === \"/\" && (s = s.substr(1)), e.length > 0) {\n if (e[0] === \"/\" && (e = e.substr(1)), e !== s.substr(0, e.length))\n throw new Error(`Path does not start with prefix (path: ${s}, prefix: ${e})`);\n s = s.substr(e.length);\n }\n return { scheme: r, server: n, path: s, prefix: e };\n}\nfunction pe(i, e = \"\") {\n const { path: t, scheme: r, server: n, prefix: s } = me(i, e), a = t.split(\"/\").reverse(), [o, l, f, u, ...I] = a, d = I.reverse().filter(Boolean).join(\"/\");\n if (a.length === 1 || o === \"\")\n return { type: \"base\", scheme: r, server: n, prefix: s, identifier: d };\n if (o === \"info.json\") {\n const [, ...m] = a;\n return { type: \"info\", scheme: r, server: n, prefix: s, identifier: m.reverse().filter(Boolean).join(\"/\") };\n }\n const c = o.split(\".\");\n return { type: \"image\", scheme: r, server: n, prefix: s, identifier: d, originalPath: t, region: ce(u), size: de(f), rotation: ge(l), quality: c[0], format: c[1] };\n}\nfunction xe(i) {\n const e = pe(g(i.id));\n if (e.type !== \"info\")\n throw new Error(\"Invalid service URL\");\n const t = U(i);\n return { identifier: e.identifier, originalPath: \"\", server: e.server, prefix: e.prefix, scheme: e.scheme, type: \"image\", quality: t.extraQualities.indexOf(\"default\") === -1 ? t.extraQualities[0] : \"default\", region: { full: true }, size: { max: true, upscaled: false, confined: false }, format: \"jpg\", rotation: { angle: 0 } };\n}\nfunction Ie(i, e, t) {\n const r = t.length, n = [];\n for (let s = 0; s < r; s++) {\n const o = t[s].width;\n n.push(i / o);\n }\n return n;\n}\nfunction _e(i, e, t) {\n const r = t.length, n = [];\n for (let s = 0; s < r; s++) {\n const a = t[s];\n n.push({ width: Math.floor(i / a), height: Math.floor(e / a) });\n }\n return n;\n}\nfunction h(i) {\n if (i[\"@id\"])\n return i[\"@id\"];\n if (i.id)\n return i.id;\n}\nfunction _(i) {\n if (!i || !i.profile || !h(i))\n return false;\n const e = Array.isArray(i.profile) ? i.profile : [i.profile];\n for (const t of e)\n if (typeof t == \"string\" && V.indexOf(t) !== -1)\n return true;\n return false;\n}\nfunction ye(i) {\n if (!_(i))\n return false;\n const e = Array.isArray(i.profile) ? i.profile : [i.profile];\n for (const t of e)\n if (typeof t == \"string\") {\n if (Q.indexOf(t) !== -1)\n return true;\n } else {\n const r = [...t.supports || [], ...t.extraFeatures || []];\n if (r.indexOf(\"regionByPx\") !== -1 && (r.indexOf(\"sizeByW\") !== -1 || r.indexOf(\"sizeByWh\") !== -1))\n return true;\n }\n return false;\n}\nfunction we(i) {\n if (!ye(i))\n return [];\n const e = [], t = Array.isArray(i.profile) ? i.profile : [i.profile], r = t.length;\n for (let n = 0; n < r; n++) {\n const s = t[n];\n if (typeof s != \"string\" && (s.maxHeight || s.maxWidth))\n return [{ id: h(i), type: \"variable\", minWidth: 0, minHeight: 0, maxHeight: s.maxHeight || s.maxWidth, maxWidth: s.maxWidth || s.maxHeight }];\n }\n if (i.tiles) {\n const n = i.tiles.length;\n for (let s = 0; s < n; s++) {\n const a = i.tiles[s];\n (a.height || a.width) && e.push({ id: h(i), type: \"variable\", minHeight: 0, minWidth: 0, maxHeight: a.height || a.width, maxWidth: a.width });\n }\n }\n return e;\n}\nfunction J(i) {\n const e = /^.*\\/(full)\\/(((\\d+),(\\d+)?)|max)\\/(\\d+)\\/default\\.(jpg|png|jpeg)$/, t = i.match(e);\n if (t) {\n const r = t[1], n = parseInt(t[4], 10), s = parseInt(t[5], 10), a = t[7];\n if ((r === \"max\" || r === \"full\") && n && s && a)\n return { type: \"fixed\", id: i, height: s, width: n };\n }\n return { type: \"unknown\", id: i };\n}\nfunction Se(i) {\n if (i[\"@type\"])\n return i[\"@type\"];\n if (i.type)\n return i.type;\n}\nfunction Fe(i) {\n if (typeof i == \"string\")\n return J(i);\n const e = Se(i);\n if (e !== \"Image\" && e !== \"sc:Image\")\n return null;\n const t = i, r = h(t);\n return r ? r && t.width && t.height ? { id: r, type: \"fixed\", width: t.width, height: t.height, unsafe: true } : J(r) : null;\n}\nfunction ve(i) {\n return _(i) ? (i && i.sizes ? i.sizes : []).map((e) => ({ id: h(i), type: \"fixed-service\", height: e.height, width: e.width })) : [];\n}\nfunction Z(i) {\n const e = [], t = i.length;\n for (let r = 0; r < t; r++) {\n const n = ve(i[r]);\n n.length && e.push(...n);\n const s = we(i[r]);\n s.length && e.push(...s);\n }\n return e;\n}\nfunction K(i) {\n const e = i.service ? Array.isArray(i.service) ? i.service : [i.service] : [], t = e.length, r = [];\n for (let n = 0; n < t; n++)\n _(e[n]) && r.push(e[n]);\n return r;\n}\nfunction Oe(i, e = true, t) {\n const r = [], n = Fe(i);\n if (n === null)\n return r;\n const s = i;\n if (r.push(n), e && s.width && s.height) {\n const a = [], o = K(s);\n for (const l of o) {\n const f = { id: h(l), width: s.width, height: s.height };\n if (t.canLoadSync(f)) {\n const u = t.loadServiceSync(f);\n u && (u.height || (u.height = s.height), u.width || (u.width = s.width), a.push(...Z([u])));\n }\n }\n if (a.length)\n return r.push(...a), r;\n }\n return s.service && r.push(...Z(s.service)), r;\n}\nfunction ze({ x: i = 0, y: e = 0, w: t, h: r, full: n, square: s, percent: a }) {\n if (n)\n return \"full\";\n if (s)\n return \"square\";\n if (typeof t > \"u\" || typeof r > \"u\")\n throw new Error(\"RegionParameter: invalid region\");\n const o = `${i},${e},${t},${r}`;\n return a ? `pct:${o}` : o;\n}\nfunction Ee({ max: i, percentScale: e, upscaled: t, confined: r, width: n, height: s, serialiseAsFull: a }) {\n const o = [];\n return t && o.push(\"^\"), i ? (o.push(a ? \"full\" : \"max\"), o.join(\"\")) : (r && o.push(\"!\"), e && o.push(`pct:${e}`), n && o.push(`${n}`), o.push(\",\"), s && o.push(`${s}`), o.join(\"\"));\n}\nfunction Ae(i) {\n return `${i.mirror ? \"!\" : \"\"}${(i.angle || 0) % 360}`;\n}\nvar He = Object.defineProperty, Ge = Object.defineProperties, Te = Object.getOwnPropertyDescriptors, be = Object.getOwnPropertySymbols, ke = Object.prototype.hasOwnProperty, Qe = Object.prototype.propertyIsEnumerable, Le = (i, e, t) => e in i ? He(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t, y = (i, e) => {\n for (var t in e || (e = {}))\n ke.call(e, t) && Le(i, t, e[t]);\n if (be)\n for (var t of be(e))\n Qe.call(e, t) && Le(i, t, e[t]);\n return i;\n}, w = (i, e) => Ge(i, Te(e));\nfunction Me(i, e) {\n const t = i.prefix.startsWith(\"/\") ? i.prefix.substr(1) : i.prefix, r = `${i.scheme}://${i.server}/${t ? `${t}/` : \"\"}${i.identifier}`;\n if (i.type === \"base\")\n return r;\n if (i.type === \"info\")\n return `${r}/info.json`;\n let { region: n, size: s, rotation: a, format: o, quality: l } = i;\n if (e) {\n const f = e[\"@context\"] ? Array.isArray(e[\"@context\"]) ? e[\"@context\"] : [e[\"@context\"]] : [], u = f.indexOf(\"http://iiif.io/api/image/2/context.json\") !== -1, I = f.indexOf(\"http://iiif.io/api/image/3/context.json\") !== -1;\n if ((s.width === e.width && !s.height || s.height === e.height && !s.width || s.width === e.width && s.height === e.height) && (s = w(y({}, s), { max: true })), u && (s.max && !s.serialiseAsFull && (s = w(y({}, s), { serialiseAsFull: true })), !s.max && s.width && s.height && (s = w(y({}, s), { height: void 0 }))), I && (s.max && s.serialiseAsFull && (s = w(y({}, s), { serialiseAsFull: false })), s.width && !s.height && e.width && e.height)) {\n const d = e.height / e.width;\n s = w(y({}, s), { height: Math.ceil(s.width * d) });\n }\n }\n return [r, ze(n), Ee(s), Ae(a), `${l}.${o}`].filter(Boolean).join(\"/\");\n}\nfunction S(i, e, t) {\n const r = xe({ id: g(h(i)), profile: \"level2\", type: \"ImageService2\" });\n if (r.type !== \"image\")\n throw new Error(\"Invalid service\");\n return r.size.max = false, r.size.width = e, r.size.height = t, { id: Me(r), type: \"fixed\", width: e, height: t || i.height / (i.width || 1) * e, unsafe: i.width > e };\n}\nfunction p(i) {\n const e = i.replace(/(https?:\\/\\/)?(www.)?/i, \"\");\n return e.indexOf(\"/\") !== -1 ? e.split(\"/\")[0] : e;\n}\nfunction We(i, e, t) {\n const r = i.width ? i.width : i.maxWidth;\n return t.height <= i.maxHeight && t.width <= i.maxWidth && t.height >= i.minHeight && t.width >= i.minWidth && (!e || Math.abs(t.width - r) < Math.abs(e.width - r));\n}\nfunction je(i, e) {\n const t = [], r = Object.assign({ unsafeImageService: false, atAnyCost: true, fallback: true, minHeight: 64, minWidth: 64, maxHeight: 1 / 0, maxWidth: 1 / 0, returnAllOptions: false, preferFixedSize: false, allowUnsafe: false, explain: false, height: 0, width: 0 }, i), n = [], s = [];\n let a = null;\n const o = (f, u) => {\n if (We(r, u, f)) {\n if (r.preferFixedSize && f.unsafe) {\n s.push(f);\n return;\n }\n r.returnAllOptions && u && s.push(u), a = f;\n } else\n r.returnAllOptions && s.push(f);\n }, l = e.length;\n for (let f = 0; f < l; f++) {\n const u = e[f](), I = u.length;\n for (let d = 0; d < I; d++) {\n const c = u[d];\n if (c.type === \"unknown\" && r.atAnyCost && n.push(c), c.type === \"fixed\" && (c.unsafe ? n.push(c) : o(c, a)), c.type === \"fixed-service\")\n if (r.unsafeImageService) {\n const m = S(c, r.width, r.height);\n o(m, a);\n } else {\n const m = S(c, c.width, c.height);\n o(m, a);\n }\n if (c.type === \"variable\" && c.maxWidth) {\n const m = S({ id: c.id, type: \"fixed-service\", width: c.maxWidth, height: c.maxWidth }, c.maxWidth);\n o(m, a);\n }\n }\n if (a && !r.returnAllOptions) {\n if (a.unsafe || r.allowUnsafe)\n continue;\n break;\n }\n }\n return r.atAnyCost && s.length === 0 ? { best: a || n[0], fallback: n.slice(1), log: t } : r.returnAllOptions ? { best: r.atAnyCost ? a || s[0] || n[0] : a || s[0], fallback: [...s, ...n], log: t } : { best: a || s[0] || null, fallback: a ? s : s.slice(1), log: t };\n}\nvar Je = Object.defineProperty, Ze = Object.defineProperties, Ke = Object.getOwnPropertyDescriptors, Pe = Object.getOwnPropertySymbols, Xe = Object.prototype.hasOwnProperty, Ye = Object.prototype.propertyIsEnumerable, Ce = (i, e, t) => e in i ? Je(i, e, { enumerable: true, configurable: true, writable: true, value: t }) : i[e] = t, qe = (i, e) => {\n for (var t in e || (e = {}))\n Xe.call(e, t) && Ce(i, t, e[t]);\n if (Pe)\n for (var t of Pe(e))\n Ye.call(e, t) && Ce(i, t, e[t]);\n return i;\n}, ei = (i, e) => Ze(i, Ke(e));\nfunction Be(i, e, t) {\n const r = i > e ? i : e, n = t.length, s = [];\n for (let a = 0; a < n; a++) {\n const o = t[a];\n let l = o.scaleFactors[0], f = r / l;\n const u = [l];\n for (; f >= o.width; )\n l = l * 2, u.push(l), f = f / 2;\n s.push(ei(qe({}, o), { scaleFactors: u }));\n }\n return s;\n}\nfunction Ne(i, e) {\n if (i.length !== e.length)\n return false;\n if (i.length === 0 && e.length === 0)\n return true;\n const t = i.length;\n let r = true;\n for (let s = 0; s < t; s++) {\n const a = i[s], o = e[s];\n if (a.width !== o.width || a.height !== o.height) {\n r = false;\n break;\n }\n }\n if (r)\n return true;\n let n = 0;\n for (let s = 0; s < t; s++)\n for (let a = 0; a < t; a++)\n if (i[s].width === e[a].width && i[s].height === e[a].height) {\n n++;\n break;\n }\n return n === t;\n}\nvar x = (i, e, t) => new Promise((r, n) => {\n var s = (l) => {\n try {\n o(t.next(l));\n } catch (f) {\n n(f);\n }\n }, a = (l) => {\n try {\n o(t.throw(l));\n } catch (f) {\n n(f);\n }\n }, o = (l) => l.done ? r(l.value) : Promise.resolve(l.value).then(s, a);\n o((t = t.apply(i, e)).next());\n});\nclass Re {\n constructor() {\n this.config = { verificationsRequired: 1, approximateServices: true, enableFetching: true, disableThrottling: false }, this.fetchingCount = 0, this.imageServices = {}, this.knownImageServers = {};\n }\n setConfig(e) {\n Object.assign(this.config, e);\n }\n sample(e, t, r = true) {\n const n = p(h(e)), s = g(h(e)), a = this.knownImageServers[n];\n return this.imageServices[s] = Object.assign(e, { real: true }), !a && e.tiles ? (this.knownImageServers[n] = { verifications: 0, malformed: false, root: n, preLoaded: r, sampledId: h(e), verified: false, server: null, result: { context: e[\"@context\"] || [], sampledProfile: e.profile, resourceServiceRatio: t && e.height ? t.height / e.height : 1, sampledSizes: e.sizes || [], sizeRatios: Ie(e.width, e.height, e.sizes || []), sampledTiles: e.tiles || [] } }, true) : this.verify(e);\n }\n preLoad(e, t = true) {\n this.knownImageServers[e.root] = e, t && (this.knownImageServers[e.root].malformed = false, this.knownImageServers[e.root].verifications = this.config.verificationsRequired);\n }\n predict(e, t = false, r = false) {\n const n = e == null ? void 0 : e.source, s = p(h(e)), a = this.knownImageServers[s];\n if (!a || !a.result || !r && (a.malformed || a.verifications < this.config.verificationsRequired))\n return null;\n const o = g(h(e));\n return this.imageServices[o] || (this.imageServices[o] = { \"@context\": a.result.context, \"@id\": h(e), id: h(e), protocol: \"http://iiif.io/api/image\", tiles: (n == null ? void 0 : n.tiles) || Be(e.width, e.height, a.result.sampledTiles), sizes: (n == null ? void 0 : n.sizes) || _e(Math.round(e.width / a.result.resourceServiceRatio), Math.round(e.height / a.result.resourceServiceRatio), a.result.sizeRatios), profile: (n == null ? void 0 : n.profile) || a.result.sampledProfile, height: (n == null ? void 0 : n.height) || e.height, width: (n == null ? void 0 : n.width) || e.width, real: false }), this.imageServices[o];\n }\n getThumbnailFromResource(e, t) {\n return x(this, arguments, function* (r, n, s = true, a = []) {\n const o = yield this.getImageCandidates(r, s);\n return je(n, [() => a, () => o]);\n });\n }\n getImageCandidates(e, t = true) {\n return x(this, null, function* () {\n const r = e;\n if (t && r.height && r.width) {\n const n = K(r);\n for (const s of n) {\n const a = { id: h(s), width: s.width ? s.width : r.width, height: s.height ? s.height : r.height, source: s };\n yield this.loadService(a);\n }\n }\n return Oe(e, t, this);\n });\n }\n verify(e) {\n return x(this, null, function* () {\n const t = this.predict(e, false, true), r = yield this.fetchService(h(e));\n if (!t)\n return false;\n const n = t.height === r.height && t.width === r.width && t[\"@context\"] === r[\"@context\"] && Ne(t.sizes || [], r.sizes || []);\n if (n) {\n const s = p(h(e));\n this.knownImageServers[s].verifications += 1, this.knownImageServers[s].verifications >= this.config.verificationsRequired && (this.knownImageServers[s].verified = true);\n }\n return n;\n });\n }\n canLoadSync(e) {\n const t = typeof e == \"string\" ? e : h(e), r = g(t);\n if (this.imageServices[r])\n return true;\n const n = this.knownImageServers[p(t)];\n return n && !n.malformed && n.verifications >= this.config.verificationsRequired;\n }\n markAsMalformed(e) {\n return x(this, null, function* () {\n return this.knownImageServers[p(h(e))].malformed = true, this.loadService(e, true);\n });\n }\n fetchService(e, t = false) {\n return x(this, null, function* () {\n const r = g(e);\n if (this.imageServices[r] && (!t || this.imageServices[r].real))\n return this.imageServices[r];\n if (!this.config.enableFetching)\n throw new Error(\"Fetching is not enabled\");\n const n = yield this.fetch(r).then((s) => s.json());\n return !n.id && n[\"@id\"] && (n.id = n[\"@id\"]), n.id !== e && (n.id = e, n[\"@id\"] && (n[\"@id\"] = e)), this.imageServices[r] = Object.assign(n, { real: true }), this.imageServices[r];\n });\n }\n fetch(e, t) {\n return x(this, null, function* () {\n return fetch(e, t);\n });\n }\n loadService(e, t = false) {\n return x(this, null, function* () {\n if (!this.config.disableThrottling) {\n let s = true;\n for (; s; )\n if (this.fetchingCount >= this.config.verificationsRequired)\n yield new Promise((a) => setTimeout(a, 500));\n else {\n s = false;\n break;\n }\n }\n const r = this.knownImageServers[p(h(e))];\n if (r && !r.malformed && !t) {\n yield r.result;\n const s = this.loadServiceSync(e);\n if (s)\n return s;\n }\n this.fetchingCount++;\n const n = yield this.fetchService(h(e), t);\n return this.fetchingCount--, n.real && this.sample(n, e), n;\n });\n }\n loadServiceSync(e) {\n const t = g(h(e));\n return this.imageServices[t] ? this.imageServices[t] : this.predict(e);\n }\n}\nnew Re();\nfunction createThumbnailHelper(vault, dependencies = {}) {\n const imageServiceLoader = dependencies.imageServiceLoader || new Re();\n async function getBestThumbnailAtSize(input, request, dereference, candidates = [], dimensions) {\n if (typeof input === \"string\") {\n return { best: Fe(input), fallback: [], log: [] };\n }\n const fullInput = vault.get(input);\n if (typeof fullInput === \"string\") {\n return { best: Fe(fullInput), fallback: [], log: [] };\n }\n switch (fullInput.type) {\n case \"Annotation\": {\n const contentResources = fullInput.body;\n const firstContentResources = vault.get(contentResources[0]);\n if (dimensions && !firstContentResources.width) {\n firstContentResources.width = dimensions.width;\n firstContentResources.height = dimensions.height;\n }\n return await imageServiceLoader.getThumbnailFromResource(firstContentResources, request, dereference, candidates);\n }\n case \"Canvas\": {\n const canvas = fullInput;\n if (canvas.thumbnail && canvas.thumbnail.length) {\n const thumbnail = vault.get(canvas.thumbnail[0]);\n const potentialThumbnails = await imageServiceLoader.getImageCandidates(thumbnail, dereference);\n if (potentialThumbnails && potentialThumbnails.length) {\n candidates.push(...potentialThumbnails);\n }\n }\n return getBestThumbnailAtSize(canvas.items[0], request, dereference, candidates, {\n width: canvas.width,\n height: canvas.height\n });\n }\n case \"AnnotationPage\": {\n const annotationPage = fullInput;\n return getBestThumbnailAtSize(annotationPage.items[0], request, dereference, candidates, dimensions);\n }\n case \"Choice\": {\n const choice = fullInput;\n return getBestThumbnailAtSize(choice.items[0], request, dereference, candidates, dimensions);\n }\n case \"Collection\": {\n const collection = fullInput;\n const firstManifest = collection.items[0];\n return getBestThumbnailAtSize(firstManifest, request, dereference, candidates, dimensions);\n }\n case \"Manifest\": {\n const manifest = fullInput;\n const firstCanvas = manifest.items[0];\n return getBestThumbnailAtSize(firstCanvas, request, dereference, candidates, dimensions);\n }\n case \"SpecificResource\":\n case \"Image\":\n case \"Dataset\":\n case \"Sound\":\n case \"Text\":\n case \"TextualBody\":\n case \"Video\":\n if (dimensions && !fullInput.width) {\n fullInput.width = dimensions.width;\n fullInput.height = dimensions.height;\n }\n return imageServiceLoader.getThumbnailFromResource(fullInput, request, dereference, candidates);\n case \"Service\":\n case \"Range\":\n case \"AnnotationCollection\":\n case \"CanvasReference\":\n case \"ContentResource\":\n return { best: void 0, fallback: [], log: [] };\n }\n return { best: void 0, fallback: [], log: [] };\n }\n return {\n getBestThumbnailAtSize\n };\n}\nfunction getGlobal() {\n if (typeof self !== \"undefined\") {\n return self;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n return {};\n}\nfunction getGlobalVault() {\n const g2 = getGlobal();\n if (typeof g2[\"IIIF_VAULT\"] !== \"undefined\") {\n return g2[\"IIIF_VAULT\"];\n }\n if (typeof g2.IIIFVault === \"undefined\") {\n throw new Error(\"Vault not found\");\n }\n g2[\"IIIF_VAULT\"] = new g2.IIIFVault.Vault();\n return g2[\"IIIF_VAULT\"];\n}\nconst moduleState = {};\nfunction getVaultHelper() {\n if (!moduleState.helper) {\n moduleState.vault = getGlobalVault();\n moduleState.loader = new Re();\n moduleState.helper = createThumbnailHelper(moduleState.vault, { imageServiceLoader: moduleState.loader });\n }\n return moduleState;\n}\nasync function getTileFromImageService(infoJsonId, width, height) {\n const { loader } = getVaultHelper();\n const imageService = await loader.loadService({\n id: infoJsonId,\n width,\n height\n });\n return {\n id: getId(imageService),\n width,\n height,\n imageService,\n thumbnail: void 0\n };\n}\nasync function getTileFromCanvas(canvas, thumbnailSize = 512) {\n const { vault, loader, helper } = getVaultHelper();\n const tiles = [];\n for (const page of canvas.items) {\n for (const anno of vault.get(page).items) {\n const annotation = vault.get(vault.get(anno).body[0]);\n const serviceSnippet = annotation.service[0];\n const tile = await getTileFromImageService(serviceSnippet.id, canvas.width, canvas.height);\n const { best: thumbnail } = await helper.getBestThumbnailAtSize(vault, loader, canvas, {\n maxHeight: thumbnailSize,\n maxWidth: thumbnailSize\n }, true);\n if (thumbnail) {\n tile.thumbnail = thumbnail;\n }\n tiles.push(tile);\n }\n }\n return tiles;\n}\nasync function getTilesFromManifest(manifest) {\n const { vault } = getVaultHelper();\n const tiles = [];\n for (const canvasRef of manifest.items) {\n const canvas = vault.get(canvasRef);\n tiles.push(...await getTileFromCanvas(canvas));\n }\n return tiles;\n}\nasync function getTiles(manifestId) {\n try {\n const { vault } = getVaultHelper();\n const manifest = await vault.loadManifest(manifestId);\n if (!manifest) {\n return [];\n }\n return getTilesFromManifest(manifest);\n } catch (err) {\n console.log(\"ERR\", err);\n return [];\n }\n}\nconst ImageService = (props) => {\n const [tiles, setTile] = useState();\n useEffect(() => {\n getTileFromImageService(props.id, props.width, props.height).then((s) => {\n setTile(s);\n });\n }, [props.height, props.id, props.width]);\n return /* @__PURE__ */ jsx(\"world-object\", {\n x: props.x || 0,\n y: props.y || 0,\n width: props.width,\n height: props.height,\n children: tiles ? /* @__PURE__ */ jsx(TileSet, {\n tiles,\n x: 0,\n y: 0,\n width: props.width,\n height: props.height\n }) : null\n });\n};\nconst useAfterPaint = (callback, deps = []) => {\n const runtime = useRuntime();\n useEffect(() => {\n if (runtime) {\n return runtime.registerHook(\"useAfterPaint\", callback);\n }\n return () => {\n };\n }, deps);\n};\nconst useAtlasImage = (children, {\n onCreated,\n resetWorldOnChange = true,\n mode = \"explore\",\n cover,\n containerRef,\n ...restProps\n}) => {\n const [ready, setReady] = useState(false);\n const [imageUrl, setImageUrl] = useState(void 0);\n const [imageError, setError] = useState(void 0);\n const canvasRef = useRef();\n const overlayRef = useRef();\n const bounds = useMemo(() => {\n return {\n width: restProps.width,\n height: restProps.height\n };\n }, [restProps.width, restProps.height]);\n const [presetName, preset, viewport, refs] = usePreset(void 0, {\n width: restProps.width,\n height: restProps.height\n });\n useLayoutEffect(() => {\n const $cvs = document.createElement(\"canvas\");\n $cvs.height = bounds.height;\n $cvs.width = bounds.width;\n canvasRef.current = $cvs;\n }, []);\n useLayoutEffect(() => {\n const $cvs = canvasRef.current;\n if ($cvs) {\n $cvs.height = bounds.height;\n $cvs.width = bounds.width;\n }\n }, [bounds.width, bounds.height]);\n useEffect(() => {\n if (preset) {\n const runtime = preset.runtime;\n return runtime.registerHook(\"useAfterFrame\", () => {\n if (canvasRef.current) {\n try {\n setImageUrl(canvasRef.current.toDataURL());\n } catch (e) {\n if (e instanceof Error) {\n setError(e.message);\n }\n }\n }\n });\n }\n return () => {\n };\n }, []);\n useEffect(() => {\n if (preset) {\n const runtime = preset.runtime;\n return runtime.world.addLayoutSubscriber((type) => {\n if (type === \"ready\") {\n setReady(true);\n }\n });\n }\n return () => {\n };\n }, []);\n useEffect(() => {\n if (preset && preset.em) {\n preset.em.updateBounds();\n }\n }, [bounds]);\n useEffect(() => {\n if (preset) {\n preset.runtime.mode = mode;\n }\n }, [mode]);\n useEffect(() => {\n if (preset) {\n const rt = preset.runtime;\n rt.resize(viewport.current.width, restProps.width, viewport.current.height, restProps.height);\n if (cover) {\n rt.cover();\n } else {\n rt.goHome();\n }\n viewport.current.width = restProps.width;\n viewport.current.height = restProps.height;\n rt.updateNextFrame();\n }\n }, [restProps.width, restProps.height]);\n useLayoutEffect(() => {\n const overlay = overlayRef.current;\n if (!overlay)\n return;\n overlay.style.width = `${bounds.width}px`;\n overlay.style.height = `${bounds.height}px`;\n overlay.style.pointerEvents = \"none\";\n overlay.style.overflow = \"hidden\";\n }, [bounds.height, bounds.width]);\n useLayoutEffect(() => {\n const windowResizeCallback = () => {\n if (preset && preset.runtime) {\n const rt = preset.runtime;\n rt.resize(viewport.current.width, restProps.width, viewport.current.height, restProps.height);\n viewport.current.width = restProps.width;\n viewport.current.height = restProps.height;\n rt.updateNextFrame();\n }\n };\n window.addEventListener(\"resize\", windowResizeCallback);\n return () => window.removeEventListener(\"resize\", windowResizeCallback);\n }, [preset, restProps.height, restProps.width]);\n const Canvas = useCallback(function Canvas2(props) {\n const activate = () => {\n if (preset) {\n preset.ready = true;\n }\n };\n useEffect(() => {\n if (preset) {\n const result = onCreated && onCreated(preset);\n return void (result && result.then ? result.then(activate) : activate());\n }\n return () => {\n };\n }, []);\n return props.children;\n }, [preset]);\n useEffect(() => {\n if (preset && preset.runtime) {\n const rt = preset.runtime;\n if (resetWorldOnChange) {\n return rt.world.addLayoutSubscriber((type) => {\n if (type === \"recalculate-world-size\") {\n rt.goHome({\n cover\n });\n }\n });\n }\n }\n return () => {\n };\n }, [preset, cover, resetWorldOnChange]);\n useLayoutEffect(() => {\n if (preset) {\n ReactAtlas.render(/* @__PURE__ */ jsx(Canvas, {\n children: /* @__PURE__ */ jsx(ModeContext.Provider, {\n value: mode,\n children: /* @__PURE__ */ jsx(AtlasContext.Provider, {\n value: preset,\n children\n })\n })\n }), preset.runtime);\n }\n }, [preset, mode, children]);\n return {\n loading: !imageUrl && ready,\n uri: imageUrl,\n imageError\n };\n};\nconst useBeforeFrame = (callback, deps = []) => {\n const runtime = useRuntime();\n useEffect(() => {\n if (runtime) {\n return runtime.registerHook(\"useBeforeFrame\", callback);\n }\n return () => {\n };\n }, deps);\n};\nconst useControlledAnnotationList = (initialList = []) => {\n const [annotations, setAnnotations] = useState(initialList);\n const [isEditing, setIsEditing] = useState(false);\n const [selectedAnnotation, setSelectedAnnotation] = useState();\n const addNewAnnotation = useCallback(() => {\n setIsEditing(true);\n setSelectedAnnotation(void 0);\n }, []);\n const editAnnotation = useCallback((id) => {\n setIsEditing(true);\n setSelectedAnnotation(id);\n }, []);\n const onUpdateAnnotation = (newAnno) => {\n setAnnotations((val) => val.map((ann) => {\n if (ann.id === newAnno.id) {\n return newAnno;\n }\n return ann;\n }));\n };\n const onCreateNewAnnotation = useCallback((bounds) => {\n const id = nanoid();\n setAnnotations((a) => [...a, { id, ...bounds }]);\n setIsEditing(false);\n setSelectedAnnotation(void 0);\n }, []);\n const onDeselect = useCallback(() => {\n setIsEditing(false);\n setSelectedAnnotation(void 0);\n }, []);\n return {\n isEditing,\n onDeselect,\n selectedAnnotation,\n onCreateNewAnnotation,\n annotations,\n onUpdateAnnotation,\n setIsEditing,\n setSelectedAnnotation,\n editAnnotation,\n addNewAnnotation\n };\n};\nfunction canDrag(ref) {\n return ref.current === \"sketch\";\n}\nfunction mergeStyles(defaultStyle, style) {\n if (!defaultStyle) {\n return style;\n }\n if (!style) {\n return defaultStyle;\n }\n return {\n ...defaultStyle,\n ...style || {},\n \":hover\": defaultStyle[\":hover\"] ? Object.assign(defaultStyle[\":hover\"] || {}, style[\":hover\"] || {}) : style[\":hover\"],\n \":active\": defaultStyle[\":active\"] ? Object.assign(defaultStyle[\":active\"] || {}, style[\":active\"] || {}) : style[\":hover\"]\n };\n}\nexport { Atlas, AtlasAuto, AtlasContext, BoundsContext, Box, BrowserEventManager, CanvasRenderer, CompositeRenderer, CompositeResource, DebugRenderer, DrawBox, GridBuilder, HTMLPortal, ImageService, ImageTexture, ModeContext, OverlayRenderer, ReactAtlas, RegionHighlight, ResizeWorldItem, Runtime, SingleImage, StaticRenderer, Text, TileSet, TiledImage, WebGLRenderer, World, WorldObject, Zone, activateEvents, applyProps, bounceOut, canDrag, createDefaultEventMap, defaultConfig, defaultPreset, easingFunctions, fromImage, getId, getTileFromCanvas, getTileFromImageService, getTiles, getTilesFromManifest, mergeStyles, popmotionController, presets, staticPreset, supportedEventAttributes, supportedEventMap, unmountComponentAtNode, useAfterFrame, useAfterPaint, useAtlas, useAtlasImage, useBeforeFrame, useCanvas, useControlledAnnotationList, useFrame, useMode, useResizeWorldItem, useRuntime, useWorldEvent };\n//# sourceMappingURL=index.mjs.map\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport * as React from 'react';\n\nvar changedArray = function changedArray(a, b) {\n if (a === void 0) {\n a = [];\n }\n\n if (b === void 0) {\n b = [];\n }\n\n return a.length !== b.length || a.some(function (item, index) {\n return !Object.is(item, b[index]);\n });\n};\n\nvar initialState = {\n error: null\n};\n\nvar ErrorBoundary = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ErrorBoundary, _React$Component);\n\n function ErrorBoundary() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n _this.state = initialState;\n\n _this.resetErrorBoundary = function () {\n var _this$props;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this.props.onReset == null ? void 0 : (_this$props = _this.props).onReset.apply(_this$props, args);\n\n _this.reset();\n };\n\n return _this;\n }\n\n ErrorBoundary.getDerivedStateFromError = function getDerivedStateFromError(error) {\n return {\n error: error\n };\n };\n\n var _proto = ErrorBoundary.prototype;\n\n _proto.reset = function reset() {\n this.setState(initialState);\n };\n\n _proto.componentDidCatch = function componentDidCatch(error, info) {\n var _this$props$onError, _this$props2;\n\n (_this$props$onError = (_this$props2 = this.props).onError) == null ? void 0 : _this$props$onError.call(_this$props2, error, info);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n var error = this.state.error;\n var resetKeys = this.props.resetKeys; // There's an edge case where if the thing that triggered the error\n // happens to *also* be in the resetKeys array, we'd end up resetting\n // the error boundary immediately. This would likely trigger a second\n // error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call\n // of cDU after the error is set\n\n if (error !== null && prevState.error !== null && changedArray(prevProps.resetKeys, resetKeys)) {\n var _this$props$onResetKe, _this$props3;\n\n (_this$props$onResetKe = (_this$props3 = this.props).onResetKeysChange) == null ? void 0 : _this$props$onResetKe.call(_this$props3, prevProps.resetKeys, resetKeys);\n this.reset();\n }\n };\n\n _proto.render = function render() {\n var error = this.state.error;\n var _this$props4 = this.props,\n fallbackRender = _this$props4.fallbackRender,\n FallbackComponent = _this$props4.FallbackComponent,\n fallback = _this$props4.fallback;\n\n if (error !== null) {\n var _props = {\n error: error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n\n if ( /*#__PURE__*/React.isValidElement(fallback)) {\n return fallback;\n } else if (typeof fallbackRender === 'function') {\n return fallbackRender(_props);\n } else if (FallbackComponent) {\n return /*#__PURE__*/React.createElement(FallbackComponent, _props);\n } else {\n throw new Error('react-error-boundary requires either a fallback, fallbackRender, or FallbackComponent prop');\n }\n }\n\n return this.props.children;\n };\n\n return ErrorBoundary;\n}(React.Component);\n\nfunction withErrorBoundary(Component, errorBoundaryProps) {\n var Wrapped = function Wrapped(props) {\n return /*#__PURE__*/React.createElement(ErrorBoundary, errorBoundaryProps, /*#__PURE__*/React.createElement(Component, props));\n }; // Format for display in DevTools\n\n\n var name = Component.displayName || Component.name || 'Unknown';\n Wrapped.displayName = \"withErrorBoundary(\" + name + \")\";\n return Wrapped;\n}\n\nfunction useErrorHandler(givenError) {\n var _React$useState = React.useState(null),\n error = _React$useState[0],\n setError = _React$useState[1];\n\n if (givenError != null) throw givenError;\n if (error != null) throw error;\n return setError;\n}\n/*\neslint\n @typescript-eslint/sort-type-union-intersection-members: \"off\",\n @typescript-eslint/no-throw-literal: \"off\",\n @typescript-eslint/prefer-nullish-coalescing: \"off\"\n*/\n\nexport { ErrorBoundary, useErrorHandler, withErrorBoundary };\n","import React, { ReactNode, useContext, useMemo } from 'react';\n\nconst defaultResourceContext = {\n collection: undefined,\n manifest: undefined,\n range: undefined,\n canvas: undefined,\n annotation: undefined,\n};\n\nexport type ResourceContextType = {\n collection?: string;\n manifest?: string;\n range?: string;\n canvas?: string;\n annotation?: string;\n};\n\nexport const ResourceReactContext = React.createContext<ResourceContextType>(defaultResourceContext);\n\nexport const useResourceContext = () => {\n return useContext(ResourceReactContext);\n};\n\nexport function ResourceProvider({ value, children }: { value: ResourceContextType; children: ReactNode }) {\n const parentContext = useResourceContext();\n const newContext = useMemo(() => {\n return {\n ...parentContext,\n ...value,\n };\n }, [value, parentContext]);\n\n return <ResourceReactContext.Provider value={newContext}>{children}</ResourceReactContext.Provider>;\n}\n","import React, { ReactElement, ReactNode, useState } from 'react';\nimport { Vault, VaultOptions, globalVault } from '@iiif/vault';\nimport { ResourceContextType, ResourceProvider } from './ResourceContext';\n\nexport const ReactVaultContext = React.createContext<{\n vault: Vault | null;\n setVaultInstance: (vault: Vault) => void;\n}>({\n vault: null,\n setVaultInstance: (vault: Vault) => {\n // Do nothing.\n },\n});\n\nexport function VaultProvider({\n vault,\n vaultOptions,\n useGlobal,\n resources,\n children,\n}: {\n vault?: Vault;\n useGlobal?: boolean;\n vaultOptions?: VaultOptions;\n resources?: ResourceContextType;\n children: ReactNode;\n}) {\n const [vaultInstance, setVaultInstance] = useState<Vault>(() => {\n if (vault) {\n return vault;\n }\n if (useGlobal) {\n return globalVault(vaultOptions);\n }\n if (vaultOptions) {\n return new Vault(vaultOptions);\n }\n return new Vault();\n });\n\n return (\n <ReactVaultContext.Provider value={{ vault: vaultInstance, setVaultInstance }}>\n <ResourceProvider value={resources || {}}>{children}</ResourceProvider>\n </ReactVaultContext.Provider>\n );\n}\n","import { ReactVaultContext } from '../context/VaultContext';\nimport { useContext } from 'react';\nimport { Vault } from '@iiif/vault';\n\nexport const useVault = (): Vault => {\n const { vault } = useContext(ReactVaultContext);\n\n if (vault === null) {\n throw new Error('Vault not found. Ensure you have your provider set up correctly.');\n }\n\n return vault as Vault;\n};\n","import { useVault } from './useVault';\nimport { useEffect, useMemo, useState } from 'react';\n\nexport type ResourceRequestOptions = {\n noCache?: boolean;\n};\n\nexport function useExternalResource<T extends { id: string }>(\n idOrRef: string | { id: string; type: string },\n { noCache = false }: ResourceRequestOptions = {}\n): {\n id: string;\n requestId: string;\n isLoaded: boolean;\n error: any;\n cached: boolean;\n resource?: T;\n} {\n const id = typeof idOrRef === 'string' ? idOrRef : idOrRef.id;\n const vault = useVault();\n const [realId, setRealId] = useState(id);\n const [error, setError] = useState<Error | undefined>(undefined);\n const initialData = useMemo(() => {\n return vault.get<T>(id, { skipSelfReturn: true }) || undefined;\n }, [id, vault]);\n const [resource, setResource] = useState<T | undefined>(initialData);\n\n useEffect(() => {\n (async () => {\n try {\n const fetchedResource = initialData && !noCache ? initialData : await vault.load<T>(id);\n const _realId = fetchedResource ? fetchedResource.id || (fetchedResource as any)['@id'] : null;\n if (fetchedResource && realId !== _realId) {\n setRealId(_realId);\n }\n\n setResource(fetchedResource);\n } catch (err) {\n setError(err as Error);\n }\n })();\n }, [id, noCache]);\n\n return {\n isLoaded: !!resource,\n id: realId,\n requestId: id,\n error,\n resource,\n cached: !!(resource && resource === initialData),\n };\n}\n","import { ManifestNormalized } from '@iiif/presentation-3';\nimport { ResourceRequestOptions, useExternalResource } from './useExternalResource';\n\nexport function useExternalManifest(\n idOrRef: string | { id: string; type: string },\n options?: ResourceRequestOptions\n): {\n id: string;\n requestId: string;\n isLoaded: boolean;\n cached?: boolean;\n error: any;\n manifest?: ManifestNormalized;\n} {\n const { id, isLoaded, error, resource, requestId, cached } = useExternalResource<ManifestNormalized>(\n idOrRef,\n options\n );\n\n return { id, isLoaded, error, manifest: resource, requestId, cached };\n}\n","import { ResourceProvider } from './ResourceContext';\nimport React, { ReactNode } from 'react';\n\nexport function ManifestContext({ manifest, children }: { manifest: string; children: ReactNode }) {\n return <ResourceProvider value={{ manifest }}>{children}</ResourceProvider>;\n}\n","import { ResourceProvider } from './ResourceContext';\nimport React, { ReactNode } from 'react';\n\nexport function CanvasContext({ canvas, children }: { canvas: string; children: ReactNode }) {\n return <ResourceProvider value={{ canvas }}>{children}</ResourceProvider>;\n}\n","import { useVault } from './useVault';\nimport { IIIFStore, Vault } from '@iiif/vault';\nimport { useEffect, useState } from 'react';\n\nexport function useVaultSelector<T>(selector: (state: IIIFStore, vault: Vault) => T, deps: any[] = []) {\n const vault = useVault();\n const [selectedState, setSelectedState] = useState<T>(() => selector(vault.getState(), vault));\n\n useEffect(() => {\n return vault.subscribe(\n (s) => selector(s, vault),\n (s) => {\n setSelectedState(s);\n },\n false\n );\n }, deps);\n\n return selectedState as T;\n}\n","import { useContext } from 'react';\nimport React from 'react';\nimport { CanvasNormalized } from '@iiif/presentation-3';\nimport { useVaultSelector } from '../hooks/useVaultSelector';\n\nexport const VisibleCanvasReactContext = React.createContext<string[]>([]);\n\nexport function useVisibleCanvases(): CanvasNormalized[] {\n const ids = useContext(VisibleCanvasReactContext);\n\n return useVaultSelector<CanvasNormalized[]>(\n (state) => {\n return ids.map((id) => state.iiif.entities.Canvas[id]).filter(Boolean);\n },\n [ids]\n );\n}\n","import React, { ReactNode, useCallback, useContext, useEffect } from 'react';\n/**\n * Simple viewer context\n * *****************************************************************************\n *\n * This will be the context to use to get a basic IIIF viewer up and running.\n * It will not focus on having compatibility with the full range of IIIF\n * resources, instead offering a viewer for a Manifest, cycling through canvases\n * while ignoring the paged/facing-pages/continuous behaviors.\n *\n * There will not be support for canvas-on-canvas annotations. Annotations will\n * be filtered, giving details of the canvas space and images to be annotated\n * onto that space. The demo implementation of this viewer will use\n * OpenSeadragon to display.\n *\n * Navigation functions will include the basics:\n * - nextCanvas()\n * - previousCanvas()\n * - goToCanvas(id)\n * - goToCanvasIndex(idx)\n * - goToFirstCanvas()\n * - goToLastCanvas()\n *\n * It will take in only a Manifest ID and will load that Manifest when the\n * context loads.\n *\n * There will be no support for external or embedded annotation lists, although\n * you can set up a nested context to support this.\n *\n * There will be no support for ranges in this view.\n *\n * To use this component, first you will need the provider:\n * import { SimpleViewerProvider } from '...';\n *\n * <SimpleViewerProvider id=\"http://example.org/manifest.json\">\n * <CustomComponent />\n * </SimpleViewerProvider>\n *\n * This is in addition to the core Vault context further up the tree.\n *\n * In components that you want to use parts of the state you can grab the hooks\n * from this file.\n *\n * import { useSimpleViewer } from '...';\n *\n * And use them in your components to get the actions.\n *\n * function NextButton() {\n * const { nextCanvas } = useSimpleViewer();\n *\n * return <button onClick={nextCanvas}>Next</button>;\n * }\n *\n * Since this is a single-context, there is only ever one manifest, canvas and\n * annotation list. You can access the current resource using the normal hooks.\n *\n * function CanvasMetadata() {\n * const metadata = useCanvas(metadataSelector);\n *\n * return <div> ... </div>\n * }\n *\n * So long as this is inside the provider, it will have the correct context.\n */\nimport { createContext, FC, useMemo, useState } from 'react';\nimport { useExternalManifest } from '../hooks/useExternalManifest';\nimport { ManifestContext } from '../context/ManifestContext';\nimport { CanvasContext } from '../context/CanvasContext';\nimport { VisibleCanvasReactContext } from '../context/VisibleCanvasContext';\n\ntype SimpleViewerContext = {\n setCurrentCanvasId: (newId: string | ((prev: string) => string)) => void;\n setCurrentCanvasIndex: (newId: number | ((prev: number) => number)) => void;\n currentCanvasIndex: number;\n pagingView: boolean;\n totalCanvases: number;\n nextCanvas: () => void;\n previousCanvas: () => void;\n};\n\nconst noop = () => {\n //\n};\n\nexport const SimpleViewerReactContext = createContext<SimpleViewerContext>({\n setCurrentCanvasId: noop,\n setCurrentCanvasIndex: noop,\n nextCanvas: noop,\n previousCanvas: noop,\n currentCanvasIndex: -1,\n totalCanvases: 0,\n pagingView: true,\n});\n\nexport function SimpleViewerProvider(props: { manifest: string; pagingEnabled?: boolean; children: ReactNode }) {\n const manifest = useExternalManifest(props.manifest);\n const [currentCanvasId, setCurrentCanvasId] = useState('');\n const [visible, setVisible] = useState<string[]>([]);\n const pagingView =\n (typeof props.pagingEnabled === 'undefined' || props.pagingEnabled) &&\n manifest.manifest &&\n manifest.manifest.behavior &&\n manifest.manifest.behavior.includes('paged');\n\n useEffect(() => {\n if (manifest.manifest) {\n setCurrentCanvasId(manifest.manifest.items[0]?.id);\n setVisible([manifest.manifest.items[0]?.id]);\n }\n }, [manifest.manifest, props.manifest]);\n\n const canvasList = useMemo(() => {\n return manifest.manifest?.items.map((c) => c.id) || [];\n }, [manifest.manifest, props.manifest]);\n\n const currentCanvasIndex = useMemo(() => canvasList.indexOf(currentCanvasId), [canvasList, currentCanvasId]);\n\n const nextCanvas = useCallback(() => {\n if (canvasList.length && currentCanvasId) {\n if (currentCanvasIndex === -1) {\n // This is an error?\n return;\n }\n if (\n canvasList[currentCanvasIndex + 2]\n ? currentCanvasIndex + 2 === canvasList.length\n : currentCanvasIndex === canvasList.length\n ) {\n // We are at the end.\n return;\n }\n const newCanvas =\n pagingView && currentCanvasIndex !== 0\n ? canvasList[currentCanvasIndex + 2]\n : canvasList[currentCanvasIndex + 1];\n\n const pageCanvas = pagingView\n ? currentCanvasIndex !== 0\n ? canvasList[currentCanvasIndex + 3]\n : canvasList[currentCanvasIndex + 2]\n : null;\n\n if (newCanvas) {\n setCurrentCanvasId(newCanvas);\n setVisible(pageCanvas ? [newCanvas, pageCanvas] : [newCanvas]);\n }\n }\n }, [pagingView, canvasList, currentCanvasId, currentCanvasIndex]);\n\n const previousCanvas = useCallback(() => {\n if (canvasList.length && currentCanvasId) {\n if (currentCanvasIndex === 0 || currentCanvasIndex === -1) {\n return;\n }\n\n const newCanvas =\n pagingView && currentCanvasIndex !== 1\n ? canvasList[currentCanvasIndex - 2]\n : canvasList[currentCanvasIndex - 1];\n const pageCanvas = pagingView && currentCanvasIndex !== 1 ? canvasList[currentCanvasIndex - 1] : null;\n if (newCanvas) {\n setCurrentCanvasId(newCanvas);\n setVisible(pageCanvas ? [newCanvas, pageCanvas] : [newCanvas]);\n }\n }\n }, [pagingView, canvasList, currentCanvasId, currentCanvasIndex]);\n\n const setCurrentCanvasIndex = useCallback(\n (idx: number) => {\n const realIdx = pagingView && idx % 2 === 1 ? idx - 1 : idx;\n const newId = canvasList[realIdx];\n const newNextId = pagingView && realIdx !== 0 ? canvasList[realIdx + 1] : null;\n if (newId) {\n setCurrentCanvasId(newId);\n setVisible((prevValue) => {\n const newValue = newNextId ? [newId, newNextId] : [newId];\n if (prevValue.length === prevValue.length) {\n for (let i = 0; i < prevValue.length; i++) {\n if (prevValue[i] !== newValue[i]) {\n return newValue;\n }\n }\n return prevValue;\n }\n return newValue;\n });\n }\n },\n [pagingView, canvasList]\n );\n\n const internalSetCurrentCanvasId = useCallback(\n (nextId: string) => {\n const idx = canvasList.indexOf(nextId);\n if (idx !== -1) {\n setCurrentCanvasIndex(idx);\n }\n },\n [canvasList, setCurrentCanvasIndex]\n );\n\n const ctx = useMemo(\n () =>\n ({\n // Extra functions.\n setCurrentCanvasId: internalSetCurrentCanvasId,\n nextCanvas,\n previousCanvas,\n currentCanvasIndex,\n totalCanvases: canvasList.length,\n setCurrentCanvasIndex,\n pagingView: true,\n } as SimpleViewerContext),\n [nextCanvas, previousCanvas, currentCanvasIndex, canvasList, setCurrentCanvasIndex, internalSetCurrentCanvasId]\n );\n\n if (!manifest.manifest) {\n console.warn('The manifest passed to the provider is not a valid IIIF manifest.');\n return <div>Sorry, something went wrong.</div>;\n }\n\n if (!manifest.isLoaded) {\n return <div>Loading...</div>;\n }\n\n return (\n <SimpleViewerReactContext.Provider value={ctx}>\n <VisibleCanvasReactContext.Provider value={visible}>\n <ManifestContext manifest={manifest.manifest.id}>\n <CanvasContext canvas={currentCanvasId}>{props.children}</CanvasContext>\n </ManifestContext>\n </VisibleCanvasReactContext.Provider>\n </SimpleViewerReactContext.Provider>\n );\n}\n\nexport function useSimpleViewer() {\n return useContext(SimpleViewerReactContext);\n}\n","import React, { ReactNode, useContext } from 'react';\nimport { ResourceReactContext } from './ResourceContext';\nimport { ReactVaultContext, VaultProvider } from './VaultContext';\nimport { SimpleViewerReactContext } from '../viewers/SimpleViewerContext';\nimport { VisibleCanvasReactContext } from './VisibleCanvasContext';\n\nexport function useContextBridge() {\n return {\n VaultContext: useContext(ReactVaultContext),\n ResourceContext: useContext(ResourceReactContext),\n SimpleViewerReactContext: useContext(SimpleViewerReactContext),\n VisibleCanvasReactContext: useContext(VisibleCanvasReactContext),\n };\n}\n\nexport function ContextBridge(props: { bridge: ReturnType<typeof useContextBridge>; children: ReactNode }) {\n return (\n <VaultProvider vault={props.bridge.VaultContext.vault || undefined} resources={props.bridge.ResourceContext}>\n <VisibleCanvasReactContext.Provider value={props.bridge.VisibleCanvasReactContext}>\n <SimpleViewerReactContext.Provider value={props.bridge.SimpleViewerReactContext}>\n {props.children}\n </SimpleViewerReactContext.Provider>\n </VisibleCanvasReactContext.Provider>\n </VaultProvider>\n );\n}\n","function n(n){return null==n}function t(n){throw new Error(\"Argument \"+n+\" is empty.\")}function r(n){return\"function\"==typeof n&&\"getType\"in n}function e(n){throw new Error(\"Argument \"+n+' is invalid, it should be an action-creator instance from \"typesafe-actions\"')}function i(n,t){if(null==n)throw new Error(\"Argument contains array with empty element at index \"+t);if(null==n.getType)throw new Error(\"Argument contains array with invalid element at index \"+t+', it should be an action-creator instance from \"typesafe-actions\"')}function o(n){return\"string\"==typeof n||\"symbol\"==typeof n}function u(n){return!o(n)}function a(n){throw new Error(\"Argument \"+n+\" is invalid, it should be an action type of type: string | symbol\")}function c(n,t){if(null==n)throw new Error(\"Argument contains array with empty element at index \"+t);if(\"string\"!=typeof n&&\"symbol\"!=typeof n)throw new Error(\"Argument contains array with invalid element at index \"+t+\", it should be of type: string | symbol\")}function f(r,i,o,a){return n(r)&&t(1),u(r)&&e(1),{type:r,payload:i,meta:o,error:a}}function s(r,e){n(r)&&t(1),u(r)&&a(1);return Object.assign((function(){var n=null!=e?e.apply(void 0,arguments):void 0;return Object.assign({type:r},n)}),{getType:function(){return r},toString:function(){return r}})}function y(r,e,i){return n(r)&&t(1),u(r)&&a(1),function(){return s(r,(function(){var n=arguments.length<=0?void 0:arguments[0],t=arguments.length<=1?void 0:arguments[1];return null==e&&null==i||(n=null!=e?e.apply(void 0,arguments):void 0,t=null!=i?i.apply(void 0,arguments):void 0),Object.assign({},void 0!==n&&{payload:n},{},void 0!==t&&{meta:t})}))}}function l(n,t,r,e){return function(){var i=[n,t,r,e].map((function(n,t){return Array.isArray(n)?y(n[0],n[1],n[2])():\"string\"==typeof n||\"symbol\"==typeof n?y(n)():void(t<3&&function(n){throw new Error(\"Argument \"+n+' is invalid, it should be an action type of \"string | symbol\" or a tuple of \"[string | symbol, Function, Function?]\"')}(t))}));return{request:i[0],success:i[1],failure:i[2],cancel:i[3]}}}function p(i){return n(i)&&t(1),r(i)||e(1),i.getType()}function d(n,t){void 0===t&&(t={});var e=Object.assign({},t),i=function(t,i){var u=Array.isArray(t)?t:[t],a={};return u.map((function(n,t){return r(n)?p(n):o(n)?n:function(n){throw new Error(\"Argument \"+n+' is invalid, it should be an action-creator instance from \"typesafe-actions\" or action type of type: string | symbol')}(t+1)})).forEach((function(n){return a[n]=i})),d(n,Object.assign({},e,{},a))};return Object.assign((function(t,r){if(void 0===t&&(t=n),e.hasOwnProperty(r.type)){var i=e[r.type];if(\"function\"!=typeof i)throw Error('Reducer under \"'+r.type+'\" key is not a valid reducer');return i(t,r)}return t}),{handlers:Object.assign({},e),handleAction:i,handleType:i})}function g(r,e){n(r)&&t(1);var i=Array.isArray(r)?r:[r];i.forEach(c);var o=function(n){return i.includes(n.type)};return void 0===e?o:o(e)}function m(r,e){n(r)&&t(1);var o=Array.isArray(r)?r:[r];o.forEach(i);var u=function(n){return o.some((function(t){return n.type===t.getType()}))};return void 0===e?u:u(e)}function v(r,e){n(r)&&t(1),u(r)&&a(1);var i=null!=e?e(r):function(){return{type:r}};return Object.assign(i,{getType:function(){return r},toString:function(){return r}})}var h={createAction:function(n,t){var r=null==t?function(){return f(n)}:t(f.bind(null,n));return Object.assign(r,{getType:function(){return n},toString:function(){return n}})},createCustomAction:v,createStandardAction:function(r){return n(r)&&t(1),u(r)&&a(1),Object.assign((function(){return v(r,(function(n){return function(t,r){return{type:n,payload:t,meta:r}}}))}),{map:function(n){return v(r,(function(t){return function(r,e){return Object.assign(n(r,e),{type:t})}}))}})}};export{f as action,y as createAction,l as createAsyncAction,s as createCustomAction,d as createReducer,h as deprecated,p as getType,m as isActionOf,g as isOfType};\n//# sourceMappingURL=typesafe-actions.es.production.js.map\n","import { createAction } from 'typesafe-actions';\n\nconst IMPORT_ENTITIES = \"@iiif/IMPORT_ENTITIES\";\nconst MODIFY_ENTITY_FIELD = \"@iiif/MODIFY_ENTITY_FIELD\";\nconst REORDER_ENTITY_FIELD = \"@iiif/REORDER_ENTITY_FIELD\";\nconst ADD_REFERENCE = \"@iiif/ADD_REFERENCE\";\nconst REMOVE_REFERENCE = \"@iiif/REMOVE_REFERENCE\";\nconst importEntities = createAction(IMPORT_ENTITIES)();\nconst modifyEntityField = createAction(MODIFY_ENTITY_FIELD)();\nconst reorderEntityField = createAction(REORDER_ENTITY_FIELD)();\nconst addReference = createAction(ADD_REFERENCE)();\nconst removeReference = createAction(REMOVE_REFERENCE)();\nconst entityActions = { importEntities, modifyEntityField, reorderEntityField, addReference, removeReference };\n\nconst ADD_MAPPING = \"@iiif/ADD_MAPPING\";\nconst ADD_MAPPINGS = \"@iiif/ADD_MAPPINGS\";\nconst addMapping = createAction(ADD_MAPPING)();\nconst addMappings = createAction(ADD_MAPPINGS)();\nconst mappingActions = { addMapping, addMappings };\n\nconst SET_META_VALUE = \"@iiif/SET_META_VALUE\";\nconst SET_META_VALUE_DYNAMIC = \"@iiif/SET_META_VALUE_DYNAMIC\";\nconst UNSET_META_VALUE = \"@iiif/UNSET_META_VALUE\";\nconst setMetaValue = createAction(SET_META_VALUE)();\nconst setMetaValueDynamic = createAction(SET_META_VALUE_DYNAMIC)();\nconst unsetMetaValue = createAction(UNSET_META_VALUE)();\nconst metaActions = {\n setMetaValue,\n setMetaValueDynamic,\n unsetMetaValue\n};\n\nconst RESOURCE_ERROR = \"RESOURCE_ERROR\";\nconst RESOURCE_LOADING = \"RESOURCE_LOADING\";\nconst RESOURCE_READY = \"RESOURCE_READY\";\nconst REQUEST_RESOURCE = \"@iiif/REQUEST_RESOURCE\";\nconst REQUEST_ERROR = \"@iiif/REQUEST_ERROR\";\nconst REQUEST_MISMATCH = \"@iiif/REQUEST_MISMATCH\";\nconst REQUEST_COMPLETE = \"@iiif/REQUEST_COMPLETE\";\nconst REQUEST_OFFLINE_RESOURCE = \"@iiif/REQUEST_OFFLINE_RESOURCE\";\nconst requestResource = createAction(REQUEST_RESOURCE)();\nconst requestError = createAction(REQUEST_ERROR)();\nconst requestMismatch = createAction(REQUEST_MISMATCH)();\nconst requestComplete = createAction(REQUEST_COMPLETE)();\nconst requestOfflineResource = createAction(REQUEST_OFFLINE_RESOURCE)();\nconst requestActions = {\n requestResource,\n requestError,\n requestMismatch,\n requestComplete,\n requestOfflineResource\n};\n\nconst BATCH_ACTIONS = \"@iiif/BATCH\";\nconst BATCH_IMPORT = \"@iiif/BATCH_IMPORT\";\nconst batchActions = createAction(BATCH_ACTIONS)();\nconst batchImport = createAction(BATCH_IMPORT)();\n\nexport { ADD_MAPPING, ADD_MAPPINGS, ADD_REFERENCE, BATCH_ACTIONS, BATCH_IMPORT, IMPORT_ENTITIES, MODIFY_ENTITY_FIELD, REMOVE_REFERENCE, REORDER_ENTITY_FIELD, REQUEST_COMPLETE, REQUEST_ERROR, REQUEST_MISMATCH, REQUEST_OFFLINE_RESOURCE, REQUEST_RESOURCE, RESOURCE_ERROR, RESOURCE_LOADING, RESOURCE_READY, SET_META_VALUE, SET_META_VALUE_DYNAMIC, UNSET_META_VALUE, addMapping, addMappings, addReference, batchActions, batchImport, entityActions, importEntities, mappingActions, metaActions, modifyEntityField, removeReference, reorderEntityField, requestActions, requestComplete, requestError, requestMismatch, requestOfflineResource, requestResource };\n","import { useVault } from './useVault';\nimport { useMemo } from 'react';\nimport { ReduxStore } from '@iiif/vault';\n\nexport function useDispatch(): ReduxStore['dispatch'] {\n const vault = useVault();\n const store = vault.getStore();\n\n return useMemo(() => {\n return (action: any) => store.dispatch(action);\n }, [store]);\n}\n","import { useCallback, useLayoutEffect, useMemo, useRef } from 'react';\nimport { Annotation, AnnotationNormalized, AnnotationPageNormalized } from '@iiif/presentation-3';\nimport { useVault } from './useVault';\nimport { useVaultSelector } from './useVaultSelector';\nimport { entityActions } from '@iiif/vault/actions';\nimport { useDispatch } from './useDispatch';\nimport { Vault } from '@iiif/vault';\n\nexport interface VaultActivatedAnnotation {\n __vault?: Vault;\n bindToVault(vault: Vault): void;\n source: string | { id: string };\n}\n\nfunction isVaultActivated(obj: any): obj is VaultActivatedAnnotation {\n return typeof obj !== 'string' && obj && obj.bindToVault;\n}\n\nexport function useVirtualAnnotationPage() {\n const vault = useVault();\n const sources = useRef<Record<any, any>>([]);\n const dispatch = useDispatch();\n const virtualId = useMemo(() => {\n return `vault://annotation-page/${new Date().getTime()}/${Math.round(Math.random() * 1000000000).toString(16)}`;\n }, []);\n\n useLayoutEffect(() => {\n const page: AnnotationPageNormalized = {\n id: virtualId,\n type: 'AnnotationPage',\n behavior: [],\n motivation: null,\n label: null,\n thumbnail: [],\n summary: null,\n requiredStatement: null,\n metadata: [],\n rights: null,\n provider: [],\n items: [],\n seeAlso: [],\n homepage: [],\n logo: [],\n rendering: [],\n service: [],\n };\n\n dispatch(\n entityActions.importEntities({\n entities: {\n AnnotationPage: {\n [page.id]: page,\n },\n },\n })\n );\n }, [virtualId]);\n\n const fullPage: AnnotationPageNormalized | null = useVaultSelector(\n (state) => (virtualId ? state.iiif.entities.AnnotationPage[virtualId] : null),\n [virtualId]\n );\n\n const addAnnotation = useCallback(\n (id: string | Annotation | VaultActivatedAnnotation | AnnotationNormalized, atIndex?: number) => {\n if (virtualId) {\n if (isVaultActivated(id)) {\n const display = id;\n if (!display.__vault) {\n // First bind to vault.\n display.bindToVault(vault);\n }\n id = typeof display.source === 'string' ? display.source : display.source.id;\n sources.current[id] = display;\n } else if (typeof id !== 'string') {\n id = id.id;\n }\n\n const full: AnnotationPageNormalized = vault.get({ id: virtualId, type: 'AnnotationPage' });\n const annotation: AnnotationNormalized = vault.get({ id, type: 'Annotation' });\n if (full && annotation) {\n if (!full.items.find((r: any) => r.id === annotation.id)) {\n dispatch(\n entityActions.addReference({\n id: virtualId,\n type: 'AnnotationPage',\n key: 'items',\n reference: {\n id,\n type: 'Annotation',\n },\n index: atIndex,\n })\n );\n }\n }\n }\n },\n [virtualId]\n );\n const removeAnnotation = useCallback(\n (id: string | Annotation | VaultActivatedAnnotation | AnnotationNormalized) => {\n if (virtualId) {\n if (isVaultActivated(id)) {\n id = typeof id.source === 'string' ? id.source : id.source.id;\n } else if (typeof id !== 'string') {\n id = id.id;\n }\n\n if (sources.current[id]) {\n sources.current[id].beforeRemove();\n }\n\n const full: AnnotationPageNormalized = vault.get({ id: virtualId, type: 'AnnotationPage' });\n if (full) {\n dispatch(\n entityActions.removeReference({\n id: virtualId,\n type: 'AnnotationPage',\n key: 'items',\n reference: {\n id,\n type: 'Annotation',\n },\n })\n );\n }\n }\n },\n [virtualId]\n );\n\n return [\n fullPage,\n {\n addAnnotation,\n removeAnnotation,\n },\n ] as const;\n}\n","import { Annotation, AnnotationNormalized, AnnotationPageNormalized } from '@iiif/presentation-3';\nimport React, { createContext, useContext, useMemo } from 'react';\nimport { useVirtualAnnotationPage, VaultActivatedAnnotation } from './useVirtualAnnotationPage';\n\nconst VirtualAnnotationPageContext = createContext<{\n fullPage: AnnotationPageNormalized | null;\n addAnnotation: (\n id: string | Annotation | VaultActivatedAnnotation | AnnotationNormalized,\n atIndex?: number | undefined\n ) => void;\n removeAnnotation: (id: string | Annotation | VaultActivatedAnnotation | AnnotationNormalized) => void;\n} | null>(null);\n\nexport function useVirtualAnnotationPageContext() {\n const ctx = useContext(VirtualAnnotationPageContext);\n\n return [\n ctx!.fullPage,\n {\n addAnnotation: ctx!.addAnnotation,\n removeAnnotation: ctx!.removeAnnotation,\n },\n ] as const;\n}\n\nexport function VirtualAnnotationProvider({ children }: { children: any }) {\n const [fullPage, { addAnnotation, removeAnnotation }] = useVirtualAnnotationPage();\n\n return (\n <VirtualAnnotationPageContext.Provider\n value={useMemo(() => ({ fullPage, addAnnotation, removeAnnotation }), [fullPage])}\n >\n {children}\n </VirtualAnnotationPageContext.Provider>\n );\n}\n","import React from 'react';\n\nexport function DefaultCanvasFallback({ width, style, height }: { width?: number; height?: number; style?: any }) {\n return <div style={{ width, height, minHeight: 500, ...(style || {}), background: '#f9f9f9' }}>Unknown error</div>;\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","import { createContext, useContext } from 'react';\nimport { Preset } from '@atlas-viewer/atlas';\n\nexport const ViewerPresetContext = createContext<Preset | null | undefined>(null);\n\nexport function useViewerPreset() {\n return useContext(ViewerPresetContext);\n}\n","import React, { ReactNode, useContext, useLayoutEffect, useMemo, useRef } from 'react';\nimport { createRoot, Root } from 'react-dom/client';\nimport { useViewerPreset, ViewerPresetContext } from './ViewerPresetContext';\n\nexport const PortalContext = React.createContext<HTMLDivElement | null>(null);\nexport const OverlayPortalContext = React.createContext<HTMLDivElement | null>(null);\n\nexport function CanvasPortal({ children, overlay }: { children: ReactNode; overlay?: boolean }) {\n const htmlElement = useContext(overlay ? OverlayPortalContext : PortalContext);\n const rootRef = useRef<Root | null>(null);\n const preset = useViewerPreset();\n\n useLayoutEffect(() => {\n if (!rootRef.current) {\n rootRef.current = htmlElement ? createRoot(htmlElement) : null;\n }\n }, []);\n\n useLayoutEffect(() => {\n return () => {\n rootRef.current?.unmount();\n rootRef.current = null;\n };\n }, []);\n\n useLayoutEffect(() => {\n if (rootRef.current) {\n rootRef.current.render(<ViewerPresetContext.Provider value={preset}>{children}</ViewerPresetContext.Provider>);\n }\n }, [children, preset]);\n\n return null;\n}\n","import React, { ReactNode, useLayoutEffect, useRef, useState } from 'react';\nimport { AtlasAuto, Preset } from '@atlas-viewer/atlas';\nimport { ErrorBoundary } from 'react-error-boundary';\nimport { ContextBridge, useContextBridge } from '../context/ContextBridge';\nimport { VirtualAnnotationProvider } from '../hooks/useVirtualAnnotationPageContext';\nimport { AtlasProps } from '@atlas-viewer/atlas/dist/types/modules/react-reconciler/Atlas';\nimport { DefaultCanvasFallback } from './render/DefaultCanvasFallback';\nimport { OverlayPortalContext, PortalContext } from '../context/PortalContext';\nimport { ViewerPresetContext } from '../context/ViewerPresetContext';\n\nexport function Viewer({\n children,\n errorFallback,\n outerContainerProps = {},\n ...props\n}: AtlasProps & {\n height?: number | string;\n width?: number | string;\n resizeHash?: number;\n containerProps?: any;\n outerContainerProps?: any;\n aspectRatio?: number;\n errorFallback?: any;\n} & { children: ReactNode }) {\n const portal = useRef<HTMLDivElement>(null);\n const [portalElement, setPortalElement] = useState<HTMLDivElement | null>();\n const [viewerPreset, setViewerPreset] = useState<Preset | null>();\n const overlayPortal = useRef<HTMLDivElement>(null);\n const [overlayPortalElement, setOverlayPortalElement] = useState<HTMLDivElement | null>();\n const bridge = useContextBridge();\n const ErrorFallback: any = errorFallback || DefaultCanvasFallback;\n\n useLayoutEffect(() => {\n setPortalElement(portal.current);\n setOverlayPortalElement(overlayPortal.current);\n }, []);\n\n return (\n <ErrorBoundary fallbackRender={() => <ErrorFallback {...props} />}>\n <AtlasAuto\n {...props}\n containerProps={{ style: { position: 'relative' }, ...(props.containerProps || {}) }}\n htmlChildren={<div ref={overlayPortal} />}\n onCreated={(preset: any) => {\n setViewerPreset(preset);\n if (props.onCreated) {\n props.onCreated(preset);\n }\n }}\n >\n <ViewerPresetContext.Provider value={viewerPreset}>\n <PortalContext.Provider value={portalElement as any}>\n <OverlayPortalContext.Provider value={overlayPortalElement as any}>\n <ContextBridge bridge={bridge}>\n <VirtualAnnotationProvider>{children}</VirtualAnnotationProvider>\n </ContextBridge>\n </OverlayPortalContext.Provider>\n </PortalContext.Provider>\n </ViewerPresetContext.Provider>\n </AtlasAuto>\n <div ref={portal} />\n </ErrorBoundary>\n );\n}\n","function createEventsHelper(vault) {\n return {\n addEventListener(resource, event, listener, scope) {\n if (!resource) {\n return;\n }\n vault.setMetaValue([resource.id, \"eventManager\", event], (registeredCallbacks) => {\n const callbacks = registeredCallbacks || [];\n for (const registered of callbacks) {\n if (registered.callback === listener) {\n return callbacks;\n }\n }\n return [...callbacks, { callback: listener, scope }];\n });\n return listener;\n },\n removeEventListener(resource, event, listener) {\n if (!resource) {\n return;\n }\n vault.setMetaValue([resource.id, \"eventManager\", event], (registeredCallbacks) => {\n return (registeredCallbacks || []).filter((registeredCallback) => registeredCallback.callback !== listener);\n });\n },\n getListenersAsProps(resourceOrId, scope) {\n const resource = typeof resourceOrId === \"string\" ? { id: resourceOrId } : resourceOrId;\n if (!resource || !resource.id) {\n return {};\n }\n const hooks = vault.getResourceMeta(resource.id, \"eventManager\");\n const props = {};\n if (hooks && resource) {\n for (const hook of Object.keys(hooks)) {\n props[hook] = (e) => {\n const fullResource = vault.get(resource);\n for (const { callback, scope: _scope } of hooks[hook] || []) {\n if (!_scope || scope && _scope.indexOf(scope) !== -1) {\n callback(e, fullResource);\n }\n }\n };\n }\n }\n return props;\n }\n };\n}\nexport { createEventsHelper };\n//# sourceMappingURL=events.mjs.map\n","import { useVault } from './useVault';\nimport { useVaultSelector } from './useVaultSelector';\nimport { useMemo } from 'react';\nimport { NormalizedEntity } from '@iiif/vault';\nimport { Reference } from '@iiif/presentation-3';\nimport { createEventsHelper } from '@iiif/vault-helpers/events';\n\nexport function useResourceEvents<T extends NormalizedEntity>(resource?: Reference, scope?: string[]) {\n const vault = useVault();\n const helper = useMemo(() => createEventsHelper(vault), [vault]);\n\n const hooks = useVaultSelector(() => {\n if (resource && resource.id) {\n return vault.getResourceMeta(resource.id, 'eventManager');\n }\n return null;\n }, [resource]);\n\n return useMemo(() => {\n return resource ? helper.getListenersAsProps(resource, scope) : {};\n }, [hooks, resource, vault, scope]);\n}\n","function createStylesHelper(vault) {\n return {\n applyStyles(resource, scope, styles) {\n const id = typeof resource === \"string\" ? resource : resource.id;\n return vault.setMetaValue([id, \"styles\", scope], styles);\n },\n getAppliedStyles(resource) {\n const id = typeof resource === \"string\" ? resource : resource.id;\n return vault.getResourceMeta(id, \"styles\");\n }\n };\n}\nexport { createStylesHelper };\n//# sourceMappingURL=styles.mjs.map\n","import { useVault } from './useVault';\nimport { useMemo } from 'react';\nimport { Reference } from '@iiif/presentation-3';\nimport { createStylesHelper } from '@iiif/vault-helpers/styles';\nimport { useVaultSelector } from './useVaultSelector';\n\nexport function useStyles<Style extends Record<string, Record<string, any>>>(\n resource: undefined | Reference<any>\n): Style;\nexport function useStyles<Style extends Record<string, any>>(\n resource: undefined | Reference<any>,\n scope: string\n): Style;\nexport function useStyles<Style>(resource?: Reference, scope?: string): Style {\n const vault = useVault();\n const helper = useMemo(() => createStylesHelper(vault), [vault]);\n\n return useVaultSelector(() => {\n if (!resource) {\n return null;\n }\n\n const styles = helper.getAppliedStyles(resource.id);\n return styles ? (scope ? styles[scope] : styles) : undefined;\n }, [resource, scope]) as Style;\n}\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst BOX_SELECTOR = /&?(xywh=)?(pixel:|percent:|pct:)?([0-9]+(?:\\.[0-9]+)?),([0-9]+(?:\\.[0-9]+)?),([0-9]+(?:\\.[0-9]+)?),([0-9]+(?:\\.[0-9]+)?)/;\nconst TEMPORAL_SELECTOR = /&?(t=)(npt:)?([0-9]+(.[0-9]+)?)?(,([0-9]+(.[0-9]+)?))?/;\nfunction parseSelector(source) {\n if (Array.isArray(source)) {\n return source.reduce((data, nextSource) => {\n const { selector, selectors } = parseSelector(nextSource);\n if (selector) {\n if (!data.selector) {\n data.selector = selector;\n }\n data.selectors.push(...selectors);\n }\n return data;\n }, {\n selector: null,\n selectors: []\n });\n }\n if (!source) {\n return {\n selector: null,\n selectors: []\n };\n }\n if (typeof source === \"string\") {\n const [id, fragment] = source.split(\"#\");\n if (!fragment) {\n return {\n selector: null,\n selectors: []\n };\n }\n return parseSelector({ type: \"FragmentSelector\", value: fragment });\n }\n if (source.type === \"PointSelector\" && (source.t || source.t === 0)) {\n const selector = {\n type: \"TemporalSelector\",\n temporal: {\n startTime: source.t\n }\n };\n return {\n selector,\n selectors: [selector]\n };\n }\n if (source.type === \"FragmentSelector\") {\n const matchBoxSelector = BOX_SELECTOR.exec(source.value);\n if (matchBoxSelector) {\n const selector = {\n type: \"BoxSelector\",\n spatial: {\n unit: matchBoxSelector[2] === \"percent:\" || matchBoxSelector[2] === \"pct:\" ? \"percent\" : \"pixel\",\n x: parseFloat(matchBoxSelector[3]),\n y: parseFloat(matchBoxSelector[4]),\n width: parseFloat(matchBoxSelector[5]),\n height: parseFloat(matchBoxSelector[6])\n }\n };\n return {\n selector,\n selectors: [selector]\n };\n }\n const matchTimeSelector = source.value.match(TEMPORAL_SELECTOR);\n if (matchTimeSelector) {\n const selector = {\n type: \"TemporalSelector\",\n temporal: {\n startTime: matchTimeSelector[4] ? parseFloat(matchTimeSelector[4]) : 0,\n endTime: matchTimeSelector[7] ? parseFloat(matchTimeSelector[7]) : void 0\n }\n };\n return {\n selector,\n selectors: [selector]\n };\n }\n return {\n selector: null,\n selectors: []\n };\n }\n return {\n selector: null,\n selectors: []\n };\n}\nfunction expandTarget(target, options = {}) {\n if (Array.isArray(target)) {\n return expandTarget(target[0]);\n }\n if (typeof target === \"string\") {\n const [id, fragment] = target.split(\"#\");\n if (!fragment) {\n return {\n type: \"SpecificResource\",\n source: { id, type: options.typeMap && options.typeMap[id] || \"Unknown\" },\n selector: null,\n selectors: []\n };\n }\n return expandTarget({\n type: \"SpecificResource\",\n source: { id, type: \"Unknown\" },\n selector: {\n type: \"FragmentSelector\",\n value: fragment\n }\n });\n }\n if (target.type === \"Choice\" || target.type === \"List\" || target.type === \"Composite\" || target.type === \"Independents\") {\n return expandTarget(target.items[0]);\n }\n if (target.type === \"SpecificResource\") {\n if (target.source.type === \"Canvas\" && target.source.partOf && typeof target.source.partOf === \"string\") {\n target.source.partOf = [\n {\n id: target.source.partOf,\n type: \"Manifest\"\n }\n ];\n }\n const { selector, selectors } = target.selector ? parseSelector(target.selector) : { selector: null, selectors: [] };\n return {\n type: \"SpecificResource\",\n source: target.source,\n selector,\n selectors\n };\n }\n if (target.id) {\n if (target.type === \"Canvas\" && target.partOf && typeof target.partOf === \"string\") {\n target.partOf = [\n {\n id: target.partOf,\n type: \"Manifest\"\n }\n ];\n }\n const [id, fragment] = target.id.split(\"#\");\n if (!fragment) {\n return {\n type: \"SpecificResource\",\n source: __spreadProps(__spreadValues({}, target), {\n id\n }),\n selector: null,\n selectors: []\n };\n }\n return expandTarget({\n type: \"SpecificResource\",\n source: __spreadProps(__spreadValues({}, target), {\n id\n }),\n selector: {\n type: \"FragmentSelector\",\n value: fragment\n }\n });\n }\n return {\n type: \"SpecificResource\",\n source: target,\n selector: null,\n selectors: []\n };\n}\nexport { expandTarget, parseSelector };\n//# sourceMappingURL=annotation-targets.mjs.map\n","import { useResourceContext } from '../context/ResourceContext';\nimport { AnnotationNormalized } from '@iiif/presentation-3';\nimport { useMemo } from 'react';\nimport { useVaultSelector } from './useVaultSelector';\nimport { expandTarget } from '@iiif/vault-helpers/annotation-targets';\nimport { useVault } from './useVault';\n\nexport function useAnnotation(options?: { id: string }): AnnotationNormalized | undefined;\nexport function useAnnotation<T>(\n options?: { id: string; selector: (annotation: AnnotationNormalized) => T },\n deps?: any[]\n): T | undefined;\nexport function useAnnotation<T = AnnotationNormalized>(\n options: {\n id?: string;\n selector?: (annotation: AnnotationNormalized) => T;\n } = {},\n deps: any[] = []\n): AnnotationNormalized | T | undefined {\n const { id, selector } = options;\n const ctx = useResourceContext();\n const vault = useVault();\n const annotationId = id ? id : ctx.annotation;\n\n const annotation = useVaultSelector(\n (s) => (annotationId ? s.iiif.entities.Annotation[annotationId] : undefined),\n [annotationId]\n );\n\n const body = useVaultSelector(\n (s) =>\n annotation && annotation.body\n ? annotation.body\n .map((singleBody) => (singleBody ? s.iiif.entities[singleBody.type][singleBody.id] : null))\n .filter(Boolean)\n : [],\n [annotation]\n );\n\n return useMemo(() => {\n if (!annotation) {\n return undefined;\n }\n\n const newAnnotation: any = {\n ...annotation,\n body,\n target: expandTarget(annotation.target as any, { typeMap: vault.getState().iiif.mapping }),\n };\n\n if (selector) {\n return selector(newAnnotation);\n }\n return newAnnotation;\n }, [annotation, selector, body, ...deps]);\n}\n","import { useResourceContext } from '../context/ResourceContext';\nimport { CanvasNormalized } from '@iiif/presentation-3';\nimport { useMemo } from 'react';\nimport { useVaultSelector } from './useVaultSelector';\n\nexport function useCanvas(options?: { id: string }): CanvasNormalized | undefined;\nexport function useCanvas<T>(\n options?: { id: string; selector: (canvas: CanvasNormalized) => T },\n deps?: any[]\n): T | undefined;\nexport function useCanvas<T = CanvasNormalized>(\n options: {\n id?: string;\n selector?: (canvas: CanvasNormalized) => T;\n } = {},\n deps: any[] = []\n): CanvasNormalized | T | undefined {\n const { id, selector } = options;\n const ctx = useResourceContext();\n const canvasId = id ? id : ctx.canvas;\n\n const canvas = useVaultSelector((s) => (canvasId ? s.iiif.entities.Canvas[canvasId] : undefined), [canvasId]);\n\n return useMemo(() => {\n if (!canvas) {\n return undefined;\n }\n if (selector) {\n return selector(canvas);\n }\n return canvas;\n }, [canvas, selector, ...deps]);\n}\n","import { BoxStyle, mergeStyles, RegionHighlight } from '@atlas-viewer/atlas';\nimport { useResourceEvents } from '../../hooks/useResourceEvents';\nimport { useStyles } from '../../hooks/useStyles';\nimport React, { FC, useMemo } from 'react';\nimport { useAnnotation } from '../../hooks/useAnnotation';\nimport { useCanvas } from '../../hooks/useCanvas';\n\nexport const RenderAnnotation: FC<{ id: string; className?: string; style?: BoxStyle; interactive?: boolean }> = ({\n id,\n style: defaultStyle,\n className,\n interactive,\n}) => {\n const annotation = useAnnotation({ id });\n const style = useStyles<BoxStyle>(annotation, 'atlas');\n const html = useStyles<{ className?: string; href?: string; title?: string; target?: string }>(annotation, 'html');\n const events = useResourceEvents(annotation as any, ['atlas']);\n const canvas = useCanvas();\n\n const allStyles = useMemo(() => {\n return mergeStyles(defaultStyle, style);\n }, [defaultStyle, style]);\n\n const isValid =\n canvas &&\n annotation &&\n annotation.target &&\n (annotation.target as any).selector &&\n (annotation.target as any).selector.type === 'BoxSelector' &&\n (annotation.target as any).source &&\n (annotation.target as any).source.id === canvas.id;\n\n if (!isValid) {\n return null;\n }\n\n return (\n <RegionHighlight\n id={annotation.id}\n isEditing={true}\n region={(annotation.target as any).selector.spatial}\n style={allStyles}\n className={html?.className || className}\n interactive={!!(html?.href || interactive)}\n href={html?.href || null}\n title={html?.title || null}\n hrefTarget={html?.target || null}\n {...events}\n />\n );\n};\n","import { AnnotationPage, AnnotationPageNormalized } from '@iiif/presentation-3';\nimport { RenderAnnotation } from './Annotation';\nimport { BoxStyle } from '@atlas-viewer/atlas';\nimport { useStyles } from '../../hooks/useStyles';\nimport { useVaultSelector } from '../../hooks/useVaultSelector';\nimport React, { FC, Fragment } from 'react';\n\nexport const RenderAnnotationPage: FC<{ page: AnnotationPage | AnnotationPageNormalized; className?: string }> = ({\n className,\n page,\n}) => {\n const style = useStyles<BoxStyle>(page, 'atlas');\n const html = useStyles<{ className?: string }>(page, 'html');\n\n useVaultSelector((state) => (page.id ? state.iiif.entities.AnnotationPage[page.id] : null), []);\n\n return (\n <Fragment>\n {page.items?.map((annotation) => {\n return (\n <RenderAnnotation\n key={annotation.id}\n id={annotation.id}\n style={style}\n className={html?.className || className}\n />\n );\n })}\n </Fragment>\n );\n};\n","import { ImageCandidate } from '@atlas-viewer/iiif-image-api';\nimport React, { Fragment, ReactNode } from 'react';\nimport { TileSet } from '@atlas-viewer/atlas';\nimport { ImageWithOptionalService } from '../../features/rendering-strategy/resource-types';\n\nexport function RenderImage({\n id,\n image,\n thumbnail,\n isStatic,\n x = 0,\n y = 0,\n annotations,\n children,\n}: {\n id: string;\n image: ImageWithOptionalService;\n thumbnail?: ImageCandidate;\n isStatic?: boolean;\n x?: number;\n y?: number;\n annotations?: ReactNode;\n children?: ReactNode;\n}) {\n return (\n <Fragment key={id}>\n {!image.service ? (\n <Fragment key=\"no-service\">\n <world-image\n uri={image.id}\n target={image.target.spatial}\n display={\n image.width && image.height\n ? {\n width: image.width,\n height: image.height,\n }\n : undefined\n }\n />\n {annotations}\n {children}\n </Fragment>\n ) : (\n <Fragment key=\"service\">\n <TileSet\n tiles={{\n id: image.service.id || image.service['@id'] || 'unknown',\n height: image.height as number,\n width: image.width as number,\n imageService: image.service as any,\n thumbnail: thumbnail && thumbnail.type === 'fixed' ? thumbnail : undefined,\n }}\n x={image.target?.spatial.x + x}\n y={image.target?.spatial.y + y}\n width={image.target?.spatial.width}\n height={image.target?.spatial.height}\n />\n {annotations}\n {children}\n </Fragment>\n )}\n </Fragment>\n );\n}\n","import {AnnotationNormalized, ContentResource, IIIFExternalWebResource, SpecificResource,} from '@iiif/presentation-3';\nimport {Vault} from '@iiif/vault';\nimport {ChoiceDescription} from './choice-types';\nimport {UseRenderingStrategy} from '../../hooks/useRenderingStrategy';\n\n/**\n * Parse specific resource.\n *\n * This could be expanded to support pulling out more from the specific resource.\n *\n * @param resource\n */\nexport function parseSpecificResource(resource: ContentResource) {\n if (resource.type === 'SpecificResource') {\n return [resource.source, { selector: resource.selector }];\n }\n\n return [resource, { selector: null }];\n}\n\nexport interface Paintables {\n choice: ChoiceDescription | null;\n types: string[];\n items: Array<{\n type: string;\n resource: IIIFExternalWebResource | SpecificResource;\n target: any;\n selector: any;\n }>;\n}\n\nexport function getPaintables(\n vault: Vault,\n paintingAnnotations: AnnotationNormalized[],\n enabledChoices: string[]\n): Paintables {\n const types: string[] = [];\n let choice: Paintables['choice'] = null;\n const items: Paintables['items'] = [];\n\n for (const annotation of paintingAnnotations) {\n const bodies = vault.get<ContentResource>(annotation.body);\n for (const unknownBody of bodies) {\n const [body, { selector }] = parseSpecificResource(unknownBody);\n const type = (body.type || 'unknown').toLowerCase();\n\n // Choice\n if (type === 'choice') {\n const nestedBodies = vault.get<ContentResource>(body.items) as ContentResource[];\n\n // Which are active? By default the first, but we could push multiple here.\n const selected = enabledChoices.length\n ? enabledChoices.map((cid) => nestedBodies.find((b) => b.id === cid)).filter(Boolean)\n : [nestedBodies[0]];\n\n if (selected.length === 0) {\n selected.push(nestedBodies[0]);\n }\n\n // Store choice.\n choice = {\n type: 'single-choice',\n items: nestedBodies.map((b) => ({\n id: b.id,\n label: (b as any).label as any,\n selected: selected.indexOf(b) !== -1,\n })) as any[],\n label: (unknownBody as any).label,\n };\n\n // @todo insert in the right order.\n bodies.push(...(selected as any[]));\n\n continue;\n }\n\n if (types.indexOf(type) === -1) {\n types.push(type);\n }\n\n items.push({\n type: type,\n resource: body as IIIFExternalWebResource,\n target: annotation.target,\n selector,\n });\n }\n }\n\n return {\n types,\n items,\n choice,\n };\n}\n\nexport const emptyActions = {\n makeChoice: () => {\n // no-op\n },\n};\n\nexport const unknownResponse: UseRenderingStrategy[0] = { type: 'unknown' };\n\nexport const unsupportedStrategy = (reason: string): UseRenderingStrategy[0] => {\n return { type: 'unknown', reason, annotations: { pages: [] } };\n};\n\n","import { useResourceContext } from '../context/ResourceContext';\nimport { ManifestNormalized } from '@iiif/presentation-3';\nimport { useVault } from './useVault';\nimport { useMemo } from 'react';\nimport { useVaultSelector } from './useVaultSelector';\n\nexport function useManifest(options?: { id: string }): ManifestNormalized | undefined;\nexport function useManifest<T>(\n options?: { id: string; selector: (manifest: ManifestNormalized) => T },\n deps?: any[]\n): T | undefined;\nexport function useManifest<T = ManifestNormalized>(\n options: {\n id?: string;\n selector?: (manifest: ManifestNormalized) => T;\n } = {},\n deps: any[] = []\n): ManifestNormalized | T | undefined {\n const { id, selector } = options;\n const ctx = useResourceContext();\n const vault = useVault();\n const manifestId = id ? id : ctx.manifest;\n\n const manifest = useVaultSelector(\n (s) => (manifestId ? s.iiif.entities.Manifest[manifestId] : undefined),\n [manifestId]\n );\n\n return useMemo(() => {\n if (!manifest) {\n return undefined;\n }\n if (selector) {\n return selector(manifest);\n }\n return manifest;\n }, [manifest, selector, ...deps]);\n}\n","import { useVaultSelector } from './useVaultSelector';\nimport { IIIFStore } from '@iiif/vault';\n\nfunction getMeta(state: IIIFStore, resourceId: string) {\n const resourceMeta = state?.iiif?.meta[resourceId];\n if (!resourceMeta) {\n return null;\n }\n return resourceMeta.annotationPageManager as any;\n}\n\nexport function useEnabledAnnotationPageIds(resourceId?: string, availablePageIds?: string[]) {\n return useVaultSelector(\n (state) => {\n const pageIds: string[] = [];\n if (!resourceId) {\n return pageIds;\n }\n const allAnnotationListIds = Object.keys(state.iiif.entities.AnnotationPage);\n for (const annotationListId of allAnnotationListIds) {\n if (!availablePageIds || availablePageIds.indexOf(annotationListId) !== -1) {\n const annotationListMeta = getMeta(state, annotationListId);\n if (annotationListMeta && annotationListMeta.views && annotationListMeta.views[resourceId]) {\n pageIds.push(annotationListId);\n }\n }\n }\n\n return pageIds;\n },\n [resourceId, availablePageIds]\n );\n}\n","import { CanvasNormalized, ManifestNormalized } from '@iiif/presentation-3';\n\nexport function flattenAnnotationPageIds({\n canvas,\n manifest,\n all,\n canvases,\n}: {\n manifest?: ManifestNormalized;\n canvas?: CanvasNormalized;\n canvases?: CanvasNormalized[];\n all?: boolean;\n}) {\n const foundIds: string[] = [];\n\n if (manifest) {\n for (const page of manifest.annotations) {\n if (foundIds.indexOf(page.id) === -1) {\n foundIds.push(page.id);\n }\n }\n }\n\n if (all) {\n if (canvases && canvases.length) {\n for (const canvas_ of canvases) {\n for (const page of canvas_.annotations) {\n if (foundIds.indexOf(page.id) === -1) {\n foundIds.push(page.id);\n }\n }\n }\n }\n } else if (canvas) {\n for (const page of canvas.annotations) {\n if (foundIds.indexOf(page.id) === -1) {\n foundIds.push(page.id);\n }\n }\n }\n\n // Remove enabled page IDs for now.\n // for (const enabledPage of enabledPageIds) {\n // if (foundIds.indexOf(enabledPage) === -1) {\n // foundIds.push(enabledPage);\n // }\n // }\n\n return foundIds;\n}\n","import { useCallback, useMemo } from 'react';\nimport { useVault } from './useVault';\nimport { useManifest } from './useManifest';\nimport { useCanvas } from './useCanvas';\nimport { useVisibleCanvases } from '../context/VisibleCanvasContext';\nimport { useEnabledAnnotationPageIds } from './useEnabledAnnotationPageIds';\nimport { flattenAnnotationPageIds } from '../utility/flatten-annotation-page-ids';\nimport { IIIFStore } from '@iiif/vault';\n\ntype AnnotationPageResourceMap = {\n [id: string]: boolean;\n};\n\ntype AnnotationPageManager = {\n views: AnnotationPageResourceMap;\n};\n\nfunction getMeta(state: IIIFStore, resourceId: string) {\n const resourceMeta = state?.iiif?.meta[resourceId];\n if (!resourceMeta) {\n return null;\n }\n return resourceMeta.annotationPageManager as AnnotationPageManager;\n}\n\nexport function useAnnotationPageManager(resourceId?: string, options: { all?: boolean } = {}) {\n const vault = useVault();\n const manifest = useManifest();\n const canvas = useCanvas();\n const canvases = useVisibleCanvases();\n const availablePageIds = useMemo(() => {\n return flattenAnnotationPageIds({\n all: options.all,\n manifest,\n canvas,\n canvases,\n });\n }, [options.all, canvas, canvases, manifest]);\n const enabledPageIds = useEnabledAnnotationPageIds(resourceId, options.all ? undefined : availablePageIds);\n\n const setPageDisabled = useCallback(\n (deselectId: string) => {\n if (!resourceId) {\n return;\n }\n vault.setMetaValue<AnnotationPageResourceMap>(\n [deselectId, 'annotationPageManager', 'views'],\n (existingResources: AnnotationPageResourceMap | undefined) => {\n if (existingResources && !existingResources[resourceId]) {\n return existingResources;\n }\n\n return {\n ...(existingResources || {}),\n [resourceId]: false,\n };\n }\n );\n },\n [resourceId, vault]\n );\n\n const setPageEnabled = useCallback(\n (id: string, opt: { deselectOthers?: boolean } = {}) => {\n if (!resourceId) {\n return;\n }\n const state = vault.getState();\n const toDeselect = [];\n\n // Deselect these.\n if (opt?.deselectOthers) {\n const allAnnotationListIds = Object.keys(state.iiif.entities.AnnotationPage);\n for (const annotationPageId of allAnnotationListIds) {\n const annotationListMeta = getMeta(state, annotationPageId);\n if (annotationListMeta && annotationListMeta.views && annotationListMeta.views[resourceId]) {\n toDeselect.push(annotationPageId);\n }\n }\n }\n\n // Disable first.\n for (const deselectId of toDeselect) {\n setPageDisabled(deselectId);\n }\n\n // Then enable.\n vault.setMetaValue<AnnotationPageResourceMap>(\n [id, 'annotationPageManager', 'views'],\n (existingResources: AnnotationPageResourceMap | undefined) => {\n if (existingResources && existingResources[resourceId]) {\n return existingResources;\n }\n return {\n ...(existingResources || {}),\n [resourceId]: true,\n };\n }\n );\n },\n [resourceId, setPageDisabled, vault]\n );\n\n return {\n availablePageIds,\n enabledPageIds,\n setPageEnabled,\n setPageDisabled,\n };\n}\n","import { useVaultSelector } from './useVaultSelector';\n\nexport function useResources<Type>(ids: string[], type: string): Type[] {\n return useVaultSelector((state, vault) => vault.get<Type>(ids.map((id) => ({ id, type }))) as any, [ids, type]);\n}\n","import React, { useContext } from 'react';\nimport { ImageServiceLoader } from '@atlas-viewer/iiif-image-api';\n\nexport const ImageServiceLoaderContext = React.createContext<ImageServiceLoader>(new ImageServiceLoader());\n\nexport function useImageServiceLoader() {\n return useContext(ImageServiceLoaderContext);\n}\n","import { ImageService } from '@iiif/presentation-3';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { useImageServiceLoader } from '../context/ImageServiceLoaderContext';\n\nexport type ImageServiceLoaderType = (\n imageService: any | undefined,\n { height, width }: { height: number; width: number }\n) => ImageService | undefined;\n\nexport function useLoadImageService() {\n const loader = useImageServiceLoader();\n const [imageServiceStatus, setImageServiceStatus] = useState<Record<string, string>>({});\n const didUnmount = useRef(false);\n useEffect(() => {\n return () => {\n didUnmount.current = true;\n };\n }, []);\n const loadImageService = useCallback<ImageServiceLoaderType>(\n (imageService, { height, width }) => {\n if (imageService) {\n const imageServiceId = imageService.id || (imageService['@id'] as string);\n // We want to kick this off.\n const syncLoaded = loader.loadServiceSync({\n id: imageServiceId,\n width: imageService.width || width,\n height: imageService.height || height,\n source: imageService,\n });\n\n if (syncLoaded) {\n imageService = syncLoaded;\n } else if (!imageServiceStatus[imageServiceId]) {\n if (!didUnmount.current) {\n setImageServiceStatus((r) => {\n return {\n ...r,\n [imageServiceId]: 'loading',\n };\n });\n }\n loader\n .loadService({\n id: imageServiceId,\n width: imageService.width || width,\n height: imageService.height || height,\n })\n .then(() => {\n if (!didUnmount.current) {\n setImageServiceStatus((r) => {\n return {\n ...r,\n [imageServiceId]: 'done',\n };\n });\n }\n });\n }\n }\n return imageService;\n },\n [loader, imageServiceStatus]\n );\n\n return [loadImageService, imageServiceStatus] as const;\n}\n","// This is valid under a canvas context.\nimport { AnnotationNormalized, AnnotationPageNormalized } from '@iiif/presentation-3';\nimport { useCanvas } from './useCanvas';\nimport { useVaultSelector } from './useVaultSelector';\n\nexport function usePaintingAnnotations(options: { canvasId?: string } = {}): AnnotationNormalized[] {\n const canvas = useCanvas(options.canvasId ? { id: options.canvasId } : undefined);\n\n return useVaultSelector(\n (state, vault) => {\n if (!canvas) {\n return [];\n }\n const annotationPages = vault.get<AnnotationPageNormalized>(canvas.items);\n const flatAnnotations: AnnotationNormalized[] = [];\n for (const page of annotationPages) {\n flatAnnotations.push(...vault.get<AnnotationNormalized>(page.items));\n }\n return flatAnnotations;\n },\n [canvas]\n );\n}\n","import { useCallback, useMemo, useState } from 'react';\nimport { getPaintables } from '../features/rendering-strategy/rendering-utils';\nimport { useVault } from './useVault';\nimport { usePaintingAnnotations } from './usePaintingAnnotations';\n\nexport function usePaintables(options?: { defaultChoices?: string[] }, deps: any[] = []) {\n const vault = useVault();\n const paintingAnnotations = usePaintingAnnotations();\n const [enabledChoices, setEnabledChoices] = useState<string[]>(options?.defaultChoices || []);\n\n const paintables = useMemo(\n () => getPaintables(vault, paintingAnnotations, enabledChoices),\n [vault, paintingAnnotations, enabledChoices, ...deps]\n );\n\n const makeChoice = useCallback(\n (\n id: string,\n { deselectOthers = true, deselect = false }: { deselectOthers?: boolean; deselect?: boolean } = {}\n ) => {\n if (paintables.choice) {\n // Don't support multiple choice yet.\n if (paintables.choice.type !== 'single-choice') {\n throw new Error('Complex choice not supported yet');\n }\n\n setEnabledChoices((prevChoices) => {\n if (deselect) {\n const without = prevChoices.filter((e) => e !== id);\n\n if (without.length === 0) {\n const defaultId = paintables.items[0].resource.id;\n if (defaultId) {\n return [defaultId];\n } else {\n return [];\n }\n }\n\n return without;\n }\n\n if (deselectOthers) {\n return [id];\n }\n\n const newChoices = [...prevChoices];\n\n // Add the default ID.\n if (newChoices.length === 0 && paintables.items.length) {\n const defaultId = paintables.items[0].resource.id;\n if (defaultId) {\n newChoices.push(defaultId);\n }\n }\n\n if (prevChoices.indexOf(id) !== -1) {\n return prevChoices;\n }\n\n return [...prevChoices, id];\n });\n }\n },\n [paintables.choice]\n );\n\n const actions = { makeChoice };\n\n return [paintables, actions] as const;\n}\n","import { CanvasNormalized, IIIFExternalWebResource } from '@iiif/presentation-3';\nimport { ImageServiceLoaderType } from '../../hooks/useLoadImageService';\nimport { AnnotationPageDescription, ImageWithOptionalService } from './resource-types';\nimport { getImageServices } from '@atlas-viewer/iiif-image-api';\nimport { Paintables, unsupportedStrategy } from './rendering-utils';\nimport { ChoiceDescription } from './choice-types';\nimport { expandTarget, BoxSelector, SupportedSelectors } from '@iiif/vault-helpers/annotation-targets';\n\nexport type SingleImageStrategy = {\n type: 'images';\n image: ImageWithOptionalService;\n images: Array<ImageWithOptionalService>;\n choice?: ChoiceDescription;\n annotations?: AnnotationPageDescription;\n};\n\nexport function getImageStrategy(\n canvas: CanvasNormalized,\n paintables: Paintables,\n loadImageService: ImageServiceLoaderType\n) {\n const imageTypes: ImageWithOptionalService[] = [];\n for (const singleImage of paintables.items) {\n // SingleImageStrategy\n const resource: IIIFExternalWebResource =\n singleImage.resource && singleImage.resource.type === 'SpecificResource'\n ? singleImage.resource.source\n : singleImage.resource;\n\n // Validation.\n if (!resource.id) {\n // @todo we could skip this?\n return unsupportedStrategy('No resource Identifier');\n }\n\n let imageService = undefined;\n if (resource.service) {\n const imageServices = getImageServices(resource as any) as any[];\n if (imageServices[0]) {\n imageService = loadImageService(imageServices[0], canvas);\n }\n }\n\n const { selector: imageTarget, source } = expandTarget(singleImage.target);\n\n if (source.id !== canvas.id) {\n // Skip invalid targets.\n continue;\n }\n\n // Target is where it should be painted.\n const defaultTarget: BoxSelector = {\n type: 'BoxSelector',\n spatial: {\n x: 0,\n y: 0,\n width: canvas.width,\n height: canvas.height,\n },\n };\n\n const target: SupportedSelectors | null = imageTarget\n ? imageTarget.type === 'TemporalSelector'\n ? {\n type: 'TemporalBoxSelector',\n temporal: imageTarget.temporal,\n spatial: defaultTarget.spatial,\n }\n : imageTarget\n : null;\n\n // Support for cropping before painting an annotation.\n const defaultImageSelector = {\n type: 'BoxSelector',\n spatial: {\n x: 0,\n y: 0,\n width: canvas.width,\n height: canvas.height,\n },\n } as BoxSelector;\n const imageSelector = singleImage.resource.type === 'SpecificResource' ? expandTarget(singleImage.resource) : null;\n const selector: BoxSelector =\n imageSelector &&\n imageSelector.selector &&\n (imageSelector.selector.type === 'BoxSelector' || imageSelector.selector.type === 'TemporalBoxSelector')\n ? {\n type: 'BoxSelector',\n spatial: {\n x: imageSelector.selector.spatial.x,\n y: imageSelector.selector.spatial.y,\n width: imageSelector.selector.spatial.width,\n height: imageSelector.selector.spatial.height,\n },\n }\n : defaultImageSelector;\n\n if (imageService && !imageService.id) {\n (imageService as any).id = imageService['@id'];\n }\n\n const imageType: ImageWithOptionalService = {\n id: resource.id,\n type: 'Image',\n width: target ? resource.width : canvas.width,\n height: target ? resource.height : canvas.height,\n service: imageService,\n sizes:\n imageService && imageService.sizes\n ? imageService.sizes\n : resource.width && resource.height\n ? [{ width: resource.width, height: resource.height }]\n : [],\n target: target && target.type !== 'PointSelector' ? target : defaultTarget,\n selector,\n };\n\n imageTypes.push(imageType);\n }\n\n return {\n type: 'images',\n image: imageTypes[0],\n images: imageTypes,\n choice: paintables.choice,\n } as SingleImageStrategy;\n}\n","import { CanvasNormalized } from '@iiif/presentation-3';\nimport { Paintables, unsupportedStrategy } from './rendering-utils';\nimport { AnnotationPageDescription } from './resource-types';\nimport { ChoiceDescription } from './choice-types';\nimport { ExternalWebResource } from '@iiif/presentation-3/resources/annotation';\nimport { RenderingStrategy } from './strategies';\n\nexport type Single3DModelStrategy = {\n type: '3d-model';\n model: ExternalWebResource;\n choice?: ChoiceDescription; // future\n annotations?: AnnotationPageDescription; // future\n};\n\nconst supportedFormats = ['model/gltf-binary'];\n\nexport function get3dStrategy(canvas: CanvasNormalized, paintables: Paintables): RenderingStrategy {\n const first = paintables.items[0];\n const resource = first.resource as ExternalWebResource;\n\n if (!resource.format) {\n return unsupportedStrategy('Unknown format');\n }\n\n if (supportedFormats.indexOf(resource.format) === -1) {\n return unsupportedStrategy(`3D format: ${resource.format} is unsupported`);\n }\n\n return {\n type: '3d-model',\n model: resource as any,\n } as Single3DModelStrategy;\n}\n","import { CanvasNormalized } from '@iiif/presentation-3';\nimport { Paintables, unsupportedStrategy } from './rendering-utils';\nimport { MediaStrategy } from './strategies';\n\nexport function getAudioStrategy(canvas: CanvasNormalized, paintables: Paintables) {\n if (!canvas.duration) {\n return unsupportedStrategy('No duration on canvas');\n }\n\n if (paintables.items.length > 1) {\n return unsupportedStrategy('Only one audio source supported');\n }\n\n const audioResource = paintables.items[0]?.resource as any; // @todo stronger type for what this might be.\n\n if (!audioResource) {\n return unsupportedStrategy('Unknown audio');\n }\n\n if (!audioResource.format) {\n return unsupportedStrategy('Audio does not have format');\n }\n\n return {\n type: 'media',\n media: {\n duration: canvas.duration,\n url: audioResource.id,\n type: 'Sound',\n target: {\n type: 'TemporalSelector',\n temporal: {\n startTime: 0,\n endTime: canvas.duration,\n },\n },\n format: audioResource.format,\n selector: {\n type: 'TemporalSelector',\n temporal: {\n startTime: 0,\n endTime: canvas.duration,\n },\n },\n },\n annotations: {\n pages: [],\n },\n } as MediaStrategy;\n}\n","import { CanvasNormalized } from '@iiif/presentation-3';\nimport { Paintables, unsupportedStrategy } from './rendering-utils';\nimport { MediaStrategy } from './strategies';\nimport { SingleVideo } from './resource-types';\n\nexport function getVideoStrategy(canvas: CanvasNormalized, paintables: Paintables) {\n const videoPaintables = paintables.items.filter((t) => t.type === 'video');\n\n if (!canvas.duration) {\n return unsupportedStrategy('No duration on canvas');\n }\n\n if (videoPaintables.length > 1) {\n return unsupportedStrategy('Only one video source supported');\n }\n\n const audioResource = videoPaintables[0]?.resource as any; // @todo stronger type for what this might be.\n\n if (!audioResource) {\n return unsupportedStrategy('Unknown video');\n }\n\n if (!audioResource.format) {\n return unsupportedStrategy('Video does not have format');\n }\n\n // @todo support VTT\n\n return {\n type: 'media',\n media: {\n duration: canvas.duration,\n url: audioResource.id,\n type: 'Video',\n items: [],\n target: {\n type: 'TemporalSelector',\n temporal: {\n startTime: 0,\n endTime: canvas.duration,\n },\n },\n format: audioResource.format,\n selector: {\n type: 'TemporalSelector',\n temporal: {\n startTime: 0,\n endTime: canvas.duration,\n },\n },\n },\n annotations: {\n pages: [],\n },\n } as MediaStrategy;\n}\n","import { AnnotationPageNormalized } from '@iiif/presentation-3';\nimport { useCanvas } from './useCanvas';\nimport { useMemo } from 'react';\nimport { useVault } from './useVault';\nimport { RenderingStrategy } from '../features/rendering-strategy/strategies';\nimport { emptyActions, unknownResponse, unsupportedStrategy } from '../features/rendering-strategy/rendering-utils';\nimport { useAnnotationPageManager } from './useAnnotationPageManager';\nimport { useManifest } from './useManifest';\nimport { useResources } from './useResources';\nimport { useLoadImageService } from './useLoadImageService';\nimport { usePaintables } from './usePaintables';\nimport { getImageStrategy } from '../features/rendering-strategy/image-strategy';\nimport { get3dStrategy } from '../features/rendering-strategy/3d-strategy';\nimport { getAudioStrategy } from '../features/rendering-strategy/audio-strategy';\nimport { getVideoStrategy } from '../features/rendering-strategy/video-strategy';\n\n// @todo we may not have any actions returned from the rendering strategy.\nexport type StrategyActions = {\n makeChoice: (id: string, options?: { deselectOthers?: boolean; deselect?: boolean }) => void;\n};\n\nexport type UseRenderingStrategy = [RenderingStrategy, StrategyActions];\n\nexport type UseRenderingStrategyOptions = {\n strategies?: Array<RenderingStrategy['type']>;\n annotationPageManagerId?: string;\n defaultChoices?: string[];\n};\n\nexport function useRenderingStrategy(options?: UseRenderingStrategyOptions): UseRenderingStrategy {\n const manifest = useManifest();\n const canvas = useCanvas();\n const vault = useVault();\n const [loadImageService, imageServiceStatus] = useLoadImageService();\n const { enabledPageIds } = useAnnotationPageManager(options?.annotationPageManagerId || manifest?.id || canvas?.id, {\n all: false,\n });\n const enabledPages = useResources<AnnotationPageNormalized>(enabledPageIds, 'AnnotationPage');\n\n const supports: RenderingStrategy['type'][] = options?.strategies || ['images', 'media', 'complex-timeline'];\n\n const [paintables, actions] = usePaintables(options, [imageServiceStatus]);\n\n const strategy = useMemo(() => {\n if (!canvas || paintables.types.length === 0) {\n return unknownResponse;\n }\n\n if (paintables.types.length !== 1) {\n if (paintables.types.length === 2 && paintables.types.indexOf('text') !== -1) {\n paintables.types = paintables.types.filter((t) => t !== 'text');\n } else {\n if (supports.indexOf('complex-timeline') === -1) {\n return unsupportedStrategy('Complex timeline not supported');\n }\n return unsupportedStrategy('ComplexTimelineStrategy not yet supported');\n }\n }\n\n const mainType = paintables.types[0];\n\n // Image\n if (mainType === 'image') {\n if (supports.indexOf('images') === -1) {\n return unsupportedStrategy('Image not supported');\n }\n\n return getImageStrategy(canvas, paintables, loadImageService);\n }\n\n // 3D\n if (mainType === 'Model' || mainType === 'model') {\n if (supports.indexOf('3d-model') === -1) {\n return unsupportedStrategy('3D not supported');\n }\n\n return get3dStrategy(canvas, paintables);\n }\n\n\n if (mainType === 'sound' || mainType === 'audio') {\n if (supports.indexOf('media') === -1) {\n return unsupportedStrategy('Media not supported');\n }\n\n // Media Strategy with audio or audio sequence.\n return getAudioStrategy(canvas, paintables);\n }\n\n if (mainType === 'video') {\n if (supports.indexOf('media') === -1) {\n return unsupportedStrategy('Media not supported');\n }\n\n // Media Strategy with video or video sequence.\n return getVideoStrategy(canvas, paintables);\n }\n\n // Unknown fallback.\n return unknownResponse;\n }, [canvas, paintables, vault, actions.makeChoice]);\n\n return useMemo(() => {\n if (strategy.type === 'unknown') {\n return [strategy, emptyActions];\n }\n\n return [\n {\n ...strategy,\n annotations: { pages: enabledPages },\n },\n actions,\n ];\n }, [strategy, enabledPages]);\n}\n","import { Vault } from '@iiif/vault';\nimport { useVault } from './useVault';\nimport { useEffect } from 'react';\n\nexport const useVaultEffect = (callback: (vault: Vault) => void, deps: any[] = []): void => {\n const vault = useVault();\n\n useEffect(() => {\n callback(vault);\n }, [vault, ...deps]);\n};\n","import { ImageServiceLoader, getFixedSizeFromImage } from \"@atlas-viewer/iiif-image-api\";\nfunction createThumbnailHelper(vault, dependencies = {}) {\n const imageServiceLoader = dependencies.imageServiceLoader || new ImageServiceLoader();\n async function getBestThumbnailAtSize(input, request, dereference, candidates = [], dimensions) {\n if (typeof input === \"string\") {\n return { best: getFixedSizeFromImage(input), fallback: [], log: [] };\n }\n const fullInput = vault.get(input);\n if (typeof fullInput === \"string\") {\n return { best: getFixedSizeFromImage(fullInput), fallback: [], log: [] };\n }\n switch (fullInput.type) {\n case \"Annotation\": {\n const contentResources = fullInput.body;\n const firstContentResources = vault.get(contentResources[0]);\n if (dimensions && !firstContentResources.width) {\n firstContentResources.width = dimensions.width;\n firstContentResources.height = dimensions.height;\n }\n return await imageServiceLoader.getThumbnailFromResource(firstContentResources, request, dereference, candidates);\n }\n case \"Canvas\": {\n const canvas = fullInput;\n if (canvas.thumbnail && canvas.thumbnail.length) {\n const thumbnail = vault.get(canvas.thumbnail[0]);\n const potentialThumbnails = await imageServiceLoader.getImageCandidates(thumbnail, dereference);\n if (potentialThumbnails && potentialThumbnails.length) {\n candidates.push(...potentialThumbnails);\n }\n }\n return getBestThumbnailAtSize(canvas.items[0], request, dereference, candidates, {\n width: canvas.width,\n height: canvas.height\n });\n }\n case \"AnnotationPage\": {\n const annotationPage = fullInput;\n return getBestThumbnailAtSize(annotationPage.items[0], request, dereference, candidates, dimensions);\n }\n case \"Choice\": {\n const choice = fullInput;\n return getBestThumbnailAtSize(choice.items[0], request, dereference, candidates, dimensions);\n }\n case \"Collection\": {\n const collection = fullInput;\n const firstManifest = collection.items[0];\n return getBestThumbnailAtSize(firstManifest, request, dereference, candidates, dimensions);\n }\n case \"Manifest\": {\n const manifest = fullInput;\n const firstCanvas = manifest.items[0];\n return getBestThumbnailAtSize(firstCanvas, request, dereference, candidates, dimensions);\n }\n case \"SpecificResource\":\n case \"Image\":\n case \"Dataset\":\n case \"Sound\":\n case \"Text\":\n case \"TextualBody\":\n case \"Video\":\n if (dimensions && !fullInput.width) {\n fullInput.width = dimensions.width;\n fullInput.height = dimensions.height;\n }\n return imageServiceLoader.getThumbnailFromResource(fullInput, request, dereference, candidates);\n case \"Service\":\n case \"Range\":\n case \"AnnotationCollection\":\n case \"CanvasReference\":\n case \"ContentResource\":\n return { best: void 0, fallback: [], log: [] };\n }\n return { best: void 0, fallback: [], log: [] };\n }\n return {\n getBestThumbnailAtSize\n };\n}\nexport { createThumbnailHelper };\n//# sourceMappingURL=thumbnail.mjs.map\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport { useManifest } from './useManifest';\nimport { useCanvas } from './useCanvas';\nimport { useVaultEffect } from './useVaultEffect';\nimport { ImageCandidate, ImageCandidateRequest } from '@atlas-viewer/iiif-image-api';\nimport { useImageServiceLoader } from '../context/ImageServiceLoaderContext';\nimport { createThumbnailHelper } from '@iiif/vault-helpers/thumbnail';\nimport { useVault } from './useVault';\n\nexport function useThumbnail(\n request: ImageCandidateRequest,\n dereference?: boolean,\n { canvasId, manifestId }: { canvasId?: string; manifestId?: string } = {}\n) {\n const vault = useVault();\n const loader = useImageServiceLoader();\n const helper = useMemo(() => createThumbnailHelper(vault, { imageServiceLoader: loader }), [vault, loader]);\n\n const [thumbnail, setThumbnail] = useState<ImageCandidate | undefined>();\n const manifest = useManifest(manifestId ? { id: manifestId } : undefined);\n const canvas = useCanvas(canvasId ? { id: canvasId } : undefined);\n const subject = canvas ? canvas : manifest;\n const didUnmount = useRef(false);\n\n useEffect(() => {\n return () => {\n didUnmount.current = true;\n };\n }, []);\n\n if (!subject) {\n throw new Error('Must be called under a manifest or canvas context.');\n }\n\n useVaultEffect(\n (v) => {\n helper.getBestThumbnailAtSize(subject, request, dereference).then((thumb) => {\n if (thumb.best && !didUnmount.current) {\n setThumbnail(thumb.best);\n }\n });\n },\n [subject]\n );\n\n return thumbnail;\n}\n","import { RefObject, useCallback, useEffect, useReducer, useRef } from 'react';\n\ntype MediaPlayerAction =\n | { type: 'PLAY_PAUSE' }\n | { type: 'TOGGLE_MUTE' }\n | { type: 'MUTE' }\n | { type: 'UNMUTE' }\n | { type: 'SET_VOLUME'; volume: number }\n | { type: 'PLAY' }\n | { type: 'PLAY_REQUESTED' }\n | { type: 'PAUSE' }\n | { type: 'FINISHED' };\n\nexport type MediaPlayerState = {\n isPlaying: boolean;\n isMuted: boolean;\n playRequested: boolean;\n volume: number;\n isFinished: boolean;\n duration: number;\n};\n\nexport type MediaPlayerActions = {\n play(): void;\n pause(): void;\n playPause(): void;\n mute(): void;\n unmute(): void;\n toggleMute(): void;\n setVolume(volume: number): void;\n setDurationPercent(percent: number): void;\n setTime(time: number): void;\n};\n\nfunction getDefaultState(duration: number): MediaPlayerState {\n return { isMuted: false, playRequested: false, isPlaying: false, isFinished: false, volume: 100, duration };\n}\n\nfunction reducer(state: MediaPlayerState, action: MediaPlayerAction) {\n switch (action.type) {\n case 'FINISHED':\n return { ...state, isFinished: true, isPlaying: false, playRequested: false };\n case 'PLAY_PAUSE':\n return { ...state, isFinished: false, isPlaying: !state.isPlaying };\n case 'PLAY_REQUESTED':\n return { ...state, isFinished: false, playRequested: true };\n case 'PAUSE':\n return { ...state, isPlaying: false };\n case 'PLAY':\n return { ...state, isFinished: false, playRequested: false, isPlaying: true };\n case 'MUTE':\n return { ...state, isMuted: true };\n case 'SET_VOLUME':\n return { ...state, volume: action.volume, isMuted: action.volume === 0 };\n case 'TOGGLE_MUTE':\n return { ...state, isMuted: !state.isMuted };\n case 'UNMUTE':\n return { ...state, isMuted: false };\n }\n return state;\n}\n\nexport function formatTime(time: number) {\n const seconds = Math.round(time);\n return `${Math.floor(seconds / 60)}:${`${seconds % 60}`.padStart(2, '0')}`;\n}\n\nexport function useSimpleMediaPlayer(props: { duration: number }): readonly [\n {\n element: RefObject<HTMLAudioElement | HTMLVideoElement>;\n currentTime: RefObject<HTMLDivElement>;\n progress: RefObject<HTMLDivElement>;\n },\n MediaPlayerState,\n MediaPlayerActions\n] {\n const [state, dispatch] = useReducer(reducer, getDefaultState(props.duration));\n\n const media = useRef<HTMLAudioElement | HTMLVideoElement>(null);\n const currentTime = useRef<HTMLDivElement>(null);\n const progress = useRef<HTMLDivElement>(null);\n const _isMuted = useRef(false);\n\n const _updateCurrentTime = useCallback(() => {\n if (currentTime.current && media.current) {\n currentTime.current.innerHTML = formatTime(media.current.currentTime);\n if (progress.current) {\n progress.current.style.width = `${(media.current.currentTime / props.duration) * 100}%`;\n }\n if (_isMuted.current !== media.current.muted) {\n _isMuted.current = media.current.muted;\n dispatch(media.current.muted ? { type: 'MUTE' } : { type: 'UNMUTE' });\n }\n }\n }, [props.duration]);\n\n const play = useCallback(() => {\n if (media.current) {\n dispatch({ type: 'PLAY_REQUESTED' });\n media.current.play().then(() => {\n dispatch({ type: 'PLAY' });\n });\n _updateCurrentTime();\n }\n }, [_updateCurrentTime]);\n\n const playPause = useCallback(() => {\n if (media.current) {\n if (media.current.duration > 0 && media.current.paused) {\n play();\n } else {\n pause();\n }\n }\n }, [_updateCurrentTime]);\n\n const pause = useCallback(() => {\n if (media.current) {\n media.current.pause();\n dispatch({ type: 'PAUSE' });\n _updateCurrentTime();\n }\n }, [_updateCurrentTime]);\n\n const toggleMute = useCallback(() => {\n if (media.current) {\n media.current.muted = !media.current.muted;\n dispatch(media.current.muted ? { type: 'MUTE' } : { type: 'UNMUTE' });\n }\n }, []);\n\n const mute = useCallback(() => {\n if (media.current) {\n media.current.muted = true;\n dispatch({ type: 'MUTE' });\n }\n }, []);\n\n const unmute = useCallback(() => {\n if (media.current) {\n media.current.muted = false;\n dispatch({ type: 'UNMUTE' });\n }\n }, []);\n\n const setVolume = useCallback((newVolume: number) => {\n if (media.current) {\n media.current.muted = false;\n media.current.volume = newVolume / 100;\n dispatch({ type: 'SET_VOLUME', volume: newVolume });\n }\n }, []);\n\n const setDurationPercent = useCallback((percent: number) => {\n if (media.current) {\n media.current.currentTime = Math.max(0, Math.min(percent * props.duration, props.duration));\n _updateCurrentTime();\n }\n }, []);\n\n const setTime = useCallback((time: number) => {\n if (media.current) {\n media.current.currentTime = Math.max(0, Math.min(time, props.duration));\n _updateCurrentTime();\n }\n }, []);\n\n useEffect(() => {\n const interval = setInterval(() => {\n _updateCurrentTime();\n }, 350);\n\n return () => clearInterval(interval);\n }, [_updateCurrentTime, props.duration]);\n\n useEffect(() => {\n const ended = () => {\n dispatch({ type: 'FINISHED' });\n };\n const _media = media.current;\n\n _media?.addEventListener('ended', ended);\n\n return () => _media?.removeEventListener('ended', ended);\n }, []);\n\n return [\n { element: media, currentTime, progress },\n state,\n {\n play,\n pause,\n playPause,\n mute,\n unmute,\n toggleMute,\n setVolume,\n setDurationPercent,\n setTime,\n },\n ];\n}\n","import { createContext, ReactNode, RefObject, useContext } from 'react';\nimport { MediaPlayerActions, MediaPlayerState } from '../hooks/useSimpleMediaPlayer';\n\nconst MediaReactContextState = createContext<MediaPlayerState | null>(null);\nconst MediaReactContextActions = createContext<MediaPlayerActions | null>(null);\nconst MediaReactContextElements = createContext<{\n element: RefObject<HTMLAudioElement | HTMLVideoElement>;\n currentTime: RefObject<HTMLDivElement>;\n progress: RefObject<HTMLDivElement>;\n} | null>(null);\n\nexport function useMediaState() {\n const ctx = useContext(MediaReactContextState);\n if (!ctx) {\n throw new Error('Ctx not found');\n }\n return ctx;\n}\n\nexport function useMediaActions() {\n const ctx = useContext(MediaReactContextActions);\n if (!ctx) {\n throw new Error('Ctx not found');\n }\n return ctx;\n}\n\nexport function useMediaElements() {\n const ctx = useContext(MediaReactContextElements);\n if (!ctx) {\n throw new Error('Ctx not found');\n }\n return ctx;\n}\n\nexport function MediaPlayerProvider({\n actions,\n state,\n children,\n currentTime,\n progress,\n element,\n}: {\n actions: MediaPlayerActions;\n state: MediaPlayerState;\n children: ReactNode;\n currentTime: RefObject<HTMLDivElement>;\n progress: RefObject<HTMLDivElement>;\n element: RefObject<HTMLAudioElement | HTMLVideoElement>;\n}) {\n return (\n <MediaReactContextElements.Provider value={{ currentTime, progress, element }}>\n <MediaReactContextActions.Provider value={actions}>\n <MediaReactContextState.Provider value={state}>{children}</MediaReactContextState.Provider>\n </MediaReactContextActions.Provider>\n </MediaReactContextElements.Provider>\n );\n}\n","import { ReactNode } from 'react';\nimport { useSimpleMediaPlayer } from '../../hooks/useSimpleMediaPlayer';\nimport { SingleAudio } from '../../features/rendering-strategy/resource-types';\nimport { MediaPlayerProvider } from '../../context/MediaContext';\nimport { CanvasPortal } from '../../context/PortalContext';\n\nexport function Audio({ media, children }: { media: SingleAudio; children: ReactNode }) {\n const [{ element, currentTime, progress }, state, actions] = useSimpleMediaPlayer({ duration: media.duration });\n\n return (\n <>\n <CanvasPortal>\n <MediaPlayerProvider\n state={state}\n actions={actions}\n currentTime={currentTime}\n progress={progress}\n element={element}\n >\n <audio ref={element} src={media.url} />\n {children}\n </MediaPlayerProvider>\n </CanvasPortal>\n </>\n );\n}\n","import { ReactNode } from 'react';\nimport { useSimpleMediaPlayer } from '../../hooks/useSimpleMediaPlayer';\nimport { SingleAudio, SingleVideo } from '../../features/rendering-strategy/resource-types';\nimport { MediaPlayerProvider } from '../../context/MediaContext';\nimport { CanvasPortal } from '../../context/PortalContext';\n\nexport function Video({ media, children }: { media: SingleVideo; children: ReactNode }) {\n const [{ element, currentTime, progress }, state, actions] = useSimpleMediaPlayer({ duration: media.duration });\n const Component = 'div' as any;\n\n return (\n <>\n <CanvasPortal overlay>\n <style>\n {`\n .video-container {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background: #000;\n z-index: 13;\n display: flex;\n justify-content: center;\n pointer-events: visible;\n }\n `}\n </style>\n <Component className=\"video-container\" part=\"video-container\" onClick={() => actions.playPause()}>\n <video ref={element as any} src={media.url} style={{ width: '100%', objectFit: 'contain' }} />\n </Component>\n </CanvasPortal>\n <CanvasPortal>\n <MediaPlayerProvider\n state={state}\n actions={actions}\n currentTime={currentTime}\n progress={progress}\n element={element}\n >\n {children}\n </MediaPlayerProvider>\n </CanvasPortal>\n </>\n );\n}\n","// @ts-ignore\nimport ModelViewer from 'react-model-viewer';\nimport { CanvasPortal } from '../../context/PortalContext';\n\nexport function Model({ model }: { model: any }) {\n return (\n <CanvasPortal overlay>\n <style>\n {`\n .model-container {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background: #000;\n z-index: 13;\n display: flex;\n justify-content: center;\n pointer-events: visible;\n }\n `}\n </style>\n <div className=\"model-container\">\n {/*@ts-ignore*/}\n <model-viewer\n interaction-prompt=\"none\"\n style={{ width: '100%', height: '100%' }}\n camera-controls=\"\"\n ar-status=\"not-presenting\"\n src={model.id}\n />\n </div>\n </CanvasPortal>\n );\n}\n","import { createStylesHelper } from '@iiif/vault-helpers/styles';\nimport { RenderImage } from './Image';\nimport React, { Fragment, ReactNode, useEffect, useLayoutEffect, useMemo } from 'react';\nimport { useVirtualAnnotationPageContext } from '../../hooks/useVirtualAnnotationPageContext';\nimport { ChoiceDescription } from '../../features/rendering-strategy/choice-types';\nimport { StrategyActions, useRenderingStrategy } from '../../hooks/useRenderingStrategy';\nimport { useVault } from '../../hooks/useVault';\nimport { useResourceEvents } from '../../hooks/useResourceEvents';\nimport { useThumbnail } from '../../hooks/useThumbnail';\nimport { useCanvas } from '../../hooks/useCanvas';\nimport { RenderAnnotationPage } from './AnnotationPage';\nimport { Audio } from './Audio';\nimport { MediaStrategy, RenderingStrategy } from '../../features/rendering-strategy/strategies';\nimport { Video } from './Video';\nimport { Model } from './Model';\nimport { CanvasContext } from '../../context/CanvasContext';\nimport { SingleImageStrategy } from '../../features/rendering-strategy/image-strategy';\nimport { CanvasPortal } from '../../context/PortalContext';\n\ntype CanvasProps = {\n x?: number;\n y?: number;\n onCreated?: any;\n onChoiceChange?: (choice?: ChoiceDescription) => void;\n registerActions?: (actions: StrategyActions) => void;\n defaultChoices?: Array<{ id: string; opacity?: number }>;\n isStatic?: boolean;\n children?: ReactNode;\n renderViewerControls?: (strategy: SingleImageStrategy) => ReactNode;\n renderMediaControls?: (strategy: MediaStrategy) => ReactNode;\n strategies?: Array<RenderingStrategy['type']>;\n};\n\nexport function RenderCanvas({\n x,\n y,\n onChoiceChange,\n registerActions,\n defaultChoices,\n isStatic,\n renderViewerControls,\n renderMediaControls,\n strategies,\n children,\n}: CanvasProps) {\n const canvas = useCanvas();\n const elementProps = useResourceEvents(canvas, ['deep-zoom']);\n const [virtualPage] = useVirtualAnnotationPageContext();\n const vault = useVault();\n const helper = useMemo(() => createStylesHelper(vault), [vault]);\n const [strategy, actions] = useRenderingStrategy({\n strategies: strategies || ['images'],\n defaultChoices: defaultChoices?.map(({ id }) => id),\n });\n const choice = strategy.type === 'images' ? strategy.choice : undefined;\n\n useEffect(() => {\n if (registerActions) {\n registerActions(actions);\n }\n }, [strategy.annotations]);\n\n useEffect(() => {\n if (defaultChoices) {\n for (const choice of defaultChoices) {\n if (typeof choice.opacity !== 'undefined') {\n helper.applyStyles({ id: choice.id }, 'atlas', {\n opacity: choice.opacity,\n });\n }\n }\n }\n }, [defaultChoices]);\n\n useLayoutEffect(() => {\n if (onChoiceChange) {\n onChoiceChange(choice);\n }\n }, [choice]);\n\n const thumbnail = useThumbnail({ maxWidth: 256, maxHeight: 256 });\n\n if (!canvas) {\n return null;\n }\n\n // accompanyingCanvas\n const accompanyingCanvas = canvas.accompanyingCanvas;\n\n const thumbnailFallbackImage =\n thumbnail && thumbnail.type === 'fixed' ? (\n <world-object height={canvas.height} width={canvas.width} x={x} y={y}>\n <world-image\n uri={thumbnail.id}\n target={{ x: 0, y: 0, width: canvas.width, height: canvas.height }}\n display={\n thumbnail.width && thumbnail.height\n ? {\n width: thumbnail.width,\n height: thumbnail.height,\n }\n : undefined\n }\n />\n </world-object>\n ) : null;\n\n if (strategy.type === 'unknown') {\n if (thumbnailFallbackImage) {\n return thumbnailFallbackImage;\n }\n\n throw new Error(strategy.reason || 'Unknown image strategy');\n }\n\n const annotations = (\n <Fragment>\n {virtualPage ? <RenderAnnotationPage page={virtualPage} /> : null}\n {strategy.annotations && strategy.annotations.pages\n ? strategy.annotations.pages.map((page) => {\n return <RenderAnnotationPage key={page.id} page={page} />;\n })\n : null}\n {children}\n </Fragment>\n );\n\n return (\n <>\n <world-object key={strategy.type} height={canvas.height} width={canvas.width} x={x} y={y} {...elementProps}>\n {strategy.type === 'images' ? (\n <>\n {strategy.images.map((image, idx) => {\n return (\n <RenderImage\n isStatic={isStatic}\n key={image.id}\n image={image}\n id={image.id}\n thumbnail={idx === 0 ? thumbnail : undefined}\n annotations={annotations}\n />\n );\n })}\n {renderViewerControls ? <CanvasPortal overlay>{renderViewerControls(strategy)}</CanvasPortal> : null}\n </>\n ) : null}\n {strategy.type === '3d-model' ? <Model model={strategy.model} /> : null}\n {strategy.type === 'media' ? (\n <>\n {strategy.media.type === 'Sound' ? (\n <Audio media={strategy.media}>\n {thumbnailFallbackImage}\n {renderMediaControls ? renderMediaControls(strategy) : null}\n </Audio>\n ) : strategy.media.type === 'Video' ? (\n <Video media={strategy.media}>\n {thumbnailFallbackImage}\n {renderMediaControls ? renderMediaControls(strategy) : null}\n </Video>\n ) : null}\n </>\n ) : null}\n {/* This is required to fix a race condition. */}\n </world-object>\n {strategy.type === 'media' && strategy.media.type === 'Sound' && accompanyingCanvas ? (\n <CanvasContext canvas={accompanyingCanvas.id}>\n <RenderCanvas renderViewerControls={renderViewerControls} />\n </CanvasContext>\n ) : null}\n </>\n );\n}\n","import { Viewer } from './Viewer';\nimport { RenderAnnotation } from './render/Annotation';\nimport { RenderAnnotationPage } from './render/AnnotationPage';\nimport { RenderCanvas } from './render/Canvas';\nimport { RenderImage } from './render/Image';\n\nexport const CanvasPanel = {\n RenderImage,\n RenderCanvas,\n RenderAnnotationPage,\n RenderAnnotation,\n Viewer,\n};\n","import { ResourceProvider } from './ResourceContext';\nimport React, { ReactNode } from 'react';\n\nexport function AnnotationContext({ annotation, children }: { annotation: string; children: ReactNode }) {\n return <ResourceProvider value={{ annotation }}>{children}</ResourceProvider>;\n}\n","import { ResourceProvider } from './ResourceContext';\nimport React, { ReactNode } from 'react';\n\nexport function CollectionContext({ collection, children }: { collection: string; children: ReactNode }) {\n return <ResourceProvider value={{ collection }}>{children}</ResourceProvider>;\n}\n","import { ResourceProvider } from './ResourceContext';\nimport React, { ReactNode } from 'react';\n\nexport function RangeContext({ range, children }: { range: string; children: ReactNode }) {\n return <ResourceProvider value={{ range }}>{children}</ResourceProvider>;\n}\n","// This works under a canvas context\n// The canvas must have a duration\n// When given a timestamp (ms) from the canvas clock will return a list of annotations\n// that need to be painted.\nimport { AnnotationNormalized } from '@iiif/presentation-3';\nimport { usePaintingAnnotations } from './usePaintingAnnotations';\n\nexport function useAnnotationsAtTime(time: number, options: { canvasId?: string } = {}): AnnotationNormalized[] {\n const allAnnotations = usePaintingAnnotations(options);\n\n // @todo filter.\n\n return allAnnotations;\n}\n","// This will be valid under a canvas.\n// It will be an interface for controlling a virtual clock.\n// It will take in some configuration, like frequency\n// and return some data, like current time\n// It will also provide some methods, like high performance syncing for media\n// And it will also have some basic hooks into the HTML audio/video elements to sync those.\n// Other methods for controlling the clock would be:\n// - set current time\n// - fast forward\n// - rewind\n// - set playback speed\n//\n// Other hooks might come out for priority updates. Like: useLowPriorityCanvasClock(), which will update at a preset\n// lower tick rate.\n\nexport function useCanvasClock(canvasId?: string, autoplay = false) {\n /*\n const canvas = useCanvas(canvasId ? { id: canvasId } : undefined);\n if (!canvas || typeof canvas.duration === 'undefined') {\n throw new Error('Unsupported or undefined canvas');\n }\n\n const update = useUpdate();\n const [lastCall, setLastCall] = useState(0);\n const [currentTime, setCurrentTime] = useState(0);\n\n const [loopStop, loopStart, isActive] = useRafLoop((time) => {\n const timeInSeconds = lastCall === 0 ? 0 : (time - lastCall) / 1000;\n if (currentTime + timeInSeconds < canvas.duration) {\n setCurrentTime((t) => t + timeInSeconds);\n } else {\n setCurrentTime(canvas.duration);\n loopStop();\n }\n setLastCall(time);\n }, autoplay);\n\n const play = useCallback(() => {\n if (currentTime === canvas.duration) {\n setCurrentTime(0);\n setLastCall(0);\n }\n loopStart();\n update();\n }, [currentTime, loopStart, update]);\n\n const pause = useCallback(() => {\n loopStop();\n update();\n }, [loopStop, update]);\n\n return {\n isPlaying: isActive(),\n currentTime,\n duration: canvas.duration,\n play,\n pause,\n seek: setCurrentTime,\n };\n\n */\n}\n","import { useResourceContext } from '../context/ResourceContext';\nimport { CollectionNormalized } from '@iiif/presentation-3';\nimport { useMemo } from 'react';\nimport { useVaultSelector } from './useVaultSelector';\n\nexport function useCollection(options: { id: string }): CollectionNormalized | undefined;\nexport function useCollection<T>(\n options: { id: string; selector: (collection: CollectionNormalized) => T },\n deps?: any[]\n): T | undefined;\nexport function useCollection<T = CollectionNormalized>(\n options: {\n id?: string;\n selector?: (collection: CollectionNormalized) => T;\n },\n deps: any[] = []\n): CollectionNormalized | T | undefined {\n const { id, selector } = options;\n const ctx = useResourceContext();\n const collectionId = id ? id : ctx.collection;\n\n const collection = useVaultSelector(\n (s) => (collectionId ? s.iiif.entities.Collection[collectionId] : undefined),\n [collectionId]\n );\n\n return useMemo(() => {\n if (!collection) {\n return undefined;\n }\n if (selector) {\n return selector(collection);\n }\n return collection;\n }, [collection, selector, ...deps]);\n}\n","import { Reference } from '@iiif/presentation-3';\nimport { useVault } from './useVault';\nimport { useEffect, useMemo } from 'react';\nimport { createEventsHelper } from '@iiif/vault-helpers/events';\n\ntype SupportedEvents = 'onClick';\n\nexport function useEventListener<T>(\n resource: Reference,\n name: SupportedEvents,\n listener: (e: any, resource: T) => void,\n scope?: string[],\n deps: any[] = []\n) {\n const vault = useVault();\n const helper = useMemo(() => createEventsHelper(vault), [vault]);\n\n useEffect(() => {\n const currentResource = resource;\n if (!currentResource) {\n return () => {\n //\n };\n }\n helper.addEventListener(currentResource, name, listener, scope);\n return () => {\n helper.removeEventListener(currentResource, name, listener);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [helper, resource, name, ...deps]);\n}\n","import { globalVault } from '@iiif/vault';\nimport { useContext } from 'react';\nimport { ReactVaultContext } from '../context/VaultContext';\n\nexport function useExistingVault() {\n const oldContext: any = useContext(ReactVaultContext);\n\n return oldContext && oldContext.vault ? (oldContext.vault as any) : globalVault();\n}\n","import { CollectionNormalized } from '@iiif/presentation-3';\nimport { ResourceRequestOptions, useExternalResource } from './useExternalResource';\n\nexport function useExternalCollection(\n idOrRef: string | { id: string; type: string },\n options?: ResourceRequestOptions\n): {\n id: string;\n requestId: string;\n isLoaded: boolean;\n cached?: boolean;\n error: any;\n manifest?: CollectionNormalized;\n} {\n const { id, isLoaded, error, resource, requestId, cached } = useExternalResource<CollectionNormalized>(\n idOrRef,\n options\n );\n\n return { id, isLoaded, error, manifest: resource, requestId, cached };\n}\n","import { usePaintingAnnotations } from './usePaintingAnnotations';\nimport { getImageServices } from '@atlas-viewer/iiif-image-api';\nimport { useCanvas } from './useCanvas';\nimport { useVault } from './useVault';\nimport { IIIFExternalWebResource, ImageService } from '@iiif/presentation-3';\nimport { useImageServiceLoader } from '../context/ImageServiceLoaderContext';\nimport { useEffect, useMemo, useState } from 'react';\n\nexport interface ImageServiceRequestOptions {\n cacheKey?: string;\n}\n\n/**\n * Returns the First image service on the current canvas.\n *\n * @note It is better to use the hook useRenderingStrategy for rendering.\n */\nexport function useImageService({ cacheKey }: ImageServiceRequestOptions = {}): {\n data: ImageService | undefined;\n isFetching: boolean;\n status: 'error' | 'success' | 'loading' | 'idle';\n} {\n const canvas = useCanvas();\n const annotations = usePaintingAnnotations();\n const vault = useVault();\n const imageService = useImageServiceLoader();\n const [_data, setData] = useState<ImageService | undefined>(undefined);\n const [isFetching, setIsFetching] = useState(false);\n const [status, setStatus] = useState<'error' | 'success' | 'loading' | 'idle'>('idle');\n const [error, setError] = useState<Error | undefined>(undefined);\n const key = canvas ? canvas.id : 'undefined';\n const initialData = useMemo(() => {\n try {\n if (canvas && annotations.length) {\n const annotation = annotations[0];\n const resource = vault.get<IIIFExternalWebResource>(annotation.body[0]);\n const imageServices = getImageServices(resource as any);\n const firstImageService = imageServices[0];\n\n if (!firstImageService) {\n return undefined;\n }\n\n return (\n imageService.loadServiceSync({\n id: firstImageService.id || (firstImageService['@id'] as string),\n width: firstImageService.width || canvas.width,\n height: firstImageService.height || canvas.height,\n }) || undefined\n );\n }\n } catch (e) {\n console.error(e);\n // silent error.\n }\n\n return undefined;\n\n // This is specifically not exhaustive. We only want to try to loadSync initially or when the canvas changes.\n }, [key, cacheKey, canvas]);\n\n const data = status === 'success' && _data ? _data : initialData;\n\n useEffect(() => {\n (async () => {\n try {\n if (canvas && annotations.length) {\n const annotation = annotations[0];\n const resource = vault.get<IIIFExternalWebResource>(annotation.body[0]);\n const imageServices = getImageServices(resource as any) as any[];\n const firstImageService = imageServices[0] as any;\n\n if (!firstImageService) {\n return;\n }\n\n setIsFetching(true);\n setStatus('loading');\n\n try {\n const loadedService =\n (await imageService.loadService({\n id: firstImageService.id || firstImageService['@id'],\n width: firstImageService.width || canvas.width,\n height: firstImageService.height || canvas.height,\n })) || undefined;\n\n setData(loadedService);\n setStatus('success');\n setIsFetching(false);\n } catch (err) {\n setStatus('error');\n setError(err as Error);\n }\n }\n } catch (err) {\n setStatus('error');\n setError(err as Error);\n }\n })();\n\n // It's important that this DOESN'T refresh every time there is a new canvas change.\n // In an editing situation, the cache key should be used.\n }, [key, cacheKey]);\n\n return useMemo(() => {\n return {\n data,\n isFetching,\n status,\n error,\n };\n }, [data, isFetching, status, error]);\n}\n","import { useImageService } from './useImageService';\nimport { ImageService } from '@iiif/presentation-3';\n\nexport function useImageTile() {\n const imageService = useImageService();\n\n return {\n isLoading: imageService.isFetching,\n tile: imageService.data\n ? {\n id: imageService.data.id || imageService.data['@id'],\n width: imageService.data.width,\n height: imageService.data.height,\n imageService: imageService.data as ImageService,\n thumbnail: undefined,\n }\n : null,\n };\n}\n","// This is valid under a range context.\nimport { useResourceContext } from '../context/ResourceContext';\nimport { RangeNormalized } from '@iiif/presentation-3';\nimport { useMemo } from 'react';\nimport { useVaultSelector } from './useVaultSelector';\n\nexport function useRange(options?: { id: string }): RangeNormalized | undefined;\nexport function useRange<T>(\n options?: { id: string; selector: (range: RangeNormalized) => T },\n deps?: any[]\n): T | undefined;\nexport function useRange<T = RangeNormalized>(\n options: {\n id?: string;\n selector?: (range: RangeNormalized) => T;\n } = {},\n deps: any[] = []\n): RangeNormalized | T | undefined {\n const { id, selector } = options;\n const ctx = useResourceContext();\n const rangeId = id ? id : ctx.range;\n\n const range = useVaultSelector((s) => (rangeId ? s.iiif.entities.Range[rangeId] : undefined), [rangeId]);\n\n return useMemo(() => {\n if (!range) {\n return undefined;\n }\n if (selector) {\n return selector(range);\n }\n return range;\n }, [range, selector, ...deps]);\n}\n","// This works inside of a manifest context\n// Final API to be decided, but this hook will be for driving search querying itself\n// Another hook/context will handle actually getting the search results for a particular canvas\nimport { useManifest } from './useManifest';\nimport { SearchService, ServiceNormalized } from '@iiif/presentation-3';\n\nexport function useSearchService(): SearchService | undefined {\n const manifest = useManifest();\n return manifest\n ? (manifest.service.find(\n (service: ServiceNormalized) =>\n service.profile === 'SearchService1' || service.profile === 'http://iiif.io/api/search/1/search'\n ) as any)\n : undefined;\n}\n","import { useVault } from './useVault';\nimport { createStylesHelper } from '@iiif/vault-helpers/styles';\nimport { useMemo } from 'react';\n\nexport function useStyleHelper() {\n const vault = useVault();\n return useMemo(() => createStylesHelper(vault), [vault]);\n}\n"],"names":["schedulerModule","require$$0","require$$1","require$$2","reactReconcilerModule","m","n","jsxRuntimeModule","jsxRuntime.jsx","jsxRuntime.jsxs","jsxRuntime.Fragment","React","useContext","useState","useRef","useEffect","useMemo","useCallback","useLayoutEffect","version","setPrototypeOf","defaultResourceContext","collection","undefined","manifest","range","canvas","annotation","ResourceReactContext","createContext","useResourceContext","value","children","parentContext","newContext","_jsx","ReactVaultContext","vault","setVaultInstance","vaultOptions","useGlobal","resources","vaultInstance","globalVault","Vault","VisibleCanvasReactContext","ids","useVaultSelector","state","map","id","iiif","entities","Canvas","filter","Boolean","noop","SimpleViewerReactContext","setCurrentCanvasId","setCurrentCanvasIndex","nextCanvas","previousCanvas","currentCanvasIndex","totalCanvases","pagingView","props","useExternalManifest","currentCanvasId","visible","setVisible","pagingEnabled","behavior","includes","items","canvasList","c","indexOf","length","newCanvas","pageCanvas","idx","realIdx","newId","newNextId","prevValue","newValue","i","internalSetCurrentCanvasId","nextId","ctx","isLoaded","console","warn","VaultContext","ResourceContext","bridge","createAction","VirtualAnnotationPageContext","fullPage","addAnnotation","removeAnnotation","useVirtualAnnotationPage","width","style","height","minHeight","background","client","ViewerPresetContext","PortalContext","OverlayPortalContext","overlay","htmlElement","rootRef","preset","useViewerPreset","current","createRoot","unmount","render","errorFallback","outerContainerProps","portal","portalElement","setPortalElement","viewerPreset","setViewerPreset","overlayPortal","overlayPortalElement","setOverlayPortalElement","useContextBridge","ErrorFallback","DefaultCanvasFallback","position","containerProps","onCreated","RenderAnnotation","defaultStyle","className","interactive","useAnnotation","useStyles","html","events","useResourceEvents","useCanvas","allStyles","mergeStyles","target","selector","type","source","spatial","href","title","RenderAnnotationPage","page","AnnotationPage","Fragment","image","thumbnail","isStatic","x","y","annotations","service","_jsxs","imageService","getMeta","ImageServiceLoaderContext","ImageServiceLoader","getImageServices","getFixedSizeFromImage","useReducer","MediaReactContextState","MediaReactContextActions","MediaReactContextElements","Error","actions","currentTime","progress","element","media","useSimpleMediaPlayer","duration","_Fragment","url","playPause","objectFit","model","onChoiceChange","registerActions","defaultChoices","renderViewerControls","renderMediaControls","strategies","elementProps","virtualPage","useVirtualAnnotationPageContext","useVault","helper","createStylesHelper","strategy","useRenderingStrategy","choice","opacity","applyStyles","useThumbnail","maxWidth","maxHeight","accompanyingCanvas","thumbnailFallbackImage","reason","pages","images"],"mappings":"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"}
|