react-iiif-vault 0.9.20 → 0.9.21

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.
@@ -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/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/hooks/useManifest.ts","../src/context/RangeContext.tsx","../src/future-helpers/ranges.ts","../src/future-helpers/sequences.ts","../src/hooks/useRange.ts","../src/viewers/SimpleViewerContext.hooks.ts","../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","../src/context/ViewerPresetContext.tsx","../src/context/PortalContext.tsx","../node_modules/react-dom/client.js","../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","../node_modules/@iiif/vault-helpers/dist/esm/index.mjs","../src/features/rendering-strategy/rendering-utils.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/features/rendering-strategy/textual-content-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/CanvasBackground.tsx","../node_modules/@iiif/vault-helpers/dist/react-i18next/esm/react-i18next.mjs","../src/canvas-panel/render/Canvas.tsx","../src/canvas-panel/index.ts","../src/context/AnnotationContext.tsx","../src/context/AnnotationPageContext.tsx","../src/context/CollectionContext.tsx","../src/hooks/useAnnotationPage.ts","../src/hooks/useAnnotationsAtTime.ts","../src/hooks/useCanvasClock.ts","../src/hooks/useCanvasSubset.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/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, version, useCallback, useLayoutEffect } 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: 3,\n minSize: 255,\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.total_time === 0 ? 0 : (transition.elapsed_time + delta) / transition.total_time;\n const step = transition.total_time === 0 ? 1 : td === 0 ? 0 : transition.timingFunction(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 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 if (a.scale === b2.scale) {\n return b2.distance - a.distance;\n }\n return a.scale < b2.scale ? -1 : 1;\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, prevProps, nextProps, internalHandle) {\n if (instance.applyProps && updatePayload) {\n applyProps(instance, prevProps, updatePayload);\n }\n },\n finalizeInitialChildren(instance) {\n return instance == null ? void 0 : instance.__handlers;\n },\n getChildHostContext() {\n return emptyObject;\n },\n getRootHostContext() {\n return emptyObject;\n },\n prepareForCommit() {\n return null;\n },\n preparePortalMount() {\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,\n rendererPackageName: \"@atlas-viewer/atlas\"\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(({ children, setIsReady, onCreated, bounds, preset, mode = \"explore\" }) => {\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__ */ React.createElement(React.StrictMode, null, /* @__PURE__ */ React.createElement(Canvas, null, /* @__PURE__ */ React.createElement(BoundsContext.Provider, {\n value: bounds\n }, /* @__PURE__ */ React.createElement(ModeContext.Provider, {\n value: mode\n }, /* @__PURE__ */ React.createElement(AtlasContext.Provider, {\n value: preset\n }, children))))), 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__ */ React.createElement(\"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], { debug, background, ..._renderPreset[1] || {} }];\n }\n return [\"default-preset\", { background, debug }];\n }\n return _renderPreset || \"default-preset\";\n }, [_renderPreset, background, debug]);\n const [_ref, bounds, forceRefresh] = useMeasure({ scroll: true });\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 { height: _2, width: __, ...canvasProps } = restProps;\n const widthClassName = useClassname([restProps.width, restProps.height]);\n return /* @__PURE__ */ React.createElement(Container, {\n ref,\n className: [\"atlas\", hideInlineStyle ? \"\" : `atlas-width-${widthClassName}`, containerClassName, className].filter(Boolean).join(\" \").trim(),\n style: {\n ...containerStyle,\n ...hideInlineStyle ? {} : { width: restProps.width, height: restProps.height }\n }\n }, presetName === \"static-preset\" ? /* @__PURE__ */ React.createElement(Container, {\n className: \"atlas-static-container\",\n style: preset && preset.controller ? void 0 : { pointerEvents: \"none\" },\n ref: refs.container,\n tabIndex: 0,\n ...containerProps\n }) : /* @__PURE__ */ React.createElement(\"canvas\", {\n className: \"atlas-canvas\",\n part: \"atlas-canvas\",\n tabIndex: 0,\n ...canvasProps,\n ...containerProps,\n ref: refs.canvas\n }), /* @__PURE__ */ React.createElement(Container, {\n className: \"atlas-overlay\",\n style: { ...overlayStyle || {} },\n ref: refs.overlay\n }, unstable_noReconciler ? /* @__PURE__ */ React.createElement(Canvas, null, /* @__PURE__ */ React.createElement(BoundsContext.Provider, {\n value: bounds\n }, /* @__PURE__ */ React.createElement(ModeContext.Provider, {\n value: mode\n }, /* @__PURE__ */ React.createElement(AtlasContext.Provider, {\n value: preset\n }, children)))) : /* @__PURE__ */ React.createElement(AtlasWithReconciler, {\n bounds,\n preset,\n mode,\n setIsReady,\n onCreated\n }, children)), enableNavigator ? /* @__PURE__ */ React.createElement(Container, {\n className: \"atlas-navigator\"\n }, /* @__PURE__ */ React.createElement(\"canvas\", {\n className: \"atlas-navigator-canvas\",\n part: \"atlas-navigator-canvas\",\n ref: refs.navigator\n })) : null, hideInlineStyle ? /* @__PURE__ */ React.createElement(\"style\", null, `.atlas-width-${widthClassName} { width: ${restProps.width}px; height: ${restProps.height}px; }`) : /* @__PURE__ */ React.createElement(\"style\", null, `\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 `), htmlChildren);\n};\nfunction toPx(str) {\n if (Number(str) == str) {\n return `${str}px`;\n }\n return str;\n}\nconst AtlasAuto = ({ resizeHash, aspectRatio, containerProps = {}, ...props }) => {\n const [ref, _bounds, forceRefresh] = useMeasure();\n const { height, width, ...restProps } = 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__ */ React.createElement(Container, {\n ref,\n className: \"atlas-container\",\n ...containerProps\n }, bounds.width ? /* @__PURE__ */ React.createElement(Atlas, {\n width: bounds.width || 100,\n height: bounds.height || 100,\n ...restProps\n }, props.children) : null, props.hideInlineStyle ? null : /* @__PURE__ */ React.createElement(\"style\", null, `\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 `), props.htmlChildren);\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 = ({ onCreate }) => {\n const mousePosition = useRef({ x: 0, y: 0 });\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 { x: x2, y: y2, width, height } = 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 { x: x2, y: y2 } = 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({ x: Math.round(mousePosition.current.x), y: Math.round(mousePosition.current.y) });\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({ x: Math.round(mousePosition.current.x), y: Math.round(mousePosition.current.y) });\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 module = await import(\"react-dom/client\");\n const createRoot = module.default ? module.default.createRoot : module.createRoot;\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 module = await import(\"react-dom\");\n const render = module.default ? module.default.render : module.render;\n render(toRender, html);\n }\n }\n}\nconst HTMLPortal = React.forwardRef(({ children, ...props }, 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__ */ React.createElement(\"div\", {\n ref\n }, children) : 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__ */ React.createElement(\"box\", {\n html: true,\n ...props,\n ref: boxRef\n });\n});\nHTMLPortal.displayName = \"HTMLPortal\";\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};\nfunction 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 { portalRef, mode, mouseEvent, isEditing } = useResizeWorldItem({ x: props.x || 0, y: props.y || 0, width: props.width, height: props.height, maintainAspectRatio }, 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__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"world-object\", {\n ...props\n }, children, inSketchMode && resizable ? /* @__PURE__ */ React.createElement(HTMLPortal, {\n ref: portalRef,\n target: { x: 0, y: 0, height: props.height, width: props.width },\n relative: true,\n interactive: false\n }, inSketchMode && resizable ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"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__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"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__ */ React.createElement(\"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__ */ React.createElement(\"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__ */ React.createElement(\"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 })) : null, /* @__PURE__ */ React.createElement(\"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__ */ React.createElement(\"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__ */ React.createElement(\"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__ */ React.createElement(\"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 })) : null) : null));\n}\nfunction RegionHighlight({\n interactive,\n region,\n onClick,\n onSave,\n maintainAspectRatio,\n disableCardinalControls,\n isEditing,\n style = { backgroundColor: \"rgba(0,0,0,.5)\" }\n}) {\n const saveCallback = useCallback((bounds) => {\n onSave({ id: region.id, x: region.x, y: region.y, height: region.height, width: region.width, ...bounds });\n }, [onSave, region.id, region.x, region.y, region.height, region.width]);\n return /* @__PURE__ */ React.createElement(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 }, /* @__PURE__ */ React.createElement(\"box\", {\n interactive,\n onClick: (e) => {\n e.preventDefault();\n e.stopPropagation();\n onClick(region);\n },\n target: { x: 0, y: 0, width: region.width, height: region.height },\n style\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__ */ React.createElement(\"world-object\", {\n key: props.tiles.imageService.id,\n scale: scale2,\n height: props.tiles.height,\n width: props.tiles.width,\n x: props.x,\n y: props.y,\n onClick: props.onClick\n }, /* @__PURE__ */ React.createElement(\"composite-image\", {\n key: props.tiles.imageService.id,\n id: props.tiles.imageService.id,\n width: props.tiles.width,\n height: props.tiles.height\n }, props.tiles.thumbnail ? /* @__PURE__ */ React.createElement(\"world-image\", {\n priority: true,\n uri: props.tiles.thumbnail.id,\n target: { width: props.tiles.width, height: props.tiles.height },\n display: { width: props.tiles.thumbnail.width, height: props.tiles.thumbnail.height }\n }) : null, sizes.map((size, n) => /* @__PURE__ */ React.createElement(\"world-image\", {\n key: n,\n uri: `${canonicalId}/full/${size.width},${size.height}/0/default.jpg`,\n target: { width: props.tiles.width, height: props.tiles.height },\n display: { width: size.width, height: size.height }\n })), tiles.map((tile) => (tile.scaleFactors || []).map((size) => /* @__PURE__ */ React.createElement(\"tiled-image\", {\n key: `${props.tiles.imageService.id}-tile-${size}`,\n uri: props.tiles.imageService.id,\n display: { width: props.tiles.width, height: props.tiles.height },\n tile,\n scaleFactor: size\n })))));\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__ */ React.createElement(\"world-object\", {\n x: props.x || 0,\n y: props.y || 0,\n width: props.width,\n height: props.height\n }, tiles ? /* @__PURE__ */ React.createElement(TileSet, {\n tiles,\n x: 0,\n y: 0,\n width: props.width,\n height: props.height\n }) : null);\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, { onCreated, resetWorldOnChange = true, mode = \"explore\", cover, containerRef, ...restProps }) => {\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({ cover });\n }\n });\n }\n }\n return () => {\n };\n }, [preset, cover, resetWorldOnChange]);\n useLayoutEffect(() => {\n if (preset) {\n ReactAtlas.render(/* @__PURE__ */ React.createElement(Canvas, null, /* @__PURE__ */ React.createElement(ModeContext.Provider, {\n value: mode\n }, /* @__PURE__ */ React.createElement(AtlasContext.Provider, {\n value: preset\n }, children))), 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 annotationPage: undefined,\n};\n\nexport type ResourceContextType = {\n collection?: string;\n manifest?: string;\n range?: string;\n canvas?: string;\n annotation?: string;\n annotationPage?: 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 { 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 { 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","import { Vault } from '@iiif/vault';\nimport { ManifestNormalized, RangeNormalized, Reference } from '@iiif/presentation-3';\n\nexport function findFirstCanvasFromRange(vault: Vault, range: RangeNormalized): null | Reference<'Canvas'> {\n for (const inner of range.items) {\n if (inner.type === 'Canvas') {\n return inner as Reference<'Canvas'>;\n }\n if (inner.type === 'Range') {\n const found = findFirstCanvasFromRange(vault, vault.get(inner));\n if (found) {\n return found;\n }\n }\n }\n return null;\n}\n\nexport function findAllCanvasesInRange(vault: Vault, range: RangeNormalized): Array<Reference<'Canvas'>> {\n const found: Reference<'Canvas'>[] = [];\n for (const inner of range.items) {\n if (inner.type === 'Canvas') {\n if (inner.id.indexOf('#') !== -1) {\n found.push({ id: inner.id.split('#')[0], type: 'Canvas' });\n } else {\n found.push(inner as Reference<'Canvas'>);\n }\n }\n if (inner.type === 'Range') {\n found.push(...findAllCanvasesInRange(vault, vault.get(inner)));\n }\n if ((inner as any).type === 'SpecificResource') {\n const sourceId = typeof (inner as any).source === 'string' ? (inner as any).source : (inner as any).source.id;\n found.push({ id: sourceId, type: 'Canvas' });\n }\n }\n return found;\n}\n\nexport function findManifestSelectedRange(\n vault: Vault,\n manifest: ManifestNormalized,\n canvasId: string\n): null | RangeNormalized {\n for (const range of manifest.structures) {\n const found = findSelectedRange(vault, vault.get(range), canvasId);\n if (found) {\n return found;\n }\n }\n\n return null;\n}\n\nexport function findSelectedRange(vault: Vault, range: RangeNormalized, canvasId: string): null | RangeNormalized {\n for (const inner of range.items) {\n const parsedId = inner.id?.split('#')[0];\n if ((inner as any).type === 'SpecificResource' && (inner as any).source === canvasId) {\n return range;\n }\n if (inner.type === 'Canvas' && canvasId === parsedId) {\n return range;\n }\n if (inner.type === 'Range') {\n const found = findSelectedRange(vault, vault.get(inner), canvasId);\n if (found) {\n return found;\n }\n }\n }\n return null;\n}\n","import { CanvasNormalized, ManifestNormalized, RangeNormalized, Reference } from '@iiif/presentation-3';\nimport { Vault } from '@iiif/vault';\nimport { findAllCanvasesInRange } from './ranges';\n\n/**\n * Get visible canvases from canvas ID\n *\n * This function returns a list of canvas references that should all be displayed\n * when the passed canvasId is visible. This should work for individual items,\n * 2-up paged view and continuous (scrolls).\n *\n * The options are listed below (from IIIF docs)\n *\n * - `unordered` - Valid on Collections, Manifests and Ranges. The Canvases included in resources that have this behavior\n * have no inherent order, and user interfaces should avoid implying an order to the user. Disjoint with individuals,\n * continuous, and paged.\n *\n * - `individuals` - Valid on Collections, Manifests, and Ranges. For Collections that have this behavior, each of the\n * included Manifests are distinct objects in the given order. For Manifests and Ranges, the included Canvases are\n * distinct views, and should not be presented in a page-turning interface. This is the default layout behavior if\n * not specified. Disjoint with unordered, continuous, and paged.\n *\n * - `continuous` Valid on Collections, Manifests and Ranges, which include Canvases that have at least height and\n * width dimensions. Canvases included in resources that have this behavior are partial views and an appropriate\n * rendering might display all of the Canvases virtually stitched together, such as a long scroll split into\n * sections. This behavior has no implication for audio resources. The viewingDirection of the Manifest will\n * determine the appropriate arrangement of the Canvases. Disjoint with unordered, individuals and paged.\n *\n * - `paged` Valid on Collections, Manifests and Ranges, which include Canvases that have at least height and width\n * dimensions. Canvases included in resources that have this behavior represent views that should be presented in\n * a page-turning interface if one is available. The first canvas is a single view (the first recto) and thus the\n * second canvas likely represents the back of the object in the first canvas. If this is not the case, see the\n * behavior value non-paged. Disjoint with unordered, individuals, continuous, facing-pages and non-paged.\n *\n */\nexport function getVisibleCanvasesFromCanvasId(\n vault: Vault,\n manifestOrRange: ManifestNormalized | RangeNormalized,\n canvasId: string | null,\n preventPaged = false\n): Reference<'Canvas'>[] {\n const behavior = manifestOrRange.behavior;\n const fullCanvas = canvasId ? vault.get<CanvasNormalized>(canvasId) : null;\n if (!fullCanvas) {\n return [];\n }\n\n const canvasBehavior = fullCanvas.behavior;\n const isPaged = preventPaged ? false : behavior.includes('paged');\n const isContinuous = isPaged ? false : behavior.includes('continuous');\n const isIndividuals = isPaged || isContinuous ? false : behavior.includes('individuals');\n const isCanvasFacingPages = canvasBehavior.includes('facing-pages');\n const isCanvasNonPaged = canvasBehavior.includes('non-paged');\n\n // Individuals should just be the default.\n if (isCanvasFacingPages || isCanvasNonPaged || isIndividuals || preventPaged) {\n return [{ id: fullCanvas.id, type: 'Canvas' }];\n }\n\n const [manifestItems, ordering] = getManifestSequence(vault, manifestOrRange);\n\n // Continuous should just return all items together.\n if (isContinuous) {\n return manifestItems;\n }\n\n const canvasIndex = manifestItems.findIndex((r) => r.id === canvasId);\n if (canvasIndex === -1) {\n return [];\n }\n\n for (const indexes of ordering) {\n if (indexes.includes(canvasIndex)) {\n return indexes.map((index) => manifestItems[index]);\n }\n }\n\n return [{ id: fullCanvas.id, type: 'Canvas' }];\n}\n\nexport function getManifestSequence(\n vault: Vault,\n manifestOrRange: ManifestNormalized | RangeNormalized,\n { disablePaging }: { disablePaging?: boolean } = {}\n): [Reference<'Canvas'>[], number[][]] {\n const behavior = manifestOrRange.behavior;\n const isPaged = behavior.includes('paged');\n const isContinuous = isPaged ? false : behavior.includes('continuous');\n const isIndividuals = isPaged || isContinuous ? false : behavior.includes('individuals');\n const manifestItems =\n manifestOrRange.type === 'Manifest' ? manifestOrRange.items : findAllCanvasesInRange(vault, manifestOrRange);\n\n // Continuous should just return all items together.\n if (isContinuous) {\n return [manifestItems, [manifestItems.map((_, index) => index)]];\n }\n\n // Individuals should just be the default.\n if (isIndividuals || !isPaged || disablePaging) {\n return [manifestItems, manifestItems.map((_, index) => [index])];\n }\n\n // This is the tricky case.\n const ordering: number[][] = [];\n let currentOrdering: number[] = [];\n\n const flush = () => {\n if (currentOrdering.length) {\n ordering.push([...currentOrdering]);\n currentOrdering = [];\n }\n };\n\n let offset = 0;\n for (let i = 0; i < manifestItems.length; i++) {\n const canvas = vault.get<CanvasNormalized>(manifestItems[i]);\n if (canvas.behavior.includes('non-paged')) {\n if (i === offset) {\n offset++;\n }\n // Skip over these completely.\n continue;\n }\n\n if (i === offset || canvas.behavior.includes('facing-pages')) {\n // Flush and push a single.\n flush();\n ordering.push([i]);\n continue;\n }\n\n currentOrdering.push(i);\n\n if (currentOrdering.length > 1) {\n flush();\n }\n }\n\n if (currentOrdering.length) {\n flush();\n }\n\n return [manifestItems, ordering];\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","import { getManifestSequence } from '../future-helpers/sequences';\nimport { useManifest } from '../hooks/useManifest';\nimport { useCallback, useMemo, useState } from 'react';\nimport { useRange } from '../hooks/useRange';\nimport { useVault } from '../hooks/useVault';\n\nexport function useCanvasSequence({ startCanvas, disablePaging }: { startCanvas?: string; disablePaging?: boolean }) {\n const vault = useVault();\n const manifest = useManifest();\n const range = useRange();\n const [cursor, setCursor] = useState<number>(undefined as any);\n const rangeOrManifest = range ? range : manifest;\n\n if (!rangeOrManifest) {\n throw new Error('Nothing selected');\n }\n\n const [items, initialSequence] = useMemo(\n () => getManifestSequence(vault, rangeOrManifest, { disablePaging }),\n [vault, rangeOrManifest]\n );\n\n const setCanvasIndex = useCallback(\n (index: number) => {\n const foundSequence = initialSequence.findIndex((i) => i.includes(index));\n setCursor(foundSequence === -1 ? 0 : foundSequence);\n },\n [items, initialSequence]\n );\n\n const setCanvasId = useCallback(\n (id: string) => {\n const foundIndex = items.findIndex((i) => i.id === id);\n if (foundIndex !== -1) {\n setCanvasIndex(foundIndex);\n } else {\n setCursor(0);\n }\n },\n [items, initialSequence]\n );\n\n const next = useCallback(() => {\n setCursor((i) => {\n if (i >= initialSequence.length) {\n return i;\n }\n return i + 1;\n });\n }, [initialSequence]);\n\n const previous = useCallback(() => {\n setCursor((i) => {\n if (i <= 0) {\n return 0;\n }\n return i - 1;\n });\n }, [initialSequence]);\n\n // Need to set an initial cursor from the canvasId (if it's valid)\n if (typeof cursor === 'undefined') {\n if (startCanvas) {\n setCanvasId(startCanvas);\n } else {\n setCursor(0);\n }\n }\n\n return {\n visibleItems: initialSequence[cursor]?.map((idx) => items[idx].id) || [],\n cursor,\n items,\n sequence: initialSequence,\n setSequenceIndex: setCursor,\n setCanvasIndex,\n setCanvasId,\n next,\n previous,\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';\nimport { useManifest } from '../hooks/useManifest';\nimport { SimpleViewerContext, SimpleViewerProps } from './SimpleViewerContext.types';\nimport { RangeContext } from '../context/RangeContext';\nimport { useCanvasSequence } from './SimpleViewerContext.hooks';\n\nconst noop = () => {\n //\n};\n\nexport const SimpleViewerReactContext = createContext<SimpleViewerContext>({\n setCurrentCanvasId: noop,\n setCurrentCanvasIndex: noop,\n nextCanvas: noop,\n previousCanvas: noop,\n items: [],\n sequence: [],\n setSequenceIndex: noop,\n currentSequenceIndex: 0,\n});\n\nexport function InnerViewerProvider(props: SimpleViewerProps) {\n const manifest = useManifest();\n const { cursor, visibleItems, next, sequence, items, setCanvasIndex, setCanvasId, previous, setSequenceIndex } =\n useCanvasSequence({\n startCanvas: props.startCanvas,\n disablePaging: props.pagingEnabled === false,\n });\n\n const ctx = useMemo(\n () =>\n ({\n sequence,\n items,\n // Extra functions.\n setCurrentCanvasId: setCanvasId,\n nextCanvas: next,\n previousCanvas: previous,\n totalCanvases: items.length,\n setCurrentCanvasIndex: setCanvasIndex,\n setSequenceIndex: setSequenceIndex,\n currentSequenceIndex: cursor,\n } as SimpleViewerContext),\n [sequence, items, setCanvasId, next, previous, items, setCanvasIndex, setSequenceIndex, cursor]\n );\n\n if (!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 return (\n <SimpleViewerReactContext.Provider value={ctx}>\n <VisibleCanvasReactContext.Provider value={visibleItems}>\n <CanvasContext canvas={visibleItems[0]}>{props.children}</CanvasContext>\n </VisibleCanvasReactContext.Provider>\n </SimpleViewerReactContext.Provider>\n );\n}\n\nexport function SimpleViewerProvider(props: SimpleViewerProps) {\n const manifest = useExternalManifest(props.manifest);\n\n if (!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 const inner = <InnerViewerProvider {...props}>{props.children}</InnerViewerProvider>;\n\n return (\n <ManifestContext manifest={manifest.id}>\n {props.rangeId ? <RangeContext range={props.rangeId}>{inner}</RangeContext> : inner}\n </ManifestContext>\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","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 } from 'react';\nimport { Root } from 'react-dom/client';\nimport { useViewerPreset, ViewerPresetContext } from './ViewerPresetContext';\n\nexport const PortalContext = React.createContext<Root | null>(null);\nexport const OverlayPortalContext = React.createContext<Root | null>(null);\n\nexport function CanvasPortal({ children, overlay }: { children: ReactNode; overlay?: boolean }) {\n const htmlElement = useContext(overlay ? OverlayPortalContext : PortalContext);\n const preset = useViewerPreset();\n\n useLayoutEffect(() => {\n if (htmlElement) {\n try {\n htmlElement.render(<ViewerPresetContext.Provider value={preset}>{children}</ViewerPresetContext.Provider>);\n } catch (e) {\n // ignore..\n }\n }\n }, [children, preset]);\n\n return null;\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 React, { ReactNode, useLayoutEffect, useRef, useState } from 'react';\nimport { AtlasAuto, Preset, AtlasProps } from '@atlas-viewer/atlas';\nimport { ErrorBoundary } from 'react-error-boundary';\nimport { ContextBridge, useContextBridge } from '../context/ContextBridge';\nimport { VirtualAnnotationProvider } from '../hooks/useVirtualAnnotationPageContext';\nimport { DefaultCanvasFallback } from './render/DefaultCanvasFallback';\nimport { OverlayPortalContext, PortalContext } from '../context/PortalContext';\nimport { ViewerPresetContext } from '../context/ViewerPresetContext';\nimport { createRoot, Root } from 'react-dom/client';\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<Root | null>();\n const [viewerPreset, setViewerPreset] = useState<Preset | null>();\n const overlayPortal = useRef<HTMLDivElement>(null);\n const [overlayPortalElement, setOverlayPortalElement] = useState<Root | null>();\n const bridge = useContextBridge();\n const ErrorFallback: any = errorFallback || DefaultCanvasFallback;\n\n useLayoutEffect(() => {\n const roots: Record<string, Root> = {};\n if (portal.current) {\n const $el = document.createElement('div');\n portal.current.appendChild($el);\n roots.portal = createRoot($el);\n setPortalElement(roots.portal);\n }\n if (overlayPortal.current) {\n const $el = document.createElement('div');\n overlayPortal.current.appendChild($el);\n roots.overlayPortal = createRoot($el);\n setOverlayPortalElement(roots.overlayPortal);\n }\n\n return () => {\n setPortalElement(null);\n setOverlayPortalElement(null);\n\n setTimeout(() => {\n if (roots.portal) {\n roots.portal.unmount();\n }\n if (roots.overlayPortal) {\n roots.overlayPortal.unmount();\n }\n }, 0);\n };\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 children,\n onClick,\n}: {\n id: string;\n image: ImageWithOptionalService;\n thumbnail?: ImageCandidate;\n isStatic?: boolean;\n x?: number;\n y?: number;\n children?: ReactNode;\n onClick?: (e: any) => void;\n}) {\n return (\n <Fragment key={id}>\n {!image.service ? (\n <Fragment key=\"no-service\">\n <world-image\n onClick={onClick}\n // key={`${image.width}/${image.height}`}\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 {children}\n </Fragment>\n ) : (\n <Fragment key=\"service\">\n <TileSet\n // key={`${image.target.spatial?.width}/${image.target.spatial?.height}`}\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 onClick={onClick}\n />\n {children}\n </Fragment>\n )}\n </Fragment>\n );\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, b2) => {\n for (var prop in b2 || (b2 = {}))\n if (__hasOwnProp.call(b2, prop))\n __defNormalProp(a, prop, b2[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b2)) {\n if (__propIsEnum.call(b2, prop))\n __defNormalProp(a, prop, b2[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b2) => __defProps(a, __getOwnPropDescs(b2));\nfunction 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}\nfunction 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}\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 ? this.verify(e) : (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);\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 getClosestLanguage(i18nLanguage, languages, i18nLanguages = [], strictFallback = false) {\n if (!i18nLanguage || !languages || languages.length === 0) {\n return void 0;\n }\n if (languages.length === 1) {\n return languages[0];\n }\n if (languages.indexOf(i18nLanguage) !== -1) {\n return i18nLanguage;\n }\n const root = i18nLanguage.indexOf(\"-\") !== -1 ? i18nLanguage.slice(0, i18nLanguage.indexOf(\"-\")) : null;\n if (root && languages.indexOf(root) !== -1) {\n return root;\n }\n for (const lang of i18nLanguages) {\n if (languages.indexOf(lang) !== -1) {\n return lang;\n }\n }\n if (!strictFallback) {\n const inverseRoot = languages.map((l) => l.indexOf(\"-\") !== -1 ? l.slice(0, l.indexOf(\"-\")) : null);\n const inverseIdx = inverseRoot.indexOf(i18nLanguage);\n if (inverseIdx !== -1) {\n return languages[inverseIdx];\n }\n for (const lang of i18nLanguages) {\n const root2 = lang.indexOf(\"-\") !== -1 ? lang.slice(0, lang.indexOf(\"-\")) : null;\n const inverseIdx2 = root2 ? languages.indexOf(root2) : -1;\n if (inverseIdx2 !== -1) {\n return languages[inverseIdx2];\n }\n }\n }\n if (languages.indexOf(\"none\") !== -1) {\n return \"none\";\n }\n if (languages.indexOf(\"@none\") !== -1) {\n return \"@none\";\n }\n return languages[0];\n}\nfunction buildLocaleString(inputText, i18nLanguage, options = {}) {\n const { strictFallback = false, defaultText = \"\", separator = \"\\n\", fallbackLanguages = [], closest } = options;\n const languages = Object.keys(inputText || {});\n const language = closest ? i18nLanguage : getClosestLanguage(i18nLanguage, languages, fallbackLanguages, strictFallback);\n if (!inputText) {\n return defaultText;\n }\n if (typeof inputText === \"string\") {\n return inputText;\n }\n const candidateText = language ? inputText[language] : void 0;\n if (candidateText) {\n if (typeof candidateText === \"string\") {\n return candidateText;\n }\n return candidateText.join(separator);\n }\n return \"\";\n}\nfunction getValue(inputText, options = {}) {\n return buildLocaleString(inputText, typeof navigator !== \"undefined\" ? navigator.language : void 0, options);\n}\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}\nfunction validateContentState(annotation, strict = false) {\n if (typeof annotation === \"string\") {\n if (annotation.startsWith(\"{\")) {\n try {\n const parsed = JSON.parse(annotation);\n return validateContentState(parsed);\n } catch (err) {\n return [false, { reason: \"Invalid JSON\" }];\n }\n }\n return [true];\n }\n if (Array.isArray(annotation)) {\n for (const anno of annotation) {\n const [valid, reason] = validateContentState(anno);\n if (!valid && reason) {\n return [valid, reason];\n }\n }\n return [true];\n }\n if (annotation.type === \"Annotation\") {\n return [true];\n }\n if (strict && annotation.type === \"Canvas\" && !annotation.partOf) {\n return [false, { reason: \"Canvas without partOf cannot be loaded\" }];\n }\n return [true];\n}\nfunction serialiseContentState(annotation) {\n return encodeContentState(typeof annotation === \"string\" ? annotation : JSON.stringify(annotation));\n}\nfunction parseContentState(state, asyncOrFetcher) {\n state = state.trim();\n if (state[0] === \"{\") {\n return asyncOrFetcher ? Promise.resolve(JSON.parse(state)) : JSON.parse(state);\n }\n if (state.startsWith(\"http\")) {\n if (!asyncOrFetcher) {\n throw new Error(\"Cannot fetch remote fetch with async=false in parseContentState\");\n }\n return fetch(state).then((r) => r.json());\n }\n return parseContentState(decodeContentState(state), asyncOrFetcher);\n}\nfunction encodeContentState(state) {\n const uriEncoded = encodeURIComponent(state);\n const base64 = typeof btoa === \"undefined\" ? Buffer.from(uriEncoded, \"utf-8\").toString(\"base64\") : btoa(uriEncoded);\n const base64url = base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\");\n return base64url.replace(/=/g, \"\");\n}\nfunction decodeContentState(encodedContentState) {\n const base64url = restorePadding(encodedContentState);\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const base64Decoded = typeof atob === \"undefined\" ? Buffer.from(base64, \"base64\").toString(\"utf-8\") : atob(base64);\n return decodeURIComponent(base64Decoded).trim();\n}\nfunction restorePadding(s) {\n const pad = s.length % 4;\n if (pad === 1) {\n throw new Error(\"InvalidLengthError: Input base64url string is the wrong length to determine padding\");\n }\n return s + (pad ? \"====\".slice(0, 4 - pad) : \"\");\n}\nfunction normaliseContentState(state) {\n if (!state) {\n throw new Error(\"Content state is empty\");\n }\n if (!Array.isArray(state)) {\n state = [state];\n }\n let annoId = \"vault://virtual-annotation/\" + new Date().getTime();\n const targets = [];\n for (const source of state) {\n if (typeof source === \"string\") {\n throw new Error(\"Content state is a [String] type and cannot be inferred\");\n }\n if (source.type === \"Annotation\") {\n annoId = source.id;\n if (Array.isArray(source.motivation)) {\n for (const singleMotivation of source.motivation) {\n }\n }\n if (Array.isArray(source.target)) {\n for (const target2 of source.target) {\n const expanded = expandTarget(target2);\n targets.push(expanded);\n }\n } else {\n const expanded = expandTarget(source.target);\n targets.push(expanded);\n }\n continue;\n }\n const target = expandTarget(source);\n targets.push(target);\n }\n return {\n id: annoId,\n type: \"Annotation\",\n motivation: [\"contentState\", ...state.motivation || []],\n target: targets,\n extensions: {}\n };\n}\nexport { buildLocaleString, createEventsHelper, createStylesHelper, createThumbnailHelper, decodeContentState, encodeContentState, expandTarget, getClosestLanguage, getValue, normaliseContentState, parseContentState, parseSelector, serialiseContentState, validateContentState };\n//# sourceMappingURL=index.mjs.map\n","import {\n AnnotationNormalized,\n CanvasNormalized,\n ContentResource,\n IIIFExternalWebResource,\n PointSelector,\n SpecificResource,\n W3CAnnotationTarget,\n} from '@iiif/presentation-3';\nimport { Vault } from '@iiif/vault';\nimport { ChoiceDescription } from './choice-types';\nimport { UseRenderingStrategy } from '../../hooks/useRenderingStrategy';\nimport { BoxSelector, expandTarget, SupportedTarget, TemporalBoxSelector } from '@iiif/vault-helpers';\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 annotationId: string;\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, { skipSelfReturn: false });\n for (const unknownBody of bodies) {\n if (!unknownBody) {\n continue;\n }\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 annotationId: annotation.id,\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 function getParsedTargetSelector(\n canvas: CanvasNormalized,\n target: W3CAnnotationTarget | W3CAnnotationTarget[]\n): [TemporalBoxSelector | BoxSelector | PointSelector | null, SupportedTarget['source']] {\n const { selector: imageTarget, source } = expandTarget(target);\n\n if (source.id !== canvas.id) {\n // Skip invalid targets.\n return [null, source];\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 return [\n imageTarget\n ? imageTarget.type === 'TemporalSelector'\n ? {\n type: 'TemporalBoxSelector',\n temporal: imageTarget.temporal,\n spatial: defaultTarget.spatial,\n }\n : imageTarget\n : null,\n source,\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\nexport const emptyStrategy = (width: number, height: number): UseRenderingStrategy[0] => {\n return { type: 'empty', width, height, annotations: { pages: [] }, image: null, images: [] };\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';\nimport { useAnnotation } from './useAnnotation';\n\nexport function usePaintingAnnotations(\n options: { canvasId?: string; enableSingleAnnotation?: boolean } = {}\n): AnnotationNormalized[] {\n const annotation = useAnnotation();\n const canvas = useCanvas(options.canvasId ? { id: options.canvasId } : undefined);\n\n return useVaultSelector(\n (state, vault) => {\n if (!canvas) {\n return [];\n }\n if (annotation && options.enableSingleAnnotation) {\n return [annotation];\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(\n options?: { defaultChoices?: string[]; enableSingleAnnotation?: boolean },\n deps: any[] = []\n) {\n const vault = useVault();\n const paintingAnnotations = usePaintingAnnotations({ enableSingleAnnotation: options?.enableSingleAnnotation });\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, PointSelector, W3CAnnotationTarget } from '@iiif/presentation-3';\nimport { ImageServiceLoaderType } from '../../hooks/useLoadImageService';\nimport { AnnotationPageDescription, ImageWithOptionalService } from './resource-types';\nimport { getImageServices } from '@atlas-viewer/iiif-image-api';\nimport { getParsedTargetSelector, Paintables, unsupportedStrategy } from './rendering-utils';\nimport { ChoiceDescription } from './choice-types';\nimport { expandTarget, SupportedSelectors } from '@iiif/vault-helpers/annotation-targets';\nimport { TemporalBoxSelector, BoxSelector } from '@iiif/vault-helpers';\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 // 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, source] = getParsedTargetSelector(canvas, singleImage.target);\n if (source.id !== canvas.id) {\n // Skip invalid targets.\n continue;\n }\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 annotationId: singleImage.annotationId,\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';\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 annotationId: paintables.items[0].annotationId,\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 annotationId: paintables.items[0].annotationId,\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 { CanvasNormalized, InternationalString } from '@iiif/presentation-3';\nimport { ChoiceDescription } from './choice-types';\nimport { AnnotationPageDescription } from './resource-types';\nimport { getParsedTargetSelector, Paintables } from './rendering-utils';\nimport { RenderingStrategy } from './strategies';\nimport { SupportedTarget } from '@iiif/vault-helpers';\n\nexport type TextualContentStrategy = {\n type: 'textual-content';\n items: { annotationId: string; text: InternationalString; target: SupportedTarget | null }[];\n choice?: ChoiceDescription; // future\n annotations?: AnnotationPageDescription; // future\n};\n\nfunction parseType(item: any, languageMap: InternationalString = {}, lang?: string) {\n const language = item.language || lang || 'none';\n switch (item.type) {\n case 'TextualBody': {\n if (typeof item.value !== 'undefined') {\n languageMap[language] = item.value;\n }\n break;\n }\n case 'List':\n case 'Composite':\n case 'Choice': {\n if (item.items) {\n item.items.forEach((inner: any) => parseType(inner, languageMap, language));\n }\n }\n }\n return languageMap;\n}\n\nexport function getTextualContentStrategy(canvas: CanvasNormalized, paintables: Paintables): RenderingStrategy {\n const items: TextualContentStrategy['items'] = [];\n\n paintables.items.forEach((item) => {\n if (item.resource) {\n const [target] = getParsedTargetSelector(canvas, item.target);\n items.push({ annotationId: item.annotationId, text: parseType(item.resource), target: target as any });\n }\n });\n\n return {\n type: 'textual-content',\n items,\n } as TextualContentStrategy;\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 {\n emptyActions,\n emptyStrategy,\n unknownResponse,\n unsupportedStrategy,\n} 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';\nimport { getTextualContentStrategy } from '../features/rendering-strategy/textual-content-strategy';\nimport { useAnnotation } from './useAnnotation';\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 enableSingleAnnotation?: boolean;\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 || [\n 'empty',\n 'images',\n 'media',\n 'textual-content',\n 'complex-timeline',\n ];\n\n const [paintables, actions] = usePaintables(options, [imageServiceStatus]);\n\n const strategy = useMemo(() => {\n if (!canvas) {\n return unknownResponse;\n }\n\n if (paintables.types.length === 0) {\n if (supports.indexOf('empty') !== -1) {\n return emptyStrategy(canvas.width, canvas.height);\n }\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 if (mainType === 'textualbody') {\n if (supports.indexOf('textual-content') === -1) {\n return unsupportedStrategy('Textual content not supported');\n }\n\n return getTextualContentStrategy(canvas, paintables);\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 didUnmount.current = false;\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 { BoxStyle } from '@atlas-viewer/atlas';\nimport { useCanvas } from '../../hooks/useCanvas';\n\nexport function CanvasBackground({ style }: { style?: BoxStyle }) {\n const canvas = useCanvas();\n\n if (!canvas || !canvas.height || !canvas.width) {\n return null;\n }\n\n return <box interactive={false} target={{ x: 0, y: 0, width: canvas.width, height: canvas.height }} style={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));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nimport React, { useContext, useState, useRef, useEffect, useMemo } from \"react\";\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nvar defaultOptions = {\n bindI18n: \"languageChanged\",\n bindI18nStore: \"\",\n transEmptyNodeValue: \"\",\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: \"\",\n transKeepBasicHtmlNodesFor: [\"br\", \"strong\", \"i\", \"p\"],\n useSuspense: true\n};\nvar i18nInstance;\nvar I18nContext = React.createContext();\nfunction getDefaults() {\n return defaultOptions;\n}\nvar ReportNamespaces = function() {\n function ReportNamespaces2() {\n _classCallCheck(this, ReportNamespaces2);\n this.usedNamespaces = {};\n }\n _createClass(ReportNamespaces2, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n namespaces.forEach(function(ns) {\n if (!_this.usedNamespaces[ns])\n _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n return ReportNamespaces2;\n}();\nfunction getI18n() {\n return i18nInstance;\n}\nfunction warn() {\n if (console && console.warn) {\n var _console;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[0] === \"string\")\n args[0] = \"react-i18next:: \".concat(args[0]);\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nfunction warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === \"string\" && alreadyWarned[args[0]])\n return;\n if (typeof args[0] === \"string\")\n alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\nfunction loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function() {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized2() {\n setTimeout(function() {\n i18n.off(\"initialized\", initialized2);\n }, 0);\n cb();\n };\n i18n.on(\"initialized\", initialized);\n }\n });\n}\nfunction hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce(\"i18n.languages were undefined or empty\", i18n.languages);\n return true;\n }\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === \"cimode\")\n return true;\n var loadNotPending = function loadNotPending2(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n if (options.bindI18n && options.bindI18n.indexOf(\"languageChanging\") > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns))\n return false;\n if (i18n.hasResourceBundle(lng, ns))\n return true;\n if (!i18n.services.backendConnector.backend)\n return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns)))\n return true;\n return false;\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr))\n return arr;\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null)\n return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i)\n break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null)\n _i[\"return\"]();\n } finally {\n if (_d)\n throw _e;\n }\n }\n return _arr;\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length)\n len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o)\n return;\n if (typeof o === \"string\")\n return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor)\n n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\")\n return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n return _arrayLikeToArray(o, minLen);\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n var _ref = useContext(I18nContext) || {}, i18nFromContext = _ref.i18n, defaultNSFromContext = _ref.defaultNS;\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces)\n i18n.reportNamespaces = new ReportNamespaces();\n if (!i18n) {\n warnOnce(\"You will need to pass in an i18next instance by using initReactI18next\");\n var notReadyT = function notReadyT2(k) {\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n if (i18n.options.react && i18n.options.react.wait !== void 0)\n warnOnce(\"It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.\");\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n var useSuspense = i18nOptions.useSuspense, keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === \"string\" ? [namespaces] : namespaces || [\"translation\"];\n if (i18n.reportNamespaces.addUsedNamespaces)\n i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function(n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n function getT() {\n return i18n.getFixedT(null, i18nOptions.nsMode === \"fallback\" ? namespaces : namespaces[0], keyPrefix);\n }\n var _useState = useState(getT), _useState2 = _slicedToArray(_useState, 2), t = _useState2[0], setT = _useState2[1];\n var isMounted = useRef(true);\n useEffect(function() {\n var bindI18n = i18nOptions.bindI18n, bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function() {\n if (isMounted.current)\n setT(getT);\n });\n }\n function boundReset() {\n if (isMounted.current)\n setT(getT);\n }\n if (bindI18n && i18n)\n i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n)\n i18n.store.on(bindI18nStore, boundReset);\n return function() {\n isMounted.current = false;\n if (bindI18n && i18n)\n bindI18n.split(\" \").forEach(function(e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n)\n bindI18nStore.split(\" \").forEach(function(e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, namespaces.join()]);\n var isInitial = useRef(true);\n useEffect(function() {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n isInitial.current = false;\n }, [i18n]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready)\n return ret;\n if (!ready && !useSuspense)\n return ret;\n throw new Promise(function(resolve) {\n loadNamespaces(i18n, namespaces, function() {\n resolve();\n });\n });\n}\nfunction LanguageString(_a) {\n var _b = _a, {\n as: Component,\n language,\n children\n } = _b, props = __objRest(_b, [\n \"as\",\n \"language\",\n \"children\"\n ]);\n const { i18n } = useTranslation();\n const viewingDirection = useMemo(() => i18n.dir ? i18n.dir(language) : \"ltr\", [language]);\n const isSame = useMemo(() => {\n if (!i18n.services) {\n return false;\n }\n return i18n.services.languageUtils.getLanguagePartFromCode(i18n.language) === i18n.services.languageUtils.getLanguagePartFromCode(language);\n }, [i18n.language, language]);\n if (isSame) {\n if (Component) {\n return /* @__PURE__ */ React.createElement(Component, __spreadValues({}, props), children);\n }\n return /* @__PURE__ */ React.createElement(\"span\", __spreadValues({}, props), children);\n }\n if (Component) {\n return /* @__PURE__ */ React.createElement(Component, __spreadProps(__spreadValues({}, props), {\n lang: language,\n dir: viewingDirection\n }), children);\n }\n return /* @__PURE__ */ React.createElement(\"span\", __spreadProps(__spreadValues({}, props), {\n lang: language,\n dir: viewingDirection\n }), children);\n}\nfunction getClosestLanguage(i18nLanguage, languages, i18nLanguages = [], strictFallback = false) {\n if (!i18nLanguage || !languages || languages.length === 0) {\n return void 0;\n }\n if (languages.length === 1) {\n return languages[0];\n }\n if (languages.indexOf(i18nLanguage) !== -1) {\n return i18nLanguage;\n }\n const root = i18nLanguage.indexOf(\"-\") !== -1 ? i18nLanguage.slice(0, i18nLanguage.indexOf(\"-\")) : null;\n if (root && languages.indexOf(root) !== -1) {\n return root;\n }\n for (const lang of i18nLanguages) {\n if (languages.indexOf(lang) !== -1) {\n return lang;\n }\n }\n if (!strictFallback) {\n const inverseRoot = languages.map((l) => l.indexOf(\"-\") !== -1 ? l.slice(0, l.indexOf(\"-\")) : null);\n const inverseIdx = inverseRoot.indexOf(i18nLanguage);\n if (inverseIdx !== -1) {\n return languages[inverseIdx];\n }\n for (const lang of i18nLanguages) {\n const root2 = lang.indexOf(\"-\") !== -1 ? lang.slice(0, lang.indexOf(\"-\")) : null;\n const inverseIdx2 = root2 ? languages.indexOf(root2) : -1;\n if (inverseIdx2 !== -1) {\n return languages[inverseIdx2];\n }\n }\n }\n if (languages.indexOf(\"none\") !== -1) {\n return \"none\";\n }\n if (languages.indexOf(\"@none\") !== -1) {\n return \"@none\";\n }\n return languages[0];\n}\nfunction buildLocaleString(inputText, i18nLanguage, options = {}) {\n const { strictFallback = false, defaultText = \"\", separator = \"\\n\", fallbackLanguages = [], closest } = options;\n const languages = Object.keys(inputText || {});\n const language = closest ? i18nLanguage : getClosestLanguage(i18nLanguage, languages, fallbackLanguages, strictFallback);\n if (!inputText) {\n return defaultText;\n }\n if (typeof inputText === \"string\") {\n return inputText;\n }\n const candidateText = language ? inputText[language] : void 0;\n if (candidateText) {\n if (typeof candidateText === \"string\") {\n return candidateText;\n }\n return candidateText.join(separator);\n }\n return \"\";\n}\nfunction useClosestLanguage(getLanguages, deps = []) {\n const { i18n } = useTranslation();\n const i18nLanguages = i18n && i18n.languages ? i18n.languages : [];\n const i18nLanguage = i18n && i18n.language ? i18n.language : \"en\";\n return useMemo(() => {\n const languages = getLanguages();\n return getClosestLanguage(i18nLanguage, languages, i18nLanguages);\n }, [i18nLanguages, i18nLanguage, ...deps]);\n}\nfunction useLocaleString(inputText, defaultText) {\n const language = useClosestLanguage(() => Object.keys(inputText || {}), [inputText]);\n return [\n useMemo(() => {\n return buildLocaleString(inputText, language, {\n defaultText,\n closest: true\n });\n }, [language, defaultText, inputText]),\n language\n ];\n}\nconst LocaleString = (_c) => {\n var _d = _c, { as: Component, defaultText, enableDangerouslySetInnerHTML, children } = _d, props = __objRest(_d, [\"as\", \"defaultText\", \"enableDangerouslySetInnerHTML\", \"children\"]);\n const [text, language] = useLocaleString(children, defaultText);\n if (language) {\n return /* @__PURE__ */ React.createElement(LanguageString, __spreadProps(__spreadValues({}, props), {\n as: Component,\n language,\n title: enableDangerouslySetInnerHTML ? void 0 : text,\n dangerouslySetInnerHTML: enableDangerouslySetInnerHTML ? {\n __html: text\n } : void 0\n }), enableDangerouslySetInnerHTML ? void 0 : text);\n }\n if (Component) {\n return /* @__PURE__ */ React.createElement(Component, __spreadValues({}, props), text);\n }\n return /* @__PURE__ */ React.createElement(\"span\", __spreadProps(__spreadValues({}, props), {\n title: enableDangerouslySetInnerHTML ? void 0 : text,\n dangerouslySetInnerHTML: enableDangerouslySetInnerHTML ? {\n __html: text\n } : void 0\n }), enableDangerouslySetInnerHTML ? void 0 : text);\n};\nfunction useCreateLocaleString() {\n const { i18n } = useTranslation();\n const i18nLanguages = i18n && i18n.languages ? i18n.languages : [];\n const i18nLanguage = i18n && i18n.language ? i18n.language : \"en\";\n return function createLocaleString(inputText, defaultText) {\n return buildLocaleString(inputText, i18nLanguage, { fallbackLanguages: i18nLanguages, defaultText });\n };\n}\nexport { LanguageString, LocaleString, useClosestLanguage, useCreateLocaleString, useLocaleString };\n//# sourceMappingURL=react-i18next.mjs.map\n","import { createStylesHelper } from '@iiif/vault-helpers/styles';\nimport { RenderImage } from './Image';\nimport React, { Fragment, ReactNode, useEffect, useLayoutEffect, useMemo } from 'react';\nimport { BoxStyle, HTMLPortal } from '@atlas-viewer/atlas';\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 { EmptyStrategy, 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';\nimport { CanvasBackground } from './CanvasBackground';\nimport { ImageWithOptionalService } from '../../features/rendering-strategy/resource-types';\nimport { LocaleString } from '@iiif/vault-helpers/react-i18next';\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 | EmptyStrategy) => ReactNode;\n renderMediaControls?: (strategy: MediaStrategy) => ReactNode;\n strategies?: Array<RenderingStrategy['type']>;\n backgroundStyle?: BoxStyle;\n alwaysShowBackground?: boolean;\n onClickPaintingAnnotation?: (id: string, image: ImageWithOptionalService, e: any) => void;\n};\n\nexport function RenderCanvas({\n x,\n y,\n onChoiceChange,\n registerActions,\n defaultChoices,\n isStatic,\n renderViewerControls,\n renderMediaControls,\n strategies,\n backgroundStyle,\n alwaysShowBackground,\n onClickPaintingAnnotation,\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\n key={`${canvas.id}/${strategy.type}`}\n height={canvas.height}\n width={canvas.width}\n x={x}\n y={y}\n {...elementProps}\n >\n {strategy.type === 'empty' || alwaysShowBackground ? <CanvasBackground style={backgroundStyle} /> : null}\n {strategy.type === 'textual-content'\n ? strategy.items.map((item, n) => {\n return (\n <>\n <HTMLPortal\n key={n}\n // @ts-ignore\n onClick={\n onClickPaintingAnnotation\n ? (e: any) => {\n e.stopPropagation();\n onClickPaintingAnnotation(item.annotationId, item as any, e);\n }\n : undefined\n }\n target={(item.target as any).spatial || undefined}\n >\n <LocaleString>{item.text}</LocaleString>\n </HTMLPortal>\n {annotations}\n </>\n );\n })\n : null}\n {strategy.type === 'images' ? (\n <>\n {strategy.images.map((image, idx) => (\n <RenderImage\n isStatic={isStatic}\n key={image.id}\n image={image}\n id={image.id}\n thumbnail={idx === 0 ? thumbnail : undefined}\n onClick={\n onClickPaintingAnnotation\n ? (e) => {\n e.stopPropagation();\n onClickPaintingAnnotation(image.annotationId, image, e);\n }\n : undefined\n }\n />\n ))}\n {annotations}\n </>\n ) : null}\n {(strategy.type === 'images' || strategy.type === 'empty' || strategy.type === 'textual-content') &&\n renderViewerControls ? (\n <CanvasPortal overlay>{renderViewerControls(strategy as any)}</CanvasPortal>\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';\nimport { CanvasBackground } from './render/CanvasBackground';\n\nexport const CanvasPanel = {\n RenderImage,\n RenderCanvas,\n RenderAnnotationPage,\n RenderAnnotation,\n Viewer,\n CanvasBackground,\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 React, { ReactNode } from 'react';\nimport { ResourceProvider } from './ResourceContext';\n\nexport function AnnotationPageContext({ annotationPage, children }: { annotationPage: string; children: ReactNode }) {\n return <ResourceProvider value={{ annotationPage }}>{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 { useResourceContext } from '../context/ResourceContext';\nimport { AnnotationPageNormalized } from '@iiif/presentation-3';\nimport { useMemo } from 'react';\nimport { useVaultSelector } from './useVaultSelector';\n\nexport function useAnnotationPage(options?: { id: string }): AnnotationPageNormalized | undefined;\nexport function useAnnotationPage<T>(\n options?: { id: string; selector: (annotation: AnnotationPageNormalized) => T },\n deps?: any[]\n): T | undefined;\nexport function useAnnotationPage<T = AnnotationPageNormalized>(\n options: {\n id?: string;\n selector?: (annotation: AnnotationPageNormalized) => T;\n } = {},\n deps: any[] = []\n): AnnotationPageNormalized | T | undefined {\n const { id, selector } = options;\n const ctx = useResourceContext();\n const annotationPageId = id ? id : ctx.annotationPage;\n\n const annotationPage = useVaultSelector(\n (s) => (annotationPageId ? s.iiif.entities.AnnotationPage[annotationPageId] : undefined),\n [annotationPageId]\n );\n\n return useMemo(() => {\n if (!annotationPage) {\n return undefined;\n }\n\n if (selector) {\n return selector(annotationPage);\n }\n return annotationPage;\n }, [annotationPage, ...deps]);\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 { Reference } from '@iiif/presentation-3';\nimport { useVaultSelector } from './useVaultSelector';\nimport { IIIFStore } from '@iiif/vault';\n\nexport function useCanvasSubset(idsOrRefs?: Array<string | Reference>) {\n const ctx = useResourceContext();\n const manifestId = ctx.manifest;\n const refs = idsOrRefs ? idsOrRefs.map((item) => (typeof item === 'string' ? item : item?.id)) : [];\n return useVaultSelector(\n (s: IIIFStore) => {\n const manifest = manifestId ? s.iiif.entities.Manifest[manifestId] : undefined;\n const items = manifest?.items || [];\n\n if (typeof idsOrRefs === 'undefined') {\n return items;\n }\n\n const newItems = [];\n for (const item of manifest?.items || []) {\n if (refs.indexOf(item.id) !== -1) {\n newItems.push(item);\n }\n }\n\n return newItems;\n },\n [refs.join('/')]\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 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","supportedEventAttributes","reduce","acc","next","supportedEventMap","ev","slice","toLowerCase","hidePointsOutsideRegion","points","target","buffer","len","length","ret","dna","index","byteOffset","Float32Array","getIntersection","boxA","boxB","intersects","mem","Math","max","min","dnaLength","compose","transformA","transformB","DnaFactory","constructor","grid","columns","rows","point","x2","y2","positionPair","pair","x1","y1","projection","singleBox","width","height","x","y","box","row","func","addPoints","addBox","build","mutate","transformation","scale","factor","scaleTransform","translate","translation","scaleAtOrigin","transform","nanoid","size","crypto","getRandomValues","Uint8Array","id","byte","toString","toUpperCase","BaseObject","__revision","__state","layers","time","addEventListener","name","cb","options","event","eventHandlers","Error","indexOf","push","removeEventListener","console","warn","filter","e","__id","createDefaultEventMap","getObjectsAt","getAllPointsAt","aggregate","scale2","getScheduledUpdates","scaleFactor","dispatchEvent","listeners","didFire","e2","error","atScale","op","applyProps","props","appendChild","item","removeChild","insertBefore","before","hideInstance","SingleImage","data","type","style","opacity","uri","display","set","crop","fromSvg","svg","fromImage","btoa","instance","getImageUrl","ImageTexture","getTexture","source","hash","ratio","resources","quality","best","i","abs","a","b2","xDelta","distance1D","yDelta","sqrt","pow","TiledImage","stripInfoJson","url","displayPoints","tileWidth","service","fromTile","canvas","tile","fullWidth","ceil","fullHeight","mWidth","mHeight","pointsFactory","rx","ry","tiledImage","im","w2","AbstractContent","arguments","CompositeResource","images","allImages","scaleFactors","aggregateBuffer","isFullyLoaded","maxScaleFactor","_scheduleSortByScales","_sortByScales","sort","lastScale","image","renderOptions","minSize","priority","maxImageSize","diff","otherImage","pop","map","singleImage","loadFullResource","lazyLoader","newImages","addImages","fallback","loadFullImages","renderSmallestFallback","renderLayers","sortByScales","__parent","Boolean","bestIndex","bestResourceIndexAtRatio","window","devicePixelRatio","newAggregate","toPaintIdx","smallestIdx","unshift","toPaint","WorldObject","position","intersectionBuffer","invertedBuffer","_updatedList","worldPoints","filteredPointsBuffer","createWithProps","s","addLayers","layer","beforeLayers","afterLayers","all","filteredPoints","objects","object","transformer","inter","arr","t","agg","paintables","paintablesToAdd","paintable","concat","updates","World","worldObjectCount","viewingDirection","isDirty","zones","triggerQueue","activatedEvents","translationBuffer","needsRecalculate","emptyPaintables","renderOrder","subscriptions","_propagateEventTargets","_alreadyFlushed","_width","_height","aspectRatio","Number","isNaN","withProps","resize","triggerRepaint","propagateTouchEvent","eventName","touchTargets","targets","touch","reverse","propagateEvent","bubbles","cancelable","propagatePointerEvent","opts","worldObjects","atlasTarget","stopped","stopPropagation","woLen","len2","atlasWorld","idx","appendWorldObject","obj","beforeIndex","splice","asWorldObject","addZone","zone","selectZone","selectedZone","trigger","deselectZone","getActiveZone","hasActiveZone","checkResizeInternalBuffer","newPoints","pointValues","subarray","recalculateWorldSize","didChange","wBuffer","Int32Array","hBuffer","_index","newWidth","newHeight","addObjectAt","worldObject","scaleWorldObject","translateWorldObject","getObjects","getPoints","getPointsFromViewer","targetPoints","getPointsAt","addLayoutSubscriber","subscription","flushSubscriptions","queueLen","apply","triggerEventActivation","gotoRegion","goHome","immediate","zoomTo","stream","zoomIn","zoomOut","constraintBounds","borderRegex","borderRegexCache","styleProps","Box","hoverEvents","activeEvents","_parsed","border","match","outline","addHover","hovering","removeHover","pressing","addPress","removePress","didUpdate","interactive","borderStyle","exec","borderWidth","borderColor","outlineWidth","outlineStyle","outlineColor","backgroundColor","background","prop","hoverStyles","pressStyles","href","hrefTarget","title","className","relativeSize","relativeStyle","html","Text","color","text","font","lineHeight","textAlign","verticalAlign","paddingX","paddingY","fitParent","lineBreak","strokeText","sizeToFill","maxFontSizeToFill","allowNewLine","justifyLines","renderHDPI","textDecoration","fontSize","fontFamily","sin","cos","PI","c1","c2","c3","c4","c5","bounceOut","d1","n1","easingFunctions","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInBack","easeOutBack","easeInOutBack","easeInElastic","easeOutElastic","easeInOutElastic","easeInBounce","easeOutBounce","easeInOutBounce","TransitionManager","runtime","pendingTransition","from","to","elapsed_time","done","total_time","timingFunction","constrain","hasPending","getPendingTransition","getPendingFrom","customTransition","stopTransition","runTransition","delta","transition","td","step","constrainBounds","duration","easing","origin","getZoomedPosition","dist","applyTransition","panPadding","isConstrained","constrained","updateNextFrame","defaults","goToRegion","clampedRegion","clampRegion","Runtime","renderer","world","controllers","ready","transformBuffer","lastTarget","zoomBuffer","logNextRender","pendingUpdate","firstRender","mode","controllersRunning","controllerStopFunctions","_viewerToWorld","_lastGoodScale","hooks","useFrame","useBeforeFrame","useAfterPaint","useAfterFrame","_viewport","setViewport","render","lastTime","fpsLimit","stopId","requestAnimationFrame","hook","rendererPendingUpdate","transitionManager","updateControllerPosition","beforeFrame","getScaleFactor","pointsLen","p2","paint","prepareLayer","totalTiles","key","afterFrame","isReady","update","then","maxOverZoom","maxUnderZoom","visibilityRatio","manualHomePosition","homePosition","manualFocalPosition","focalPosition","updateFocalPosition","setHomePosition","performance","now","startControllers","controller","start","stopControllers","updatePosition","triggerResize","addController","cover","getRendererScreenPosition","updateRendererScreenPosition","widthScale","heightScale","ar","space","fromWidth","toWidth","fromHeight","toHeight","widthRatio","heightRatio","widthDiff","heightDiff","h2","marginTrimWidth","marginTrimHeight","baseX","baseY","getViewport","ref","minX","maxX","minY","maxY","getBounds","padding","visRatio","hiddenRatio","xCon","yCon","wt","ww","xB","xD","ht","hw","yB","yD","dpi","getScale","fromPos","_fromPos","_a","sWidth","wWidth","realFactor","proposedFactor","proposedWorldDisplayWidth","displayWidthAdjusted","displayWidth","proposedWorldDisplayHeight","displayHeightAdjusted","displayHeight","proposedStrand","matchesHeight","rWidth","rHeight","actualWidth","actualHeight","viewerToWorld","worldToViewer","strand","setScale","syncTo","oldTarget","stop","cancelAnimationFrame","arg","registerHook","shadowRegex","shadowRegexCache","imageCache","hostCache","CanvasRenderer","imagesPending","imagesLoaded","frameIsRendering","pendingDrawCall","firstMeaningfulPaint","parallelTasks","frameTasks","loadingQueueOrdered","loadingQueue","currentTask","Promise","resolve","tasksRunning","averageJobTime","lastKnownScale","visible","previousVisible","drawCalls","_worker","task","catch","_scheduled","_doWork","clearInterval","rendererPosition","getBoundingClientRect","ctx","getContext","alpha","imageSmoothingEnabled","getCanvasDims","distance","nextCall","shift","doOffscreenWork","debug","stats","end","setInterval","begin","globalAlpha","fillStyle","fillRect","ga","imageBuffer","__host","indices","schedulePaintToCanvas","canvasToPaint","canvases","drawImage","MIN_VALUE","Object","assign","bw","parseInt","ow","oo","outlineOffset","strokeStyle","boxShadow","shadows","split","shadow","parsed","save","shadowOffsetX","shadowOffsetY","shadowBlur","shadowColor","restore","lineWidth","strokeRect","loadImage","callback","err","naturalWidth","document","createElement","decoding","onload","crossOrigin","src","loading","innerResolve","loaded","log","afterPaintLayer","transform2","createImageHost","clearRect","getViewportBounds","CompositeRenderer","renderers","DebugRenderer","renderNextFrame","initialWidth","initialHeight","context","bounds","total","toDraw","forEach","v2","k2","_populated","_ie","_firefox","_opera","_webkit","_chrome","_ie_real_version","_osx","_windows","_linux","_android","_win64","_iphone","_ipad","_native","_mobile","uas","navigator","userAgent","agent","os","parseFloat","NaN","documentMode","trident","ver","replace","UserAgent_DEPRECATED$1","ie","_populate","ieCompatibilityMode","ie64","firefox","opera","webkit","safari","chrome","windows","osx","linux","iphone","mobile","nativeApp","android","ipad","UserAgent_DEPRECATED_1","canUseDOM","ExecutionEnvironment$1","canUseWorkers","Worker","canUseEventListeners","attachEvent","canUseViewport","screen","isInWorker","ExecutionEnvironment_1","ExecutionEnvironment","useHasFeature","implementation","hasFeature","eventNameSuffix","capture","isSupported","element","setAttribute","isEventSupported_1","isEventSupported$1","UserAgent_DEPRECATED","isEventSupported","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","normalizeWheel$1","getEventType","normalizeWheel_1","normalizeWheel","defaultConfig","zoomOutFactor","zoomInFactor","maxZoomFactor","minZoomFactor","zoomDuration","zoomWheelConstant","zoomClamp","panBounceStiffness","panBounceDamping","panTimeConstant","panPower","nudgeDistance","enableWheel","enableClickToZoom","onPanInSketchMode","popmotionController","config","state","pointerStart","isPressing","mousemoveBuffer","multiTouch","currentDistance","which","preventDefault","atlas","atlasTouches","touches","clientX","clientY","newDistance","deltaDistance","normalized","zoomFactor","onMouseUp","onTouchStart","onMouseDown","onWindowMouseUp","onMouseMove","onTouchMove","onClick","onWheel","removeLayout","toBox","ModeContext","React","createContext","useMode","useContext","wait","timeout","args","timestamp","result","last","Date","setTimeout","later","debounced","callNow","clear","clearTimeout","flush","debounce","debounce_1","_temp","debounce2","scroll","polyfill","offsetSize","ResizeObserver","useState","left","top","bottom","right","useRef","scrollContainers","resizeObserver","lastBounds","scrollDebounce","resizeDebounce","mounted","useEffect","current","forceRefresh","resizeChange","scrollChange","useMemo","HTMLElement","offsetHeight","offsetWidth","freeze","areBoundsEqual","disconnect","observe","scrollContainer","passive","node","removeListeners","findScrollContainers","addListeners","useOnWindowScroll","useOnWindowResize","onWindowResize","onScroll","enabled","body","overflow","overflowX","overflowY","getComputedStyle","some","parentElement","keys","every","AtlasContext","BoundsContext","getCurrentTime","localPerformance","localDate","initialTime","parent","child","container","beforeChild","oldProps","newProps","keys2","didActivate","roots","Map","emptyObject","hostContext","internalInstanceHandle","fn","return","stateNode","containerInfo","children","activateEvents","reconciler","Reconciler","unstable_now","createInstance","appendInitialChild","warnsIfNotActing","supportsMutation","isPrimaryRenderer","scheduleTimeout","cancelTimeout","noTimeout","appendChildToContainer","removeChildFromContainer","createTextInstance","insertInContainerBefore","prepareUpdate","commitUpdate","updatePayload","prevProps","nextProps","internalHandle","finalizeInitialChildren","__handlers","getChildHostContext","getRootHostContext","prepareForCommit","preparePortalMount","unhideInstance","getPublicInstance","hideTextInstance","resetAfterCommit","shouldSetTextContent","clearContainer","injectIntoDevTools","bundleType","version","rendererPackageName","root","get","updateContainer","delete","ReactAtlas","whatToRender","newRoot","createContainer","AtlasWithReconciler","memo","setIsReady","onCreated","preset","Canvas","useCallback","activate","useLayoutEffect","_jsx","WebGLRenderer","fragmentShaderSource","vertexShaderSource","lastResize","gl","fragmentShader","createShader","FRAGMENT_SHADER","vertexShader","VERTEX_SHADER","program","createProgram","attributes","getAttribLocation","texCoord","uniforms","resolution","getUniformLocation","texture","buffers","createArrayBuffer","rectBuffer","viewport","clearColor","COLOR_BUFFER_BIT","useProgram","enableVertexAttribArray","resizeCanvasToDisplaySize","vertexAttribPointer","FLOAT","uniform2f","webgl","createTextureHost","createTexture","bindTexture","TEXTURE_2D","pixelStorei","UNPACK_FLIP_Y_WEBGL","lastImage","initial","texImage2D","RGBA","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","LINEAR","TEXTURE_MIN_FILTER","TEXTURE_WRAP_T","CLAMP_TO_EDGE","TEXTURE_WRAP_S","textures","Array","lastLevelRendered","onLoad","newText","internalFormat","srcFormat","srcType","level","bindBuffer","ARRAY_BUFFER","uniform1i","setRectangle","drawArrays","TRIANGLES","shader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","info","getShaderInfoLog","deleteShader","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","deleteProgram","clientWidth","clientHeight","needResize","createBuffer","bufferData","STATIC_DRAW","getRectangle","x22","y22","str","JSON","stringify","numHash","charCodeAt","hexString","num","Stylesheet","sheetPrefix","$element","stylesheetClasses","activeStylesheetClasses","sheetsDidUpdate","stylesheetEntries","getElement","addStylesheet","_sheet","sheet","trim","removeStylesheet","clearClasses","didUpdateActive","updateSheet","innerText","join","OverlayRenderer","htmlContainer","htmlIds","paintTx","zIndex","innerHTML","inlineStyles","stylesheet","classList","add","classes","hostClassName","nonInteractive","createHtmlHost","div","rel","transformOrigin","revision","relative","updateHtmlHost","__onCreate","pointerEvents","removeAttribute","classNames2","part","classNames","prev","tx","round","_BrowserEventManager","pointerMoveEvent","pointerEventState","isClicking","isDragging","isPressed","mousedOver","itemsBeingDragged","mouseDownStart","lastTouches","_realPointerMove","onWheelEvent","onPointerEvent","onTouchEvent","atlasTouch","identifier","assignToEvent","onPointerDown","dragStart","onPointerUp","onPointerMove","newList","newIds","newItems","oldItem","unsubscribe","layoutSubscriber","bind","simulationRate","tAcc","updateBounds","eventPool","normalizeEventName","startsWith","handler","BrowserEventManager","canvasElement","overlayElement","controllerConfig","unstable_webglRenderer","canvasBox","navigatorElement","runtimeOptions","userSelect","em","unmount","unmountComponentAtNode","StaticRenderer","pending","currentlyVisible","previouslyVisible","addPart","setDraggableFalse","imageClass","widthStylesheet","createImage","toFixed","containerElement","staticRenderer","overlay","presets","defaultPreset","staticPreset","defaultArgs","renderPreset","overlayRef","canvasRef","navigatorRef","containerRef","presetName","presetArgs","isArray","setPreset","createdPreset","presetFn","refs","deps","Container","forwardRef","Atlas","htmlChildren","_renderPreset","_mode","resetWorldOnChange","unstable_noReconciler","hideInlineStyle","overlayStyle","containerStyle","enableNavigator","containerProps","_background","restProps","setBackground","setMode","_ref","useMeasure","outerContainerRef","component","usePreset","containerClassName","setContainerClassName","rt","windowResizeCallback","navigatorOptions","recalculateNavigatorDimensions","wHeight","canvasWidth","canvasHeight","keyupSpace","keydownSpace","code","tagName","_background2","computed","getPropertyValue","_2","__","canvasProps","widthClassName","useClassname","_jsxs","AtlasAuto","resizeHash","_bounds","toPx","useAtlas","useRuntime","toRender","module","createRoot","default","ReactDOM","HTMLPortal","fwdRef","boxRef","relativeBox","renderReactDom","renderHost","displayName","useWorldEvent","realName","modifierKeys","ctrl","alt","keyDown","keyUp","useResizeWorldItem","onSave","canvasPosition","useCanvasPosition","resizeMode","portalRef","mouseStart","isEditing","setIsEditing","cardinalDeltas","north","south","east","west","useModifierKeys","mouseEvent","direction","pageX","pageY","constrainToAspectRatio","deltas","originalWidth","originalHeight","newAspectRatio","margin","eastRatio","westRatio","getRatio","northRatio","southRatio","onPointerMoveCallback","maintainAspectRatio","dX1","dY1","dX2","dY2","windowPointerUp","realSize","handleSize","_handleSize","resizable","disableCardinalControls","translate2","southEast","southWest","northEast","northWest","inSketchMode","baseStyle","borderRadius","_Fragment","boxSizing","cursor","region","saveCallback","TileSet","tiles","imageService","sizes","canonicalId","endsWith","thumbnail","defaultStyle","setPrototypeOf","defaultResourceContext","collection","undefined","manifest","range","annotation","annotationPage","ResourceReactContext","useResourceContext","value","parentContext","newContext","ReactVaultContext","vault","setVaultInstance","vaultOptions","useGlobal","vaultInstance","globalVault","Vault","VisibleCanvasReactContext","ids","useVaultSelector","iiif","entities","noop","SimpleViewerReactContext","setCurrentCanvasId","setCurrentCanvasIndex","nextCanvas","previousCanvas","items","sequence","setSequenceIndex","currentSequenceIndex","useManifest","visibleItems","setCanvasIndex","setCanvasId","previous","useCanvasSequence","startCanvas","disablePaging","pagingEnabled","totalCanvases","useExternalManifest","isLoaded","inner","rangeId","VaultContext","ResourceContext","bridge","createAction","VirtualAnnotationPageContext","fullPage","addAnnotation","removeAnnotation","useVirtualAnnotationPage","minHeight","ViewerPresetContext","PortalContext","OverlayPortalContext","htmlElement","useViewerPreset","client","errorFallback","outerContainerProps","portal","portalElement","setPortalElement","viewerPreset","setViewerPreset","overlayPortal","overlayPortalElement","setOverlayPortalElement","useContextBridge","ErrorFallback","DefaultCanvasFallback","$el","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__spreadProps","BOX_SELECTOR","TEMPORAL_SELECTOR","parseSelector","expandTarget","RenderAnnotation","useAnnotation","useStyles","events","useResourceEvents","useCanvas","allStyles","mergeStyles","selector","spatial","RenderAnnotationPage","page","AnnotationPage","Fragment","isStatic","getMeta","ImageServiceLoaderContext","ImageServiceLoader","getImageServices","getFixedSizeFromImage","useReducer","MediaReactContextState","MediaReactContextActions","MediaReactContextElements","actions","currentTime","progress","media","useSimpleMediaPlayer","playPause","objectFit","model","defineProperty","defineProperties","getOwnPropertyDescriptors","getOwnPropertySymbols","prototype","hasOwnProperty","propertyIsEnumerable","enumerable","configurable","writable","b","call","__objRest","exclude","Constructor","TypeError","descriptor","protoProps","staticProps","_defineProperties","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","i18nInstance","I18nContext","ReportNamespaces","_classCallCheck","ReportNamespaces2","usedNamespaces","_createClass","namespaces","_this","ns","_console","_len","_key","alreadyWarned","_len2","_key2","i18n","loadNamespaces","isInitialized","initialized","off","initialized2","on","languages","warnOnce","lng","fallbackLng","lastLng","loadNotPending","l","loadState","services","backendConnector","backend","isLanguageChangingTo","hasResourceBundle","_i","Symbol","iterator","_arr","_n","_d","_s","_e","arr2","o","minLen","_arrayLikeToArray","test","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","ownKeys","_defineProperty","i18nFromProps","i18nFromContext","defaultNSFromContext","defaultNS","getI18n","reportNamespaces","notReadyT","k","retNotReady","react","i18nOptions","_objectSpread","getDefaults","keyPrefix","addUsedNamespaces","initializedStoreOnce","hasLoadedNamespace","getFixedT","nsMode","_useState","getT","_useState2","_slicedToArray","setT","isMounted","boundReset","store","isInitial","_b","as","Component","language","useTranslation","dir","languageUtils","getLanguagePartFromCode","lang","i18nLanguage","i18nLanguages","strictFallback","inverseIdx","inverseRoot","root2","inverseIdx2","inputText","defaultText","separator","fallbackLanguages","closest","getClosestLanguage","candidateText","getLanguages","useClosestLanguage","buildLocaleString","LocaleString","_c","enableDangerouslySetInnerHTML","useLocaleString","dangerouslySetInnerHTML","__html","onChoiceChange","registerActions","defaultChoices","renderViewerControls","renderMediaControls","strategies","backgroundStyle","alwaysShowBackground","onClickPaintingAnnotation","elementProps","virtualPage","useVirtualAnnotationPageContext","useVault","helper","createStylesHelper","strategy","useRenderingStrategy","choice","annotations","applyStyles","useThumbnail","maxWidth","maxHeight","accompanyingCanvas","thumbnailFallbackImage","reason","pages","annotationId"],"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/hooks/useManifest.ts","../src/context/RangeContext.tsx","../src/future-helpers/ranges.ts","../src/future-helpers/sequences.ts","../src/hooks/useRange.ts","../src/viewers/SimpleViewerContext.hooks.ts","../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","../src/context/ViewerPresetContext.tsx","../src/context/PortalContext.tsx","../node_modules/react-dom/client.js","../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","../node_modules/@iiif/vault-helpers/dist/esm/index.mjs","../src/features/rendering-strategy/rendering-utils.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/features/rendering-strategy/textual-content-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/CanvasBackground.tsx","../node_modules/@iiif/vault-helpers/dist/react-i18next/esm/react-i18next.mjs","../src/canvas-panel/render/Canvas.tsx","../src/canvas-panel/index.ts","../src/context/AnnotationContext.tsx","../src/context/AnnotationPageContext.tsx","../src/context/CollectionContext.tsx","../src/hooks/useAnnotationPage.ts","../src/hooks/useAnnotationsAtTime.ts","../src/hooks/useCanvasClock.ts","../src/hooks/useCanvasSubset.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/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, version, useCallback, useLayoutEffect } 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: 3,\n minSize: 255,\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.total_time === 0 ? 0 : (transition.elapsed_time + delta) / transition.total_time;\n const step = transition.total_time === 0 ? 1 : td === 0 ? 0 : transition.timingFunction(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 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 if (a.scale === b2.scale) {\n return b2.distance - a.distance;\n }\n return a.scale < b2.scale ? -1 : 1;\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, prevProps, nextProps, internalHandle) {\n if (instance.applyProps && updatePayload) {\n applyProps(instance, prevProps, updatePayload);\n }\n },\n finalizeInitialChildren(instance) {\n return instance == null ? void 0 : instance.__handlers;\n },\n getChildHostContext() {\n return emptyObject;\n },\n getRootHostContext() {\n return emptyObject;\n },\n prepareForCommit() {\n return null;\n },\n preparePortalMount() {\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,\n rendererPackageName: \"@atlas-viewer/atlas\"\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(({ children, setIsReady, onCreated, bounds, preset, mode = \"explore\" }) => {\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__ */ React.createElement(React.StrictMode, null, /* @__PURE__ */ React.createElement(Canvas, null, /* @__PURE__ */ React.createElement(BoundsContext.Provider, {\n value: bounds\n }, /* @__PURE__ */ React.createElement(ModeContext.Provider, {\n value: mode\n }, /* @__PURE__ */ React.createElement(AtlasContext.Provider, {\n value: preset\n }, children))))), 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__ */ React.createElement(\"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], { debug, background, ..._renderPreset[1] || {} }];\n }\n return [\"default-preset\", { background, debug }];\n }\n return _renderPreset || \"default-preset\";\n }, [_renderPreset, background, debug]);\n const [_ref, bounds, forceRefresh] = useMeasure({ scroll: true });\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 { height: _2, width: __, ...canvasProps } = restProps;\n const widthClassName = useClassname([restProps.width, restProps.height]);\n return /* @__PURE__ */ React.createElement(Container, {\n ref,\n className: [\"atlas\", hideInlineStyle ? \"\" : `atlas-width-${widthClassName}`, containerClassName, className].filter(Boolean).join(\" \").trim(),\n style: {\n ...containerStyle,\n ...hideInlineStyle ? {} : { width: restProps.width, height: restProps.height }\n }\n }, presetName === \"static-preset\" ? /* @__PURE__ */ React.createElement(Container, {\n className: \"atlas-static-container\",\n style: preset && preset.controller ? void 0 : { pointerEvents: \"none\" },\n ref: refs.container,\n tabIndex: 0,\n ...containerProps\n }) : /* @__PURE__ */ React.createElement(\"canvas\", {\n className: \"atlas-canvas\",\n part: \"atlas-canvas\",\n tabIndex: 0,\n ...canvasProps,\n ...containerProps,\n ref: refs.canvas\n }), /* @__PURE__ */ React.createElement(Container, {\n className: \"atlas-overlay\",\n style: { ...overlayStyle || {} },\n ref: refs.overlay\n }, unstable_noReconciler ? /* @__PURE__ */ React.createElement(Canvas, null, /* @__PURE__ */ React.createElement(BoundsContext.Provider, {\n value: bounds\n }, /* @__PURE__ */ React.createElement(ModeContext.Provider, {\n value: mode\n }, /* @__PURE__ */ React.createElement(AtlasContext.Provider, {\n value: preset\n }, children)))) : /* @__PURE__ */ React.createElement(AtlasWithReconciler, {\n bounds,\n preset,\n mode,\n setIsReady,\n onCreated\n }, children)), enableNavigator ? /* @__PURE__ */ React.createElement(Container, {\n className: \"atlas-navigator\"\n }, /* @__PURE__ */ React.createElement(\"canvas\", {\n className: \"atlas-navigator-canvas\",\n part: \"atlas-navigator-canvas\",\n ref: refs.navigator\n })) : null, hideInlineStyle ? /* @__PURE__ */ React.createElement(\"style\", null, `.atlas-width-${widthClassName} { width: ${restProps.width}px; height: ${restProps.height}px; }`) : /* @__PURE__ */ React.createElement(\"style\", null, `\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 `), htmlChildren);\n};\nfunction toPx(str) {\n if (Number(str) == str) {\n return `${str}px`;\n }\n return str;\n}\nconst AtlasAuto = ({ resizeHash, aspectRatio, containerProps = {}, ...props }) => {\n const [ref, _bounds, forceRefresh] = useMeasure();\n const { height, width, ...restProps } = 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__ */ React.createElement(Container, {\n ref,\n className: \"atlas-container\",\n ...containerProps\n }, bounds.width ? /* @__PURE__ */ React.createElement(Atlas, {\n width: bounds.width || 100,\n height: bounds.height || 100,\n ...restProps\n }, props.children) : null, props.hideInlineStyle ? null : /* @__PURE__ */ React.createElement(\"style\", null, `\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 `), props.htmlChildren);\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 = ({ onCreate }) => {\n const mousePosition = useRef({ x: 0, y: 0 });\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 { x: x2, y: y2, width, height } = 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 { x: x2, y: y2 } = 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({ x: Math.round(mousePosition.current.x), y: Math.round(mousePosition.current.y) });\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({ x: Math.round(mousePosition.current.x), y: Math.round(mousePosition.current.y) });\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 module = await import(\"react-dom/client\");\n const createRoot = module.default ? module.default.createRoot : module.createRoot;\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 module = await import(\"react-dom\");\n const render = module.default ? module.default.render : module.render;\n render(toRender, html);\n }\n }\n}\nconst HTMLPortal = React.forwardRef(({ children, ...props }, 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__ */ React.createElement(\"div\", {\n ref\n }, children) : 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__ */ React.createElement(\"box\", {\n html: true,\n ...props,\n ref: boxRef\n });\n});\nHTMLPortal.displayName = \"HTMLPortal\";\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};\nfunction 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 { portalRef, mode, mouseEvent, isEditing } = useResizeWorldItem({ x: props.x || 0, y: props.y || 0, width: props.width, height: props.height, maintainAspectRatio }, 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__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"world-object\", {\n ...props\n }, children, inSketchMode && resizable ? /* @__PURE__ */ React.createElement(HTMLPortal, {\n ref: portalRef,\n target: { x: 0, y: 0, height: props.height, width: props.width },\n relative: true,\n interactive: false\n }, inSketchMode && resizable ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"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__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"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__ */ React.createElement(\"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__ */ React.createElement(\"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__ */ React.createElement(\"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 })) : null, /* @__PURE__ */ React.createElement(\"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__ */ React.createElement(\"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__ */ React.createElement(\"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__ */ React.createElement(\"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 })) : null) : null));\n}\nfunction RegionHighlight({\n interactive,\n region,\n onClick,\n onSave,\n maintainAspectRatio,\n disableCardinalControls,\n isEditing,\n style = { backgroundColor: \"rgba(0,0,0,.5)\" }\n}) {\n const saveCallback = useCallback((bounds) => {\n onSave({ id: region.id, x: region.x, y: region.y, height: region.height, width: region.width, ...bounds });\n }, [onSave, region.id, region.x, region.y, region.height, region.width]);\n return /* @__PURE__ */ React.createElement(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 }, /* @__PURE__ */ React.createElement(\"box\", {\n interactive,\n onClick: (e) => {\n e.preventDefault();\n e.stopPropagation();\n onClick(region);\n },\n target: { x: 0, y: 0, width: region.width, height: region.height },\n style\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__ */ React.createElement(\"world-object\", {\n key: props.tiles.imageService.id,\n scale: scale2,\n height: props.tiles.height,\n width: props.tiles.width,\n x: props.x,\n y: props.y,\n onClick: props.onClick\n }, /* @__PURE__ */ React.createElement(\"composite-image\", {\n key: props.tiles.imageService.id,\n id: props.tiles.imageService.id,\n width: props.tiles.width,\n height: props.tiles.height\n }, props.tiles.thumbnail ? /* @__PURE__ */ React.createElement(\"world-image\", {\n priority: true,\n uri: props.tiles.thumbnail.id,\n target: { width: props.tiles.width, height: props.tiles.height },\n display: { width: props.tiles.thumbnail.width, height: props.tiles.thumbnail.height }\n }) : null, sizes.map((size, n) => /* @__PURE__ */ React.createElement(\"world-image\", {\n key: n,\n uri: `${canonicalId}/full/${size.width},${size.height}/0/default.jpg`,\n target: { width: props.tiles.width, height: props.tiles.height },\n display: { width: size.width, height: size.height }\n })), tiles.map((tile) => (tile.scaleFactors || []).map((size) => /* @__PURE__ */ React.createElement(\"tiled-image\", {\n key: `${props.tiles.imageService.id}-tile-${size}`,\n uri: props.tiles.imageService.id,\n display: { width: props.tiles.width, height: props.tiles.height },\n tile,\n scaleFactor: size\n })))));\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__ */ React.createElement(\"world-object\", {\n x: props.x || 0,\n y: props.y || 0,\n width: props.width,\n height: props.height\n }, tiles ? /* @__PURE__ */ React.createElement(TileSet, {\n tiles,\n x: 0,\n y: 0,\n width: props.width,\n height: props.height\n }) : null);\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, { onCreated, resetWorldOnChange = true, mode = \"explore\", cover, containerRef, ...restProps }) => {\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({ cover });\n }\n });\n }\n }\n return () => {\n };\n }, [preset, cover, resetWorldOnChange]);\n useLayoutEffect(() => {\n if (preset) {\n ReactAtlas.render(/* @__PURE__ */ React.createElement(Canvas, null, /* @__PURE__ */ React.createElement(ModeContext.Provider, {\n value: mode\n }, /* @__PURE__ */ React.createElement(AtlasContext.Provider, {\n value: preset\n }, children))), 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 annotationPage: undefined,\n};\n\nexport type ResourceContextType = {\n collection?: string;\n manifest?: string;\n range?: string;\n canvas?: string;\n annotation?: string;\n annotationPage?: 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 { 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 { 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","import { Vault } from '@iiif/vault';\nimport { ManifestNormalized, RangeNormalized, Reference } from '@iiif/presentation-3';\n\nexport function findFirstCanvasFromRange(vault: Vault, range: RangeNormalized): null | Reference<'Canvas'> {\n for (const inner of range.items) {\n if (inner.type === 'Canvas') {\n return inner as Reference<'Canvas'>;\n }\n if (inner.type === 'Range') {\n const found = findFirstCanvasFromRange(vault, vault.get(inner));\n if (found) {\n return found;\n }\n }\n }\n return null;\n}\n\nexport function findAllCanvasesInRange(vault: Vault, range: RangeNormalized): Array<Reference<'Canvas'>> {\n const found: Reference<'Canvas'>[] = [];\n for (const inner of range.items) {\n if (inner.type === 'Canvas') {\n if (inner.id.indexOf('#') !== -1) {\n found.push({ id: inner.id.split('#')[0], type: 'Canvas' });\n } else {\n found.push(inner as Reference<'Canvas'>);\n }\n }\n if (inner.type === 'Range') {\n found.push(...findAllCanvasesInRange(vault, vault.get(inner)));\n }\n if ((inner as any).type === 'SpecificResource') {\n const sourceId = typeof (inner as any).source === 'string' ? (inner as any).source : (inner as any).source.id;\n found.push({ id: sourceId, type: 'Canvas' });\n }\n }\n return found;\n}\n\nexport function findManifestSelectedRange(\n vault: Vault,\n manifest: ManifestNormalized,\n canvasId: string\n): null | RangeNormalized {\n for (const range of manifest.structures) {\n const found = findSelectedRange(vault, vault.get(range), canvasId);\n if (found) {\n return found;\n }\n }\n\n return null;\n}\n\nexport function findSelectedRange(vault: Vault, range: RangeNormalized, canvasId: string): null | RangeNormalized {\n for (const inner of range.items) {\n const parsedId = inner.id?.split('#')[0];\n if ((inner as any).type === 'SpecificResource' && (inner as any).source === canvasId) {\n return range;\n }\n if (inner.type === 'Canvas' && canvasId === parsedId) {\n return range;\n }\n if (inner.type === 'Range') {\n const found = findSelectedRange(vault, vault.get(inner), canvasId);\n if (found) {\n return found;\n }\n }\n }\n return null;\n}\n","import { CanvasNormalized, ManifestNormalized, RangeNormalized, Reference } from '@iiif/presentation-3';\nimport { Vault } from '@iiif/vault';\nimport { findAllCanvasesInRange } from './ranges';\n\n/**\n * Get visible canvases from canvas ID\n *\n * This function returns a list of canvas references that should all be displayed\n * when the passed canvasId is visible. This should work for individual items,\n * 2-up paged view and continuous (scrolls).\n *\n * The options are listed below (from IIIF docs)\n *\n * - `unordered` - Valid on Collections, Manifests and Ranges. The Canvases included in resources that have this behavior\n * have no inherent order, and user interfaces should avoid implying an order to the user. Disjoint with individuals,\n * continuous, and paged.\n *\n * - `individuals` - Valid on Collections, Manifests, and Ranges. For Collections that have this behavior, each of the\n * included Manifests are distinct objects in the given order. For Manifests and Ranges, the included Canvases are\n * distinct views, and should not be presented in a page-turning interface. This is the default layout behavior if\n * not specified. Disjoint with unordered, continuous, and paged.\n *\n * - `continuous` Valid on Collections, Manifests and Ranges, which include Canvases that have at least height and\n * width dimensions. Canvases included in resources that have this behavior are partial views and an appropriate\n * rendering might display all of the Canvases virtually stitched together, such as a long scroll split into\n * sections. This behavior has no implication for audio resources. The viewingDirection of the Manifest will\n * determine the appropriate arrangement of the Canvases. Disjoint with unordered, individuals and paged.\n *\n * - `paged` Valid on Collections, Manifests and Ranges, which include Canvases that have at least height and width\n * dimensions. Canvases included in resources that have this behavior represent views that should be presented in\n * a page-turning interface if one is available. The first canvas is a single view (the first recto) and thus the\n * second canvas likely represents the back of the object in the first canvas. If this is not the case, see the\n * behavior value non-paged. Disjoint with unordered, individuals, continuous, facing-pages and non-paged.\n *\n */\nexport function getVisibleCanvasesFromCanvasId(\n vault: Vault,\n manifestOrRange: ManifestNormalized | RangeNormalized,\n canvasId: string | null,\n preventPaged = false\n): Reference<'Canvas'>[] {\n const behavior = manifestOrRange.behavior;\n const fullCanvas = canvasId ? vault.get<CanvasNormalized>(canvasId) : null;\n if (!fullCanvas) {\n return [];\n }\n\n const canvasBehavior = fullCanvas.behavior;\n const isPaged = preventPaged ? false : behavior.includes('paged');\n const isContinuous = isPaged ? false : behavior.includes('continuous');\n const isIndividuals = isPaged || isContinuous ? false : behavior.includes('individuals');\n const isCanvasFacingPages = canvasBehavior.includes('facing-pages');\n const isCanvasNonPaged = canvasBehavior.includes('non-paged');\n\n // Individuals should just be the default.\n if (isCanvasFacingPages || isCanvasNonPaged || isIndividuals || preventPaged) {\n return [{ id: fullCanvas.id, type: 'Canvas' }];\n }\n\n const [manifestItems, ordering] = getManifestSequence(vault, manifestOrRange);\n\n // Continuous should just return all items together.\n if (isContinuous) {\n return manifestItems;\n }\n\n const canvasIndex = manifestItems.findIndex((r) => r.id === canvasId);\n if (canvasIndex === -1) {\n return [];\n }\n\n for (const indexes of ordering) {\n if (indexes.includes(canvasIndex)) {\n return indexes.map((index) => manifestItems[index]);\n }\n }\n\n return [{ id: fullCanvas.id, type: 'Canvas' }];\n}\n\nexport function getManifestSequence(\n vault: Vault,\n manifestOrRange: ManifestNormalized | RangeNormalized,\n { disablePaging, skipNonPaged }: { disablePaging?: boolean; skipNonPaged?: boolean } = {}\n): [Reference<'Canvas'>[], number[][]] {\n const behavior = manifestOrRange.behavior;\n const isPaged = behavior.includes('paged');\n const isContinuous = isPaged ? false : behavior.includes('continuous');\n const isIndividuals = isPaged || isContinuous ? false : behavior.includes('individuals');\n const manifestItems =\n manifestOrRange.type === 'Manifest' ? manifestOrRange.items : findAllCanvasesInRange(vault, manifestOrRange);\n\n // Continuous should just return all items together.\n if (isContinuous) {\n return [manifestItems, [manifestItems.map((_, index) => index)]];\n }\n\n // Individuals should just be the default.\n if (isIndividuals || !isPaged || disablePaging) {\n return [manifestItems, manifestItems.map((_, index) => [index])];\n }\n\n // This is the tricky case.\n const ordering: number[][] = [];\n let currentOrdering: number[] = [];\n\n const flush = () => {\n if (currentOrdering.length) {\n ordering.push([...currentOrdering]);\n currentOrdering = [];\n }\n };\n\n let offset = 0;\n let flushNextPaged = false;\n for (let i = 0; i < manifestItems.length; i++) {\n const canvas = vault.get<CanvasNormalized>(manifestItems[i]);\n if (canvas.behavior.includes('non-paged')) {\n if (i === offset) {\n offset++;\n }\n if (!skipNonPaged) {\n flush();\n ordering.push([i]);\n flush();\n }\n continue;\n }\n\n if (i === offset || canvas.behavior.includes('facing-pages')) {\n // Flush and push a single.\n if (currentOrdering.length) {\n flushNextPaged = true;\n }\n flush();\n ordering.push([i]);\n flush();\n continue;\n }\n\n currentOrdering.push(i);\n\n if (flushNextPaged) {\n flush();\n flushNextPaged = false;\n continue;\n }\n\n if (currentOrdering.length > 1) {\n flush();\n }\n }\n\n if (currentOrdering.length) {\n flush();\n }\n\n return [manifestItems, ordering];\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","import { getManifestSequence } from '../future-helpers/sequences';\nimport { useManifest } from '../hooks/useManifest';\nimport { useCallback, useMemo, useState } from 'react';\nimport { useRange } from '../hooks/useRange';\nimport { useVault } from '../hooks/useVault';\n\nexport function useCanvasSequence({ startCanvas, disablePaging }: { startCanvas?: string; disablePaging?: boolean }) {\n const vault = useVault();\n const manifest = useManifest();\n const range = useRange();\n const [cursor, setCursor] = useState<number>(undefined as any);\n const rangeOrManifest = range ? range : manifest;\n\n if (!rangeOrManifest) {\n throw new Error('Nothing selected');\n }\n\n const [items, initialSequence] = useMemo(\n () => getManifestSequence(vault, rangeOrManifest, { disablePaging }),\n [vault, rangeOrManifest]\n );\n\n const setCanvasIndex = useCallback(\n (index: number) => {\n const foundSequence = initialSequence.findIndex((i) => i.includes(index));\n setCursor(foundSequence === -1 ? 0 : foundSequence);\n },\n [items, initialSequence]\n );\n\n const setCanvasId = useCallback(\n (id: string) => {\n const foundIndex = items.findIndex((i) => i.id === id);\n if (foundIndex !== -1) {\n setCanvasIndex(foundIndex);\n } else {\n setCursor(0);\n }\n },\n [items, initialSequence]\n );\n\n const next = useCallback(() => {\n setCursor((i) => {\n if (i >= initialSequence.length) {\n return i;\n }\n return i + 1;\n });\n }, [initialSequence]);\n\n const previous = useCallback(() => {\n setCursor((i) => {\n if (i <= 0) {\n return 0;\n }\n return i - 1;\n });\n }, [initialSequence]);\n\n // Need to set an initial cursor from the canvasId (if it's valid)\n if (typeof cursor === 'undefined') {\n if (startCanvas) {\n setCanvasId(startCanvas);\n } else {\n setCursor(0);\n }\n }\n\n return {\n visibleItems: initialSequence[cursor]?.map((idx) => items[idx].id) || [],\n cursor,\n items,\n sequence: initialSequence,\n setSequenceIndex: setCursor,\n setCanvasIndex,\n setCanvasId,\n next,\n previous,\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';\nimport { useManifest } from '../hooks/useManifest';\nimport { SimpleViewerContext, SimpleViewerProps } from './SimpleViewerContext.types';\nimport { RangeContext } from '../context/RangeContext';\nimport { useCanvasSequence } from './SimpleViewerContext.hooks';\n\nconst noop = () => {\n //\n};\n\nexport const SimpleViewerReactContext = createContext<SimpleViewerContext>({\n setCurrentCanvasId: noop,\n setCurrentCanvasIndex: noop,\n nextCanvas: noop,\n previousCanvas: noop,\n items: [],\n sequence: [],\n setSequenceIndex: noop,\n currentSequenceIndex: 0,\n});\n\nexport function InnerViewerProvider(props: SimpleViewerProps) {\n const manifest = useManifest();\n const { cursor, visibleItems, next, sequence, items, setCanvasIndex, setCanvasId, previous, setSequenceIndex } =\n useCanvasSequence({\n startCanvas: props.startCanvas,\n disablePaging: props.pagingEnabled === false,\n });\n\n const ctx = useMemo(\n () =>\n ({\n sequence,\n items,\n // Extra functions.\n setCurrentCanvasId: setCanvasId,\n nextCanvas: next,\n previousCanvas: previous,\n totalCanvases: items.length,\n setCurrentCanvasIndex: setCanvasIndex,\n setSequenceIndex: setSequenceIndex,\n currentSequenceIndex: cursor,\n } as SimpleViewerContext),\n [sequence, items, setCanvasId, next, previous, items, setCanvasIndex, setSequenceIndex, cursor]\n );\n\n if (!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 return (\n <SimpleViewerReactContext.Provider value={ctx}>\n <VisibleCanvasReactContext.Provider value={visibleItems}>\n <CanvasContext canvas={visibleItems[0]}>{props.children}</CanvasContext>\n </VisibleCanvasReactContext.Provider>\n </SimpleViewerReactContext.Provider>\n );\n}\n\nexport function SimpleViewerProvider(props: SimpleViewerProps) {\n const manifest = useExternalManifest(props.manifest);\n\n if (!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 const inner = <InnerViewerProvider {...props}>{props.children}</InnerViewerProvider>;\n\n return (\n <ManifestContext manifest={manifest.id}>\n {props.rangeId ? <RangeContext range={props.rangeId}>{inner}</RangeContext> : inner}\n </ManifestContext>\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","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 } from 'react';\nimport { Root } from 'react-dom/client';\nimport { useViewerPreset, ViewerPresetContext } from './ViewerPresetContext';\n\nexport const PortalContext = React.createContext<Root | null>(null);\nexport const OverlayPortalContext = React.createContext<Root | null>(null);\n\nexport function CanvasPortal({ children, overlay }: { children: ReactNode; overlay?: boolean }) {\n const htmlElement = useContext(overlay ? OverlayPortalContext : PortalContext);\n const preset = useViewerPreset();\n\n useLayoutEffect(() => {\n if (htmlElement) {\n try {\n htmlElement.render(<ViewerPresetContext.Provider value={preset}>{children}</ViewerPresetContext.Provider>);\n } catch (e) {\n // ignore..\n }\n }\n }, [children, preset]);\n\n return null;\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 React, { ReactNode, useLayoutEffect, useRef, useState } from 'react';\nimport { AtlasAuto, Preset, AtlasProps } from '@atlas-viewer/atlas';\nimport { ErrorBoundary } from 'react-error-boundary';\nimport { ContextBridge, useContextBridge } from '../context/ContextBridge';\nimport { VirtualAnnotationProvider } from '../hooks/useVirtualAnnotationPageContext';\nimport { DefaultCanvasFallback } from './render/DefaultCanvasFallback';\nimport { OverlayPortalContext, PortalContext } from '../context/PortalContext';\nimport { ViewerPresetContext } from '../context/ViewerPresetContext';\nimport { createRoot, Root } from 'react-dom/client';\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<Root | null>();\n const [viewerPreset, setViewerPreset] = useState<Preset | null>();\n const overlayPortal = useRef<HTMLDivElement>(null);\n const [overlayPortalElement, setOverlayPortalElement] = useState<Root | null>();\n const bridge = useContextBridge();\n const ErrorFallback: any = errorFallback || DefaultCanvasFallback;\n\n useLayoutEffect(() => {\n const roots: Record<string, Root> = {};\n if (portal.current) {\n const $el = document.createElement('div');\n portal.current.appendChild($el);\n roots.portal = createRoot($el);\n setPortalElement(roots.portal);\n }\n if (overlayPortal.current) {\n const $el = document.createElement('div');\n overlayPortal.current.appendChild($el);\n roots.overlayPortal = createRoot($el);\n setOverlayPortalElement(roots.overlayPortal);\n }\n\n return () => {\n setPortalElement(null);\n setOverlayPortalElement(null);\n\n setTimeout(() => {\n if (roots.portal) {\n roots.portal.unmount();\n }\n if (roots.overlayPortal) {\n roots.overlayPortal.unmount();\n }\n }, 0);\n };\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 children,\n onClick,\n}: {\n id: string;\n image: ImageWithOptionalService;\n thumbnail?: ImageCandidate;\n isStatic?: boolean;\n x?: number;\n y?: number;\n children?: ReactNode;\n onClick?: (e: any) => void;\n}) {\n return (\n <Fragment key={id}>\n {!image.service ? (\n <Fragment key=\"no-service\">\n <world-image\n onClick={onClick}\n // key={`${image.width}/${image.height}`}\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 {children}\n </Fragment>\n ) : (\n <Fragment key=\"service\">\n <TileSet\n // key={`${image.target.spatial?.width}/${image.target.spatial?.height}`}\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 onClick={onClick}\n />\n {children}\n </Fragment>\n )}\n </Fragment>\n );\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, b2) => {\n for (var prop in b2 || (b2 = {}))\n if (__hasOwnProp.call(b2, prop))\n __defNormalProp(a, prop, b2[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b2)) {\n if (__propIsEnum.call(b2, prop))\n __defNormalProp(a, prop, b2[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b2) => __defProps(a, __getOwnPropDescs(b2));\nfunction 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}\nfunction 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}\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 ? this.verify(e) : (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);\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 getClosestLanguage(i18nLanguage, languages, i18nLanguages = [], strictFallback = false) {\n if (!i18nLanguage || !languages || languages.length === 0) {\n return void 0;\n }\n if (languages.length === 1) {\n return languages[0];\n }\n if (languages.indexOf(i18nLanguage) !== -1) {\n return i18nLanguage;\n }\n const root = i18nLanguage.indexOf(\"-\") !== -1 ? i18nLanguage.slice(0, i18nLanguage.indexOf(\"-\")) : null;\n if (root && languages.indexOf(root) !== -1) {\n return root;\n }\n for (const lang of i18nLanguages) {\n if (languages.indexOf(lang) !== -1) {\n return lang;\n }\n }\n if (!strictFallback) {\n const inverseRoot = languages.map((l) => l.indexOf(\"-\") !== -1 ? l.slice(0, l.indexOf(\"-\")) : null);\n const inverseIdx = inverseRoot.indexOf(i18nLanguage);\n if (inverseIdx !== -1) {\n return languages[inverseIdx];\n }\n for (const lang of i18nLanguages) {\n const root2 = lang.indexOf(\"-\") !== -1 ? lang.slice(0, lang.indexOf(\"-\")) : null;\n const inverseIdx2 = root2 ? languages.indexOf(root2) : -1;\n if (inverseIdx2 !== -1) {\n return languages[inverseIdx2];\n }\n }\n }\n if (languages.indexOf(\"none\") !== -1) {\n return \"none\";\n }\n if (languages.indexOf(\"@none\") !== -1) {\n return \"@none\";\n }\n return languages[0];\n}\nfunction buildLocaleString(inputText, i18nLanguage, options = {}) {\n const { strictFallback = false, defaultText = \"\", separator = \"\\n\", fallbackLanguages = [], closest } = options;\n const languages = Object.keys(inputText || {});\n const language = closest ? i18nLanguage : getClosestLanguage(i18nLanguage, languages, fallbackLanguages, strictFallback);\n if (!inputText) {\n return defaultText;\n }\n if (typeof inputText === \"string\") {\n return inputText;\n }\n const candidateText = language ? inputText[language] : void 0;\n if (candidateText) {\n if (typeof candidateText === \"string\") {\n return candidateText;\n }\n return candidateText.join(separator);\n }\n return \"\";\n}\nfunction getValue(inputText, options = {}) {\n return buildLocaleString(inputText, typeof navigator !== \"undefined\" ? navigator.language : void 0, options);\n}\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}\nfunction validateContentState(annotation, strict = false) {\n if (typeof annotation === \"string\") {\n if (annotation.startsWith(\"{\")) {\n try {\n const parsed = JSON.parse(annotation);\n return validateContentState(parsed);\n } catch (err) {\n return [false, { reason: \"Invalid JSON\" }];\n }\n }\n return [true];\n }\n if (Array.isArray(annotation)) {\n for (const anno of annotation) {\n const [valid, reason] = validateContentState(anno);\n if (!valid && reason) {\n return [valid, reason];\n }\n }\n return [true];\n }\n if (annotation.type === \"Annotation\") {\n return [true];\n }\n if (strict && annotation.type === \"Canvas\" && !annotation.partOf) {\n return [false, { reason: \"Canvas without partOf cannot be loaded\" }];\n }\n return [true];\n}\nfunction serialiseContentState(annotation) {\n return encodeContentState(typeof annotation === \"string\" ? annotation : JSON.stringify(annotation));\n}\nfunction parseContentState(state, asyncOrFetcher) {\n state = state.trim();\n if (state[0] === \"{\") {\n return asyncOrFetcher ? Promise.resolve(JSON.parse(state)) : JSON.parse(state);\n }\n if (state.startsWith(\"http\")) {\n if (!asyncOrFetcher) {\n throw new Error(\"Cannot fetch remote fetch with async=false in parseContentState\");\n }\n return fetch(state).then((r) => r.json());\n }\n return parseContentState(decodeContentState(state), asyncOrFetcher);\n}\nfunction encodeContentState(state) {\n const uriEncoded = encodeURIComponent(state);\n const base64 = typeof btoa === \"undefined\" ? Buffer.from(uriEncoded, \"utf-8\").toString(\"base64\") : btoa(uriEncoded);\n const base64url = base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\");\n return base64url.replace(/=/g, \"\");\n}\nfunction decodeContentState(encodedContentState) {\n const base64url = restorePadding(encodedContentState);\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const base64Decoded = typeof atob === \"undefined\" ? Buffer.from(base64, \"base64\").toString(\"utf-8\") : atob(base64);\n return decodeURIComponent(base64Decoded).trim();\n}\nfunction restorePadding(s) {\n const pad = s.length % 4;\n if (pad === 1) {\n throw new Error(\"InvalidLengthError: Input base64url string is the wrong length to determine padding\");\n }\n return s + (pad ? \"====\".slice(0, 4 - pad) : \"\");\n}\nfunction normaliseContentState(state) {\n if (!state) {\n throw new Error(\"Content state is empty\");\n }\n if (!Array.isArray(state)) {\n state = [state];\n }\n let annoId = \"vault://virtual-annotation/\" + new Date().getTime();\n const targets = [];\n for (const source of state) {\n if (typeof source === \"string\") {\n throw new Error(\"Content state is a [String] type and cannot be inferred\");\n }\n if (source.type === \"Annotation\") {\n annoId = source.id;\n if (Array.isArray(source.motivation)) {\n for (const singleMotivation of source.motivation) {\n }\n }\n if (Array.isArray(source.target)) {\n for (const target2 of source.target) {\n const expanded = expandTarget(target2);\n targets.push(expanded);\n }\n } else {\n const expanded = expandTarget(source.target);\n targets.push(expanded);\n }\n continue;\n }\n const target = expandTarget(source);\n targets.push(target);\n }\n return {\n id: annoId,\n type: \"Annotation\",\n motivation: [\"contentState\", ...state.motivation || []],\n target: targets,\n extensions: {}\n };\n}\nexport { buildLocaleString, createEventsHelper, createStylesHelper, createThumbnailHelper, decodeContentState, encodeContentState, expandTarget, getClosestLanguage, getValue, normaliseContentState, parseContentState, parseSelector, serialiseContentState, validateContentState };\n//# sourceMappingURL=index.mjs.map\n","import {\n AnnotationNormalized,\n CanvasNormalized,\n ContentResource,\n IIIFExternalWebResource,\n PointSelector,\n SpecificResource,\n W3CAnnotationTarget,\n} from '@iiif/presentation-3';\nimport { Vault } from '@iiif/vault';\nimport { ChoiceDescription } from './choice-types';\nimport { UseRenderingStrategy } from '../../hooks/useRenderingStrategy';\nimport { BoxSelector, expandTarget, SupportedTarget, TemporalBoxSelector } from '@iiif/vault-helpers';\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 annotationId: string;\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, { skipSelfReturn: false });\n for (const unknownBody of bodies) {\n if (!unknownBody) {\n continue;\n }\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 annotationId: annotation.id,\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 function getParsedTargetSelector(\n canvas: CanvasNormalized,\n target: W3CAnnotationTarget | W3CAnnotationTarget[]\n): [TemporalBoxSelector | BoxSelector | PointSelector | null, SupportedTarget['source']] {\n const { selector: imageTarget, source } = expandTarget(target);\n\n if (source.id !== canvas.id) {\n // Skip invalid targets.\n return [null, source];\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 return [\n imageTarget\n ? imageTarget.type === 'TemporalSelector'\n ? {\n type: 'TemporalBoxSelector',\n temporal: imageTarget.temporal,\n spatial: defaultTarget.spatial,\n }\n : imageTarget\n : null,\n source,\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\nexport const emptyStrategy = (width: number, height: number): UseRenderingStrategy[0] => {\n return { type: 'empty', width, height, annotations: { pages: [] }, image: null, images: [] };\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';\nimport { useAnnotation } from './useAnnotation';\n\nexport function usePaintingAnnotations(\n options: { canvasId?: string; enableSingleAnnotation?: boolean } = {}\n): AnnotationNormalized[] {\n const annotation = useAnnotation();\n const canvas = useCanvas(options.canvasId ? { id: options.canvasId } : undefined);\n\n return useVaultSelector(\n (state, vault) => {\n if (!canvas) {\n return [];\n }\n if (annotation && options.enableSingleAnnotation) {\n return [annotation];\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(\n options?: { defaultChoices?: string[]; enableSingleAnnotation?: boolean },\n deps: any[] = []\n) {\n const vault = useVault();\n const paintingAnnotations = usePaintingAnnotations({ enableSingleAnnotation: options?.enableSingleAnnotation });\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, PointSelector, W3CAnnotationTarget } from '@iiif/presentation-3';\nimport { ImageServiceLoaderType } from '../../hooks/useLoadImageService';\nimport { AnnotationPageDescription, ImageWithOptionalService } from './resource-types';\nimport { getImageServices } from '@atlas-viewer/iiif-image-api';\nimport { getParsedTargetSelector, Paintables, unsupportedStrategy } from './rendering-utils';\nimport { ChoiceDescription } from './choice-types';\nimport { expandTarget, SupportedSelectors } from '@iiif/vault-helpers/annotation-targets';\nimport { TemporalBoxSelector, BoxSelector } from '@iiif/vault-helpers';\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 // 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, source] = getParsedTargetSelector(canvas, singleImage.target);\n if (source.id !== canvas.id) {\n // Skip invalid targets.\n continue;\n }\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 annotationId: singleImage.annotationId,\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';\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 annotationId: paintables.items[0].annotationId,\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 annotationId: paintables.items[0].annotationId,\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 { CanvasNormalized, InternationalString } from '@iiif/presentation-3';\nimport { ChoiceDescription } from './choice-types';\nimport { AnnotationPageDescription } from './resource-types';\nimport { getParsedTargetSelector, Paintables } from './rendering-utils';\nimport { RenderingStrategy } from './strategies';\nimport { SupportedTarget } from '@iiif/vault-helpers';\n\nexport type TextualContentStrategy = {\n type: 'textual-content';\n items: { annotationId: string; text: InternationalString; target: SupportedTarget | null }[];\n choice?: ChoiceDescription; // future\n annotations?: AnnotationPageDescription; // future\n};\n\nfunction parseType(item: any, languageMap: InternationalString = {}, lang?: string) {\n const language = item.language || lang || 'none';\n switch (item.type) {\n case 'TextualBody': {\n if (typeof item.value !== 'undefined') {\n languageMap[language] = item.value;\n }\n break;\n }\n case 'List':\n case 'Composite':\n case 'Choice': {\n if (item.items) {\n item.items.forEach((inner: any) => parseType(inner, languageMap, language));\n }\n }\n }\n return languageMap;\n}\n\nexport function getTextualContentStrategy(canvas: CanvasNormalized, paintables: Paintables): RenderingStrategy {\n const items: TextualContentStrategy['items'] = [];\n\n paintables.items.forEach((item) => {\n if (item.resource) {\n const [target] = getParsedTargetSelector(canvas, item.target);\n items.push({ annotationId: item.annotationId, text: parseType(item.resource), target: target as any });\n }\n });\n\n return {\n type: 'textual-content',\n items,\n } as TextualContentStrategy;\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 {\n emptyActions,\n emptyStrategy,\n unknownResponse,\n unsupportedStrategy,\n} 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';\nimport { getTextualContentStrategy } from '../features/rendering-strategy/textual-content-strategy';\nimport { useAnnotation } from './useAnnotation';\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 enableSingleAnnotation?: boolean;\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 || [\n 'empty',\n 'images',\n 'media',\n 'textual-content',\n 'complex-timeline',\n ];\n\n const [paintables, actions] = usePaintables(options, [imageServiceStatus]);\n\n const strategy = useMemo(() => {\n if (!canvas) {\n return unknownResponse;\n }\n\n if (paintables.types.length === 0) {\n if (supports.indexOf('empty') !== -1) {\n return emptyStrategy(canvas.width, canvas.height);\n }\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 if (mainType === 'textualbody') {\n if (supports.indexOf('textual-content') === -1) {\n return unsupportedStrategy('Textual content not supported');\n }\n\n return getTextualContentStrategy(canvas, paintables);\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 didUnmount.current = false;\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 { BoxStyle } from '@atlas-viewer/atlas';\nimport { useCanvas } from '../../hooks/useCanvas';\n\nexport function CanvasBackground({ style }: { style?: BoxStyle }) {\n const canvas = useCanvas();\n\n if (!canvas || !canvas.height || !canvas.width) {\n return null;\n }\n\n return <box interactive={false} target={{ x: 0, y: 0, width: canvas.width, height: canvas.height }} style={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));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nimport React, { useContext, useState, useRef, useEffect, useMemo } from \"react\";\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nvar defaultOptions = {\n bindI18n: \"languageChanged\",\n bindI18nStore: \"\",\n transEmptyNodeValue: \"\",\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: \"\",\n transKeepBasicHtmlNodesFor: [\"br\", \"strong\", \"i\", \"p\"],\n useSuspense: true\n};\nvar i18nInstance;\nvar I18nContext = React.createContext();\nfunction getDefaults() {\n return defaultOptions;\n}\nvar ReportNamespaces = function() {\n function ReportNamespaces2() {\n _classCallCheck(this, ReportNamespaces2);\n this.usedNamespaces = {};\n }\n _createClass(ReportNamespaces2, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n namespaces.forEach(function(ns) {\n if (!_this.usedNamespaces[ns])\n _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n return ReportNamespaces2;\n}();\nfunction getI18n() {\n return i18nInstance;\n}\nfunction warn() {\n if (console && console.warn) {\n var _console;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[0] === \"string\")\n args[0] = \"react-i18next:: \".concat(args[0]);\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nfunction warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === \"string\" && alreadyWarned[args[0]])\n return;\n if (typeof args[0] === \"string\")\n alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\nfunction loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function() {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized2() {\n setTimeout(function() {\n i18n.off(\"initialized\", initialized2);\n }, 0);\n cb();\n };\n i18n.on(\"initialized\", initialized);\n }\n });\n}\nfunction hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce(\"i18n.languages were undefined or empty\", i18n.languages);\n return true;\n }\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === \"cimode\")\n return true;\n var loadNotPending = function loadNotPending2(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n if (options.bindI18n && options.bindI18n.indexOf(\"languageChanging\") > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns))\n return false;\n if (i18n.hasResourceBundle(lng, ns))\n return true;\n if (!i18n.services.backendConnector.backend)\n return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns)))\n return true;\n return false;\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr))\n return arr;\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null)\n return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i)\n break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null)\n _i[\"return\"]();\n } finally {\n if (_d)\n throw _e;\n }\n }\n return _arr;\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length)\n len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o)\n return;\n if (typeof o === \"string\")\n return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor)\n n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\")\n return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n return _arrayLikeToArray(o, minLen);\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n var _ref = useContext(I18nContext) || {}, i18nFromContext = _ref.i18n, defaultNSFromContext = _ref.defaultNS;\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces)\n i18n.reportNamespaces = new ReportNamespaces();\n if (!i18n) {\n warnOnce(\"You will need to pass in an i18next instance by using initReactI18next\");\n var notReadyT = function notReadyT2(k) {\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n if (i18n.options.react && i18n.options.react.wait !== void 0)\n warnOnce(\"It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.\");\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n var useSuspense = i18nOptions.useSuspense, keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === \"string\" ? [namespaces] : namespaces || [\"translation\"];\n if (i18n.reportNamespaces.addUsedNamespaces)\n i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function(n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n function getT() {\n return i18n.getFixedT(null, i18nOptions.nsMode === \"fallback\" ? namespaces : namespaces[0], keyPrefix);\n }\n var _useState = useState(getT), _useState2 = _slicedToArray(_useState, 2), t = _useState2[0], setT = _useState2[1];\n var isMounted = useRef(true);\n useEffect(function() {\n var bindI18n = i18nOptions.bindI18n, bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function() {\n if (isMounted.current)\n setT(getT);\n });\n }\n function boundReset() {\n if (isMounted.current)\n setT(getT);\n }\n if (bindI18n && i18n)\n i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n)\n i18n.store.on(bindI18nStore, boundReset);\n return function() {\n isMounted.current = false;\n if (bindI18n && i18n)\n bindI18n.split(\" \").forEach(function(e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n)\n bindI18nStore.split(\" \").forEach(function(e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, namespaces.join()]);\n var isInitial = useRef(true);\n useEffect(function() {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n isInitial.current = false;\n }, [i18n]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready)\n return ret;\n if (!ready && !useSuspense)\n return ret;\n throw new Promise(function(resolve) {\n loadNamespaces(i18n, namespaces, function() {\n resolve();\n });\n });\n}\nfunction LanguageString(_a) {\n var _b = _a, {\n as: Component,\n language,\n children\n } = _b, props = __objRest(_b, [\n \"as\",\n \"language\",\n \"children\"\n ]);\n const { i18n } = useTranslation();\n const viewingDirection = useMemo(() => i18n.dir ? i18n.dir(language) : \"ltr\", [language]);\n const isSame = useMemo(() => {\n if (!i18n.services) {\n return false;\n }\n return i18n.services.languageUtils.getLanguagePartFromCode(i18n.language) === i18n.services.languageUtils.getLanguagePartFromCode(language);\n }, [i18n.language, language]);\n if (isSame) {\n if (Component) {\n return /* @__PURE__ */ React.createElement(Component, __spreadValues({}, props), children);\n }\n return /* @__PURE__ */ React.createElement(\"span\", __spreadValues({}, props), children);\n }\n if (Component) {\n return /* @__PURE__ */ React.createElement(Component, __spreadProps(__spreadValues({}, props), {\n lang: language,\n dir: viewingDirection\n }), children);\n }\n return /* @__PURE__ */ React.createElement(\"span\", __spreadProps(__spreadValues({}, props), {\n lang: language,\n dir: viewingDirection\n }), children);\n}\nfunction getClosestLanguage(i18nLanguage, languages, i18nLanguages = [], strictFallback = false) {\n if (!i18nLanguage || !languages || languages.length === 0) {\n return void 0;\n }\n if (languages.length === 1) {\n return languages[0];\n }\n if (languages.indexOf(i18nLanguage) !== -1) {\n return i18nLanguage;\n }\n const root = i18nLanguage.indexOf(\"-\") !== -1 ? i18nLanguage.slice(0, i18nLanguage.indexOf(\"-\")) : null;\n if (root && languages.indexOf(root) !== -1) {\n return root;\n }\n for (const lang of i18nLanguages) {\n if (languages.indexOf(lang) !== -1) {\n return lang;\n }\n }\n if (!strictFallback) {\n const inverseRoot = languages.map((l) => l.indexOf(\"-\") !== -1 ? l.slice(0, l.indexOf(\"-\")) : null);\n const inverseIdx = inverseRoot.indexOf(i18nLanguage);\n if (inverseIdx !== -1) {\n return languages[inverseIdx];\n }\n for (const lang of i18nLanguages) {\n const root2 = lang.indexOf(\"-\") !== -1 ? lang.slice(0, lang.indexOf(\"-\")) : null;\n const inverseIdx2 = root2 ? languages.indexOf(root2) : -1;\n if (inverseIdx2 !== -1) {\n return languages[inverseIdx2];\n }\n }\n }\n if (languages.indexOf(\"none\") !== -1) {\n return \"none\";\n }\n if (languages.indexOf(\"@none\") !== -1) {\n return \"@none\";\n }\n return languages[0];\n}\nfunction buildLocaleString(inputText, i18nLanguage, options = {}) {\n const { strictFallback = false, defaultText = \"\", separator = \"\\n\", fallbackLanguages = [], closest } = options;\n const languages = Object.keys(inputText || {});\n const language = closest ? i18nLanguage : getClosestLanguage(i18nLanguage, languages, fallbackLanguages, strictFallback);\n if (!inputText) {\n return defaultText;\n }\n if (typeof inputText === \"string\") {\n return inputText;\n }\n const candidateText = language ? inputText[language] : void 0;\n if (candidateText) {\n if (typeof candidateText === \"string\") {\n return candidateText;\n }\n return candidateText.join(separator);\n }\n return \"\";\n}\nfunction useClosestLanguage(getLanguages, deps = []) {\n const { i18n } = useTranslation();\n const i18nLanguages = i18n && i18n.languages ? i18n.languages : [];\n const i18nLanguage = i18n && i18n.language ? i18n.language : \"en\";\n return useMemo(() => {\n const languages = getLanguages();\n return getClosestLanguage(i18nLanguage, languages, i18nLanguages);\n }, [i18nLanguages, i18nLanguage, ...deps]);\n}\nfunction useLocaleString(inputText, defaultText) {\n const language = useClosestLanguage(() => Object.keys(inputText || {}), [inputText]);\n return [\n useMemo(() => {\n return buildLocaleString(inputText, language, {\n defaultText,\n closest: true\n });\n }, [language, defaultText, inputText]),\n language\n ];\n}\nconst LocaleString = (_c) => {\n var _d = _c, { as: Component, defaultText, enableDangerouslySetInnerHTML, children } = _d, props = __objRest(_d, [\"as\", \"defaultText\", \"enableDangerouslySetInnerHTML\", \"children\"]);\n const [text, language] = useLocaleString(children, defaultText);\n if (language) {\n return /* @__PURE__ */ React.createElement(LanguageString, __spreadProps(__spreadValues({}, props), {\n as: Component,\n language,\n title: enableDangerouslySetInnerHTML ? void 0 : text,\n dangerouslySetInnerHTML: enableDangerouslySetInnerHTML ? {\n __html: text\n } : void 0\n }), enableDangerouslySetInnerHTML ? void 0 : text);\n }\n if (Component) {\n return /* @__PURE__ */ React.createElement(Component, __spreadValues({}, props), text);\n }\n return /* @__PURE__ */ React.createElement(\"span\", __spreadProps(__spreadValues({}, props), {\n title: enableDangerouslySetInnerHTML ? void 0 : text,\n dangerouslySetInnerHTML: enableDangerouslySetInnerHTML ? {\n __html: text\n } : void 0\n }), enableDangerouslySetInnerHTML ? void 0 : text);\n};\nfunction useCreateLocaleString() {\n const { i18n } = useTranslation();\n const i18nLanguages = i18n && i18n.languages ? i18n.languages : [];\n const i18nLanguage = i18n && i18n.language ? i18n.language : \"en\";\n return function createLocaleString(inputText, defaultText) {\n return buildLocaleString(inputText, i18nLanguage, { fallbackLanguages: i18nLanguages, defaultText });\n };\n}\nexport { LanguageString, LocaleString, useClosestLanguage, useCreateLocaleString, useLocaleString };\n//# sourceMappingURL=react-i18next.mjs.map\n","import { createStylesHelper } from '@iiif/vault-helpers/styles';\nimport { RenderImage } from './Image';\nimport React, { Fragment, ReactNode, useEffect, useLayoutEffect, useMemo } from 'react';\nimport { BoxStyle, HTMLPortal } from '@atlas-viewer/atlas';\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 { EmptyStrategy, 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';\nimport { CanvasBackground } from './CanvasBackground';\nimport { ImageWithOptionalService } from '../../features/rendering-strategy/resource-types';\nimport { LocaleString } from '@iiif/vault-helpers/react-i18next';\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 | EmptyStrategy) => ReactNode;\n renderMediaControls?: (strategy: MediaStrategy) => ReactNode;\n strategies?: Array<RenderingStrategy['type']>;\n backgroundStyle?: BoxStyle;\n alwaysShowBackground?: boolean;\n onClickPaintingAnnotation?: (id: string, image: ImageWithOptionalService, e: any) => void;\n};\n\nexport function RenderCanvas({\n x,\n y,\n onChoiceChange,\n registerActions,\n defaultChoices,\n isStatic,\n renderViewerControls,\n renderMediaControls,\n strategies,\n backgroundStyle,\n alwaysShowBackground,\n onClickPaintingAnnotation,\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\n key={`${canvas.id}/${strategy.type}`}\n height={canvas.height}\n width={canvas.width}\n x={x}\n y={y}\n {...elementProps}\n >\n {strategy.type === 'empty' || alwaysShowBackground ? <CanvasBackground style={backgroundStyle} /> : null}\n {strategy.type === 'textual-content'\n ? strategy.items.map((item, n) => {\n return (\n <>\n <HTMLPortal\n key={n}\n // @ts-ignore\n onClick={\n onClickPaintingAnnotation\n ? (e: any) => {\n e.stopPropagation();\n onClickPaintingAnnotation(item.annotationId, item as any, e);\n }\n : undefined\n }\n target={(item.target as any).spatial || undefined}\n >\n <LocaleString>{item.text}</LocaleString>\n </HTMLPortal>\n {annotations}\n </>\n );\n })\n : null}\n {strategy.type === 'images' ? (\n <>\n {strategy.images.map((image, idx) => (\n <RenderImage\n isStatic={isStatic}\n key={image.id}\n image={image}\n id={image.id}\n thumbnail={idx === 0 ? thumbnail : undefined}\n onClick={\n onClickPaintingAnnotation\n ? (e) => {\n e.stopPropagation();\n onClickPaintingAnnotation(image.annotationId, image, e);\n }\n : undefined\n }\n />\n ))}\n {annotations}\n </>\n ) : null}\n {(strategy.type === 'images' || strategy.type === 'empty' || strategy.type === 'textual-content') &&\n renderViewerControls ? (\n <CanvasPortal overlay>{renderViewerControls(strategy as any)}</CanvasPortal>\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';\nimport { CanvasBackground } from './render/CanvasBackground';\n\nexport const CanvasPanel = {\n RenderImage,\n RenderCanvas,\n RenderAnnotationPage,\n RenderAnnotation,\n Viewer,\n CanvasBackground,\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 React, { ReactNode } from 'react';\nimport { ResourceProvider } from './ResourceContext';\n\nexport function AnnotationPageContext({ annotationPage, children }: { annotationPage: string; children: ReactNode }) {\n return <ResourceProvider value={{ annotationPage }}>{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 { useResourceContext } from '../context/ResourceContext';\nimport { AnnotationPageNormalized } from '@iiif/presentation-3';\nimport { useMemo } from 'react';\nimport { useVaultSelector } from './useVaultSelector';\n\nexport function useAnnotationPage(options?: { id: string }): AnnotationPageNormalized | undefined;\nexport function useAnnotationPage<T>(\n options?: { id: string; selector: (annotation: AnnotationPageNormalized) => T },\n deps?: any[]\n): T | undefined;\nexport function useAnnotationPage<T = AnnotationPageNormalized>(\n options: {\n id?: string;\n selector?: (annotation: AnnotationPageNormalized) => T;\n } = {},\n deps: any[] = []\n): AnnotationPageNormalized | T | undefined {\n const { id, selector } = options;\n const ctx = useResourceContext();\n const annotationPageId = id ? id : ctx.annotationPage;\n\n const annotationPage = useVaultSelector(\n (s) => (annotationPageId ? s.iiif.entities.AnnotationPage[annotationPageId] : undefined),\n [annotationPageId]\n );\n\n return useMemo(() => {\n if (!annotationPage) {\n return undefined;\n }\n\n if (selector) {\n return selector(annotationPage);\n }\n return annotationPage;\n }, [annotationPage, ...deps]);\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 { Reference } from '@iiif/presentation-3';\nimport { useVaultSelector } from './useVaultSelector';\nimport { IIIFStore } from '@iiif/vault';\n\nexport function useCanvasSubset(idsOrRefs?: Array<string | Reference>) {\n const ctx = useResourceContext();\n const manifestId = ctx.manifest;\n const refs = idsOrRefs ? idsOrRefs.map((item) => (typeof item === 'string' ? item : item?.id)) : [];\n return useVaultSelector(\n (s: IIIFStore) => {\n const manifest = manifestId ? s.iiif.entities.Manifest[manifestId] : undefined;\n const items = manifest?.items || [];\n\n if (typeof idsOrRefs === 'undefined') {\n return items;\n }\n\n const newItems = [];\n for (const item of manifest?.items || []) {\n if (refs.indexOf(item.id) !== -1) {\n newItems.push(item);\n }\n }\n\n return newItems;\n },\n [refs.join('/')]\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 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","supportedEventAttributes","reduce","acc","next","supportedEventMap","ev","slice","toLowerCase","hidePointsOutsideRegion","points","target","buffer","len","length","ret","dna","index","byteOffset","Float32Array","getIntersection","boxA","boxB","intersects","mem","Math","max","min","dnaLength","compose","transformA","transformB","DnaFactory","constructor","grid","columns","rows","point","x2","y2","positionPair","pair","x1","y1","projection","singleBox","width","height","x","y","box","row","func","addPoints","addBox","build","mutate","transformation","scale","factor","scaleTransform","translate","translation","scaleAtOrigin","transform","nanoid","size","crypto","getRandomValues","Uint8Array","id","byte","toString","toUpperCase","BaseObject","__revision","__state","layers","time","addEventListener","name","cb","options","event","eventHandlers","Error","indexOf","push","removeEventListener","console","warn","filter","e","__id","createDefaultEventMap","getObjectsAt","getAllPointsAt","aggregate","scale2","getScheduledUpdates","scaleFactor","dispatchEvent","listeners","didFire","e2","error","atScale","op","applyProps","props","appendChild","item","removeChild","insertBefore","before","hideInstance","SingleImage","data","type","style","opacity","uri","display","set","crop","fromSvg","svg","fromImage","btoa","instance","getImageUrl","ImageTexture","getTexture","source","hash","ratio","resources","quality","best","i","abs","a","b2","xDelta","distance1D","yDelta","sqrt","pow","TiledImage","stripInfoJson","url","displayPoints","tileWidth","service","fromTile","canvas","tile","fullWidth","ceil","fullHeight","mWidth","mHeight","pointsFactory","rx","ry","tiledImage","im","w2","AbstractContent","arguments","CompositeResource","images","allImages","scaleFactors","aggregateBuffer","isFullyLoaded","maxScaleFactor","_scheduleSortByScales","_sortByScales","sort","lastScale","image","renderOptions","minSize","priority","maxImageSize","diff","otherImage","pop","map","singleImage","loadFullResource","lazyLoader","newImages","addImages","fallback","loadFullImages","renderSmallestFallback","renderLayers","sortByScales","__parent","Boolean","bestIndex","bestResourceIndexAtRatio","window","devicePixelRatio","newAggregate","toPaintIdx","smallestIdx","unshift","toPaint","WorldObject","position","intersectionBuffer","invertedBuffer","_updatedList","worldPoints","filteredPointsBuffer","createWithProps","s","addLayers","layer","beforeLayers","afterLayers","all","filteredPoints","objects","object","transformer","inter","arr","t","agg","paintables","paintablesToAdd","paintable","concat","updates","World","worldObjectCount","viewingDirection","isDirty","zones","triggerQueue","activatedEvents","translationBuffer","needsRecalculate","emptyPaintables","renderOrder","subscriptions","_propagateEventTargets","_alreadyFlushed","_width","_height","aspectRatio","Number","isNaN","withProps","resize","triggerRepaint","propagateTouchEvent","eventName","touchTargets","targets","touch","reverse","propagateEvent","bubbles","cancelable","propagatePointerEvent","opts","worldObjects","atlasTarget","stopped","stopPropagation","woLen","len2","atlasWorld","idx","appendWorldObject","obj","beforeIndex","splice","asWorldObject","addZone","zone","selectZone","selectedZone","trigger","deselectZone","getActiveZone","hasActiveZone","checkResizeInternalBuffer","newPoints","pointValues","subarray","recalculateWorldSize","didChange","wBuffer","Int32Array","hBuffer","_index","newWidth","newHeight","addObjectAt","worldObject","scaleWorldObject","translateWorldObject","getObjects","getPoints","getPointsFromViewer","targetPoints","getPointsAt","addLayoutSubscriber","subscription","flushSubscriptions","queueLen","apply","triggerEventActivation","gotoRegion","goHome","immediate","zoomTo","stream","zoomIn","zoomOut","constraintBounds","borderRegex","borderRegexCache","styleProps","Box","hoverEvents","activeEvents","_parsed","border","match","outline","addHover","hovering","removeHover","pressing","addPress","removePress","didUpdate","interactive","borderStyle","exec","borderWidth","borderColor","outlineWidth","outlineStyle","outlineColor","backgroundColor","background","prop","hoverStyles","pressStyles","href","hrefTarget","title","className","relativeSize","relativeStyle","html","Text","color","text","font","lineHeight","textAlign","verticalAlign","paddingX","paddingY","fitParent","lineBreak","strokeText","sizeToFill","maxFontSizeToFill","allowNewLine","justifyLines","renderHDPI","textDecoration","fontSize","fontFamily","sin","cos","PI","c1","c2","c3","c4","c5","bounceOut","d1","n1","easingFunctions","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInBack","easeOutBack","easeInOutBack","easeInElastic","easeOutElastic","easeInOutElastic","easeInBounce","easeOutBounce","easeInOutBounce","TransitionManager","runtime","pendingTransition","from","to","elapsed_time","done","total_time","timingFunction","constrain","hasPending","getPendingTransition","getPendingFrom","customTransition","stopTransition","runTransition","delta","transition","td","step","constrainBounds","duration","easing","origin","getZoomedPosition","dist","applyTransition","panPadding","isConstrained","constrained","updateNextFrame","defaults","goToRegion","clampedRegion","clampRegion","Runtime","renderer","world","controllers","ready","transformBuffer","lastTarget","zoomBuffer","logNextRender","pendingUpdate","firstRender","mode","controllersRunning","controllerStopFunctions","_viewerToWorld","_lastGoodScale","hooks","useFrame","useBeforeFrame","useAfterPaint","useAfterFrame","_viewport","setViewport","render","lastTime","fpsLimit","stopId","requestAnimationFrame","hook","rendererPendingUpdate","transitionManager","updateControllerPosition","beforeFrame","getScaleFactor","pointsLen","p2","paint","prepareLayer","totalTiles","key","afterFrame","isReady","update","then","maxOverZoom","maxUnderZoom","visibilityRatio","manualHomePosition","homePosition","manualFocalPosition","focalPosition","updateFocalPosition","setHomePosition","performance","now","startControllers","controller","start","stopControllers","updatePosition","triggerResize","addController","cover","getRendererScreenPosition","updateRendererScreenPosition","widthScale","heightScale","ar","space","fromWidth","toWidth","fromHeight","toHeight","widthRatio","heightRatio","widthDiff","heightDiff","h2","marginTrimWidth","marginTrimHeight","baseX","baseY","getViewport","ref","minX","maxX","minY","maxY","getBounds","padding","visRatio","hiddenRatio","xCon","yCon","wt","ww","xB","xD","ht","hw","yB","yD","dpi","getScale","fromPos","_fromPos","_a","sWidth","wWidth","realFactor","proposedFactor","proposedWorldDisplayWidth","displayWidthAdjusted","displayWidth","proposedWorldDisplayHeight","displayHeightAdjusted","displayHeight","proposedStrand","matchesHeight","rWidth","rHeight","actualWidth","actualHeight","viewerToWorld","worldToViewer","strand","setScale","syncTo","oldTarget","stop","cancelAnimationFrame","arg","registerHook","shadowRegex","shadowRegexCache","imageCache","hostCache","CanvasRenderer","imagesPending","imagesLoaded","frameIsRendering","pendingDrawCall","firstMeaningfulPaint","parallelTasks","frameTasks","loadingQueueOrdered","loadingQueue","currentTask","Promise","resolve","tasksRunning","averageJobTime","lastKnownScale","visible","previousVisible","drawCalls","_worker","task","catch","_scheduled","_doWork","clearInterval","rendererPosition","getBoundingClientRect","ctx","getContext","alpha","imageSmoothingEnabled","getCanvasDims","distance","nextCall","shift","doOffscreenWork","debug","stats","end","setInterval","begin","globalAlpha","fillStyle","fillRect","ga","imageBuffer","__host","indices","schedulePaintToCanvas","canvasToPaint","canvases","drawImage","MIN_VALUE","Object","assign","bw","parseInt","ow","oo","outlineOffset","strokeStyle","boxShadow","shadows","split","shadow","parsed","save","shadowOffsetX","shadowOffsetY","shadowBlur","shadowColor","restore","lineWidth","strokeRect","loadImage","callback","err","naturalWidth","document","createElement","decoding","onload","crossOrigin","src","loading","innerResolve","loaded","log","afterPaintLayer","transform2","createImageHost","clearRect","getViewportBounds","CompositeRenderer","renderers","DebugRenderer","renderNextFrame","initialWidth","initialHeight","context","bounds","total","toDraw","forEach","v2","k2","_populated","_ie","_firefox","_opera","_webkit","_chrome","_ie_real_version","_osx","_windows","_linux","_android","_win64","_iphone","_ipad","_native","_mobile","uas","navigator","userAgent","agent","os","parseFloat","NaN","documentMode","trident","ver","replace","UserAgent_DEPRECATED$1","ie","_populate","ieCompatibilityMode","ie64","firefox","opera","webkit","safari","chrome","windows","osx","linux","iphone","mobile","nativeApp","android","ipad","UserAgent_DEPRECATED_1","canUseDOM","ExecutionEnvironment$1","canUseWorkers","Worker","canUseEventListeners","attachEvent","canUseViewport","screen","isInWorker","ExecutionEnvironment_1","ExecutionEnvironment","useHasFeature","implementation","hasFeature","eventNameSuffix","capture","isSupported","element","setAttribute","isEventSupported_1","isEventSupported$1","UserAgent_DEPRECATED","isEventSupported","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","normalizeWheel$1","getEventType","normalizeWheel_1","normalizeWheel","defaultConfig","zoomOutFactor","zoomInFactor","maxZoomFactor","minZoomFactor","zoomDuration","zoomWheelConstant","zoomClamp","panBounceStiffness","panBounceDamping","panTimeConstant","panPower","nudgeDistance","enableWheel","enableClickToZoom","onPanInSketchMode","popmotionController","config","state","pointerStart","isPressing","mousemoveBuffer","multiTouch","currentDistance","which","preventDefault","atlas","atlasTouches","touches","clientX","clientY","newDistance","deltaDistance","normalized","zoomFactor","onMouseUp","onTouchStart","onMouseDown","onWindowMouseUp","onMouseMove","onTouchMove","onClick","onWheel","removeLayout","toBox","ModeContext","React","createContext","useMode","useContext","wait","timeout","args","timestamp","result","last","Date","setTimeout","later","debounced","callNow","clear","clearTimeout","flush","debounce","debounce_1","_temp","debounce2","scroll","polyfill","offsetSize","ResizeObserver","useState","left","top","bottom","right","useRef","scrollContainers","resizeObserver","lastBounds","scrollDebounce","resizeDebounce","mounted","useEffect","current","forceRefresh","resizeChange","scrollChange","useMemo","HTMLElement","offsetHeight","offsetWidth","freeze","areBoundsEqual","disconnect","observe","scrollContainer","passive","node","removeListeners","findScrollContainers","addListeners","useOnWindowScroll","useOnWindowResize","onWindowResize","onScroll","enabled","body","overflow","overflowX","overflowY","getComputedStyle","some","parentElement","keys","every","AtlasContext","BoundsContext","getCurrentTime","localPerformance","localDate","initialTime","parent","child","container","beforeChild","oldProps","newProps","keys2","didActivate","roots","Map","emptyObject","hostContext","internalInstanceHandle","fn","return","stateNode","containerInfo","children","activateEvents","reconciler","Reconciler","unstable_now","createInstance","appendInitialChild","warnsIfNotActing","supportsMutation","isPrimaryRenderer","scheduleTimeout","cancelTimeout","noTimeout","appendChildToContainer","removeChildFromContainer","createTextInstance","insertInContainerBefore","prepareUpdate","commitUpdate","updatePayload","prevProps","nextProps","internalHandle","finalizeInitialChildren","__handlers","getChildHostContext","getRootHostContext","prepareForCommit","preparePortalMount","unhideInstance","getPublicInstance","hideTextInstance","resetAfterCommit","shouldSetTextContent","clearContainer","injectIntoDevTools","bundleType","version","rendererPackageName","root","get","updateContainer","delete","ReactAtlas","whatToRender","newRoot","createContainer","AtlasWithReconciler","memo","setIsReady","onCreated","preset","Canvas","useCallback","activate","useLayoutEffect","_jsx","WebGLRenderer","fragmentShaderSource","vertexShaderSource","lastResize","gl","fragmentShader","createShader","FRAGMENT_SHADER","vertexShader","VERTEX_SHADER","program","createProgram","attributes","getAttribLocation","texCoord","uniforms","resolution","getUniformLocation","texture","buffers","createArrayBuffer","rectBuffer","viewport","clearColor","COLOR_BUFFER_BIT","useProgram","enableVertexAttribArray","resizeCanvasToDisplaySize","vertexAttribPointer","FLOAT","uniform2f","webgl","createTextureHost","createTexture","bindTexture","TEXTURE_2D","pixelStorei","UNPACK_FLIP_Y_WEBGL","lastImage","initial","texImage2D","RGBA","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","LINEAR","TEXTURE_MIN_FILTER","TEXTURE_WRAP_T","CLAMP_TO_EDGE","TEXTURE_WRAP_S","textures","Array","lastLevelRendered","onLoad","newText","internalFormat","srcFormat","srcType","level","bindBuffer","ARRAY_BUFFER","uniform1i","setRectangle","drawArrays","TRIANGLES","shader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","info","getShaderInfoLog","deleteShader","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","deleteProgram","clientWidth","clientHeight","needResize","createBuffer","bufferData","STATIC_DRAW","getRectangle","x22","y22","str","JSON","stringify","numHash","charCodeAt","hexString","num","Stylesheet","sheetPrefix","$element","stylesheetClasses","activeStylesheetClasses","sheetsDidUpdate","stylesheetEntries","getElement","addStylesheet","_sheet","sheet","trim","removeStylesheet","clearClasses","didUpdateActive","updateSheet","innerText","join","OverlayRenderer","htmlContainer","htmlIds","paintTx","zIndex","innerHTML","inlineStyles","stylesheet","classList","add","classes","hostClassName","nonInteractive","createHtmlHost","div","rel","transformOrigin","revision","relative","updateHtmlHost","__onCreate","pointerEvents","removeAttribute","classNames2","part","classNames","prev","tx","round","_BrowserEventManager","pointerMoveEvent","pointerEventState","isClicking","isDragging","isPressed","mousedOver","itemsBeingDragged","mouseDownStart","lastTouches","_realPointerMove","onWheelEvent","onPointerEvent","onTouchEvent","atlasTouch","identifier","assignToEvent","onPointerDown","dragStart","onPointerUp","onPointerMove","newList","newIds","newItems","oldItem","unsubscribe","layoutSubscriber","bind","simulationRate","tAcc","updateBounds","eventPool","normalizeEventName","startsWith","handler","BrowserEventManager","canvasElement","overlayElement","controllerConfig","unstable_webglRenderer","canvasBox","navigatorElement","runtimeOptions","userSelect","em","unmount","unmountComponentAtNode","StaticRenderer","pending","currentlyVisible","previouslyVisible","addPart","setDraggableFalse","imageClass","widthStylesheet","createImage","toFixed","containerElement","staticRenderer","overlay","presets","defaultPreset","staticPreset","defaultArgs","renderPreset","overlayRef","canvasRef","navigatorRef","containerRef","presetName","presetArgs","isArray","setPreset","createdPreset","presetFn","refs","deps","Container","forwardRef","Atlas","htmlChildren","_renderPreset","_mode","resetWorldOnChange","unstable_noReconciler","hideInlineStyle","overlayStyle","containerStyle","enableNavigator","containerProps","_background","restProps","setBackground","setMode","_ref","useMeasure","outerContainerRef","component","usePreset","containerClassName","setContainerClassName","rt","windowResizeCallback","navigatorOptions","recalculateNavigatorDimensions","wHeight","canvasWidth","canvasHeight","keyupSpace","keydownSpace","code","tagName","_background2","computed","getPropertyValue","_2","__","canvasProps","widthClassName","useClassname","_jsxs","AtlasAuto","resizeHash","_bounds","toPx","useAtlas","useRuntime","toRender","module","createRoot","default","ReactDOM","HTMLPortal","fwdRef","boxRef","relativeBox","renderReactDom","renderHost","displayName","useWorldEvent","realName","modifierKeys","ctrl","alt","keyDown","keyUp","useResizeWorldItem","onSave","canvasPosition","useCanvasPosition","resizeMode","portalRef","mouseStart","isEditing","setIsEditing","cardinalDeltas","north","south","east","west","useModifierKeys","mouseEvent","direction","pageX","pageY","constrainToAspectRatio","deltas","originalWidth","originalHeight","newAspectRatio","margin","eastRatio","westRatio","getRatio","northRatio","southRatio","onPointerMoveCallback","maintainAspectRatio","dX1","dY1","dX2","dY2","windowPointerUp","realSize","handleSize","_handleSize","resizable","disableCardinalControls","translate2","southEast","southWest","northEast","northWest","inSketchMode","baseStyle","borderRadius","_Fragment","boxSizing","cursor","region","saveCallback","TileSet","tiles","imageService","sizes","canonicalId","endsWith","thumbnail","defaultStyle","setPrototypeOf","defaultResourceContext","collection","undefined","manifest","range","annotation","annotationPage","ResourceReactContext","useResourceContext","value","parentContext","newContext","ReactVaultContext","vault","setVaultInstance","vaultOptions","useGlobal","vaultInstance","globalVault","Vault","VisibleCanvasReactContext","ids","useVaultSelector","iiif","entities","noop","SimpleViewerReactContext","setCurrentCanvasId","setCurrentCanvasIndex","nextCanvas","previousCanvas","items","sequence","setSequenceIndex","currentSequenceIndex","useManifest","visibleItems","setCanvasIndex","setCanvasId","previous","useCanvasSequence","startCanvas","disablePaging","pagingEnabled","totalCanvases","useExternalManifest","isLoaded","inner","rangeId","VaultContext","ResourceContext","bridge","createAction","VirtualAnnotationPageContext","fullPage","addAnnotation","removeAnnotation","useVirtualAnnotationPage","minHeight","ViewerPresetContext","PortalContext","OverlayPortalContext","htmlElement","useViewerPreset","client","errorFallback","outerContainerProps","portal","portalElement","setPortalElement","viewerPreset","setViewerPreset","overlayPortal","overlayPortalElement","setOverlayPortalElement","useContextBridge","ErrorFallback","DefaultCanvasFallback","$el","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__spreadProps","BOX_SELECTOR","TEMPORAL_SELECTOR","parseSelector","expandTarget","RenderAnnotation","useAnnotation","useStyles","events","useResourceEvents","useCanvas","allStyles","mergeStyles","selector","spatial","RenderAnnotationPage","page","AnnotationPage","Fragment","isStatic","getMeta","ImageServiceLoaderContext","ImageServiceLoader","getImageServices","getFixedSizeFromImage","useReducer","MediaReactContextState","MediaReactContextActions","MediaReactContextElements","actions","currentTime","progress","media","useSimpleMediaPlayer","playPause","objectFit","model","defineProperty","defineProperties","getOwnPropertyDescriptors","getOwnPropertySymbols","prototype","hasOwnProperty","propertyIsEnumerable","enumerable","configurable","writable","b","call","__objRest","exclude","Constructor","TypeError","descriptor","protoProps","staticProps","_defineProperties","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","i18nInstance","I18nContext","ReportNamespaces","_classCallCheck","ReportNamespaces2","usedNamespaces","_createClass","namespaces","_this","ns","_console","_len","_key","alreadyWarned","_len2","_key2","i18n","loadNamespaces","isInitialized","initialized","off","initialized2","on","languages","warnOnce","lng","fallbackLng","lastLng","loadNotPending","l","loadState","services","backendConnector","backend","isLanguageChangingTo","hasResourceBundle","_i","Symbol","iterator","_arr","_n","_d","_s","_e","arr2","o","minLen","_arrayLikeToArray","test","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","ownKeys","_defineProperty","i18nFromProps","i18nFromContext","defaultNSFromContext","defaultNS","getI18n","reportNamespaces","notReadyT","k","retNotReady","react","i18nOptions","_objectSpread","getDefaults","keyPrefix","addUsedNamespaces","initializedStoreOnce","hasLoadedNamespace","getFixedT","nsMode","_useState","getT","_useState2","_slicedToArray","setT","isMounted","boundReset","store","isInitial","_b","as","Component","language","useTranslation","dir","languageUtils","getLanguagePartFromCode","lang","i18nLanguage","i18nLanguages","strictFallback","inverseIdx","inverseRoot","root2","inverseIdx2","inputText","defaultText","separator","fallbackLanguages","closest","getClosestLanguage","candidateText","getLanguages","useClosestLanguage","buildLocaleString","LocaleString","_c","enableDangerouslySetInnerHTML","useLocaleString","dangerouslySetInnerHTML","__html","onChoiceChange","registerActions","defaultChoices","renderViewerControls","renderMediaControls","strategies","backgroundStyle","alwaysShowBackground","onClickPaintingAnnotation","elementProps","virtualPage","useVirtualAnnotationPageContext","useVault","helper","createStylesHelper","strategy","useRenderingStrategy","choice","annotations","applyStyles","useThumbnail","maxWidth","maxHeight","accompanyingCanvas","thumbnailFallbackImage","reason","pages","annotationId"],"mappings":"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"}