@annotorious/react 3.0.0-rc.3 → 3.0.0-rc.31

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.
Files changed (98) hide show
  1. package/dist/Annotorious.d.ts +12 -34
  2. package/dist/Annotorious.d.ts.map +1 -1
  3. package/dist/AnnotoriousPlugin.d.ts +8 -6
  4. package/dist/AnnotoriousPlugin.d.ts.map +1 -1
  5. package/dist/AnnotoriousPopup.d.ts +2 -1
  6. package/dist/ImageAnnotator.d.ts +2 -2
  7. package/dist/ImageAnnotator.d.ts.map +1 -1
  8. package/dist/annotorious-react.css +1 -1
  9. package/dist/annotorious-react.es.js +37 -52
  10. package/dist/annotorious-react.es.js.map +1 -1
  11. package/dist/annotorious-react.es10.js +16 -3
  12. package/dist/annotorious-react.es10.js.map +1 -1
  13. package/dist/annotorious-react.es11.js +6 -27
  14. package/dist/annotorious-react.es11.js.map +1 -1
  15. package/dist/annotorious-react.es12.js +7 -19
  16. package/dist/annotorious-react.es12.js.map +1 -1
  17. package/dist/annotorious-react.es13.js +131 -51
  18. package/dist/annotorious-react.es13.js.map +1 -1
  19. package/dist/annotorious-react.es14.js +32 -17
  20. package/dist/annotorious-react.es14.js.map +1 -1
  21. package/dist/annotorious-react.es15.js +2 -22
  22. package/dist/annotorious-react.es15.js.map +1 -1
  23. package/dist/annotorious-react.es16.js +26 -2
  24. package/dist/annotorious-react.es16.js.map +1 -1
  25. package/dist/annotorious-react.es17.js +606 -2
  26. package/dist/annotorious-react.es17.js.map +1 -1
  27. package/dist/annotorious-react.es18.js +2 -3859
  28. package/dist/annotorious-react.es18.js.map +1 -1
  29. package/dist/annotorious-react.es19.js +2 -29
  30. package/dist/annotorious-react.es19.js.map +1 -1
  31. package/dist/annotorious-react.es2.js +87 -68
  32. package/dist/annotorious-react.es2.js.map +1 -1
  33. package/dist/annotorious-react.es3.js +6 -7
  34. package/dist/annotorious-react.es3.js.map +1 -1
  35. package/dist/annotorious-react.es4.js +8 -8
  36. package/dist/annotorious-react.es4.js.map +1 -1
  37. package/dist/annotorious-react.es5.js +19 -17
  38. package/dist/annotorious-react.es5.js.map +1 -1
  39. package/dist/annotorious-react.es8.js +27 -47
  40. package/dist/annotorious-react.es8.js.map +1 -1
  41. package/dist/annotorious-react.es9.js +35 -12
  42. package/dist/annotorious-react.es9.js.map +1 -1
  43. package/dist/index.d.ts +11 -11
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/openseadragon/OpenSeadragonAnnotator.d.ts +3 -2
  46. package/dist/openseadragon/OpenSeadragonAnnotator.d.ts.map +1 -1
  47. package/dist/openseadragon/OpenSeadragonPopup.d.ts +2 -1
  48. package/dist/openseadragon/OpenSeadragonViewer.d.ts +3 -3
  49. package/dist/openseadragon/OpenSeadragonViewer.d.ts.map +1 -1
  50. package/dist/openseadragon/setPosition.d.ts +2 -1
  51. package/dist/openseadragon/setPosition.d.ts.map +1 -1
  52. package/package.json +18 -10
  53. package/dist/annotorious-react.es20.js +0 -39
  54. package/dist/annotorious-react.es20.js.map +0 -1
  55. package/dist/annotorious-react.es21.js +0 -19
  56. package/dist/annotorious-react.es21.js.map +0 -1
  57. package/dist/annotorious-react.es22.js +0 -7
  58. package/dist/annotorious-react.es22.js.map +0 -1
  59. package/dist/annotorious-react.es23.js +0 -11
  60. package/dist/annotorious-react.es23.js.map +0 -1
  61. package/dist/annotorious-react.es24.js +0 -156
  62. package/dist/annotorious-react.es24.js.map +0 -1
  63. package/dist/annotorious-react.es25.js +0 -9
  64. package/dist/annotorious-react.es25.js.map +0 -1
  65. package/dist/annotorious-react.es26.js +0 -20665
  66. package/dist/annotorious-react.es26.js.map +0 -1
  67. package/dist/annotorious-react.es27.js +0 -35
  68. package/dist/annotorious-react.es27.js.map +0 -1
  69. package/dist/annotorious-react.es28.js +0 -5
  70. package/dist/annotorious-react.es28.js.map +0 -1
  71. package/dist/annotorious-react.es29.js +0 -33
  72. package/dist/annotorious-react.es29.js.map +0 -1
  73. package/dist/annotorious-react.es30.js +0 -602
  74. package/dist/annotorious-react.es30.js.map +0 -1
  75. package/dist/annotorious-react.es31.js +0 -5
  76. package/dist/annotorious-react.es31.js.map +0 -1
  77. package/dist/annotorious-react.es32.js +0 -5
  78. package/dist/annotorious-react.es32.js.map +0 -1
  79. package/dist/annotorious-react.es33.js +0 -20
  80. package/dist/annotorious-react.es33.js.map +0 -1
  81. package/dist/annotorious-react.es34.js +0 -30
  82. package/dist/annotorious-react.es34.js.map +0 -1
  83. package/dist/annotorious-react.es35.js +0 -19
  84. package/dist/annotorious-react.es35.js.map +0 -1
  85. package/dist/annotorious-react.es36.js +0 -24
  86. package/dist/annotorious-react.es36.js.map +0 -1
  87. package/dist/annotorious-react.es37.js +0 -19
  88. package/dist/annotorious-react.es37.js.map +0 -1
  89. package/dist/annotorious-react.es38.js +0 -7
  90. package/dist/annotorious-react.es38.js.map +0 -1
  91. package/dist/annotorious-react.es39.js +0 -11
  92. package/dist/annotorious-react.es39.js.map +0 -1
  93. package/dist/annotorious-react.es40.js +0 -10
  94. package/dist/annotorious-react.es40.js.map +0 -1
  95. package/dist/annotorious-react.es6.js +0 -5
  96. package/dist/annotorious-react.es6.js.map +0 -1
  97. package/dist/annotorious-react.es7.js +0 -5
  98. package/dist/annotorious-react.es7.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"annotorious-react.es13.js","sources":["../../annotorious-core/src/presence/PresenceState.ts"],"sourcesContent":["import { nanoid } from 'nanoid';\nimport { createNanoEvents, type Unsubscribe } from 'nanoevents';\nimport type { User } from '../model';\nimport type { PresentUser } from './PresentUser';\nimport type { PresenceEvents } from './PresenceEvents';\nimport { createDefaultAppearenceProvider } from './AppearanceProvider';\nimport type { AppearanceProvider } from './AppearanceProvider';\n\nexport interface PresenceState {\n\n // Get users currently present to this room\n getPresentUsers(): PresentUser[];\n\n // Notify of a given present user's activity on the given annotations\n notifyActivity(presenceKey: string, annotationIds: string[]): void;\n\n // Add a listener for the given presence event\n on<E extends keyof PresenceEvents>(event: E, callback: PresenceEvents[E]): Unsubscribe;\n\n // Initial sync - which users are present under which keys\n syncUsers(state: { presenceKey: string, user: User }[]): void;\n\n // Update the selection state for the given prresent user\n updateSelection(presenceKey: string, selection: string[] | null): void;\n\n}\n\nconst isListEqual = (listA: any[], listB: any[]) => \n listA.every(a => listA.includes(a)) && listB.every(b => listA.includes(b));\n\n// This client's presence key\nexport const PRESENCE_KEY = nanoid();\n\nexport const createPresenceState = (\n appearanceProvider: AppearanceProvider = createDefaultAppearenceProvider()\n): PresenceState => {\n\n const emitter = createNanoEvents<PresenceEvents>();\n\n const presentUsers = new Map<string, PresentUser>();\n\n const selectionStates = new Map<string, string[]>();\n\n const addUser = (presenceKey: string, user: User) => {\n if (presentUsers.has(presenceKey)) {\n console.warn('Attempt to add user that is already present', presenceKey, user);\n return; \n }\n\n const appearance = appearanceProvider.addUser(presenceKey, user);\n\n presentUsers.set(presenceKey, { \n ...user,\n presenceKey,\n appearance\n });\n }\n\n const removeUser = (presenceKey: string) => {\n const user = presentUsers.get(presenceKey);\n if (!user) {\n console.warn('Attempt to remove user that is not present', presenceKey);\n return;\n }\n\n appearanceProvider.removeUser(user);\n\n presentUsers.delete(presenceKey);\n }\n\n const syncUsers = (state: { presenceKey: string, user: User }[]) => {\n // const keys = new Set(others.map(s => s.presenceKey));\n const keys = new Set(state.map(s => s.presenceKey));\n\n // These users need to be added to the presentUsers list\n // const toAdd = others.filter(({ presenceKey }) => !presentUsers.has(presenceKey));\n const toAdd = state.filter(({ presenceKey }) => !presentUsers.has(presenceKey));\n\n // These users need to be dropped from the list\n const toRemove = Array.from(presentUsers.values()).filter(presentUser =>\n !keys.has(presentUser.presenceKey));\n\n toAdd.forEach(({ presenceKey, user }) => addUser(presenceKey, user));\n\n toRemove.forEach(user => {\n const { presenceKey } = user;\n\n // If this user has a selection, fire deselect event\n if (selectionStates.has(presenceKey))\n emitter.emit('selectionChange', user, null);\n\n removeUser(presenceKey)\n });\n\n if (toAdd.length > 0 || toRemove.length > 0)\n emitter.emit('presence', getPresentUsers());\n }\n\n const notifyActivity = (presenceKey: string, annotationIds: string[]) => { \n const user = presentUsers.get(presenceKey);\n \n if (!user) {\n console.warn('Activity notification from user that is not present');\n return;\n }\n\n const currentSelection = selectionStates.get(presenceKey);\n\n // Was there a selection change we might have missed?\n if (!currentSelection || !isListEqual(currentSelection, annotationIds)) {\n selectionStates.set(presenceKey, annotationIds);\n emitter.emit('selectionChange', user, annotationIds);\n }\n }\n\n const updateSelection = (presenceKey: string, selection: string[] | null) => {\n const from = presentUsers.get(presenceKey);\n if (!from) {\n console.warn('Selection change for user that is not present', presenceKey);\n return;\n }\n\n if (selection)\n selectionStates.set(presenceKey, selection);\n else \n selectionStates.delete(presenceKey);\n\n emitter.emit('selectionChange', from, selection);\n }\n\n const getPresentUsers = () =>\n [...Array.from(presentUsers.values())];\n \n const on = <E extends keyof PresenceEvents>(event: E, callback: PresenceEvents[E]) =>\n emitter.on(event, callback);\n\n return {\n getPresentUsers,\n notifyActivity,\n on,\n syncUsers,\n updateSelection\n }\n\n}"],"names":["isListEqual","listA","listB","a","b","PRESENCE_KEY","nanoid","createPresenceState","appearanceProvider","createDefaultAppearenceProvider","emitter","createNanoEvents","presentUsers","selectionStates","addUser","presenceKey","user","appearance","removeUser","syncUsers","state","keys","toAdd","toRemove","presentUser","getPresentUsers","notifyActivity","annotationIds","currentSelection","updateSelection","selection","from","event","callback"],"mappings":";;;AA2BA,MAAMA,IAAc,CAACC,GAAcC,MACjCD,EAAM,MAAM,OAAKA,EAAM,SAASE,CAAC,CAAC,KAAKD,EAAM,MAAM,OAAKD,EAAM,SAASG,CAAC,CAAC,GAG9DC,IAAeC,EAAO,GAEtBC,IAAsB,CACjCC,IAAyCC,QACvB;AAElB,QAAMC,IAAUC,KAEVC,wBAAmB,OAEnBC,wBAAsB,OAEtBC,IAAU,CAACC,GAAqBC,MAAe;AAC/C,QAAAJ,EAAa,IAAIG,CAAW,GAAG;AACzB,cAAA,KAAK,+CAA+CA,GAAaC,CAAI;AAC7E;AAAA,IACF;AAEA,UAAMC,IAAaT,EAAmB,QAAQO,GAAaC,CAAI;AAE/D,IAAAJ,EAAa,IAAIG,GAAa;AAAA,MAC5B,GAAGC;AAAA,MACH,aAAAD;AAAA,MACA,YAAAE;AAAA,IAAA,CACD;AAAA,EAAA,GAGGC,IAAa,CAACH,MAAwB;AACpC,UAAAC,IAAOJ,EAAa,IAAIG,CAAW;AACzC,QAAI,CAACC,GAAM;AACD,cAAA,KAAK,8CAA8CD,CAAW;AACtE;AAAA,IACF;AAEA,IAAAP,EAAmB,WAAWQ,CAAI,GAElCJ,EAAa,OAAOG,CAAW;AAAA,EAAA,GAG3BI,IAAY,CAACC,MAAiD;AAE5D,UAAAC,IAAO,IAAI,IAAID,EAAM,IAAI,CAAK,MAAA,EAAE,WAAW,CAAC,GAI5CE,IAAQF,EAAM,OAAO,CAAC,EAAE,aAAAL,QAAkB,CAACH,EAAa,IAAIG,CAAW,CAAC,GAGxEQ,IAAW,MAAM,KAAKX,EAAa,OAAQ,CAAA,EAAE,OAAO,CAAAY,MACxD,CAACH,EAAK,IAAIG,EAAY,WAAW,CAAC;AAE9B,IAAAF,EAAA,QAAQ,CAAC,EAAE,aAAAP,GAAa,MAAAC,EAAW,MAAAF,EAAQC,GAAaC,CAAI,CAAC,GAEnEO,EAAS,QAAQ,CAAQP,MAAA;AACjB,YAAA,EAAE,aAAAD,EAAgB,IAAAC;AAGpB,MAAAH,EAAgB,IAAIE,CAAW,KACzBL,EAAA,KAAK,mBAAmBM,GAAM,IAAI,GAE5CE,EAAWH,CAAW;AAAA,IAAA,CACvB,IAEGO,EAAM,SAAS,KAAKC,EAAS,SAAS,MAChCb,EAAA,KAAK,YAAYe,EAAiB,CAAA;AAAA,EAAA,GAGxCC,IAAiB,CAACX,GAAqBY,MAA4B;AACjE,UAAAX,IAAOJ,EAAa,IAAIG,CAAW;AAEzC,QAAI,CAACC,GAAM;AACT,cAAQ,KAAK,qDAAqD;AAClE;AAAA,IACF;AAEM,UAAAY,IAAmBf,EAAgB,IAAIE,CAAW;AAGxD,KAAI,CAACa,KAAoB,CAAC5B,EAAY4B,GAAkBD,CAAa,OACnDd,EAAA,IAAIE,GAAaY,CAAa,GACtCjB,EAAA,KAAK,mBAAmBM,GAAMW,CAAa;AAAA,EACrD,GAGIE,IAAkB,CAACd,GAAqBe,MAA+B;AACrE,UAAAC,IAAOnB,EAAa,IAAIG,CAAW;AACzC,QAAI,CAACgB,GAAM;AACD,cAAA,KAAK,iDAAiDhB,CAAW;AACzE;AAAA,IACF;AAEI,IAAAe,IACcjB,EAAA,IAAIE,GAAae,CAAS,IAE1CjB,EAAgB,OAAOE,CAAW,GAE5BL,EAAA,KAAK,mBAAmBqB,GAAMD,CAAS;AAAA,EAAA,GAG3CL,IAAkB,MACtB,CAAC,GAAG,MAAM,KAAKb,EAAa,OAAQ,CAAA,CAAC;AAKhC,SAAA;AAAA,IACL,iBAAAa;AAAA,IACA,gBAAAC;AAAA,IACA,IANS,CAAiCM,GAAUC,MACpDvB,EAAQ,GAAGsB,GAAOC,CAAQ;AAAA,IAM1B,WAAAd;AAAA,IACA,iBAAAU;AAAA,EAAA;AAGJ;"}
1
+ {"version":3,"file":"annotorious-react.es13.js","sources":["../../../node_modules/@neodrag/react/dist/min/index.js"],"sourcesContent":["import{useRef as t,useState as e,useEffect as n}from\"react\";var r={dragStart:!0},o=(t,e={})=>{let n,o,{bounds:f,axis:g=\"both\",gpuAcceleration:p=!0,legacyTranslate:h=!0,transform:m,applyUserSelectHack:y=!0,disabled:w=!1,ignoreMultitouch:b=!1,recomputeBounds:v=r,grid:D,position:E,cancel:S,handle:x,defaultClass:A=\"neodrag\",defaultClassDragging:C=\"neodrag-dragging\",defaultClassDragged:M=\"neodrag-dragged\",defaultPosition:N={x:0,y:0},onDragStart:B,onDrag:$,onDragEnd:H}=e,L=!1,R=0,T=0,X=0,Y=0,q=0,P=0,{x:k,y:z}=E?{x:E?.x??0,y:E?.y??0}:N;V(k,z);let I,U,W,j,F,G=\"\",J=!!E;v={...r,...v};let K=new Set;const O=document.body.style,Q=t.classList;function V(e=R,n=T){if(!m){if(h){let r=`${+e}px, ${+n}px`;return c(t,\"transform\",p?`translate3d(${r}, 0)`:`translate(${r})`)}return c(t,\"translate\",`${+e}px ${+n}px ${p?\"1px\":\"\"}`)}const r=m({offsetX:e,offsetY:n,rootNode:t});i(r)&&c(t,\"transform\",r)}const Z=(e,n)=>{const r={offsetX:R,offsetY:T,rootNode:t,currentNode:F};t.dispatchEvent(new CustomEvent(e,{detail:r})),n?.(r)};const _=addEventListener;_(\"pointerdown\",et,!1),_(\"pointerup\",nt,!1),_(\"pointermove\",rt,!1),c(t,\"touch-action\",\"none\");const tt=()=>{let e=t.offsetWidth/U.width;return isNaN(e)&&(e=1),e};function et(e){if(w)return;if(2===e.button)return;if(K.add(e.pointerId),b&&K.size>1)return e.preventDefault();if(v.dragStart&&(I=l(f,t)),i(x)&&i(S)&&x===S)throw new Error(\"`handle` selector can't be same as `cancel` selector\");if(Q.add(A),W=function(t,e){if(!t)return[e];if(u(t))return[t];if(Array.isArray(t))return t;const n=e.querySelectorAll(t);if(null===n)throw new Error(\"Selector passed for `handle` option should be child of the element on which the action is applied\");return Array.from(n.values())}(x,t),j=function(t,e){if(!t)return[];if(u(t))return[t];if(Array.isArray(t))return t;const n=e.querySelectorAll(t);if(null===n)throw new Error(\"Selector passed for `cancel` option should be child of the element on which the action is applied\");return Array.from(n.values())}(S,t),n=/(both|x)/.test(g),o=/(both|y)/.test(g),s(j,W))throw new Error(\"Element being dragged can't be a child of the element on which `cancel` is applied\");const r=e.composedPath()[0];if(!W.some((t=>t.contains(r)||t.shadowRoot?.contains(r)))||s(j,[r]))return;F=1===W.length?t:W.find((t=>t.contains(r))),L=!0,U=t.getBoundingClientRect(),y&&(G=O.userSelect,O.userSelect=\"none\"),Z(\"neodrag:start\",B);const{clientX:a,clientY:d}=e,c=tt();n&&(X=a-k/c),o&&(Y=d-z/c),I&&(q=a-U.left,P=d-U.top)}function nt(e){K.delete(e.pointerId),L&&(v.dragEnd&&(I=l(f,t)),Q.remove(C),Q.add(M),y&&(O.userSelect=G),Z(\"neodrag:end\",H),n&&(X=R),o&&(Y=T),L=!1)}function rt(e){if(!L||b&&K.size>1)return;v.drag&&(I=l(f,t)),Q.add(C),e.preventDefault(),U=t.getBoundingClientRect();let r=e.clientX,i=e.clientY;const s=tt();if(I){const t={left:I.left+q,top:I.top+P,right:I.right+q-U.width,bottom:I.bottom+P-U.height};r=a(r,t.left,t.right),i=a(i,t.top,t.bottom)}if(Array.isArray(D)){let[t,e]=D;if(isNaN(+t)||t<0)throw new Error(\"1st argument of `grid` must be a valid positive number\");if(isNaN(+e)||e<0)throw new Error(\"2nd argument of `grid` must be a valid positive number\");let n=r-X,o=i-Y;[n,o]=d([t/s,e/s],n,o),r=X+n,i=Y+o}n&&(R=Math.round((r-X)*s)),o&&(T=Math.round((i-Y)*s)),k=R,z=T,Z(\"neodrag\",$),V()}return{destroy:()=>{const t=removeEventListener;t(\"pointerdown\",et,!1),t(\"pointerup\",nt,!1),t(\"pointermove\",rt,!1)},update:t=>{g=t.axis||\"both\",w=t.disabled??!1,b=t.ignoreMultitouch??!1,x=t.handle,f=t.bounds,v=t.recomputeBounds??r,S=t.cancel,y=t.applyUserSelectHack??!0,D=t.grid,p=t.gpuAcceleration??!0,h=t.legacyTranslate??!0,m=t.transform;const e=Q.contains(M);Q.remove(A,M),A=t.defaultClass??\"neodrag\",C=t.defaultClassDragging??\"neodrag-dragging\",M=t.defaultClassDragged??\"neodrag-dragged\",Q.add(A),e&&Q.add(M),J&&(k=R=t.position?.x??R,z=T=t.position?.y??T,V())}}},a=(t,e,n)=>Math.min(Math.max(t,e),n),i=t=>\"string\"==typeof t,d=([t,e],n,r)=>{const o=(t,e)=>0===e?0:Math.ceil(t/e)*e;return[o(n,t),o(r,e)]};var s=(t,e)=>t.some((t=>e.some((e=>t.contains(e)))));function l(t,e){if(void 0===t)return;if(u(t))return t.getBoundingClientRect();if(\"object\"==typeof t){const{top:e=0,left:n=0,right:r=0,bottom:o=0}=t;return{top:e,right:window.innerWidth-r,bottom:window.innerHeight-o,left:n}}if(\"parent\"===t)return e.parentNode.getBoundingClientRect();const n=document.querySelector(t);if(null===n)throw new Error(\"The selector provided for bound doesn't exists in the document.\");return n.getBoundingClientRect()}var c=(t,e,n)=>t.style.setProperty(e,n),u=t=>t instanceof HTMLElement;function f(t){return null==t||\"string\"==typeof t||t instanceof HTMLElement?t:\"current\"in t?t.current:Array.isArray(t)?t.map((t=>t instanceof HTMLElement?t:t.current)):void 0}function g(r,a={}){const i=t(),[d,s]=e(!1),[l,c]=e();let{onDragStart:u,onDrag:g,onDragEnd:p,handle:h,cancel:m}=a,y=f(h),w=f(m);function b(t,e){c(t),e?.(t)}function v(t){s(!0),b(t,u)}function D(t){b(t,g)}function E(t){s(!1),b(t,p)}return n((()=>{if(\"undefined\"==typeof window)return;const t=r.current;if(!t)return;({onDragStart:u,onDrag:g,onDragEnd:p}=a);const{update:e,destroy:n}=o(t,{...a,handle:y,cancel:w,onDragStart:v,onDrag:D,onDragEnd:E});return i.current=e,n}),[]),n((()=>{i.current?.({...a,handle:f(h),cancel:f(m),onDragStart:v,onDrag:D,onDragEnd:E})}),[a]),{isDragging:d,dragState:l}}export{g as useDraggable};"],"names":["r","o","t","e","n","f","g","p","h","m","y","w","b","v","D","E","S","x","A","C","M","N","B","$","H","L","R","T","X","Y","q","P","k","z","V","I","U","W","j","F","G","J","K","O","Q","c","i","Z","_","et","nt","rt","tt","l","u","s","_a","a","d","_b"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,20 +1,35 @@
1
- import c from "./annotorious-react.es33.js";
2
- const s = (t) => {
3
- const { creator: e, updatedBy: r } = t.target, o = t.bodies.reduce((a, d) => [...a, d.creator, d.updatedBy], []);
4
- return [
5
- e,
6
- r,
7
- ...o
8
- ].filter((a) => a);
9
- }, i = (t, e, r, o) => ({
10
- id: c(),
11
- annotation: t.id,
12
- created: r || /* @__PURE__ */ new Date(),
13
- creator: o,
14
- ...e
15
- });
1
+ import b from "openseadragon";
2
+ const L = (h, x) => {
3
+ const { minX: e, minY: n, maxX: i, maxY: t } = x.target.selector.geometry.bounds, l = h.viewport.imageToViewerElementCoordinates(new b.Point(e, n)), s = h.viewport.imageToViewerElementCoordinates(new b.Point(i, t));
4
+ return {
5
+ x: l.x,
6
+ right: s.x,
7
+ y: l.y,
8
+ bottom: s.y,
9
+ width: s.x - l.x,
10
+ height: s.y - l.y
11
+ };
12
+ }, T = (h, x, e, n = 5) => {
13
+ const i = h.element.getBoundingClientRect(), t = L(h, x), l = t.y - i.y, s = i.right - t.x, w = i.bottom - t.bottom, $ = t.x - i.left, o = e.firstElementChild.getBoundingClientRect(), a = l / o.height, c = s / o.width, g = w / o.height, r = $ / o.width, d = () => {
14
+ e.style.left = `${t.x}px`, e.style.top = `${t.y - n - o.height}px`;
15
+ }, f = () => {
16
+ e.style.left = `${t.right - o.width}px`, e.style.top = `${t.y - n - o.height}px`;
17
+ }, v = () => {
18
+ e.style.left = `${t.x - o.width - n}px`, e.style.top = `${t.y}px`;
19
+ }, B = () => {
20
+ e.style.left = `${t.right + n}px`, e.style.top = `${t.y}px`;
21
+ }, R = () => {
22
+ e.style.left = `${t.x - o.width - n}px`, e.style.top = `${t.bottom - o.height}px`;
23
+ }, C = () => {
24
+ e.style.left = `${t.x + t.width + n}px`, e.style.top = `${t.bottom - o.height}px`;
25
+ }, A = () => {
26
+ e.style.left = `${t.x}px`, e.style.top = `${t.bottom + n}px`;
27
+ }, E = () => {
28
+ e.style.left = `${t.right - o.width}px`, e.style.top = `${t.bottom + n}px`;
29
+ }, m = [a, c, g, r], y = m.indexOf(Math.max(...m));
30
+ y === 0 ? c > r ? d() : f() : y === 1 ? a > g ? C() : B() : y === 2 ? c > r ? A() : E() : a > g ? R() : v();
31
+ };
16
32
  export {
17
- i as createBody,
18
- s as getContributors
33
+ T as setPosition
19
34
  };
20
35
  //# sourceMappingURL=annotorious-react.es14.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"annotorious-react.es14.js","sources":["../../annotorious-core/src/utils/annotationUtils.ts"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid';\nimport type { Annotation, AnnotationBody, User } from '../model';\n\n/**\n * Returns all users listed as creators or updaters in any parts of this\n * annotation.\n */\nexport const getContributors = (annotation: Annotation): User[] => {\n const { creator, updatedBy } = annotation.target;\n\n const bodyCollaborators = annotation.bodies.reduce((users, body) => (\n [...users, body.creator, body.updatedBy]\n ), [] as User[]);\n\n return [\n creator,\n updatedBy,\n ...bodyCollaborators\n ].filter(u => u); // Remove undefined\n}\n\nexport const createBody = (\n annotation: Annotation, \n payload: { [key: string]: any },\n created?: Date,\n creator?: User\n): AnnotationBody => ({\n id: uuidv4(),\n annotation: annotation.id,\n created: created || new Date(),\n creator,\n ...payload\n});"],"names":["getContributors","annotation","creator","updatedBy","bodyCollaborators","users","body","u","createBody","payload","created","uuidv4"],"mappings":";AAOa,MAAAA,IAAkB,CAACC,MAAmC;AACjE,QAAM,EAAE,SAAAC,GAAS,WAAAC,MAAcF,EAAW,QAEpCG,IAAoBH,EAAW,OAAO,OAAO,CAACI,GAAOC,MACzD,CAAC,GAAGD,GAAOC,EAAK,SAASA,EAAK,SAAS,GACtC,CAAA,CAAY;AAER,SAAA;AAAA,IACLJ;AAAA,IACAC;AAAA,IACA,GAAGC;AAAA,EACL,EAAE,OAAO,CAAAG,MAAKA,CAAC;AACjB,GAEaC,IAAa,CACxBP,GACAQ,GACAC,GACAR,OACoB;AAAA,EACpB,IAAIS,EAAO;AAAA,EACX,YAAYV,EAAW;AAAA,EACvB,SAASS,KAAW,oBAAI,KAAK;AAAA,EAC7B,SAAAR;AAAA,EACA,GAAGO;AACL;"}
1
+ {"version":3,"file":"annotorious-react.es14.js","sources":["../src/openseadragon/setPosition.ts"],"sourcesContent":["import { ImageAnnotation } from '@annotorious/annotorious';\nimport OpenSeadragon from 'openseadragon';\n\nconst getAnnotationDomRect = (viewer: OpenSeadragon.Viewer, annotation: ImageAnnotation) => {\n // Annotation bounds (image coordinates)\n const { minX, minY, maxX, maxY } = annotation.target.selector.geometry.bounds;\n\n // Annotation coordinates - viewer element coordinates\n const topLeft = viewer.viewport.imageToViewerElementCoordinates(new OpenSeadragon.Point(minX, minY));\n const bottomRight = viewer.viewport.imageToViewerElementCoordinates(new OpenSeadragon.Point(maxX, maxY));\n\n // Account for viewer element offset\n return {\n x: topLeft.x,\n right: bottomRight.x,\n y: topLeft.y, \n bottom: bottomRight.y,\n width: bottomRight.x - topLeft.x,\n height: bottomRight.y - topLeft.y,\n };\n}\n\nexport const setPosition = (\n viewer: OpenSeadragon.Viewer, \n annotation: ImageAnnotation, \n popup: HTMLElement,\n sideOffset: number = 5\n) => {\n const viewerBounds = viewer.element.getBoundingClientRect();\n const annoBounds = getAnnotationDomRect(viewer, annotation);\n\n // Available space above, right, below, left the annotation in the viewport\n const availableAbove = annoBounds.y - viewerBounds.y;\n const availableRight = viewerBounds.right - annoBounds.x;\n const availableBelow = viewerBounds.bottom - annoBounds.bottom;\n const availableLeft = annoBounds.x - viewerBounds.left;\n\n // Popup element bounds\n const popupBounds = popup.firstElementChild.getBoundingClientRect();\n\n // Eight possible base alignment anchor points\n //\n // topleft topright\n // * *\n // leftdown * |---------------------| * rightdown\n // | |\n // | |\n // | |\n // leftup * |---------------------| * rightup\n // * * \n // bottomleft bottomright\n //\n // We'll position the popup at the cardinal direction\n // with the highest ratio: available space vs. popup size.\n const ratioAbove = availableAbove / popupBounds.height;\n const ratioRight = availableRight / popupBounds.width;\n const ratioBelow = availableBelow / popupBounds.height;\n const ratioLeft = availableLeft / popupBounds.width;\n\n const topleft = () => {\n popup.style.left = `${annoBounds.x}px`;\n popup.style.top = `${annoBounds.y - sideOffset - popupBounds.height}px`;\n }\n\n const topright = () => {\n popup.style.left = `${annoBounds.right - popupBounds.width}px`;\n popup.style.top = `${annoBounds.y - sideOffset - popupBounds.height}px`;\n }\n\n const leftdown = () => {\n popup.style.left = `${annoBounds.x - popupBounds.width - sideOffset}px`;\n popup.style.top = `${annoBounds.y}px`;\n } \n\n const rightdown = () => {\n popup.style.left = `${annoBounds.right + sideOffset}px`;\n popup.style.top = `${annoBounds.y}px`;\n }\n\n const leftup = () => {\n popup.style.left = `${annoBounds.x - popupBounds.width - sideOffset}px`;\n popup.style.top = `${annoBounds.bottom - popupBounds.height}px`;\n }\n\n const rightup = () => {\n popup.style.left = `${annoBounds.x + annoBounds.width + sideOffset}px`;\n popup.style.top = `${annoBounds.bottom - popupBounds.height}px`;\n }\n\n const bottomleft = () => {\n popup.style.left = `${annoBounds.x}px`;\n popup.style.top = `${annoBounds.bottom + sideOffset}px`;\n }\n\n const bottomright = () => {\n popup.style.left = `${annoBounds.right - popupBounds.width}px`;\n popup.style.top = `${annoBounds.bottom + sideOffset}px`;\n }\n\n const ratios = [ratioAbove, ratioRight, ratioBelow, ratioLeft];\n const maxIdx = ratios.indexOf(Math.max(...ratios));\n\n if (maxIdx === 0) {\n // Main orientation: above\n if (ratioRight > ratioLeft)\n topleft();\n else \n topright();\n } else if (maxIdx === 1) {\n // Main orientation: right\n if (ratioAbove > ratioBelow)\n rightup();\n else\n rightdown();\n } else if (maxIdx === 2) {\n // Main orientation: below\n if (ratioRight > ratioLeft)\n bottomleft();\n else\n bottomright();\n } else {\n // Main orientation: left\n if (ratioAbove > ratioBelow)\n leftup();\n else \n leftdown();\n }\n}"],"names":["getAnnotationDomRect","viewer","annotation","minX","minY","maxX","maxY","topLeft","OpenSeadragon","bottomRight","setPosition","popup","sideOffset","viewerBounds","annoBounds","availableAbove","availableRight","availableBelow","availableLeft","popupBounds","ratioAbove","ratioRight","ratioBelow","ratioLeft","topleft","topright","leftdown","rightdown","leftup","rightup","bottomleft","bottomright","ratios","maxIdx"],"mappings":"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"}
@@ -1,25 +1,5 @@
1
- import { dequal as s } from "./annotorious-react.es34.js";
2
- const r = (t, d) => {
3
- const o = new Set(t.bodies.map((e) => e.id));
4
- return d.bodies.filter((e) => !o.has(e.id));
5
- }, n = (t, d) => {
6
- const o = new Set(d.bodies.map((e) => e.id));
7
- return t.bodies.filter((e) => !o.has(e.id));
8
- }, g = (t, d) => d.bodies.map((o) => {
9
- const e = t.bodies.find((i) => i.id === o.id);
10
- return { newBody: o, oldBody: e && !s(e, o) ? e : void 0 };
11
- }).filter(({ oldBody: o }) => o), a = (t, d) => !s(t.target, d.target), c = (t, d) => {
12
- const o = r(t, d), e = n(t, d), i = g(t, d);
13
- return {
14
- oldValue: t,
15
- newValue: d,
16
- bodiesCreated: o.length > 0 ? o : void 0,
17
- bodiesDeleted: e.length > 0 ? e : void 0,
18
- bodiesUpdated: i.length > 0 ? i : void 0,
19
- targetUpdated: a(t, d) ? { oldTarget: t.target, newTarget: d.target } : void 0
20
- };
21
- };
1
+ var e = { exports: {} };
22
2
  export {
23
- c as diffAnnotations
3
+ e as __module
24
4
  };
25
5
  //# sourceMappingURL=annotorious-react.es15.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"annotorious-react.es15.js","sources":["../../annotorious-core/src/utils/diffAnnotations.ts"],"sourcesContent":["import { dequal } from 'dequal/lite';\nimport type { Update } from '../state';\nimport type { Annotation } from '../model';\n\nconst getAddedBodies = (oldValue: Annotation, newValue: Annotation) => {\n const oldBodyIds = new Set(oldValue.bodies.map(b => b.id));\n return newValue.bodies.filter(b => !oldBodyIds.has(b.id));\n}\n\nconst getRemovedBodies = (oldValue: Annotation, newValue: Annotation) => {\n const newBodyIds = new Set(newValue.bodies.map(b => b.id));\n return oldValue.bodies.filter(b => !newBodyIds.has(b.id));\n}\n\nconst getChangedBodies = (oldValue: Annotation, newValue: Annotation) => \n newValue.bodies\n .map(newBody => {\n const oldBody = oldValue.bodies.find(b => b.id === newBody.id);\n return { newBody, oldBody: oldBody && !dequal(oldBody, newBody) ? oldBody : undefined }\n })\n .filter(({ oldBody }) => oldBody);\n\nconst hasTargetChanged = (oldValue: Annotation, newValue: Annotation) => \n !dequal(oldValue.target, newValue.target);\n\nexport const diffAnnotations = <T extends Annotation = Annotation>(oldValue: T, newValue: T): Update<T> => {\n const bodiesCreated = getAddedBodies(oldValue, newValue);\n const bodiesDeleted = getRemovedBodies(oldValue, newValue);\n const bodiesUpdated = getChangedBodies(oldValue, newValue);\n\n return {\n oldValue, \n newValue,\n bodiesCreated: bodiesCreated.length > 0 ? bodiesCreated : undefined,\n bodiesDeleted: bodiesDeleted.length > 0 ? bodiesDeleted : undefined,\n bodiesUpdated: bodiesUpdated.length > 0 ? bodiesUpdated : undefined,\n targetUpdated: hasTargetChanged(oldValue, newValue) ? { oldTarget: oldValue.target, newTarget: newValue.target } : undefined\n }\n}"],"names":["getAddedBodies","oldValue","newValue","oldBodyIds","b","getRemovedBodies","newBodyIds","getChangedBodies","newBody","oldBody","dequal","hasTargetChanged","diffAnnotations","bodiesCreated","bodiesDeleted","bodiesUpdated"],"mappings":";AAIA,MAAMA,IAAiB,CAACC,GAAsBC,MAAyB;AAC/D,QAAAC,IAAa,IAAI,IAAIF,EAAS,OAAO,IAAI,CAAAG,MAAKA,EAAE,EAAE,CAAC;AAClD,SAAAF,EAAS,OAAO,OAAO,CAAAE,MAAK,CAACD,EAAW,IAAIC,EAAE,EAAE,CAAC;AAC1D,GAEMC,IAAmB,CAACJ,GAAsBC,MAAyB;AACjE,QAAAI,IAAa,IAAI,IAAIJ,EAAS,OAAO,IAAI,CAAAE,MAAKA,EAAE,EAAE,CAAC;AAClD,SAAAH,EAAS,OAAO,OAAO,CAAAG,MAAK,CAACE,EAAW,IAAIF,EAAE,EAAE,CAAC;AAC1D,GAEMG,IAAmB,CAACN,GAAsBC,MAC9CA,EAAS,OACN,IAAI,CAAWM,MAAA;AACR,QAAAC,IAAUR,EAAS,OAAO,KAAK,OAAKG,EAAE,OAAOI,EAAQ,EAAE;AACtD,SAAA,EAAE,SAAAA,GAAS,SAASC,KAAW,CAACC,EAAOD,GAASD,CAAO,IAAIC,IAAU,OAAU;AACxF,CAAC,EACA,OAAO,CAAC,EAAE,SAAAA,QAAcA,CAAO,GAE9BE,IAAmB,CAACV,GAAsBC,MAC9C,CAACQ,EAAOT,EAAS,QAAQC,EAAS,MAAM,GAE7BU,IAAkB,CAAoCX,GAAaC,MAA2B;AACnG,QAAAW,IAAgBb,EAAeC,GAAUC,CAAQ,GACjDY,IAAgBT,EAAiBJ,GAAUC,CAAQ,GACnDa,IAAgBR,EAAiBN,GAAUC,CAAQ;AAElD,SAAA;AAAA,IACL,UAAAD;AAAA,IACA,UAAAC;AAAA,IACA,eAAeW,EAAc,SAAS,IAAIA,IAAgB;AAAA,IAC1D,eAAeC,EAAc,SAAS,IAAIA,IAAgB;AAAA,IAC1D,eAAeC,EAAc,SAAS,IAAIA,IAAgB;AAAA,IAC1D,eAAeJ,EAAiBV,GAAUC,CAAQ,IAAI,EAAE,WAAWD,EAAS,QAAQ,WAAWC,EAAS,OAAA,IAAW;AAAA,EAAA;AAEvH;"}
1
+ {"version":3,"file":"annotorious-react.es15.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,5 +1,29 @@
1
- var N = /* @__PURE__ */ ((E) => (E.EDIT = "EDIT", E.SELECT = "SELECT", E.NONE = "NONE", E))(N || {});
1
+ import { __exports as t } from "./annotorious-react.es18.js";
2
+ import R from "react";
3
+ /**
4
+ * @license React
5
+ * react-jsx-runtime.production.min.js
6
+ *
7
+ * Copyright (c) Facebook, Inc. and its affiliates.
8
+ *
9
+ * This source code is licensed under the MIT license found in the
10
+ * LICENSE file in the root directory of this source tree.
11
+ */
12
+ var p;
13
+ function v() {
14
+ if (p) return t;
15
+ p = 1;
16
+ var s = R, m = Symbol.for("react.element"), l = Symbol.for("react.fragment"), c = Object.prototype.hasOwnProperty, d = s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, y = { key: !0, ref: !0, __self: !0, __source: !0 };
17
+ function i(o, r, u) {
18
+ var e, n = {}, _ = null, f = null;
19
+ u !== void 0 && (_ = "" + u), r.key !== void 0 && (_ = "" + r.key), r.ref !== void 0 && (f = r.ref);
20
+ for (e in r) c.call(r, e) && !y.hasOwnProperty(e) && (n[e] = r[e]);
21
+ if (o && o.defaultProps) for (e in r = o.defaultProps, r) n[e] === void 0 && (n[e] = r[e]);
22
+ return { $$typeof: m, type: o, key: _, ref: f, props: n, _owner: d.current };
23
+ }
24
+ return t.Fragment = l, t.jsx = i, t.jsxs = i, t;
25
+ }
2
26
  export {
3
- N as PointerSelectAction
27
+ v as __require
4
28
  };
5
29
  //# sourceMappingURL=annotorious-react.es16.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"annotorious-react.es16.js","sources":["../../annotorious-core/src/state/Selection.ts"],"sourcesContent":["import { writable } from 'svelte/store';\nimport type { Annotation } from '../model';\nimport type { Store } from './Store';\n \nexport type Selection = {\n\n selected: { id: string, editable?: boolean }[],\n\n pointerEvent?: PointerEvent;\n\n}\n\nexport type SelectionState<T extends Annotation> = ReturnType<typeof createSelectionState<T>>;\n\nexport enum PointerSelectAction {\n\n EDIT = 'EDIT', // Make annotation target(s) editable on pointer select\n \n SELECT = 'SELECT', // Just select, but don't make editable\n\n NONE = 'NONE' // Click won't select - annotation is completely inert\n\n}\n\nconst EMPTY: Selection = { selected: [] };\n\nexport const createSelectionState = <T extends Annotation>(\n store: Store<T>,\n selectAction: PointerSelectAction | ((a: Annotation) => PointerSelectAction) = PointerSelectAction.EDIT\n) => {\n const { subscribe, set } = writable<Selection>(EMPTY);\n\n let currentSelection: Selection = EMPTY;\n\n subscribe(updated => currentSelection = updated);\n\n const clear = () => set(EMPTY);\n\n const isEmpty = () => currentSelection.selected?.length === 0;\n\n const isSelected = (annotationOrId: T | string) => {\n if (currentSelection.selected.length === 0)\n return false;\n\n const id = typeof annotationOrId === 'string' ? annotationOrId : annotationOrId.id;\n return currentSelection.selected.some(i => i.id === id);\n }\n\n // TODO enable CTRL select\n const clickSelect = (id: string, pointerEvent: PointerEvent) => {\n const annotation = store.getAnnotation(id);\n if (annotation) {\n const action = onPointerSelect(annotation, selectAction);\n if (action === PointerSelectAction.EDIT)\n set({ selected: [{ id, editable: true }], pointerEvent }); \n else if (action === PointerSelectAction.SELECT)\n set({ selected: [{ id }], pointerEvent }); \n else\n set({ selected: [], pointerEvent });\n } else {\n console.warn('Invalid selection: ' + id);\n }\n }\n\n const setSelected = (idOrIds: string | string[], editable: boolean = true) => {\n const ids = Array.isArray(idOrIds) ? idOrIds : [idOrIds];\n\n // Remove invalid\n const annotations = \n ids.map(id => store.getAnnotation(id)).filter(a => a); \n\n set({ selected: annotations.map(({ id }) => ({ id, editable })) });\n \n if (annotations.length !== ids.length)\n console.warn('Invalid selection', idOrIds);\n }\n\n const removeFromSelection = (ids: string[]) => {\n if (currentSelection.selected.length === 0)\n return false;\n\n const { selected } = currentSelection;\n\n // Checks which of the given annotations are actually in the selection\n const toRemove = selected.filter(({ id }) => ids.includes(id))\n\n if (toRemove.length > 0)\n set({ selected: selected.filter(({ id }) => !ids.includes(id)) });\n }\n\n // Track store delete and update events\n store.observe(({ changes }) =>\n removeFromSelection(changes.deleted.map(a => a.id)));\n\n return { \n clear, \n clickSelect, \n get selected() { return currentSelection ? [...currentSelection.selected ] : null},\n get pointerEvent() { return currentSelection ? currentSelection.pointerEvent : null },\n isEmpty, \n isSelected, \n setSelected, \n subscribe \n };\n\n}\n\nexport const onPointerSelect = (\n annotation: Annotation, \n action?: PointerSelectAction | ((a: Annotation) => PointerSelectAction)\n): PointerSelectAction => (typeof action === 'function') ?\n (action(annotation) || PointerSelectAction.EDIT) : \n (action || PointerSelectAction.EDIT);\n"],"names":["PointerSelectAction"],"mappings":"AAcY,IAAAA,sBAAAA,OAEVA,EAAA,OAAO,QAEPA,EAAA,SAAS,UAETA,EAAA,OAAO,QANGA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"annotorious-react.es16.js","sources":["../../../node_modules/react/cjs/react-jsx-runtime.production.min.js"],"sourcesContent":["/**\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"],"names":["f","require$$0","k","m","n","p","q","c","a","g","b","d","e","h","reactJsxRuntime_production_min"],"mappings":";;;;;;;;;;;;;;;AASa,MAAIA,IAAEC,GAAiBC,IAAE,OAAO,IAAI,eAAe,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAEC,IAAE,OAAO,UAAU,gBAAeC,IAAEJ,EAAE,mDAAmD,mBAAkBK,IAAE,EAAC,KAAI,IAAG,KAAI,IAAG,QAAO,IAAG,UAAS,GAAE;AAClP,WAASC,EAAEC,GAAEC,GAAEC,GAAE;AAAC,QAAIC,GAAEC,IAAE,IAAGC,IAAE,MAAKC,IAAE;AAAK,IAASJ,MAAT,WAAaG,IAAE,KAAGH,IAAYD,EAAE,QAAX,WAAiBI,IAAE,KAAGJ,EAAE,MAAcA,EAAE,QAAX,WAAiBK,IAAEL,EAAE;AAAK,SAAIE,KAAKF,EAAE,CAAAL,EAAE,KAAKK,GAAEE,CAAC,KAAG,CAACL,EAAE,eAAeK,CAAC,MAAIC,EAAED,CAAC,IAAEF,EAAEE,CAAC;AAAG,QAAGH,KAAGA,EAAE,aAAa,MAAIG,KAAKF,IAAED,EAAE,cAAaC,EAAE,CAASG,EAAED,CAAC,MAAZ,WAAgBC,EAAED,CAAC,IAAEF,EAAEE,CAAC;AAAG,WAAM,EAAC,UAASR,GAAE,MAAKK,GAAE,KAAIK,GAAE,KAAIC,GAAE,OAAMF,GAAE,QAAOP,EAAE,QAAO;AAAA,EAAC;AAAC,SAAAU,aAAiB,GAAEA,EAAW,MAACR,GAAEQ,EAAA,OAAaR;;","x_google_ignoreList":[0]}