@arantic/bugpin-widget 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.esm.js","sources":["../../../node_modules/.bun/preact@10.28.1/node_modules/preact/dist/preact.module.js","../../../node_modules/.bun/preact@10.28.1/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","../../../node_modules/.bun/preact@10.28.1/node_modules/preact/hooks/dist/hooks.module.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/shared/src/utils.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/defaultAttributes.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/Icon.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/createLucideIcon.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/icons/bug.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/icons/circle-alert.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/icons/circle-help.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/icons/flag.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/icons/heart.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/icons/info.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/icons/mail.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/icons/message-square.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/icons/send.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/icons/settings.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/icons/star.js","../../../node_modules/.bun/lucide-preact@0.460.0+d1af1c5cf341b28a/node_modules/lucide-preact/dist/esm/icons/zap.js","../components/Icon.tsx","../components/WidgetLauncherButton.tsx","../components/Tabs.tsx","../components/ScreenshotManager.tsx","../components/WidgetDialog.tsx","../components/Toast.tsx","../../../node_modules/.bun/fabric@6.9.1/node_modules/fabric/dist/index.min.mjs","../annotate/AnnotationCanvas.tsx","../../../node_modules/.bun/html-to-image@1.11.13/node_modules/html-to-image/es/util.js","../../../node_modules/.bun/html-to-image@1.11.13/node_modules/html-to-image/es/clone-pseudos.js","../../../node_modules/.bun/html-to-image@1.11.13/node_modules/html-to-image/es/mimes.js","../../../node_modules/.bun/html-to-image@1.11.13/node_modules/html-to-image/es/dataurl.js","../../../node_modules/.bun/html-to-image@1.11.13/node_modules/html-to-image/es/clone-node.js","../../../node_modules/.bun/html-to-image@1.11.13/node_modules/html-to-image/es/embed-resources.js","../../../node_modules/.bun/html-to-image@1.11.13/node_modules/html-to-image/es/embed-images.js","../../../node_modules/.bun/html-to-image@1.11.13/node_modules/html-to-image/es/apply-style.js","../../../node_modules/.bun/html-to-image@1.11.13/node_modules/html-to-image/es/embed-webfonts.js","../../../node_modules/.bun/html-to-image@1.11.13/node_modules/html-to-image/es/index.js","../capture/screenshot.ts","../capture/context.ts","../../../node_modules/.bun/idb@8.0.3/node_modules/idb/build/index.js","../storage/report-buffer.ts","../api/submit.ts","../components/App.tsx","../config.ts","../index.ts"],"sourcesContent":["var n,l,u,t,i,r,o,e,f,c,s,a,h,p={},v=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,w=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function g(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return m(l,e,i,r,null)}function m(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function b(){return{current:null}}function k(n){return n.children}function x(n,l){this.props=n,this.context=l}function S(n,l){if(null==l)return n.__?S(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?S(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!$.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)($)}function $(){for(var n,u,t,r,o,f,c,s=1;i.length;)i.length>s&&i.sort(e),n=i.shift(),s=i.length,n.__d&&(t=void 0,r=void 0,o=(r=(u=n).__v).__e,f=[],c=[],u.__P&&((t=d({},r)).__v=r.__v+1,l.vnode&&l.vnode(t),O(u.__P,t,r,u.__n,u.__P.namespaceURI,32&r.__u?[o]:null,f,null==o?S(r):o,!!(32&r.__u),c),t.__v=r.__v,t.__.__k[t.__i]=t,N(f,t,c),r.__e=r.__=null,t.__e!=o&&C(t)));$.__r=0}function I(n,l,u,t,i,r,o,e,f,c,s){var a,h,y,w,d,g,_,m=t&&t.__k||v,b=l.length;for(f=P(u,l,m,f,b),a=0;a<b;a++)null!=(y=u.__k[a])&&(h=-1==y.__i?p:m[y.__i]||p,y.__i=a,g=O(n,y,h,i,r,o,e,f,c,s),w=y.__e,y.ref&&h.ref!=y.ref&&(h.ref&&B(h.ref,null,y),s.push(y.ref,y.__c||w,y)),null==d&&null!=w&&(d=w),(_=!!(4&y.__u))||h.__k===y.__k?f=A(y,f,n,_):\"function\"==typeof y.type&&void 0!==g?f=g:w&&(f=w.nextSibling),y.__u&=-7);return u.__e=d,f}function P(n,l,u,t,i){var r,o,e,f,c,s=u.length,a=s,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?o=n.__k[r]=m(null,o,null,null,null):w(o)?o=n.__k[r]=m(k,{children:o},null,null,null):null==o.constructor&&o.__b>0?o=n.__k[r]=m(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):n.__k[r]=o,f=r+h,o.__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=L(o,u,f,a))&&(a--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>s?h--:i<s&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(a)for(r=0;r<s;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=S(e)),D(e,e));return t}function A(n,l,u,t){var i,r;if(\"function\"==typeof n.type){for(i=n.__k,r=0;i&&r<i.length;r++)i[r]&&(i[r].__=n,l=A(i[r],l,u,t));return l}n.__e!=l&&(t&&(l&&n.type&&!l.parentNode&&(l=S(n)),u.insertBefore(n.__e,l||null)),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(w(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i,r,o,e=n.key,f=n.type,c=l[u],s=null!=c&&0==(2&c.__u);if(null===c&&null==e||s&&e==c.key&&f==c.type)return u;if(t>(s?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;)if(null!=(c=l[o=i>=0?i--:r++])&&0==(2&c.__u)&&e==c.key&&f==c.type)return o;return-1}function T(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||y.test(l)?u:u+\"px\"}function j(n,l,u,t,i){var r,o;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||T(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(f,\"$1\")),o=l.toLowerCase(),l=o in n||\"onFocusOut\"==l||\"onFocusIn\"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u.u=t.u:(u.u=c,n.addEventListener(l,r?a:s,r)):n.removeEventListener(l,r?a:s,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function F(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=c++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function O(n,u,t,i,r,o,e,f,c,s){var a,h,p,v,y,_,m,b,S,C,M,$,P,A,H,L,T,j=u.type;if(null!=u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof j)try{if(b=u.props,S=\"prototype\"in j&&j.prototype.render,C=(a=j.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,t.__c?m=(h=u.__c=t.__c).__=h.__E:(S?u.__c=h=new j(b,M):(u.__c=h=new x(b,M),h.constructor=j,h.render=E),C&&C.sub(h),h.state||(h.state={}),h.__n=i,p=h.__d=!0,h.__h=[],h._sb=[]),S&&null==h.__s&&(h.__s=h.state),S&&null!=j.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=d({},h.__s)),d(h.__s,j.getDerivedStateFromProps(b,h.__s))),v=h.props,y=h.state,h.__v=u,p)S&&null==j.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),S&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(S&&null==j.getDerivedStateFromProps&&b!==v&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(b,M),u.__v==t.__v||!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(b,h.__s,M)){for(u.__v!=t.__v&&(h.props=b,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),$=0;$<h._sb.length;$++)h.__h.push(h._sb[$]);h._sb=[],h.__h.length&&e.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(b,h.__s,M),S&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(v,y,_)})}if(h.context=M,h.props=b,h.__P=n,h.__e=!1,P=l.__r,A=0,S){for(h.state=h.__s,h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++A<25);h.state=h.__s,null!=h.getChildContext&&(i=d(d({},i),h.getChildContext())),S&&!p&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(v,y)),L=a,null!=a&&a.type===k&&null==a.key&&(L=V(a.props.children)),f=I(n,w(L)?L:[L],u,t,i,r,o,e,f,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&e.push(h),m&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=o)if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;o[o.indexOf(f)]=null,u.__e=f}else{for(T=o.length;T--;)g(o[T]);z(u)}else u.__e=t.__e,u.__k=t.__k,n.then||z(u);l.__e(n,u,t)}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=q(t.__e,u,t,i,r,o,e,c,s);return(a=l.diffed)&&a(u),128&u.__u?void 0:f}function z(n){n&&n.__c&&(n.__c.__e=!0),n&&n.__k&&n.__k.forEach(z)}function N(n,u,t){for(var i=0;i<t.length;i++)B(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function V(n){return\"object\"!=typeof n||null==n||n.__b&&n.__b>0?n:w(n)?n.map(V):d({},n)}function q(u,t,i,r,o,e,f,c,s){var a,h,v,y,d,_,m,b=i.props||p,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(a=0;a<e.length;a++)if((d=e[a])&&\"setAttribute\"in d==!!x&&(x?d.localName==x:3==d.nodeType)){u=d,e[a]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)b===k||c&&u.data==k||(u.data=k);else{if(e=e&&n.call(u.childNodes),!c&&null!=e)for(b={},a=0;a<u.attributes.length;a++)b[(d=u.attributes[a]).name]=d.value;for(a in b)if(d=b[a],\"children\"==a);else if(\"dangerouslySetInnerHTML\"==a)v=d;else if(!(a in k)){if(\"value\"==a&&\"defaultValue\"in k||\"checked\"==a&&\"defaultChecked\"in k)continue;j(u,a,null,d,o)}for(a in k)d=k[a],\"children\"==a?y=d:\"dangerouslySetInnerHTML\"==a?h=d:\"value\"==a?_=d:\"checked\"==a?m=d:c&&\"function\"!=typeof d||b[a]===d||j(u,a,d,b[a],o);if(h)c||v&&(h.__html==v.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(v&&(u.innerHTML=\"\"),I(\"template\"==t.type?u.content:u,w(y)?y:[y],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&S(i,0),c,s),null!=e)for(a=e.length;a--;)g(e[a]);c||(a=\"value\",\"progress\"==x&&null==_?u.removeAttribute(\"value\"):null!=_&&(_!==u[a]||\"progress\"==x&&!_||\"option\"==x&&_!=b[a])&&j(u,a,_,b[a],o),a=\"checked\",null!=m&&m!=u[a]&&j(u,a,m,b[a],o))}return u}function B(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function D(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||B(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&D(i[r],u,t||\"function\"!=typeof n.type);t||g(n.__e),n.__c=n.__=n.__e=void 0}function E(n,l,u){return this.constructor(n,u)}function G(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],O(t,u=(!r&&i||t).__k=_(k,null,[u]),o||p,p,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),N(e,u,f)}function J(n,l){G(n,l,J)}function K(l,u,t){var i,r,o,e,f=d({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),m(l.type,f,i||l.key,r||l.ref,null)}function Q(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+h++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=v.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},x.prototype.render=k,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},$.__r=0,f=/(PointerCapture)$|Capture$/i,c=0,s=F(!1),a=F(!0),h=0;export{x as Component,k as Fragment,K as cloneElement,Q as createContext,_ as createElement,b as createRef,_ as h,J as hydrate,t as isValidElement,l as options,G as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\"&quot;\";break;case 38:f=\"&amp;\";break;case 60:f=\"&lt;\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(t=function(r){return null!==r&&\"object\"==typeof r&&\"function\"==typeof r.valueOf?r.valueOf():r}(t),\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),s=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(s=\"px;\"),i=i+l+\":\"+a+s}}return e+'=\"'+n(i)+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(\"\"+t)+'\"'}function s(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=s(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,s as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function p(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,h(D,n)}function h(n,u,i){var o=p(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=o.__c.props!==n;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c&&c.call(this,n,t,r)||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=p(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=p(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=p(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=p(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=p(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=p(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,35);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,h as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\n\nexport { mergeClasses, toKebabCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { h, toChildArray } from 'preact';\nimport defaultAttributes from './defaultAttributes.js';\n\nconst Icon = ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n children,\n iconNode,\n class: classes = \"\",\n ...rest\n}) => h(\n \"svg\",\n {\n ...defaultAttributes,\n width: String(size),\n height: size,\n stroke: color,\n [\"stroke-width\"]: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n class: [\"lucide\", classes].join(\" \"),\n ...rest\n },\n [...iconNode.map(([tag, attrs]) => h(tag, attrs)), ...toChildArray(children)]\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { h } from 'preact';\nimport { mergeClasses, toKebabCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = ({ class: classes = \"\", children, ...props }) => h(\n Icon,\n {\n ...props,\n iconNode,\n class: mergeClasses(\n `lucide-${toKebabCase(iconName)}`,\n classes\n )\n },\n children\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Bug = createLucideIcon(\"Bug\", [\n [\"path\", { d: \"m8 2 1.88 1.88\", key: \"fmnt4t\" }],\n [\"path\", { d: \"M14.12 3.88 16 2\", key: \"qol33r\" }],\n [\"path\", { d: \"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1\", key: \"d7y7pr\" }],\n [\n \"path\",\n {\n d: \"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6\",\n key: \"xs1cw7\"\n }\n ],\n [\"path\", { d: \"M12 20v-9\", key: \"1qisl0\" }],\n [\"path\", { d: \"M6.53 9C4.6 8.8 3 7.1 3 5\", key: \"32zzws\" }],\n [\"path\", { d: \"M6 13H2\", key: \"82j7cp\" }],\n [\"path\", { d: \"M3 21c0-2.1 1.7-3.9 3.8-4\", key: \"4p0ekp\" }],\n [\"path\", { d: \"M20.97 5c0 2.1-1.6 3.8-3.5 4\", key: \"18gb23\" }],\n [\"path\", { d: \"M22 13h-4\", key: \"1jl80f\" }],\n [\"path\", { d: \"M17.2 17c2.1.1 3.8 1.9 3.8 4\", key: \"k3fwyw\" }]\n]);\n\nexport { Bug as default };\n//# sourceMappingURL=bug.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleAlert = createLucideIcon(\"CircleAlert\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n]);\n\nexport { CircleAlert as default };\n//# sourceMappingURL=circle-alert.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleHelp = createLucideIcon(\"CircleHelp\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\", key: \"1u773s\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n]);\n\nexport { CircleHelp as default };\n//# sourceMappingURL=circle-help.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Flag = createLucideIcon(\"Flag\", [\n [\"path\", { d: \"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\", key: \"i9b6wo\" }],\n [\"line\", { x1: \"4\", x2: \"4\", y1: \"22\", y2: \"15\", key: \"1cm3nv\" }]\n]);\n\nexport { Flag as default };\n//# sourceMappingURL=flag.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Heart = createLucideIcon(\"Heart\", [\n [\n \"path\",\n {\n d: \"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z\",\n key: \"c3ymky\"\n }\n ]\n]);\n\nexport { Heart as default };\n//# sourceMappingURL=heart.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Info = createLucideIcon(\"Info\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 16v-4\", key: \"1dtifu\" }],\n [\"path\", { d: \"M12 8h.01\", key: \"e9boi3\" }]\n]);\n\nexport { Info as default };\n//# sourceMappingURL=info.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Mail = createLucideIcon(\"Mail\", [\n [\"rect\", { width: \"20\", height: \"16\", x: \"2\", y: \"4\", rx: \"2\", key: \"18n3k1\" }],\n [\"path\", { d: \"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\", key: \"1ocrg3\" }]\n]);\n\nexport { Mail as default };\n//# sourceMappingURL=mail.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst MessageSquare = createLucideIcon(\"MessageSquare\", [\n [\"path\", { d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\", key: \"1lielz\" }]\n]);\n\nexport { MessageSquare as default };\n//# sourceMappingURL=message-square.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Send = createLucideIcon(\"Send\", [\n [\n \"path\",\n {\n d: \"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\",\n key: \"1ffxy3\"\n }\n ],\n [\"path\", { d: \"m21.854 2.147-10.94 10.939\", key: \"12cjpa\" }]\n]);\n\nexport { Send as default };\n//# sourceMappingURL=send.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Settings = createLucideIcon(\"Settings\", [\n [\n \"path\",\n {\n d: \"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\",\n key: \"1qme2f\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n]);\n\nexport { Settings as default };\n//# sourceMappingURL=settings.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Star = createLucideIcon(\"Star\", [\n [\n \"path\",\n {\n d: \"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\",\n key: \"r04s7s\"\n }\n ]\n]);\n\nexport { Star as default };\n//# sourceMappingURL=star.js.map\n","/**\n * @license lucide-preact v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Zap = createLucideIcon(\"Zap\", [\n [\n \"path\",\n {\n d: \"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z\",\n key: \"1xq2db\"\n }\n ]\n]);\n\nexport { Zap as default };\n//# sourceMappingURL=zap.js.map\n","import {\n Bug,\n MessageSquare,\n AlertCircle,\n HelpCircle,\n Mail,\n Send,\n Flag,\n Star,\n Zap,\n Heart,\n Info,\n Settings,\n type LucideIcon,\n} from 'lucide-preact';\n\ninterface IconProps {\n name: string;\n class?: string;\n size?: number;\n strokeWidth?: number;\n}\n\nconst ICON_MAP: Record<string, LucideIcon> = {\n 'bug': Bug,\n 'message-square': MessageSquare,\n 'alert-circle': AlertCircle,\n 'help-circle': HelpCircle,\n 'mail': Mail,\n 'send': Send,\n 'flag': Flag,\n 'star': Star,\n 'zap': Zap,\n 'heart': Heart,\n 'info': Info,\n 'settings': Settings,\n};\n\nexport const Icon = ({ name, class: className, size = 18, strokeWidth = 2 }: IconProps) => {\n const IconComponent = ICON_MAP[name];\n\n if (!IconComponent) {\n return null;\n }\n\n return <IconComponent class={className} size={size} strokeWidth={strokeWidth} />;\n};\n\n","import { FunctionComponent } from 'preact';\nimport { useState, useEffect, useRef } from 'preact/hooks';\nimport { Icon } from './Icon.js';\n\ninterface WidgetLauncherButtonProps {\n position: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';\n buttonText: string | null;\n buttonShape: 'rectangle' | 'round';\n buttonIcon: string | null;\n buttonIconSize: number;\n buttonIconStroke: number;\n theme: 'auto' | 'light' | 'dark';\n lightButtonColor: string;\n lightTextColor: string;\n lightButtonHoverColor: string;\n lightTextHoverColor: string;\n darkButtonColor: string;\n darkTextColor: string;\n darkButtonHoverColor: string;\n darkTextHoverColor: string;\n enableHoverScaleEffect: boolean;\n tooltipEnabled: boolean;\n tooltipText: string | null;\n onClick: () => void;\n}\n\nexport const WidgetLauncherButton: FunctionComponent<WidgetLauncherButtonProps> = ({\n position,\n buttonText,\n buttonShape,\n buttonIcon,\n buttonIconSize,\n buttonIconStroke,\n theme,\n lightButtonColor,\n lightTextColor,\n lightButtonHoverColor,\n lightTextHoverColor,\n darkButtonColor,\n darkTextColor,\n darkButtonHoverColor,\n darkTextHoverColor,\n enableHoverScaleEffect,\n tooltipEnabled,\n tooltipText,\n onClick,\n}) => {\n const [isHovered, setIsHovered] = useState(false);\n const [isDarkMode, setIsDarkMode] = useState(false);\n const [tooltipOffset, setTooltipOffset] = useState({ left: '50%', transform: 'translateX(-50%)', arrowLeft: '50%' });\n const tooltipRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n // Detect theme on mount and when theme setting changes\n useEffect(() => {\n if (theme === 'dark') {\n setIsDarkMode(true);\n return;\n } else if (theme === 'light') {\n setIsDarkMode(false);\n return;\n }\n\n // Auto mode: detect from page\n const darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n setIsDarkMode(darkModeMediaQuery.matches);\n\n const handler = (e: MediaQueryListEvent) => setIsDarkMode(e.matches);\n darkModeMediaQuery.addEventListener('change', handler);\n return () => darkModeMediaQuery.removeEventListener('change', handler);\n }, [theme]);\n\n // Calculate tooltip position to ensure 4px margin from window edges\n useEffect(() => {\n if (isHovered && tooltipRef.current && buttonRef.current) {\n const tooltip = tooltipRef.current;\n const button = buttonRef.current;\n\n // Small delay to ensure tooltip is rendered\n requestAnimationFrame(() => {\n const tooltipRect = tooltip.getBoundingClientRect();\n const buttonRect = button.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const margin = 4;\n\n // Calculate button center in viewport coordinates\n const buttonCenter = buttonRect.left + buttonRect.width / 2;\n const tooltipHalfWidth = tooltipRect.width / 2;\n\n // Calculate how much to shift from centered position\n let shift = 0;\n const centeredLeft = buttonCenter - tooltipHalfWidth;\n\n // Check if tooltip would go off-screen on the left\n if (centeredLeft < margin) {\n shift = margin - centeredLeft;\n }\n // Check if tooltip would go off-screen on the right\n else if (centeredLeft + tooltipRect.width > windowWidth - margin) {\n shift = (windowWidth - margin) - (centeredLeft + tooltipRect.width);\n }\n\n setTooltipOffset({\n left: '50%',\n transform: `translateX(-50%) translateX(${shift}px)`,\n arrowLeft: '50%',\n });\n });\n }\n }, [isHovered, tooltipText]);\n\n // Select colors based on theme and hover state\n const buttonColor = isDarkMode\n ? (isHovered ? darkButtonHoverColor : darkButtonColor)\n : (isHovered ? lightButtonHoverColor : lightButtonColor);\n\n const textColor = isDarkMode\n ? (isHovered ? darkTextHoverColor : darkTextColor)\n : (isHovered ? lightTextHoverColor : lightTextColor);\n\n // Base colors for tooltip (always use non-hover colors)\n const tooltipBgColor = isDarkMode ? darkButtonColor : lightButtonColor;\n const tooltipTextColor = isDarkMode ? darkTextColor : lightTextColor;\n\n const borderRadius = buttonShape === 'round' ? '50%' : '8px';\n const ariaLabel = buttonText || 'Report Bug';\n\n // For round shape, padding scales with icon size (half the icon size)\n // Smaller icons get less padding, larger icons get more padding\n const padding = buttonShape === 'round' ? `${buttonIconSize / 2}px` : '12px 20px';\n\n const buttonClasses = `bugpin-launcher-button${enableHoverScaleEffect ? ' hover-scale' : ''}`;\n\n // Tooltip styles with dynamic positioning (matches button colors)\n const tooltipStyles: Record<string, string> = {\n position: 'absolute',\n bottom: '100%',\n marginBottom: '8px',\n padding: '6px 12px',\n backgroundColor: tooltipBgColor,\n color: tooltipTextColor,\n fontSize: '12px',\n borderRadius: '4px',\n whiteSpace: 'nowrap',\n pointerEvents: 'none',\n zIndex: '2147483647',\n opacity: '0',\n animation: 'bugpin-tooltip-fade-in 0.2s ease-in-out forwards',\n boxShadow: '0 2px 8px rgba(0, 0, 0, 0.2)',\n left: tooltipOffset.left,\n transform: tooltipOffset.transform,\n };\n\n // Arrow styles with dynamic positioning (matches button colors)\n const arrowStyles: Record<string, string> = {\n position: 'absolute',\n top: '100%',\n left: tooltipOffset.arrowLeft,\n transform: 'translateX(-50%)',\n marginTop: '-4px',\n borderWidth: '4px',\n borderStyle: 'solid',\n borderColor: `${tooltipBgColor} transparent transparent transparent`,\n };\n\n return (\n <div class={`bugpin-launcher-button-container ${position}`} style={{ position: 'fixed', zIndex: '2147483647' }}>\n <button\n ref={buttonRef}\n class={buttonClasses}\n style={{\n position: 'relative',\n backgroundColor: buttonColor,\n color: textColor,\n borderRadius: borderRadius,\n padding: padding,\n transition: 'background-color 0.2s ease, color 0.2s ease',\n }}\n onClick={onClick}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n aria-label={ariaLabel}\n >\n {buttonIcon && <Icon name={buttonIcon} size={buttonIconSize} strokeWidth={buttonIconStroke} />}\n {buttonText && <span>{buttonText}</span>}\n </button>\n\n {tooltipEnabled && tooltipText && isHovered && (\n <div ref={tooltipRef} class=\"bugpin-tooltip\" style={tooltipStyles}>\n {tooltipText}\n <div style={arrowStyles} />\n </div>\n )}\n </div>\n );\n};\n","import { FunctionComponent, JSX } from 'preact';\n\nexport interface Tab {\n id: string;\n label: string;\n icon?: JSX.Element;\n}\n\ninterface TabsProps {\n tabs: Tab[];\n activeTab: string;\n onTabChange: (tabId: string) => void;\n}\n\nexport const Tabs: FunctionComponent<TabsProps> = ({ tabs, activeTab, onTabChange }) => {\n return (\n <div class=\"bugpin-tabs\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n class={`bugpin-tab ${activeTab === tab.id ? 'active' : ''}`}\n onClick={() => onTabChange(tab.id)}\n >\n {tab.icon && <span class=\"bugpin-tab-icon\">{tab.icon}</span>}\n {tab.label}\n </button>\n ))}\n </div>\n );\n};\n","import { FunctionComponent } from 'preact';\nimport { useState, useCallback, useRef } from 'preact/hooks';\n\nexport interface CapturedMedia {\n id: string;\n dataUrl: string;\n timestamp: Date;\n annotated: boolean;\n mimeType: string;\n width?: number;\n height?: number;\n annotations?: object;\n}\n\ninterface ScreenshotManagerProps {\n media: CapturedMedia[];\n onCapture: () => void;\n onUpload: (item: CapturedMedia) => void;\n onRemove: (id: string) => void;\n onAnnotate: (id: string) => void;\n isCapturing: boolean;\n enableAnnotation: boolean;\n}\n\nconst MAX_IMAGE_SIZE = 10 * 1024 * 1024; // 10MB\nconst MAX_VIDEO_SIZE = 50 * 1024 * 1024; // 50MB\nconst ACCEPTED_IMAGE_TYPES = ['image/png', 'image/jpeg', 'image/gif', 'image/webp'];\nconst ACCEPTED_VIDEO_TYPES = ['video/mp4', 'video/webm', 'video/quicktime', 'video/x-msvideo'];\n\nexport const ScreenshotManager: FunctionComponent<ScreenshotManagerProps> = ({\n media,\n onCapture,\n onUpload,\n onRemove,\n onAnnotate,\n isCapturing,\n enableAnnotation,\n}) => {\n const [isDragging, setIsDragging] = useState(false);\n const [uploadError, setUploadError] = useState<string | null>(null);\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const isVideo = (mimeType: string) => mimeType.startsWith('video/');\n const isImage = (mimeType: string) => mimeType.startsWith('image/');\n\n const validateFile = useCallback((file: File): string | null => {\n if (isImage(file.type)) {\n if (!ACCEPTED_IMAGE_TYPES.includes(file.type)) {\n return `Unsupported image format: ${file.type}`;\n }\n if (file.size > MAX_IMAGE_SIZE) {\n return `Image too large. Maximum size is 10MB.`;\n }\n } else if (isVideo(file.type)) {\n if (!ACCEPTED_VIDEO_TYPES.includes(file.type)) {\n return `Unsupported video format: ${file.type}`;\n }\n if (file.size > MAX_VIDEO_SIZE) {\n return `Video too large. Maximum size is 50MB.`;\n }\n } else {\n return `Unsupported file type: ${file.type}`;\n }\n return null;\n }, []);\n\n const processFile = useCallback(async (file: File) => {\n const error = validateFile(file);\n if (error) {\n setUploadError(error);\n return;\n }\n\n setUploadError(null);\n\n const reader = new FileReader();\n reader.onload = () => {\n const dataUrl = reader.result as string;\n\n if (isImage(file.type)) {\n const img = new Image();\n img.onload = () => {\n const item: CapturedMedia = {\n id: `upload-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`,\n dataUrl,\n timestamp: new Date(),\n annotated: false,\n mimeType: file.type,\n width: img.width,\n height: img.height,\n };\n onUpload(item);\n };\n img.src = dataUrl;\n } else if (isVideo(file.type)) {\n const video = document.createElement('video');\n video.onloadedmetadata = () => {\n const item: CapturedMedia = {\n id: `upload-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`,\n dataUrl,\n timestamp: new Date(),\n annotated: false,\n mimeType: file.type,\n width: video.videoWidth,\n height: video.videoHeight,\n };\n onUpload(item);\n };\n video.src = dataUrl;\n }\n };\n reader.readAsDataURL(file);\n }, [validateFile, onUpload]);\n\n const handleDragOver = useCallback((e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragging(true);\n }, []);\n\n const handleDragLeave = useCallback((e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragging(false);\n }, []);\n\n const handleDrop = useCallback(async (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setIsDragging(false);\n\n const files = e.dataTransfer?.files;\n if (files) {\n for (let i = 0; i < files.length; i++) {\n await processFile(files[i]);\n }\n }\n }, [processFile]);\n\n const handleFileInput = useCallback(async (e: Event) => {\n const input = e.target as HTMLInputElement;\n const files = input.files;\n if (files) {\n for (let i = 0; i < files.length; i++) {\n await processFile(files[i]);\n }\n }\n input.value = '';\n }, [processFile]);\n\n const handleUploadClick = useCallback(() => {\n fileInputRef.current?.click();\n }, []);\n\n const formatTimestamp = (date: Date) => {\n return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });\n };\n\n return (\n <div class=\"bugpin-screenshot-manager\">\n {/* Action buttons */}\n <div class=\"bugpin-media-actions\">\n <button\n type=\"button\"\n class=\"bugpin-btn-action\"\n onClick={onCapture}\n disabled={isCapturing}\n >\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 15.2c1.77 0 3.2-1.43 3.2-3.2S13.77 8.8 12 8.8 8.8 10.23 8.8 12s1.43 3.2 3.2 3.2zM9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\" fill=\"currentColor\" />\n </svg>\n {isCapturing ? 'Capturing...' : 'Capture Screenshot'}\n </button>\n <button\n type=\"button\"\n class=\"bugpin-btn-action bugpin-btn-action-secondary\"\n onClick={handleUploadClick}\n >\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z\" fill=\"currentColor\" />\n </svg>\n Upload File\n </button>\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"image/*,video/*\"\n multiple\n style={{ display: 'none' }}\n onChange={handleFileInput}\n />\n </div>\n\n {/* Error message */}\n {uploadError && (\n <div class=\"bugpin-upload-error\">\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\" fill=\"currentColor\" />\n </svg>\n {uploadError}\n </div>\n )}\n\n {/* Drop zone / Media grid */}\n <div\n class={`bugpin-drop-zone ${isDragging ? 'dragging' : ''} ${media.length > 0 ? 'has-media' : ''}`}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n {media.length === 0 ? (\n <div class=\"bugpin-drop-placeholder\">\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z\" fill=\"currentColor\" />\n </svg>\n <p>Drag and drop images or videos here</p>\n <span>or use the buttons above</span>\n </div>\n ) : (\n <>\n <div class=\"bugpin-media-grid\">\n {media.map((item) => (\n <div key={item.id} class=\"bugpin-media-card\">\n <div class=\"bugpin-media-preview\">\n {isVideo(item.mimeType) ? (\n <video src={item.dataUrl} muted />\n ) : (\n <img src={item.dataUrl} alt=\"Screenshot\" />\n )}\n {/* Badges */}\n <div class=\"bugpin-media-badges\">\n {item.annotated && <span class=\"bugpin-badge annotated\">Annotated</span>}\n {isVideo(item.mimeType) && <span class=\"bugpin-badge video\">Video</span>}\n </div>\n </div>\n <div class=\"bugpin-media-info\">\n <span class=\"bugpin-media-time\">{formatTimestamp(item.timestamp)}</span>\n {item.width && item.height && (\n <span class=\"bugpin-media-dimensions\">{item.width} × {item.height}</span>\n )}\n </div>\n <div class=\"bugpin-media-item-actions\">\n {enableAnnotation && isImage(item.mimeType) && (\n <button\n type=\"button\"\n class=\"bugpin-btn-icon\"\n onClick={() => onAnnotate(item.id)}\n title=\"Annotate\"\n >\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 000-1.41l-2.34-2.34a.996.996 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\" fill=\"currentColor\" />\n </svg>\n </button>\n )}\n <button\n type=\"button\"\n class=\"bugpin-btn-icon bugpin-btn-icon-danger\"\n onClick={() => onRemove(item.id)}\n title=\"Remove\"\n >\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\" fill=\"currentColor\" />\n </svg>\n </button>\n </div>\n </div>\n ))}\n </div>\n <div class=\"bugpin-drop-more\">\n <span>Drop more files here</span>\n </div>\n </>\n )}\n </div>\n\n {/* Helper text */}\n <p class=\"bugpin-helper-text\">\n Supported: PNG, JPG, GIF, WebP (max 10MB) • MP4, WebM, MOV, AVI (max 50MB)\n </p>\n </div>\n );\n};\n","import { FunctionComponent } from 'preact';\nimport { useState, useCallback } from 'preact/hooks';\nimport { Tabs } from './Tabs.js';\nimport { ScreenshotManager, CapturedMedia } from './ScreenshotManager.js';\n\nexport interface FormData {\n title: string;\n description: string;\n priority: 'lowest' | 'low' | 'medium' | 'high' | 'highest';\n reporterEmail: string;\n reporterName: string;\n}\n\ninterface WidgetDialogProps {\n onClose: () => void;\n onSubmit: (data: FormData, media: CapturedMedia[]) => void;\n onCaptureScreenshot: () => void;\n onAnnotateMedia: (id: string) => void;\n media: CapturedMedia[];\n onAddMedia: (item: CapturedMedia) => void;\n onRemoveMedia: (id: string) => void;\n isSubmitting: boolean;\n isCapturing: boolean;\n enableAnnotation: boolean;\n // Controlled state props (lifted to App for persistence across capture)\n activeTab: string;\n onActiveTabChange: (tab: string) => void;\n formData: FormData;\n onFormDataChange: (data: FormData) => void;\n}\n\nconst TABS = [\n {\n id: 'details',\n label: 'Details',\n icon: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z\" fill=\"currentColor\" />\n </svg>\n ),\n },\n {\n id: 'media',\n label: 'Screenshots',\n icon: (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z\" fill=\"currentColor\" />\n </svg>\n ),\n },\n];\n\nexport const WidgetDialog: FunctionComponent<WidgetDialogProps> = ({\n onClose,\n onSubmit,\n onCaptureScreenshot,\n onAnnotateMedia,\n media,\n onAddMedia,\n onRemoveMedia,\n isSubmitting,\n isCapturing,\n enableAnnotation,\n activeTab,\n onActiveTabChange,\n formData,\n onFormDataChange,\n}) => {\n const [errors, setErrors] = useState<Partial<Record<keyof FormData, string>>>({});\n\n const handleInputChange = useCallback((field: keyof FormData, value: string) => {\n onFormDataChange({ ...formData, [field]: value });\n if (errors[field]) {\n setErrors((prev) => ({ ...prev, [field]: undefined }));\n }\n }, [formData, onFormDataChange, errors]);\n\n const validate = useCallback((): boolean => {\n const newErrors: Partial<Record<keyof FormData, string>> = {};\n\n if (!formData.title.trim()) {\n newErrors.title = 'Title is required';\n } else if (formData.title.trim().length < 4) {\n newErrors.title = 'Title must be at least 4 characters';\n }\n\n if (formData.reporterEmail && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(formData.reporterEmail)) {\n newErrors.reporterEmail = 'Invalid email address';\n }\n\n setErrors(newErrors);\n return Object.keys(newErrors).length === 0;\n }, [formData]);\n\n const handleSubmit = useCallback((e: Event) => {\n e.preventDefault();\n\n if (!validate()) {\n onActiveTabChange('details');\n return;\n }\n\n onSubmit(formData, media);\n }, [formData, media, validate, onSubmit, onActiveTabChange]);\n\n const handleOverlayClick = useCallback((e: MouseEvent) => {\n if ((e.target as HTMLElement).classList.contains('bugpin-overlay')) {\n onClose();\n }\n }, [onClose]);\n\n const mediaCount = media.length;\n\n return (\n <div class=\"bugpin-overlay\" onClick={handleOverlayClick}>\n <div class=\"bugpin-dialog bugpin-dialog-tabbed\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"bugpin-title\">\n {/* Header */}\n <div class=\"bugpin-header\">\n <h2 id=\"bugpin-title\">Report a Bug</h2>\n <button class=\"bugpin-close\" onClick={onClose} aria-label=\"Close\">\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\" fill=\"currentColor\" />\n </svg>\n </button>\n </div>\n\n {/* Tabs */}\n <div class=\"bugpin-tabs-container\">\n <Tabs\n tabs={TABS.map((tab) => ({\n ...tab,\n label: tab.id === 'media' && mediaCount > 0\n ? `${tab.label} (${mediaCount})`\n : tab.label,\n }))}\n activeTab={activeTab}\n onTabChange={onActiveTabChange}\n />\n </div>\n\n {/* Body */}\n <div class=\"bugpin-body\">\n {/* Details Tab */}\n {activeTab === 'details' && (\n <form class=\"bugpin-form\" onSubmit={handleSubmit}>\n {/* Title */}\n <div class=\"bugpin-field\">\n <label class=\"bugpin-label required\" for=\"bugpin-title-input\">Title</label>\n <input\n id=\"bugpin-title-input\"\n class=\"bugpin-input\"\n type=\"text\"\n placeholder=\"Brief description of the issue\"\n value={formData.title}\n onInput={(e) => handleInputChange('title', (e.target as HTMLInputElement).value)}\n maxLength={200}\n />\n {errors.title && <span class=\"bugpin-error\">{errors.title}</span>}\n </div>\n\n {/* Description */}\n <div class=\"bugpin-field\">\n <label class=\"bugpin-label\" for=\"bugpin-description\">Description</label>\n <textarea\n id=\"bugpin-description\"\n class=\"bugpin-textarea\"\n placeholder=\"Steps to reproduce, expected behavior, etc.\"\n value={formData.description}\n onInput={(e) => handleInputChange('description', (e.target as HTMLTextAreaElement).value)}\n />\n </div>\n\n {/* Priority */}\n <div class=\"bugpin-field\">\n <label class=\"bugpin-label\" for=\"bugpin-priority\">Priority</label>\n <select\n id=\"bugpin-priority\"\n class=\"bugpin-select\"\n value={formData.priority}\n onChange={(e) => handleInputChange('priority', (e.target as HTMLSelectElement).value)}\n >\n <option value=\"lowest\">Lowest</option>\n <option value=\"low\">Low</option>\n <option value=\"medium\">Medium</option>\n <option value=\"high\">High</option>\n <option value=\"highest\">Highest</option>\n </select>\n </div>\n\n {/* Email */}\n <div class=\"bugpin-field\">\n <label class=\"bugpin-label\" for=\"bugpin-email\">Email (optional)</label>\n <input\n id=\"bugpin-email\"\n class=\"bugpin-input\"\n type=\"email\"\n placeholder=\"your@email.com\"\n value={formData.reporterEmail}\n onInput={(e) => handleInputChange('reporterEmail', (e.target as HTMLInputElement).value)}\n />\n {errors.reporterEmail && <span class=\"bugpin-error\">{errors.reporterEmail}</span>}\n </div>\n\n {/* Name */}\n <div class=\"bugpin-field\">\n <label class=\"bugpin-label\" for=\"bugpin-name\">Name (optional)</label>\n <input\n id=\"bugpin-name\"\n class=\"bugpin-input\"\n type=\"text\"\n placeholder=\"Your name\"\n value={formData.reporterName}\n onInput={(e) => handleInputChange('reporterName', (e.target as HTMLInputElement).value)}\n />\n </div>\n </form>\n )}\n\n {/* Media Tab */}\n {activeTab === 'media' && (\n <ScreenshotManager\n media={media}\n onCapture={onCaptureScreenshot}\n onUpload={onAddMedia}\n onRemove={onRemoveMedia}\n onAnnotate={onAnnotateMedia}\n isCapturing={isCapturing}\n enableAnnotation={enableAnnotation}\n />\n )}\n </div>\n\n {/* Footer */}\n <div class=\"bugpin-footer\">\n <button type=\"button\" class=\"bugpin-btn-cancel\" onClick={onClose} disabled={isSubmitting}>\n Cancel\n </button>\n <button\n type=\"submit\"\n class=\"bugpin-btn-submit\"\n onClick={handleSubmit}\n disabled={isSubmitting}\n >\n {isSubmitting ? (\n <span class=\"bugpin-spinner\" />\n ) : (\n 'Submit Report'\n )}\n </button>\n </div>\n </div>\n </div>\n );\n};\n","import { FunctionComponent } from 'preact';\nimport { useEffect } from 'preact/hooks';\n\nexport type ToastType = 'success' | 'error' | 'info';\n\ninterface ToastProps {\n message: string;\n type: ToastType;\n onClose: () => void;\n duration?: number;\n}\n\nexport const Toast: FunctionComponent<ToastProps> = ({\n message,\n type,\n onClose,\n duration = 5000,\n}) => {\n useEffect(() => {\n const timer = setTimeout(onClose, duration);\n return () => clearTimeout(timer);\n }, [onClose, duration]);\n\n return (\n <div class={`bugpin-toast ${type}`} role=\"alert\">\n {type === 'success' && (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\" fill=\"currentColor\" />\n </svg>\n )}\n {type === 'error' && (\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\" fill=\"currentColor\" />\n </svg>\n )}\n <span>{message}</span>\n </div>\n );\n};\n","function t(t,e,s){return(e=function(t){var e=function(t,e){if(\"object\"!=typeof t||!t)return t;var s=t[Symbol.toPrimitive];if(void 0!==s){var i=s.call(t,e||\"default\");if(\"object\"!=typeof i)return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}(t,\"string\");return\"symbol\"==typeof e?e:e+\"\"}(e))in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,t}function e(t,e){var s=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),s.push.apply(s,i)}return s}function s(s){for(var i=1;i<arguments.length;i++){var r=null!=arguments[i]?arguments[i]:{};i%2?e(Object(r),!0).forEach((function(e){t(s,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach((function(t){Object.defineProperty(s,t,Object.getOwnPropertyDescriptor(r,t))}))}return s}function i(t,e){if(null==t)return{};var s,i,r=function(t,e){if(null==t)return{};var s={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)>=0)continue;s[i]=t[i]}return s}(t,e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);for(i=0;i<n.length;i++)s=n[i],e.indexOf(s)>=0||{}.propertyIsEnumerable.call(t,s)&&(r[s]=t[s])}return r}function r(t,e){return e||(e=t.slice(0)),Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))}class n{constructor(){t(this,\"browserShadowBlurConstant\",1),t(this,\"DPI\",96),t(this,\"devicePixelRatio\",\"undefined\"!=typeof window?window.devicePixelRatio:1),t(this,\"perfLimitSizeTotal\",2097152),t(this,\"maxCacheSideLimit\",4096),t(this,\"minCacheSideLimit\",256),t(this,\"disableStyleCopyPaste\",!1),t(this,\"enableGLFiltering\",!0),t(this,\"textureSize\",4096),t(this,\"forceGLPutImageData\",!1),t(this,\"cachesBoundsOfCurve\",!1),t(this,\"fontPaths\",{}),t(this,\"NUM_FRACTION_DIGITS\",4)}}const o=new class extends n{constructor(t){super(),this.configure(t)}configure(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.assign(this,t)}addFonts(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.fontPaths=s(s({},this.fontPaths),t)}removeFonts(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach((t=>{delete this.fontPaths[t]}))}clearFonts(){this.fontPaths={}}restoreDefaults(t){const e=new n,s=(null==t?void 0:t.reduce(((t,s)=>(t[s]=e[s],t)),{}))||e;this.configure(s)}},a=function(t){for(var e=arguments.length,s=new Array(e>1?e-1:0),i=1;i<e;i++)s[i-1]=arguments[i];return console[t](\"fabric\",...s)};class h extends Error{constructor(t,e){super(\"fabric: \".concat(t),e)}}class c extends h{constructor(t){super(\"\".concat(t,\" 'options.signal' is in 'aborted' state\"))}}class l{}class u extends l{testPrecision(t,e){const s=\"precision \".concat(e,\" float;\\nvoid main(){}\"),i=t.createShader(t.FRAGMENT_SHADER);return!!i&&(t.shaderSource(i,s),t.compileShader(i),!!t.getShaderParameter(i,t.COMPILE_STATUS))}queryWebGL(t){const e=t.getContext(\"webgl\");e&&(this.maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE),this.GLPrecision=[\"highp\",\"mediump\",\"lowp\"].find((t=>this.testPrecision(e,t))),e.getExtension(\"WEBGL_lose_context\").loseContext(),a(\"log\",\"WebGL: max texture size \".concat(this.maxTextureSize)))}isSupported(t){return!!this.maxTextureSize&&this.maxTextureSize>=t}}const d={};let g;const f=t=>{g=t},p=()=>g||(g={document:document,window:window,isTouchSupported:\"ontouchstart\"in window||\"ontouchstart\"in document||window&&window.navigator&&window.navigator.maxTouchPoints>0,WebGLProbe:new u,dispose(){},copyPasteData:d}),m=()=>p().document,v=()=>p().window,y=()=>{var t;return Math.max(null!==(t=o.devicePixelRatio)&&void 0!==t?t:v().devicePixelRatio,1)};const _=new class{constructor(){t(this,\"boundsOfCurveCache\",{}),this.charWidthsCache=new Map}getFontCache(t){let{fontFamily:e,fontStyle:s,fontWeight:i}=t;e=e.toLowerCase();const r=this.charWidthsCache;r.has(e)||r.set(e,new Map);const n=r.get(e),o=\"\".concat(s.toLowerCase(),\"_\").concat((i+\"\").toLowerCase());return n.has(o)||n.set(o,new Map),n.get(o)}clearFontCache(t){t?this.charWidthsCache.delete((t||\"\").toLowerCase()):this.charWidthsCache=new Map}limitDimsByArea(t){const{perfLimitSizeTotal:e}=o,s=Math.sqrt(e*t);return[Math.floor(s),Math.floor(e/s)]}};const x=\"6.9.1\";function C(){}const b=Math.PI/2,S=2*Math.PI,w=Math.PI/180,T=Object.freeze([1,0,0,1,0,0]),O=16,k=.4477152502,D=\"center\",M=\"left\",P=\"top\",E=\"bottom\",A=\"right\",j=\"none\",F=/\\r?\\n/,L=\"moving\",R=\"scaling\",I=\"rotating\",B=\"rotate\",X=\"skewing\",Y=\"resizing\",W=\"modifyPoly\",V=\"modifyPath\",z=\"changed\",G=\"scale\",H=\"scaleX\",N=\"scaleY\",U=\"skewX\",q=\"skewY\",K=\"fill\",J=\"stroke\",Q=\"modified\",Z=\"json\",$=\"svg\";const tt=new class{constructor(){this[Z]=new Map,this[$]=new Map}has(t){return this[Z].has(t)}getClass(t){const e=this[Z].get(t);if(!e)throw new h(\"No class registered for \".concat(t));return e}setClass(t,e){e?this[Z].set(e,t):(this[Z].set(t.type,t),this[Z].set(t.type.toLowerCase(),t))}getSVGClass(t){return this[$].get(t)}setSVGClass(t,e){this[$].set(null!=e?e:t.type.toLowerCase(),t)}};const et=new class extends Array{remove(t){const e=this.indexOf(t);e>-1&&this.splice(e,1)}cancelAll(){const t=this.splice(0);return t.forEach((t=>t.abort())),t}cancelByCanvas(t){if(!t)return[];const e=this.filter((e=>{var s;return e.target===t||\"object\"==typeof e.target&&(null===(s=e.target)||void 0===s?void 0:s.canvas)===t}));return e.forEach((t=>t.abort())),e}cancelByTarget(t){if(!t)return[];const e=this.filter((e=>e.target===t));return e.forEach((t=>t.abort())),e}};class st{constructor(){t(this,\"__eventListeners\",{})}on(t,e){if(this.__eventListeners||(this.__eventListeners={}),\"object\"==typeof t)return Object.entries(t).forEach((t=>{let[e,s]=t;this.on(e,s)})),()=>this.off(t);if(e){const s=t;return this.__eventListeners[s]||(this.__eventListeners[s]=[]),this.__eventListeners[s].push(e),()=>this.off(s,e)}return()=>!1}once(t,e){if(\"object\"==typeof t){const e=[];return Object.entries(t).forEach((t=>{let[s,i]=t;e.push(this.once(s,i))})),()=>e.forEach((t=>t()))}if(e){const s=this.on(t,(function(){for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];e.call(this,...i),s()}));return s}return()=>!1}_removeEventListener(t,e){if(this.__eventListeners[t])if(e){const s=this.__eventListeners[t],i=s.indexOf(e);i>-1&&s.splice(i,1)}else this.__eventListeners[t]=[]}off(t,e){if(this.__eventListeners)if(void 0===t)for(const t in this.__eventListeners)this._removeEventListener(t);else\"object\"==typeof t?Object.entries(t).forEach((t=>{let[e,s]=t;this._removeEventListener(e,s)})):this._removeEventListener(t,e)}fire(t,e){var s;if(!this.__eventListeners)return;const i=null===(s=this.__eventListeners[t])||void 0===s?void 0:s.concat();if(i)for(let t=0;t<i.length;t++)i[t].call(this,e||{})}}const it=(t,e)=>{const s=t.indexOf(e);return-1!==s&&t.splice(s,1),t},rt=t=>{if(0===t)return 1;switch(Math.abs(t)/b){case 1:case 3:return 0;case 2:return-1}return Math.cos(t)},nt=t=>{if(0===t)return 0;const e=t/b,s=Math.sign(t);switch(e){case 1:return s;case 2:return 0;case 3:return-s}return Math.sin(t)};class ot{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;\"object\"==typeof t?(this.x=t.x,this.y=t.y):(this.x=t,this.y=e)}add(t){return new ot(this.x+t.x,this.y+t.y)}addEquals(t){return this.x+=t.x,this.y+=t.y,this}scalarAdd(t){return new ot(this.x+t,this.y+t)}scalarAddEquals(t){return this.x+=t,this.y+=t,this}subtract(t){return new ot(this.x-t.x,this.y-t.y)}subtractEquals(t){return this.x-=t.x,this.y-=t.y,this}scalarSubtract(t){return new ot(this.x-t,this.y-t)}scalarSubtractEquals(t){return this.x-=t,this.y-=t,this}multiply(t){return new ot(this.x*t.x,this.y*t.y)}scalarMultiply(t){return new ot(this.x*t,this.y*t)}scalarMultiplyEquals(t){return this.x*=t,this.y*=t,this}divide(t){return new ot(this.x/t.x,this.y/t.y)}scalarDivide(t){return new ot(this.x/t,this.y/t)}scalarDivideEquals(t){return this.x/=t,this.y/=t,this}eq(t){return this.x===t.x&&this.y===t.y}lt(t){return this.x<t.x&&this.y<t.y}lte(t){return this.x<=t.x&&this.y<=t.y}gt(t){return this.x>t.x&&this.y>t.y}gte(t){return this.x>=t.x&&this.y>=t.y}lerp(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.5;return e=Math.max(Math.min(1,e),0),new ot(this.x+(t.x-this.x)*e,this.y+(t.y-this.y)*e)}distanceFrom(t){const e=this.x-t.x,s=this.y-t.y;return Math.sqrt(e*e+s*s)}midPointFrom(t){return this.lerp(t)}min(t){return new ot(Math.min(this.x,t.x),Math.min(this.y,t.y))}max(t){return new ot(Math.max(this.x,t.x),Math.max(this.y,t.y))}toString(){return\"\".concat(this.x,\",\").concat(this.y)}setXY(t,e){return this.x=t,this.y=e,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setFromPoint(t){return this.x=t.x,this.y=t.y,this}swap(t){const e=this.x,s=this.y;this.x=t.x,this.y=t.y,t.x=e,t.y=s}clone(){return new ot(this.x,this.y)}rotate(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:at;const s=nt(t),i=rt(t),r=this.subtract(e);return new ot(r.x*i-r.y*s,r.x*s+r.y*i).add(e)}transform(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new ot(t[0]*this.x+t[2]*this.y+(e?0:t[4]),t[1]*this.x+t[3]*this.y+(e?0:t[5]))}}const at=new ot(0,0),ht=t=>!!t&&Array.isArray(t._objects);function ct(e){class s extends e{constructor(){super(...arguments),t(this,\"_objects\",[])}_onObjectAdded(t){}_onObjectRemoved(t){}_onStackOrderChanged(t){}add(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];const i=this._objects.push(...e);return e.forEach((t=>this._onObjectAdded(t))),i}insertAt(t){for(var e=arguments.length,s=new Array(e>1?e-1:0),i=1;i<e;i++)s[i-1]=arguments[i];return this._objects.splice(t,0,...s),s.forEach((t=>this._onObjectAdded(t))),this._objects.length}remove(){const t=this._objects,e=[];for(var s=arguments.length,i=new Array(s),r=0;r<s;r++)i[r]=arguments[r];return i.forEach((s=>{const i=t.indexOf(s);-1!==i&&(t.splice(i,1),e.push(s),this._onObjectRemoved(s))})),e}forEachObject(t){this.getObjects().forEach(((e,s,i)=>t(e,s,i)))}getObjects(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];return 0===e.length?[...this._objects]:this._objects.filter((t=>t.isType(...e)))}item(t){return this._objects[t]}isEmpty(){return 0===this._objects.length}size(){return this._objects.length}contains(t,e){return!!this._objects.includes(t)||!!e&&this._objects.some((e=>e instanceof s&&e.contains(t,!0)))}complexity(){return this._objects.reduce(((t,e)=>t+=e.complexity?e.complexity():0),0)}sendObjectToBack(t){return!(!t||t===this._objects[0])&&(it(this._objects,t),this._objects.unshift(t),this._onStackOrderChanged(t),!0)}bringObjectToFront(t){return!(!t||t===this._objects[this._objects.length-1])&&(it(this._objects,t),this._objects.push(t),this._onStackOrderChanged(t),!0)}sendObjectBackwards(t,e){if(!t)return!1;const s=this._objects.indexOf(t);if(0!==s){const i=this.findNewLowerIndex(t,s,e);return it(this._objects,t),this._objects.splice(i,0,t),this._onStackOrderChanged(t),!0}return!1}bringObjectForward(t,e){if(!t)return!1;const s=this._objects.indexOf(t);if(s!==this._objects.length-1){const i=this.findNewUpperIndex(t,s,e);return it(this._objects,t),this._objects.splice(i,0,t),this._onStackOrderChanged(t),!0}return!1}moveObjectTo(t,e){return t!==this._objects[e]&&(it(this._objects,t),this._objects.splice(e,0,t),this._onStackOrderChanged(t),!0)}findNewLowerIndex(t,e,s){let i;if(s){i=e;for(let s=e-1;s>=0;--s)if(t.isOverlapping(this._objects[s])){i=s;break}}else i=e-1;return i}findNewUpperIndex(t,e,s){let i;if(s){i=e;for(let s=e+1;s<this._objects.length;++s)if(t.isOverlapping(this._objects[s])){i=s;break}}else i=e+1;return i}collectObjects(t){let{left:e,top:s,width:i,height:r}=t,{includeIntersecting:n=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=[],a=new ot(e,s),h=a.add(new ot(i,r));for(let t=this._objects.length-1;t>=0;t--){const e=this._objects[t];e.selectable&&e.visible&&(n&&e.intersectsWithRect(a,h)||e.isContainedWithinRect(a,h)||n&&e.containsPoint(a)||n&&e.containsPoint(h))&&o.push(e)}return o}}return s}class lt extends st{_setOptions(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(const e in t)this.set(e,t[e])}_setObject(t){for(const e in t)this._set(e,t[e])}set(t,e){return\"object\"==typeof t?this._setObject(t):this._set(t,e),this}_set(t,e){this[t]=e}toggle(t){const e=this.get(t);return\"boolean\"==typeof e&&this.set(t,!e),this}get(t){return this[t]}}function ut(t){return v().requestAnimationFrame(t)}function dt(t){return v().cancelAnimationFrame(t)}let gt=0;const ft=()=>gt++,pt=()=>{const t=m().createElement(\"canvas\");if(!t||void 0===t.getContext)throw new h(\"Failed to create `canvas` element\");return t},mt=()=>m().createElement(\"img\"),vt=t=>{const e=pt();return e.width=t.width,e.height=t.height,e},yt=(t,e,s)=>t.toDataURL(\"image/\".concat(e),s),_t=(t,e,s)=>new Promise(((i,r)=>{t.toBlob(i,\"image/\".concat(e),s)})),xt=t=>t*w,Ct=t=>t/w,bt=t=>t.every(((t,e)=>t===T[e])),St=(t,e,s)=>new ot(t).transform(e,s),wt=t=>{const e=1/(t[0]*t[3]-t[1]*t[2]),s=[e*t[3],-e*t[1],-e*t[2],e*t[0],0,0],{x:i,y:r}=new ot(t[4],t[5]).transform(s,!0);return s[4]=-i,s[5]=-r,s},Tt=(t,e,s)=>[t[0]*e[0]+t[2]*e[1],t[1]*e[0]+t[3]*e[1],t[0]*e[2]+t[2]*e[3],t[1]*e[2]+t[3]*e[3],s?0:t[0]*e[4]+t[2]*e[5]+t[4],s?0:t[1]*e[4]+t[3]*e[5]+t[5]],Ot=(t,e)=>t.reduceRight(((t,s)=>s&&t?Tt(s,t,e):s||t),void 0)||T.concat(),kt=t=>{let[e,s]=t;return Math.atan2(s,e)},Dt=t=>{const e=kt(t),s=Math.pow(t[0],2)+Math.pow(t[1],2),i=Math.sqrt(s),r=(t[0]*t[3]-t[2]*t[1])/i,n=Math.atan2(t[0]*t[2]+t[1]*t[3],s);return{angle:Ct(e),scaleX:i,scaleY:r,skewX:Ct(n),skewY:0,translateX:t[4]||0,translateY:t[5]||0}},Mt=function(t){return[1,0,0,1,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0]};function Pt(){let{angle:t=0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{x:e=0,y:s=0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=xt(t),r=rt(i),n=nt(i);return[r,n,-n,r,e?e-(r*e-n*s):0,s?s-(n*e+r*s):0]}const Et=function(t){return[t,0,0,arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,0,0]},At=t=>Math.tan(xt(t)),jt=t=>[1,0,At(t),1,0,0],Ft=t=>[1,At(t),0,1,0,0],Lt=t=>{let{scaleX:e=1,scaleY:s=1,flipX:i=!1,flipY:r=!1,skewX:n=0,skewY:o=0}=t,a=Et(i?-e:e,r?-s:s);return n&&(a=Tt(a,jt(n),!0)),o&&(a=Tt(a,Ft(o),!0)),a},Rt=t=>{const{translateX:e=0,translateY:s=0,angle:i=0}=t;let r=Mt(e,s);i&&(r=Tt(r,Pt({angle:i})));const n=Lt(t);return bt(n)||(r=Tt(r,n)),r},It=function(t){let{signal:e,crossOrigin:s=null}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((function(i,r){if(e&&e.aborted)return r(new c(\"loadImage\"));const n=mt();let o;e&&(o=function(t){n.src=\"\",r(t)},e.addEventListener(\"abort\",o,{once:!0}));const a=function(){n.onload=n.onerror=null,o&&(null==e||e.removeEventListener(\"abort\",o)),i(n)};t?(n.onload=a,n.onerror=function(){o&&(null==e||e.removeEventListener(\"abort\",o)),r(new h(\"Error loading \".concat(n.src)))},s&&(n.crossOrigin=s),n.src=t):a()}))},Bt=function(t){let{signal:e,reviver:s=C}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(((i,r)=>{const n=[];e&&e.addEventListener(\"abort\",r,{once:!0}),Promise.all(t.map((t=>tt.getClass(t.type).fromObject(t,{signal:e}).then((e=>(s(t,e),n.push(e),e)))))).then(i).catch((t=>{n.forEach((t=>{t.dispose&&t.dispose()})),r(t)})).finally((()=>{e&&e.removeEventListener(\"abort\",r)}))}))},Xt=function(t){let{signal:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(((s,i)=>{const r=[];e&&e.addEventListener(\"abort\",i,{once:!0});const n=Object.values(t).map((t=>t&&t.type&&tt.has(t.type)?Bt([t],{signal:e}).then((t=>{let[e]=t;return r.push(e),e})):t)),o=Object.keys(t);Promise.all(n).then((t=>t.reduce(((t,e,s)=>(t[o[s]]=e,t)),{}))).then(s).catch((t=>{r.forEach((t=>{t.dispose&&t.dispose()})),i(t)})).finally((()=>{e&&e.removeEventListener(\"abort\",i)}))}))},Yt=function(t){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]).reduce(((e,s)=>(s in t&&(e[s]=t[s]),e)),{})},Wt=(t,e)=>Object.keys(t).reduce(((s,i)=>(e(t[i],i,t)&&(s[i]=t[i]),s)),{}),Vt=(t,e)=>parseFloat(Number(t).toFixed(e)),zt=t=>\"matrix(\"+t.map((t=>Vt(t,o.NUM_FRACTION_DIGITS))).join(\" \")+\")\",Gt=t=>!!t&&void 0!==t.toLive,Ht=t=>!!t&&\"function\"==typeof t.toObject,Nt=t=>!!t&&void 0!==t.offsetX&&\"source\"in t,Ut=t=>!!t&&\"multiSelectionStacking\"in t;function qt(t){const e=t&&Kt(t);let s=0,i=0;if(!t||!e)return{left:s,top:i};let r=t;const n=e.documentElement,o=e.body||{scrollLeft:0,scrollTop:0};for(;r&&(r.parentNode||r.host)&&(r=r.parentNode||r.host,r===e?(s=o.scrollLeft||n.scrollLeft||0,i=o.scrollTop||n.scrollTop||0):(s+=r.scrollLeft||0,i+=r.scrollTop||0),1!==r.nodeType||\"fixed\"!==r.style.position););return{left:s,top:i}}const Kt=t=>t.ownerDocument||null,Jt=t=>{var e;return(null===(e=t.ownerDocument)||void 0===e?void 0:e.defaultView)||null},Qt=function(t,e,s){let{width:i,height:r}=s,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;t.width=i,t.height=r,n>1&&(t.setAttribute(\"width\",(i*n).toString()),t.setAttribute(\"height\",(r*n).toString()),e.scale(n,n))},Zt=(t,e)=>{let{width:s,height:i}=e;s&&(t.style.width=\"number\"==typeof s?\"\".concat(s,\"px\"):s),i&&(t.style.height=\"number\"==typeof i?\"\".concat(i,\"px\"):i)};function $t(t){return void 0!==t.onselectstart&&(t.onselectstart=()=>!1),t.style.userSelect=j,t}class te{constructor(e){t(this,\"_originalCanvasStyle\",void 0),t(this,\"lower\",void 0);const s=this.createLowerCanvas(e);this.lower={el:s,ctx:s.getContext(\"2d\")}}createLowerCanvas(t){const e=(s=t)&&void 0!==s.getContext?t:t&&m().getElementById(t)||pt();var s;if(e.hasAttribute(\"data-fabric\"))throw new h(\"Trying to initialize a canvas that has already been initialized. Did you forget to dispose the canvas?\");return this._originalCanvasStyle=e.style.cssText,e.setAttribute(\"data-fabric\",\"main\"),e.classList.add(\"lower-canvas\"),e}cleanupDOM(t){let{width:e,height:s}=t;const{el:i}=this.lower;i.classList.remove(\"lower-canvas\"),i.removeAttribute(\"data-fabric\"),i.setAttribute(\"width\",\"\".concat(e)),i.setAttribute(\"height\",\"\".concat(s)),i.style.cssText=this._originalCanvasStyle||\"\",this._originalCanvasStyle=void 0}setDimensions(t,e){const{el:s,ctx:i}=this.lower;Qt(s,i,t,e)}setCSSDimensions(t){Zt(this.lower.el,t)}calcOffset(){return function(t){var e;const s=t&&Kt(t),i={left:0,top:0};if(!s)return i;const r=(null===(e=Jt(t))||void 0===e?void 0:e.getComputedStyle(t,null))||{};i.left+=parseInt(r.borderLeftWidth,10)||0,i.top+=parseInt(r.borderTopWidth,10)||0,i.left+=parseInt(r.paddingLeft,10)||0,i.top+=parseInt(r.paddingTop,10)||0;let n={left:0,top:0};const o=s.documentElement;void 0!==t.getBoundingClientRect&&(n=t.getBoundingClientRect());const a=qt(t);return{left:n.left+a.left-(o.clientLeft||0)+i.left,top:n.top+a.top-(o.clientTop||0)+i.top}}(this.lower.el)}dispose(){p().dispose(this.lower.el),delete this.lower}}const ee={backgroundVpt:!0,backgroundColor:\"\",overlayVpt:!0,overlayColor:\"\",includeDefaultValues:!0,svgViewportTransformation:!0,renderOnAddRemove:!0,skipOffscreen:!0,enableRetinaScaling:!0,imageSmoothingEnabled:!0,controlsAboveOverlay:!1,allowTouchScrolling:!1,viewportTransform:[...T]},se=[\"objects\"];class ie extends(ct(lt)){get lowerCanvasEl(){var t;return null===(t=this.elements.lower)||void 0===t?void 0:t.el}get contextContainer(){var t;return null===(t=this.elements.lower)||void 0===t?void 0:t.ctx}static getDefaults(){return ie.ownDefaults}constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),Object.assign(this,this.constructor.getDefaults()),this.set(e),this.initElements(t),this._setDimensionsImpl({width:this.width||this.elements.lower.el.width||0,height:this.height||this.elements.lower.el.height||0}),this.skipControlsDrawing=!1,this.viewportTransform=[...this.viewportTransform],this.calcViewportBoundaries()}initElements(t){this.elements=new te(t)}add(){const t=super.add(...arguments);return arguments.length>0&&this.renderOnAddRemove&&this.requestRenderAll(),t}insertAt(t){for(var e=arguments.length,s=new Array(e>1?e-1:0),i=1;i<e;i++)s[i-1]=arguments[i];const r=super.insertAt(t,...s);return s.length>0&&this.renderOnAddRemove&&this.requestRenderAll(),r}remove(){const t=super.remove(...arguments);return t.length>0&&this.renderOnAddRemove&&this.requestRenderAll(),t}_onObjectAdded(t){t.canvas&&t.canvas!==this&&(a(\"warn\",\"Canvas is trying to add an object that belongs to a different canvas.\\nResulting to default behavior: removing object from previous canvas and adding to new canvas\"),t.canvas.remove(t)),t._set(\"canvas\",this),t.setCoords(),this.fire(\"object:added\",{target:t}),t.fire(\"added\",{target:this})}_onObjectRemoved(t){t._set(\"canvas\",void 0),this.fire(\"object:removed\",{target:t}),t.fire(\"removed\",{target:this})}_onStackOrderChanged(){this.renderOnAddRemove&&this.requestRenderAll()}getRetinaScaling(){return this.enableRetinaScaling?y():1}calcOffset(){return this._offset=this.elements.calcOffset()}getWidth(){return this.width}getHeight(){return this.height}setWidth(t,e){return this.setDimensions({width:t},e)}setHeight(t,e){return this.setDimensions({height:t},e)}_setDimensionsImpl(t){let{cssOnly:e=!1,backstoreOnly:i=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e){const e=s({width:this.width,height:this.height},t);this.elements.setDimensions(e,this.getRetinaScaling()),this.hasLostContext=!0,this.width=e.width,this.height=e.height}i||this.elements.setCSSDimensions(t),this.calcOffset()}setDimensions(t,e){this._setDimensionsImpl(t,e),e&&e.cssOnly||this.requestRenderAll()}getZoom(){return this.viewportTransform[0]}setViewportTransform(t){this.viewportTransform=t,this.calcViewportBoundaries(),this.renderOnAddRemove&&this.requestRenderAll()}zoomToPoint(t,e){const s=t,i=[...this.viewportTransform],r=St(t,wt(i));i[0]=e,i[3]=e;const n=St(r,i);i[4]+=s.x-n.x,i[5]+=s.y-n.y,this.setViewportTransform(i)}setZoom(t){this.zoomToPoint(new ot(0,0),t)}absolutePan(t){const e=[...this.viewportTransform];return e[4]=-t.x,e[5]=-t.y,this.setViewportTransform(e)}relativePan(t){return this.absolutePan(new ot(-t.x-this.viewportTransform[4],-t.y-this.viewportTransform[5]))}getElement(){return this.elements.lower.el}clearContext(t){t.clearRect(0,0,this.width,this.height)}getContext(){return this.elements.lower.ctx}clear(){this.remove(...this.getObjects()),this.backgroundImage=void 0,this.overlayImage=void 0,this.backgroundColor=\"\",this.overlayColor=\"\",this.clearContext(this.getContext()),this.fire(\"canvas:cleared\"),this.renderOnAddRemove&&this.requestRenderAll()}renderAll(){this.cancelRequestedRender(),this.destroyed||this.renderCanvas(this.getContext(),this._objects)}renderAndReset(){this.nextRenderHandle=0,this.renderAll()}requestRenderAll(){this.nextRenderHandle||this.disposed||this.destroyed||(this.nextRenderHandle=ut((()=>this.renderAndReset())))}calcViewportBoundaries(){const t=this.width,e=this.height,s=wt(this.viewportTransform),i=St({x:0,y:0},s),r=St({x:t,y:e},s),n=i.min(r),o=i.max(r);return this.vptCoords={tl:n,tr:new ot(o.x,n.y),bl:new ot(n.x,o.y),br:o}}cancelRequestedRender(){this.nextRenderHandle&&(dt(this.nextRenderHandle),this.nextRenderHandle=0)}drawControls(t){}renderCanvas(t,e){if(this.destroyed)return;const s=this.viewportTransform,i=this.clipPath;this.calcViewportBoundaries(),this.clearContext(t),t.imageSmoothingEnabled=this.imageSmoothingEnabled,t.patternQuality=\"best\",this.fire(\"before:render\",{ctx:t}),this._renderBackground(t),t.save(),t.transform(s[0],s[1],s[2],s[3],s[4],s[5]),this._renderObjects(t,e),t.restore(),this.controlsAboveOverlay||this.skipControlsDrawing||this.drawControls(t),i&&(i._set(\"canvas\",this),i.shouldCache(),i._transformDone=!0,i.renderCache({forClipping:!0}),this.drawClipPathOnCanvas(t,i)),this._renderOverlay(t),this.controlsAboveOverlay&&!this.skipControlsDrawing&&this.drawControls(t),this.fire(\"after:render\",{ctx:t}),this.__cleanupTask&&(this.__cleanupTask(),this.__cleanupTask=void 0)}drawClipPathOnCanvas(t,e){const s=this.viewportTransform;t.save(),t.transform(...s),t.globalCompositeOperation=\"destination-in\",e.transform(t),t.scale(1/e.zoomX,1/e.zoomY),t.drawImage(e._cacheCanvas,-e.cacheTranslationX,-e.cacheTranslationY),t.restore()}_renderObjects(t,e){for(let s=0,i=e.length;s<i;++s)e[s]&&e[s].render(t)}_renderBackgroundOrOverlay(t,e){const s=this[\"\".concat(e,\"Color\")],i=this[\"\".concat(e,\"Image\")],r=this.viewportTransform,n=this[\"\".concat(e,\"Vpt\")];if(!s&&!i)return;const o=Gt(s);if(s){if(t.save(),t.beginPath(),t.moveTo(0,0),t.lineTo(this.width,0),t.lineTo(this.width,this.height),t.lineTo(0,this.height),t.closePath(),t.fillStyle=o?s.toLive(t):s,n&&t.transform(...r),o){t.transform(1,0,0,1,s.offsetX||0,s.offsetY||0);const e=s.gradientTransform||s.patternTransform;e&&t.transform(...e)}t.fill(),t.restore()}if(i){t.save();const{skipOffscreen:e}=this;this.skipOffscreen=n,n&&t.transform(...r),i.render(t),this.skipOffscreen=e,t.restore()}}_renderBackground(t){this._renderBackgroundOrOverlay(t,\"background\")}_renderOverlay(t){this._renderBackgroundOrOverlay(t,\"overlay\")}getCenter(){return{top:this.height/2,left:this.width/2}}getCenterPoint(){return new ot(this.width/2,this.height/2)}centerObjectH(t){return this._centerObject(t,new ot(this.getCenterPoint().x,t.getCenterPoint().y))}centerObjectV(t){return this._centerObject(t,new ot(t.getCenterPoint().x,this.getCenterPoint().y))}centerObject(t){return this._centerObject(t,this.getCenterPoint())}viewportCenterObject(t){return this._centerObject(t,this.getVpCenter())}viewportCenterObjectH(t){return this._centerObject(t,new ot(this.getVpCenter().x,t.getCenterPoint().y))}viewportCenterObjectV(t){return this._centerObject(t,new ot(t.getCenterPoint().x,this.getVpCenter().y))}getVpCenter(){return St(this.getCenterPoint(),wt(this.viewportTransform))}_centerObject(t,e){t.setXY(e,D,D),t.setCoords(),this.renderOnAddRemove&&this.requestRenderAll()}toDatalessJSON(t){return this.toDatalessObject(t)}toObject(t){return this._toObjectMethod(\"toObject\",t)}toJSON(){return this.toObject()}toDatalessObject(t){return this._toObjectMethod(\"toDatalessObject\",t)}_toObjectMethod(t,e){const i=this.clipPath,r=i&&!i.excludeFromExport?this._toObject(i,t,e):null;return s(s(s({version:x},Yt(this,e)),{},{objects:this._objects.filter((t=>!t.excludeFromExport)).map((s=>this._toObject(s,t,e)))},this.__serializeBgOverlay(t,e)),r?{clipPath:r}:null)}_toObject(t,e,s){let i;this.includeDefaultValues||(i=t.includeDefaultValues,t.includeDefaultValues=!1);const r=t[e](s);return this.includeDefaultValues||(t.includeDefaultValues=!!i),r}__serializeBgOverlay(t,e){const s={},i=this.backgroundImage,r=this.overlayImage,n=this.backgroundColor,o=this.overlayColor;return Gt(n)?n.excludeFromExport||(s.background=n.toObject(e)):n&&(s.background=n),Gt(o)?o.excludeFromExport||(s.overlay=o.toObject(e)):o&&(s.overlay=o),i&&!i.excludeFromExport&&(s.backgroundImage=this._toObject(i,t,e)),r&&!r.excludeFromExport&&(s.overlayImage=this._toObject(r,t,e)),s}toSVG(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;t.reviver=e;const s=[];return this._setSVGPreamble(s,t),this._setSVGHeader(s,t),this.clipPath&&s.push('<g clip-path=\"url(#'.concat(this.clipPath.clipPathId,')\" >\\n')),this._setSVGBgOverlayColor(s,\"background\"),this._setSVGBgOverlayImage(s,\"backgroundImage\",e),this._setSVGObjects(s,e),this.clipPath&&s.push(\"</g>\\n\"),this._setSVGBgOverlayColor(s,\"overlay\"),this._setSVGBgOverlayImage(s,\"overlayImage\",e),s.push(\"</svg>\"),s.join(\"\")}_setSVGPreamble(t,e){e.suppressPreamble||t.push('<?xml version=\"1.0\" encoding=\"',e.encoding||\"UTF-8\",'\" standalone=\"no\" ?>\\n','<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" ','\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\\n')}_setSVGHeader(t,e){const s=e.width||\"\".concat(this.width),i=e.height||\"\".concat(this.height),r=o.NUM_FRACTION_DIGITS,n=e.viewBox;let a;if(n)a='viewBox=\"'.concat(n.x,\" \").concat(n.y,\" \").concat(n.width,\" \").concat(n.height,'\" ');else if(this.svgViewportTransformation){const t=this.viewportTransform;a='viewBox=\"'.concat(Vt(-t[4]/t[0],r),\" \").concat(Vt(-t[5]/t[3],r),\" \").concat(Vt(this.width/t[0],r),\" \").concat(Vt(this.height/t[3],r),'\" ')}else a='viewBox=\"0 0 '.concat(this.width,\" \").concat(this.height,'\" ');t.push(\"<svg \",'xmlns=\"http://www.w3.org/2000/svg\" ','xmlns:xlink=\"http://www.w3.org/1999/xlink\" ','version=\"1.1\" ','width=\"',s,'\" ','height=\"',i,'\" ',a,'xml:space=\"preserve\">\\n',\"<desc>Created with Fabric.js \",x,\"</desc>\\n\",\"<defs>\\n\",this.createSVGFontFacesMarkup(),this.createSVGRefElementsMarkup(),this.createSVGClipPathMarkup(e),\"</defs>\\n\")}createSVGClipPathMarkup(t){const e=this.clipPath;return e?(e.clipPathId=\"CLIPPATH_\".concat(ft()),'<clipPath id=\"'.concat(e.clipPathId,'\" >\\n').concat(e.toClipPathSVG(t.reviver),\"</clipPath>\\n\")):\"\"}createSVGRefElementsMarkup(){return[\"background\",\"overlay\"].map((t=>{const e=this[\"\".concat(t,\"Color\")];if(Gt(e)){const s=this[\"\".concat(t,\"Vpt\")],i=this.viewportTransform,r={isType:()=>!1,width:this.width/(s?i[0]:1),height:this.height/(s?i[3]:1)};return e.toSVG(r,{additionalTransform:s?zt(i):\"\"})}})).join(\"\")}createSVGFontFacesMarkup(){const t=[],e={},s=o.fontPaths;this._objects.forEach((function e(s){t.push(s),ht(s)&&s._objects.forEach(e)})),t.forEach((t=>{if(!(i=t)||\"function\"!=typeof i._renderText)return;var i;const{styles:r,fontFamily:n}=t;!e[n]&&s[n]&&(e[n]=!0,r&&Object.values(r).forEach((t=>{Object.values(t).forEach((t=>{let{fontFamily:i=\"\"}=t;!e[i]&&s[i]&&(e[i]=!0)}))})))}));const i=Object.keys(e).map((t=>\"\\t\\t@font-face {\\n\\t\\t\\tfont-family: '\".concat(t,\"';\\n\\t\\t\\tsrc: url('\").concat(s[t],\"');\\n\\t\\t}\\n\"))).join(\"\");return i?'\\t<style type=\"text/css\"><![CDATA[\\n'.concat(i,\"]]></style>\\n\"):\"\"}_setSVGObjects(t,e){this.forEachObject((s=>{s.excludeFromExport||this._setSVGObject(t,s,e)}))}_setSVGObject(t,e,s){t.push(e.toSVG(s))}_setSVGBgOverlayImage(t,e,s){const i=this[e];i&&!i.excludeFromExport&&i.toSVG&&t.push(i.toSVG(s))}_setSVGBgOverlayColor(t,e){const s=this[\"\".concat(e,\"Color\")];if(s)if(Gt(s)){const i=s.repeat||\"\",r=this.width,n=this.height,o=this[\"\".concat(e,\"Vpt\")]?zt(wt(this.viewportTransform)):\"\";t.push('<rect transform=\"'.concat(o,\" translate(\").concat(r/2,\",\").concat(n/2,')\" x=\"').concat(s.offsetX-r/2,'\" y=\"').concat(s.offsetY-n/2,'\" width=\"').concat(\"repeat-y\"!==i&&\"no-repeat\"!==i||!Nt(s)?r:s.source.width,'\" height=\"').concat(\"repeat-x\"!==i&&\"no-repeat\"!==i||!Nt(s)?n:s.source.height,'\" fill=\"url(#SVGID_').concat(s.id,')\"></rect>\\n'))}else t.push('<rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" ','fill=\"',s,'\"',\"></rect>\\n\")}loadFromJSON(t,e){let{signal:s}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!t)return Promise.reject(new h(\"`json` is undefined\"));const r=\"string\"==typeof t?JSON.parse(t):t,{objects:n=[]}=r,o=i(r,se),{backgroundImage:a,background:c,overlayImage:l,overlay:u,clipPath:d}=o,g=this.renderOnAddRemove;return this.renderOnAddRemove=!1,Promise.all([Bt(n,{reviver:e,signal:s}),Xt({backgroundImage:a,backgroundColor:c,overlayImage:l,overlayColor:u,clipPath:d},{signal:s})]).then((t=>{let[e,s]=t;return this.clear(),this.add(...e),this.set(o),this.set(s),this.renderOnAddRemove=g,this}))}clone(t){const e=this.toObject(t);return this.cloneWithoutData().loadFromJSON(e)}cloneWithoutData(){const t=vt(this);return new this.constructor(t)}toDataURL(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{format:e=\"png\",quality:s=1,multiplier:i=1,enableRetinaScaling:r=!1}=t,n=i*(r?this.getRetinaScaling():1);return yt(this.toCanvasElement(n,t),e,s)}toBlob(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{format:e=\"png\",quality:s=1,multiplier:i=1,enableRetinaScaling:r=!1}=t,n=i*(r?this.getRetinaScaling():1);return _t(this.toCanvasElement(n,t),e,s)}toCanvasElement(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,{width:e,height:s,left:i,top:r,filter:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=(e||this.width)*t,a=(s||this.height)*t,h=this.getZoom(),c=this.width,l=this.height,u=this.skipControlsDrawing,d=h*t,g=this.viewportTransform,f=[d,0,0,d,(g[4]-(i||0))*t,(g[5]-(r||0))*t],p=this.enableRetinaScaling,m=vt({width:o,height:a}),v=n?this._objects.filter((t=>n(t))):this._objects;return this.enableRetinaScaling=!1,this.viewportTransform=f,this.width=o,this.height=a,this.skipControlsDrawing=!0,this.calcViewportBoundaries(),this.renderCanvas(m.getContext(\"2d\"),v),this.viewportTransform=g,this.width=c,this.height=l,this.calcViewportBoundaries(),this.enableRetinaScaling=p,this.skipControlsDrawing=u,m}dispose(){return!this.disposed&&this.elements.cleanupDOM({width:this.width,height:this.height}),et.cancelByCanvas(this),this.disposed=!0,new Promise(((t,e)=>{const s=()=>{this.destroy(),t(!0)};s.kill=e,this.__cleanupTask&&this.__cleanupTask.kill(\"aborted\"),this.destroyed?t(!1):this.nextRenderHandle?this.__cleanupTask=s:s()}))}destroy(){this.destroyed=!0,this.cancelRequestedRender(),this.forEachObject((t=>t.dispose())),this._objects=[],this.backgroundImage&&this.backgroundImage.dispose(),this.backgroundImage=void 0,this.overlayImage&&this.overlayImage.dispose(),this.overlayImage=void 0,this.elements.dispose()}toString(){return\"#<Canvas (\".concat(this.complexity(),\"): { objects: \").concat(this._objects.length,\" }>\")}}t(ie,\"ownDefaults\",ee);const re=[\"touchstart\",\"touchmove\",\"touchend\"];const ne=t=>{const e=qt(t.target),s=function(t){const e=t.changedTouches;return e&&e[0]?e[0]:t}(t);return new ot(s.clientX+e.left,s.clientY+e.top)},oe=t=>re.includes(t.type)||\"touch\"===t.pointerType,ae=t=>{t.preventDefault(),t.stopPropagation()},he=t=>{let e=0,s=0,i=0,r=0;for(let n=0,o=t.length;n<o;n++){const{x:o,y:a}=t[n];(o>i||!n)&&(i=o),(o<e||!n)&&(e=o),(a>r||!n)&&(r=a),(a<s||!n)&&(s=a)}return{left:e,top:s,width:i-e,height:r-s}},ce=[\"translateX\",\"translateY\",\"scaleX\",\"scaleY\"],le=(t,e)=>ue(t,Tt(e,t.calcOwnMatrix())),ue=(t,e)=>{const s=Dt(e),{translateX:r,translateY:n,scaleX:o,scaleY:a}=s,h=i(s,ce),c=new ot(r,n);t.flipX=!1,t.flipY=!1,Object.assign(t,h),t.set({scaleX:o,scaleY:a}),t.setPositionByOrigin(c,D,D)},de=t=>{t.scaleX=1,t.scaleY=1,t.skewX=0,t.skewY=0,t.flipX=!1,t.flipY=!1,t.rotate(0)},ge=t=>({scaleX:t.scaleX,scaleY:t.scaleY,skewX:t.skewX,skewY:t.skewY,angle:t.angle,left:t.left,flipX:t.flipX,flipY:t.flipY,top:t.top}),fe=(t,e,s)=>{const i=t/2,r=e/2,n=[new ot(-i,-r),new ot(i,-r),new ot(-i,r),new ot(i,r)].map((t=>t.transform(s))),o=he(n);return new ot(o.width,o.height)},pe=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:T;return Tt(wt(arguments.length>1&&void 0!==arguments[1]?arguments[1]:T),t)},me=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:T,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:T;return t.transform(pe(e,s))},ve=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:T,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:T;return t.transform(pe(e,s),!0)},ye=(t,e,s)=>{const i=pe(e,s);return ue(t,Tt(i,t.calcOwnMatrix())),i},_e=(t,e)=>{var i;const{transform:{target:r}}=e;null===(i=r.canvas)||void 0===i||i.fire(\"object:\".concat(t),s(s({},e),{},{target:r})),r.fire(t,e)},xe={left:-.5,top:-.5,center:0,bottom:.5,right:.5},Ce=t=>\"string\"==typeof t?xe[t]:t-.5,be=\"not-allowed\";function Se(t){return Ce(t.originX)===Ce(D)&&Ce(t.originY)===Ce(D)}function we(t){return.5-Ce(t)}const Te=(t,e)=>t[e],Oe=(t,e,s,i)=>({e:t,transform:e,pointer:new ot(s,i)});function ke(t,e){const s=t.getTotalAngle()+Ct(Math.atan2(e.y,e.x))+360;return Math.round(s%360/45)}function De(t,e,s,i,r){var n;let{target:o,corner:a}=t;const h=o.controls[a],c=(null===(n=o.canvas)||void 0===n?void 0:n.getZoom())||1,l=o.padding/c,u=function(t,e,s,i){const r=t.getRelativeCenterPoint(),n=void 0!==s&&void 0!==i?t.translateToGivenOrigin(r,D,D,s,i):new ot(t.left,t.top);return(t.angle?e.rotate(-xt(t.angle),r):e).subtract(n)}(o,new ot(i,r),e,s);return u.x>=l&&(u.x-=l),u.x<=-l&&(u.x+=l),u.y>=l&&(u.y-=l),u.y<=l&&(u.y+=l),u.x-=h.offsetX,u.y-=h.offsetY,u}const Me=(t,e,s,i)=>{const{target:r,offsetX:n,offsetY:o}=e,a=s-n,h=i-o,c=!Te(r,\"lockMovementX\")&&r.left!==a,l=!Te(r,\"lockMovementY\")&&r.top!==h;return c&&r.set(M,a),l&&r.set(P,h),(c||l)&&_e(L,Oe(t,e,s,i)),c||l},Pe=t=>t.replace(/\\s+/g,\" \"),Ee={aliceblue:\"#F0F8FF\",antiquewhite:\"#FAEBD7\",aqua:\"#0FF\",aquamarine:\"#7FFFD4\",azure:\"#F0FFFF\",beige:\"#F5F5DC\",bisque:\"#FFE4C4\",black:\"#000\",blanchedalmond:\"#FFEBCD\",blue:\"#00F\",blueviolet:\"#8A2BE2\",brown:\"#A52A2A\",burlywood:\"#DEB887\",cadetblue:\"#5F9EA0\",chartreuse:\"#7FFF00\",chocolate:\"#D2691E\",coral:\"#FF7F50\",cornflowerblue:\"#6495ED\",cornsilk:\"#FFF8DC\",crimson:\"#DC143C\",cyan:\"#0FF\",darkblue:\"#00008B\",darkcyan:\"#008B8B\",darkgoldenrod:\"#B8860B\",darkgray:\"#A9A9A9\",darkgrey:\"#A9A9A9\",darkgreen:\"#006400\",darkkhaki:\"#BDB76B\",darkmagenta:\"#8B008B\",darkolivegreen:\"#556B2F\",darkorange:\"#FF8C00\",darkorchid:\"#9932CC\",darkred:\"#8B0000\",darksalmon:\"#E9967A\",darkseagreen:\"#8FBC8F\",darkslateblue:\"#483D8B\",darkslategray:\"#2F4F4F\",darkslategrey:\"#2F4F4F\",darkturquoise:\"#00CED1\",darkviolet:\"#9400D3\",deeppink:\"#FF1493\",deepskyblue:\"#00BFFF\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1E90FF\",firebrick:\"#B22222\",floralwhite:\"#FFFAF0\",forestgreen:\"#228B22\",fuchsia:\"#F0F\",gainsboro:\"#DCDCDC\",ghostwhite:\"#F8F8FF\",gold:\"#FFD700\",goldenrod:\"#DAA520\",gray:\"#808080\",grey:\"#808080\",green:\"#008000\",greenyellow:\"#ADFF2F\",honeydew:\"#F0FFF0\",hotpink:\"#FF69B4\",indianred:\"#CD5C5C\",indigo:\"#4B0082\",ivory:\"#FFFFF0\",khaki:\"#F0E68C\",lavender:\"#E6E6FA\",lavenderblush:\"#FFF0F5\",lawngreen:\"#7CFC00\",lemonchiffon:\"#FFFACD\",lightblue:\"#ADD8E6\",lightcoral:\"#F08080\",lightcyan:\"#E0FFFF\",lightgoldenrodyellow:\"#FAFAD2\",lightgray:\"#D3D3D3\",lightgrey:\"#D3D3D3\",lightgreen:\"#90EE90\",lightpink:\"#FFB6C1\",lightsalmon:\"#FFA07A\",lightseagreen:\"#20B2AA\",lightskyblue:\"#87CEFA\",lightslategray:\"#789\",lightslategrey:\"#789\",lightsteelblue:\"#B0C4DE\",lightyellow:\"#FFFFE0\",lime:\"#0F0\",limegreen:\"#32CD32\",linen:\"#FAF0E6\",magenta:\"#F0F\",maroon:\"#800000\",mediumaquamarine:\"#66CDAA\",mediumblue:\"#0000CD\",mediumorchid:\"#BA55D3\",mediumpurple:\"#9370DB\",mediumseagreen:\"#3CB371\",mediumslateblue:\"#7B68EE\",mediumspringgreen:\"#00FA9A\",mediumturquoise:\"#48D1CC\",mediumvioletred:\"#C71585\",midnightblue:\"#191970\",mintcream:\"#F5FFFA\",mistyrose:\"#FFE4E1\",moccasin:\"#FFE4B5\",navajowhite:\"#FFDEAD\",navy:\"#000080\",oldlace:\"#FDF5E6\",olive:\"#808000\",olivedrab:\"#6B8E23\",orange:\"#FFA500\",orangered:\"#FF4500\",orchid:\"#DA70D6\",palegoldenrod:\"#EEE8AA\",palegreen:\"#98FB98\",paleturquoise:\"#AFEEEE\",palevioletred:\"#DB7093\",papayawhip:\"#FFEFD5\",peachpuff:\"#FFDAB9\",peru:\"#CD853F\",pink:\"#FFC0CB\",plum:\"#DDA0DD\",powderblue:\"#B0E0E6\",purple:\"#800080\",rebeccapurple:\"#639\",red:\"#F00\",rosybrown:\"#BC8F8F\",royalblue:\"#4169E1\",saddlebrown:\"#8B4513\",salmon:\"#FA8072\",sandybrown:\"#F4A460\",seagreen:\"#2E8B57\",seashell:\"#FFF5EE\",sienna:\"#A0522D\",silver:\"#C0C0C0\",skyblue:\"#87CEEB\",slateblue:\"#6A5ACD\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#FFFAFA\",springgreen:\"#00FF7F\",steelblue:\"#4682B4\",tan:\"#D2B48C\",teal:\"#008080\",thistle:\"#D8BFD8\",tomato:\"#FF6347\",turquoise:\"#40E0D0\",violet:\"#EE82EE\",wheat:\"#F5DEB3\",white:\"#FFF\",whitesmoke:\"#F5F5F5\",yellow:\"#FF0\",yellowgreen:\"#9ACD32\"},Ae=(t,e,s)=>(s<0&&(s+=1),s>1&&(s-=1),s<1/6?t+6*(e-t)*s:s<.5?e:s<2/3?t+(e-t)*(2/3-s)*6:t),je=(t,e,s,i)=>{t/=255,e/=255,s/=255;const r=Math.max(t,e,s),n=Math.min(t,e,s);let o,a;const h=(r+n)/2;if(r===n)o=a=0;else{const i=r-n;switch(a=h>.5?i/(2-r-n):i/(r+n),r){case t:o=(e-s)/i+(e<s?6:0);break;case e:o=(s-t)/i+2;break;case s:o=(t-e)/i+4}o/=6}return[Math.round(360*o),Math.round(100*a),Math.round(100*h),i]},Fe=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"1\";return parseFloat(t)/(t.endsWith(\"%\")?100:1)},Le=t=>Math.min(Math.round(t),255).toString(16).toUpperCase().padStart(2,\"0\"),Re=t=>{let[e,s,i,r=1]=t;const n=Math.round(.3*e+.59*s+.11*i);return[n,n,n,r]};class Ie{constructor(e){if(t(this,\"isUnrecognised\",!1),e)if(e instanceof Ie)this.setSource([...e._source]);else if(Array.isArray(e)){const[t,s,i,r=1]=e;this.setSource([t,s,i,r])}else this.setSource(this._tryParsingColor(e));else this.setSource([0,0,0,1])}_tryParsingColor(t){return(t=t.toLowerCase())in Ee&&(t=Ee[t]),\"transparent\"===t?[255,255,255,0]:Ie.sourceFromHex(t)||Ie.sourceFromRgb(t)||Ie.sourceFromHsl(t)||(this.isUnrecognised=!0)&&[0,0,0,1]}getSource(){return this._source}setSource(t){this._source=t}toRgb(){const[t,e,s]=this.getSource();return\"rgb(\".concat(t,\",\").concat(e,\",\").concat(s,\")\")}toRgba(){return\"rgba(\".concat(this.getSource().join(\",\"),\")\")}toHsl(){const[t,e,s]=je(...this.getSource());return\"hsl(\".concat(t,\",\").concat(e,\"%,\").concat(s,\"%)\")}toHsla(){const[t,e,s,i]=je(...this.getSource());return\"hsla(\".concat(t,\",\").concat(e,\"%,\").concat(s,\"%,\").concat(i,\")\")}toHex(){return this.toHexa().slice(0,6)}toHexa(){const[t,e,s,i]=this.getSource();return\"\".concat(Le(t)).concat(Le(e)).concat(Le(s)).concat(Le(Math.round(255*i)))}getAlpha(){return this.getSource()[3]}setAlpha(t){return this._source[3]=t,this}toGrayscale(){return this.setSource(Re(this.getSource())),this}toBlackWhite(t){const[e,,,s]=Re(this.getSource()),i=e<(t||127)?0:255;return this.setSource([i,i,i,s]),this}overlayWith(t){t instanceof Ie||(t=new Ie(t));const e=this.getSource(),s=t.getSource(),[i,r,n]=e.map(((t,e)=>Math.round(.5*t+.5*s[e])));return this.setSource([i,r,n,e[3]]),this}static fromRgb(t){return Ie.fromRgba(t)}static fromRgba(t){return new Ie(Ie.sourceFromRgb(t))}static sourceFromRgb(t){const e=Pe(t).match(/^rgba?\\(\\s?(\\d{0,3}(?:\\.\\d+)?%?)\\s?[\\s|,]\\s?(\\d{0,3}(?:\\.\\d+)?%?)\\s?[\\s|,]\\s?(\\d{0,3}(?:\\.\\d+)?%?)\\s?(?:\\s?[,/]\\s?(\\d{0,3}(?:\\.\\d+)?%?)\\s?)?\\)$/i);if(e){const[t,s,i]=e.slice(1,4).map((t=>{const e=parseFloat(t);return t.endsWith(\"%\")?Math.round(2.55*e):e}));return[t,s,i,Fe(e[4])]}}static fromHsl(t){return Ie.fromHsla(t)}static fromHsla(t){return new Ie(Ie.sourceFromHsl(t))}static sourceFromHsl(t){const e=Pe(t).match(/^hsla?\\(\\s?([+-]?\\d{0,3}(?:\\.\\d+)?(?:deg|turn|rad)?)\\s?[\\s|,]\\s?(\\d{0,3}(?:\\.\\d+)?%?)\\s?[\\s|,]\\s?(\\d{0,3}(?:\\.\\d+)?%?)\\s?(?:\\s?[,/]\\s?(\\d*(?:\\.\\d+)?%?)\\s?)?\\)$/i);if(!e)return;const s=(Ie.parseAngletoDegrees(e[1])%360+360)%360/360,i=parseFloat(e[2])/100,r=parseFloat(e[3])/100;let n,o,a;if(0===i)n=o=a=r;else{const t=r<=.5?r*(i+1):r+i-r*i,e=2*r-t;n=Ae(e,t,s+1/3),o=Ae(e,t,s),a=Ae(e,t,s-1/3)}return[Math.round(255*n),Math.round(255*o),Math.round(255*a),Fe(e[4])]}static fromHex(t){return new Ie(Ie.sourceFromHex(t))}static sourceFromHex(t){if(t.match(/^#?(([0-9a-f]){3,4}|([0-9a-f]{2}){3,4})$/i)){const e=t.slice(t.indexOf(\"#\")+1);let s;s=e.length<=4?e.split(\"\").map((t=>t+t)):e.match(/.{2}/g);const[i,r,n,o=255]=s.map((t=>parseInt(t,16)));return[i,r,n,o/255]}}static parseAngletoDegrees(t){const e=t.toLowerCase(),s=parseFloat(e);return e.includes(\"rad\")?Ct(s):e.includes(\"turn\")?360*s:s}}const Be=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O;const s=/\\D{0,2}$/.exec(t),i=parseFloat(t),r=o.DPI;switch(null==s?void 0:s[0]){case\"mm\":return i*r/25.4;case\"cm\":return i*r/2.54;case\"in\":return i*r;case\"pt\":return i*r/72;case\"pc\":return i*r/72*12;case\"em\":return i*e;default:return i}},Xe=t=>{const[e,s]=t.trim().split(\" \"),[i,r]=(n=e)&&n!==j?[n.slice(1,4),n.slice(5,8)]:n===j?[n,n]:[\"Mid\",\"Mid\"];var n;return{meetOrSlice:s||\"meet\",alignX:i,alignY:r}},Ye=function(t,e){let s,i,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(e)if(e.toLive)s=\"url(#SVGID_\".concat(e.id,\")\");else{const t=new Ie(e),r=t.getAlpha();s=t.toRgb(),1!==r&&(i=r.toString())}else s=\"none\";return r?\"\".concat(t,\": \").concat(s,\"; \").concat(i?\"\".concat(t,\"-opacity: \").concat(i,\"; \"):\"\"):\"\".concat(t,'=\"').concat(s,'\" ').concat(i?\"\".concat(t,'-opacity=\"').concat(i,'\" '):\"\")};class We{getSvgStyles(t){const e=this.fillRule?this.fillRule:\"nonzero\",s=this.strokeWidth?this.strokeWidth:\"0\",i=this.strokeDashArray?this.strokeDashArray.join(\" \"):j,r=this.strokeDashOffset?this.strokeDashOffset:\"0\",n=this.strokeLineCap?this.strokeLineCap:\"butt\",o=this.strokeLineJoin?this.strokeLineJoin:\"miter\",a=this.strokeMiterLimit?this.strokeMiterLimit:\"4\",h=void 0!==this.opacity?this.opacity:\"1\",c=this.visible?\"\":\" visibility: hidden;\",l=t?\"\":this.getSvgFilter(),u=Ye(K,this.fill);return[Ye(J,this.stroke),\"stroke-width: \",s,\"; \",\"stroke-dasharray: \",i,\"; \",\"stroke-linecap: \",n,\"; \",\"stroke-dashoffset: \",r,\"; \",\"stroke-linejoin: \",o,\"; \",\"stroke-miterlimit: \",a,\"; \",u,\"fill-rule: \",e,\"; \",\"opacity: \",h,\";\",l,c].join(\"\")}getSvgFilter(){return this.shadow?\"filter: url(#SVGID_\".concat(this.shadow.id,\");\"):\"\"}getSvgCommons(){return[this.id?'id=\"'.concat(this.id,'\" '):\"\",this.clipPath?'clip-path=\"url(#'.concat(this.clipPath.clipPathId,')\" '):\"\"].join(\"\")}getSvgTransform(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\";const s=t?this.calcTransformMatrix():this.calcOwnMatrix(),i='transform=\"'.concat(zt(s));return\"\".concat(i).concat(e,'\" ')}_toSVG(t){return[\"\"]}toSVG(t){return this._createBaseSVGMarkup(this._toSVG(t),{reviver:t})}toClipPathSVG(t){return\"\\t\"+this._createBaseClipPathSVGMarkup(this._toSVG(t),{reviver:t})}_createBaseClipPathSVGMarkup(t){let{reviver:e,additionalTransform:s=\"\"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=[this.getSvgTransform(!0,s),this.getSvgCommons()].join(\"\"),r=t.indexOf(\"COMMON_PARTS\");return t[r]=i,e?e(t.join(\"\")):t.join(\"\")}_createBaseSVGMarkup(t){let{noStyle:e,reviver:s,withShadow:i,additionalTransform:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=e?\"\":'style=\"'.concat(this.getSvgStyles(),'\" '),o=i?'style=\"'.concat(this.getSvgFilter(),'\" '):\"\",a=this.clipPath,h=this.strokeUniform?'vector-effect=\"non-scaling-stroke\" ':\"\",c=a&&a.absolutePositioned,l=this.stroke,u=this.fill,d=this.shadow,g=[],f=t.indexOf(\"COMMON_PARTS\");let p;a&&(a.clipPathId=\"CLIPPATH_\".concat(ft()),p='<clipPath id=\"'.concat(a.clipPathId,'\" >\\n').concat(a.toClipPathSVG(s),\"</clipPath>\\n\")),c&&g.push(\"<g \",o,this.getSvgCommons(),\" >\\n\"),g.push(\"<g \",this.getSvgTransform(!1),c?\"\":o+this.getSvgCommons(),\" >\\n\");const m=[n,h,e?\"\":this.addPaintOrder(),\" \",r?'transform=\"'.concat(r,'\" '):\"\"].join(\"\");return t[f]=m,Gt(u)&&g.push(u.toSVG(this)),Gt(l)&&g.push(l.toSVG(this)),d&&g.push(d.toSVG(this)),a&&g.push(p),g.push(t.join(\"\")),g.push(\"</g>\\n\"),c&&g.push(\"</g>\\n\"),s?s(g.join(\"\")):g.join(\"\")}addPaintOrder(){return this.paintFirst!==K?' paint-order=\"'.concat(this.paintFirst,'\" '):\"\"}}function Ve(t){return new RegExp(\"^(\"+t.join(\"|\")+\")\\\\b\",\"i\")}const ze=\"textDecorationThickness\",Ge=[\"fontSize\",\"fontWeight\",\"fontFamily\",\"fontStyle\"],He=[\"underline\",\"overline\",\"linethrough\"],Ne=[...Ge,\"lineHeight\",\"text\",\"charSpacing\",\"textAlign\",\"styles\",\"path\",\"pathStartOffset\",\"pathSide\",\"pathAlign\"],Ue=[...Ne,...He,\"textBackgroundColor\",\"direction\",ze],qe=[...Ge,...He,J,\"strokeWidth\",K,\"deltaY\",\"textBackgroundColor\",ze],Ke={_reNewline:F,_reSpacesAndTabs:/[ \\t\\r]/g,_reSpaceAndTab:/[ \\t\\r]/,_reWords:/\\S+/g,fontSize:40,fontWeight:\"normal\",fontFamily:\"Times New Roman\",underline:!1,overline:!1,linethrough:!1,textAlign:M,fontStyle:\"normal\",lineHeight:1.16,textBackgroundColor:\"\",stroke:null,shadow:null,path:void 0,pathStartOffset:0,pathSide:M,pathAlign:\"baseline\",charSpacing:0,deltaY:0,direction:\"ltr\",CACHE_FONT_SIZE:400,MIN_TEXT_WIDTH:2,superscript:{size:.6,baseline:-.35},subscript:{size:.6,baseline:.11},_fontSizeFraction:.222,offsets:{underline:.1,linethrough:-.28167,overline:-.81333},_fontSizeMult:1.13,[ze]:66.667},Je=\"justify\",Qe=\"justify-left\",Ze=\"justify-right\",$e=\"justify-center\";var ts,es,ss;const is=String.raw(ts||(ts=r([\"[-+]?(?:d*.d+|d+.?)(?:[eE][-+]?d+)?\"],[\"[-+]?(?:\\\\d*\\\\.\\\\d+|\\\\d+\\\\.?)(?:[eE][-+]?\\\\d+)?\"]))),rs=String.raw(es||(es=r([\"(?:s*,?s+|s*,s*)\"],[\"(?:\\\\s*,?\\\\s+|\\\\s*,\\\\s*)\"]))),ns=\"http://www.w3.org/2000/svg\",os=new RegExp(\"(normal|italic)?\\\\s*(normal|small-caps)?\\\\s*(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\\\s*(\"+is+\"(?:px|cm|mm|em|pt|pc|in)*)(?:\\\\/(normal|\"+is+\"))?\\\\s+(.*)\"),as={cx:M,x:M,r:\"radius\",cy:P,y:P,display:\"visible\",visibility:\"visible\",transform:\"transformMatrix\",\"fill-opacity\":\"fillOpacity\",\"fill-rule\":\"fillRule\",\"font-family\":\"fontFamily\",\"font-size\":\"fontSize\",\"font-style\":\"fontStyle\",\"font-weight\":\"fontWeight\",\"letter-spacing\":\"charSpacing\",\"paint-order\":\"paintFirst\",\"stroke-dasharray\":\"strokeDashArray\",\"stroke-dashoffset\":\"strokeDashOffset\",\"stroke-linecap\":\"strokeLineCap\",\"stroke-linejoin\":\"strokeLineJoin\",\"stroke-miterlimit\":\"strokeMiterLimit\",\"stroke-opacity\":\"strokeOpacity\",\"stroke-width\":\"strokeWidth\",\"text-decoration\":\"textDecoration\",\"text-anchor\":\"textAnchor\",opacity:\"opacity\",\"clip-path\":\"clipPath\",\"clip-rule\":\"clipRule\",\"vector-effect\":\"strokeUniform\",\"image-rendering\":\"imageSmoothing\",\"text-decoration-thickness\":ze},hs=\"font-size\",cs=\"clip-path\",ls=Ve([\"path\",\"circle\",\"polygon\",\"polyline\",\"ellipse\",\"rect\",\"line\",\"image\",\"text\"]),us=Ve([\"symbol\",\"image\",\"marker\",\"pattern\",\"view\",\"svg\"]),ds=Ve([\"symbol\",\"g\",\"a\",\"svg\",\"clipPath\",\"defs\"]),gs=new RegExp(String.raw(ss||(ss=r([\"^s*(\",\")\",\"(\",\")\",\"(\",\")\",\"(\",\")s*$\"],[\"^\\\\s*(\",\")\",\"(\",\")\",\"(\",\")\",\"(\",\")\\\\s*$\"])),is,rs,is,rs,is,rs,is)),fs=new ot(1,0),ps=new ot,ms=(t,e)=>t.rotate(e),vs=(t,e)=>new ot(e).subtract(t),ys=t=>t.distanceFrom(ps),_s=(t,e)=>Math.atan2(Ss(t,e),ws(t,e)),xs=t=>_s(fs,t),Cs=t=>t.eq(ps)?t:t.scalarDivide(ys(t)),bs=function(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Cs(new ot(-t.y,t.x).scalarMultiply(e?1:-1))},Ss=(t,e)=>t.x*e.y-t.y*e.x,ws=(t,e)=>t.x*e.x+t.y*e.y,Ts=(t,e,s)=>{if(t.eq(e)||t.eq(s))return!0;const i=Ss(e,s),r=Ss(e,t),n=Ss(s,t);return i>=0?r>=0&&n<=0:!(r<=0&&n>=0)},Os=\"(-?\\\\d+(?:\\\\.\\\\d*)?(?:px)?(?:\\\\s?|$))?\",ks=new RegExp(\"(?:\\\\s|^)\"+Os+Os+\"(\"+is+\"?(?:px)?)?(?:\\\\s?|$)(?:$|\\\\s)\");class Ds{constructor(t){const e=\"string\"==typeof t?Ds.parseShadow(t):t;Object.assign(this,Ds.ownDefaults,e),this.id=ft()}static parseShadow(t){const e=t.trim(),[,s=0,i=0,r=0]=(ks.exec(e)||[]).map((t=>parseFloat(t)||0));return{color:(e.replace(ks,\"\")||\"rgb(0,0,0)\").trim(),offsetX:s,offsetY:i,blur:r}}toString(){return[this.offsetX,this.offsetY,this.blur,this.color].join(\"px \")}toSVG(t){const e=ms(new ot(this.offsetX,this.offsetY),xt(-t.angle)),s=new Ie(this.color);let i=40,r=40;return t.width&&t.height&&(i=100*Vt((Math.abs(e.x)+this.blur)/t.width,o.NUM_FRACTION_DIGITS)+20,r=100*Vt((Math.abs(e.y)+this.blur)/t.height,o.NUM_FRACTION_DIGITS)+20),t.flipX&&(e.x*=-1),t.flipY&&(e.y*=-1),'<filter id=\"SVGID_'.concat(this.id,'\" y=\"-').concat(r,'%\" height=\"').concat(100+2*r,'%\" x=\"-').concat(i,'%\" width=\"').concat(100+2*i,'%\" >\\n\\t<feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"').concat(Vt(this.blur?this.blur/2:0,o.NUM_FRACTION_DIGITS),'\"></feGaussianBlur>\\n\\t<feOffset dx=\"').concat(Vt(e.x,o.NUM_FRACTION_DIGITS),'\" dy=\"').concat(Vt(e.y,o.NUM_FRACTION_DIGITS),'\" result=\"oBlur\" ></feOffset>\\n\\t<feFlood flood-color=\"').concat(s.toRgb(),'\" flood-opacity=\"').concat(s.getAlpha(),'\"/>\\n\\t<feComposite in2=\"oBlur\" operator=\"in\" />\\n\\t<feMerge>\\n\\t\\t<feMergeNode></feMergeNode>\\n\\t\\t<feMergeNode in=\"SourceGraphic\"></feMergeNode>\\n\\t</feMerge>\\n</filter>\\n')}toObject(){const t={color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY,affectStroke:this.affectStroke,nonScaling:this.nonScaling,type:this.constructor.type},e=Ds.ownDefaults;return this.includeDefaultValues?t:Wt(t,((t,s)=>t!==e[s]))}static async fromObject(t){return new this(t)}}t(Ds,\"ownDefaults\",{color:\"rgb(0,0,0)\",blur:0,offsetX:0,offsetY:0,affectStroke:!1,includeDefaultValues:!0,nonScaling:!1}),t(Ds,\"type\",\"shadow\"),tt.setClass(Ds,\"shadow\");const Ms=(t,e,s)=>Math.max(t,Math.min(e,s)),Ps=[P,M,H,N,\"flipX\",\"flipY\",\"originX\",\"originY\",\"angle\",\"opacity\",\"globalCompositeOperation\",\"shadow\",\"visible\",U,q],Es=[K,J,\"strokeWidth\",\"strokeDashArray\",\"width\",\"height\",\"paintFirst\",\"strokeUniform\",\"strokeLineCap\",\"strokeDashOffset\",\"strokeLineJoin\",\"strokeMiterLimit\",\"backgroundColor\",\"clipPath\"],As={top:0,left:0,width:0,height:0,angle:0,flipX:!1,flipY:!1,scaleX:1,scaleY:1,minScaleLimit:0,skewX:0,skewY:0,originX:M,originY:P,strokeWidth:1,strokeUniform:!1,padding:0,opacity:1,paintFirst:K,fill:\"rgb(0,0,0)\",fillRule:\"nonzero\",stroke:null,strokeDashArray:null,strokeDashOffset:0,strokeLineCap:\"butt\",strokeLineJoin:\"miter\",strokeMiterLimit:4,globalCompositeOperation:\"source-over\",backgroundColor:\"\",shadow:null,visible:!0,includeDefaultValues:!0,excludeFromExport:!1,objectCaching:!0,clipPath:void 0,inverted:!1,absolutePositioned:!1,centeredRotation:!0,centeredScaling:!1,dirty:!0},js=(t,e,s,i)=>(t<Math.abs(e)?(t=e,i=s/4):i=0===e&&0===t?s/S*Math.asin(1):s/S*Math.asin(e/t),{a:t,c:e,p:s,s:i}),Fs=(t,e,s,i,r)=>t*Math.pow(2,10*(i-=1))*Math.sin((i*r-e)*S/s),Ls=(t,e,s,i)=>-s*Math.cos(t/i*b)+s+e,Rs=(t,e,s,i)=>(t/=i)<1/2.75?s*(7.5625*t*t)+e:t<2/2.75?s*(7.5625*(t-=1.5/2.75)*t+.75)+e:t<2.5/2.75?s*(7.5625*(t-=2.25/2.75)*t+.9375)+e:s*(7.5625*(t-=2.625/2.75)*t+.984375)+e,Is=(t,e,s,i)=>s-Rs(i-t,0,s,i)+e;var Bs=Object.freeze({__proto__:null,defaultEasing:Ls,easeInBack:function(t,e,s,i){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1.70158;return s*(t/=i)*t*((r+1)*t-r)+e},easeInBounce:Is,easeInCirc:(t,e,s,i)=>-s*(Math.sqrt(1-(t/=i)*t)-1)+e,easeInCubic:(t,e,s,i)=>s*(t/i)**3+e,easeInElastic:(t,e,s,i)=>{const r=s;let n=0;if(0===t)return e;if(1===(t/=i))return e+s;n||(n=.3*i);const{a:o,s:a,p:h}=js(r,s,n,1.70158);return-Fs(o,a,h,t,i)+e},easeInExpo:(t,e,s,i)=>0===t?e:s*2**(10*(t/i-1))+e,easeInOutBack:function(t,e,s,i){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1.70158;return(t/=i/2)<1?s/2*(t*t*((1+(r*=1.525))*t-r))+e:s/2*((t-=2)*t*((1+(r*=1.525))*t+r)+2)+e},easeInOutBounce:(t,e,s,i)=>t<i/2?.5*Is(2*t,0,s,i)+e:.5*Rs(2*t-i,0,s,i)+.5*s+e,easeInOutCirc:(t,e,s,i)=>(t/=i/2)<1?-s/2*(Math.sqrt(1-t**2)-1)+e:s/2*(Math.sqrt(1-(t-=2)*t)+1)+e,easeInOutCubic:(t,e,s,i)=>(t/=i/2)<1?s/2*t**3+e:s/2*((t-2)**3+2)+e,easeInOutElastic:(t,e,s,i)=>{const r=s;let n=0;if(0===t)return e;if(2===(t/=i/2))return e+s;n||(n=i*(.3*1.5));const{a:o,s:a,p:h,c:c}=js(r,s,n,1.70158);return t<1?-.5*Fs(o,a,h,t,i)+e:o*Math.pow(2,-10*(t-=1))*Math.sin((t*i-a)*S/h)*.5+c+e},easeInOutExpo:(t,e,s,i)=>0===t?e:t===i?e+s:(t/=i/2)<1?s/2*2**(10*(t-1))+e:s/2*-(2**(-10*--t)+2)+e,easeInOutQuad:(t,e,s,i)=>(t/=i/2)<1?s/2*t**2+e:-s/2*(--t*(t-2)-1)+e,easeInOutQuart:(t,e,s,i)=>(t/=i/2)<1?s/2*t**4+e:-s/2*((t-=2)*t**3-2)+e,easeInOutQuint:(t,e,s,i)=>(t/=i/2)<1?s/2*t**5+e:s/2*((t-2)**5+2)+e,easeInOutSine:(t,e,s,i)=>-s/2*(Math.cos(Math.PI*t/i)-1)+e,easeInQuad:(t,e,s,i)=>s*(t/=i)*t+e,easeInQuart:(t,e,s,i)=>s*(t/=i)*t**3+e,easeInQuint:(t,e,s,i)=>s*(t/i)**5+e,easeInSine:(t,e,s,i)=>-s*Math.cos(t/i*b)+s+e,easeOutBack:function(t,e,s,i){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1.70158;return s*((t=t/i-1)*t*((r+1)*t+r)+1)+e},easeOutBounce:Rs,easeOutCirc:(t,e,s,i)=>s*Math.sqrt(1-(t=t/i-1)*t)+e,easeOutCubic:(t,e,s,i)=>s*((t/i-1)**3+1)+e,easeOutElastic:(t,e,s,i)=>{const r=s;let n=0;if(0===t)return e;if(1===(t/=i))return e+s;n||(n=.3*i);const{a:o,s:a,p:h,c:c}=js(r,s,n,1.70158);return o*2**(-10*t)*Math.sin((t*i-a)*S/h)+c+e},easeOutExpo:(t,e,s,i)=>t===i?e+s:s*-(2**(-10*t/i)+1)+e,easeOutQuad:(t,e,s,i)=>-s*(t/=i)*(t-2)+e,easeOutQuart:(t,e,s,i)=>-s*((t=t/i-1)*t**3-1)+e,easeOutQuint:(t,e,s,i)=>s*((t/i-1)**5+1)+e,easeOutSine:(t,e,s,i)=>s*Math.sin(t/i*b)+e});const Xs=()=>!1;class Ys{constructor(e){let{startValue:s,byValue:i,duration:r=500,delay:n=0,easing:o=Ls,onStart:a=C,onChange:h=C,onComplete:c=C,abort:l=Xs,target:u}=e;t(this,\"_state\",\"pending\"),t(this,\"durationProgress\",0),t(this,\"valueProgress\",0),this.tick=this.tick.bind(this),this.duration=r,this.delay=n,this.easing=o,this._onStart=a,this._onChange=h,this._onComplete=c,this._abort=l,this.target=u,this.startValue=s,this.byValue=i,this.value=this.startValue,this.endValue=Object.freeze(this.calculate(this.duration).value)}get state(){return this._state}isDone(){return\"aborted\"===this._state||\"completed\"===this._state}start(){const t=t=>{\"pending\"===this._state&&(this.startTime=t||+new Date,this._state=\"running\",this._onStart(),this.tick(this.startTime))};this.register(),this.delay>0?setTimeout((()=>ut(t)),this.delay):ut(t)}tick(t){const e=(t||+new Date)-this.startTime,s=Math.min(e,this.duration);this.durationProgress=s/this.duration;const{value:i,valueProgress:r}=this.calculate(s);this.value=Object.freeze(i),this.valueProgress=r,\"aborted\"!==this._state&&(this._abort(this.value,this.valueProgress,this.durationProgress)?(this._state=\"aborted\",this.unregister()):e>=this.duration?(this.durationProgress=this.valueProgress=1,this._onChange(this.endValue,this.valueProgress,this.durationProgress),this._state=\"completed\",this._onComplete(this.endValue,this.valueProgress,this.durationProgress),this.unregister()):(this._onChange(this.value,this.valueProgress,this.durationProgress),ut(this.tick)))}register(){et.push(this)}unregister(){et.remove(this)}abort(){this._state=\"aborted\",this.unregister()}}const Ws=[\"startValue\",\"endValue\"];class Vs extends Ys{constructor(t){let{startValue:e=0,endValue:r=100}=t;super(s(s({},i(t,Ws)),{},{startValue:e,byValue:r-e}))}calculate(t){const e=this.easing(t,this.startValue,this.byValue,this.duration);return{value:e,valueProgress:Math.abs((e-this.startValue)/this.byValue)}}}const zs=[\"startValue\",\"endValue\"];class Gs extends Ys{constructor(t){let{startValue:e=[0],endValue:r=[100]}=t;super(s(s({},i(t,zs)),{},{startValue:e,byValue:r.map(((t,s)=>t-e[s]))}))}calculate(t){const e=this.startValue.map(((e,s)=>this.easing(t,e,this.byValue[s],this.duration,s)));return{value:e,valueProgress:Math.abs((e[0]-this.startValue[0])/this.byValue[0])}}}const Hs=[\"startValue\",\"endValue\",\"easing\",\"onChange\",\"onComplete\",\"abort\"],Ns=(t,e,s,i)=>e+s*(1-Math.cos(t/i*b)),Us=t=>t&&((e,s,i)=>t(new Ie(e).toRgba(),s,i));class qs extends Ys{constructor(t){let{startValue:e,endValue:r,easing:n=Ns,onChange:o,onComplete:a,abort:h}=t,c=i(t,Hs);const l=new Ie(e).getSource(),u=new Ie(r).getSource();super(s(s({},c),{},{startValue:l,byValue:u.map(((t,e)=>t-l[e])),easing:n,onChange:Us(o),onComplete:Us(a),abort:Us(h)}))}calculate(t){const[e,s,i,r]=this.startValue.map(((e,s)=>this.easing(t,e,this.byValue[s],this.duration,s))),n=[...[e,s,i].map(Math.round),Ms(0,r,1)];return{value:n,valueProgress:n.map(((t,e)=>0!==this.byValue[e]?Math.abs((t-this.startValue[e])/this.byValue[e]):0)).find((t=>0!==t))||0}}}function Ks(t){const e=(t=>Array.isArray(t.startValue)||Array.isArray(t.endValue))(t)?new Gs(t):new Vs(t);return e.start(),e}function Js(t){const e=new qs(t);return e.start(),e}class Qs{constructor(t){this.status=t,this.points=[]}includes(t){return this.points.some((e=>e.eq(t)))}append(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];return this.points=this.points.concat(e.filter((t=>!this.includes(t)))),this}static isPointContained(t,e,s){let i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(e.eq(s))return t.eq(e);if(e.x===s.x)return t.x===e.x&&(i||t.y>=Math.min(e.y,s.y)&&t.y<=Math.max(e.y,s.y));if(e.y===s.y)return t.y===e.y&&(i||t.x>=Math.min(e.x,s.x)&&t.x<=Math.max(e.x,s.x));{const r=vs(e,s),n=vs(e,t).divide(r);return i?Math.abs(n.x)===Math.abs(n.y):n.x===n.y&&n.x>=0&&n.x<=1}}static isPointInPolygon(t,e){const s=new ot(t).setX(Math.min(t.x-1,...e.map((t=>t.x))));let i=0;for(let r=0;r<e.length;r++){const n=this.intersectSegmentSegment(e[r],e[(r+1)%e.length],t,s);if(n.includes(t))return!0;i+=Number(\"Intersection\"===n.status)}return i%2==1}static intersectLineLine(t,e,s,i){let r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],n=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];const o=e.x-t.x,a=e.y-t.y,h=i.x-s.x,c=i.y-s.y,l=t.x-s.x,u=t.y-s.y,d=h*u-c*l,g=o*u-a*l,f=c*o-h*a;if(0!==f){const e=d/f,s=g/f;return(r||0<=e&&e<=1)&&(n||0<=s&&s<=1)?new Qs(\"Intersection\").append(new ot(t.x+e*o,t.y+e*a)):new Qs}if(0===d||0===g){const o=r||n||Qs.isPointContained(t,s,i)||Qs.isPointContained(e,s,i)||Qs.isPointContained(s,t,e)||Qs.isPointContained(i,t,e);return new Qs(o?\"Coincident\":void 0)}return new Qs(\"Parallel\")}static intersectSegmentLine(t,e,s,i){return Qs.intersectLineLine(t,e,s,i,!1,!0)}static intersectSegmentSegment(t,e,s,i){return Qs.intersectLineLine(t,e,s,i,!1,!1)}static intersectLinePolygon(t,e,s){let i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];const r=new Qs,n=s.length;for(let o,a,h,c=0;c<n;c++){if(o=s[c],a=s[(c+1)%n],h=Qs.intersectLineLine(t,e,o,a,i,!1),\"Coincident\"===h.status)return h;r.append(...h.points)}return r.points.length>0&&(r.status=\"Intersection\"),r}static intersectSegmentPolygon(t,e,s){return Qs.intersectLinePolygon(t,e,s,!1)}static intersectPolygonPolygon(t,e){const s=new Qs,i=t.length,r=[];for(let n=0;n<i;n++){const o=t[n],a=t[(n+1)%i],h=Qs.intersectSegmentPolygon(o,a,e);\"Coincident\"===h.status?(r.push(h),s.append(o,a)):s.append(...h.points)}return r.length>0&&r.length===t.length?new Qs(\"Coincident\"):(s.points.length>0&&(s.status=\"Intersection\"),s)}static intersectPolygonRectangle(t,e,s){const i=e.min(s),r=e.max(s),n=new ot(r.x,i.y),o=new ot(i.x,r.y);return Qs.intersectPolygonPolygon(t,[i,n,r,o])}}class Zs extends lt{getX(){return this.getXY().x}setX(t){this.setXY(this.getXY().setX(t))}getY(){return this.getXY().y}setY(t){this.setXY(this.getXY().setY(t))}getRelativeX(){return this.left}setRelativeX(t){this.left=t}getRelativeY(){return this.top}setRelativeY(t){this.top=t}getXY(){const t=this.getRelativeXY();return this.group?St(t,this.group.calcTransformMatrix()):t}setXY(t,e,s){this.group&&(t=St(t,wt(this.group.calcTransformMatrix()))),this.setRelativeXY(t,e,s)}getRelativeXY(){return new ot(this.left,this.top)}setRelativeXY(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.originX,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.originY;this.setPositionByOrigin(t,e,s)}isStrokeAccountedForInDimensions(){return!1}getCoords(){const{tl:t,tr:e,br:s,bl:i}=this.aCoords||(this.aCoords=this.calcACoords()),r=[t,e,s,i];if(this.group){const t=this.group.calcTransformMatrix();return r.map((e=>St(e,t)))}return r}intersectsWithRect(t,e){return\"Intersection\"===Qs.intersectPolygonRectangle(this.getCoords(),t,e).status}intersectsWithObject(t){const e=Qs.intersectPolygonPolygon(this.getCoords(),t.getCoords());return\"Intersection\"===e.status||\"Coincident\"===e.status||t.isContainedWithinObject(this)||this.isContainedWithinObject(t)}isContainedWithinObject(t){return this.getCoords().every((e=>t.containsPoint(e)))}isContainedWithinRect(t,e){const{left:s,top:i,width:r,height:n}=this.getBoundingRect();return s>=t.x&&s+r<=e.x&&i>=t.y&&i+n<=e.y}isOverlapping(t){return this.intersectsWithObject(t)||this.isContainedWithinObject(t)||t.isContainedWithinObject(this)}containsPoint(t){return Qs.isPointInPolygon(t,this.getCoords())}isOnScreen(){if(!this.canvas)return!1;const{tl:t,br:e}=this.canvas.vptCoords;return!!this.getCoords().some((s=>s.x<=e.x&&s.x>=t.x&&s.y<=e.y&&s.y>=t.y))||(!!this.intersectsWithRect(t,e)||this.containsPoint(t.midPointFrom(e)))}isPartiallyOnScreen(){if(!this.canvas)return!1;const{tl:t,br:e}=this.canvas.vptCoords;if(this.intersectsWithRect(t,e))return!0;return this.getCoords().every((s=>(s.x>=e.x||s.x<=t.x)&&(s.y>=e.y||s.y<=t.y)))&&this.containsPoint(t.midPointFrom(e))}getBoundingRect(){return he(this.getCoords())}getScaledWidth(){return this._getTransformedDimensions().x}getScaledHeight(){return this._getTransformedDimensions().y}scale(t){this._set(H,t),this._set(N,t),this.setCoords()}scaleToWidth(t){const e=this.getBoundingRect().width/this.getScaledWidth();return this.scale(t/this.width/e)}scaleToHeight(t){const e=this.getBoundingRect().height/this.getScaledHeight();return this.scale(t/this.height/e)}getCanvasRetinaScaling(){var t;return(null===(t=this.canvas)||void 0===t?void 0:t.getRetinaScaling())||1}getTotalAngle(){return this.group?Ct(kt(this.calcTransformMatrix())):this.angle}getViewportTransform(){var t;return(null===(t=this.canvas)||void 0===t?void 0:t.viewportTransform)||T.concat()}calcACoords(){const t=Pt({angle:this.angle}),{x:e,y:s}=this.getRelativeCenterPoint(),i=Mt(e,s),r=Tt(i,t),n=this._getTransformedDimensions(),o=n.x/2,a=n.y/2;return{tl:St({x:-o,y:-a},r),tr:St({x:o,y:-a},r),bl:St({x:-o,y:a},r),br:St({x:o,y:a},r)}}setCoords(){this.aCoords=this.calcACoords()}transformMatrixKey(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=[];return!t&&this.group&&(e=this.group.transformMatrixKey(t)),e.push(this.top,this.left,this.width,this.height,this.scaleX,this.scaleY,this.angle,this.strokeWidth,this.skewX,this.skewY,+this.flipX,+this.flipY,Ce(this.originX),Ce(this.originY)),e}calcTransformMatrix(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.calcOwnMatrix();if(t||!this.group)return e;const s=this.transformMatrixKey(t),i=this.matrixCache;return i&&i.key.every(((t,e)=>t===s[e]))?i.value:(this.group&&(e=Tt(this.group.calcTransformMatrix(!1),e)),this.matrixCache={key:s,value:e},e)}calcOwnMatrix(){const t=this.transformMatrixKey(!0),e=this.ownMatrixCache;if(e&&e.key===t)return e.value;const s=this.getRelativeCenterPoint(),i={angle:this.angle,translateX:s.x,translateY:s.y,scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,flipX:this.flipX,flipY:this.flipY},r=Rt(i);return this.ownMatrixCache={key:t,value:r},r}_getNonTransformedDimensions(){return new ot(this.width,this.height).scalarAdd(this.strokeWidth)}_calculateCurrentDimensions(t){return this._getTransformedDimensions(t).transform(this.getViewportTransform(),!0).scalarAdd(2*this.padding)}_getTransformedDimensions(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e=s({scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,width:this.width,height:this.height,strokeWidth:this.strokeWidth},t),i=e.strokeWidth;let r=i,n=0;this.strokeUniform&&(r=0,n=i);const o=e.width+r,a=e.height+r;let h;return h=0===e.skewX&&0===e.skewY?new ot(o*e.scaleX,a*e.scaleY):fe(o,a,Lt(e)),h.scalarAdd(n)}translateToGivenOrigin(t,e,s,i,r){let n=t.x,o=t.y;const a=Ce(i)-Ce(e),h=Ce(r)-Ce(s);if(a||h){const t=this._getTransformedDimensions();n+=a*t.x,o+=h*t.y}return new ot(n,o)}translateToCenterPoint(t,e,s){if(e===D&&s===D)return t;const i=this.translateToGivenOrigin(t,e,s,D,D);return this.angle?i.rotate(xt(this.angle),t):i}translateToOriginPoint(t,e,s){const i=this.translateToGivenOrigin(t,D,D,e,s);return this.angle?i.rotate(xt(this.angle),t):i}getCenterPoint(){const t=this.getRelativeCenterPoint();return this.group?St(t,this.group.calcTransformMatrix()):t}getRelativeCenterPoint(){return this.translateToCenterPoint(new ot(this.left,this.top),this.originX,this.originY)}getPointByOrigin(t,e){return this.translateToOriginPoint(this.getRelativeCenterPoint(),t,e)}setPositionByOrigin(t,e,s){const i=this.translateToCenterPoint(t,e,s),r=this.translateToOriginPoint(i,this.originX,this.originY);this.set({left:r.x,top:r.y})}_getLeftTopCoords(){return this.translateToOriginPoint(this.getRelativeCenterPoint(),M,P)}}const $s=[\"type\"],ti=[\"extraParam\"];let ei=class e extends Zs{static getDefaults(){return e.ownDefaults}get type(){const t=this.constructor.type;return\"FabricObject\"===t?\"object\":t.toLowerCase()}set type(t){a(\"warn\",\"Setting type has no effect\",t)}constructor(s){super(),t(this,\"_cacheContext\",null),Object.assign(this,e.ownDefaults),this.setOptions(s)}_createCacheCanvas(){this._cacheCanvas=pt(),this._cacheContext=this._cacheCanvas.getContext(\"2d\"),this._updateCacheCanvas(),this.dirty=!0}_limitCacheSize(t){const e=t.width,s=t.height,i=o.maxCacheSideLimit,r=o.minCacheSideLimit;if(e<=i&&s<=i&&e*s<=o.perfLimitSizeTotal)return e<r&&(t.width=r),s<r&&(t.height=r),t;const n=e/s,[a,h]=_.limitDimsByArea(n),c=Ms(r,a,i),l=Ms(r,h,i);return e>c&&(t.zoomX/=e/c,t.width=c,t.capped=!0),s>l&&(t.zoomY/=s/l,t.height=l,t.capped=!0),t}_getCacheCanvasDimensions(){const t=this.getTotalObjectScaling(),e=this._getTransformedDimensions({skewX:0,skewY:0}),s=e.x*t.x/this.scaleX,i=e.y*t.y/this.scaleY;return{width:Math.ceil(s+2),height:Math.ceil(i+2),zoomX:t.x,zoomY:t.y,x:s,y:i}}_updateCacheCanvas(){const t=this._cacheCanvas,e=this._cacheContext,{width:s,height:i,zoomX:r,zoomY:n,x:o,y:a}=this._limitCacheSize(this._getCacheCanvasDimensions()),h=s!==t.width||i!==t.height,c=this.zoomX!==r||this.zoomY!==n;if(!t||!e)return!1;if(h||c){s!==t.width||i!==t.height?(t.width=s,t.height=i):(e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,t.width,t.height));const h=o/2,c=a/2;return this.cacheTranslationX=Math.round(t.width/2-h)+h,this.cacheTranslationY=Math.round(t.height/2-c)+c,e.translate(this.cacheTranslationX,this.cacheTranslationY),e.scale(r,n),this.zoomX=r,this.zoomY=n,!0}return!1}setOptions(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._setOptions(t)}transform(t){const e=this.group&&!this.group._transformDone||this.group&&this.canvas&&t===this.canvas.contextTop,s=this.calcTransformMatrix(!e);t.transform(s[0],s[1],s[2],s[3],s[4],s[5])}getObjectScaling(){if(!this.group)return new ot(Math.abs(this.scaleX),Math.abs(this.scaleY));const t=Dt(this.calcTransformMatrix());return new ot(Math.abs(t.scaleX),Math.abs(t.scaleY))}getTotalObjectScaling(){const t=this.getObjectScaling();if(this.canvas){const e=this.canvas.getZoom(),s=this.getCanvasRetinaScaling();return t.scalarMultiply(e*s)}return t}getObjectOpacity(){let t=this.opacity;return this.group&&(t*=this.group.getObjectOpacity()),t}_constrainScale(t){return Math.abs(t)<this.minScaleLimit?t<0?-this.minScaleLimit:this.minScaleLimit:0===t?1e-4:t}_set(t,e){t!==H&&t!==N||(e=this._constrainScale(e)),t===H&&e<0?(this.flipX=!this.flipX,e*=-1):\"scaleY\"===t&&e<0?(this.flipY=!this.flipY,e*=-1):\"shadow\"!==t||!e||e instanceof Ds||(e=new Ds(e));const s=this[t]!==e;return this[t]=e,s&&this.constructor.cacheProperties.includes(t)&&(this.dirty=!0),this.parent&&(this.dirty||s&&this.constructor.stateProperties.includes(t))&&this.parent._set(\"dirty\",!0),this}isNotVisible(){return 0===this.opacity||!this.width&&!this.height&&0===this.strokeWidth||!this.visible}render(t){this.isNotVisible()||this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(t.save(),this._setupCompositeOperation(t),this.drawSelectionBackground(t),this.transform(t),this._setOpacity(t),this._setShadow(t),this.shouldCache()?(this.renderCache(),this.drawCacheOnCanvas(t)):(this._removeCacheCanvas(),this.drawObject(t,!1,{}),this.dirty=!1),t.restore())}drawSelectionBackground(t){}renderCache(t){if(t=t||{},this._cacheCanvas&&this._cacheContext||this._createCacheCanvas(),this.isCacheDirty()&&this._cacheContext){const{zoomX:e,zoomY:s,cacheTranslationX:i,cacheTranslationY:r}=this,{width:n,height:o}=this._cacheCanvas;this.drawObject(this._cacheContext,t.forClipping,{zoomX:e,zoomY:s,cacheTranslationX:i,cacheTranslationY:r,width:n,height:o,parentClipPaths:[]}),this.dirty=!1}}_removeCacheCanvas(){this._cacheCanvas=void 0,this._cacheContext=null}hasStroke(){return this.stroke&&\"transparent\"!==this.stroke&&0!==this.strokeWidth}hasFill(){return this.fill&&\"transparent\"!==this.fill}needsItsOwnCache(){return!!(this.paintFirst===J&&this.hasFill()&&this.hasStroke()&&this.shadow)||!!this.clipPath}shouldCache(){return this.ownCaching=this.objectCaching&&(!this.parent||!this.parent.isOnACache())||this.needsItsOwnCache(),this.ownCaching}willDrawShadow(){return!!this.shadow&&(0!==this.shadow.offsetX||0!==this.shadow.offsetY)}drawClipPathOnCache(t,e,s){t.save(),e.inverted?t.globalCompositeOperation=\"destination-out\":t.globalCompositeOperation=\"destination-in\",t.setTransform(1,0,0,1,0,0),t.drawImage(s,0,0),t.restore()}drawObject(t,e,s){const i=this.fill,r=this.stroke;e?(this.fill=\"black\",this.stroke=\"\",this._setClippingProperties(t)):this._renderBackground(t),this._render(t),this._drawClipPath(t,this.clipPath,s),this.fill=i,this.stroke=r}createClipPathLayer(t,e){const s=vt(e),i=s.getContext(\"2d\");if(i.translate(e.cacheTranslationX,e.cacheTranslationY),i.scale(e.zoomX,e.zoomY),t._cacheCanvas=s,e.parentClipPaths.forEach((t=>{t.transform(i)})),e.parentClipPaths.push(t),t.absolutePositioned){const t=wt(this.calcTransformMatrix());i.transform(t[0],t[1],t[2],t[3],t[4],t[5])}return t.transform(i),t.drawObject(i,!0,e),s}_drawClipPath(t,e,s){if(!e)return;e._transformDone=!0;const i=this.createClipPathLayer(e,s);this.drawClipPathOnCache(t,e,i)}drawCacheOnCanvas(t){t.scale(1/this.zoomX,1/this.zoomY),t.drawImage(this._cacheCanvas,-this.cacheTranslationX,-this.cacheTranslationY)}isCacheDirty(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.isNotVisible())return!1;const e=this._cacheCanvas,s=this._cacheContext;return!(!e||!s||t||!this._updateCacheCanvas())||!!(this.dirty||this.clipPath&&this.clipPath.absolutePositioned)&&(e&&s&&!t&&(s.save(),s.setTransform(1,0,0,1,0,0),s.clearRect(0,0,e.width,e.height),s.restore()),!0)}_renderBackground(t){if(!this.backgroundColor)return;const e=this._getNonTransformedDimensions();t.fillStyle=this.backgroundColor,t.fillRect(-e.x/2,-e.y/2,e.x,e.y),this._removeShadow(t)}_setOpacity(t){this.group&&!this.group._transformDone?t.globalAlpha=this.getObjectOpacity():t.globalAlpha*=this.opacity}_setStrokeStyles(t,e){const s=e.stroke;s&&(t.lineWidth=e.strokeWidth,t.lineCap=e.strokeLineCap,t.lineDashOffset=e.strokeDashOffset,t.lineJoin=e.strokeLineJoin,t.miterLimit=e.strokeMiterLimit,Gt(s)?\"percentage\"===s.gradientUnits||s.gradientTransform||s.patternTransform?this._applyPatternForTransformedGradient(t,s):(t.strokeStyle=s.toLive(t),this._applyPatternGradientTransform(t,s)):t.strokeStyle=e.stroke)}_setFillStyles(t,e){let{fill:s}=e;s&&(Gt(s)?(t.fillStyle=s.toLive(t),this._applyPatternGradientTransform(t,s)):t.fillStyle=s)}_setClippingProperties(t){t.globalAlpha=1,t.strokeStyle=\"transparent\",t.fillStyle=\"#000000\"}_setLineDash(t,e){e&&0!==e.length&&t.setLineDash(e)}_setShadow(t){if(!this.shadow)return;const e=this.shadow,s=this.canvas,i=this.getCanvasRetinaScaling(),[r,,,n]=(null==s?void 0:s.viewportTransform)||T,a=r*i,h=n*i,c=e.nonScaling?new ot(1,1):this.getObjectScaling();t.shadowColor=e.color,t.shadowBlur=e.blur*o.browserShadowBlurConstant*(a+h)*(c.x+c.y)/4,t.shadowOffsetX=e.offsetX*a*c.x,t.shadowOffsetY=e.offsetY*h*c.y}_removeShadow(t){this.shadow&&(t.shadowColor=\"\",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0)}_applyPatternGradientTransform(t,e){if(!Gt(e))return{offsetX:0,offsetY:0};const s=e.gradientTransform||e.patternTransform,i=-this.width/2+e.offsetX||0,r=-this.height/2+e.offsetY||0;return\"percentage\"===e.gradientUnits?t.transform(this.width,0,0,this.height,i,r):t.transform(1,0,0,1,i,r),s&&t.transform(s[0],s[1],s[2],s[3],s[4],s[5]),{offsetX:i,offsetY:r}}_renderPaintInOrder(t){this.paintFirst===J?(this._renderStroke(t),this._renderFill(t)):(this._renderFill(t),this._renderStroke(t))}_render(t){}_renderFill(t){this.fill&&(t.save(),this._setFillStyles(t,this),\"evenodd\"===this.fillRule?t.fill(\"evenodd\"):t.fill(),t.restore())}_renderStroke(t){if(this.stroke&&0!==this.strokeWidth){if(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(t),t.save(),this.strokeUniform){const e=this.getObjectScaling();t.scale(1/e.x,1/e.y)}this._setLineDash(t,this.strokeDashArray),this._setStrokeStyles(t,this),t.stroke(),t.restore()}}_applyPatternForTransformedGradient(t,e){var s;const i=this._limitCacheSize(this._getCacheCanvasDimensions()),r=this.getCanvasRetinaScaling(),n=i.x/this.scaleX/r,o=i.y/this.scaleY/r,a=vt({width:Math.ceil(n),height:Math.ceil(o)}),h=a.getContext(\"2d\");h&&(h.beginPath(),h.moveTo(0,0),h.lineTo(n,0),h.lineTo(n,o),h.lineTo(0,o),h.closePath(),h.translate(n/2,o/2),h.scale(i.zoomX/this.scaleX/r,i.zoomY/this.scaleY/r),this._applyPatternGradientTransform(h,e),h.fillStyle=e.toLive(t),h.fill(),t.translate(-this.width/2-this.strokeWidth/2,-this.height/2-this.strokeWidth/2),t.scale(r*this.scaleX/i.zoomX,r*this.scaleY/i.zoomY),t.strokeStyle=null!==(s=h.createPattern(a,\"no-repeat\"))&&void 0!==s?s:\"\")}_findCenterFromElement(){return new ot(this.left+this.width/2,this.top+this.height/2)}clone(t){const e=this.toObject(t);return this.constructor.fromObject(e)}cloneAsImage(t){const e=this.toCanvasElement(t);return new(tt.getClass(\"image\"))(e)}toCanvasElement(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e=ge(this),s=this.group,i=this.shadow,r=Math.abs,n=t.enableRetinaScaling?y():1,o=(t.multiplier||1)*n,a=t.canvasProvider||(t=>new ie(t,{enableRetinaScaling:!1,renderOnAddRemove:!1,skipOffscreen:!1}));delete this.group,t.withoutTransform&&de(this),t.withoutShadow&&(this.shadow=null),t.viewportTransform&&ye(this,this.getViewportTransform()),this.setCoords();const h=pt(),c=this.getBoundingRect(),l=this.shadow,u=new ot;if(l){const t=l.blur,e=l.nonScaling?new ot(1,1):this.getObjectScaling();u.x=2*Math.round(r(l.offsetX)+t)*r(e.x),u.y=2*Math.round(r(l.offsetY)+t)*r(e.y)}const d=c.width+u.x,g=c.height+u.y;h.width=Math.ceil(d),h.height=Math.ceil(g);const f=a(h);\"jpeg\"===t.format&&(f.backgroundColor=\"#fff\"),this.setPositionByOrigin(new ot(f.width/2,f.height/2),D,D);const p=this.canvas;f._objects=[this],this.set(\"canvas\",f),this.setCoords();const m=f.toCanvasElement(o||1,t);return this.set(\"canvas\",p),this.shadow=i,s&&(this.group=s),this.set(e),this.setCoords(),f._objects=[],f.destroy(),m}toDataURL(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return yt(this.toCanvasElement(t),t.format||\"png\",t.quality||1)}toBlob(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return _t(this.toCanvasElement(t),t.format||\"png\",t.quality||1)}isType(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];return e.includes(this.constructor.type)||e.includes(this.type)}complexity(){return 1}toJSON(){return this.toObject()}rotate(t){const{centeredRotation:e,originX:s,originY:i}=this;if(e){const{x:t,y:e}=this.getRelativeCenterPoint();this.originX=D,this.originY=D,this.left=t,this.top=e}if(this.set(\"angle\",t),e){const{x:t,y:e}=this.translateToOriginPoint(this.getRelativeCenterPoint(),s,i);this.left=t,this.top=e,this.originX=s,this.originY=i}}setOnGroup(){}_setupCompositeOperation(t){this.globalCompositeOperation&&(t.globalCompositeOperation=this.globalCompositeOperation)}dispose(){et.cancelByTarget(this),this.off(),this._set(\"canvas\",void 0),this._cacheCanvas&&p().dispose(this._cacheCanvas),this._cacheCanvas=void 0,this._cacheContext=null}animate(t,e){return Object.entries(t).reduce(((t,s)=>{let[i,r]=s;return t[i]=this._animate(i,r,e),t}),{})}_animate(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=t.split(\".\"),n=this.constructor.colorProperties.includes(r[r.length-1]),{abort:o,startValue:a,onChange:h,onComplete:c}=i,l=s(s({},i),{},{target:this,startValue:null!=a?a:r.reduce(((t,e)=>t[e]),this),endValue:e,abort:null==o?void 0:o.bind(this),onChange:(t,e,s)=>{r.reduce(((e,s,i)=>(i===r.length-1&&(e[s]=t),e[s])),this),h&&h(t,e,s)},onComplete:(t,e,s)=>{this.setCoords(),c&&c(t,e,s)}});return n?Js(l):Ks(l)}isDescendantOf(t){const{parent:e,group:s}=this;return e===t||s===t||!!e&&e.isDescendantOf(t)||!!s&&s!==e&&s.isDescendantOf(t)}getAncestors(){const t=[];let e=this;do{e=e.parent,e&&t.push(e)}while(e);return t}findCommonAncestors(t){if(this===t)return{fork:[],otherFork:[],common:[this,...this.getAncestors()]};const e=this.getAncestors(),s=t.getAncestors();if(0===e.length&&s.length>0&&this===s[s.length-1])return{fork:[],otherFork:[t,...s.slice(0,s.length-1)],common:[this]};for(let i,r=0;r<e.length;r++){if(i=e[r],i===t)return{fork:[this,...e.slice(0,r)],otherFork:[],common:e.slice(r)};for(let n=0;n<s.length;n++){if(this===s[n])return{fork:[],otherFork:[t,...s.slice(0,n)],common:[this,...e]};if(i===s[n])return{fork:[this,...e.slice(0,r)],otherFork:[t,...s.slice(0,n)],common:e.slice(r)}}}return{fork:[this,...e],otherFork:[t,...s],common:[]}}hasCommonAncestors(t){const e=this.findCommonAncestors(t);return e&&!!e.common.length}isInFrontOf(t){if(this===t)return;const e=this.findCommonAncestors(t);if(e.fork.includes(t))return!0;if(e.otherFork.includes(this))return!1;const s=e.common[0]||this.canvas;if(!s)return;const i=e.fork.pop(),r=e.otherFork.pop(),n=s._objects.indexOf(i),o=s._objects.indexOf(r);return n>-1&&n>o}toObject(){const t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).concat(e.customProperties,this.constructor.customProperties||[]);let i;const r=o.NUM_FRACTION_DIGITS,{clipPath:n,fill:a,stroke:h,shadow:c,strokeDashArray:l,left:u,top:d,originX:g,originY:f,width:p,height:m,strokeWidth:v,strokeLineCap:y,strokeDashOffset:_,strokeLineJoin:C,strokeUniform:b,strokeMiterLimit:S,scaleX:w,scaleY:T,angle:O,flipX:k,flipY:D,opacity:M,visible:P,backgroundColor:E,fillRule:A,paintFirst:j,globalCompositeOperation:F,skewX:L,skewY:R}=this;n&&!n.excludeFromExport&&(i=n.toObject(t.concat(\"inverted\",\"absolutePositioned\")));const I=t=>Vt(t,r),B=s(s({},Yt(this,t)),{},{type:this.constructor.type,version:x,originX:g,originY:f,left:I(u),top:I(d),width:I(p),height:I(m),fill:Ht(a)?a.toObject():a,stroke:Ht(h)?h.toObject():h,strokeWidth:I(v),strokeDashArray:l?l.concat():l,strokeLineCap:y,strokeDashOffset:_,strokeLineJoin:C,strokeUniform:b,strokeMiterLimit:I(S),scaleX:I(w),scaleY:I(T),angle:I(O),flipX:k,flipY:D,opacity:I(M),shadow:c?c.toObject():c,visible:P,backgroundColor:E,fillRule:A,paintFirst:j,globalCompositeOperation:F,skewX:I(L),skewY:I(R)},i?{clipPath:i}:null);return this.includeDefaultValues?B:this._removeDefaultValues(B)}toDatalessObject(t){return this.toObject(t)}_removeDefaultValues(t){const e=this.constructor.getDefaults(),s=Object.keys(e).length>0?e:Object.getPrototypeOf(this);return Wt(t,((t,e)=>{if(e===M||e===P||\"type\"===e)return!0;const i=s[e];return t!==i&&!(Array.isArray(t)&&Array.isArray(i)&&0===t.length&&0===i.length)}))}toString(){return\"#<\".concat(this.constructor.type,\">\")}static _fromObject(t){let e=i(t,$s),s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{extraParam:r}=s,n=i(s,ti);return Xt(e,n).then((t=>r?(delete t[r],new this(e[r],t)):new this(t)))}static fromObject(t,e){return this._fromObject(t,e)}};t(ei,\"stateProperties\",Ps),t(ei,\"cacheProperties\",Es),t(ei,\"ownDefaults\",As),t(ei,\"type\",\"FabricObject\"),t(ei,\"colorProperties\",[K,J,\"backgroundColor\"]),t(ei,\"customProperties\",[]),tt.setClass(ei),tt.setClass(ei,\"object\");const si=(t,e,i)=>(r,n,o,a)=>{const h=e(r,n,o,a);return h&&_e(t,s(s({},Oe(r,n,o,a)),i)),h};function ii(t){return(e,s,i,r)=>{const{target:n,originX:o,originY:a}=s,h=n.getRelativeCenterPoint(),c=n.translateToOriginPoint(h,o,a),l=t(e,s,i,r);return n.setPositionByOrigin(c,s.originX,s.originY),l}}const ri=si(Y,ii(((t,e,s,i)=>{const r=De(e,e.originX,e.originY,s,i);if(Ce(e.originX)===Ce(D)||Ce(e.originX)===Ce(A)&&r.x<0||Ce(e.originX)===Ce(M)&&r.x>0){const{target:t}=e,s=t.strokeWidth/(t.strokeUniform?t.scaleX:1),i=Se(e)?2:1,n=t.width,o=Math.abs(r.x*i/t.scaleX)-s;return t.set(\"width\",Math.max(o,1)),n!==t.width}return!1})));function ni(t,e,s,i,r){i=i||{};const n=this.sizeX||i.cornerSize||r.cornerSize,o=this.sizeY||i.cornerSize||r.cornerSize,a=void 0!==i.transparentCorners?i.transparentCorners:r.transparentCorners,h=a?J:K,c=!a&&(i.cornerStrokeColor||r.cornerStrokeColor);let l,u=e,d=s;t.save(),t.fillStyle=i.cornerColor||r.cornerColor||\"\",t.strokeStyle=i.cornerStrokeColor||r.cornerStrokeColor||\"\",n>o?(l=n,t.scale(1,o/n),d=s*n/o):o>n?(l=o,t.scale(n/o,1),u=e*o/n):l=n,t.beginPath(),t.arc(u,d,l/2,0,S,!1),t[h](),c&&t.stroke(),t.restore()}function oi(t,e,s,i,r){i=i||{};const n=this.sizeX||i.cornerSize||r.cornerSize,o=this.sizeY||i.cornerSize||r.cornerSize,a=void 0!==i.transparentCorners?i.transparentCorners:r.transparentCorners,h=a?J:K,c=!a&&(i.cornerStrokeColor||r.cornerStrokeColor),l=n/2,u=o/2;t.save(),t.fillStyle=i.cornerColor||r.cornerColor||\"\",t.strokeStyle=i.cornerStrokeColor||r.cornerStrokeColor||\"\",t.translate(e,s);const d=r.getTotalAngle();t.rotate(xt(d)),t[\"\".concat(h,\"Rect\")](-l,-u,n,o),c&&t.strokeRect(-l,-u,n,o),t.restore()}class ai{constructor(e){t(this,\"visible\",!0),t(this,\"actionName\",G),t(this,\"angle\",0),t(this,\"x\",0),t(this,\"y\",0),t(this,\"offsetX\",0),t(this,\"offsetY\",0),t(this,\"sizeX\",0),t(this,\"sizeY\",0),t(this,\"touchSizeX\",0),t(this,\"touchSizeY\",0),t(this,\"cursorStyle\",\"crosshair\"),t(this,\"withConnection\",!1),Object.assign(this,e)}shouldActivate(t,e,s,i){var r;let{tl:n,tr:o,br:a,bl:h}=i;return(null===(r=e.canvas)||void 0===r?void 0:r.getActiveObject())===e&&e.isControlVisible(t)&&Qs.isPointInPolygon(s,[n,o,a,h])}getActionHandler(t,e,s){return this.actionHandler}getMouseDownHandler(t,e,s){return this.mouseDownHandler}getMouseUpHandler(t,e,s){return this.mouseUpHandler}cursorStyleHandler(t,e,s){return e.cursorStyle}getActionName(t,e,s){return e.actionName}getVisibility(t,e){var s,i;return null!==(s=null===(i=t._controlsVisibility)||void 0===i?void 0:i[e])&&void 0!==s?s:this.visible}setVisibility(t,e,s){this.visible=t}positionHandler(t,e,s,i){return new ot(this.x*t.x+this.offsetX,this.y*t.y+this.offsetY).transform(e)}calcCornerCoords(t,e,s,i,r,n){const o=Ot([Mt(s,i),Pt({angle:t}),Et((r?this.touchSizeX:this.sizeX)||e,(r?this.touchSizeY:this.sizeY)||e)]);return{tl:new ot(-.5,-.5).transform(o),tr:new ot(.5,-.5).transform(o),br:new ot(.5,.5).transform(o),bl:new ot(-.5,.5).transform(o)}}render(t,e,s,i,r){if(\"circle\"===((i=i||{}).cornerStyle||r.cornerStyle))ni.call(this,t,e,s,i,r);else oi.call(this,t,e,s,i,r)}}const hi=(t,e,s)=>s.lockRotation?be:e.cursorStyle,ci=si(I,ii(((t,e,s,i)=>{let{target:r,ex:n,ey:o,theta:a,originX:h,originY:c}=e;const l=r.translateToOriginPoint(r.getRelativeCenterPoint(),h,c);if(Te(r,\"lockRotation\"))return!1;const u=Math.atan2(o-l.y,n-l.x),d=Math.atan2(i-l.y,s-l.x);let g=Ct(d-u+a);if(r.snapAngle&&r.snapAngle>0){const t=r.snapAngle,e=r.snapThreshold||t,s=Math.ceil(g/t)*t,i=Math.floor(g/t)*t;Math.abs(g-i)<e?g=i:Math.abs(g-s)<e&&(g=s)}g<0&&(g=360+g),g%=360;const f=r.angle!==g;return r.angle=g,f})));function li(t,e){const s=e.canvas,i=t[s.uniScaleKey];return s.uniformScaling&&!i||!s.uniformScaling&&i}function ui(t,e,s){const i=Te(t,\"lockScalingX\"),r=Te(t,\"lockScalingY\");if(i&&r)return!0;if(!e&&(i||r)&&s)return!0;if(i&&\"x\"===e)return!0;if(r&&\"y\"===e)return!0;const{width:n,height:o,strokeWidth:a}=t;return 0===n&&0===a&&\"y\"!==e||0===o&&0===a&&\"x\"!==e}const di=[\"e\",\"se\",\"s\",\"sw\",\"w\",\"nw\",\"n\",\"ne\",\"e\"],gi=(t,e,s)=>{const i=li(t,s);if(ui(s,0!==e.x&&0===e.y?\"x\":0===e.x&&0!==e.y?\"y\":\"\",i))return be;const r=ke(s,e);return\"\".concat(di[r],\"-resize\")};function fi(t,e,s,i){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n=e.target,o=r.by,a=li(t,n);let h,c,l,u,d,g;if(ui(n,o,a))return!1;if(e.gestureScale)c=e.scaleX*e.gestureScale,l=e.scaleY*e.gestureScale;else{if(h=De(e,e.originX,e.originY,s,i),d=\"y\"!==o?Math.sign(h.x||e.signX||1):1,g=\"x\"!==o?Math.sign(h.y||e.signY||1):1,e.signX||(e.signX=d),e.signY||(e.signY=g),Te(n,\"lockScalingFlip\")&&(e.signX!==d||e.signY!==g))return!1;if(u=n._getTransformedDimensions(),a&&!o){const t=Math.abs(h.x)+Math.abs(h.y),{original:s}=e,i=t/(Math.abs(u.x*s.scaleX/n.scaleX)+Math.abs(u.y*s.scaleY/n.scaleY));c=s.scaleX*i,l=s.scaleY*i}else c=Math.abs(h.x*n.scaleX/u.x),l=Math.abs(h.y*n.scaleY/u.y);Se(e)&&(c*=2,l*=2),e.signX!==d&&\"y\"!==o&&(e.originX=we(e.originX),c*=-1,e.signX=d),e.signY!==g&&\"x\"!==o&&(e.originY=we(e.originY),l*=-1,e.signY=g)}const f=n.scaleX,p=n.scaleY;return o?(\"x\"===o&&n.set(H,c),\"y\"===o&&n.set(N,l)):(!Te(n,\"lockScalingX\")&&n.set(H,c),!Te(n,\"lockScalingY\")&&n.set(N,l)),f!==n.scaleX||p!==n.scaleY}const pi=si(R,ii(((t,e,s,i)=>fi(t,e,s,i)))),mi=si(R,ii(((t,e,s,i)=>fi(t,e,s,i,{by:\"x\"})))),vi=si(R,ii(((t,e,s,i)=>fi(t,e,s,i,{by:\"y\"})))),yi=[\"target\",\"ex\",\"ey\",\"skewingSide\"],_i={x:{counterAxis:\"y\",scale:H,skew:U,lockSkewing:\"lockSkewingX\",origin:\"originX\",flip:\"flipX\"},y:{counterAxis:\"x\",scale:N,skew:q,lockSkewing:\"lockSkewingY\",origin:\"originY\",flip:\"flipY\"}},xi=[\"ns\",\"nesw\",\"ew\",\"nwse\"],Ci=(t,e,s)=>{if(0!==e.x&&Te(s,\"lockSkewingY\"))return be;if(0!==e.y&&Te(s,\"lockSkewingX\"))return be;const i=ke(s,e)%4;return\"\".concat(xi[i],\"-resize\")};function bi(t,e,r,n,o){const{target:a}=r,{counterAxis:h,origin:c,lockSkewing:l,skew:u,flip:d}=_i[t];if(Te(a,l))return!1;const{origin:g,flip:f}=_i[h],p=Ce(r[g])*(a[f]?-1:1),m=-Math.sign(p)*(a[d]?-1:1),v=.5*-((0===a[u]&&De(r,D,D,n,o)[t]>0||a[u]>0?1:-1)*m)+.5,y=si(X,ii(((e,s,r,n)=>function(t,e,s){let{target:r,ex:n,ey:o,skewingSide:a}=e,h=i(e,yi);const{skew:c}=_i[t],l=s.subtract(new ot(n,o)).divide(new ot(r.scaleX,r.scaleY))[t],u=r[c],d=h[c],g=Math.tan(xt(d)),f=\"y\"===t?r._getTransformedDimensions({scaleX:1,scaleY:1,skewX:0}).x:r._getTransformedDimensions({scaleX:1,scaleY:1}).y,p=2*l*a/Math.max(f,1)+g,m=Ct(Math.atan(p));r.set(c,m);const v=u!==r[c];if(v&&\"y\"===t){const{skewX:t,scaleX:e}=r,s=r._getTransformedDimensions({skewY:u}),i=r._getTransformedDimensions(),n=0!==t?s.x/i.x:1;1!==n&&r.set(H,n*e)}return v}(t,s,new ot(r,n)))));return y(e,s(s({},r),{},{[c]:v,skewingSide:m}),n,o)}const Si=(t,e,s,i)=>bi(\"x\",t,e,s,i),wi=(t,e,s,i)=>bi(\"y\",t,e,s,i);function Ti(t,e){return t[e.canvas.altActionKey]}const Oi=(t,e,s)=>{const i=Ti(t,s);return 0===e.x?i?U:N:0===e.y?i?q:H:\"\"},ki=(t,e,s)=>Ti(t,s)?Ci(0,e,s):gi(t,e,s),Di=(t,e,s,i)=>Ti(t,e.target)?wi(t,e,s,i):mi(t,e,s,i),Mi=(t,e,s,i)=>Ti(t,e.target)?Si(t,e,s,i):vi(t,e,s,i),Pi=()=>({ml:new ai({x:-.5,y:0,cursorStyleHandler:ki,actionHandler:Di,getActionName:Oi}),mr:new ai({x:.5,y:0,cursorStyleHandler:ki,actionHandler:Di,getActionName:Oi}),mb:new ai({x:0,y:.5,cursorStyleHandler:ki,actionHandler:Mi,getActionName:Oi}),mt:new ai({x:0,y:-.5,cursorStyleHandler:ki,actionHandler:Mi,getActionName:Oi}),tl:new ai({x:-.5,y:-.5,cursorStyleHandler:gi,actionHandler:pi}),tr:new ai({x:.5,y:-.5,cursorStyleHandler:gi,actionHandler:pi}),bl:new ai({x:-.5,y:.5,cursorStyleHandler:gi,actionHandler:pi}),br:new ai({x:.5,y:.5,cursorStyleHandler:gi,actionHandler:pi}),mtr:new ai({x:0,y:-.5,actionHandler:ci,cursorStyleHandler:hi,offsetY:-40,withConnection:!0,actionName:B})}),Ei=()=>({mr:new ai({x:.5,y:0,actionHandler:ri,cursorStyleHandler:ki,actionName:Y}),ml:new ai({x:-.5,y:0,actionHandler:ri,cursorStyleHandler:ki,actionName:Y})}),Ai=()=>s(s({},Pi()),Ei());class ji extends ei{static getDefaults(){return s(s({},super.getDefaults()),ji.ownDefaults)}constructor(t){super(),Object.assign(this,this.constructor.createControls(),ji.ownDefaults),this.setOptions(t)}static createControls(){return{controls:Pi()}}_updateCacheCanvas(){const t=this.canvas;if(this.noScaleCache&&t&&t._currentTransform){const e=t._currentTransform,s=e.target,i=e.action;if(this===s&&i&&i.startsWith(G))return!1}return super._updateCacheCanvas()}getActiveControl(){const t=this.__corner;return t?{key:t,control:this.controls[t],coord:this.oCoords[t]}:void 0}findControl(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.hasControls||!this.canvas)return;this.__corner=void 0;const s=Object.entries(this.oCoords);for(let i=s.length-1;i>=0;i--){const[r,n]=s[i],o=this.controls[r];if(o.shouldActivate(r,this,t,e?n.touchCorner:n.corner))return this.__corner=r,{key:r,control:o,coord:this.oCoords[r]}}}calcOCoords(){const t=this.getViewportTransform(),e=this.getCenterPoint(),s=Mt(e.x,e.y),i=Pt({angle:this.getTotalAngle()-(this.group&&this.flipX?180:0)}),r=Tt(s,i),n=Tt(t,r),o=Tt(n,[1/t[0],0,0,1/t[3],0,0]),a=this.group?Dt(this.calcTransformMatrix()):void 0;a&&(a.scaleX=Math.abs(a.scaleX),a.scaleY=Math.abs(a.scaleY));const h=this._calculateCurrentDimensions(a),c={};return this.forEachControl(((t,e)=>{const s=t.positionHandler(h,o,this,t);c[e]=Object.assign(s,this._calcCornerCoords(t,s))})),c}_calcCornerCoords(t,e){const s=this.getTotalAngle();return{corner:t.calcCornerCoords(s,this.cornerSize,e.x,e.y,!1,this),touchCorner:t.calcCornerCoords(s,this.touchCornerSize,e.x,e.y,!0,this)}}setCoords(){super.setCoords(),this.canvas&&(this.oCoords=this.calcOCoords())}forEachControl(t){for(const e in this.controls)t(this.controls[e],e,this)}drawSelectionBackground(t){if(!this.selectionBackgroundColor||this.canvas&&this.canvas._activeObject!==this)return;t.save();const e=this.getRelativeCenterPoint(),s=this._calculateCurrentDimensions(),i=this.getViewportTransform();t.translate(e.x,e.y),t.scale(1/i[0],1/i[3]),t.rotate(xt(this.angle)),t.fillStyle=this.selectionBackgroundColor,t.fillRect(-s.x/2,-s.y/2,s.x,s.y),t.restore()}strokeBorders(t,e){t.strokeRect(-e.x/2,-e.y/2,e.x,e.y)}_drawBorders(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=s({hasControls:this.hasControls,borderColor:this.borderColor,borderDashArray:this.borderDashArray},i);t.save(),t.strokeStyle=r.borderColor,this._setLineDash(t,r.borderDashArray),this.strokeBorders(t,e),r.hasControls&&this.drawControlsConnectingLines(t,e),t.restore()}_renderControls(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{hasBorders:i,hasControls:r}=this,n=s({hasBorders:i,hasControls:r},e),o=this.getViewportTransform(),a=n.hasBorders,h=n.hasControls,c=Tt(o,this.calcTransformMatrix()),l=Dt(c);t.save(),t.translate(l.translateX,l.translateY),t.lineWidth=this.borderScaleFactor,this.group===this.parent&&(t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1),this.flipX&&(l.angle-=180),t.rotate(xt(this.group?l.angle:this.angle)),a&&this.drawBorders(t,l,e),h&&this.drawControls(t,e),t.restore()}drawBorders(t,e,s){let i;if(s&&s.forActiveSelection||this.group){const t=fe(this.width,this.height,Lt(e)),s=this.isStrokeAccountedForInDimensions()?at:(this.strokeUniform?(new ot).scalarAdd(this.canvas?this.canvas.getZoom():1):new ot(e.scaleX,e.scaleY)).scalarMultiply(this.strokeWidth);i=t.add(s).scalarAdd(this.borderScaleFactor).scalarAdd(2*this.padding)}else i=this._calculateCurrentDimensions().scalarAdd(this.borderScaleFactor);this._drawBorders(t,i,s)}drawControlsConnectingLines(t,e){let s=!1;t.beginPath(),this.forEachControl(((i,r)=>{i.withConnection&&i.getVisibility(this,r)&&(s=!0,t.moveTo(i.x*e.x,i.y*e.y),t.lineTo(i.x*e.x+i.offsetX,i.y*e.y+i.offsetY))})),s&&t.stroke()}drawControls(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.save();const i=this.getCanvasRetinaScaling(),{cornerStrokeColor:r,cornerDashArray:n,cornerColor:o}=this,a=s({cornerStrokeColor:r,cornerDashArray:n,cornerColor:o},e);t.setTransform(i,0,0,i,0,0),t.strokeStyle=t.fillStyle=a.cornerColor,this.transparentCorners||(t.strokeStyle=a.cornerStrokeColor),this._setLineDash(t,a.cornerDashArray),this.forEachControl(((e,s)=>{if(e.getVisibility(this,s)){const i=this.oCoords[s];e.render(t,i.x,i.y,a,this)}})),t.restore()}isControlVisible(t){return this.controls[t]&&this.controls[t].getVisibility(this,t)}setControlVisible(t,e){this._controlsVisibility||(this._controlsVisibility={}),this._controlsVisibility[t]=e}setControlsVisibility(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.entries(t).forEach((t=>{let[e,s]=t;return this.setControlVisible(e,s)}))}clearContextTop(t){if(!this.canvas)return;const e=this.canvas.contextTop;if(!e)return;const s=this.canvas.viewportTransform;e.save(),e.transform(s[0],s[1],s[2],s[3],s[4],s[5]),this.transform(e);const i=this.width+4,r=this.height+4;return e.clearRect(-i/2,-r/2,i,r),t||e.restore(),e}onDeselect(t){return!1}onSelect(t){return!1}shouldStartDragging(t){return!1}onDragStart(t){return!1}canDrop(t){return!1}renderDragSourceEffect(t){}renderDropTargetEffect(t){}}function Fi(t,e){return e.forEach((e=>{Object.getOwnPropertyNames(e.prototype).forEach((s=>{\"constructor\"!==s&&Object.defineProperty(t.prototype,s,Object.getOwnPropertyDescriptor(e.prototype,s)||Object.create(null))}))})),t}t(ji,\"ownDefaults\",{noScaleCache:!0,lockMovementX:!1,lockMovementY:!1,lockRotation:!1,lockScalingX:!1,lockScalingY:!1,lockSkewingX:!1,lockSkewingY:!1,lockScalingFlip:!1,cornerSize:13,touchCornerSize:24,transparentCorners:!0,cornerColor:\"rgb(178,204,255)\",cornerStrokeColor:\"\",cornerStyle:\"rect\",cornerDashArray:null,hasControls:!0,borderColor:\"rgb(178,204,255)\",borderDashArray:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,hasBorders:!0,selectionBackgroundColor:\"\",selectable:!0,evented:!0,perPixelTargetFind:!1,activeOn:\"down\",hoverCursor:null,moveCursor:null});class Li extends ji{}Fi(Li,[We]),tt.setClass(Li),tt.setClass(Li,\"object\");const Ri=(t,e,s,i)=>{const r=2*(i=Math.round(i))+1,{data:n}=t.getImageData(e-i,s-i,r,r);for(let t=3;t<n.length;t+=4){if(n[t]>0)return!1}return!0};class Ii{constructor(t){this.options=t,this.strokeProjectionMagnitude=this.options.strokeWidth/2,this.scale=new ot(this.options.scaleX,this.options.scaleY),this.strokeUniformScalar=this.options.strokeUniform?new ot(1/this.options.scaleX,1/this.options.scaleY):new ot(1,1)}createSideVector(t,e){const s=vs(t,e);return this.options.strokeUniform?s.multiply(this.scale):s}projectOrthogonally(t,e,s){return this.applySkew(t.add(this.calcOrthogonalProjection(t,e,s)))}isSkewed(){return 0!==this.options.skewX||0!==this.options.skewY}applySkew(t){const e=new ot(t);return e.y+=e.x*Math.tan(xt(this.options.skewY)),e.x+=e.y*Math.tan(xt(this.options.skewX)),e}scaleUnitVector(t,e){return t.multiply(this.strokeUniformScalar).scalarMultiply(e)}}const Bi=new ot;class Xi extends Ii{static getOrthogonalRotationFactor(t,e){const s=e?_s(t,e):xs(t);return Math.abs(s)<b?-1:1}constructor(e,s,i,r){super(r),t(this,\"AB\",void 0),t(this,\"AC\",void 0),t(this,\"alpha\",void 0),t(this,\"bisector\",void 0),this.A=new ot(e),this.B=new ot(s),this.C=new ot(i),this.AB=this.createSideVector(this.A,this.B),this.AC=this.createSideVector(this.A,this.C),this.alpha=_s(this.AB,this.AC),this.bisector=Cs(ms(this.AB.eq(Bi)?this.AC:this.AB,this.alpha/2))}calcOrthogonalProjection(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.strokeProjectionMagnitude;const i=this.createSideVector(t,e),r=bs(i),n=Xi.getOrthogonalRotationFactor(r,this.bisector);return this.scaleUnitVector(r,s*n)}projectBevel(){const t=[];return(this.alpha%S==0?[this.B]:[this.B,this.C]).forEach((e=>{t.push(this.projectOrthogonally(this.A,e)),t.push(this.projectOrthogonally(this.A,e,-this.strokeProjectionMagnitude))})),t}projectMiter(){const t=[],e=Math.abs(this.alpha),s=1/Math.sin(e/2),i=this.scaleUnitVector(this.bisector,-this.strokeProjectionMagnitude*s),r=this.options.strokeUniform?ys(this.scaleUnitVector(this.bisector,this.options.strokeMiterLimit)):this.options.strokeMiterLimit;return ys(i)/this.strokeProjectionMagnitude<=r&&t.push(this.applySkew(this.A.add(i))),t.push(...this.projectBevel()),t}projectRoundNoSkew(t,e){const s=[],i=new ot(Xi.getOrthogonalRotationFactor(this.bisector),Xi.getOrthogonalRotationFactor(new ot(this.bisector.y,this.bisector.x)));return[new ot(1,0).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar).multiply(i),new ot(0,1).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar).multiply(i)].forEach((i=>{Ts(i,t,e)&&s.push(this.A.add(i))})),s}projectRoundWithSkew(t,e){const s=[],{skewX:i,skewY:r,scaleX:n,scaleY:o,strokeUniform:a}=this.options,h=new ot(Math.tan(xt(i)),Math.tan(xt(r))),c=this.strokeProjectionMagnitude,l=a?c/o/Math.sqrt(1/o**2+1/n**2*h.y**2):c/Math.sqrt(1+h.y**2),u=new ot(Math.sqrt(Math.max(c**2-l**2,0)),l),d=a?c/Math.sqrt(1+h.x**2*(1/o)**2/(1/n+1/n*h.x*h.y)**2):c/Math.sqrt(1+h.x**2/(1+h.x*h.y)**2),g=new ot(d,Math.sqrt(Math.max(c**2-d**2,0)));return[g,g.scalarMultiply(-1),u,u.scalarMultiply(-1)].map((t=>this.applySkew(a?t.multiply(this.strokeUniformScalar):t))).forEach((i=>{Ts(i,t,e)&&s.push(this.applySkew(this.A).add(i))})),s}projectRound(){const t=[];t.push(...this.projectBevel());const e=this.alpha%S==0,s=this.applySkew(this.A),i=t[e?0:2].subtract(s),r=t[e?1:0].subtract(s),n=e?this.applySkew(this.AB.scalarMultiply(-1)):this.applySkew(this.bisector.multiply(this.strokeUniformScalar).scalarMultiply(-1)),o=Ss(i,n)>0,a=o?i:r,h=o?r:i;return this.isSkewed()?t.push(...this.projectRoundWithSkew(a,h)):t.push(...this.projectRoundNoSkew(a,h)),t}projectPoints(){switch(this.options.strokeLineJoin){case\"miter\":return this.projectMiter();case\"round\":return this.projectRound();default:return this.projectBevel()}}project(){return this.projectPoints().map((t=>({originPoint:this.A,projectedPoint:t,angle:this.alpha,bisector:this.bisector})))}}class Yi extends Ii{constructor(t,e,s){super(s),this.A=new ot(t),this.T=new ot(e)}calcOrthogonalProjection(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.strokeProjectionMagnitude;const i=this.createSideVector(t,e);return this.scaleUnitVector(bs(i),s)}projectButt(){return[this.projectOrthogonally(this.A,this.T,this.strokeProjectionMagnitude),this.projectOrthogonally(this.A,this.T,-this.strokeProjectionMagnitude)]}projectRound(){const t=[];if(!this.isSkewed()&&this.A.eq(this.T)){const e=new ot(1,1).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar);t.push(this.applySkew(this.A.add(e)),this.applySkew(this.A.subtract(e)))}else t.push(...new Xi(this.A,this.T,this.T,this.options).projectRound());return t}projectSquare(){const t=[];if(this.A.eq(this.T)){const e=new ot(1,1).scalarMultiply(this.strokeProjectionMagnitude).multiply(this.strokeUniformScalar);t.push(this.A.add(e),this.A.subtract(e))}else{const e=this.calcOrthogonalProjection(this.A,this.T,this.strokeProjectionMagnitude),s=this.scaleUnitVector(Cs(this.createSideVector(this.A,this.T)),-this.strokeProjectionMagnitude),i=this.A.add(s);t.push(i.add(e),i.subtract(e))}return t.map((t=>this.applySkew(t)))}projectPoints(){switch(this.options.strokeLineCap){case\"round\":return this.projectRound();case\"square\":return this.projectSquare();default:return this.projectButt()}}project(){return this.projectPoints().map((t=>({originPoint:this.A,projectedPoint:t})))}}const Wi=function(t,e){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const i=[];if(0===t.length)return i;const r=t.reduce(((t,e)=>(t[t.length-1].eq(e)||t.push(new ot(e)),t)),[new ot(t[0])]);if(1===r.length)s=!0;else if(!s){const t=r[0],e=((t,e)=>{for(let s=t.length-1;s>=0;s--)if(e(t[s],s,t))return s;return-1})(r,(e=>!e.eq(t)));r.splice(e+1)}return r.forEach(((t,r,n)=>{let o,a;0===r?(a=n[1],o=s?t:n[n.length-1]):r===n.length-1?(o=n[r-1],a=s?t:n[0]):(o=n[r-1],a=n[r+1]),s&&1===n.length?i.push(...new Yi(t,t,e).project()):!s||0!==r&&r!==n.length-1?i.push(...new Xi(t,o,a,e).project()):i.push(...new Yi(t,0===r?a:o,e).project())})),i},Vi=t=>{const e={};return Object.keys(t).forEach((i=>{e[i]={},Object.keys(t[i]).forEach((r=>{e[i][r]=s({},t[i][r])}))})),e},zi=t=>t.replace(/&/g,\"&amp;\").replace(/\"/g,\"&quot;\").replace(/'/g,\"&apos;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\");let Gi;const Hi=t=>{if(Gi||Gi||(Gi=\"Intl\"in v()&&\"Segmenter\"in Intl&&new Intl.Segmenter(void 0,{granularity:\"grapheme\"})),Gi){const e=Gi.segment(t);return Array.from(e).map((t=>{let{segment:e}=t;return e}))}return Ni(t)},Ni=t=>{const e=[];for(let s,i=0;i<t.length;i++)!1!==(s=Ui(t,i))&&e.push(s);return e},Ui=(t,e)=>{const s=t.charCodeAt(e);if(isNaN(s))return\"\";if(s<55296||s>57343)return t.charAt(e);if(55296<=s&&s<=56319){if(t.length<=e+1)throw\"High surrogate without following low surrogate\";const s=t.charCodeAt(e+1);if(56320>s||s>57343)throw\"High surrogate without following low surrogate\";return t.charAt(e)+t.charAt(e+1)}if(0===e)throw\"Low surrogate without preceding high surrogate\";const i=t.charCodeAt(e-1);if(55296>i||i>56319)throw\"Low surrogate without preceding high surrogate\";return!1};var qi=Object.freeze({__proto__:null,capitalize:function(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return\"\".concat(t.charAt(0).toUpperCase()).concat(e?t.slice(1):t.slice(1).toLowerCase())},escapeXml:zi,graphemeSplit:Hi});const Ki=function(t,e){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t.fill!==e.fill||t.stroke!==e.stroke||t.strokeWidth!==e.strokeWidth||t.fontSize!==e.fontSize||t.fontFamily!==e.fontFamily||t.fontWeight!==e.fontWeight||t.fontStyle!==e.fontStyle||t.textDecorationThickness!==e.textDecorationThickness||t.textBackgroundColor!==e.textBackgroundColor||t.deltaY!==e.deltaY||s&&(t.overline!==e.overline||t.underline!==e.underline||t.linethrough!==e.linethrough)},Ji=(t,e)=>{const s=e.split(\"\\n\"),i=[];let r=-1,n={};t=Vi(t);for(let e=0;e<s.length;e++){const o=Hi(s[e]);if(t[e])for(let s=0;s<o.length;s++){r++;const o=t[e][s];o&&Object.keys(o).length>0&&(Ki(n,o,!0)?i.push({start:r,end:r+1,style:o}):i[i.length-1].end++),n=o||{}}else r+=o.length,n={}}return i},Qi=(t,e)=>{if(!Array.isArray(t))return Vi(t);const i=e.split(F),r={};let n=-1,o=0;for(let e=0;e<i.length;e++){const a=Hi(i[e]);for(let i=0;i<a.length;i++)n++,t[o]&&t[o].start<=n&&n<t[o].end&&(r[e]=r[e]||{},r[e][i]=s({},t[o].style),n===t[o].end-1&&o++)}return r},Zi=[\"display\",\"transform\",K,\"fill-opacity\",\"fill-rule\",\"opacity\",J,\"stroke-dasharray\",\"stroke-linecap\",\"stroke-dashoffset\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke-width\",\"id\",\"paint-order\",\"vector-effect\",\"instantiated_by_use\",\"clip-path\"];function $i(t,e){const s=t.nodeName,i=t.getAttribute(\"class\"),r=t.getAttribute(\"id\"),n=\"(?![a-zA-Z\\\\-]+)\";let o;if(o=new RegExp(\"^\"+s,\"i\"),e=e.replace(o,\"\"),r&&e.length&&(o=new RegExp(\"#\"+r+n,\"i\"),e=e.replace(o,\"\")),i&&e.length){const t=i.split(\" \");for(let s=t.length;s--;)o=new RegExp(\"\\\\.\"+t[s]+n,\"i\"),e=e.replace(o,\"\")}return 0===e.length}function tr(t,e){let s=!0;const i=$i(t,e.pop());return i&&e.length&&(s=function(t,e){let s,i=!0;for(;t.parentElement&&1===t.parentElement.nodeType&&e.length;)i&&(s=e.pop()),i=$i(t=t.parentElement,s);return 0===e.length}(t,e)),i&&s&&0===e.length}const er=t=>{var e;return null!==(e=as[t])&&void 0!==e?e:t},sr=new RegExp(\"(\".concat(is,\")\"),\"gi\"),ir=t=>Pe(t.replace(sr,\" $1 \").replace(/,/gi,\" \"));var rr,nr,or,ar,hr,cr,lr;const ur=\"(\".concat(is,\")\"),dr=String.raw(rr||(rr=r([\"(skewX)(\",\")\"],[\"(skewX)\\\\(\",\"\\\\)\"])),ur),gr=String.raw(nr||(nr=r([\"(skewY)(\",\")\"],[\"(skewY)\\\\(\",\"\\\\)\"])),ur),fr=String.raw(or||(or=r([\"(rotate)(\",\"(?: \",\" \",\")?)\"],[\"(rotate)\\\\(\",\"(?: \",\" \",\")?\\\\)\"])),ur,ur,ur),pr=String.raw(ar||(ar=r([\"(scale)(\",\"(?: \",\")?)\"],[\"(scale)\\\\(\",\"(?: \",\")?\\\\)\"])),ur,ur),mr=String.raw(hr||(hr=r([\"(translate)(\",\"(?: \",\")?)\"],[\"(translate)\\\\(\",\"(?: \",\")?\\\\)\"])),ur,ur),vr=String.raw(cr||(cr=r([\"(matrix)(\",\" \",\" \",\" \",\" \",\" \",\")\"],[\"(matrix)\\\\(\",\" \",\" \",\" \",\" \",\" \",\"\\\\)\"])),ur,ur,ur,ur,ur,ur),yr=\"(?:\".concat(vr,\"|\").concat(mr,\"|\").concat(fr,\"|\").concat(pr,\"|\").concat(dr,\"|\").concat(gr,\")\"),_r=\"(?:\".concat(yr,\"*)\"),xr=String.raw(lr||(lr=r([\"^s*(?:\",\"?)s*$\"],[\"^\\\\s*(?:\",\"?)\\\\s*$\"])),_r),Cr=new RegExp(xr),br=new RegExp(yr),Sr=new RegExp(yr,\"g\");function wr(t){const e=[];if(!(t=ir(t).replace(/\\s*([()])\\s*/gi,\"$1\"))||t&&!Cr.test(t))return[...T];for(const s of t.matchAll(Sr)){const t=br.exec(s[0]);if(!t)continue;let i=T;const r=t.filter((t=>!!t)),[,n,...o]=r,[a,h,c,l,u,d]=o.map((t=>parseFloat(t)));switch(n){case\"translate\":i=Mt(a,h);break;case B:i=Pt({angle:a},{x:h,y:c});break;case G:i=Et(a,h);break;case U:i=jt(a);break;case q:i=Ft(a);break;case\"matrix\":i=[a,h,c,l,u,d]}e.push(i)}return Ot(e)}function Tr(t,e,s,i){const r=Array.isArray(e);let n,o=e;if(t!==K&&t!==J||e!==j){if(\"strokeUniform\"===t)return\"non-scaling-stroke\"===e;if(\"strokeDashArray\"===t)o=e===j?null:e.replace(/,/g,\" \").split(/\\s+/).map(parseFloat);else if(\"transformMatrix\"===t)o=s&&s.transformMatrix?Tt(s.transformMatrix,wr(e)):wr(e);else if(\"visible\"===t)o=e!==j&&\"hidden\"!==e,s&&!1===s.visible&&(o=!1);else if(\"opacity\"===t)o=parseFloat(e),s&&void 0!==s.opacity&&(o*=s.opacity);else if(\"textAnchor\"===t)o=\"start\"===e?M:\"end\"===e?A:D;else if(\"charSpacing\"===t||t===ze)n=Be(e,i)/i*1e3;else if(\"paintFirst\"===t){const t=e.indexOf(K),s=e.indexOf(J);o=K,(t>-1&&s>-1&&s<t||-1===t&&s>-1)&&(o=J)}else{if(\"href\"===t||\"xlink:href\"===t||\"font\"===t||\"id\"===t)return e;if(\"imageSmoothing\"===t)return\"optimizeQuality\"===e;n=r?e.map(Be):Be(e,i)}}else o=\"\";return!r&&isNaN(n)?o:n}function Or(t,e){const s=t.match(os);if(!s)return;const i=s[1],r=s[3],n=s[4],o=s[5],a=s[6];i&&(e.fontStyle=i),r&&(e.fontWeight=isNaN(parseFloat(r))?r:parseFloat(r)),n&&(e.fontSize=Be(n)),a&&(e.fontFamily=a),o&&(e.lineHeight=\"normal\"===o?1:o)}function kr(t,e){t.replace(/;\\s*$/,\"\").split(\";\").forEach((t=>{if(!t)return;const[s,i]=t.split(\":\");e[s.trim().toLowerCase()]=i.trim()}))}function Dr(t){const e={},s=t.getAttribute(\"style\");return s?(\"string\"==typeof s?kr(s,e):function(t,e){Object.entries(t).forEach((t=>{let[s,i]=t;void 0!==i&&(e[s.toLowerCase()]=i)}))}(s,e),e):e}const Mr={stroke:\"strokeOpacity\",fill:\"fillOpacity\"};function Pr(t,e,i){if(!t)return{};let r,n={},o=O;t.parentNode&&ds.test(t.parentNode.nodeName)&&(n=Pr(t.parentElement,e,i),n.fontSize&&(r=o=Be(n.fontSize)));const a=s(s(s({},e.reduce(((e,s)=>{const i=t.getAttribute(s);return i&&(e[s]=i),e}),{})),function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i={};for(const r in e)tr(t,r.split(\" \"))&&(i=s(s({},i),e[r]));return i}(t,i)),Dr(t));a[cs]&&t.setAttribute(cs,a[cs]),a[hs]&&(r=Be(a[hs],o),a[hs]=\"\".concat(r));const h={};for(const t in a){const e=er(t),s=Tr(e,a[t],n,r);h[e]=s}h&&h.font&&Or(h.font,h);const c=s(s({},n),h);return ds.test(t.nodeName)?c:function(t){const e=Li.getDefaults();return Object.entries(Mr).forEach((s=>{let[i,r]=s;if(void 0===t[r]||\"\"===t[i])return;if(void 0===t[i]){if(!e[i])return;t[i]=e[i]}if(0===t[i].indexOf(\"url(\"))return;const n=new Ie(t[i]);t[i]=n.setAlpha(Vt(n.getAlpha()*t[r],2)).toRgba()})),t}(c)}const Er=[\"left\",\"top\",\"width\",\"height\",\"visible\"],Ar=[\"rx\",\"ry\"];class jr extends Li{static getDefaults(){return s(s({},super.getDefaults()),jr.ownDefaults)}constructor(t){super(),Object.assign(this,jr.ownDefaults),this.setOptions(t),this._initRxRy()}_initRxRy(){const{rx:t,ry:e}=this;t&&!e?this.ry=t:e&&!t&&(this.rx=e)}_render(t){const{width:e,height:s}=this,i=-e/2,r=-s/2,n=this.rx?Math.min(this.rx,e/2):0,o=this.ry?Math.min(this.ry,s/2):0,a=0!==n||0!==o;t.beginPath(),t.moveTo(i+n,r),t.lineTo(i+e-n,r),a&&t.bezierCurveTo(i+e-k*n,r,i+e,r+k*o,i+e,r+o),t.lineTo(i+e,r+s-o),a&&t.bezierCurveTo(i+e,r+s-k*o,i+e-k*n,r+s,i+e-n,r+s),t.lineTo(i+n,r+s),a&&t.bezierCurveTo(i+k*n,r+s,i,r+s-k*o,i,r+s-o),t.lineTo(i,r+o),a&&t.bezierCurveTo(i,r+k*o,i+k*n,r,i+n,r),t.closePath(),this._renderPaintInOrder(t)}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return super.toObject([...Ar,...t])}_toSVG(){const{width:t,height:e,rx:s,ry:i}=this;return[\"<rect \",\"COMMON_PARTS\",'x=\"'.concat(-t/2,'\" y=\"').concat(-e/2,'\" rx=\"').concat(s,'\" ry=\"').concat(i,'\" width=\"').concat(t,'\" height=\"').concat(e,'\" />\\n')]}static async fromElement(t,e,r){const n=Pr(t,this.ATTRIBUTE_NAMES,r),{left:o=0,top:a=0,width:h=0,height:c=0,visible:l=!0}=n,u=i(n,Er);return new this(s(s(s({},e),u),{},{left:o,top:a,width:h,height:c,visible:Boolean(l&&h&&c)}))}}t(jr,\"type\",\"Rect\"),t(jr,\"cacheProperties\",[...Es,...Ar]),t(jr,\"ownDefaults\",{rx:0,ry:0}),t(jr,\"ATTRIBUTE_NAMES\",[...Zi,\"x\",\"y\",\"rx\",\"ry\",\"width\",\"height\"]),tt.setClass(jr),tt.setSVGClass(jr);const Fr=\"initialization\",Lr=\"added\",Rr=\"removed\",Ir=\"imperative\",Br=(t,e)=>{const{strokeUniform:s,strokeWidth:i,width:r,height:n,group:o}=e,a=o&&o!==t?pe(o.calcTransformMatrix(),t.calcTransformMatrix()):null,h=a?e.getRelativeCenterPoint().transform(a):e.getRelativeCenterPoint(),c=!e.isStrokeAccountedForInDimensions(),l=s&&c?ve(new ot(i,i),void 0,t.calcTransformMatrix()):at,u=!s&&c?i:0,d=fe(r+u,n+u,Ot([a,e.calcOwnMatrix()],!0)).add(l).scalarDivide(2);return[h.subtract(d),h.add(d)]};class Xr{calcLayoutResult(t,e){if(this.shouldPerformLayout(t))return this.calcBoundingBox(e,t)}shouldPerformLayout(t){let{type:e,prevStrategy:s,strategy:i}=t;return e===Fr||e===Ir||!!s&&i!==s}shouldLayoutClipPath(t){let{type:e,target:{clipPath:s}}=t;return e!==Fr&&s&&!s.absolutePositioned}getInitialSize(t,e){return e.size}calcBoundingBox(t,e){const{type:s,target:i}=e;if(s===Ir&&e.overrides)return e.overrides;if(0===t.length)return;const{left:r,top:n,width:o,height:a}=he(t.map((t=>Br(i,t))).reduce(((t,e)=>t.concat(e)),[])),h=new ot(o,a),c=new ot(r,n).add(h.scalarDivide(2));if(s===Fr){const t=this.getInitialSize(e,{size:h,center:c});return{center:c,relativeCorrection:new ot(0,0),size:t}}return{center:c.transform(i.calcOwnMatrix()),size:h}}}t(Xr,\"type\",\"strategy\");class Yr extends Xr{shouldPerformLayout(t){return!0}}t(Yr,\"type\",\"fit-content\"),tt.setClass(Yr);const Wr=[\"strategy\"],Vr=[\"target\",\"strategy\",\"bubbles\",\"prevStrategy\"],zr=\"layoutManager\";class Gr{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Yr;t(this,\"strategy\",void 0),this.strategy=e,this._subscriptions=new Map}performLayout(t){const e=s(s({bubbles:!0,strategy:this.strategy},t),{},{prevStrategy:this._prevLayoutStrategy,stopPropagation(){this.bubbles=!1}});this.onBeforeLayout(e);const i=this.getLayoutResult(e);i&&this.commitLayout(e,i),this.onAfterLayout(e,i),this._prevLayoutStrategy=e.strategy}attachHandlers(t,e){const{target:s}=e;return[Q,L,Y,I,R,X,z,W,V].map((e=>t.on(e,(t=>this.performLayout(e===Q?{type:\"object_modified\",trigger:e,e:t,target:s}:{type:\"object_modifying\",trigger:e,e:t,target:s})))))}subscribe(t,e){this.unsubscribe(t,e);const s=this.attachHandlers(t,e);this._subscriptions.set(t,s)}unsubscribe(t,e){(this._subscriptions.get(t)||[]).forEach((t=>t())),this._subscriptions.delete(t)}unsubscribeTargets(t){t.targets.forEach((e=>this.unsubscribe(e,t)))}subscribeTargets(t){t.targets.forEach((e=>this.subscribe(e,t)))}onBeforeLayout(t){const{target:e,type:r}=t,{canvas:n}=e;if(r===Fr||r===Lr?this.subscribeTargets(t):r===Rr&&this.unsubscribeTargets(t),e.fire(\"layout:before\",{context:t}),n&&n.fire(\"object:layout:before\",{target:e,context:t}),r===Ir&&t.deep){const r=i(t,Wr);e.forEachObject((t=>t.layoutManager&&t.layoutManager.performLayout(s(s({},r),{},{bubbles:!1,target:t}))))}}getLayoutResult(t){const{target:e,strategy:s,type:i}=t,r=s.calcLayoutResult(t,e.getObjects());if(!r)return;const n=i===Fr?new ot:e.getRelativeCenterPoint(),{center:o,correction:a=new ot,relativeCorrection:h=new ot}=r,c=n.subtract(o).add(a).transform(i===Fr?T:wt(e.calcOwnMatrix()),!0).add(h);return{result:r,prevCenter:n,nextCenter:o,offset:c}}commitLayout(t,e){const{target:s}=t,{result:{size:i},nextCenter:r}=e;var n,o;(s.set({width:i.x,height:i.y}),this.layoutObjects(t,e),t.type===Fr)?s.set({left:null!==(n=t.x)&&void 0!==n?n:r.x+i.x*Ce(s.originX),top:null!==(o=t.y)&&void 0!==o?o:r.y+i.y*Ce(s.originY)}):(s.setPositionByOrigin(r,D,D),s.setCoords(),s.set(\"dirty\",!0))}layoutObjects(t,e){const{target:s}=t;s.forEachObject((i=>{i.group===s&&this.layoutObject(t,e,i)})),t.strategy.shouldLayoutClipPath(t)&&this.layoutObject(t,e,s.clipPath)}layoutObject(t,e,s){let{offset:i}=e;s.set({left:s.left+i.x,top:s.top+i.y})}onAfterLayout(t,e){const{target:r,strategy:n,bubbles:o,prevStrategy:a}=t,h=i(t,Vr),{canvas:c}=r;r.fire(\"layout:after\",{context:t,result:e}),c&&c.fire(\"object:layout:after\",{context:t,result:e,target:r});const l=r.parent;o&&null!=l&&l.layoutManager&&((h.path||(h.path=[])).push(r),l.layoutManager.performLayout(s(s({},h),{},{target:l}))),r.set(\"dirty\",!0)}dispose(){const{_subscriptions:t}=this;t.forEach((t=>t.forEach((t=>t())))),t.clear()}toObject(){return{type:zr,strategy:this.strategy.constructor.type}}toJSON(){return this.toObject()}}tt.setClass(Gr,zr);const Hr=[\"type\",\"objects\",\"layoutManager\"];class Nr extends Gr{performLayout(){}}class Ur extends(ct(Li)){static getDefaults(){return s(s({},super.getDefaults()),Ur.ownDefaults)}constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),t(this,\"_activeObjects\",[]),t(this,\"__objectSelectionTracker\",void 0),t(this,\"__objectSelectionDisposer\",void 0),Object.assign(this,Ur.ownDefaults),this.setOptions(s),this.groupInit(e,s)}groupInit(t,e){var s;this._objects=[...t],this.__objectSelectionTracker=this.__objectSelectionMonitor.bind(this,!0),this.__objectSelectionDisposer=this.__objectSelectionMonitor.bind(this,!1),this.forEachObject((t=>{this.enterGroup(t,!1)})),this.layoutManager=null!==(s=e.layoutManager)&&void 0!==s?s:new Gr,this.layoutManager.performLayout({type:Fr,target:this,targets:[...t],x:e.left,y:e.top})}canEnterGroup(t){return t===this||this.isDescendantOf(t)?(a(\"error\",\"Group: circular object trees are not supported, this call has no effect\"),!1):-1===this._objects.indexOf(t)||(a(\"error\",\"Group: duplicate objects are not supported inside group, this call has no effect\"),!1)}_filterObjectsBeforeEnteringGroup(t){return t.filter(((t,e,s)=>this.canEnterGroup(t)&&s.indexOf(t)===e))}add(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];const i=this._filterObjectsBeforeEnteringGroup(e),r=super.add(...i);return this._onAfterObjectsChange(Lr,i),r}insertAt(t){for(var e=arguments.length,s=new Array(e>1?e-1:0),i=1;i<e;i++)s[i-1]=arguments[i];const r=this._filterObjectsBeforeEnteringGroup(s),n=super.insertAt(t,...r);return this._onAfterObjectsChange(Lr,r),n}remove(){const t=super.remove(...arguments);return this._onAfterObjectsChange(Rr,t),t}_onObjectAdded(t){this.enterGroup(t,!0),this.fire(\"object:added\",{target:t}),t.fire(\"added\",{target:this})}_onObjectRemoved(t,e){this.exitGroup(t,e),this.fire(\"object:removed\",{target:t}),t.fire(\"removed\",{target:this})}_onAfterObjectsChange(t,e){this.layoutManager.performLayout({type:t,targets:e,target:this})}_onStackOrderChanged(){this._set(\"dirty\",!0)}_set(t,e){const s=this[t];return super._set(t,e),\"canvas\"===t&&s!==e&&(this._objects||[]).forEach((s=>{s._set(t,e)})),this}_shouldSetNestedCoords(){return this.subTargetCheck}removeAll(){return this._activeObjects=[],this.remove(...this._objects)}__objectSelectionMonitor(t,e){let{target:s}=e;const i=this._activeObjects;if(t)i.push(s),this._set(\"dirty\",!0);else if(i.length>0){const t=i.indexOf(s);t>-1&&(i.splice(t,1),this._set(\"dirty\",!0))}}_watchObject(t,e){t&&this._watchObject(!1,e),t?(e.on(\"selected\",this.__objectSelectionTracker),e.on(\"deselected\",this.__objectSelectionDisposer)):(e.off(\"selected\",this.__objectSelectionTracker),e.off(\"deselected\",this.__objectSelectionDisposer))}enterGroup(t,e){t.group&&t.group.remove(t),t._set(\"parent\",this),this._enterGroup(t,e)}_enterGroup(t,e){e&&ue(t,Tt(wt(this.calcTransformMatrix()),t.calcTransformMatrix())),this._shouldSetNestedCoords()&&t.setCoords(),t._set(\"group\",this),t._set(\"canvas\",this.canvas),this._watchObject(!0,t);const s=this.canvas&&this.canvas.getActiveObject&&this.canvas.getActiveObject();s&&(s===t||t.isDescendantOf(s))&&this._activeObjects.push(t)}exitGroup(t,e){this._exitGroup(t,e),t._set(\"parent\",void 0),t._set(\"canvas\",void 0)}_exitGroup(t,e){t._set(\"group\",void 0),e||(ue(t,Tt(this.calcTransformMatrix(),t.calcTransformMatrix())),t.setCoords()),this._watchObject(!1,t);const s=this._activeObjects.length>0?this._activeObjects.indexOf(t):-1;s>-1&&this._activeObjects.splice(s,1)}shouldCache(){const t=Li.prototype.shouldCache.call(this);if(t)for(let t=0;t<this._objects.length;t++)if(this._objects[t].willDrawShadow())return this.ownCaching=!1,!1;return t}willDrawShadow(){if(super.willDrawShadow())return!0;for(let t=0;t<this._objects.length;t++)if(this._objects[t].willDrawShadow())return!0;return!1}isOnACache(){return this.ownCaching||!!this.parent&&this.parent.isOnACache()}drawObject(t,e,s){this._renderBackground(t);for(let e=0;e<this._objects.length;e++){var i;const s=this._objects[e];null!==(i=this.canvas)&&void 0!==i&&i.preserveObjectStacking&&s.group!==this?(t.save(),t.transform(...wt(this.calcTransformMatrix())),s.render(t),t.restore()):s.group===this&&s.render(t)}this._drawClipPath(t,this.clipPath,s)}setCoords(){super.setCoords(),this._shouldSetNestedCoords()&&this.forEachObject((t=>t.setCoords()))}triggerLayout(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.layoutManager.performLayout(s({target:this,type:Ir},t))}render(t){this._transformDone=!0,super.render(t),this._transformDone=!1}__serializeObjects(t,e){const s=this.includeDefaultValues;return this._objects.filter((function(t){return!t.excludeFromExport})).map((function(i){const r=i.includeDefaultValues;i.includeDefaultValues=s;const n=i[t||\"toObject\"](e);return i.includeDefaultValues=r,n}))}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e=this.layoutManager.toObject();return s(s(s({},super.toObject([\"subTargetCheck\",\"interactive\",...t])),\"fit-content\"!==e.strategy||this.includeDefaultValues?{layoutManager:e}:{}),{},{objects:this.__serializeObjects(\"toObject\",t)})}toString(){return\"#<Group: (\".concat(this.complexity(),\")>\")}dispose(){this.layoutManager.unsubscribeTargets({targets:this.getObjects(),target:this}),this._activeObjects=[],this.forEachObject((t=>{this._watchObject(!1,t),t.dispose()})),super.dispose()}_createSVGBgRect(t){if(!this.backgroundColor)return\"\";const e=jr.prototype._toSVG.call(this),s=e.indexOf(\"COMMON_PARTS\");e[s]='for=\"group\" ';const i=e.join(\"\");return t?t(i):i}_toSVG(t){const e=[\"<g \",\"COMMON_PARTS\",\" >\\n\"],s=this._createSVGBgRect(t);s&&e.push(\"\\t\\t\",s);for(let s=0;s<this._objects.length;s++)e.push(\"\\t\\t\",this._objects[s].toSVG(t));return e.push(\"</g>\\n\"),e}getSvgStyles(){const t=void 0!==this.opacity&&1!==this.opacity?\"opacity: \".concat(this.opacity,\";\"):\"\",e=this.visible?\"\":\" visibility: hidden;\";return[t,this.getSvgFilter(),e].join(\"\")}toClipPathSVG(t){const e=[],s=this._createSVGBgRect(t);s&&e.push(\"\\t\",s);for(let s=0;s<this._objects.length;s++)e.push(\"\\t\",this._objects[s].toClipPathSVG(t));return this._createBaseClipPathSVGMarkup(e,{reviver:t})}static fromObject(t,e){let{type:r,objects:n=[],layoutManager:o}=t,a=i(t,Hr);return Promise.all([Bt(n,e),Xt(a,e)]).then((t=>{let[e,i]=t;const r=new this(e,s(s(s({},a),i),{},{layoutManager:new Nr}));if(o){const t=tt.getClass(o.type),e=tt.getClass(o.strategy);r.layoutManager=new t(new e)}else r.layoutManager=new Gr;return r.layoutManager.subscribeTargets({type:Fr,target:r,targets:r.getObjects()}),r.setCoords(),r}))}}t(Ur,\"type\",\"Group\"),t(Ur,\"ownDefaults\",{strokeWidth:0,subTargetCheck:!1,interactive:!1}),tt.setClass(Ur);const qr=(t,e)=>Math.min(e.width/t.width,e.height/t.height),Kr=(t,e)=>Math.max(e.width/t.width,e.height/t.height),Jr=\"\\\\s*,?\\\\s*\",Qr=\"\".concat(Jr,\"(\").concat(is,\")\"),Zr=\"\".concat(Qr).concat(Qr).concat(Qr).concat(Jr,\"([01])\").concat(Jr,\"([01])\").concat(Qr).concat(Qr),$r={m:\"l\",M:\"L\"},tn=(t,e,s,i,r,n,o,a,h,c,l)=>{const u=rt(t),d=nt(t),g=rt(e),f=nt(e),p=s*r*g-i*n*f+o,m=i*r*g+s*n*f+a;return[\"C\",c+h*(-s*r*d-i*n*u),l+h*(-i*r*d+s*n*u),p+h*(s*r*f+i*n*g),m+h*(i*r*f-s*n*g),p,m]},en=(t,e,s,i)=>{const r=Math.atan2(e,t),n=Math.atan2(i,s);return n>=r?n-r:2*Math.PI-(r-n)};function sn(t,e,s,i,r,n,a,h){let c;if(o.cachesBoundsOfCurve&&(c=[...arguments].join(),_.boundsOfCurveCache[c]))return _.boundsOfCurveCache[c];const l=Math.sqrt,u=Math.abs,d=[],g=[[0,0],[0,0]];let f=6*t-12*s+6*r,p=-3*t+9*s-9*r+3*a,m=3*s-3*t;for(let t=0;t<2;++t){if(t>0&&(f=6*e-12*i+6*n,p=-3*e+9*i-9*n+3*h,m=3*i-3*e),u(p)<1e-12){if(u(f)<1e-12)continue;const t=-m/f;0<t&&t<1&&d.push(t);continue}const s=f*f-4*m*p;if(s<0)continue;const r=l(s),o=(-f+r)/(2*p);0<o&&o<1&&d.push(o);const a=(-f-r)/(2*p);0<a&&a<1&&d.push(a)}let v=d.length;const y=v,x=an(t,e,s,i,r,n,a,h);for(;v--;){const{x:t,y:e}=x(d[v]);g[0][v]=t,g[1][v]=e}g[0][y]=t,g[1][y]=e,g[0][y+1]=a,g[1][y+1]=h;const C=[new ot(Math.min(...g[0]),Math.min(...g[1])),new ot(Math.max(...g[0]),Math.max(...g[1]))];return o.cachesBoundsOfCurve&&(_.boundsOfCurveCache[c]=C),C}const rn=(t,e,s)=>{let[i,r,n,o,a,h,c,l]=s;const u=((t,e,s,i,r,n,o)=>{if(0===s||0===i)return[];let a=0,h=0,c=0;const l=Math.PI,u=o*w,d=nt(u),g=rt(u),f=.5*(-g*t-d*e),p=.5*(-g*e+d*t),m=s**2,v=i**2,y=p**2,_=f**2,x=m*v-m*y-v*_;let C=Math.abs(s),b=Math.abs(i);if(x<0){const t=Math.sqrt(1-x/(m*v));C*=t,b*=t}else c=(r===n?-1:1)*Math.sqrt(x/(m*y+v*_));const S=c*C*p/b,T=-c*b*f/C,O=g*S-d*T+.5*t,k=d*S+g*T+.5*e;let D=en(1,0,(f-S)/C,(p-T)/b),M=en((f-S)/C,(p-T)/b,(-f-S)/C,(-p-T)/b);0===n&&M>0?M-=2*l:1===n&&M<0&&(M+=2*l);const P=Math.ceil(Math.abs(M/l*2)),E=[],A=M/P,j=8/3*Math.sin(A/4)*Math.sin(A/4)/Math.sin(A/2);let F=D+A;for(let t=0;t<P;t++)E[t]=tn(D,F,g,d,C,b,O,k,j,a,h),a=E[t][5],h=E[t][6],D=F,F+=A;return E})(c-t,l-e,r,n,a,h,o);for(let s=0,i=u.length;s<i;s++)u[s][1]+=t,u[s][2]+=e,u[s][3]+=t,u[s][4]+=e,u[s][5]+=t,u[s][6]+=e;return u},nn=t=>{let e=0,s=0,i=0,r=0;const n=[];let o,a=0,h=0;for(const c of t){const t=[...c];let l;switch(t[0]){case\"l\":t[1]+=e,t[2]+=s;case\"L\":e=t[1],s=t[2],l=[\"L\",e,s];break;case\"h\":t[1]+=e;case\"H\":e=t[1],l=[\"L\",e,s];break;case\"v\":t[1]+=s;case\"V\":s=t[1],l=[\"L\",e,s];break;case\"m\":t[1]+=e,t[2]+=s;case\"M\":e=t[1],s=t[2],i=t[1],r=t[2],l=[\"M\",e,s];break;case\"c\":t[1]+=e,t[2]+=s,t[3]+=e,t[4]+=s,t[5]+=e,t[6]+=s;case\"C\":a=t[3],h=t[4],e=t[5],s=t[6],l=[\"C\",t[1],t[2],a,h,e,s];break;case\"s\":t[1]+=e,t[2]+=s,t[3]+=e,t[4]+=s;case\"S\":\"C\"===o?(a=2*e-a,h=2*s-h):(a=e,h=s),e=t[3],s=t[4],l=[\"C\",a,h,t[1],t[2],e,s],a=l[3],h=l[4];break;case\"q\":t[1]+=e,t[2]+=s,t[3]+=e,t[4]+=s;case\"Q\":a=t[1],h=t[2],e=t[3],s=t[4],l=[\"Q\",a,h,e,s];break;case\"t\":t[1]+=e,t[2]+=s;case\"T\":\"Q\"===o?(a=2*e-a,h=2*s-h):(a=e,h=s),e=t[1],s=t[2],l=[\"Q\",a,h,e,s];break;case\"a\":t[6]+=e,t[7]+=s;case\"A\":rn(e,s,t).forEach((t=>n.push(t))),e=t[6],s=t[7];break;case\"z\":case\"Z\":e=i,s=r,l=[\"Z\"]}l?(n.push(l),o=l[0]):o=\"\"}return n},on=(t,e,s,i)=>Math.sqrt((s-t)**2+(i-e)**2),an=(t,e,s,i,r,n,o,a)=>h=>{const c=h**3,l=(t=>3*t**2*(1-t))(h),u=(t=>3*t*(1-t)**2)(h),d=(t=>(1-t)**3)(h);return new ot(o*c+r*l+s*u+t*d,a*c+n*l+i*u+e*d)},hn=t=>t**2,cn=t=>2*t*(1-t),ln=t=>(1-t)**2,un=(t,e,s,i,r,n,o,a)=>h=>{const c=hn(h),l=cn(h),u=ln(h),d=3*(u*(s-t)+l*(r-s)+c*(o-r)),g=3*(u*(i-e)+l*(n-i)+c*(a-n));return Math.atan2(g,d)},dn=(t,e,s,i,r,n)=>o=>{const a=hn(o),h=cn(o),c=ln(o);return new ot(r*a+s*h+t*c,n*a+i*h+e*c)},gn=(t,e,s,i,r,n)=>o=>{const a=1-o,h=2*(a*(s-t)+o*(r-s)),c=2*(a*(i-e)+o*(n-i));return Math.atan2(c,h)},fn=(t,e,s)=>{let i=new ot(e,s),r=0;for(let e=1;e<=100;e+=1){const s=t(e/100);r+=on(i.x,i.y,s.x,s.y),i=s}return r},pn=(t,e)=>{let i,r=0,n=0,o={x:t.x,y:t.y},a=s({},o),h=.01,c=0;const l=t.iterator,u=t.angleFinder;for(;n<e&&h>1e-4;)a=l(r),c=r,i=on(o.x,o.y,a.x,a.y),i+n>e?(r-=h,h/=2):(o=a,r+=h,n+=i);return s(s({},a),{},{angle:u(c)})},mn=t=>{let e,s,i=0,r=0,n=0,o=0,a=0;const h=[];for(const c of t){const t={x:r,y:n,command:c[0],length:0};switch(c[0]){case\"M\":s=t,s.x=o=r=c[1],s.y=a=n=c[2];break;case\"L\":s=t,s.length=on(r,n,c[1],c[2]),r=c[1],n=c[2];break;case\"C\":e=an(r,n,c[1],c[2],c[3],c[4],c[5],c[6]),s=t,s.iterator=e,s.angleFinder=un(r,n,c[1],c[2],c[3],c[4],c[5],c[6]),s.length=fn(e,r,n),r=c[5],n=c[6];break;case\"Q\":e=dn(r,n,c[1],c[2],c[3],c[4]),s=t,s.iterator=e,s.angleFinder=gn(r,n,c[1],c[2],c[3],c[4]),s.length=fn(e,r,n),r=c[3],n=c[4];break;case\"Z\":s=t,s.destX=o,s.destY=a,s.length=on(r,n,o,a),r=o,n=a}i+=s.length,h.push(s)}return h.push({length:i,x:r,y:n}),h},vn=function(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:mn(t),r=0;for(;e-i[r].length>0&&r<i.length-2;)e-=i[r].length,r++;const n=i[r],o=e/n.length,a=t[r];switch(n.command){case\"M\":return{x:n.x,y:n.y,angle:0};case\"Z\":return s(s({},new ot(n.x,n.y).lerp(new ot(n.destX,n.destY),o)),{},{angle:Math.atan2(n.destY-n.y,n.destX-n.x)});case\"L\":return s(s({},new ot(n.x,n.y).lerp(new ot(a[1],a[2]),o)),{},{angle:Math.atan2(a[2]-n.y,a[1]-n.x)});case\"C\":case\"Q\":return pn(n,e)}},yn=new RegExp(\"[mzlhvcsqta][^mzlhvcsqta]*\",\"gi\"),_n=new RegExp(Zr,\"g\"),xn=new RegExp(is,\"gi\"),Cn={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},bn=t=>{var e;const s=[],i=null!==(e=t.match(yn))&&void 0!==e?e:[];for(const t of i){const e=t[0];if(\"z\"===e||\"Z\"===e){s.push([e]);continue}const i=Cn[e.toLowerCase()];let r=[];if(\"a\"===e||\"A\"===e){_n.lastIndex=0;for(let e=null;e=_n.exec(t);)r.push(...e.slice(1))}else r=t.match(xn)||[];for(let t=0;t<r.length;t+=i){const n=new Array(i),o=$r[e];n[0]=t>0&&o?o:e;for(let e=0;e<i;e++)n[e+1]=parseFloat(r[t+e]);s.push(n)}}return s},Sn=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,s=new ot(t[0]),i=new ot(t[1]),r=1,n=0;const o=[],a=t.length,h=a>2;let c;for(h&&(r=t[2].x<i.x?-1:t[2].x===i.x?0:1,n=t[2].y<i.y?-1:t[2].y===i.y?0:1),o.push([\"M\",s.x-r*e,s.y-n*e]),c=1;c<a;c++){if(!s.eq(i)){const t=s.midPointFrom(i);o.push([\"Q\",s.x,s.y,t.x,t.y])}s=t[c],c+1<t.length&&(i=t[c+1])}return h&&(r=s.x>t[c-2].x?1:s.x===t[c-2].x?0:-1,n=s.y>t[c-2].y?1:s.y===t[c-2].y?0:-1),o.push([\"L\",s.x+r*e,s.y+n*e]),o},wn=(t,e)=>t.map((t=>t.map(((t,s)=>0===s||void 0===e?t:Vt(t,e))).join(\" \"))).join(\" \");function Tn(t,e){const s=t.style;s&&e&&(\"string\"==typeof e?s.cssText+=\";\"+e:Object.entries(e).forEach((t=>{let[e,i]=t;return s.setProperty(e,i)})))}const On=(t,e)=>Math.floor(Math.random()*(e-t+1))+t;function kn(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=e.onComplete||C,i=new(v().XMLHttpRequest),r=e.signal,n=function(){i.abort()},o=function(){r&&r.removeEventListener(\"abort\",n),i.onerror=i.ontimeout=C};if(r&&r.aborted)throw new c(\"request\");return r&&r.addEventListener(\"abort\",n,{once:!0}),i.onreadystatechange=function(){4===i.readyState&&(o(),s(i),i.onreadystatechange=C)},i.onerror=i.ontimeout=o,i.open(\"get\",t,!0),i.send(),i}const Dn=(t,e)=>{let s=t._findCenterFromElement();t.transformMatrix&&((t=>{if(t.transformMatrix){const{scaleX:e,scaleY:s,angle:i,skewX:r}=Dt(t.transformMatrix);t.flipX=!1,t.flipY=!1,t.set(H,e),t.set(N,s),t.angle=i,t.skewX=r,t.skewY=0}})(t),s=s.transform(t.transformMatrix)),delete t.transformMatrix,e&&(t.scaleX*=e.scaleX,t.scaleY*=e.scaleY,t.cropX=e.cropX,t.cropY=e.cropY,s.x+=e.offsetLeft,s.y+=e.offsetTop,t.width=e.width,t.height=e.height),t.setPositionByOrigin(s,D,D)};var Mn=Object.freeze({__proto__:null,addTransformToObject:le,animate:Ks,animateColor:Js,applyTransformToObject:ue,calcAngleBetweenVectors:_s,calcDimensionsMatrix:Lt,calcPlaneChangeMatrix:pe,calcVectorRotation:xs,cancelAnimFrame:dt,capValue:Ms,composeMatrix:Rt,copyCanvasElement:t=>{var e;const s=vt(t);return null===(e=s.getContext(\"2d\"))||void 0===e||e.drawImage(t,0,0),s},cos:rt,createCanvasElement:pt,createImage:mt,createRotateMatrix:Pt,createScaleMatrix:Et,createSkewXMatrix:jt,createSkewYMatrix:Ft,createTranslateMatrix:Mt,createVector:vs,crossProduct:Ss,degreesToRadians:xt,dotProduct:ws,ease:Bs,enlivenObjectEnlivables:Xt,enlivenObjects:Bt,findScaleToCover:Kr,findScaleToFit:qr,getBoundsOfCurve:sn,getOrthonormalVector:bs,getPathSegmentsInfo:mn,getPointOnPath:vn,getPointer:ne,getRandomInt:On,getRegularPolygonPath:(t,e)=>{const s=2*Math.PI/t;let i=-b;t%2==0&&(i+=s/2);const r=new Array(t+1);for(let n=0;n<t;n++){const t=n*s+i,{x:o,y:a}=new ot(rt(t),nt(t)).scalarMultiply(e);r[n]=[0===n?\"M\":\"L\",o,a]}return r[t]=[\"Z\"],r},getSmoothPathFromPoints:Sn,getSvgAttributes:t=>{const e=[\"instantiated_by_use\",\"style\",\"id\",\"class\"];switch(t){case\"linearGradient\":return e.concat([\"x1\",\"y1\",\"x2\",\"y2\",\"gradientUnits\",\"gradientTransform\"]);case\"radialGradient\":return e.concat([\"gradientUnits\",\"gradientTransform\",\"cx\",\"cy\",\"r\",\"fx\",\"fy\",\"fr\"]);case\"stop\":return e.concat([\"offset\",\"stop-color\",\"stop-opacity\"])}return e},getUnitVector:Cs,groupSVGElements:(t,e)=>t&&1===t.length?t[0]:new Ur(t,e),hasStyleChanged:Ki,invertTransform:wt,isBetweenVectors:Ts,isIdentityMatrix:bt,isTouchEvent:oe,isTransparent:Ri,joinPath:wn,loadImage:It,magnitude:ys,makeBoundingBoxFromPoints:he,makePathSimpler:nn,matrixToSVG:zt,mergeClipPaths:(t,e)=>{var s;let i=t,r=e;i.inverted&&!r.inverted&&(i=e,r=t),ye(r,null===(s=r.group)||void 0===s?void 0:s.calcTransformMatrix(),i.calcTransformMatrix());const n=i.inverted&&r.inverted;return n&&(i.inverted=r.inverted=!1),new Ur([i],{clipPath:r,inverted:n})},multiplyTransformMatrices:Tt,multiplyTransformMatrixArray:Ot,parsePath:bn,parsePreserveAspectRatioAttribute:Xe,parseUnit:Be,pick:Yt,projectStrokeOnPoints:Wi,qrDecompose:Dt,radiansToDegrees:Ct,removeFromArray:it,removeTransformFromObject:(t,e)=>{const s=wt(e),i=Tt(s,t.calcOwnMatrix());ue(t,i)},removeTransformMatrixForSvgParsing:Dn,request:kn,requestAnimFrame:ut,resetObjectTransform:de,rotatePoint:(t,e,s)=>t.rotate(s,e),rotateVector:ms,saveObjectTransform:ge,sendObjectToPlane:ye,sendPointToPlane:me,sendVectorToPlane:ve,setStyle:Tn,sin:nt,sizeAfterTransform:fe,string:qi,stylesFromArray:Qi,stylesToArray:Ji,toBlob:_t,toDataURL:yt,toFixed:Vt,transformPath:(t,e,s)=>(s&&(e=Tt(e,[1,0,0,1,-s.x,-s.y])),t.map((t=>{const s=[...t];for(let i=1;i<t.length-1;i+=2){const{x:r,y:n}=St({x:t[i],y:t[i+1]},e);s[i]=r,s[i+1]=n}return s}))),transformPoint:St});class Pn extends te{constructor(e){let{allowTouchScrolling:s=!1,containerClass:i=\"\"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(e),t(this,\"upper\",void 0),t(this,\"container\",void 0);const{el:r}=this.lower,n=this.createUpperCanvas();this.upper={el:n,ctx:n.getContext(\"2d\")},this.applyCanvasStyle(r,{allowTouchScrolling:s}),this.applyCanvasStyle(n,{allowTouchScrolling:s,styles:{position:\"absolute\",left:\"0\",top:\"0\"}});const o=this.createContainerElement();o.classList.add(i),r.parentNode&&r.parentNode.replaceChild(o,r),o.append(r,n),this.container=o}createUpperCanvas(){const{el:t}=this.lower,e=pt();return e.className=t.className,e.classList.remove(\"lower-canvas\"),e.classList.add(\"upper-canvas\"),e.setAttribute(\"data-fabric\",\"top\"),e.style.cssText=t.style.cssText,e.setAttribute(\"draggable\",\"true\"),e}createContainerElement(){const t=m().createElement(\"div\");return t.setAttribute(\"data-fabric\",\"wrapper\"),Tn(t,{position:\"relative\"}),$t(t),t}applyCanvasStyle(t,e){const{styles:i,allowTouchScrolling:r}=e;Tn(t,s(s({},i),{},{\"touch-action\":r?\"manipulation\":j})),$t(t)}setDimensions(t,e){super.setDimensions(t,e);const{el:s,ctx:i}=this.upper;Qt(s,i,t,e)}setCSSDimensions(t){super.setCSSDimensions(t),Zt(this.upper.el,t),Zt(this.container,t)}cleanupDOM(t){const e=this.container,{el:s}=this.lower,{el:i}=this.upper;super.cleanupDOM(t),e.removeChild(i),e.removeChild(s),e.parentNode&&e.parentNode.replaceChild(s,e)}dispose(){super.dispose(),p().dispose(this.upper.el),delete this.upper,delete this.container}}class En extends ie{constructor(){super(...arguments),t(this,\"targets\",[]),t(this,\"_hoveredTargets\",[]),t(this,\"_currentTransform\",null),t(this,\"_groupSelector\",null),t(this,\"contextTopDirty\",!1)}static getDefaults(){return s(s({},super.getDefaults()),En.ownDefaults)}get upperCanvasEl(){var t;return null===(t=this.elements.upper)||void 0===t?void 0:t.el}get contextTop(){var t;return null===(t=this.elements.upper)||void 0===t?void 0:t.ctx}get wrapperEl(){return this.elements.container}initElements(t){this.elements=new Pn(t,{allowTouchScrolling:this.allowTouchScrolling,containerClass:this.containerClass}),this._createCacheCanvas()}_onObjectAdded(t){this._objectsToRender=void 0,super._onObjectAdded(t)}_onObjectRemoved(t){this._objectsToRender=void 0,t===this._activeObject&&(this.fire(\"before:selection:cleared\",{deselected:[t]}),this._discardActiveObject(),this.fire(\"selection:cleared\",{deselected:[t]}),t.fire(\"deselected\",{target:t})),t===this._hoveredTarget&&(this._hoveredTarget=void 0,this._hoveredTargets=[]),super._onObjectRemoved(t)}_onStackOrderChanged(){this._objectsToRender=void 0,super._onStackOrderChanged()}_chooseObjectsToRender(){const t=this._activeObject;return!this.preserveObjectStacking&&t?this._objects.filter((e=>!e.group&&e!==t)).concat(t):this._objects}renderAll(){this.cancelRequestedRender(),this.destroyed||(!this.contextTopDirty||this._groupSelector||this.isDrawingMode||(this.clearContext(this.contextTop),this.contextTopDirty=!1),this.hasLostContext&&(this.renderTopLayer(this.contextTop),this.hasLostContext=!1),!this._objectsToRender&&(this._objectsToRender=this._chooseObjectsToRender()),this.renderCanvas(this.getContext(),this._objectsToRender))}renderTopLayer(t){t.save(),this.isDrawingMode&&this._isCurrentlyDrawing&&(this.freeDrawingBrush&&this.freeDrawingBrush._render(),this.contextTopDirty=!0),this.selection&&this._groupSelector&&(this._drawSelection(t),this.contextTopDirty=!0),t.restore()}renderTop(){const t=this.contextTop;this.clearContext(t),this.renderTopLayer(t),this.fire(\"after:render\",{ctx:t})}setTargetFindTolerance(t){t=Math.round(t),this.targetFindTolerance=t;const e=this.getRetinaScaling(),s=Math.ceil((2*t+1)*e);this.pixelFindCanvasEl.width=this.pixelFindCanvasEl.height=s,this.pixelFindContext.scale(e,e)}isTargetTransparent(t,e,s){const i=this.targetFindTolerance,r=this.pixelFindContext;this.clearContext(r),r.save(),r.translate(-e+i,-s+i),r.transform(...this.viewportTransform);const n=t.selectionBackgroundColor;t.selectionBackgroundColor=\"\",t.render(r),t.selectionBackgroundColor=n,r.restore();const o=Math.round(i*this.getRetinaScaling());return Ri(r,o,o,o)}_isSelectionKeyPressed(t){const e=this.selectionKey;return!!e&&(Array.isArray(e)?!!e.find((e=>!!e&&!0===t[e])):t[e])}_shouldClearSelection(t,e){const s=this.getActiveObjects(),i=this._activeObject;return!!(!e||e&&i&&s.length>1&&-1===s.indexOf(e)&&i!==e&&!this._isSelectionKeyPressed(t)||e&&!e.evented||e&&!e.selectable&&i&&i!==e)}_shouldCenterTransform(t,e,s){if(!t)return;let i;return e===G||e===H||e===N||e===Y?i=this.centeredScaling||t.centeredScaling:e===B&&(i=this.centeredRotation||t.centeredRotation),i?!s:s}_getOriginFromCorner(t,e){const s={x:t.originX,y:t.originY};return e?([\"ml\",\"tl\",\"bl\"].includes(e)?s.x=A:[\"mr\",\"tr\",\"br\"].includes(e)&&(s.x=M),[\"tl\",\"mt\",\"tr\"].includes(e)?s.y=E:[\"bl\",\"mb\",\"br\"].includes(e)&&(s.y=P),s):s}_setupCurrentTransform(t,e,i){var r;const n=e.group?me(this.getScenePoint(t),void 0,e.group.calcTransformMatrix()):this.getScenePoint(t),{key:o=\"\",control:a}=e.getActiveControl()||{},h=i&&a?null===(r=a.getActionHandler(t,e,a))||void 0===r?void 0:r.bind(a):Me,c=((t,e,s,i)=>{if(!e||!t)return\"drag\";const r=i.controls[e];return r.getActionName(s,r,i)})(i,o,t,e),l=t[this.centeredKey],u=this._shouldCenterTransform(e,c,l)?{x:D,y:D}:this._getOriginFromCorner(e,o),d={target:e,action:c,actionHandler:h,actionPerformed:!1,corner:o,scaleX:e.scaleX,scaleY:e.scaleY,skewX:e.skewX,skewY:e.skewY,offsetX:n.x-e.left,offsetY:n.y-e.top,originX:u.x,originY:u.y,ex:n.x,ey:n.y,lastX:n.x,lastY:n.y,theta:xt(e.angle),width:e.width,height:e.height,shiftKey:t.shiftKey,altKey:l,original:s(s({},ge(e)),{},{originX:u.x,originY:u.y})};this._currentTransform=d,this.fire(\"before:transform\",{e:t,transform:d})}setCursor(t){this.upperCanvasEl.style.cursor=t}_drawSelection(t){const{x:e,y:s,deltaX:i,deltaY:r}=this._groupSelector,n=new ot(e,s).transform(this.viewportTransform),o=new ot(e+i,s+r).transform(this.viewportTransform),a=this.selectionLineWidth/2;let h=Math.min(n.x,o.x),c=Math.min(n.y,o.y),l=Math.max(n.x,o.x),u=Math.max(n.y,o.y);this.selectionColor&&(t.fillStyle=this.selectionColor,t.fillRect(h,c,l-h,u-c)),this.selectionLineWidth&&this.selectionBorderColor&&(t.lineWidth=this.selectionLineWidth,t.strokeStyle=this.selectionBorderColor,h+=a,c+=a,l-=a,u-=a,Li.prototype._setLineDash.call(this,t,this.selectionDashArray),t.strokeRect(h,c,l-h,u-c))}findTarget(t){if(this.skipTargetFind)return;const e=this.getViewportPoint(t),s=this._activeObject,i=this.getActiveObjects();if(this.targets=[],s&&i.length>=1){if(s.findControl(e,oe(t)))return s;if(i.length>1&&this.searchPossibleTargets([s],e))return s;if(s===this.searchPossibleTargets([s],e)){if(this.preserveObjectStacking){const i=this.targets;this.targets=[];const r=this.searchPossibleTargets(this._objects,e);return t[this.altSelectionKey]&&r&&r!==s?(this.targets=i,s):r}return s}}return this.searchPossibleTargets(this._objects,e)}_pointIsInObjectSelectionArea(t,e){let s=t.getCoords();const i=this.getZoom(),r=t.padding/i;if(r){const[t,e,i,n]=s,o=Math.atan2(e.y-t.y,e.x-t.x),a=rt(o)*r,h=nt(o)*r,c=a+h,l=a-h;s=[new ot(t.x-l,t.y-c),new ot(e.x+c,e.y-l),new ot(i.x+l,i.y+c),new ot(n.x-c,n.y+l)]}return Qs.isPointInPolygon(e,s)}_checkTarget(t,e){if(t&&t.visible&&t.evented&&this._pointIsInObjectSelectionArea(t,me(e,void 0,this.viewportTransform))){if(!this.perPixelTargetFind&&!t.perPixelTargetFind||t.isEditing)return!0;if(!this.isTargetTransparent(t,e.x,e.y))return!0}return!1}_searchPossibleTargets(t,e){let s=t.length;for(;s--;){const i=t[s];if(this._checkTarget(i,e)){if(ht(i)&&i.subTargetCheck){const t=this._searchPossibleTargets(i._objects,e);t&&this.targets.push(t)}return i}}}searchPossibleTargets(t,e){const s=this._searchPossibleTargets(t,e);if(s&&ht(s)&&s.interactive&&this.targets[0]){const t=this.targets;for(let e=t.length-1;e>0;e--){const s=t[e];if(!ht(s)||!s.interactive)return s}return t[0]}return s}getViewportPoint(t){return this._pointer?this._pointer:this.getPointer(t,!0)}getScenePoint(t){return this._absolutePointer?this._absolutePointer:this.getPointer(t)}getPointer(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const s=this.upperCanvasEl,i=s.getBoundingClientRect();let r=ne(t),n=i.width||0,o=i.height||0;n&&o||(P in i&&E in i&&(o=Math.abs(i.top-i.bottom)),A in i&&M in i&&(n=Math.abs(i.right-i.left))),this.calcOffset(),r.x=r.x-this._offset.left,r.y=r.y-this._offset.top,e||(r=me(r,void 0,this.viewportTransform));const a=this.getRetinaScaling();1!==a&&(r.x/=a,r.y/=a);const h=0===n||0===o?new ot(1,1):new ot(s.width/n,s.height/o);return r.multiply(h)}_setDimensionsImpl(t,e){this._resetTransformEventData(),super._setDimensionsImpl(t,e),this._isCurrentlyDrawing&&this.freeDrawingBrush&&this.freeDrawingBrush._setBrushStyles(this.contextTop)}_createCacheCanvas(){this.pixelFindCanvasEl=pt(),this.pixelFindContext=this.pixelFindCanvasEl.getContext(\"2d\",{willReadFrequently:!0}),this.setTargetFindTolerance(this.targetFindTolerance)}getTopContext(){return this.elements.upper.ctx}getSelectionContext(){return this.elements.upper.ctx}getSelectionElement(){return this.elements.upper.el}getActiveObject(){return this._activeObject}getActiveObjects(){const t=this._activeObject;return Ut(t)?t.getObjects():t?[t]:[]}_fireSelectionEvents(t,e){let s=!1,i=!1;const r=this.getActiveObjects(),n=[],o=[];t.forEach((t=>{r.includes(t)||(s=!0,t.fire(\"deselected\",{e:e,target:t}),o.push(t))})),r.forEach((i=>{t.includes(i)||(s=!0,i.fire(\"selected\",{e:e,target:i}),n.push(i))})),t.length>0&&r.length>0?(i=!0,s&&this.fire(\"selection:updated\",{e:e,selected:n,deselected:o})):r.length>0?(i=!0,this.fire(\"selection:created\",{e:e,selected:n})):t.length>0&&(i=!0,this.fire(\"selection:cleared\",{e:e,deselected:o})),i&&(this._objectsToRender=void 0)}setActiveObject(t,e){const s=this.getActiveObjects(),i=this._setActiveObject(t,e);return this._fireSelectionEvents(s,e),i}_setActiveObject(t,e){const s=this._activeObject;return s!==t&&(!(!this._discardActiveObject(e,t)&&this._activeObject)&&(!t.onSelect({e:e})&&(this._activeObject=t,Ut(t)&&s!==t&&t.set(\"canvas\",this),t.setCoords(),!0)))}_discardActiveObject(t,e){const s=this._activeObject;return!!s&&(!s.onDeselect({e:t,object:e})&&(this._currentTransform&&this._currentTransform.target===s&&this.endCurrentTransform(t),Ut(s)&&s===this._hoveredTarget&&(this._hoveredTarget=void 0),this._activeObject=void 0,!0))}discardActiveObject(t){const e=this.getActiveObjects(),s=this.getActiveObject();e.length&&this.fire(\"before:selection:cleared\",{e:t,deselected:[s]});const i=this._discardActiveObject(t);return this._fireSelectionEvents(e,t),i}endCurrentTransform(t){const e=this._currentTransform;this._finalizeCurrentTransform(t),e&&e.target&&(e.target.isMoving=!1),this._currentTransform=null}_finalizeCurrentTransform(t){const e=this._currentTransform,s=e.target,i={e:t,target:s,transform:e,action:e.action};s._scaling&&(s._scaling=!1),s.setCoords(),e.actionPerformed&&(this.fire(\"object:modified\",i),s.fire(Q,i))}setViewportTransform(t){super.setViewportTransform(t);const e=this._activeObject;e&&e.setCoords()}destroy(){const t=this._activeObject;Ut(t)&&(t.removeAll(),t.dispose()),delete this._activeObject,super.destroy(),this.pixelFindContext=null,this.pixelFindCanvasEl=void 0}clear(){this.discardActiveObject(),this._activeObject=void 0,this.clearContext(this.contextTop),super.clear()}drawControls(t){const e=this._activeObject;e&&e._renderControls(t)}_toObject(t,e,s){const i=this._realizeGroupTransformOnObject(t),r=super._toObject(t,e,s);return t.set(i),r}_realizeGroupTransformOnObject(t){const{group:e}=t;if(e&&Ut(e)&&this._activeObject===e){const s=Yt(t,[\"angle\",\"flipX\",\"flipY\",M,H,N,U,q,P]);return le(t,e.calcOwnMatrix()),s}return{}}_setSVGObject(t,e,s){const i=this._realizeGroupTransformOnObject(e);super._setSVGObject(t,e,s),e.set(i)}}t(En,\"ownDefaults\",{uniformScaling:!0,uniScaleKey:\"shiftKey\",centeredScaling:!1,centeredRotation:!1,centeredKey:\"altKey\",altActionKey:\"shiftKey\",selection:!0,selectionKey:\"shiftKey\",selectionColor:\"rgba(100, 100, 255, 0.3)\",selectionDashArray:[],selectionBorderColor:\"rgba(255, 255, 255, 0.3)\",selectionLineWidth:1,selectionFullyContained:!1,hoverCursor:\"move\",moveCursor:\"move\",defaultCursor:\"default\",freeDrawingCursor:\"crosshair\",notAllowedCursor:\"not-allowed\",perPixelTargetFind:!1,targetFindTolerance:0,skipTargetFind:!1,stopContextMenu:!1,fireRightClick:!1,fireMiddleClick:!1,enablePointerEvents:!1,containerClass:\"canvas-container\",preserveObjectStacking:!1});class An{constructor(e){t(this,\"targets\",[]),t(this,\"__disposer\",void 0);const s=()=>{const{hiddenTextarea:t}=e.getActiveObject()||{};t&&t.focus()},i=e.upperCanvasEl;i.addEventListener(\"click\",s),this.__disposer=()=>i.removeEventListener(\"click\",s)}exitTextEditing(){this.target=void 0,this.targets.forEach((t=>{t.isEditing&&t.exitEditing()}))}add(t){this.targets.push(t)}remove(t){this.unregister(t),it(this.targets,t)}register(t){this.target=t}unregister(t){t===this.target&&(this.target=void 0)}onMouseMove(t){var e;(null===(e=this.target)||void 0===e?void 0:e.isEditing)&&this.target.updateSelectionOnMouseMove(t)}clear(){this.targets=[],this.target=void 0}dispose(){this.clear(),this.__disposer(),delete this.__disposer}}const jn=[\"target\",\"oldTarget\",\"fireCanvas\",\"e\"],Fn={passive:!1},Ln=(t,e)=>{const s=t.getViewportPoint(e),i=t.getScenePoint(e);return{viewportPoint:s,scenePoint:i,pointer:s,absolutePointer:i}},Rn=function(t){for(var e=arguments.length,s=new Array(e>1?e-1:0),i=1;i<e;i++)s[i-1]=arguments[i];return t.addEventListener(...s)},In=function(t){for(var e=arguments.length,s=new Array(e>1?e-1:0),i=1;i<e;i++)s[i-1]=arguments[i];return t.removeEventListener(...s)},Bn={mouse:{in:\"over\",out:\"out\",targetIn:\"mouseover\",targetOut:\"mouseout\",canvasIn:\"mouse:over\",canvasOut:\"mouse:out\"},drag:{in:\"enter\",out:\"leave\",targetIn:\"dragenter\",targetOut:\"dragleave\",canvasIn:\"drag:enter\",canvasOut:\"drag:leave\"}};class Xn extends En{constructor(e){super(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),t(this,\"_isClick\",void 0),t(this,\"textEditingManager\",new An(this)),[\"_onMouseDown\",\"_onTouchStart\",\"_onMouseMove\",\"_onMouseUp\",\"_onTouchEnd\",\"_onResize\",\"_onMouseWheel\",\"_onMouseOut\",\"_onMouseEnter\",\"_onContextMenu\",\"_onClick\",\"_onDragStart\",\"_onDragEnd\",\"_onDragProgress\",\"_onDragOver\",\"_onDragEnter\",\"_onDragLeave\",\"_onDrop\"].forEach((t=>{this[t]=this[t].bind(this)})),this.addOrRemove(Rn,\"add\")}_getEventPrefix(){return this.enablePointerEvents?\"pointer\":\"mouse\"}addOrRemove(t,e){const s=this.upperCanvasEl,i=this._getEventPrefix();t(Jt(s),\"resize\",this._onResize),t(s,i+\"down\",this._onMouseDown),t(s,\"\".concat(i,\"move\"),this._onMouseMove,Fn),t(s,\"\".concat(i,\"out\"),this._onMouseOut),t(s,\"\".concat(i,\"enter\"),this._onMouseEnter),t(s,\"wheel\",this._onMouseWheel,{passive:!1}),t(s,\"contextmenu\",this._onContextMenu),t(s,\"click\",this._onClick),t(s,\"dblclick\",this._onClick),t(s,\"dragstart\",this._onDragStart),t(s,\"dragend\",this._onDragEnd),t(s,\"dragover\",this._onDragOver),t(s,\"dragenter\",this._onDragEnter),t(s,\"dragleave\",this._onDragLeave),t(s,\"drop\",this._onDrop),this.enablePointerEvents||t(s,\"touchstart\",this._onTouchStart,Fn)}removeListeners(){this.addOrRemove(In,\"remove\");const t=this._getEventPrefix(),e=Kt(this.upperCanvasEl);In(e,\"\".concat(t,\"up\"),this._onMouseUp),In(e,\"touchend\",this._onTouchEnd,Fn),In(e,\"\".concat(t,\"move\"),this._onMouseMove,Fn),In(e,\"touchmove\",this._onMouseMove,Fn),clearTimeout(this._willAddMouseDown)}_onMouseWheel(t){this.__onMouseWheel(t)}_onMouseOut(t){const e=this._hoveredTarget,i=s({e:t},Ln(this,t));this.fire(\"mouse:out\",s(s({},i),{},{target:e})),this._hoveredTarget=void 0,e&&e.fire(\"mouseout\",s({},i)),this._hoveredTargets.forEach((t=>{this.fire(\"mouse:out\",s(s({},i),{},{target:t})),t&&t.fire(\"mouseout\",s({},i))})),this._hoveredTargets=[]}_onMouseEnter(t){this._currentTransform||this.findTarget(t)||(this.fire(\"mouse:over\",s({e:t},Ln(this,t))),this._hoveredTarget=void 0,this._hoveredTargets=[])}_onDragStart(t){this._isClick=!1;const e=this.getActiveObject();if(e&&e.onDragStart(t)){this._dragSource=e;const s={e:t,target:e};return this.fire(\"dragstart\",s),e.fire(\"dragstart\",s),void Rn(this.upperCanvasEl,\"drag\",this._onDragProgress)}ae(t)}_renderDragEffects(t,e,s){let i=!1;const r=this._dropTarget;r&&r!==e&&r!==s&&(r.clearContextTop(),i=!0),null==e||e.clearContextTop(),s!==e&&(null==s||s.clearContextTop());const n=this.contextTop;n.save(),n.transform(...this.viewportTransform),e&&(n.save(),e.transform(n),e.renderDragSourceEffect(t),n.restore(),i=!0),s&&(n.save(),s.transform(n),s.renderDropTargetEffect(t),n.restore(),i=!0),n.restore(),i&&(this.contextTopDirty=!0)}_onDragEnd(t){const e=!!t.dataTransfer&&t.dataTransfer.dropEffect!==j,s=e?this._activeObject:void 0,i={e:t,target:this._dragSource,subTargets:this.targets,dragSource:this._dragSource,didDrop:e,dropTarget:s};In(this.upperCanvasEl,\"drag\",this._onDragProgress),this.fire(\"dragend\",i),this._dragSource&&this._dragSource.fire(\"dragend\",i),delete this._dragSource,this._onMouseUp(t)}_onDragProgress(t){const e={e:t,target:this._dragSource,dragSource:this._dragSource,dropTarget:this._draggedoverTarget};this.fire(\"drag\",e),this._dragSource&&this._dragSource.fire(\"drag\",e)}findDragTargets(t){this.targets=[];return{target:this._searchPossibleTargets(this._objects,this.getViewportPoint(t)),targets:[...this.targets]}}_onDragOver(t){const e=\"dragover\",{target:s,targets:i}=this.findDragTargets(t),r=this._dragSource,n={e:t,target:s,subTargets:i,dragSource:r,canDrop:!1,dropTarget:void 0};let o;this.fire(e,n),this._fireEnterLeaveEvents(s,n),s&&(s.canDrop(t)&&(o=s),s.fire(e,n));for(let s=0;s<i.length;s++){const r=i[s];r.canDrop(t)&&(o=r),r.fire(e,n)}this._renderDragEffects(t,r,o),this._dropTarget=o}_onDragEnter(t){const{target:e,targets:s}=this.findDragTargets(t),i={e:t,target:e,subTargets:s,dragSource:this._dragSource};this.fire(\"dragenter\",i),this._fireEnterLeaveEvents(e,i)}_onDragLeave(t){const e={e:t,target:this._draggedoverTarget,subTargets:this.targets,dragSource:this._dragSource};this.fire(\"dragleave\",e),this._fireEnterLeaveEvents(void 0,e),this._renderDragEffects(t,this._dragSource),this._dropTarget=void 0,this.targets=[],this._hoveredTargets=[]}_onDrop(t){const{target:e,targets:i}=this.findDragTargets(t),r=this._basicEventHandler(\"drop:before\",s({e:t,target:e,subTargets:i,dragSource:this._dragSource},Ln(this,t)));r.didDrop=!1,r.dropTarget=void 0,this._basicEventHandler(\"drop\",r),this.fire(\"drop:after\",r)}_onContextMenu(t){const e=this.findTarget(t),s=this.targets||[],i=this._basicEventHandler(\"contextmenu:before\",{e:t,target:e,subTargets:s});return this.stopContextMenu&&ae(t),this._basicEventHandler(\"contextmenu\",i),!1}_onClick(t){const e=t.detail;e>3||e<2||(this._cacheTransformEventData(t),2==e&&\"dblclick\"===t.type&&this._handleEvent(t,\"dblclick\"),3==e&&this._handleEvent(t,\"tripleclick\"),this._resetTransformEventData())}getPointerId(t){const e=t.changedTouches;return e?e[0]&&e[0].identifier:this.enablePointerEvents?t.pointerId:-1}_isMainEvent(t){return!0===t.isPrimary||!1!==t.isPrimary&&(\"touchend\"===t.type&&0===t.touches.length||(!t.changedTouches||t.changedTouches[0].identifier===this.mainTouchId))}_onTouchStart(t){let e=!this.allowTouchScrolling;const s=this._activeObject;void 0===this.mainTouchId&&(this.mainTouchId=this.getPointerId(t)),this.__onMouseDown(t),(this.isDrawingMode||s&&this._target===s)&&(e=!0),e&&t.preventDefault(),this._resetTransformEventData();const i=this.upperCanvasEl,r=this._getEventPrefix(),n=Kt(i);Rn(n,\"touchend\",this._onTouchEnd,Fn),e&&Rn(n,\"touchmove\",this._onMouseMove,Fn),In(i,\"\".concat(r,\"down\"),this._onMouseDown)}_onMouseDown(t){this.__onMouseDown(t),this._resetTransformEventData();const e=this.upperCanvasEl,s=this._getEventPrefix();In(e,\"\".concat(s,\"move\"),this._onMouseMove,Fn);const i=Kt(e);Rn(i,\"\".concat(s,\"up\"),this._onMouseUp),Rn(i,\"\".concat(s,\"move\"),this._onMouseMove,Fn)}_onTouchEnd(t){if(t.touches.length>0)return;this.__onMouseUp(t),this._resetTransformEventData(),delete this.mainTouchId;const e=this._getEventPrefix(),s=Kt(this.upperCanvasEl);In(s,\"touchend\",this._onTouchEnd,Fn),In(s,\"touchmove\",this._onMouseMove,Fn),this._willAddMouseDown&&clearTimeout(this._willAddMouseDown),this._willAddMouseDown=setTimeout((()=>{Rn(this.upperCanvasEl,\"\".concat(e,\"down\"),this._onMouseDown),this._willAddMouseDown=0}),400)}_onMouseUp(t){this.__onMouseUp(t),this._resetTransformEventData();const e=this.upperCanvasEl,s=this._getEventPrefix();if(this._isMainEvent(t)){const t=Kt(this.upperCanvasEl);In(t,\"\".concat(s,\"up\"),this._onMouseUp),In(t,\"\".concat(s,\"move\"),this._onMouseMove,Fn),Rn(e,\"\".concat(s,\"move\"),this._onMouseMove,Fn)}}_onMouseMove(t){const e=this.getActiveObject();!this.allowTouchScrolling&&(!e||!e.shouldStartDragging(t))&&t.preventDefault&&t.preventDefault(),this.__onMouseMove(t)}_onResize(){this.calcOffset(),this._resetTransformEventData()}_shouldRender(t){const e=this.getActiveObject();return!!e!=!!t||e&&t&&e!==t}__onMouseUp(t){var e;this._cacheTransformEventData(t),this._handleEvent(t,\"up:before\");const s=this._currentTransform,i=this._isClick,r=this._target,{button:n}=t;if(n)return(this.fireMiddleClick&&1===n||this.fireRightClick&&2===n)&&this._handleEvent(t,\"up\"),void this._resetTransformEventData();if(this.isDrawingMode&&this._isCurrentlyDrawing)return void this._onMouseUpInDrawingMode(t);if(!this._isMainEvent(t))return;let o,a,h=!1;if(s&&(this._finalizeCurrentTransform(t),h=s.actionPerformed),!i){const e=r===this._activeObject;this.handleSelection(t),h||(h=this._shouldRender(r)||!e&&r===this._activeObject)}if(r){const e=r.findControl(this.getViewportPoint(t),oe(t)),{key:i,control:n}=e||{};if(a=i,r.selectable&&r!==this._activeObject&&\"up\"===r.activeOn)this.setActiveObject(r,t),h=!0;else if(n){const e=n.getMouseUpHandler(t,r,n);e&&(o=this.getScenePoint(t),e.call(n,t,s,o.x,o.y))}r.isMoving=!1}if(s&&(s.target!==r||s.corner!==a)){const e=s.target&&s.target.controls[s.corner],i=e&&e.getMouseUpHandler(t,s.target,e);o=o||this.getScenePoint(t),i&&i.call(e,t,s,o.x,o.y)}this._setCursorFromEvent(t,r),this._handleEvent(t,\"up\"),this._groupSelector=null,this._currentTransform=null,r&&(r.__corner=void 0),h?this.requestRenderAll():i||null!==(e=this._activeObject)&&void 0!==e&&e.isEditing||this.renderTop()}_basicEventHandler(t,e){const{target:s,subTargets:i=[]}=e;this.fire(t,e),s&&s.fire(t,e);for(let r=0;r<i.length;r++)i[r]!==s&&i[r].fire(t,e);return e}_handleEvent(t,e,i){const r=this._target,n=this.targets||[],o=s(s(s({e:t,target:r,subTargets:n},Ln(this,t)),{},{transform:this._currentTransform},\"up:before\"===e||\"up\"===e?{isClick:this._isClick,currentTarget:this.findTarget(t),currentSubTargets:this.targets}:{}),\"down:before\"===e||\"down\"===e?i:{});this.fire(\"mouse:\".concat(e),o),r&&r.fire(\"mouse\".concat(e),o);for(let t=0;t<n.length;t++)n[t]!==r&&n[t].fire(\"mouse\".concat(e),o)}_onMouseDownInDrawingMode(t){this._isCurrentlyDrawing=!0,this.getActiveObject()&&(this.discardActiveObject(t),this.requestRenderAll());const e=this.getScenePoint(t);this.freeDrawingBrush&&this.freeDrawingBrush.onMouseDown(e,{e:t,pointer:e}),this._handleEvent(t,\"down\",{alreadySelected:!1})}_onMouseMoveInDrawingMode(t){if(this._isCurrentlyDrawing){const e=this.getScenePoint(t);this.freeDrawingBrush&&this.freeDrawingBrush.onMouseMove(e,{e:t,pointer:e})}this.setCursor(this.freeDrawingCursor),this._handleEvent(t,\"move\")}_onMouseUpInDrawingMode(t){const e=this.getScenePoint(t);this.freeDrawingBrush?this._isCurrentlyDrawing=!!this.freeDrawingBrush.onMouseUp({e:t,pointer:e}):this._isCurrentlyDrawing=!1,this._handleEvent(t,\"up\")}__onMouseDown(t){this._isClick=!0,this._cacheTransformEventData(t),this._handleEvent(t,\"down:before\");let e=this._target,s=!!e&&e===this._activeObject;const{button:i}=t;if(i)return(this.fireMiddleClick&&1===i||this.fireRightClick&&2===i)&&this._handleEvent(t,\"down\",{alreadySelected:s}),void this._resetTransformEventData();if(this.isDrawingMode)return void this._onMouseDownInDrawingMode(t);if(!this._isMainEvent(t))return;if(this._currentTransform)return;let r=this._shouldRender(e),n=!1;if(this.handleMultiSelection(t,e)?(e=this._activeObject,n=!0,r=!0):this._shouldClearSelection(t,e)&&this.discardActiveObject(t),this.selection&&(!e||!e.selectable&&!e.isEditing&&e!==this._activeObject)){const e=this.getScenePoint(t);this._groupSelector={x:e.x,y:e.y,deltaY:0,deltaX:0}}if(s=!!e&&e===this._activeObject,e){e.selectable&&\"down\"===e.activeOn&&this.setActiveObject(e,t);const i=e.findControl(this.getViewportPoint(t),oe(t));if(e===this._activeObject&&(i||!n)){this._setupCurrentTransform(t,e,s);const r=i?i.control:void 0,n=this.getScenePoint(t),o=r&&r.getMouseDownHandler(t,e,r);o&&o.call(r,t,this._currentTransform,n.x,n.y)}}r&&(this._objectsToRender=void 0),this._handleEvent(t,\"down\",{alreadySelected:s}),r&&this.requestRenderAll()}_resetTransformEventData(){this._target=this._pointer=this._absolutePointer=void 0}_cacheTransformEventData(t){this._resetTransformEventData(),this._pointer=this.getViewportPoint(t),this._absolutePointer=me(this._pointer,void 0,this.viewportTransform),this._target=this._currentTransform?this._currentTransform.target:this.findTarget(t)}__onMouseMove(t){if(this._isClick=!1,this._cacheTransformEventData(t),this._handleEvent(t,\"move:before\"),this.isDrawingMode)return void this._onMouseMoveInDrawingMode(t);if(!this._isMainEvent(t))return;const e=this._groupSelector;if(e){const s=this.getScenePoint(t);e.deltaX=s.x-e.x,e.deltaY=s.y-e.y,this.renderTop()}else if(this._currentTransform)this._transformObject(t);else{const e=this.findTarget(t);this._setCursorFromEvent(t,e),this._fireOverOutEvents(t,e)}this.textEditingManager.onMouseMove(t),this._handleEvent(t,\"move\"),this._resetTransformEventData()}_fireOverOutEvents(t,e){const s=this._hoveredTarget,i=this._hoveredTargets,r=this.targets,n=Math.max(i.length,r.length);this.fireSyntheticInOutEvents(\"mouse\",{e:t,target:e,oldTarget:s,fireCanvas:!0});for(let o=0;o<n;o++)r[o]===e||i[o]&&i[o]===s||this.fireSyntheticInOutEvents(\"mouse\",{e:t,target:r[o],oldTarget:i[o]});this._hoveredTarget=e,this._hoveredTargets=this.targets.concat()}_fireEnterLeaveEvents(t,e){const i=this._draggedoverTarget,r=this._hoveredTargets,n=this.targets,o=Math.max(r.length,n.length);this.fireSyntheticInOutEvents(\"drag\",s(s({},e),{},{target:t,oldTarget:i,fireCanvas:!0}));for(let t=0;t<o;t++)this.fireSyntheticInOutEvents(\"drag\",s(s({},e),{},{target:n[t],oldTarget:r[t]}));this._draggedoverTarget=t}fireSyntheticInOutEvents(t,e){let{target:r,oldTarget:n,fireCanvas:o,e:a}=e,h=i(e,jn);const{targetIn:c,targetOut:l,canvasIn:u,canvasOut:d}=Bn[t],g=n!==r;if(n&&g){const t=s(s({},h),{},{e:a,target:n,nextTarget:r},Ln(this,a));o&&this.fire(d,t),n.fire(l,t)}if(r&&g){const t=s(s({},h),{},{e:a,target:r,previousTarget:n},Ln(this,a));o&&this.fire(u,t),r.fire(c,t)}}__onMouseWheel(t){this._cacheTransformEventData(t),this._handleEvent(t,\"wheel\"),this._resetTransformEventData()}_transformObject(t){const e=this.getScenePoint(t),s=this._currentTransform,i=s.target,r=i.group?me(e,void 0,i.group.calcTransformMatrix()):e;s.shiftKey=t.shiftKey,s.altKey=!!this.centeredKey&&t[this.centeredKey],this._performTransformAction(t,s,r),s.actionPerformed&&this.requestRenderAll()}_performTransformAction(t,e,s){const{action:i,actionHandler:r,target:n}=e,o=!!r&&r(t,e,s.x,s.y);o&&n.setCoords(),\"drag\"===i&&o&&(e.target.isMoving=!0,this.setCursor(e.target.moveCursor||this.moveCursor)),e.actionPerformed=e.actionPerformed||o}_setCursorFromEvent(t,e){if(!e)return void this.setCursor(this.defaultCursor);let s=e.hoverCursor||this.hoverCursor;const i=Ut(this._activeObject)?this._activeObject:null,r=(!i||e.group!==i)&&e.findControl(this.getViewportPoint(t));if(r){const s=r.control;this.setCursor(s.cursorStyleHandler(t,s,e))}else e.subTargetCheck&&this.targets.concat().reverse().map((t=>{s=t.hoverCursor||s})),this.setCursor(s)}handleMultiSelection(t,e){const s=this._activeObject,i=Ut(s);if(s&&this._isSelectionKeyPressed(t)&&this.selection&&e&&e.selectable&&(s!==e||i)&&(i||!e.isDescendantOf(s)&&!s.isDescendantOf(e))&&!e.onSelect({e:t})&&!s.getActiveControl()){if(i){const i=s.getObjects();if(e===s){const s=this.getViewportPoint(t);if(!(e=this.searchPossibleTargets(i,s)||this.searchPossibleTargets(this._objects,s))||!e.selectable)return!1}e.group===s?(s.remove(e),this._hoveredTarget=e,this._hoveredTargets=[...this.targets],1===s.size()&&this._setActiveObject(s.item(0),t)):(s.multiSelectAdd(e),this._hoveredTarget=s,this._hoveredTargets=[...this.targets]),this._fireSelectionEvents(i,t)}else{s.isEditing&&s.exitEditing();const i=new(tt.getClass(\"ActiveSelection\"))([],{canvas:this});i.multiSelectAdd(s,e),this._hoveredTarget=i,this._setActiveObject(i,t),this._fireSelectionEvents([s],t)}return!0}return!1}handleSelection(t){if(!this.selection||!this._groupSelector)return!1;const{x:e,y:s,deltaX:i,deltaY:r}=this._groupSelector,n=new ot(e,s),o=n.add(new ot(i,r)),a=n.min(o),h=n.max(o).subtract(a),c=this.collectObjects({left:a.x,top:a.y,width:h.x,height:h.y},{includeIntersecting:!this.selectionFullyContained}),l=n.eq(o)?c[0]?[c[0]]:[]:c.length>1?c.filter((e=>!e.onSelect({e:t}))).reverse():c;if(1===l.length)this.setActiveObject(l[0],t);else if(l.length>1){const e=tt.getClass(\"ActiveSelection\");this.setActiveObject(new e(l,{canvas:this}),t)}return this._groupSelector=null,!0}toCanvasElement(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=arguments.length>1?arguments[1]:void 0;const{upper:s}=this.elements;s.ctx=void 0;const i=super.toCanvasElement(t,e);return s.ctx=s.el.getContext(\"2d\"),i}clear(){this.textEditingManager.clear(),super.clear()}destroy(){this.removeListeners(),this.textEditingManager.dispose(),super.destroy()}}const Yn={x1:0,y1:0,x2:0,y2:0},Wn=s(s({},Yn),{},{r1:0,r2:0}),Vn=(t,e)=>isNaN(t)&&\"number\"==typeof e?e:t;function zn(t){return t&&/%$/.test(t)&&Number.isFinite(parseFloat(t))}function Gn(t,e){const s=\"number\"==typeof t?t:\"string\"==typeof t?parseFloat(t)/(zn(t)?100:1):NaN;return Ms(0,Vn(s,e),1)}const Hn=/\\s*;\\s*/,Nn=/\\s*:\\s*/;function Un(t,e){let s,i;const r=t.getAttribute(\"style\");if(r){const t=r.split(Hn);\"\"===t[t.length-1]&&t.pop();for(let e=t.length;e--;){const[r,n]=t[e].split(Nn).map((t=>t.trim()));\"stop-color\"===r?s=n:\"stop-opacity\"===r&&(i=n)}}const n=new Ie(s||t.getAttribute(\"stop-color\")||\"rgb(0,0,0)\");return{offset:Gn(t.getAttribute(\"offset\"),0),color:n.toRgb(),opacity:Vn(parseFloat(i||t.getAttribute(\"stop-opacity\")||\"\"),1)*n.getAlpha()*e}}function qn(t,e){const s=[],i=t.getElementsByTagName(\"stop\"),r=Gn(e,1);for(let t=i.length;t--;)s.push(Un(i[t],r));return s}function Kn(t){return\"linearGradient\"===t.nodeName||\"LINEARGRADIENT\"===t.nodeName?\"linear\":\"radial\"}function Jn(t){return\"userSpaceOnUse\"===t.getAttribute(\"gradientUnits\")?\"pixels\":\"percentage\"}function Qn(t,e){return t.getAttribute(e)}function Zn(t,e){return function(t,e){let s,{width:i,height:r,gradientUnits:n}=e;return Object.entries(t).reduce(((t,e)=>{let[o,a]=e;if(\"Infinity\"===a)s=1;else if(\"-Infinity\"===a)s=0;else{const t=\"string\"==typeof a;s=t?parseFloat(a):a,t&&zn(a)&&(s*=.01,\"pixels\"===n&&(\"x1\"!==o&&\"x2\"!==o&&\"r2\"!==o||(s*=i),\"y1\"!==o&&\"y2\"!==o||(s*=r)))}return t[o]=s,t}),{})}(\"linear\"===Kn(t)?function(t){return{x1:Qn(t,\"x1\")||0,y1:Qn(t,\"y1\")||0,x2:Qn(t,\"x2\")||\"100%\",y2:Qn(t,\"y2\")||0}}(t):function(t){return{x1:Qn(t,\"fx\")||Qn(t,\"cx\")||\"50%\",y1:Qn(t,\"fy\")||Qn(t,\"cy\")||\"50%\",r1:0,x2:Qn(t,\"cx\")||\"50%\",y2:Qn(t,\"cy\")||\"50%\",r2:Qn(t,\"r\")||\"50%\"}}(t),s(s({},e),{},{gradientUnits:Jn(t)}))}class $n{constructor(t){const{type:e=\"linear\",gradientUnits:i=\"pixels\",coords:r={},colorStops:n=[],offsetX:o=0,offsetY:a=0,gradientTransform:h,id:c}=t||{};Object.assign(this,{type:e,gradientUnits:i,coords:s(s({},\"radial\"===e?Wn:Yn),r),colorStops:n,offsetX:o,offsetY:a,gradientTransform:h,id:c?\"\".concat(c,\"_\").concat(ft()):ft()})}addColorStop(t){for(const e in t){const s=new Ie(t[e]);this.colorStops.push({offset:parseFloat(e),color:s.toRgb(),opacity:s.getAlpha()})}return this}toObject(t){return s(s({},Yt(this,t)),{},{type:this.type,coords:s({},this.coords),colorStops:this.colorStops.map((t=>s({},t))),offsetX:this.offsetX,offsetY:this.offsetY,gradientUnits:this.gradientUnits,gradientTransform:this.gradientTransform?[...this.gradientTransform]:void 0})}toSVG(t){let{additionalTransform:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=[],r=this.gradientTransform?this.gradientTransform.concat():T.concat(),n=\"pixels\"===this.gradientUnits?\"userSpaceOnUse\":\"objectBoundingBox\",o=this.colorStops.map((t=>s({},t))).sort(((t,e)=>t.offset-e.offset));let a=-this.offsetX,h=-this.offsetY;var c;\"objectBoundingBox\"===n?(a/=t.width,h/=t.height):(a+=t.width/2,h+=t.height/2),(c=t)&&\"function\"==typeof c._renderPathCommands&&\"percentage\"!==this.gradientUnits&&(a-=t.pathOffset.x,h-=t.pathOffset.y),r[4]-=a,r[5]-=h;const l=['id=\"SVGID_'.concat(this.id,'\"'),'gradientUnits=\"'.concat(n,'\"'),'gradientTransform=\"'.concat(e?e+\" \":\"\").concat(zt(r),'\"'),\"\"].join(\" \");if(\"linear\"===this.type){const{x1:t,y1:e,x2:s,y2:r}=this.coords;i.push(\"<linearGradient \",l,' x1=\"',t,'\" y1=\"',e,'\" x2=\"',s,'\" y2=\"',r,'\">\\n')}else if(\"radial\"===this.type){const{x1:t,y1:e,x2:s,y2:r,r1:n,r2:a}=this.coords,h=n>a;i.push(\"<radialGradient \",l,' cx=\"',h?t:s,'\" cy=\"',h?e:r,'\" r=\"',h?n:a,'\" fx=\"',h?s:t,'\" fy=\"',h?r:e,'\">\\n'),h&&(o.reverse(),o.forEach((t=>{t.offset=1-t.offset})));const c=Math.min(n,a);if(c>0){const t=c/Math.max(n,a);o.forEach((e=>{e.offset+=t*(1-e.offset)}))}}return o.forEach((t=>{let{color:e,offset:s,opacity:r}=t;i.push(\"<stop \",'offset=\"',100*s+\"%\",'\" style=\"stop-color:',e,void 0!==r?\";stop-opacity: \"+r:\";\",'\"/>\\n')})),i.push(\"linear\"===this.type?\"</linearGradient>\":\"</radialGradient>\",\"\\n\"),i.join(\"\")}toLive(t){const{x1:e,y1:s,x2:i,y2:r,r1:n,r2:o}=this.coords,a=\"linear\"===this.type?t.createLinearGradient(e,s,i,r):t.createRadialGradient(e,s,n,i,r,o);return this.colorStops.forEach((t=>{let{color:e,opacity:s,offset:i}=t;a.addColorStop(i,void 0!==s?new Ie(e).setAlpha(s).toRgba():e)})),a}static async fromObject(t){const{colorStops:e,gradientTransform:i}=t;return new this(s(s({},t),{},{colorStops:e?e.map((t=>s({},t))):void 0,gradientTransform:i?[...i]:void 0}))}static fromElement(t,e,i){const r=Jn(t),n=e._findCenterFromElement();return new this(s({id:t.getAttribute(\"id\")||void 0,type:Kn(t),coords:Zn(t,{width:i.viewBoxWidth||i.width,height:i.viewBoxHeight||i.height}),colorStops:qn(t,i.opacity),gradientUnits:r,gradientTransform:wr(t.getAttribute(\"gradientTransform\")||\"\")},\"pixels\"===r?{offsetX:e.width/2-n.x,offsetY:e.height/2-n.y}:{offsetX:0,offsetY:0}))}}t($n,\"type\",\"Gradient\"),tt.setClass($n,\"gradient\"),tt.setClass($n,\"linear\"),tt.setClass($n,\"radial\");const to=[\"type\",\"source\",\"patternTransform\"];class eo{get type(){return\"pattern\"}set type(t){a(\"warn\",\"Setting type has no effect\",t)}constructor(e){t(this,\"repeat\",\"repeat\"),t(this,\"offsetX\",0),t(this,\"offsetY\",0),t(this,\"crossOrigin\",\"\"),this.id=ft(),Object.assign(this,e)}isImageSource(){return!!this.source&&\"string\"==typeof this.source.src}isCanvasSource(){return!!this.source&&!!this.source.toDataURL}sourceToString(){return this.isImageSource()?this.source.src:this.isCanvasSource()?this.source.toDataURL():\"\"}toLive(t){return this.source&&(!this.isImageSource()||this.source.complete&&0!==this.source.naturalWidth&&0!==this.source.naturalHeight)?t.createPattern(this.source,this.repeat):null}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const{repeat:e,crossOrigin:i}=this;return s(s({},Yt(this,t)),{},{type:\"pattern\",source:this.sourceToString(),repeat:e,crossOrigin:i,offsetX:Vt(this.offsetX,o.NUM_FRACTION_DIGITS),offsetY:Vt(this.offsetY,o.NUM_FRACTION_DIGITS),patternTransform:this.patternTransform?[...this.patternTransform]:null})}toSVG(t){let{width:e,height:s}=t;const{source:i,repeat:r,id:n}=this,o=Vn(this.offsetX/e,0),a=Vn(this.offsetY/s,0),h=\"repeat-y\"===r||\"no-repeat\"===r?1+Math.abs(o||0):Vn(i.width/e,0),c=\"repeat-x\"===r||\"no-repeat\"===r?1+Math.abs(a||0):Vn(i.height/s,0);return['<pattern id=\"SVGID_'.concat(n,'\" x=\"').concat(o,'\" y=\"').concat(a,'\" width=\"').concat(h,'\" height=\"').concat(c,'\">'),'<image x=\"0\" y=\"0\" width=\"'.concat(i.width,'\" height=\"').concat(i.height,'\" xlink:href=\"').concat(this.sourceToString(),'\"></image>'),\"</pattern>\",\"\"].join(\"\\n\")}static async fromObject(t,e){let{type:r,source:n,patternTransform:o}=t,a=i(t,to);const h=await It(n,s(s({},e),{},{crossOrigin:a.crossOrigin}));return new this(s(s({},a),{},{patternTransform:o&&o.slice(0),source:h}))}}t(eo,\"type\",\"Pattern\"),tt.setClass(eo),tt.setClass(eo,\"pattern\");class so{constructor(e){t(this,\"color\",\"rgb(0, 0, 0)\"),t(this,\"width\",1),t(this,\"shadow\",null),t(this,\"strokeLineCap\",\"round\"),t(this,\"strokeLineJoin\",\"round\"),t(this,\"strokeMiterLimit\",10),t(this,\"strokeDashArray\",null),t(this,\"limitedToCanvasSize\",!1),this.canvas=e}_setBrushStyles(t){t.strokeStyle=this.color,t.lineWidth=this.width,t.lineCap=this.strokeLineCap,t.miterLimit=this.strokeMiterLimit,t.lineJoin=this.strokeLineJoin,t.setLineDash(this.strokeDashArray||[])}_saveAndTransform(t){const e=this.canvas.viewportTransform;t.save(),t.transform(e[0],e[1],e[2],e[3],e[4],e[5])}needsFullRender(){return new Ie(this.color).getAlpha()<1||!!this.shadow}_setShadow(){if(!this.shadow||!this.canvas)return;const t=this.canvas,e=this.shadow,s=t.contextTop,i=t.getZoom()*t.getRetinaScaling();s.shadowColor=e.color,s.shadowBlur=e.blur*i,s.shadowOffsetX=e.offsetX*i,s.shadowOffsetY=e.offsetY*i}_resetShadow(){const t=this.canvas.contextTop;t.shadowColor=\"\",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0}_isOutSideCanvas(t){return t.x<0||t.x>this.canvas.getWidth()||t.y<0||t.y>this.canvas.getHeight()}}const io=[\"path\",\"left\",\"top\"],ro=[\"d\"];class no extends Li{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{path:s,left:r,top:n}=e,o=i(e,io);super(),Object.assign(this,no.ownDefaults),this.setOptions(o),this._setPath(t||[],!0),\"number\"==typeof r&&this.set(M,r),\"number\"==typeof n&&this.set(P,n)}_setPath(t,e){this.path=nn(Array.isArray(t)?t:bn(t)),this.setBoundingBox(e)}_findCenterFromElement(){const t=this._calcBoundsFromPath();return new ot(t.left+t.width/2,t.top+t.height/2)}_renderPathCommands(t){const e=-this.pathOffset.x,s=-this.pathOffset.y;t.beginPath();for(const i of this.path)switch(i[0]){case\"L\":t.lineTo(i[1]+e,i[2]+s);break;case\"M\":t.moveTo(i[1]+e,i[2]+s);break;case\"C\":t.bezierCurveTo(i[1]+e,i[2]+s,i[3]+e,i[4]+s,i[5]+e,i[6]+s);break;case\"Q\":t.quadraticCurveTo(i[1]+e,i[2]+s,i[3]+e,i[4]+s);break;case\"Z\":t.closePath()}}_render(t){this._renderPathCommands(t),this._renderPaintInOrder(t)}toString(){return\"#<Path (\".concat(this.complexity(),'): { \"top\": ').concat(this.top,', \"left\": ').concat(this.left,\" }>\")}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return s(s({},super.toObject(t)),{},{path:this.path.map((t=>t.slice()))})}toDatalessObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e=this.toObject(t);return this.sourcePath&&(delete e.path,e.sourcePath=this.sourcePath),e}_toSVG(){const t=wn(this.path,o.NUM_FRACTION_DIGITS);return[\"<path \",\"COMMON_PARTS\",'d=\"'.concat(t,'\" stroke-linecap=\"round\" />\\n')]}_getOffsetTransform(){const t=o.NUM_FRACTION_DIGITS;return\" translate(\".concat(Vt(-this.pathOffset.x,t),\", \").concat(Vt(-this.pathOffset.y,t),\")\")}toClipPathSVG(t){const e=this._getOffsetTransform();return\"\\t\"+this._createBaseClipPathSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})}toSVG(t){const e=this._getOffsetTransform();return this._createBaseSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})}complexity(){return this.path.length}setDimensions(){this.setBoundingBox()}setBoundingBox(t){const{width:e,height:s,pathOffset:i}=this._calcDimensions();this.set({width:e,height:s,pathOffset:i}),t&&this.setPositionByOrigin(i,D,D)}_calcBoundsFromPath(){const t=[];let e=0,s=0,i=0,r=0;for(const n of this.path)switch(n[0]){case\"L\":i=n[1],r=n[2],t.push({x:e,y:s},{x:i,y:r});break;case\"M\":i=n[1],r=n[2],e=i,s=r;break;case\"C\":t.push(...sn(i,r,n[1],n[2],n[3],n[4],n[5],n[6])),i=n[5],r=n[6];break;case\"Q\":t.push(...sn(i,r,n[1],n[2],n[1],n[2],n[3],n[4])),i=n[3],r=n[4];break;case\"Z\":i=e,r=s}return he(t)}_calcDimensions(){const t=this._calcBoundsFromPath();return s(s({},t),{},{pathOffset:new ot(t.left+t.width/2,t.top+t.height/2)})}static fromObject(t){return this._fromObject(t,{extraParam:\"path\"})}static async fromElement(t,e,r){const n=Pr(t,this.ATTRIBUTE_NAMES,r),{d:o}=n;return new this(o,s(s(s({},i(n,ro)),e),{},{left:void 0,top:void 0}))}}t(no,\"type\",\"Path\"),t(no,\"cacheProperties\",[...Es,\"path\",\"fillRule\"]),t(no,\"ATTRIBUTE_NAMES\",[...Zi,\"d\"]),tt.setClass(no),tt.setSVGClass(no);class oo extends so{constructor(e){super(e),t(this,\"decimate\",.4),t(this,\"drawStraightLine\",!1),t(this,\"straightLineKey\",\"shiftKey\"),this._points=[],this._hasStraightLine=!1}needsFullRender(){return super.needsFullRender()||this._hasStraightLine}static drawSegment(t,e,s){const i=e.midPointFrom(s);return t.quadraticCurveTo(e.x,e.y,i.x,i.y),i}onMouseDown(t,e){let{e:s}=e;this.canvas._isMainEvent(s)&&(this.drawStraightLine=!!this.straightLineKey&&s[this.straightLineKey],this._prepareForDrawing(t),this._addPoint(t),this._render())}onMouseMove(t,e){let{e:s}=e;if(this.canvas._isMainEvent(s)&&(this.drawStraightLine=!!this.straightLineKey&&s[this.straightLineKey],(!0!==this.limitedToCanvasSize||!this._isOutSideCanvas(t))&&this._addPoint(t)&&this._points.length>1))if(this.needsFullRender())this.canvas.clearContext(this.canvas.contextTop),this._render();else{const t=this._points,e=t.length,s=this.canvas.contextTop;this._saveAndTransform(s),this.oldEnd&&(s.beginPath(),s.moveTo(this.oldEnd.x,this.oldEnd.y)),this.oldEnd=oo.drawSegment(s,t[e-2],t[e-1]),s.stroke(),s.restore()}}onMouseUp(t){let{e:e}=t;return!this.canvas._isMainEvent(e)||(this.drawStraightLine=!1,this.oldEnd=void 0,this._finalizeAndAddPath(),!1)}_prepareForDrawing(t){this._reset(),this._addPoint(t),this.canvas.contextTop.moveTo(t.x,t.y)}_addPoint(t){return!(this._points.length>1&&t.eq(this._points[this._points.length-1]))&&(this.drawStraightLine&&this._points.length>1&&(this._hasStraightLine=!0,this._points.pop()),this._points.push(t),!0)}_reset(){this._points=[],this._setBrushStyles(this.canvas.contextTop),this._setShadow(),this._hasStraightLine=!1}_render(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.canvas.contextTop,e=this._points[0],s=this._points[1];if(this._saveAndTransform(t),t.beginPath(),2===this._points.length&&e.x===s.x&&e.y===s.y){const t=this.width/1e3;e.x-=t,s.x+=t}t.moveTo(e.x,e.y);for(let i=1;i<this._points.length;i++)oo.drawSegment(t,e,s),e=this._points[i],s=this._points[i+1];t.lineTo(e.x,e.y),t.stroke(),t.restore()}convertPointsToSVGPath(t){const e=this.width/1e3;return Sn(t,e)}createPath(t){const e=new no(t,{fill:null,stroke:this.color,strokeWidth:this.width,strokeLineCap:this.strokeLineCap,strokeMiterLimit:this.strokeMiterLimit,strokeLineJoin:this.strokeLineJoin,strokeDashArray:this.strokeDashArray});return this.shadow&&(this.shadow.affectStroke=!0,e.shadow=new Ds(this.shadow)),e}decimatePoints(t,e){if(t.length<=2)return t;let s,i=t[0];const r=this.canvas.getZoom(),n=Math.pow(e/r,2),o=t.length-1,a=[i];for(let e=1;e<o-1;e++)s=Math.pow(i.x-t[e].x,2)+Math.pow(i.y-t[e].y,2),s>=n&&(i=t[e],a.push(i));return a.push(t[o]),a}_finalizeAndAddPath(){this.canvas.contextTop.closePath(),this.decimate&&(this._points=this.decimatePoints(this._points,this.decimate));const t=this.convertPointsToSVGPath(this._points);if(function(t){return\"M 0 0 Q 0 0 0 0 L 0 0\"===wn(t)}(t))return void this.canvas.requestRenderAll();const e=this.createPath(t);this.canvas.clearContext(this.canvas.contextTop),this.canvas.fire(\"before:path:created\",{path:e}),this.canvas.add(e),this.canvas.requestRenderAll(),e.setCoords(),this._resetShadow(),this.canvas.fire(\"path:created\",{path:e})}}const ao=[\"left\",\"top\",\"radius\"],ho=[\"radius\",\"startAngle\",\"endAngle\",\"counterClockwise\"];class co extends Li{static getDefaults(){return s(s({},super.getDefaults()),co.ownDefaults)}constructor(t){super(),Object.assign(this,co.ownDefaults),this.setOptions(t)}_set(t,e){return super._set(t,e),\"radius\"===t&&this.setRadius(e),this}_render(t){t.beginPath(),t.arc(0,0,this.radius,xt(this.startAngle),xt(this.endAngle),this.counterClockwise),this._renderPaintInOrder(t)}getRadiusX(){return this.get(\"radius\")*this.get(H)}getRadiusY(){return this.get(\"radius\")*this.get(N)}setRadius(t){this.radius=t,this.set({width:2*t,height:2*t})}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return super.toObject([...ho,...t])}_toSVG(){const t=(this.endAngle-this.startAngle)%360;if(0===t)return[\"<circle \",\"COMMON_PARTS\",'cx=\"0\" cy=\"0\" ','r=\"',\"\".concat(this.radius),'\" />\\n'];{const{radius:e}=this,s=xt(this.startAngle),i=xt(this.endAngle),r=rt(s)*e,n=nt(s)*e,o=rt(i)*e,a=nt(i)*e,h=t>180?1:0,c=this.counterClockwise?0:1;return['<path d=\"M '.concat(r,\" \").concat(n,\" A \").concat(e,\" \").concat(e,\" 0 \").concat(h,\" \").concat(c,\" \").concat(o,\" \").concat(a,'\" '),\"COMMON_PARTS\",\" />\\n\"]}}static async fromElement(t,e,r){const n=Pr(t,this.ATTRIBUTE_NAMES,r),{left:o=0,top:a=0,radius:h=0}=n;return new this(s(s({},i(n,ao)),{},{radius:h,left:o-h,top:a-h}))}static fromObject(t){return super._fromObject(t)}}t(co,\"type\",\"Circle\"),t(co,\"cacheProperties\",[...Es,...ho]),t(co,\"ownDefaults\",{radius:0,startAngle:0,endAngle:360,counterClockwise:!1}),t(co,\"ATTRIBUTE_NAMES\",[\"cx\",\"cy\",\"r\",...Zi]),tt.setClass(co),tt.setSVGClass(co);class lo extends so{constructor(e){super(e),t(this,\"width\",10),this.points=[]}drawDot(t){const e=this.addPoint(t),s=this.canvas.contextTop;this._saveAndTransform(s),this.dot(s,e),s.restore()}dot(t,e){t.fillStyle=e.fill,t.beginPath(),t.arc(e.x,e.y,e.radius,0,2*Math.PI,!1),t.closePath(),t.fill()}onMouseDown(t){this.points=[],this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.drawDot(t)}_render(){const t=this.canvas.contextTop,e=this.points;this._saveAndTransform(t);for(let s=0;s<e.length;s++)this.dot(t,e[s]);t.restore()}onMouseMove(t){!0===this.limitedToCanvasSize&&this._isOutSideCanvas(t)||(this.needsFullRender()?(this.canvas.clearContext(this.canvas.contextTop),this.addPoint(t),this._render()):this.drawDot(t))}onMouseUp(){const t=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;const e=[];for(let t=0;t<this.points.length;t++){const s=this.points[t],i=new co({radius:s.radius,left:s.x,top:s.y,originX:D,originY:D,fill:s.fill});this.shadow&&(i.shadow=new Ds(this.shadow)),e.push(i)}const s=new Ur(e,{canvas:this.canvas});this.canvas.fire(\"before:path:created\",{path:s}),this.canvas.add(s),this.canvas.fire(\"path:created\",{path:s}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=t,this.canvas.requestRenderAll()}addPoint(t){let{x:e,y:s}=t;const i={x:e,y:s,radius:On(Math.max(0,this.width-20),this.width+20)/2,fill:new Ie(this.color).setAlpha(On(0,100)/100).toRgba()};return this.points.push(i),i}}class uo extends so{constructor(e){super(e),t(this,\"width\",10),t(this,\"density\",20),t(this,\"dotWidth\",1),t(this,\"dotWidthVariance\",1),t(this,\"randomOpacity\",!1),t(this,\"optimizeOverlapping\",!0),this.sprayChunks=[],this.sprayChunk=[]}onMouseDown(t){this.sprayChunks=[],this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.addSprayChunk(t),this.renderChunck(this.sprayChunk)}onMouseMove(t){!0===this.limitedToCanvasSize&&this._isOutSideCanvas(t)||(this.addSprayChunk(t),this.renderChunck(this.sprayChunk))}onMouseUp(){const t=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;const e=[];for(let t=0;t<this.sprayChunks.length;t++){const s=this.sprayChunks[t];for(let t=0;t<s.length;t++){const i=s[t],r=new jr({width:i.width,height:i.width,left:i.x+1,top:i.y+1,originX:D,originY:D,fill:this.color});e.push(r)}}const s=new Ur(this.optimizeOverlapping?function(t){const e={},s=[];for(let i,r=0;r<t.length;r++)i=\"\".concat(t[r].left).concat(t[r].top),e[i]||(e[i]=!0,s.push(t[r]));return s}(e):e,{objectCaching:!0,subTargetCheck:!1,interactive:!1});this.shadow&&s.set(\"shadow\",new Ds(this.shadow)),this.canvas.fire(\"before:path:created\",{path:s}),this.canvas.add(s),this.canvas.fire(\"path:created\",{path:s}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=t,this.canvas.requestRenderAll()}renderChunck(t){const e=this.canvas.contextTop;e.fillStyle=this.color,this._saveAndTransform(e);for(let s=0;s<t.length;s++){const i=t[s];e.globalAlpha=i.opacity,e.fillRect(i.x,i.y,i.width,i.width)}e.restore()}_render(){const t=this.canvas.contextTop;t.fillStyle=this.color,this._saveAndTransform(t);for(let t=0;t<this.sprayChunks.length;t++)this.renderChunck(this.sprayChunks[t]);t.restore()}addSprayChunk(t){this.sprayChunk=[];const e=this.width/2;for(let s=0;s<this.density;s++)this.sprayChunk.push({x:On(t.x-e,t.x+e),y:On(t.y-e,t.y+e),width:this.dotWidthVariance?On(Math.max(1,this.dotWidth-this.dotWidthVariance),this.dotWidth+this.dotWidthVariance):this.dotWidth,opacity:this.randomOpacity?On(0,100)/100:1});this.sprayChunks.push(this.sprayChunk)}}class go extends oo{constructor(t){super(t)}getPatternSrc(){const t=pt(),e=t.getContext(\"2d\");return t.width=t.height=25,e&&(e.fillStyle=this.color,e.beginPath(),e.arc(10,10,10,0,2*Math.PI,!1),e.closePath(),e.fill()),t}getPattern(t){return t.createPattern(this.source||this.getPatternSrc(),\"repeat\")}_setBrushStyles(t){super._setBrushStyles(t);const e=this.getPattern(t);e&&(t.strokeStyle=e)}createPath(t){const e=super.createPath(t),s=e._getLeftTopCoords().scalarAdd(e.strokeWidth/2);return e.stroke=new eo({source:this.source||this.getPatternSrc(),offsetX:-s.x,offsetY:-s.y}),e}}const fo=[\"x1\",\"y1\",\"x2\",\"y2\"],po=[\"x1\",\"y1\",\"x2\",\"y2\"],mo=[\"x1\",\"x2\",\"y1\",\"y2\"];class vo extends Li{constructor(){let[t,e,s,i]=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[0,0,0,0],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),Object.assign(this,vo.ownDefaults),this.setOptions(r),this.x1=t,this.x2=s,this.y1=e,this.y2=i,this._setWidthHeight();const{left:n,top:o}=r;\"number\"==typeof n&&this.set(M,n),\"number\"==typeof o&&this.set(P,o)}_setWidthHeight(){const{x1:t,y1:e,x2:s,y2:i}=this;this.width=Math.abs(s-t),this.height=Math.abs(i-e);const{left:r,top:n,width:o,height:a}=he([{x:t,y:e},{x:s,y:i}]),h=new ot(r+o/2,n+a/2);this.setPositionByOrigin(h,D,D)}_set(t,e){return super._set(t,e),mo.includes(t)&&this._setWidthHeight(),this}_render(t){t.beginPath();const e=this.calcLinePoints();t.moveTo(e.x1,e.y1),t.lineTo(e.x2,e.y2),t.lineWidth=this.strokeWidth;const s=t.strokeStyle;var i;Gt(this.stroke)?t.strokeStyle=this.stroke.toLive(t):t.strokeStyle=null!==(i=this.stroke)&&void 0!==i?i:t.fillStyle;this.stroke&&this._renderStroke(t),t.strokeStyle=s}_findCenterFromElement(){return new ot((this.x1+this.x2)/2,(this.y1+this.y2)/2)}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return s(s({},super.toObject(t)),this.calcLinePoints())}_getNonTransformedDimensions(){const t=super._getNonTransformedDimensions();return\"butt\"===this.strokeLineCap&&(0===this.width&&(t.y-=this.strokeWidth),0===this.height&&(t.x-=this.strokeWidth)),t}calcLinePoints(){const{x1:t,x2:e,y1:s,y2:i,width:r,height:n}=this,o=t<=e?-1:1,a=s<=i?-1:1;return{x1:o*r/2,x2:o*-r/2,y1:a*n/2,y2:a*-n/2}}_toSVG(){const{x1:t,x2:e,y1:s,y2:i}=this.calcLinePoints();return[\"<line \",\"COMMON_PARTS\",'x1=\"'.concat(t,'\" y1=\"').concat(s,'\" x2=\"').concat(e,'\" y2=\"').concat(i,'\" />\\n')]}static async fromElement(t,e,s){const r=Pr(t,this.ATTRIBUTE_NAMES,s),{x1:n=0,y1:o=0,x2:a=0,y2:h=0}=r;return new this([n,o,a,h],i(r,fo))}static fromObject(t){let{x1:e,y1:r,x2:n,y2:o}=t,a=i(t,po);return this._fromObject(s(s({},a),{},{points:[e,r,n,o]}),{extraParam:\"points\"})}}t(vo,\"type\",\"Line\"),t(vo,\"cacheProperties\",[...Es,...mo]),t(vo,\"ATTRIBUTE_NAMES\",Zi.concat(mo)),tt.setClass(vo),tt.setSVGClass(vo);class yo extends Li{static getDefaults(){return s(s({},super.getDefaults()),yo.ownDefaults)}constructor(t){super(),Object.assign(this,yo.ownDefaults),this.setOptions(t)}_render(t){const e=this.width/2,s=this.height/2;t.beginPath(),t.moveTo(-e,s),t.lineTo(0,-s),t.lineTo(e,s),t.closePath(),this._renderPaintInOrder(t)}_toSVG(){const t=this.width/2,e=this.height/2;return[\"<polygon \",\"COMMON_PARTS\",'points=\"',\"\".concat(-t,\" \").concat(e,\",0 \").concat(-e,\",\").concat(t,\" \").concat(e),'\" />']}}t(yo,\"type\",\"Triangle\"),t(yo,\"ownDefaults\",{width:100,height:100}),tt.setClass(yo),tt.setSVGClass(yo);const _o=[\"rx\",\"ry\"];class xo extends Li{static getDefaults(){return s(s({},super.getDefaults()),xo.ownDefaults)}constructor(t){super(),Object.assign(this,xo.ownDefaults),this.setOptions(t)}_set(t,e){switch(super._set(t,e),t){case\"rx\":this.rx=e,this.set(\"width\",2*e);break;case\"ry\":this.ry=e,this.set(\"height\",2*e)}return this}getRx(){return this.get(\"rx\")*this.get(H)}getRy(){return this.get(\"ry\")*this.get(N)}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return super.toObject([..._o,...t])}_toSVG(){return[\"<ellipse \",\"COMMON_PARTS\",'cx=\"0\" cy=\"0\" rx=\"'.concat(this.rx,'\" ry=\"').concat(this.ry,'\" />\\n')]}_render(t){t.beginPath(),t.save(),t.transform(1,0,0,this.ry/this.rx,0,0),t.arc(0,0,this.rx,0,S,!1),t.restore(),this._renderPaintInOrder(t)}static async fromElement(t,e,s){const i=Pr(t,this.ATTRIBUTE_NAMES,s);return i.left=(i.left||0)-i.rx,i.top=(i.top||0)-i.ry,new this(i)}}function Co(t){if(!t)return[];const e=t.replace(/,/g,\" \").trim().split(/\\s+/),s=[];for(let t=0;t<e.length;t+=2)s.push({x:parseFloat(e[t]),y:parseFloat(e[t+1])});return s}t(xo,\"type\",\"Ellipse\"),t(xo,\"cacheProperties\",[...Es,..._o]),t(xo,\"ownDefaults\",{rx:0,ry:0}),t(xo,\"ATTRIBUTE_NAMES\",[...Zi,\"cx\",\"cy\",\"rx\",\"ry\"]),tt.setClass(xo),tt.setSVGClass(xo);const bo=[\"left\",\"top\"],So={exactBoundingBox:!1};class wo extends Li{static getDefaults(){return s(s({},super.getDefaults()),wo.ownDefaults)}constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),t(this,\"strokeDiff\",void 0),Object.assign(this,wo.ownDefaults),this.setOptions(s),this.points=e;const{left:i,top:r}=s;this.initialized=!0,this.setBoundingBox(!0),\"number\"==typeof i&&this.set(M,i),\"number\"==typeof r&&this.set(P,r)}isOpen(){return!0}_projectStrokeOnPoints(t){return Wi(this.points,t,this.isOpen())}_calcDimensions(t){t=s({scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,strokeLineCap:this.strokeLineCap,strokeLineJoin:this.strokeLineJoin,strokeMiterLimit:this.strokeMiterLimit,strokeUniform:this.strokeUniform,strokeWidth:this.strokeWidth},t||{});const e=this.exactBoundingBox?this._projectStrokeOnPoints(t).map((t=>t.projectedPoint)):this.points;if(0===e.length)return{left:0,top:0,width:0,height:0,pathOffset:new ot,strokeOffset:new ot,strokeDiff:new ot};const i=he(e),r=Lt(s(s({},t),{},{scaleX:1,scaleY:1})),n=he(this.points.map((t=>St(t,r,!0)))),o=new ot(this.scaleX,this.scaleY);let a=i.left+i.width/2,h=i.top+i.height/2;return this.exactBoundingBox&&(a-=h*Math.tan(xt(this.skewX)),h-=a*Math.tan(xt(this.skewY))),s(s({},i),{},{pathOffset:new ot(a,h),strokeOffset:new ot(n.left,n.top).subtract(new ot(i.left,i.top)).multiply(o),strokeDiff:new ot(i.width,i.height).subtract(new ot(n.width,n.height)).multiply(o)})}_findCenterFromElement(){const t=he(this.points);return new ot(t.left+t.width/2,t.top+t.height/2)}setDimensions(){this.setBoundingBox()}setBoundingBox(t){const{left:e,top:s,width:i,height:r,pathOffset:n,strokeOffset:o,strokeDiff:a}=this._calcDimensions();this.set({width:i,height:r,pathOffset:n,strokeOffset:o,strokeDiff:a}),t&&this.setPositionByOrigin(new ot(e+i/2,s+r/2),D,D)}isStrokeAccountedForInDimensions(){return this.exactBoundingBox}_getNonTransformedDimensions(){return this.exactBoundingBox?new ot(this.width,this.height):super._getNonTransformedDimensions()}_getTransformedDimensions(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.exactBoundingBox){let n;if(Object.keys(t).some((t=>this.strokeUniform||this.constructor.layoutProperties.includes(t)))){var e,s;const{width:i,height:r}=this._calcDimensions(t);n=new ot(null!==(e=t.width)&&void 0!==e?e:i,null!==(s=t.height)&&void 0!==s?s:r)}else{var i,r;n=new ot(null!==(i=t.width)&&void 0!==i?i:this.width,null!==(r=t.height)&&void 0!==r?r:this.height)}return n.multiply(new ot(t.scaleX||this.scaleX,t.scaleY||this.scaleY))}return super._getTransformedDimensions(t)}_set(t,e){const s=this.initialized&&this[t]!==e,i=super._set(t,e);return this.exactBoundingBox&&s&&((t===H||t===N)&&this.strokeUniform&&this.constructor.layoutProperties.includes(\"strokeUniform\")||this.constructor.layoutProperties.includes(t))&&this.setDimensions(),i}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return s(s({},super.toObject(t)),{},{points:this.points.map((t=>{let{x:e,y:s}=t;return{x:e,y:s}}))})}_toSVG(){const t=[],e=this.pathOffset.x,s=this.pathOffset.y,i=o.NUM_FRACTION_DIGITS;for(let r=0,n=this.points.length;r<n;r++)t.push(Vt(this.points[r].x-e,i),\",\",Vt(this.points[r].y-s,i),\" \");return[\"<\".concat(this.constructor.type.toLowerCase(),\" \"),\"COMMON_PARTS\",'points=\"'.concat(t.join(\"\"),'\" />\\n')]}_render(t){const e=this.points.length,s=this.pathOffset.x,i=this.pathOffset.y;if(e&&!isNaN(this.points[e-1].y)){t.beginPath(),t.moveTo(this.points[0].x-s,this.points[0].y-i);for(let r=0;r<e;r++){const e=this.points[r];t.lineTo(e.x-s,e.y-i)}!this.isOpen()&&t.closePath(),this._renderPaintInOrder(t)}}complexity(){return this.points.length}static async fromElement(t,e,r){return new this(Co(t.getAttribute(\"points\")),s(s({},i(Pr(t,this.ATTRIBUTE_NAMES,r),bo)),e))}static fromObject(t){return this._fromObject(t,{extraParam:\"points\"})}}t(wo,\"ownDefaults\",So),t(wo,\"type\",\"Polyline\"),t(wo,\"layoutProperties\",[U,q,\"strokeLineCap\",\"strokeLineJoin\",\"strokeMiterLimit\",\"strokeWidth\",\"strokeUniform\",\"points\"]),t(wo,\"cacheProperties\",[...Es,\"points\"]),t(wo,\"ATTRIBUTE_NAMES\",[...Zi]),tt.setClass(wo),tt.setSVGClass(wo);class To extends wo{isOpen(){return!1}}t(To,\"ownDefaults\",So),t(To,\"type\",\"Polygon\"),tt.setClass(To),tt.setSVGClass(To);class Oo extends Li{isEmptyStyles(t){if(!this.styles)return!0;if(void 0!==t&&!this.styles[t])return!0;const e=void 0===t?this.styles:{line:this.styles[t]};for(const t in e)for(const s in e[t])for(const i in e[t][s])return!1;return!0}styleHas(t,e){if(!this.styles)return!1;if(void 0!==e&&!this.styles[e])return!1;const s=void 0===e?this.styles:{0:this.styles[e]};for(const e in s)for(const i in s[e])if(void 0!==s[e][i][t])return!0;return!1}cleanStyle(t){if(!this.styles)return!1;const e=this.styles;let s,i,r=0,n=!0,o=0;for(const o in e){s=0;for(const a in e[o]){const h=e[o][a]||{};r++,void 0!==h[t]?(i?h[t]!==i&&(n=!1):i=h[t],h[t]===this[t]&&delete h[t]):n=!1,0!==Object.keys(h).length?s++:delete e[o][a]}0===s&&delete e[o]}for(let t=0;t<this._textLines.length;t++)o+=this._textLines[t].length;n&&r===o&&(this[t]=i,this.removeStyle(t))}removeStyle(t){if(!this.styles)return;const e=this.styles;let s,i,r;for(i in e){for(r in s=e[i],s)delete s[r][t],0===Object.keys(s[r]).length&&delete s[r];0===Object.keys(s).length&&delete e[i]}}_extendStyles(t,e){const{lineIndex:i,charIndex:r}=this.get2DCursorLocation(t);this._getLineStyle(i)||this._setLineStyle(i);const n=Wt(s(s({},this._getStyleDeclaration(i,r)),e),(t=>void 0!==t));this._setStyleDeclaration(i,r,n)}getSelectionStyles(t,e,s){const i=[];for(let r=t;r<(e||t);r++)i.push(this.getStyleAtPosition(r,s));return i}getStyleAtPosition(t,e){const{lineIndex:s,charIndex:i}=this.get2DCursorLocation(t);return e?this.getCompleteStyleDeclaration(s,i):this._getStyleDeclaration(s,i)}setSelectionStyles(t,e,s){for(let i=e;i<(s||e);i++)this._extendStyles(i,t);this._forceClearCache=!0}_getStyleDeclaration(t,e){var s;const i=this.styles&&this.styles[t];return i&&null!==(s=i[e])&&void 0!==s?s:{}}getCompleteStyleDeclaration(t,e){return s(s({},Yt(this,this.constructor._styleProperties)),this._getStyleDeclaration(t,e))}_setStyleDeclaration(t,e,s){this.styles[t][e]=s}_deleteStyleDeclaration(t,e){delete this.styles[t][e]}_getLineStyle(t){return!!this.styles[t]}_setLineStyle(t){this.styles[t]={}}_deleteLineStyle(t){delete this.styles[t]}}t(Oo,\"_styleProperties\",qe);const ko=/ +/g,Do=/\"/g;function Mo(t,e,s,i,r){return\"\\t\\t\".concat(function(t,e){let{left:s,top:i,width:r,height:n}=e,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o.NUM_FRACTION_DIGITS;const h=Ye(K,t,!1),[c,l,u,d]=[s,i,r,n].map((t=>Vt(t,a)));return\"<rect \".concat(h,' x=\"').concat(c,'\" y=\"').concat(l,'\" width=\"').concat(u,'\" height=\"').concat(d,'\"></rect>')}(t,{left:e,top:s,width:i,height:r}),\"\\n\")}const Po=[\"textAnchor\",\"textDecoration\",\"dx\",\"dy\",\"top\",\"left\",\"fontSize\",\"strokeWidth\"];let Eo;class Ao extends Oo{static getDefaults(){return s(s({},super.getDefaults()),Ao.ownDefaults)}constructor(e,s){super(),t(this,\"__charBounds\",[]),Object.assign(this,Ao.ownDefaults),this.setOptions(s),this.styles||(this.styles={}),this.text=e,this.initialized=!0,this.path&&this.setPathInfo(),this.initDimensions(),this.setCoords()}setPathInfo(){const t=this.path;t&&(t.segmentsInfo=mn(t.path))}_splitText(){const t=this._splitTextIntoLines(this.text);return this.textLines=t.lines,this._textLines=t.graphemeLines,this._unwrappedTextLines=t._unwrappedLines,this._text=t.graphemeText,t}initDimensions(){this._splitText(),this._clearCache(),this.dirty=!0,this.path?(this.width=this.path.width,this.height=this.path.height):(this.width=this.calcTextWidth()||this.cursorWidth||this.MIN_TEXT_WIDTH,this.height=this.calcTextHeight()),this.textAlign.includes(Je)&&this.enlargeSpaces()}enlargeSpaces(){let t,e,s,i,r,n,o;for(let a=0,h=this._textLines.length;a<h;a++)if((this.textAlign===Je||a!==h-1&&!this.isEndOfWrapping(a))&&(i=0,r=this._textLines[a],e=this.getLineWidth(a),e<this.width&&(o=this.textLines[a].match(this._reSpacesAndTabs)))){s=o.length,t=(this.width-e)/s;for(let e=0;e<=r.length;e++)n=this.__charBounds[a][e],this._reSpaceAndTab.test(r[e])?(n.width+=t,n.kernedWidth+=t,n.left+=i,i+=t):n.left+=i}}isEndOfWrapping(t){return t===this._textLines.length-1}missingNewlineOffset(t){return 1}get2DCursorLocation(t,e){const s=e?this._unwrappedTextLines:this._textLines;let i;for(i=0;i<s.length;i++){if(t<=s[i].length)return{lineIndex:i,charIndex:t};t-=s[i].length+this.missingNewlineOffset(i,e)}return{lineIndex:i-1,charIndex:s[i-1].length<t?s[i-1].length:t}}toString(){return\"#<Text (\".concat(this.complexity(),'): { \"text\": \"').concat(this.text,'\", \"fontFamily\": \"').concat(this.fontFamily,'\" }>')}_getCacheCanvasDimensions(){const t=super._getCacheCanvasDimensions(),e=this.fontSize;return t.width+=e*t.zoomX,t.height+=e*t.zoomY,t}_render(t){const e=this.path;e&&!e.isNotVisible()&&e._render(t),this._setTextStyles(t),this._renderTextLinesBackground(t),this._renderTextDecoration(t,\"underline\"),this._renderText(t),this._renderTextDecoration(t,\"overline\"),this._renderTextDecoration(t,\"linethrough\")}_renderText(t){this.paintFirst===J?(this._renderTextStroke(t),this._renderTextFill(t)):(this._renderTextFill(t),this._renderTextStroke(t))}_setTextStyles(t,e,s){if(t.textBaseline=\"alphabetic\",this.path)switch(this.pathAlign){case D:t.textBaseline=\"middle\";break;case\"ascender\":t.textBaseline=P;break;case\"descender\":t.textBaseline=E}t.font=this._getFontDeclaration(e,s)}calcTextWidth(){let t=this.getLineWidth(0);for(let e=1,s=this._textLines.length;e<s;e++){const s=this.getLineWidth(e);s>t&&(t=s)}return t}_renderTextLine(t,e,s,i,r,n){this._renderChars(t,e,s,i,r,n)}_renderTextLinesBackground(t){if(!this.textBackgroundColor&&!this.styleHas(\"textBackgroundColor\"))return;const e=t.fillStyle,s=this._getLeftOffset();let i=this._getTopOffset();for(let e=0,r=this._textLines.length;e<r;e++){const r=this.getHeightOfLine(e);if(!this.textBackgroundColor&&!this.styleHas(\"textBackgroundColor\",e)){i+=r;continue}const n=this._textLines[e].length,o=this._getLineLeftOffset(e);let a,h,c=0,l=0,u=this.getValueOfPropertyAt(e,0,\"textBackgroundColor\");const d=this.getHeightOfLineImpl(e);for(let r=0;r<n;r++){const n=this.__charBounds[e][r];h=this.getValueOfPropertyAt(e,r,\"textBackgroundColor\"),this.path?(t.save(),t.translate(n.renderLeft,n.renderTop),t.rotate(n.angle),t.fillStyle=h,h&&t.fillRect(-n.width/2,-d*(1-this._fontSizeFraction),n.width,d),t.restore()):h!==u?(a=s+o+l,\"rtl\"===this.direction&&(a=this.width-a-c),t.fillStyle=u,u&&t.fillRect(a,i,c,d),l=n.left,c=n.width,u=h):c+=n.kernedWidth}h&&!this.path&&(a=s+o+l,\"rtl\"===this.direction&&(a=this.width-a-c),t.fillStyle=h,t.fillRect(a,i,c,d)),i+=r}t.fillStyle=e,this._removeShadow(t)}_measureChar(t,e,s,i){const r=_.getFontCache(e),n=this._getFontDeclaration(e),o=s?s+t:t,a=s&&n===this._getFontDeclaration(i),h=e.fontSize/this.CACHE_FONT_SIZE;let c,l,u,d;if(s&&r.has(s)&&(u=r.get(s)),r.has(t)&&(d=c=r.get(t)),a&&r.has(o)&&(l=r.get(o),d=l-u),void 0===c||void 0===u||void 0===l){const i=function(){if(!Eo){const t=vt({width:0,height:0});Eo=t.getContext(\"2d\")}return Eo}();this._setTextStyles(i,e,!0),void 0===c&&(d=c=i.measureText(t).width,r.set(t,c)),void 0===u&&a&&s&&(u=i.measureText(s).width,r.set(s,u)),a&&void 0===l&&(l=i.measureText(o).width,r.set(o,l),d=l-u)}return{width:c*h,kernedWidth:d*h}}getHeightOfChar(t,e){return this.getValueOfPropertyAt(t,e,\"fontSize\")}measureLine(t){const e=this._measureLine(t);return 0!==this.charSpacing&&(e.width-=this._getWidthOfCharSpacing()),e.width<0&&(e.width=0),e}_measureLine(t){let e,s,i=0;const r=this.pathSide===A,n=this.path,o=this._textLines[t],a=o.length,h=new Array(a);this.__charBounds[t]=h;for(let r=0;r<a;r++){const n=o[r];s=this._getGraphemeBox(n,t,r,e),h[r]=s,i+=s.kernedWidth,e=n}if(h[a]={left:s?s.left+s.width:0,width:0,kernedWidth:0,height:this.fontSize,deltaY:0},n&&n.segmentsInfo){let t=0;const e=n.segmentsInfo[n.segmentsInfo.length-1].length;switch(this.textAlign){case M:t=r?e-i:0;break;case D:t=(e-i)/2;break;case A:t=r?0:e-i}t+=this.pathStartOffset*(r?-1:1);for(let i=r?a-1:0;r?i>=0:i<a;r?i--:i++)s=h[i],t>e?t%=e:t<0&&(t+=e),this._setGraphemeOnPath(t,s),t+=s.kernedWidth}return{width:i,numOfSpaces:0}}_setGraphemeOnPath(t,e){const s=t+e.kernedWidth/2,i=this.path,r=vn(i.path,s,i.segmentsInfo);e.renderLeft=r.x-i.pathOffset.x,e.renderTop=r.y-i.pathOffset.y,e.angle=r.angle+(this.pathSide===A?Math.PI:0)}_getGraphemeBox(t,e,s,i,r){const n=this.getCompleteStyleDeclaration(e,s),o=i?this.getCompleteStyleDeclaration(e,s-1):{},a=this._measureChar(t,n,i,o);let h,c=a.kernedWidth,l=a.width;0!==this.charSpacing&&(h=this._getWidthOfCharSpacing(),l+=h,c+=h);const u={width:l,left:0,height:n.fontSize,kernedWidth:c,deltaY:n.deltaY};if(s>0&&!r){const t=this.__charBounds[e][s-1];u.left=t.left+t.width+a.kernedWidth-a.width}return u}getHeightOfLineImpl(t){const e=this.__lineHeights;if(e[t])return e[t];let s=this.getHeightOfChar(t,0);for(let e=1,i=this._textLines[t].length;e<i;e++)s=Math.max(this.getHeightOfChar(t,e),s);return e[t]=s*this._fontSizeMult}getHeightOfLine(t){return this.getHeightOfLineImpl(t)*this.lineHeight}calcTextHeight(){let t=0;for(let e=0,s=this._textLines.length;e<s;e++)t+=e===s-1?this.getHeightOfLineImpl(e):this.getHeightOfLine(e);return t}_getLeftOffset(){return\"ltr\"===this.direction?-this.width/2:this.width/2}_getTopOffset(){return-this.height/2}_renderTextCommon(t,e){t.save();let s=0;const i=this._getLeftOffset(),r=this._getTopOffset();for(let n=0,o=this._textLines.length;n<o;n++)this._renderTextLine(e,t,this._textLines[n],i+this._getLineLeftOffset(n),r+s+this.getHeightOfLineImpl(n),n),s+=this.getHeightOfLine(n);t.restore()}_renderTextFill(t){(this.fill||this.styleHas(K))&&this._renderTextCommon(t,\"fillText\")}_renderTextStroke(t){(this.stroke&&0!==this.strokeWidth||!this.isEmptyStyles())&&(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(t),t.save(),this._setLineDash(t,this.strokeDashArray),t.beginPath(),this._renderTextCommon(t,\"strokeText\"),t.closePath(),t.restore())}_renderChars(t,e,s,i,r,n){const o=this.textAlign.includes(Je),a=this.path,h=!o&&0===this.charSpacing&&this.isEmptyStyles(n)&&!a,c=\"ltr\"===this.direction,l=\"ltr\"===this.direction?1:-1,u=e.direction;let d,g,f,p,m,v=\"\",y=0;if(e.save(),u!==this.direction&&(e.canvas.setAttribute(\"dir\",c?\"ltr\":\"rtl\"),e.direction=c?\"ltr\":\"rtl\",e.textAlign=c?M:A),r-=this.getHeightOfLineImpl(n)*this._fontSizeFraction,h)return this._renderChar(t,e,n,0,s.join(\"\"),i,r),void e.restore();for(let h=0,c=s.length-1;h<=c;h++)p=h===c||this.charSpacing||a,v+=s[h],f=this.__charBounds[n][h],0===y?(i+=l*(f.kernedWidth-f.width),y+=f.width):y+=f.kernedWidth,o&&!p&&this._reSpaceAndTab.test(s[h])&&(p=!0),p||(d=d||this.getCompleteStyleDeclaration(n,h),g=this.getCompleteStyleDeclaration(n,h+1),p=Ki(d,g,!1)),p&&(a?(e.save(),e.translate(f.renderLeft,f.renderTop),e.rotate(f.angle),this._renderChar(t,e,n,h,v,-y/2,0),e.restore()):(m=i,this._renderChar(t,e,n,h,v,m,r)),v=\"\",d=g,i+=l*y,y=0);e.restore()}_applyPatternGradientTransformText(t){const e=this.width+this.strokeWidth,s=this.height+this.strokeWidth,i=vt({width:e,height:s}),r=i.getContext(\"2d\");return i.width=e,i.height=s,r.beginPath(),r.moveTo(0,0),r.lineTo(e,0),r.lineTo(e,s),r.lineTo(0,s),r.closePath(),r.translate(e/2,s/2),r.fillStyle=t.toLive(r),this._applyPatternGradientTransform(r,t),r.fill(),r.createPattern(i,\"no-repeat\")}handleFiller(t,e,s){let i,r;return Gt(s)?\"percentage\"===s.gradientUnits||s.gradientTransform||s.patternTransform?(i=-this.width/2,r=-this.height/2,t.translate(i,r),t[e]=this._applyPatternGradientTransformText(s),{offsetX:i,offsetY:r}):(t[e]=s.toLive(t),this._applyPatternGradientTransform(t,s)):(t[e]=s,{offsetX:0,offsetY:0})}_setStrokeStyles(t,e){let{stroke:s,strokeWidth:i}=e;return t.lineWidth=i,t.lineCap=this.strokeLineCap,t.lineDashOffset=this.strokeDashOffset,t.lineJoin=this.strokeLineJoin,t.miterLimit=this.strokeMiterLimit,this.handleFiller(t,\"strokeStyle\",s)}_setFillStyles(t,e){let{fill:s}=e;return this.handleFiller(t,\"fillStyle\",s)}_renderChar(t,e,s,i,r,n,o){const a=this._getStyleDeclaration(s,i),h=this.getCompleteStyleDeclaration(s,i),c=\"fillText\"===t&&h.fill,l=\"strokeText\"===t&&h.stroke&&h.strokeWidth;if(l||c){if(e.save(),e.font=this._getFontDeclaration(h),a.textBackgroundColor&&this._removeShadow(e),a.deltaY&&(o+=a.deltaY),c){const t=this._setFillStyles(e,h);e.fillText(r,n-t.offsetX,o-t.offsetY)}if(l){const t=this._setStrokeStyles(e,h);e.strokeText(r,n-t.offsetX,o-t.offsetY)}e.restore()}}setSuperscript(t,e){this._setScript(t,e,this.superscript)}setSubscript(t,e){this._setScript(t,e,this.subscript)}_setScript(t,e,s){const i=this.get2DCursorLocation(t,!0),r=this.getValueOfPropertyAt(i.lineIndex,i.charIndex,\"fontSize\"),n=this.getValueOfPropertyAt(i.lineIndex,i.charIndex,\"deltaY\"),o={fontSize:r*s.size,deltaY:n+r*s.baseline};this.setSelectionStyles(o,t,e)}_getLineLeftOffset(t){const e=this.getLineWidth(t),s=this.width-e,i=this.textAlign,r=this.direction,n=this.isEndOfWrapping(t);let o=0;return i===Je||i===$e&&!n||i===Ze&&!n||i===Qe&&!n?0:(i===D&&(o=s/2),i===A&&(o=s),i===$e&&(o=s/2),i===Ze&&(o=s),\"rtl\"===r&&(i===A||i===Je||i===Ze?o=0:i===M||i===Qe?o=-s:i!==D&&i!==$e||(o=-s/2)),o)}_clearCache(){this._forceClearCache=!1,this.__lineWidths=[],this.__lineHeights=[],this.__charBounds=[]}getLineWidth(t){if(void 0!==this.__lineWidths[t])return this.__lineWidths[t];const{width:e}=this.measureLine(t);return this.__lineWidths[t]=e,e}_getWidthOfCharSpacing(){return 0!==this.charSpacing?this.fontSize*this.charSpacing/1e3:0}getValueOfPropertyAt(t,e,s){var i;return null!==(i=this._getStyleDeclaration(t,e)[s])&&void 0!==i?i:this[s]}_renderTextDecoration(t,e){if(!this[e]&&!this.styleHas(e))return;let s=this._getTopOffset();const i=this._getLeftOffset(),r=this.path,n=this._getWidthOfCharSpacing(),o=\"linethrough\"===e?.5:\"overline\"===e?1:0,a=this.offsets[e];for(let h=0,c=this._textLines.length;h<c;h++){const c=this.getHeightOfLine(h);if(!this[e]&&!this.styleHas(e,h)){s+=c;continue}const l=this._textLines[h],u=c/this.lineHeight,d=this._getLineLeftOffset(h);let g=0,f=0,p=this.getValueOfPropertyAt(h,0,e),m=this.getValueOfPropertyAt(h,0,K),v=this.getValueOfPropertyAt(h,0,ze),y=p,_=m,x=v;const C=s+u*(1-this._fontSizeFraction);let b=this.getHeightOfChar(h,0),S=this.getValueOfPropertyAt(h,0,\"deltaY\");for(let s=0,n=l.length;s<n;s++){const n=this.__charBounds[h][s];y=this.getValueOfPropertyAt(h,s,e),_=this.getValueOfPropertyAt(h,s,K),x=this.getValueOfPropertyAt(h,s,ze);const c=this.getHeightOfChar(h,s),l=this.getValueOfPropertyAt(h,s,\"deltaY\");if(r&&y&&_){const e=this.fontSize*x/1e3;t.save(),t.fillStyle=m,t.translate(n.renderLeft,n.renderTop),t.rotate(n.angle),t.fillRect(-n.kernedWidth/2,a*c+l-o*e,n.kernedWidth,e),t.restore()}else if((y!==p||_!==m||c!==b||x!==v||l!==S)&&f>0){const e=this.fontSize*v/1e3;let s=i+d+g;\"rtl\"===this.direction&&(s=this.width-s-f),p&&m&&v&&(t.fillStyle=m,t.fillRect(s,C+a*b+S-o*e,f,e)),g=n.left,f=n.width,p=y,v=x,m=_,b=c,S=l}else f+=n.kernedWidth}let w=i+d+g;\"rtl\"===this.direction&&(w=this.width-w-f),t.fillStyle=_;const T=this.fontSize*x/1e3;y&&_&&x&&t.fillRect(w,C+a*b+S-o*T,f-n,T),s+=c}this._removeShadow(t)}_getFontDeclaration(){let{fontFamily:t=this.fontFamily,fontStyle:e=this.fontStyle,fontWeight:s=this.fontWeight,fontSize:i=this.fontSize}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;const n=t.includes(\"'\")||t.includes('\"')||t.includes(\",\")||Ao.genericFonts.includes(t.toLowerCase())?t:'\"'.concat(t,'\"');return[e,s,\"\".concat(r?this.CACHE_FONT_SIZE:i,\"px\"),n].join(\" \")}render(t){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._forceClearCache&&this.initDimensions(),super.render(t)))}graphemeSplit(t){return Hi(t)}_splitTextIntoLines(t){const e=t.split(this._reNewline),s=new Array(e.length),i=[\"\\n\"];let r=[];for(let t=0;t<e.length;t++)s[t]=this.graphemeSplit(e[t]),r=r.concat(s[t],i);return r.pop(),{_unwrappedLines:s,lines:e,graphemeText:r,graphemeLines:s}}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return s(s({},super.toObject([...Ue,...t])),{},{styles:Ji(this.styles,this.text)},this.path?{path:this.path.toObject()}:{})}set(t,e){const{textLayoutProperties:s}=this.constructor;super.set(t,e);let i=!1,r=!1;if(\"object\"==typeof t)for(const e in t)\"path\"===e&&this.setPathInfo(),i=i||s.includes(e),r=r||\"path\"===e;else i=s.includes(t),r=\"path\"===t;return r&&this.setPathInfo(),i&&this.initialized&&(this.initDimensions(),this.setCoords()),this}complexity(){return 1}static async fromElement(t,e,r){const n=Pr(t,Ao.ATTRIBUTE_NAMES,r),o=s(s({},e),n),{textAnchor:a=M,textDecoration:h=\"\",dx:c=0,dy:l=0,top:u=0,left:d=0,fontSize:g=O,strokeWidth:f=1}=o,p=i(o,Po),m=new this(Pe(t.textContent||\"\").trim(),s({left:d+c,top:u+l,underline:h.includes(\"underline\"),overline:h.includes(\"overline\"),linethrough:h.includes(\"line-through\"),strokeWidth:0,fontSize:g},p)),v=m.getScaledHeight()/m.height,y=((m.height+m.strokeWidth)*m.lineHeight-m.height)*v,_=m.getScaledHeight()+y;let x=0;return a===D&&(x=m.getScaledWidth()/2),a===A&&(x=m.getScaledWidth()),m.set({left:m.left-x,top:m.top-(_-m.fontSize*(.07+m._fontSizeFraction))/m.lineHeight,strokeWidth:f}),m}static fromObject(t){return this._fromObject(s(s({},t),{},{styles:Qi(t.styles||{},t.text)}),{extraParam:\"text\"})}}t(Ao,\"textLayoutProperties\",Ne),t(Ao,\"cacheProperties\",[...Es,...Ue]),t(Ao,\"ownDefaults\",Ke),t(Ao,\"type\",\"Text\"),t(Ao,\"genericFonts\",[\"serif\",\"sans-serif\",\"monospace\",\"cursive\",\"fantasy\",\"system-ui\",\"ui-serif\",\"ui-sans-serif\",\"ui-monospace\",\"ui-rounded\",\"math\",\"emoji\",\"fangsong\"]),t(Ao,\"ATTRIBUTE_NAMES\",Zi.concat(\"x\",\"y\",\"dx\",\"dy\",\"font-family\",\"font-style\",\"font-weight\",\"font-size\",\"letter-spacing\",\"text-decoration\",\"text-anchor\")),Fi(Ao,[class extends We{_toSVG(){const t=this._getSVGLeftTopOffsets(),e=this._getSVGTextAndBg(t.textTop,t.textLeft);return this._wrapSVGTextAndBg(e)}toSVG(t){const e=this._createBaseSVGMarkup(this._toSVG(),{reviver:t,noStyle:!0,withShadow:!0}),s=this.path;return s?e+s._createBaseSVGMarkup(s._toSVG(),{reviver:t,withShadow:!0,additionalTransform:zt(this.calcOwnMatrix())}):e}_getSVGLeftTopOffsets(){return{textLeft:-this.width/2,textTop:-this.height/2,lineTop:this.getHeightOfLine(0)}}_wrapSVGTextAndBg(t){let{textBgRects:e,textSpans:s}=t;const i=this.getSvgTextDecoration(this);return[e.join(\"\"),'\\t\\t<text xml:space=\"preserve\" ','font-family=\"'.concat(this.fontFamily.replace(Do,\"'\"),'\" '),'font-size=\"'.concat(this.fontSize,'\" '),this.fontStyle?'font-style=\"'.concat(this.fontStyle,'\" '):\"\",this.fontWeight?'font-weight=\"'.concat(this.fontWeight,'\" '):\"\",i?'text-decoration=\"'.concat(i,'\" '):\"\",\"rtl\"===this.direction?'direction=\"'.concat(this.direction,'\" '):\"\",'style=\"',this.getSvgStyles(!0),'\"',this.addPaintOrder(),\" >\",s.join(\"\"),\"</text>\\n\"]}_getSVGTextAndBg(t,e){const s=[],i=[];let r,n=t;this.backgroundColor&&i.push(...Mo(this.backgroundColor,-this.width/2,-this.height/2,this.width,this.height));for(let t=0,o=this._textLines.length;t<o;t++)r=this._getLineLeftOffset(t),\"rtl\"===this.direction&&(r+=this.width),(this.textBackgroundColor||this.styleHas(\"textBackgroundColor\",t))&&this._setSVGTextLineBg(i,t,e+r,n),this._setSVGTextLineText(s,t,e+r,n),n+=this.getHeightOfLine(t);return{textSpans:s,textBgRects:i}}_createTextCharSpan(t,e,s,i,r){const n=o.NUM_FRACTION_DIGITS,a=this.getSvgSpanStyles(e,t!==t.trim()||!!t.match(ko)),h=a?'style=\"'.concat(a,'\"'):\"\",c=e.deltaY,l=c?' dy=\"'.concat(Vt(c,n),'\" '):\"\",{angle:u,renderLeft:d,renderTop:g,width:f}=r;let p=\"\";if(void 0!==d){const t=f/2;u&&(p=' rotate=\"'.concat(Vt(Ct(u),n),'\"'));const e=Pt({angle:Ct(u)});e[4]=d,e[5]=g;const r=new ot(-t,0).transform(e);s=r.x,i=r.y}return'<tspan x=\"'.concat(Vt(s,n),'\" y=\"').concat(Vt(i,n),'\" ').concat(l).concat(p).concat(h,\">\").concat(zi(t),\"</tspan>\")}_setSVGTextLineText(t,e,s,i){const r=this.getHeightOfLine(e),n=this.textAlign.includes(Je),o=this._textLines[e];let a,h,c,l,u,d=\"\",g=0;i+=r*(1-this._fontSizeFraction)/this.lineHeight;for(let r=0,f=o.length-1;r<=f;r++)u=r===f||this.charSpacing||this.path,d+=o[r],c=this.__charBounds[e][r],0===g?(s+=c.kernedWidth-c.width,g+=c.width):g+=c.kernedWidth,n&&!u&&this._reSpaceAndTab.test(o[r])&&(u=!0),u||(a=a||this.getCompleteStyleDeclaration(e,r),h=this.getCompleteStyleDeclaration(e,r+1),u=Ki(a,h,!0)),u&&(l=this._getStyleDeclaration(e,r),t.push(this._createTextCharSpan(d,l,s,i,c)),d=\"\",a=h,\"rtl\"===this.direction?s-=g:s+=g,g=0)}_setSVGTextLineBg(t,e,s,i){const r=this._textLines[e],n=this.getHeightOfLine(e)/this.lineHeight;let o,a=0,h=0,c=this.getValueOfPropertyAt(e,0,\"textBackgroundColor\");for(let l=0;l<r.length;l++){const{left:r,width:u,kernedWidth:d}=this.__charBounds[e][l];o=this.getValueOfPropertyAt(e,l,\"textBackgroundColor\"),o!==c?(c&&t.push(...Mo(c,s+h,i,a,n)),h=r,a=u,c=o):a+=d}o&&t.push(...Mo(c,s+h,i,a,n))}_getSVGLineTopOffset(t){let e,s=0;for(e=0;e<t;e++)s+=this.getHeightOfLine(e);const i=this.getHeightOfLine(e);return{lineTop:s,offset:(this._fontSizeMult-this._fontSizeFraction)*i/(this.lineHeight*this._fontSizeMult)}}getSvgStyles(t){return\"\".concat(super.getSvgStyles(t),\" text-decoration-thickness: \").concat(Vt(this.textDecorationThickness*this.getObjectScaling().y/10,o.NUM_FRACTION_DIGITS),\"%; white-space: pre;\")}getSvgSpanStyles(t,e){const{fontFamily:s,strokeWidth:i,stroke:r,fill:n,fontSize:a,fontStyle:h,fontWeight:c,deltaY:l,textDecorationThickness:u,linethrough:d,overline:g,underline:f}=t,p=this.getSvgTextDecoration({underline:null!=f?f:this.underline,overline:null!=g?g:this.overline,linethrough:null!=d?d:this.linethrough}),m=u||this.textDecorationThickness;return[r?Ye(J,r):\"\",i?\"stroke-width: \".concat(i,\"; \"):\"\",s?\"font-family: \".concat(s.includes(\"'\")||s.includes('\"')?s:\"'\".concat(s,\"'\"),\"; \"):\"\",a?\"font-size: \".concat(a,\"px; \"):\"\",h?\"font-style: \".concat(h,\"; \"):\"\",c?\"font-weight: \".concat(c,\"; \"):\"\",p?\"text-decoration: \".concat(p,\"; text-decoration-thickness: \").concat(Vt(m*this.getObjectScaling().y/10,o.NUM_FRACTION_DIGITS),\"%; \"):\"\",n?Ye(K,n):\"\",l?\"baseline-shift: \".concat(-l,\"; \"):\"\",e?\"white-space: pre; \":\"\"].join(\"\")}getSvgTextDecoration(t){return[\"overline\",\"underline\",\"line-through\"].filter((e=>t[e.replace(\"-\",\"\")])).join(\" \")}}]),tt.setClass(Ao),tt.setSVGClass(Ao);class jo{constructor(e){t(this,\"target\",void 0),t(this,\"__mouseDownInPlace\",!1),t(this,\"__dragStartFired\",!1),t(this,\"__isDraggingOver\",!1),t(this,\"__dragStartSelection\",void 0),t(this,\"__dragImageDisposer\",void 0),t(this,\"_dispose\",void 0),this.target=e;const s=[this.target.on(\"dragenter\",this.dragEnterHandler.bind(this)),this.target.on(\"dragover\",this.dragOverHandler.bind(this)),this.target.on(\"dragleave\",this.dragLeaveHandler.bind(this)),this.target.on(\"dragend\",this.dragEndHandler.bind(this)),this.target.on(\"drop\",this.dropHandler.bind(this))];this._dispose=()=>{s.forEach((t=>t())),this._dispose=void 0}}isPointerOverSelection(t){const e=this.target,s=e.getSelectionStartFromPointer(t);return e.isEditing&&s>=e.selectionStart&&s<=e.selectionEnd&&e.selectionStart<e.selectionEnd}start(t){return this.__mouseDownInPlace=this.isPointerOverSelection(t)}isActive(){return this.__mouseDownInPlace}end(t){const e=this.isActive();return e&&!this.__dragStartFired&&(this.target.setCursorByClick(t),this.target.initDelayedCursor(!0)),this.__mouseDownInPlace=!1,this.__dragStartFired=!1,this.__isDraggingOver=!1,e}getDragStartSelection(){return this.__dragStartSelection}setDragImage(t,e){var s;let{selectionStart:i,selectionEnd:r}=e;const n=this.target,o=n.canvas,a=new ot(n.flipX?-1:1,n.flipY?-1:1),h=n._getCursorBoundaries(i),c=new ot(h.left+h.leftOffset,h.top+h.topOffset).multiply(a).transform(n.calcTransformMatrix()),l=o.getScenePoint(t).subtract(c),u=n.getCanvasRetinaScaling(),d=n.getBoundingRect(),g=c.subtract(new ot(d.left,d.top)),f=o.viewportTransform,p=g.add(l).transform(f,!0),m=n.backgroundColor,v=Vi(n.styles);n.backgroundColor=\"\";const y={stroke:\"transparent\",fill:\"transparent\",textBackgroundColor:\"transparent\"};n.setSelectionStyles(y,0,i),n.setSelectionStyles(y,r,n.text.length),n.dirty=!0;const _=n.toCanvasElement({enableRetinaScaling:o.enableRetinaScaling,viewportTransform:!0});n.backgroundColor=m,n.styles=v,n.dirty=!0,Tn(_,{position:\"fixed\",left:\"\".concat(-_.width,\"px\"),border:j,width:\"\".concat(_.width/u,\"px\"),height:\"\".concat(_.height/u,\"px\")}),this.__dragImageDisposer&&this.__dragImageDisposer(),this.__dragImageDisposer=()=>{_.remove()},Kt(t.target||this.target.hiddenTextarea).body.appendChild(_),null===(s=t.dataTransfer)||void 0===s||s.setDragImage(_,p.x,p.y)}onDragStart(t){this.__dragStartFired=!0;const e=this.target,i=this.isActive();if(i&&t.dataTransfer){const i=this.__dragStartSelection={selectionStart:e.selectionStart,selectionEnd:e.selectionEnd},r=e._text.slice(i.selectionStart,i.selectionEnd).join(\"\"),n=s({text:e.text,value:r},i);t.dataTransfer.setData(\"text/plain\",r),t.dataTransfer.setData(\"application/fabric\",JSON.stringify({value:r,styles:e.getSelectionStyles(i.selectionStart,i.selectionEnd,!0)})),t.dataTransfer.effectAllowed=\"copyMove\",this.setDragImage(t,n)}return e.abortCursorAnimation(),i}canDrop(t){if(this.target.editable&&!this.target.getActiveControl()&&!t.defaultPrevented){if(this.isActive()&&this.__dragStartSelection){const e=this.target.getSelectionStartFromPointer(t),s=this.__dragStartSelection;return e<s.selectionStart||e>s.selectionEnd}return!0}return!1}targetCanDrop(t){return this.target.canDrop(t)}dragEnterHandler(t){let{e:e}=t;const s=this.targetCanDrop(e);!this.__isDraggingOver&&s&&(this.__isDraggingOver=!0)}dragOverHandler(t){const{e:e}=t,s=this.targetCanDrop(e);!this.__isDraggingOver&&s?this.__isDraggingOver=!0:this.__isDraggingOver&&!s&&(this.__isDraggingOver=!1),this.__isDraggingOver&&(e.preventDefault(),t.canDrop=!0,t.dropTarget=this.target)}dragLeaveHandler(){(this.__isDraggingOver||this.isActive())&&(this.__isDraggingOver=!1)}dropHandler(t){var e;const{e:s}=t,i=s.defaultPrevented;this.__isDraggingOver=!1,s.preventDefault();let r=null===(e=s.dataTransfer)||void 0===e?void 0:e.getData(\"text/plain\");if(r&&!i){const e=this.target,i=e.canvas;let n=e.getSelectionStartFromPointer(s);const{styles:o}=s.dataTransfer.types.includes(\"application/fabric\")?JSON.parse(s.dataTransfer.getData(\"application/fabric\")):{},a=r[Math.max(0,r.length-1)],h=0;if(this.__dragStartSelection){const t=this.__dragStartSelection.selectionStart,s=this.__dragStartSelection.selectionEnd;n>t&&n<=s?n=t:n>s&&(n-=s-t),e.removeChars(t,s),delete this.__dragStartSelection}e._reNewline.test(a)&&(e._reNewline.test(e._text[n])||n===e._text.length)&&(r=r.trimEnd()),t.didDrop=!0,t.dropTarget=e,e.insertChars(r,o,n),i.setActiveObject(e),e.enterEditing(s),e.selectionStart=Math.min(n+h,e._text.length),e.selectionEnd=Math.min(e.selectionStart+r.length,e._text.length),e.hiddenTextarea.value=e.text,e._updateTextarea(),e.hiddenTextarea.focus(),e.fire(z,{index:n+h,action:\"drop\"}),i.fire(\"text:changed\",{target:e}),i.contextTopDirty=!0,i.requestRenderAll()}}dragEndHandler(t){let{e:e}=t;if(this.isActive()&&this.__dragStartFired&&this.__dragStartSelection){var s;const t=this.target,i=this.target.canvas,{selectionStart:r,selectionEnd:n}=this.__dragStartSelection,o=(null===(s=e.dataTransfer)||void 0===s?void 0:s.dropEffect)||j;o===j?(t.selectionStart=r,t.selectionEnd=n,t._updateTextarea(),t.hiddenTextarea.focus()):(t.clearContextTop(),\"move\"===o&&(t.removeChars(r,n),t.selectionStart=t.selectionEnd=r,t.hiddenTextarea&&(t.hiddenTextarea.value=t.text),t._updateTextarea(),t.fire(z,{index:r,action:\"dragend\"}),i.fire(\"text:changed\",{target:t}),i.requestRenderAll()),t.exitEditing())}this.__dragImageDisposer&&this.__dragImageDisposer(),delete this.__dragImageDisposer,delete this.__dragStartSelection,this.__isDraggingOver=!1}dispose(){this._dispose&&this._dispose()}}const Fo=/[ \\n\\.,;!\\?\\-]/;class Lo extends Ao{constructor(){super(...arguments),t(this,\"_currentCursorOpacity\",1)}initBehavior(){this._tick=this._tick.bind(this),this._onTickComplete=this._onTickComplete.bind(this),this.updateSelectionOnMouseMove=this.updateSelectionOnMouseMove.bind(this)}onDeselect(t){return this.isEditing&&this.exitEditing(),this.selected=!1,super.onDeselect(t)}_animateCursor(t){let{toValue:e,duration:s,delay:i,onComplete:r}=t;return Ks({startValue:this._currentCursorOpacity,endValue:e,duration:s,delay:i,onComplete:r,abort:()=>!this.canvas||this.selectionStart!==this.selectionEnd,onChange:t=>{this._currentCursorOpacity=t,this.renderCursorOrSelection()}})}_tick(t){this._currentTickState=this._animateCursor({toValue:0,duration:this.cursorDuration/2,delay:Math.max(t||0,100),onComplete:this._onTickComplete})}_onTickComplete(){var t;null===(t=this._currentTickCompleteState)||void 0===t||t.abort(),this._currentTickCompleteState=this._animateCursor({toValue:1,duration:this.cursorDuration,onComplete:this._tick})}initDelayedCursor(t){this.abortCursorAnimation(),this._tick(t?0:this.cursorDelay)}abortCursorAnimation(){let t=!1;[this._currentTickState,this._currentTickCompleteState].forEach((e=>{e&&!e.isDone()&&(t=!0,e.abort())})),this._currentCursorOpacity=1,t&&this.clearContextTop()}restartCursorIfNeeded(){[this._currentTickState,this._currentTickCompleteState].some((t=>!t||t.isDone()))&&this.initDelayedCursor()}selectAll(){return this.selectionStart=0,this.selectionEnd=this._text.length,this._fireSelectionChanged(),this._updateTextarea(),this}cmdAll(){this.selectAll(),this.renderCursorOrSelection()}getSelectedText(){return this._text.slice(this.selectionStart,this.selectionEnd).join(\"\")}findWordBoundaryLeft(t){let e=0,s=t-1;if(this._reSpace.test(this._text[s]))for(;this._reSpace.test(this._text[s]);)e++,s--;for(;/\\S/.test(this._text[s])&&s>-1;)e++,s--;return t-e}findWordBoundaryRight(t){let e=0,s=t;if(this._reSpace.test(this._text[s]))for(;this._reSpace.test(this._text[s]);)e++,s++;for(;/\\S/.test(this._text[s])&&s<this._text.length;)e++,s++;return t+e}findLineBoundaryLeft(t){let e=0,s=t-1;for(;!/\\n/.test(this._text[s])&&s>-1;)e++,s--;return t-e}findLineBoundaryRight(t){let e=0,s=t;for(;!/\\n/.test(this._text[s])&&s<this._text.length;)e++,s++;return t+e}searchWordBoundary(t,e){const s=this._text;let i=t>0&&this._reSpace.test(s[t])&&(-1===e||!F.test(s[t-1]))?t-1:t,r=s[i];for(;i>0&&i<s.length&&!Fo.test(r);)i+=e,r=s[i];return-1===e&&Fo.test(r)&&i++,i}selectWord(t){var e;t=null!==(e=t)&&void 0!==e?e:this.selectionStart;const s=this.searchWordBoundary(t,-1),i=Math.max(s,this.searchWordBoundary(t,1));this.selectionStart=s,this.selectionEnd=i,this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()}selectLine(t){var e;t=null!==(e=t)&&void 0!==e?e:this.selectionStart;const s=this.findLineBoundaryLeft(t),i=this.findLineBoundaryRight(t);this.selectionStart=s,this.selectionEnd=i,this._fireSelectionChanged(),this._updateTextarea()}enterEditing(t){!this.isEditing&&this.editable&&(this.enterEditingImpl(),this.fire(\"editing:entered\",t?{e:t}:void 0),this._fireSelectionChanged(),this.canvas&&(this.canvas.fire(\"text:editing:entered\",{target:this,e:t}),this.canvas.requestRenderAll()))}enterEditingImpl(){this.canvas&&(this.canvas.calcOffset(),this.canvas.textEditingManager.exitTextEditing()),this.isEditing=!0,this.initHiddenTextarea(),this.hiddenTextarea.focus(),this.hiddenTextarea.value=this.text,this._updateTextarea(),this._saveEditingProps(),this._setEditingProps(),this._textBeforeEdit=this.text,this._tick()}updateSelectionOnMouseMove(t){if(this.getActiveControl())return;const e=this.hiddenTextarea;Kt(e).activeElement!==e&&e.focus();const s=this.getSelectionStartFromPointer(t),i=this.selectionStart,r=this.selectionEnd;(s===this.__selectionStartOnMouseDown&&i!==r||i!==s&&r!==s)&&(s>this.__selectionStartOnMouseDown?(this.selectionStart=this.__selectionStartOnMouseDown,this.selectionEnd=s):(this.selectionStart=s,this.selectionEnd=this.__selectionStartOnMouseDown),this.selectionStart===i&&this.selectionEnd===r||(this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()))}_setEditingProps(){this.hoverCursor=\"text\",this.canvas&&(this.canvas.defaultCursor=this.canvas.moveCursor=\"text\"),this.borderColor=this.editingBorderColor,this.hasControls=this.selectable=!1,this.lockMovementX=this.lockMovementY=!0}fromStringToGraphemeSelection(t,e,s){const i=s.slice(0,t),r=this.graphemeSplit(i).length;if(t===e)return{selectionStart:r,selectionEnd:r};const n=s.slice(t,e);return{selectionStart:r,selectionEnd:r+this.graphemeSplit(n).length}}fromGraphemeToStringSelection(t,e,s){const i=s.slice(0,t).join(\"\").length;if(t===e)return{selectionStart:i,selectionEnd:i};return{selectionStart:i,selectionEnd:i+s.slice(t,e).join(\"\").length}}_updateTextarea(){if(this.cursorOffsetCache={},this.hiddenTextarea){if(!this.inCompositionMode){const t=this.fromGraphemeToStringSelection(this.selectionStart,this.selectionEnd,this._text);this.hiddenTextarea.selectionStart=t.selectionStart,this.hiddenTextarea.selectionEnd=t.selectionEnd}this.updateTextareaPosition()}}updateFromTextArea(){if(!this.hiddenTextarea)return;this.cursorOffsetCache={};const t=this.hiddenTextarea;this.text=t.value,this.set(\"dirty\",!0),this.initDimensions(),this.setCoords();const e=this.fromStringToGraphemeSelection(t.selectionStart,t.selectionEnd,t.value);this.selectionEnd=this.selectionStart=e.selectionEnd,this.inCompositionMode||(this.selectionStart=e.selectionStart),this.updateTextareaPosition()}updateTextareaPosition(){if(this.selectionStart===this.selectionEnd){const t=this._calcTextareaPosition();this.hiddenTextarea.style.left=t.left,this.hiddenTextarea.style.top=t.top}}_calcTextareaPosition(){if(!this.canvas)return{left:\"1px\",top:\"1px\"};const t=this.inCompositionMode?this.compositionStart:this.selectionStart,e=this._getCursorBoundaries(t),s=this.get2DCursorLocation(t),i=s.lineIndex,r=s.charIndex,n=this.getValueOfPropertyAt(i,r,\"fontSize\")*this.lineHeight,o=e.leftOffset,a=this.getCanvasRetinaScaling(),h=this.canvas.upperCanvasEl,c=h.width/a,l=h.height/a,u=c-n,d=l-n,g=new ot(e.left+o,e.top+e.topOffset+n).transform(this.calcTransformMatrix()).transform(this.canvas.viewportTransform).multiply(new ot(h.clientWidth/c,h.clientHeight/l));return g.x<0&&(g.x=0),g.x>u&&(g.x=u),g.y<0&&(g.y=0),g.y>d&&(g.y=d),g.x+=this.canvas._offset.left,g.y+=this.canvas._offset.top,{left:\"\".concat(g.x,\"px\"),top:\"\".concat(g.y,\"px\"),fontSize:\"\".concat(n,\"px\"),charHeight:n}}_saveEditingProps(){this._savedProps={hasControls:this.hasControls,borderColor:this.borderColor,lockMovementX:this.lockMovementX,lockMovementY:this.lockMovementY,hoverCursor:this.hoverCursor,selectable:this.selectable,defaultCursor:this.canvas&&this.canvas.defaultCursor,moveCursor:this.canvas&&this.canvas.moveCursor}}_restoreEditingProps(){this._savedProps&&(this.hoverCursor=this._savedProps.hoverCursor,this.hasControls=this._savedProps.hasControls,this.borderColor=this._savedProps.borderColor,this.selectable=this._savedProps.selectable,this.lockMovementX=this._savedProps.lockMovementX,this.lockMovementY=this._savedProps.lockMovementY,this.canvas&&(this.canvas.defaultCursor=this._savedProps.defaultCursor||this.canvas.defaultCursor,this.canvas.moveCursor=this._savedProps.moveCursor||this.canvas.moveCursor),delete this._savedProps)}_exitEditing(){const t=this.hiddenTextarea;this.selected=!1,this.isEditing=!1,t&&(t.blur&&t.blur(),t.parentNode&&t.parentNode.removeChild(t)),this.hiddenTextarea=null,this.abortCursorAnimation(),this.selectionStart!==this.selectionEnd&&this.clearContextTop()}exitEditingImpl(){this._exitEditing(),this.selectionEnd=this.selectionStart,this._restoreEditingProps(),this._forceClearCache&&(this.initDimensions(),this.setCoords())}exitEditing(){const t=this._textBeforeEdit!==this.text;return this.exitEditingImpl(),this.fire(\"editing:exited\"),t&&this.fire(Q),this.canvas&&(this.canvas.fire(\"text:editing:exited\",{target:this}),t&&this.canvas.fire(\"object:modified\",{target:this})),this}_removeExtraneousStyles(){for(const t in this.styles)this._textLines[t]||delete this.styles[t]}removeStyleFromTo(t,e){const{lineIndex:s,charIndex:i}=this.get2DCursorLocation(t,!0),{lineIndex:r,charIndex:n}=this.get2DCursorLocation(e,!0);if(s!==r){if(this.styles[s])for(let t=i;t<this._unwrappedTextLines[s].length;t++)delete this.styles[s][t];if(this.styles[r])for(let t=n;t<this._unwrappedTextLines[r].length;t++){const e=this.styles[r][t];e&&(this.styles[s]||(this.styles[s]={}),this.styles[s][i+t-n]=e)}for(let t=s+1;t<=r;t++)delete this.styles[t];this.shiftLineStyles(r,s-r)}else if(this.styles[s]){const t=this.styles[s],e=n-i;for(let e=i;e<n;e++)delete t[e];for(const i in this.styles[s]){const s=parseInt(i,10);s>=n&&(t[s-e]=t[i],delete t[i])}}}shiftLineStyles(t,e){const s=Object.assign({},this.styles);for(const i in this.styles){const r=parseInt(i,10);r>t&&(this.styles[r+e]=s[r],s[r-e]||delete this.styles[r])}}insertNewlineStyleObject(t,e,i,r){const n={},o=this._unwrappedTextLines[t].length,a=o===e;let h=!1;i||(i=1),this.shiftLineStyles(t,i);const c=this.styles[t]?this.styles[t][0===e?e:e-1]:void 0;for(const s in this.styles[t]){const i=parseInt(s,10);i>=e&&(h=!0,n[i-e]=this.styles[t][s],a&&0===e||delete this.styles[t][s])}let l=!1;for(h&&!a&&(this.styles[t+i]=n,l=!0),(l||o>e)&&i--;i>0;)r&&r[i-1]?this.styles[t+i]={0:s({},r[i-1])}:c?this.styles[t+i]={0:s({},c)}:delete this.styles[t+i],i--;this._forceClearCache=!0}insertCharStyleObject(t,e,i,r){this.styles||(this.styles={});const n=this.styles[t],o=n?s({},n):{};i||(i=1);for(const t in o){const s=parseInt(t,10);s>=e&&(n[s+i]=o[s],o[s-i]||delete n[s])}if(this._forceClearCache=!0,r){for(;i--;)Object.keys(r[i]).length&&(this.styles[t]||(this.styles[t]={}),this.styles[t][e+i]=s({},r[i]));return}if(!n)return;const a=n[e?e-1:1];for(;a&&i--;)this.styles[t][e+i]=s({},a)}insertNewStyleBlock(t,e,s){const i=this.get2DCursorLocation(e,!0),r=[0];let n,o=0;for(let e=0;e<t.length;e++)\"\\n\"===t[e]?(o++,r[o]=0):r[o]++;for(r[0]>0&&(this.insertCharStyleObject(i.lineIndex,i.charIndex,r[0],s),s=s&&s.slice(r[0]+1)),o&&this.insertNewlineStyleObject(i.lineIndex,i.charIndex+r[0],o),n=1;n<o;n++)r[n]>0?this.insertCharStyleObject(i.lineIndex+n,0,r[n],s):s&&this.styles[i.lineIndex+n]&&s[0]&&(this.styles[i.lineIndex+n][0]=s[0]),s=s&&s.slice(r[n]+1);r[n]>0&&this.insertCharStyleObject(i.lineIndex+n,0,r[n],s)}removeChars(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t+1;this.removeStyleFromTo(t,e),this._text.splice(t,e-t),this.text=this._text.join(\"\"),this.set(\"dirty\",!0),this.initDimensions(),this.setCoords(),this._removeExtraneousStyles()}insertChars(t,e,s){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:s;i>s&&this.removeStyleFromTo(s,i);const r=this.graphemeSplit(t);this.insertNewStyleBlock(r,s,e),this._text=[...this._text.slice(0,s),...r,...this._text.slice(i)],this.text=this._text.join(\"\"),this.set(\"dirty\",!0),this.initDimensions(),this.setCoords(),this._removeExtraneousStyles()}setSelectionStartEndWithShift(t,e,s){s<=t?(e===t?this._selectionDirection=M:this._selectionDirection===A&&(this._selectionDirection=M,this.selectionEnd=t),this.selectionStart=s):s>t&&s<e?this._selectionDirection===A?this.selectionEnd=s:this.selectionStart=s:(e===t?this._selectionDirection=A:this._selectionDirection===M&&(this._selectionDirection=A,this.selectionStart=e),this.selectionEnd=s)}}class Ro extends Lo{initHiddenTextarea(){const t=this.canvas&&Kt(this.canvas.getElement())||m(),e=t.createElement(\"textarea\");Object.entries({autocapitalize:\"off\",autocorrect:\"off\",autocomplete:\"off\",spellcheck:\"false\",\"data-fabric\":\"textarea\",wrap:\"off\",name:\"fabricTextarea\"}).map((t=>{let[s,i]=t;return e.setAttribute(s,i)}));const{top:s,left:i,fontSize:r}=this._calcTextareaPosition();e.style.cssText=\"position: absolute; top: \".concat(s,\"; left: \").concat(i,\"; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; padding-top: \").concat(r,\";\"),(this.hiddenTextareaContainer||t.body).appendChild(e),Object.entries({blur:\"blur\",keydown:\"onKeyDown\",keyup:\"onKeyUp\",input:\"onInput\",copy:\"copy\",cut:\"copy\",paste:\"paste\",compositionstart:\"onCompositionStart\",compositionupdate:\"onCompositionUpdate\",compositionend:\"onCompositionEnd\"}).map((t=>{let[s,i]=t;return e.addEventListener(s,this[i].bind(this))})),this.hiddenTextarea=e}blur(){this.abortCursorAnimation()}onKeyDown(t){if(!this.isEditing)return;const e=\"rtl\"===this.direction?this.keysMapRtl:this.keysMap;if(t.keyCode in e)this[e[t.keyCode]](t);else{if(!(t.keyCode in this.ctrlKeysMapDown)||!t.ctrlKey&&!t.metaKey)return;this[this.ctrlKeysMapDown[t.keyCode]](t)}t.stopImmediatePropagation(),t.preventDefault(),t.keyCode>=33&&t.keyCode<=40?(this.inCompositionMode=!1,this.clearContextTop(),this.renderCursorOrSelection()):this.canvas&&this.canvas.requestRenderAll()}onKeyUp(t){!this.isEditing||this._copyDone||this.inCompositionMode?this._copyDone=!1:t.keyCode in this.ctrlKeysMapUp&&(t.ctrlKey||t.metaKey)&&(this[this.ctrlKeysMapUp[t.keyCode]](t),t.stopImmediatePropagation(),t.preventDefault(),this.canvas&&this.canvas.requestRenderAll())}onInput(t){const e=this.fromPaste,{value:s,selectionStart:i,selectionEnd:r}=this.hiddenTextarea;if(this.fromPaste=!1,t&&t.stopPropagation(),!this.isEditing)return;const n=()=>{this.updateFromTextArea(),this.fire(z),this.canvas&&(this.canvas.fire(\"text:changed\",{target:this}),this.canvas.requestRenderAll())};if(\"\"===this.hiddenTextarea.value)return this.styles={},void n();const a=this._splitTextIntoLines(s).graphemeText,h=this._text.length,c=a.length,l=this.selectionStart,u=this.selectionEnd,d=l!==u;let g,f,m,v,y=c-h;const _=this.fromStringToGraphemeSelection(i,r,s),x=l>_.selectionStart;d?(f=this._text.slice(l,u),y+=u-l):c<h&&(f=x?this._text.slice(u+y,u):this._text.slice(l,l-y));const C=a.slice(_.selectionEnd-y,_.selectionEnd);if(f&&f.length&&(C.length&&(g=this.getSelectionStyles(l,l+1,!1),g=C.map((()=>g[0]))),d?(m=l,v=u):x?(m=u-f.length,v=u):(m=u,v=u+f.length),this.removeStyleFromTo(m,v)),C.length){const{copyPasteData:t}=p();e&&C.join(\"\")===t.copiedText&&!o.disableStyleCopyPaste&&(g=t.copiedTextStyle),this.insertNewStyleBlock(C,l,g)}n()}onCompositionStart(){this.inCompositionMode=!0}onCompositionEnd(){this.inCompositionMode=!1}onCompositionUpdate(t){let{target:e}=t;const{selectionStart:s,selectionEnd:i}=e;this.compositionStart=s,this.compositionEnd=i,this.updateTextareaPosition()}copy(){if(this.selectionStart===this.selectionEnd)return;const{copyPasteData:t}=p();t.copiedText=this.getSelectedText(),o.disableStyleCopyPaste?t.copiedTextStyle=void 0:t.copiedTextStyle=this.getSelectionStyles(this.selectionStart,this.selectionEnd,!0),this._copyDone=!0}paste(){this.fromPaste=!0}_getWidthBeforeCursor(t,e){let s,i=this._getLineLeftOffset(t);return e>0&&(s=this.__charBounds[t][e-1],i+=s.left+s.width),i}getDownCursorOffset(t,e){const s=this._getSelectionForOffset(t,e),i=this.get2DCursorLocation(s),r=i.lineIndex;if(r===this._textLines.length-1||t.metaKey||34===t.keyCode)return this._text.length-s;const n=i.charIndex,o=this._getWidthBeforeCursor(r,n),a=this._getIndexOnLine(r+1,o);return this._textLines[r].slice(n).length+a+1+this.missingNewlineOffset(r)}_getSelectionForOffset(t,e){return t.shiftKey&&this.selectionStart!==this.selectionEnd&&e?this.selectionEnd:this.selectionStart}getUpCursorOffset(t,e){const s=this._getSelectionForOffset(t,e),i=this.get2DCursorLocation(s),r=i.lineIndex;if(0===r||t.metaKey||33===t.keyCode)return-s;const n=i.charIndex,o=this._getWidthBeforeCursor(r,n),a=this._getIndexOnLine(r-1,o),h=this._textLines[r].slice(0,n),c=this.missingNewlineOffset(r-1);return-this._textLines[r-1].length+a-h.length+(1-c)}_getIndexOnLine(t,e){const s=this._textLines[t];let i,r,n=this._getLineLeftOffset(t),o=0;for(let a=0,h=s.length;a<h;a++)if(i=this.__charBounds[t][a].width,n+=i,n>e){r=!0;const t=n-i,s=n,h=Math.abs(t-e);o=Math.abs(s-e)<h?a:a-1;break}return r||(o=s.length-1),o}moveCursorDown(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown(\"Down\",t)}moveCursorUp(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorUpOrDown(\"Up\",t)}_moveCursorUpOrDown(t,e){const s=this[\"get\".concat(t,\"CursorOffset\")](e,this._selectionDirection===A);if(e.shiftKey?this.moveCursorWithShift(s):this.moveCursorWithoutShift(s),0!==s){const t=this.text.length;this.selectionStart=Ms(0,this.selectionStart,t),this.selectionEnd=Ms(0,this.selectionEnd,t),this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea()}}moveCursorWithShift(t){const e=this._selectionDirection===M?this.selectionStart+t:this.selectionEnd+t;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,e),0!==t}moveCursorWithoutShift(t){return t<0?(this.selectionStart+=t,this.selectionEnd=this.selectionStart):(this.selectionEnd+=t,this.selectionStart=this.selectionEnd),0!==t}moveCursorLeft(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorLeftOrRight(\"Left\",t)}_move(t,e,s){let i;if(t.altKey)i=this[\"findWordBoundary\".concat(s)](this[e]);else{if(!t.metaKey&&35!==t.keyCode&&36!==t.keyCode)return this[e]+=\"Left\"===s?-1:1,!0;i=this[\"findLineBoundary\".concat(s)](this[e])}return void 0!==i&&this[e]!==i&&(this[e]=i,!0)}_moveLeft(t,e){return this._move(t,e,\"Left\")}_moveRight(t,e){return this._move(t,e,\"Right\")}moveCursorLeftWithoutShift(t){let e=!0;return this._selectionDirection=M,this.selectionEnd===this.selectionStart&&0!==this.selectionStart&&(e=this._moveLeft(t,\"selectionStart\")),this.selectionEnd=this.selectionStart,e}moveCursorLeftWithShift(t){return this._selectionDirection===A&&this.selectionStart!==this.selectionEnd?this._moveLeft(t,\"selectionEnd\"):0!==this.selectionStart?(this._selectionDirection=M,this._moveLeft(t,\"selectionStart\")):void 0}moveCursorRight(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight(\"Right\",t)}_moveCursorLeftOrRight(t,e){const s=\"moveCursor\".concat(t).concat(e.shiftKey?\"WithShift\":\"WithoutShift\");this._currentCursorOpacity=1,this[s](e)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())}moveCursorRightWithShift(t){return this._selectionDirection===M&&this.selectionStart!==this.selectionEnd?this._moveRight(t,\"selectionStart\"):this.selectionEnd!==this._text.length?(this._selectionDirection=A,this._moveRight(t,\"selectionEnd\")):void 0}moveCursorRightWithoutShift(t){let e=!0;return this._selectionDirection=A,this.selectionStart===this.selectionEnd?(e=this._moveRight(t,\"selectionStart\"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,e}}const Io=t=>!!t.button;class Bo extends Ro{constructor(){super(...arguments),t(this,\"draggableTextDelegate\",void 0)}initBehavior(){this.on(\"mousedown\",this._mouseDownHandler),this.on(\"mouseup\",this.mouseUpHandler),this.on(\"mousedblclick\",this.doubleClickHandler),this.on(\"mousetripleclick\",this.tripleClickHandler),this.draggableTextDelegate=new jo(this),super.initBehavior()}shouldStartDragging(){return this.draggableTextDelegate.isActive()}onDragStart(t){return this.draggableTextDelegate.onDragStart(t)}canDrop(t){return this.draggableTextDelegate.canDrop(t)}doubleClickHandler(t){this.isEditing&&(this.selectWord(this.getSelectionStartFromPointer(t.e)),this.renderCursorOrSelection())}tripleClickHandler(t){this.isEditing&&(this.selectLine(this.getSelectionStartFromPointer(t.e)),this.renderCursorOrSelection())}_mouseDownHandler(t){let{e:e,alreadySelected:s}=t;this.canvas&&this.editable&&!Io(e)&&!this.getActiveControl()&&(this.draggableTextDelegate.start(e)||(this.canvas.textEditingManager.register(this),s&&(this.inCompositionMode=!1,this.setCursorByClick(e)),this.isEditing&&(this.__selectionStartOnMouseDown=this.selectionStart,this.selectionStart===this.selectionEnd&&this.abortCursorAnimation(),this.renderCursorOrSelection()),this.selected||(this.selected=s||this.isEditing)))}mouseUpHandler(t){let{e:e,transform:s}=t;const i=this.draggableTextDelegate.end(e);if(this.canvas){this.canvas.textEditingManager.unregister(this);const t=this.canvas._activeObject;if(t&&t!==this)return}!this.editable||this.group&&!this.group.interactive||s&&s.actionPerformed||Io(e)||i||this.selected&&!this.getActiveControl()&&(this.enterEditing(e),this.selectionStart===this.selectionEnd?this.initDelayedCursor(!0):this.renderCursorOrSelection())}setCursorByClick(t){const e=this.getSelectionStartFromPointer(t),s=this.selectionStart,i=this.selectionEnd;t.shiftKey?this.setSelectionStartEndWithShift(s,i,e):(this.selectionStart=e,this.selectionEnd=e),this.isEditing&&(this._fireSelectionChanged(),this._updateTextarea())}getSelectionStartFromPointer(t){const e=this.canvas.getScenePoint(t).transform(wt(this.calcTransformMatrix())).add(new ot(-this._getLeftOffset(),-this._getTopOffset()));let s=0,i=0,r=0;for(let t=0;t<this._textLines.length&&s<=e.y;t++)s+=this.getHeightOfLine(t),r=t,t>0&&(i+=this._textLines[t-1].length+this.missingNewlineOffset(t-1));let n=Math.abs(this._getLineLeftOffset(r));const o=this._textLines[r].length,a=this.__charBounds[r];for(let t=0;t<o;t++){const s=n+a[t].kernedWidth;if(e.x<=s){Math.abs(e.x-s)<=Math.abs(e.x-n)&&i++;break}n=s,i++}return Math.min(this.flipX?o-i:i,this._text.length)}}const Xo=\"moveCursorUp\",Yo=\"moveCursorDown\",Wo=\"moveCursorLeft\",Vo=\"moveCursorRight\",zo=\"exitEditing\",Go=(t,e)=>{const s=e.getRetinaScaling();t.setTransform(s,0,0,s,0,0);const i=e.viewportTransform;t.transform(i[0],i[1],i[2],i[3],i[4],i[5])},Ho=s({selectionStart:0,selectionEnd:0,selectionColor:\"rgba(17,119,255,0.3)\",isEditing:!1,editable:!0,editingBorderColor:\"rgba(102,153,255,0.25)\",cursorWidth:2,cursorColor:\"\",cursorDelay:1e3,cursorDuration:600,caching:!0,hiddenTextareaContainer:null,keysMap:{9:zo,27:zo,33:Xo,34:Yo,35:Vo,36:Wo,37:Wo,38:Xo,39:Vo,40:Yo},keysMapRtl:{9:zo,27:zo,33:Xo,34:Yo,35:Wo,36:Vo,37:Vo,38:Xo,39:Wo,40:Yo},ctrlKeysMapDown:{65:\"cmdAll\"},ctrlKeysMapUp:{67:\"copy\",88:\"cut\"}},{_selectionDirection:null,_reSpace:/\\s|\\r?\\n/,inCompositionMode:!1});class No extends Bo{static getDefaults(){return s(s({},super.getDefaults()),No.ownDefaults)}get type(){const t=super.type;return\"itext\"===t?\"i-text\":t}constructor(t,e){super(t,s(s({},No.ownDefaults),e)),this.initBehavior()}_set(t,e){return this.isEditing&&this._savedProps&&t in this._savedProps?(this._savedProps[t]=e,this):(\"canvas\"===t&&(this.canvas instanceof Xn&&this.canvas.textEditingManager.remove(this),e instanceof Xn&&e.textEditingManager.add(this)),super._set(t,e))}setSelectionStart(t){t=Math.max(t,0),this._updateAndFire(\"selectionStart\",t)}setSelectionEnd(t){t=Math.min(t,this.text.length),this._updateAndFire(\"selectionEnd\",t)}_updateAndFire(t,e){this[t]!==e&&(this._fireSelectionChanged(),this[t]=e),this._updateTextarea()}_fireSelectionChanged(){this.fire(\"selection:changed\"),this.canvas&&this.canvas.fire(\"text:selection:changed\",{target:this})}initDimensions(){this.isEditing&&this.initDelayedCursor(),super.initDimensions()}getSelectionStyles(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.selectionStart||0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selectionEnd,s=arguments.length>2?arguments[2]:void 0;return super.getSelectionStyles(t,e,s)}setSelectionStyles(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selectionStart||0,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.selectionEnd;return super.setSelectionStyles(t,e,s)}get2DCursorLocation(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.selectionStart,e=arguments.length>1?arguments[1]:void 0;return super.get2DCursorLocation(t,e)}render(t){super.render(t),this.cursorOffsetCache={},this.renderCursorOrSelection()}toCanvasElement(t){const e=this.isEditing;this.isEditing=!1;const s=super.toCanvasElement(t);return this.isEditing=e,s}renderCursorOrSelection(){if(!this.isEditing||!this.canvas)return;const t=this.clearContextTop(!0);if(!t)return;const e=this._getCursorBoundaries(),s=this.findAncestorsWithClipPath(),i=s.length>0;let r,n=t;if(i){r=vt(t.canvas),n=r.getContext(\"2d\"),Go(n,this.canvas);const e=this.calcTransformMatrix();n.transform(e[0],e[1],e[2],e[3],e[4],e[5])}if(this.selectionStart!==this.selectionEnd||this.inCompositionMode?this.renderSelection(n,e):this.renderCursor(n,e),i)for(const e of s){const s=e.clipPath,i=vt(t.canvas),r=i.getContext(\"2d\");if(Go(r,this.canvas),!s.absolutePositioned){const t=e.calcTransformMatrix();r.transform(t[0],t[1],t[2],t[3],t[4],t[5])}s.transform(r),s.drawObject(r,!0,{}),this.drawClipPathOnCache(n,s,i)}i&&(t.setTransform(1,0,0,1,0,0),t.drawImage(r,0,0)),this.canvas.contextTopDirty=!0,t.restore()}findAncestorsWithClipPath(){const t=[];let e=this;for(;e;)e.clipPath&&t.push(e),e=e.parent;return t}_getCursorBoundaries(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.selectionStart,e=arguments.length>1?arguments[1]:void 0;const s=this._getLeftOffset(),i=this._getTopOffset(),r=this._getCursorBoundariesOffsets(t,e);return{left:s,top:i,leftOffset:r.left,topOffset:r.top}}_getCursorBoundariesOffsets(t,e){return e?this.__getCursorBoundariesOffsets(t):this.cursorOffsetCache&&\"top\"in this.cursorOffsetCache?this.cursorOffsetCache:this.cursorOffsetCache=this.__getCursorBoundariesOffsets(t)}__getCursorBoundariesOffsets(t){let e=0,s=0;const{charIndex:i,lineIndex:r}=this.get2DCursorLocation(t);for(let t=0;t<r;t++)e+=this.getHeightOfLine(t);const n=this._getLineLeftOffset(r),o=this.__charBounds[r][i];o&&(s=o.left),0!==this.charSpacing&&i===this._textLines[r].length&&(s-=this._getWidthOfCharSpacing());const a={top:e,left:n+(s>0?s:0)};return\"rtl\"===this.direction&&(this.textAlign===A||this.textAlign===Je||this.textAlign===Ze?a.left*=-1:this.textAlign===M||this.textAlign===Qe?a.left=n-(s>0?s:0):this.textAlign!==D&&this.textAlign!==$e||(a.left=n-(s>0?s:0))),a}renderCursorAt(t){this._renderCursor(this.canvas.contextTop,this._getCursorBoundaries(t,!0),t)}renderCursor(t,e){this._renderCursor(t,e,this.selectionStart)}getCursorRenderingData(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.selectionStart,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getCursorBoundaries(t);const s=this.get2DCursorLocation(t),i=s.lineIndex,r=s.charIndex>0?s.charIndex-1:0,n=this.getValueOfPropertyAt(i,r,\"fontSize\"),o=this.getObjectScaling().x*this.canvas.getZoom(),a=this.cursorWidth/o,h=this.getValueOfPropertyAt(i,r,\"deltaY\"),c=e.topOffset+(1-this._fontSizeFraction)*this.getHeightOfLine(i)/this.lineHeight-n*(1-this._fontSizeFraction);return{color:this.cursorColor||this.getValueOfPropertyAt(i,r,\"fill\"),opacity:this._currentCursorOpacity,left:e.left+e.leftOffset-a/2,top:c+e.top+h,width:a,height:n}}_renderCursor(t,e,s){const{color:i,opacity:r,left:n,top:o,width:a,height:h}=this.getCursorRenderingData(s,e);t.fillStyle=i,t.globalAlpha=r,t.fillRect(n,o,a,h)}renderSelection(t,e){const s={selectionStart:this.inCompositionMode?this.hiddenTextarea.selectionStart:this.selectionStart,selectionEnd:this.inCompositionMode?this.hiddenTextarea.selectionEnd:this.selectionEnd};this._renderSelection(t,s,e)}renderDragSourceEffect(){const t=this.draggableTextDelegate.getDragStartSelection();this._renderSelection(this.canvas.contextTop,t,this._getCursorBoundaries(t.selectionStart,!0))}renderDropTargetEffect(t){const e=this.getSelectionStartFromPointer(t);this.renderCursorAt(e)}_renderSelection(t,e,s){const i=e.selectionStart,r=e.selectionEnd,n=this.textAlign.includes(Je),o=this.get2DCursorLocation(i),a=this.get2DCursorLocation(r),h=o.lineIndex,c=a.lineIndex,l=o.charIndex<0?0:o.charIndex,u=a.charIndex<0?0:a.charIndex;for(let e=h;e<=c;e++){const i=this._getLineLeftOffset(e)||0;let r=this.getHeightOfLine(e),o=0,a=0,d=0;if(e===h&&(a=this.__charBounds[h][l].left),e>=h&&e<c)d=n&&!this.isEndOfWrapping(e)?this.width:this.getLineWidth(e)||5;else if(e===c)if(0===u)d=this.__charBounds[c][u].left;else{const t=this._getWidthOfCharSpacing();d=this.__charBounds[c][u-1].left+this.__charBounds[c][u-1].width-t}o=r,(this.lineHeight<1||e===c&&this.lineHeight>1)&&(r/=this.lineHeight);let g=s.left+i+a,f=r,p=0;const m=d-a;this.inCompositionMode?(t.fillStyle=this.compositionColor||\"black\",f=1,p=r):t.fillStyle=this.selectionColor,\"rtl\"===this.direction&&(this.textAlign===A||this.textAlign===Je||this.textAlign===Ze?g=this.width-g-m:this.textAlign===M||this.textAlign===Qe?g=s.left+i-d:this.textAlign!==D&&this.textAlign!==$e||(g=s.left+i-d)),t.fillRect(g,s.top+s.topOffset+p,m,f),s.topOffset+=o}}getCurrentCharFontSize(){const t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,\"fontSize\")}getCurrentCharColor(){const t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,K)}_getCurrentCharIndex(){const t=this.get2DCursorLocation(this.selectionStart,!0),e=t.charIndex>0?t.charIndex-1:0;return{l:t.lineIndex,c:e}}dispose(){this.exitEditingImpl(),this.draggableTextDelegate.dispose(),super.dispose()}}t(No,\"ownDefaults\",Ho),t(No,\"type\",\"IText\"),tt.setClass(No),tt.setClass(No,\"i-text\");class Uo extends No{static getDefaults(){return s(s({},super.getDefaults()),Uo.ownDefaults)}constructor(t,e){super(t,s(s({},Uo.ownDefaults),e))}static createControls(){return{controls:Ai()}}initDimensions(){this.initialized&&(this.isEditing&&this.initDelayedCursor(),this._clearCache(),this.dynamicMinWidth=0,this._styleMap=this._generateStyleMap(this._splitText()),this.dynamicMinWidth>this.width&&this._set(\"width\",this.dynamicMinWidth),this.textAlign.includes(Je)&&this.enlargeSpaces(),this.height=this.calcTextHeight())}_generateStyleMap(t){let e=0,s=0,i=0;const r={};for(let n=0;n<t.graphemeLines.length;n++)\"\\n\"===t.graphemeText[i]&&n>0?(s=0,i++,e++):!this.splitByGrapheme&&this._reSpaceAndTab.test(t.graphemeText[i])&&n>0&&(s++,i++),r[n]={line:e,offset:s},i+=t.graphemeLines[n].length,s+=t.graphemeLines[n].length;return r}styleHas(t,e){if(this._styleMap&&!this.isWrapping){const t=this._styleMap[e];t&&(e=t.line)}return super.styleHas(t,e)}isEmptyStyles(t){if(!this.styles)return!0;let e,s=0,i=t+1,r=!1;const n=this._styleMap[t],o=this._styleMap[t+1];n&&(t=n.line,s=n.offset),o&&(i=o.line,r=i===t,e=o.offset);const a=void 0===t?this.styles:{line:this.styles[t]};for(const t in a)for(const i in a[t]){const n=parseInt(i,10);if(n>=s&&(!r||n<e))for(const e in a[t][i])return!1}return!0}_getStyleDeclaration(t,e){if(this._styleMap&&!this.isWrapping){const s=this._styleMap[t];if(!s)return{};t=s.line,e=s.offset+e}return super._getStyleDeclaration(t,e)}_setStyleDeclaration(t,e,s){const i=this._styleMap[t];super._setStyleDeclaration(i.line,i.offset+e,s)}_deleteStyleDeclaration(t,e){const s=this._styleMap[t];super._deleteStyleDeclaration(s.line,s.offset+e)}_getLineStyle(t){const e=this._styleMap[t];return!!this.styles[e.line]}_setLineStyle(t){const e=this._styleMap[t];super._setLineStyle(e.line)}_wrapText(t,e){this.isWrapping=!0;const s=this.getGraphemeDataForRender(t),i=[];for(let t=0;t<s.wordsData.length;t++)i.push(...this._wrapLine(t,e,s));return this.isWrapping=!1,i}getGraphemeDataForRender(t){const e=this.splitByGrapheme,s=e?\"\":\" \";let i=0;return{wordsData:t.map(((t,r)=>{let n=0;const o=e?this.graphemeSplit(t):this.wordSplit(t);return 0===o.length?[{word:[],width:0}]:o.map((t=>{const o=e?[t]:this.graphemeSplit(t),a=this._measureWord(o,r,n);return i=Math.max(a,i),n+=o.length+s.length,{word:o,width:a}}))})),largestWordWidth:i}}_measureWord(t,e){let s,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=0;for(let n=0,o=t.length;n<o;n++){r+=this._getGraphemeBox(t[n],e,n+i,s,true).kernedWidth,s=t[n]}return r}wordSplit(t){return t.split(this._wordJoiners)}_wrapLine(t,e,s){let{largestWordWidth:i,wordsData:r}=s,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;const o=this._getWidthOfCharSpacing(),a=this.splitByGrapheme,h=[],c=a?\"\":\" \";let l=0,u=[],d=0,g=0,f=!0;e-=n;const p=Math.max(e,i,this.dynamicMinWidth),m=r[t];let v;for(d=0,v=0;v<m.length;v++){const{word:e,width:s}=m[v];d+=e.length,l+=g+s-o,l>p&&!f?(h.push(u),u=[],l=s,f=!0):l+=o,f||a||u.push(c),u=u.concat(e),g=a?0:this._measureWord([c],t,d),d++,f=!1}return v&&h.push(u),i+n>this.dynamicMinWidth&&(this.dynamicMinWidth=i-o+n),h}isEndOfWrapping(t){return!this._styleMap[t+1]||this._styleMap[t+1].line!==this._styleMap[t].line}missingNewlineOffset(t,e){return this.splitByGrapheme&&!e?this.isEndOfWrapping(t)?1:0:1}_splitTextIntoLines(t){const e=super._splitTextIntoLines(t),s=this._wrapText(e.lines,this.width),i=new Array(s.length);for(let t=0;t<s.length;t++)i[t]=s[t].join(\"\");return e.lines=i,e.graphemeLines=s,e}getMinWidth(){return Math.max(this.minWidth,this.dynamicMinWidth)}_removeExtraneousStyles(){const t=new Map;for(const e in this._styleMap){const s=parseInt(e,10);if(this._textLines[s]){const s=this._styleMap[e].line;t.set(\"\".concat(s),!0)}}for(const e in this.styles)t.has(e)||delete this.styles[e]}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return super.toObject([\"minWidth\",\"splitByGrapheme\",...t])}}t(Uo,\"type\",\"Textbox\"),t(Uo,\"textLayoutProperties\",[...No.textLayoutProperties,\"width\"]),t(Uo,\"ownDefaults\",{minWidth:20,dynamicMinWidth:2,lockScalingFlip:!0,noScaleCache:!1,_wordJoiners:/[ \\t\\r]/,splitByGrapheme:!1}),tt.setClass(Uo);class qo extends Xr{shouldPerformLayout(t){return!!t.target.clipPath&&super.shouldPerformLayout(t)}shouldLayoutClipPath(){return!1}calcLayoutResult(t,e){const{target:s}=t,{clipPath:i,group:r}=s;if(!i||!this.shouldPerformLayout(t))return;const{width:n,height:o}=he(Br(s,i)),a=new ot(n,o);if(i.absolutePositioned){return{center:me(i.getRelativeCenterPoint(),void 0,r?r.calcTransformMatrix():void 0),size:a}}{const r=i.getRelativeCenterPoint().transform(s.calcOwnMatrix(),!0);if(this.shouldPerformLayout(t)){const{center:s=new ot,correction:i=new ot}=this.calcBoundingBox(e,t)||{};return{center:s.add(r),correction:i.subtract(r),size:a}}return{center:s.getRelativeCenterPoint().add(r),size:a}}}}t(qo,\"type\",\"clip-path\"),tt.setClass(qo);class Ko extends Xr{getInitialSize(t,e){let{target:s}=t,{size:i}=e;return new ot(s.width||i.x,s.height||i.y)}}t(Ko,\"type\",\"fixed\"),tt.setClass(Ko);class Jo extends Gr{subscribeTargets(t){const e=t.target;t.targets.reduce(((t,e)=>(e.parent&&t.add(e.parent),t)),new Set).forEach((t=>{t.layoutManager.subscribeTargets({target:t,targets:[e]})}))}unsubscribeTargets(t){const e=t.target,s=e.getObjects();t.targets.reduce(((t,e)=>(e.parent&&t.add(e.parent),t)),new Set).forEach((t=>{!s.some((e=>e.parent===t))&&t.layoutManager.unsubscribeTargets({target:t,targets:[e]})}))}}class Qo extends Ur{static getDefaults(){return s(s({},super.getDefaults()),Qo.ownDefaults)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),Object.assign(this,Qo.ownDefaults),this.setOptions(e);const{left:s,top:i,layoutManager:r}=e;this.groupInit(t,{left:s,top:i,layoutManager:null!=r?r:new Jo})}_shouldSetNestedCoords(){return!0}__objectSelectionMonitor(){}multiSelectAdd(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];\"selection-order\"===this.multiSelectionStacking?this.add(...e):e.forEach((t=>{const e=this._objects.findIndex((e=>e.isInFrontOf(t))),s=-1===e?this.size():e;this.insertAt(s,t)}))}canEnterGroup(t){return this.getObjects().some((e=>e.isDescendantOf(t)||t.isDescendantOf(e)))?(a(\"error\",\"ActiveSelection: circular object trees are not supported, this call has no effect\"),!1):super.canEnterGroup(t)}enterGroup(t,e){t.parent&&t.parent===t.group?t.parent._exitGroup(t):t.group&&t.parent!==t.group&&t.group.remove(t),this._enterGroup(t,e)}exitGroup(t,e){this._exitGroup(t,e),t.parent&&t.parent._enterGroup(t,!0)}_onAfterObjectsChange(t,e){super._onAfterObjectsChange(t,e);const s=new Set;e.forEach((t=>{const{parent:e}=t;e&&s.add(e)})),t===Rr?s.forEach((t=>{t._onAfterObjectsChange(Lr,e)})):s.forEach((t=>{t._set(\"dirty\",!0)}))}onDeselect(){return this.removeAll(),!1}toString(){return\"#<ActiveSelection: (\".concat(this.complexity(),\")>\")}shouldCache(){return!1}isOnACache(){return!1}_renderControls(t,e,i){t.save(),t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1;const r=s(s({hasControls:!1},i),{},{forActiveSelection:!0});for(let e=0;e<this._objects.length;e++)this._objects[e]._renderControls(t,r);super._renderControls(t,e),t.restore()}}t(Qo,\"type\",\"ActiveSelection\"),t(Qo,\"ownDefaults\",{multiSelectionStacking:\"canvas-stacking\"}),tt.setClass(Qo),tt.setClass(Qo,\"activeSelection\");class Zo{constructor(){t(this,\"resources\",{})}applyFilters(t,e,s,i,r){const n=r.getContext(\"2d\");if(!n)return;n.drawImage(e,0,0,s,i);const o={sourceWidth:s,sourceHeight:i,imageData:n.getImageData(0,0,s,i),originalEl:e,originalImageData:n.getImageData(0,0,s,i),canvasEl:r,ctx:n,filterBackend:this};t.forEach((t=>{t.applyTo(o)}));const{imageData:a}=o;return a.width===s&&a.height===i||(r.width=a.width,r.height=a.height),n.putImageData(a,0,0),o}}class $o{constructor(){let{tileSize:e=o.textureSize}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t(this,\"aPosition\",new Float32Array([0,0,0,1,1,0,1,1])),t(this,\"resources\",{}),this.tileSize=e,this.setupGLContext(e,e),this.captureGPUInfo()}setupGLContext(t,e){this.dispose(),this.createWebGLCanvas(t,e)}createWebGLCanvas(t,e){const s=vt({width:t,height:e}),i=s.getContext(\"webgl\",{alpha:!0,premultipliedAlpha:!1,depth:!1,stencil:!1,antialias:!1});i&&(i.clearColor(0,0,0,0),this.canvas=s,this.gl=i)}applyFilters(t,e,s,i,r,n){const o=this.gl,a=r.getContext(\"2d\");if(!o||!a)return;let h;n&&(h=this.getCachedTexture(n,e));const c={originalWidth:e.width||e.naturalWidth||0,originalHeight:e.height||e.naturalHeight||0,sourceWidth:s,sourceHeight:i,destinationWidth:s,destinationHeight:i,context:o,sourceTexture:this.createTexture(o,s,i,h?void 0:e),targetTexture:this.createTexture(o,s,i),originalTexture:h||this.createTexture(o,s,i,h?void 0:e),passes:t.length,webgl:!0,aPosition:this.aPosition,programCache:this.programCache,pass:0,filterBackend:this,targetCanvas:r},l=o.createFramebuffer();return o.bindFramebuffer(o.FRAMEBUFFER,l),t.forEach((t=>{t&&t.applyTo(c)})),function(t){const e=t.targetCanvas,s=e.width,i=e.height,r=t.destinationWidth,n=t.destinationHeight;s===r&&i===n||(e.width=r,e.height=n)}(c),this.copyGLTo2D(o,c),o.bindTexture(o.TEXTURE_2D,null),o.deleteTexture(c.sourceTexture),o.deleteTexture(c.targetTexture),o.deleteFramebuffer(l),a.setTransform(1,0,0,1,0,0),c}dispose(){this.canvas&&(this.canvas=null,this.gl=null),this.clearWebGLCaches()}clearWebGLCaches(){this.programCache={},this.textureCache={}}createTexture(t,e,s,i,r){const{NEAREST:n,TEXTURE_2D:o,RGBA:a,UNSIGNED_BYTE:h,CLAMP_TO_EDGE:c,TEXTURE_MAG_FILTER:l,TEXTURE_MIN_FILTER:u,TEXTURE_WRAP_S:d,TEXTURE_WRAP_T:g}=t,f=t.createTexture();return t.bindTexture(o,f),t.texParameteri(o,l,r||n),t.texParameteri(o,u,r||n),t.texParameteri(o,d,c),t.texParameteri(o,g,c),i?t.texImage2D(o,0,a,a,h,i):t.texImage2D(o,0,a,e,s,0,a,h,null),f}getCachedTexture(t,e,s){const{textureCache:i}=this;if(i[t])return i[t];{const r=this.createTexture(this.gl,e.width,e.height,e,s);return r&&(i[t]=r),r}}evictCachesForKey(t){this.textureCache[t]&&(this.gl.deleteTexture(this.textureCache[t]),delete this.textureCache[t])}copyGLTo2D(t,e){const s=t.canvas,i=e.targetCanvas,r=i.getContext(\"2d\");if(!r)return;r.translate(0,i.height),r.scale(1,-1);const n=s.height-i.height;r.drawImage(s,0,n,i.width,i.height,0,0,i.width,i.height)}copyGLTo2DPutImageData(t,e){const s=e.targetCanvas.getContext(\"2d\"),i=e.destinationWidth,r=e.destinationHeight,n=i*r*4;if(!s)return;const o=new Uint8Array(this.imageBuffer,0,n),a=new Uint8ClampedArray(this.imageBuffer,0,n);t.readPixels(0,0,i,r,t.RGBA,t.UNSIGNED_BYTE,o);const h=new ImageData(a,i,r);s.putImageData(h,0,0)}captureGPUInfo(){if(this.gpuInfo)return this.gpuInfo;const t=this.gl,e={renderer:\"\",vendor:\"\"};if(!t)return e;const s=t.getExtension(\"WEBGL_debug_renderer_info\");if(s){const i=t.getParameter(s.UNMASKED_RENDERER_WEBGL),r=t.getParameter(s.UNMASKED_VENDOR_WEBGL);i&&(e.renderer=i.toLowerCase()),r&&(e.vendor=r.toLowerCase())}return this.gpuInfo=e,e}}let ta;function ea(){const{WebGLProbe:t}=p();return t.queryWebGL(pt()),o.enableGLFiltering&&t.isSupported(o.textureSize)?new $o({tileSize:o.textureSize}):new Zo}function sa(){return!ta&&(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&(ta=ea()),ta}function ia(t){ta=t}const ra=[\"filters\",\"resizeFilter\",\"src\",\"crossOrigin\",\"type\"],na=[\"cropX\",\"cropY\"];class oa extends Li{static getDefaults(){return s(s({},super.getDefaults()),oa.ownDefaults)}constructor(e,s){super(),t(this,\"_lastScaleX\",1),t(this,\"_lastScaleY\",1),t(this,\"_filterScalingX\",1),t(this,\"_filterScalingY\",1),this.filters=[],Object.assign(this,oa.ownDefaults),this.setOptions(s),this.cacheKey=\"texture\".concat(ft()),this.setElement(\"string\"==typeof e?(this.canvas&&Kt(this.canvas.getElement())||m()).getElementById(e):e,s)}getElement(){return this._element}setElement(t){var e;let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.removeTexture(this.cacheKey),this.removeTexture(\"\".concat(this.cacheKey,\"_filtered\")),this._element=t,this._originalElement=t,this._setWidthHeight(s),null===(e=t.classList)||void 0===e||e.add(oa.CSS_CANVAS),0!==this.filters.length&&this.applyFilters(),this.resizeFilter&&this.applyResizeFilters()}removeTexture(t){const e=sa(!1);e instanceof $o&&e.evictCachesForKey(t)}dispose(){super.dispose(),this.removeTexture(this.cacheKey),this.removeTexture(\"\".concat(this.cacheKey,\"_filtered\")),this._cacheContext=null,[\"_originalElement\",\"_element\",\"_filteredEl\",\"_cacheCanvas\"].forEach((t=>{const e=this[t];e&&p().dispose(e),this[t]=void 0}))}getCrossOrigin(){return this._originalElement&&(this._originalElement.crossOrigin||null)}getOriginalSize(){const t=this.getElement();return t?{width:t.naturalWidth||t.width,height:t.naturalHeight||t.height}:{width:0,height:0}}_stroke(t){if(!this.stroke||0===this.strokeWidth)return;const e=this.width/2,s=this.height/2;t.beginPath(),t.moveTo(-e,-s),t.lineTo(e,-s),t.lineTo(e,s),t.lineTo(-e,s),t.lineTo(-e,-s),t.closePath()}toObject(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e=[];return this.filters.forEach((t=>{t&&e.push(t.toObject())})),s(s({},super.toObject([...na,...t])),{},{src:this.getSrc(),crossOrigin:this.getCrossOrigin(),filters:e},this.resizeFilter?{resizeFilter:this.resizeFilter.toObject()}:{})}hasCrop(){return!!this.cropX||!!this.cropY||this.width<this._element.width||this.height<this._element.height}_toSVG(){const t=[],e=this._element,s=-this.width/2,i=-this.height/2;let r=[],n=[],o=\"\",a=\"\";if(!e)return[];if(this.hasCrop()){const t=ft();r.push('<clipPath id=\"imageCrop_'+t+'\">\\n','\\t<rect x=\"'+s+'\" y=\"'+i+'\" width=\"'+this.width+'\" height=\"'+this.height+'\" />\\n',\"</clipPath>\\n\"),o=' clip-path=\"url(#imageCrop_'+t+')\" '}if(this.imageSmoothing||(a=' image-rendering=\"optimizeSpeed\"'),t.push(\"\\t<image \",\"COMMON_PARTS\",'xlink:href=\"'.concat(this.getSvgSrc(!0),'\" x=\"').concat(s-this.cropX,'\" y=\"').concat(i-this.cropY,'\" width=\"').concat(e.width||e.naturalWidth,'\" height=\"').concat(e.height||e.naturalHeight,'\"').concat(a).concat(o,\"></image>\\n\")),this.stroke||this.strokeDashArray){const t=this.fill;this.fill=null,n=['\\t<rect x=\"'.concat(s,'\" y=\"').concat(i,'\" width=\"').concat(this.width,'\" height=\"').concat(this.height,'\" style=\"').concat(this.getSvgStyles(),'\" />\\n')],this.fill=t}return r=this.paintFirst!==K?r.concat(n,t):r.concat(t,n),r}getSrc(t){const e=t?this._element:this._originalElement;return e?e.toDataURL?e.toDataURL():this.srcFromAttribute?e.getAttribute(\"src\")||\"\":e.src:this.src||\"\"}getSvgSrc(t){return this.getSrc(t)}setSrc(t){let{crossOrigin:e,signal:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return It(t,{crossOrigin:e,signal:s}).then((t=>{void 0!==e&&this.set({crossOrigin:e}),this.setElement(t)}))}toString(){return'#<Image: { src: \"'.concat(this.getSrc(),'\" }>')}applyResizeFilters(){const t=this.resizeFilter,e=this.minimumScaleTrigger,s=this.getTotalObjectScaling(),i=s.x,r=s.y,n=this._filteredEl||this._originalElement;if(this.group&&this.set(\"dirty\",!0),!t||i>e&&r>e)return this._element=n,this._filterScalingX=1,this._filterScalingY=1,this._lastScaleX=i,void(this._lastScaleY=r);const o=vt(n),{width:a,height:h}=n;this._element=o,this._lastScaleX=t.scaleX=i,this._lastScaleY=t.scaleY=r,sa().applyFilters([t],n,a,h,this._element),this._filterScalingX=o.width/this._originalElement.width,this._filterScalingY=o.height/this._originalElement.height}applyFilters(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.filters||[];if(t=t.filter((t=>t&&!t.isNeutralState())),this.set(\"dirty\",!0),this.removeTexture(\"\".concat(this.cacheKey,\"_filtered\")),0===t.length)return this._element=this._originalElement,this._filteredEl=void 0,this._filterScalingX=1,void(this._filterScalingY=1);const e=this._originalElement,s=e.naturalWidth||e.width,i=e.naturalHeight||e.height;if(this._element===this._originalElement){const t=vt({width:s,height:i});this._element=t,this._filteredEl=t}else this._filteredEl&&(this._element=this._filteredEl,this._filteredEl.getContext(\"2d\").clearRect(0,0,s,i),this._lastScaleX=1,this._lastScaleY=1);sa().applyFilters(t,this._originalElement,s,i,this._element,this.cacheKey),this._originalElement.width===this._element.width&&this._originalElement.height===this._element.height||(this._filterScalingX=this._element.width/this._originalElement.width,this._filterScalingY=this._element.height/this._originalElement.height)}_render(t){t.imageSmoothingEnabled=this.imageSmoothing,!0!==this.isMoving&&this.resizeFilter&&this._needsResize()&&this.applyResizeFilters(),this._stroke(t),this._renderPaintInOrder(t)}drawCacheOnCanvas(t){t.imageSmoothingEnabled=this.imageSmoothing,super.drawCacheOnCanvas(t)}shouldCache(){return this.needsItsOwnCache()}_renderFill(t){const e=this._element;if(!e)return;const s=this._filterScalingX,i=this._filterScalingY,r=this.width,n=this.height,o=Math.max(this.cropX,0),a=Math.max(this.cropY,0),h=e.naturalWidth||e.width,c=e.naturalHeight||e.height,l=o*s,u=a*i,d=Math.min(r*s,h-l),g=Math.min(n*i,c-u),f=-r/2,p=-n/2,m=Math.min(r,h/s-o),v=Math.min(n,c/i-a);e&&t.drawImage(e,l,u,d,g,f,p,m,v)}_needsResize(){const t=this.getTotalObjectScaling();return t.x!==this._lastScaleX||t.y!==this._lastScaleY}_resetWidthHeight(){this.set(this.getOriginalSize())}_setWidthHeight(){let{width:t,height:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const s=this.getOriginalSize();this.width=t||s.width,this.height=e||s.height}parsePreserveAspectRatioAttribute(){const t=Xe(this.preserveAspectRatio||\"\"),e=this.width,s=this.height,i={width:e,height:s};let r,n=this._element.width,o=this._element.height,a=1,h=1,c=0,l=0,u=0,d=0;return!t||t.alignX===j&&t.alignY===j?(a=e/n,h=s/o):(\"meet\"===t.meetOrSlice&&(a=h=qr(this._element,i),r=(e-n*a)/2,\"Min\"===t.alignX&&(c=-r),\"Max\"===t.alignX&&(c=r),r=(s-o*h)/2,\"Min\"===t.alignY&&(l=-r),\"Max\"===t.alignY&&(l=r)),\"slice\"===t.meetOrSlice&&(a=h=Kr(this._element,i),r=n-e/a,\"Mid\"===t.alignX&&(u=r/2),\"Max\"===t.alignX&&(u=r),r=o-s/h,\"Mid\"===t.alignY&&(d=r/2),\"Max\"===t.alignY&&(d=r),n=e/a,o=s/h)),{width:n,height:o,scaleX:a,scaleY:h,offsetLeft:c,offsetTop:l,cropX:u,cropY:d}}static fromObject(t,e){let{filters:r,resizeFilter:n,src:o,crossOrigin:a,type:h}=t,c=i(t,ra);return Promise.all([It(o,s(s({},e),{},{crossOrigin:a})),r&&Bt(r,e),n&&Bt([n],e),Xt(c,e)]).then((t=>{let[e,i=[],[r]=[],n={}]=t;return new this(e,s(s({},c),{},{src:o,filters:i,resizeFilter:r},n))}))}static fromURL(t){let{crossOrigin:e=null,signal:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0;return It(t,{crossOrigin:e,signal:s}).then((t=>new this(t,i)))}static async fromElement(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments.length>2?arguments[2]:void 0;const i=Pr(t,this.ATTRIBUTE_NAMES,s);return this.fromURL(i[\"xlink:href\"]||i.href,e,i).catch((t=>(a(\"log\",\"Unable to parse Image\",t),null)))}}function aa(t){if(!us.test(t.nodeName))return{};const e=t.getAttribute(\"viewBox\");let s,i,r=1,n=1,o=0,a=0;const h=t.getAttribute(\"width\"),c=t.getAttribute(\"height\"),l=t.getAttribute(\"x\")||0,u=t.getAttribute(\"y\")||0,d=!(e&&gs.test(e)),g=!h||!c||\"100%\"===h||\"100%\"===c;let f=\"\",p=0,m=0;if(d&&(l||u)&&t.parentNode&&\"#document\"!==t.parentNode.nodeName&&(f=\" translate(\"+Be(l||\"0\")+\" \"+Be(u||\"0\")+\") \",s=(t.getAttribute(\"transform\")||\"\")+f,t.setAttribute(\"transform\",s),t.removeAttribute(\"x\"),t.removeAttribute(\"y\")),d&&g)return{width:0,height:0};const v={width:0,height:0};if(d)return v.width=Be(h),v.height=Be(c),v;const y=e.match(gs);o=-parseFloat(y[1]),a=-parseFloat(y[2]);const _=parseFloat(y[3]),x=parseFloat(y[4]);v.minX=o,v.minY=a,v.viewBoxWidth=_,v.viewBoxHeight=x,g?(v.width=_,v.height=x):(v.width=Be(h),v.height=Be(c),r=v.width/_,n=v.height/x);const C=Xe(t.getAttribute(\"preserveAspectRatio\")||\"\");if(C.alignX!==j&&(\"meet\"===C.meetOrSlice&&(n=r=r>n?n:r),\"slice\"===C.meetOrSlice&&(n=r=r>n?r:n),p=v.width-_*r,m=v.height-x*r,\"Mid\"===C.alignX&&(p/=2),\"Mid\"===C.alignY&&(m/=2),\"Min\"===C.alignX&&(p=0),\"Min\"===C.alignY&&(m=0)),1===r&&1===n&&0===o&&0===a&&0===l&&0===u)return v;if((l||u)&&\"#document\"!==t.parentNode.nodeName&&(f=\" translate(\"+Be(l||\"0\")+\" \"+Be(u||\"0\")+\") \"),s=f+\" matrix(\"+r+\" 0 0 \"+n+\" \"+(o*r+p)+\" \"+(a*n+m)+\") \",\"svg\"===t.nodeName){for(i=t.ownerDocument.createElementNS(ns,\"g\");t.firstChild;)i.appendChild(t.firstChild);t.appendChild(i)}else i=t,i.removeAttribute(\"x\"),i.removeAttribute(\"y\"),s=i.getAttribute(\"transform\")+s;return i.setAttribute(\"transform\",s),v}t(oa,\"type\",\"Image\"),t(oa,\"cacheProperties\",[...Es,...na]),t(oa,\"ownDefaults\",{strokeWidth:0,srcFromAttribute:!1,minimumScaleTrigger:.5,cropX:0,cropY:0,imageSmoothing:!0}),t(oa,\"CSS_CANVAS\",\"canvas-img\"),t(oa,\"ATTRIBUTE_NAMES\",[...Zi,\"x\",\"y\",\"width\",\"height\",\"preserveAspectRatio\",\"xlink:href\",\"href\",\"crossOrigin\",\"image-rendering\"]),tt.setClass(oa),tt.setSVGClass(oa);const ha=t=>t.tagName.replace(\"svg:\",\"\"),ca=Ve([\"pattern\",\"defs\",\"symbol\",\"metadata\",\"clipPath\",\"mask\",\"desc\"]);function la(t,e){let s,i,r,n,o=[];for(r=0,n=e.length;r<n;r++)s=e[r],i=t.getElementsByTagNameNS(\"http://www.w3.org/2000/svg\",s),o=o.concat(Array.from(i));return o}const ua=[\"gradientTransform\",\"x1\",\"x2\",\"y1\",\"y2\",\"gradientUnits\",\"cx\",\"cy\",\"r\",\"fx\",\"fy\"],da=\"xlink:href\";function ga(t,e){var s;const i=(null===(s=e.getAttribute(da))||void 0===s?void 0:s.slice(1))||\"\",r=t.getElementById(i);if(r&&r.getAttribute(da)&&ga(t,r),r&&(ua.forEach((t=>{const s=r.getAttribute(t);!e.hasAttribute(t)&&s&&e.setAttribute(t,s)})),!e.children.length)){const t=r.cloneNode(!0);for(;t.firstChild;)e.appendChild(t.firstChild)}e.removeAttribute(da)}const fa=[\"linearGradient\",\"radialGradient\",\"svg:linearGradient\",\"svg:radialGradient\"];function pa(t){const e=t.getElementsByTagName(\"style\"),i={};for(let t=0;t<e.length;t++){const r=(e[t].textContent||\"\").replace(/\\/\\*[\\s\\S]*?\\*\\//g,\"\");\"\"!==r.trim()&&r.split(\"}\").filter(((t,e,s)=>s.length>1&&t.trim())).forEach((t=>{if((t.match(/{/g)||[]).length>1&&t.trim().startsWith(\"@\"))return;const e=t.split(\"{\"),r={},n=e[1].trim().split(\";\").filter((function(t){return t.trim()}));for(let t=0;t<n.length;t++){const e=n[t].split(\":\"),s=e[0].trim(),i=e[1].trim();r[s]=i}(t=e[0].trim()).split(\",\").forEach((t=>{\"\"!==(t=t.replace(/^svg/i,\"\").trim())&&(i[t]=s(s({},i[t]||{}),r))}))}))}return i}const ma=t=>tt.getSVGClass(ha(t).toLowerCase());class va{constructor(t,e,s,i,r){this.elements=t,this.options=e,this.reviver=s,this.regexUrl=/^url\\(['\"]?#([^'\"]+)['\"]?\\)/g,this.doc=i,this.clipPaths=r,this.gradientDefs=function(t){const e=la(t,fa),s={};let i=e.length;for(;i--;){const r=e[i];r.getAttribute(\"xlink:href\")&&ga(t,r);const n=r.getAttribute(\"id\");n&&(s[n]=r)}return s}(i),this.cssRules=pa(i)}parse(){return Promise.all(this.elements.map((t=>this.createObject(t))))}async createObject(t){const e=ma(t);if(e){const s=await e.fromElement(t,this.options,this.cssRules);return this.resolveGradient(s,t,K),this.resolveGradient(s,t,J),s instanceof oa&&s._originalElement?Dn(s,s.parsePreserveAspectRatioAttribute()):Dn(s),await this.resolveClipPath(s,t),this.reviver&&this.reviver(t,s),s}return null}extractPropertyDefinition(t,e,s){const i=t[e],r=this.regexUrl;if(!r.test(i))return;r.lastIndex=0;const n=r.exec(i)[1];return r.lastIndex=0,s[n]}resolveGradient(t,e,i){const r=this.extractPropertyDefinition(t,i,this.gradientDefs);if(r){const n=e.getAttribute(i+\"-opacity\"),o=$n.fromElement(r,t,s(s({},this.options),{},{opacity:n}));t.set(i,o)}}async resolveClipPath(t,e,s){const i=this.extractPropertyDefinition(t,\"clipPath\",this.clipPaths);if(i){const r=wt(t.calcTransformMatrix()),n=i[0].parentElement;let o=e;for(;!s&&o.parentElement&&o.getAttribute(\"clip-path\")!==t.clipPath;)o=o.parentElement;o.parentElement.appendChild(n);const a=wr(\"\".concat(o.getAttribute(\"transform\")||\"\",\" \").concat(n.getAttribute(\"originalTransform\")||\"\"));n.setAttribute(\"transform\",\"matrix(\".concat(a.join(\",\"),\")\"));const h=await Promise.all(i.map((t=>ma(t).fromElement(t,this.options,this.cssRules).then((t=>(Dn(t),t.fillRule=t.clipRule,delete t.clipRule,t)))))),c=1===h.length?h[0]:new Ur(h),l=Tt(r,c.calcTransformMatrix());c.clipPath&&await this.resolveClipPath(c,o,n.getAttribute(\"clip-path\")?o:void 0);const{scaleX:u,scaleY:d,angle:g,skewX:f,translateX:p,translateY:m}=Dt(l);c.set({flipX:!1,flipY:!1}),c.set({scaleX:u,scaleY:d,angle:g,skewX:f,skewY:0}),c.setPositionByOrigin(new ot(p,m),D,D),t.clipPath=c}else delete t.clipPath}}const ya=t=>ls.test(ha(t)),_a=()=>({objects:[],elements:[],options:{},allElements:[]});async function xa(t,e){let{crossOrigin:i,signal:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(r&&r.aborted)return a(\"log\",new c(\"parseSVGDocument\")),_a();const n=t.documentElement;!function(t){const e=la(t,[\"use\",\"svg:use\"]),s=[\"x\",\"y\",\"xlink:href\",\"href\",\"transform\"];for(const i of e){const e=i.attributes,r={};for(const t of e)t.value&&(r[t.name]=t.value);const n=(r[\"xlink:href\"]||r.href||\"\").slice(1);if(\"\"===n)return;const o=t.getElementById(n);if(null===o)return;let a=o.cloneNode(!0);const h=a.attributes,c={};for(const t of h)t.value&&(c[t.name]=t.value);const{x:l=0,y:u=0,transform:d=\"\"}=r,g=\"\".concat(d,\" \").concat(c.transform||\"\",\" translate(\").concat(l,\", \").concat(u,\")\");if(aa(a),/^svg$/i.test(a.nodeName)){const t=a.ownerDocument.createElementNS(ns,\"g\");Object.entries(c).forEach((e=>{let[s,i]=e;return t.setAttributeNS(ns,s,i)})),t.append(...a.childNodes),a=t}for(const t of e){if(!t)continue;const{name:e,value:i}=t;if(!s.includes(e))if(\"style\"===e){const t={};kr(i,t),Object.entries(c).forEach((e=>{let[s,i]=e;t[s]=i})),kr(c.style||\"\",t);const s=Object.entries(t).map((t=>t.join(\":\"))).join(\";\");a.setAttribute(e,s)}else!c[e]&&a.setAttribute(e,i)}a.setAttribute(\"transform\",g),a.setAttribute(\"instantiated_by_use\",\"1\"),a.removeAttribute(\"id\"),i.parentNode.replaceChild(a,i)}}(t);const o=Array.from(n.getElementsByTagName(\"*\")),h=s(s({},aa(n)),{},{crossOrigin:i,signal:r}),l=o.filter((t=>(aa(t),ya(t)&&!function(t){let e=t;for(;e&&(e=e.parentElement);)if(e&&e.nodeName&&ca.test(ha(e))&&!e.getAttribute(\"instantiated_by_use\"))return!0;return!1}(t))));if(!l||l&&!l.length)return s(s({},_a()),{},{options:h,allElements:o});const u={};o.filter((t=>\"clipPath\"===ha(t))).forEach((t=>{t.setAttribute(\"originalTransform\",t.getAttribute(\"transform\")||\"\");const e=t.getAttribute(\"id\");u[e]=Array.from(t.getElementsByTagName(\"*\")).filter((t=>ya(t)))}));const d=new va(l,h,e,t,u);return{objects:await d.parse(),elements:l,options:h,allElements:o}}function Ca(t,e,s){return xa((new(v().DOMParser)).parseFromString(t.trim(),\"text/xml\"),e,s)}function ba(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(((e,i)=>{kn(t.replace(/^\\n\\s*/,\"\").trim(),{onComplete:t=>{const s=t.responseXML;s&&e(s),i()},signal:s.signal})})).then((t=>xa(t,e,s))).catch((()=>_a()))}const Sa=W,wa=t=>function(e,s,i){const{points:r,pathOffset:n}=i;return new ot(r[t]).subtract(n).transform(Tt(i.getViewportTransform(),i.calcTransformMatrix()))},Ta=(t,e,s,i)=>{const{target:r,pointIndex:n}=e,o=r,a=me(new ot(s,i),void 0,o.calcOwnMatrix());return o.points[n]=a.add(o.pathOffset),o.setDimensions(),o.set(\"dirty\",!0),!0},Oa=(t,e)=>function(i,r,n,o){const a=r.target,h=new ot(a.points[(t>0?t:a.points.length)-1]),c=h.subtract(a.pathOffset).transform(a.calcOwnMatrix()),l=e(i,s(s({},r),{},{pointIndex:t}),n,o),u=h.subtract(a.pathOffset).transform(a.calcOwnMatrix()).subtract(c);return a.left-=u.x,a.top-=u.y,l},ka=t=>si(Sa,Oa(t,Ta));const Da=(t,e,s)=>{const{path:i,pathOffset:r}=t,n=i[e];return new ot(n[s]-r.x,n[s+1]-r.y).transform(Tt(t.getViewportTransform(),t.calcTransformMatrix()))};function Ma(t,e,s){const{commandIndex:i,pointIndex:r}=this;return Da(s,i,r)}function Pa(t,e,i,r){const{target:n}=e,{commandIndex:o,pointIndex:a}=this,h=((t,e,s,i,r)=>{const{path:n,pathOffset:o}=t,a=n[(i>0?i:n.length)-1],h=new ot(a[r],a[r+1]),c=h.subtract(o).transform(t.calcOwnMatrix()),l=me(new ot(e,s),void 0,t.calcOwnMatrix());n[i][r]=l.x+o.x,n[i][r+1]=l.y+o.y,t.setDimensions();const u=h.subtract(t.pathOffset).transform(t.calcOwnMatrix()).subtract(c);return t.left-=u.x,t.top-=u.y,t.set(\"dirty\",!0),!0})(n,i,r,o,a);return _e(this.actionName,s(s({},Oe(t,e,i,r)),{},{commandIndex:o,pointIndex:a})),h}class Ea extends ai{constructor(t){super(t)}render(t,e,i,r,n){const o=s(s({},r),{},{cornerColor:this.controlFill,cornerStrokeColor:this.controlStroke,transparentCorners:!this.controlFill});super.render(t,e,i,o,n)}}class Aa extends Ea{constructor(t){super(t)}render(t,e,s,i,r){const{path:n}=r,{commandIndex:o,pointIndex:a,connectToCommandIndex:h,connectToPointIndex:c}=this;t.save(),t.strokeStyle=this.controlStroke,this.connectionDashArray&&t.setLineDash(this.connectionDashArray);const[l]=n[o],u=Da(r,h,c);if(\"Q\"===l){const i=Da(r,o,a+2);t.moveTo(i.x,i.y),t.lineTo(e,s)}else t.moveTo(e,s);t.lineTo(u.x,u.y),t.stroke(),t.restore(),super.render(t,e,s,i,r)}}const ja=(t,e,i,r,n,o)=>new(i?Aa:Ea)(s(s({commandIndex:t,pointIndex:e,actionName:\"modifyPath\",positionHandler:Ma,actionHandler:Pa,connectToCommandIndex:n,connectToPointIndex:o},r),i?r.controlPointStyle:r.pointStyle));var Fa=Object.freeze({__proto__:null,changeWidth:ri,createObjectDefaultControls:Pi,createPathControls:function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s={};let i=\"M\";return t.path.forEach(((t,r)=>{const n=t[0];switch(\"Z\"!==n&&(s[\"c_\".concat(r,\"_\").concat(n)]=ja(r,t.length-2,!1,e)),n){case\"C\":s[\"c_\".concat(r,\"_C_CP_1\")]=ja(r,1,!0,e,r-1,(t=>\"C\"===t?5:\"Q\"===t?3:1)(i)),s[\"c_\".concat(r,\"_C_CP_2\")]=ja(r,3,!0,e,r,5);break;case\"Q\":s[\"c_\".concat(r,\"_Q_CP_1\")]=ja(r,1,!0,e,r,3)}i=n})),s},createPolyActionHandler:ka,createPolyControls:function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i={};for(let r=0;r<(\"number\"==typeof t?t:t.points.length);r++)i[\"p\".concat(r)]=new ai(s({actionName:Sa,positionHandler:wa(r),actionHandler:ka(r)},e));return i},createPolyPositionHandler:wa,createResizeControls:Ei,createTextboxDefaultControls:Ai,dragHandler:Me,factoryPolyActionHandler:Oa,getLocalPoint:De,polyActionHandler:Ta,renderCircleControl:ni,renderSquareControl:oi,rotationStyleHandler:hi,rotationWithSnapping:ci,scaleCursorStyleHandler:gi,scaleOrSkewActionName:Oi,scaleSkewCursorStyleHandler:ki,scalingEqually:pi,scalingX:mi,scalingXOrSkewingY:Di,scalingY:vi,scalingYOrSkewingX:Mi,skewCursorStyleHandler:Ci,skewHandlerX:Si,skewHandlerY:wi,wrapWithFireEvent:si,wrapWithFixedAnchor:ii});const La=t=>void 0!==t.webgl,Ra=(t,e)=>{const s=vt({width:t,height:e}),i=pt().getContext(\"webgl\"),r={imageBuffer:new ArrayBuffer(t*e*4)},n={destinationWidth:t,destinationHeight:e,targetCanvas:s};let o;o=v().performance.now(),$o.prototype.copyGLTo2D.call(r,i,n);const a=v().performance.now()-o;o=v().performance.now(),$o.prototype.copyGLTo2DPutImageData.call(r,i,n);return a>v().performance.now()-o},Ia=\"precision highp float\",Ba=\"\\n \".concat(Ia,\";\\n varying vec2 vTexCoord;\\n uniform sampler2D uTexture;\\n void main() {\\n gl_FragColor = texture2D(uTexture, vTexCoord);\\n }\"),Xa=[\"type\"],Ya=[\"type\"],Wa=new RegExp(Ia,\"g\");class Va{get type(){return this.constructor.type}constructor(){let t=i(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},Xa);Object.assign(this,this.constructor.defaults,t)}getFragmentSource(){return Ba}getVertexSource(){return\"\\n attribute vec2 aPosition;\\n varying vec2 vTexCoord;\\n void main() {\\n vTexCoord = aPosition;\\n gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\\n }\"}createProgram(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.getFragmentSource(),s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.getVertexSource();const{WebGLProbe:{GLPrecision:i=\"highp\"}}=p();\"highp\"!==i&&(e=e.replace(Wa,Ia.replace(\"highp\",i)));const r=t.createShader(t.VERTEX_SHADER),n=t.createShader(t.FRAGMENT_SHADER),o=t.createProgram();if(!r||!n||!o)throw new h(\"Vertex, fragment shader or program creation error\");if(t.shaderSource(r,s),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS))throw new h(\"Vertex shader compile error for \".concat(this.type,\": \").concat(t.getShaderInfoLog(r)));if(t.shaderSource(n,e),t.compileShader(n),!t.getShaderParameter(n,t.COMPILE_STATUS))throw new h(\"Fragment shader compile error for \".concat(this.type,\": \").concat(t.getShaderInfoLog(n)));if(t.attachShader(o,r),t.attachShader(o,n),t.linkProgram(o),!t.getProgramParameter(o,t.LINK_STATUS))throw new h('Shader link error for \"'.concat(this.type,'\" ').concat(t.getProgramInfoLog(o)));const a=this.getUniformLocations(t,o)||{};return a.uStepW=t.getUniformLocation(o,\"uStepW\"),a.uStepH=t.getUniformLocation(o,\"uStepH\"),{program:o,attributeLocations:this.getAttributeLocations(t,o),uniformLocations:a}}getAttributeLocations(t,e){return{aPosition:t.getAttribLocation(e,\"aPosition\")}}getUniformLocations(t,e){const s=this.constructor.uniformLocations,i={};for(let r=0;r<s.length;r++)i[s[r]]=t.getUniformLocation(e,s[r]);return i}sendAttributeData(t,e,s){const i=e.aPosition,r=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,r),t.enableVertexAttribArray(i),t.vertexAttribPointer(i,2,t.FLOAT,!1,0,0),t.bufferData(t.ARRAY_BUFFER,s,t.STATIC_DRAW)}_setupFrameBuffer(t){const e=t.context;if(t.passes>1){const s=t.destinationWidth,i=t.destinationHeight;t.sourceWidth===s&&t.sourceHeight===i||(e.deleteTexture(t.targetTexture),t.targetTexture=t.filterBackend.createTexture(e,s,i)),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t.targetTexture,0)}else e.bindFramebuffer(e.FRAMEBUFFER,null),e.finish()}_swapTextures(t){t.passes--,t.pass++;const e=t.targetTexture;t.targetTexture=t.sourceTexture,t.sourceTexture=e}isNeutralState(t){return!1}applyTo(t){La(t)?(this._setupFrameBuffer(t),this.applyToWebGL(t),this._swapTextures(t)):this.applyTo2d(t)}applyTo2d(t){}getCacheKey(){return this.type}retrieveShader(t){const e=this.getCacheKey();return t.programCache[e]||(t.programCache[e]=this.createProgram(t.context)),t.programCache[e]}applyToWebGL(t){const e=t.context,s=this.retrieveShader(t);0===t.pass&&t.originalTexture?e.bindTexture(e.TEXTURE_2D,t.originalTexture):e.bindTexture(e.TEXTURE_2D,t.sourceTexture),e.useProgram(s.program),this.sendAttributeData(e,s.attributeLocations,t.aPosition),e.uniform1f(s.uniformLocations.uStepW,1/t.sourceWidth),e.uniform1f(s.uniformLocations.uStepH,1/t.sourceHeight),this.sendUniformData(e,s.uniformLocations),e.viewport(0,0,t.destinationWidth,t.destinationHeight),e.drawArrays(e.TRIANGLE_STRIP,0,4)}bindAdditionalTexture(t,e,s){t.activeTexture(s),t.bindTexture(t.TEXTURE_2D,e),t.activeTexture(t.TEXTURE0)}unbindAdditionalTexture(t,e){t.activeTexture(e),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE0)}sendUniformData(t,e){}createHelpLayer(t){if(!t.helpLayer){const{sourceWidth:e,sourceHeight:s}=t,i=vt({width:e,height:s});t.helpLayer=i}}toObject(){const t=Object.keys(this.constructor.defaults||{});return s({type:this.type},t.reduce(((t,e)=>(t[e]=this[e],t)),{}))}toJSON(){return this.toObject()}static async fromObject(t,e){return new this(i(t,Ya))}}t(Va,\"type\",\"BaseFilter\"),t(Va,\"uniformLocations\",[]);const za={multiply:\"gl_FragColor.rgb *= uColor.rgb;\\n\",screen:\"gl_FragColor.rgb = 1.0 - (1.0 - gl_FragColor.rgb) * (1.0 - uColor.rgb);\\n\",add:\"gl_FragColor.rgb += uColor.rgb;\\n\",difference:\"gl_FragColor.rgb = abs(gl_FragColor.rgb - uColor.rgb);\\n\",subtract:\"gl_FragColor.rgb -= uColor.rgb;\\n\",lighten:\"gl_FragColor.rgb = max(gl_FragColor.rgb, uColor.rgb);\\n\",darken:\"gl_FragColor.rgb = min(gl_FragColor.rgb, uColor.rgb);\\n\",exclusion:\"gl_FragColor.rgb += uColor.rgb - 2.0 * (uColor.rgb * gl_FragColor.rgb);\\n\",overlay:\"\\n if (uColor.r < 0.5) {\\n gl_FragColor.r *= 2.0 * uColor.r;\\n } else {\\n gl_FragColor.r = 1.0 - 2.0 * (1.0 - gl_FragColor.r) * (1.0 - uColor.r);\\n }\\n if (uColor.g < 0.5) {\\n gl_FragColor.g *= 2.0 * uColor.g;\\n } else {\\n gl_FragColor.g = 1.0 - 2.0 * (1.0 - gl_FragColor.g) * (1.0 - uColor.g);\\n }\\n if (uColor.b < 0.5) {\\n gl_FragColor.b *= 2.0 * uColor.b;\\n } else {\\n gl_FragColor.b = 1.0 - 2.0 * (1.0 - gl_FragColor.b) * (1.0 - uColor.b);\\n }\\n \",tint:\"\\n gl_FragColor.rgb *= (1.0 - uColor.a);\\n gl_FragColor.rgb += uColor.rgb;\\n \"};class Ga extends Va{getCacheKey(){return\"\".concat(this.type,\"_\").concat(this.mode)}getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform vec4 uColor;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n gl_FragColor = color;\\n if (color.a > 0.0) {\\n \".concat(za[this.mode],\"\\n }\\n }\\n \")}applyTo2d(t){let{imageData:{data:e}}=t;const s=new Ie(this.color).getSource(),i=this.alpha,r=s[0]*i,n=s[1]*i,o=s[2]*i,a=1-i;for(let t=0;t<e.length;t+=4){const s=e[t],i=e[t+1],h=e[t+2];let c,l,u;switch(this.mode){case\"multiply\":c=s*r/255,l=i*n/255,u=h*o/255;break;case\"screen\":c=255-(255-s)*(255-r)/255,l=255-(255-i)*(255-n)/255,u=255-(255-h)*(255-o)/255;break;case\"add\":c=s+r,l=i+n,u=h+o;break;case\"difference\":c=Math.abs(s-r),l=Math.abs(i-n),u=Math.abs(h-o);break;case\"subtract\":c=s-r,l=i-n,u=h-o;break;case\"darken\":c=Math.min(s,r),l=Math.min(i,n),u=Math.min(h,o);break;case\"lighten\":c=Math.max(s,r),l=Math.max(i,n),u=Math.max(h,o);break;case\"overlay\":c=r<128?2*s*r/255:255-2*(255-s)*(255-r)/255,l=n<128?2*i*n/255:255-2*(255-i)*(255-n)/255,u=o<128?2*h*o/255:255-2*(255-h)*(255-o)/255;break;case\"exclusion\":c=r+s-2*r*s/255,l=n+i-2*n*i/255,u=o+h-2*o*h/255;break;case\"tint\":c=r+s*a,l=n+i*a,u=o+h*a}e[t]=c,e[t+1]=l,e[t+2]=u}}sendUniformData(t,e){const s=new Ie(this.color).getSource();s[0]=this.alpha*s[0]/255,s[1]=this.alpha*s[1]/255,s[2]=this.alpha*s[2]/255,s[3]=this.alpha,t.uniform4fv(e.uColor,s)}}t(Ga,\"defaults\",{color:\"#F95C63\",mode:\"multiply\",alpha:1}),t(Ga,\"type\",\"BlendColor\"),t(Ga,\"uniformLocations\",[\"uColor\"]),tt.setClass(Ga);const Ha={multiply:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform sampler2D uImage;\\n uniform vec4 uColor;\\n varying vec2 vTexCoord;\\n varying vec2 vTexCoord2;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n vec4 color2 = texture2D(uImage, vTexCoord2);\\n color.rgba *= color2.rgba;\\n gl_FragColor = color;\\n }\\n \",mask:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform sampler2D uImage;\\n uniform vec4 uColor;\\n varying vec2 vTexCoord;\\n varying vec2 vTexCoord2;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n vec4 color2 = texture2D(uImage, vTexCoord2);\\n color.a = color2.a;\\n gl_FragColor = color;\\n }\\n \"},Na=[\"type\",\"image\"];class Ua extends Va{getCacheKey(){return\"\".concat(this.type,\"_\").concat(this.mode)}getFragmentSource(){return Ha[this.mode]}getVertexSource(){return\"\\n attribute vec2 aPosition;\\n varying vec2 vTexCoord;\\n varying vec2 vTexCoord2;\\n uniform mat3 uTransformMatrix;\\n void main() {\\n vTexCoord = aPosition;\\n vTexCoord2 = (uTransformMatrix * vec3(aPosition, 1.0)).xy;\\n gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\\n }\\n \"}applyToWebGL(t){const e=t.context,s=this.createTexture(t.filterBackend,this.image);this.bindAdditionalTexture(e,s,e.TEXTURE1),super.applyToWebGL(t),this.unbindAdditionalTexture(e,e.TEXTURE1)}createTexture(t,e){return t.getCachedTexture(e.cacheKey,e.getElement())}calculateMatrix(){const t=this.image,{width:e,height:s}=t.getElement();return[1/t.scaleX,0,0,0,1/t.scaleY,0,-t.left/e,-t.top/s,1]}applyTo2d(t){let{imageData:{data:e,width:s,height:i},filterBackend:{resources:r}}=t;const n=this.image;r.blendImage||(r.blendImage=pt());const o=r.blendImage,a=o.getContext(\"2d\");o.width!==s||o.height!==i?(o.width=s,o.height=i):a.clearRect(0,0,s,i),a.setTransform(n.scaleX,0,0,n.scaleY,n.left,n.top),a.drawImage(n.getElement(),0,0,s,i);const h=a.getImageData(0,0,s,i).data;for(let t=0;t<e.length;t+=4){const s=e[t],i=e[t+1],r=e[t+2],n=e[t+3],o=h[t],a=h[t+1],c=h[t+2],l=h[t+3];switch(this.mode){case\"multiply\":e[t]=s*o/255,e[t+1]=i*a/255,e[t+2]=r*c/255,e[t+3]=n*l/255;break;case\"mask\":e[t+3]=l}}}sendUniformData(t,e){const s=this.calculateMatrix();t.uniform1i(e.uImage,1),t.uniformMatrix3fv(e.uTransformMatrix,!1,s)}toObject(){return s(s({},super.toObject()),{},{image:this.image&&this.image.toObject()})}static async fromObject(t,e){let{type:r,image:n}=t,o=i(t,Na);return oa.fromObject(n,e).then((t=>new this(s(s({},o),{},{image:t}))))}}t(Ua,\"type\",\"BlendImage\"),t(Ua,\"defaults\",{mode:\"multiply\",alpha:1}),t(Ua,\"uniformLocations\",[\"uTransformMatrix\",\"uImage\"]),tt.setClass(Ua);class qa extends Va{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform vec2 uDelta;\\n varying vec2 vTexCoord;\\n const float nSamples = 15.0;\\n vec3 v3offset = vec3(12.9898, 78.233, 151.7182);\\n float random(vec3 scale) {\\n /* use the fragment position for a different seed per-pixel */\\n return fract(sin(dot(gl_FragCoord.xyz, scale)) * 43758.5453);\\n }\\n void main() {\\n vec4 color = vec4(0.0);\\n float totalC = 0.0;\\n float totalA = 0.0;\\n float offset = random(v3offset);\\n for (float t = -nSamples; t <= nSamples; t++) {\\n float percent = (t + offset - 0.5) / nSamples;\\n vec4 sample = texture2D(uTexture, vTexCoord + uDelta * percent);\\n float weight = 1.0 - abs(percent);\\n float alpha = weight * sample.a;\\n color.rgb += sample.rgb * alpha;\\n color.a += alpha;\\n totalA += weight;\\n totalC += alpha;\\n }\\n gl_FragColor.rgb = color.rgb / totalC;\\n gl_FragColor.a = color.a / totalA;\\n }\\n \"}applyTo(t){La(t)?(this.aspectRatio=t.sourceWidth/t.sourceHeight,t.passes++,this._setupFrameBuffer(t),this.horizontal=!0,this.applyToWebGL(t),this._swapTextures(t),this._setupFrameBuffer(t),this.horizontal=!1,this.applyToWebGL(t),this._swapTextures(t)):this.applyTo2d(t)}applyTo2d(t){let{imageData:{data:e,width:s,height:i}}=t;this.aspectRatio=s/i,this.horizontal=!0;let r=this.getBlurValue()*s;const n=new Uint8ClampedArray(e),o=15,a=4*s;for(let t=0;t<e.length;t+=4){let s=0,i=0,h=0,c=0,l=0;const u=t-t%a,d=u+a;for(let n=-14;n<o;n++){const a=n/o,g=4*Math.floor(r*a),f=1-Math.abs(a);let p=t+g;p<u?p=u:p>d&&(p=d);const m=e[p+3]*f;s+=e[p]*m,i+=e[p+1]*m,h+=e[p+2]*m,c+=m,l+=f}n[t]=s/c,n[t+1]=i/c,n[t+2]=h/c,n[t+3]=c/l}this.horizontal=!1,r=this.getBlurValue()*i;for(let t=0;t<n.length;t+=4){let s=0,i=0,h=0,c=0,l=0;const u=t%a,d=n.length-a+u;for(let e=-14;e<o;e++){const g=e/o,f=Math.floor(r*g)*a,p=1-Math.abs(g);let m=t+f;m<u?m=u:m>d&&(m=d);const v=n[m+3]*p;s+=n[m]*v,i+=n[m+1]*v,h+=n[m+2]*v,c+=v,l+=p}e[t]=s/c,e[t+1]=i/c,e[t+2]=h/c,e[t+3]=c/l}}sendUniformData(t,e){const s=this.chooseRightDelta();t.uniform2fv(e.uDelta,s)}isNeutralState(){return 0===this.blur}getBlurValue(){let t=1;const{horizontal:e,aspectRatio:s}=this;return e?s>1&&(t=1/s):s<1&&(t=s),t*this.blur*.12}chooseRightDelta(){const t=this.getBlurValue();return this.horizontal?[t,0]:[0,t]}}t(qa,\"type\",\"Blur\"),t(qa,\"defaults\",{blur:0}),t(qa,\"uniformLocations\",[\"uDelta\"]),tt.setClass(qa);class Ka extends Va{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uBrightness;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n color.rgb += uBrightness;\\n gl_FragColor = color;\\n }\\n\"}applyTo2d(t){let{imageData:{data:e}}=t;const s=Math.round(255*this.brightness);for(let t=0;t<e.length;t+=4)e[t]+=s,e[t+1]+=s,e[t+2]+=s}isNeutralState(){return 0===this.brightness}sendUniformData(t,e){t.uniform1f(e.uBrightness,this.brightness)}}t(Ka,\"type\",\"Brightness\"),t(Ka,\"defaults\",{brightness:0}),t(Ka,\"uniformLocations\",[\"uBrightness\"]),tt.setClass(Ka);const Ja={matrix:[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],colorsOnly:!0};class Qa extends Va{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n varying vec2 vTexCoord;\\n uniform mat4 uColorMatrix;\\n uniform vec4 uConstants;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n color *= uColorMatrix;\\n color += uConstants;\\n gl_FragColor = color;\\n }\"}applyTo2d(t){const e=t.imageData.data,s=this.matrix,i=this.colorsOnly;for(let t=0;t<e.length;t+=4){const r=e[t],n=e[t+1],o=e[t+2];if(e[t]=r*s[0]+n*s[1]+o*s[2]+255*s[4],e[t+1]=r*s[5]+n*s[6]+o*s[7]+255*s[9],e[t+2]=r*s[10]+n*s[11]+o*s[12]+255*s[14],!i){const i=e[t+3];e[t]+=i*s[3],e[t+1]+=i*s[8],e[t+2]+=i*s[13],e[t+3]=r*s[15]+n*s[16]+o*s[17]+i*s[18]+255*s[19]}}}sendUniformData(t,e){const s=this.matrix,i=[s[0],s[1],s[2],s[3],s[5],s[6],s[7],s[8],s[10],s[11],s[12],s[13],s[15],s[16],s[17],s[18]],r=[s[4],s[9],s[14],s[19]];t.uniformMatrix4fv(e.uColorMatrix,!1,i),t.uniform4fv(e.uConstants,r)}toObject(){return s(s({},super.toObject()),{},{matrix:[...this.matrix]})}}function Za(e,s){var i;const r=(t(i=class extends Qa{toObject(){return{type:this.type,colorsOnly:this.colorsOnly}}},\"type\",e),t(i,\"defaults\",{colorsOnly:!1,matrix:s}),i);return tt.setClass(r,e),r}t(Qa,\"type\",\"ColorMatrix\"),t(Qa,\"defaults\",Ja),t(Qa,\"uniformLocations\",[\"uColorMatrix\",\"uConstants\"]),tt.setClass(Qa);const $a=Za(\"Brownie\",[.5997,.34553,-.27082,0,.186,-.0377,.86095,.15059,0,-.1449,.24113,-.07441,.44972,0,-.02965,0,0,0,1,0]),th=Za(\"Vintage\",[.62793,.32021,-.03965,0,.03784,.02578,.64411,.03259,0,.02926,.0466,-.08512,.52416,0,.02023,0,0,0,1,0]),eh=Za(\"Kodachrome\",[1.12855,-.39673,-.03992,0,.24991,-.16404,1.08352,-.05498,0,.09698,-.16786,-.56034,1.60148,0,.13972,0,0,0,1,0]),sh=Za(\"Technicolor\",[1.91252,-.85453,-.09155,0,.04624,-.30878,1.76589,-.10601,0,-.27589,-.2311,-.75018,1.84759,0,.12137,0,0,0,1,0]),ih=Za(\"Polaroid\",[1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0]),rh=Za(\"Sepia\",[.393,.769,.189,0,0,.349,.686,.168,0,0,.272,.534,.131,0,0,0,0,0,1,0]),nh=Za(\"BlackWhite\",[1.5,1.5,1.5,0,-1,1.5,1.5,1.5,0,-1,1.5,1.5,1.5,0,-1,0,0,0,1,0]);class oh extends Va{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(t),this.subFilters=t.subFilters||[]}applyTo(t){La(t)&&(t.passes+=this.subFilters.length-1),this.subFilters.forEach((e=>{e.applyTo(t)}))}toObject(){return{type:this.type,subFilters:this.subFilters.map((t=>t.toObject()))}}isNeutralState(){return!this.subFilters.some((t=>!t.isNeutralState()))}static fromObject(t,e){return Promise.all((t.subFilters||[]).map((t=>tt.getClass(t.type).fromObject(t,e)))).then((t=>new this({subFilters:t})))}}t(oh,\"type\",\"Composed\"),tt.setClass(oh);class ah extends Va{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uContrast;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n float contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\\n color.rgb = contrastF * (color.rgb - 0.5) + 0.5;\\n gl_FragColor = color;\\n }\"}isNeutralState(){return 0===this.contrast}applyTo2d(t){let{imageData:{data:e}}=t;const s=Math.floor(255*this.contrast),i=259*(s+255)/(255*(259-s));for(let t=0;t<e.length;t+=4)e[t]=i*(e[t]-128)+128,e[t+1]=i*(e[t+1]-128)+128,e[t+2]=i*(e[t+2]-128)+128}sendUniformData(t,e){t.uniform1f(e.uContrast,this.contrast)}}t(ah,\"type\",\"Contrast\"),t(ah,\"defaults\",{contrast:0}),t(ah,\"uniformLocations\",[\"uContrast\"]),tt.setClass(ah);const hh={Convolute_3_1:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[9];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 0);\\n for (float h = 0.0; h < 3.0; h+=1.0) {\\n for (float w = 0.0; w < 3.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 1), uStepH * (h - 1));\\n color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 3.0 + w)];\\n }\\n }\\n gl_FragColor = color;\\n }\\n \",Convolute_3_0:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[9];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 1);\\n for (float h = 0.0; h < 3.0; h+=1.0) {\\n for (float w = 0.0; w < 3.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 1.0), uStepH * (h - 1.0));\\n color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 3.0 + w)];\\n }\\n }\\n float alpha = texture2D(uTexture, vTexCoord).a;\\n gl_FragColor = color;\\n gl_FragColor.a = alpha;\\n }\\n \",Convolute_5_1:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[25];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 0);\\n for (float h = 0.0; h < 5.0; h+=1.0) {\\n for (float w = 0.0; w < 5.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\\n color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 5.0 + w)];\\n }\\n }\\n gl_FragColor = color;\\n }\\n \",Convolute_5_0:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[25];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 1);\\n for (float h = 0.0; h < 5.0; h+=1.0) {\\n for (float w = 0.0; w < 5.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\\n color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 5.0 + w)];\\n }\\n }\\n float alpha = texture2D(uTexture, vTexCoord).a;\\n gl_FragColor = color;\\n gl_FragColor.a = alpha;\\n }\\n \",Convolute_7_1:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[49];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 0);\\n for (float h = 0.0; h < 7.0; h+=1.0) {\\n for (float w = 0.0; w < 7.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\\n color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 7.0 + w)];\\n }\\n }\\n gl_FragColor = color;\\n }\\n \",Convolute_7_0:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[49];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 1);\\n for (float h = 0.0; h < 7.0; h+=1.0) {\\n for (float w = 0.0; w < 7.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\\n color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 7.0 + w)];\\n }\\n }\\n float alpha = texture2D(uTexture, vTexCoord).a;\\n gl_FragColor = color;\\n gl_FragColor.a = alpha;\\n }\\n \",Convolute_9_1:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[81];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 0);\\n for (float h = 0.0; h < 9.0; h+=1.0) {\\n for (float w = 0.0; w < 9.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\\n color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 9.0 + w)];\\n }\\n }\\n gl_FragColor = color;\\n }\\n \",Convolute_9_0:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uMatrix[81];\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = vec4(0, 0, 0, 1);\\n for (float h = 0.0; h < 9.0; h+=1.0) {\\n for (float w = 0.0; w < 9.0; w+=1.0) {\\n vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\\n color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 9.0 + w)];\\n }\\n }\\n float alpha = texture2D(uTexture, vTexCoord).a;\\n gl_FragColor = color;\\n gl_FragColor.a = alpha;\\n }\\n \"};class ch extends Va{getCacheKey(){return\"\".concat(this.type,\"_\").concat(Math.sqrt(this.matrix.length),\"_\").concat(this.opaque?1:0)}getFragmentSource(){return hh[this.getCacheKey()]}applyTo2d(t){const e=t.imageData,s=e.data,i=this.matrix,r=Math.round(Math.sqrt(i.length)),n=Math.floor(r/2),o=e.width,a=e.height,h=t.ctx.createImageData(o,a),c=h.data,l=this.opaque?1:0;let u,d,g,f,p,m,v,y,_,x,C,b,S;for(C=0;C<a;C++)for(x=0;x<o;x++){for(p=4*(C*o+x),u=0,d=0,g=0,f=0,S=0;S<r;S++)for(b=0;b<r;b++)v=C+S-n,m=x+b-n,v<0||v>=a||m<0||m>=o||(y=4*(v*o+m),_=i[S*r+b],u+=s[y]*_,d+=s[y+1]*_,g+=s[y+2]*_,l||(f+=s[y+3]*_));c[p]=u,c[p+1]=d,c[p+2]=g,c[p+3]=l?s[p+3]:f}t.imageData=h}sendUniformData(t,e){t.uniform1fv(e.uMatrix,this.matrix)}toObject(){return s(s({},super.toObject()),{},{opaque:this.opaque,matrix:[...this.matrix]})}}t(ch,\"type\",\"Convolute\"),t(ch,\"defaults\",{opaque:!1,matrix:[0,0,0,0,1,0,0,0,0]}),t(ch,\"uniformLocations\",[\"uMatrix\",\"uOpaque\",\"uHalfSize\",\"uSize\"]),tt.setClass(ch);const lh=\"Gamma\";class uh extends Va{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform vec3 uGamma;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n vec3 correction = (1.0 / uGamma);\\n color.r = pow(color.r, correction.r);\\n color.g = pow(color.g, correction.g);\\n color.b = pow(color.b, correction.b);\\n gl_FragColor = color;\\n gl_FragColor.rgb *= color.a;\\n }\\n\"}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(t),this.gamma=t.gamma||this.constructor.defaults.gamma.concat()}applyTo2d(t){let{imageData:{data:e}}=t;const s=this.gamma,i=1/s[0],r=1/s[1],n=1/s[2];this.rgbValues||(this.rgbValues={r:new Uint8Array(256),g:new Uint8Array(256),b:new Uint8Array(256)});const o=this.rgbValues;for(let t=0;t<256;t++)o.r[t]=255*Math.pow(t/255,i),o.g[t]=255*Math.pow(t/255,r),o.b[t]=255*Math.pow(t/255,n);for(let t=0;t<e.length;t+=4)e[t]=o.r[e[t]],e[t+1]=o.g[e[t+1]],e[t+2]=o.b[e[t+2]]}sendUniformData(t,e){t.uniform3fv(e.uGamma,this.gamma)}isNeutralState(){const{gamma:t}=this;return 1===t[0]&&1===t[1]&&1===t[2]}toObject(){return{type:lh,gamma:this.gamma.concat()}}}t(uh,\"type\",lh),t(uh,\"defaults\",{gamma:[1,1,1]}),t(uh,\"uniformLocations\",[\"uGamma\"]),tt.setClass(uh);const dh={average:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n float average = (color.r + color.b + color.g) / 3.0;\\n gl_FragColor = vec4(average, average, average, color.a);\\n }\\n \",lightness:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform int uMode;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 col = texture2D(uTexture, vTexCoord);\\n float average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0;\\n gl_FragColor = vec4(average, average, average, col.a);\\n }\\n \",luminosity:\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform int uMode;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 col = texture2D(uTexture, vTexCoord);\\n float average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b;\\n gl_FragColor = vec4(average, average, average, col.a);\\n }\\n \"};class gh extends Va{applyTo2d(t){let{imageData:{data:e}}=t;for(let t,s=0;s<e.length;s+=4){const i=e[s],r=e[s+1],n=e[s+2];switch(this.mode){case\"average\":t=(i+r+n)/3;break;case\"lightness\":t=(Math.min(i,r,n)+Math.max(i,r,n))/2;break;case\"luminosity\":t=.21*i+.72*r+.07*n}e[s+2]=e[s+1]=e[s]=t}}getCacheKey(){return\"\".concat(this.type,\"_\").concat(this.mode)}getFragmentSource(){return dh[this.mode]}sendUniformData(t,e){t.uniform1i(e.uMode,1)}isNeutralState(){return!1}}t(gh,\"type\",\"Grayscale\"),t(gh,\"defaults\",{mode:\"average\"}),t(gh,\"uniformLocations\",[\"uMode\"]),tt.setClass(gh);const fh=s(s({},Ja),{},{rotation:0});class ph extends Qa{calculateMatrix(){const t=this.rotation*Math.PI,e=rt(t),s=nt(t),i=1/3,r=Math.sqrt(i)*s,n=1-e;this.matrix=[e+n/3,i*n-r,i*n+r,0,0,i*n+r,e+i*n,i*n-r,0,0,i*n-r,i*n+r,e+i*n,0,0,0,0,0,1,0]}isNeutralState(){return 0===this.rotation}applyTo(t){this.calculateMatrix(),super.applyTo(t)}toObject(){return{type:this.type,rotation:this.rotation}}}t(ph,\"type\",\"HueRotation\"),t(ph,\"defaults\",fh),tt.setClass(ph);class mh extends Va{applyTo2d(t){let{imageData:{data:e}}=t;for(let t=0;t<e.length;t+=4)e[t]=255-e[t],e[t+1]=255-e[t+1],e[t+2]=255-e[t+2],this.alpha&&(e[t+3]=255-e[t+3])}getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform int uInvert;\\n uniform int uAlpha;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n if (uInvert == 1) {\\n if (uAlpha == 1) {\\n gl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,1.0 -color.a);\\n } else {\\n gl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,color.a);\\n }\\n } else {\\n gl_FragColor = color;\\n }\\n }\\n\"}isNeutralState(){return!this.invert}sendUniformData(t,e){t.uniform1i(e.uInvert,Number(this.invert)),t.uniform1i(e.uAlpha,Number(this.alpha))}}t(mh,\"type\",\"Invert\"),t(mh,\"defaults\",{alpha:!1,invert:!0}),t(mh,\"uniformLocations\",[\"uInvert\",\"uAlpha\"]),tt.setClass(mh);class vh extends Va{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uStepH;\\n uniform float uNoise;\\n uniform float uSeed;\\n varying vec2 vTexCoord;\\n float rand(vec2 co, float seed, float vScale) {\\n return fract(sin(dot(co.xy * vScale ,vec2(12.9898 , 78.233))) * 43758.5453 * (seed + 0.01) / 2.0);\\n }\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n color.rgb += (0.5 - rand(vTexCoord, uSeed, 0.1 / uStepH)) * uNoise;\\n gl_FragColor = color;\\n }\\n\"}applyTo2d(t){let{imageData:{data:e}}=t;const s=this.noise;for(let t=0;t<e.length;t+=4){const i=(.5-Math.random())*s;e[t]+=i,e[t+1]+=i,e[t+2]+=i}}sendUniformData(t,e){t.uniform1f(e.uNoise,this.noise/255),t.uniform1f(e.uSeed,Math.random())}isNeutralState(){return 0===this.noise}}t(vh,\"type\",\"Noise\"),t(vh,\"defaults\",{noise:0}),t(vh,\"uniformLocations\",[\"uNoise\",\"uSeed\"]),tt.setClass(vh);class yh extends Va{applyTo2d(t){let{imageData:{data:e,width:s,height:i}}=t;for(let t=0;t<i;t+=this.blocksize)for(let r=0;r<s;r+=this.blocksize){const n=4*t*s+4*r,o=e[n],a=e[n+1],h=e[n+2],c=e[n+3];for(let n=t;n<Math.min(t+this.blocksize,i);n++)for(let t=r;t<Math.min(r+this.blocksize,s);t++){const i=4*n*s+4*t;e[i]=o,e[i+1]=a,e[i+2]=h,e[i+3]=c}}}isNeutralState(){return 1===this.blocksize}getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uBlocksize;\\n uniform float uStepW;\\n uniform float uStepH;\\n varying vec2 vTexCoord;\\n void main() {\\n float blockW = uBlocksize * uStepW;\\n float blockH = uBlocksize * uStepH;\\n int posX = int(vTexCoord.x / blockW);\\n int posY = int(vTexCoord.y / blockH);\\n float fposX = float(posX);\\n float fposY = float(posY);\\n vec2 squareCoords = vec2(fposX * blockW, fposY * blockH);\\n vec4 color = texture2D(uTexture, squareCoords);\\n gl_FragColor = color;\\n }\\n\"}sendUniformData(t,e){t.uniform1f(e.uBlocksize,this.blocksize)}}t(yh,\"type\",\"Pixelate\"),t(yh,\"defaults\",{blocksize:4}),t(yh,\"uniformLocations\",[\"uBlocksize\"]),tt.setClass(yh);class _h extends Va{getFragmentSource(){return\"\\nprecision highp float;\\nuniform sampler2D uTexture;\\nuniform vec4 uLow;\\nuniform vec4 uHigh;\\nvarying vec2 vTexCoord;\\nvoid main() {\\n gl_FragColor = texture2D(uTexture, vTexCoord);\\n if(all(greaterThan(gl_FragColor.rgb,uLow.rgb)) && all(greaterThan(uHigh.rgb,gl_FragColor.rgb))) {\\n gl_FragColor.a = 0.0;\\n }\\n}\\n\"}applyTo2d(t){let{imageData:{data:e}}=t;const s=255*this.distance,i=new Ie(this.color).getSource(),r=[i[0]-s,i[1]-s,i[2]-s],n=[i[0]+s,i[1]+s,i[2]+s];for(let t=0;t<e.length;t+=4){const s=e[t],i=e[t+1],o=e[t+2];s>r[0]&&i>r[1]&&o>r[2]&&s<n[0]&&i<n[1]&&o<n[2]&&(e[t+3]=0)}}sendUniformData(t,e){const s=new Ie(this.color).getSource(),i=this.distance,r=[0+s[0]/255-i,0+s[1]/255-i,0+s[2]/255-i,1],n=[s[0]/255+i,s[1]/255+i,s[2]/255+i,1];t.uniform4fv(e.uLow,r),t.uniform4fv(e.uHigh,n)}}t(_h,\"type\",\"RemoveColor\"),t(_h,\"defaults\",{color:\"#FFFFFF\",distance:.02,useAlpha:!1}),t(_h,\"uniformLocations\",[\"uLow\",\"uHigh\"]),tt.setClass(_h);class xh extends Va{sendUniformData(t,e){t.uniform2fv(e.uDelta,this.horizontal?[1/this.width,0]:[0,1/this.height]),t.uniform1fv(e.uTaps,this.taps)}getFilterWindow(){const t=this.tempScale;return Math.ceil(this.lanczosLobes/t)}getCacheKey(){const t=this.getFilterWindow();return\"\".concat(this.type,\"_\").concat(t)}getFragmentSource(){const t=this.getFilterWindow();return this.generateShader(t)}getTaps(){const t=this.lanczosCreate(this.lanczosLobes),e=this.tempScale,s=this.getFilterWindow(),i=new Array(s);for(let r=1;r<=s;r++)i[r-1]=t(r*e);return i}generateShader(t){const e=new Array(t);for(let s=1;s<=t;s++)e[s-1]=\"\".concat(s,\".0 * uDelta\");return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform vec2 uDelta;\\n varying vec2 vTexCoord;\\n uniform float uTaps[\".concat(t,\"];\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n float sum = 1.0;\\n \").concat(e.map(((t,e)=>\"\\n color += texture2D(uTexture, vTexCoord + \".concat(t,\") * uTaps[\").concat(e,\"] + texture2D(uTexture, vTexCoord - \").concat(t,\") * uTaps[\").concat(e,\"];\\n sum += 2.0 * uTaps[\").concat(e,\"];\\n \"))).join(\"\\n\"),\"\\n gl_FragColor = color / sum;\\n }\\n \")}applyToForWebgl(t){t.passes++,this.width=t.sourceWidth,this.horizontal=!0,this.dW=Math.round(this.width*this.scaleX),this.dH=t.sourceHeight,this.tempScale=this.dW/this.width,this.taps=this.getTaps(),t.destinationWidth=this.dW,super.applyTo(t),t.sourceWidth=t.destinationWidth,this.height=t.sourceHeight,this.horizontal=!1,this.dH=Math.round(this.height*this.scaleY),this.tempScale=this.dH/this.height,this.taps=this.getTaps(),t.destinationHeight=this.dH,super.applyTo(t),t.sourceHeight=t.destinationHeight}applyTo(t){La(t)?this.applyToForWebgl(t):this.applyTo2d(t)}isNeutralState(){return 1===this.scaleX&&1===this.scaleY}lanczosCreate(t){return e=>{if(e>=t||e<=-t)return 0;if(e<1.1920929e-7&&e>-1.1920929e-7)return 1;const s=(e*=Math.PI)/t;return Math.sin(e)/e*Math.sin(s)/s}}applyTo2d(t){const e=t.imageData,s=this.scaleX,i=this.scaleY;this.rcpScaleX=1/s,this.rcpScaleY=1/i;const r=e.width,n=e.height,o=Math.round(r*s),a=Math.round(n*i);let h;h=\"sliceHack\"===this.resizeType?this.sliceByTwo(t,r,n,o,a):\"hermite\"===this.resizeType?this.hermiteFastResize(t,r,n,o,a):\"bilinear\"===this.resizeType?this.bilinearFiltering(t,r,n,o,a):\"lanczos\"===this.resizeType?this.lanczosResize(t,r,n,o,a):new ImageData(o,a),t.imageData=h}sliceByTwo(t,e,s,i,r){const n=t.imageData,o=.5;let a=!1,h=!1,c=e*o,l=s*o;const u=t.filterBackend.resources;let d=0,g=0;const f=e;let p=0;u.sliceByTwo||(u.sliceByTwo=pt());const m=u.sliceByTwo;(m.width<1.5*e||m.height<s)&&(m.width=1.5*e,m.height=s);const v=m.getContext(\"2d\");for(v.clearRect(0,0,1.5*e,s),v.putImageData(n,0,0),i=Math.floor(i),r=Math.floor(r);!a||!h;)e=c,s=l,i<Math.floor(c*o)?c=Math.floor(c*o):(c=i,a=!0),r<Math.floor(l*o)?l=Math.floor(l*o):(l=r,h=!0),v.drawImage(m,d,g,e,s,f,p,c,l),d=f,g=p,p+=l;return v.getImageData(d,g,i,r)}lanczosResize(t,e,s,i,r){const n=t.imageData.data,o=t.ctx.createImageData(i,r),a=o.data,h=this.lanczosCreate(this.lanczosLobes),c=this.rcpScaleX,l=this.rcpScaleY,u=2/this.rcpScaleX,d=2/this.rcpScaleY,g=Math.ceil(c*this.lanczosLobes/2),f=Math.ceil(l*this.lanczosLobes/2),p={},m={x:0,y:0},v={x:0,y:0};return function t(y){let _,x,C,b,S,w,T,O,k,D,M;for(m.x=(y+.5)*c,v.x=Math.floor(m.x),_=0;_<r;_++){for(m.y=(_+.5)*l,v.y=Math.floor(m.y),S=0,w=0,T=0,O=0,k=0,x=v.x-g;x<=v.x+g;x++)if(!(x<0||x>=e)){D=Math.floor(1e3*Math.abs(x-m.x)),p[D]||(p[D]={});for(let t=v.y-f;t<=v.y+f;t++)t<0||t>=s||(M=Math.floor(1e3*Math.abs(t-m.y)),p[D][M]||(p[D][M]=h(Math.sqrt(Math.pow(D*u,2)+Math.pow(M*d,2))/1e3)),C=p[D][M],C>0&&(b=4*(t*e+x),S+=C,w+=C*n[b],T+=C*n[b+1],O+=C*n[b+2],k+=C*n[b+3]))}b=4*(_*i+y),a[b]=w/S,a[b+1]=T/S,a[b+2]=O/S,a[b+3]=k/S}return++y<i?t(y):o}(0)}bilinearFiltering(t,e,s,i,r){let n,o,a,h,c,l,u,d,g,f,p,m,v,y=0;const _=this.rcpScaleX,x=this.rcpScaleY,C=4*(e-1),b=t.imageData.data,S=t.ctx.createImageData(i,r),w=S.data;for(u=0;u<r;u++)for(d=0;d<i;d++)for(c=Math.floor(_*d),l=Math.floor(x*u),g=_*d-c,f=x*u-l,v=4*(l*e+c),p=0;p<4;p++)n=b[v+p],o=b[v+4+p],a=b[v+C+p],h=b[v+C+4+p],m=n*(1-g)*(1-f)+o*g*(1-f)+a*f*(1-g)+h*g*f,w[y++]=m;return S}hermiteFastResize(t,e,s,i,r){const n=this.rcpScaleX,o=this.rcpScaleY,a=Math.ceil(n/2),h=Math.ceil(o/2),c=t.imageData.data,l=t.ctx.createImageData(i,r),u=l.data;for(let t=0;t<r;t++)for(let s=0;s<i;s++){const r=4*(s+t*i);let l=0,d=0,g=0,f=0,p=0,m=0,v=0;const y=(t+.5)*o;for(let i=Math.floor(t*o);i<(t+1)*o;i++){const t=Math.abs(y-(i+.5))/h,r=(s+.5)*n,o=t*t;for(let t=Math.floor(s*n);t<(s+1)*n;t++){let s=Math.abs(r-(t+.5))/a;const n=Math.sqrt(o+s*s);n>1&&n<-1||(l=2*n*n*n-3*n*n+1,l>0&&(s=4*(t+i*e),v+=l*c[s+3],g+=l,c[s+3]<255&&(l=l*c[s+3]/250),f+=l*c[s],p+=l*c[s+1],m+=l*c[s+2],d+=l))}}u[r]=f/d,u[r+1]=p/d,u[r+2]=m/d,u[r+3]=v/g}return l}}t(xh,\"type\",\"Resize\"),t(xh,\"defaults\",{resizeType:\"hermite\",scaleX:1,scaleY:1,lanczosLobes:3}),t(xh,\"uniformLocations\",[\"uDelta\",\"uTaps\"]),tt.setClass(xh);class Ch extends Va{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uSaturation;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n float rgMax = max(color.r, color.g);\\n float rgbMax = max(rgMax, color.b);\\n color.r += rgbMax != color.r ? (rgbMax - color.r) * uSaturation : 0.00;\\n color.g += rgbMax != color.g ? (rgbMax - color.g) * uSaturation : 0.00;\\n color.b += rgbMax != color.b ? (rgbMax - color.b) * uSaturation : 0.00;\\n gl_FragColor = color;\\n }\\n\"}applyTo2d(t){let{imageData:{data:e}}=t;const s=-this.saturation;for(let t=0;t<e.length;t+=4){const i=e[t],r=e[t+1],n=e[t+2],o=Math.max(i,r,n);e[t]+=o!==i?(o-i)*s:0,e[t+1]+=o!==r?(o-r)*s:0,e[t+2]+=o!==n?(o-n)*s:0}}sendUniformData(t,e){t.uniform1f(e.uSaturation,-this.saturation)}isNeutralState(){return 0===this.saturation}}t(Ch,\"type\",\"Saturation\"),t(Ch,\"defaults\",{saturation:0}),t(Ch,\"uniformLocations\",[\"uSaturation\"]),tt.setClass(Ch);class bh extends Va{getFragmentSource(){return\"\\n precision highp float;\\n uniform sampler2D uTexture;\\n uniform float uVibrance;\\n varying vec2 vTexCoord;\\n void main() {\\n vec4 color = texture2D(uTexture, vTexCoord);\\n float max = max(color.r, max(color.g, color.b));\\n float avg = (color.r + color.g + color.b) / 3.0;\\n float amt = (abs(max - avg) * 2.0) * uVibrance;\\n color.r += max != color.r ? (max - color.r) * amt : 0.00;\\n color.g += max != color.g ? (max - color.g) * amt : 0.00;\\n color.b += max != color.b ? (max - color.b) * amt : 0.00;\\n gl_FragColor = color;\\n }\\n\"}applyTo2d(t){let{imageData:{data:e}}=t;const s=-this.vibrance;for(let t=0;t<e.length;t+=4){const i=e[t],r=e[t+1],n=e[t+2],o=Math.max(i,r,n),a=(i+r+n)/3,h=2*Math.abs(o-a)/255*s;e[t]+=o!==i?(o-i)*h:0,e[t+1]+=o!==r?(o-r)*h:0,e[t+2]+=o!==n?(o-n)*h:0}}sendUniformData(t,e){t.uniform1f(e.uVibrance,-this.vibrance)}isNeutralState(){return 0===this.vibrance}}t(bh,\"type\",\"Vibrance\"),t(bh,\"defaults\",{vibrance:0}),t(bh,\"uniformLocations\",[\"uVibrance\"]),tt.setClass(bh);var Sh=Object.freeze({__proto__:null,BaseFilter:Va,BlackWhite:nh,BlendColor:Ga,BlendImage:Ua,Blur:qa,Brightness:Ka,Brownie:$a,ColorMatrix:Qa,Composed:oh,Contrast:ah,Convolute:ch,Gamma:uh,Grayscale:gh,HueRotation:ph,Invert:mh,Kodachrome:eh,Noise:vh,Pixelate:yh,Polaroid:ih,RemoveColor:_h,Resize:xh,Saturation:Ch,Sepia:rh,Technicolor:sh,Vibrance:bh,Vintage:th});export{Qo as ActiveSelection,so as BaseBrush,ei as BaseFabricObject,Xn as Canvas,Zo as Canvas2dFilterBackend,Pn as CanvasDOMManager,co as Circle,lo as CircleBrush,qo as ClipPathLayout,Ie as Color,ai as Control,xo as Ellipse,oa as FabricImage,Li as FabricObject,Ao as FabricText,Yr as FitContentLayout,Ko as FixedLayout,$n as Gradient,Ur as Group,No as IText,oa as Image,ji as InteractiveFabricObject,Qs as Intersection,Gr as LayoutManager,Xr as LayoutStrategy,vo as Line,Li as Object,st as Observable,no as Path,eo as Pattern,go as PatternBrush,oo as PencilBrush,ot as Point,To as Polygon,wo as Polyline,jr as Rect,Ds as Shadow,uo as SprayBrush,ie as StaticCanvas,te as StaticCanvasDOMManager,Ao as Text,Uo as Textbox,yo as Triangle,$o as WebGLFilterBackend,_ as cache,tt as classRegistry,o as config,Fa as controlsUtils,ct as createCollectionMixin,Sh as filters,pa as getCSSRules,p as getEnv,m as getFabricDocument,v as getFabricWindow,sa as getFilterBackend,T as iMatrix,ea as initFilterBackend,Ra as isPutImageFaster,La as isWebGLPipelineState,Ca as loadSVGFromString,ba as loadSVGFromURL,Pr as parseAttributes,Or as parseFontDeclaration,Co as parsePointsAttribute,xa as parseSVGDocument,Dr as parseStyleAttribute,wr as parseTransformAttribute,et as runningAnimations,f as setEnv,ia as setFilterBackend,Mn as util,x as version};\n//# sourceMappingURL=index.min.mjs.map\n","import { FunctionComponent } from 'preact';\nimport { useEffect, useRef, useState, useCallback } from 'preact/hooks';\nimport * as fabric from 'fabric';\n\nexport type AnnotationTool = 'select' | 'pen' | 'arrow' | 'rectangle' | 'circle' | 'text' | 'blur';\n\ninterface Point {\n x: number;\n y: number;\n}\n\ninterface FabricObjectWithStartPoint extends fabric.Object {\n _startPoint?: Point;\n}\n\ninterface AnnotationCanvasProps {\n screenshot: string;\n onSave: (annotatedImage: string, annotations: object) => void;\n onCancel: () => void;\n}\n\nconst COLORS = ['#ef4444', '#f97316', '#eab308', '#22c55e', '#3b82f6', '#8b5cf6', '#000000'];\nconst STROKE_WIDTHS = [2, 4, 6, 8];\n\nexport const AnnotationCanvas: FunctionComponent<AnnotationCanvasProps> = ({\n screenshot,\n onSave,\n onCancel,\n}) => {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const canvasWrapperRef = useRef<HTMLDivElement>(null);\n const fabricRef = useRef<fabric.Canvas | null>(null);\n const [activeTool, setActiveTool] = useState<AnnotationTool>('select');\n const [activeColor, setActiveColor] = useState('#ef4444');\n const [strokeWidth, setStrokeWidth] = useState(4);\n const [canUndo, setCanUndo] = useState(false);\n const [canRedo, setCanRedo] = useState(false);\n const [zoomLevel, setZoomLevel] = useState(1);\n const [isPanning, setIsPanning] = useState(false);\n const historyRef = useRef<string[]>([]);\n const historyIndexRef = useRef(-1);\n const isDrawingRef = useRef(false);\n const isPanningRef = useRef(false);\n const lastPosRef = useRef<{ x: number; y: number } | null>(null);\n const originalDimensionsRef = useRef<{ width: number; height: number } | null>(null);\n\n // Initialize Fabric.js canvas\n useEffect(() => {\n if (!canvasRef.current) return;\n\n const canvas = new fabric.Canvas(canvasRef.current, {\n isDrawingMode: false,\n selection: true,\n });\n fabricRef.current = canvas;\n\n // Load screenshot as background\n fabric.FabricImage.fromURL(screenshot).then((img) => {\n // Store original dimensions for high-quality export\n originalDimensionsRef.current = {\n width: img.width || 800,\n height: img.height || 600,\n };\n\n // Scale image to fit container while maintaining aspect ratio\n // Get actual available space from the canvas wrapper element\n const wrapperRect = canvasWrapperRef.current?.getBoundingClientRect();\n const maxWidth = wrapperRect ? wrapperRect.width - 32 : 800; // 32px for padding\n const maxHeight = wrapperRect ? wrapperRect.height - 32 : 600;\n\n const scale = Math.min(\n maxWidth / (img.width || 800),\n maxHeight / (img.height || 600)\n );\n\n canvas.setDimensions({\n width: (img.width || 800) * scale,\n height: (img.height || 600) * scale,\n });\n\n img.scaleToWidth(canvas.width!);\n canvas.backgroundImage = img;\n canvas.renderAll();\n\n // Save initial state\n saveToHistory();\n });\n\n // Set up drawing brush\n canvas.freeDrawingBrush = new fabric.PencilBrush(canvas);\n canvas.freeDrawingBrush.color = activeColor;\n canvas.freeDrawingBrush.width = strokeWidth;\n\n // Object added handler\n canvas.on('object:added', () => {\n if (!isDrawingRef.current) {\n saveToHistory();\n }\n });\n\n canvas.on('path:created', () => {\n saveToHistory();\n });\n\n return () => {\n canvas.dispose();\n };\n }, [screenshot]);\n\n // Update brush when color/width changes\n useEffect(() => {\n if (!fabricRef.current) return;\n const canvas = fabricRef.current;\n\n if (canvas.freeDrawingBrush) {\n canvas.freeDrawingBrush.color = activeColor;\n canvas.freeDrawingBrush.width = strokeWidth;\n }\n }, [activeColor, strokeWidth]);\n\n // Update drawing mode based on active tool\n useEffect(() => {\n if (!fabricRef.current) return;\n const canvas = fabricRef.current;\n\n canvas.isDrawingMode = activeTool === 'pen';\n canvas.selection = activeTool === 'select';\n\n // Set cursor\n if (activeTool === 'select') {\n canvas.defaultCursor = 'default';\n } else if (activeTool === 'pen') {\n canvas.defaultCursor = 'crosshair';\n } else {\n canvas.defaultCursor = 'crosshair';\n }\n }, [activeTool]);\n\n const saveToHistory = useCallback(() => {\n if (!fabricRef.current) return;\n\n const json = JSON.stringify(fabricRef.current.toJSON());\n\n // Remove any future history if we're not at the end\n historyRef.current = historyRef.current.slice(0, historyIndexRef.current + 1);\n\n historyRef.current.push(json);\n historyIndexRef.current = historyRef.current.length - 1;\n\n setCanUndo(historyIndexRef.current > 0);\n setCanRedo(false);\n }, []);\n\n const undo = useCallback(() => {\n if (!fabricRef.current || historyIndexRef.current <= 0) return;\n\n historyIndexRef.current--;\n const json = historyRef.current[historyIndexRef.current];\n\n fabricRef.current.loadFromJSON(JSON.parse(json)).then(() => {\n fabricRef.current?.renderAll();\n setCanUndo(historyIndexRef.current > 0);\n setCanRedo(historyIndexRef.current < historyRef.current.length - 1);\n });\n }, []);\n\n const redo = useCallback(() => {\n if (!fabricRef.current || historyIndexRef.current >= historyRef.current.length - 1) return;\n\n historyIndexRef.current++;\n const json = historyRef.current[historyIndexRef.current];\n\n fabricRef.current.loadFromJSON(JSON.parse(json)).then(() => {\n fabricRef.current?.renderAll();\n setCanUndo(historyIndexRef.current > 0);\n setCanRedo(historyIndexRef.current < historyRef.current.length - 1);\n });\n }, []);\n\n // Handle shape drawing\n const handleCanvasMouseDown = useCallback((e: fabric.TPointerEventInfo) => {\n if (!fabricRef.current || activeTool === 'pen' || activeTool === 'select') return;\n\n isDrawingRef.current = true;\n const canvas = fabricRef.current;\n const pointer = canvas.getViewportPoint(e.e as MouseEvent);\n\n let shape: fabric.FabricObject | null = null;\n\n switch (activeTool) {\n case 'rectangle':\n shape = new fabric.Rect({\n left: pointer.x,\n top: pointer.y,\n width: 0,\n height: 0,\n stroke: activeColor,\n strokeWidth: strokeWidth,\n fill: 'transparent',\n selectable: true,\n });\n break;\n\n case 'circle':\n shape = new fabric.Ellipse({\n left: pointer.x,\n top: pointer.y,\n rx: 0,\n ry: 0,\n stroke: activeColor,\n strokeWidth: strokeWidth,\n fill: 'transparent',\n selectable: true,\n });\n break;\n\n case 'arrow':\n shape = new fabric.Line([pointer.x, pointer.y, pointer.x, pointer.y], {\n stroke: activeColor,\n strokeWidth: strokeWidth,\n selectable: true,\n });\n break;\n\n case 'text':\n shape = new fabric.IText('Text', {\n left: pointer.x,\n top: pointer.y,\n fontSize: 20,\n fill: activeColor,\n selectable: true,\n editable: true,\n });\n canvas.add(shape);\n canvas.setActiveObject(shape);\n (shape as fabric.IText).enterEditing();\n isDrawingRef.current = false;\n return;\n\n case 'blur':\n shape = new fabric.Rect({\n left: pointer.x,\n top: pointer.y,\n width: 0,\n height: 0,\n fill: 'rgba(128, 128, 128, 0.8)',\n stroke: '#666',\n strokeWidth: 1,\n selectable: true,\n });\n break;\n }\n\n if (shape) {\n (shape as FabricObjectWithStartPoint)._startPoint = { x: pointer.x, y: pointer.y };\n canvas.add(shape);\n canvas.setActiveObject(shape);\n }\n }, [activeTool, activeColor, strokeWidth]);\n\n const handleCanvasMouseMove = useCallback((e: fabric.TPointerEventInfo) => {\n if (!fabricRef.current || !isDrawingRef.current) return;\n\n const canvas = fabricRef.current;\n const activeObject = canvas.getActiveObject() as FabricObjectWithStartPoint;\n if (!activeObject || !activeObject._startPoint) return;\n\n const pointer = canvas.getViewportPoint(e.e as MouseEvent);\n const startPoint = activeObject._startPoint;\n\n if (activeObject instanceof fabric.Rect) {\n const width = pointer.x - startPoint.x;\n const height = pointer.y - startPoint.y;\n\n activeObject.set({\n left: width > 0 ? startPoint.x : pointer.x,\n top: height > 0 ? startPoint.y : pointer.y,\n width: Math.abs(width),\n height: Math.abs(height),\n });\n } else if (activeObject instanceof fabric.Ellipse) {\n const rx = Math.abs(pointer.x - startPoint.x) / 2;\n const ry = Math.abs(pointer.y - startPoint.y) / 2;\n\n activeObject.set({\n left: Math.min(startPoint.x, pointer.x),\n top: Math.min(startPoint.y, pointer.y),\n rx,\n ry,\n });\n } else if (activeObject instanceof fabric.Line) {\n activeObject.set({\n x2: pointer.x,\n y2: pointer.y,\n });\n }\n\n canvas.renderAll();\n }, []);\n\n const handleCanvasMouseUp = useCallback(() => {\n if (isDrawingRef.current) {\n isDrawingRef.current = false;\n saveToHistory();\n }\n }, [saveToHistory]);\n\n // Set up mouse event handlers\n useEffect(() => {\n if (!fabricRef.current) return;\n const canvas = fabricRef.current;\n\n canvas.on('mouse:down', handleCanvasMouseDown);\n canvas.on('mouse:move', handleCanvasMouseMove);\n canvas.on('mouse:up', handleCanvasMouseUp);\n\n return () => {\n canvas.off('mouse:down', handleCanvasMouseDown);\n canvas.off('mouse:move', handleCanvasMouseMove);\n canvas.off('mouse:up', handleCanvasMouseUp);\n };\n }, [handleCanvasMouseDown, handleCanvasMouseMove, handleCanvasMouseUp]);\n\n const handleSave = useCallback(() => {\n if (!fabricRef.current) return;\n\n const canvas = fabricRef.current;\n\n // Save current zoom and viewport state\n const currentZoom = canvas.getZoom();\n const currentViewport = canvas.viewportTransform?.slice() || [1, 0, 0, 1, 0, 0];\n\n // Reset zoom and viewport to export full image (not just zoomed area)\n canvas.setZoom(1);\n canvas.setViewportTransform([1, 0, 0, 1, 0, 0]);\n canvas.renderAll();\n\n // Calculate multiplier to export at original resolution\n const originalDimensions = originalDimensionsRef.current;\n const multiplier = originalDimensions\n ? originalDimensions.width / (canvas.width || 1)\n : 1;\n\n // Get annotated image as data URL at original resolution\n const dataUrl = canvas.toDataURL({\n format: 'png',\n quality: 1,\n multiplier: multiplier,\n });\n\n // Restore zoom and viewport\n canvas.setZoom(currentZoom);\n canvas.setViewportTransform(currentViewport as [number, number, number, number, number, number]);\n canvas.renderAll();\n\n // Get annotations as JSON (excluding background)\n const objects = canvas.getObjects();\n const annotations = objects.map((obj) => obj.toObject());\n\n onSave(dataUrl, { objects: annotations });\n }, [onSave]);\n\n const deleteSelected = useCallback(() => {\n if (!fabricRef.current) return;\n const canvas = fabricRef.current;\n const activeObjects = canvas.getActiveObjects();\n\n if (activeObjects.length > 0) {\n activeObjects.forEach((obj) => canvas.remove(obj));\n canvas.discardActiveObject();\n canvas.renderAll();\n saveToHistory();\n }\n }, [saveToHistory]);\n\n const handleZoomIn = useCallback(() => {\n if (!fabricRef.current) return;\n const canvas = fabricRef.current;\n const newZoom = Math.min(zoomLevel * 1.2, 3); // Max 3x zoom\n\n // Zoom to center of viewport\n const center = new fabric.Point(canvas.width! / 2, canvas.height! / 2);\n canvas.zoomToPoint(center, newZoom);\n setZoomLevel(newZoom);\n }, [zoomLevel]);\n\n const handleZoomOut = useCallback(() => {\n if (!fabricRef.current) return;\n const canvas = fabricRef.current;\n const newZoom = Math.max(zoomLevel / 1.2, 0.5); // Min 0.5x zoom\n\n // Zoom to center of viewport\n const center = new fabric.Point(canvas.width! / 2, canvas.height! / 2);\n canvas.zoomToPoint(center, newZoom);\n setZoomLevel(newZoom);\n }, [zoomLevel]);\n\n const handleZoomReset = useCallback(() => {\n if (!fabricRef.current) return;\n const canvas = fabricRef.current;\n setZoomLevel(1);\n canvas.setZoom(1);\n canvas.setViewportTransform([1, 0, 0, 1, 0, 0]); // Reset pan as well\n canvas.renderAll();\n }, []);\n\n // Panning functionality (hold Space to pan)\n useEffect(() => {\n if (!fabricRef.current) return;\n const canvas = fabricRef.current;\n\n const handleMouseDown = (opt: fabric.TPointerEventInfo) => {\n const evt = opt.e as MouseEvent;\n if (evt.buttons === 2 || (evt.buttons === 1 && isPanning)) {\n // Right click or left click while panning mode\n evt.preventDefault();\n isPanningRef.current = true;\n canvas.selection = false;\n lastPosRef.current = { x: evt.clientX, y: evt.clientY };\n canvas.setCursor('grabbing');\n }\n };\n\n const handleMouseMove = (opt: fabric.TPointerEventInfo) => {\n if (isPanningRef.current && lastPosRef.current) {\n const evt = opt.e as MouseEvent;\n const vpt = canvas.viewportTransform!;\n vpt[4] += evt.clientX - lastPosRef.current.x;\n vpt[5] += evt.clientY - lastPosRef.current.y;\n canvas.requestRenderAll();\n lastPosRef.current = { x: evt.clientX, y: evt.clientY };\n }\n };\n\n const handleMouseUp = () => {\n if (isPanningRef.current) {\n isPanningRef.current = false;\n lastPosRef.current = null;\n canvas.setCursor(isPanning ? 'grab' : 'default');\n }\n };\n\n canvas.on('mouse:down', handleMouseDown);\n canvas.on('mouse:move', handleMouseMove);\n canvas.on('mouse:up', handleMouseUp);\n\n return () => {\n canvas.off('mouse:down', handleMouseDown);\n canvas.off('mouse:move', handleMouseMove);\n canvas.off('mouse:up', handleMouseUp);\n };\n }, [isPanning]);\n\n // Keyboard shortcuts\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n // Space key for pan mode\n if (e.key === ' ' && !isPanning) {\n e.preventDefault();\n setIsPanning(true);\n if (fabricRef.current) {\n fabricRef.current.setCursor('grab');\n }\n }\n\n if (e.key === 'Delete' || e.key === 'Backspace') {\n const activeElement = document.activeElement;\n if (activeElement?.tagName !== 'INPUT' && activeElement?.tagName !== 'TEXTAREA') {\n deleteSelected();\n }\n }\n if ((e.ctrlKey || e.metaKey) && e.key === 'z') {\n e.preventDefault();\n if (e.shiftKey) {\n redo();\n } else {\n undo();\n }\n }\n };\n\n const handleKeyUp = (e: KeyboardEvent) => {\n // Release space key\n if (e.key === ' ' && isPanning) {\n setIsPanning(false);\n if (fabricRef.current) {\n fabricRef.current.setCursor('default');\n }\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n window.addEventListener('keyup', handleKeyUp);\n return () => {\n window.removeEventListener('keydown', handleKeyDown);\n window.removeEventListener('keyup', handleKeyUp);\n };\n }, [deleteSelected, undo, redo, isPanning]);\n\n const ToolButton = ({ tool, icon, label }: { tool: AnnotationTool; icon: string; label: string }) => (\n <button\n class={`bugpin-tool-btn ${activeTool === tool ? 'active' : ''}`}\n onClick={() => setActiveTool(tool)}\n title={label}\n >\n <span dangerouslySetInnerHTML={{ __html: icon }} />\n </button>\n );\n\n return (\n <div class=\"bugpin-annotation-container\">\n {/* Toolbar */}\n <div class=\"bugpin-annotation-toolbar\">\n <div class=\"bugpin-tool-group\">\n <ToolButton\n tool=\"select\"\n label=\"Select\"\n icon='<svg viewBox=\"0 0 24 24\"><path d=\"M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z\" fill=\"currentColor\"/></svg>'\n />\n <ToolButton\n tool=\"pen\"\n label=\"Pen\"\n icon='<svg viewBox=\"0 0 24 24\"><path d=\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 000-1.41l-2.34-2.34a.996.996 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\" fill=\"currentColor\"/></svg>'\n />\n <ToolButton\n tool=\"arrow\"\n label=\"Arrow\"\n icon='<svg viewBox=\"0 0 24 24\"><path d=\"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\" fill=\"currentColor\"/></svg>'\n />\n <ToolButton\n tool=\"rectangle\"\n label=\"Rectangle\"\n icon='<svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/></svg>'\n />\n <ToolButton\n tool=\"circle\"\n label=\"Circle\"\n icon='<svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/></svg>'\n />\n <ToolButton\n tool=\"text\"\n label=\"Text\"\n icon='<svg viewBox=\"0 0 24 24\"><path d=\"M5 4v3h5.5v12h3V7H19V4H5z\" fill=\"currentColor\"/></svg>'\n />\n <ToolButton\n tool=\"blur\"\n label=\"Blur/Mask\"\n icon='<svg viewBox=\"0 0 24 24\"><path d=\"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6zM18 20H6V10h12v10z\" fill=\"currentColor\"/></svg>'\n />\n </div>\n\n <div class=\"bugpin-tool-divider\" />\n\n {/* Colors */}\n <div class=\"bugpin-color-picker\">\n {COLORS.map((color) => (\n <button\n key={color}\n class={`bugpin-color-btn ${activeColor === color ? 'active' : ''}`}\n style={{ backgroundColor: color }}\n onClick={() => setActiveColor(color)}\n title={color}\n />\n ))}\n </div>\n\n <div class=\"bugpin-tool-divider\" />\n\n {/* Stroke Width */}\n <div class=\"bugpin-stroke-picker\">\n {STROKE_WIDTHS.map((width) => (\n <button\n key={width}\n class={`bugpin-stroke-btn ${strokeWidth === width ? 'active' : ''}`}\n onClick={() => setStrokeWidth(width)}\n title={`${width}px`}\n >\n <span style={{ height: `${width}px` }} />\n </button>\n ))}\n </div>\n\n <div class=\"bugpin-tool-divider\" />\n\n {/* Undo/Redo */}\n <div class=\"bugpin-tool-group\">\n <button\n class=\"bugpin-tool-btn\"\n onClick={undo}\n disabled={!canUndo}\n title=\"Undo (Ctrl+Z)\"\n >\n <svg viewBox=\"0 0 24 24\"><path d=\"M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z\" fill=\"currentColor\"/></svg>\n </button>\n <button\n class=\"bugpin-tool-btn\"\n onClick={redo}\n disabled={!canRedo}\n title=\"Redo (Ctrl+Shift+Z)\"\n >\n <svg viewBox=\"0 0 24 24\"><path d=\"M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z\" fill=\"currentColor\"/></svg>\n </button>\n <button\n class=\"bugpin-tool-btn\"\n onClick={deleteSelected}\n title=\"Delete selected (Del)\"\n >\n <svg viewBox=\"0 0 24 24\"><path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\" fill=\"currentColor\"/></svg>\n </button>\n </div>\n\n <div class=\"bugpin-tool-divider\" />\n\n {/* Zoom Controls */}\n <div class=\"bugpin-tool-group\">\n <button\n class=\"bugpin-tool-btn\"\n onClick={handleZoomOut}\n disabled={zoomLevel <= 0.5}\n title=\"Zoom Out - Hold Space to pan when zoomed\"\n >\n <svg viewBox=\"0 0 24 24\"><path d=\"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z\" fill=\"currentColor\"/></svg>\n </button>\n <button\n class=\"bugpin-tool-btn\"\n onClick={handleZoomReset}\n title={`Reset Zoom (${Math.round(zoomLevel * 100)}%) - Hold Space to pan`}\n >\n <svg viewBox=\"0 0 24 24\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-1-13h2v6h-2zm0 8h2v2h-2z\" fill=\"currentColor\"/></svg>\n </button>\n <button\n class=\"bugpin-tool-btn\"\n onClick={handleZoomIn}\n disabled={zoomLevel >= 3}\n title=\"Zoom In - Hold Space to pan when zoomed\"\n >\n <svg viewBox=\"0 0 24 24\"><path d=\"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zm.5-7H9v2H7v1h2v2h1v-2h2V9h-2z\" fill=\"currentColor\"/></svg>\n </button>\n </div>\n </div>\n\n {/* Canvas */}\n <div class=\"bugpin-canvas-wrapper\" ref={canvasWrapperRef}>\n <canvas ref={canvasRef} />\n </div>\n\n {/* Actions */}\n <div class=\"bugpin-annotation-actions\">\n <button class=\"bugpin-btn-cancel\" onClick={onCancel}>\n Cancel\n </button>\n <button class=\"bugpin-btn-submit\" onClick={handleSave}>\n Done\n </button>\n </div>\n </div>\n );\n};\n","export function resolveUrl(url, baseUrl) {\n // url is absolute already\n if (url.match(/^[a-z]+:\\/\\//i)) {\n return url;\n }\n // url is absolute already, without protocol\n if (url.match(/^\\/\\//)) {\n return window.location.protocol + url;\n }\n // dataURI, mailto:, tel:, etc.\n if (url.match(/^[a-z]+:/i)) {\n return url;\n }\n const doc = document.implementation.createHTMLDocument();\n const base = doc.createElement('base');\n const a = doc.createElement('a');\n doc.head.appendChild(base);\n doc.body.appendChild(a);\n if (baseUrl) {\n base.href = baseUrl;\n }\n a.href = url;\n return a.href;\n}\nexport const uuid = (() => {\n // generate uuid for className of pseudo elements.\n // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.\n let counter = 0;\n // ref: http://stackoverflow.com/a/6248722/2519373\n const random = () => \n // eslint-disable-next-line no-bitwise\n `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);\n return () => {\n counter += 1;\n return `u${random()}${counter}`;\n };\n})();\nexport function delay(ms) {\n return (args) => new Promise((resolve) => {\n setTimeout(() => resolve(args), ms);\n });\n}\nexport function toArray(arrayLike) {\n const arr = [];\n for (let i = 0, l = arrayLike.length; i < l; i++) {\n arr.push(arrayLike[i]);\n }\n return arr;\n}\nlet styleProps = null;\nexport function getStyleProperties(options = {}) {\n if (styleProps) {\n return styleProps;\n }\n if (options.includeStyleProperties) {\n styleProps = options.includeStyleProperties;\n return styleProps;\n }\n styleProps = toArray(window.getComputedStyle(document.documentElement));\n return styleProps;\n}\nfunction px(node, styleProperty) {\n const win = node.ownerDocument.defaultView || window;\n const val = win.getComputedStyle(node).getPropertyValue(styleProperty);\n return val ? parseFloat(val.replace('px', '')) : 0;\n}\nfunction getNodeWidth(node) {\n const leftBorder = px(node, 'border-left-width');\n const rightBorder = px(node, 'border-right-width');\n return node.clientWidth + leftBorder + rightBorder;\n}\nfunction getNodeHeight(node) {\n const topBorder = px(node, 'border-top-width');\n const bottomBorder = px(node, 'border-bottom-width');\n return node.clientHeight + topBorder + bottomBorder;\n}\nexport function getImageSize(targetNode, options = {}) {\n const width = options.width || getNodeWidth(targetNode);\n const height = options.height || getNodeHeight(targetNode);\n return { width, height };\n}\nexport function getPixelRatio() {\n let ratio;\n let FINAL_PROCESS;\n try {\n FINAL_PROCESS = process;\n }\n catch (e) {\n // pass\n }\n const val = FINAL_PROCESS && FINAL_PROCESS.env\n ? FINAL_PROCESS.env.devicePixelRatio\n : null;\n if (val) {\n ratio = parseInt(val, 10);\n if (Number.isNaN(ratio)) {\n ratio = 1;\n }\n }\n return ratio || window.devicePixelRatio || 1;\n}\n// @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size\nconst canvasDimensionLimit = 16384;\nexport function checkCanvasDimensions(canvas) {\n if (canvas.width > canvasDimensionLimit ||\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvasDimensionLimit &&\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvas.height) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n else if (canvas.width > canvasDimensionLimit) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n}\nexport function canvasToBlob(canvas, options = {}) {\n if (canvas.toBlob) {\n return new Promise((resolve) => {\n canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);\n });\n }\n return new Promise((resolve) => {\n const binaryString = window.atob(canvas\n .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)\n .split(',')[1]);\n const len = binaryString.length;\n const binaryArray = new Uint8Array(len);\n for (let i = 0; i < len; i += 1) {\n binaryArray[i] = binaryString.charCodeAt(i);\n }\n resolve(new Blob([binaryArray], {\n type: options.type ? options.type : 'image/png',\n }));\n });\n}\nexport function createImage(url) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n img.decode().then(() => {\n requestAnimationFrame(() => resolve(img));\n });\n };\n img.onerror = reject;\n img.crossOrigin = 'anonymous';\n img.decoding = 'async';\n img.src = url;\n });\n}\nexport async function svgToDataURL(svg) {\n return Promise.resolve()\n .then(() => new XMLSerializer().serializeToString(svg))\n .then(encodeURIComponent)\n .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);\n}\nexport async function nodeToDataURL(node, width, height) {\n const xmlns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(xmlns, 'svg');\n const foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttribute('width', `${width}`);\n svg.setAttribute('height', `${height}`);\n svg.setAttribute('viewBox', `0 0 ${width} ${height}`);\n foreignObject.setAttribute('width', '100%');\n foreignObject.setAttribute('height', '100%');\n foreignObject.setAttribute('x', '0');\n foreignObject.setAttribute('y', '0');\n foreignObject.setAttribute('externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svgToDataURL(svg);\n}\nexport const isInstanceOfElement = (node, instance) => {\n if (node instanceof instance)\n return true;\n const nodePrototype = Object.getPrototypeOf(node);\n if (nodePrototype === null)\n return false;\n return (nodePrototype.constructor.name === instance.name ||\n isInstanceOfElement(nodePrototype, instance));\n};\n//# sourceMappingURL=util.js.map","import { uuid, getStyleProperties } from './util';\nfunction formatCSSText(style) {\n const content = style.getPropertyValue('content');\n return `${style.cssText} content: '${content.replace(/'|\"/g, '')}';`;\n}\nfunction formatCSSProperties(style, options) {\n return getStyleProperties(options)\n .map((name) => {\n const value = style.getPropertyValue(name);\n const priority = style.getPropertyPriority(name);\n return `${name}: ${value}${priority ? ' !important' : ''};`;\n })\n .join(' ');\n}\nfunction getPseudoElementStyle(className, pseudo, style, options) {\n const selector = `.${className}:${pseudo}`;\n const cssText = style.cssText\n ? formatCSSText(style)\n : formatCSSProperties(style, options);\n return document.createTextNode(`${selector}{${cssText}}`);\n}\nfunction clonePseudoElement(nativeNode, clonedNode, pseudo, options) {\n const style = window.getComputedStyle(nativeNode, pseudo);\n const content = style.getPropertyValue('content');\n if (content === '' || content === 'none') {\n return;\n }\n const className = uuid();\n try {\n clonedNode.className = `${clonedNode.className} ${className}`;\n }\n catch (err) {\n return;\n }\n const styleElement = document.createElement('style');\n styleElement.appendChild(getPseudoElementStyle(className, pseudo, style, options));\n clonedNode.appendChild(styleElement);\n}\nexport function clonePseudoElements(nativeNode, clonedNode, options) {\n clonePseudoElement(nativeNode, clonedNode, ':before', options);\n clonePseudoElement(nativeNode, clonedNode, ':after', options);\n}\n//# sourceMappingURL=clone-pseudos.js.map","const WOFF = 'application/font-woff';\nconst JPEG = 'image/jpeg';\nconst mimes = {\n woff: WOFF,\n woff2: WOFF,\n ttf: 'application/font-truetype',\n eot: 'application/vnd.ms-fontobject',\n png: 'image/png',\n jpg: JPEG,\n jpeg: JPEG,\n gif: 'image/gif',\n tiff: 'image/tiff',\n svg: 'image/svg+xml',\n webp: 'image/webp',\n};\nfunction getExtension(url) {\n const match = /\\.([^./]*?)$/g.exec(url);\n return match ? match[1] : '';\n}\nexport function getMimeType(url) {\n const extension = getExtension(url).toLowerCase();\n return mimes[extension] || '';\n}\n//# sourceMappingURL=mimes.js.map","function getContentFromDataUrl(dataURL) {\n return dataURL.split(/,/)[1];\n}\nexport function isDataUrl(url) {\n return url.search(/^(data:)/) !== -1;\n}\nexport function makeDataUrl(content, mimeType) {\n return `data:${mimeType};base64,${content}`;\n}\nexport async function fetchAsDataURL(url, init, process) {\n const res = await fetch(url, init);\n if (res.status === 404) {\n throw new Error(`Resource \"${res.url}\" not found`);\n }\n const blob = await res.blob();\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = () => {\n try {\n resolve(process({ res, result: reader.result }));\n }\n catch (error) {\n reject(error);\n }\n };\n reader.readAsDataURL(blob);\n });\n}\nconst cache = {};\nfunction getCacheKey(url, contentType, includeQueryParams) {\n let key = url.replace(/\\?.*/, '');\n if (includeQueryParams) {\n key = url;\n }\n // font resource\n if (/ttf|otf|eot|woff2?/i.test(key)) {\n key = key.replace(/.*\\//, '');\n }\n return contentType ? `[${contentType}]${key}` : key;\n}\nexport async function resourceToDataURL(resourceUrl, contentType, options) {\n const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);\n if (cache[cacheKey] != null) {\n return cache[cacheKey];\n }\n // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n if (options.cacheBust) {\n // eslint-disable-next-line no-param-reassign\n resourceUrl += (/\\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();\n }\n let dataURL;\n try {\n const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {\n if (!contentType) {\n // eslint-disable-next-line no-param-reassign\n contentType = res.headers.get('Content-Type') || '';\n }\n return getContentFromDataUrl(result);\n });\n dataURL = makeDataUrl(content, contentType);\n }\n catch (error) {\n dataURL = options.imagePlaceholder || '';\n let msg = `Failed to fetch resource: ${resourceUrl}`;\n if (error) {\n msg = typeof error === 'string' ? error : error.message;\n }\n if (msg) {\n console.warn(msg);\n }\n }\n cache[cacheKey] = dataURL;\n return dataURL;\n}\n//# sourceMappingURL=dataurl.js.map","import { clonePseudoElements } from './clone-pseudos';\nimport { createImage, toArray, isInstanceOfElement, getStyleProperties, } from './util';\nimport { getMimeType } from './mimes';\nimport { resourceToDataURL } from './dataurl';\nasync function cloneCanvasElement(canvas) {\n const dataURL = canvas.toDataURL();\n if (dataURL === 'data:,') {\n return canvas.cloneNode(false);\n }\n return createImage(dataURL);\n}\nasync function cloneVideoElement(video, options) {\n if (video.currentSrc) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n canvas.width = video.clientWidth;\n canvas.height = video.clientHeight;\n ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n const dataURL = canvas.toDataURL();\n return createImage(dataURL);\n }\n const poster = video.poster;\n const contentType = getMimeType(poster);\n const dataURL = await resourceToDataURL(poster, contentType, options);\n return createImage(dataURL);\n}\nasync function cloneIFrameElement(iframe, options) {\n var _a;\n try {\n if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {\n return (await cloneNode(iframe.contentDocument.body, options, true));\n }\n }\n catch (_b) {\n // Failed to clone iframe\n }\n return iframe.cloneNode(false);\n}\nasync function cloneSingleNode(node, options) {\n if (isInstanceOfElement(node, HTMLCanvasElement)) {\n return cloneCanvasElement(node);\n }\n if (isInstanceOfElement(node, HTMLVideoElement)) {\n return cloneVideoElement(node, options);\n }\n if (isInstanceOfElement(node, HTMLIFrameElement)) {\n return cloneIFrameElement(node, options);\n }\n return node.cloneNode(isSVGElement(node));\n}\nconst isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';\nconst isSVGElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SVG';\nasync function cloneChildren(nativeNode, clonedNode, options) {\n var _a, _b;\n if (isSVGElement(clonedNode)) {\n return clonedNode;\n }\n let children = [];\n if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {\n children = toArray(nativeNode.assignedNodes());\n }\n else if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {\n children = toArray(nativeNode.contentDocument.body.childNodes);\n }\n else {\n children = toArray(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);\n }\n if (children.length === 0 ||\n isInstanceOfElement(nativeNode, HTMLVideoElement)) {\n return clonedNode;\n }\n await children.reduce((deferred, child) => deferred\n .then(() => cloneNode(child, options))\n .then((clonedChild) => {\n if (clonedChild) {\n clonedNode.appendChild(clonedChild);\n }\n }), Promise.resolve());\n return clonedNode;\n}\nfunction cloneCSSStyle(nativeNode, clonedNode, options) {\n const targetStyle = clonedNode.style;\n if (!targetStyle) {\n return;\n }\n const sourceStyle = window.getComputedStyle(nativeNode);\n if (sourceStyle.cssText) {\n targetStyle.cssText = sourceStyle.cssText;\n targetStyle.transformOrigin = sourceStyle.transformOrigin;\n }\n else {\n getStyleProperties(options).forEach((name) => {\n let value = sourceStyle.getPropertyValue(name);\n if (name === 'font-size' && value.endsWith('px')) {\n const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;\n value = `${reducedFont}px`;\n }\n if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n name === 'display' &&\n value === 'inline') {\n value = 'block';\n }\n if (name === 'd' && clonedNode.getAttribute('d')) {\n value = `path(${clonedNode.getAttribute('d')})`;\n }\n targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));\n });\n }\n}\nfunction cloneInputValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLTextAreaElement)) {\n clonedNode.innerHTML = nativeNode.value;\n }\n if (isInstanceOfElement(nativeNode, HTMLInputElement)) {\n clonedNode.setAttribute('value', nativeNode.value);\n }\n}\nfunction cloneSelectValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLSelectElement)) {\n const clonedSelect = clonedNode;\n const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));\n if (selectedOption) {\n selectedOption.setAttribute('selected', '');\n }\n }\n}\nfunction decorate(nativeNode, clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n cloneCSSStyle(nativeNode, clonedNode, options);\n clonePseudoElements(nativeNode, clonedNode, options);\n cloneInputValue(nativeNode, clonedNode);\n cloneSelectValue(nativeNode, clonedNode);\n }\n return clonedNode;\n}\nasync function ensureSVGSymbols(clone, options) {\n const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];\n if (uses.length === 0) {\n return clone;\n }\n const processedDefs = {};\n for (let i = 0; i < uses.length; i++) {\n const use = uses[i];\n const id = use.getAttribute('xlink:href');\n if (id) {\n const exist = clone.querySelector(id);\n const definition = document.querySelector(id);\n if (!exist && definition && !processedDefs[id]) {\n // eslint-disable-next-line no-await-in-loop\n processedDefs[id] = (await cloneNode(definition, options, true));\n }\n }\n }\n const nodes = Object.values(processedDefs);\n if (nodes.length) {\n const ns = 'http://www.w3.org/1999/xhtml';\n const svg = document.createElementNS(ns, 'svg');\n svg.setAttribute('xmlns', ns);\n svg.style.position = 'absolute';\n svg.style.width = '0';\n svg.style.height = '0';\n svg.style.overflow = 'hidden';\n svg.style.display = 'none';\n const defs = document.createElementNS(ns, 'defs');\n svg.appendChild(defs);\n for (let i = 0; i < nodes.length; i++) {\n defs.appendChild(nodes[i]);\n }\n clone.appendChild(svg);\n }\n return clone;\n}\nexport async function cloneNode(node, options, isRoot) {\n if (!isRoot && options.filter && !options.filter(node)) {\n return null;\n }\n return Promise.resolve(node)\n .then((clonedNode) => cloneSingleNode(clonedNode, options))\n .then((clonedNode) => cloneChildren(node, clonedNode, options))\n .then((clonedNode) => decorate(node, clonedNode, options))\n .then((clonedNode) => ensureSVGSymbols(clonedNode, options));\n}\n//# sourceMappingURL=clone-node.js.map","import { resolveUrl } from './util';\nimport { getMimeType } from './mimes';\nimport { isDataUrl, makeDataUrl, resourceToDataURL } from './dataurl';\nconst URL_REGEX = /url\\((['\"]?)([^'\"]+?)\\1\\)/g;\nconst URL_WITH_FORMAT_REGEX = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g;\nconst FONT_SRC_REGEX = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction toRegex(url) {\n // eslint-disable-next-line no-useless-escape\n const escaped = url.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n return new RegExp(`(url\\\\(['\"]?)(${escaped})(['\"]?\\\\))`, 'g');\n}\nexport function parseURLs(cssText) {\n const urls = [];\n cssText.replace(URL_REGEX, (raw, quotation, url) => {\n urls.push(url);\n return raw;\n });\n return urls.filter((url) => !isDataUrl(url));\n}\nexport async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {\n try {\n const resolvedURL = baseURL ? resolveUrl(resourceURL, baseURL) : resourceURL;\n const contentType = getMimeType(resourceURL);\n let dataURL;\n if (getContentFromUrl) {\n const content = await getContentFromUrl(resolvedURL);\n dataURL = makeDataUrl(content, contentType);\n }\n else {\n dataURL = await resourceToDataURL(resolvedURL, contentType, options);\n }\n return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);\n }\n catch (error) {\n // pass\n }\n return cssText;\n}\nfunction filterPreferredFontFormat(str, { preferredFontFormat }) {\n return !preferredFontFormat\n ? str\n : str.replace(FONT_SRC_REGEX, (match) => {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];\n if (!format) {\n return '';\n }\n if (format === preferredFontFormat) {\n return `src: ${src};`;\n }\n }\n });\n}\nexport function shouldEmbed(url) {\n return url.search(URL_REGEX) !== -1;\n}\nexport async function embedResources(cssText, baseUrl, options) {\n if (!shouldEmbed(cssText)) {\n return cssText;\n }\n const filteredCSSText = filterPreferredFontFormat(cssText, options);\n const urls = parseURLs(filteredCSSText);\n return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));\n}\n//# sourceMappingURL=embed-resources.js.map","import { embedResources } from './embed-resources';\nimport { toArray, isInstanceOfElement } from './util';\nimport { isDataUrl, resourceToDataURL } from './dataurl';\nimport { getMimeType } from './mimes';\nasync function embedProp(propName, node, options) {\n var _a;\n const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);\n if (propValue) {\n const cssString = await embedResources(propValue, null, options);\n node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));\n return true;\n }\n return false;\n}\nasync function embedBackground(clonedNode, options) {\n ;\n (await embedProp('background', clonedNode, options)) ||\n (await embedProp('background-image', clonedNode, options));\n (await embedProp('mask', clonedNode, options)) ||\n (await embedProp('-webkit-mask', clonedNode, options)) ||\n (await embedProp('mask-image', clonedNode, options)) ||\n (await embedProp('-webkit-mask-image', clonedNode, options));\n}\nasync function embedImageNode(clonedNode, options) {\n const isImageElement = isInstanceOfElement(clonedNode, HTMLImageElement);\n if (!(isImageElement && !isDataUrl(clonedNode.src)) &&\n !(isInstanceOfElement(clonedNode, SVGImageElement) &&\n !isDataUrl(clonedNode.href.baseVal))) {\n return;\n }\n const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;\n const dataURL = await resourceToDataURL(url, getMimeType(url), options);\n await new Promise((resolve, reject) => {\n clonedNode.onload = resolve;\n clonedNode.onerror = options.onImageErrorHandler\n ? (...attributes) => {\n try {\n resolve(options.onImageErrorHandler(...attributes));\n }\n catch (error) {\n reject(error);\n }\n }\n : reject;\n const image = clonedNode;\n if (image.decode) {\n image.decode = resolve;\n }\n if (image.loading === 'lazy') {\n image.loading = 'eager';\n }\n if (isImageElement) {\n clonedNode.srcset = '';\n clonedNode.src = dataURL;\n }\n else {\n clonedNode.href.baseVal = dataURL;\n }\n });\n}\nasync function embedChildren(clonedNode, options) {\n const children = toArray(clonedNode.childNodes);\n const deferreds = children.map((child) => embedImages(child, options));\n await Promise.all(deferreds).then(() => clonedNode);\n}\nexport async function embedImages(clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n await embedBackground(clonedNode, options);\n await embedImageNode(clonedNode, options);\n await embedChildren(clonedNode, options);\n }\n}\n//# sourceMappingURL=embed-images.js.map","export function applyStyle(node, options) {\n const { style } = node;\n if (options.backgroundColor) {\n style.backgroundColor = options.backgroundColor;\n }\n if (options.width) {\n style.width = `${options.width}px`;\n }\n if (options.height) {\n style.height = `${options.height}px`;\n }\n const manual = options.style;\n if (manual != null) {\n Object.keys(manual).forEach((key) => {\n style[key] = manual[key];\n });\n }\n return node;\n}\n//# sourceMappingURL=apply-style.js.map","import { toArray } from './util';\nimport { fetchAsDataURL } from './dataurl';\nimport { shouldEmbed, embedResources } from './embed-resources';\nconst cssFetchCache = {};\nasync function fetchCSS(url) {\n let cache = cssFetchCache[url];\n if (cache != null) {\n return cache;\n }\n const res = await fetch(url);\n const cssText = await res.text();\n cache = { url, cssText };\n cssFetchCache[url] = cache;\n return cache;\n}\nasync function embedFonts(data, options) {\n let cssText = data.cssText;\n const regexUrl = /url\\([\"']?([^\"')]+)[\"']?\\)/g;\n const fontLocs = cssText.match(/url\\([^)]+\\)/g) || [];\n const loadFonts = fontLocs.map(async (loc) => {\n let url = loc.replace(regexUrl, '$1');\n if (!url.startsWith('https://')) {\n url = new URL(url, data.url).href;\n }\n return fetchAsDataURL(url, options.fetchRequestInit, ({ result }) => {\n cssText = cssText.replace(loc, `url(${result})`);\n return [loc, result];\n });\n });\n return Promise.all(loadFonts).then(() => cssText);\n}\nfunction parseCSS(source) {\n if (source == null) {\n return [];\n }\n const result = [];\n const commentsRegex = /(\\/\\*[\\s\\S]*?\\*\\/)/gi;\n // strip out comments\n let cssText = source.replace(commentsRegex, '');\n // eslint-disable-next-line prefer-regex-literals\n const keyframesRegex = new RegExp('((@.*?keyframes [\\\\s\\\\S]*?){([\\\\s\\\\S]*?}\\\\s*?)})', 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const matches = keyframesRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n result.push(matches[0]);\n }\n cssText = cssText.replace(keyframesRegex, '');\n const importRegex = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi;\n // to match css & media queries together\n const combinedCSSRegex = '((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]' +\n '*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})';\n // unified regex\n const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let matches = importRegex.exec(cssText);\n if (matches === null) {\n matches = unifiedRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n else {\n importRegex.lastIndex = unifiedRegex.lastIndex;\n }\n }\n else {\n unifiedRegex.lastIndex = importRegex.lastIndex;\n }\n result.push(matches[0]);\n }\n return result;\n}\nasync function getCSSRules(styleSheets, options) {\n const ret = [];\n const deferreds = [];\n // First loop inlines imports\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item, index) => {\n if (item.type === CSSRule.IMPORT_RULE) {\n let importIndex = index + 1;\n const url = item.href;\n const deferred = fetchCSS(url)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n try {\n sheet.insertRule(rule, rule.startsWith('@import')\n ? (importIndex += 1)\n : sheet.cssRules.length);\n }\n catch (error) {\n console.error('Error inserting rule from remote css', {\n rule,\n error,\n });\n }\n }))\n .catch((e) => {\n console.error('Error loading remote css', e.toString());\n });\n deferreds.push(deferred);\n }\n });\n }\n catch (e) {\n const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];\n if (sheet.href != null) {\n deferreds.push(fetchCSS(sheet.href)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n inline.insertRule(rule, inline.cssRules.length);\n }))\n .catch((err) => {\n console.error('Error loading remote stylesheet', err);\n }));\n }\n console.error('Error inlining remote css file', e);\n }\n }\n });\n return Promise.all(deferreds).then(() => {\n // Second loop parses rules\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item) => {\n ret.push(item);\n });\n }\n catch (e) {\n console.error(`Error while reading CSS rules from ${sheet.href}`, e);\n }\n }\n });\n return ret;\n });\n}\nfunction getWebFontRules(cssRules) {\n return cssRules\n .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)\n .filter((rule) => shouldEmbed(rule.style.getPropertyValue('src')));\n}\nasync function parseWebFontRules(node, options) {\n if (node.ownerDocument == null) {\n throw new Error('Provided element is not within a Document');\n }\n const styleSheets = toArray(node.ownerDocument.styleSheets);\n const cssRules = await getCSSRules(styleSheets, options);\n return getWebFontRules(cssRules);\n}\nfunction normalizeFontFamily(font) {\n return font.trim().replace(/[\"']/g, '');\n}\nfunction getUsedFonts(node) {\n const fonts = new Set();\n function traverse(node) {\n const fontFamily = node.style.fontFamily || getComputedStyle(node).fontFamily;\n fontFamily.split(',').forEach((font) => {\n fonts.add(normalizeFontFamily(font));\n });\n Array.from(node.children).forEach((child) => {\n if (child instanceof HTMLElement) {\n traverse(child);\n }\n });\n }\n traverse(node);\n return fonts;\n}\nexport async function getWebFontCSS(node, options) {\n const rules = await parseWebFontRules(node, options);\n const usedFonts = getUsedFonts(node);\n const cssTexts = await Promise.all(rules\n .filter((rule) => usedFonts.has(normalizeFontFamily(rule.style.fontFamily)))\n .map((rule) => {\n const baseUrl = rule.parentStyleSheet\n ? rule.parentStyleSheet.href\n : null;\n return embedResources(rule.cssText, baseUrl, options);\n }));\n return cssTexts.join('\\n');\n}\nexport async function embedWebFonts(clonedNode, options) {\n const cssText = options.fontEmbedCSS != null\n ? options.fontEmbedCSS\n : options.skipFonts\n ? null\n : await getWebFontCSS(clonedNode, options);\n if (cssText) {\n const styleNode = document.createElement('style');\n const sytleContent = document.createTextNode(cssText);\n styleNode.appendChild(sytleContent);\n if (clonedNode.firstChild) {\n clonedNode.insertBefore(styleNode, clonedNode.firstChild);\n }\n else {\n clonedNode.appendChild(styleNode);\n }\n }\n}\n//# sourceMappingURL=embed-webfonts.js.map","import { cloneNode } from './clone-node';\nimport { embedImages } from './embed-images';\nimport { applyStyle } from './apply-style';\nimport { embedWebFonts, getWebFontCSS } from './embed-webfonts';\nimport { getImageSize, getPixelRatio, createImage, canvasToBlob, nodeToDataURL, checkCanvasDimensions, } from './util';\nexport async function toSvg(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const clonedNode = (await cloneNode(node, options, true));\n await embedWebFonts(clonedNode, options);\n await embedImages(clonedNode, options);\n applyStyle(clonedNode, options);\n const datauri = await nodeToDataURL(clonedNode, width, height);\n return datauri;\n}\nexport async function toCanvas(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const svg = await toSvg(node, options);\n const img = await createImage(svg);\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n const ratio = options.pixelRatio || getPixelRatio();\n const canvasWidth = options.canvasWidth || width;\n const canvasHeight = options.canvasHeight || height;\n canvas.width = canvasWidth * ratio;\n canvas.height = canvasHeight * ratio;\n if (!options.skipAutoScale) {\n checkCanvasDimensions(canvas);\n }\n canvas.style.width = `${canvasWidth}`;\n canvas.style.height = `${canvasHeight}`;\n if (options.backgroundColor) {\n context.fillStyle = options.backgroundColor;\n context.fillRect(0, 0, canvas.width, canvas.height);\n }\n context.drawImage(img, 0, 0, canvas.width, canvas.height);\n return canvas;\n}\nexport async function toPixelData(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const canvas = await toCanvas(node, options);\n const ctx = canvas.getContext('2d');\n return ctx.getImageData(0, 0, width, height).data;\n}\nexport async function toPng(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL();\n}\nexport async function toJpeg(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL('image/jpeg', options.quality || 1);\n}\nexport async function toBlob(node, options = {}) {\n const canvas = await toCanvas(node, options);\n const blob = await canvasToBlob(canvas);\n return blob;\n}\nexport async function getFontEmbedCSS(node, options = {}) {\n return getWebFontCSS(node, options);\n}\n//# sourceMappingURL=index.js.map","import { toCanvas } from 'html-to-image';\n\nexport type CaptureMethod = 'visible' | 'fullpage' | 'element';\n\n/**\n * Capture screenshot using Screen Capture API\n * Requires user permission to select tab/window to capture\n * Provides pixel-perfect screenshots including videos, canvas, WebGL\n * @returns Base64 data URL of the screenshot\n */\nasync function captureWithScreenCaptureAPI(): Promise<string> {\n try {\n // Request screen capture permission\n const stream = await navigator.mediaDevices.getDisplayMedia({\n video: {\n displaySurface: 'browser', // Prefer browser tab\n } as MediaTrackConstraints,\n audio: false,\n });\n\n // Create video element to capture frame\n const video = document.createElement('video');\n video.srcObject = stream;\n video.autoplay = true;\n\n // Wait for video to be ready\n await new Promise<void>((resolve) => {\n video.onloadedmetadata = () => resolve();\n });\n\n // Wait a frame to ensure video is rendered\n await new Promise((resolve) => setTimeout(resolve, 100));\n\n // Create canvas and capture current frame\n const canvas = document.createElement('canvas');\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('Failed to get canvas context');\n }\n\n // Draw video frame to canvas\n ctx.drawImage(video, 0, 0);\n\n // Stop the stream immediately\n stream.getTracks().forEach((track) => track.stop());\n\n // Convert to data URL\n return canvas.toDataURL('image/png');\n } catch (error) {\n if (error instanceof Error && error.name === 'NotAllowedError') {\n throw new Error('Screen capture permission denied');\n }\n throw error;\n }\n}\n\n/**\n * Capture screenshot of the current page using html-to-image\n * @param method Capture method: visible viewport, full page, or specific element\n * @param selector CSS selector for element capture (only used with 'element' method)\n * @param useScreenCaptureAPI Use Screen Capture API instead of DOM rendering\n * @returns Base64 data URL of the screenshot\n */\nexport async function captureScreenshot(\n method: CaptureMethod = 'visible',\n selector?: string,\n useScreenCaptureAPI: boolean = false\n): Promise<string> {\n // Use Screen Capture API if enabled\n if (useScreenCaptureAPI) {\n return captureWithScreenCaptureAPI();\n }\n // Get the element to capture\n let element: HTMLElement;\n\n switch (method) {\n case 'element':\n if (!selector) {\n throw new Error('Selector required for element capture');\n }\n const found = document.querySelector(selector);\n if (!found || !(found instanceof HTMLElement)) {\n throw new Error(`Element not found: ${selector}`);\n }\n element = found;\n break;\n\n case 'fullpage':\n element = document.documentElement;\n break;\n\n case 'visible':\n default:\n // Use documentElement to capture the full viewport including backgrounds\n element = document.documentElement;\n break;\n }\n\n // Hide the BugPin widget before capture\n const widget = document.getElementById('bugpin-widget');\n if (widget) {\n widget.style.display = 'none';\n }\n\n // For visible viewport capture, ensure html element fills viewport with background\n let originalHtmlStyles: { background?: string; minHeight?: string; minWidth?: string } = {};\n if (method === 'visible' && element === document.documentElement) {\n const htmlElement = document.documentElement as HTMLElement;\n const bodyStyles = window.getComputedStyle(document.body);\n\n // Save original styles\n originalHtmlStyles = {\n background: htmlElement.style.background || undefined,\n minHeight: htmlElement.style.minHeight || undefined,\n minWidth: htmlElement.style.minWidth || undefined,\n };\n\n // Temporarily set html to fill viewport with body's background\n htmlElement.style.minWidth = '100vw';\n htmlElement.style.minHeight = '100vh';\n htmlElement.style.background = bodyStyles.backgroundColor || bodyStyles.background || '#ffffff';\n }\n\n try {\n const dpr = window.devicePixelRatio || 1;\n\n // Capture options (based on capzone360 but with device pixel ratio for quality)\n const options: Parameters<typeof toCanvas>[1] = {\n cacheBust: true,\n quality: 1.0,\n pixelRatio: dpr, // Use device pixel ratio for better quality on retina displays\n skipAutoScale: true,\n filter: (node) => {\n if (node instanceof HTMLElement) {\n if (node.tagName === 'SCRIPT' || node.id === 'bugpin-widget') {\n return false;\n }\n }\n return true;\n },\n };\n\n // For visible viewport, explicitly set viewport dimensions\n if (method === 'visible') {\n options.width = window.innerWidth;\n options.height = window.innerHeight;\n\n // Debug: Log what we're capturing\n console.log('[BugPin] Capturing element:', element.tagName);\n console.log('[BugPin] Element dimensions:', {\n scrollWidth: element.scrollWidth,\n scrollHeight: element.scrollHeight,\n clientWidth: element.clientWidth,\n clientHeight: element.clientHeight,\n });\n console.log('[BugPin] Viewport dimensions:', {\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight,\n });\n console.log('[BugPin] Capture options:', options);\n }\n\n // Capture to canvas\n const canvas = await toCanvas(element, options);\n\n // Convert to PNG\n return canvas.toDataURL('image/png');\n } finally {\n // Restore html element styles\n if (method === 'visible' && element === document.documentElement) {\n const htmlElement = document.documentElement as HTMLElement;\n if (originalHtmlStyles.background !== undefined) {\n htmlElement.style.background = originalHtmlStyles.background;\n } else {\n htmlElement.style.removeProperty('background');\n }\n if (originalHtmlStyles.minHeight !== undefined) {\n htmlElement.style.minHeight = originalHtmlStyles.minHeight;\n } else {\n htmlElement.style.removeProperty('min-height');\n }\n if (originalHtmlStyles.minWidth !== undefined) {\n htmlElement.style.minWidth = originalHtmlStyles.minWidth;\n } else {\n htmlElement.style.removeProperty('min-width');\n }\n }\n\n // Show the widget again\n if (widget) {\n widget.style.display = '';\n }\n }\n}\n\n/**\n * Convert data URL to Blob\n */\nexport function dataUrlToBlob(dataUrl: string): Blob {\n const parts = dataUrl.split(',');\n const mimeMatch = parts[0].match(/:(.*?);/);\n const mime = mimeMatch ? mimeMatch[1] : 'image/png';\n const binaryString = atob(parts[1]);\n const bytes = new Uint8Array(binaryString.length);\n\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n\n return new Blob([bytes], { type: mime });\n}\n\n/**\n * Get file extension from data URL\n */\nexport function getExtensionFromDataUrl(dataUrl: string): string {\n if (dataUrl.startsWith('data:image/webp')) {\n return 'webp';\n } else if (dataUrl.startsWith('data:image/jpeg')) {\n return 'jpg';\n } else if (dataUrl.startsWith('data:image/gif')) {\n return 'gif';\n }\n return 'png';\n}\n","export interface BrowserInfo {\n name: string;\n version: string;\n userAgent: string;\n}\n\nexport interface DeviceInfo {\n type: 'desktop' | 'tablet' | 'mobile';\n os: string;\n osVersion?: string;\n}\n\nexport interface ViewportInfo {\n width: number;\n height: number;\n devicePixelRatio: number;\n orientation?: 'landscape' | 'portrait';\n}\n\nexport interface ConsoleError {\n type: 'error' | 'warn' | 'log';\n message: string;\n source?: string;\n line?: number;\n timestamp: string;\n}\n\nexport interface PageContext {\n url: string;\n title?: string;\n referrer?: string;\n browser: BrowserInfo;\n device: DeviceInfo;\n viewport: ViewportInfo;\n timestamp: string;\n timezone?: string;\n pageLoadTime?: number;\n consoleErrors?: ConsoleError[];\n}\n\n// Store console errors\nconst capturedErrors: ConsoleError[] = [];\nlet isCapturing = false;\n\n/**\n * Start capturing console errors\n */\nexport function startErrorCapture(): void {\n if (isCapturing) return;\n isCapturing = true;\n\n // Capture console.error\n const originalError = console.error;\n console.error = (...args) => {\n capturedErrors.push({\n type: 'error',\n message: args.map((arg) => String(arg)).join(' '),\n timestamp: new Date().toISOString(),\n });\n originalError.apply(console, args);\n };\n\n // Capture console.warn\n const originalWarn = console.warn;\n console.warn = (...args) => {\n capturedErrors.push({\n type: 'warn',\n message: args.map((arg) => String(arg)).join(' '),\n timestamp: new Date().toISOString(),\n });\n originalWarn.apply(console, args);\n };\n\n // Capture window.onerror\n const originalOnError = window.onerror;\n window.onerror = (message, source, line, _column, _error) => {\n capturedErrors.push({\n type: 'error',\n message: String(message),\n source: source || undefined,\n line: line || undefined,\n timestamp: new Date().toISOString(),\n });\n if (originalOnError) {\n return originalOnError.apply(window, [message, source, line, _column, _error]);\n }\n return false;\n };\n\n // Capture unhandled promise rejections\n window.addEventListener('unhandledrejection', (event) => {\n capturedErrors.push({\n type: 'error',\n message: `Unhandled Promise Rejection: ${String(event.reason)}`,\n timestamp: new Date().toISOString(),\n });\n });\n}\n\n/**\n * Get browser information from user agent\n */\nfunction getBrowserInfo(): BrowserInfo {\n const ua = navigator.userAgent;\n let name = 'Unknown';\n let version = '';\n\n // Detect browser\n if (ua.includes('Firefox/')) {\n name = 'Firefox';\n version = ua.match(/Firefox\\/([\\d.]+)/)?.[1] || '';\n } else if (ua.includes('Edg/')) {\n name = 'Edge';\n version = ua.match(/Edg\\/([\\d.]+)/)?.[1] || '';\n } else if (ua.includes('Chrome/')) {\n name = 'Chrome';\n version = ua.match(/Chrome\\/([\\d.]+)/)?.[1] || '';\n } else if (ua.includes('Safari/') && !ua.includes('Chrome')) {\n name = 'Safari';\n version = ua.match(/Version\\/([\\d.]+)/)?.[1] || '';\n } else if (ua.includes('Opera/') || ua.includes('OPR/')) {\n name = 'Opera';\n version = ua.match(/(?:Opera|OPR)\\/([\\d.]+)/)?.[1] || '';\n }\n\n return { name, version, userAgent: ua };\n}\n\n/**\n * Get device information\n */\nfunction getDeviceInfo(): DeviceInfo {\n const ua = navigator.userAgent;\n let type: 'desktop' | 'tablet' | 'mobile' = 'desktop';\n let os = 'Unknown';\n let osVersion: string | undefined;\n\n // Detect device type\n if (/Mobi|Android|iPhone|iPad|iPod/i.test(ua)) {\n if (/iPad|Tablet/i.test(ua) || (window.innerWidth >= 768 && /Android/i.test(ua))) {\n type = 'tablet';\n } else {\n type = 'mobile';\n }\n }\n\n // Detect OS\n if (ua.includes('Windows')) {\n os = 'Windows';\n const versionMatch = ua.match(/Windows NT ([\\d.]+)/);\n if (versionMatch) {\n const ntVersion = versionMatch[1];\n const versionMap: Record<string, string> = {\n '10.0': '10/11',\n '6.3': '8.1',\n '6.2': '8',\n '6.1': '7',\n '6.0': 'Vista',\n };\n osVersion = versionMap[ntVersion] || ntVersion;\n }\n } else if (ua.includes('Mac OS X')) {\n os = 'macOS';\n osVersion = ua.match(/Mac OS X ([\\d._]+)/)?.[1]?.replace(/_/g, '.');\n } else if (ua.includes('Linux')) {\n os = ua.includes('Android') ? 'Android' : 'Linux';\n if (os === 'Android') {\n osVersion = ua.match(/Android ([\\d.]+)/)?.[1];\n }\n } else if (ua.includes('iPhone') || ua.includes('iPad')) {\n os = 'iOS';\n osVersion = ua.match(/OS ([\\d_]+)/)?.[1]?.replace(/_/g, '.');\n }\n\n return { type, os, osVersion };\n}\n\n/**\n * Get viewport information\n */\nfunction getViewportInfo(): ViewportInfo {\n return {\n width: window.innerWidth,\n height: window.innerHeight,\n devicePixelRatio: window.devicePixelRatio,\n orientation: window.innerWidth > window.innerHeight ? 'landscape' : 'portrait',\n };\n}\n\n/**\n * Get page load time from Performance API\n */\nfunction getPageLoadTime(): number | undefined {\n try {\n const entries = performance.getEntriesByType('navigation');\n if (entries.length > 0) {\n const navEntry = entries[0] as PerformanceNavigationTiming;\n return Math.round(navEntry.loadEventEnd - navEntry.startTime);\n }\n } catch {\n // Performance API not available\n }\n return undefined;\n}\n\n/**\n * Capture all context information\n */\nexport function captureContext(): PageContext {\n return {\n url: window.location.href,\n title: document.title || undefined,\n referrer: document.referrer || undefined,\n browser: getBrowserInfo(),\n device: getDeviceInfo(),\n viewport: getViewportInfo(),\n timestamp: new Date().toISOString(),\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n pageLoadTime: getPageLoadTime(),\n consoleErrors: capturedErrors.length > 0 ? [...capturedErrors] : undefined,\n };\n}\n\n// Start capturing errors when module loads\nstartErrorCapture();\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst transactionDoneMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n // This mapping exists in reverseTransformCache but doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(this.request);\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nconst advanceMethodProps = ['continue', 'continuePrimaryKey', 'advance'];\nconst methodMap = {};\nconst advanceResults = new WeakMap();\nconst ittrProxiedCursorToOriginalProxy = new WeakMap();\nconst cursorIteratorTraps = {\n get(target, prop) {\n if (!advanceMethodProps.includes(prop))\n return target[prop];\n let cachedFunc = methodMap[prop];\n if (!cachedFunc) {\n cachedFunc = methodMap[prop] = function (...args) {\n advanceResults.set(this, ittrProxiedCursorToOriginalProxy.get(this)[prop](...args));\n };\n }\n return cachedFunc;\n },\n};\nasync function* iterate(...args) {\n // tslint:disable-next-line:no-this-assignment\n let cursor = this;\n if (!(cursor instanceof IDBCursor)) {\n cursor = await cursor.openCursor(...args);\n }\n if (!cursor)\n return;\n cursor = cursor;\n const proxiedCursor = new Proxy(cursor, cursorIteratorTraps);\n ittrProxiedCursorToOriginalProxy.set(proxiedCursor, cursor);\n // Map this double-proxy back to the original, so other cursor methods work.\n reverseTransformCache.set(proxiedCursor, unwrap(cursor));\n while (cursor) {\n yield proxiedCursor;\n // If one of the advancing methods was not called, call continue().\n cursor = await (advanceResults.get(proxiedCursor) || cursor.continue());\n advanceResults.delete(proxiedCursor);\n }\n}\nfunction isIteratorProp(target, prop) {\n return ((prop === Symbol.asyncIterator &&\n instanceOfAny(target, [IDBIndex, IDBObjectStore, IDBCursor])) ||\n (prop === 'iterate' && instanceOfAny(target, [IDBIndex, IDBObjectStore])));\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get(target, prop, receiver) {\n if (isIteratorProp(target, prop))\n return iterate;\n return oldTraps.get(target, prop, receiver);\n },\n has(target, prop) {\n return isIteratorProp(target, prop) || oldTraps.has(target, prop);\n },\n}));\n\nexport { deleteDB, openDB, unwrap, wrap };\n","import { openDB, DBSchema, IDBPDatabase } from 'idb';\nimport { MediaItem } from '../api/submit.js';\nimport { dataUrlToBlob, getExtensionFromDataUrl } from '../capture/screenshot.js';\n\nconst DB_NAME = 'bugpin-reports';\nconst DB_VERSION = 2; // Bump version for schema change\nconst STORE_NAME = 'pending-reports';\n\n// Retry configuration\nconst MAX_RETRIES = 5;\nconst INITIAL_RETRY_DELAY = 5000; // 5 seconds\nconst MAX_RETRY_DELAY = 300000; // 5 minutes\nconst BACKOFF_MULTIPLIER = 2;\n\ninterface PendingReport {\n id: string;\n apiKey: string;\n serverUrl: string;\n title: string;\n description?: string;\n priority: string;\n reporterEmail?: string;\n reporterName?: string;\n media?: MediaItem[];\n metadata: object;\n createdAt: string;\n retryCount: number;\n lastRetryAt?: string;\n error?: string;\n}\n\ninterface ReportBufferDB extends DBSchema {\n 'pending-reports': {\n key: string;\n value: PendingReport;\n indexes: {\n 'by-created': string;\n };\n };\n}\n\nlet db: IDBPDatabase<ReportBufferDB> | null = null;\nlet syncInterval: ReturnType<typeof setInterval> | null = null;\n\n/**\n * Get file extension from mime type\n */\nfunction getExtensionFromMimeType(mimeType: string): string {\n const mimeMap: Record<string, string> = {\n 'image/png': 'png',\n 'image/jpeg': 'jpg',\n 'image/gif': 'gif',\n 'image/webp': 'webp',\n 'video/mp4': 'mp4',\n 'video/webm': 'webm',\n 'video/quicktime': 'mov',\n 'video/x-msvideo': 'avi',\n };\n return mimeMap[mimeType] || 'bin';\n}\n\n/**\n * Initialize the IndexedDB database\n */\nasync function initDB(): Promise<IDBPDatabase<ReportBufferDB>> {\n if (db) return db;\n\n try {\n db = await openDB<ReportBufferDB>(DB_NAME, DB_VERSION, {\n upgrade(database) {\n if (!database.objectStoreNames.contains(STORE_NAME)) {\n const store = database.createObjectStore(STORE_NAME, { keyPath: 'id' });\n store.createIndex('by-created', 'createdAt');\n }\n },\n });\n return db;\n } catch (error) {\n console.error('[BugPin] Failed to initialize IndexedDB:', error);\n throw error;\n }\n}\n\n/**\n * Generate a unique ID for pending reports\n */\nfunction generateId(): string {\n return `${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;\n}\n\n/**\n * Check if we're online\n */\nfunction isOnline(): boolean {\n return navigator.onLine !== false;\n}\n\n/**\n * Calculate next retry delay with exponential backoff\n */\nfunction getRetryDelay(retryCount: number): number {\n const delay = INITIAL_RETRY_DELAY * Math.pow(BACKOFF_MULTIPLIER, retryCount);\n return Math.min(delay, MAX_RETRY_DELAY);\n}\n\n/**\n * Add a report to the buffer (for offline storage)\n */\nexport async function bufferReport(report: Omit<PendingReport, 'id' | 'createdAt' | 'retryCount'>): Promise<string> {\n const database = await initDB();\n\n const pendingReport: PendingReport = {\n ...report,\n id: generateId(),\n createdAt: new Date().toISOString(),\n retryCount: 0,\n };\n\n await database.put(STORE_NAME, pendingReport);\n\n console.log('[BugPin] Report buffered for later submission:', pendingReport.id);\n\n // Try to sync if we're online\n if (isOnline()) {\n // Don't await - let it happen in background\n syncPendingReports().catch(console.error);\n }\n\n return pendingReport.id;\n}\n\n/**\n * Get all pending reports\n */\nexport async function getPendingReports(): Promise<PendingReport[]> {\n try {\n const database = await initDB();\n return await database.getAllFromIndex(STORE_NAME, 'by-created');\n } catch {\n return [];\n }\n}\n\n/**\n * Get count of pending reports\n */\nexport async function getPendingCount(): Promise<number> {\n try {\n const database = await initDB();\n return await database.count(STORE_NAME);\n } catch {\n return 0;\n }\n}\n\n/**\n * Remove a report from the buffer\n */\nexport async function removeBufferedReport(id: string): Promise<void> {\n try {\n const database = await initDB();\n await database.delete(STORE_NAME, id);\n console.log('[BugPin] Removed buffered report:', id);\n } catch (error) {\n console.error('[BugPin] Failed to remove buffered report:', error);\n }\n}\n\n/**\n * Update a buffered report (e.g., after a failed retry)\n */\nasync function updateBufferedReport(report: PendingReport): Promise<void> {\n try {\n const database = await initDB();\n await database.put(STORE_NAME, report);\n } catch (error) {\n console.error('[BugPin] Failed to update buffered report:', error);\n }\n}\n\n/**\n * Submit a single report to the server\n */\nasync function submitReport(report: PendingReport): Promise<boolean> {\n try {\n // Build URL with API key\n const url = new URL('/api/widget/submit', report.serverUrl);\n url.searchParams.set('apiKey', report.apiKey);\n\n // Create form data\n const formData = new FormData();\n\n // Add JSON data\n formData.append('data', JSON.stringify({\n title: report.title,\n description: report.description,\n priority: report.priority,\n reporterEmail: report.reporterEmail,\n reporterName: report.reporterName,\n metadata: report.metadata,\n mediaCount: report.media?.length || 0,\n mediaAnnotations: report.media?.map((item) => item.annotations).filter(Boolean),\n }));\n\n // Add media files\n if (report.media && report.media.length > 0) {\n for (let i = 0; i < report.media.length; i++) {\n const item = report.media[i];\n const blob = dataUrlToBlob(item.dataUrl);\n const ext = getExtensionFromDataUrl(item.dataUrl) || getExtensionFromMimeType(item.mimeType);\n const isVideo = item.mimeType.startsWith('video/');\n const prefix = isVideo ? 'video' : 'screenshot';\n formData.append('media', blob, `${prefix}-${i}.${ext}`);\n }\n }\n\n const serverResponse = await fetch(url.toString(), {\n method: 'POST',\n body: formData,\n });\n\n if (!serverResponse.ok) {\n const errorData = await serverResponse.json().catch(() => ({}));\n throw new Error((errorData as { message?: string }).message || `HTTP ${serverResponse.status}`);\n }\n\n return true;\n } catch (error) {\n console.error('[BugPin] Failed to submit buffered report:', error);\n throw error;\n }\n}\n\n/**\n * Sync all pending reports to the server\n */\nexport async function syncPendingReports(): Promise<{ synced: number; failed: number }> {\n if (!isOnline()) {\n console.log('[BugPin] Offline, skipping sync');\n return { synced: 0, failed: 0 };\n }\n\n const pending = await getPendingReports();\n\n if (pending.length === 0) {\n return { synced: 0, failed: 0 };\n }\n\n console.log(`[BugPin] Syncing ${pending.length} pending reports...`);\n\n let synced = 0;\n let failed = 0;\n\n for (const report of pending) {\n // Check if enough time has passed since last retry\n if (report.lastRetryAt) {\n const lastRetry = new Date(report.lastRetryAt).getTime();\n const nextRetryAt = lastRetry + getRetryDelay(report.retryCount);\n if (Date.now() < nextRetryAt) {\n continue; // Skip, not time yet\n }\n }\n\n try {\n await submitReport(report);\n await removeBufferedReport(report.id);\n synced++;\n console.log('[BugPin] Successfully synced report:', report.id);\n } catch (error) {\n failed++;\n\n // Update retry count\n report.retryCount++;\n report.lastRetryAt = new Date().toISOString();\n report.error = error instanceof Error ? error.message : 'Unknown error';\n\n // If max retries exceeded, remove the report\n if (report.retryCount >= MAX_RETRIES) {\n console.error('[BugPin] Max retries exceeded, removing report:', report.id);\n await removeBufferedReport(report.id);\n } else {\n await updateBufferedReport(report);\n console.log(`[BugPin] Report retry scheduled (attempt ${report.retryCount}/${MAX_RETRIES}):`, report.id);\n }\n }\n }\n\n return { synced, failed };\n}\n\n/**\n * Start automatic sync when coming back online\n */\nexport function startAutoSync(): void {\n // Sync when coming back online\n window.addEventListener('online', () => {\n console.log('[BugPin] Back online, syncing pending reports...');\n syncPendingReports().catch(console.error);\n });\n\n // Periodic sync every 30 seconds\n if (!syncInterval) {\n syncInterval = setInterval(() => {\n if (isOnline()) {\n syncPendingReports().catch(console.error);\n }\n }, 30000);\n }\n\n // Initial sync\n if (isOnline()) {\n syncPendingReports().catch(console.error);\n }\n}\n\n/**\n * Stop automatic sync\n */\nexport function stopAutoSync(): void {\n if (syncInterval) {\n clearInterval(syncInterval);\n syncInterval = null;\n }\n}\n\n/**\n * Clear all pending reports (for testing/debugging)\n */\nexport async function clearBuffer(): Promise<void> {\n try {\n const database = await initDB();\n await database.clear(STORE_NAME);\n console.log('[BugPin] Buffer cleared');\n } catch (error) {\n console.error('[BugPin] Failed to clear buffer:', error);\n }\n}\n\nexport const reportBuffer = {\n buffer: bufferReport,\n getPending: getPendingReports,\n getCount: getPendingCount,\n remove: removeBufferedReport,\n sync: syncPendingReports,\n startAutoSync,\n stopAutoSync,\n clear: clearBuffer,\n};\n","import { PageContext } from '../capture/context.js';\nimport { dataUrlToBlob, getExtensionFromDataUrl } from '../capture/screenshot.js';\nimport { bufferReport, startAutoSync } from '../storage/report-buffer.js';\n\n// Start auto-sync on module load\nstartAutoSync();\n\nexport interface MediaItem {\n dataUrl: string;\n mimeType: string;\n annotations?: object;\n}\n\nexport interface SubmitReportInput {\n apiKey: string;\n serverUrl: string;\n title: string;\n description?: string;\n priority: 'lowest' | 'low' | 'medium' | 'high' | 'highest';\n reporterEmail?: string;\n reporterName?: string;\n media?: MediaItem[];\n metadata: PageContext;\n}\n\ninterface SubmitResponse {\n success: boolean;\n reportId?: string;\n message?: string;\n error?: string;\n}\n\n/**\n * Check if we're online\n */\nfunction isOnline(): boolean {\n return navigator.onLine !== false;\n}\n\n/**\n * Get file extension from mime type\n */\nfunction getExtensionFromMimeType(mimeType: string): string {\n const mimeMap: Record<string, string> = {\n 'image/png': 'png',\n 'image/jpeg': 'jpg',\n 'image/gif': 'gif',\n 'image/webp': 'webp',\n 'video/mp4': 'mp4',\n 'video/webm': 'webm',\n 'video/quicktime': 'mov',\n 'video/x-msvideo': 'avi',\n };\n return mimeMap[mimeType] || 'bin';\n}\n\n/**\n * Submit a bug report to the server\n * If the submission fails due to network issues, the report is buffered for later retry\n */\nexport async function submitReport(input: SubmitReportInput): Promise<SubmitResponse> {\n const { apiKey, serverUrl, media, ...data } = input;\n\n // If offline, buffer immediately\n if (!isOnline()) {\n console.log('[BugPin] Offline, buffering report for later submission');\n await bufferReport({\n apiKey,\n serverUrl,\n title: data.title,\n description: data.description,\n priority: data.priority,\n reporterEmail: data.reporterEmail,\n reporterName: data.reporterName,\n media,\n metadata: data.metadata,\n });\n\n return {\n success: true,\n message: 'Report saved. It will be submitted when you\\'re back online.',\n };\n }\n\n // Build the URL\n const url = new URL('/api/widget/submit', serverUrl);\n url.searchParams.set('apiKey', apiKey);\n\n // Create form data for multipart upload\n const formData = new FormData();\n\n // Add JSON data\n formData.append('data', JSON.stringify({\n title: data.title,\n description: data.description,\n priority: data.priority,\n reporterEmail: data.reporterEmail,\n reporterName: data.reporterName,\n metadata: data.metadata,\n mediaCount: media?.length || 0,\n mediaAnnotations: media?.map((item) => item.annotations).filter(Boolean),\n }));\n\n // Add media files\n if (media && media.length > 0) {\n for (let i = 0; i < media.length; i++) {\n const item = media[i];\n const blob = dataUrlToBlob(item.dataUrl);\n const ext = getExtensionFromDataUrl(item.dataUrl) || getExtensionFromMimeType(item.mimeType);\n const isVideo = item.mimeType.startsWith('video/');\n const prefix = isVideo ? 'video' : 'screenshot';\n\n // Debug: Log sizes\n console.log(`[BugPin] Media ${i}: dataUrl length=${item.dataUrl.length}, blob size=${blob.size}, type=${blob.type}`);\n\n formData.append('media', blob, `${prefix}-${i}.${ext}`);\n }\n }\n\n try {\n // Submit the report\n const response = await fetch(url.toString(), {\n method: 'POST',\n body: formData,\n });\n\n // Parse response\n const result = await response.json() as SubmitResponse;\n\n if (!response.ok || !result.success) {\n throw new Error(result.message || result.error || 'Failed to submit report');\n }\n\n return result;\n } catch (error) {\n // Check if it's a network error (not a server error)\n if (error instanceof TypeError && error.message.includes('fetch')) {\n console.log('[BugPin] Network error, buffering report for later submission');\n\n await bufferReport({\n apiKey,\n serverUrl,\n title: data.title,\n description: data.description,\n priority: data.priority,\n reporterEmail: data.reporterEmail,\n reporterName: data.reporterName,\n media,\n metadata: data.metadata,\n });\n\n return {\n success: true,\n message: 'Report saved. It will be submitted when the connection is restored.',\n };\n }\n\n // Re-throw other errors (server errors, validation errors, etc.)\n throw error;\n }\n}\n\n/**\n * Fetch widget configuration from the server\n */\nexport async function fetchWidgetConfig(\n apiKey: string,\n serverUrl: string\n): Promise<{\n projectName: string;\n branding: object;\n features: {\n screenshot: boolean;\n annotation: boolean;\n attachments: boolean;\n consoleCapture: boolean;\n };\n theme: string;\n position: string;\n}> {\n const url = new URL(`/api/widget/config/${apiKey}`, serverUrl);\n\n const response = await fetch(url.toString());\n const result = await response.json();\n\n if (!response.ok || !result.success) {\n throw new Error(result.message || 'Failed to fetch widget configuration');\n }\n\n return result.config;\n}\n","import { FunctionComponent } from 'preact';\nimport { useState, useEffect, useCallback, useRef } from 'preact/hooks';\nimport { WidgetConfig } from '../config.js';\nimport { WidgetLauncherButton } from './WidgetLauncherButton.js';\nimport { WidgetDialog, FormData } from './WidgetDialog.js';\nimport { Toast, ToastType } from './Toast.js';\nimport { AnnotationCanvas } from '../annotate/AnnotationCanvas.js';\nimport { CapturedMedia } from './ScreenshotManager.js';\nimport { captureScreenshot } from '../capture/screenshot.js';\nimport { captureContext } from '../capture/context.js';\nimport { submitReport } from '../api/submit.js';\n\ntype WidgetStep = 'closed' | 'form' | 'annotating';\n\n/**\n * Determine the effective theme (light/dark) based on config and system preference\n */\nfunction getEffectiveTheme(theme: 'auto' | 'light' | 'dark'): 'light' | 'dark' {\n if (theme === 'auto') {\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n return theme;\n}\n\nconst INITIAL_FORM_DATA: FormData = {\n title: '',\n description: '',\n priority: 'medium',\n reporterEmail: '',\n reporterName: '',\n};\n\ninterface AppProps {\n config: WidgetConfig;\n}\n\nexport const App: FunctionComponent<AppProps> = ({ config }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const [step, setStep] = useState<WidgetStep>('closed');\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isCapturing, setIsCapturing] = useState(false);\n const [media, setMedia] = useState<CapturedMedia[]>([]);\n const [annotatingMediaId, setAnnotatingMediaId] = useState<string | null>(null);\n const [toast, setToast] = useState<{ message: string; type: ToastType } | null>(null);\n // Lifted state for Modal persistence across screenshot capture\n const [activeTab, setActiveTab] = useState('details');\n const [formData, setFormData] = useState<FormData>(INITIAL_FORM_DATA);\n\n // Listen for external open/close events\n useEffect(() => {\n const handleOpen = () => handleOpenWidget();\n const handleClose = () => handleCloseWidget();\n\n document.addEventListener('bugpin:open', handleOpen);\n document.addEventListener('bugpin:close', handleClose);\n\n return () => {\n document.removeEventListener('bugpin:open', handleOpen);\n document.removeEventListener('bugpin:close', handleClose);\n };\n }, []);\n\n // Apply theme-based CSS variables for dialog styling (uses dialog colors, not launcher colors)\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const applyThemeColors = () => {\n const effectiveTheme = getEffectiveTheme(config.theme);\n\n if (effectiveTheme === 'dark') {\n // Dialog colors for dark mode\n container.style.setProperty('--button-color', config.dialogDarkButtonColor);\n container.style.setProperty('--button-text-color', config.dialogDarkTextColor);\n container.style.setProperty('--button-hover-color', config.dialogDarkButtonHoverColor);\n container.style.setProperty('--button-hover-text-color', config.dialogDarkTextHoverColor);\n } else {\n // Dialog colors for light mode\n container.style.setProperty('--button-color', config.dialogLightButtonColor);\n container.style.setProperty('--button-text-color', config.dialogLightTextColor);\n container.style.setProperty('--button-hover-color', config.dialogLightButtonHoverColor);\n container.style.setProperty('--button-hover-text-color', config.dialogLightTextHoverColor);\n }\n };\n\n // Apply initial colors\n applyThemeColors();\n\n // Listen for system theme changes when in auto mode\n if (config.theme === 'auto') {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const handleChange = () => applyThemeColors();\n mediaQuery.addEventListener('change', handleChange);\n return () => mediaQuery.removeEventListener('change', handleChange);\n }\n\n // No cleanup needed when not in auto mode\n return undefined;\n }, [config.theme, config.dialogLightButtonColor, config.dialogLightTextColor, config.dialogLightButtonHoverColor, config.dialogLightTextHoverColor, config.dialogDarkButtonColor, config.dialogDarkTextColor, config.dialogDarkButtonHoverColor, config.dialogDarkTextHoverColor]);\n\n const handleOpenWidget = useCallback(() => {\n setStep('form');\n }, []);\n\n const handleCloseWidget = useCallback(() => {\n setStep('closed');\n setMedia([]);\n setAnnotatingMediaId(null);\n setActiveTab('details');\n setFormData(INITIAL_FORM_DATA);\n }, []);\n\n const handleCaptureScreenshot = useCallback(async () => {\n if (!config.enableScreenshot) return;\n\n setIsCapturing(true);\n // Brief delay to ensure modal is hidden from capture\n setStep('closed');\n await new Promise((resolve) => setTimeout(resolve, 100));\n\n try {\n const dataUrl = await captureScreenshot(config.captureMethod, undefined, config.useScreenCaptureAPI);\n const img = new Image();\n\n img.onload = () => {\n // Debug: Log captured image info\n console.log(`[BugPin] Captured screenshot: ${img.width}x${img.height}, dataUrl length=${dataUrl.length}`);\n\n const newMedia: CapturedMedia = {\n id: `capture-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`,\n dataUrl,\n timestamp: new Date(),\n annotated: false,\n mimeType: 'image/png',\n width: img.width,\n height: img.height,\n };\n\n setMedia((prev) => [...prev, newMedia]);\n setIsCapturing(false);\n setActiveTab('media'); // Stay on media tab after capture\n setStep('form');\n };\n\n img.onerror = () => {\n // Still add the screenshot even if we can't get dimensions\n const newMedia: CapturedMedia = {\n id: `capture-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`,\n dataUrl,\n timestamp: new Date(),\n annotated: false,\n mimeType: 'image/png',\n };\n\n setMedia((prev) => [...prev, newMedia]);\n setIsCapturing(false);\n setActiveTab('media'); // Stay on media tab after capture\n setStep('form');\n };\n\n img.src = dataUrl;\n } catch (error) {\n console.error('[BugPin] Failed to capture screenshot:', error);\n setIsCapturing(false);\n setStep('form');\n setToast({\n message: 'Failed to capture screenshot',\n type: 'error',\n });\n }\n }, [config]);\n\n const handleAddMedia = useCallback((item: CapturedMedia) => {\n setMedia((prev) => [...prev, item]);\n }, []);\n\n const handleRemoveMedia = useCallback((id: string) => {\n setMedia((prev) => prev.filter((item) => item.id !== id));\n }, []);\n\n const handleAnnotateMedia = useCallback((id: string) => {\n setAnnotatingMediaId(id);\n setStep('annotating');\n }, []);\n\n const handleAnnotationSave = useCallback((annotatedImage: string, annotationData: object) => {\n if (annotatingMediaId) {\n setMedia((prev) =>\n prev.map((item) =>\n item.id === annotatingMediaId\n ? {\n ...item,\n dataUrl: annotatedImage,\n annotated: true,\n annotations: annotationData,\n }\n : item\n )\n );\n }\n setAnnotatingMediaId(null);\n setStep('form');\n }, [annotatingMediaId]);\n\n const handleAnnotationCancel = useCallback(() => {\n setAnnotatingMediaId(null);\n setStep('form');\n }, []);\n\n const handleSubmit = useCallback(async (formData: FormData, mediaItems: CapturedMedia[]) => {\n setIsSubmitting(true);\n\n try {\n // Capture context\n const metadata = captureContext();\n\n // Submit report with all media\n await submitReport({\n apiKey: config.apiKey,\n serverUrl: config.serverUrl,\n title: formData.title,\n description: formData.description,\n priority: formData.priority,\n reporterEmail: formData.reporterEmail || undefined,\n reporterName: formData.reporterName || undefined,\n media: mediaItems.map((item) => ({\n dataUrl: item.dataUrl,\n mimeType: item.mimeType,\n annotations: item.annotations,\n })),\n metadata,\n });\n\n // Show success toast\n setToast({ message: 'Bug report submitted successfully!', type: 'success' });\n\n // Close modal\n handleCloseWidget();\n } catch (error) {\n console.error('[BugPin] Failed to submit report:', error);\n setToast({\n message: error instanceof Error ? error.message : 'Failed to submit report',\n type: 'error',\n });\n } finally {\n setIsSubmitting(false);\n }\n }, [config, handleCloseWidget]);\n\n const handleToastClose = useCallback(() => {\n setToast(null);\n }, []);\n\n // Get the media item being annotated\n const annotatingMedia = annotatingMediaId\n ? media.find((item) => item.id === annotatingMediaId)\n : null;\n\n return (\n <div ref={containerRef} class={`bugpin-container bugpin-theme-${config.theme}`}>\n <WidgetLauncherButton\n position={config.position}\n buttonText={config.buttonText}\n buttonShape={config.buttonShape}\n buttonIcon={config.buttonIcon}\n buttonIconSize={config.buttonIconSize}\n buttonIconStroke={config.buttonIconStroke}\n theme={config.theme}\n lightButtonColor={config.lightButtonColor}\n lightTextColor={config.lightTextColor}\n lightButtonHoverColor={config.lightButtonHoverColor}\n lightTextHoverColor={config.lightTextHoverColor}\n darkButtonColor={config.darkButtonColor}\n darkTextColor={config.darkTextColor}\n darkButtonHoverColor={config.darkButtonHoverColor}\n darkTextHoverColor={config.darkTextHoverColor}\n enableHoverScaleEffect={config.enableHoverScaleEffect}\n tooltipEnabled={config.tooltipEnabled}\n tooltipText={config.tooltipText}\n onClick={handleOpenWidget}\n />\n\n {step === 'annotating' && annotatingMedia && (\n <div class=\"bugpin-overlay\">\n <div class=\"bugpin-annotation-modal\">\n <AnnotationCanvas\n screenshot={annotatingMedia.dataUrl}\n onSave={handleAnnotationSave}\n onCancel={handleAnnotationCancel}\n />\n </div>\n </div>\n )}\n\n {step === 'form' && (\n <WidgetDialog\n onClose={handleCloseWidget}\n onSubmit={handleSubmit}\n onCaptureScreenshot={handleCaptureScreenshot}\n onAnnotateMedia={handleAnnotateMedia}\n media={media}\n onAddMedia={handleAddMedia}\n onRemoveMedia={handleRemoveMedia}\n isSubmitting={isSubmitting}\n isCapturing={isCapturing}\n enableAnnotation={config.enableAnnotation}\n activeTab={activeTab}\n onActiveTabChange={setActiveTab}\n formData={formData}\n onFormDataChange={setFormData}\n />\n )}\n\n {toast && (\n <Toast\n message={toast.message}\n type={toast.type}\n onClose={handleToastClose}\n />\n )}\n </div>\n );\n};\n","export interface WidgetConfig {\n apiKey: string;\n serverUrl: string;\n position: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';\n buttonText: string | null;\n buttonShape: 'rectangle' | 'round';\n buttonIcon: string | null;\n buttonIconSize: number;\n buttonIconStroke: number;\n theme: 'auto' | 'light' | 'dark';\n // Light mode colors\n lightButtonColor: string;\n lightTextColor: string;\n lightButtonHoverColor: string;\n lightTextHoverColor: string;\n // Dark mode colors (launcher button)\n darkButtonColor: string;\n darkTextColor: string;\n darkButtonHoverColor: string;\n darkTextHoverColor: string;\n // Dialog colors (light mode)\n dialogLightButtonColor: string;\n dialogLightTextColor: string;\n dialogLightButtonHoverColor: string;\n dialogLightTextHoverColor: string;\n // Dialog colors (dark mode)\n dialogDarkButtonColor: string;\n dialogDarkTextColor: string;\n dialogDarkButtonHoverColor: string;\n dialogDarkTextHoverColor: string;\n enableHoverScaleEffect: boolean;\n tooltipEnabled: boolean;\n tooltipText: string | null;\n enableScreenshot: boolean;\n enableAnnotation: boolean;\n enableConsoleCapture: boolean;\n captureMethod: 'visible' | 'fullpage' | 'element';\n useScreenCaptureAPI: boolean;\n maxScreenshotSize: number;\n}\n\nexport const defaultConfig: WidgetConfig = {\n apiKey: '',\n serverUrl: window.location.origin,\n position: 'bottom-right',\n buttonText: null,\n buttonShape: 'rectangle',\n buttonIcon: 'bug',\n buttonIconSize: 18,\n buttonIconStroke: 2,\n theme: 'auto',\n // Light mode colors\n lightButtonColor: '#6366f1',\n lightTextColor: '#ffffff',\n lightButtonHoverColor: '#4f46e5',\n lightTextHoverColor: '#ffffff',\n // Dark mode colors (launcher button)\n darkButtonColor: '#818cf8',\n darkTextColor: '#1e1b4b',\n darkButtonHoverColor: '#a5b4fc',\n darkTextHoverColor: '#1e1b4b',\n // Dialog colors (light mode)\n dialogLightButtonColor: '#ebebeb',\n dialogLightTextColor: '#575757',\n dialogLightButtonHoverColor: '#ebebeb',\n dialogLightTextHoverColor: '#575757',\n // Dialog colors (dark mode)\n dialogDarkButtonColor: '#3c3c3c',\n dialogDarkTextColor: '#c3c3c3',\n dialogDarkButtonHoverColor: '#3c3c3c',\n dialogDarkTextHoverColor: '#c3c3c3',\n enableHoverScaleEffect: true,\n tooltipEnabled: false,\n tooltipText: null,\n enableScreenshot: true,\n enableAnnotation: true,\n enableConsoleCapture: true,\n captureMethod: 'visible',\n useScreenCaptureAPI: false,\n maxScreenshotSize: 5 * 1024 * 1024, // 5MB\n};\n","import { h, render } from 'preact';\nimport { App } from './components/App.js';\nimport { WidgetConfig, defaultConfig } from './config.js';\n\n// Widget styles (will be injected into Shadow DOM)\nimport styles from './styles.css?inline';\n\n// Auto-initialization\n\nasync function init(): Promise<void> {\n // Find the script tag that loaded this widget\n const scripts = document.querySelectorAll('script[src*=\"widget.js\"]');\n const currentScript = scripts[scripts.length - 1];\n\n if (!currentScript) {\n console.error('[BugPin] Could not find widget script tag');\n return;\n }\n\n // Read configuration from data attributes\n const apiKey = currentScript.getAttribute('data-api-key');\n\n if (!apiKey) {\n console.error('[BugPin] Missing data-api-key attribute');\n return;\n }\n\n const serverUrl = currentScript.getAttribute('data-server-url') || defaultConfig.serverUrl;\n\n // Fetch configuration from API\n let fetchedConfig: Partial<WidgetConfig> = {};\n try {\n const response = await fetch(`${serverUrl}/api/widget/config/${apiKey}`);\n if (response.ok) {\n const data = await response.json();\n if (data.success && data.config) {\n fetchedConfig = {\n buttonText: data.config.buttonText,\n buttonShape: data.config.buttonShape,\n buttonIcon: data.config.buttonIcon,\n buttonIconSize: data.config.buttonIconSize,\n buttonIconStroke: data.config.buttonIconStroke,\n position: data.config.position,\n theme: data.config.theme,\n // Light mode colors\n lightButtonColor: data.config.lightButtonColor,\n lightTextColor: data.config.lightTextColor,\n lightButtonHoverColor: data.config.lightButtonHoverColor,\n lightTextHoverColor: data.config.lightTextHoverColor,\n // Dark mode colors (launcher button)\n darkButtonColor: data.config.darkButtonColor,\n darkTextColor: data.config.darkTextColor,\n darkButtonHoverColor: data.config.darkButtonHoverColor,\n darkTextHoverColor: data.config.darkTextHoverColor,\n // Dialog colors (light mode)\n dialogLightButtonColor: data.config.dialogLightButtonColor,\n dialogLightTextColor: data.config.dialogLightTextColor,\n dialogLightButtonHoverColor: data.config.dialogLightButtonHoverColor,\n dialogLightTextHoverColor: data.config.dialogLightTextHoverColor,\n // Dialog colors (dark mode)\n dialogDarkButtonColor: data.config.dialogDarkButtonColor,\n dialogDarkTextColor: data.config.dialogDarkTextColor,\n dialogDarkButtonHoverColor: data.config.dialogDarkButtonHoverColor,\n dialogDarkTextHoverColor: data.config.dialogDarkTextHoverColor,\n enableHoverScaleEffect: data.config.enableHoverScaleEffect ?? true,\n tooltipEnabled: data.config.tooltipEnabled ?? false,\n tooltipText: data.config.tooltipText ?? null,\n enableScreenshot: data.config.features?.screenshot ?? true,\n enableAnnotation: data.config.features?.annotation ?? true,\n enableConsoleCapture: data.config.features?.consoleCapture ?? true,\n captureMethod: data.config.captureMethod || 'visible',\n useScreenCaptureAPI: data.config.useScreenCaptureAPI ?? false,\n };\n }\n }\n } catch (error) {\n console.warn('[BugPin] Failed to fetch widget config, using defaults', error);\n }\n\n // Merge configurations: defaults < API < data attributes\n const config: WidgetConfig = {\n ...defaultConfig,\n ...fetchedConfig,\n apiKey,\n serverUrl,\n // Data attributes override API config\n ...(currentScript.getAttribute('data-position') && { position: currentScript.getAttribute('data-position') as WidgetConfig['position'] }),\n ...(currentScript.getAttribute('data-button-text') && { buttonText: currentScript.getAttribute('data-button-text')! }),\n ...(currentScript.getAttribute('data-theme') && { theme: currentScript.getAttribute('data-theme') as 'light' | 'dark' }),\n };\n\n // Create widget instance\n createWidget(config);\n}\n\n/**\n * Create the widget container with Shadow DOM\n */\nfunction createWidget(config: WidgetConfig): void {\n // Create container element\n const container = document.createElement('div');\n container.id = 'bugpin-widget';\n\n // Attach Shadow DOM\n const shadow = container.attachShadow({ mode: 'open' });\n\n // Inject styles\n const styleElement = document.createElement('style');\n styleElement.textContent = styles;\n shadow.appendChild(styleElement);\n\n // Create render target\n const root = document.createElement('div');\n root.id = 'bugpin-root';\n shadow.appendChild(root);\n\n // Add container to document\n document.body.appendChild(container);\n\n // Render Preact app\n render(h(App, { config }), root);\n}\n\n// Public API\n\ndeclare global {\n interface Window {\n BugPin?: {\n init: (config: Partial<WidgetConfig> & { apiKey: string }) => void;\n open: () => void;\n close: () => void;\n };\n }\n}\n\n// Public API object\nconst BugPin = {\n init: (config: Partial<WidgetConfig> & { apiKey: string }) => {\n const fullConfig: WidgetConfig = {\n ...defaultConfig,\n ...config,\n };\n createWidget(fullConfig);\n },\n open: () => {\n document.dispatchEvent(new CustomEvent('bugpin:open'));\n },\n close: () => {\n document.dispatchEvent(new CustomEvent('bugpin:close'));\n },\n};\n\n// Expose on window for script tag usage\nif (typeof window !== 'undefined') {\n window.BugPin = BugPin;\n}\n\n// Auto-initialize only when loaded as script tag (not as module)\n// Check if we're in a module context by looking at import.meta\nconst isModule = typeof import.meta !== 'undefined';\nif (!isModule) {\n // Script tag - auto-initialize\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', init);\n } else {\n init();\n }\n}\n\n// Export for npm/module usage\nexport default BugPin;\nexport { BugPin, createWidget, type WidgetConfig };\n"],"names":["n","l","u","i","r","o","e","f","c","s","a","p","v","y","w","d","g","_","t","m","k","x","S","C","M","$","O","N","I","h","b","P","B","A","L","D","H","T","j","F","E","V","z","q","G","toKebabCase","string","mergeClasses","classes","className","index","array","defaultAttributes","Icon","color","size","strokeWidth","absoluteStrokeWidth","children","iconNode","rest","tag","attrs","toChildArray","createLucideIcon","iconName","Component","props","Bug","CircleAlert","CircleHelp","Flag","Heart","Info","Mail","MessageSquare","Send","Settings","Star","Zap","ICON_MAP","AlertCircle","HelpCircle","name","IconComponent","jsx","WidgetLauncherButton","position","buttonText","buttonShape","buttonIcon","buttonIconSize","buttonIconStroke","theme","lightButtonColor","lightTextColor","lightButtonHoverColor","lightTextHoverColor","darkButtonColor","darkTextColor","darkButtonHoverColor","darkTextHoverColor","enableHoverScaleEffect","tooltipEnabled","tooltipText","onClick","isHovered","setIsHovered","useState","isDarkMode","setIsDarkMode","tooltipOffset","setTooltipOffset","tooltipRef","useRef","buttonRef","useEffect","darkModeMediaQuery","handler","tooltip","button","tooltipRect","buttonRect","windowWidth","margin","buttonCenter","tooltipHalfWidth","shift","centeredLeft","buttonColor","textColor","tooltipBgColor","tooltipTextColor","borderRadius","ariaLabel","padding","buttonClasses","tooltipStyles","arrowStyles","jsxs","Tabs","tabs","activeTab","onTabChange","tab","MAX_IMAGE_SIZE","MAX_VIDEO_SIZE","ACCEPTED_IMAGE_TYPES","ACCEPTED_VIDEO_TYPES","ScreenshotManager","media","onCapture","onUpload","onRemove","onAnnotate","isCapturing","enableAnnotation","isDragging","setIsDragging","uploadError","setUploadError","fileInputRef","isVideo","mimeType","isImage","validateFile","useCallback","file","processFile","error","reader","dataUrl","img","item","video","handleDragOver","handleDragLeave","handleDrop","_a","files","handleFileInput","input","handleUploadClick","formatTimestamp","date","Fragment","TABS","WidgetDialog","onClose","onSubmit","onCaptureScreenshot","onAnnotateMedia","onAddMedia","onRemoveMedia","isSubmitting","onActiveTabChange","formData","onFormDataChange","errors","setErrors","handleInputChange","field","value","prev","validate","newErrors","handleSubmit","handleOverlayClick","mediaCount","Toast","message","type","duration","timer","R","X","Y","W","U","K","J","Q","Z","tt","et","st","it","rt","nt","ot","at","ht","ct","lt","ut","dt","gt","ft","pt","mt","vt","yt","_t","xt","Ct","bt","St","wt","Tt","Ot","kt","Dt","Mt","Pt","Et","At","jt","Ft","Lt","Rt","It","Bt","Xt","Yt","Wt","Vt","zt","Gt","Ht","Nt","Ut","qt","Kt","Jt","Qt","Zt","$t","te","ee","se","ie","re","ne","oe","ae","he","ce","le","ue","de","ge","fe","pe","me","ve","ye","_e","xe","Ce","be","Se","we","Te","Oe","ke","De","Me","Pe","Ee","Ae","je","Fe","Le","Re","Ie","Be","Xe","Ye","We","Ve","ze","Ge","He","Ne","Ue","qe","Ke","Je","Qe","$e","ts","es","ss","is","rs","os","as","hs","cs","ds","fs","ps","ms","vs","ys","_s","Ss","ws","xs","Cs","bs","Ts","Os","ks","Ds","Ms","Ps","Es","As","Ls","Xs","Ys","Ws","Vs","zs","Gs","Hs","Ns","Us","qs","Ks","Js","Qs","Zs","$s","ti","ei","si","ii","ri","ni","oi","ai","hi","ci","li","ui","di","gi","fi","pi","mi","vi","yi","_i","xi","Ci","bi","Si","wi","Ti","Oi","ki","Di","Mi","Pi","Ei","Ai","ji","Fi","Li","Ri","Ii","Bi","Xi","Yi","Wi","Vi","zi","Gi","Hi","Ni","Ui","Ki","Ji","Qi","Zi","$i","tr","er","sr","ir","rr","nr","or","ar","hr","cr","lr","ur","dr","gr","fr","pr","mr","vr","yr","_r","xr","Cr","br","Sr","wr","Tr","Or","kr","Dr","Mr","Pr","Er","Ar","jr","Fr","Lr","Rr","Ir","Br","Xr","Yr","Wr","Vr","zr","Gr","Hr","Nr","Ur","qr","Kr","Jr","Qr","Zr","$r","tn","en","sn","an","rn","nn","on","hn","cn","ln","un","dn","gn","fn","pn","mn","vn","yn","_n","xn","Cn","bn","Sn","wn","Tn","Pn","En","An","jn","Fn","Ln","Rn","In","Bn","Xn","Yn","Wn","Vn","zn","Gn","Hn","Nn","Un","qn","Kn","Jn","Qn","Zn","$n","to","eo","so","io","ro","no","oo","ao","ho","co","fo","po","mo","vo","yo","_o","xo","Co","bo","So","wo","To","Oo","ko","Do","Mo","Po","Eo","Ao","jo","Fo","Lo","Ro","Io","Bo","Xo","Yo","Wo","Vo","zo","Go","Ho","No","Uo","qo","Ko","Jo","Qo","Zo","$o","ta","ea","sa","ra","na","oa","La","Ia","Ba","Xa","Ya","Wa","Va","za","Ga","Ha","Na","Ua","qa","Ka","Ja","Qa","Za","oh","ah","hh","ch","lh","uh","dh","gh","fh","ph","mh","vh","yh","_h","xh","Ch","bh","COLORS","STROKE_WIDTHS","AnnotationCanvas","screenshot","onSave","onCancel","canvasRef","canvasWrapperRef","fabricRef","activeTool","setActiveTool","activeColor","setActiveColor","setStrokeWidth","canUndo","setCanUndo","canRedo","setCanRedo","zoomLevel","setZoomLevel","isPanning","setIsPanning","historyRef","historyIndexRef","isDrawingRef","isPanningRef","lastPosRef","originalDimensionsRef","canvas","fabric.Canvas","fabric.FabricImage","wrapperRect","maxWidth","maxHeight","scale","saveToHistory","fabric.PencilBrush","json","undo","redo","handleCanvasMouseDown","pointer","shape","fabric.Rect","fabric.Ellipse","fabric.Line","fabric.IText","handleCanvasMouseMove","activeObject","startPoint","width","height","rx","ry","handleCanvasMouseUp","handleSave","currentZoom","currentViewport","originalDimensions","multiplier","annotations","obj","deleteSelected","activeObjects","handleZoomIn","newZoom","center","fabric.Point","handleZoomOut","handleZoomReset","handleMouseDown","opt","evt","handleMouseMove","vpt","handleMouseUp","handleKeyDown","activeElement","handleKeyUp","ToolButton","tool","icon","label","resolveUrl","url","baseUrl","doc","base","uuid","counter","random","toArray","arrayLike","arr","styleProps","getStyleProperties","options","px","node","styleProperty","val","getNodeWidth","leftBorder","rightBorder","getNodeHeight","topBorder","bottomBorder","getImageSize","targetNode","getPixelRatio","ratio","FINAL_PROCESS","canvasDimensionLimit","checkCanvasDimensions","createImage","resolve","reject","svgToDataURL","svg","html","nodeToDataURL","xmlns","foreignObject","isInstanceOfElement","instance","nodePrototype","formatCSSText","style","content","formatCSSProperties","priority","getPseudoElementStyle","pseudo","selector","cssText","clonePseudoElement","nativeNode","clonedNode","styleElement","clonePseudoElements","WOFF","JPEG","mimes","getExtension","match","getMimeType","extension","getContentFromDataUrl","dataURL","isDataUrl","makeDataUrl","fetchAsDataURL","init","process","res","blob","cache","getCacheKey","contentType","includeQueryParams","key","resourceToDataURL","resourceUrl","cacheKey","result","msg","cloneCanvasElement","cloneVideoElement","ctx","poster","cloneIFrameElement","iframe","cloneNode","cloneSingleNode","isSVGElement","isSlotElement","cloneChildren","_b","deferred","child","clonedChild","cloneCSSStyle","targetStyle","sourceStyle","cloneInputValue","cloneSelectValue","clonedSelect","selectedOption","decorate","ensureSVGSymbols","clone","uses","processedDefs","id","exist","definition","nodes","ns","defs","isRoot","URL_REGEX","URL_WITH_FORMAT_REGEX","FONT_SRC_REGEX","toRegex","escaped","parseURLs","urls","raw","quotation","embed","resourceURL","baseURL","getContentFromUrl","resolvedURL","filterPreferredFontFormat","str","preferredFontFormat","src","format","shouldEmbed","embedResources","filteredCSSText","css","embedProp","propName","propValue","cssString","embedBackground","embedImageNode","isImageElement","attributes","image","embedChildren","deferreds","embedImages","applyStyle","manual","cssFetchCache","fetchCSS","embedFonts","data","regexUrl","loadFonts","loc","parseCSS","source","commentsRegex","keyframesRegex","matches","importRegex","combinedCSSRegex","unifiedRegex","getCSSRules","styleSheets","ret","sheet","importIndex","metadata","rule","inline","err","getWebFontRules","cssRules","parseWebFontRules","normalizeFontFamily","font","getUsedFonts","fonts","traverse","getWebFontCSS","rules","usedFonts","embedWebFonts","styleNode","sytleContent","toSvg","toCanvas","context","canvasWidth","canvasHeight","captureWithScreenCaptureAPI","stream","track","captureScreenshot","method","useScreenCaptureAPI","element","widget","originalHtmlStyles","htmlElement","bodyStyles","dataUrlToBlob","parts","mimeMatch","mime","binaryString","bytes","getExtensionFromDataUrl","capturedErrors","startErrorCapture","originalError","args","arg","originalWarn","originalOnError","line","_column","_error","event","getBrowserInfo","_c","_d","ua","version","getDeviceInfo","osVersion","versionMatch","ntVersion","getViewportInfo","getPageLoadTime","entries","navEntry","captureContext","instanceOfAny","object","constructors","idbProxyableTypes","cursorAdvanceMethods","getIdbProxyableTypes","getCursorAdvanceMethods","transactionDoneMap","transformCache","reverseTransformCache","promisifyRequest","request","promise","unlisten","success","wrap","cacheDonePromiseForTransaction","tx","done","complete","idbProxyTraps","target","prop","receiver","replaceTraps","callback","wrapFunction","func","unwrap","transformCachableValue","newValue","openDB","blocked","upgrade","blocking","terminated","openPromise","db","readMethods","writeMethods","cachedMethods","getMethod","targetFuncName","useIndex","isWrite","storeName","oldTraps","advanceMethodProps","methodMap","advanceResults","ittrProxiedCursorToOriginalProxy","cursorIteratorTraps","cachedFunc","iterate","cursor","proxiedCursor","isIteratorProp","DB_NAME","DB_VERSION","STORE_NAME","MAX_RETRIES","INITIAL_RETRY_DELAY","MAX_RETRY_DELAY","BACKOFF_MULTIPLIER","syncInterval","getExtensionFromMimeType","initDB","database","generateId","isOnline","getRetryDelay","retryCount","delay","bufferReport","report","pendingReport","syncPendingReports","getPendingReports","removeBufferedReport","updateBufferedReport","submitReport","ext","prefix","serverResponse","errorData","pending","synced","failed","nextRetryAt","startAutoSync","apiKey","serverUrl","response","getEffectiveTheme","INITIAL_FORM_DATA","App","config","containerRef","step","setStep","setIsSubmitting","setIsCapturing","setMedia","annotatingMediaId","setAnnotatingMediaId","toast","setToast","setActiveTab","setFormData","handleOpen","handleOpenWidget","handleClose","handleCloseWidget","container","applyThemeColors","mediaQuery","handleChange","handleCaptureScreenshot","newMedia","handleAddMedia","handleRemoveMedia","handleAnnotateMedia","handleAnnotationSave","annotatedImage","annotationData","handleAnnotationCancel","mediaItems","handleToastClose","annotatingMedia","defaultConfig","scripts","currentScript","fetchedConfig","createWidget","shadow","styles","root","render","BugPin","fullConfig","isModule"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,25,27,28,29,30,31,32,33,34,35,36,39]}