{"version":3,"file":"annotorious.umd.js","sources":["../node_modules/preact/dist/preact.module.js","../node_modules/preact/hooks/dist/hooks.module.js","../node_modules/preact/compat/dist/compat.module.js","../node_modules/tiny-emitter/index.js","../src/util/SVG.js","../src/selectors/RectFragment.js","../src/util/Geom2D.js","../src/selectors/EmbeddedSVG.js","../src/selectors/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/react-draggable/build/cjs/utils/shims.js","../node_modules/react-draggable/build/cjs/utils/getPrefix.js","../node_modules/react-draggable/build/cjs/utils/domFns.js","../node_modules/react-draggable/build/cjs/utils/positionFns.js","../node_modules/react-draggable/build/cjs/utils/log.js","../node_modules/react-draggable/build/cjs/DraggableCore.js","../node_modules/react-draggable/build/cjs/Draggable.js","../node_modules/react-draggable/build/cjs/cjs.js","../node_modules/timeago.js/esm/lang/en_US.js","../node_modules/timeago.js/esm/lang/zh_CN.js","../node_modules/timeago.js/esm/register.js","../node_modules/timeago.js/esm/utils/date.js","../node_modules/timeago.js/esm/format.js","../node_modules/timeago.js/esm/utils/dom.js","../node_modules/timeago.js/esm/realtime.js","../node_modules/timeago.js/esm/index.js","../node_modules/timeago-react/esm/timeago-react.js","../node_modules/@recogito/recogito-client-core/src/editor/useClickOutside.js","../node_modules/object-keys/isArguments.js","../node_modules/object-keys/implementation.js","../node_modules/object-keys/index.js","../node_modules/define-properties/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-symbols/index.js","../node_modules/has/src/index.js","../node_modules/get-intrinsic/index.js","../node_modules/call-bind/index.js","../node_modules/call-bind/callBound.js","../node_modules/es-abstract/5/CheckObjectCoercible.js","../node_modules/es-abstract/2021/RequireObjectCoercible.js","../node_modules/es-abstract/2021/IsArray.js","../node_modules/es-abstract/2021/Call.js","../__vite-browser-external","../node_modules/object-inspect/index.js","../node_modules/es-abstract/2021/IsPropertyKey.js","../node_modules/es-abstract/5/Type.js","../node_modules/es-abstract/2021/Type.js","../node_modules/es-abstract/2021/Get.js","../node_modules/es-abstract/2021/HasProperty.js","../node_modules/is-callable/index.js","../node_modules/es-abstract/2021/IsCallable.js","../node_modules/es-abstract/helpers/maxSafeInteger.js","../node_modules/es-abstract/5/abs.js","../node_modules/es-abstract/5/floor.js","../node_modules/es-to-primitive/helpers/isPrimitive.js","../node_modules/es-to-primitive/es5.js","../node_modules/es-abstract/5/ToPrimitive.js","../node_modules/es-abstract/5/ToNumber.js","../node_modules/es-abstract/helpers/isNaN.js","../node_modules/es-abstract/helpers/isFinite.js","../node_modules/es-abstract/helpers/sign.js","../node_modules/es-abstract/5/ToInteger.js","../node_modules/es-abstract/helpers/regexTester.js","../node_modules/es-abstract/helpers/isPrimitive.js","../node_modules/has-tostringtag/shams.js","../node_modules/is-date-object/index.js","../node_modules/is-symbol/index.js","../node_modules/es-to-primitive/es2015.js","../node_modules/es-abstract/2021/ToPrimitive.js","../node_modules/es-abstract/2021/ToNumber.js","../node_modules/es-abstract/2021/ToIntegerOrInfinity.js","../node_modules/es-abstract/2021/ToLength.js","../node_modules/es-abstract/2021/LengthOfArrayLike.js","../node_modules/es-abstract/2021/ToObject.js","../node_modules/es-abstract/2021/ToString.js","../node_modules/is-string/index.js","../node_modules/array.prototype.foreach/implementation.js","../node_modules/es-array-method-boxes-properly/index.js","../node_modules/array.prototype.foreach/polyfill.js","../node_modules/array.prototype.foreach/shim.js","../node_modules/array.prototype.foreach/index.js","../node_modules/object.entries/implementation.js","../node_modules/object.entries/polyfill.js","../node_modules/object.entries/shim.js","../node_modules/object.entries/index.js","../node_modules/string.prototype.trim/implementation.js","../node_modules/string.prototype.trim/polyfill.js","../node_modules/string.prototype.trim/shim.js","../node_modules/string.prototype.trim/index.js","../node_modules/node-polyglot/index.js","../node_modules/timeago.js/lib/lang/ar.js","../node_modules/timeago.js/lib/lang/cs.js","../node_modules/timeago.js/lib/lang/de.js","../node_modules/timeago.js/lib/lang/el.js","../node_modules/timeago.js/lib/lang/es.js","../node_modules/timeago.js/lib/lang/fi.js","../node_modules/timeago.js/lib/lang/fr.js","../node_modules/timeago.js/lib/lang/gl.js","../node_modules/timeago.js/lib/lang/hi_IN.js","../node_modules/timeago.js/lib/lang/it.js","../node_modules/timeago.js/lib/lang/ja.js","../node_modules/timeago.js/lib/lang/ko.js","../node_modules/timeago.js/lib/lang/nl.js","../node_modules/timeago.js/lib/lang/pt_BR.js","../node_modules/timeago.js/lib/lang/ru.js","../node_modules/timeago.js/lib/lang/sv.js","../node_modules/timeago.js/lib/lang/th.js","../node_modules/timeago.js/lib/lang/tr.js","../node_modules/timeago.js/lib/lang/zh_CN.js","../node_modules/timeago.js/lib/lang/zh_TW.js","../node_modules/@recogito/recogito-client-core/src/i18n/index.jsx","../node_modules/@recogito/recogito-client-core/src/editor/widgets/comment/DropdownMenu.jsx","../node_modules/autosize/dist/autosize.js","../node_modules/computed-style/dist/computedStyle.commonjs.js","../node_modules/line-height/lib/line-height.js","../node_modules/react-autosize-textarea/lib/TextareaAutosize.js","../node_modules/react-autosize-textarea/lib/index.js","../node_modules/@recogito/recogito-client-core/src/editor/widgets/comment/TextEntryField.jsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Parser.js","../node_modules/stylis/src/Prefixer.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-699e6908.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/react-input-autosize/lib/AutosizeInput.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/react-select/dist/index-4bd03571.esm.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-select/dist/Select-dbb12e54.esm.js","../node_modules/react-select/dist/stateManager-845a3300.esm.js","../node_modules/react-select/dist/react-select.esm.js","../node_modules/@recogito/recogito-client-core/src/editor/widgets/comment/PurposeSelect.jsx","../node_modules/@recogito/recogito-client-core/src/Icons.jsx","../node_modules/@recogito/recogito-client-core/src/editor/widgets/comment/Comment.jsx","../node_modules/@recogito/recogito-client-core/src/editor/widgets/comment/CommentWidget.jsx","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/@recogito/recogito-client-core/src/editor/widgets/Autocomplete.jsx","../node_modules/@recogito/recogito-client-core/src/editor/widgets/tag/TagWidget.jsx","../node_modules/@recogito/recogito-client-core/src/editor/widgets/WrappedWidget.jsx","../node_modules/@recogito/recogito-client-core/src/editor/widgets/index.jsx","../node_modules/@recogito/recogito-client-core/src/editor/setPosition.js","../node_modules/@recogito/recogito-client-core/src/editor/Editor.jsx","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/fast-deep-equal/index.js","../node_modules/@recogito/recogito-client-core/src/WebAnnotation.js","../node_modules/@recogito/recogito-client-core/src/Selection.js","../node_modules/@recogito/recogito-client-core/src/Environment.js","../node_modules/@recogito/recogito-client-core/src/utils/index.js","../src/tools/rectangle/RubberbandRect.js","../src/util/Touch.js","../src/tools/Tool.js","../src/tools/EditableShape.js","../src/util/Formatting.js","../src/tools/rectangle/EditableRect.js","../src/tools/rectangle/RubberbandRectTool.js","../src/tools/polygon/PolygonMask.js","../src/tools/polygon/RubberbandPolygon.js","../src/tools/polygon/EditablePolygon.js","../src/tools/polygon/RubberbandPolygonTool.js","../src/tools/ToolsRegistry.js","../src/Crosshair.js","../src/util/ImageSnippet.js","../src/AnnotationLayer.js","../node_modules/preact/jsx-runtime/dist/jsxRuntime.js","../preact/jsx-runtime","../src/ImageAnnotator.jsx","../src/index.jsx"],"sourcesContent":["var n,l,u,i,t,r,o,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function h(n){var l=n.parentNode;l&&l.removeChild(n)}function v(l,u,i){var t,r,o,f={};for(o in u)\"key\"==o?t=u[o]:\"ref\"==o?r=u[o]:f[o]=u[o];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return y(l,f,t,r,null)}function y(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u:o};return null==o&&null!=l.vnode&&l.vnode(f),f}function p(){return{current:null}}function d(n){return n.children}function _(n,l){this.props=n,this.context=l}function k(n,l){if(null==l)return n.__?k(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l0?y(_.type,_.props,_.key,null,_.__v):_)){if(_.__=u,_.__b=u.__b+1,null===(p=w[h])||p&&_.key==p.key&&_.type===p.type)w[h]=void 0;else for(v=0;v2&&(f.children=arguments.length>3?n.call(arguments,2):i),y(l.type,f,t||l.key,r||l.ref,null)}function D(n,l){var u={__c:l=\"__cC\"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(m)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=c.slice,l={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},_.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=a({},this.state),\"function\"==typeof n&&(n=n(a({},u),this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),m(this))},_.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),m(this))},_.prototype.render=d,t=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g.__r=0,f=0;export{S as render,q as hydrate,v as createElement,v as h,d as Fragment,p as createRef,i as isValidElement,_ as Component,B as cloneElement,D as createContext,A as toChildArray,l as options};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){var t;for(i.sort(function(n,t){return n.__v.__b-t.__v.__b});t=i.pop();)if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=null},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u,r=t.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{g(n)}catch(n){u=n}}),u&&n.__e(u,r.__v))};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u,r=n.__c;\"function\"==typeof r&&(n.__c=void 0,r()),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as u,useImperativeHandle as o,useMemo as i,useCallback as l,useContext as c,useDebugValue as f}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as a,createElement as s,options as h,toChildArray as d,Fragment as v,render as p,hydrate as m,cloneElement as y,createRef as b,createContext as _}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function S(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n){this.props=n}function g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:C(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,t)}return r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new a).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var w=h.__b;h.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function x(n){function t(t,e){var r=S({},t);return delete r.ref,n(r,(e=t.ref||e)&&(\"object\"!=typeof e||\"current\"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var N=function(n,t){return null==n?null:d(d(n).map(t))},k={map:N,forEach:N,count:function(n){return n?d(n).length:0},only:function(n){var t=d(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:d},A=h.__e;h.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e)};var O=h.unmount;function L(){this.__u=0,this.t=null,this.__b=null}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function F(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,u)}return u.displayName=\"Lazy\",u.__f=!0,u}function M(){this.u=null,this.o=null}h.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O&&O(n)},(L.prototype=new a).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate()}},c=!0===t.__h;r.__u++||c||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i)},L.prototype.componentWillUnmount=function(){this.t=[]},L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement(\"div\"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),t.__c.__H=null),null!=(t=S({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P)}this.__b=null}var u=t.__e&&s(v,null,n.fallback);return u&&(u.__h=null),[s(v,null,t.__e?null:n.children),u]};var T=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]>>1,1),t.i.removeChild(n)}}),p(s(D,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function W(n,t){return s(I,{__v:n,i:t})}(M.prototype=new a).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),T(t,n,r)):u()};e?e(o):o()}},M.prototype.render=function(n){this.u=null,this.o=new Map;var t=d(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},M.prototype.componentDidUpdate=M.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){T(n,e,t)})};var j=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,P=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V=\"undefined\"!=typeof document,z=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function B(n,t,e){return null==t.__k&&(t.textContent=\"\"),p(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function $(n,t,e){return m(n,t),\"function\"==typeof e&&e(),n?n.__c:null}a.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(n){Object.defineProperty(a.prototype,n,{configurable:!0,get:function(){return this[\"UNSAFE_\"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t})}})});var H=h.event;function Z(){}function Y(){return this.cancelBubble}function q(){return this.defaultPrevented}h.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=q,n.nativeEvent=n};var G,J={configurable:!0,get:function(){return this.class}},K=h.vnode;h.vnode=function(n){var t=n.type,e=n.props,r=e;if(\"string\"==typeof t){var u=-1===t.indexOf(\"-\");for(var o in r={},e){var i=e[o];V&&\"children\"===o&&\"noscript\"===t||\"value\"===o&&\"defaultValue\"in e&&null==i||(\"defaultValue\"===o&&\"value\"in e&&null==e.value?o=\"value\":\"download\"===o&&!0===i?i=\"\":/ondoubleclick/i.test(o)?o=\"ondblclick\":/^onchange(textarea|input)/i.test(o+t)&&!z(e.type)?o=\"oninput\":/^onfocus$/i.test(o)?o=\"onfocusin\":/^onblur$/i.test(o)?o=\"onfocusout\":/^on(Ani|Tra|Tou|BeforeInp)/.test(o)?o=o.toLowerCase():u&&P.test(o)?o=o.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():null===i&&(i=void 0),r[o]=i)}\"select\"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=d(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),\"select\"==t&&null!=r.defaultValue&&(r.value=d(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value})),n.props=r,e.class!=e.className&&(J.enumerable=\"className\"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,\"className\",J))}n.$$typeof=j,K&&K(n)};var Q=h.__r;h.__r=function(n){Q&&Q(n),G=n.__c};var X={ReactCurrentDispatcher:{current:{readContext:function(n){return G.__n[n.__c].props.value}}}},nn=\"17.0.2\";function tn(n){return s.bind(null,n)}function en(n){return!!n&&n.$$typeof===j}function rn(n){return en(n)?y.apply(null,arguments):n}function un(n){return!!n.__k&&(p(null,n),!0)}function on(n){return n&&(n.base||1===n.nodeType&&n)||null}var ln=function(n,t){return n(t)},cn=function(n,t){return n(t)},fn=v;export default{useState:n,useReducer:t,useEffect:e,useLayoutEffect:r,useRef:u,useImperativeHandle:o,useMemo:i,useCallback:l,useContext:c,useDebugValue:f,version:\"17.0.2\",Children:k,render:B,hydrate:$,unmountComponentAtNode:un,createPortal:W,createElement:s,createContext:_,createFactory:tn,cloneElement:rn,createRef:b,Fragment:v,isValidElement:en,findDOMNode:on,Component:a,PureComponent:E,memo:g,forwardRef:x,flushSync:cn,unstable_batchedUpdates:ln,StrictMode:v,Suspense:L,SuspenseList:M,lazy:F,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:X};export{nn as version,k as Children,B as render,$ as hydrate,un as unmountComponentAtNode,W as createPortal,tn as createFactory,rn as cloneElement,en as isValidElement,on as findDOMNode,E as PureComponent,g as memo,x as forwardRef,cn as flushSync,ln as unstable_batchedUpdates,fn as StrictMode,L as Suspense,M as SuspenseList,F as lazy,X as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED};\n//# sourceMappingURL=compat.module.js.map\n","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n","export const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\nconst getClassNames = el => {\n const attr = el.getAttribute('class');\n return attr ? new Set(attr.split(' ')) : new Set();\n}\n\n// IE11 doesn't support adding/removing classes to SVG elements except \n// via .setAttribute\nexport const addClass = (el, className) => {\n const classNames = getClassNames(el);\n classNames.add(className);\n el.setAttribute('class', Array.from(classNames).join(' '));\n}\n\nexport const removeClass = (el, className) => {\n const classNames = getClassNames(el);\n classNames.delete(className);\n\n if (classNames.size === 0)\n el.removeAttribute('class');\n else\n el.setAttribute('class', Array.from(classNames).join(' '));\n}\n\nexport const hasClass = (el, className) =>\n getClassNames(el).has(className);","import { SVG_NAMESPACE, addClass } from '../util/SVG';\n\n/** \n * Parses a W3C Web Annotation FragmentSelector conforming\n * to the Media Fragments spec. Supports (well-formed) xywh=pixel\n * and xywh=percent fragments. \n */\nexport const parseRectFragment = (annotation, image) => {\n const selector = annotation.selector('FragmentSelector');\n\n if (selector?.conformsTo.startsWith('http://www.w3.org/TR/media-frags')) {\n const { value } = selector;\n \n const format = value.includes(':') ? value.substring(value.indexOf('=') + 1, value.indexOf(':')) : 'pixel';\n const coords = value.includes(':') ? value.substring(value.indexOf(':') + 1) : value.substring(value.indexOf('=') + 1);\n\n let [ x, y, w, h ] = coords.split(',').map(parseFloat);\n\n if (format.toLowerCase() === 'percent') {\n x = x * image.naturalWidth / 100;\n y = y * image.naturalHeight / 100;\n w = w * image.naturalWidth / 100;\n h = h * image.naturalHeight / 100;\n }\n\n return { x, y, w, h };\n }\n}\n\n/** \n * Serializes a (x, y, w, h)-tuple as Media Fragment selector\n * using pixel coordinates.\n */\nconst toPixelRectFragment = (x, y, w, h, image) => ({\n source: image?.src,\n selector: {\n type: \"FragmentSelector\",\n conformsTo: \"http://www.w3.org/TR/media-frags/\",\n value: `xywh=pixel:${x},${y},${w},${h}`\n }\n});\n\n/** \n * Serializes a (x, y, w, h)-tuple as Media Fragment selector \n * using percent coordinates.\n */\nconst toPercentRectFragment = (x, y, w, h, image) => {\n const px = x / image.naturalWidth * 100;\n const py = y / image.naturalHeight * 100;\n const pw = w / image.naturalWidth * 100;\n const ph = h / image.naturalHeight * 100;\n\n return {\n source: image.src,\n selector: {\n type: \"FragmentSelector\",\n conformsTo: \"http://www.w3.org/TR/media-frags/\",\n value: `xywh=percent:${px},${py},${pw},${ph}`\n }\n }\n}\n\nexport const toRectFragment = (x, y, w, h, image, fragmentUnit) =>\n fragmentUnit?.toLowerCase() === 'percent' ?\n toPercentRectFragment(x, y, w, h, image) :\n toPixelRectFragment(x, y, w, h, image);\n\n/** Shorthand to apply the given (x, y, w, h) to the SVG shape **/\nconst setXYWH = (shape, x, y, w, h) => {\n shape.setAttribute('x', x);\n shape.setAttribute('y', y);\n shape.setAttribute('width', w);\n shape.setAttribute('height', h);\n}\n\n\nconst setPointXY = (shape, x, y) => {\n shape.setAttribute('cx', x);\n shape.setAttribute('cy', y);\n shape.setAttribute('r', 7); // TODO make configurable\n}\n\nexport const drawRectMask = (imageDimensions, x, y, w, h) => {\n const mask = document.createElementNS(SVG_NAMESPACE, 'path');\n mask.setAttribute('fill-rule', 'evenodd');\n\n const { naturalWidth, naturalHeight } = imageDimensions;\n mask.setAttribute('d', `M0 0 h${naturalWidth} v${naturalHeight} h-${naturalWidth} z M${x} ${y} h${w} v${h} h-${w} z`);\n\n return mask;\n}\n\nexport const setRectMaskSize = (mask, imageDimensions, x, y, w, h) => {\n const { naturalWidth, naturalHeight } = imageDimensions;\n mask.setAttribute('d', `M0 0 h${naturalWidth} v${naturalHeight} h-${naturalWidth} z M${x} ${y} h${w} v${h} h-${w} z`);\n}\n\n/** \n * Draws an SVG rectangle, either from an annotation, or an\n * (x, y, w, h)-tuple.\n */\nexport const drawRect = (arg1, arg2, arg3, arg4) => {\n const { x, y, w, h } = arg1.type === 'Annotation' || arg1.type === 'Selection' ?\n parseRectFragment(arg1, arg2) : { x: arg1, y: arg2, w: arg3, h: arg4 };\n\n const g = document.createElementNS(SVG_NAMESPACE, 'g');\n\n if (w === 0 && h === 0) {\n // Edge case: rect is actually a point\n addClass(g, 'a9s-point');\n addClass(g, 'a9s-non-scaling');\n g.setAttribute('transform-origin', `${x} ${y}`);\n\n const outerPoint = document.createElementNS(SVG_NAMESPACE, 'circle');\n const innerPoint = document.createElementNS(SVG_NAMESPACE, 'circle');\n\n innerPoint.setAttribute('class', 'a9s-inner');\n setPointXY(innerPoint, x, y);\n\n outerPoint.setAttribute('class', 'a9s-outer');\n setPointXY(outerPoint, x, y);\n\n g.appendChild(outerPoint);\n g.appendChild(innerPoint); \n } else {\n const outerRect = document.createElementNS(SVG_NAMESPACE, 'rect');\n const innerRect = document.createElementNS(SVG_NAMESPACE, 'rect');\n\n innerRect.setAttribute('class', 'a9s-inner');\n setXYWH(innerRect, x, y, w, h);\n\n outerRect.setAttribute('class', 'a9s-outer');\n setXYWH(outerRect, x, y, w, h);\n\n g.appendChild(outerRect);\n g.appendChild(innerRect);\n }\n\n return g;\n}\n\n/** Gets the (x, y, w, h)-values from the attributes of the SVG group **/\nexport const getRectSize = g => {\n const outer = g.querySelector('.a9s-outer');\n\n if (outer.nodeName === 'rect') {\n const x = parseFloat(outer.getAttribute('x'));\n const y = parseFloat(outer.getAttribute('y'));\n const w = parseFloat(outer.getAttribute('width'));\n const h = parseFloat(outer.getAttribute('height'));\n\n return { x, y, w, h };\n } else {\n const x = parseFloat(outer.getAttribute('cx'));\n const y = parseFloat(outer.getAttribute('cy'));\n\n return { x, y, w: 0, h: 0 };\n }\n}\n\n/** Applies the (x, y, w, h)-values to the rects in the SVG group **/\nexport const setRectSize = (g, x, y, w, h) => {\n const inner = g.querySelector('.a9s-inner');\n const outer = g.querySelector('.a9s-outer');\n\n if (outer.nodeName === 'rect') {\n setXYWH(inner, x, y, w, h);\n setXYWH(outer, x, y, w, h); \n } else {\n setPointXY(inner, x, y);\n setPointXY(outer, x, y);\n }\n}\n\n/** \n * Shorthand to get the area (rectangle w x h) from the \n * annotation's fragment selector. \n */\nexport const rectArea = (annotation, image) => {\n const { w, h } = parseRectFragment(annotation, image);\n return w * h;\n}\n\n","/**\n * Computes the area of the polygon defined by\n * the given conrner points.\n * @param {Array} points \n * @returns {number} the area\n */\nexport const polygonArea = points => {\n let area = 0;\n let j = points.length - 1;\n\n for (let i=0; i < points.length; i++) {\n area += (points[j][0] + points[i][0]) * (points[j][1] - points[i][1]);\n j = i;\n }\n\n return Math.abs(0.5 * area);\n}\n\n/**\n * Hit test: checks if this point is inside the circle.\n * @param {Array} point the point [x, y]\n * @param {number} cx circle center x\n * @param {number} cy circle center y\n * @param {number} r circle radius\n * @returns {boolean} \n */\nexport const pointInCircle = (point, cx, cy, r) => {\n const dx = point[0] - cx;\n const dy = point[1] - cy;\n\n const d = Math.sqrt(dx * dx + dy * dy);\n return d <= r;\n}\n\n/**\n * Hit test: checks if this point is inside the ellipse.\n * Cf. https://github.com/w8r/point-in-ellipse\n * @param {Array} point the point [x, y] \n * @param {number} cx ellipse center x \n * @param {number} cy ellipse center y\n * @param {number} rx ellipse x radius\n * @param {number} ry ellipse y radius\n * @param {number=} rotation ellipse rotation \n * @returns {boolean}\n */\nexport const pointInEllipse = (point, cx, cy, rx, ry, rotation) => {\n const rot = rotation || 0;\n\n const cos = Math.cos(rot);\n const sin = Math.sin(rot);\n\n const dx = point[0] - cx;\n const dy = point[1] - cy;\n\n const tdx = cos * dx + sin * dy;\n const tdy = sin * dx - cos * dy;\n\n return (tdx * tdx) / (rx * rx) + (tdy * tdy) / (ry * ry) <= 1;\n}\n\n/**\n * Hit test: checks if this point is inside the polygon.\n * @param {Array} xy the point [x, y]\n * @param {Array} points polygon corner points \n * @returns {boolean}\n */\nexport const pointInPolygon = (xy, points) => {\n // Algorithm checks, if xy is in Polygon\n // algorithm based on\n // https://wrf.ecse.rpi.edu/Research/Short_Notes/pnpoly.html/pnpoly.html\n const x = xy[0];\n const y = xy[1];\n \n let inside = false;\n\n for (let i=0, j=points.length-1; i < points.length; j=i++) {\n const xi = points[i][0], yi = points[i][1];\n const xj = points[j][0], yj = points[j][1];\n \n const intersect = ((yi > y) != (yj > y))\n && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n \n if (intersect)\n inside = !inside;\n }\n \n return inside;\n}\n\n/**\n * Checks if polygon A is contained fully inside polygon B.\n * @param {Array>} polygonA array of points [x, y] \n * @param {Array>} polygonB array of points [x, y]\n * @returns {boolean}\n */\nexport const polygonInPolygon = (polygonA, polygonB) => {\n for (let point of polygonA) {\n if (!pointInPolygon(point, polygonB)) \n return false\n }\n\n return true;\n}\n\n/** \n * Hit test: checks if this point is inside the line.\n * @param {Array} xy the point [x, y]\n * @param number x1 line start x\n * @param number y1 line start y\n * @param number x2 line end x\n * @param number y2 line end y\n * @param number buffer around the line\n * @returns {boolean}\n */\nexport const pointInLine = (xy, x1, y1, x2, y2, buffer) => {\n const x = xy[0];\n const y = xy[1];\n\n const dx = x2 - x1;\n const dy = y2 - y1;\n const d = Math.sqrt(dx * dx + dy * dy);\n const cross = Math.abs((x - x1) * dy - (y - y1) * dx);\n const dist = cross / d;\n\n return dist <= buffer;\n}\n\n/**\n * A utility helper that parses an SVG path into \n * a list of polygons.\n * @param {SVGElement} path the SVG path\n * @returns {Array>>} list of polygons \n */\nexport const svgPathToPolygons = path => {\n const commands = path.getAttribute('d')\n .split(/(?=M|m|L|l|H|h|V|v|Z|z)/g)\n .map(str => str.trim());\n\n const polygons = [];\n\n let points = [];\n\n for (let cmd of commands) {\n const op = cmd.substring(0, 1);\n\n if (op.toLowerCase() === 'z') {\n polygons.push([...points]);\n points = [];\n } else {\n const xy = cmd.substring(1).split(' ')\n .map(str => parseFloat(str.trim()));\n \n // Uppercase ops are absolute coords -> transform\n const isUppercase = op === op.toUpperCase();\n\n const x = isUppercase ? xy[0] : xy[0] + points[points.length - 1][0];\n const y = isUppercase ? xy[1] : xy[1] + points[points.length - 1][1];\n\n points.push([x, y]);\n }\n }\n\n if (points.length > 0) // Unclosed path - close for area computation\n polygons.push([...points]); \n\n return polygons;\n}","import { SVG_NAMESPACE } from '../util/SVG';\nimport { polygonArea, polygonInPolygon, svgPathToPolygons } from '../util/Geom2D';\n\n/** Helper that forces an un-namespaced node to SVG **/\nconst insertSVGNamespace = originalDoc => {\n // Serialize and parse for the namespace to take effect on every node\n const serializer = new XMLSerializer();\n const str = serializer.serializeToString(originalDoc.documentElement);\n\n // Doesn't seem that there's a clean cross-browser way for this...\n const namespaced = str.replace('', ``);\n\n const parser = new DOMParser();\n const namespacedDoc = parser.parseFromString(namespaced, \"image/svg+xml\");\n return namespacedDoc.documentElement;\n}\n\nconst sanitize = doc => {\n // Cf. https://github.com/mattkrick/sanitize-svg#readme \n // for the basic approach\n const cleanEl = el => {\n Array.from(el.attributes).forEach(attr => {\n if (attr.name.startsWith('on'))\n el.removeAttribute(attr.name)\n });\n }\n\n // Remove script tags\n const scripts = doc.getElementsByTagName('script');\n Array.from(scripts).reverse().forEach(el =>\n el.parentNode.removeChild(el));\n\n // Remove on... attributes\n cleanEl(doc);\n Array.from(doc.querySelectorAll('*')).forEach(cleanEl);\n\n return doc;\n}\n\nexport const svgFragmentToShape = annotation => {\n const selector = annotation.selector('SvgSelector');\n if (selector) {\n const parser = new DOMParser();\n\n // Parse the XML document, assuming SVG\n const { value } = selector;\n const doc = parser.parseFromString(value, \"image/svg+xml\");\n\n // SVG needs a namespace declaration - check if it's set or insert if not\n const isPrefixDeclared = doc.lookupPrefix(SVG_NAMESPACE); // SVG declared via prefix\n const isDefaultNamespaceSVG = doc.lookupNamespaceURI(null); // SVG declared as default namespace\n\n if (isPrefixDeclared || isDefaultNamespaceSVG) {\n return sanitize(doc).firstChild;\n } else {\n return sanitize(insertSVGNamespace(doc)).firstChild;\n }\n }\n}\n\nexport const drawEmbeddedSVG = annotation => {\n const shape = svgFragmentToShape(annotation);\n\n // Because we're nitpicky, we don't just draw the shape,\n // but duplicate it, so we can have inner and an outer lines\n const g = document.createElementNS(SVG_NAMESPACE, 'g');\n\n const inner = shape.cloneNode(true);\n inner.setAttribute('class', 'a9s-inner');\n\n const outer = shape.cloneNode(true);\n outer.setAttribute('class', 'a9s-outer');\n\n g.appendChild(outer);\n g.appendChild(inner);\n\n return g;\n}\n\nexport const toSVGTarget = (shape, image) => {\n const inner = shape.querySelector('.a9s-inner').cloneNode(true);\n inner.removeAttribute('class');\n inner.removeAttribute('xmlns');\n\n let serialized = inner.outerHTML || new XMLSerializer().serializeToString(inner);\n serialized = serialized.replace(` xmlns=\"${SVG_NAMESPACE}\"`, '');\n\n return {\n source: image?.src,\n selector: {\n type: \"SvgSelector\",\n value: `${serialized}`\n }\n }\n}\n\nexport const svgArea = annotation => {\n const shape = svgFragmentToShape(annotation);\n const nodeName = shape.nodeName.toLowerCase();\n\n if (nodeName === 'polygon') \n return svgPolygonArea(shape);\n else if (nodeName === 'circle')\n return svgCircleArea(shape);\n else if (nodeName === 'ellipse')\n return svgEllipseArea(shape);\n else if (nodeName == 'path')\n return svgPathArea(shape);\n else if (nodeName == 'line')\n return 0;\n else\n throw `Unsupported SVG shape type: ${nodeName}`;\n}\n\nconst svgPolygonArea = polygon => {\n const points = polygon.getAttribute('points')\n .trim()\n .split(' ') // Split x/y tuples\n .map(xy => xy.split(',').map(str => parseFloat(str.trim())));\n\n return polygonArea(points)\n}\n\nconst svgCircleArea = circle => {\n const r = circle.getAttribute('r');\n return r * r * Math.PI;\n}\n\nconst svgEllipseArea = ellipse => {\n const rx = ellipse.getAttribute('rx');\n const ry = ellipse.getAttribute('ry');\n return rx * ry * Math.PI;\n}\n\nconst svgPathArea = path => {\n const polygons = svgPathToPolygons(path);\n\n if (polygons.length == 1) {\n return polygonArea(polygons[0]);\n } else {\n // Helper to check if a polygon is a hole\n const isHole = p => polygons.find(other => {\n if (p !== other)\n return polygonInPolygon(p, other); \n })\n\n let area = 0\n\n for (let poly of polygons) {\n if (isHole(poly))\n area -= polygonArea(poly);\n else \n area += polygonArea(poly);\n }\n\n return area;\n }\n}","import { drawRect, rectArea } from './RectFragment';\nimport { drawEmbeddedSVG, svgArea } from './EmbeddedSVG';\n\n// Drawing functions per selector type\nconst drawFn = {\n 'FragmentSelector': drawRect,\n 'SvgSelector': drawEmbeddedSVG\n};\n\n// Area computation functions per selector type\nconst areaFn = {\n 'FragmentSelector': rectArea,\n 'SvgSelector': svgArea\n}\n\n// Helper to get the first selector from an annotation\nconst getFirstSelector = annotation => {\n const firstTarget = annotation.targets[0];\n if (firstTarget)\n return Array.isArray(firstTarget.selector) ? firstTarget.selector[0] : firstTarget.selector;\n}\n\n/** \n * Evaluates the annotation target and picks the right drawing functions. \n * \n * We currently support the following selectors\n * - MediaFragment\n * - SVG (with embedded SVG shape)\n */\nexport const drawShape = (annotation, image) =>\n drawFn[getFirstSelector(annotation).type](annotation, image);\n\nexport const shapeArea = (annotation, image) =>\n areaFn[getFirstSelector(annotation).type](annotation, image);\n\nexport { parseRectFragment } from './RectFragment';\n\nexport * from './EmbeddedSVG';\nexport * from './RectFragment';\n\n\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.findInArray = findInArray;\nexports.isFunction = isFunction;\nexports.isNum = isNum;\nexports.int = int;\nexports.dontSetMe = dontSetMe;\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array\n/*: Array | TouchList*/\n, callback\n/*: Function*/\n)\n/*: any*/\n{\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction isFunction(func\n/*: any*/\n)\n/*: boolean %checks*/\n{\n // $FlowIgnore[method-unbinding]\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nfunction isNum(num\n/*: any*/\n)\n/*: boolean %checks*/\n{\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a\n/*: string*/\n)\n/*: number*/\n{\n return parseInt(a, 10);\n}\n\nfunction dontSetMe(props\n/*: Object*/\n, propName\n/*: string*/\n, componentName\n/*: string*/\n)\n/*: ?Error*/\n{\n if (props[propName]) {\n return new Error(\"Invalid prop \".concat(propName, \" passed to \").concat(componentName, \" - do not set this, set it on the child.\"));\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getPrefix = getPrefix;\nexports.browserPrefixToKey = browserPrefixToKey;\nexports.browserPrefixToStyle = browserPrefixToStyle;\nexports.default = void 0;\nvar prefixes = ['Moz', 'Webkit', 'O', 'ms'];\n\nfunction getPrefix()\n/*: string*/\n{\n var _window$document, _window$document$docu;\n\n var prop\n /*: string*/\n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n // Ensure we're running in an environment where there is actually a global\n // `window` obj\n if (typeof window === 'undefined') return ''; // If we're in a pseudo-browser server-side environment, this access\n // path may not exist, so bail out if it doesn't.\n\n var style = (_window$document = window.document) === null || _window$document === void 0 ? void 0 : (_window$document$docu = _window$document.documentElement) === null || _window$document$docu === void 0 ? void 0 : _window$document$docu.style;\n if (!style) return '';\n if (prop in style) return '';\n\n for (var i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nfunction browserPrefixToKey(prop\n/*: string*/\n, prefix\n/*: string*/\n)\n/*: string*/\n{\n return prefix ? \"\".concat(prefix).concat(kebabToTitleCase(prop)) : prop;\n}\n\nfunction browserPrefixToStyle(prop\n/*: string*/\n, prefix\n/*: string*/\n)\n/*: string*/\n{\n return prefix ? \"-\".concat(prefix.toLowerCase(), \"-\").concat(prop) : prop;\n}\n\nfunction kebabToTitleCase(str\n/*: string*/\n)\n/*: string*/\n{\n var out = '';\n var shouldCapitalize = true;\n\n for (var i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n\n return out;\n} // Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\n\n\nvar _default = (getPrefix()\n/*: string*/\n);\n\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchesSelector = matchesSelector;\nexports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;\nexports.addEvent = addEvent;\nexports.removeEvent = removeEvent;\nexports.outerHeight = outerHeight;\nexports.outerWidth = outerWidth;\nexports.innerHeight = innerHeight;\nexports.innerWidth = innerWidth;\nexports.offsetXYFromParent = offsetXYFromParent;\nexports.createCSSTransform = createCSSTransform;\nexports.createSVGTransform = createSVGTransform;\nexports.getTranslation = getTranslation;\nexports.getTouch = getTouch;\nexports.getTouchIdentifier = getTouchIdentifier;\nexports.addUserSelectStyles = addUserSelectStyles;\nexports.removeUserSelectStyles = removeUserSelectStyles;\nexports.addClassName = addClassName;\nexports.removeClassName = removeClassName;\n\nvar _shims = require(\"./shims\");\n\nvar _getPrefix = _interopRequireWildcard(require(\"./getPrefix\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar matchesSelectorFunc = '';\n\nfunction matchesSelector(el\n/*: Node*/\n, selector\n/*: string*/\n)\n/*: boolean*/\n{\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {\n // $FlowIgnore: Doesn't think elements are indexable\n return (0, _shims.isFunction)(el[method]);\n });\n } // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n\n\n if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false; // $FlowIgnore: Doesn't think elements are indexable\n\n return el[matchesSelectorFunc](selector);\n} // Works up the tree to the draggable itself attempting to match selector.\n\n\nfunction matchesSelectorAndParentsTo(el\n/*: Node*/\n, selector\n/*: string*/\n, baseNode\n/*: Node*/\n)\n/*: boolean*/\n{\n var node = el;\n\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nfunction addEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions); // $FlowIgnore[method-unbinding]\n\n\n if (el.addEventListener) {\n el.addEventListener(event, handler, options);\n } else if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions); // $FlowIgnore[method-unbinding]\n\n\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, options);\n } else if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += (0, _shims.int)(computedStyle.borderTopWidth);\n height += (0, _shims.int)(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += (0, _shims.int)(computedStyle.borderLeftWidth);\n width += (0, _shims.int)(computedStyle.borderRightWidth);\n return width;\n}\n\nfunction innerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= (0, _shims.int)(computedStyle.paddingTop);\n height -= (0, _shims.int)(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= (0, _shims.int)(computedStyle.paddingLeft);\n width -= (0, _shims.int)(computedStyle.paddingRight);\n return width;\n}\n/*:: interface EventWithOffset {\n clientX: number, clientY: number\n}*/\n\n\n// Get from offsetParent\nfunction offsetXYFromParent(evt\n/*: EventWithOffset*/\n, offsetParent\n/*: HTMLElement*/\n, scale\n/*: number*/\n)\n/*: ControlPosition*/\n{\n var isBody = offsetParent === offsetParent.ownerDocument.body;\n var offsetParentRect = isBody ? {\n left: 0,\n top: 0\n } : offsetParent.getBoundingClientRect();\n var x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;\n var y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;\n return {\n x: x,\n y: y\n };\n}\n\nfunction createCSSTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: Object*/\n{\n var translation = getTranslation(controlPos, positionOffset, 'px');\n return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default), translation);\n}\n\nfunction createSVGTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: string*/\n{\n var translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\n\nfunction getTranslation(_ref2, positionOffset\n/*: PositionOffsetControlPosition*/\n, unitSuffix\n/*: string*/\n)\n/*: string*/\n{\n var x = _ref2.x,\n y = _ref2.y;\n var translation = \"translate(\".concat(x).concat(unitSuffix, \",\").concat(y).concat(unitSuffix, \")\");\n\n if (positionOffset) {\n var defaultX = \"\".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);\n var defaultY = \"\".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);\n translation = \"translate(\".concat(defaultX, \", \").concat(defaultY, \")\") + translation;\n }\n\n return translation;\n}\n\nfunction getTouch(e\n/*: MouseTouchEvent*/\n, identifier\n/*: number*/\n)\n/*: ?{clientX: number, clientY: number}*/\n{\n return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) {\n return identifier === t.identifier;\n }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) {\n return identifier === t.identifier;\n });\n}\n\nfunction getTouchIdentifier(e\n/*: MouseTouchEvent*/\n)\n/*: ?number*/\n{\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n} // User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n// Note we're passing `document` b/c we could be iframed\n\n\nfunction addUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n var styleEl = doc.getElementById('react-draggable-style-el');\n\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nfunction removeUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n\n try {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); // $FlowIgnore: IE\n\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n // Remove selection caused by scroll, unless it's a focused input\n // (we use doc.defaultView in case we're in an iframe)\n var selection = (doc.defaultView || window).getSelection();\n\n if (selection && selection.type !== 'Caret') {\n selection.removeAllRanges();\n }\n }\n } catch (e) {// probably IE\n }\n}\n\nfunction addClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\")))) {\n el.className += \" \".concat(className);\n }\n }\n}\n\nfunction removeClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\"), 'g'), '');\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getBoundPosition = getBoundPosition;\nexports.snapToGrid = snapToGrid;\nexports.canDragX = canDragX;\nexports.canDragY = canDragY;\nexports.getControlPosition = getControlPosition;\nexports.createCoreData = createCoreData;\nexports.createDraggableData = createDraggableData;\n\nvar _shims = require(\"./shims\");\n\nvar _domFns = require(\"./domFns\");\n\nfunction getBoundPosition(draggable\n/*: Draggable*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: [number, number]*/\n{\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y]; // Clone new bounds\n\n var bounds = draggable.props.bounds;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n var node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n var ownerDocument = node.ownerDocument;\n var ownerWindow = ownerDocument.defaultView;\n var boundNode;\n\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n\n var boundNodeEl\n /*: HTMLElement*/\n = boundNode; // for Flow, can't seem to refine correctly\n\n var nodeStyle = ownerWindow.getComputedStyle(node);\n var boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n\n bounds = {\n left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),\n top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),\n right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),\n bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)\n };\n } // Keep x and y below right and bottom limits...\n\n\n if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);\n if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom); // But above left and top limits.\n\n if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);\n if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);\n return [x, y];\n}\n\nfunction snapToGrid(grid\n/*: [number, number]*/\n, pendingX\n/*: number*/\n, pendingY\n/*: number*/\n)\n/*: [number, number]*/\n{\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nfunction canDragX(draggable\n/*: Draggable*/\n)\n/*: boolean*/\n{\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nfunction canDragY(draggable\n/*: Draggable*/\n)\n/*: boolean*/\n{\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n} // Get {x, y} positions from event.\n\n\nfunction getControlPosition(e\n/*: MouseTouchEvent*/\n, touchIdentifier\n/*: ?number*/\n, draggableCore\n/*: DraggableCore*/\n)\n/*: ?ControlPosition*/\n{\n var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n\n var node = findDOMNode(draggableCore); // User can provide an offsetParent if desired.\n\n var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);\n} // Create an data object exposed by 's events\n\n\nfunction createCoreData(draggable\n/*: DraggableCore*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: DraggableData*/\n{\n var state = draggable.state;\n var isStart = !(0, _shims.isNum)(state.lastX);\n var node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: node,\n deltaX: 0,\n deltaY: 0,\n lastX: x,\n lastY: y,\n x: x,\n y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: node,\n deltaX: x - state.lastX,\n deltaY: y - state.lastY,\n lastX: state.lastX,\n lastY: state.lastY,\n x: x,\n y: y\n };\n }\n} // Create an data exposed by 's events\n\n\nfunction createDraggableData(draggable\n/*: Draggable*/\n, coreData\n/*: DraggableData*/\n)\n/*: DraggableData*/\n{\n var scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX / scale,\n y: draggable.state.y + coreData.deltaY / scale,\n deltaX: coreData.deltaX / scale,\n deltaY: coreData.deltaY / scale,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n} // A lot faster than stringify/parse\n\n\nfunction cloneBounds(bounds\n/*: Bounds*/\n)\n/*: Bounds*/\n{\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable\n/*: Draggable | DraggableCore*/\n)\n/*: HTMLElement*/\n{\n var node = draggable.findDOMNode();\n\n if (!node) {\n throw new Error(': Unmounted during event!');\n } // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n\n\n return node;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = log;\n\n/*eslint no-console:0*/\nfunction log() {\n var _console;\n\n if (undefined) (_console = console).log.apply(_console, arguments);\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _domFns = require(\"./utils/domFns\");\n\nvar _positionFns = require(\"./utils/positionFns\");\n\nvar _shims = require(\"./utils/shims\");\n\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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 _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Simple abstraction for dragging events names.\nvar eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n}; // Default to mouse events.\n\nvar dragEventFor = eventsFor.mouse;\n/*:: type DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};*/\n\n/*:: export type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};*/\n\n/*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/\n\n/*:: export type ControlPosition = {x: number, y: number};*/\n\n/*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/\n\n/*:: export type DraggableCoreDefaultProps = {\n allowAnyClick: boolean,\n disabled: boolean,\n enableUserSelectHack: boolean,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n scale: number,\n};*/\n\n/*:: export type DraggableCoreProps = {\n ...DraggableCoreDefaultProps,\n cancel: string,\n children: ReactElement,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n nodeRef?: ?React.ElementRef,\n};*/\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\nvar DraggableCore = /*#__PURE__*/function (_React$Component) {\n _inherits(DraggableCore, _React$Component);\n\n var _super = _createSuper(DraggableCore);\n\n function DraggableCore() {\n var _this;\n\n _classCallCheck(this, DraggableCore);\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 = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN,\n lastY: NaN,\n touchIdentifier: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"handleDragStart\", function (e) {\n // Make it possible to attach event handlers on top of this one.\n _this.props.onMouseDown(e); // Only accept left-clicks.\n\n\n if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; // Get nodes. Be sure to grab relative document (could be iframed)\n\n var thisNode = _this.findDOMNode();\n\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n\n var ownerDocument = thisNode.ownerDocument; // Short circuit if handle or cancel prop was provided and selector doesn't match.\n\n if (_this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || _this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.handle, thisNode) || _this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.cancel, thisNode)) {\n return;\n } // Prevent scrolling on mobile devices, like ipad/iphone.\n // Important that this is after handle/cancel.\n\n\n if (e.type === 'touchstart') e.preventDefault(); // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n\n var touchIdentifier = (0, _domFns.getTouchIdentifier)(e);\n\n _this.setState({\n touchIdentifier: touchIdentifier\n }); // Get the current drag point from the event. This is used as the offset.\n\n\n var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return; // not possible but satisfies flow\n\n var x = position.x,\n y = position.y; // Create an event object with all the data parents need to make a decision here.\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);\n (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent); // Call event handler. If it returns explicit false, cancel.\n\n (0, _log.default)('calling', _this.props.onStart);\n\n var shouldUpdate = _this.props.onStart(e, coreEvent);\n\n if (shouldUpdate === false || _this.mounted === false) return; // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n\n if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument); // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n\n _this.setState({\n dragging: true,\n lastX: x,\n lastY: y\n }); // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n\n\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, _this.handleDrag);\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDrag\", function (e) {\n // Get the current drag point from the event. This is used as the offset.\n var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return;\n var x = position.x,\n y = position.y; // Snap to grid if prop has been provided\n\n if (Array.isArray(_this.props.grid)) {\n var deltaX = x - _this.state.lastX,\n deltaY = y - _this.state.lastY;\n\n var _snapToGrid = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);\n\n var _snapToGrid2 = _slicedToArray(_snapToGrid, 2);\n\n deltaX = _snapToGrid2[0];\n deltaY = _snapToGrid2[1];\n if (!deltaX && !deltaY) return; // skip useless drag\n\n x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;\n }\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);\n (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent); // Call event handler. If it returns explicit false, trigger end.\n\n var shouldUpdate = _this.props.onDrag(e, coreEvent);\n\n if (shouldUpdate === false || _this.mounted === false) {\n try {\n // $FlowIgnore\n _this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n var event = ((document.createEvent('MouseEvents')\n /*: any*/\n )\n /*: MouseTouchEvent*/\n ); // I see why this insanity was deprecated\n // $FlowIgnore\n\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n\n _this.handleDragStop(event);\n }\n\n return;\n }\n\n _this.setState({\n lastX: x,\n lastY: y\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDragStop\", function (e) {\n if (!_this.state.dragging) return;\n var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return;\n var x = position.x,\n y = position.y;\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y); // Call event handler\n\n var shouldContinue = _this.props.onStop(e, coreEvent);\n\n if (shouldContinue === false || _this.mounted === false) return false;\n\n var thisNode = _this.findDOMNode();\n\n if (thisNode) {\n // Remove user-select hack\n if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);\n }\n\n (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent); // Reset the el.\n\n _this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n if (thisNode) {\n // Remove event handlers\n (0, _log.default)('DraggableCore: Removing handlers');\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, _this.handleDrag);\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, _this.handleDragStop);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (e) {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return _this.handleDragStart(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseUp\", function (e) {\n dragEventFor = eventsFor.mouse;\n return _this.handleDragStop(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchStart\", function (e) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return _this.handleDragStart(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchEnd\", function (e) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return _this.handleDragStop(e);\n });\n\n return _this;\n }\n\n _createClass(DraggableCore, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true; // Touch handlers must be added with {passive: false} to be cancelable.\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n\n var thisNode = this.findDOMNode();\n\n if (thisNode) {\n (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false; // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n\n var thisNode = this.findDOMNode();\n\n if (thisNode) {\n var ownerDocument = thisNode.ownerDocument;\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);\n }\n } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n\n }, {\n key: \"findDOMNode\",\n value: function findDOMNode()\n /*: ?HTMLElement*/\n {\n var _this$props$nodeRef$c, _this$props, _this$props$nodeRef;\n\n return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 ? void 0 : (_this$props$nodeRef = _this$props.nodeRef) === null || _this$props$nodeRef === void 0 ? void 0 : _this$props$nodeRef.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element*/\n {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n // onTouchStart is added on `componentDidMount` so they can be added with\n // {passive: false}, which allows it to cancel. See\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n onTouchEnd: this.onTouchEnd\n });\n }\n }]);\n\n return DraggableCore;\n}(React.Component);\n\nexports.default = DraggableCore;\n\n_defineProperty(DraggableCore, \"displayName\", 'DraggableCore');\n\n_defineProperty(DraggableCore, \"propTypes\", {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: _propTypes.default.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: _propTypes.default.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: _propTypes.default.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function offsetParent(props\n /*: DraggableCoreProps*/\n , propName\n /*: $Keys*/\n ) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n * \n * );\n * }\n * });\n * ```\n */\n handle: _propTypes.default.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: _propTypes.default.string,\n\n /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.\n * Unfortunately, in order for to work properly, we need raw access\n * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`\n * as in this example:\n *\n * function MyComponent() {\n * const nodeRef = React.useRef(null);\n * return (\n * \n *
Example Target
\n *
\n * );\n * }\n *\n * This can be used for arbitrarily nested components, so long as the ref ends up\n * pointing to the actual child DOM node and not a custom component.\n */\n nodeRef: _propTypes.default.object,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: _propTypes.default.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: _propTypes.default.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: _propTypes.default.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: _propTypes.default.func,\n\n /**\n * `scale`, if set, applies scaling while dragging an element\n */\n scale: _propTypes.default.number,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n\n_defineProperty(DraggableCore, \"defaultProps\", {\n allowAnyClick: false,\n // by default only accept left click\n disabled: false,\n enableUserSelectHack: true,\n onStart: function onStart() {},\n onDrag: function onDrag() {},\n onStop: function onStop() {},\n onMouseDown: function onMouseDown() {},\n scale: 1\n});","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"DraggableCore\", {\n enumerable: true,\n get: function get() {\n return _DraggableCore.default;\n }\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _clsx2 = _interopRequireDefault(require(\"clsx\"));\n\nvar _domFns = require(\"./utils/domFns\");\n\nvar _positionFns = require(\"./utils/positionFns\");\n\nvar _shims = require(\"./utils/shims\");\n\nvar _DraggableCore = _interopRequireDefault(require(\"./DraggableCore\"));\n\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\n\nvar _excluded = [\"axis\", \"bounds\", \"children\", \"defaultPosition\", \"defaultClassName\", \"defaultClassNameDragging\", \"defaultClassNameDragged\", \"position\", \"positionOffset\", \"scale\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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 _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n//\n// Define \n//\nvar Draggable = /*#__PURE__*/function (_React$Component) {\n _inherits(Draggable, _React$Component);\n\n var _super = _createSuper(Draggable);\n\n function Draggable(props\n /*: DraggableProps*/\n ) {\n var _this;\n\n _classCallCheck(this, Draggable);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (e, coreData) {\n (0, _log.default)('Draggable: onDragStart: %j', coreData); // Short-circuit if user's callback killed it.\n\n var shouldStart = _this.props.onStart(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData)); // Kills start event on core as well, so move handlers are never bound.\n\n\n if (shouldStart === false) return false;\n\n _this.setState({\n dragging: true,\n dragged: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrag\", function (e, coreData) {\n if (!_this.state.dragging) return false;\n (0, _log.default)('Draggable: onDrag: %j', coreData);\n var uiData = (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData);\n var newState\n /*: $Shape*/\n = {\n x: uiData.x,\n y: uiData.y\n }; // Keep within bounds.\n\n if (_this.props.bounds) {\n // Save original x and y.\n var x = newState.x,\n y = newState.y; // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n\n newState.x += _this.state.slackX;\n newState.y += _this.state.slackY; // Get bound position. This will ceil/floor the x and y within the boundaries.\n\n var _getBoundPosition = (0, _positionFns.getBoundPosition)(_assertThisInitialized(_this), newState.x, newState.y),\n _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2),\n newStateX = _getBoundPosition2[0],\n newStateY = _getBoundPosition2[1];\n\n newState.x = newStateX;\n newState.y = newStateY; // Recalculate slack by noting how much was shaved by the boundPosition handler.\n\n newState.slackX = _this.state.slackX + (x - newState.x);\n newState.slackY = _this.state.slackY + (y - newState.y); // Update the event we fire to reflect what really happened after bounds took effect.\n\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - _this.state.x;\n uiData.deltaY = newState.y - _this.state.y;\n } // Short-circuit if user's callback killed it.\n\n\n var shouldUpdate = _this.props.onDrag(e, uiData);\n\n if (shouldUpdate === false) return false;\n\n _this.setState(newState);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStop\", function (e, coreData) {\n if (!_this.state.dragging) return false; // Short-circuit if user's callback killed it.\n\n var shouldContinue = _this.props.onStop(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData));\n\n if (shouldContinue === false) return false;\n (0, _log.default)('Draggable: onDragStop: %j', coreData);\n var newState\n /*: $Shape*/\n = {\n dragging: false,\n slackX: 0,\n slackY: 0\n }; // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n\n var controlled = Boolean(_this.props.position);\n\n if (controlled) {\n var _this$props$position = _this.props.position,\n x = _this$props$position.x,\n y = _this$props$position.y;\n newState.x = x;\n newState.y = y;\n }\n\n _this.setState(newState);\n });\n\n _this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n // Whether or not we have been dragged before.\n dragged: false,\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n prevPropsPosition: _objectSpread({}, props.position),\n // Used for compensating for out-of-bounds drags\n slackX: 0,\n slackY: 0,\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.');\n }\n\n return _this;\n }\n\n _createClass(Draggable, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {\n this.setState({\n isElementSVG: true\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.setState({\n dragging: false\n }); // prevents invariant if unmounted while dragging\n } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n\n }, {\n key: \"findDOMNode\",\n value: function findDOMNode()\n /*: ?HTMLElement*/\n {\n var _this$props$nodeRef$c, _this$props, _this$props$nodeRef;\n\n return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 ? void 0 : (_this$props$nodeRef = _this$props.nodeRef) === null || _this$props$nodeRef === void 0 ? void 0 : _this$props$nodeRef.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: ReactElement*/\n {\n var _clsx;\n\n var _this$props2 = this.props,\n axis = _this$props2.axis,\n bounds = _this$props2.bounds,\n children = _this$props2.children,\n defaultPosition = _this$props2.defaultPosition,\n defaultClassName = _this$props2.defaultClassName,\n defaultClassNameDragging = _this$props2.defaultClassNameDragging,\n defaultClassNameDragged = _this$props2.defaultClassNameDragged,\n position = _this$props2.position,\n positionOffset = _this$props2.positionOffset,\n scale = _this$props2.scale,\n draggableCoreProps = _objectWithoutProperties(_this$props2, _excluded);\n\n var style = {};\n var svgTransform = null; // If this is controlled, we don't want to move it - unless it's dragging.\n\n var controlled = Boolean(position);\n var draggable = !controlled || this.state.dragging;\n var validPosition = position || defaultPosition;\n var transformOpts = {\n // Set left if horizontal drag is enabled\n x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,\n // Set top if vertical drag is enabled\n y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y\n }; // If this element was SVG, we use the `transform` attribute.\n\n if (this.state.isElementSVG) {\n svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);\n } // Mark with class while dragging\n\n\n var className = (0, _clsx2.default)(children.props.className || '', defaultClassName, (_clsx = {}, _defineProperty(_clsx, defaultClassNameDragging, this.state.dragging), _defineProperty(_clsx, defaultClassNameDragged, this.state.dragged), _clsx)); // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n\n return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {\n onStart: this.onDragStart,\n onDrag: this.onDrag,\n onStop: this.onDragStop\n }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {\n className: className,\n style: _objectSpread(_objectSpread({}, children.props.style), style),\n transform: svgTransform\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: // React 16.3+\n // Arity (props, state)\n function getDerivedStateFromProps(_ref, _ref2)\n /*: ?$Shape*/\n {\n var position = _ref.position;\n var prevPropsPosition = _ref2.prevPropsPosition;\n\n // Set x/y if a new position is provided in props that is different than the previous.\n if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {\n (0, _log.default)('Draggable: getDerivedStateFromProps %j', {\n position: position,\n prevPropsPosition: prevPropsPosition\n });\n return {\n x: position.x,\n y: position.y,\n prevPropsPosition: _objectSpread({}, position)\n };\n }\n\n return null;\n }\n }]);\n\n return Draggable;\n}(React.Component);\n\nexports.default = Draggable;\n\n_defineProperty(Draggable, \"displayName\", 'Draggable');\n\n_defineProperty(Draggable, \"propTypes\", _objectSpread(_objectSpread({}, _DraggableCore.default.propTypes), {}, {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: _propTypes.default.oneOfType([_propTypes.default.shape({\n left: _propTypes.default.number,\n right: _propTypes.default.number,\n top: _propTypes.default.number,\n bottom: _propTypes.default.number\n }), _propTypes.default.string, _propTypes.default.oneOf([false])]),\n defaultClassName: _propTypes.default.string,\n defaultClassNameDragging: _propTypes.default.string,\n defaultClassNameDragged: _propTypes.default.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n positionOffset: _propTypes.default.shape({\n x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n}));\n\n_defineProperty(Draggable, \"defaultProps\", _objectSpread(_objectSpread({}, _DraggableCore.default.defaultProps), {}, {\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {\n x: 0,\n y: 0\n },\n scale: 1\n}));","\"use strict\";\n\nvar _require = require('./Draggable'),\n Draggable = _require.default,\n DraggableCore = _require.DraggableCore; // Previous versions of this lib exported as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\n\n\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = DraggableCore;","var EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1)\n unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}\n//# sourceMappingURL=en_US.js.map","var ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}\n//# sourceMappingURL=zh_CN.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\nexport var register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\nexport var getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};\n//# sourceMappingURL=register.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar SEC_ARRAY = [\n 60,\n 60,\n 24,\n 7,\n 365 / 7 / 12,\n 12,\n];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\nexport function toDate(input) {\n if (input instanceof Date)\n return input;\n // @ts-ignore\n if (!isNaN(input) || /^\\d+$/.test(input))\n return new Date(parseInt(input));\n input = (input || '')\n // @ts-ignore\n .trim()\n .replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/')\n .replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2')\n .replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([+-]\\d\\d):?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n return new Date(input);\n}\n/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\nexport function formatDiff(diff, localeFunc) {\n /**\n * if locale is not exist, use defaultLocale.\n * if defaultLocale is not exist, use build-in `en`.\n * be sure of no error when locale is not exist.\n *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n var totalSec = diff;\n /**\n * Unit of time\n */\n var idx = 0;\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1))\n idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\nexport function diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performance.\n **/\nexport function nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}\n//# sourceMappingURL=date.js.map","import { formatDiff, diffSec } from './utils/date';\nimport { getLocale } from './register';\n/**\n * format a TDate into string\n * @param date\n * @param locale\n * @param opts\n */\nexport var format = function (date, locale, opts) {\n // diff seconds\n var sec = diffSec(date, opts && opts.relativeDate);\n // format it with locale\n return formatDiff(sec, getLocale(locale));\n};\n//# sourceMappingURL=format.js.map","var ATTR_TIMEAGO_TID = 'timeago-id';\n/**\n * get the datetime attribute, `datetime` are supported.\n * @param node\n * @returns {*}\n */\nexport function getDateAttribute(node) {\n return node.getAttribute('datetime');\n}\n/**\n * set the node attribute, native DOM\n * @param node\n * @param timerId\n * @returns {*}\n */\nexport function setTimerId(node, timerId) {\n // @ts-ignore\n node.setAttribute(ATTR_TIMEAGO_TID, timerId);\n}\n/**\n * get the timer id\n * @param node\n */\nexport function getTimerId(node) {\n return parseInt(node.getAttribute(ATTR_TIMEAGO_TID));\n}\n//# sourceMappingURL=dom.js.map","import { setTimerId, getTimerId, getDateAttribute } from './utils/dom';\nimport { formatDiff, diffSec, nextInterval } from './utils/date';\nimport { getLocale } from './register';\n// all realtime timer\nvar TIMER_POOL = {};\n/**\n * clear a timer from pool\n * @param tid\n */\nvar clear = function (tid) {\n clearTimeout(tid);\n delete TIMER_POOL[tid];\n};\n// run with timer(setTimeout)\nfunction run(node, date, localeFunc, opts) {\n // clear the node's exist timer\n clear(getTimerId(node));\n var relativeDate = opts.relativeDate, minInterval = opts.minInterval;\n // get diff seconds\n var diff = diffSec(date, relativeDate);\n // render\n node.innerText = formatDiff(diff, localeFunc);\n var tid = setTimeout(function () {\n run(node, date, localeFunc, opts);\n }, Math.min(Math.max(nextInterval(diff), minInterval || 1) * 1000, 0x7fffffff));\n // there is no need to save node in object. Just save the key\n TIMER_POOL[tid] = 0;\n setTimerId(node, tid);\n}\n/**\n * cancel a timer or all timers\n * @param node - node hosting the time string\n */\nexport function cancel(node) {\n // cancel one\n if (node)\n clear(getTimerId(node));\n // cancel all\n // @ts-ignore\n else\n Object.keys(TIMER_POOL).forEach(clear);\n}\n/**\n * render a dom realtime\n * @param nodes\n * @param locale\n * @param opts\n */\nexport function render(nodes, locale, opts) {\n // by .length\n // @ts-ignore\n var nodeList = nodes.length ? nodes : [nodes];\n nodeList.forEach(function (node) {\n run(node, getDateAttribute(node), getLocale(locale), opts || {});\n });\n return nodeList;\n}\n//# sourceMappingURL=realtime.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nimport en_US from './lang/en_US';\nimport zh_CN from './lang/zh_CN';\nimport { register } from './register';\nregister('en_US', en_US);\nregister('zh_CN', zh_CN);\nexport { format } from './format';\nexport { render, cancel } from './realtime';\nexport { register };\n//# sourceMappingURL=index.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { format, cancel, render } from 'timeago.js';\n/**\n * Convert input to a valid datetime string of \n )\n\n }\n\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","import { v4 as uuid } from 'uuid';\nimport equals from 'fast-deep-equal';\n\nexport default class WebAnnotation {\n\n constructor(annotation, opts) {\n this.underlying = annotation;\n this.opts = opts;\n }\n\n /** For convenience - creates an empty web annotation **/\n static create = args => {\n const stub = {\n '@context': 'http://www.w3.org/ns/anno.jsonld',\n 'type': 'Annotation',\n 'id': `#${uuid()}`,\n 'body': []\n };\n\n return new WebAnnotation({ ...stub, ...args });\n }\n\n /** Creates a copy of this annotation **/\n clone = (opt_props, opt_opts) => {\n return new WebAnnotation({ ...this.underlying, ...opt_props}, { ...this.opts, ...opt_opts });\n }\n\n /** An equality check based on the underlying object **/\n isEqual(other) {\n if (other?.type !== 'Annotation') {\n return false;\n } else if (this.underlying === other.underlying) {\n return true;\n } else if (!this.underlying.id || !other.underlying.id) {\n return false;\n } else {\n return equals(this.underlying, other.underlying);\n }\n }\n\n get readOnly() {\n return this.opts?.readOnly;\n }\n\n /*************************************/\n /* Getters to forward properties of */\n /* the underlying annotation */\n /*************************************/\n\n get id() {\n return this.underlying.id;\n }\n\n get context() {\n return this.underlying['@context'];\n }\n\n get type() {\n return this.underlying.type;\n }\n\n get motivation() {\n return this.underlying.motivation;\n }\n\n get body() {\n return this.underlying.body;\n }\n\n get target() {\n return this.underlying.target;\n }\n\n /** Same as .body, but guaranteed to return an array **/\n get bodies() {\n return (Array.isArray(this.underlying.body)) ?\n this.underlying.body : [ this.underlying.body ];\n }\n\n /** Only bodies are meant to be mutated by the application **/\n set bodies(bodies) {\n this.underlying.body = bodies;\n }\n\n /** Same as .target, but guaranteed to return an array **/\n get targets() {\n return (Array.isArray(this.underlying.target)) ?\n this.underlying.target : [ this.underlying.target ];\n }\n\n /*****************************************/\n /* Various access helpers and shorthands */\n /*****************************************/\n\n /** Selector of the given type **/\n selector = type => {\n const { target } = this.underlying;\n\n if (target.selector) {\n // Normalize to array\n const selectors = Array.isArray(target.selector) ?\n target.selector : [ target.selector ];\n\n return selectors.find(s => s.type === type);\n }\n }\n\n /** Shorthand for the 'exact' field of the TextQuoteSelector **/\n get quote() {\n return this.selector('TextQuoteSelector')?.exact;\n }\n\n /** Shorthand for the 'start' field of the TextPositionSelector **/\n get start() {\n return this.selector('TextPositionSelector')?.start;\n }\n\n /** Shorthand for the 'end' field of the TextPositionSelector **/\n get end() {\n return this.selector('TextPositionSelector')?.end;\n }\n\n}\n","import WebAnnotation from './WebAnnotation';\nimport { v4 as uuid } from 'uuid';\nimport equals from 'fast-deep-equal';\n\n/**\n * An \"annotation in draft mode\". Really the same\n * data structure, but as a separate class so we can\n * tell things apart properly.\n */\nexport default class Selection {\n\n constructor(target, body) {\n this.underlying = {\n '@context': 'http://www.w3.org/ns/anno.jsonld',\n type: 'Selection',\n body: body || [],\n target\n }\n }\n\n /** Creates a copy of this selection **/\n clone = opt_props => {\n // Deep-clone\n const cloned = new Selection();\n cloned.underlying = JSON.parse(JSON.stringify(this.underlying));\n\n if (opt_props)\n cloned.underlying = { ...cloned.underlying, ...opt_props };\n\n return cloned;\n }\n\n get context() {\n return this.underlying['@context'];\n }\n\n get type() {\n return this.underlying.type;\n }\n\n get body() {\n return this.underlying.body;\n }\n\n get target() {\n return this.underlying.target;\n }\n\n get targets() {\n return (Array.isArray(this.underlying.target)) ?\n this.underlying.target : [ this.underlying.target ];\n }\n\n /** For consistency with WebAnnotation **/\n isEqual(other) {\n if (!other) {\n return false;\n } else {\n return equals(this.underlying, other.underlying);\n }\n }\n\n get bodies() {\n return (Array.isArray(this.underlying.body)) ?\n this.underlying.body : [ this.underlying.body ];\n }\n\n selector = type => {\n const { target } = this.underlying;\n\n if (target.selector) {\n // Normalize to array\n const selectors = Array.isArray(target.selector) ?\n target.selector : [ target.selector ];\n\n return selectors.find(s => s.type === type);\n }\n }\n\n /** Shorthand for the 'exact' field of the TextQuoteSelector **/\n get quote() {\n return this.selector('TextQuoteSelector')?.exact;\n }\n\n /*******************************************/\n /* Selection-specific properties & methods */\n /*******************************************/\n\n get isSelection() {\n return true;\n }\n\n toAnnotation = () => {\n const a = Object.assign({}, this.underlying, {\n 'type': 'Annotation',\n 'id': `#${uuid()}`\n });\n\n return new WebAnnotation(a);\n }\n\n}\n","/**\n * Difference between server time and client time, in milliseconds\n */\nlet serverTimeDifference = 0;\n\nexport default () => ({\n \n /**\n * A generic container for RecogitoJS/Annotorious \n * to store globally available environment info. The \n * most important piece of information is user auth \n * info. Example:\n *\n * user: { id, displayName, email, avatarURL }\n * \n * id ........... the host application user ID (should be a URI, but could be username) REQUIRED\n * displayName .. screen display or nickname OPTIONAL (id is used when empty)\n * email ........ OPTIONAL\n * avatarURL .... OPTIONAL + not supported at the moment\n */\n\n /**\n * Sets a server time, so we can correct browser time error. \n * Note for the super-picky: client-server latency will introduce\n * an error we don't account for.\n */\n setServerTime: serverNow => {\n const browserNow = Date.now()\n serverTimeDifference = serverNow - browserNow;\n },\n \n /** \n * Returns the current 'server time', i.e. browser time \n * adjusted by the serverTimeDifference value.\n */\n getCurrentTimeAdjusted: () =>\n (new Date(Date.now() + serverTimeDifference)).toISOString(),\n\n /** Re-adjusts the given server timestamp to browser time **/\n toClientTime: serverTime =>\n Date.parse(serverTime) - serverTimeDifference\n\n})","import I18n, { availableLocales } from '../i18n';\n\n/**\n * Helper to init the i18n class with a pre-defined or auto-detected locale.\n */\nexport const setLocale = (locale, opt_messages) => {\n if (locale) {\n const l = locale === 'auto' ?\n window.navigator.userLanguage || window.navigator.language : locale;\n\n const fallback = l.split('-')[0].toLowerCase();\n const foundLocale = [l, fallback].find(_l => availableLocales.includes(_l));\n\n if (!foundLocale) {\n console.warn(`Unsupported locale '${l}'. Falling back to default en.`);\n }\n\n I18n.init(foundLocale, opt_messages);\n } else {\n I18n.init(null, opt_messages);\n }\n}\n","import { Selection } from '@recogito/recogito-client-core';\nimport { SVG_NAMESPACE } from '../../util/SVG';\nimport {\n drawRect,\n drawRectMask,\n setRectSize,\n setRectMaskSize,\n toRectFragment\n} from '../../selectors/RectFragment';\n\n/**\n * A 'rubberband' selection tool for creating a rectangle by\n * clicking and dragging.\n */\nexport default class RubberbandRect {\n\n constructor(anchorX, anchorY, g, config, env) {\n this.anchor = [anchorX, anchorY];\n this.opposite = [anchorX, anchorY];\n\n this.config = config;\n this.env = env;\n\n this.group = document.createElementNS(SVG_NAMESPACE, 'g');\n\n this.mask = drawRectMask(env.image, anchorX, anchorY, 2, 2);\n this.mask.setAttribute('class', 'a9s-selection-mask');\n\n this.rect = drawRect(anchorX, anchorY, 2, 2);\n this.rect.setAttribute('class', 'a9s-selection');\n\n // We make the selection transparent to \n // pointer events because it would interfere with the \n // rendered annotations' mouseleave/enter events\n this.group.style.pointerEvents = 'none';\n\n // Additionally, selection remains hidden until \n // the user actually moves the mouse\n this.group.style.display = 'none';\n\n this.group.appendChild(this.mask);\n this.group.appendChild(this.rect);\n\n g.appendChild(this.group);\n }\n\n get bbox() {\n const w = this.opposite[0] - this.anchor[0];\n const h = this.opposite[1] - this.anchor[1];\n\n return {\n x: w > 0 ? this.anchor[0] : this.opposite[0],\n y: h > 0 ? this.anchor[1] : this.opposite[1],\n w: Math.max(1, Math.abs(w)), // Negative values\n h: Math.max(1, Math.abs(h))\n };\n }\n\n get element() {\n return this.rect;\n }\n\n dragTo = (oppositeX, oppositeY) => {\n // Make visible\n this.group.style.display = null;\n\n this.opposite = [oppositeX, oppositeY];\n const { x, y, w, h } = this.bbox;\n\n setRectMaskSize(this.mask, this.env.image, x, y, w, h);\n setRectSize(this.rect, x, y, w, h);\n }\n\n getBoundingClientRect = () =>\n this.rect.getBoundingClientRect();\n\n toSelection = () => {\n const { x, y, w, h } = this.bbox;\n return new Selection(toRectFragment(x, y, w, h, this.env.image, this.config.fragmentUnit));\n }\n\n destroy = () => {\n this.group.parentNode.removeChild(this.group);\n\n this.mask = null;\n this.rect = null;\n this.group = null;\n }\n\n}","const SIM_EVENTS = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup'\n}\n\nexport const isTouchDevice = () =>\n 'ontouchstart' in window ||\n navigator.maxTouchPoints > 0 ||\n navigator.msMaxTouchPoints > 0;\n\nexport const enableTouchTranslation = el => {\n\n let pressAndHoldTrigger = null;\n\n const simulateEvent = (type, e) => new MouseEvent(type, {\n screenX: e.screenX,\n screenY: e.screenY,\n clientX: e.clientX,\n clientY: e.clientY,\n pageX: e.pageX,\n pageY: e.pageY,\n bubbles: true\n });\n\n const touchHandler = evt => {\n const touch = evt.changedTouches[0];\n const simulatedEvent = simulateEvent(SIM_EVENTS[evt.type], touch);\n\n touch.target.dispatchEvent(simulatedEvent);\n evt.preventDefault();\n\n if (evt.type === 'touchstart' || evt.type === 'touchmove') {\n pressAndHoldTrigger && clearTimeout(pressAndHoldTrigger);\n\n pressAndHoldTrigger = setTimeout(() => {\n const simulatedEvent = simulateEvent('dblclick', touch);\n touch.target.dispatchEvent(simulatedEvent);\n }, 800);\n }\n\n if (evt.type === 'touchend')\n pressAndHoldTrigger && clearTimeout(pressAndHoldTrigger);\n }\n\n el.addEventListener('touchstart', touchHandler, true);\n el.addEventListener('touchmove', touchHandler, true);\n el.addEventListener('touchend', touchHandler, true);\n el.addEventListener('touchcancel', touchHandler, true);\n\n}","import EventEmitter from 'tiny-emitter';\nimport { isTouchDevice } from '../util/Touch';\nimport { SVG_NAMESPACE } from '../util/SVG';\n\nconst IMPLEMENTATION_MISSING = \"An implementation is missing\";\n\nconst isTouch = isTouchDevice();\n\n/**\n * A commmon base class for Tools and EditableShapes\n */\nexport class ToolLike extends EventEmitter {\n\n constructor(g, config, env) {\n super();\n\n this.svg = g.closest('svg');\n\n this.g = g;\n this.config = config;\n this.env = env;\n\n // Default image scale\n this.scale = 1;\n\n // Bit of a hack. If we are dealing with a 'real' image, we enable\n // reponsive mode. OpenSeadragon handles scaling in a different way,\n // so we don't need responsive mode.\n const { image } = env;\n if (image instanceof Element || image instanceof HTMLDocument)\n this.enableResponsive();\n }\n\n /**\n * Implementations MAY extend this (calling super),\n * to destroy SVG elements, mask, etc.\n */\n destroy() {\n if (this.resizeObserver)\n this.resizeObserver.disconnect();\n\n this.resizeObserver = null;\n }\n\n enableResponsive = () => {\n if (window.ResizeObserver) {\n this.resizeObserver = new ResizeObserver(() => {\n const svgBounds = this.svg.getBoundingClientRect();\n const { width, height } = this.svg.viewBox.baseVal;\n\n this.scale = Math.max(\n width / svgBounds.width,\n height / svgBounds.height\n );\n\n if (this.onScaleChanged)\n this.onScaleChanged(this.scale);\n });\n\n this.resizeObserver.observe(this.svg.parentNode);\n }\n }\n\n getSVGPoint = evt => {\n const pt = this.svg.createSVGPoint();\n\n if (isTouch) {\n const bbox = this.svg.getBoundingClientRect();\n\n const x = evt.clientX - bbox.x;\n const y = evt.clientY - bbox.y;\n\n const { left, top } = this.svg.getBoundingClientRect();\n pt.x = x + left;\n pt.y = y + top;\n\n return pt.matrixTransform(this.g.getScreenCTM().inverse());\n } else {\n pt.x = evt.offsetX;\n pt.y = evt.offsetY;\n\n return pt.matrixTransform(this.g.getCTM().inverse());\n }\n }\n\n /*********************************/\n /* Helpers for drawing handles */\n /*********************************/\n\n drawHandle = (x, y) => {\n const containerGroup = document.createElementNS(SVG_NAMESPACE, 'g');\n containerGroup.setAttribute('class', 'a9s-handle');\n\n const group = document.createElementNS(SVG_NAMESPACE, 'g');\n\n const drawCircle = r => {\n const c = document.createElementNS(SVG_NAMESPACE, 'circle');\n c.setAttribute('cx', x);\n c.setAttribute('cy', y);\n c.setAttribute('r', r);\n c.setAttribute('transform-origin', `${x} ${y}`);\n return c;\n }\n\n const radius = this.config.handleRadius || 6;\n\n const inner = drawCircle(radius);\n inner.setAttribute('class', 'a9s-handle-inner')\n\n const outer = drawCircle(radius + 1);\n outer.setAttribute('class', 'a9s-handle-outer')\n\n group.appendChild(outer);\n group.appendChild(inner);\n\n containerGroup.appendChild(group);\n return containerGroup;\n }\n\n setHandleXY = (handle, x, y) => {\n const inner = handle.querySelector('.a9s-handle-inner');\n inner.setAttribute('cx', x);\n inner.setAttribute('cy', y);\n inner.setAttribute('transform-origin', `${x} ${y}`);\n\n const outer = handle.querySelector('.a9s-handle-outer');\n outer.setAttribute('cx', x);\n outer.setAttribute('cy', y);\n outer.setAttribute('transform-origin', `${x} ${y}`);\n }\n\n getHandleXY = handle => {\n const outer = handle.querySelector('.a9s-handle-outer');\n return {\n x: parseFloat(outer.getAttribute('cx')),\n y: parseFloat(outer.getAttribute('cy'))\n }\n }\n\n scaleHandle = handle => {\n const inner = handle.querySelector('.a9s-handle-inner');\n const outer = handle.querySelector('.a9s-handle-outer');\n\n const radius = this.scale * (this.config.handleRadius || 6);\n\n inner.setAttribute('r', radius);\n outer.setAttribute('r', radius);\n }\n\n}\n\n/**\n * Base class that adds some convenience stuff for tool plugins.\n */\nexport default class Tool extends ToolLike {\n\n constructor(g, config, env) {\n super(g, config, env);\n\n // We'll keep a flag set to false until\n // the user has started moving, so we can\n // fire the startSelection event\n this.started = false;\n }\n\n attachListeners = ({ mouseMove, mouseUp, dblClick }) => {\n // Handle SVG conversion on behalf of tool implementations\n if (mouseMove) {\n this.mouseMove = evt => {\n const { x , y } = this.getSVGPoint(evt);\n\n if (!this.started) {\n this.emit('startSelection', { x, y });\n this.started = true;\n }\n\n mouseMove(x, y, evt);\n }\n\n // Mouse move goes on SVG element\n this.svg.addEventListener('mousemove', this.mouseMove);\n }\n\n if (mouseUp) {\n this.mouseUp = evt => {\n if (evt.button !== 0) return; // left click\n const { x , y } = this.getSVGPoint(evt);\n mouseUp(x, y, evt);\n }\n\n // Mouse up goes on doc, so we capture events outside, too\n document.addEventListener('mouseup', this.mouseUp);\n }\n\n if (dblClick) {\n this.dblClick = evt => {\n const { x , y } = this.getSVGPoint(evt);\n dblClick(x, y, evt);\n }\n\n document.addEventListener('dblclick', this.dblClick);\n }\n\n }\n\n detachListeners = () => {\n if (this.mouseMove)\n this.svg.removeEventListener('mousemove', this.mouseMove);\n\n if (this.mouseUp)\n document.removeEventListener('mouseup', this.mouseUp);\n\n if (this.dblClick)\n document.removeEventListener('dblclick', this.dblClick);\n }\n\n /**\n * If startOnSingleClick is true, the tool starts on single click\n * as well as drag. If false, starting strictly requires drag!\n */\n start = (evt, startOnSingleClick) => {\n // Handle SVG conversion on behalf of tool implementations\n const { x , y } = this.getSVGPoint(evt);\n this.startDrawing(x, y, startOnSingleClick, evt);\n }\n\n /**\n * Tool implementations MUST override these\n */\n\n get isDrawing() {\n throw new Error(IMPLEMENTATION_MISSING);\n }\n\n startDrawing = evt => {\n throw new Error(IMPLEMENTATION_MISSING);\n }\n\n createEditableShape = (annotation, formatters) => {\n throw new Error(IMPLEMENTATION_MISSING);\n }\n\n}\n\n// In addition, Tool implementations need to implement the following static methods\n\n// Tool.identifier = '...'\n\nTool.supports = annotation => {\n throw new Error(IMPLEMENTATION_MISSING);\n}\n\n// Just some convenience shortcuts to client-core, for quicker\n// importing in plugins. (In a way, the intention is to make the\n// Tool class serve as a kind of mini-SDK).\nexport { default as Selection } from '@recogito/recogito-client-core/src/Selection';\nexport { default as WebAnnotation } from '@recogito/recogito-client-core/src/WebAnnotation';\n","import { ToolLike } from './Tool';\n\nconst IMPLEMENTATION_MISSING = \"An implementation is missing\";\n\nexport default class EditableShape extends ToolLike {\n\n constructor(annotation, g, config, env) {\n super(g, config, env);\n\n this.annotation = annotation;\n }\n \n /**\n * Implementations MUST override this method!\n * \n * Must return the 'g' element with the a9s-annotation class.\n */\n get element() {\n throw new Error(IMPLEMENTATION_MISSING);\n }\n\n /**\n * Implementations MUST override this method!\n * \n * The annotation argument MUST be used to update\n * the current state of the shape. It MUST NOT\n * be stored as 'this.annotation'! 'this.annotation'\n * MUST remain the original annotation at the time\n * this EditableShape was created, because we will\n * need it again in case the user cancels editing.\n * \n * Thinking of it in React terms, 'this.annotation'\n * has the same purpose as props.annotation, whereas\n * this method affects state.\n */\n updateState = annotation => {\n throw new Error(IMPLEMENTATION_MISSING);\n }\n\n}\n","import { addClass, SVG_NAMESPACE } from './SVG';\n\nconst isFirefox = /firefox/i.test(navigator.userAgent);\n\nconst formatSvgEl = (svgEl, x, y, w, h) => {\n svgEl.setAttribute('width', w);\n svgEl.setAttribute('height', h);\n\n // Argh - Firefox produces broken SVG bounds for nested SVG\n if (isFirefox) {\n svgEl.setAttribute('x', 0);\n svgEl.setAttribute('y', 0);\n svgEl.setAttribute('transform', `translate(${x}, ${y})`); \n } else {\n svgEl.setAttribute('x', x);\n svgEl.setAttribute('y', y);\n }\n}\n\nconst appendFormatterEl = (formatterEl, shape) => {\n const { x, y, width, height } = shape.getBBox();\n\n const svgEl = document.createElementNS(SVG_NAMESPACE, 'svg');\n svgEl.setAttribute('class', 'a9s-formatter-el');\n\n formatSvgEl(svgEl, x, y, width, height);\n\n const g = document.createElementNS(SVG_NAMESPACE, 'g');\n g.appendChild(formatterEl);y\n\n svgEl.appendChild(g);\n \n shape.append(svgEl);\n}\n\n/**\n * A formatter is a user-defined function that takes an annotation as input,\n * and returns either a string, or an object. If a string is returned, this\n * will be appended to the annotation element CSS class list. Otherwise, the\n * object can have the following properties: \n * \n * - 'className' added to the CSS class list\n * - 'data-*' added as data attributes\n * - 'style' a list of CSS styles (in the form of a string) \n */\nexport const format = (shape, annotation, formatters) => {\n // The formatter can be undefined\n if (!formatters)\n return shape;\n\n // Merge outputs from all formatter functions into one object\n const format = formatters.reduce((merged, fn) => {\n const format = fn(annotation);\n\n if (!format)\n return merged;\n\n if (typeof format === 'string' || format instanceof String) {\n merged.className = merged.className ? `${merged.className} ${format}` : format; \n } else if (format.nodeType === Node.ELEMENT_NODE) {\n merged.elements = merged.elements ? [...merged.elements, format] : [format];\n } else {\n const { className, style, element } = format;\n\n if (className)\n merged.className = merged.className ? `${merged.className} ${className}` : className;\n\n if (style)\n merged.style = merged.style ? `${merged.style} ${style}` : style;\n\n if (element)\n merged.elements = merged.elements ? [...merged.elements, element] : [element];\n }\n\n // Copy data attributes\n for (const key in format) {\n if (format.hasOwnProperty(key) && key.startsWith('data-')) {\n merged[key] = format[key];\n }\n }\n\n return merged;\n }, {});\n\n const { className, style, elements } = format;\n\n if (className)\n addClass(shape, className);\n\n if (style) {\n const outer = shape.querySelector('.a9s-outer');\n const inner = shape.querySelector('.a9s-inner');\n\n if (outer && inner) {\n outer.setAttribute('style', 'display:none');\n inner.setAttribute('style', style);\n } else {\n shape.setAttribute('style', style);\n }\n }\n\n if (elements)\n elements.forEach(el => appendFormatterEl(el, shape));\n\n for (const key in format) {\n if (format.hasOwnProperty(key) && key.startsWith('data-')) {\n shape.setAttribute(key, format[key]);\n }\n }\n}\n\nexport const setFormatterElSize = (group, x, y, w, h) => {\n const formatterEl = group.querySelector('.a9s-formatter-el');\n if (formatterEl)\n formatSvgEl(formatterEl, x, y, w, h);\n}","import EditableShape from '../EditableShape';\nimport { SVG_NAMESPACE } from '../../util/SVG';\nimport { format, setFormatterElSize } from '../../util/Formatting';\nimport {\n drawRect,\n drawRectMask,\n parseRectFragment,\n getRectSize,\n setRectSize,\n toRectFragment,\n setRectMaskSize\n} from '../../selectors/RectFragment';\n\n/**\n * An editable rectangle shape.\n */\nexport default class EditableRect extends EditableShape {\n\n constructor(annotation, g, config, env) {\n super(annotation, g, config, env);\n\n this.svg.addEventListener('mousemove', this.onMouseMove);\n this.svg.addEventListener('mouseup', this.onMouseUp);\n\n const { x, y, w, h } = parseRectFragment(annotation, env.image);\n\n // SVG markup for this class looks like this:\n //\n // \n // \n // <-- return this node as .element\n // \n // \n // ... \n // ... \n // ... \n // ... \n // \n // \n\n // 'g' for the editable rect compound shape\n this.containerGroup = document.createElementNS(SVG_NAMESPACE, 'g');\n\n this.mask = drawRectMask(env.image, x, y, w, h);\n this.mask.setAttribute('class', 'a9s-selection-mask');\n this.containerGroup.appendChild(this.mask);\n\n // The 'element' = rectangles + handles\n this.elementGroup = document.createElementNS(SVG_NAMESPACE, 'g');\n this.elementGroup.setAttribute('class', 'a9s-annotation editable selected');\n this.elementGroup.setAttribute('data-id', annotation.id);\n\n this.rectangle = drawRect(x, y, w, h);\n this.rectangle.querySelector('.a9s-inner')\n .addEventListener('mousedown', this.onGrab(this.rectangle));\n\n this.elementGroup.appendChild(this.rectangle);\n\n this.handles = [\n [x, y],\n [x + w, y],\n [x + w, y + h],\n [x, y + h]\n ].map(t => {\n const [x, y] = t;\n const handle = this.drawHandle(x, y);\n\n handle.addEventListener('mousedown', this.onGrab(handle));\n this.elementGroup.appendChild(handle);\n\n return handle;\n });\n\n this.containerGroup.appendChild(this.elementGroup);\n\n g.appendChild(this.containerGroup);\n\n format(this.rectangle, annotation, config.formatters);\n\n // The grabbed element (handle or entire group), if any\n this.grabbedElem = null;\n\n // Mouse xy offset inside the shape, if mouse pressed\n this.mouseOffset = null;\n }\n\n onScaleChanged = () => \n this.handles.map(this.scaleHandle);\n\n setSize = (x, y, w, h) => {\n setRectSize(this.rectangle, x, y, w, h);\n setRectMaskSize(this.mask, this.env.image, x, y, w, h);\n setFormatterElSize(this.elementGroup, x, y, w, h);\n\n const [topleft, topright, bottomright, bottomleft] = this.handles;\n this.setHandleXY(topleft, x, y);\n this.setHandleXY(topright, x + w, y);\n this.setHandleXY(bottomright, x + w, y + h);\n this.setHandleXY(bottomleft, x, y + h);\n }\n\n stretchCorners = (draggedHandleIdx, anchorHandle, mousePos) => {\n const anchor = this.getHandleXY(anchorHandle);\n\n const width = mousePos.x - anchor.x;\n const height = mousePos.y - anchor.y;\n\n const x = width > 0 ? anchor.x : mousePos.x;\n const y = height > 0 ? anchor.y : mousePos.y;\n const w = Math.abs(width);\n const h = Math.abs(height);\n\n setRectSize(this.rectangle, x, y, w, h);\n setRectMaskSize(this.mask, this.env.image, x, y, w, h);\n setFormatterElSize(this.elementGroup, x, y, w, h);\n\n // Anchor (=opposite handle) stays in place, dragged handle moves with mouse\n this.setHandleXY(this.handles[draggedHandleIdx], mousePos.x, mousePos.y);\n\n // Handles left and right of the dragged handle\n const left = this.handles[(draggedHandleIdx + 3) % 4];\n this.setHandleXY(left, anchor.x, mousePos.y);\n\n const right = this.handles[(draggedHandleIdx + 5) % 4];\n this.setHandleXY(right, mousePos.x, anchor.y);\n\n return { x, y, w, h };\n }\n\n onGrab = grabbedElem => evt => {\n if (evt.button !== 0) return; // left click\n this.grabbedElem = grabbedElem;\n const pos = this.getSVGPoint(evt);\n const { x, y } = getRectSize(this.rectangle);\n this.mouseOffset = { x: pos.x - x, y: pos.y - y };\n }\n\n onMouseMove = evt => {\n if (evt.button !== 0) return; // left click\n const constrain = (coord, max) =>\n coord < 0 ? 0 : (coord > max ? max : coord);\n\n if (this.grabbedElem) {\n const pos = this.getSVGPoint(evt);\n\n if (this.grabbedElem === this.rectangle) {\n // x/y changes by mouse offset, w/h remains unchanged\n const { w, h } = getRectSize(this.rectangle);\n\n const { naturalWidth, naturalHeight } = this.env.image;\n\n const x = constrain(pos.x - this.mouseOffset.x, naturalWidth - w);\n const y = constrain(pos.y - this.mouseOffset.y, naturalHeight - h);\n\n this.setSize(x, y, w, h);\n this.emit('update', toRectFragment(x, y, w, h, this.env.image, this.config.fragmentUnit));\n } else {\n // Mouse position replaces one of the corner coords, depending\n // on which handle is the grabbed element\n const handleIdx = this.handles.indexOf(this.grabbedElem);\n const oppositeHandle = handleIdx < 2 ?\n this.handles[handleIdx + 2] : this.handles[handleIdx - 2];\n\n const { x, y, w, h } = this.stretchCorners(handleIdx, oppositeHandle, pos);\n this.emit('update', toRectFragment(x, y, w, h, this.env.image, this.config.fragmentUnit));\n }\n }\n }\n\n onMouseUp = evt => {\n this.grabbedElem = null;\n this.mouseOffset = null;\n }\n\n get element() {\n return this.elementGroup;\n }\n\n updateState = annotation => {\n const { x, y, w, h } = parseRectFragment(annotation, this.env.image);\n this.setSize(x, y, w, h);\n }\n\n destroy() {\n this.containerGroup.parentNode.removeChild(this.containerGroup);\n super.destroy();\n }\n\n}\n","import RubberbandRect from './RubberbandRect';\nimport EditableRect from './EditableRect';\nimport Tool from '../Tool';\n\n/**\n * A rubberband selector for rectangle fragments.\n */\nexport default class RubberbandRectTool extends Tool {\n\n constructor(g, config, env) {\n // Most of the basics are handled in the Tool base class\n super(g, config, env);\n\n this.rubberband = null;\n }\n\n startDrawing = (x, y) => {\n this.attachListeners({\n mouseMove: this.onMouseMove,\n mouseUp: this.onMouseUp\n });\n\n this.rubberband = new RubberbandRect(x, y, this.g, this.config, this.env);\n }\n\n stop = () => {\n if (this.rubberband) {\n this.rubberband.destroy();\n this.rubberband = null;\n }\n }\n\n onMouseMove = (x, y) =>\n this.rubberband.dragTo(x, y);\n \n onMouseUp = () => {\n this.detachListeners();\n this.started = false;\n\n const { width, height } = this.rubberband.getBoundingClientRect();\n\n const minWidth = this.config.minSelectionWidth || 4;\n const minHeight = this.config.minSelectionHeight || 4;\n\n if (width >= minWidth && height >= minHeight) {\n // Emit the SVG shape with selection attached \n const { element } = this.rubberband;\n element.annotation = this.rubberband.toSelection();\n\n // Emit the completed shape...\n this.emit('complete', element);\n } else {\n this.emit('cancel');\n }\n\n this.stop();\n }\n\n get isDrawing() {\n return this.rubberband != null;\n }\n \n createEditableShape = (annotation, formatters) =>\n new EditableRect(annotation, this.g, {...this.config, formatters}, this.env);\n\n}\n\nRubberbandRectTool.identifier = 'rect';\n\nRubberbandRectTool.supports = annotation => {\n const fragmentSelector = annotation.selector('FragmentSelector');\n return fragmentSelector?.conformsTo.startsWith('http://www.w3.org/TR/media-frags');\n}","import { SVG_NAMESPACE } from '../../util/SVG';\n\nexport default class PolygonMask {\n\n constructor(imageDimensions, polygon) {\n this.w = imageDimensions.naturalWidth;\n this.h = imageDimensions.naturalHeight;\n\n this.polygon = polygon;\n\n this.mask = document.createElementNS(SVG_NAMESPACE, 'path');\n this.mask.setAttribute('fill-rule', 'evenodd'); \n this.mask.setAttribute('class', 'a9s-selection-mask');\n\n this.mask.setAttribute('d', `M0 0 h${this.w} v${this.h} h-${this.w} z M${this.polygon.getAttribute('points')} z`);\n }\n\n redraw = () => {\n this.mask.setAttribute('d', `M0 0 h${this.w} v${this.h} h-${this.w} z M${this.polygon.getAttribute('points')} z`);\n }\n\n get element() {\n return this.mask;\n }\n\n destroy = () =>\n this.mask.parentNode.removeChild(this.mask)\n\n}","import { Selection } from '@recogito/recogito-client-core';\nimport { toSVGTarget } from '../../selectors/EmbeddedSVG';\nimport { SVG_NAMESPACE } from '../../util/SVG';\nimport Mask from './PolygonMask';\n\nexport default class RubberbandPolygon {\n\n constructor(anchor, g, env) {\n this.points = [ anchor ];\n this.env = env;\n\n this.mousepos = anchor;\n\n this.group = document.createElementNS(SVG_NAMESPACE, 'g');\n \n this.polygon = document.createElementNS(SVG_NAMESPACE, 'g');\n this.polygon.setAttribute('class', 'a9s-selection');\n\n this.outer = document.createElementNS(SVG_NAMESPACE, 'polygon');\n this.outer.setAttribute('class', 'a9s-outer');\n\n this.inner = document.createElementNS(SVG_NAMESPACE, 'polygon');\n this.inner.setAttribute('class', 'a9s-inner');\n\n this.setPoints(this.points);\n\n this.mask = new Mask(env.image, this.inner);\n\n this.polygon.appendChild(this.outer);\n this.polygon.appendChild(this.inner);\n\n // Additionally, selection remains hidden until \n // the user actually moves the mouse\n this.group.style.display = 'none';\n\n this.group.appendChild(this.mask.element);\n this.group.appendChild(this.polygon);\n\n g.appendChild(this.group);\n }\n\n setPoints = points => {\n const attr = points.map(t => `${t[0]},${t[1]}`).join(' ');\n this.outer.setAttribute('points', attr);\n this.inner.setAttribute('points', attr);\n }\n\n getBoundingClientRect = () =>\n this.outer.getBoundingClientRect();\n\n dragTo = xy => {\n // Make visible\n this.group.style.display = null;\n\n this.mousepos = xy;\n\n const rubberband = [ ...this.points, xy ];\n \n this.setPoints(rubberband);\n this.mask.redraw();\n }\n\n addPoint = () => {\n // Don't add a new point if distance < 2 pixels\n const [x, y] = this.mousepos;\n const lastCorner = this.points[this.points.length - 1];\n const dist = Math.pow(x - lastCorner[0], 2) + Math.pow(y - lastCorner[1], 2);\n \n if (dist > 4) {\n this.points = [ ...this.points, this.mousepos];\n this.setPoints(this.points); \n this.mask.redraw();\n }\n }\n\n get element() {\n return this.polygon;\n }\n\n destroy = () => {\n this.group.parentNode.removeChild(this.group);\n this.polygon = null; \n this.group = null;\n }\n\n toSelection = () => {\n return new Selection(toSVGTarget(this.group, this.env.image));\n }\n\n}\n","import EditableShape from '../EditableShape';\nimport { drawEmbeddedSVG, svgFragmentToShape, toSVGTarget } from '../../selectors/EmbeddedSVG';\nimport { SVG_NAMESPACE } from '../../util/SVG';\nimport { format, setFormatterElSize } from '../../util/Formatting';\nimport Mask from './PolygonMask';\n\nconst getPoints = shape => {\n // Could just be Array.from(shape.querySelector('.inner').points) but...\n // IE11 :-(\n const pointList = shape.querySelector('.a9s-inner').points;\n const points = [];\n\n for (let i=0; i\n shape.querySelector('.a9s-inner').getBBox();\n\n/**\n * An editable polygon shape.\n */\nexport default class EditablePolygon extends EditableShape {\n\n constructor(annotation, g, config, env) {\n super(annotation, g, config, env);\n\n this.svg.addEventListener('mousemove', this.onMouseMove);\n this.svg.addEventListener('mouseup', this.onMouseUp);\n\n // SVG markup for this class looks like this:\n //\n // \n // \n // <-- return this node as .element\n // \n // \n // ... \n // ... \n // ... \n // ...\n // \n // \n\n // 'g' for the editable polygon compound shape\n this.containerGroup = document.createElementNS(SVG_NAMESPACE, 'g');\n\n this.shape = drawEmbeddedSVG(annotation);\n this.shape.querySelector('.a9s-inner')\n .addEventListener('mousedown', this.onGrab(this.shape));\n\n this.mask = new Mask(env.image, this.shape.querySelector('.a9s-inner'));\n\n this.containerGroup.appendChild(this.mask.element);\n\n this.elementGroup = document.createElementNS(SVG_NAMESPACE, 'g');\n this.elementGroup.setAttribute('class', 'a9s-annotation editable selected');\n this.elementGroup.setAttribute('data-id', annotation.id);\n this.elementGroup.appendChild(this.shape);\n\n this.handles = getPoints(this.shape).map(pt => {\n const handle = this.drawHandle(pt.x, pt.y);\n handle.addEventListener('mousedown', this.onGrab(handle));\n this.elementGroup.appendChild(handle);\n return handle;\n });\n\n this.containerGroup.appendChild(this.elementGroup);\n g.appendChild(this.containerGroup);\n\n format(this.shape, annotation, config.formatters);\n\n // The grabbed element (handle or entire shape), if any\n this.grabbedElem = null;\n\n // Mouse grab point\n this.grabbedAt = null;\n }\n\n onScaleChanged = () => \n this.handles.map(this.scaleHandle);\n\n setPoints = (points) => {\n // Not using .toFixed(1) because that will ALWAYS\n // return one decimal, e.g. \"15.0\" (when we want \"15\")\n const round = num =>\n Math.round(10 * num) / 10;\n\n const str = points.map(pt => `${round(pt.x)},${round(pt.y)}`).join(' ');\n\n const inner = this.shape.querySelector('.a9s-inner');\n inner.setAttribute('points', str);\n\n const outer = this.shape.querySelector('.a9s-outer');\n outer.setAttribute('points', str);\n\n this.mask.redraw();\n\n const { x, y, width, height } = outer.getBBox();\n setFormatterElSize(this.elementGroup, x, y, width, height);\n }\n\n onGrab = grabbedElem => evt => {\n if (evt.button !== 0) return; // left click\n this.grabbedElem = grabbedElem;\n this.grabbedAt = this.getSVGPoint(evt);\n }\n\n onMouseMove = evt => {\n const constrain = (coord, delta, max) =>\n coord + delta < 0 ? -coord : (coord + delta > max ? max - coord : delta);\n\n if (this.grabbedElem) {\n const pos = this.getSVGPoint(evt);\n\n if (this.grabbedElem === this.shape) {\n const { x, y, width, height } = getBBox(this.shape);\n\n const { naturalWidth, naturalHeight } = this.env.image;\n\n const dx = constrain(x, pos.x - this.grabbedAt.x, naturalWidth - width);\n const dy = constrain(y, pos.y - this.grabbedAt.y, naturalHeight - height);\n\n const updatedPoints = getPoints(this.shape).map(pt =>\n ({ x: pt.x + dx, y: pt.y + dy }));\n\n this.grabbedAt = pos;\n\n this.setPoints(updatedPoints);\n updatedPoints.forEach((pt, idx) => this.setHandleXY(this.handles[idx], pt.x, pt.y));\n\n this.emit('update', toSVGTarget(this.shape, this.env.image));\n } else {\n const handleIdx = this.handles.indexOf(this.grabbedElem);\n\n const updatedPoints = getPoints(this.shape).map((pt, idx) =>\n (idx === handleIdx) ? pos : pt);\n\n this.setPoints(updatedPoints);\n this.setHandleXY(this.handles[handleIdx], pos.x, pos.y);\n\n this.emit('update', toSVGTarget(this.shape, this.env.image));\n }\n }\n }\n\n onMouseUp = evt => {\n this.grabbedElem = null;\n this.grabbedAt = null;\n }\n\n get element() {\n return this.elementGroup;\n }\n\n updateState = annotation => {\n const points = svgFragmentToShape(annotation)\n .getAttribute('points')\n .split(' ') // Split x/y tuples\n .map(xy => { \n const [ x, y ] = xy.split(',').map(str => parseFloat(str.trim()));\n return { x, y };\n });\n \n this.setPoints(points);\n points.forEach((pt, idx) => this.setHandleXY(this.handles[idx], pt.x, pt.y));\n }\n\n destroy = () => {\n this.containerGroup.parentNode.removeChild(this.containerGroup);\n super.destroy();\n }\n\n}\n","import RubberbandPolygon from './RubberbandPolygon';\nimport EditablePolygon from './EditablePolygon';\nimport Tool from '../Tool';\n\n/**\n * A rubberband selector for polygon fragments.\n */\nexport default class RubberbandPolygonTool extends Tool {\n\n constructor(g, config, env) {\n super(g, config, env);\n\n this._isDrawing = false;\n this._startOnSingleClick = false;\n }\n\n startDrawing = (x, y, startOnSingleClick) => {\n this._isDrawing = true;\n this._startOnSingleClick = startOnSingleClick;\n\n this.attachListeners({\n mouseMove: this.onMouseMove,\n mouseUp: this.onMouseUp,\n dblClick: this.onDblClick\n });\n \n this.rubberband = new RubberbandPolygon([ x, y ], this.g, this.env);\n }\n\n stop = () => {\n this.detachListeners();\n \n this._isDrawing = false;\n\n if (this.rubberband) {\n this.rubberband.destroy();\n this.rubberband = null;\n }\n }\n\n onMouseMove = (x, y) =>\n this.rubberband.dragTo([ x, y ]);\n\n onMouseUp = () => {\n const { width, height } = this.rubberband.getBoundingClientRect();\n\n const minWidth = this.config.minSelectionWidth || 4;\n const minHeight = this.config.minSelectionHeight || 4;\n \n if (width >= minWidth || height >= minHeight) {\n this.rubberband.addPoint();\n } else if (!this._startOnSingleClick) {\n this.emit('cancel');\n this.stop();\n }\n }\n\n onDblClick = () => {\n this._isDrawing = false;\n\n const shape = this.rubberband.element;\n shape.annotation = this.rubberband.toSelection();\n this.emit('complete', shape);\n\n this.stop();\n }\n\n get isDrawing() {\n return this._isDrawing;\n }\n\n createEditableShape = (annotation, formatters) =>\n new EditablePolygon(annotation, this.g, {...this.config, formatters}, this.env);\n\n}\n\nRubberbandPolygonTool.identifier = 'polygon';\n\nRubberbandPolygonTool.supports = annotation => {\n const selector = annotation.selector('SvgSelector');\n if (selector)\n return selector.value?.match(/^\n this._registered.map(impl => impl.identifier);\n\n registerTool = impl => {\n // If there's a tool with the same ID, replace\n const id = impl.identifier;\n if (this.listTools().includes(id))\n this.unregisterTool(id);\n\n this._registered.unshift(impl);\n }\n\n unregisterTool = id =>\n this._registered = this._registered.filter(impl => impl.identifier !== id);\n\n /** \n * Sets a drawing tool by providing an implementation, or the ID\n * of a built-in toll.\n */\n setCurrent = toolOrId => {\n if (this._current)\n this._current.destroy();\n \n const Tool = (typeof toolOrId === 'string' || toolOrId instanceof String) ?\n this._registered.find(impl => impl.identifier === toolOrId) :\n toolOrId;\n\n this._current = new Tool(this._g, this._config, this._env);\n this._current.on('startSelection', pt => this.emit('startSelection', pt));\n this._current.on('complete', evt => this.emit('complete', evt));\n this._current.on('cancel', evt => this.emit('cancel', evt));\n }\n\n forAnnotation = annotation => {\n // First target\n const [ target, ..._ ] = annotation.targets;\n const renderedVia = target.renderedVia?.name;\n\n const Tool = renderedVia ?\n this._registered.find(impl => impl.identifier === renderedVia) :\n this._registered.find(impl => impl.supports(annotation));\n\n return Tool ? new Tool(this._g, this._config, this._env) : null;\n }\n\n get current() {\n return this._current;\n }\n \n}","import { SVG_NAMESPACE } from './util/SVG';\n\nexport default class Crosshair {\n\n constructor(layerGroup, width, height) {\n this.svg = layerGroup.closest('svg');\n\n this.g = document.createElementNS(SVG_NAMESPACE, 'g');\n this.g.setAttribute('class', 'a9s-crosshair');\n\n const h = document.createElementNS(SVG_NAMESPACE, 'line');\n const v = document.createElementNS(SVG_NAMESPACE, 'line');\n\n this.g.appendChild(h);\n this.g.appendChild(v);\n\n layerGroup.appendChild(this.g);\n \n const getSVGPoint = evt => {\n const bbox = this.svg.getBoundingClientRect();\n \n const x = evt.clientX - bbox.x;\n const y = evt.clientY - bbox.y;\n \n const pt = this.svg.createSVGPoint();\n \n const { left, top } = this.svg.getBoundingClientRect();\n pt.x = x + left;\n pt.y = y + top;\n \n return pt.matrixTransform(layerGroup.getScreenCTM().inverse());\n }\n\n this.svg.parentElement.addEventListener('pointermove', evt => {\n const { x, y } = getSVGPoint(evt);\n\n h.setAttribute('x1', 0);\n h.setAttribute('y1', y);\n h.setAttribute('x2', width);\n h.setAttribute('y2', y);\n\n v.setAttribute('x1', x);\n v.setAttribute('y1', 0);\n v.setAttribute('x2', x);\n v.setAttribute('y2', height);\n });\n }\n\n}\n","import { hasClass } from './SVG';\n\nexport const getSnippet = (image, element) => {\n const shape = hasClass(element, '.a9s-annotation') ? \n element : element.closest('.a9s-annotation');\n\n const outer = shape.querySelector('.a9s-outer');\n\n const kx = image.naturalWidth / image.width;\n const ky = image.naturalHeight / image.height;\n\n const imageBounds = image.getBoundingClientRect();\n const outerBounds = outer.getBoundingClientRect();\n\n const x = outerBounds.x - imageBounds.x;\n const y = outerBounds.y - imageBounds.y;\n const { width, height } = outerBounds;\n\n // Cut out the image snippet as in-memory canvas element\n const snippet = document.createElement('CANVAS');\n const ctx = snippet.getContext('2d');\n snippet.width = width * kx;\n snippet.height = height * ky;\n ctx.drawImage(image, x * kx, y * ky, width * kx, height * ky, 0, 0, width * kx, height * ky);\n\n return {\n snippet,\n transform: xy => {\n const px = x * kx + xy[0];\n const py = y * ky + xy[1];\n return [ px, py ];\n }\n };\n}","import EventEmitter from 'tiny-emitter';\nimport { drawShape, shapeArea } from './selectors';\nimport { SVG_NAMESPACE, addClass, hasClass, removeClass } from './util/SVG';\nimport DrawingTools from './tools/ToolsRegistry';\nimport Crosshair from './Crosshair';\nimport { format } from './util/Formatting';\nimport { getSnippet } from './util/ImageSnippet';\nimport { isTouchDevice, enableTouchTranslation } from './util/Touch';\n\nconst isTouch = isTouchDevice();\n\nexport default class AnnotationLayer extends EventEmitter {\n\n constructor(props) {\n super();\n\n const { wrapperEl, config, env } = props;\n\n this.imageEl = env.image;\n\n this.readOnly = config.readOnly;\n\n // Deprecate the old 'formatter' option \n if (config.formatter)\n this.formatters = [ config.formatter ];\n else if (config.formatters)\n this.formatters = Array.isArray(config.formatters) ? config.formatters : [ config.formatters ];\n \n this.disableSelect = config.disableSelect;\n this.drawOnSingleClick = config.drawOnSingleClick; \n\n // Annotation layer SVG element\n this.svg = document.createElementNS(SVG_NAMESPACE, 'svg');\n this.svg.setAttribute('tabindex', 0);\n\n if (isTouch) {\n this.svg.setAttribute('class', 'a9s-annotationlayer touch');\n\n // Translates touch events to simulated mouse events\n enableTouchTranslation(this.svg);\n\n // Adds additional logic because touch doesn't have hover\n this.svg.addEventListener('touchstart', () => {\n this.currentHover = null;\n this.selectCurrentHover();\n });\n } else {\n this.svg.setAttribute('class', 'a9s-annotationlayer');\n }\n\n const { naturalWidth, naturalHeight } = this.imageEl;\n\n if (!naturalWidth && !naturalHeight) {\n // Might be because a) the image has not loaded yet, or b) because it's not \n // an image element (but maybe a CANVAS etc.)! Allow for both possibilities.\n const { width, height } = this.imageEl;\n this.svg.setAttribute('viewBox', `0 0 ${width} ${height}`);\n\n // Plus: monkey-patch the element (won't work for images)\n if(this.imageEl.nodeName.toLowerCase() !== 'img') {\n this.imageEl.naturalWidth = width;\n this.imageEl.naturalHeight = height;\n }\n\n this.imageEl.addEventListener('load', () => {\n this.emit('load', this.imageEl.src);\n this.svg.setAttribute('viewBox', `0 0 ${this.imageEl.naturalWidth} ${this.imageEl.naturalHeight}`)\n });\n } else {\n this.svg.setAttribute('viewBox', `0 0 ${naturalWidth} ${naturalHeight}`);\n }\n\n // Don't attach directly, but in a group\n this.g = document.createElementNS(SVG_NAMESPACE, 'g');\n\n this.svg.appendChild(this.g);\n wrapperEl.appendChild(this.svg);\n\n if (config.crosshair) {\n this.crosshair = new Crosshair(this.g, naturalWidth, naturalHeight);\n addClass(this.svg, 'no-cursor');\n }\n\n this.selectedShape = null;\n\n this.tools = new DrawingTools(this.g, config, env);\n this.tools.on('startSelection', pt => this.emit('startSelection', pt));\n this.tools.on('cancel', this.selectCurrentHover);\n this.tools.on('complete', this.selectShape);\n\n this.svg.addEventListener('mousedown', this._onMouseDown);\n\n this.currentHover = null;\n\n // On image resize...\n if (window.ResizeObserver) {\n this.resizeObserver = new ResizeObserver(() => {\n // ...counter-scale non-scaling annotations...\n this._refreshNonScalingAnnotations();\n\n // ...and resize formatter elements (shape labels etc.)\n this._scaleFormatterElements();\n });\n\n this.resizeObserver.observe(this.svg.parentNode);\n }\n }\n\n _attachMouseListeners = (elem, annotation) => {\n elem.addEventListener('mouseenter', () => {\n if (!this.tools?.current?.isDrawing) {\n if (this.currentHover !== elem)\n this.emit('mouseEnterAnnotation', annotation, elem);\n\n this.currentHover = elem;\n }\n });\n\n elem.addEventListener('mouseleave', () => {\n if (!this.tools?.current?.isDrawing) {\n this.emit('mouseLeaveAnnotation', annotation, elem);\n this.currentHover = null;\n }\n });\n\n if (isTouch) {\n elem.addEventListener('touchstart', evt => {\n evt.stopPropagation();\n this.currentHover = elem;\n });\n\n elem.addEventListener('touchend', evt => {\n const { clientX, clientY } = evt.changedTouches[0];\n const realTarget = document.elementFromPoint(clientX, clientY);\n evt.stopPropagation();\n\n if (elem.contains(realTarget)) {\n this.currentHover = elem;\n this.selectCurrentHover();\n }\n });\n }\n }\n\n /**\n * Helper - executes immediately if the image is loaded,\n * or defers to image.onload if not\n */\n _lazy = fn => { \n if (this.imageEl.naturalWidth)\n fn();\n else \n this.imageEl.addEventListener('load', () => fn());\n }\n\n _onMouseDown = evt => {\n if (evt.button !== 0) return; // Left click\n\n if (!(this.readOnly || this.selectedShape || this.tools.current.isDrawing)) {\n // No active selection & not drawing now? Start drawing.\n this.tools.current.start(evt, this.drawOnSingleClick && !this.currentHover);\n } else if (!this.tools?.current?.isDrawing && this.selectedShape !== this.currentHover) {\n // Not drawing and another shape was clicked? Select.\n this.selectCurrentHover();\n }\n }\n\n _refreshNonScalingAnnotations = () => {\n const scale = this.getCurrentScale();\n \n // This happens after .destroy(), when this.svg still exists,\n // but has 0x0 size!\n if (scale === Infinity)\n return;\n\n Array.from(this.svg.querySelectorAll('.a9s-non-scaling')).forEach(shape => {\n shape.setAttribute('transform', `scale(${scale})`);\n });\n }\n\n _scaleFormatterElements = opt_shape => {\n const scale = this.getCurrentScale();\n\n if (scale === Infinity)\n return;\n\n if (opt_shape) {\n const el = opt_shape.querySelector('.a9s-formatter-el');\n if (el)\n el.firstChild.setAttribute('transform', `scale(${scale})`);\n } else {\n const elements = Array.from(this.g.querySelectorAll('.a9s-formatter-el'));\n elements.forEach(el =>\n el.firstChild.setAttribute('transform', `scale(${scale})`));\n }\n }\n\n addAnnotation = annotation => {\n const g = drawShape(annotation, this.imageEl);\n\n addClass(g, 'a9s-annotation');\n g.setAttribute('data-id', annotation.id);\n\n g.annotation = annotation;\n\n this._attachMouseListeners(g, annotation);\n this.g.appendChild(g);\n\n format(g, annotation, this.formatters);\n this._scaleFormatterElements(g);\n\n return g;\n }\n\n addDrawingTool = plugin =>\n this.tools?.registerTool(plugin);\n\n addOrUpdateAnnotation = (annotation, previous) => {\n if (this.selectedShape && (this.selectedShape.annotation.isEqual(annotation) || this.selectedShape.annotation.isEqual(previous))) {\n this.deselect();\n this.emit('select', {});\n }\n\n if (previous)\n this.removeAnnotation(previous);\n\n this.removeAnnotation(annotation);\n\n const shape = this.addAnnotation(annotation);\n \n // Counter-scale non-scaling annotations\n if (hasClass(shape, 'a9s-non-scaling'))\n shape.setAttribute('transform', `scale(${this.getCurrentScale()})`);\n\n // Make sure rendering order is large-to-small\n this.redraw();\n }\n\n deselect = skipRedraw => {\n if (this.selectedShape) {\n this.tools?.current.stop();\n\n const { annotation } = this.selectedShape;\n\n if (this.selectedShape.destroy) {\n // Modifiable shape: destroy and re-add the annotation\n this.selectedShape.destroy();\n this.selectedShape = null;\n\n if (!annotation.isSelection) {\n this.addAnnotation(annotation);\n\n if (!skipRedraw)\n this.redraw();\n }\n } else {\n // Not modifiable - just clear\n removeClass(this.selectedShape, 'selected');\n this.selectedShape = null;\n }\n }\n }\n\n destroy = () => {\n this.deselect();\n this.currentHover = null;\n this.svg.parentNode.removeChild(this.svg);\n }\n\n findShape = annotationOrId => {\n const id = annotationOrId?.id ? annotationOrId.id : annotationOrId;\n return this.g.querySelector(`.a9s-annotation[data-id=\"${id}\"]`);\n }\n\n getAnnotations = () => {\n const shapes = Array.from(this.g.querySelectorAll('.a9s-annotation'));\n return shapes.map(s => s.annotation);\n }\n\n getCurrentScale = () => {\n const svgBounds = this.svg.getBoundingClientRect();\n const { width, height } = this.svg.viewBox.baseVal;\n\n return Math.max(\n width / svgBounds.width,\n height / svgBounds.height\n );\n }\n\n getSelectedImageSnippet = () => {\n if (this.selectedShape) {\n const element = this.selectedShape.element || this.selectedShape;\n return getSnippet(this.imageEl, element);\n }\n }\n\n init = annotations => {\n // Clear existing\n this.deselect();\n this.currentHover = null;\n\n const shapes = Array.from(this.g.querySelectorAll('.a9s-annotation'));\n shapes.forEach(s => this.g.removeChild(s));\n\n // Add\n this._lazy(() => {\n annotations.sort((a, b) => shapeArea(b, this.imageEl) - shapeArea(a, this.imageEl));\n annotations.forEach(this.addAnnotation);\n });\n\n // Counter-scale non-scaling annotations\n this._refreshNonScalingAnnotations();\n }\n\n listDrawingTools = () =>\n this.tools?.listTools();\n\n /**\n * Forces a new ID on the annotation with the given ID.\n * @returns the updated annotation for convenience\n */\n overrideId = (originalId, forcedId) => {\n // Update SVG shape data attribute\n const shape = this.findShape(originalId);\n shape.setAttribute('data-id', forcedId);\n\n // Update annotation\n const { annotation } = shape;\n\n const updated = annotation.clone({ id : forcedId });\n shape.annotation = updated;\n\n return updated;\n }\n\n /**\n * Redraws the whole layer with annotations sorted by\n * size, so that larger ones don't occlude smaller ones.\n */\n redraw = () => {\n const shapes = Array.from(this.g.querySelectorAll('.a9s-annotation:not(.selected)'));\n\n const annotations = shapes.map(s => s.annotation);\n annotations.sort((a, b) => shapeArea(b, this.imageEl) - shapeArea(a, this.imageEl));\n\n // Clear the SVG element\n shapes.forEach(s => this.g.removeChild(s));\n\n // Redraw\n annotations.forEach(this.addAnnotation);\n }\n\n removeAnnotation = annotationOrId => {\n // Removal won't work if the annotation is currently selected - deselect!\n const id = annotationOrId.type ? annotationOrId.id : annotationOrId;\n\n if (this.selectedShape?.annotation.id === id)\n this.deselect();\n\n const toRemove = this.findShape(annotationOrId);\n\n if (toRemove) {\n if (this.selectedShape?.annotation === toRemove.annotation)\n this.deselect();\n\n if (this.currentHover?.annotation === toRemove.annotation)\n this.currentHover = null;\n\n toRemove.parentNode.removeChild(toRemove);\n }\n }\n\n removeDrawingTool = id =>\n this.tools?.unregisterTool(id);\n\n /**\n * Programmatic selection via the API. Should work as normal,\n * but the selectAnnotation event should not be fired to the outside.\n */\n selectAnnotation = (annotationOrId, skipEvent) => {\n // Deselect first\n if (this.selectedShape)\n this.deselect();\n\n const selected = this.findShape(annotationOrId);\n\n if (selected) {\n this.selectShape(selected, skipEvent);\n\n const element = this.selectedShape.element ?\n this.selectedShape.element : this.selectedShape;\n\n return { annotation: selected.annotation, element };\n } else {\n this.deselect();\n }\n }\n\n selectCurrentHover = () => {\n if (this.currentHover) {\n if (this.disableSelect) {\n // Click only - no select\n this.emit('clickAnnotation', this.currentHover.annotation, this.currentHover);\n } else {\n this.selectShape(this.currentHover);\n }\n } else {\n this.deselect();\n this.emit('select', { skipEvent: true });\n }\n }\n\n selectShape = (shape, skipEvent) => {\n if (!skipEvent && !shape.annotation.isSelection)\n this.emit('clickAnnotation', shape.annotation, shape);\n \n // Don't re-select\n if (this.selectedShape?.annotation === shape.annotation)\n return;\n\n // If another shape is currently selected, deselect first\n if (this.selectedShape && this.selectedShape.annotation !== shape.annotation) {\n this.deselect(true);\n }\n\n const { annotation } = shape;\n\n const readOnly = this.readOnly || annotation.readOnly;\n\n if (!readOnly) {\n const toolForAnnotation = this.tools.forAnnotation(annotation);\n\n // Replace the shape with an editable version\n if (toolForAnnotation) {\n shape.parentNode.removeChild(shape);\n this.selectedShape = toolForAnnotation.createEditableShape(annotation, this.formatters);\n\n // Yikes... hack to make the tool act like SVG annotation shapes - needs redesign\n this.selectedShape.element.annotation = annotation;\n \n this._scaleFormatterElements(this.selectedShape.element);\n\n this.selectedShape.on('update', fragment => {\n if (this.selectedShape)\n this.emit('updateTarget', this.selectedShape.element, fragment);\n });\n\n // If we attach immediately 'mouseEnter' will fire when the editable shape\n // is added to the DOM!\n setTimeout(() => {\n if (this.selectedShape)\n this._attachMouseListeners(this.selectedShape.element, annotation);\n\n // Bit of a hack...\n // We need to make the selection the current hover manually (because \n // 'mouseEnter' won't have fired. But ONLY if the selection was not\n // done programmatically (which was the case for 'skipEvent')\n if (!skipEvent)\n this.currentHover = this.selectedShape?.element;\n }, 1);\n } else {\n this.selectedShape = shape;\n }\n\n if (!skipEvent)\n this.emit('select', { annotation, element: this.selectedShape.element || this.selectedShape });\n } else {\n addClass(shape, 'selected');\n this.selectedShape = shape;\n\n if (!skipEvent)\n this.emit('select', { annotation, element: shape, skipEvent });\n }\n }\n\n setDrawingTool = shape => {\n if (this.tools) {\n this.tools.current?.stop();\n this.tools.setCurrent(shape);\n }\n }\n\n setVisible = visible => {\n if (visible) {\n this.svg.style.display = null;\n } else {\n this.deselect();\n this.svg.style.display = 'none';\n }\n }\n\n stopDrawing = () => {\n this.tools?.current?.stop();\n }\n\n}\n","var r=require(\"preact\"),_=0;function e(e,o,n,t,l){var u,f,i={};for(f in o)\"ref\"==f?u=o[f]:i[f]=o[f];var p={type:e,props:i,key:n,ref:u,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:--_,__source:t,__self:l};if(\"function\"==typeof e&&(u=e.defaultProps))for(f in u)void 0===i[f]&&(i[f]=u[f]);return r.options.vnode&&r.options.vnode(p),p}exports.Fragment=r.Fragment,exports.jsx=e,exports.jsxs=e,exports.jsxDEV=e;\n//# sourceMappingURL=jsxRuntime.js.map\n","import * as jsxRuntime from \"/home/rainers/Workspaces/recogito/annotorious/node_modules/preact/jsx-runtime/dist/jsxRuntime.js\"\nexport const jsx = jsxRuntime.jsx\nexport const jsxs = jsxRuntime.jsxs\nexport const Fragment = jsxRuntime.Fragment","import React, { Component } from 'react';\nimport AnnotationLayer from './AnnotationLayer';\nimport { Editor } from '@recogito/recogito-client-core';\nimport { getSnippet } from './util/ImageSnippet';\n\nimport './ImageAnnotator.scss';\n\nexport default class ImageAnnotator extends Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n selectedAnnotation: null,\n selectedDOMElement: null,\n modifiedTarget: null,\n\n // ReadOnly mode\n readOnly: this.props.config.readOnly,\n\n // Headless mode\n editorDisabled: this.props.config.disableEditor,\n\n // Widgets\n widgets: this.props.config.widgets,\n\n // Records the state before any potential headless modify (done via\n // .updateSelected) so we can properly fire the updateAnnotation(a, previous)\n // event, and distinguish between headless Save and Cancel\n beforeHeadlessModify: null\n }\n\n this._editor = React.createRef();\n }\n\n /** Shorthand **/\n clearState = opt_callback => this.setState({\n selectedAnnotation: null,\n selectedDOMElement: null,\n modifiedTarget: null,\n beforeHeadlessModify: null\n }, opt_callback);\n\n componentDidMount() {\n this.annotationLayer = new AnnotationLayer(this.props);\n\n this.annotationLayer.on('load', this.props.onLoad);\n\n this.annotationLayer.on('startSelection', this.handleStartSelect);\n this.annotationLayer.on('select', this.handleSelect);\n\n this.annotationLayer.on('updateTarget', this.handleUpdateTarget);\n\n this.forwardEvent('clickAnnotation','onClickAnnotation');\n this.forwardEvent('mouseEnterAnnotation', 'onMouseEnterAnnotation');\n this.forwardEvent('mouseLeaveAnnotation','onMouseLeaveAnnotation');\n \n // Escape cancels editing\n document.addEventListener('keyup', this.onKeyUp);\n }\n\n forwardEvent = (from, to) => {\n this.annotationLayer.on(from, (annotation, elem) => {\n this.props[to](annotation.clone(), elem);\n });\n }\n\n componentWillUnmount() {\n this.annotationLayer.destroy();\n document.removeEventListener('keyup', this.onKeyUp);\n }\n\n onKeyUp = evt => {\n if (evt.which === 27) { // Escape\n this.annotationLayer.stopDrawing();\n \n const { selectedAnnotation } = this.state;\n if (selectedAnnotation) {\n this.cancelSelected();\n this.props.onCancelSelected(selectedAnnotation);\n }\n } else if (evt.which === 46) { // Delete\n const { selectedAnnotation } = this.state;\n if (selectedAnnotation) {\n if (selectedAnnotation.isSelection) {\n this.onCancelAnnotation(selectedAnnotation);\n } else {\n this.onDeleteAnnotation(selectedAnnotation);\n }\n }\n }\n }\n\n handleStartSelect = pt =>\n this.props.onSelectionStarted(pt);\n\n handleSelect = (evt, skipEvent) => {\n this.state.editorDisabled ?\n this.onHeadlessSelect(evt, skipEvent) : this.onNormalSelect(evt, skipEvent);\n }\n\n /** Selection when editorDisabled == false **/\n onNormalSelect = (evt, skipEvent) => {\n const { annotation, element } = evt;\n\n if (annotation) {\n // Select action needs to run immediately if no annotation was\n // selected before. Otherwise, make a deselect state change first,\n // and then select after this state change has completed. (This is\n // keep our external event cycle clean!)\n const select = opt_callback => {\n this.setState({\n selectedAnnotation: annotation,\n selectedDOMElement: element,\n modifiedTarget: null,\n beforeHeadlessModify: null\n }, () => {\n if (!skipEvent) {\n if (annotation.isSelection) {\n this.props.onSelectionCreated(annotation.clone());\n } else {\n this.props.onAnnotationSelected(annotation.clone(), element);\n }\n }\n\n opt_callback && opt_callback();\n });\n }\n\n // If there is another selected annotation,\n // fire cancel before making the new selection\n const { selectedAnnotation } = this.state;\n\n if (selectedAnnotation && !selectedAnnotation.isEqual(annotation)) {\n this.clearState(() => {\n this.props.onCancelSelected(selectedAnnotation.clone());\n select(() =>\n this.props.onChangeSelected(annotation.clone(), selectedAnnotation.clone()));\n });\n } else {\n select();\n }\n } else {\n const { selectedAnnotation } = this.state;\n\n if (selectedAnnotation)\n this.clearState(() => {\n this.props.onCancelSelected(selectedAnnotation);\n });\n else\n this.clearState();\n }\n }\n\n /** Selection when editorDisabled == true **/\n onHeadlessSelect = (evt, skipEvent) => {\n // When in headless mode, changing selection acts as 'Ok' - changes\n // to the previous annotation are stored! (In normal mode, selection\n // acts as 'Cancel'.)\n this.saveSelected().then(() => {\n this.onNormalSelect(evt, skipEvent);\n\n // saveSelected will have deselected - we need to re-select\n const { annotation } = evt;\n\n if (annotation && !annotation.isSelection) {\n const selection = this.annotationLayer.selectAnnotation(evt.annotation, true);\n this.setState({ selectedDOMElement: selection.element });\n }\n });\n }\n\n handleUpdateTarget = (selectedDOMElement, modifiedTarget) => {\n this.setState({ selectedDOMElement, modifiedTarget });\n\n const clone = JSON.parse(JSON.stringify(modifiedTarget));\n this.props.onSelectionTargetChanged(clone);\n }\n\n /**\n * A convenience method that allows the external application to\n * override the autogenerated Id for an annotation.\n */\n overrideAnnotationId = originalAnnotation => forcedId => {\n const { id } = originalAnnotation;\n\n // Force the editor to close first, otherwise there's a risk of orphaned annotation\n if (this.state.selectedAnnotation) {\n this.clearState(() => {\n this.annotationLayer.overrideId(id, forcedId);\n });\n } else {\n this.annotationLayer.overrideId(id, forcedId);\n }\n }\n\n /**************************/\n /* Annotation CRUD events */\n /**************************/\n\n /** Common handler for annotation CREATE or UPDATE **/\n onCreateOrUpdateAnnotation = (method, opt_callback) => (annotation, previous) => {\n // Merge updated target if necessary\n let a = annotation.isSelection ? annotation.toAnnotation() : annotation;\n\n a = (this.state.modifiedTarget) ?\n a.clone({ target: this.state.modifiedTarget }) : a.clone();\n\n this.clearState(() => {\n this.annotationLayer.deselect();\n this.annotationLayer.addOrUpdateAnnotation(a, previous);\n\n // Call CREATE or UPDATE handler\n if (previous)\n this.props[method](a, previous.clone());\n else\n this.props[method](a, this.overrideAnnotationId(a));\n\n opt_callback && opt_callback();\n });\n }\n\n onDeleteAnnotation = annotation => {\n this.clearState();\n this.annotationLayer.removeAnnotation(annotation);\n this.props.onAnnotationDeleted(annotation);\n }\n\n onCancelAnnotation = (annotation, opt_callback) => {\n this.annotationLayer.deselect();\n this.props.onCancelSelected(annotation);\n this.clearState(opt_callback);\n }\n\n /****************/\n /* External API */\n /****************/\n\n addAnnotation = annotation =>\n this.annotationLayer.addOrUpdateAnnotation(annotation.clone());\n\n addDrawingTool = plugin =>\n this.annotationLayer.addDrawingTool(plugin);\n\n /** Cancel is an async op, return promise **/\n cancelSelected = () => new Promise(resolve => {\n this.annotationLayer.deselect();\n\n if (this.state.selectedAnnotation) {\n // Clear state and resolve afterwards\n this.clearState(resolve);\n } else { \n // Nothing to clear - resolve now\n resolve();\n }\n });\n\n get disableEditor() {\n return this.state.editorDisabled;\n }\n\n set disableEditor(disabled) {\n this.setState({ editorDisabled: disabled });\n }\n\n get disableSelect() {\n return this.annotationLayer.disableSelect;\n }\n\n set disableSelect(disable) {\n this.annotationLayer.disableSelect = disable;\n }\n\n get formatters() {\n return this.annotationLayer.formatters;\n }\n\n set formatters(formatters) {\n this.annotationLayer.formatters = formatters;\n this.annotationLayer.redraw();\n }\n\n getAnnotationById = annotationId =>\n this.annotationLayer.findShape(annotationId)?.annotation;\n\n getAnnotations = () =>\n this.annotationLayer.getAnnotations().map(a => a.clone());\n\n getImageSnippetById = annotationId => {\n const shape = this.annotationLayer.findShape(annotationId);\n if (shape)\n return getSnippet(this.props.env.image, shape);\n }\n\n getSelected = () => {\n if (this.state.selectedAnnotation) {\n return this.state.editorDisabled ?\n this.state.selectedAnnotation :\n this._editor.current?.getCurrentAnnotation();\n }\n }\n\n getSelectedImageSnippet = () =>\n this.annotationLayer.getSelectedImageSnippet();\n\n listDrawingTools = () =>\n this.annotationLayer.listDrawingTools();\n\n get readOnly() {\n return this.state.readOnly;\n }\n\n set readOnly(readOnly) {\n this.annotationLayer.readOnly = readOnly;\n this.setState({ readOnly });\n }\n\n removeAnnotation = annotationOrId => {\n this.annotationLayer.removeAnnotation(annotationOrId);\n if (this.state.selectedAnnotation)\n this.setState({ selectedAnnotation: null });\n }\n\n removeDrawingTool = id =>\n this.annotationLayer.removeDrawingTool(id);\n\n saveSelected = () =>\n new Promise(resolve => {\n const a = this.state.selectedAnnotation;\n\n if (a) {\n if (this._editor.current) {\n this._editor.current.onOk();\n resolve();\n } else if (a.isSelection) {\n if (a.bodies.length > 0 || this.props.config.allowEmpty) {\n this.onCreateOrUpdateAnnotation('onAnnotationCreated', resolve)(a);\n } else {\n this.annotationLayer.deselect();\n resolve();\n }\n } else {\n // Headless update?\n const { beforeHeadlessModify, modifiedTarget } = this.state;\n\n if (beforeHeadlessModify) {\n // Annotation was modified using '.updateSelected()'\n this.onCreateOrUpdateAnnotation('onAnnotationUpdated', resolve)(a, beforeHeadlessModify);\n } else if (modifiedTarget) {\n // Target was modified, but otherwise no change\n this.onCreateOrUpdateAnnotation('onAnnotationUpdated', resolve)(a, a);\n } else {\n this.onCancelAnnotation(a, resolve);\n }\n }\n } else {\n resolve();\n }\n });\n\n selectAnnotation = arg => {\n const selected = this.annotationLayer.selectAnnotation(arg, true);\n\n if (selected) {\n this.handleSelect(selected, true);\n return selected.annotation.clone();\n } else {\n this.clearState(); // Deselect\n }\n }\n\n setAnnotations = annotations =>\n this.annotationLayer.init(annotations.map(a => a.clone()));\n\n setDrawingTool = shape =>\n this.annotationLayer.setDrawingTool(shape);\n\n setVisible = visible => {\n this.annotationLayer.setVisible(visible);\n\n if (!visible)\n this.clearState();\n }\n\n updateSelected = (annotation, saveImmediately) =>\n new Promise(resolve => {\n if (this.state.selectedAnnotation) {\n if (saveImmediately) {\n if (this.state.selectedAnnotation.isSelection) {\n this.onCreateOrUpdateAnnotation('onAnnotationCreated', resolve)(annotation);\n } else {\n this.onCreateOrUpdateAnnotation('onAnnotationUpdated', resolve)(annotation, this.state.selectedAnnotation);\n }\n } else {\n this.setState({\n selectedAnnotation: annotation, // Updated annotation\n beforeHeadlessModify: this.state.beforeHeadlessModify || this.state.selectedAnnotation\n }, resolve);\n }\n }\n });\n\n get widgets() {\n return this.state.widgets;\n }\n\n set widgets(widgets) {\n this.setState({ widgets });\n }\n\n render() {\n // The editor should open under normal conditions - annotation was selected, no headless mode\n const open = this.state.selectedAnnotation && !this.state.editorDisabled;\n\n const readOnly = this.state.readOnly || this.state.selectedAnnotation?.readOnly;\n\n return (open && (\n \n ))\n }\n\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Emitter from 'tiny-emitter';\nimport ImageAnnotator from './ImageAnnotator';\nimport {\n Selection,\n WebAnnotation,\n createEnvironment,\n setLocale\n} from '@recogito/recogito-client-core';\n\nimport '@recogito/recogito-client-core/themes/default';\n\n/**\n * The entrypoint into the application. Provides the\n * externally visible JavaScript API.\n */\nexport class Annotorious {\n\n constructor(config) {\n // Programmatic calls to this instance from outside are forwarded\n // through a ref\n this._app = React.createRef();\n\n // Event handling via tiny-emitter\n this._emitter = new Emitter();\n\n // TODO .headless option is deprecated!\n config.disableEditor = config.disableEditor || config.headless;\n\n // Host app may supply the image as either a DOM node or ID - normalize\n const imageEl = (config.image.nodeType) ?\n config.image : document.getElementById(config.image);\n\n // Wrapper div might produce unwanted margin at the bottom otherwise!\n imageEl.style.display = 'block';\n\n // Store image reference in the Environment\n this._env = createEnvironment();\n this._env.image = imageEl;\n\n setLocale(config.locale, config.messages);\n\n // We'll wrap the image in a DIV ('_element'). The application\n // container DIV, which holds the editor popup, will be attached\n // as a child to the same wrapper element (=a sibling to the image\n // element), so that editor and image share the same offset coordinate\n // space.\n this._element = document.createElement('DIV');\n this._element.style.position = 'relative';\n this._element.style.display = 'inline-block';\n\n imageEl.parentNode.insertBefore(this._element, imageEl);\n this._element.appendChild(imageEl);\n\n this._appContainerEl = document.createElement('DIV');\n this._element.appendChild(this._appContainerEl);\n\n // A basic ImageAnnotator with just a comment and a tag widget\n ReactDOM.render(\n , this._appContainerEl);\n }\n\n /********************/\n /* External events */\n /********************/\n\n handleAnnotationCreated = (annotation, overrideId) =>\n this._emitter.emit('createAnnotation', annotation.underlying, overrideId);\n\n handleAnnotationDeleted = annotation =>\n this._emitter.emit('deleteAnnotation', annotation.underlying);\n\n handleAnnotationSelected = (annotation, elem) =>\n this._emitter.emit('selectAnnotation', annotation.underlying, elem);\n\n handleAnnotationUpdated = (annotation, previous) =>\n this._emitter.emit('updateAnnotation', annotation.underlying, previous.underlying);\n\n handleCancelSelected = annotation =>\n this._emitter.emit('cancelSelected', annotation.underlying);\n\n handleChangeSelected = (selected, previous) =>\n this._emitter.emit('changeSelected', selected.underlying, previous.underlying);\n\n handleClickAnnotation = (annotation, elem) =>\n this._emitter.emit('clickAnnotation', annotation.underlying, elem);\n\n handleLoad = src =>\n this._emitter.emit('load', src);\n\n handleSelectionCreated = selection =>\n this._emitter.emit('createSelection', selection.underlying);\n\n handleSelectionStarted = pt =>\n this._emitter.emit('startSelection', pt);\n\n handleSelectionTargetChanged = target =>\n this._emitter.emit('changeSelectionTarget', target);\n\n handleMouseEnterAnnotation = (annotation, elem) =>\n this._emitter.emit('mouseEnterAnnotation', annotation.underlying, elem);\n\n handleMouseLeaveAnnotation = (annotation, elem) =>\n this._emitter.emit('mouseLeaveAnnotation', annotation.underlying, elem);\n\n /******************/\n /* External API */\n /******************/\n\n // Common shorthand for handling annotationOrId args\n _wrap = annotationOrId =>\n annotationOrId?.type === 'Annotation' ? new WebAnnotation(annotationOrId) : annotationOrId;\n\n addAnnotation = (annotation, readOnly) =>\n this._app.current.addAnnotation(new WebAnnotation(annotation, { readOnly }));\n\n addDrawingTool = plugin =>\n this._app.current.addDrawingTool(plugin);\n\n cancelSelected = () =>\n this._app.current.cancelSelected();\n\n clearAnnotations = () =>\n this.setAnnotations([]);\n\n clearAuthInfo = () =>\n this._env.user = null;\n\n get disableEditor() {\n return this._app.current.disableEditor;\n }\n\n set disableEditor(disabled) {\n this._app.current.disableEditor = disabled;\n }\n\n get disableSelect() {\n return this._app.current.disableSelect;\n }\n\n set disableSelect(select) {\n this._app.current.disableSelect = select;\n }\n\n destroy = () => {\n ReactDOM.unmountComponentAtNode(this._appContainerEl);\n this._element.parentNode.insertBefore(this._env.image, this._element);\n this._element.parentNode.removeChild(this._element);\n }\n \n get formatters() {\n return this._app.current.formatters || [];\n }\n\n set formatters(arg) {\n if (arg) {\n const formatters = Array.isArray(arg) ? arg : [ arg ];\n this._app.current.formatters = formatters; \n } else {\n this._app.current.formatters = null;\n }\n }\n \n getAnnotationById = annotationId => {\n const a = this._app.current.getAnnotationById(annotationId);\n return a?.underlying;\n }\n\n getAnnotations = () => {\n const annotations = this._app.current.getAnnotations();\n return annotations.map(a => a.underlying);\n }\n\n getImageSnippetById = annotationId =>\n this._app.current.getImageSnippetById(annotationId);\n\n getSelected = () => {\n const selected = this._app.current.getSelected();\n return selected?.underlying;\n }\n\n getSelectedImageSnippet = () =>\n this._app.current.getSelectedImageSnippet();\n\n listDrawingTools = () =>\n this._app.current.listDrawingTools();\n\n loadAnnotations = url => fetch(url)\n .then(response => response.json()).then(annotations => {\n this.setAnnotations(annotations);\n return annotations;\n });\n\n off = (event, callback) =>\n this._emitter.off(event, callback);\n\n on = (event, handler) =>\n this._emitter.on(event, handler);\n\n once = (event, handler) =>\n this._emitter.once(event, handler);\n\n get readOnly() {\n return this._app.current.readOnly;\n }\n\n set readOnly(readOnly) {\n this._app.current.readOnly = readOnly;\n }\n\n removeAnnotation = annotationOrId =>\n this._app.current.removeAnnotation(this._wrap(annotationOrId));\n\n removeDrawingTool = id =>\n this._app.current.removeDrawingTool(id);\n\n saveSelected = () =>\n this._app.current.saveSelected();\n\n selectAnnotation = annotationOrId => {\n const selected = this._app.current.selectAnnotation(this._wrap(annotationOrId));\n return selected?.underlying;\n }\n\n setAnnotations = a => {\n const annotations = a || []; // Allow null arg\n const webannotations = annotations.map(a => new WebAnnotation(a));\n this._app.current.setAnnotations(webannotations);\n }\n\n setAuthInfo = authinfo =>\n this._env.user = authinfo;\n\n setDrawingTool = shape =>\n this._app.current.setDrawingTool(shape);\n\n setServerTime = timestamp =>\n this._env.setServerTime(timestamp);\n\n setVisible = visible =>\n this._app.current.setVisible(visible);\n\n updateSelected = (annotation, saveImmediately) => {\n let updated = null;\n\n if (annotation.type === 'Annotation')\n updated = new WebAnnotation(annotation);\n else if (annotation.type === 'Selection')\n updated = new Selection(annotation.target, annotation.body);\n\n if (updated)\n this._app.current.updateSelected(updated, saveImmediately);\n }\n\n get widgets() {\n return this._app.current.widgets;\n }\n\n set widgets(widgets) {\n this._app.current.widgets = widgets;\n }\n\n}\n\nexport const init = config => new Annotorious(config);\n"],"names":["n","l","u","i","t","r","o","f","e","c","s","a","h","v","y","p","d","_","k","b","m","g","j","z","w","A","x","P","N","M","C","H","$","T","I","O","L","S","q","B","D","F","E","R","U","W","V","Z","Y","G","J","K","Q","X","nn","tn","en","rn","un","on","ln","cn","fn","name","callback","ctx","self","listener","data","evtArr","len","evts","liveEvents","SVG_NAMESPACE","getClassNames","el","attr","getAttribute","Set","split","addClass","className","classNames","add","setAttribute","Array","from","join","removeClass","delete","size","removeAttribute","hasClass","has","parseRectFragment","annotation","image","selector","conformsTo","startsWith","value","format","includes","substring","indexOf","coords","map","parseFloat","toLowerCase","naturalWidth","naturalHeight","toPixelRectFragment","source","src","type","toPercentRectFragment","px","py","pw","ph","toRectFragment","fragmentUnit","setXYWH","shape","setPointXY","drawRectMask","imageDimensions","mask","document","createElementNS","setRectMaskSize","drawRect","arg1","arg2","arg3","arg4","outerPoint","innerPoint","appendChild","outerRect","innerRect","getRectSize","outer","querySelector","nodeName","setRectSize","inner","rectArea","polygonArea","points","area","length","Math","abs","pointInPolygon","xy","inside","xi","yi","xj","yj","polygonInPolygon","polygonA","polygonB","point","svgPathToPolygons","path","commands","str","trim","polygons","cmd","op","push","isUppercase","toUpperCase","insertSVGNamespace","originalDoc","namespaced","XMLSerializer","serializeToString","documentElement","replace","DOMParser","parseFromString","sanitize","doc","cleanEl","attributes","forEach","scripts","getElementsByTagName","reverse","parentNode","removeChild","querySelectorAll","svgFragmentToShape","parser","isPrefixDeclared","lookupPrefix","isDefaultNamespaceSVG","lookupNamespaceURI","firstChild","drawEmbeddedSVG","cloneNode","toSVGTarget","serialized","outerHTML","svgArea","svgPolygonArea","svgCircleArea","svgEllipseArea","svgPathArea","polygon","circle","PI","ellipse","rx","ry","isHole","find","other","poly","drawFn","areaFn","getFirstSelector","firstTarget","targets","isArray","drawShape","shapeArea","ReactPropTypesSecret","ReactPropTypesSecret_1","require$$0","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","props","propName","componentName","location","propFullName","secret","err","getShim","ReactPropTypes","propTypesModule","toVal","mix","tmp","shims","findInArray","isFunction","isNum","int","dontSetMe","array","func","num","getPrefix_1","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","_window$document","_window$document$docu","prop","style","prefix","kebabToTitleCase","out","shouldCapitalize","_default","_typeof","obj","domFns","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTranslation","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","addClassName","removeClassName","_shims","_getPrefix","_interopRequireWildcard","require$$1","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","cache","newObj","hasPropertyDescriptor","key","desc","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","_defineProperty","matchesSelectorFunc","method","baseNode","node","event","handler","inputOptions","options","height","computedStyle","width","evt","offsetParent","scale","isBody","offsetParentRect","controlPos","positionOffset","translation","_ref2","unitSuffix","defaultX","defaultY","identifier","styleEl","selection","positionFns","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","_domFns","draggable","bounds","cloneBounds","findDOMNode","ownerDocument","ownerWindow","boundNode","boundNodeEl","nodeStyle","boundNodeStyle","grid","pendingX","pendingY","touchIdentifier","draggableCore","touchObj","state","isStart","coreData","log_1","log","DraggableCore_1","React","_propTypes","_interopRequireDefault","_reactDom","require$$2","require$$3","_positionFns","require$$4","require$$5","_log","require$$6","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","arr2","_i","_arr","_n","_d","_s","_e","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","result","NewTarget","_possibleConstructorReturn","call","_assertThisInitialized","eventsFor","dragEventFor","DraggableCore","_React$Component","_super","_this","_len","args","_key","thisNode","position","coreEvent","shouldUpdate","deltaX","deltaY","_snapToGrid","_snapToGrid2","shouldContinue","_this$props$nodeRef$c","_this$props","_this$props$nodeRef","exports","_DraggableCore","_clsx2","require$$7","require$$8","_excluded","_extends","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","Draggable","shouldStart","uiData","newState","_getBoundPosition","_getBoundPosition2","newStateX","newStateY","controlled","_this$props$position","_clsx","_this$props2","children","defaultPosition","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","draggableCoreProps","svgTransform","validPosition","transformOpts","_ref","prevPropsPosition","_require","EN_US","diff","idx","unit","ZH_CN","Locales","register","locale","getLocale","SEC_ARRAY","toDate","input","formatDiff","localeFunc","agoIn","totalSec","diffSec","date","relativeDate","relDate","nextInterval","rst","opts","sec","ATTR_TIMEAGO_TID","getDateAttribute","setTimerId","timerId","getTimerId","TIMER_POOL","clear","tid","run","minInterval","cancel","render","nodes","nodeList","en_US","zh_CN","__extends","this","extendStatics","__","__assign","__rest","toDateTime","TimeAgo","_a","live","datetime","others","React.createElement","React.PureComponent","useClickOutside","ref","onClickOutside","useEffect","toStr","isArguments","isArgs","keysShim","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","excludedKeys","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","isObject","isString","theKeys","skipProto","skipConstructor","implementation","slice","origKeys","originalKeys","keysWorksWithArguments","objectKeys","hasSymbols","concat","origDefineProperty","arePropertyDescriptorsSupported","supportsDescriptors","defineProperty","predicate","defineProperties","predicates","defineProperties_1","ERROR_MESSAGE","funcType","that","bound","binder","boundLength","boundArgs","Empty","functionBind","shams","symObj","symVal","syms","origSymbol","hasSymbolSham","bind","undefined","$SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","getProto","needsEval","TypedArray","INTRINSICS","doEval","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","string","first","last","match","number","quote","subString","getBaseIntrinsic","allowMissing","intrinsicName","alias","getIntrinsic","parts","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","GetIntrinsic","$apply","$call","$reflectApply","$defineProperty","$max","module","originalFunction","applyBind","callBind","$indexOf","callBound","CheckObjectCoercible","optMessage","RequireObjectCoercible","$Array","IsArray","argument","Call","argumentsList","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","hasWeakMap","weakMapHas","hasWeakSet","weakSetHas","hasWeakRef","weakRefDeref","booleanValueOf","objectToString","functionToString","$match","$slice","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","toStringTag","gPO","addNumericSeparator","sepRegex","intStr","dec","inspectCustom","inspectSymbol","isSymbol","objectInspect","inspect_","depth","seen","customInspect","numericSeparator","inspectString","bigIntStr","maxDepth","indent","getIndent","inspect","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","isElement","attrs","wrapQuotes","xs","singleLineValues","indentedJoin","isError","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isDate","isRegExp","ys","isPlainObject","protoTag","stringTag","constructorTag","tag","defaultStyle","quoteChar","remaining","trailer","lowbyte","entries","joinedEntries","baseIndent","lineJoiner","isArr","symMap","IsPropertyKey","Type","ES5Type","Get","HasProperty","fnToStr","reflectApply","badArrayLike","isCallableMarker","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","fnClass","genClass","hasToStringTag","documentDotAll","isCallable","strClass","IsCallable","$Math","$Number","maxSafeInteger","$abs","floor","isPrimitive","ES5internalSlots","actualHint","methods","es5","ToPrimitive","ToNumber","prim","trimmed","_isNaN","$isNaN","_isFinite","sign","$isFinite","$sign","ToInteger","regexTester","regex","getDay","tryDateObject","dateClass","isDateObject","symToStr","symStringRegex","isSymbolObject","isSymbolModule","ordinaryToPrimitive","hint","methodNames","GetMethod","es2015","exoticToPrim","toPrimitive","$RegExp","$parseInteger","isBinary","isOctal","isInvalidHexLiteral","nonWS","nonWSregex","hasNonWS","ws","trimRegex","$trim","ES5ToInteger","ToIntegerOrInfinity","MAX_SAFE_INTEGER","ToLength","LengthOfArrayLike","$Object","ToObject","$String","ToString","strValue","tryStringObject","require$$9","$split","boxedString","splitString","callbackfn","thisO","thisArg","Pk","kPresent","kValue","esArrayMethodBoxesProperly","properlyBoxesNonStrict","properlyBoxesStrict","threwException","arrayMethodBoxesProperly","polyfill","define","getPolyfill","boundCoercible","array_prototype_foreach","$isEnumerable","$push","entrys","object_entries","leftWhitespace","rightWhitespace","zeroWidthSpace","boundTrim","string_prototype_trim","warn","message","delimiter","russianPluralGroups","lastTwo","end","defaultPluralRules","langToTypeMap","mapping","ret","entry","langs","lang","pluralTypeName","pluralRules","langToPluralType","pluralTypeIndex","pluralType","count","createMemoizedPluralTypeNameSelector","localePluralTypeStorage","escape","token","constructTokenRegex","suffix","memoizedPluralTypeName","defaultTokenRegex","transformPhrase","phrase","substitutions","tokenRegex","interpolationRegex","pluralRulesOrDefault","texts","bestLocale","pluralTypeWithCount","expression","Polyglot","newLocale","morePhrases","prefixedKey","newPhrases","onMissingKey","nodePolyglot","ar","timeTypes","formatTime","default_1","index","timeStr","cs","inflectionIndex","isInflectionNeeded","de","es","fi","fr","gl","hi_IN","it","ja","ko","nl","pt_BR","ru","formatNum","f1","n10","seconds","minutes","hours","days","weeks","months","years","sv","th","tr","zh_TW","MESSAGES","messages_ar","messages_cs","messages_de","messages_el","messages_es","messages_fi","messages_fr","messages_gl","messages_hi","messages_it","messages_ja","messages_ko","messages_nl","messages_pt","messages_ru","messages_sv","messages_th","messages_tr","messages_ur","messages_zh_CN","messages_zh_TW","availableLocales","i18n","opt_messages","hi","pt","messages","useRef","global","factory","values","createEvent","assign","ta","heightOffset","clientWidth","cachedHeight","init","update","changeOverflow","getParentOverflows","resize","overflows","docTop","styleHeight","computed","actualHeight","pageResize","destroy","autosize","getComputedStyle","word","letter","computedStyle_commonjs","lineHeight","lnHeightStr","lnHeight","_lnHeightStyle","_node","fontSizeStr","body","lineHeight_1","PropTypes","_getLineHeight","getLineHeight","RESIZED","TextareaAutosizeClass","onChange","maxRows","async","_b","maxHeight","element","TextareaAutosize_1","TextEntryField","Component","__publicField","createRef","TextareaAutosize","sheetForTag","createStyleElement","StyleSheet","before","_proto","rule","sheet","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","hash","charat","pattern","replacement","indexof","search","substr","begin","strlen","sizeof","append","combine","line","column","character","characters","root","parent","copy","char","prev","next","peek","caret","alloc","dealloc","delimit","whitespace","escaping","commenter","compile","parse","rules","rulesets","pseudo","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","serialize","output","stringify","middleware","collection","rulesheet","prefixer","memoize","arg","identifierWithPointTracking","toRules","parsed","getRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","defaultStylisPlugins","createCache","ssrStyles","dataEmotionAttribute","stylisPlugins","inserted","container","nodesToHydrate","attrib","_insert","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","stylis","styles","shouldCache","reactIsModule","reactIs","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","isBrowser","getRegisteredStyles","registered","registeredStyles","rawClassName","insertStyles","isStringTag","current","murmur2","unitlessKeys","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","cursor","unitless","handleInterpolation","mergedProps","interpolation","createStringFromObject","previousCursor","cached","interpolated","labelPattern","serializeStyles","stringMode","strings","identifierName","hashString","hasOwnProperty","EmotionCacheContext","createContext","withEmotionCache","forwardRef","useContext","ThemeContext","typePropName","createEmotionProps","newProps","Noop","Emotion","cssProp","ele","createElement","possiblyStyleElement","Fragment","jsx","argsLength","createElementArgArray","css","keyframes","insertable","classnames","cls","toAdd","merge","ClassNames","hasRendered","cx","_len2","_key2","content","_taggedTemplateLiteral","raw","objectWithoutPropertiesLoose","AutosizeInput_1","_react","_react2","_propTypes2","sizerStyle","INPUT_PROPS_BLACKLIST","cleanInputProps","inputProps","field","copyStyles","isIE","generateId","AutosizeInput","_Component","id","prevProps","prevState","inputStyles","newInputWidth","extraWidth","injectStyles","sizerValue","previousValue","currentValue","wrapperStyle","inputStyle","setPrototypeOf","_objectSpread2","noop","applyPrefixToName","cleanValue","cleanCommonProps","innerProps","isDocumentElement","getScrollTop","scrollTo","top","getScrollParent","excludeStaticParent","overflowRx","docEl","easeOutCubic","animatedScrollTo","to","duration","start","change","increment","currentTime","animateScroll","val","scrollIntoView","menuEl","focusedEl","menuRect","focusedRect","overScroll","getBoundingClientObj","rect","isTouchCapable","isMobileDevice","passiveOptionAccessed","supportsPassiveEvents","getMenuPlacement","minHeight","placement","shouldScroll","isFixedPosition","theme","spacing","scrollParent","defaultState","_scrollParent$getBoun","scrollHeight","_menuEl$getBoundingCl","menuBottom","menuHeight","menuTop","_menuEl$offsetParent$","containerTop","viewHeight","scrollTop","marginBottom","marginTop","viewSpaceAbove","viewSpaceBelow","scrollSpaceAbove","scrollSpaceBelow","scrollDown","scrollUp","scrollDuration","constrainedHeight","_constrainedHeight","spaceAbove","_constrainedHeight2","alignToControl","placementToCSSProp","coercePlacement","menuCSS","_ref3","_ref2$theme","borderRadius","colors","_defineProperty$1","PortalPlacementContext","MenuPlacer","minMenuHeight","maxMenuHeight","menuPlacement","menuPosition","menuShouldScrollIntoView","getPortalPlacement","Menu","getStyles","innerRef","menuListCSS","_ref4","baseUnit","MenuList","isMulti","noticeCSS","_ref5","_ref5$theme","noOptionsMessageCSS","loadingMessageCSS","NoOptionsMessage","LoadingMessage","menuPortalCSS","_ref6","MenuPortal","_Component2","_super2","_this2","_ref7","initialPlacement","appendTo","controlElement","isFixed","scrollDistance","menuWrapper","createPortal","containerCSS","isDisabled","isRtl","SelectContainer","valueContainerCSS","ValueContainer","hasValue","indicatorsContainerCSS","IndicatorsContainer","_templateObject","Svg","CrossIcon","DownChevron","baseCSS","isFocused","_ref3$theme","dropdownIndicatorCSS","DropdownIndicator","clearIndicatorCSS","ClearIndicator","indicatorSeparatorCSS","_ref4$theme","IndicatorSeparator","loadingDotAnimations","loadingIndicatorCSS","LoadingDot","delay","css$2","LoadingIndicator","_ref$theme","Control","menuIsOpen","groupCSS","Group","Heading","headingProps","label","selectProps","groupHeadingCSS","GroupHeading","_cleanCommonProps","inputCSS","isHidden","Input","multiValueCSS","multiValueLabelCSS","cropWithEllipsis","multiValueRemoveCSS","MultiValueGeneric","MultiValueContainer","MultiValueLabel","MultiValueRemove","MultiValue","components","removeProps","Container","Label","Remove","emotionCx","optionCSS","isSelected","Option","placeholderCSS","Placeholder","css$1","SingleValue","defaultComponents","_arrayWithoutHoles","arrayLikeToArray","_iterableToArray","iter","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","safeIsNaN","isEqual","second","areInputsEqual","newInputs","lastInputs","memoizeOne","resultFn","lastThis","lastArgs","lastResult","calledOnce","memoized","newArgs","A11yText","defaultAriaLiveMessages","isSearchable","tabSelectsValue","context","action","_props$label","_props$focused","focused","_props$label2","selectValue","getArrayIndex","item","disabled","status","inputValue","resultsMessage","LiveRegion","ariaSelection","focusedOption","focusedValue","focusableOptions","ariaLiveMessages","getOptionLabel","isOptionDisabled","screenReaderStatus","ariaLabel","ariaLive","useMemo","ariaSelected","option","removedValue","asOption","selected","onChangeProps","ariaFocused","focusMsg","onFocusProps","ariaResults","resultsMsg","ariaGuidance","guidanceMsg","ariaContext","diacritics","anyDiacritic","diacriticToBase","diacritic","stripDiacritics","memoizedStripDiacriticsForInput","trimString","defaultStringify","createFilter","config","rawInput","_ignoreCase$ignoreAcc","ignoreCase","ignoreAccents","matchFrom","candidate","DummyInput","cancelScroll","useScrollCapture","isEnabled","onBottomArrive","onBottomLeave","onTopArrive","onTopLeave","isBottom","isTop","touchStart","scrollTarget","handleEventDelta","useCallback","delta","_scrollTarget$current","clientHeight","isDeltaPositive","availableScroll","shouldCancelScroll","onWheel","onTouchStart","onTouchMove","startListening","notPassive","stopListening","STYLE_KEYS","LOCK_STYLES","preventTouchMove","allowTouchMove","preventInertiaScroll","totalScroll","currentScroll","isTouchDevice","canUseDOM","activeScrollLocks","listenerOptions","useScrollLock","_ref$accountForScroll","accountForScrollbars","originalStyles","addScrollLock","touchScrollTarget","targetStyle","currentPadding","adjustedPadding","removeScrollLock","blurSelectInput","ScrollManager","lockEnabled","_ref$captureEnabled","captureEnabled","setScrollCaptureTarget","setScrollLockTarget","targetRef","formatGroupLabel","group","getOptionValue","defaultStyles","controlHeight","menuGutter","defaultTheme","defaultProps","toCategorizedOption","_isOptionDisabled","_isOptionSelected","getOptionLabel$1","getOptionValue$1","buildCategorizedOptions","groupOrOption","groupOrOptionIndex","categorizedOptions","optionIndex","categorizedOption","isFocusable","buildFocusableOptionsFromCategorizedOptions","optionsAccumulator","buildFocusableOptions","_props$inputValue","shouldHideSelectedOptions","_filterOption","getNextFocusedValue","nextSelectValue","lastSelectValue","lastFocusedIndex","nextFocusedIndex","getNextFocusedOption","lastFocusedOption","hideSelectedOptions","instanceId","Select","_props","newValue","actionMeta","closeMenuOnSelect","_this$props3","blurInputOnSelect","deselected","newValueArray","lastSelectedValue","base","custom","openMenuOnClick","_this$props4","touches","touch","moveThreshold","_this$props5","backspaceRemovesValue","escapeClearsValue","isClearable","onKeyDown","openMenuOnFocus","_this$state","_this$props6","focusOption","_this$state2","openAtIndex","selectedIndex","direction","_this$state3","focusedIndex","lastIndex","nextFocus","pageSize","clearValue","getValue","selectOption","setValue","_this$props7","_this$props8","inputId","tabIndex","form","_this$getComponents","inputIsHidden","commonProps","ariaAttributes","_this3","_this$getComponents2","_this$props9","controlShouldRenderValue","placeholder","_this$state4","selectValues","opt","isOptionFocused","singleValue","_this$getComponents3","_this$props10","isLoading","_this$getComponents4","_this$props11","_this$getComponents5","_this$getComponents6","_this4","_this$getComponents7","_this$props12","captureMenuScroll","loadingMessage","menuPortalTarget","menuShouldBlockScroll","noOptionsMessage","onMenuScrollToTop","onMenuScrollToBottom","onHover","onSelect","optionId","menuUI","groupIndex","groupId","headingId","_message","menuPlacementProps","menuElement","_ref4$placerProps","scrollTargetRef","_this5","_this$props13","_value","_this$state5","_this$getComponents8","_this$props14","clearFocusValueOnUpdate","inputIsHiddenAfterUpdate","newMenuOptionsState","newInputIsHiddenState","manageState","SelectComponent","_class","_temp","StateManager","PURPOSES","selectedOption","ChevronDownIcon","CloseIcon","TrashIcon","isEditable","setIsEditable","useState","isMenuVisible","setIsMenuVisible","onMakeEditable","onDelete","onUpdateComment","onChangePurpose","timestamp","creatorInfo","PurposeSelect","DropdownMenu","validPurposes","isComment","matchAllPurposes","hasMatchingPurpose","isReadOnlyComment","creator","getDraftReply","existingDraft","isReply","CommentWidget","all","draftReply","comments","onEditReply","updated","onChangeReplyPurpose","purpose","Comment","_inheritsLoose","replaceClassName","origClass","classToRemove","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","parentGroup","appear","initialStatus","nextIn","nextStatus","timeout","exit","enter","mounting","appearing","ReactDOM","maybeNode","maybeAppearing","timeouts","enterTimeout","nextState","active","doesNotHaveTimeoutOrListener","maybeNextCallback","childProps","TransitionGroupContext","_addClass","classes","addOneClass","removeOneClass","CSSTransition","_this$resolveArgument","_this$resolveArgument2","_this$resolveArgument3","_this$resolveArgument4","_this$resolveArgument5","_this$resolveArgument6","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","_this$getClassNames","_this$appliedClasses$","getVocabSuggestions","query","vocabulary","getFnSuggestions","suggestions","setSuggestions","highlightedIndex","setHighlightedIndex","getSuggestions","onSubmit","matchingTerm","getDraftTag","draftTag","tags","showDelete","setShowDelete","toggle","onDraftChange","toSubmit","tagValue","Autocomplete","WrappedWidget","widgetEl","saveImmediately","diffs","uri","BUILTIN_WIDGETS","TagWidget","DEFAULT_WIDGETS","isReactComponent","isClassComponent","component","isFunctionComponent","getWidget","instantiate","widget","force","MARGIN_VERTICAL","wrapperEl","editorEl","selectedEl","autoPosition","containerBounds","left","right","bottom","defaultOrientation","editorHeight","currentOrientation","shapeBottom","elem","Editor","resizeObserver","meta","user","existing","autoUpserts","toRemove","toAppend","toUpdate","updatedBodies","currentAnnotation","undraft","draft","rest","selectionBounds","nextBounds","widgets","isReadOnlyWidget","hasDelete","getRandomValues","rnds8","rng","validate","uuid","REGEX","byteToHex","v4","buf","rnds","fastDeepEqual","equal","_WebAnnotation","opt_props","opt_opts","equals","bodies","WebAnnotation","stub","Selection","cloned","serverTimeDifference","serverNow","browserNow","serverTime","setLocale","fallback","foundLocale","_l","I18n","RubberbandRect","constructor","anchorX","anchorY","env","dragTo","oppositeX","oppositeY","display","opposite","bbox","getBoundingClientRect","toSelection","anchor","pointerEvents","max","SIM_EVENTS","touchstart","touchmove","touchend","window","navigator","maxTouchPoints","msMaxTouchPoints","enableTouchTranslation","pressAndHoldTrigger","simulateEvent","MouseEvent","screenX","screenY","clientX","clientY","pageX","pageY","bubbles","touchHandler","changedTouches","simulatedEvent","dispatchEvent","preventDefault","clearTimeout","setTimeout","addEventListener","IMPLEMENTATION_MISSING","isTouch","ToolLike","EventEmitter","enableResponsive","ResizeObserver","svgBounds","svg","viewBox","baseVal","onScaleChanged","observe","getSVGPoint","createSVGPoint","matrixTransform","getScreenCTM","inverse","offsetX","offsetY","getCTM","drawHandle","containerGroup","drawCircle","radius","handleRadius","setHandleXY","handle","getHandleXY","scaleHandle","closest","Element","HTMLDocument","disconnect","Tool","attachListeners","mouseMove","mouseUp","dblClick","started","emit","button","detachListeners","removeEventListener","startOnSingleClick","startDrawing","Error","createEditableShape","formatters","isDrawing","supports","EditableShape","updateState","isFirefox","test","userAgent","formatSvgEl","svgEl","appendFormatterEl","formatterEl","getBBox","reduce","merged","String","nodeType","Node","ELEMENT_NODE","elements","setFormatterElSize","EditableRect","handles","rectangle","elementGroup","topleft","topright","bottomright","bottomleft","stretchCorners","draggedHandleIdx","anchorHandle","mousePos","onGrab","grabbedElem","pos","mouseOffset","onMouseMove","constrain","coord","handleIdx","oppositeHandle","onMouseUp","RubberbandRectTool","rubberband","stop","minWidth","minSelectionWidth","minSelectionHeight","fragmentSelector","PolygonMask","redraw","RubberbandPolygon","setPoints","mousepos","addPoint","lastCorner","pow","Mask","getPoints","pointList","numberOfItems","getItem","EditablePolygon","round","grabbedAt","dx","dy","updatedPoints","RubberbandPolygonTool","_isDrawing","_startOnSingleClick","onDblClick","ToolRegistry","listTools","_registered","impl","registerTool","unregisterTool","unshift","filter","setCurrent","toolOrId","_current","_g","_config","_env","forAnnotation","renderedVia","Crosshair","layerGroup","parentElement","getSnippet","kx","ky","imageBounds","outerBounds","snippet","getContext","drawImage","transform","AnnotationLayer","_attachMouseListeners","tools","currentHover","stopPropagation","realTarget","elementFromPoint","contains","selectCurrentHover","_lazy","imageEl","_onMouseDown","readOnly","selectedShape","drawOnSingleClick","_refreshNonScalingAnnotations","getCurrentScale","Infinity","_scaleFormatterElements","opt_shape","addAnnotation","addDrawingTool","plugin","addOrUpdateAnnotation","deselect","removeAnnotation","skipRedraw","isSelection","findShape","annotationOrId","getAnnotations","getSelectedImageSnippet","annotations","sort","listDrawingTools","overrideId","originalId","forcedId","clone","shapes","_c","removeDrawingTool","selectAnnotation","skipEvent","selectShape","disableSelect","toolForAnnotation","fragment","setDrawingTool","setVisible","visible","stopDrawing","formatter","crosshair","DrawingTools","jsxRuntime.jsx","ImageAnnotator","clearState","setState","selectedAnnotation","selectedDOMElement","modifiedTarget","beforeHeadlessModify","opt_callback","forwardEvent","annotationLayer","onKeyUp","which","cancelSelected","onCancelSelected","onCancelAnnotation","onDeleteAnnotation","handleStartSelect","onSelectionStarted","handleSelect","editorDisabled","onHeadlessSelect","onNormalSelect","select","onSelectionCreated","onAnnotationSelected","onChangeSelected","saveSelected","then","handleUpdateTarget","JSON","onSelectionTargetChanged","overrideAnnotationId","originalAnnotation","onCreateOrUpdateAnnotation","toAnnotation","onAnnotationDeleted","Promise","resolve","getAnnotationById","annotationId","getImageSnippetById","getSelected","_editor","getCurrentAnnotation","onOk","allowEmpty","setAnnotations","updateSelected","disableEditor","componentDidMount","onLoad","componentWillUnmount","disable","open","_jsx","Annotorious","handleAnnotationCreated","_emitter","underlying","handleAnnotationDeleted","handleAnnotationSelected","handleAnnotationUpdated","handleCancelSelected","handleChangeSelected","handleClickAnnotation","handleLoad","handleSelectionCreated","handleSelectionStarted","handleSelectionTargetChanged","handleMouseEnterAnnotation","handleMouseLeaveAnnotation","_wrap","_app","clearAnnotations","clearAuthInfo","unmountComponentAtNode","_appContainerEl","_element","insertBefore","loadAnnotations","fetch","url","response","json","off","once","webannotations","setAuthInfo","authinfo","setServerTime","Emitter","headless","getElementById","createEnvironment"],"mappings":"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D,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,6CACX,EAAG,CACD,KAAM,IACN,QAAS,2FACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,mPACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,yDACX,EAAG,CACD,KAAM,IACN,QAAS,iCACX,EAAG,CACD,KAAM,IACN,QAAS,mGACX,EAAG,CACD,KAAM,IACN,QAAS,mGACX,EAAG,CACD,KAAM,IACN,QAAS,uFACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,iMACX,EAAG,CACD,KAAM,IACN,QAAS,6CACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,yDACX,EAAG,CACD,KAAM,IACN,QAAS,2BACX,EAAG,CACD,KAAM,IACN,QAAS,qFACX,EAAG,CACD,KAAM,IACN,QAAS,iFACX,EAAG,CACD,KAAM,IACN,QAAS,mMACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,kBACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,cACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,mDACX,EAAG,CACD,KAAM,IACN,QAAS,yEACX,EAAG,CACD,KAAM,IACN,QAAS,iFACX,EAAG,CACD,KAAM,KACN,QAAS,cACX,EAAG,CACD,KAAM,IACN,QAAS,+KACX,EAAG,CACD,KAAM,IACN,QAAS,iCACX,EAAG,CACD,KAAM,IACN,QAAS,uFACX,EAAG,CACD,KAAM,IACN,QAAS,uFACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,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"}