@vinay.kumar.ha/videosdk-ui-toolkit 2.3.5-1.5 → 2.3.5-1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/annoter.min.js +3 -0
- package/dist/lib/audio.encode.wasm +0 -0
- package/dist/lib/audio.light.simd.wasm +0 -0
- package/dist/lib/audio.simd.wasm +0 -0
- package/dist/lib/audio_light_simd.min.js +2 -0
- package/dist/lib/audio_simd.min.js +2 -0
- package/dist/lib/graphics.min.js +2 -0
- package/dist/lib/js_audio_level_worklet_process.min.js +2 -0
- package/dist/lib/js_audio_level_worklet_process_light.min.js +2 -0
- package/dist/lib/js_audio_process.min.js +2 -0
- package/dist/lib/js_audio_processor_worklet.min.js +2 -0
- package/dist/lib/js_audio_worklet.min.js +2 -0
- package/dist/lib/js_audio_worklet_light_simd.min.js +2 -0
- package/dist/lib/js_audio_worklet_process.min.js +2 -0
- package/dist/lib/js_audio_worklet_simd.min.js +2 -0
- package/dist/lib/js_media.min.js +3 -0
- package/dist/lib/js_sharing_audio_worklet.min.js +2 -0
- package/dist/lib/manifest.json +338 -0
- package/dist/lib/mesh_thread.min.js +2 -0
- package/dist/lib/net.wasm +0 -0
- package/dist/lib/net_thread.min.js +2 -0
- package/dist/lib/pako.min.js +2 -0
- package/dist/lib/qrscanner.min.js +2 -0
- package/dist/lib/share_processor.min.js +2 -0
- package/dist/lib/sharing_m.min.js +3 -0
- package/dist/lib/sharing_mtsimd.min.js +3 -0
- package/dist/lib/sharing_s.min.js +2 -0
- package/dist/lib/sharing_simd.min.js +2 -0
- package/dist/lib/tp.min.js +2 -0
- package/dist/lib/tp.wasm +0 -0
- package/dist/lib/vb-resource/dualModel.bin +0 -0
- package/dist/lib/vb-resource/tf.min.js +18 -0
- package/dist/lib/vb.min.js +2 -0
- package/dist/lib/vb_worker.min.js +2 -0
- package/dist/lib/video.decode.js +1 -0
- package/dist/lib/video.decode.wasm +0 -0
- package/dist/lib/video.mt.js +1 -0
- package/dist/lib/video.mt.wasm +0 -0
- package/dist/lib/video.mtsimd.js +1 -0
- package/dist/lib/video.mtsimd.wasm +0 -0
- package/dist/lib/video.simd.js +1 -0
- package/dist/lib/video.simd.wasm +0 -0
- package/dist/lib/video_m.min.js +3 -0
- package/dist/lib/video_mtsimd.min.js +3 -0
- package/dist/lib/video_processor.min.js +2 -0
- package/dist/lib/video_s.min.js +2 -0
- package/dist/lib/video_share_mtsimd.min.js +3 -0
- package/dist/lib/video_simd.min.js +2 -0
- package/dist/lib/wasm_ssrc_stream_service_dynmod.min.js +2 -0
- package/dist/lib/webgpu_renderer_dynmod.min.js +2 -0
- package/dist/lib/wmsc.min.js +2 -0
- package/dist/videosdk-ui-toolkit.min.esm.js +1832 -1832
- package/dist/videosdk-ui-toolkit.min.umd.js +82 -82
- package/package.json +1 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see annoter.min.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.__MEDIA_SDK_CHUNK_LOADER__=self.__MEDIA_SDK_CHUNK_LOADER__||[]).push([[208],{7531:(t,e,s)=>{s.r(e),s.d(e,{AnnotationMgr:()=>Wa});var i=Object.defineProperty,n=Object.defineProperties,r=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable,c=(t,e,s)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,l=(t,e)=>{for(var s in e||(e={}))a.call(e,s)&&c(t,s,e[s]);if(o)for(var s of o(e))h.call(e,s)&&c(t,s,e[s]);return t},d=(t,e)=>n(t,r(e)),u=(t,e)=>{var s={};for(var i in t)a.call(t,i)&&e.indexOf(i)<0&&(s[i]=t[i]);if(null!=t&&o)for(var i of o(t))e.indexOf(i)<0&&h.call(t,i)&&(s[i]=t[i]);return s},p=(t,e,s)=>c(t,"symbol"!=typeof e?e+"":e,s);const g=Symbol.for("@ts-pattern/matcher"),f=Symbol.for("@ts-pattern/isVariadic"),_="@ts-pattern/anonymous-select-key",O=t=>!(!t||"object"!=typeof t),m=t=>t&&!!t[g],v=(t,e,s)=>{if(m(t)){const i=t[g](),{matched:n,selections:r}=i.match(e);return n&&r&&Object.keys(r).forEach((t=>s(t,r[t]))),n}if(O(t)){if(!O(e))return!1;if(Array.isArray(t)){if(!Array.isArray(e))return!1;let i=[],n=[],r=[];for(const e of t.keys()){const s=t[e];m(s)&&s[f]?r.push(s):r.length?n.push(s):i.push(s)}if(r.length){if(r.length>1)throw new Error("Pattern error: Using `...P.array(...)` several times in a single pattern is not allowed.");if(e.length<i.length+n.length)return!1;const t=e.slice(0,i.length),o=0===n.length?[]:e.slice(-n.length),a=e.slice(i.length,0===n.length?1/0:-n.length);return i.every(((e,i)=>v(e,t[i],s)))&&n.every(((t,e)=>v(t,o[e],s)))&&(0===r.length||v(r[0],a,s))}return t.length===e.length&&t.every(((t,i)=>v(t,e[i],s)))}return Reflect.ownKeys(t).every((i=>{const n=t[i];return(i in e||m(r=n)&&"optional"===r[g]().matcherType)&&v(n,e[i],s);var r}))}return Object.is(e,t)},A=t=>{var e,s,i;return O(t)?m(t)?null!=(e=null==(s=(i=t[g]()).getSelectionKeys)?void 0:s.call(i))?e:[]:Array.isArray(t)?b(t,A):b(Object.values(t),A):[]},b=(t,e)=>t.reduce(((t,s)=>t.concat(e(s))),[]);function T(t){return Object.assign(t,{optional:()=>S(t),and:e=>x(t,e),or:e=>E(t,e),select:e=>void 0===e?C(t):C(e,t)})}function y(t){return Object.assign((e=t,Object.assign(e,{[Symbol.iterator](){let t=0;const s=[{value:Object.assign(e,{[f]:!0}),done:!1},{done:!0,value:void 0}];return{next:()=>{var e;return null!=(e=s[t++])?e:s.at(-1)}}}})),{optional:()=>y(S(t)),select:e=>y(void 0===e?C(t):C(e,t))});var e}function S(t){return T({[g]:()=>({match:e=>{let s={};const i=(t,e)=>{s[t]=e};return void 0===e?(A(t).forEach((t=>i(t,void 0))),{matched:!0,selections:s}):{matched:v(t,e,i),selections:s}},getSelectionKeys:()=>A(t),matcherType:"optional"})})}const w=(t,e)=>{for(const s of t)if(!e(s))return!1;return!0},I=(t,e)=>{for(const[s,i]of t.entries())if(!e(i,s))return!1;return!0};function x(...t){return T({[g]:()=>({match:e=>{let s={};const i=(t,e)=>{s[t]=e};return{matched:t.every((t=>v(t,e,i))),selections:s}},getSelectionKeys:()=>b(t,A),matcherType:"and"})})}function E(...t){return T({[g]:()=>({match:e=>{let s={};const i=(t,e)=>{s[t]=e};return b(t,A).forEach((t=>i(t,void 0))),{matched:t.some((t=>v(t,e,i))),selections:s}},getSelectionKeys:()=>b(t,A),matcherType:"or"})})}function k(t){return{[g]:()=>({match:e=>({matched:!!t(e)})})}}function C(...t){const e="string"==typeof t[0]?t[0]:void 0,s=2===t.length?t[1]:"string"==typeof t[0]?void 0:t[0];return T({[g]:()=>({match:t=>{let i={[null!=e?e:_]:t};return{matched:void 0===s||v(s,t,((t,e)=>{i[t]=e})),selections:i}},getSelectionKeys:()=>[null!=e?e:_].concat(void 0===s?[]:A(s))})})}function P(t){return"number"==typeof t}function N(t){return"string"==typeof t}function R(t){return"bigint"==typeof t}const L=T(k((function(t){return!0}))),j=L,D=t=>Object.assign(T(t),{startsWith:e=>{return D(x(t,(s=e,k((t=>N(t)&&t.startsWith(s))))));var s},endsWith:e=>{return D(x(t,(s=e,k((t=>N(t)&&t.endsWith(s))))));var s},minLength:e=>{return D(x(t,(s=e,k((t=>N(t)&&t.length>=s)))));var s},length:e=>{return D(x(t,(s=e,k((t=>N(t)&&t.length===s)))));var s},maxLength:e=>{return D(x(t,(s=e,k((t=>N(t)&&t.length<=s)))));var s},includes:e=>{return D(x(t,(s=e,k((t=>N(t)&&t.includes(s))))));var s},regex:e=>{return D(x(t,(s=e,k((t=>N(t)&&!!t.match(s))))));var s}}),F=D(k(N)),M=t=>Object.assign(T(t),{between:(e,s)=>{return M(x(t,(i=e,n=s,k((t=>P(t)&&i<=t&&n>=t)))));var i,n},lt:e=>{return M(x(t,(s=e,k((t=>P(t)&&t<s)))));var s},gt:e=>{return M(x(t,(s=e,k((t=>P(t)&&t>s)))));var s},lte:e=>{return M(x(t,(s=e,k((t=>P(t)&&t<=s)))));var s},gte:e=>{return M(x(t,(s=e,k((t=>P(t)&&t>=s)))));var s},int:()=>M(x(t,k((t=>P(t)&&Number.isInteger(t))))),finite:()=>M(x(t,k((t=>P(t)&&Number.isFinite(t))))),positive:()=>M(x(t,k((t=>P(t)&&t>0)))),negative:()=>M(x(t,k((t=>P(t)&&t<0))))}),Y=M(k(P)),B=t=>Object.assign(T(t),{between:(e,s)=>{return B(x(t,(i=e,n=s,k((t=>R(t)&&i<=t&&n>=t)))));var i,n},lt:e=>{return B(x(t,(s=e,k((t=>R(t)&&t<s)))));var s},gt:e=>{return B(x(t,(s=e,k((t=>R(t)&&t>s)))));var s},lte:e=>{return B(x(t,(s=e,k((t=>R(t)&&t<=s)))));var s},gte:e=>{return B(x(t,(s=e,k((t=>R(t)&&t>=s)))));var s},positive:()=>B(x(t,k((t=>R(t)&&t>0)))),negative:()=>B(x(t,k((t=>R(t)&&t<0))))}),H=B(k(R)),V=T(k((function(t){return"boolean"==typeof t}))),W=T(k((function(t){return"symbol"==typeof t}))),U=T(k((function(t){return null==t}))),z=T(k((function(t){return null!=t})));var G={__proto__:null,matcher:g,optional:S,array:function(...t){return y({[g]:()=>({match:e=>{if(!Array.isArray(e))return{matched:!1};if(0===t.length)return{matched:!0};const s=t[0];let i={};if(0===e.length)return A(s).forEach((t=>{i[t]=[]})),{matched:!0,selections:i};const n=(t,e)=>{i[t]=(i[t]||[]).concat([e])};return{matched:e.every((t=>v(s,t,n))),selections:i}},getSelectionKeys:()=>0===t.length?[]:A(t[0])})})},set:function(...t){return T({[g]:()=>({match:e=>{if(!(e instanceof Set))return{matched:!1};let s={};if(0===e.size)return{matched:!0,selections:s};if(0===t.length)return{matched:!0};const i=(t,e)=>{s[t]=(s[t]||[]).concat([e])},n=t[0];return{matched:w(e,(t=>v(n,t,i))),selections:s}},getSelectionKeys:()=>0===t.length?[]:A(t[0])})})},map:function(...t){return T({[g]:()=>({match:e=>{if(!(e instanceof Map))return{matched:!1};let s={};if(0===e.size)return{matched:!0,selections:s};const i=(t,e)=>{s[t]=(s[t]||[]).concat([e])};if(0===t.length)return{matched:!0};var n;if(1===t.length)throw new Error("`P.map` wasn't given enough arguments. Expected (key, value), received ".concat(null==(n=t[0])?void 0:n.toString()));const[r,o]=t;return{matched:I(e,((t,e)=>{const s=v(r,e,i),n=v(o,t,i);return s&&n})),selections:s}},getSelectionKeys:()=>0===t.length?[]:[...A(t[0]),...A(t[1])]})})},intersection:x,union:E,not:function(t){return T({[g]:()=>({match:e=>({matched:!v(t,e,(()=>{}))}),getSelectionKeys:()=>[],matcherType:"not"})})},when:k,select:C,any:L,_:j,string:F,number:Y,bigint:H,boolean:V,symbol:W,nullish:U,nonNullable:z,instanceOf:function(t){return T(k(function(t){return e=>e instanceof t}(t)))},shape:function(t){return T(k(function(...t){if(1===t.length){const[e]=t;return t=>v(e,t,(()=>{}))}if(2===t.length){const[e,s]=t;return v(e,s,(()=>{}))}throw new Error("isMatching wasn't given the right number of arguments: expected 1 or 2, received ".concat(t.length,"."))}(t)))}};class X extends Error{constructor(t){let e;try{e=JSON.stringify(t)}catch(s){e=t}super("Pattern matching error: no pattern matches value ".concat(e)),this.input=void 0,this.input=t}}const q={matched:!1,value:void 0};function J(t){return new K(t,q)}class K{constructor(t,e){this.input=void 0,this.state=void 0,this.input=t,this.state=e}with(...t){if(this.state.matched)return this;const e=t[t.length-1],s=[t[0]];let i;3===t.length&&"function"==typeof t[1]?i=t[1]:t.length>2&&s.push(...t.slice(1,t.length-1));let n=!1,r={};const o=(t,e)=>{n=!0,r[t]=e},a=!s.some((t=>v(t,this.input,o)))||i&&!i(this.input)?q:{matched:!0,value:e(n?_ in r?r[_]:r:this.input,this.input)};return new K(this.input,a)}when(t,e){if(this.state.matched)return this;const s=!!t(this.input);return new K(this.input,s?{matched:!0,value:e(this.input,this.input)}:q)}otherwise(t){return this.state.matched?this.state.value:t(this.input)}exhaustive(t=Z){return this.state.matched?this.state.value:t(this.input)}run(){return this.exhaustive()}returnType(){return this}}function Z(t){throw new X(t)}var Q=(t=>(t[t.ANNO_TOOL_TYPE_NONE=0]="ANNO_TOOL_TYPE_NONE",t[t.ANNO_TOOL_TYPE_PEN=1]="ANNO_TOOL_TYPE_PEN",t[t.ANNO_TOOL_TYPE_HIGHLIGHTER=2]="ANNO_TOOL_TYPE_HIGHLIGHTER",t[t.ANNO_TOOL_TYPE_SPOTLIGHT=3]="ANNO_TOOL_TYPE_SPOTLIGHT",t[t.ANNO_TOOL_TYPE_ARROW=4]="ANNO_TOOL_TYPE_ARROW",t[t.ANNO_TOOL_TYPE_TEXTBOX=5]="ANNO_TOOL_TYPE_TEXTBOX",t[t.ANNO_TOOL_TYPE_PICTURE=6]="ANNO_TOOL_TYPE_PICTURE",t[t.ANNO_TOOL_TYPE_ERASER=7]="ANNO_TOOL_TYPE_ERASER",t[t.ANNO_TOOL_TYPE_BRUSH_ERASER=8]="ANNO_TOOL_TYPE_BRUSH_ERASER",t[t.ANNO_TOOL_TYPE_PICKER=9]="ANNO_TOOL_TYPE_PICKER",t[t.ANNO_TOOL_TYPE_SELECTOR=10]="ANNO_TOOL_TYPE_SELECTOR",t[t.ANNO_TOOL_TYPE_AUTO_LINE=11]="ANNO_TOOL_TYPE_AUTO_LINE",t[t.ANNO_TOOL_TYPE_AUTO_ARROW1=12]="ANNO_TOOL_TYPE_AUTO_ARROW1",t[t.ANNO_TOOL_TYPE_AUTO_ARROW2=13]="ANNO_TOOL_TYPE_AUTO_ARROW2",t[t.ANNO_TOOL_TYPE_AUTO_RECTANGLE=14]="ANNO_TOOL_TYPE_AUTO_RECTANGLE",t[t.ANNO_TOOL_TYPE_AUTO_RECTANGLE_SEMI_FILL=15]="ANNO_TOOL_TYPE_AUTO_RECTANGLE_SEMI_FILL",t[t.ANNO_TOOL_TYPE_AUTO_ROUNDEDRECTANGLE=16]="ANNO_TOOL_TYPE_AUTO_ROUNDEDRECTANGLE",t[t.ANNO_TOOL_TYPE_AUTO_ROUNDEDRECTANGLE_SEMI_FILL=17]="ANNO_TOOL_TYPE_AUTO_ROUNDEDRECTANGLE_SEMI_FILL",t[t.ANNO_TOOL_TYPE_AUTO_ELLIPSE=18]="ANNO_TOOL_TYPE_AUTO_ELLIPSE",t[t.ANNO_TOOL_TYPE_AUTO_ELLIPSE_SEMI_FILL=19]="ANNO_TOOL_TYPE_AUTO_ELLIPSE_SEMI_FILL",t[t.ANNO_TOOL_TYPE_AUTO_DOUBLE_ARROW=20]="ANNO_TOOL_TYPE_AUTO_DOUBLE_ARROW",t[t.ANNO_TOOL_TYPE_AUTO_RECTANGLE_FILL=21]="ANNO_TOOL_TYPE_AUTO_RECTANGLE_FILL",t[t.ANNO_TOOL_TYPE_AUTO_ROUNDEDRECTANGLE_FILL=22]="ANNO_TOOL_TYPE_AUTO_ROUNDEDRECTANGLE_FILL",t[t.ANNO_TOOL_TYPE_AUTO_ELLIPSE_FILL=23]="ANNO_TOOL_TYPE_AUTO_ELLIPSE_FILL",t[t.ANNO_TOOL_TYPE_AUTO_DIAMOND=24]="ANNO_TOOL_TYPE_AUTO_DIAMOND",t[t.ANNO_TOOL_TYPE_AUTO_STAMP_ARROW=25]="ANNO_TOOL_TYPE_AUTO_STAMP_ARROW",t[t.ANNO_TOOL_TYPE_AUTO_STAMP_CHECK=26]="ANNO_TOOL_TYPE_AUTO_STAMP_CHECK",t[t.ANNO_TOOL_TYPE_AUTO_STAMP_X=27]="ANNO_TOOL_TYPE_AUTO_STAMP_X",t[t.ANNO_TOOL_TYPE_MULTI_FLAT_PEN=28]="ANNO_TOOL_TYPE_MULTI_FLAT_PEN",t[t.ANNO_TOOL_TYPE_MULTI_FLAT_ERASER=29]="ANNO_TOOL_TYPE_MULTI_FLAT_ERASER",t[t.ANNO_TOOL_TYPE_MULTI_THICKNESS_PEN=30]="ANNO_TOOL_TYPE_MULTI_THICKNESS_PEN",t[t.ANNO_TOOL_TYPE_AUTO_STAMP_STAR=31]="ANNO_TOOL_TYPE_AUTO_STAMP_STAR",t[t.ANNO_TOOL_TYPE_AUTO_STAMP_HEART=32]="ANNO_TOOL_TYPE_AUTO_STAMP_HEART",t[t.ANNO_TOOL_TYPE_AUTO_STAMP_QM=33]="ANNO_TOOL_TYPE_AUTO_STAMP_QM",t[t.ANNO_TOOL_TYPE_MULTI_SHAPE_DETECTOR=34]="ANNO_TOOL_TYPE_MULTI_SHAPE_DETECTOR",t[t.ANNO_TOOL_TYPE_MULTI_TEXT_DETECTOR=35]="ANNO_TOOL_TYPE_MULTI_TEXT_DETECTOR",t[t.ANNO_TOOL_TYPE_FADE_PEN=36]="ANNO_TOOL_TYPE_FADE_PEN",t[t.ANNO_TOOL_TYPE_AUTO_DIAMOND_SEMI_FILL=37]="ANNO_TOOL_TYPE_AUTO_DIAMOND_SEMI_FILL",t[t.ANNO_TOOL_TYPE_AUTO_DIAMOND_FILL=38]="ANNO_TOOL_TYPE_AUTO_DIAMOND_FILL",t[t.ANNO_TOOL_TYPE_AUTO_VANISHING_SQUARE=42]="ANNO_TOOL_TYPE_AUTO_VANISHING_SQUARE",t[t.ANNO_TOOL_TYPE_AUTO_VANISHING_ARROW=43]="ANNO_TOOL_TYPE_AUTO_VANISHING_ARROW",t[t.ANNO_TOOL_TYPE_AUTO_VANISHING_DOUBLE_ARROW=44]="ANNO_TOOL_TYPE_AUTO_VANISHING_DOUBLE_ARROW",t[t.ANNO_TOOL_TYPE_AUTO_VANISHING_DIAMOND=45]="ANNO_TOOL_TYPE_AUTO_VANISHING_DIAMOND",t[t.ANNO_TOOL_TYPE_AUTO_VANISHING_ELLIPSE=46]="ANNO_TOOL_TYPE_AUTO_VANISHING_ELLIPSE",t[t.ANNO_TOOL_TYPE_AUTO_VANISHING_RECTANGLE=47]="ANNO_TOOL_TYPE_AUTO_VANISHING_RECTANGLE",t))(Q||{});const $=[1,2,36],tt=[11,12,20,43,44],et=[14,15,21,47,24,37,38,45,18,19,23,46],st=[26,25,32,33,31,27];function it(t,e){var 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";var i=t.charCodeAt(e+1);if(56320>i||i>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";var n=t.charCodeAt(e-1);if(55296>n||n>56319)throw"Low surrogate without preceding high surrogate";return!1}const nt={camelize:function(t){return t.replace(/-+(.)?/g,(function(t,e){return e?e.toUpperCase():""}))},capitalize:function(t,e){return t.charAt(0).toUpperCase()+(e?t.slice(1):t.slice(1).toLowerCase())},escapeXml:function(t){return t.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")},graphemeSplit:function(t){var e,s=0,i=[];for(s=0;s<t.length;s++)!1!==(e=it(t,s))&&i.push(e);return i}};var rt=(t=>(t.Group="Group",t.Image="Image",t.ActiveSelection="ActiveSelection",t.Gradient="Gradient",t))(rt||{});const ot=new class{constructor(){p(this,"shapeMap",new Map),p(this,"parserMap",new Map)}add(t,e){this.shapeMap.set(t,e)}has(t){return this.shapeMap.has(t)}get(t){return this.shapeMap.get(t)}getByObjType(t){const e=nt.camelize(t.charAt(0).toUpperCase()+t.slice(1));return this.shapeMap.get(e)}addSVGParser(t,e){this.parserMap.set(t,e)}hasSVGParser(t){return this.parserMap.has(t)}getSVGParser(t){return this.parserMap.get(t)}};var at=Array.prototype.slice;function ht(t,e,s){if(t&&0!==t.length){var i=t.length-1,n=e?t[i][e]:t[i];if(e)for(;i--;)s(t[i][e],n)&&(n=t[i][e]);else for(;i--;)s(t[i],n)&&(n=t[i]);return n}}const ct={fill:function(t,e){for(var s=t.length;s--;)t[s]=e;return t},invoke:function(t,e){for(var s=at.call(arguments,2),i=[],n=0,r=t.length;n<r;n++)i[n]=s.length?t[n][e].apply(t[n],s):t[n][e].call(t[n]);return i},min:function(t,e){return ht(t,e,(function(t,e){return t<e}))},max:function(t,e){return ht(t,e,(function(t,e){return t>=e}))}};function lt(t,e,s){return 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}const dt=class t{constructor(t){p(this,"_source"),t?this._tryParsingColor(t):this.setSource([0,0,0,1])}static fromHsla(e){return t.fromHsl(e)}static fromHex(e){return t.fromSource(t.sourceFromHex(e))}_tryParsingColor(e){var s;e in t.colorNameMap&&(e=t.colorNameMap[e]),"transparent"===e&&(s=[255,255,255,0]),s||(s=t.sourceFromHex(e)),s||(s=t.sourceFromRgb(e)),s||(s=t.sourceFromHsl(e)),s||(s=[0,0,0,1]),s&&this.setSource(s)}_rgbToHsl(t,e,s){var i,n,r,o=ct.max([t/=255,e/=255,s/=255]),a=ct.min([t,e,s]);if(r=(o+a)/2,o===a)i=n=0;else{var h=o-a;switch(n=r>.5?h/(2-o-a):h/(o+a),o){case t:i=(e-s)/h+(e<s?6:0);break;case e:i=(s-t)/h+2;break;case s:i=(t-e)/h+4}i/=6}return[Math.round(360*i),Math.round(100*n),Math.round(100*r)]}getSource(){return this._source}setSource(t){this._source=t}toRgb(){var t=this.getSource();return"rgb("+t[0]+","+t[1]+","+t[2]+")"}toRgba(){var t=this.getSource();return"rgba("+t[0]+","+t[1]+","+t[2]+","+t[3]+")"}toHsl(){var t=this.getSource(),e=this._rgbToHsl(t[0],t[1],t[2]);return"hsl("+e[0]+","+e[1]+"%,"+e[2]+"%)"}toHsla(){var t=this.getSource(),e=this._rgbToHsl(t[0],t[1],t[2]);return"hsla("+e[0]+","+e[1]+"%,"+e[2]+"%,"+t[3]+")"}toHex(){var t,e,s,i=this.getSource();return t=1===(t=i[0].toString(16)).length?"0"+t:t,e=1===(e=i[1].toString(16)).length?"0"+e:e,s=1===(s=i[2].toString(16)).length?"0"+s:s,t.toUpperCase()+e.toUpperCase()+s.toUpperCase()}toHexa(){var t,e=this.getSource();return t=1===(t=(t=Math.round(255*e[3])).toString(16)).length?"0"+t:t,this.toHex()+t.toUpperCase()}getAlpha(){return this.getSource()[3]}setAlpha(t){var e=this.getSource();return e[3]=t,this.setSource(e),this}toGrayscale(){var t=this.getSource(),e=parseInt((.3*t[0]+.59*t[1]+.11*t[2]).toFixed(0),10),s=t[3];return this.setSource([e,e,e,s]),this}toBlackWhite(t){var e=this.getSource(),s=(.3*e[0]+.59*e[1]+.11*e[2]).toFixed(0),i=e[3];return t=t||127,s=Number(s)<Number(t)?0:255,this.setSource([s,s,s,i]),this}overlayWith(e){e instanceof t||(e=new t(e));var s,i=[],n=this.getAlpha(),r=this.getSource(),o=e.getSource();for(s=0;s<3;s++)i.push(Math.round(.5*r[s]+.5*o[s]));return i[3]=n,this.setSource(i),this}};p(dt,"reRGBa",/^rgba?\(\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*(?:\s*,\s*((?:\d*\.?\d+)?)\s*)?\)$/i),p(dt,"reHSLa",/^hsla?\(\s*(\d{1,3})\s*,\s*(\d{1,3}\%)\s*,\s*(\d{1,3}\%)\s*(?:\s*,\s*(\d+(?:\.\d+)?)\s*)?\)$/i),p(dt,"reHex",/^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i),p(dt,"colorNameMap",{aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#00FFFF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",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:"#FF00FF",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:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#00FF00",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",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:"#663399",red:"#FF0000",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:"#FFFFFF",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellowgreen:"#9ACD32"}),p(dt,"fromRgb",(function(t){return dt.fromSource(dt.sourceFromRgb(t))})),p(dt,"sourceFromRgb",(function(t){var e=t.match(dt.reRGBa);if(e){var s=parseInt(e[1],10)/(/%$/.test(e[1])?100:1)*(/%$/.test(e[1])?255:1),i=parseInt(e[2],10)/(/%$/.test(e[2])?100:1)*(/%$/.test(e[2])?255:1),n=parseInt(e[3],10)/(/%$/.test(e[3])?100:1)*(/%$/.test(e[3])?255:1);return[parseInt(s,10),parseInt(i,10),parseInt(n,10),e[4]?parseFloat(e[4]):1]}})),p(dt,"fromRgba",dt.fromRgb),p(dt,"fromHsl",(function(t){return dt.fromSource(dt.sourceFromHsl(t))})),p(dt,"sourceFromHsl",(function(t){var e=t.match(dt.reHSLa);if(e){var s,i,n,r=(parseFloat(e[1])%360+360)%360/360,o=parseFloat(e[2])/(/%$/.test(e[2])?100:1),a=parseFloat(e[3])/(/%$/.test(e[3])?100:1);if(0===o)s=i=n=a;else{var h=a<=.5?a*(o+1):a+o-a*o,c=2*a-h;s=lt(c,h,r+1/3),i=lt(c,h,r),n=lt(c,h,r-1/3)}return[Math.round(255*s),Math.round(255*i),Math.round(255*n),e[4]?parseFloat(e[4]):1]}})),p(dt,"sourceFromHex",(function(t){if(t.match(dt.reHex)){var e=t.slice(t.indexOf("#")+1),s=3===e.length||4===e.length,i=8===e.length||4===e.length,n=s?e.charAt(0)+e.charAt(0):e.substring(0,2),r=s?e.charAt(1)+e.charAt(1):e.substring(2,4),o=s?e.charAt(2)+e.charAt(2):e.substring(4,6),a=i?s?e.charAt(3)+e.charAt(3):e.substring(6,8):"FF";return[parseInt(n,16),parseInt(r,16),parseInt(o,16),parseFloat((parseInt(a,16)/255).toFixed(2))]}})),p(dt,"fromSource",(function(t){var e=new dt;return e.setSource(t),e}));let ut=dt;function pt(t,e){e.forEach((e=>{const s=e.prototype||e;Object.getOwnPropertyNames(s).forEach((e=>{Object.hasOwnProperty.call(t.prototype,e)||Object.defineProperty(t.prototype,e,Object.getOwnPropertyDescriptor(s,e)||Object.create(null))}))}))}class gt{constructor(t,e){p(this,"x"),p(this,"y"),p(this,"type","point"),this.x=t,this.y=e}static from(t){return new gt(t.x,t.y)}add(t){return new gt(this.x+t.x,this.y+t.y)}addEquals(t){return this.x+=t.x,this.y+=t.y,this}scalarAdd(t){return new gt(this.x+t,this.y+t)}scalarAddEquals(t){return this.x+=t,this.y+=t,this}subtract(t){return new gt(this.x-t.x,this.y-t.y)}subtractEquals(t){return this.x-=t.x,this.y-=t.y,this}scalarSubtract(t){return new gt(this.x-t,this.y-t)}scalarSubtractEquals(t){return this.x-=t,this.y-=t,this}multiply(t){return new gt(this.x*t,this.y*t)}multiplyEquals(t){return this.x*=t,this.y*=t,this}divide(t){return new gt(this.x/t,this.y/t)}divideEquals(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,e){return typeof e>"u"&&(e=.5),e=Math.max(Math.min(1,e),0),new gt(this.x+(t.x-this.x)*e,this.y+(t.y-this.y)*e)}distanceFrom(t){var 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 gt(Math.min(this.x,t.x),Math.min(this.y,t.y))}max(t){return new gt(Math.max(this.x,t.x),Math.max(this.y,t.y))}toString(){return this.x+","+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){var e=this.x,s=this.y;this.x=t.x,this.y=t.y,t.x=e,t.y=s}clone(){return new gt(this.x,this.y)}}const ft={NUM_FRACTION_DIGITS:2},_t={DEFAULT_SVG_FONT_SIZE:2};var Ot={exports:{}};const mt=(null==Ot.exports?{}:Ot.exports).default||Ot.exports,vt=Object.freeze(Object.defineProperty({__proto__:null,default:mt},Symbol.toStringTag,{value:"Module"}));let At,bt,Tt;if(typeof document<"u"&&typeof window<"u")bt=document instanceof(typeof HTMLDocument<"u"?HTMLDocument:Document)?document:document.implementation.createHTMLDocument(""),At=window;else{var yt=new(mt||vt).JSDOM(decodeURIComponent("%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E"),{features:{FetchExternalResources:["img"]},resources:"usable"}).window;bt=yt.document,Tt=(mt||vt).implForWrapper,(mt||vt).Canvas,At=yt}const St=typeof Buffer<"u"&&typeof window>"u";"ontouchstart"in At||"ontouchstart"in bt||At&&At.navigator&&At.navigator.maxTouchPoints;const wt={version:"4.6.0",charWidthsCache:{},DPI:96,commaWsp:"(?:\\s+,?\\s*|,\\s*)",rePathCommand:/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:[eE][-+]?\d+)?)/gi,fontPaths:{},iMatrix:[1,0,0,1,0,0],boundsOfCurveCache:new class{constructor(t=100,e=1){p(this,"store",new Map),this.limit=t,this.cleanBulk=e}has(t){return this.store.has(t)}get(t){return this.store.get(t)}set(t,e){if(this.has(t))return;const s=this.store;if(s.size+1>this.limit){const t=s.keys();for(let e=0;e<this.cleanBulk;e++){const e=t.next();if(e.done)break;s.delete(e.value)}}s.set(t,e)}}(2e4,300),perfLimitSizeTotal:2097152,maxCacheSideLimit:4096,minCacheSideLimit:256,devicePixelRatio:At.devicePixelRatio||At.webkitDevicePixelRatio||At.mozDevicePixelRatio||1,browserShadowBlurConstant:1,_measuringContext:void 0},It={log:console.log,warn:console.warn,error:console.error};var xt=Math.sqrt,Et=Math.atan2,kt=Math.pow,Ct=Math.PI/180,Pt=Math.PI/2;const Nt={cos:function(t){if(0===t)return 1;switch(t<0&&(t=-t),t/Pt){case 1:case 3:return 0;case 2:return-1}return Math.cos(t)},sin:function(t){if(0===t)return 0;var e=1;switch(t<0&&(e=-1),t/Pt){case 1:return e;case 2:return 0;case 3:return-e}return Math.sin(t)},removeFromArray:function(t,e){var s=t.indexOf(e);return-1!==s&&t.splice(s,1),t},getRandomInt:function(t,e){return Math.floor(Math.random()*(e-t+1))+t},degreesToRadians:function(t){return t*Ct},radiansToDegrees:function(t){return t/Ct},rotatePoint:function(t,e,s){var i=new gt(t.x-e.x,t.y-e.y),n=Nt.rotateVector(i,s);return new gt(n.x,n.y).addEquals(e)},rotateVector:function(t,e){var s=Nt.sin(e),i=Nt.cos(e);return{x:t.x*i-t.y*s,y:t.x*s+t.y*i}},transformPoint:function(t,e,s){return s?new gt(e[0]*t.x+e[2]*t.y,e[1]*t.x+e[3]*t.y):new gt(e[0]*t.x+e[2]*t.y+e[4],e[1]*t.x+e[3]*t.y+e[5])},makeBoundingBoxFromPoints:function(t,e){if(e)for(var s=0;s<t.length;s++)t[s]=Nt.transformPoint(t[s],e);var i=[t[0].x,t[1].x,t[2].x,t[3].x],n=ct.min(i),r=ct.max(i)-n,o=[t[0].y,t[1].y,t[2].y,t[3].y],a=ct.min(o);return{left:n,top:a,width:r,height:ct.max(o)-a}},invertTransform:function(t){var e=1/(t[0]*t[3]-t[1]*t[2]),s=[e*t[3],-e*t[1],-e*t[2],e*t[0]],i=Nt.transformPoint({x:t[4],y:t[5]},s,!0);return s[4]=-i.x,s[5]=-i.y,s},toFixed:function(t,e){return parseFloat(Number(t).toFixed(e))},parseUnit:function(t,e){var s=/\D{0,2}$/.exec(t),i=parseFloat(t);switch(e||(e=_t.DEFAULT_SVG_FONT_SIZE),s[0]){case"mm":return i*wt.DPI/25.4;case"cm":return i*wt.DPI/2.54;case"in":return i*wt.DPI;case"pt":return i*wt.DPI/72;case"pc":return i*wt.DPI/72*12;case"em":return i*e;default:return i}},falseFunction:function(){return!1},getSvgAttributes:function(t){var e=["instantiated_by_use","style","id","class"];switch(t){case"linearGradient":e=e.concat(["x1","y1","x2","y2","gradientUnits","gradientTransform"]);break;case"radialGradient":e=e.concat(["gradientUnits","gradientTransform","cx","cy","r","fx","fy","fr"]);break;case"stop":e=e.concat(["offset","stop-color","stop-opacity"])}return e},loadImage:function(t,e,s,i){if(t){var n=Nt.createImage(),r=function(){e&&e.call(s,n,!1),n=n.onload=n.onerror=null};n.onload=r,n.onerror=function(){It.log("Error loading "+n.src),e&&e.call(s,null,!0),n=n.onload=n.onerror=null},0!==t.indexOf("data")&&null!=i&&(n.crossOrigin=i),"data:image/svg"===t.substring(0,14)&&(n.onload=null,Nt.loadImageInDom(n,r)),n.src=t}else e&&e.call(s,t)},loadImageInDom:function(t,e){var s=bt.createElement("div");s.style.width=s.style.height="1px",s.style.left=s.style.top="-100%",s.style.position="absolute",s.appendChild(t),bt.querySelector("body").appendChild(s),t.onload=function(){e(),s.parentNode.removeChild(s),s=null}},populateWithProperties:function(t,e,s){if(s&&"[object Array]"===Object.prototype.toString.call(s))for(var i=0,n=s.length;i<n;i++)s[i]in t&&(e[s[i]]=t[s[i]])},drawDashedLine:function(t,e,s,i,n,r){var o=i-e,a=n-s,h=xt(o*o+a*a),c=Et(a,o),l=r.length,d=0,u=!0;for(t.save(),t.translate(e,s),t.moveTo(0,0),t.rotate(c),e=0;h>e;)(e+=r[d++%l])>h&&(e=h),t[u?"lineTo":"moveTo"](e,0),u=!u;t.restore()},createCanvasElement:function(){return bt.createElement("canvas")},copyCanvasElement:function(t){var e=Nt.createCanvasElement();return e.width=t.width,e.height=t.height,e.getContext("2d").drawImage(t,0,0),e},toDataURL:function(t,e,s){const i="pdf"===e||"svg"===e?"":"image/";return t.toDataURL(i+e,s)},createImage:function(){return bt.createElement("img")},multiplyTransformMatrices:function(t,e,s){return[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]]},qrDecompose:function(t){var e=Et(t[1],t[0]),s=kt(t[0],2)+kt(t[1],2),i=xt(s),n=(t[0]*t[3]-t[2]*t[1])/i,r=Et(t[0]*t[2]+t[1]*t[3],s);return{angle:e/Ct,scaleX:i,scaleY:n,skewX:r/Ct,skewY:0,translateX:t[4],translateY:t[5]}},calcRotateMatrix:function(t){if(!t.angle)return wt.iMatrix.concat();var e=Nt.degreesToRadians(t.angle),s=Nt.cos(e),i=Nt.sin(e);return[s,i,-i,s,0,0]},calcDimensionsMatrix:function(t){var e=typeof t.scaleX>"u"?1:t.scaleX,s=typeof t.scaleY>"u"?1:t.scaleY,i=[t.flipX?-e:e,0,0,t.flipY?-s:s,0,0],n=Nt.multiplyTransformMatrices,r=Nt.degreesToRadians;return t.skewX&&(i=n(i,[1,0,Math.tan(r(t.skewX)),1],!0)),t.skewY&&(i=n(i,[1,Math.tan(r(t.skewY)),0,1],!0)),i},composeMatrix:function(t){var e=[1,0,0,1,t.translateX||0,t.translateY||0],s=Nt.multiplyTransformMatrices;return t.angle&&(e=s(e,Nt.calcRotateMatrix(t))),(1!==t.scaleX||1!==t.scaleY||t.skewX||t.skewY||t.flipX||t.flipY)&&(e=s(e,Nt.calcDimensionsMatrix(t))),e},resetObjectTransform:function(t){t.scaleX=1,t.scaleY=1,t.skewX=0,t.skewY=0,t.flipX=!1,t.flipY=!1,t.rotate(0)},saveObjectTransform:function(t){return{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}},isTransparent:function(t,e,s,i){i>0&&(e>i?e-=i:e=0,s>i?s-=i:s=0);var n,r=!0,o=t.getImageData(e,s,2*i||1,2*i||1),a=o.data.length;for(n=3;n<a&&!1!=(r=o.data[n]<=0);n+=4);return o=null,r},parsePreserveAspectRatioAttribute:function(t){var e,s="meet",i=t.split(" ");return i&&i.length&&("meet"!==(s=i.pop())&&"slice"!==s?(e=s,s="meet"):i.length&&(e=i.pop())),{meetOrSlice:s,alignX:"none"!==e?e.slice(1,4):"none",alignY:"none"!==e?e.slice(5,8):"none"}},clearFabricFontCache:function(t){(t=(t||"").toLowerCase())?wt.charWidthsCache[t]&&delete wt.charWidthsCache[t]:wt.charWidthsCache={}},limitDimsByArea:function(t,e){var s=Math.sqrt(e*t),i=Math.floor(e/s);return{x:Math.floor(s),y:i}},capValue:function(t,e,s){return Math.max(t,Math.min(e,s))},findScaleToFit:function(t,e){return Math.min(e.width/t.width,e.height/t.height)},findScaleToCover:function(t,e){return Math.max(e.width/t.width,e.height/t.height)},matrixToSVG:function(t){return"matrix("+t.map((function(t){return Nt.toFixed(t,ft.NUM_FRACTION_DIGITS)})).join(" ")+")"},removeTransformFromObject:function(t,e){var s=Nt.invertTransform(e),i=Nt.multiplyTransformMatrices(s,t.calcOwnMatrix());Nt.applyTransformToObject(t,i)},addTransformToObject:function(t,e){Nt.applyTransformToObject(t,Nt.multiplyTransformMatrices(e,t.calcOwnMatrix()))},applyTransformToObject:function(t,e){var s=Nt.qrDecompose(e),i=new gt(s.translateX,s.translateY);t.flipX=!1,t.flipY=!1,t.set("scaleX",s.scaleX),t.set("scaleY",s.scaleY),t.skewX=s.skewX,t.skewY=s.skewY,t.angle=s.angle,t.setPositionByOrigin(i,"center","center")},sizeAfterTransform:function(t,e,s){var i=t/2,n=e/2,r=[{x:-i,y:-n},{x:i,y:-n},{x:-i,y:n},{x:i,y:n}],o=Nt.calcDimensionsMatrix(s),a=Nt.makeBoundingBoxFromPoints(r,o);return{x:a.width,y:a.height}}};class Rt{constructor(t=""){p(this,"points"),p(this,"status"),this.status=t,this.points=[]}appendPoint(t){return this.points.push(t),this}appendPoints(t){return this.points=this.points.concat(t),this}static intersectLineLine(t,e,s,i){var n,r=(i.x-s.x)*(t.y-s.y)-(i.y-s.y)*(t.x-s.x),o=(e.x-t.x)*(t.y-s.y)-(e.y-t.y)*(t.x-s.x),a=(i.y-s.y)*(e.x-t.x)-(i.x-s.x)*(e.y-t.y);if(0!==a){var h=r/a,c=o/a;0<=h&&h<=1&&0<=c&&c<=1?(n=new Rt("Intersection")).appendPoint(new gt(t.x+h*(e.x-t.x),t.y+h*(e.y-t.y))):n=new Rt}else n=new Rt(0===r||0===o?"Coincident":"Parallel");return n}static intersectLinePolygon(t,e,s){var i,n,r,o,a=new Rt,h=s.length;for(o=0;o<h;o++)i=s[o],n=s[(o+1)%h],r=Rt.intersectLineLine(t,e,i,n),a.appendPoints(r.points);return a.points.length>0&&(a.status="Intersection"),a}static intersectPolygonPolygon(t,e){var s,i=new Rt,n=t.length;for(s=0;s<n;s++){var r=t[s],o=t[(s+1)%n],a=Rt.intersectLinePolygon(r,o,e);i.appendPoints(a.points)}return i.points.length>0&&(i.status="Intersection"),i}static intersectPolygonRectangle(t,e,s){var i=e.min(s),n=e.max(s),r=new gt(n.x,i.y),o=new gt(i.x,n.y),a=Rt.intersectLinePolygon(i,r,t),h=Rt.intersectLinePolygon(r,n,t),c=Rt.intersectLinePolygon(n,o,t),l=Rt.intersectLinePolygon(o,i,t),d=new Rt;return d.appendPoints(a.points),d.appendPoints(h.points),d.appendPoints(c.points),d.appendPoints(l.points),d.points.length>0&&(d.status="Intersection"),d}}const{degreesToRadians:Lt,transformPoint:jt}=Nt,Dt={left:-.5,top:-.5,center:0,bottom:.5,right:.5},Ft=t=>"string"==typeof t?Dt[t]:t-.5,Mt=Nt.degreesToRadians,Yt=Nt.multiplyTransformMatrices,Bt=Nt.transformPoint;function Ht(t,e){if(!t||t.length!==e.length)return!1;for(let s=0;s<t.length;s++)if(t[s]!==e[s])return!1;return!0}const Vt=class{constructor(){p(this,"oCoords",null),p(this,"aCoords",null),p(this,"lineCoords",null),p(this,"ownMatrixCache",null),p(this,"matrixCache",null)}_getCoords(t,e){return e?t?this.calcACoords():this.calcLineCoords():((!this.aCoords||!this.lineCoords)&&this.setCoords(!0),t?this.aCoords:this.lineCoords)}getCoords(t,e){return s=this._getCoords(t,e),[new gt(s.tl.x,s.tl.y),new gt(s.tr.x,s.tr.y),new gt(s.br.x,s.br.y),new gt(s.bl.x,s.bl.y)];var s}forEachParent(t){const e=new Set;let s=this.group;for(;s&&!e.has(s);)e.add(s),t(s),s=s.group}getTotalScaleSimple(t,e){var s;let i=null!=(s=null!=e?e:this[t])?s:1;return this.forEachParent((e=>{var s;i*=null!=(s=e[t])?s:1})),i}intersectsWithRect(t,e,s,i){var n=this.getCoords(s,i);return"Intersection"===Rt.intersectPolygonRectangle(n,t,e).status}intersectsWithObject(t,e,s){return"Intersection"===Rt.intersectPolygonPolygon(this.getCoords(e,s),t.getCoords(e,s)).status||t.isContainedWithinObject(this,e,s)||this.isContainedWithinObject(t,e,s)}isContainedWithinObject(t,e,s){for(var i=this.getCoords(e,s),n=e?t.aCoords:t.lineCoords,r=0,o=t._getImageLines(n);r<4;r++)if(!t.containsPoint(i[r],o))return!1;return!0}isContainedWithinRect(t,e,s,i){var n=this.getBoundingRect(s,i);return n.left>=t.x&&n.left+n.width<=e.x&&n.top>=t.y&&n.top+n.height<=e.y}containsPoint(t,e,s,i){var n=this._getCoords(s,i),r=(e=e||this._getImageLines(n),this._findCrossPoints(t,e));return 0!==r&&r%2==1}isOnScreen(t){if(!this.canvas)return!1;var e=this.canvas.vptCoords.tl,s=this.canvas.vptCoords.br;return!(!this.getCoords(!0,t).some((function(t){return t.x<=s.x&&t.x>=e.x&&t.y<=s.y&&t.y>=e.y}))&&!this.intersectsWithRect(e,s,!0,t))||this._containsCenterOfCanvas(e,s,t)}isOnScreenAbs(){if(!this.canvas)return!1;const t=this.canvas.vptCoords.tl,e=this.canvas.vptCoords.br,s=Object.values(this.calcAbsCoords());return!(!s.some((function(s){return s.x<=e.x&&s.x>=t.x&&s.y<=e.y&&s.y>=t.y}))&&"Intersection"!==Rt.intersectPolygonRectangle(s,t,e).status)||this._containsCenterOfCanvas(t,e)}_containsCenterOfCanvas(t,e,s){var i={x:(t.x+e.x)/2,y:(t.y+e.y)/2};return!!this.containsPoint(i,null,!0,s)}isPartiallyOnScreen(t){if(!this.canvas)return!1;var e=this.canvas.vptCoords.tl,s=this.canvas.vptCoords.br;return!!this.intersectsWithRect(e,s,!0,t)||this.getCoords(!0,t).every((function(t){return(t.x>=s.x||t.x<=e.x)&&(t.y>=s.y||t.y<=e.y)}))&&this._containsCenterOfCanvas(e,s,t)}_getImageLines(t){return{topline:{o:t.tl,d:t.tr},rightline:{o:t.tr,d:t.br},bottomline:{o:t.br,d:t.bl},leftline:{o:t.bl,d:t.tl}}}_findCrossPoints(t,e){var s,i,n,r,o,a=0;for(var h in e)if(!((o=e[h]).o.y<t.y&&o.d.y<t.y||o.o.y>=t.y&&o.d.y>=t.y||(o.o.x===o.d.x&&o.o.x>=t.x?r=o.o.x:(s=(o.d.y-o.o.y)/(o.d.x-o.o.x),i=t.y-0*t.x,n=o.o.y-s*o.o.x,r=-(i-n)/(0-s)),r>=t.x&&(a+=1),2!==a)))break;return a}getBoundingRect(t,e){var s=this.getCoords(t,e);return Nt.makeBoundingBoxFromPoints(s)}getScaledWidth(){return this._getTransformedDimensions().x}getScaledHeight(){return this._getTransformedDimensions().y}_constrainScale(t){return Math.abs(t)<this.minScaleLimit?t<0?-this.minScaleLimit:this.minScaleLimit:0===t?1e-4:t}scale(t){return this._set("scaleX",t),this._set("scaleY",t),this.setCoords()}scaleToWidth(t,e){var s=this.getBoundingRect(e).width/this.getScaledWidth();return this.scale(t/this.width/s)}scaleToHeight(t,e){var s=this.getBoundingRect(e).height/this.getScaledHeight();return this.scale(t/this.height/s)}getTotalAngle(){return this.group?Nt.qrDecompose(this.calcTransformMatrix()).angle:this.angle}calcCoords(t){return t?this.calcACoords():this.calcOCoords()}calcLineCoords(){var t=this.getViewportTransform(),e=this.padding,s=Mt(this.angle),i=Nt.cos(s)*e,n=Nt.sin(s)*e,r=i+n,o=i-n,a=this.calcACoords(),h={tl:Bt(a.tl,t),tr:Bt(a.tr,t),bl:Bt(a.bl,t),br:Bt(a.br,t)};return e&&(h.tl.x-=o,h.tl.y-=r,h.tr.x+=r,h.tr.y-=o,h.bl.x-=r,h.bl.y+=o,h.br.x+=o,h.br.y+=r),h}calcCanvasLineCoords(){const t=this.group?Nt.multiplyTransformMatrices(this.getViewportTransform(),this.group.calcTransformMatrix()):this.getViewportTransform(),e=this.padding,s=Nt.degreesToRadians(this.angle),i=Nt.cos(s)*e,n=Nt.sin(s)*e,r=i+n,o=i-n,a=this.calcACoords(),h={tl:Nt.transformPoint(a.tl,t),tr:Nt.transformPoint(a.tr,t),bl:Nt.transformPoint(a.bl,t),br:Nt.transformPoint(a.br,t)};return e&&(h.tl.x-=o,h.tl.y-=r,h.tr.x+=r,h.tr.y-=o,h.bl.x-=r,h.bl.y+=o,h.br.x+=o,h.br.y+=r),h}calcOCoords(){var t=this._calcRotateMatrix(),e=this._calcTranslateMatrix(),s=this.getViewportTransform(),i=Yt(s,e),n=Yt(i,t),r=(n=Yt(n,[1/s[0],0,0,1/s[3],0,0]),this._calculateCurrentDimensions()),o={};return this.forEachControl((function(t,e,s){o[e]=t.positionHandler(r,n,s)})),o}calcACoords(){var t=this._calcRotateMatrix(),e=this._calcTranslateMatrix(),s=Yt(e,t),i=this._getTransformedDimensions(),n=i.x/2,r=i.y/2;return{tl:Bt({x:-n,y:-r},s),tr:Bt({x:n,y:-r},s),bl:Bt({x:-n,y:r},s),br:Bt({x:n,y:r},s)}}calcAbsCoords(){var t;const e=this.calcACoords(),s=null==(t=this.group)?void 0:t.calcTransformMatrix();let i=[e.tl,e.tr,e.bl,e.br];return i=s?i.map((t=>Nt.transformPoint(t,s))):i,{tl:i[0],tr:i[1],bl:i[2],br:i[3]}}setCoords(t){return this.aCoords=this.calcACoords(),this.lineCoords=this.group?this.aCoords:this.calcLineCoords(),t||(this.oCoords=this.calcOCoords(),this._setCornerCoords&&this._setCornerCoords()),this}_calcRotateMatrix(){return Nt.calcRotateMatrix(this)}_calcTranslateMatrix(){var t=this.getCenterPoint();return[1,0,0,1,t.x,t.y]}transformMatrixKey(t){let e=[];return!t&&this.group&&(e=this.group.transformMatrixKey(t)),e.push(this.top,this.left,this.scaleX,this.scaleY,this.skewX,this.skewY,this.angle,Ft(this.originX),Ft(this.originY),this.width,this.height,this.strokeWidth,+this.flipX,+this.flipY),e}calcTransformMatrix(t){var e=this.calcOwnMatrix();if(t||!this.group)return e;var s=this.transformMatrixKey(t),i=this.matrixCache||(this.matrixCache={});return Ht(i.key,s)?i.value:(this.group&&(e=Yt(this.group.calcTransformMatrix(!1),e)),i.key=s,i.value=e,e)}calcOwnMatrix(){var t=this.transformMatrixKey(!0),e=this.ownMatrixCache||(this.ownMatrixCache={});if(Ht(e.key,t))return e.value;var s=this._calcTranslateMatrix(),i={angle:this.angle,translateX:s[4],translateY:s[5],scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,flipX:this.flipX,flipY:this.flipY};return e.key=t,e.value=Nt.composeMatrix(i),e.value}_calcDimensionsTransformMatrix(t,e,s){return Nt.calcDimensionsMatrix({skewX:t,skewY:e,scaleX:this.scaleX*(s&&this.flipX?-1:1),scaleY:this.scaleY*(s&&this.flipY?-1:1)})}_getNonTransformedDimensions(){var t=this.strokeWidth;return{x:this.width+t,y:this.height+t}}_getTransformedDimensions(t,e){typeof t>"u"&&(t=this.skewX),typeof e>"u"&&(e=this.skewY);var s,i,n,r=0===t&&0===e;if(this.strokeUniform?(i=this.width,n=this.height):(i=(s=this._getNonTransformedDimensions()).x,n=s.y),r)return this._finalizeDimensions(i*this.scaleX,n*this.scaleY);var o=Nt.sizeAfterTransform(i,n,{scaleX:this.scaleX,scaleY:this.scaleY,skewX:t,skewY:e});return this._finalizeDimensions(o.x,o.y)}_finalizeDimensions(t,e){return this.strokeUniform?{x:t+this.strokeWidth,y:e+this.strokeWidth}:{x:t,y:e}}_calculateCurrentDimensions(){var t=this.getViewportTransform(),e=this._getTransformedDimensions();return Bt(e,t,!0).scalarAdd(2*this.padding)}};Vt.prototype.oCoords=null,Vt.prototype.aCoords=null,Vt.prototype.lineCoords=null,Vt.prototype.ownMatrixCache=null,Vt.prototype.matrixCache=null,Vt.prototype.controls={};let Wt=Vt;function Ut(t,e,s){if(s)if(!St&&e instanceof Element)t=e;else if(e instanceof Array){t=[];for(var i=0,n=e.length;i<n;i++)t[i]=Ut({},e[i],s)}else if(e&&"object"==typeof e)for(var r in e)"canvas"===r||"group"===r?t[r]=null:e.hasOwnProperty(r)&&(t[r]=Ut({},e[r],s));else t=e;else for(var r in e)t[r]=e[r];return t}const zt={extend:Ut,clone:function(t,e){return Ut({},t,e)}};var Gt=zt.extend,Xt="stateProperties";function qt(t,e,s){var i={};s.forEach((function(e){i[e]=t[e]})),Gt(t[e],i,!0)}function Jt(t,e,s){if(t===e)return!0;if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return!1;for(var i=0,n=t.length;i<n;i++)if(!Jt(t[i],e[i]))return!1;return!0}if(t&&"object"==typeof t){var r,o=Object.keys(t);if(!e||"object"!=typeof e||!s&&o.length!==Object.keys(e).length)return!1;for(i=0,n=o.length;i<n;i++)if("canvas"!==(r=o[i])&&"group"!==r&&!Jt(t[r],e[r]))return!1;return!0}}class Kt{_setOptions(t){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 Zt(t,e){if(!this.__eventListeners[t])return;const s=this.__eventListeners[t];if(s)if(e){const t=s.indexOf(e);t>-1&&s.splice(t,1)}else s.length=0}function Qt(t,e){var s=function(){e.apply(this,arguments),this.off(t,s)}.bind(this);this.on(t,s)}class $t{constructor(){p(this,"__eventListeners")}once(t,e){if(1===arguments.length)for(var s in t)Qt.call(this,s,t[s]);else Qt.call(this,t,e);return this}on(t,e){if(this.__eventListeners||(this.__eventListeners={}),1===arguments.length)for(var s in t)this.on(s,t[s]);else this.__eventListeners[t]||(this.__eventListeners[t]=[]),this.__eventListeners[t].push(e);return this}off(t,e){if(!this.__eventListeners)return this;if(0===arguments.length)for(t in this.__eventListeners)Zt.call(this,t);else if(1===arguments.length&&"object"==typeof arguments[0])for(var s in t)Zt.call(this,s,t[s]);else Zt.call(this,t,e);return this}fire(t,e){if(!this.__eventListeners)return this;var s=this.__eventListeners[t];if(!s)return this;for(var i=0,n=s.length;i<n;i++)s[i]&&s[i].call(this,e||{});return this}}function te(t,e){if(e){if(e.toLive)return t+": url(#SVGID_"+e.id+"); ";var s=new ut(e),i=t+": "+s.toRgb()+"; ",n=s.getAlpha();return 1!==n&&(i+=t+"-opacity: "+n.toString()+"; "),i}return t+": none; "}var ee=Nt.toFixed;function se(){return!1}function ie(t,e,s,i){return-s*Math.cos(t/i*(Math.PI/2))+s+e}function ne(t){var e=!1;return he((function(s){t||(t={});var i,n=s||+new Date,r=t.duration||500,o=n+r,a=t.onChange||se,h=t.abort||se,c=t.onComplete||se,l=t.easing||ie,d="startValue"in t?t.startValue:0,u="endValue"in t?t.endValue:100,p=t.byValue||u-d;t.onStart&&t.onStart(),function t(s){var g=(i=s||+new Date)>o?r:i-n,f=g/r,_=l(g,d,p,r),O=Math.abs((_-d)/p);if(!e){if(h(_,O,f))return void c(u,1,1);if(i>o)return a(u,1,1),void c(u,1,1);a(_,O,f),he(t)}}(n)})),function(){e=!0}}const re=At,oe=re.requestAnimationFrame||re.webkitRequestAnimationFrame||re.mozRequestAnimationFrame||re.oRequestAnimationFrame||re.msRequestAnimationFrame||function(t){return re.setTimeout(t,1e3/60)},ae=re.cancelAnimationFrame||re.clearTimeout;function he(t){return oe(t)}function ce(t){return ae(t)}class le{constructor(){p(this,"_onObjectAdded"),p(this,"_onObjectRemoved"),p(this,"renderOnAddRemove"),p(this,"_objects",[])}add(...t){if(this._objects.push(...t),this._onObjectAdded)for(let e=0,s=t.length;e<s;e++)this._onObjectAdded(t[e]);return this.renderOnAddRemove&&this._onCollectionChanged(),this}_onCollectionChanged(){}insertAt(t,e,s){const i=this._objects;return s?i[e]=t:i.splice(e,0,t),this._onObjectAdded&&this._onObjectAdded(t),this.renderOnAddRemove&&this._onCollectionChanged(),this}remove(...t){const e=this._objects;let s,i=!1;for(let n=0,r=t.length;n<r;n++)s=e.indexOf(t[n]),-1!==s&&(i=!0,e.splice(s,1),this._onObjectRemoved&&this._onObjectRemoved(t[n]));return this.renderOnAddRemove&&i&&this._onCollectionChanged(),this}forEachObject(t,e){const s=this.getObjects();for(let i=0,n=s.length;i<n;i++)t.call(e,s[i],i,s);return this}getObjects(t){return typeof t>"u"?this._objects.concat():this._objects.filter((function(e){return e.type===t}))}item(t){return this._objects[t]}isEmpty(){return 0===this._objects.length}size(){return this._objects.length}contains(t,e){return this._objects.indexOf(t)>-1||!!e&&this._objects.some((function(e){return"function"==typeof e.contains&&e.contains(t,!0)}))}complexity(){return this._objects.reduce((function(t,e){return t+(e.complexity?e.complexity():0)}),0)}}function de(t,e){var s=t.style;if(!s)return t;if("string"==typeof e)return t.style.cssText+=";"+e,e.indexOf("opacity")>-1?_e(t,e.match(/opacity:\s*(\d?\.?\d*)/)[1]):t;for(var i in e)"opacity"===i?_e(t,e[i]):s["float"===i||"cssFloat"===i?typeof s.styleFloat>"u"?"cssFloat":"styleFloat":i]=e[i];return t}const ue=bt.createElement("div"),pe="string"==typeof ue.style.opacity,ge="string"==typeof ue.style.filter,fe=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/;let _e=function(t){return t};pe?_e=function(t,e){return t.style.opacity=e,t}:ge&&(_e=function(t,e){var s=t.style;return t.currentStyle&&!t.currentStyle.hasLayout&&(s.zoom=1),fe.test(s.filter)?(e=e>=.9999?"":"alpha(opacity="+100*e+")",s.filter=s.filter.replace(fe,e)):s.filter+=" alpha(opacity="+100*e+")",t});const Oe=Array.prototype.slice,me=bt;var ve,Ae,be=function(t){return Oe.call(t,0)};try{ve=be(me.childNodes)instanceof Array}catch(Ns){}function Te(t,e){var s=me.createElement(t);for(var i in e)"class"===i?s.className=e[i]:"for"===i?s.htmlFor=e[i]:s.setAttribute(i,e[i]);return s}function ye(t){for(var e=0,s=0,i=me.documentElement,n=me.body||{scrollLeft:0,scrollTop:0};t&&(t.parentNode||t.host)&&((t=t.parentNode||t.host)===me?(e=n.scrollLeft||i.scrollLeft||0,s=n.scrollTop||i.scrollTop||0):(e+=t.scrollLeft||0,s+=t.scrollTop||0),1!==t.nodeType||"fixed"!==t.style.position););return{left:e,top:s}}ve||(be=function(t){for(var e=new Array(t.length),s=t.length;s--;)e[s]=t[s];return e}),Ae=me.defaultView&&me.defaultView.getComputedStyle?function(t,e){var s=me.defaultView.getComputedStyle(t,null);return s?s[e]:void 0}:function(t,e){var s=t.style[e];return!s&&t.currentStyle&&(s=t.currentStyle[e]),s};var Se=bt.documentElement.style,we="userSelect"in Se?"userSelect":"MozUserSelect"in Se?"MozUserSelect":"WebkitUserSelect"in Se?"WebkitUserSelect":"KhtmlUserSelect"in Se?"KhtmlUserSelect":"";const Ie={setImageSmoothing:function(t,e){t.imageSmoothingEnabled=t.imageSmoothingEnabled||t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled||t.oImageSmoothingEnabled,t.imageSmoothingEnabled=e},getById:function(t){return"string"==typeof t?me.getElementById(t):t},toArray:be,addClass:function(t,e){t&&-1===(" "+t.className+" ").indexOf(" "+e+" ")&&(t.className+=(t.className?" ":"")+e)},makeElement:Te,wrapElement:function(t,e,s){return"string"==typeof e&&(e=Te(e,s)),t.parentNode&&t.parentNode.replaceChild(e,t),e.appendChild(t),e},getScrollLeftTop:ye,getElementOffset:function(t){var e,s,i=t&&t.ownerDocument,n={left:0,top:0},r={left:0,top:0},o={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"};if(!i)return r;for(var a in o)r[o[a]]+=parseInt(Ae(t,a),10)||0;return e=i.documentElement,typeof t.getBoundingClientRect<"u"&&(n=t.getBoundingClientRect()),s=ye(t),{left:n.left+s.left-(e.clientLeft||0)+r.left,top:n.top+s.top-(e.clientTop||0)+r.top}},getNodeCanvas:function(t){var e=Tt(t);return e._canvas||e._image},cleanUpJsdomNode:function(t){if(St){var e=Tt(t);e&&(e._canvas&&(e._canvas.width=0,e._canvas.height=0),e._image&&(e._image.width=0,e._image.height=0),e._canvas=null,e._image=null,e._currentSrc=null,e._attributes=null,e._classList=null)}},makeElementUnselectable:function(t){return typeof t.onselectstart<"u"&&(t.onselectstart=Nt.falseFunction),we?t.style[we]="none":"string"==typeof t.unselectable&&(t.unselectable="on"),t},makeElementSelectable:function(t){return typeof t.onselectstart<"u"&&(t.onselectstart=null),we?t.style[we]="":"string"==typeof t.unselectable&&(t.unselectable=""),t},setStyle:de},xe=zt.extend,Ee=Ie.getElementOffset,ke=Nt.removeFromArray,Ce=Nt.toFixed,Pe=Nt.transformPoint,Ne=Nt.invertTransform,Re=Ie.getNodeCanvas,Le=Nt.createCanvasElement,je=new Error("Could not initialize `canvas` element"),De=new class{next(t){return he(t)}cancel(t){return ce(t)}},Fe=new class{constructor(t=1e3){p(this,"queue",new Map),p(this,"tid",0),p(this,"timer",0),p(this,"started",!1),p(this,"first",null),p(this,"flush",(()=>{if(!this.queue.size)return void this.clearTimer();const t=[...this.queue.values()],e=t.length;this.queue.clear();let s=0;for(;s<e;){const e=t[s];s++;try{e()}catch(t){console.error(t)}}})),this.rate=t}clearTimer(){clearInterval(this.timer),this.timer=0}next(t){const e=++this.tid;if(!this.started){this.started=!0;const s=setTimeout((()=>{this.first=null,t()}),0);return this.first={tid:e,timer:s},e}return this.queue.set(e,t),this.timer||(this.timer=setInterval(this.flush,this.rate)),e}cancel(t){if(this.first&&this.first.tid===t)return clearTimeout(this.first.timer),void(this.first=null);this.queue.delete(t),this.queue.size||this.clearTimer()}}(1e3/60);class Me{constructor(t,e){p(this,"_originalCanvasStyle",""),p(this,"isRendering",0),p(this,"ticker",De),p(this,"backgroundColor",""),p(this,"backgroundImage",null),p(this,"overlayColor",""),p(this,"overlayImage",null),p(this,"includeDefaultValues",!0),p(this,"stateful",!1),p(this,"renderOnAddRemove",!0),p(this,"controlsAboveOverlay",!1),p(this,"allowTouchScrolling",!1),p(this,"imageSmoothingEnabled",!0),p(this,"viewportTransform",wt.iMatrix.concat()),p(this,"backgroundVpt",!0),p(this,"overlayVpt",!0),p(this,"enableRetinaScaling",!0),p(this,"vptCoords",{tl:new gt(0,0),tr:new gt(0,0),bl:new gt(0,0),br:new gt(0,0)}),p(this,"skipOffscreen",!0),p(this,"clipPath"),p(this,"svgViewportTransformation",!0),e||(e={}),this.renderAndResetBound=this.renderAndReset.bind(this),this.requestRenderAllBound=this.requestRenderAll.bind(this),this._initStatic(t,e)}changeTickerMode(t){this.stopLastRender(),this.ticker="raf"===t?De:Fe}stopLastRender(){this.isRendering&&(this.ticker.cancel(this.isRendering),this.isRendering=0)}_initStatic(t,e){const s=this.requestRenderAllBound;this._objects=[],this._createLowerCanvas(t),this._initOptions(e),this.interactive||this._initRetinaScaling(),e.overlayImage&&this.setOverlayImage(e.overlayImage,s),e.backgroundImage&&this.setBackgroundImage(e.backgroundImage,s),e.backgroundColor&&this.setBackgroundColor(e.backgroundColor,s),e.overlayColor&&this.setOverlayColor(e.overlayColor,s),this.calcOffset()}_isRetinaScaling(){return 1!==wt.devicePixelRatio&&this.enableRetinaScaling}getRetinaScaling(){return this._isRetinaScaling()?wt.devicePixelRatio:1}_initRetinaScaling(){if(!this._isRetinaScaling())return;const t=wt.devicePixelRatio;this.__initRetinaScaling(t,this.lowerCanvasEl,this.contextContainer),this.upperCanvasEl&&this.__initRetinaScaling(t,this.upperCanvasEl,this.contextTop)}__initRetinaScaling(t,e,s){e.setAttribute("width",this.width*t),e.setAttribute("height",this.height*t),s.scale(t,t)}calcOffset(){return this._offset=Ee(this.lowerCanvasEl),this}setOverlayImage(t,e,s){return this.__setBgOverlayImage("overlayImage",t,e,s)}setBackgroundImage(t,e,s){return this.__setBgOverlayImage("backgroundImage",t,e,s)}setOverlayColor(t,e){return this.__setBgOverlayColor("overlayColor",t,e)}setBackgroundColor(t,e){return this.__setBgOverlayColor("backgroundColor",t,e)}__setBgOverlayImage(t,e,s,i){if("string"==typeof e){const n=ot.get(rt.Image);Nt.loadImage(e,(function(e,r){if(e){const s=new n(e,i);this[t]=s,s.canvas=this}s&&s(e,r)}),this,i&&i.crossOrigin)}else i&&e.setOptions(i),this[t]=e,e&&(e.canvas=this),s&&s(e,!1);return this}__setBgOverlayColor(t,e,s){return this[t]=e,this}_createCanvasElement(){const t=Le();if(!t||(t.style||(t.style={}),typeof t.getContext>"u"))throw je;return t}_initOptions(t){const e=this.lowerCanvasEl;this._setOptions(t),this.width=this.width||parseInt(e.width,10)||0,this.height=this.height||parseInt(e.height,10)||0,this.lowerCanvasEl.style&&(e.width=this.width,e.height=this.height,e.style.width=this.width+"px",e.style.height=this.height+"px",this.viewportTransform=this.viewportTransform.slice())}_createLowerCanvas(t){t&&t.getContext?this.lowerCanvasEl=t:this.lowerCanvasEl=Ie.getById(t)||this._createCanvasElement(),Ie.addClass(this.lowerCanvasEl,"lower-canvas"),this._originalCanvasStyle=this.lowerCanvasEl.getAttribute("style")||"",this.interactive&&this._applyCanvasStyle(this.lowerCanvasEl),this.contextContainer=this.lowerCanvasEl.getContext("2d")}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)}setDimensions(t,e){let s;e=e||{};for(const i in t)s=t[i],e.cssOnly||(this._setBackstoreDimension(i,t[i]),s+="px",this.hasLostContext=!0),e.backstoreOnly||this._setCssDimension(i,s);return this._isCurrentlyDrawing&&this.freeDrawingBrush&&this.freeDrawingBrush._setBrushStyles(),this._initRetinaScaling(),this.calcOffset(),e.cssOnly||this.requestRenderAll(),this}_setBackstoreDimension(t,e){return this.lowerCanvasEl[t]=e,this.upperCanvasEl&&(this.upperCanvasEl[t]=e),this.cacheCanvasEl&&(this.cacheCanvasEl[t]=e),this[t]=e,this}_setCssDimension(t,e){return this.lowerCanvasEl.style[t]=e,this.upperCanvasEl&&(this.upperCanvasEl.style[t]=e),this.wrapperEl&&(this.wrapperEl.style[t]=e),this}getZoom(){return this.viewportTransform[0]}setViewportTransform(t){const e=this._activeObject,s=this.backgroundImage,i=this.overlayImage;let n,r,o;for(this.viewportTransform=t,r=0,o=this._objects.length;r<o;r++)n=this._objects[r],n.group||n.setCoords(!0);return e&&e.setCoords(),s&&s.setCoords(!0),i&&i.setCoords(!0),this.calcViewportBoundaries(),this.renderOnAddRemove&&this.requestRenderAll(),this}zoomToPoint(t,e){const s=t,i=this.viewportTransform.slice(0);t=Pe(t,Ne(this.viewportTransform)),i[0]=e,i[3]=e;const n=Pe(t,i);return i[4]+=s.x-n.x,i[5]+=s.y-n.y,this.setViewportTransform(i)}setZoom(t){return this.zoomToPoint(new gt(0,0),t),this}absolutePan(t){const e=this.viewportTransform.slice(0);return e[4]=-t.x,e[5]=-t.y,this.setViewportTransform(e)}relativePan(t){return this.absolutePan(new gt(-t.x-this.viewportTransform[4],-t.y-this.viewportTransform[5]))}getElement(){return this.lowerCanvasEl}_onObjectAdded(t){this.stateful&&t.setupState(),t._set("canvas",this),t.setCoords(),this.fire("object:added",{target:t}),t.fire("added")}_onObjectRemoved(t){this.fire("object:removed",{target:t}),t.fire("removed"),delete t.canvas}_onCollectionChanged(){this.requestRenderAll()}clearContext(t){return t.clearRect(0,0,this.width,this.height),this}getContext(){return this.contextContainer}clear(){return this.remove(...this.getObjects()),this.backgroundImage=null,this.overlayImage=null,this.backgroundColor="",this.overlayColor="",this._hasITextHandlers&&(this.off("mouse:up",this._mouseUpITextHandler),this._iTextInstances=null,this._hasITextHandlers=!1),this.clearContext(this.contextContainer),this.fire("canvas:cleared"),this.renderOnAddRemove&&this.requestRenderAll(),this}renderAll(){const t=this.contextContainer;return this.renderCanvas(t,this._objects),this}renderAndReset(){this.isRendering=0,this.renderAll()}requestRenderAll(){return this.isRendering||(this.isRendering=this.ticker.next(this.renderAndResetBound)),this}calcViewportBoundaries(){const t={},e=this.width,s=this.height,i=Ne(this.viewportTransform);return t.tl=Pe({x:0,y:0},i),t.br=Pe({x:e,y:s},i),t.tr=new gt(t.br.x,t.tl.y),t.bl=new gt(t.tl.x,t.br.y),this.vptCoords=t,t}cancelRequestedRender(){this.isRendering&&(this.ticker.cancel(this.isRendering),this.isRendering=0)}renderCanvas(t,e){const s=this.viewportTransform,i=this.clipPath;this.cancelRequestedRender(),this.calcViewportBoundaries(),this.clearContext(t),Ie.setImageSmoothing(t,this.imageSmoothingEnabled),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.interactive&&this.drawControls(t),i&&(i.canvas=this,i.shouldCache(),i._transformDone=!0,i.renderCache({forClipping:!0}),this.drawClipPathOnCanvas(t)),this._renderOverlay(t),this.controlsAboveOverlay&&this.interactive&&this.drawControls(t),this.fire("after:renderLower",{ctx:t}),this.fire("after:render",{ctx:t})}drawClipPathOnCanvas(t){const e=this.viewportTransform,s=this.clipPath;t.save(),t.transform(e[0],e[1],e[2],e[3],e[4],e[5]),t.globalCompositeOperation="destination-in",s.transform(t),t.scale(1/s.zoomX,1/s.zoomY),t.drawImage(s._cacheCanvas,-s.cacheTranslationX,-s.cacheTranslationY),t.restore()}_renderObjects(t,e){let s,i;for(s=0,i=e.length;s<i;++s)e[s]&&e[s].render(t)}_renderBackgroundOrOverlay(t,e){const s=this[e+"Color"],i=this[e+"Image"],n=this.viewportTransform,r=this[e+"Vpt"];if(s||i){if(s){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=s.toLive?s.toLive(t,this):s,r&&t.transform(n[0],n[1],n[2],n[3],n[4],n[5]),t.transform(1,0,0,1,s.offsetX||0,s.offsetY||0);const e=s.gradientTransform||s.patternTransform;e&&t.transform(e[0],e[1],e[2],e[3],e[4],e[5]),t.fill(),t.restore()}i&&(t.save(),r&&t.transform(n[0],n[1],n[2],n[3],n[4],n[5]),i.render(t),t.restore())}}_renderBackground(t){this._renderBackgroundOrOverlay(t,"background")}_renderOverlay(t){this._renderBackgroundOrOverlay(t,"overlay")}getCenter(){return{top:this.height/2,left:this.width/2}}centerObjectH(t){return this._centerObject(t,new gt(this.getCenter().left,t.getCenterPoint().y))}centerObjectV(t){return this._centerObject(t,new gt(t.getCenterPoint().x,this.getCenter().top))}centerObject(t){const e=this.getCenter();return this._centerObject(t,new gt(e.left,e.top))}viewportCenterObject(t){const e=this.getVpCenter();return this._centerObject(t,e)}viewportCenterObjectH(t){const e=this.getVpCenter();return this._centerObject(t,new gt(e.x,t.getCenterPoint().y)),this}viewportCenterObjectV(t){const e=this.getVpCenter();return this._centerObject(t,new gt(t.getCenterPoint().x,e.y))}getVpCenter(){const t=this.getCenter(),e=Ne(this.viewportTransform);return Pe({x:t.left,y:t.top},e)}_centerObject(t,e){return t.setPositionByOrigin(e,"center","center"),t.setCoords(),this.renderOnAddRemove&&this.requestRenderAll(),this}toDatalessJSON(t){return this.toDatalessObject(t)}toObject(t){return this._toObjectMethod("toObject",t)}toDatalessObject(t){return this._toObjectMethod("toDatalessObject",t)}_toObjectMethod(t,e){const s=this.clipPath,i={version:wt.version,objects:this._toObjects(t,e)};return s&&!s.excludeFromExport&&(i.clipPath=this._toObject(this.clipPath,t,e)),xe(i,this.__serializeBgOverlay(t,e)),Nt.populateWithProperties(this,i,e),i}_toObjects(t,e){return this._objects.filter((function(t){return!t.excludeFromExport})).map((function(s){return this._toObject(s,t,e)}),this)}_toObject(t,e,s){let i;this.includeDefaultValues||(i=t.includeDefaultValues,t.includeDefaultValues=!1);const n=t[e](s);return this.includeDefaultValues||(t.includeDefaultValues=i),n}__serializeBgOverlay(t,e){const s={},i=this.backgroundImage,n=this.overlayImage,r=this.backgroundColor,o=this.overlayColor;return r&&r.toObject?r.excludeFromExport||(s.background=r.toObject(e)):r&&(s.background=r),o&&o.toObject?o.excludeFromExport||(s.overlay=o.toObject(e)):o&&(s.overlay=o),i&&!i.excludeFromExport&&(s.backgroundImage=this._toObject(i,t,e)),n&&!n.excludeFromExport&&(s.overlayImage=this._toObject(n,t,e)),s}toSVG(t,e){t||(t={}),t.reviver=e;const s=[];return this._setSVGPreamble(s,t),this._setSVGHeader(s,t),this.clipPath&&s.push('<g clip-path="url(#'+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||this.width,i=e.height||this.height;let n,r='viewBox="0 0 '+this.width+" "+this.height+'" ';const o=Ps.NUM_FRACTION_DIGITS;e.viewBox?r='viewBox="'+e.viewBox.x+" "+e.viewBox.y+" "+e.viewBox.width+" "+e.viewBox.height+'" ':this.svgViewportTransformation&&(n=this.viewportTransform,r='viewBox="'+Ce(-n[4]/n[0],o)+" "+Ce(-n[5]/n[3],o)+" "+Ce(this.width/n[0],o)+" "+Ce(this.height/n[3],o)+'" '),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,'" ',r,'xml:space="preserve">\n',"<desc>Created with Fabric.js ",wt.version,"</desc>\n","<defs>\n",this.createSVGFontFacesMarkup(),this.createSVGRefElementsMarkup(),this.createSVGClipPathMarkup(e),"</defs>\n")}createSVGClipPathMarkup(t){const e=this.clipPath;return e?(e.clipPathId="CLIPPATH_"+Ps.__uid++,'<clipPath id="'+e.clipPathId+'" >\n'+this.clipPath.toClipPathSVG(t.reviver)+"</clipPath>\n"):""}createSVGRefElementsMarkup(){const t=this;return["background","overlay"].map((function(e){const s=t[e+"Color"];if(s&&s.toLive){const i=t[e+"Vpt"],n=t.viewportTransform,r={width:t.width/(i?n[0]:1),height:t.height/(i?n[3]:1)};return s.toSVG(r,{additionalTransform:i?Nt.matrixToSVG(n):""})}})).join("")}createSVGFontFacesMarkup(){let t="";const e={};let s,i,n,r,o,a,h,c,l;const d=wt.fontPaths,u=[];for(this._objects.forEach((function t(e){u.push(e),e._objects&&e._objects.forEach(t)})),c=0,l=u.length;c<l;c++)if(s=u[c],i=s.fontFamily,-1!==s.type.indexOf("text")&&!e[i]&&d[i]&&(e[i]=!0,s.styles))for(o in n=s.styles,n)for(h in r=n[o],r)a=r[h],i=a.fontFamily,!e[i]&&d[i]&&(e[i]=!0);for(const s in e)t+=["\t\t@font-face {\n","\t\t\tfont-family: '",s,"';\n","\t\t\tsrc: url('",d[s],"');\n","\t\t}\n"].join("");return t&&(t=['\t<style type="text/css">',"<![CDATA[\n",t,"]]>","</style>\n"].join("")),t}_setSVGObjects(t,e){let s,i,n;const r=this._objects;for(i=0,n=r.length;i<n;i++)s=r[i],!s.excludeFromExport&&this._setSVGObject(t,s,e)}_setSVGObject(t,e,s){t.push(e.toSVG(s))}_setSVGBgOverlayImage(t,e,s){this[e]&&!this[e].excludeFromExport&&this[e].toSVG&&t.push(this[e].toSVG(s))}_setSVGBgOverlayColor(t,e){const s=this[e+"Color"],i=this.viewportTransform,n=this.width,r=this.height;if(s)if(s.toLive){const o=s.repeat,a=Nt.invertTransform(i),h=this[e+"Vpt"]?Nt.matrixToSVG(a):"";t.push('<rect transform="'+h+" translate(",n/2,",",r/2,')"',' x="',s.offsetX-n/2,'" y="',s.offsetY-r/2,'" ','width="',"repeat-y"===o||"no-repeat"===o?s.source.width:n,'" height="',"repeat-x"===o||"no-repeat"===o?s.source.height:r,'" fill="url(#SVGID_'+s.id+')"',"></rect>\n")}else t.push('<rect x="0" y="0" width="100%" height="100%" ','fill="',s,'"',"></rect>\n")}sendToBack(t){if(!t)return this;const e=this._activeObject;let s,i,n;if(t===e&&"activeSelection"===t.type)for(n=e._objects,s=n.length;s--;)i=n[s],ke(this._objects,i),this._objects.unshift(i);else ke(this._objects,t),this._objects.unshift(t);return this.renderOnAddRemove&&this.requestRenderAll(),this}bringToFront(t){if(!t)return this;const e=this._activeObject;let s,i,n;if(t===e&&"activeSelection"===t.type)for(n=e._objects,s=0;s<n.length;s++)i=n[s],ke(this._objects,i),this._objects.push(i);else ke(this._objects,t),this._objects.push(t);return this.renderOnAddRemove&&this.requestRenderAll(),this}sendBackwards(t,e){if(!t)return this;const s=this._activeObject;let i,n,r,o,a,h=0;if(t===s&&"activeSelection"===t.type)for(a=s._objects,i=0;i<a.length;i++)n=a[i],r=this._objects.indexOf(n),r>0+h&&(o=r-1,ke(this._objects,n),this._objects.splice(o,0,n)),h++;else r=this._objects.indexOf(t),0!==r&&(o=this._findNewLowerIndex(t,r,e),ke(this._objects,t),this._objects.splice(o,0,t));return this.renderOnAddRemove&&this.requestRenderAll(),this}_findNewLowerIndex(t,e,s){let i,n;if(s){for(i=e,n=e-1;n>=0;--n)if(t.intersectsWithObject(this._objects[n])||t.isContainedWithinObject(this._objects[n])||this._objects[n].isContainedWithinObject(t)){i=n;break}}else i=e-1;return i}bringForward(t,e){if(!t)return this;const s=this._activeObject;let i,n,r,o,a,h=0;if(t===s&&"activeSelection"===t.type)for(a=s._objects,i=a.length;i--;)n=a[i],r=this._objects.indexOf(n),r<this._objects.length-1-h&&(o=r+1,ke(this._objects,n),this._objects.splice(o,0,n)),h++;else r=this._objects.indexOf(t),r!==this._objects.length-1&&(o=this._findNewUpperIndex(t,r,e),ke(this._objects,t),this._objects.splice(o,0,t));return this.renderOnAddRemove&&this.requestRenderAll(),this}_findNewUpperIndex(t,e,s){let i,n,r;if(s){for(i=e,n=e+1,r=this._objects.length;n<r;++n)if(t.intersectsWithObject(this._objects[n])||t.isContainedWithinObject(this._objects[n])||this._objects[n].isContainedWithinObject(t)){i=n;break}}else i=e+1;return i}moveTo(t,e){return ke(this._objects,t),this._objects.splice(e,0,t),this.renderOnAddRemove&&this.requestRenderAll()}removeLowerCanvas(){this.lowerCanvasEl&&(this.lowerCanvasEl.classList.remove("lower-canvas"),this.lowerCanvasEl.setAttribute("style",this._originalCanvasStyle),this.lowerCanvasEl.setAttribute("width",this.width),this.lowerCanvasEl.setAttribute("height",this.height),Ie.cleanUpJsdomNode(this.lowerCanvasEl),this.lowerCanvasEl=void 0)}dispose(){return this.stopLastRender(),this.forEachObject((function(t){t.dispose&&t.dispose()})),this._objects=[],this.backgroundImage&&this.backgroundImage.dispose&&this.backgroundImage.dispose(),this.backgroundImage=null,this.overlayImage&&this.overlayImage.dispose&&this.overlayImage.dispose(),this.overlayImage=null,this._iTextInstances=null,this.contextContainer=null,this.removeLowerCanvas(),this}toString(){return"#<fabric.Canvas ("+this.complexity()+"): { objects: "+this._objects.length+" }>"}static supports(t){const e=Le();if(!e||!e.getContext)return null;const s=e.getContext("2d");return s&&"setLineDash"===t?typeof s.setLineDash<"u":null}createPNGStream(){if(!St)return null;const t=Re(this.lowerCanvasEl);return t&&t.createPNGStream()}createJPEGStream(t){if(!St)return null;const e=Re(this.lowerCanvasEl);return e&&e.createJPEGStream(t)}}p(Me,"EMPTY_JSON",'{"objects": [], "background": "white"}'),pt(Me,[Kt,$t,le,class{toDataURL(t){t||(t={});var e=t.format||"png",s=t.quality||1,i=(t.multiplier||1)*(t.enableRetinaScaling?this.getRetinaScaling():1),n=this.toCanvasElement(i,t);return Nt.toDataURL(n,e,s)}toCanvasElement(t,e){t=t||1;var s=((e=e||{}).width||this.width)*t,i=(e.height||this.height)*t,n=this.getZoom(),r=this.width,o=this.height,a=n*t,h=this.viewportTransform,c=(h[4]-(e.left||0))*t,l=(h[5]-(e.top||0))*t,d=this.interactive,u=[a,0,0,a,c,l],p=this.enableRetinaScaling,g=Nt.createCanvasElement(),f=this.contextTop;return g.width=s,g.height=i,this.contextTop=null,this.enableRetinaScaling=!1,this.interactive=!1,this.viewportTransform=u,this.width=s,this.height=i,this.calcViewportBoundaries(),this.renderCanvas(g.getContext("2d"),this._objects),this.viewportTransform=h,this.width=r,this.height=o,this.calcViewportBoundaries(),this.interactive=d,this.enableRetinaScaling=p,this.contextTop=f,g}}]),Me.prototype.toJSON=Me.prototype.toObject;const Ye=Nt.degreesToRadians,Be=Nt.degreesToRadians;var He=["e","se","s","sw","w","nw","n","ne","e"],Ve=["ns","nesw","ew","nwse"],We="left",Ue="top",ze="right",Ge="bottom",Xe="center",qe={top:Ge,bottom:Ue,left:ze,right:We,center:Xe},Je=Nt.radiansToDegrees,Ke=Math.sign||function(t){return(t>0)-(t<0)||+t};function Ze(t,e){var s=t.angle+Je(Math.atan2(e.y,e.x))+360;return Math.round(s%360/45)}function Qe(t,e){var s=e.transform.target,i=s.canvas,n=zt.clone(e);n.target=s,i&&i.fire("object:"+t,n),s.fire(t,e)}function $e(t,e){var s=e.canvas,i=t[s.uniScaleKey];return s.uniformScaling&&!i||!s.uniformScaling&&i}function ts(t){return t.originX===Xe&&t.originY===Xe}function es(t,e,s){var i=t.lockScalingX,n=t.lockScalingY;return!!(i&&n||!e&&(i||n)&&s||i&&"x"===e||n&&"y"===e)}function ss(t,e,s,i){return{e:t,transform:e,pointer:{x:s,y:i}}}function is(t){return function(e,s,i,n){var r=s.target,o=r.getCenterPoint(),a=r.translateToOriginPoint(o,s.originX,s.originY),h=t(e,s,i,n);return r.setPositionByOrigin(a,s.originX,s.originY),h}}function ns(t,e){return function(s,i,n,r){var o=e(s,i,n,r);return o&&Qe(t,ss(s,i,n,r)),o}}function rs(t,e,s,i,n){var r=t.target,o=r.controls[t.corner],a=r.canvas.getZoom(),h=r.padding/a,c=r.toLocalPoint(new gt(i,n),e,s);return c.x>=h&&(c.x-=h),c.x<=-h&&(c.x+=h),c.y>=h&&(c.y-=h),c.y<=h&&(c.y+=h),c.x-=o.offsetX,c.y-=o.offsetY,c}function os(t){return t.flipX!==t.flipY}function as(t,e,s,i,n){if(0!==t[e]){var r=n/t._getTransformedDimensions()[i]*t[s];t.set(s,r)}}function hs(t,e,s,i){var n,r=e.target,o=r._getTransformedDimensions(0,r.skewY),a=rs(e,e.originX,e.originY,s,i),h=Math.abs(2*a.x)-o.x,c=r.skewX;h<2?n=0:(n=Je(Math.atan2(h/r.scaleX,o.y/r.scaleY)),e.originX===We&&e.originY===Ge&&(n=-n),e.originX===ze&&e.originY===Ue&&(n=-n),os(r)&&(n=-n));var l=c!==n;if(l){var d=r._getTransformedDimensions().y;r.set("skewX",n),as(r,"skewY","scaleY","y",d)}return l}function cs(t,e,s,i){var n,r=e.target,o=r._getTransformedDimensions(r.skewX,0),a=rs(e,e.originX,e.originY,s,i),h=Math.abs(2*a.y)-o.y,c=r.skewY;h<2?n=0:(n=Je(Math.atan2(h/r.scaleY,o.x/r.scaleX)),e.originX===We&&e.originY===Ge&&(n=-n),e.originX===ze&&e.originY===Ue&&(n=-n),os(r)&&(n=-n));var l=c!==n;if(l){var d=r._getTransformedDimensions().x;r.set("skewY",n),as(r,"skewX","scaleX","x",d)}return l}function ls(t,e,s,i,n){var r,o,a,h;n=n||{};var c,l,d,u,p,g,f=e.target,_=f.lockScalingX,O=f.lockScalingY,m=n.by,v=$e(t,f),A=es(f,m,v),b=e.gestureScale;if(A)return!1;if(b)l=e.scaleX*b,d=e.scaleY*b;else{if(c=rs(e,e.originX,e.originY,s,i),p="y"!==m?Ke(c.x):1,g="x"!==m?Ke(c.y):1,e.signX||(e.signX=p),e.signY||(e.signY=g),f.lockScalingFlip&&(e.signX!==p||e.signY!==g))return!1;if(u=f._getTransformedDimensions(),v&&!m){var T=Math.abs(c.x)+Math.abs(c.y),y=e.original,S=T/(Math.abs(u.x*y.scaleX/f.scaleX)+Math.abs(u.y*y.scaleY/f.scaleY));l=y.scaleX*S,d=y.scaleY*S}else l=Math.abs(c.x*f.scaleX/u.x),d=Math.abs(c.y*f.scaleY/u.y);ts(e)&&(l*=2,d*=2),e.signX!==p&&"y"!==m&&(e.originX=qe[e.originX],l*=-1,e.signX=p),e.signY!==g&&"x"!==m&&(e.originY=qe[e.originY],d*=-1,e.signY=g)}var w=f.scaleX,I=f.scaleY;return m?("x"===m&&!(null!=(a=f.isScaleLimited)&&a.call(f,"scaleX",l))&&f.set("scaleX",l),"y"===m&&!(null!=(h=f.isScaleLimited)&&h.call(f,"scaleY",d))&&f.set("scaleY",d)):!(null!=(r=f.isScaleLimited)&&r.call(f,"scaleX",l))&&!(null!=(o=f.isScaleLimited)&&o.call(f,"scaleY",d))&&(!_&&f.set("scaleX",l),!O&&f.set("scaleY",d)),w!==f.scaleX||I!==f.scaleY}const ds={scaleCursorStyleHandler:function(t,e,s){var i=$e(t,s),n="";if(0!==e.x&&0===e.y?n="x":0===e.x&&0!==e.y&&(n="y"),es(s,n,i))return"not-allowed";var r=Ze(s,e);return He[r]+"-resize"},skewCursorStyleHandler:function(t,e,s){if(0!==e.x&&s.lockSkewingY||0!==e.y&&s.lockSkewingX)return"not-allowed";var i=Ze(s,e)%4;return Ve[i]+"-resize"},scaleSkewCursorStyleHandler:function(t,e,s){return t[s.canvas.altActionKey]?ds.skewCursorStyleHandler(t,e,s):ds.scaleCursorStyleHandler(t,e,s)},rotationWithSnapping:ns("rotating",is((function(t,e,s,i){var n=e,r=n.target,o=r.translateToOriginPoint(r.getCenterPoint(),n.originX,n.originY);if(r.lockRotation)return!1;var a,h=Math.atan2(n.ey-o.y,n.ex-o.x),c=Math.atan2(i-o.y,s-o.x),l=Je(c-h+n.theta);if(r.snapAngle>0){var d=r.snapAngle,u=r.snapThreshold||d,p=Math.ceil(l/d)*d,g=Math.floor(l/d)*d;Math.abs(l-g)<u?l=g:Math.abs(l-p)<u&&(l=p)}return l<0&&(l=360+l),l%=360,a=r.angle!==l,r.angle=l,a}))),scalingEqually:ns("scaling",is((function(t,e,s,i){return ls(t,e,s,i)}))),scalingX:ns("scaling",is((function(t,e,s,i){return ls(t,e,s,i,{by:"x"})}))),scalingY:ns("scaling",is((function(t,e,s,i){return ls(t,e,s,i,{by:"y"})}))),scalingYOrSkewingX:function(t,e,s,i){return t[e.target.canvas.altActionKey]?ds.skewHandlerX(t,e,s,i):ds.scalingY(t,e,s,i)},scalingXOrSkewingY:function(t,e,s,i){return t[e.target.canvas.altActionKey]?ds.skewHandlerY(t,e,s,i):ds.scalingX(t,e,s,i)},changeWidth:ns("resizing",is((function(t,e,s,i){var n=e.target,r=rs(e,e.originX,e.originY,s,i),o=n.strokeWidth/(n.strokeUniform?n.scaleX:1),a=ts(e)?2:1,h=n.width,c=Math.abs(r.x*a/n.scaleX)-o;return n.set("width",Math.max(c,0)),h!==c}))),skewHandlerX:function(t,e,s,i){var n,r=e.target,o=r.skewX,a=e.originY;return!r.lockSkewingX&&(0===o?n=rs(e,Xe,Xe,s,i).x>0?We:ze:(o>0&&(n=a===Ue?We:ze),o<0&&(n=a===Ue?ze:We),os(r)&&(n=n===We?ze:We)),e.originX=n,ns("skewing",is(hs))(t,e,s,i))},skewHandlerY:function(t,e,s,i){var n,r=e.target,o=r.skewY,a=e.originX;return!r.lockSkewingY&&(0===o?n=rs(e,Xe,Xe,s,i).y>0?Ue:Ge:(o>0&&(n=a===We?Ue:Ge),o<0&&(n=a===We?Ge:Ue),os(r)&&(n=n===Ue?Ge:Ue)),e.originY=n,ns("skewing",is(cs))(t,e,s,i))},dragHandler:function(t,e,s,i){var n=e.target,r=s-e.offsetX,o=i-e.offsetY,a=!n.get("lockMovementX")&&n.left!==r,h=!n.get("lockMovementY")&&n.top!==o;return a&&n.set("left",r),h&&n.set("top",o),(a||h)&&Qe("moving",ss(t,e,s,i)),a||h},scaleOrSkewActionName:function(t,e,s){var i=t[s.canvas.altActionKey];return 0===e.x?i?"skewX":"scaleY":0===e.y?i?"skewY":"scaleX":void 0},rotationStyleHandler:function(t,e,s){return s.lockRotation?"not-allowed":e.cursorStyle},fireEvent:Qe,wrapWithFixedAnchor:is,wrapWithFireEvent:ns,getLocalPoint:rs,renderCircleControl:function(t,e,s,i,n){i=i||{};var r,o=this.sizeX||i.cornerSize||n.cornerSize,a=this.sizeY||i.cornerSize||n.cornerSize,h=typeof i.transparentCorners<"u"?i.transparentCorners:n.transparentCorners,c=h?"stroke":"fill",l=!h&&(i.cornerStrokeColor||n.cornerStrokeColor),d=e,u=s;t.save(),t.fillStyle=i.cornerColor||n.cornerColor,t.strokeStyle=i.cornerStrokeColor||n.cornerStrokeColor,o>a?(r=o,t.scale(1,a/o),u=s*o/a):a>o?(r=a,t.scale(o/a,1),d=e*a/o):r=o,t.lineWidth=1,t.beginPath(),t.arc(d,u,r/2,0,2*Math.PI,!1),t[c](),l&&t.stroke(),t.restore()},renderSquareControl:function(t,e,s,i,n){i=i||{};var r=this.sizeX||i.cornerSize||n.cornerSize,o=this.sizeY||i.cornerSize||n.cornerSize,a=typeof i.transparentCorners<"u"?i.transparentCorners:n.transparentCorners,h=a?"stroke":"fill",c=!a&&(i.cornerStrokeColor||n.cornerStrokeColor),l=r/2,d=o/2;t.save(),t.fillStyle=i.cornerColor||n.cornerColor,t.strokeStyle=i.cornerStrokeColor||n.cornerStrokeColor,t.lineWidth=1,t.translate(e,s),t.rotate(Be(n.angle)),t[h+"Rect"](-l,-d,r,o),c&&t.strokeRect(-l,-d,r,o),t.restore()}};function us(t,e,s,i){return!1}function ps(t,e,s){return e.cursorStyle}class gs{constructor(t){p(this,"visible",!0),p(this,"actionName","scale"),p(this,"angle",0),p(this,"x",0),p(this,"y",0),p(this,"offsetX",0),p(this,"offsetY",0),p(this,"sizeX",null),p(this,"sizeY",null),p(this,"touchSizeX",null),p(this,"touchSizeY",null),p(this,"cursorStyle","crosshair"),p(this,"withConnection",!1),p(this,"actionHandlerImpl"),p(this,"cursorStyleHandlerImpl"),p(this,"actionHandler",((t,e,s,i)=>{var n;return!(null==(n=null==e?void 0:e.target)||!n.canvas)&&this.actionHandlerImpl(t,e,s,i)})),p(this,"cursorStyleHandler",((t,e,s)=>s.canvas?this.cursorStyleHandlerImpl(t,e,s):e.cursorStyle));const e=t,{actionHandler:s,cursorStyleHandler:i}=e,n=u(e,["actionHandler","cursorStyleHandler"]);for(var r in this.actionHandlerImpl=s||us,this.cursorStyleHandlerImpl=i||ps,n)this[r]=t[r]}mouseDownHandler(){}mouseUpHandler(){}getActionHandler(){return this.actionHandler}getMouseDownHandler(){return this.mouseDownHandler}getMouseUpHandler(){return this.mouseUpHandler}getActionName(t,e){return e.actionName}getVisibility(t,e){var s=t._controlsVisibility;return s&&typeof s[e]<"u"?s[e]:this.visible}setVisibility(t){this.visible=t}positionHandler(t,e){return Nt.transformPoint({x:this.x*t.x+this.offsetX,y:this.y*t.y+this.offsetY},e)}calcCornerCoords(t,e,s,i,n){var r,o,a,h,c=n?this.touchSizeX:this.sizeX,l=n?this.touchSizeY:this.sizeY;if(c&&l&&c!==l){var d=Math.atan2(l,c),u=Math.sqrt(c*c+l*l)/2,p=d-Nt.degreesToRadians(t),g=Math.PI/2-d-Nt.degreesToRadians(t);r=u*Nt.cos(p),o=u*Nt.sin(p),a=u*Nt.cos(g),h=u*Nt.sin(g)}else u=.7071067812*(c&&l?c:e),p=Nt.degreesToRadians(45-t),r=a=u*Nt.cos(p),o=h=u*Nt.sin(p);return{tl:{x:s-h,y:i-a},tr:{x:s+r,y:i-o},bl:{x:s-r,y:i+o},br:{x:s+h,y:i+a}}}render(t,e,s,i,n){"circle"===((i=i||{}).cornerStyle||n.cornerStyle)?ds.renderCircleControl.call(this,t,e,s,i,n):ds.renderSquareControl.call(this,t,e,s,i,n)}}const fs=ds.scaleSkewCursorStyleHandler,_s=ds.scaleCursorStyleHandler,Os=ds.scalingEqually,ms=ds.scalingYOrSkewingX,vs=ds.scalingXOrSkewingY,As=ds.scaleOrSkewActionName;function bs(t,e,s){var i="rgba("+parseInt(t[0]+s*(e[0]-t[0]),10)+","+parseInt(t[1]+s*(e[1]-t[1]),10)+","+parseInt(t[2]+s*(e[2]-t[2]),10);return(i+=","+(t&&e?parseFloat(t[3]+s*(e[3]-t[3])):1))+")"}function Ts(t,e,s,i){var n=new ut(t).getSource(),r=new ut(e).getSource(),o=i.onComplete,a=i.onChange;return i=i||{},ne(Object.assign(i,{duration:s||500,startValue:n,endValue:r,byValue:r,easing:function(t,e,s,n){return bs(e,s,i.colorEasing?i.colorEasing(t,n):1-Math.cos(t/n*(Math.PI/2)))},onComplete:function(t,e,s){if(o)return o(bs(r,r,0),e,s)},onChange:function(t,e,s){if(a){if(Array.isArray(t))return a(bs(t,t,0),e,s);a(t,e,s)}}}))}const ys=Nt.toFixed,Ss=class t{constructor(t){for(var e in p(this,"color","rgb(0,0,0)"),p(this,"blur",0),p(this,"offsetX",0),p(this,"offsetY",0),p(this,"affectStroke",!1),p(this,"includeDefaultValues",!0),p(this,"nonScaling",!1),p(this,"id"),"string"==typeof t&&(t=this._parseShadow(t)),this.id=""+Ps.__uid++,t)this[e]=t[e]}_parseShadow(e){var s=e.trim(),i=t.reOffsetsAndBlur.exec(s)||[];return{color:(s.replace(t.reOffsetsAndBlur,"")||"rgb(0,0,0)").trim(),offsetX:parseFloat(i[1])||0,offsetY:parseFloat(i[2])||0,blur:parseFloat(i[3])||0}}toString(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")}toSVG(t){var e=40,s=40,i=Ps.NUM_FRACTION_DIGITS,n=Nt.rotateVector({x:this.offsetX,y:this.offsetY},Nt.degreesToRadians(-t.angle)),r=new ut(this.color);return t.width&&t.height&&(e=100*ys((Math.abs(n.x)+this.blur)/t.width,i)+20,s=100*ys((Math.abs(n.y)+this.blur)/t.height,i)+20),t.flipX&&(n.x*=-1),t.flipY&&(n.y*=-1),'<filter id="SVGID_'+this.id+'" y="-'+s+'%" height="'+(100+2*s)+'%" x="-'+e+'%" width="'+(100+2*e)+'%" >\n\t<feGaussianBlur in="SourceAlpha" stdDeviation="'+ys(this.blur?this.blur/2:0,i)+'"></feGaussianBlur>\n\t<feOffset dx="'+ys(n.x,i)+'" dy="'+ys(n.y,i)+'" result="oBlur" ></feOffset>\n\t<feFlood flood-color="'+r.toRgb()+'" flood-opacity="'+r.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(){if(this.includeDefaultValues)return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY,affectStroke:this.affectStroke,nonScaling:this.nonScaling};var e={},s=t.prototype;return["color","blur","offsetX","offsetY","affectStroke","nonScaling"].forEach((function(t){this[t]!==s[t]&&(e[t]=this[t])}),this),e}};p(Ss,"reOffsetsAndBlur",/(?:\s|^)(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(\d+(?:\.\d*)?(?:px)?)?(?:\s?|$)(?:$|\s)/);let ws=Ss;const Is=Nt.toFixed,xs=nt.capitalize,Es=Nt.degreesToRadians,ks={type:"object",originX:"left",originY:"top",top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:!1,flipY:!1,opacity:1,angle:0,skewX:0,skewY:0,cornerSize:13,touchCornerSize:24,transparentCorners:!0,hoverCursor:null,moveCursor:null,padding:0,borderColor:"rgb(178,204,255)",borderDashArray:null,cornerColor:"rgb(178,204,255)",cornerStrokeColor:null,cornerStyle:"rect",cornerDashArray:null,centeredScaling:!1,centeredRotation:!0,fill:"rgb(0,0,0)",fillRule:"nonzero",globalCompositeOperation:"source-over",backgroundColor:"",selectionBackgroundColor:"",stroke:null,strokeWidth:1,strokeDashArray:null,strokeDashOffset:0,strokeLineCap:"butt",strokeLineJoin:"miter",strokeMiterLimit:4,shadow:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,minScaleLimit:0,selectable:!0,evented:!0,visible:!0,hasControls:!0,hasBorders:!0,perPixelTargetFind:!1,includeDefaultValues:!0,lockMovementX:!1,lockMovementY:!1,lockRotation:!1,lockScalingX:!1,lockScalingY:!1,lockSkewingX:!1,lockSkewingY:!1,lockScalingFlip:!1,excludeFromExport:!1,objectCaching:!St,statefullCache:!1,noScaleCache:!0,strokeUniform:!1,dirty:!0,__corner:0,paintFirst:"fill",activeOn:"down",stateProperties:"top left width height scaleX scaleY flipX flipY originX originY transformMatrix stroke strokeWidth strokeDashArray strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit angle opacity fill globalCompositeOperation shadow visible backgroundColor skewX skewY fillRule paintFirst clipPath strokeUniform".split(" "),cacheProperties:"fill stroke strokeWidth strokeDashArray width height paintFirst strokeUniform strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit backgroundColor clipPath".split(" "),colorProperties:"fill stroke backgroundColor".split(" "),clipPath:void 0,inverted:!1,absolutePositioned:!1,isText:!1},Cs=class t{static get NUM_FRACTION_DIGITS(){return ft.NUM_FRACTION_DIGITS}static set NUM_FRACTION_DIGITS(t){ft.NUM_FRACTION_DIGITS=t}constructor(t){t&&this.setOptions(t)}_createCacheCanvas(){this._cacheProperties={},this._cacheCanvas=Nt.createCanvasElement(),this._cacheContext=this._cacheCanvas.getContext("2d"),this._updateCacheCanvas(),this.dirty=!0}_limitCacheSize(t){var e=wt.perfLimitSizeTotal,s=t.width,i=t.height,n=wt.maxCacheSideLimit,r=wt.minCacheSideLimit;if(s<=n&&i<=n&&s*i<=e)return s<r&&(t.width=r),i<r&&(t.height=r),t;var o=s/i,a=Nt.limitDimsByArea(o,e),h=Nt.capValue,c=h(r,a.x,n),l=h(r,a.y,n);return s>c&&(t.zoomX/=s/c,t.width=c,t.capped=!0),i>l&&(t.zoomY/=i/l,t.height=l,t.capped=!0),t}_getCacheCanvasDimensions(){var t=this.getTotalObjectScaling(),e=this._getTransformedDimensions(0,0),s=e.x*t.scaleX/this.scaleX,i=e.y*t.scaleY/this.scaleY;return{width:s+2,height:i+2,zoomX:t.scaleX,zoomY:t.scaleY,x:s,y:i}}_updateCacheCanvas(){var t=this.canvas;if(this.noScaleCache&&t&&t._currentTransform){var e=t._currentTransform.target,s=t._currentTransform.action;if(this===e&&s.slice&&"scale"===s.slice(0,5))return!1}var i,n,r=this._cacheCanvas,o=this._limitCacheSize(this._getCacheCanvasDimensions()),a=wt.minCacheSideLimit,h=o.width,c=o.height,l=o.zoomX,d=o.zoomY,u=h!==this.cacheWidth||c!==this.cacheHeight,p=this.zoomX!==l||this.zoomY!==d,g=u||p,f=0,_=0,O=!1;if(u){var m=this._cacheCanvas.width,v=this._cacheCanvas.height,A=h>m||c>v;O=A||(h<.9*m||c<.9*v)&&m>a&&v>a,A&&!o.capped&&(h>a||c>a)&&(f=.1*h,_=.1*c)}return this.isText&&this.path&&(g=!0,O=!0,f+=this.getHeightOfLine(0)*this.zoomX,_+=this.getHeightOfLine(0)*this.zoomY),!!g&&(O?(r.width=Math.ceil(h+f),r.height=Math.ceil(c+_)):(this._cacheContext.setTransform(1,0,0,1,0,0),this._cacheContext.clearRect(0,0,r.width,r.height)),i=o.x/2,n=o.y/2,this.cacheTranslationX=Math.round(r.width/2-i)+i,this.cacheTranslationY=Math.round(r.height/2-n)+n,this.cacheWidth=h,this.cacheHeight=c,this._cacheContext.translate(this.cacheTranslationX,this.cacheTranslationY),this._cacheContext.scale(l,d),this.zoomX=l,this.zoomY=d,!0)}setOptions(t){t&&this._setOptions(t)}transform(t){var 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])}toObject(e){var s=t.NUM_FRACTION_DIGITS,i={type:this.type,version:wt.version,originX:this.originX,originY:this.originY,left:Is(this.left,s),top:Is(this.top,s),width:Is(this.width,s),height:Is(this.height,s),fill:this.fill&&this.fill.toObject?this.fill.toObject():this.fill,stroke:this.stroke&&this.stroke.toObject?this.stroke.toObject():this.stroke,strokeWidth:Is(this.strokeWidth,s),strokeDashArray:this.strokeDashArray?this.strokeDashArray.concat():this.strokeDashArray,strokeLineCap:this.strokeLineCap,strokeDashOffset:this.strokeDashOffset,strokeLineJoin:this.strokeLineJoin,strokeUniform:this.strokeUniform,strokeMiterLimit:Is(this.strokeMiterLimit,s),scaleX:Is(this.scaleX,s),scaleY:Is(this.scaleY,s),angle:Is(this.angle,s),flipX:this.flipX,flipY:this.flipY,opacity:Is(this.opacity,s),shadow:this.shadow&&this.shadow.toObject?this.shadow.toObject():this.shadow,visible:this.visible,backgroundColor:this.backgroundColor,fillRule:this.fillRule,paintFirst:this.paintFirst,globalCompositeOperation:this.globalCompositeOperation,skewX:Is(this.skewX,s),skewY:Is(this.skewY,s)};return this.clipPath&&!this.clipPath.excludeFromExport&&(i.clipPath=this.clipPath.toObject(e),i.clipPath.inverted=this.clipPath.inverted,i.clipPath.absolutePositioned=this.clipPath.absolutePositioned),Nt.populateWithProperties(this,i,e),this.includeDefaultValues||(i=this._removeDefaultValues(i)),i}toDatalessObject(t){return this.toObject(t)}_removeDefaultValues(t){var e=ot.getByObjType(t.type).prototype;return e.stateProperties.forEach((function(s){"left"!==s&&"top"!==s&&(t[s]===e[s]&&delete t[s],"[object Array]"===Object.prototype.toString.call(t[s])&&"[object Array]"===Object.prototype.toString.call(e[s])&&0===t[s].length&&0===e[s].length&&delete t[s])})),t}toString(){return"#<fabric."+xs(this.type)+">"}getObjectScaling(){if(!this.group)return{scaleX:this.scaleX,scaleY:this.scaleY};var t=Nt.qrDecompose(this.calcTransformMatrix());return{scaleX:Math.abs(t.scaleX),scaleY:Math.abs(t.scaleY)}}getTotalObjectScaling(){var t=this.getObjectScaling(),e=t.scaleX,s=t.scaleY;if(this.canvas){var i=this.canvas.getZoom(),n=this.canvas.getRetinaScaling();e*=i*n,s*=i*n}return{scaleX:e,scaleY:s}}getObjectOpacity(){var t=this.opacity;return this.group&&(t*=this.group.getObjectOpacity()),t}_set(t,e){var s="scaleX"===t||"scaleY"===t,i=this[t]!==e,n=!1;return s&&(e=this._constrainScale(e)),"scaleX"===t&&e<0?(this.flipX=!this.flipX,e*=-1):"scaleY"===t&&e<0?(this.flipY=!this.flipY,e*=-1):"shadow"!==t||!e||e instanceof ws?"dirty"===t&&this.group&&this.group.set("dirty",e):e=new ws(e),this[t]=e,i&&(n=this.group&&this.group.isOnACache(),this.cacheProperties.indexOf(t)>-1?(this.dirty=!0,n&&this.group.set("dirty",!0)):n&&this.stateProperties.indexOf(t)>-1&&this.group.set("dirty",!0)),this}setOnGroup(...t){}getViewportTransform(){return this.canvas&&this.canvas.viewportTransform?this.canvas.viewportTransform:wt.iMatrix.concat()}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),this.shouldCache()?(this.renderCache(),this.drawCacheOnCanvas(t)):(this._removeCacheCanvas(),this.dirty=!1,this.drawObject(t),this.objectCaching&&this.statefullCache&&this.saveState({propertySet:"cacheProperties"})),t.restore())}renderCache(t){t=t||{},this._cacheCanvas||this._createCacheCanvas(),this.isCacheDirty()&&(this.statefullCache&&this.saveState({propertySet:"cacheProperties"}),this.drawObject(this._cacheContext,t.forClipping),this.dirty=!1)}_removeCacheCanvas(){this._cacheCanvas=null,this.cacheWidth=0,this.cacheHeight=0}hasStroke(){return this.stroke&&"transparent"!==this.stroke&&0!==this.strokeWidth}hasFill(){return this.fill&&"transparent"!==this.fill}needsItsOwnCache(){return!!("stroke"===this.paintFirst&&this.hasFill()&&this.hasStroke()&&"object"==typeof this.shadow||this.clipPath)}shouldCache(){return this.ownCaching=this.needsItsOwnCache()||this.objectCaching&&(!this.group||!this.group.isOnACache()),this.ownCaching}willDrawShadow(){return!!this.shadow&&(0!==this.shadow.offsetX||0!==this.shadow.offsetY)}drawClipPathOnCache(t){var e=this.clipPath;if(t.save(),e.inverted?t.globalCompositeOperation="destination-out":t.globalCompositeOperation="destination-in",e.absolutePositioned){var s=Nt.invertTransform(this.calcTransformMatrix());t.transform(s[0],s[1],s[2],s[3],s[4],s[5])}e.transform(t),t.scale(1/e.zoomX,1/e.zoomY),t.drawImage(e._cacheCanvas,-e.cacheTranslationX,-e.cacheTranslationY),t.restore()}drawObject(t,e){var s=this.fill,i=this.stroke;e?(this.fill="black",this.stroke="",this._setClippingProperties(t)):this._renderBackground(t),this._render(t),this._drawClipPath(t),this.fill=s,this.stroke=i}_drawClipPath(t){var e=this.clipPath;e&&(e.canvas=this.canvas,e.shouldCache(),e._transformDone=!0,e.renderCache({forClipping:!0}),this.drawClipPathOnCache(t))}drawCacheOnCanvas(t){t.scale(1/this.zoomX,1/this.zoomY),t.drawImage(this._cacheCanvas,-this.cacheTranslationX,-this.cacheTranslationY)}isCacheDirty(t){if(this.isNotVisible())return!1;if(this._cacheCanvas&&!t&&this._updateCacheCanvas())return!0;if(this.dirty||this.clipPath&&this.clipPath.absolutePositioned||this.statefullCache&&this.hasStateChanged("cacheProperties")){if(this._cacheCanvas&&!t){var e=this.cacheWidth/this.zoomX,s=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-e/2,-s/2,e,s)}return!0}return!1}_renderBackground(t){if(this.backgroundColor){var 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){var s=e.stroke;s&&(t.lineWidth=e.strokeWidth,t.lineCap=e.strokeLineCap,t.lineDashOffset=e.strokeDashOffset,t.lineJoin=e.strokeLineJoin,t.miterLimit=e.strokeMiterLimit,s.toLive?"percentage"===s.gradientUnits||s.gradientTransform||s.patternTransform?this._applyPatternForTransformedGradient(t,s):(t.strokeStyle=s.toLive(t,this),this._applyPatternGradientTransform(t,s)):t.strokeStyle=e.stroke)}_setFillStyles(t,e){var s=e.fill;s&&(s.toLive?(t.fillStyle=s.toLive(t,this),this._applyPatternGradientTransform(t,e.fill)):t.fillStyle=s)}_setClippingProperties(t){t.globalAlpha=1,t.strokeStyle="transparent",t.fillStyle="#000000"}_setLineDash(t,e){!e||0===e.length||(1&e.length&&e.push.apply(e,e),t.setLineDash(e))}_renderControls(t,e){var s,i,n,r=this.getViewportTransform(),o=this.calcTransformMatrix();i=typeof(e=e||{}).hasBorders<"u"?e.hasBorders:this.hasBorders,n=typeof e.hasControls<"u"?e.hasControls:this.hasControls,o=Nt.multiplyTransformMatrices(r,o),s=Nt.qrDecompose(o),t.save(),t.translate(s.translateX,s.translateY),t.lineWidth=1*this.borderScaleFactor,this.group||(t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1),t.rotate(Es(s.angle)),e.forActiveSelection||this.group?i&&this.drawBordersInGroup(t,s,e):i&&this.drawBorders(t,e),n&&this.drawControls(t,e),t.restore()}_setShadow(t){if(this.shadow){var e,s=this.shadow,i=this.canvas,n=i&&i.viewportTransform[0]||1,r=i&&i.viewportTransform[3]||1;e=s.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),i&&i._isRetinaScaling()&&(n*=wt.devicePixelRatio,r*=wt.devicePixelRatio),t.shadowColor=s.color,t.shadowBlur=s.blur*wt.browserShadowBlurConstant*(n+r)*(e.scaleX+e.scaleY)/4,t.shadowOffsetX=s.offsetX*n*e.scaleX,t.shadowOffsetY=s.offsetY*r*e.scaleY}}_removeShadow(t){this.shadow&&(t.shadowColor="",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0)}_applyPatternGradientTransform(t,e){if(!e||!e.toLive)return{offsetX:0,offsetY:0};var s=e.gradientTransform||e.patternTransform,i=-this.width/2+e.offsetX||0,n=-this.height/2+e.offsetY||0;return"percentage"===e.gradientUnits?t.transform(this.width,0,0,this.height,i,n):t.transform(1,0,0,1,i,n),s&&t.transform(s[0],s[1],s[2],s[3],s[4],s[5]),{offsetX:i,offsetY:n}}_renderPaintInOrder(t){"stroke"===this.paintFirst?(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&&this.group){var e=this.getObjectScaling();t.scale(1/e.scaleX,1/e.scaleY)}else this.strokeUniform&&t.scale(1/this.scaleX,1/this.scaleY);this._setLineDash(t,this.strokeDashArray),this._setStrokeStyles(t,this),t.stroke(),t.restore()}}_applyPatternForTransformedGradient(t,e){var s,i=this._limitCacheSize(this._getCacheCanvasDimensions()),n=Nt.createCanvasElement(),r=this.canvas.getRetinaScaling(),o=i.x/this.scaleX/r,a=i.y/this.scaleY/r;n.width=o,n.height=a,(s=n.getContext("2d")).beginPath(),s.moveTo(0,0),s.lineTo(o,0),s.lineTo(o,a),s.lineTo(0,a),s.closePath(),s.translate(o/2,a/2),s.scale(i.zoomX/this.scaleX/r,i.zoomY/this.scaleY/r),this._applyPatternGradientTransform(s,e),s.fillStyle=e.toLive(t),s.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=s.createPattern(n,"no-repeat")}_findCenterFromElement(){return{x:this.left+this.width/2,y:this.top+this.height/2}}_assignTransformMatrixProps(){if(this.transformMatrix){var t=Nt.qrDecompose(this.transformMatrix);this.flipX=!1,this.flipY=!1,this.set("scaleX",t.scaleX),this.set("scaleY",t.scaleY),this.angle=t.angle,this.skewX=t.skewX,this.skewY=0}}_removeTransformMatrix(t){var e=this._findCenterFromElement();this.transformMatrix&&(this._assignTransformMatrixProps(),e=Nt.transformPoint(e,this.transformMatrix)),this.transformMatrix=null,t&&(this.scaleX*=t.scaleX,this.scaleY*=t.scaleY,this.cropX=t.cropX,this.cropY=t.cropY,e.x+=t.offsetLeft,e.y+=t.offsetTop,this.width=t.width,this.height=t.height),this.setPositionByOrigin(e,"center","center")}cloneAsImage(t,e){const s=this.toCanvasElement(e),i=ot.get(rt.Image);return t&&i&&t(new i(s)),this}toCanvasElement(t){t||(t={});const e=Nt.saveObjectTransform(this),s=this.group,i=this.shadow,n=Math.abs,r=(t.multiplier||1)*(t.enableRetinaScaling?wt.devicePixelRatio:1);delete this.group,t.withoutTransform&&Nt.resetObjectTransform(this),t.withoutShadow&&(this.shadow=null);var o,a,h,c,l=Nt.createCanvasElement(),d=this.getBoundingRect(!0,!0),u=this.shadow,p={x:0,y:0};u&&(a=u.blur,o=u.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),p.x=2*Math.round(n(u.offsetX)+a)*n(o.scaleX),p.y=2*Math.round(n(u.offsetY)+a)*n(o.scaleY)),h=d.width+p.x,c=d.height+p.y,l.width=Math.ceil(h),l.height=Math.ceil(c);var g=new Me(l,{enableRetinaScaling:!1,renderOnAddRemove:!1,skipOffscreen:!1});"jpeg"===t.format&&(g.backgroundColor="#fff"),this.setPositionByOrigin(new gt(g.width/2,g.height/2),"center","center");var f=this.canvas;g.add(this);var _=g.toCanvasElement(r||1,t);return this.shadow=i,this.set("canvas",f),s&&(this.group=s),this.set(e).setCoords(),g._objects=[],g.dispose(),g=null,_}toDataURL(t){return t||(t={}),Nt.toDataURL(this.toCanvasElement(t),t.format||"png",t.quality||1)}isType(t){return this.type===t}complexity(){return 1}toJSON(t){return this.toObject(t)}rotate(t){var e=("center"!==this.originX||"center"!==this.originY)&&this.centeredRotation;return e&&this._setOriginToCenter(),this.set("angle",t),e&&this._resetOrigin(),this}centerH(){return this.canvas&&this.canvas.centerObjectH(this),this}viewportCenterH(){return this.canvas&&this.canvas.viewportCenterObjectH(this),this}centerV(){return this.canvas&&this.canvas.centerObjectV(this),this}viewportCenterV(){return this.canvas&&this.canvas.viewportCenterObjectV(this),this}center(){return this.canvas&&this.canvas.centerObject(this),this}viewportCenter(){return this.canvas&&this.canvas.viewportCenterObject(this),this}getLocalPointer(t,e){e=e||this.canvas.getPointer(t);var s=new gt(e.x,e.y),i=this._getLeftTopCoords();return this.angle&&(s=Nt.rotatePoint(s,i,Es(-this.angle))),{x:s.x-i.x,y:s.y-i.y}}_setupCompositeOperation(t){this.globalCompositeOperation&&(t.globalCompositeOperation=this.globalCompositeOperation)}};p(Cs,"__uid",0);let Ps=Cs;var Ns;pt(Ps,[ks,Kt,$t,class{animate(){if(arguments[0]&&"object"==typeof arguments[0]){var t,e,s=[];for(t in arguments[0])s.push(t);for(var i=0,n=s.length;i<n;i++)t=s[i],e=i!==n-1,this._animate(t,arguments[0][t],arguments[1],e)}else this._animate.apply(this,arguments);return this}_animate(t,e,s,i){var n,r=this;e=e.toString(),s=s?zt.clone(s):{},~t.indexOf(".")&&(n=t.split("."));var o=r.colorProperties.indexOf(t)>-1||n&&r.colorProperties.indexOf(n[1])>-1,a=n?this.get(n[0])[n[1]]:this.get(t);"from"in s||(s.from=a),o||(e=~e.indexOf("=")?a+parseFloat(e.replace("=","")):parseFloat(e));var h={startValue:s.from,endValue:e,byValue:s.by,easing:s.easing,duration:s.duration,abort:s.abort&&function(t,e,i){return s.abort.call(r,t,e,i)},onChange(e,o,a){n?r[n[0]][n[1]]=e:r.set(t,e),!i&&s.onChange&&s.onChange(e,o,a)},onComplete(t,e,n){i||(r.setCoords(),s.onComplete&&s.onComplete(t,e,n))}};return o?Ts(h.startValue,h.endValue,h.duration,h):ne(h)}},Wt,class{_findTargetCorner(t,e){if(!this.hasControls||this.group||!this.canvas||this.canvas._activeObject!==this)return!1;var s,i,n,r=t.x,o=t.y,a=Object.keys(this.oCoords),h=a.length-1;for(this.__corner=0;h>=0;h--)if(n=a[h],this.isControlVisible(n)&&(i=this._getImageLines(e?this.oCoords[n].touchCorner:this.oCoords[n].corner),0!==(s=this._findCrossPoints({x:r,y:o},i))&&s%2==1))return this.__corner=n,n;return!1}forEachControl(t){for(var e in this.controls)t(this.controls[e],e,this)}_setCornerCoords(){var t=this.oCoords;for(var e in t){var s=this.controls[e];t[e].corner=s.calcCornerCoords(this.angle,this.cornerSize,t[e].x,t[e].y,!1),t[e].touchCorner=s.calcCornerCoords(this.angle,this.touchCornerSize,t[e].x,t[e].y,!0)}}drawSelectionBackground(t){if(!this.selectionBackgroundColor||this.canvas&&!this.canvas.interactive||this.canvas&&this.canvas._activeObject!==this)return this;t.save();var e=this.getCenterPoint(),s=this._calculateCurrentDimensions(),i=this.canvas.viewportTransform;return t.translate(e.x,e.y),t.scale(1/i[0],1/i[3]),t.rotate(Ye(this.angle)),t.fillStyle=this.selectionBackgroundColor,t.fillRect(-s.x/2,-s.y/2,s.x,s.y),t.restore(),this}drawBorders(t,e){e=e||{};var s=this._calculateCurrentDimensions(),i=this.borderScaleFactor,n=s.x+i,r=s.y+i,o=typeof e.hasControls<"u"?e.hasControls:this.hasControls,a=!1;return t.save(),t.strokeStyle=e.borderColor||this.borderColor,this._setLineDash(t,e.borderDashArray||this.borderDashArray),t.strokeRect(-n/2,-r/2,n,r),o&&(t.beginPath(),this.forEachControl((function(e,s,i){e.withConnection&&e.getVisibility(i,s)&&(a=!0,t.moveTo(e.x*n,e.y*r),t.lineTo(e.x*n+e.offsetX,e.y*r+e.offsetY))})),a&&t.stroke()),t.restore(),this}drawBordersInGroup(t,e,s){s=s||{};var i=Nt.sizeAfterTransform(this.width,this.height,e),n=this.strokeWidth,r=this.strokeUniform,o=this.borderScaleFactor,a=i.x+n*(r?this.canvas.getZoom():e.scaleX)+o,h=i.y+n*(r?this.canvas.getZoom():e.scaleY)+o;return t.save(),this._setLineDash(t,s.borderDashArray||this.borderDashArray),t.strokeStyle=s.borderColor||this.borderColor,t.strokeRect(-a/2,-h/2,a,h),t.restore(),this}drawControls(t,e){e=e||{},t.save();var s,i,n=this.canvas.getRetinaScaling();return t.setTransform(n,0,0,n,0,0),t.strokeStyle=t.fillStyle=e.cornerColor||this.cornerColor,this.transparentCorners||(t.strokeStyle=e.cornerStrokeColor||this.cornerStrokeColor),this._setLineDash(t,e.cornerDashArray||this.cornerDashArray),this.setCoords(),this.group&&(s=this.group.calcTransformMatrix()),this.forEachControl((function(n,r,o){i=o.oCoords[r],n.getVisibility(o,r)&&(s&&(i=Nt.transformPoint(i,s)),n.render(t,i.x,i.y,e,o))})),t.restore(),this}isControlVisible(t){return this.controls[t]&&this.controls[t].getVisibility(this,t)}setControlVisible(t,e){return this._controlsVisibility||(this._controlsVisibility={}),this._controlsVisibility[t]=e,this}setControlsVisibility(t){for(var e in t||(t={}),t)this.setControlVisible(e,t[e]);return this}onDeselect(){}onSelect(){}},class{translateToGivenOrigin(t,e,s,i,n){var r,o,a,h=t.x,c=t.y;return e=Ft(e),r=(i=Ft(i))-e,s=Ft(s),o=(n=Ft(n))-s,(r||o)&&(a=this._getTransformedDimensions(),h=t.x+r*a.x,c=t.y+o*a.y),new gt(h,c)}translateToCenterPoint(t,e,s){var i=this.translateToGivenOrigin(t,e,s,"center","center");return this.angle?Nt.rotatePoint(i,t,Lt(this.angle)):i}translateToOriginPoint(t,e,s){var i=this.translateToGivenOrigin(t,"center","center",e,s);return this.angle?Nt.rotatePoint(i,t,Lt(this.angle)):i}getCenterPoint(){return this.getRelativeCenterPoint()}getRelativeCenterPoint(){const t=new gt(this.left,this.top);return this.translateToCenterPoint(t,this.originX,this.originY)}getAbsCenterPoint(){const t=this.getRelativeCenterPoint(),e=this.group;return e?jt(t,e.calcTransformMatrix()):t}getPointByOrigin(t,e){var s=this.getCenterPoint();return this.translateToOriginPoint(s,t,e)}toLocalPoint(t,e,s){var i,n,r=this.getCenterPoint();return i=typeof e<"u"&&typeof s<"u"?this.translateToGivenOrigin(r,"center","center",e,s):new gt(this.left,this.top),n=new gt(t.x,t.y),this.angle&&(n=Nt.rotatePoint(n,r,-Lt(this.angle))),n.subtractEquals(i)}setPositionByOrigin(t,e,s){var i=this.translateToCenterPoint(t,e,s),n=this.translateToOriginPoint(i,this.originX,this.originY);this.set("left",n.x),this.set("top",n.y)}adjustPosition(t){var e,s,i=Lt(this.angle),n=this.getScaledWidth(),r=Nt.cos(i)*n,o=Nt.sin(i)*n;e="string"==typeof this.originX?originXOffset[this.originX]:this.originX-.5,s="string"==typeof t?originXOffset[t]:t-.5,this.left+=r*(s-e),this.top+=o*(s-e),this.setCoords(),this.originX=t}_setOriginToCenter(){this._originalOriginX=this.originX,this._originalOriginY=this.originY;var t=this.getCenterPoint();this.originX="center",this.originY="center",this.left=t.x,this.top=t.y}_resetOrigin(){var t=this.translateToOriginPoint(this.getCenterPoint(),this._originalOriginX,this._originalOriginY);this.originX=this._originalOriginX,this.originY=this._originalOriginY,this.left=t.x,this.top=t.y,this._originalOriginX=null,this._originalOriginY=null}_getLeftTopCoords(){return this.translateToOriginPoint(this.getCenterPoint(),"left","top")}},class{sendToBack(){return this.group?Me.prototype.sendToBack.call(this.group,this):this.canvas&&this.canvas.sendToBack(this),this}bringToFront(){return this.group?Me.prototype.bringToFront.call(this.group,this):this.canvas&&this.canvas.bringToFront(this),this}sendBackwards(t){return this.group?Me.prototype.sendBackwards.call(this.group,this,t):this.canvas&&this.canvas.sendBackwards(this,t),this}bringForward(t){return this.group?Me.prototype.bringForward.call(this.group,this,t):this.canvas&&this.canvas.bringForward(this,t),this}moveTo(t){return this.group&&"activeSelection"!==this.group.type?Me.prototype.moveTo.call(this.group,this,t):this.canvas&&this.canvas.moveTo(this,t),this}},class{hasStateChanged(t){var e="_"+(t=t||Xt);return Object.keys(this[e]).length<this[t].length||!Jt(this[e],this,!0)}saveState(t){var e=t&&t.propertySet||Xt,s="_"+e;return this[s]?(qt(this,s,this[e]),t&&t.stateProperties&&qt(this,s,t.stateProperties),this):this.setupState(t)}setupState(t){var e=(t=t||{}).propertySet||Xt;return t.propertySet=e,this["_"+e]={},this.saveState(t),this}},class{constructor(){p(this,"FX_DURATION",500)}_getAngleValueForStraighten(){var t=this.angle%360;return t>0?90*Math.round((t-1)/90):90*Math.round(t/90)}straighten(){return this.rotate(this._getAngleValueForStraighten()),this}fxStraighten(t){var e=function(){},s=(t=t||{}).onComplete||e,i=t.onChange||e,n=this;return ne({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange(t){n.rotate(t),i()},onComplete(){n.setCoords(),s()}}),this}},class{getSvgStyles(t){var e=this.fillRule?this.fillRule:"nonzero",s=this.strokeWidth?this.strokeWidth:"0",i=this.strokeDashArray?this.strokeDashArray.join(" "):"none",n=this.strokeDashOffset?this.strokeDashOffset:"0",r=this.strokeLineCap?this.strokeLineCap:"butt",o=this.strokeLineJoin?this.strokeLineJoin:"miter",a=this.strokeMiterLimit?this.strokeMiterLimit:"4",h=typeof this.opacity<"u"?this.opacity:"1",c=this.visible?"":" visibility: hidden;",l=t?"":this.getSvgFilter(),d=te("fill",this.fill);return[te("stroke",this.stroke),"stroke-width: ",s,"; ","stroke-dasharray: ",i,"; ","stroke-linecap: ",r,"; ","stroke-dashoffset: ",n,"; ","stroke-linejoin: ",o,"; ","stroke-miterlimit: ",a,"; ",d,"fill-rule: ",e,"; ","opacity: ",h,";",l,c].join("")}getSvgSpanStyles(t,e){var s="; ",i=t.fontFamily?"font-family: "+(-1===t.fontFamily.indexOf("'")&&-1===t.fontFamily.indexOf('"')?"'"+t.fontFamily+"'":t.fontFamily)+s:"",n=t.strokeWidth?"stroke-width: "+t.strokeWidth+s:"",r=t.fontSize?"font-size: "+t.fontSize+"px"+s:"",o=t.fontStyle?"font-style: "+t.fontStyle+s:"",a=t.fontWeight?"font-weight: "+t.fontWeight+s:"",h=t.fill?te("fill",t.fill):"",c=t.stroke?te("stroke",t.stroke):"",l=this.getSvgTextDecoration(t);return l&&(l="text-decoration: "+l+s),[c,n,i,r,o,a,l,h,t.deltaY?"baseline-shift: "+-t.deltaY+"; ":"",e?"white-space: pre; ":""].join("")}getSvgTextDecoration(t){return["overline","underline","line-through"].filter((function(e){return t[e.replace("-","")]})).join(" ")}getSvgFilter(){return this.shadow?"filter: url(#SVGID_"+this.shadow.id+");":""}getSvgCommons(){return[this.id?'id="'+this.id+'" ':"",this.clipPath?'clip-path="url(#'+this.clipPath.clipPathId+')" ':""].join("")}getSvgTransform(t,e){var s=t?this.calcTransformMatrix():this.calcOwnMatrix();return'transform="'+Nt.matrixToSVG(s)+(e||"")+'" '}_setSVGBg(t){if(this.backgroundColor){var e=Ps.NUM_FRACTION_DIGITS;t.push("\t\t<rect ",this._getFillAttributes(this.backgroundColor),' x="',ee(-this.width/2,e),'" y="',ee(-this.height/2,e),'" width="',ee(this.width,e),'" height="',ee(this.height,e),'"></rect>\n')}}toSVG(t){return this._createBaseSVGMarkup(this._toSVG(t),{reviver:t})}toClipPathSVG(t){return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(t),{reviver:t})}_createBaseClipPathSVGMarkup(t,e){var s=(e=e||{}).reviver,i=e.additionalTransform||"",n=[this.getSvgTransform(!0,i),this.getSvgCommons()].join(""),r=t.indexOf("COMMON_PARTS");return t[r]=n,s?s(t.join("")):t.join("")}_createBaseSVGMarkup(t,e){var s,i,n=(e=e||{}).noStyle,r=e.reviver,o=n?"":'style="'+this.getSvgStyles()+'" ',a=e.withShadow?'style="'+this.getSvgFilter()+'" ':"",h=this.clipPath,c=this.strokeUniform?'vector-effect="non-scaling-stroke" ':"",l=h&&h.absolutePositioned,d=this.stroke,u=this.fill,p=this.shadow,g=[],f=t.indexOf("COMMON_PARTS"),_=e.additionalTransform;return h&&(h.clipPathId="CLIPPATH_"+Ps.__uid++,i='<clipPath id="'+h.clipPathId+'" >\n'+h.toClipPathSVG(r)+"</clipPath>\n"),l&&g.push("<g ",a,this.getSvgCommons()," >\n"),g.push("<g ",this.getSvgTransform(!1),l?"":a+this.getSvgCommons()," >\n"),s=[o,c,n?"":this.addPaintOrder()," ",_?'transform="'+_+'" ':""].join(""),t[f]=s,u&&u.toLive&&g.push(u.toSVG(this)),d&&d.toLive&&g.push(d.toSVG(this)),p&&g.push(p.toSVG(this)),h&&g.push(i),g.push(t.join("")),g.push("</g>\n"),l&&g.push("</g>\n"),r?r(g.join("")):g.join("")}addPaintOrder(){return"fill"!==this.paintFirst?' paint-order="'+this.paintFirst+'" ':""}}]),(Ns=Ps.prototype.controls).ml=new gs({x:-.5,y:0,cursorStyleHandler:fs,actionHandler:vs,getActionName:As}),Ns.mr=new gs({x:.5,y:0,cursorStyleHandler:fs,actionHandler:vs,getActionName:As}),Ns.mb=new gs({x:0,y:.5,cursorStyleHandler:fs,actionHandler:ms,getActionName:As}),Ns.mt=new gs({x:0,y:-.5,cursorStyleHandler:fs,actionHandler:ms,getActionName:As}),Ns.tl=new gs({x:-.5,y:-.5,cursorStyleHandler:_s,actionHandler:Os}),Ns.tr=new gs({x:.5,y:-.5,cursorStyleHandler:_s,actionHandler:Os}),Ns.bl=new gs({x:-.5,y:.5,cursorStyleHandler:_s,actionHandler:Os}),Ns.br=new gs({x:.5,y:.5,cursorStyleHandler:_s,actionHandler:Os}),Ns.mtr=new gs({x:0,y:-.5,actionHandler:ds.rotationWithSnapping,cursorStyleHandler:ds.rotationStyleHandler,offsetY:-40,withConnection:!0,actionName:"rotate"});const Rs=zt.clone;class Ls{constructor(t){p(this,"offsetX",0),p(this,"offsetY",0),p(this,"gradientTransform",null),p(this,"gradientUnits","pixels"),p(this,"type","linear"),p(this,"id"),p(this,"coords"),p(this,"colorStops"),t||(t={}),t.coords||(t.coords={}),this.id?this.id+="_"+Ps.__uid++:this.id=""+Ps.__uid++,Object.keys(t).forEach((e=>{this[e]=t[e]}));const e={x1:t.coords.x1||0,y1:t.coords.y1||0,x2:t.coords.x2||0,y2:t.coords.y2||0,r1:0,r2:0};"radial"===this.type&&(e.r1=t.coords.r1||0,e.r2=t.coords.r2||0),this.coords=e,this.colorStops=t.colorStops.slice()}addColorStop(t){for(var e in t){var s=new ut(t[e]);this.colorStops.push({offset:parseFloat(e),color:s.toRgb(),opacity:s.getAlpha()})}return this}toObject(t){var e={type:this.type,coords:this.coords,colorStops:this.colorStops,offsetX:this.offsetX,offsetY:this.offsetY,gradientUnits:this.gradientUnits,gradientTransform:this.gradientTransform?this.gradientTransform.concat():this.gradientTransform};return Nt.populateWithProperties(this,e,t),e}toSVG(t,e){var s,i,n,r,o=Rs(this.coords,!0),a=(e=e||{},Rs(this.colorStops,!0)),h=o.r1>o.r2,c=this.gradientTransform?this.gradientTransform.concat():wt.iMatrix.concat(),l=-this.offsetX,d=-this.offsetY,u=!!e.additionalTransform,p="pixels"===this.gradientUnits?"userSpaceOnUse":"objectBoundingBox";if(a.sort((function(t,e){return t.offset-e.offset})),"objectBoundingBox"===p?(l/=t.width,d/=t.height):(l+=t.width/2,d+=t.height/2),"path"===t.type&&"percentage"!==this.gradientUnits&&(l-=t.pathOffset.x,d-=t.pathOffset.y),c[4]-=l,c[5]-=d,r='id="SVGID_'+this.id+'" gradientUnits="'+p+'"',r+=' gradientTransform="'+(u?e.additionalTransform+" ":"")+Nt.matrixToSVG(c)+'" ',"linear"===this.type?n=["<linearGradient ",r,' x1="',o.x1,'" y1="',o.y1,'" x2="',o.x2,'" y2="',o.y2,'">\n']:"radial"===this.type&&(n=["<radialGradient ",r,' cx="',h?o.x1:o.x2,'" cy="',h?o.y1:o.y2,'" r="',h?o.r1:o.r2,'" fx="',h?o.x2:o.x1,'" fy="',h?o.y2:o.y1,'">\n']),"radial"===this.type){if(h)for((a=a.concat()).reverse(),s=0,i=a.length;s<i;s++)a[s].offset=1-a[s].offset;var g=Math.min(o.r1,o.r2);if(g>0){var f=g/Math.max(o.r1,o.r2);for(s=0,i=a.length;s<i;s++)a[s].offset+=f*(1-a[s].offset)}}for(s=0,i=a.length;s<i;s++){var _=a[s];n.push("<stop ",'offset="',100*_.offset+"%",'" style="stop-color:',_.color,typeof _.opacity<"u"?";stop-opacity: "+_.opacity:";",'"/>\n')}return n.push("linear"===this.type?"</linearGradient>\n":"</radialGradient>\n"),n.join("")}toLive(t){var e,s,i,n=Rs(this.coords);if(this.type){for("linear"===this.type?e=t.createLinearGradient(n.x1,n.y1,n.x2,n.y2):"radial"===this.type&&(e=t.createRadialGradient(n.x1,n.y1,n.r1,n.x2,n.y2,n.r2)),s=0,i=this.colorStops.length;s<i;s++){var r=this.colorStops[s].color,o=this.colorStops[s].opacity,a=this.colorStops[s].offset;typeof o<"u"&&(r=new ut(r).setAlpha(o).toRgba()),e.addColorStop(a,r)}return e}}}const js=ct.min,Ds=ct.max;class Fs extends Ps{constructor(t,e,s){super(),p(this,"type","group"),p(this,"strokeWidth",0),p(this,"subTargetCheck",!1),p(this,"cacheProperties",[]),p(this,"useSetOnGroup",!1),this.initialize(t,e,s)}initialize(t,e,s){const i=e=e||{},{centerPoint:n}=i,r=u(i,["centerPoint"]),o=t||[];this._objects=[...o];for(var a=this._objects.length;a--;)this._objects[a].group=this;if(s)this._updateObjectsACoords();else{var h=e&&n;void 0!==e.originX&&(this.originX=e.originX),void 0!==e.originY&&(this.originY=e.originY),h||this._calcBounds(),this._updateObjectsCoords(h),this.setOptions(r)}this.setCoords()}_updateObjectsACoords(){for(var t=this._objects.length;t--;)this._objects[t].setCoords(!0)}_updateObjectsCoords(t){t=t||this.getCenterPoint();for(var e=this._objects.length;e--;)this._updateObjectCoords(this._objects[e],t)}_updateObjectCoords(t,e){var s=t.left,i=t.top;t.set({left:s-e.x,top:i-e.y}),t.group=this,t.setCoords(!0)}toString(){return"#<Group: ("+this.complexity()+")>"}addWithUpdate(t){var e=!!this.group;return this._restoreObjectsState(),Nt.resetObjectTransform(this),t&&(e&&Nt.removeTransformFromObject(t,this.group.calcTransformMatrix()),this._objects.push(t),t.group=this,t._set("canvas",this.canvas)),this._calcBounds(),this._updateObjectsCoords(),this.dirty=!0,e?this.group.addWithUpdate():this.setCoords(),this}removeWithUpdate(t){return this._restoreObjectsState(),Nt.resetObjectTransform(this),this.remove(t),this._calcBounds(),this._updateObjectsCoords(),this.setCoords(),this.dirty=!0,this}_onObjectAdded(t){this.dirty=!0,t.group=this,t._set("canvas",this.canvas)}_onObjectRemoved(t){this.dirty=!0,delete t.group}_set(t,e){var s=this._objects.length;if(this.useSetOnGroup)for(;s--;)this._objects[s].setOnGroup(t,e);if("canvas"===t)for(;s--;)this._objects[s]._set(t,e);return super._set.call(this,t,e)}toObject(t){var e=this.includeDefaultValues,s=this._objects.filter((function(t){return!t.excludeFromExport})).map((function(s){var i=s.includeDefaultValues;s.includeDefaultValues=e;var n=s.toObject(t);return s.includeDefaultValues=i,n})),i=super.toObject.call(this,t);return i.objects=s,i}toDatalessObject(t){var e,s=this.sourcePath;if(s)e=s;else{var i=this.includeDefaultValues;e=this._objects.map((function(e){var s=e.includeDefaultValues;e.includeDefaultValues=i;var n=e.toDatalessObject(t);return e.includeDefaultValues=s,n}))}var n=super.toDatalessObject.call(this,t);return n.objects=e,n}render(t){this._transformDone=!0,super.render(t),this._transformDone=!1}shouldCache(){var t=super.shouldCache.call(this);if(t)for(var e=0,s=this._objects.length;e<s;e++)if(this._objects[e].willDrawShadow())return this.ownCaching=!1,!1;return t}willDrawShadow(){if(super.willDrawShadow.call(this))return!0;for(var t=0,e=this._objects.length;t<e;t++)if(this._objects[t].willDrawShadow())return!0;return!1}isOnACache(){return this.ownCaching||this.group&&this.group.isOnACache()}drawObject(t){for(var e=0,s=this._objects.length;e<s;e++)this._objects[e].render(t);this._drawClipPath(t)}isCacheDirty(t){if(super.isCacheDirty(t))return!0;if(!this.statefullCache)return!1;for(var e=0,s=this._objects.length;e<s;e++)if(this._objects[e].isCacheDirty(!0)){if(this._cacheCanvas){var i=this.cacheWidth/this.zoomX,n=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-i/2,-n/2,i,n)}return!0}return!1}_restoreObjectsState(){var t=this.calcOwnMatrix();return this._objects.forEach((function(e){Nt.addTransformToObject(e,t),delete e.group,e.setCoords()})),this}realizeTransform(t,e){return Nt.addTransformToObject(t,e),t}destroy(){return this._objects.forEach((function(t){t.set("dirty",!0)})),this._restoreObjectsState()}ungroupOnCanvas(){return this._restoreObjectsState()}setObjectsCoords(){return this.forEachObject((function(t){t.setCoords(!0)})),this}_calcBounds(t){for(var e,s,i,n,r=[],o=[],a=["tr","br","bl","tl"],h=0,c=this._objects.length,l=a.length;h<c;++h){for(i=(e=this._objects[h]).calcACoords(),n=0;n<l;n++)s=a[n],r.push(i[s].x),o.push(i[s].y);e.aCoords=i}this._getBounds(r,o,t)}_getBounds(t,e,s){var i=new gt(js(t),js(e)),n=new gt(Ds(t),Ds(e)),r=i.y||0,o=i.x||0,a=n.x-i.x||0,h=n.y-i.y||0;this.width=a,this.height=h,s||this.setPositionByOrigin({x:o,y:r},"left","top")}_toSVG(t){for(var e=["<g ","COMMON_PARTS"," >\n"],s=0,i=this._objects.length;s<i;s++)e.push("\t\t",this._objects[s].toSVG(t));return e.push("</g>\n"),e}getSvgStyles(){var t=typeof this.opacity<"u"&&1!==this.opacity?"opacity: "+this.opacity+";":"",e=this.visible?"":" visibility: hidden;";return[t,this.getSvgFilter(),e].join("")}toClipPathSVG(t){for(var e=[],s=0,i=this._objects.length;s<i;s++)e.push("\t",this._objects[s].toClipPathSVG(t));return this._createBaseClipPathSVGMarkup(e,{reviver:t})}}pt(Fs,[le]);class Ms extends Fs{constructor(t,e){super(t,e),p(this,"type","activeSelection")}toGroup(){var t=this._objects.concat();this._objects=[];var e=Ps.prototype.toObject.call(this),s=new Fs([]);if(delete e.type,s.set(e),t.forEach((function(t){t.canvas.remove(t),t.group=s})),s._objects=t,!this.canvas)return s;var i=this.canvas;return i.add(s),i._activeObject=s,s.setCoords(),s}onDeselect(){return this.destroy(),!1}toString(){return"#<ActiveSelection: ("+this.complexity()+")>"}shouldCache(){return!1}isOnACache(){return!1}_renderControls(t,e,s){t.save(),t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,super._renderControls(t,e),typeof(s=s||{}).hasControls>"u"&&(s.hasControls=!1),s.forActiveSelection=!0;for(var i=0,n=this._objects.length;i<n;i++)this._objects[i]._renderControls(t,s);t.restore()}}const Ys=Math.PI;class Bs extends Ps{constructor(t){super(),p(this,"type","circle"),p(this,"radius",0),p(this,"startAngle",0),p(this,"endAngle",2*Ys),p(this,"cacheProperties",Ps.prototype.cacheProperties.concat("radius","startAngle","endAngle")),this.setOptions(t)}_set(t,e){return super._set(t,e),"radius"===t&&this.setRadius(e),this}toObject(t){return super.toObject(["radius","startAngle","endAngle"].concat(t))}_toSVG(){var t,e=(this.endAngle-this.startAngle)%(2*Ys);if(0===e)t=["<circle ","COMMON_PARTS",'cx="0" cy="0" ','r="',this.radius,'" />\n'];else{var s=Nt.cos(this.startAngle)*this.radius,i=Nt.sin(this.startAngle)*this.radius,n=Nt.cos(this.endAngle)*this.radius,r=Nt.sin(this.endAngle)*this.radius,o=e>Ys?"1":"0";t=['<path d="M '+s+" "+i," A "+this.radius+" "+this.radius," 0 ",+o+" 1"," "+n+" "+r,'" ',"COMMON_PARTS"," />\n"]}return t}_render(t){t.beginPath(),t.arc(0,0,this.radius,this.startAngle,this.endAngle,!1),this._renderPaintInOrder(t)}getRadiusX(){return this.get("radius")*this.get("scaleX")}getRadiusY(){return this.get("radius")*this.get("scaleY")}setRadius(t){return this.radius=t,this.set("width",2*t).set("height",2*t)}static isValidRadius(t){return"radius"in t&&t.radius>=0}}zt.extend,zt.clone;var Hs=Array.prototype.join,Vs={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},Ws={m:"l",M:"L"};function Us(t,e,s,i,n,r,o,a,h,c,l){var d=Nt.cos(t),u=Nt.sin(t),p=Nt.cos(e),g=Nt.sin(e),f=s*n*p-i*r*g+o,_=i*n*p+s*r*g+a;return["C",c+h*(-s*n*u-i*r*d),l+h*(-i*n*u+s*r*d),f+h*(s*n*g+i*r*p),_+h*(i*n*g-s*r*p),f,_]}function zs(t,e,s,i,n,r,o){var a=Math.PI,h=o*a/180,c=Nt.sin(h),l=Nt.cos(h),d=0,u=0,p=-l*t*.5-c*e*.5,g=-l*e*.5+c*t*.5,f=(s=Math.abs(s))*s,_=(i=Math.abs(i))*i,O=g*g,m=p*p,v=f*_-f*O-_*m,A=0;if(v<0){var b=Math.sqrt(1-v/(f*_));s*=b,i*=b}else A=(n===r?-1:1)*Math.sqrt(v/(f*O+_*m));var T=A*s*g/i,y=-A*i*p/s,S=l*T-c*y+.5*t,w=c*T+l*y+.5*e,I=Gs(1,0,(p-T)/s,(g-y)/i),x=Gs((p-T)/s,(g-y)/i,(-p-T)/s,(-g-y)/i);0===r&&x>0?x-=2*a:1===r&&x<0&&(x+=2*a);for(var E=Math.ceil(Math.abs(x/a*2)),k=[],C=x/E,P=8/3*Math.sin(C/4)*Math.sin(C/4)/Math.sin(C/2),N=I+C,R=0;R<E;R++)k[R]=Us(I,N,l,c,s,i,S,w,P,d,u),d=k[R][5],u=k[R][6],I=N,N+=C;return k}function Gs(t,e,s,i){var n=Math.atan2(e,t),r=Math.atan2(i,s);return r>=n?r-n:2*Math.PI-(n-r)}function Xs(t,e,s,i,n,r,o,a){let h;const c=wt.boundsOfCurveCache;if(c&&(h=Hs.call(arguments),c.has(h)))return c.get(h);var l,d,u,p,g,f,_,O,m=Math.sqrt,v=Math.min,A=Math.max,b=Math.abs,T=[],y=[[],[]];d=6*t-12*s+6*n,l=-3*t+9*s-9*n+3*o,u=3*s-3*t;for(var S=0;S<2;++S)if(S>0&&(d=6*e-12*i+6*r,l=-3*e+9*i-9*r+3*a,u=3*i-3*e),b(l)<1e-12){if(b(d)<1e-12)continue;0<(p=-u/d)&&p<1&&T.push(p)}else!((_=d*d-4*u*l)<0)&&(0<(g=(-d+(O=m(_)))/(2*l))&&g<1&&T.push(g),0<(f=(-d-O)/(2*l))&&f<1&&T.push(f));for(var w,I,x,E=T.length,k=E;E--;)w=(x=1-(p=T[E]))*x*x*t+3*x*x*p*s+3*x*p*p*n+p*p*p*o,y[0][E]=w,I=x*x*x*e+3*x*x*p*i+3*x*p*p*r+p*p*p*a,y[1][E]=I;y[0][k]=t,y[1][k]=e,y[0][k+1]=o,y[1][k+1]=a;var C=[{x:v.apply(null,y[0]),y:v.apply(null,y[1])},{x:A.apply(null,y[0]),y:A.apply(null,y[1])}];return c&&c.set(h,C),C}function qs(t,e,s){for(var i=s[1],n=s[2],r=s[3],o=s[4],a=s[5],h=zs(s[6]-t,s[7]-e,i,n,o,a,r),c=0,l=h.length;c<l;c++)h[c][1]+=t,h[c][2]+=e,h[c][3]+=t,h[c][4]+=e,h[c][5]+=t,h[c][6]+=e;return h}function Js(t,e,s,i){return Math.sqrt((s-t)*(s-t)+(i-e)*(i-e))}function Ks(t,e,s,i,n,r,o,a){return function(h){var c=function(t){return t*t*t}(h),l=function(t){return 3*t*t*(1-t)}(h),d=function(t){return 3*t*(1-t)*(1-t)}(h),u=function(t){return(1-t)*(1-t)*(1-t)}(h);return{x:o*c+n*l+s*d+t*u,y:a*c+r*l+i*d+e*u}}}function Zs(t,e,s,i,n,r,o,a){return function(h){var c=1-h,l=3*c*c*(s-t)+6*c*h*(n-s)+3*h*h*(o-n),d=3*c*c*(i-e)+6*c*h*(r-i)+3*h*h*(a-r);return Math.atan2(d,l)}}function Qs(t,e,s,i,n,r){return function(o){var a=function(t){return t*t}(o),h=function(t){return 2*t*(1-t)}(o),c=function(t){return(1-t)*(1-t)}(o);return{x:n*a+s*h+t*c,y:r*a+i*h+e*c}}}function $s(t,e,s,i,n,r){return function(o){var a=1-o,h=2*a*(s-t)+2*o*(n-s),c=2*a*(i-e)+2*o*(r-i);return Math.atan2(c,h)}}function ti(t,e,s){var i,n,r={x:e,y:s},o=0;for(n=1;n<=100;n+=1)i=t(n/100),o+=Js(r.x,r.y,i.x,i.y),r=i;return o}function ei(t){for(var e,s,i,n,r=0,o=t.length,a=0,h=0,c=0,l=0,d=[],u=0;u<o;u++){switch(i={x:a,y:h,command:(e=t[u])[0]},e[0]){case"M":i.length=0,c=a=e[1],l=h=e[2];break;case"L":i.length=Js(a,h,e[1],e[2]),a=e[1],h=e[2];break;case"C":s=Ks(a,h,e[1],e[2],e[3],e[4],e[5],e[6]),n=Zs(a,h,e[1],e[2],e[3],e[4],e[5],e[6]),i.iterator=s,i.angleFinder=n,i.length=ti(s,a,h),a=e[5],h=e[6];break;case"Q":s=Qs(a,h,e[1],e[2],e[3],e[4]),n=$s(a,h,e[1],e[2],e[3],e[4]),i.iterator=s,i.angleFinder=n,i.length=ti(s,a,h),a=e[3],h=e[4];break;case"Z":case"z":i.destX=c,i.destY=l,i.length=Js(a,h,c,l),a=c,h=l}r+=i.length,d.push(i)}return d.push({length:r,x:a,y:h}),d}const si={joinPath:function(t){return t.map((function(t){return t.join(" ")})).join(" ")},parsePath:function(t){var e,s,i,n,r,o=[],a=[],h=wt.rePathCommand,c="[-+]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][-+]?\\d+)?\\s*",l="("+c+")"+wt.commaWsp,d="([01])"+wt.commaWsp+"?",u=new RegExp(l+"?"+l+"?"+l+d+d+l+"?("+c+")","g");if(!t||!t.match)return o;for(var p,g=0,f=(r=t.match(/[mzlhvcsqta][^mzlhvcsqta]*/gi)).length;g<f;g++){n=(e=r[g]).slice(1).trim(),a.length=0;var _=e.charAt(0);if(p=[_],"a"===_.toLowerCase())for(var O;O=u.exec(n);)for(var m=1;m<O.length;m++)a.push(O[m]);else for(;i=h.exec(n);)a.push(i[0]);m=0;for(var v=a.length;m<v;m++)s=parseFloat(a[m]),isNaN(s)||p.push(s);var A=Vs[_.toLowerCase()],b=Ws[_]||_;if(p.length-1>A)for(var T=1,y=p.length;T<y;T+=A)o.push([_].concat(p.slice(T,T+A))),_=b;else o.push(p)}return o},makePathSimpler:function(t){var e,s,i,n,r,o,a=0,h=0,c=t.length,l=0,d=0,u=[];for(s=0;s<c;++s){switch(i=!1,(e=t[s].slice(0))[0]){case"l":e[0]="L",e[1]+=a,e[2]+=h;case"L":a=e[1],h=e[2];break;case"h":e[1]+=a;case"H":e[0]="L",e[2]=h,a=e[1];break;case"v":e[1]+=h;case"V":e[0]="L",h=e[1],e[1]=a,e[2]=h;break;case"m":e[0]="M",e[1]+=a,e[2]+=h;case"M":a=e[1],h=e[2],l=e[1],d=e[2];break;case"c":e[0]="C",e[1]+=a,e[2]+=h,e[3]+=a,e[4]+=h,e[5]+=a,e[6]+=h;case"C":r=e[3],o=e[4],a=e[5],h=e[6];break;case"s":e[0]="S",e[1]+=a,e[2]+=h,e[3]+=a,e[4]+=h;case"S":"C"===n?(r=2*a-r,o=2*h-o):(r=a,o=h),a=e[3],h=e[4],e[0]="C",e[5]=e[3],e[6]=e[4],e[3]=e[1],e[4]=e[2],e[1]=r,e[2]=o,r=e[3],o=e[4];break;case"q":e[0]="Q",e[1]+=a,e[2]+=h,e[3]+=a,e[4]+=h;case"Q":r=e[1],o=e[2],a=e[3],h=e[4];break;case"t":e[0]="T",e[1]+=a,e[2]+=h;case"T":"Q"===n?(r=2*a-r,o=2*h-o):(r=a,o=h),e[0]="Q",a=e[1],h=e[2],e[1]=r,e[2]=o,e[3]=a,e[4]=h;break;case"a":e[0]="A",e[6]+=a,e[7]+=h;case"A":i=!0,u=u.concat(qs(a,h,e)),a=e[6],h=e[7];break;case"z":case"Z":a=l,h=d}i||u.push(e),n=e[0]}return u},getSmoothPathFromPoints:function(t,e){var s,i=[],n=new gt(t[0].x,t[0].y),r=new gt(t[1].x,t[1].y),o=t.length,a=1,h=0,c=o>2;for(e=e||0,c&&(a=t[2].x<r.x?-1:t[2].x===r.x?0:1,h=t[2].y<r.y?-1:t[2].y===r.y?0:1),i.push(["M",n.x-a*e,n.y-h*e]),s=1;s<o;s++){if(!n.eq(r)){var l=n.midPointFrom(r);i.push(["Q",n.x,n.y,l.x,l.y])}n=t[s],s+1<t.length&&(r=t[s+1])}return c&&(a=n.x>t[s-2].x?1:n.x===t[s-2].x?0:-1,h=n.y>t[s-2].y?1:n.y===t[s-2].y?0:-1),i.push(["L",n.x+a*e,n.y+h*e]),i},getPathSegmentsInfo:ei,getBoundsOfCurve:Xs,getPointOnPath:function(t,e,s){s||(s=ei(t));for(var i=0;e-s[i].length>0&&i<s.length-2;)e-=s[i].length,i++;var n,r=s[i],o=e/r.length,a=r.command,h=t[i];switch(a){case"M":return{x:r.x,y:r.y,angle:0};case"Z":case"z":return(n=new gt(r.x,r.y).lerp(new gt(r.destX,r.destY),o)).angle=Math.atan2(r.destY-r.y,r.destX-r.x),n;case"L":return(n=new gt(r.x,r.y).lerp(new gt(h[1],h[2]),o)).angle=Math.atan2(h[2]-r.y,h[1]-r.x),n;case"C":case"Q":return function(t,e){for(var s,i,n,r=0,o=0,a=t.iterator,h={x:t.x,y:t.y},c=.01,l=t.angleFinder;o<e&&r<=1&&c>1e-4;)s=a(r),n=r,(i=Js(h.x,h.y,s.x,s.y))+o>e?r-=c/=2:(h=s,r+=c,o+=i);return s.angle=l(n),s}(r,e)}},transformPath:function(t,e,s){return s&&(e=Nt.multiplyTransformMatrices(e,[1,0,0,1,-s.x,-s.y])),t.map((function(t){for(var s=t.slice(0),i=new gt(0,0),n=1;n<t.length-1;n+=2)i.x=t[n],i.y=t[n+1],i=Nt.transformPoint(i,e),s[n]=i.x,s[n+1]=i.y;return s}))},getBoundsOfArc:function(t,e,s,i,n,r,o,a,h){for(var c,l=0,d=0,u=[],p=zs(a-t,h-e,s,i,r,o,n),g=0,f=p.length;g<f;g++)c=Xs(l,d,p[g][1],p[g][2],p[g][3],p[g][4],p[g][5],p[g][6]),u.push({x:c[0].x+t,y:c[0].y+e}),u.push({x:c[1].x+t,y:c[1].y+e}),l=p[g][5],d=p[g][6];return u},drawArc:function(t,e,s,i){qs(e,s,i=i.slice(0).unshift("X")).forEach((function(e){t.bezierCurveTo.apply(t,e.slice(1))}))}};class ii extends Ps{constructor(t,e){e=e||{},super(),p(this,"type","polyline"),p(this,"points",null),p(this,"cacheProperties",Ps.prototype.cacheProperties.concat("points")),this.points=t||[],this.setOptions(e),this._setPositionDimensions(e)}_setPositionDimensions(t){var e,s=this._calcDimensions();this.width=s.width,this.height=s.height,t.fromSVG||(e=this.translateToGivenOrigin({x:s.left-this.strokeWidth/2,y:s.top-this.strokeWidth/2},"left","top",this.originX,this.originY)),typeof t.left>"u"&&(this.left=t.fromSVG?s.left:e.x),typeof t.top>"u"&&(this.top=t.fromSVG?s.top:e.y),this.pathOffset={x:s.left+this.width/2,y:s.top+this.height/2}}_calcDimensions(){var t=this.points,e=ct.min(t,"x")||0,s=ct.min(t,"y")||0;return{left:e,top:s,width:(ct.max(t,"x")||0)-e,height:(ct.max(t,"y")||0)-s}}toObject(t){return zt.extend(super.toObject(t),{points:this.points.concat()})}_toSVG(){for(var t=[],e=this.pathOffset.x,s=this.pathOffset.y,i=Ps.NUM_FRACTION_DIGITS,n=0,r=this.points.length;n<r;n++)t.push(Nt.toFixed(this.points[n].x-e,i),",",Nt.toFixed(this.points[n].y-s,i)," ");return["<"+this.type+" ","COMMON_PARTS",'points="',t.join(""),'" />\n']}commonRender(t){var e,s=this.points.length,i=this.pathOffset.x,n=this.pathOffset.y;if(!s||isNaN(this.points[s-1].y))return!1;t.beginPath(),t.moveTo(this.points[0].x-i,this.points[0].y-n);for(var r=0;r<s;r++)e=this.points[r],t.lineTo(e.x-i,e.y-n);return!0}_render(t){this.commonRender(t)&&this._renderPaintInOrder(t)}complexity(){return this.get("points").length}}const ni=ct.min,ri=ct.max,oi=zt.extend,ai=Object.prototype.toString,hi=Nt.toFixed;class ci extends Ps{constructor(t,e){e=e||{},super(),p(this,"type","path"),p(this,"path",null),p(this,"cacheProperties",Ps.prototype.cacheProperties.concat("path","fillRule")),p(this,"stateProperties",Ps.prototype.stateProperties.concat("path")),this.setOptions(e),this.initialize(t,e)}initialize(t,e){e=e||{},t||(t=[]);var s="[object Array]"===ai.call(t);this.path=si.makePathSimpler(s?t:si.parsePath(t)),this.path&&ii.prototype._setPositionDimensions.call(this,e)}_renderPathCommands(t){var e,s=0,i=0,n=0,r=0,o=0,a=0,h=-this.pathOffset.x,c=-this.pathOffset.y;t.beginPath();for(var l=0,d=this.path.length;l<d;++l)switch(e=this.path[l],e[0]){case"L":n=e[1],r=e[2],t.lineTo(n+h,r+c);break;case"M":s=n=e[1],i=r=e[2],t.moveTo(n+h,r+c);break;case"C":n=e[5],r=e[6],o=e[3],a=e[4],t.bezierCurveTo(e[1]+h,e[2]+c,o+h,a+c,n+h,r+c);break;case"Q":t.quadraticCurveTo(e[1]+h,e[2]+c,e[3]+h,e[4]+c),n=e[3],r=e[4],o=e[1],a=e[2];break;case"z":case"Z":n=s,r=i,t.closePath()}}_render(t){this._renderPathCommands(t),this._renderPaintInOrder(t)}toString(){return"#<Path ("+this.complexity()+'): { "top": '+this.top+', "left": '+this.left+" }>"}toObject(t){return oi(super.toObject(t),{path:this.path.map((function(t){return t.slice()}))})}toDatalessObject(t){var e=this.toObject(["sourcePath"].concat(t));return e.sourcePath&&delete e.path,e}_toSVG(){return["<path ","COMMON_PARTS",'d="',si.joinPath(this.path),'" stroke-linecap="round" ',"/>\n"]}_getOffsetTransform(){var t=Ps.NUM_FRACTION_DIGITS;return" translate("+hi(-this.pathOffset.x,t)+", "+hi(-this.pathOffset.y,t)+")"}toClipPathSVG(t){var e=this._getOffsetTransform();return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})}toSVG(t){var e=this._getOffsetTransform();return this._createBaseSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})}complexity(){return this.path.length}_calcDimensions(){for(var t,e,s=[],i=[],n=0,r=0,o=0,a=0,h=0,c=this.path.length;h<c;++h){switch((t=this.path[h])[0]){case"L":o=t[1],a=t[2],e=[];break;case"M":n=o=t[1],r=a=t[2],e=[];break;case"C":e=si.getBoundsOfCurve(o,a,t[1],t[2],t[3],t[4],t[5],t[6]),o=t[5],a=t[6];break;case"Q":e=si.getBoundsOfCurve(o,a,t[1],t[2],t[1],t[2],t[3],t[4]),o=t[3],a=t[4];break;case"z":case"Z":o=n,a=r}e.forEach((function(t){s.push(t.x),i.push(t.y)})),s.push(o),i.push(a)}var l=ni(s)||0,d=ni(i)||0;return{left:l,top:d,width:(ri(s)||0)-l,height:(ri(i)||0)-d}}}class li extends Ps{constructor(t){super(),p(this,"stateProperties",Ps.prototype.stateProperties.concat("rx","ry")),p(this,"type","rect"),p(this,"rx",0),p(this,"ry",0),p(this,"cacheProperties",Ps.prototype.cacheProperties.concat("rx","ry")),this.setOptions(t),this._initRxRy()}_initRxRy(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)}_render(t){var e=this.rx?Math.min(this.rx,this.width/2):0,s=this.ry?Math.min(this.ry,this.height/2):0,i=this.width,n=this.height,r=-this.width/2,o=-this.height/2,a=0!==e||0!==s,h=.4477152502;t.beginPath(),t.moveTo(r+e,o),t.lineTo(r+i-e,o),a&&t.bezierCurveTo(r+i-h*e,o,r+i,o+h*s,r+i,o+s),t.lineTo(r+i,o+n-s),a&&t.bezierCurveTo(r+i,o+n-h*s,r+i-h*e,o+n,r+i-e,o+n),t.lineTo(r+e,o+n),a&&t.bezierCurveTo(r+h*e,o+n,r,o+n-h*s,r,o+n-s),t.lineTo(r,o+s),a&&t.bezierCurveTo(r,o+h*s,r+h*e,o,r+e,o),t.closePath(),this._renderPaintInOrder(t)}toObject(t){return super.toObject(["rx","ry"].concat(t))}_toSVG(){return["<rect ","COMMON_PARTS",'x="',-this.width/2,'" y="',-this.height/2,'" rx="',this.rx,'" ry="',this.ry,'" width="',this.width,'" height="',this.height,'" />\n']}}const di=zt.extend,ui=class t extends Ps{constructor(t,e){e||(e={}),super(),p(this,"type","image"),p(this,"strokeWidth",0),p(this,"srcFromAttribute",!1),p(this,"_lastScaleX",1),p(this,"_lastScaleY",1),p(this,"_filterScalingX",1),p(this,"_filterScalingY",1),p(this,"minimumScaleTrigger",.5),p(this,"stateProperties",Ps.prototype.stateProperties.concat("cropX","cropY")),p(this,"cacheProperties",Ps.prototype.cacheProperties.concat("cropX","cropY")),p(this,"cacheKey",""),p(this,"cropX",0),p(this,"cropY",0),p(this,"imageSmoothing",!0),this.setOptions(e),this.filters=[],this.cacheKey="texture"+Ps.__uid++,this._initElement(t,e)}getElement(){return this._element||{}}setElement(t,e){return this._element=t,this._originalElement=t,this._initConfig(e),this}dispose(){this._cacheContext=void 0,["_originalElement","_element","_filteredEl","_cacheCanvas"].forEach(function(t){Ie.cleanUpJsdomNode(this[t]),this[t]=void 0}.bind(this))}getCrossOrigin(){return this._originalElement&&(this._originalElement.crossOrigin||null)}getOriginalSize(){var t=this.getElement();return{width:t.naturalWidth||t.width,height:t.naturalHeight||t.height}}_stroke(t){if(this.stroke&&0!==this.strokeWidth){var 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(t){var e=[];return this.filters.forEach((function(t){t&&e.push(t.toObject())})),di(super.toObject(["cropX","cropY"].concat(t)),{src:this.getSrc(),crossOrigin:this.getCrossOrigin(),filters:e})}hasCrop(){return this.cropX||this.cropY||this.width<this._element.width||this.height<this._element.height}_toSVG(){var t,e=[],s=[],i=this._element,n=-this.width/2,r=-this.height/2,o="",a="";if(!i)return[];if(this.hasCrop()){var h=Ps.__uid++;e.push('<clipPath id="imageCrop_'+h+'">\n','\t<rect x="'+n+'" y="'+r+'" width="'+this.width+'" height="'+this.height+'" />\n',"</clipPath>\n"),o=' clip-path="url(#imageCrop_'+h+')" '}if(this.imageSmoothing||(a='" image-rendering="optimizeSpeed'),s.push("\t<image ","COMMON_PARTS",'xlink:href="',this.getSvgSrc(!0),'" x="',n-this.cropX,'" y="',r-this.cropY,'" width="',i.width||i.naturalWidth,'" height="',i.height||i.height,a,'"',o,"></image>\n"),this.stroke||this.strokeDashArray){var c=this.fill;this.fill=null,t=["\t<rect ",'x="',n,'" y="',r,'" width="',this.width,'" height="',this.height,'" style="',this.getSvgStyles(),'"/>\n'],this.fill=c}return"fill"!==this.paintFirst?e.concat(t,s):e.concat(s,t)}getSrc(t){var e=t?this._element:this._originalElement;return e?e.toDataURL?e.toDataURL():this.srcFromAttribute?e.getAttribute("src"):e.src:this.src||""}setSrc(t,e,s){return Nt.loadImage(t,(function(t,i){this.setElement(t,s),this._setWidthHeight(),e&&e(this,i)}),this,s&&s.crossOrigin),this}toString(){return'#<fabric.Image: { src: "'+this.getSrc()+'" }>'}_render(t){Ie.setImageSmoothing(t,this.imageSmoothing),this._stroke(t),this._renderPaintInOrder(t)}drawCacheOnCanvas(t){Ie.setImageSmoothing(t,this.imageSmoothing),Ps.prototype.drawCacheOnCanvas.call(this,t)}shouldCache(){return this.needsItsOwnCache()}_renderFill(t){var e=this._element;if(e){var s=this._filterScalingX,i=this._filterScalingY,n=this.width,r=this.height,o=Math.min,a=Math.max,h=a(this.cropX,0),c=a(this.cropY,0),l=e.naturalWidth||e.width||0,d=e.naturalHeight||e.height||0,u=h*s,p=c*i,g=o(n*s,l-u),f=o(r*i,d-p),_=-n/2,O=-r/2,m=o(n,l/s-h),v=o(r,d/i-c);e&&t.drawImage(e,u,p,g,f,_,O,m,v)}}_needsResize(){var t=this.getTotalObjectScaling();return t.scaleX!==this._lastScaleX||t.scaleY!==this._lastScaleY}_resetWidthHeight(){this.set(this.getOriginalSize())}_initElement(e,s){this.setElement(Ie.getById(e),s),Ie.addClass(this.getElement(),t.CSS_CANVAS)}_initConfig(t){t||(t={}),this.setOptions(t),this._setWidthHeight(t)}_setWidthHeight(t){t||(t={});var e=this.getElement();this.width=t.width||e.naturalWidth||e.width||0,this.height=t.height||e.naturalHeight||e.height||0}parsePreserveAspectRatioAttribute(){var t,e=Nt.parsePreserveAspectRatioAttribute(this.preserveAspectRatio||""),s=this._element.width,i=this._element.height,n=1,r=1,o=0,a=0,h=0,c=0,l=this.width,d=this.height,u={width:l,height:d};return!e||"none"===e.alignX&&"none"===e.alignY?(n=l/s,r=d/i):("meet"===e.meetOrSlice&&(t=(l-s*(n=r=Nt.findScaleToFit(this._element,u)))/2,"Min"===e.alignX&&(o=-t),"Max"===e.alignX&&(o=t),t=(d-i*r)/2,"Min"===e.alignY&&(a=-t),"Max"===e.alignY&&(a=t)),"slice"===e.meetOrSlice&&(t=s-l/(n=r=Nt.findScaleToCover(this._element,u)),"Mid"===e.alignX&&(h=t/2),"Max"===e.alignX&&(h=t),t=i-d/r,"Mid"===e.alignY&&(c=t/2),"Max"===e.alignY&&(c=t),s=l/n,i=d/r)),{width:s,height:i,scaleX:n,scaleY:r,offsetLeft:o,offsetTop:a,cropX:h,cropY:c}}};ui.prototype.getSvgSrc=ui.prototype.getSrc,p(ui,"CSS_CANVAS","canvas-img"),p(ui,"fromURL",(function(t,e,s){Nt.loadImage(t,(function(t,i){e&&e(new ui(t,s),i)}),null,s&&s.crossOrigin)}));let pi=ui;const gi=Nt.toFixed,fi=/ +/g,_i=zt.clone;var Oi="fontFamily fontWeight fontSize text underline overline linethrough textAlign fontStyle lineHeight textBackgroundColor charSpacing styles direction path pathStartOffset pathSide".split(" ");const mi=class t extends Ps{constructor(t,e){super(),p(this,"_reNewline",/\r?\n/),p(this,"_reSpacesAndTabs",/[ \t\r]/g),p(this,"_reSpaceAndTab",/[ \t\r]/),p(this,"_reWords",/\S+/g),p(this,"type","text"),p(this,"fontSize",40),p(this,"fontWeight","normal"),p(this,"fontFamily","Times New Roman"),p(this,"underline",!1),p(this,"overline",!1),p(this,"linethrough",!1),p(this,"textAlign","left"),p(this,"fontStyle","normal"),p(this,"lineHeight",1.16),p(this,"superscript",{size:.6,baseline:-.35}),p(this,"subscript",{size:.6,baseline:.11}),p(this,"textBackgroundColor",""),p(this,"stateProperties",Ps.prototype.stateProperties.concat(Oi)),p(this,"cacheProperties",Ps.prototype.cacheProperties.concat(Oi)),p(this,"stroke",null),p(this,"shadow",null),p(this,"path",null),p(this,"pathStartOffset",0),p(this,"pathSide","left"),p(this,"_fontSizeFraction",.222),p(this,"offsets",{underline:.1,linethrough:-.315,overline:-.88}),p(this,"_fontSizeMult",1.13),p(this,"charSpacing",0),p(this,"styles",null),p(this,"_measuringContext",null),p(this,"deltaY",0),p(this,"direction","ltr"),p(this,"_styleProperties",["stroke","strokeWidth","fill","fontFamily","fontSize","fontWeight","fontStyle","underline","overline","linethrough","deltaY","textBackgroundColor"]),p(this,"__charBounds",[]),p(this,"CACHE_FONT_SIZE",400),p(this,"MIN_TEXT_WIDTH",2),p(this,"isText",!0),this.styles=e&&e.styles||{},this.text=t,this.__skipDimension=!0,this.setOptions(e),this.path&&this.setPathInfo(),this.__skipDimension=!1,this.initDimensions(),this.setCoords(),this.setupState({propertySet:"_dimensionAffectingProps"})}static get DEFAULT_SVG_FONT_SIZE(){return _t.DEFAULT_SVG_FONT_SIZE}static set DEFAULT_SVG_FONT_SIZE(t){_t.DEFAULT_SVG_FONT_SIZE=t}initialize(t,e){}setPathInfo(){var t=this.path;t&&(t.segmentsInfo=si.getPathSegmentsInfo(t.path))}getMeasuringContext(){return wt._measuringContext||(wt._measuringContext=this.canvas&&this.canvas.contextCache||Nt.createCanvasElement().getContext("2d")),wt._measuringContext}_splitText(){var 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.__skipDimension||(this._splitText(),this._clearCache(),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()),-1!==this.textAlign.indexOf("justify")&&this.enlargeSpaces(),this.saveState({propertySet:"_dimensionAffectingProps"}))}enlargeSpaces(){for(var t,e,s,i,n,r,o,a=0,h=this._textLines.length;a<h;a++)if(("justify"===this.textAlign||a!==h-1&&!this.isEndOfWrapping(a))&&(i=0,n=this._textLines[a],(e=this.getLineWidth(a))<this.width&&(o=this.textLines[a].match(this._reSpacesAndTabs)))){s=o.length,t=(this.width-e)/s;for(var c=0,l=n.length;c<=l;c++)r=this.__charBounds[a][c],this._reSpaceAndTab.test(n[c])?(r.width+=t,r.kernedWidth+=t,r.left+=i,i+=t):r.left+=i}}isEndOfWrapping(t){return t===this._textLines.length-1}missingNewlineOffset(t){return 1}toString(){return"#<Text ("+this.complexity()+'): { "text": "'+this.text+'", "fontFamily": "'+this.fontFamily+'" }>'}_getCacheCanvasDimensions(){var t=super._getCacheCanvasDimensions(),e=this.fontSize;return t.width+=e*t.zoomX,t.height+=e*t.zoomY,t}_render(t){var 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){"stroke"===this.paintFirst?(this._renderTextStroke(t),this._renderTextFill(t)):(this._renderTextFill(t),this._renderTextStroke(t))}_setTextStyles(t,e,s){t.textBaseline="alphabetic",t.font=this._getFontDeclaration(e,s)}calcTextWidth(){for(var t=this.getLineWidth(0),e=1,s=this._textLines.length;e<s;e++){var i=this.getLineWidth(e);i>t&&(t=i)}return t}_renderTextLine(t,e,s,i,n,r){this._renderChars(t,e,s,i,n,r)}_renderTextLinesBackground(t){if(this.textBackgroundColor||this.styleHas("textBackgroundColor")){for(var e,s,i,n,r,o,a,h=t.fillStyle,c=this._getLeftOffset(),l=this._getTopOffset(),d=0,u=0,p=this.path,g=0,f=this._textLines.length;g<f;g++)if(e=this.getHeightOfLine(g),this.textBackgroundColor||this.styleHas("textBackgroundColor",g)){i=this._textLines[g],s=this._getLineLeftOffset(g),u=0,d=0,n=this.getValueOfPropertyAt(g,0,"textBackgroundColor");for(var _=0,O=i.length;_<O;_++)r=this.__charBounds[g][_],o=this.getValueOfPropertyAt(g,_,"textBackgroundColor"),p?(t.save(),t.translate(r.renderLeft,r.renderTop),t.rotate(r.angle),t.fillStyle=o,o&&t.fillRect(-r.width/2,-e/this.lineHeight*(1-this._fontSizeFraction),r.width,e/this.lineHeight),t.restore()):o!==n?(a=c+s+d,"rtl"===this.direction&&(a=this.width-a-u),t.fillStyle=n,n&&t.fillRect(a,l,u,e/this.lineHeight),d=r.left,u=r.width,n=o):u+=r.kernedWidth;o&&!p&&(a=c+s+d,"rtl"===this.direction&&(a=this.width-a-u),t.fillStyle=o,t.fillRect(a,l,u,e/this.lineHeight)),l+=e}else l+=e;t.fillStyle=h,this._removeShadow(t)}}getFontCache(t){var e=t.fontFamily.toLowerCase();wt.charWidthsCache[e]||(wt.charWidthsCache[e]={});var s=wt.charWidthsCache[e],i=t.fontStyle.toLowerCase()+"_"+(t.fontWeight+"").toLowerCase();return s[i]||(s[i]={}),s[i]}_measureChar(t,e,s,i){var n,r,o,a,h=this.getFontCache(e),c=s+t,l=this._getFontDeclaration(e)===this._getFontDeclaration(i),d=e.fontSize/this.CACHE_FONT_SIZE;if(s&&void 0!==h[s]&&(o=h[s]),void 0!==h[t]&&(a=n=h[t]),l&&void 0!==h[c]&&(a=(r=h[c])-o),void 0===n||void 0===o||void 0===r){var u=this.getMeasuringContext();this._setTextStyles(u,e,!0)}return void 0===n&&(a=n=u.measureText(t).width,h[t]=n),void 0===o&&l&&s&&(o=u.measureText(s).width,h[s]=o),l&&void 0===r&&(r=u.measureText(c).width,h[c]=r,a=r-o),{width:n*d,kernedWidth:a*d}}getHeightOfChar(t,e){return this.getValueOfPropertyAt(t,e,"fontSize")}measureLine(t){var e=this._measureLine(t);return 0!==this.charSpacing&&(e.width-=this._getWidthOfCharSpacing()),e.width<0&&(e.width=0),e}_measureLine(t){var e,s,i,n,r,o,a=0,h=this._textLines[t],c=new Array(h.length),l=0,d=this.path,u="right"===this.pathSide;for(this.__charBounds[t]=c,e=0;e<h.length;e++)s=h[e],n=this._getGraphemeBox(s,t,e,i),c[e]=n,a+=n.kernedWidth,i=s;if(c[e]={left:n?n.left+n.width:0,width:0,kernedWidth:0,height:this.fontSize},d){switch(o=d.segmentsInfo[d.segmentsInfo.length-1].length,(r=si.getPointOnPath(d.path,0,d.segmentsInfo)).x+=d.pathOffset.x,r.y+=d.pathOffset.y,this.textAlign){case"left":l=u?o-a:0;break;case"center":l=(o-a)/2;break;case"right":l=u?0:o-a}for(l+=this.pathStartOffset*(u?-1:1),e=u?h.length-1:0;u?e>=0:e<h.length;u?e--:e++)n=c[e],l>o?l%=o:l<0&&(l+=o),this._setGraphemeOnPath(l,n,r),l+=n.kernedWidth}return{width:a,numOfSpaces:0}}_setGraphemeOnPath(t,e,s){var i=t+e.kernedWidth/2,n=this.path,r=si.getPointOnPath(n.path,i,n.segmentsInfo);e.renderLeft=r.x-s.x,e.renderTop=r.y-s.y,e.angle=r.angle+("right"===this.pathSide?Math.PI:0)}_getGraphemeBox(t,e,s,i,n){var r,o=this.getCompleteStyleDeclaration(e,s),a=i?this.getCompleteStyleDeclaration(e,s-1):{},h=this._measureChar(t,o,i,a),c=h.kernedWidth,l=h.width;0!==this.charSpacing&&(l+=r=this._getWidthOfCharSpacing(),c+=r);var d={width:l,left:0,height:o.fontSize,kernedWidth:c,deltaY:o.deltaY};if(s>0&&!n){var u=this.__charBounds[e][s-1];d.left=u.left+u.width+h.kernedWidth-h.width}return d}getHeightOfLine(t){if(this.__lineHeights[t])return this.__lineHeights[t];var e=this._textLines[t],s=this.getHeightOfChar(t,0);if(e)for(var i=1,n=e.length;i<n;i++)s=Math.max(this.getHeightOfChar(t,i),s);return this.__lineHeights[t]=s*this.lineHeight*this._fontSizeMult}calcTextHeight(){for(var t,e=0,s=0,i=this._textLines.length;s<i;s++)t=this.getHeightOfLine(s),e+=s===i-1?t/this.lineHeight:t;return e}_getLeftOffset(){return"ltr"===this.direction?-this.width/2:this.width/2}_getTopOffset(){return-this.height/2}_renderTextCommon(t,e){t.save();for(var s=0,i=this._getLeftOffset(),n=this._getTopOffset(),r=0,o=this._textLines.length;r<o;r++){var a=this.getHeightOfLine(r),h=a/this.lineHeight,c=this._getLineLeftOffset(r);this._renderTextLine(e,t,this._textLines[r],i+c,n+s+h,r),s+=a}t.restore()}_renderTextFill(t){!this.fill&&!this.styleHas("fill")||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,n,r){var o,a,h,c,l,d=this.getHeightOfLine(r),u=-1!==this.textAlign.indexOf("justify"),p="",g=0,f=this.path,_=!u&&0===this.charSpacing&&this.isEmptyStyles(r)&&!f,O="ltr"===this.direction,m="ltr"===this.direction?1:-1;if(e.save(),n-=d*this._fontSizeFraction/this.lineHeight,_)return e.direction=O?"ltr":"rtl",e.textAlign=O?"left":"right",this._renderChar(t,e,r,0,s.join(""),i,n,d),void e.restore();for(var v=0,A=s.length-1;v<=A;v++)c=v===A||this.charSpacing||f,p+=s[v],h=this.__charBounds[r][v],0===g?(i+=m*(h.kernedWidth-h.width),g+=h.width):g+=h.kernedWidth,u&&!c&&this._reSpaceAndTab.test(s[v])&&(c=!0),c||(o=o||this.getCompleteStyleDeclaration(r,v),a=this.getCompleteStyleDeclaration(r,v+1),c=this._hasStyleChanged(o,a)),c&&(f?(e.save(),e.translate(h.renderLeft,h.renderTop),e.rotate(h.angle),this._renderChar(t,e,r,v,p,-g/2,0,d),e.restore()):(l=i,e.direction=O?"ltr":"rtl",e.textAlign=O?"left":"right",this._renderChar(t,e,r,v,p,l,n,d)),p="",o=a,i+=m*g,g=0);e.restore()}_applyPatternGradientTransformText(t){var e,s=Nt.createCanvasElement(),i=this.width+this.strokeWidth,n=this.height+this.strokeWidth;return s.width=i,s.height=n,(e=s.getContext("2d")).beginPath(),e.moveTo(0,0),e.lineTo(i,0),e.lineTo(i,n),e.lineTo(0,n),e.closePath(),e.translate(i/2,n/2),e.fillStyle=t.toLive(e),this._applyPatternGradientTransform(e,t),e.fill(),e.createPattern(s,"no-repeat")}handleFiller(t,e,s){var i,n;return s.toLive?"percentage"===s.gradientUnits||s.gradientTransform||s.patternTransform?(i=-this.width/2,n=-this.height/2,t.translate(i,n),t[e]=this._applyPatternGradientTransformText(s),{offsetX:i,offsetY:n}):(t[e]=s.toLive(t,this),this._applyPatternGradientTransform(t,s)):(t[e]=s,{offsetX:0,offsetY:0})}_setStrokeStyles(t,e){return t.lineWidth=e.strokeWidth,t.lineCap=this.strokeLineCap,t.lineDashOffset=this.strokeDashOffset,t.lineJoin=this.strokeLineJoin,t.miterLimit=this.strokeMiterLimit,this.handleFiller(t,"strokeStyle",e.stroke)}_setFillStyles(t,e){return this.handleFiller(t,"fillStyle",e.fill)}_renderChar(t,e,s,i,n,r,o){var a,h,c=this._getStyleDeclaration(s,i),l=this.getCompleteStyleDeclaration(s,i),d="fillText"===t&&l.fill,u="strokeText"===t&&l.stroke&&l.strokeWidth;!u&&!d||(e.save(),d&&(a=this._setFillStyles(e,l)),u&&(h=this._setStrokeStyles(e,l)),e.font=this._getFontDeclaration(l),c&&c.textBackgroundColor&&this._removeShadow(e),c&&c.deltaY&&(o+=c.deltaY),d&&e.fillText(n,r-a.offsetX,o-a.offsetY),u&&e.strokeText(n,r-h.offsetX,o-h.offsetY),e.restore())}setSuperscript(t,e){return this._setScript(t,e,this.superscript)}setSubscript(t,e){return this._setScript(t,e,this.subscript)}_setScript(t,e,s){var i=this.get2DCursorLocation(t,!0),n=this.getValueOfPropertyAt(i.lineIndex,i.charIndex,"fontSize"),r=this.getValueOfPropertyAt(i.lineIndex,i.charIndex,"deltaY"),o={fontSize:n*s.size,deltaY:r+n*s.baseline};return this.setSelectionStyles(o,t,e),this}_hasStyleChanged(t,e){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.deltaY!==e.deltaY}_hasStyleChangedForSvg(t,e){return this._hasStyleChanged(t,e)||t.overline!==e.overline||t.underline!==e.underline||t.linethrough!==e.linethrough}_getLineLeftOffset(t){var e=this.getLineWidth(t),s=this.width-e,i=this.textAlign,n=this.direction,r=this.isEndOfWrapping(t),o=0;return"justify"===i||"justify-center"===i&&!r||"justify-right"===i&&!r||"justify-left"===i&&!r?0:("center"===i&&(o=s/2),"right"===i&&(o=s),"justify-center"===i&&(o=s/2),"justify-right"===i&&(o=s),"rtl"===n&&(o-=s),o)}_clearCache(){this.__lineWidths=[],this.__lineHeights=[],this.__charBounds=[]}_shouldClearDimensionCache(){var t=this._forceClearCache;return t||(t=this.hasStateChanged("_dimensionAffectingProps")),t&&(this.dirty=!0,this._forceClearCache=!1),t}getLineWidth(t){return this.__lineWidths[t]?this.__lineWidths[t]:(e=""===this._textLines[t]?0:this.measureLine(t).width,this.__lineWidths[t]=e,e);var e}_getWidthOfCharSpacing(){return 0!==this.charSpacing?this.fontSize*this.charSpacing/1e3:0}getValueOfPropertyAt(t,e,s){var i=this._getStyleDeclaration(t,e);return i&&typeof i[s]<"u"?i[s]:this[s]}_renderTextDecoration(t,e){if(this[e]||this.styleHas(e)){for(var s,i,n,r,o,a,h,c,l,d,u,p,g,f,_,O,m=this._getLeftOffset(),v=this._getTopOffset(),A=this.path,b=this._getWidthOfCharSpacing(),T=this.offsets[e],y=0,S=this._textLines.length;y<S;y++)if(s=this.getHeightOfLine(y),this[e]||this.styleHas(e,y)){h=this._textLines[y],f=s/this.lineHeight,r=this._getLineLeftOffset(y),d=0,u=0,c=this.getValueOfPropertyAt(y,0,e),O=this.getValueOfPropertyAt(y,0,"fill"),l=v+f*(1-this._fontSizeFraction),i=this.getHeightOfChar(y,0),o=this.getValueOfPropertyAt(y,0,"deltaY");for(var w=0,I=h.length;w<I;w++)if(p=this.__charBounds[y][w],g=this.getValueOfPropertyAt(y,w,e),_=this.getValueOfPropertyAt(y,w,"fill"),n=this.getHeightOfChar(y,w),a=this.getValueOfPropertyAt(y,w,"deltaY"),A&&g&&_)t.save(),t.fillStyle=O,t.translate(p.renderLeft,p.renderTop),t.rotate(p.angle),t.fillRect(-p.kernedWidth/2,T*n+a,p.kernedWidth,this.fontSize/15),t.restore();else if((g!==c||_!==O||n!==i||a!==o)&&u>0){var x=m+r+d;"rtl"===this.direction&&(x=this.width-x-u),c&&O&&(t.fillStyle=O,t.fillRect(x,l+T*i+o,u,this.fontSize/15)),d=p.left,u=p.width,c=g,O=_,i=n,o=a}else u+=p.kernedWidth;x=m+r+d,"rtl"===this.direction&&(x=this.width-x-u),t.fillStyle=_,g&&_&&t.fillRect(x,l+T*i+o,u-b,this.fontSize/15),v+=s}else v+=s;this._removeShadow(t)}}_getFontDeclaration(e,s){var i=e||this,n=this.fontFamily,r=t.genericFonts.indexOf(n.toLowerCase())>-1,o=void 0===n||n.indexOf("'")>-1||n.indexOf(",")>-1||n.indexOf('"')>-1||r?i.fontFamily:'"'+i.fontFamily+'"';return[St?i.fontWeight:i.fontStyle,St?i.fontStyle:i.fontWeight,s?this.CACHE_FONT_SIZE+"px":i.fontSize+"px",o].join(" ")}render(t){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._shouldClearDimensionCache()&&this.initDimensions(),super.render(t)))}_splitTextIntoLines(t){for(var e=t.split(this._reNewline),s=new Array(e.length),i=["\n"],n=[],r=0;r<e.length;r++)s[r]=nt.graphemeSplit(e[r]),n=n.concat(s[r],i);return n.pop(),{_unwrappedLines:s,lines:e,graphemeText:n,graphemeLines:s}}toObject(t){var e=Oi.concat(t),s=super.toObject(e);return s.styles=_i(this.styles,!0),s.path&&(s.path=this.path.toObject()),s}set(t,e){super.set(t,e);var s=!1,i=!1;if("object"==typeof t)for(var n in t)"path"===n&&this.setPathInfo(),s=s||-1!==this._dimensionAffectingProps.indexOf(n),i=i||"path"===n;else s=-1!==this._dimensionAffectingProps.indexOf(t),i="path"===t;return i&&this.setPathInfo(),s&&(this.initDimensions(),this.setCoords()),this}complexity(){return 1}static positionFromTspan(t){}};p(mi,"genericFonts",["sans-serif","serif","cursive","fantasy","monospace"]),mi.prototype._dimensionAffectingProps=["fontSize","fontWeight","fontFamily","fontStyle","lineHeight","text","charSpacing","textAlign","styles","path","pathStartOffset","pathSide"],mi.prototype.controls={};let vi=mi;pt(vi,[class{_toSVG(){var t=this._getSVGLeftTopOffsets(),e=this._getSVGTextAndBg(t.textTop,t.textLeft);return this._wrapSVGTextAndBg(e)}toSVG(t){return this._createBaseSVGMarkup(this._toSVG(),{reviver:t,noStyle:!0,withShadow:!0})}_getSVGLeftTopOffsets(){return{textLeft:-this.width/2,textTop:-this.height/2,lineTop:this.getHeightOfLine(0)}}_wrapSVGTextAndBg(t){var e=this.getSvgTextDecoration(this);return[t.textBgRects.join(""),'\t\t<text xml:space="preserve" ',this.fontFamily?'font-family="'+this.fontFamily.replace(/"/g,"'")+'" ':"",this.fontSize?'font-size="'+this.fontSize+'" ':"",this.fontStyle?'font-style="'+this.fontStyle+'" ':"",this.fontWeight?'font-weight="'+this.fontWeight+'" ':"",e?'text-decoration="'+e+'" ':"",'style="',this.getSvgStyles(!0),'"',this.addPaintOrder()," >",t.textSpans.join(""),"</text>\n"]}_getSVGTextAndBg(t,e){var s,i=[],n=[],r=t;this._setSVGBg(n);for(var o=0,a=this._textLines.length;o<a;o++)s=this._getLineLeftOffset(o),(this.textBackgroundColor||this.styleHas("textBackgroundColor",o))&&this._setSVGTextLineBg(n,o,e+s,r),this._setSVGTextLineText(i,o,e+s,r),r+=this.getHeightOfLine(o);return{textSpans:i,textBgRects:n}}_createTextCharSpan(t,e,s,i){var n=t!==t.trim()||t.match(fi),r=this.getSvgSpanStyles(e,n),o=r?'style="'+r+'"':"",a=e.deltaY,h="",c=Ps.NUM_FRACTION_DIGITS;return a&&(h=' dy="'+gi(a,c)+'" '),['<tspan x="',gi(s,c),'" y="',gi(i,c),'" ',h,o,">",nt.escapeXml(t),"</tspan>"].join("")}_setSVGTextLineText(t,e,s,i){var n,r,o,a,h,c=this.getHeightOfLine(e),l=-1!==this.textAlign.indexOf("justify"),d="",u=0,p=this._textLines[e];i+=c*(1-this._fontSizeFraction)/this.lineHeight;for(var g=0,f=p.length-1;g<=f;g++)h=g===f||this.charSpacing,d+=p[g],o=this.__charBounds[e][g],0===u?(s+=o.kernedWidth-o.width,u+=o.width):u+=o.kernedWidth,l&&!h&&this._reSpaceAndTab.test(p[g])&&(h=!0),h||(n=n||this.getCompleteStyleDeclaration(e,g),r=this.getCompleteStyleDeclaration(e,g+1),h=this._hasStyleChangedForSvg(n,r)),h&&(a=this._getStyleDeclaration(e,g)||{},t.push(this._createTextCharSpan(d,a,s,i)),d="",n=r,s+=u,u=0)}_pushTextBgRect(t,e,s,i,n,r){var o=Ps.NUM_FRACTION_DIGITS;t.push("\t\t<rect ",this._getFillAttributes(e),' x="',gi(s,o),'" y="',gi(i,o),'" width="',gi(n,o),'" height="',gi(r,o),'"></rect>\n')}_setSVGTextLineBg(t,e,s,i){for(var n,r,o=this._textLines[e],a=this.getHeightOfLine(e)/this.lineHeight,h=0,c=0,l=this.getValueOfPropertyAt(e,0,"textBackgroundColor"),d=0,u=o.length;d<u;d++)n=this.__charBounds[e][d],(r=this.getValueOfPropertyAt(e,d,"textBackgroundColor"))!==l?(l&&this._pushTextBgRect(t,l,s+c,i,h,a),c=n.left,h=n.width,l=r):h+=n.kernedWidth;r&&this._pushTextBgRect(t,r,s+c,i,h,a)}_getFillAttributes(t){var e=t&&"string"==typeof t?new ut(t):"";return e&&e.getSource()&&1!==e.getAlpha()?'opacity="'+e.getAlpha()+'" fill="'+e.setAlpha(1).toRgb()+'"':'fill="'+t+'"'}_getSVGLineTopOffset(t){for(var e,s=0,i=0;i<t;i++)s+=this.getHeightOfLine(i);return e=this.getHeightOfLine(i),{lineTop:s,offset:(this._fontSizeMult-this._fontSizeFraction)*e/(this.lineHeight*this._fontSizeMult)}}getSvgStyles(t){return Ps.prototype.getSvgStyles.call(this,t)+" white-space: pre;"}},class{isEmptyStyles(t){if(!this.styles||typeof t<"u"&&!this.styles[t])return!0;var e=typeof t>"u"?this.styles:{line:this.styles[t]};for(var s in e)for(var i in e[s])for(var n in e[s][i])return!1;return!0}styleHas(t,e){if(!this.styles||!t||""===t||typeof e<"u"&&!this.styles[e])return!1;var s=typeof e>"u"?this.styles:{0:this.styles[e]};for(var i in s)for(var n in s[i])if(typeof s[i][n][t]<"u")return!0;return!1}cleanStyle(t){if(!this.styles||!t||""===t)return!1;var e,s,i=this.styles,n=0,r=!0,o=0;for(var a in i){for(var h in e=0,i[a]){var c;n++,(c=i[a][h]).hasOwnProperty(t)?(s?c[t]!==s&&(r=!1):s=c[t],c[t]===this[t]&&delete c[t]):r=!1,0!==Object.keys(c).length?e++:delete i[a][h]}0===e&&delete i[a]}for(var l=0;l<this._textLines.length;l++)o+=this._textLines[l].length;r&&n===o&&(this[t]=s,this.removeStyle(t))}removeStyle(t){if(this.styles&&t&&""!==t){var e,s,i,n=this.styles;for(s in n){for(i in e=n[s])delete e[i][t],0===Object.keys(e[i]).length&&delete e[i];0===Object.keys(e).length&&delete n[s]}}}_extendStyles(t,e){var s=this.get2DCursorLocation(t);this._getLineStyle(s.lineIndex)||this._setLineStyle(s.lineIndex),this._getStyleDeclaration(s.lineIndex,s.charIndex)||this._setStyleDeclaration(s.lineIndex,s.charIndex,{}),zt.extend(this._getStyleDeclaration(s.lineIndex,s.charIndex),e)}get2DCursorLocation(t,e){typeof t>"u"&&(t=this.selectionStart);for(var s=e?this._unwrappedTextLines:this._textLines,i=s.length,n=0;n<i;n++){if(t<=s[n].length)return{lineIndex:n,charIndex:t};t-=s[n].length+this.missingNewlineOffset(n)}return{lineIndex:n-1,charIndex:s[n-1].length<t?s[n-1].length:t}}getSelectionStyles(t,e,s){typeof t>"u"&&(t=this.selectionStart||0),typeof e>"u"&&(e=this.selectionEnd||t);for(var i=[],n=t;n<e;n++)i.push(this.getStyleAtPosition(n,s));return i}getStyleAtPosition(t,e){var s=this.get2DCursorLocation(t);return(e?this.getCompleteStyleDeclaration(s.lineIndex,s.charIndex):this._getStyleDeclaration(s.lineIndex,s.charIndex))||{}}setSelectionStyles(t,e,s){typeof e>"u"&&(e=this.selectionStart||0),typeof s>"u"&&(s=this.selectionEnd||e);for(var i=e;i<s;i++)this._extendStyles(i,t);return this._forceClearCache=!0,this}_getStyleDeclaration(t,e){var s=this.styles&&this.styles[t];return s?s[e]:null}getCompleteStyleDeclaration(t,e){for(var s,i=this._getStyleDeclaration(t,e)||{},n={},r=0;r<this._styleProperties.length;r++)n[s=this._styleProperties[r]]=typeof i[s]>"u"?this[s]:i[s];return n}_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]}}]),function(t,e){t.mtr=e.mtr,t.tr=e.tr,t.br=e.br,t.tl=e.tl,t.bl=e.bl,t.mt=e.mt,t.mb=e.mb,t.mr=new gs({x:.5,y:0,actionHandler:ds.changeWidth,cursorStyleHandler:fs,actionName:"resizing"}),t.ml=new gs({x:-.5,y:0,actionHandler:ds.changeWidth,cursorStyleHandler:fs,actionName:"resizing"})}(vi.prototype.controls,Ps.prototype.controls),pt(class extends vi{constructor(){super(...arguments),p(this,"type","textbox"),p(this,"minWidth",20),p(this,"dynamicMinWidth",2),p(this,"__cachedLines",null),p(this,"lockScalingFlip",!0),p(this,"noScaleCache",!1),p(this,"_dimensionAffectingProps",vi.prototype._dimensionAffectingProps.concat("width")),p(this,"_wordJoiners",/[ \t\r]/),p(this,"splitByGrapheme",!1)}initDimensions(){this.__skipDimension||(this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this._clearCache(),this.dynamicMinWidth=0,this._styleMap=this._generateStyleMap(this._splitText()),this.dynamicMinWidth>this.width&&this._set("width",this.dynamicMinWidth),-1!==this.textAlign.indexOf("justify")&&this.enlargeSpaces(),this.height=this.calcTextHeight(),this.saveState({propertySet:"_dimensionAffectingProps"}))}_generateStyleMap(t){for(var e=0,s=0,i=0,n={},r=0;r<t.graphemeLines.length;r++)"\n"===t.graphemeText[i]&&r>0?(s=0,i++,e++):!this.splitByGrapheme&&this._reSpaceAndTab.test(t.graphemeText[i])&&r>0&&(s++,i++),n[r]={line:e,offset:s},i+=t.graphemeLines[r].length,s+=t.graphemeLines[r].length;return n}styleHas(t,e){if(this._styleMap&&!this.isWrapping){var s=this._styleMap[e];s&&(e=s.line)}return vi.prototype.styleHas.call(this,t,e)}isEmptyStyles(t){if(!this.styles)return!0;var e,s,i=0,n=!1,r=this._styleMap[t],o=this._styleMap[t+1];for(var a in r&&(t=r.line,i=r.offset),o&&(n=o.line===t,e=o.offset),s=typeof t>"u"?this.styles:{line:this.styles[t]})for(var h in s[a])if(h>=i&&(!n||h<e))for(var c in s[a][h])return!1;return!0}_getStyleDeclaration(t,e){if(this._styleMap&&!this.isWrapping){var s=this._styleMap[t];if(!s)return null;t=s.line,e=s.offset+e}return super._getStyleDeclaration(t,e)}_setStyleDeclaration(t,e,s){var i=this._styleMap[t];t=i.line,e=i.offset+e,this.styles[t][e]=s}_deleteStyleDeclaration(t,e){var s=this._styleMap[t];t=s.line,e=s.offset+e,delete this.styles[t][e]}_getLineStyle(t){var e=this._styleMap[t];return!!this.styles[e.line]}_setLineStyle(t){var e=this._styleMap[t];this.styles[e.line]={}}_wrapText(t,e){var s,i=[];for(this.isWrapping=!0,s=0;s<t.length;s++)i=i.concat(this._wrapLine(t[s],s,e));return this.isWrapping=!1,i}_measureWord(t,e,s){var i,n=0;s=s||0;for(var r=0,o=t.length;r<o;r++)n+=this._getGraphemeBox(t[r],e,r+s,i,!0).kernedWidth,i=t[r];return n}_wrapLine(t,e,s,i){var n=0,r=this.splitByGrapheme,o=[],a=[],h=r?nt.graphemeSplit(t):t.split(this._wordJoiners),c="",l=0,d=r?"":" ",u=0,p=0,g=0,f=!0,_=this._getWidthOfCharSpacing();i=i||0,0===h.length&&h.push([]),s-=i;for(var O=0;O<h.length;O++)c=r?h[O]:nt.graphemeSplit(h[O]),u=this._measureWord(c,e,l),l+=c.length,(n+=p+u-_)>s&&!f?(o.push(a),a=[],n=u,f=!0):n+=_,!f&&!r&&a.push(d),a=a.concat(c),p=r?0:this._measureWord([d],e,l),l++,f=!1,u>g&&(g=u);return O&&o.push(a),g+i>this.dynamicMinWidth&&(this.dynamicMinWidth=g-_+i),o}isEndOfWrapping(t){return!this._styleMap[t+1]||this._styleMap[t+1].line!==this._styleMap[t].line}missingNewlineOffset(t){return this.splitByGrapheme?this.isEndOfWrapping(t)?1:0:1}_splitTextIntoLines(t){for(var e=vi.prototype._splitTextIntoLines.call(this,t),s=this._wrapText(e.lines,this.width),i=new Array(s.length),n=0;n<s.length;n++)i[n]=s[n].join("");return e.lines=i,e.graphemeLines=s,e}getMinWidth(){return Math.max(this.minWidth,this.dynamicMinWidth)}_removeExtraneousStyles(){var t={};for(var e in this._styleMap)this._textLines[e]&&(t[this._styleMap[e].line]=1);for(var e in this.styles)t[e]||delete this.styles[e]}toObject(t){return super.toObject(["minWidth","splitByGrapheme"].concat(t))}},[$t]);const Ai=!!bt.createElement("div").attachEvent,bi=["touchstart","touchmove","touchend"];function Ti(t,e,s,i){t&&t.addEventListener(e,s,!Ai&&i)}function yi(t,e,s,i){t&&t.removeEventListener(e,s,!Ai&&i)}function Si(t){return bi.indexOf(t.type)>-1||"touch"===t.pointerType}const wi={addListener:Ti,removeListener:yi,getPointer:function(t){var e=t.target,s=Ie.getScrollLeftTop(e),i=function(t){var e=t.changedTouches;return e&&e[0]?e[0]:t}(t);return{x:i.clientX+s.left,y:i.clientY+s.top}},isTouchEvent:Si},Ii={passive:!1};function xi(t,e){return t.button&&t.button===e-1}const Ei={mainTouchId:null,_fire:ds.fireEvent,_initEventListeners(){this.removeListeners(),this._bindEvents(),this.addOrRemove(Ti)},_getEventPrefix(){return this.enablePointerEvents?"pointer":"mouse"},addOrRemove(t){var e=this.upperCanvasEl,s=this._getEventPrefix();t(At,"resize",this._onResize),t(e,s+"down",this._onMouseDown),t(e,s+"move",this._onMouseMove,Ii),t(e,s+"out",this._onMouseOut),t(e,s+"enter",this._onMouseEnter),t(e,"wheel",this._onMouseWheel),t(e,"contextmenu",this._onContextMenu),t(e,"dblclick",this._onDoubleClick),t(e,"dragover",this._onDragOver),t(e,"dragenter",this._onDragEnter),t(e,"dragleave",this._onDragLeave),t(e,"drop",this._onDrop),this.enablePointerEvents||t(e,"touchstart",this._onTouchStart,Ii)},removeListeners(){this.addOrRemove(yi);var t=this._getEventPrefix();yi(bt,t+"up",this._onMouseUp),yi(bt,"touchend",this._onTouchEnd,Ii),yi(bt,t+"move",this._onMouseMove,Ii),yi(bt,"touchmove",this._onMouseMove,Ii)},_bindEvents(){this.eventsBound||(this._onMouseDown=this._onMouseDown.bind(this),this._onTouchStart=this._onTouchStart.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this._onMouseUp=this._onMouseUp.bind(this),this._onTouchEnd=this._onTouchEnd.bind(this),this._onResize=this._onResize.bind(this),this._onMouseWheel=this._onMouseWheel.bind(this),this._onMouseOut=this._onMouseOut.bind(this),this._onMouseEnter=this._onMouseEnter.bind(this),this._onContextMenu=this._onContextMenu.bind(this),this._onDoubleClick=this._onDoubleClick.bind(this),this._onDragOver=this._onDragOver.bind(this),this._onDragEnter=this._simpleEventHandler.bind(this,"dragenter"),this._onDragLeave=this._simpleEventHandler.bind(this,"dragleave"),this._onDrop=this._simpleEventHandler.bind(this,"drop"),this.eventsBound=!0)},_onMouseWheel(t){this.__onMouseWheel(t)},_onMouseOut(t){var e=this._hoveredTarget;this.fire("mouse:out",{target:e,e:t}),this._hoveredTarget=null,e&&e.fire("mouseout",{e:t});var s=this;this._hoveredTargets.forEach((function(i){s.fire("mouse:out",{target:e,e:t}),i&&e.fire("mouseout",{e:t})})),this._hoveredTargets=[],this._iTextInstances&&this._iTextInstances.forEach((function(t){t.isEditing&&t.hiddenTextarea.focus()}))},_onMouseEnter(t){!this._currentTransform&&!this.findTarget(t)&&(this.fire("mouse:over",{target:null,e:t}),this._hoveredTarget=null,this._hoveredTargets=[])},_onDragOver(t){t.preventDefault();var e=this._simpleEventHandler("dragover",t);this._fireEnterLeaveEvents(e,t)},_onContextMenu(t){return this.stopContextMenu&&(t.stopPropagation(),t.preventDefault()),!1},_onDoubleClick(t){this._cacheTransformEventData(t),this._handleEvent(t,"dblclick"),this._resetTransformEventData(t)},getPointerId(t){var 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){t.preventDefault(),null===this.mainTouchId&&(this.mainTouchId=this.getPointerId(t)),this.__onMouseDown(t),this._resetTransformEventData();var e=this.upperCanvasEl,s=this._getEventPrefix();Ti(bt,"touchend",this._onTouchEnd,Ii),Ti(bt,"touchmove",this._onMouseMove,Ii),yi(e,s+"down",this._onMouseDown)},_onMouseDown(t){this.__onMouseDown(t),this._resetTransformEventData();var e=this.upperCanvasEl,s=this._getEventPrefix();yi(e,s+"move",this._onMouseMove,Ii),Ti(bt,s+"up",this._onMouseUp),Ti(bt,s+"move",this._onMouseMove,Ii)},_onTouchEnd(t){if(!(t.touches.length>0)){this.__onMouseUp(t),this._resetTransformEventData(),this.mainTouchId=null;var e=this._getEventPrefix();yi(bt,"touchend",this._onTouchEnd,Ii),yi(bt,"touchmove",this._onMouseMove,Ii);var s=this;this._willAddMouseDown&&clearTimeout(this._willAddMouseDown),this._willAddMouseDown=setTimeout((function(){Ti(s.upperCanvasEl,e+"down",s._onMouseDown),s._willAddMouseDown=0}),400)}},_onMouseUp(t){this.__onMouseUp(t),this._resetTransformEventData();var e=this.upperCanvasEl,s=this._getEventPrefix();this._isMainEvent(t)&&(yi(bt,s+"up",this._onMouseUp),yi(bt,s+"move",this._onMouseMove,Ii),Ti(e,s+"move",this._onMouseMove,Ii))},_onMouseMove(t){!this.allowTouchScrolling&&t.preventDefault&&t.preventDefault(),this.__onMouseMove(t)},_onResize(){this.calcOffset()},_shouldRender(t){var e=this._activeObject;return!!(!!e!=!!t||e&&t&&e!==t)||(e&&e.isEditing,!1)},__onMouseUp(t){var e,s=this._currentTransform,i=this._groupSelector,n=!1,r=!i||0===i.left&&0===i.top;if(this._cacheTransformEventData(t),e=this._target,this._handleEvent(t,"up:before"),xi(t,3))this.fireRightClick&&this._handleEvent(t,"up",3,r);else{if(xi(t,2))return this.fireMiddleClick&&this._handleEvent(t,"up",2,r),void this._resetTransformEventData();if(this.isDrawingMode&&this._isCurrentlyDrawing)this._onMouseUpInDrawingMode(t);else if(this._isMainEvent(t)){if(s&&(this._finalizeCurrentTransform(t),n=s.actionPerformed),!r){var o=e===this._activeObject;this._maybeGroupObjects(t),n||(n=this._shouldRender(e)||!o&&e===this._activeObject)}if(e){if(e.selectable&&e!==this._activeObject&&"up"===e.activeOn)this.setActiveObject(e,t),n=!0;else{var a=e._findTargetCorner(this.getPointer(t,!0),Si(t)),h=e.controls[a],c=h&&h.getMouseUpHandler(t,e,h);if(c){var l=this.getPointer(t);c(t,s,l.x,l.y)}}e.isMoving=!1}this._setCursorFromEvent(t,e),this._handleEvent(t,"up",1,r),this._groupSelector=null,this._currentTransform=null,e&&(e.__corner=0),n?this.requestRenderAll():r||this.renderTop()}}},_simpleEventHandler(t,e){var s=this.findTarget(e),i=this.targets,n={e,target:s,subTargets:i};if(this.fire(t,n),s&&s.fire(t,n),!i)return s;for(var r=0;r<i.length;r++)i[r].fire(t,n);return s},_handleEvent(t,e,s,i){var n=this._target,r=this.targets||[],o={e:t,target:n,subTargets:r,button:s||1,isClick:i||!1,pointer:this._pointer,absolutePointer:this._absolutePointer,transform:this._currentTransform};"up"===e&&(o.currentTarget=this.findTarget(t),o.currentSubTargets=this.targets),this.fire("mouse:"+e,o),n&&n.fire("mouse"+e,o);for(var a=0;a<r.length;a++)r[a].fire("mouse"+e,o)},_finalizeCurrentTransform(t){var e,s=this._currentTransform,i=s.target,n={e:t,target:i,transform:s,action:s.action};i._scaling&&(i._scaling=!1),i.setCoords(),(s.actionPerformed||this.stateful&&i.hasStateChanged())&&(s.actionPerformed&&(e=this._addEventOptions(n,s),this._fire(e,n)),this._fire("modified",n))},_addEventOptions(t,e){var s,i;switch(e.action){case"scaleX":s="scaled",i="x";break;case"scaleY":s="scaled",i="y";break;case"skewX":s="skewed",i="x";break;case"skewY":s="skewed",i="y";break;case"scale":s="scaled",i="equally";break;case"rotate":s="rotated";break;case"drag":s="moved"}return t.by=i,s},_onMouseDownInDrawingMode(t){this._isCurrentlyDrawing=!0,this.getActiveObject()&&this.discardActiveObject(t).requestRenderAll();var e=this.getPointer(t);this.freeDrawingBrush.onMouseDown(e,{e:t,pointer:e}),this._handleEvent(t,"down")},_onMouseMoveInDrawingMode(t){if(this._isCurrentlyDrawing){var e=this.getPointer(t);this.freeDrawingBrush.onMouseMove(e,{e:t,pointer:e})}this.setCursor(this.freeDrawingCursor),this._handleEvent(t,"move")},_onMouseUpInDrawingMode(t){var e=this.getPointer(t);this._isCurrentlyDrawing=this.freeDrawingBrush.onMouseUp({e:t,pointer:e}),this._handleEvent(t,"up")},__onMouseDown(t){this._cacheTransformEventData(t),this._handleEvent(t,"down:before");var e=this._target;if(xi(t,3))this.fireRightClick&&this._handleEvent(t,"down",3);else if(xi(t,2))this.fireMiddleClick&&this._handleEvent(t,"down",2);else if(this.isDrawingMode)this._onMouseDownInDrawingMode(t);else if(this._isMainEvent(t)&&!this._currentTransform){var s=this._pointer;this._previousPointer=s;var i=this._shouldRender(e),n=this._shouldGroup(t,e);if(this._shouldClearSelection(t,e)?this.discardActiveObject(t):n&&(this._handleGrouping(t,e),e=this._activeObject),this.selection&&(!e||!e.selectable&&!e.isEditing&&e!==this._activeObject)&&(this._groupSelector={ex:this._absolutePointer.x,ey:this._absolutePointer.y,top:0,left:0}),e){var r=e===this._activeObject;e.selectable&&"down"===e.activeOn&&this.setActiveObject(e,t);var o=e._findTargetCorner(this.getPointer(t,!0),Si(t));if(e.__corner=o,e===this._activeObject&&(o||!n)){this._setupCurrentTransform(t,e,r);var a=e.controls[o],h=(s=this.getPointer(t),a&&a.getMouseDownHandler(t,e,a));h&&h(t,this._currentTransform,s.x,s.y)}}this._handleEvent(t,"down"),(i||n)&&this.requestRenderAll()}},_resetTransformEventData(){this._target=null,this._pointer=null,this._absolutePointer=null},_cacheTransformEventData(t){this._resetTransformEventData(),this._pointer=this.getPointer(t,!0),this._absolutePointer=this.restorePointerVpt(this._pointer),this._target=this._currentTransform?this._currentTransform.target:this.findTarget(t)||null},_beforeTransform(t){var e=this._currentTransform;this.stateful&&e.target.saveState(),this.fire("before:transform",{e:t,transform:e})},__onMouseMove(t){var e,s;if(this._handleEvent(t,"move:before"),this._cacheTransformEventData(t),this.isDrawingMode)this._onMouseMoveInDrawingMode(t);else if(this._isMainEvent(t)){var i=this._groupSelector;i?(s=this._absolutePointer,i.left=s.x-i.ex,i.top=s.y-i.ey,this.renderTop()):this._currentTransform?this._transformObject(t):(e=this.findTarget(t)||null,this._setCursorFromEvent(t,e),this._fireOverOutEvents(e,t)),this._handleEvent(t,"move"),this._resetTransformEventData()}},_fireOverOutEvents(t,e){var s=this._hoveredTarget,i=this._hoveredTargets,n=this.targets,r=Math.max(i.length,n.length);this.fireSyntheticInOutEvents(t,e,{oldTarget:s,evtOut:"mouseout",canvasEvtOut:"mouse:out",evtIn:"mouseover",canvasEvtIn:"mouse:over"});for(var o=0;o<r;o++)this.fireSyntheticInOutEvents(n[o],e,{oldTarget:i[o],evtOut:"mouseout",evtIn:"mouseover"});var a=new Set([t,...n]),h=new Set([s,i]),c=new Set([t,...n,s,...i]),l=[],d=[];for(let t of c)a.has(t)&&!h.has(t)&&l.push(t),!a.has(t)&&h.has(t)&&d.push(t);var u=Math.max(l.length,d.length);for(o=0;o<u;o++)this.fireSyntheticInOutEvents(l[o],e,{oldTarget:d[o],evtOut:"abs_mouseout",evtIn:"abs_mouseover"});this._hoveredTarget=t,this._hoveredTargets=this.targets.concat()},_fireEnterLeaveEvents(t,e){var s=this._draggedoverTarget,i=this._hoveredTargets,n=this.targets,r=Math.max(i.length,n.length);this.fireSyntheticInOutEvents(t,e,{oldTarget:s,evtOut:"dragleave",evtIn:"dragenter"});for(var o=0;o<r;o++)this.fireSyntheticInOutEvents(n[o],e,{oldTarget:i[o],evtOut:"dragleave",evtIn:"dragenter"});this._draggedoverTarget=t},fireSyntheticInOutEvents(t,e,s){var i,n,r,o=s.oldTarget,a=o!==t,h=s.canvasEvtIn,c=s.canvasEvtOut;a&&(i={e,target:t,previousTarget:o},n={e,target:o,nextTarget:t}),r=t&&a,o&&a&&(c&&this.fire(c,n),o.fire(s.evtOut,n)),r&&(h&&this.fire(h,i),t.fire(s.evtIn,i))},__onMouseWheel(t){this._cacheTransformEventData(t),this._handleEvent(t,"wheel"),this._resetTransformEventData()},_transformObject(t){var e=this.getPointer(t),s=this._currentTransform;s.reset=!1,s.shiftKey=t.shiftKey,s.altKey=t[this.centeredKey],this._performTransformAction(t,s,e),s.actionPerformed&&this.requestRenderAll()},_performTransformAction(t,e,s){const i=Date.now(),n=Math.abs(t.clientX-e.event.clientX),r=Math.abs(t.clientY-e.event.clientY),o=Math.sqrt(n*n+r*r);if(i-e.mouseDownTimestamp>80||o>5){var a=s.x,h=s.y,c=e.action,l=!1,d=e.actionHandler;d&&(l=d(t,e,a,h)),"drag"===c&&l&&(e.target.isMoving=!0,this.setCursor(e.target.moveCursor||this.moveCursor)),e.actionPerformed=e.actionPerformed||l}},_setCursorFromEvent(t,e){if(!e)return this.setCursor(this.defaultCursor),!1;var s=e.hoverCursor||this.hoverCursor,i=this._activeObject&&"activeSelection"===this._activeObject.type?this._activeObject:null,n=(!i||!i.contains(e))&&e._findTargetCorner(this.getPointer(t,!0));n?this.setCursor(this.getCornerCursor(n,e,t)):(e.subTargetCheck&&this.targets.concat().reverse().map((function(t){s=t.hoverCursor||s})),this.setCursor(s))},getCornerCursor(t,e,s){var i=e.controls[t];return i.cursorStyleHandler(s,i,e)}},ki=Math.min,Ci=Math.max,Pi=wi.getPointer,Ni=Nt.degreesToRadians,Ri=wi.isTouchEvent;let Li=class extends Me{constructor(t,e){super(t,e),p(this,"isRenderingTop",0),this._initInteractive(),this._createCacheCanvas()}_initInteractive(){this._currentTransform=null,this._groupSelector=null,this._initWrapperElement(),this._createUpperCanvas(),this._initEventListeners(),this._initRetinaScaling(),this.calcOffset()}_chooseObjectsToRender(){const t=this.getActiveObjects();let e,s,i;if(t.length>0&&!this.preserveObjectStacking){s=[],i=[];for(let n=0,r=this._objects.length;n<r;n++)e=this._objects[n],-1===t.indexOf(e)?s.push(e):i.push(e);t.length>1&&(this._activeObject._objects=i),s.push(...i)}else s=this._objects;return s}renderAll(){this.contextTopDirty&&!this._groupSelector&&!this.isDrawingMode&&(this.clearContext(this.contextTop),this.contextTopDirty=!1),this.hasLostContext&&this.renderTopLayer(this.contextTop);const t=this.contextContainer;return this.renderCanvas(t,this._chooseObjectsToRender()),this}renderTopLayer(t){t.save(),this.isDrawingMode&&this._isCurrentlyDrawing&&(this.contextTopDirty=!0),this.selection&&this._groupSelector&&(this._drawSelection(t),this.contextTopDirty=!0),t.restore()}renderTop(){const t=this.contextTop;return this.clearContext(t),this.renderTopLayer(t),this.fire("after:render"),this.fire("after:renderTop"),this}requestRenderTop(){this.isRenderingTop||(this.isRenderingTop=this.ticker.next((()=>{try{this.renderTop()}finally{this.isRenderingTop=0}})))}stopLastRender(){super.stopLastRender(),this.isRenderingTop&&(this.ticker.cancel(this.isRenderingTop),this.isRenderingTop=0)}_normalizePointer(t,e){const s=t.calcTransformMatrix(),i=Nt.invertTransform(s),n=this.restorePointerVpt(e);return Nt.transformPoint(n,i)}isTargetTransparent(t,e,s){let i=!1;if(t.shouldCache()&&t._cacheCanvas&&t!==this._activeObject){const n=this._normalizePointer(t,{x:e,y:s}),r=Math.max(t.cacheTranslationX+n.x*t.zoomX,0),o=Math.max(t.cacheTranslationY+n.y*t.zoomY,0);return i=Nt.isTransparent(t._cacheContext,Math.round(r),Math.round(o),this.targetFindTolerance),i}const n=this.contextCache,r=t.selectionBackgroundColor,o=this.viewportTransform;return t.selectionBackgroundColor="",this.clearContext(n),n.save(),n.transform(o[0],o[1],o[2],o[3],o[4],o[5]),t.render(n),n.restore(),t.selectionBackgroundColor=r,i=Nt.isTransparent(n,e,s,this.targetFindTolerance),i}_isSelectionKeyPressed(t){let e=!1;return e="[object Array]"===Object.prototype.toString.call(this.selectionKey)?!!this.selectionKey.find((function(e){return!0===t[e]})):t[this.selectionKey],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"scale"===e||"scaleX"===e||"scaleY"===e||"resizing"===e?i=this.centeredScaling||t.centeredScaling:"rotate"===e&&(i=this.centeredRotation||t.centeredRotation),i?!s:s}_getOriginFromCorner(t,e){const s={x:t.originX,y:t.originY};return"ml"===e||"tl"===e||"bl"===e?s.x="right":("mr"===e||"tr"===e||"br"===e)&&(s.x="left"),"tl"===e||"mt"===e||"tr"===e?s.y="bottom":("bl"===e||"mb"===e||"br"===e)&&(s.y="top"),s}_getActionFromCorner(t,e,s,i){if(!e||!t)return"drag";const n=i.controls[e];return n.getActionName(s,n,i)}_setupCurrentTransform(t,e,s){if(!e)return;const i=this.getPointer(t),n=e.__corner,r=e.controls[n],o=s&&n?r.getActionHandler(t,e,r):ds.dragHandler,a=this._getActionFromCorner(s,n,t,e),h=this._getOriginFromCorner(e,n),c=t[this.centeredKey],l={target:e,action:a,actionHandler:o,corner:n,scaleX:e.scaleX,scaleY:e.scaleY,skewX:e.skewX,skewY:e.skewY,offsetX:i.x-e.left,offsetY:i.y-e.top,originX:h.x,originY:h.y,ex:i.x,ey:i.y,lastX:i.x,lastY:i.y,theta:Ni(e.angle),width:e.width*e.scaleX,shiftKey:t.shiftKey,altKey:c,original:Nt.saveObjectTransform(e)};this._shouldCenterTransform(e,a,c)&&(l.originX="center",l.originY="center"),l.original.originX=h.x,l.original.originY=h.y,this._currentTransform=l,this._beforeTransform(t)}setCursor(t){this.upperCanvasEl.style.cursor=t}_drawSelection(t){const e=this._groupSelector,s=new gt(e.ex,e.ey),i=Nt.transformPoint(s,this.viewportTransform),n=new gt(e.ex+e.left,e.ey+e.top),r=Nt.transformPoint(n,this.viewportTransform);let o=Math.min(i.x,r.x),a=Math.min(i.y,r.y),h=Math.max(i.x,r.x),c=Math.max(i.y,r.y);const l=this.selectionLineWidth/2;this.selectionColor&&(t.fillStyle=this.selectionColor,t.fillRect(o,a,h-o,c-a)),this.selectionLineWidth&&this.selectionBorderColor&&(t.lineWidth=this.selectionLineWidth,t.strokeStyle=this.selectionBorderColor,o+=l,a+=l,h-=l,c-=l,Ps.prototype._setLineDash.call(this,t,this.selectionDashArray),t.strokeRect(o,a,h-o,c-a))}findTarget(t,e){if(this.skipTargetFind)return;const s=this.getPointer(t,!0),i=this._activeObject,n=this.getActiveObjects();let r,o;const a=Ri(t),h=n.length>1&&!e||1===n.length;if(this.targets=[],h&&i._findTargetCorner(s,a)||n.length>1&&!e&&i===this._searchPossibleTargets([i],s))return i;if(1===n.length&&i===this._searchPossibleTargets([i],s)){if(!this.preserveObjectStacking)return i;r=i,o=this.targets,this.targets=[]}let c=this._searchPossibleTargets(this._objects,s);return t[this.altSelectionKey]&&c&&r&&c!==r&&(c=r,this.targets=o),c}_checkTarget(t,e,s){if(e&&e.visible&&e.evented&&e.containsPoint(t)){if(!this.perPixelTargetFind&&!e.perPixelTargetFind||e.isEditing)return!0;if(!this.isTargetTransparent(e,s.x,s.y))return!0}}_searchPossibleTargets(t,e){let s,i,n=t.length;for(;n--;){const r=t[n],o=r.group?this._normalizePointer(r.group,e):e;if(this._checkTarget(o,r,e)){s=t[n],s.subTargetCheck&&s instanceof Fs&&(i=this._searchPossibleTargets(s._objects,e),i&&this.targets.push(i));break}}return s}restorePointerVpt(t){return Nt.transformPoint(t,Nt.invertTransform(this.viewportTransform))}getPointer(t,e){if(this._absolutePointer&&!e)return this._absolutePointer;if(this._pointer&&e)return this._pointer;let s=Pi(t);const i=this.upperCanvasEl,n=i.getBoundingClientRect();let r,o=n.width||0,a=n.height||0;(!o||!a)&&("top"in n&&"bottom"in n&&(a=Math.abs(n.top-n.bottom)),"right"in n&&"left"in n&&(o=Math.abs(n.right-n.left))),this.calcOffset(),s.x=s.x-this._offset.left,s.y=s.y-this._offset.top,e||(s=this.restorePointerVpt(s));const h=this.getRetinaScaling();return 1!==h&&(s.x/=h,s.y/=h),r=0===o||0===a?{width:1,height:1}:{width:i.width/o,height:i.height/a},{x:s.x*r.width,y:s.y*r.height}}_createUpperCanvas(){const t=this.lowerCanvasEl.className.replace(/\s*lower-canvas\s*/,""),e=this.lowerCanvasEl;let s=this.upperCanvasEl;s?s.className="":(s=this._createCanvasElement(),this.upperCanvasEl=s),Ie.addClass(s,"upper-canvas "+t),this.wrapperEl.appendChild(s),this._copyCanvasStyle(e,s),this._applyCanvasStyle(s),this.contextTop=s.getContext("2d")}_createCacheCanvas(){this.cacheCanvasEl=this._createCanvasElement(),this.cacheCanvasEl.setAttribute("width",this.width),this.cacheCanvasEl.setAttribute("height",this.height),this.contextCache=this.cacheCanvasEl.getContext("2d")}_initWrapperElement(){this.wrapperEl=Ie.wrapElement(this.lowerCanvasEl,"div",{class:this.containerClass}),Ie.setStyle(this.wrapperEl,{width:this.width+"px",height:this.height+"px",position:"relative"}),Ie.makeElementUnselectable(this.wrapperEl)}_applyCanvasStyle(t){const e=this.width||t.width,s=this.height||t.height;Ie.setStyle(t,{position:"absolute",width:e+"px",height:s+"px",left:0,top:0,"touch-action":this.allowTouchScrolling?"manipulation":"none","-ms-touch-action":this.allowTouchScrolling?"manipulation":"none"}),t.width=e,t.height=s,Ie.makeElementUnselectable(t)}_copyCanvasStyle(t,e){e.style.cssText=t.style.cssText}getSelectionContext(){return this.contextTop}getSelectionElement(){return this.upperCanvasEl}getActiveObject(){return this._activeObject}getActiveObjects(){const t=this._activeObject;return t?"activeSelection"===t.type&&t._objects?t._objects.slice(0):[t]:[]}_onObjectRemoved(t){t===this._activeObject&&(this.fire("before:selection:cleared",{target:t}),this._discardActiveObject(),this.fire("selection:cleared",{target:t}),t.fire("deselected")),t===this._hoveredTarget&&(this._hoveredTarget=null,this._hoveredTargets=[]),super._onObjectRemoved(t)}_fireSelectionEvents(t,e){let s=!1;const i=this.getActiveObjects(),n=[],r=[];t.forEach((function(t){-1===i.indexOf(t)&&(s=!0,t.fire("deselected",{e,target:t}),r.push(t))})),i.forEach((function(i){-1===t.indexOf(i)&&(s=!0,i.fire("selected",{e,target:i}),n.push(i))})),t.length>0&&i.length>0?s&&this.fire("selection:updated",{e,selected:n,deselected:r,updated:n[0]||r[0],target:this._activeObject}):i.length>0?this.fire("selection:created",{e,selected:n,target:this._activeObject}):t.length>0&&this.fire("selection:cleared",{e,deselected:r})}setActiveObject(t,e){const s=this.getActiveObjects();return this._setActiveObject(t,e),this._fireSelectionEvents(s,e),this}_setActiveObject(t,e){return!(this._activeObject===t||!this._discardActiveObject(e,t)||t.onSelect({e})||(this._activeObject=t,0))}_discardActiveObject(t,e){const s=this._activeObject;if(s){if(s.onDeselect({e:t,object:e}))return!1;this._activeObject=null}return!0}discardActiveObject(t){const e=this.getActiveObjects(),s=this.getActiveObject();return e.length&&this.fire("before:selection:cleared",{target:s,e:t}),this._discardActiveObject(t),this._fireSelectionEvents(e,t),this}removeWrapper(){const t=this.wrapperEl;t&&(t.contains(this.upperCanvasEl)&&t.removeChild(this.upperCanvasEl),t.contains(this.lowerCanvasEl)&&t.removeChild(this.lowerCanvasEl),t.parentNode&&t.parentNode.replaceChild(this.lowerCanvasEl,this.wrapperEl),this.wrapperEl=null)}dispose(){return this.stopLastRender(),this.removeListeners(),this.removeWrapper(),this.contextCache=null,this.contextTop=null,["upperCanvasEl","cacheCanvasEl"].forEach(function(t){Ie.cleanUpJsdomNode(this[t]),this[t]=void 0}.bind(this)),super.dispose(),this}clear(){return this.discardActiveObject(),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),n=super._toObject(t,e,s);return this._unwindGroupTransformOnObject(t,i),n}_realizeGroupTransformOnObject(t){if(t.group&&"activeSelection"===t.group.type&&this._activeObject===t.group){const e={};return["angle","flipX","flipY","left","scaleX","scaleY","skewX","skewY","top"].forEach((function(s){e[s]=t[s]})),Nt.addTransformToObject(t,this._activeObject.calcOwnMatrix()),e}return null}_unwindGroupTransformOnObject(t,e){e&&t.set(e)}_setSVGObject(t,e,s){const i=this._realizeGroupTransformOnObject(e);super._setSVGObject(t,e,s),this._unwindGroupTransformOnObject(e,i)}setViewportTransform(t){return this.renderOnAddRemove&&this._activeObject&&this._activeObject.isEditing&&this._activeObject.clearContextTop(),super.setViewportTransform(t)}};function ji(t){return new RegExp("^("+t.join("|")+")\\b","i")}function Di(t,e,s,i){return t<Math.abs(e)?(t=e,i=s/4):i=0===e&&0===t?s/(2*Math.PI)*Math.asin(1):s/(2*Math.PI)*Math.asin(e/t),{a:t,c:e,p:s,s:i}}function Fi(t,e,s){return t.a*Math.pow(2,10*(e-=1))*Math.sin((e*s-t.s)*(2*Math.PI)/t.p)}function Mi(t,e,s,i){return s-Yi(i-t,0,s,i)+e}function Yi(t,e,s,i){return(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}pt(Li,[{uniformScaling:!0,uniScaleKey:"shiftKey",centeredScaling:!1,centeredRotation:!1,centeredKey:"altKey",altActionKey:"shiftKey",interactive:!0,selection:!0,selectionKey:"shiftKey",altSelectionKey:null,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",rotationCursor:"crosshair",notAllowedCursor:"not-allowed",containerClass:"canvas-container",perPixelTargetFind:!1,targetFindTolerance:0,skipTargetFind:!1,isDrawingMode:!1,preserveObjectStacking:!1,snapAngle:0,snapThreshold:null,stopContextMenu:!1,fireRightClick:!1,fireMiddleClick:!1,targets:[],_hoveredTarget:null,_hoveredTargets:[],_activeObject:void 0},Ei,class{_shouldGroup(t,e){var s=this._activeObject;return s&&this._isSelectionKeyPressed(t)&&e&&e.selectable&&this.selection&&(s!==e||"activeSelection"===s.type)&&!e.onSelect({e:t})}_handleGrouping(t,e){var s=this._activeObject;s.__corner||e===s&&(!(e=this.findTarget(t,!0))||!e.selectable)||(s&&"activeSelection"===s.type?this._updateActiveSelection(e,t):this._createActiveSelection(e,t))}_updateActiveSelection(t,e){var s=this._activeObject,i=s._objects.slice(0);s.contains(t)?(s.removeWithUpdate(t),this._hoveredTarget=t,this._hoveredTargets=this.targets.concat(),1===s.size()&&this._setActiveObject(s.item(0),e)):(s.addWithUpdate(t),this._hoveredTarget=s,this._hoveredTargets=this.targets.concat()),this._fireSelectionEvents(i,e)}_createActiveSelection(t,e){var s=this.getActiveObjects(),i=this._createGroup(t);this._hoveredTarget=i,this._setActiveObject(i,e),this._fireSelectionEvents(s,e)}_createGroup(t){var e=this._objects,s=e.indexOf(this._activeObject)<e.indexOf(t)?[this._activeObject,t]:[t,this._activeObject];return this._activeObject.isEditing&&this._activeObject.exitEditing(),new Ms(s,{canvas:this})}_groupSelectedObjects(t){var e,s=this._collectObjects(t);1===s.length?this.setActiveObject(s[0],t):s.length>1&&(e=new Ms(s.reverse(),{canvas:this}),this.setActiveObject(e,t))}_collectObjects(t){for(var e,s=[],i=this._groupSelector.ex,n=this._groupSelector.ey,r=i+this._groupSelector.left,o=n+this._groupSelector.top,a=new gt(ki(i,r),ki(n,o)),h=new gt(Ci(i,r),Ci(n,o)),c=!this.selectionFullyContained,l=i===r&&n===o,d=this._objects.length;d--&&!((e=this._objects[d])&&e.selectable&&e.visible&&(c&&e.intersectsWithRect(a,h,!0)||e.isContainedWithinRect(a,h,!0)||c&&e.containsPoint(a,null,!0)||c&&e.containsPoint(h,null,!0))&&(s.push(e),l)););return s.length>1&&(s=s.filter((function(e){return!e.onSelect({e:t})}))),s}_maybeGroupObjects(t){this.selection&&this._groupSelector&&this._groupSelectedObjects(t),this.setCursor(this.defaultCursor),this._groupSelector=null}}]),ji(["path","circle","polygon","polyline","ellipse","rect","line","image","text"]),ji(["symbol","image","marker","pattern","view","svg"]),ji(["pattern","defs","symbol","metadata","clipPath","mask","desc"]),ji(["symbol","g","a","svg","clipPath","defs"]),zt.extend,zt.clone;const Bi={easeInQuad:function(t,e,s,i){return s*(t/=i)*t+e},easeOutQuad:function(t,e,s,i){return-s*(t/=i)*(t-2)+e},easeInOutQuad:function(t,e,s,i){return(t/=i/2)<1?s/2*t*t+e:-s/2*(--t*(t-2)-1)+e},easeInCubic:function(t,e,s,i){return s*(t/=i)*t*t+e},easeOutCubic:function(t,e,s,i){return s*((t=t/i-1)*t*t+1)+e},easeInOutCubic:function(t,e,s,i){return(t/=i/2)<1?s/2*t*t*t+e:s/2*((t-=2)*t*t+2)+e},easeInQuart:function(t,e,s,i){return s*(t/=i)*t*t*t+e},easeOutQuart:function(t,e,s,i){return-s*((t=t/i-1)*t*t*t-1)+e},easeInOutQuart:function(t,e,s,i){return(t/=i/2)<1?s/2*t*t*t*t+e:-s/2*((t-=2)*t*t*t-2)+e},easeInQuint:function(t,e,s,i){return s*(t/=i)*t*t*t*t+e},easeOutQuint:function(t,e,s,i){return s*((t=t/i-1)*t*t*t*t+1)+e},easeInOutQuint:function(t,e,s,i){return(t/=i/2)<1?s/2*t*t*t*t*t+e:s/2*((t-=2)*t*t*t*t+2)+e},easeInSine:function(t,e,s,i){return-s*Math.cos(t/i*(Math.PI/2))+s+e},easeOutSine:function(t,e,s,i){return s*Math.sin(t/i*(Math.PI/2))+e},easeInOutSine:function(t,e,s,i){return-s/2*(Math.cos(Math.PI*t/i)-1)+e},easeInExpo:function(t,e,s,i){return 0===t?e:s*Math.pow(2,10*(t/i-1))+e},easeOutExpo:function(t,e,s,i){return t===i?e+s:s*(1-Math.pow(2,-10*t/i))+e},easeInOutExpo:function(t,e,s,i){return 0===t?e:t===i?e+s:(t/=i/2)<1?s/2*Math.pow(2,10*(t-1))+e:s/2*(2-Math.pow(2,-10*--t))+e},easeInCirc:function(t,e,s,i){return-s*(Math.sqrt(1-(t/=i)*t)-1)+e},easeOutCirc:function(t,e,s,i){return s*Math.sqrt(1-(t=t/i-1)*t)+e},easeInOutCirc:function(t,e,s,i){return(t/=i/2)<1?-s/2*(Math.sqrt(1-t*t)-1)+e:s/2*(Math.sqrt(1-(t-=2)*t)+1)+e},easeInElastic:function(t,e,s,i){var n=0;return 0===t?e:1==(t/=i)?e+s:(n||(n=.3*i),-Fi(Di(s,s,n,1.70158),t,i)+e)},easeOutElastic:function(t,e,s,i){var n=0;if(0===t)return e;if(1==(t/=i))return e+s;n||(n=.3*i);var r=Di(s,s,n,1.70158);return r.a*Math.pow(2,-10*t)*Math.sin((t*i-r.s)*(2*Math.PI)/r.p)+r.c+e},easeInOutElastic:function(t,e,s,i){var n=0;if(0===t)return e;if(2==(t/=i/2))return e+s;n||(n=i*(.3*1.5));var r=Di(s,s,n,1.70158);return t<1?-.5*Fi(r,t,i)+e:r.a*Math.pow(2,-10*(t-=1))*Math.sin((t*i-r.s)*(2*Math.PI)/r.p)*.5+r.c+e},easeInBack:function(t,e,s,i,n){return void 0===n&&(n=1.70158),s*(t/=i)*t*((n+1)*t-n)+e},easeOutBack:function(t,e,s,i,n){return void 0===n&&(n=1.70158),s*((t=t/i-1)*t*((n+1)*t+n)+1)+e},easeInOutBack:function(t,e,s,i,n){return void 0===n&&(n=1.70158),(t/=i/2)<1?s/2*(t*t*((1+(n*=1.525))*t-n))+e:s/2*((t-=2)*t*((1+(n*=1.525))*t+n)+2)+e},easeInBounce:Mi,easeOutBounce:Yi,easeInOutBounce:function(t,e,s,i){return t<i/2?.5*Mi(2*t,0,s,i)+e:.5*Yi(2*t-i,0,s,i)+.5*s+e}},Hi={groupSVGElements:function(t,e,s){var i;return t&&1===t.length?t[0]:(e&&(e.width&&e.height?e.centerPoint={x:e.width/2,y:e.height/2}:(delete e.width,delete e.height)),i=new Fs(t,e),typeof s<"u"&&(i.sourcePath=s),i)},convertGroupToActiveSelection(t){if(t.canvas){var e=t._objects,s=t.canvas;t._objects=[];var i=t.toObject();delete i.objects;var n=new Ms([]);return n.set(i),n.type="activeSelection",s.remove(this),e.forEach((function(t){t.group=n,t.dirty=!0,s.add(t)})),n.canvas=s,n._objects=e,s._activeObject=n,n.setCoords(),n}}},Vi=d(l(l(d(l(d(l(l({ease:Bi,animate:ne,animateColor:Ts},wi),Ie),{setStyle:de}),Hi),{array:ct,object:zt,string:nt}),Nt),si),{requestAnimFrame:he,cancelAnimFrame:ce});function Wi(t){return 4294967296*Math.floor(65536*Math.random())+((null==crypto?void 0:crypto.getRandomValues(new Uint32Array(1))[0])||Math.floor(4294967296*Math.random()))}ot.add(rt.Group,Fs),ot.add(rt.ActiveSelection,Ms),ot.add(rt.Image,pi),ot.add(rt.Gradient,Ls);const Ui={fill:"",strokeWidth:4,strokeLineCap:"round",strokeLineJoin:"round"};function zi(t,e){return"M ".concat(t," ").concat(e)}function Gi(t,e){return"L ".concat(t," ").concat(e)}function Xi(t,e,s,i,n,r){return"C ".concat(t," ").concat(e," ").concat(s," ").concat(i," ").concat(n," ").concat(r)}const qi={Star:{path:((t=22,e=22)=>[zi(0,.382*e),Gi(.34*t,.323*e),Gi(.5*t,0),Gi(.66*t,.323*e),Gi(t,.382*e),Gi(.758*t,.642*e),Gi(.81*t,e),Gi(.5*t,.84*e),Gi(.19*t,e),Gi(.242*t,.642*e)].join(" "))(),fill:"rgb(210, 178, 87)"},Question:l({path:((t=14,e=20)=>[zi(0,e/4),Xi(0,0,t,0,t,e/4),Xi(t,e/2,t/2,e/2,t/2,3*e/4),zi(t/2,e),Gi(t/2,e)].join(" "))(),stroke:"rgb(64, 138, 198)"},Ui),Heart:{path:((t=20,e=20)=>[zi(t/2,e/5),Xi(5*t/14,0,0,e/15,t/28,2*e/5),Xi(t/14,2*e/3,3*t/7,5*e/6,t/2,e),Xi(4*t/7,5*e/6,13*t/14,2*e/3,27*t/28,2*e/5),Xi(t,e/15,9*t/14,0,t/2,e/5)].join(" ")+"Z")(),fill:"rgb(253, 23, 29)"},Cross:l({path:"M 0 0 L 16 16 M 16 0 L 0 16",stroke:"rgb(244, 86, 48)"},Ui),Check:l({path:((t=18,e=18)=>[zi(0,0),zi(t,e),zi(0,e/2),Gi(t/3,e-e/4),Gi(t,0)].join(" "))(),stroke:"rgb(76, 188, 60)"},Ui),Arrow:{path:"M 0 33.5 L 66.6667 33.5 L 66.6667 0 L 100 50 L 66.6667 100 L 66.6667 66.5 L 0 66.5 Z",fill:"rgb(44, 166, 255)"}},Ji={Star:{width:22,height:22},Question:{width:14,height:20},Heart:{width:20,height:20},Cross:{width:16,height:16},Check:{width:18,height:18},Arrow:{width:20,height:16}},Ki=Object.keys(qi);class Zi extends ci{constructor(t,e={}){const{transform:s,id:i=Wi(),width:n,height:r}=e,o=qi[t]||qi.Star,{path:a}=o,h=u(o,["path"]);super(Vi.parsePath(a),d(l({},h),{id:i})),p(this,"type","ZoomAnnoStamp"),p(this,"stampType");let c=s||wt.iMatrix.slice();if(this.stampType=t,n&&r){const t=n/this.width;c=Vi.multiplyTransformMatrices(c,[t,0,0,t,0,0])}Vi.applyTransformToObject(this,c)}}var Qi=(t=>(t.Pen="pen",t.Text="text",t.Line="line",t.Shape="shape",t.Stamp="stamp",t.Arrow="arrow",t))(Qi||{}),$i=(t=>(t.Smooth="smooth",t.Fade="fade",t.Highlighter="highlighter",t))($i||{}),tn=(t=>(t.Simple="simple",t.ArrowLeft="arrow_left",t.ArrowLeftRight="arrow_left_right",t))(tn||{}),en=(t=>(t.Rectangle="rectangle",t.Ellipse="ellipse",t.Diamond="diamond",t))(en||{}),sn=(t=>(t.Border="border",t.Shaded="shaded",t.Filled="filled",t))(sn||{}),nn=(t=>(t.addObject="addObject",t.removeObject="removeObject",t))(nn||{});class rn extends ci{constructor(t){var e,s;const i={id:t.id||Wi(),stroke:t.stroke,strokeWidth:t.strokeWidth};super([],i),p(this,"type","ZoomLine"),p(this,"id"),p(this,"isVanishing"),p(this,"startPoint"),p(this,"endPoint"),p(this,"arrowType"),this.startPoint=t.start,this.endPoint=t.end,this.arrowType=null!=(e=t.arrowType)?e:tn.Simple,this.isVanishing=null!=(s=t.isVanishing)&&s,super.initialize(this.makeLine(),i),this.id=i.id||Wi()}getArrowType(){return this.arrowType}getStartPoint(){return this.startPoint.clone()}getEndPoint(){return this.endPoint.clone()}updatePoints(t,e){this.startPoint=t,this.endPoint=e,ci.prototype.initialize.call(this,this.makeLine())}get hasLeftArrow(){return this.arrowType===tn.ArrowLeft||this.arrowType===tn.ArrowLeftRight}get hasRightArrow(){return this.arrowType===tn.ArrowLeftRight}_render(t){const{startPoint:e,endPoint:s}=this;this.drawArrow(t,e,s,!this.hasLeftArrow),this.drawArrow(t,s,e,!this.hasRightArrow),super._render(t)}intersectsWithLine(t,e){return"Intersection"===Rt.intersectLineLine(t,e,this.startPoint,this.endPoint).status}makeLine(){let t=this.startPoint.clone(),e=this.endPoint.clone();const s=e.x-t.x,i=e.y-t.y,n=Math.sqrt(s*s+i*i),r=new gt(s/n,i/n).multiply(this.arrowHeadInnerLen-.08);return e=e.subtract(r),t=t.add(r),function(t,e){return[["M",t.x,t.y],["L",e.x,e.y]]}(t,e)}get arrowHeadInnerLen(){return Math.max(10.5,6*this.strokeWidth)}get arrowHeadOuterLen(){return Math.max(14,9*this.strokeWidth)}get arrowHeadOuterHeight(){return 3.15*this.strokeWidth}drawArrow(t,e,s,i){t.save();const n=this.strokeWidth/2,r=s.x-e.x,o=s.y-e.y,a=Math.atan2(o,r);t.translate((s.x-e.x)/2,(s.y-e.y)/2),t.rotate(a);const h=this.arrowHeadInnerLen,c=this.arrowHeadOuterLen,l=this.arrowHeadOuterHeight;t.beginPath(),t.moveTo(0,0),i?(t.lineTo(-h,0),t.lineWidth=this.strokeWidth,t.strokeStyle=this.stroke,t.stroke()):(t.lineTo(-c,l),t.lineTo(-h,n),t.lineTo(-h,-n),t.lineTo(-c,-l),t.closePath(),t.fillStyle=this.stroke,t.fill()),t.restore()}}function on(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2}function an(t,e,s){const i=on(e,s);if(0===i)return on(t,e);let n=((t[0]-e[0])*(s[0]-e[0])+(t[1]-e[1])*(s[1]-e[1]))/i;return n=Math.max(0,Math.min(1,n)),on(t,function(t,e,s){return[t[0]+(e[0]-t[0])*s,t[1]+(e[1]-t[1])*s]}(e,s,n))}function hn(t,e){return cn(t,0,t.length,e)}function cn(t,e,s,i,n){const r=n||[],o=t[e],a=t[s-1];let h=0,c=1;for(let i=e+1;i<s-1;++i){const e=an(t[i],o,a);e>h&&(h=e,c=i)}return Math.sqrt(h)>i?(cn(t,e,c+1,i,r),cn(t,c,s,i,r)):(r.length||r.push(o),r.push(a)),r}function ln(t){return[...t]}function dn(t,e){return{x:t.x+e.x,y:t.y+e.y}}function un(t,e){return t.map((t=>dn(t,e)))}function pn(t,e){return new gt(e[0]*t.x+e[2]*t.y+e[4],e[1]*t.x+e[3]*t.y+e[5])}function gn(t,e){return t.map((t=>pn(t,e)))}function fn(t){return{x:-t.x,y:-t.y}}function _n(t,e){return pn(t,Vi.invertTransform(e))}function On(t){if(!t.length)return[];if(1===t.length){const e=t[0];return[["M",e.x,e.y],["L",e.x,e.y]]}if(2===t.length){const e=t[0],s=t[1];return[["M",e.x,e.y],["L",s.x,s.y]]}const e=function(t,e=0){const s=t.length;if(s<3)throw new Error("A curve must have at least three points.");const i=[];if(3===s)i.push(ln(t[0]),ln(t[1]),ln(t[2]),ln(t[2]));else{const s=[];s.push(t[0],t[0]);for(let e=1;e<t.length;e++)s.push(t[e]),e===t.length-1&&s.push(t[e]);const n=[],r=1-e;i.push(ln(s[0]));for(let t=1;t+2<s.length;t++){const e=s[t];n[0]=[e[0],e[1]],n[1]=[e[0]+(r*s[t+1][0]-r*s[t-1][0])/6,e[1]+(r*s[t+1][1]-r*s[t-1][1])/6],n[2]=[s[t+1][0]+(r*s[t][0]-r*s[t+2][0])/6,s[t+1][1]+(r*s[t][1]-r*s[t+2][1])/6],n[3]=[s[t+1][0],s[t+1][1]],i.push(n[1],n[2],n[3])}}return i}(t.map((t=>[t.x,t.y]))),s=[["M",e[0][0],e[0][1]]];for(let t=1;t<e.length;t+=3){const i=e[t],n=e[t+1],r=e[t+2];s.push(["C",i[0],i[1],n[0],n[1],r[0],r[1]])}return s}function mn(t,e){const s=t.x-e.x,i=t.y-e.y;return Math.sqrt(s*s+i*i)}function vn(t,e){return Math.abs(t.x-e.x)<1e-6&&Math.abs(t.y-e.y)<1e-6}function An(t,e){return{x:e.x-t.x,y:e.y-t.y}}function bn(t,e){return t.x*e.x+t.y*e.y}class Tn{constructor(t,e){p(this,"start"),p(this,"end"),p(this,"_length"),this.start=t,this.end=e}get length(){return void 0===this._length&&(this._length=this.calculateLength()),this._length}calculateLength(){return mn(this.start,this.end)}project(t,e=!1){if(vn(this.start,this.end))return this.start;const s=this.start,i=this.end,n=t,r=((i.x-s.x)*(n.x-s.x)+(i.y-s.y)*(n.y-s.y))/((i.x-s.x)**2+(i.y-s.y)**2),o={x:s.x+(i.x-s.x)*r,y:s.y+(i.y-s.y)*r};return e?o:bn(An(s,i),An(s,o))<0?s:bn(An(i,s),An(i,o))<0?i:o}}class yn extends ci{constructor(t,e){const s=t;1===s.length&&s.push(dn(s[0],{x:.1,y:.1}));const i=e,{id:n,strokeWidth:r=2,stroke:o="#005AC8"}=i,a=u(i,["id","strokeWidth","stroke"]);super(On(s),d(l({},a),{strokeWidth:r,stroke:o})),p(this,"type","ZoomScribble"),p(this,"id"),p(this,"opacity",1),p(this,"fill","transparent"),p(this,"strokeLineCap","round"),p(this,"strokeLineJoin","round"),p(this,"noScaleCache",!1),p(this,"originX","left"),p(this,"originY","top"),p(this,"points",[]),p(this,"pointsObjs",[]),p(this,"pointsObjSpace",[]),p(this,"vptMinDistanceToCheckContain",20),p(this,"vptMinDistanceToPreciseSelect",10),p(this,"hoverCursor","auto"),p(this,"strokeUniform",!0),p(this,"objectCaching",!1),this.id=n||Wi(),this.strokeWidth=r,this.stroke=o,this.setPoints(s)}setPoints(t){this.points=t,this.pointsObjs=t.map((t=>new gt(t.x,t.y))),this.pointsObjSpace=function(t){const e=function(t){if(!t.length)return{left:0,top:0,width:0,height:0,center:{x:0,y:0}};const{minX:e,minY:s,maxX:i,maxY:n}=t.reduce(((t,e,s)=>(0===s||(t.minX=Math.min(t.minX,e.x),t.minY=Math.min(t.minY,e.y),t.maxX=Math.max(t.maxX,e.x),t.maxY=Math.max(t.maxY,e.y)),t)),{minX:t[0].x,minY:t[0].y,maxX:t[0].x,maxY:t[0].y}),r=i-e,o=n-s;return{left:e,top:s,width:r,height:o,center:{x:e+r/2,y:s+o/2}}}(t);return{points:un(t,fn(e.center)),center:e.center,transform:[1,0,0,1,e.center.x,e.center.y]}}(t).points}updatePoints(t,e="normal"){this.setPoints(t);const s="simple"===e?function(t){if(!t.length)return[];if(1===t.length){const e=t[0];return[["M",e.x,e.y],["L",e.x,e.y]]}if(2===t.length){const e=t[0],s=t[1];return[["M",e.x,e.y],["L",s.x,s.y]]}const e=[];for(let s=0;s<t.length;s++){const i=t[s];if(0===s)e.push(["M",i.x,i.y]);else{if(1===s)continue;{const i=t[s-1],n=t[s],r={x:(i.x+n.x)/2,y:(i.y+n.y)/2};e.push(["Q",i.x,i.y,r.x,r.y])}}}return e}(t):On(t);ci.prototype.initialize.call(this,s),this.dirty=!0}containsPoint(t,e,s,i){var n;const r=super.containsPoint(t,e,s,i);if(!this.strokeUniform)return r;if(!e&&(void 0===s||s)){if(!r)return!1;if((null==(n=this.canvas)?void 0:n._activeObject)===this)return r;let e;e=s?_n(t,this.calcTransformMatrix()):this.group?pn(t,Vi.invertTransform(this.calcOwnMatrix())):function(t,e,s){return _n(pn(t,Vi.invertTransform(e)),s)}(t,this.getViewportTransform(),this.calcTransformMatrix());const i=gn(gn(this.pointsObjSpace,this.calcTransformMatrix()),this.getViewportTransform()),o=1/(this.scaleX||1);return this.checkContainsPointInViewport(function(t,e,s){return pn(pn(t,s),e)}(e,this.getViewportTransform(),this.calcTransformMatrix()),Math.max(this.vptMinDistanceToCheckContain,this.strokeWidth*o/2),i)}return r}checkContainsPointInViewport(t,e,s){const i=this.closestPointTo(t,s);return!!i&&i.closestDistance<=e}closestPointTo(t,e){let s;return e.forEach(((e,i,n)=>{const r=n[i+1];if(e&&r){const i=new Tn(e,r).project(t,!1),n=mn(i,t);(void 0===s||s.closestDistance>n)&&(s={closestPoint:i,closestDistance:n})}})),s}}class Sn extends yn{constructor(t,e){super(t,e),p(this,"type","ZoomHighlighter"),this.stroke=new ut(this.stroke).setAlpha(.38).toRgba()}}class wn extends yn{constructor(){super(...arguments),p(this,"type","ZoomFade"),p(this,"isVanishing",!0)}}const In="#0000FF",xn=255;function En(t){return t.toString(16).padStart(2,"0").toUpperCase()}function kn(t){if(t<0||t>16777215)throw new Error("Decimal value must be between 0 and 16777215.");const e=t>>8&255,s=255&t;return"#".concat(En(t>>16&255)).concat(En(e)).concat(En(s))}function Cn(t,e=In){const s="number"==typeof t?t:void 0;return void 0!==s&&function(t){try{return kn(t)}catch(t){return""}}(s)||e}const Pn=96/255,Nn=(t,e,s,i)=>{const n=Math.sqrt((e.y-t.y)**2+(e.x-t.x)**2),r=Math.sqrt((e.y-s.y)**2+(e.x-s.x)**2),o=e.x-t.x,a=e.y-t.y,h=e.x-s.x,c=e.y-s.y;if(0===i||0===n||0===r||o*c-h*a==0)return{x1:e.x,y1:e.y,x2:e.x,y2:e.y,ox:e.x,oy:e.y,or:0};const l=e.x-o/n*i,d=e.y-a/n*i,u=e.x-h/r*i,p=e.y-c/r*i,g=(o*c*l-h*a*u+a*c*(d-p))/(o*c-h*a),f=(o*c*p-h*a*d-o*h*(l-u))/(o*c-h*a);return{x1:l,y1:d,x2:u,y2:p,ox:g,oy:f,or:Math.sqrt((l-g)**2+(d-f)**2)}};const Rn=(t,e=0,s=0,i=1,n=1)=>t.map((t=>{const r=t[0];if("L"===r||"M"===r){const[,o,a]=t;return[r,(o+e)*i,(a+s)*n]}if("C"===r){const[,o,a,h,c,l,d]=t;return[r,(o+e)*i,(a+s)*n,(h+e)*i,(c+s)*n,(l+e)*i,(d+s)*n]}if("Q"===r){const[,o,a,h,c]=t;return[r,(o+e)*i,(a+s)*n,(h+e)*i,(c+s)*n]}return t})),{makePathSimpler:Ln,parsePath:jn}=Vi,Dn=35,Fn=35,Mn=Ln(jn("M 0 17.5 A 1 1 0 0 1 35 17.5 A 1 1 0 0 1 0 17.5")),Yn=Rn(Mn,-17.5,-17.5),Bn={[en.Diamond]:{pathFn:({w:t,h:e,cornerRadius:s=0})=>{const i=Nn({x:0,y:e/2},{x:t/2,y:0},{x:t,y:e/2},s),n=Nn({x:t/2,y:0},{x:t,y:e/2},{x:t/2,y:e},s),r=Nn({x:t,y:e/2},{x:t/2,y:e},{x:0,y:e/2},s),o=Nn({x:t/2,y:e},{x:0,y:e/2},{x:t/2,y:0},s);return Ln([["M",0,0],["M",t,e],["M",i.x1,i.y1],["A",i.or,i.or,0,0,1,i.x2,i.y2],["L",n.x1,n.y1],["A",n.or,n.or,0,0,1,n.x2,n.y2],["L",r.x1,r.y1],["A",r.or,r.or,0,0,1,r.x2,r.y2],["L",o.x1,o.y1],["A",o.or,o.or,0,0,1,o.x2,o.y2],["L",i.x1,i.y1]])}},[en.Ellipse]:{pathFn:({w:t,h:e})=>Rn(Yn,0,0,t/Dn,e/Fn)},[en.Rectangle]:{pathFn:({w:t,h:e,cornerRadius:s=0})=>{const i=[["M",0,0],["L",80,0],["L",80,80],["L",0,80],["L",0,0],["Z"]],n=function(t){return function(t){var e;return Array.isArray(null==(e=t[0])?void 0:e[0])}(t)?t.reduce(((t,e)=>{const s=ci.prototype._calcDimensions.call({path:e});if(!t)return s;const i=Math.min(s.left,t.left),n=Math.min(s.top,t.top);return{left:i,top:n,width:Math.max(s.left+s.width,t.left+t.width)-i,height:Math.max(s.top+s.height,t.top+t.height)-n}}),null)||{left:0,top:0,width:0,height:0}:ci.prototype._calcDimensions.call({path:t})}(i),r=t/n.width,o=e/n.height,a=Rn(i,0,0,r,o);if(0===s)return a;const h={x:a[0][1],y:a[0][2]},c={x:a[1][1],y:a[1][2]},l={x:a[2][1],y:a[2][2]},d={x:a[3][1],y:a[3][2]},u=Nn(h,c,l,s),p=Nn(c,l,d,s),g=Nn(l,d,h,s),f=Nn(d,h,c,s);return Ln([["M",u.x1,u.y1],["A",u.or,u.or,0,0,1,u.x2,u.y2],["L",p.x1,p.y1],["A",p.or,p.or,0,0,1,p.x2,p.y2],["L",g.x1,g.y1],["A",g.or,g.or,0,0,1,g.x2,g.y2],["L",f.x1,f.y1],["A",f.or,f.or,0,0,1,f.x2,f.y2],["L",u.x1,u.y1]])}}};class Hn extends ci{constructor(t,e={}){var s;const{transform:i,id:n=Wi(),width:r,height:o,style:a,lineData:h,isVanishing:c=!1}=e,l=(Bn[t]||Bn.rectangle).pathFn({w:r,h:o}),d=null==h?void 0:h.stroke;let u=d,g=d,f=0;a===sn.Border&&h?(g="transparent",f=null!=(s=h.strokeWidth)?s:1):a===sn.Shaded&&(g=new ut(g).setAlpha(Pn).toRgba(),u=new ut(u).setAlpha(Pn).toRgba()),super(l,{stroke:u,strokeWidth:f,fill:g,id:n,width:r,height:o}),p(this,"type","ZoomShape"),p(this,"shapeType"),p(this,"shapeStyle"),p(this,"isVanishing",!1),this.shapeType=t,this.shapeStyle=a,this.isVanishing=c;let _=i||wt.iMatrix.slice();_=[1,0,0,1,_[4],_[5]],Vi.applyTransformToObject(this,_)}updateDim({width:t,height:e}){const s=this.calcTransformMatrix(),i=(Bn[this.shapeType]||Bn.rectangle).pathFn({w:t,h:e});ci.prototype.initialize.call(this,i);let n=s||wt.iMatrix.slice();n=[1,0,0,1,n[4],n[5]],Vi.applyTransformToObject(this,n)}}function Vn(t){return"ZoomScribble"===t.type}function Wn(t){return"ZoomHighlighter"===t.type}function Un(t){return"ZoomFade"===t.type}function zn(t){return"ZoomLine"===t.type}function Gn(t){return"ZoomShape"===t.type}function Xn(t){return"ZoomAnnoStamp"===t.type}function qn(t,e="",s){let i=0,n=e.length-1;for(;n-i>1;){const r=Math.floor((i+n)/2),o=e.slice(0,r+1)+"...";t.set({text:o,dirty:!0}),t.getLineWidth(0)>s?n=r:i=r}t.set({text:e.slice(0,i+1)+"...",dirty:!0})}const Jn="Arial";class Kn extends Fs{constructor({id:t=Wi(),width:e=82,height:s=32,position:i,color:n=In,alpha:r=.5,title:o=""}){super([],{originX:"right",originY:"center"}),p(this,"type","ZoomSpotArrow"),p(this,"id"),p(this,"data"),this.id=t,this.width=e,this.height=s,this.top=i.y,this.left=i.x,this.data={title:o,color:n,alpha:r};const a=new Zn(e,s,n,r);if(this.add(a),o){const t=this.width-a.ahW-6,e=function(t){const e=new ut(t).getSource();return function(t,e,s){const i=Math.max(0,Math.min(255,t)),n=Math.max(0,Math.min(255,e)),r=Math.max(0,Math.min(255,s)),o=.299*i+.587*n+.114*r,a=-.169*i-.331*n+.5*r+128,h=.5*i-.419*n-.081*r+128;return{y:Math.round(o),u:Math.round(a),v:Math.round(h)}}(e[0],e[1],e[2])}(n).y>128?"#000":"#fff",s=new vi(o,{originX:"center",originY:"center",top:0,left:-a.ahW/2,fill:e,fontSize:10,fontWeight:700,fontFamily:Jn});s.getLineWidth(0)>t&&qn(s,o,t),this.add(s)}}}class Zn extends Ps{constructor(t,e,s,i){super({originX:"right",originY:"center"}),p(this,"ahW"),p(this,"points"),this.width=t,this.height=e,this.fill=s,this.opacity=i,this.ahW=this.height/2;const n=new gt(0,0),r=new gt(-this.ahW,this.ahW),o=new gt(r.x,r.y/2),a=new gt(-this.width,o.y),h=new gt(a.x,-o.y),c=new gt(o.x,-o.y),l=new gt(r.x,-r.y);this.points=[n,r,o,a,h,c,l],this.top=0,this.left=t/2}_render(t){t.save(),t.translate(this.width/2,0),t.beginPath(),t.moveTo(this.points[0].x,this.points[0].y);for(let e=1;e<this.points.length;e++)t.lineTo(this.points[e].x,this.points[e].y);t.fillStyle=this.fill,t.closePath(),t.fill(),t.restore()}}const Qn=new Map,$n=document.createElement("canvas").getContext("2d");$n&&($n.font="100px ".concat(Jn));const tr=new RegExp(new RegExp("\\p{Script=Han}","u")),er=new RegExp(new RegExp("\\p{Script=Hangul}","u")),sr=new RegExp(new RegExp("\\p{Emoji_Presentation}","u")),ir=(t,e)=>{let s=t,i=Qn.get(s)||0;if(!i&&$n){let n=!1;if(tr.test(t)&&(s="HAN_SIZE_KEY",t="国",n=!0),er.test(t)&&(s="HANGUL_SIZE_KEY",t="정",n=!0),sr.test(t)&&(s="EMOJI_SIZE_KEY",t="😄",n=!0),n)return((t,e,s)=>{let i=Qn.get(t)||0;if(!i&&$n){const{width:s}=$n.measureText(e);i=s,Qn.set(t,i)}return i*s/100})(s,t,e);const{width:r}=$n.measureText(t);i=r,Qn.set(s,i)}return i*e/100},nr=new Map,rr=0,or={12:.95,16:.95,24:.96,34:.97,36:.98,48:1,60:.96,80:.96,[rr]:.96};let ar;const hr=document.createRange(),cr=(t,e)=>(hr.setStart(t,0),hr.setEnd(t,e),hr.getClientRects()),lr={p:"Paragraph",span:"Span",br:"Break",a:"Link",li:"List"};class dr{constructor(){p(this,"actualHeight",0),p(this,"actualWidth",0),p(this,"html"),p(this,"width",0),p(this,"fontSize",0),p(this,"fontWeight",400),p(this,"maxLines"),p(this,"overflow",!1),p(this,"fontFamily",Jn),p(this,"layoutResult",[]),p(this,"currentParagraph"),p(this,"isCurrentParagraphBidi",!1),p(this,"steps",[]),p(this,"lineTexts",[]),p(this,"generateRectId",(t=>"".concat(t.x,"-").concat(t.y,"-").concat(t.height,"-").concat(t.width))),p(this,"isValidLineBreak",((t,e,s,i)=>{const n=[];this.loopClientRects(t,(t=>{t&&n.push(this.generateRectId(t))}));const r=n.find((t=>!s.includes(t)));if(r){if(e.includes(r)){const t=i.find((t=>t.id===r));return t&&(t.index=s.length),{valid:!0,search:!1,foundRectId:r}}return{valid:!1,search:!0}}return{valid:!1,search:!1}}))}addContainer(){const t=document.createElement("div");return t.style.cssText="\n position: fixed;\n visibility: hidden;\n top: 0;\n left: 0;\n z-index: -999; \n background: #fff;\n ",document.body.appendChild(t),t}getContainer(){if(ar)return ar;const t=document.querySelector("___layout-container___");return ar=t||this.addContainer(),ar}getNodeType(t){var e;const s=null==(e=null==t?void 0:t.tagName)?void 0:e.toLowerCase();let i=lr[s];return i||(i="Others"),i}calcStepBasedOnCharMeasure(t,e,s){try{let i=0,n=0,r=0,o=t[0];const a=[0],h=[],c=(e,s,c)=>{r=s,a.push(r),i=c,h.push(e),n+=1,o=t[n]};let l=-1;for(const a of e){const d=a.length;if(l+=d,n===t.length-1){h.push(e.length-1-r);break}const u=ir(a,s),p=u+i;0===i&&p>=o?c(d,l,0):i<=o&&p>o?(o-i>p-o?c(l-r,l,0):c(l-d-r,l-d,u),i>o&&c(l-r,l,0)):i=p}return h}catch(t){return[]}}getLayoutForEachNode(t,e){let s=this.getNodeType(t);if(("Paragraph"===s||"List"===s)&&(this.currentParagraph={isBullet:!1,isOrdered:!1,blockIndex:this.layoutResult.length,textRects:[]},this.layoutResult.push(this.currentParagraph)),t.childNodes.length)t.childNodes.forEach((t=>this.getLayoutForEachNode(t,e)));else if(t.textContent&&3===t.nodeType){const i=t.parentNode;s=this.getNodeType(i);const n=Number(i.style.fontSize.replace("px","")),r=i.style.color||"#000",o="bold"===i.style.fontWeight,a=i.style.fontStyle.includes("italic"),h=i.style.textDecoration||"",c=h.includes("underline"),l=h.includes("line-through");let d;"Link"===s&&(d=i.href),this.currentParagraph&&this.currentParagraph.textRects.push(...this.getLineRectForNode(t,n,{bold:o,underline:c,strike:l,link:d,italic:a,color:r},e))}}getStep(t){var e;const s=null!=(e=this.steps[t])?e:1;return Number.isNaN(s)?1:Math.max(1,s)}loopClientRects(t,e){for(let s=0;s<t.length;s++)e(t[s],s)}getLineRectForNode(t,e,s,i){const n=t.textContent;if(!n)return[];const r=[0],o=[];let a=0,h=0;const c=cr(t,n.length),d=[],u=[],p=[],g=[];this.loopClientRects(c,(t=>{u.push(t.width);const e=this.generateRectId(t);p.push(e);const{x:s,y:i,width:n,height:r}=t;d.push({x:s,y:i,width:n,height:r,id:e,index:-1})}));const f=c.length;if(1===f)o.push(n);else{this.steps=this.calcStepBasedOnCharMeasure(u,n,e),a+=this.getStep(h);let s=0;for(;a<n.length;){let e=!1;const i=cr(t,a+1),c=i.length-1;if(c>=h+1){if(s=-1,a+=s,a<r[r.length-1])break}else if(c===h){const l=this.isValidLineBreak(i,p,g,d);if(l.valid){let s=a+1;for(;cr(t,s+1).length-1===c&&s<n.length-1;)s+=1;h+=1,o.push(n.slice(r[r.length-1],s)),r.push(s),a=s+this.getStep(h),e=!0,l.foundRectId&&g.push(l.foundRectId)}else{if(!l.search)break;s=1,a+=s}}else s=1,a+=s;if(e&&(s=0,a>=n.length&&(a=n.length-1)),h===f-1){o.push(n.slice(r[r.length-1],n.length));break}}}d.sort(((t,e)=>t.index<0?1:e.index<0?-1:t.index-e.index));const _=[];return d.forEach(((t,n)=>{const r=o[n];if(t&&r){const{x:n,y:o,width:a,height:h}=t,c=((t,e,s)=>{var i;const n="".concat(t,"-").concat(e,"-").concat(s),r=nr.get(n);if(r)return r;const o=document.createElement("div");o.style.display="inline-block",o.style.fontSize="".concat(e,"px"),o.style.lineHeight="".concat(s,"px");const a=document.createElement("span");a.innerHTML="Ag";const h=document.createElement("div");h.classList.add("editor_calc_getTextHeight"),h.style.display="inline-block",h.style.width="1px",h.style.height="0px";const c={baselineOffset:0,height:0,descent:0};o.appendChild(a),a.style.fontFamily=t;const l=document.createElement("div");l.appendChild(o),l.appendChild(h),document.body.appendChild(l);try{h.style.verticalAlign="baseline";const t=h.getBoundingClientRect(),s=a.getBoundingClientRect();if(void 0===t||void 0===s)throw new Error;const n=null!=(i=or[e])?i:or[0];c.baselineOffset=(t.top-s.top)*n}finally{l.parentElement&&l.parentElement.removeChild(l)}return c||void 0})(Jn,e,1.2*e);_.push({size:e,top:o-i,left:n,width:a,height:h,baselineOffset:(null==c?void 0:c.baselineOffset)||2*h/3,attributes:l({},s),firstInLine:!1,text:r})}})),_}resetState(){this.layoutResult=[],this.steps=[],this.overflow=!1}clear(){this.html=void 0}update(){this.resetState();const t=this.getContainer();t.firstChild&&t.firstChild.remove(),this.html&&t.appendChild(this.html);const e=t.firstChild;return e&&this.getLayoutForEachNode(e,t.getBoundingClientRect().top),this.actualHeight=t.firstChild.clientHeight,this.actualWidth=e.clientWidth,this.clear(),this.layoutResult}getTextRectsForRender(){return this.layoutResult}}let ur=null;class pr extends Ps{constructor(t){super({}),p(this,"type","ZoomText"),p(this,"text",""),p(this,"width",0),p(this,"height",0),p(this,"fontSize",30),p(this,"color","red"),p(this,"layoutRects",[]),p(this,"id"),this.id=t.id,this.text=t.text,this.width=t.width,this.height=t.height,this.color=t.color,this.fontSize=t.fontSize,this.updateLayout(),Vi.applyTransformToObject(this,t.transform)}createDOMForTextContent(){const t=document.createElement("p");return t.textContent=this.text,t.style.width="".concat(this.width,"px"),t.style.fontSize="".concat(this.fontSize,"px"),t.style.fontFamily=Jn,t.style.wordBreak="break-word",t.style.padding="0",t.style.margin="0",t.dir="auto",t}updateLayout(){const t=(ur||(ur=new dr),ur);t.html=this.createDOMForTextContent(),t.fontFamily=Jn,t.fontSize=this.fontSize,t.width=this.width,this.layoutRects=t.update(),this.height=t.actualHeight}_render(t){t.save(),t.transform(1,0,0,1,-this.width/2,-this.height/2),function(t,e,s){for(let i=0;i<t.length;i++){const n=t[i];for(let t=0;t<n.textRects.length;t++){const i=n.textRects[t],{italic:r=!1,bold:o=!1}=i.attributes,{top:a,left:h,width:c,size:l,height:d,baselineOffset:u}=i,p=r?"italic":"",g=o?"700":"400",f=a+u,_=i.text;e.fillStyle=s.color,e.font="".concat(p," ").concat(g," ").concat(l,"px ").concat(Jn),e.fillText(_,h,a+u);const O=Math.max(Math.floor(l/10),1);i.attributes.underline&&e.fillRect(h,f+.05*l,c,O),i.attributes.strike&&e.fillRect(h,f-l/3,c,O)}}}(this.layoutRects,t,{color:this.color}),t.restore()}}function gr(t){return t?function(t){if(!/^#[0-9A-Fa-f]{6}$/.test(t))throw new Error("Invalid hex color format. Use #RRGGBB.");const e=t.slice(1);return parseInt(e,16)}("#".concat(new ut(t).toHex())):xn}function fr(t,e,s){return t.on(e,s),()=>{t.off(e,s)}}var _r=(t=>(t[t.LEFT=0]="LEFT",t[t.MIDDLE=1]="MIDDLE",t[t.RIGHT=2]="RIGHT",t))(_r||{});function Or(t,e){if(!e)return;const s=t.getSelectionContext();s.save();const i=t.viewportTransform;i&&s.transform(i[0],i[1],i[2],i[3],i[4],i[5]),function({ctx:t,obj:e}){t.save();try{e.render(t)}catch(t){}t.restore()}({obj:e,ctx:s}),s.restore()}Ps.prototype.transparentCorners=!1,Ps.prototype.shouldCache=()=>!1,Ps.prototype.hasControls=!1,Ps.prototype.hasBorders=!1,Ps.prototype.lockMovementX=!0,Ps.prototype.lockMovementY=!0;class mr extends Li{setCursor(){}setActiveObject(){return this}getObjsInArea(t,e){const s=this._objects,i=[];for(let n=0;n<s.length;n++){const r=s[n];!r||!r.visible||!r.selectable||(r.intersectsWithRect(t,e,!0)||r.isContainedWithinRect(t,e,!0))&&i.push(r)}return i}}const vr=["scribble:created","shape:created","line:created","stamp:created","arrow:created","eraser:removed","tool:updated","after:renderLower"];class Ar{constructor(t){p(this,"canvas"),p(this,"tool",null),p(this,"providers",[]),p(this,"config",{vanishing:{keep:0,fade:2e3}}),this.canvas=new mr(t);const{canvas:e}=this;e.selection=!1}changeRenderMode(t){this.canvas.changeTickerMode(t)}setWrapperStyle(t){const e=this.canvas.wrapperEl;e&&Vi.setStyle(e,t)}setViewport(t){this.canvas.setViewportTransform(t),this.canvas.requestRenderAll()}getCanvas(){return this.canvas}clear(){this.canvas.clear()}getTool(){return this.tool}clearTool(){this.tool&&(this.tool=null,this.emit("tool:updated"))}switchTool(t,e={}){this.tool={type:t,props:e},this.emit("tool:updated")}add(...t){t.forEach((t=>{t.isVanishing&&function(t,e){let s=()=>{};t.on("added",(()=>{s=function(t,e){const{keep:s,fade:i}=e;let n,r;const o=()=>{n=Vi.animate({startValue:1,endValue:0,duration:i,easing:Vi.ease.easeOutCubic,onChange:e=>{var s;t.opacity=e,null==(s=t.canvas)||s.requestRenderAll()},onComplete:()=>{var e;null==(e=t.canvas)||e.remove(t)}})};return s>0?r=setTimeout((()=>{o()}),s):o(),()=>{r&&clearTimeout(r),n&&n()}}(t,e)})),t.on("removed",(()=>{s()}))}(t,this.config.vanishing)})),this.canvas.add(...t)}getObjs(){return this.canvas._objects}getObjById(t){return this.canvas._objects.find((e=>e.id===t))}removeObjById(t){const e=this.canvas._objects.find((e=>e.id===t));e&&(this.canvas.remove(e),this.canvas.requestRenderAll())}removeAll(){const t=this.canvas._objects;t.length&&(this.canvas.remove(...t),this.canvas.requestRenderAll())}requestRenderAll(){this.canvas.requestRenderAll()}resize(t,e,s,i){if("abs"===i){this.canvas.enableRetinaScaling=!1;const i=1,n=t/((null==s?void 0:s.x)||1)/i,r=e/((null==s?void 0:s.y)||1)/i;this.canvas.setDimensions({width:n,height:r}),this.canvas.calcOffset(),this.setViewport([1/i,0,0,1/i,0,0]),this.setWrapperStyle({transformOrigin:"0 0",transform:"scaleX(".concat(t/n,") scaleY(").concat(e/r,")")})}else this.canvas.enableRetinaScaling=!0,this.canvas.setDimensions({width:t,height:e}),this.canvas.calcOffset(),s&&s.x&&s.y&&this.setViewport([s.x,0,0,s.y,0,0]),this.setWrapperStyle({transform:null})}register(t){t.register(this),this.providers.push(t)}hideObjById(t){const e=this.canvas._objects.find((e=>e.id===t));e&&(e.set("opacity",0),this.canvas.requestRenderAll())}destroy(){this.providers.forEach((t=>t.unregister())),this.providers.length=0,this.canvas.dispose()}emit(t,e){if(vr.includes(t))try{this.canvas.fire(t,e)}catch(t){console.error(t)}}on(t,e){return vr.includes(t)?(this.canvas.on(t,e),()=>{this.canvas.off(t,e)}):()=>{}}off(t,e){vr.includes(t)&&this.canvas.off(t,e)}getConfig(){const{vanishing:t}=this.config;return{vanishing:{keep:t.keep,fade:t.fade}}}setConfig(t){this.config=t}configVanishing(t){this.config.vanishing=t}}class br extends Fs{constructor(t,e){super(),this.width=82,this.height=22,this.selectable=!1,this.add(new li({originX:"center",originY:"center",top:0,left:0,fill:"#0089f0",rx:3,ry:3,width:82,height:22}));const s=new vi(t,{originX:"center",originY:"center",top:0,left:0,fill:"#fff",fontSize:10,fontWeight:700,fontFamily:Jn});s.getLineWidth(0)>72&&qn(s,t,72),this.add(s),this.on("added",(()=>{const t=this.canvas;if(!t)return;const s=function(t,e,s){const{width:i,height:n}=e,r=t=>({x:t.bl.x,y:t.bl.y+4}),o=(()=>{const t=s.calcAbsCoords();if(!Gn(s)){if(Xn(s)||function(t){return"ZoomText"===t.type}(s)||function(t){return Vn(t)||Wn(t)||Un(t)}(s))return r(t);if(zn(s)){const t=s.getStartPoint();return s.getEndPoint().x<=t.x?{x:t.x+4,y:t.y-n/2}:{x:t.x-i-4,y:t.y-n/2}}return{x:0,y:0}}switch(s.shapeType){case en.Diamond:case en.Ellipse:return(t=>({x:(t.br.x+t.bl.x)/2-i/2,y:(t.br.y+t.bl.y)/2+4}))(t);case en.Rectangle:return r(t)}})(),a=t.vptCoords;return o.x+i>a.br.x&&(o.x=a.br.x-i),o.x<a.tl.x&&(o.x=a.tl.x),o.y+n>a.br.y&&(o.y=a.br.y-n),o.y<a.tl.y&&(o.y=a.tl.y),o}(t,this,e);this.top=s.y,this.left=s.x,setTimeout((()=>{t.remove(this)}),2800)}))}}class Tr{constructor(){p(this,"disposables",[])}run(...t){t.length&&this.disposables.push(...t)}cleanup(){this.disposables.forEach((t=>t())),this.disposables.length=0}}class yr extends Tr{constructor(){super(...arguments),p(this,"currentPointer",null)}tool(t){return l({},J(t).with({type:"stamp",props:{type:G.when((t=>Ki.includes(t)))}},(t=>({isActive:!0,stampType:t.props.type}))).otherwise((()=>({isActive:!1,stampType:void 0}))))}register(t){const e=t.getCanvas(),s=()=>this.tool(t.getTool()||{type:"none",props:{}});this.run(fr(e,"mouse:down",(i=>{const n=i.e,{isActive:r,stampType:o}=s();if(!r||n.button===_r.RIGHT||n.button===_r.MIDDLE||this.currentPointer)return;this.currentPointer={pointerId:n.pointerId};const a=e.getPointer(n),{width:h,height:c}=Ji[o]||{width:16,height:16},l=new Zi(o,{width:h,height:c,transform:[1,0,0,1,a.x,a.y]});t.add(l),t.emit("stamp:created",l)})),fr(e,"mouse:up",(()=>{this.currentPointer=null})),t.on("tool:updated",(()=>{const{isActive:t}=s();t||(this.resetState(),e.requestRenderTop())})))}unregister(){this.cleanup(),this.resetState()}resetState(){this.currentPointer=null}}function Sr(t){return J(t).returnType().with({stroke:G.string,strokeWidth:G.number},(t=>t)).otherwise((()=>({stroke:void 0,strokeWidth:void 0})))}class wr extends Tr{constructor(){super(...arguments),p(this,"preview",null),p(this,"currentPointer",null),p(this,"startPoint",null)}tool(t){var e;return d(l({},J(t).with({type:"line"},(()=>({isActive:!0,lineType:tn.Simple}))).with({type:"line_arrow_left"},(()=>({isActive:!0,lineType:tn.ArrowLeft}))).with({type:"line_arrow_left_right"},(()=>({isActive:!0,lineType:tn.ArrowLeftRight}))).otherwise((()=>({isActive:!1,lineType:void 0})))),{props:d(l({},Sr(t.props)),{isVanishing:null!=(e=t.props.isVanishing)&&e})})}register(t){const e=t.getCanvas(),s=()=>this.tool(t.getTool()||{type:"none",props:{}}),i=()=>{e.requestRenderTop()},n=(t,e)=>{this.preview.updatePoints(t,e)};this.run(fr(e,"after:renderTop",(()=>{Or(e,this.preview)})),fr(e,"mouse:down",(t=>{const n=t.e,{isActive:r,lineType:o,props:a}=s();if(!r||n.button===_r.RIGHT||n.button===_r.MIDDLE||this.currentPointer||this.preview)return;this.currentPointer={pointerId:n.pointerId};const h=e.getPointer(n);this.startPoint=new gt(h.x,h.y),this.preview=new rn({start:this.startPoint,end:this.startPoint.clone().addEquals(1),arrowType:o,stroke:a.stroke,strokeWidth:a.strokeWidth,isVanishing:a.isVanishing}),i()})),fr(e,"mouse:move",(t=>{const s=t.e;if(!this.preview||!this.startPoint||!this.currentPointer||this.currentPointer.pointerId!==s.pointerId)return;const r=e.getPointer(s);n(this.startPoint,gt.from(r)),i()})),fr(e,"mouse:up",(s=>{if(!this.preview||!this.currentPointer)return;const r=s.e,o=e.getPointer(r);n(this.startPoint,gt.from(o)),t.add(this.preview),t.emit("line:created",this.preview),this.resetState(),i()})),t.on("tool:updated",(()=>{const{isActive:t}=s();t||(this.resetState(),i())})))}unregister(){this.cleanup(),this.resetState()}resetState(){this.preview=null,this.startPoint=null,this.currentPointer=null}}class Ir extends Tr{constructor(){super(...arguments),p(this,"detecting",!1),p(this,"mouseMovePoints",[]),p(this,"cancelAnimate",null),p(this,"updateTrailPath",null),p(this,"trailPath",null),p(this,"radius",5)}tool(t){return J(t).returnType().with({type:"eraser"},(()=>({isActive:!0}))).otherwise((()=>({isActive:!1})))}register(t){const e=t.getCanvas(),s=()=>this.tool(t.getTool()||{type:"none",props:{}});function i(e){e&&(t.removeObjById(e.id),t.emit("eraser:removed",e))}const n=()=>{e.requestRenderTop()};this.run(fr(e,"after:renderTop",(()=>{Or(e,this.trailPath)})),fr(e,"mouse:down",(t=>{const n=t.e,{isActive:r}=s();if(!r||this.detecting||n.button===_r.RIGHT||n.button===_r.MIDDLE)return;const o=e.getPointer(n);this.mouseMovePoints.push(new gt(o.x,o.y)),this.detecting=!0,t.target&&i(t.target),this.trailPath=new yn([],{stroke:"#DFE3E8",opacity:.4,strokeWidth:2*this.radius,strokeLineCap:"round",strokeLineJoin:"round",objectCaching:!1}),this.animate()})),fr(e,"mouse:move",(t=>{const s=t.e;if(!this.detecting)return;const n=e.getPointer(s);if(this.mouseMovePoints.push(new gt(n.x,n.y)),t.target)i(t.target);else{const t=this.mouseMovePoints,s=t[t.length-2],n=t[t.length-1];if(s&&n&&!vn(s,n)){const{min:t,max:r}=Math,o=new gt(t(s.x,n.x),t(s.y,n.y)),a=new gt(r(s.x,n.x),r(s.y,n.y)),h=e.getObjsInArea(o,a);if(h.length){const t=Rt.intersectLinePolygon;for(const e of h)e&&((Vn(e)||Un(e)||Wn(e))&&e.points.length&&"Intersection"===t(s,n,e.pointsObjs).status&&i(e),zn(e)&&e.intersectsWithLine(s,n)&&i(e))}}}this.animate()})),fr(e,"mouse:up",(()=>{this.resetState(),n()})),t.on("tool:updated",(()=>{const{isActive:t}=s();t||(this.resetState(),n())}))),this.updateTrailPath=()=>{if(!this.trailPath||this.mouseMovePoints.length<=0||!e.viewportTransform)return;const t=this.mouseMovePoints.slice();this.trailPath.updatePoints(t,"simple"),n()}}resetState(){this.detecting=!1,this.mouseMovePoints=[],this.trailPath=null}animate(){this.cancelAnimate&&(this.cancelAnimate(),this.cancelAnimate=null),this.updateTrailPath&&this.mouseMovePoints.length&&(this.cancelAnimate=Vi.animate({startValue:Math.floor(this.mouseMovePoints.length/10),endValue:this.mouseMovePoints.length-1,duration:1500,easing:(t,e,s,i)=>e+(s-e)*(t=>t**.3)(t/i),onChange:t=>{var e;this.mouseMovePoints=this.mouseMovePoints.slice(Math.floor(t)),null==(e=this.updateTrailPath)||e.call(this)},onComplete:()=>{var t;null==(t=this.updateTrailPath)||t.call(this)}}))}unregister(){this.cleanup(),this.resetState()}}class xr extends Tr{constructor(){super(...arguments),p(this,"points",[]),p(this,"path",null),p(this,"currentPointer",null)}tool(t){const e={isPen:!1,isHighlighter:!1,isFade:!1,isActive:!1};return d(l({},J(t).returnType().with({type:"pen"},(()=>d(l({},e),{isPen:!0,isActive:!0}))).with({type:"highlighter"},(()=>d(l({},e),{isHighlighter:!0,isActive:!0}))).with({type:"fade"},(()=>d(l({},e),{isFade:!0,isActive:!0}))).otherwise((()=>e))),{props:Sr(t.props)})}register(t){const e=t.getCanvas(),s=()=>this.tool(t.getTool()||{type:"none",props:{}}),i=()=>{e.requestRenderTop()};this.run(fr(e,"after:renderTop",(()=>{Or(e,this.path)})),fr(e,"mouse:down",(t=>{const n=t.e,{isActive:r,props:o,isHighlighter:a,isFade:h}=s();if(!r||n.button===_r.RIGHT||n.button===_r.MIDDLE||this.currentPointer||this.path)return;this.currentPointer={pointerId:n.pointerId};const c=e.getPointer(n);this.points=[c],this.path=a?new Sn(this.points,{stroke:o.stroke,strokeWidth:o.strokeWidth}):h?new wn(this.points,{stroke:o.stroke,strokeWidth:o.strokeWidth}):new yn(this.points,{stroke:o.stroke,strokeWidth:o.strokeWidth}),i()})),fr(e,"mouse:move",(t=>{const s=t.e;if(!this.path||!this.currentPointer||this.currentPointer.pointerId!==s.pointerId)return;const n=e.getPointer(s);this.points.push(n),this.path.updatePoints(this.points,"simple"),i()})),fr(e,"mouse:up",(s=>{if(!this.path||!this.currentPointer)return;const n=s.e,r=e.getPointer(n);this.points.push(r);const o=hn(this.points.map((t=>[t.x,t.y])),.7);this.path.updatePoints(o.map((([t,e])=>new gt(t,e)))),t.add(this.path),t.emit("scribble:created",this.path),this.resetState(),i()})),t.on("tool:updated",(()=>{const{isActive:t}=s();t||(this.resetState(),i())})))}unregister(){this.cleanup(),this.resetState()}resetState(){this.path=null,this.currentPointer=null,this.points=[]}}function Er(t){return J(t).returnType().with({shapeType:G.when((t=>Object.values(en).includes(t))),style:G.when((t=>Object.values(sn).includes(t)))},(t=>t)).otherwise((()=>({shapeType:void 0,style:void 0})))}class kr extends Tr{constructor(){super(...arguments),p(this,"preview",null),p(this,"currentPointer",null),p(this,"startPoint",null)}tool(t){return d(l({},J(t).returnType().with({type:"shape"},(()=>({isActive:!0}))).otherwise((()=>({isActive:!1})))),{props:d(l(l({},Sr(t.props)),Er(t.props)),{isVanishing:t.props.isVanishing})})}register(t){const e=t.getCanvas(),s=()=>this.tool(t.getTool()||{type:"none",props:{}}),i=()=>{e.requestRenderTop()},n=t=>{const e={width:t.x-this.startPoint.x,height:t.y-this.startPoint.y},s={originX:e.width<0?"bottom":"top",originY:e.height<0?"right":"left"};!function(t,e,s,i){i(),t.setPositionByOrigin(e,s.originX,s.originY)}(this.preview,this.startPoint,s,(()=>{this.preview.updateDim({width:Math.abs(e.width),height:Math.abs(e.height)})}))};this.run(fr(e,"after:renderTop",(()=>{Or(e,this.preview)})),fr(e,"mouse:down",(t=>{const n=t.e,{isActive:r,props:o}=s();if(!r||n.button===_r.RIGHT||n.button===_r.MIDDLE||this.currentPointer||this.preview)return;this.currentPointer={pointerId:n.pointerId};const a=e.getPointer(n);this.startPoint=new gt(a.x,a.y),this.preview=new Hn(o.shapeType,{width:1,height:1,style:o.style,lineData:{stroke:o.stroke,strokeWidth:o.strokeWidth},transform:[1,0,0,1,a.x,a.y],isVanishing:o.isVanishing}),i()})),fr(e,"mouse:move",(t=>{const s=t.e;if(!this.preview||!this.startPoint||!this.currentPointer||this.currentPointer.pointerId!==s.pointerId)return;const r=e.getPointer(s);n(r),i()})),fr(e,"mouse:up",(s=>{if(!this.preview||!this.currentPointer)return;const r=s.e,o=e.getPointer(r);n(o),t.add(this.preview),t.emit("shape:created",this.preview),this.resetState(),i()})),t.on("tool:updated",(()=>{const{isActive:t}=s();t||(this.resetState(),i())})))}unregister(){this.cleanup(),this.resetState()}resetState(){this.preview=null,this.startPoint=null,this.currentPointer=null}}class Cr extends Tr{constructor(){super(...arguments),p(this,"currentPointer",null)}tool(t){return l({},J(t).with({type:"arrow",props:{title:G.string.optional(),color:G.string.optional(),alpha:G.number.optional()}},(t=>({isActive:!0,props:l({},t.props)}))).otherwise((()=>({isActive:!1,props:{}}))))}register(t){const e=t.getCanvas(),s=()=>this.tool(t.getTool()||{type:"none",props:{}});this.run(fr(e,"mouse:down",(i=>{const n=i.e,{isActive:r,props:o}=s();if(!r||n.button===_r.RIGHT||n.button===_r.MIDDLE||this.currentPointer)return;this.currentPointer={pointerId:n.pointerId};const a=e.getPointer(n),h=new Kn({position:{x:a.x,y:a.y},title:o.title,color:o.color,alpha:o.alpha});t.add(h),t.emit("arrow:created",h)})),fr(e,"mouse:up",(()=>{this.currentPointer=null})),t.on("tool:updated",(()=>{const{isActive:t}=s();t||(this.resetState(),e.requestRenderTop())})))}unregister(){this.cleanup(),this.resetState()}resetState(){this.currentPointer=null}}class Pr extends Bs{constructor(t){super(),p(this,"type","ZoomSpotlight"),p(this,"fill"),p(this,"normalGradient"),p(this,"clickedGradient"),t=t||"rgb(255, 0, 0)",this.set({originX:"center",originY:"center",radius:12});const e="rgb(255, 255, 255)",s=new Ls({type:"radial",coords:{x1:this.width/2,y1:this.height/2,x2:this.width/2,y2:this.height/2,r1:0,r2:this.radius},colorStops:[{offset:0,color:e,opacity:1},{offset:.4,color:t,opacity:.85},{offset:.6,color:t,opacity:.45},{offset:1,color:e,opacity:.15}]}),i=new Ls({type:"radial",coords:{x1:this.width/2,y1:this.height/2,x2:this.width/2,y2:this.height/2,r1:0,r2:this.radius},colorStops:[{offset:0,color:e,opacity:1},{offset:.1,color:t,opacity:.85},{offset:.35,color:t,opacity:.5},{offset:.4,color:t,opacity:.3},{offset:.85,color:e,opacity:.15},{offset:1,color:e,opacity:0}]});this.normalGradient=s,this.clickedGradient=i,this.set("fill",s),this.set("stroke",null),this.set("strokeWidth",0)}togglePressed(t){this.set("fill",t?this.clickedGradient:this.normalGradient)}}class Nr extends Tr{constructor(){super(...arguments),p(this,"preview",null)}tool(t){return l({},J(t).with({type:"spotlight",props:{color:G.string.optional()}},(t=>({isActive:!0,props:l({},t.props)}))).otherwise((()=>({isActive:!1,props:{}}))))}register(t){const e=t.getCanvas(),s=()=>this.tool(t.getTool()||{type:"none",props:{}});let i=!1;this.run(fr(e,"mouse:down",(t=>{const s=t.e;!i||!this.preview||s.button===_r.RIGHT||s.button===_r.MIDDLE||(this.preview.togglePressed(!0),e.requestRenderAll())})),fr(e,"mouse:up",(()=>{!i||!this.preview||(this.preview.togglePressed(!1),e.requestRenderAll())})),fr(e,"mouse:move",(t=>{if(!i)return;const s=t.e,n=e.getPointer(s);this.preview.set({left:n.x,top:n.y}),e.requestRenderAll()})),t.on("tool:updated",(()=>{const{isActive:n,props:r}=s();i=n,this.preview&&(e.remove(this.preview),this.preview=null),i?(this.preview=new Pr(r.color),t.add(this.preview)):this.resetState(),e.requestRenderAll()})))}unregister(){this.cleanup(),this.resetState()}resetState(){}}class Rr extends Tr{constructor(){super(...arguments),p(this,"textObj",null)}register(t){}unregister(){this.cleanup()}tool(t){}}function Lr(t){const e=t.height,s=t.width,i=t.absHeight;return{vW:s,vH:e,scale:{x:s/t.absWidth,y:e/i},mode:t.sizeMode}}var jr=(t=>(t[t.ONACK=0]="ONACK",t[t.TOOL_SELECT=1]="TOOL_SELECT",t[t.ERASE_ALL=2]="ERASE_ALL",t[t.RESIZE=3]="RESIZE",t[t.REMOVE_OBJECTS=4]="REMOVE_OBJECTS",t[t.RESTORE_OBJECTS=5]="RESTORE_OBJECTS",t[t.TOOL_BAR_CLOSED=6]="TOOL_BAR_CLOSED",t[t.CHANGE_SESSION=7]="CHANGE_SESSION",t[t.UPDATE_CANVAS=8]="UPDATE_CANVAS",t[t.DESTROY_SESSION=9]="DESTROY_SESSION",t[t.ADD_OBJECT=10]="ADD_OBJECT",t[t.TOGGLE_RENDER_MODE=11]="TOGGLE_RENDER_MODE",t[t.UPDATE_REMOTE_POSITION_INFO=12]="UPDATE_REMOTE_POSITION_INFO",t[t.UPDATE_VANISHING_TOOL_TIME=13]="UPDATE_VANISHING_TOOL_TIME",t))(jr||{});const Dr={[Q.ANNO_TOOL_TYPE_PEN]:"pen",[Q.ANNO_TOOL_TYPE_HIGHLIGHTER]:"highlighter",[Q.ANNO_TOOL_TYPE_FADE_PEN]:"fade",[Q.ANNO_TOOL_TYPE_ERASER]:"eraser",[Q.ANNO_TOOL_TYPE_ARROW]:"arrow",[Q.ANNO_TOOL_TYPE_SPOTLIGHT]:"spotlight"},Fr={[Q.ANNO_TOOL_TYPE_AUTO_LINE]:"line",[Q.ANNO_TOOL_TYPE_AUTO_ARROW1]:"line_arrow_left",[Q.ANNO_TOOL_TYPE_AUTO_DOUBLE_ARROW]:"line_arrow_left_right",[Q.ANNO_TOOL_TYPE_AUTO_VANISHING_ARROW]:"line_arrow_left",[Q.ANNO_TOOL_TYPE_AUTO_VANISHING_DOUBLE_ARROW]:"line_arrow_left_right"},Mr={[Q.ANNO_TOOL_TYPE_AUTO_STAMP_CHECK]:"Check",[Q.ANNO_TOOL_TYPE_AUTO_STAMP_ARROW]:"Arrow",[Q.ANNO_TOOL_TYPE_AUTO_STAMP_HEART]:"Heart",[Q.ANNO_TOOL_TYPE_AUTO_STAMP_QM]:"Question",[Q.ANNO_TOOL_TYPE_AUTO_STAMP_STAR]:"Star",[Q.ANNO_TOOL_TYPE_AUTO_STAMP_X]:"Cross"};class Yr{constructor(){p(this,"editor"),p(this,"onAnnotationMsg",(()=>{})),p(this,"onRenderEnd"),p(this,"renderMode","raf"),p(this,"historicalObjs",new Map),p(this,"sessionId"),p(this,"sessionArchive",new Map),p(this,"hasInit",!1)}init(t){this.onAnnotationMsg=t.onAnnotationMsg,this.sessionId=t.sessionId,this.editor=this.createEditor({annoCanvas:t.annoCanvas,size:Lr(t),styles:t.styles});const{onRenderEnd:e}=t;this.onRenderEnd=e,this.hasInit=!0}createEditor(t){const{annoCanvas:e,size:s,styles:i}=t,n=new Ar(e);n.changeRenderMode(this.renderMode),n.register(new xr),n.register(new Ir),n.register(new Rr),n.register(new kr),n.register(new wr),n.register(new yr),n.register(new Cr),n.register(new Nr),n.resize(s.vW,s.vH,s.scale,s.mode);const r=t=>{const e=function(t){if(Vn(t)||Wn(t)||Un(t))return{type:Qi.Pen,points:t.points,penFormat:{type:Vn(t)?$i.Smooth:Wn(t)?$i.Highlighter:$i.Fade,lineData:l({width:t.strokeWidth,color:gr(t.stroke)},Wn(t)?{alpha:.38}:null)}};if(Gn(t))return{type:Qi.Shape,shapeFormat:{type:t.shapeType,style:t.shapeStyle,lineData:{width:t.strokeWidth,color:gr(t.stroke),alpha:J(t.shapeStyle).with(sn.Shaded,(()=>Pn)).otherwise((()=>1))},color:gr(t.stroke),alpha:J(t.shapeStyle).with(sn.Shaded,(()=>Pn)).with(sn.Border,(()=>0)).otherwise((()=>1)),isVanishing:t.isVanishing},width:t.width,height:t.height,transform:t.calcTransformMatrix()};if(zn(t))return{type:Qi.Line,lineFormat:{type:t.getArrowType(),lineData:{width:t.strokeWidth,color:gr(t.stroke)},start:t.getStartPoint(),end:t.getEndPoint(),isVanishing:t.isVanishing}};if(Xn(t)){const e=t.getCenterPoint();return{type:Qi.Stamp,stampFormat:{type:t.stampType,alpha:1,color:gr(qi[t.stampType].fill)},width:16,height:16,transform:[1,0,0,1,e.x,e.y]}}return function(t){return"ZoomSpotArrow"===t.type}(t)?{type:Qi.Arrow,position:{x:t.left,y:t.top},color:gr(t.data.color),alpha:t.data.alpha,title:t.data.title,width:t.width,height:t.height}:void 0}(t);e&&this.onAnnotationMsg({type:nn.addObject,objectId:t.id,objectData:e})};return n.on("scribble:created",r),n.on("shape:created",r),n.on("line:created",r),n.on("stamp:created",r),n.on("arrow:created",r),n.on("eraser:removed",(t=>{this.historicalObjs.set(t.id,t),this.onAnnotationMsg({type:nn.removeObject,objectId:t.id})})),n.on("after:renderLower",(()=>{const{onRenderEnd:t}=this;t&&t()})),i&&n.setWrapperStyle(i),n}reInit(t){const e=this.editor.getObjs().slice(),s=this.editor.getTool(),i=this.editor.getConfig();this.editor.destroy(),this.editor=this.createEditor({annoCanvas:t.annoCanvas,size:Lr(t),styles:t.styles}),this.editor.setConfig(i),this.editor.add(...e),s&&this.editor.switchTool(s.type,s.props)}destroy(){this.hasInit&&(this.historicalObjs.clear(),this.sessionArchive.clear(),this.editor.destroy())}restoreObjs(t){for(const e of t){const t=this.historicalObjs.get(e);t&&this.editor.add(t),this.historicalObjs.delete(e)}this.editor.requestRenderAll()}snapshot(){return{historicalObjs:new Map(this.historicalObjs),onCanvasObjs:this.editor.getObjs().slice()}}saveSession(){const t=this.snapshot();(t.historicalObjs.size||t.onCanvasObjs.length)&&this.sessionArchive.set(this.sessionId,t)}switchSession(t){if(this.sessionId===t)return;const e=this.sessionArchive.get(t);this.saveSession(),this.editor.removeAll(),this.historicalObjs=new Map,this.sessionId=t,e&&(this.historicalObjs=e.historicalObjs,this.editor.add(...e.onCanvasObjs)),this.editor.requestRenderAll()}removeAll(){const t=this.editor.getObjs();for(const e of t)this.historicalObjs.set(e.id,e);this.editor.removeAll()}removeObjs(t){for(const e of t){const t=this.editor.getObjById(e);t&&(this.historicalObjs.set(e,t),this.editor.removeObjById(e))}this.editor.requestRenderAll()}switchTool(t,e){const s={};(function(t){return $.includes(t)||tt.includes(t)||et.includes(t)})(t)&&(s.strokeWidth=e.width||2,s.stroke=Cn(e.color)),t===Q.ANNO_TOOL_TYPE_ARROW&&(s.title=e.title,s.color=Cn(e.color),s.alpha=e.alpha),t===Q.ANNO_TOOL_TYPE_SPOTLIGHT&&(s.color=Cn(e.color,"rgb(255, 0, 0)"));const i=function(t){let e=null;const s={};let i=-1;return t in Fr?(e=Fr[t],s.isVanishing=tt.indexOf(t)>2):t in Dr?e=Dr[t]:st.includes(t)?(e="stamp",s.type=Mr[t]):~(i=et.indexOf(t))&&(e="shape",s.shapeType=J(i).when((t=>t<4),(()=>en.Rectangle)).when((t=>t<8),(()=>en.Diamond)).otherwise((()=>en.Ellipse)),s.style=J(i%4).with(0,(()=>sn.Border)).with(1,(()=>sn.Shaded)).with(3,(()=>sn.Border)).otherwise((()=>sn.Filled)),s.isVanishing=i%4==3),e?{tool:e,opts:s}:null}(t);if(i){const{tool:t,opts:e}=i;Object.assign(s,e),this.editor.switchTool(t,s)}else this.editor.clearTool()}onMessage(t){if(1===t.type){const e=t,{type:s,toolType:i}=e,n=u(e,["type","toolType"]);this.switchTool(i,n)}else if(2===t.type)this.removeAll();else if(0===t.type)this.editor.hideObjById(t.objectId);else if(6===t.type)this.switchTool(Q.ANNO_TOOL_TYPE_NONE,{});else if(3===t.type){const e=Lr(t);this.editor.resize(e.vW,e.vH,e.scale,e.mode)}else if(5===t.type)this.restoreObjs(t.objectIds);else if(4===t.type)this.removeObjs(t.objectIds);else if(7===t.type)this.switchSession(t.sessionId);else if(8===t.type)this.reInit(t);else if(9===t.type)this.sessionArchive.delete(t.sessionId),this.sessionId===t.sessionId&&(this.historicalObjs.clear(),this.editor.removeAll());else if(10===t.type){const e=function(t){var e,s,i,n,r,o,a,h;const{objectData:c,objectId:l}=t;switch(c.type){case Qi.Pen:{const{penFormat:t,points:n}=c;if(t.type===$i.Smooth)return new yn(n,{id:l,strokeWidth:t.lineData.width,stroke:kn(null!=(e=t.lineData.color)?e:xn)});if(t.type===$i.Highlighter)return new Sn(n,{id:l,strokeWidth:t.lineData.width,stroke:kn(null!=(s=t.lineData.color)?s:xn)});if(t.type===$i.Fade)return new wn(n,{id:l,strokeWidth:t.lineData.width,stroke:kn(null!=(i=t.lineData.color)?i:xn)});break}case Qi.Shape:{const{shapeFormat:{type:t,style:e,lineData:s,color:i,isVanishing:a},transform:h,width:d,height:u}=c,p={width:null!=(n=null==s?void 0:s.width)?n:1,color:null!=(o=null!=(r=null==s?void 0:s.color)?r:i)?o:xn};return new Hn(t,{style:e,color:i,id:l,transform:h,width:d,height:u,lineData:{stroke:kn(p.color),strokeWidth:p.width},isVanishing:a})}case Qi.Line:{const{lineFormat:{type:t,start:e,end:s,lineData:i,isVanishing:n}}=c;return new rn({arrowType:t,start:new gt(e.x,e.y),end:new gt(s.x,s.y),id:l,strokeWidth:(null==i?void 0:i.width)||2,stroke:kn(null!=(a=null==i?void 0:i.color)?a:xn),isVanishing:n})}case Qi.Text:{const{textFormat:t,transform:e,width:s,height:i}=c;return new pr({id:l,text:t.text,color:kn(null!=(h=t.color)?h:xn),width:s,height:i,transform:e,fontSize:t.fontSize})}case Qi.Stamp:{const{transform:t,stampFormat:e,width:s,height:i}=c;return new Zi(e.type,{id:l,transform:t,width:s,height:i})}case Qi.Arrow:{const{position:t,color:e,alpha:s,title:i,width:n,height:r}=c;return new Kn({id:l,position:t,color:kn(null!=e?e:xn),alpha:s,title:i,width:n,height:r})}}}(t.data);if(!e)return;this.editor.add(e);const s=t.annotatorName;s&&this.editor.add(new br(s,e))}else if(11===t.type)this.renderMode=t.mode,this.editor.changeRenderMode(t.mode);else if(12===t.type){const e=t,{type:s}=e,i=u(e,["type"]);this.editor.setWrapperStyle(i)}else if(13===t.type){const{displayTime:e=0,outTime:s=2e3}=t;this.editor.configVanishing({keep:e,fade:s})}}}function Br(t){return t>>>10}function Hr(t){return t>>>8<<10|(t<<8>>>18)%1023}let Vr=0,Wr=0,Ur=0,zr=0;class Gr{constructor(t){this._id=t}getId(){return this._id}setId(t){this._id=t}}class Xr extends Gr{constructor(t){super(t)}acquireDocId(t){return Vr++,this._id=Br(t)<<10|1023&Vr,this._id}amendDocId(t){return this._id=Br(t)<<10|1023&this._id,this._id}}class qr extends Gr{constructor(t){super(t)}acquirePageId(t){return Wr++,this._id=Br(t)<<10|1023&Wr,this._id}AmendPageId(t){return this._id=Br(t)<<10|1023&this._id,this._id}}class Jr extends Gr{constructor(t){super(t)}acquireObjId(t){return Ur++,this._id=Hr(t)<<18|262143&Ur,this._id}AmendObjId(t){return this._id=Hr(t)<<18|262143&this._id,this._id}}class Kr extends Gr{constructor(t){super(t)}acquirePduId(){return this._id=zr++,this._id}}const Zr=4294967295;var Qr,$r,to,eo,so,io,no,ro,oo,ao,ho,co,lo,uo,po,go,fo,_o,Oo,mo,vo,Ao,bo,To,yo;function So(){return{toolType:Q.ANNO_TOOL_TYPE_NONE,width:0,color:0,alpha:0}}!function(t){t[t.kComposite=0]="kComposite",t[t.kGroup=1]="kGroup",t[t.kPen=2]="kPen",t[t.kSmoothPen=3]="kSmoothPen",t[t.kHighlighter=4]="kHighlighter",t[t.kSpotlight=5]="kSpotlight",t[t.kArrow=6]="kArrow",t[t.kArrowWnd=7]="kArrowWnd",t[t.kTextbox=8]="kTextbox",t[t.kAutoLine=9]="kAutoLine",t[t.kAutoArrow1=10]="kAutoArrow1",t[t.kAutoArrow2=11]="kAutoArrow2",t[t.kAutoRectangle=12]="kAutoRectangle",t[t.kAutoRoundedRectangle=13]="kAutoRoundedRectangle",t[t.kAutoEllipse=14]="kAutoEllipse",t[t.kAutoDoubleArrow=15]="kAutoDoubleArrow",t[t.kAutoDiamond=16]="kAutoDiamond",t[t.kAutoStampArrow=17]="kAutoStampArrow",t[t.kAutoStampCheck=18]="kAutoStampCheck",t[t.kAutoStampX=19]="kAutoStampX",t[t.kThicknessPen=20]="kThicknessPen",t[t.kAutoStampStar=21]="kAutoStampStar",t[t.kAutoStampHeart=22]="kAutoStampHeart",t[t.kAutoStampQm=23]="kAutoStampQm",t[t.kImage=24]="kImage",t[t.kFadePen=25]="kFadePen",t[t.kStickyNote=26]="kStickyNote",t[t.kWbSdkObj=27]="kWbSdkObj",t[t.kAutoTriangle=28]="kAutoTriangle",t[t.kAutoStar=29]="kAutoStar",t[t.kAutoOffPage=30]="kAutoOffPage",t[t.kAutoData=31]="kAutoData",t[t.kAutoBarrel=32]="kAutoBarrel",t[t.kAutoDelay=33]="kAutoDelay",t[t.kAutoDisplay=34]="kAutoDisplay",t[t.kAutoDocument=35]="kAutoDocument",t[t.kAutoManualInput=36]="kAutoManualInput",t[t.kAutoMerge=37]="kAutoMerge",t[t.kAutoMultiDoc=38]="kAutoMultiDoc",t[t.kAutoTerminator=39]="kAutoTerminator",t[t.kAutoPredefProcess=40]="kAutoPredefProcess",t[t.kAutoPreparation=41]="kAutoPreparation",t[t.kAutoCloud=42]="kAutoCloud",t[t.kAutoArrowLeft=43]="kAutoArrowLeft",t[t.kAutoArrowRight=44]="kAutoArrowRight",t[t.kAutoArrowLeftRight=45]="kAutoArrowLeftRight",t[t.kAutoOctagon=46]="kAutoOctagon",t[t.kAutoHexagon=47]="kAutoHexagon",t[t.kAutoPentagon=48]="kAutoPentagon",t[t.kAutoHeart=49]="kAutoHeart",t[t.kAutoDecagon=50]="kAutoDecagon",t[t.kAutoCube=51]="kAutoCube",t[t.kAutoCross=52]="kAutoCross",t[t.kAutoTrapezoid=53]="kAutoTrapezoid",t[t.kAutoOr=54]="kAutoOr",t[t.kAutoSummingJunction=55]="kAutoSummingJunction",t[t.kAutoManualOperation=56]="kAutoManualOperation",t[t.kAutoCard=57]="kAutoCard",t[t.kAutoHardDisk=58]="kAutoHardDisk",t[t.kAutoInternalStorage=59]="kAutoInternalStorage",t[t.kAutoDisplayNew=60]="kAutoDisplayNew",t[t.kAutoLoopLimit=61]="kAutoLoopLimit",t[t.kAutoCollate=62]="kAutoCollate",t[t.kAutoActor=63]="kAutoActor",t[t.kAutoNote=64]="kAutoNote",t[t.kAutoPackage=65]="kAutoPackage",t[t.kAutoUseCase=66]="kAutoUseCase",t[t.kAutoSendSignal=67]="kAutoSendSignal",t[t.kAutoReceiveSignal=68]="kAutoReceiveSignal",t[t.kAutoPlus=69]="kAutoPlus",t[t.kAutoMinus=70]="kAutoMinus",t[t.kAutoMultiply=71]="kAutoMultiply",t[t.kAutoDivide=72]="kAutoDivide",t[t.kAutoEqual=73]="kAutoEqual",t[t.kAutoNotEqual=74]="kAutoNotEqual",t[t.kAutoMetaShape=75]="kAutoMetaShape",t[t.kHandwritePen=76]="kHandwritePen",t[t.kMosaic=77]="kMosaic",t[t.kAutoMosaic=78]="kAutoMosaic",t[t.kVanishingSquare=79]="kVanishingSquare",t[t.kVanishingArrow=80]="kVanishingArrow",t[t.kVanishingDoubleArrow=81]="kVanishingDoubleArrow",t[t.kVanishingDiamond=82]="kVanishingDiamond",t[t.kVanishingEllipse=83]="kVanishingEllipse",t[t.kVanishingRectangle=84]="kVanishingRectangle",t[t.kNull=85]="kNull"}(Qr||(Qr={})),function(t){t[t.kAppBase=4096]="kAppBase",t[t.kAppMax=8191]="kAppMax",t[t.kDocBase=8192]="kDocBase",t[t.kDocRequestDraw=8193]="kDocRequestDraw",t[t.kDocRequestDrawAck=8194]="kDocRequestDrawAck",t[t.kPageBase=12288]="kPageBase",t[t.kPageSync=12293]="kPageSync",t[t.kAnnoObjBase=65536]="kAnnoObjBase",t[t.kAnnoObjAdd=65537]="kAnnoObjAdd",t[t.kAnnoObjAddAck=65538]="kAnnoObjAddAck",t[t.kAnnoObjRemove=65539]="kAnnoObjRemove",t[t.kAnnoObjRestore=65540]="kAnnoObjRestore",t[t.kAnnoObjRemoveUser=65541]="kAnnoObjRemoveUser",t[t.kAnnoObjRestoreUser=65542]="kAnnoObjRestoreUser",t[t.kAnnoObjRemoveAll=65545]="kAnnoObjRemoveAll",t[t.kAnnoObjRestoreAll=65546]="kAnnoObjRestoreAll",t[t.kAnnoObjRemoveAllByHost=65547]="kAnnoObjRemoveAllByHost",t[t.kAnnoObjRestoreAllByHost=65548]="kAnnoObjRestoreAllByHost",t[t.kAnnoArrowBase=131072]="kAnnoArrowBase",t[t.kAnnoArrowAdd=131073]="kAnnoArrowAdd",t[t.kAnnoArrowRemove=131074]="kAnnoArrowRemove",t[t.kAnnoArrowChange=131075]="kAnnoArrowChange",t[t.kAnnoArrowMax=131583]="kAnnoArrowMax",t[t.kNull=143360]="kNull"}($r||($r={})),function(t){t[t.FROM_LOCAL=0]="FROM_LOCAL",t[t.FROM_REMOTE=1]="FROM_REMOTE"}(to||(to={})),function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.ACCPETED=1]="ACCPETED",t[t.DECLINED=2]="DECLINED"}(eo||(eo={})),function(t){t[t.ANNO_LINE_FORMAT_TYPE_NONE=0]="ANNO_LINE_FORMAT_TYPE_NONE",t[t.ANNO_LINE_FORMAT_TYPE_COLOR=1]="ANNO_LINE_FORMAT_TYPE_COLOR",t[t.ANNO_LINE_FORMAT_TYPE_DEFAULT=1]="ANNO_LINE_FORMAT_TYPE_DEFAULT"}(so||(so={})),function(t){t[t.ANNO_LINE_DASH_STYLE_SOLID=0]="ANNO_LINE_DASH_STYLE_SOLID",t[t.ANNO_LINE_DASH_STYLE_DASH=1]="ANNO_LINE_DASH_STYLE_DASH",t[t.ANNO_LINE_DASH_STYLE_DOT=2]="ANNO_LINE_DASH_STYLE_DOT",t[t.ANNO_LINE_DASH_STYLE_DASHDOT=3]="ANNO_LINE_DASH_STYLE_DASHDOT",t[t.ANNO_LINE_DASH_STYLE_DASHDOTDOT=4]="ANNO_LINE_DASH_STYLE_DASHDOTDOT",t[t.ANNO_LINE_DASH_STYLE_PATTERN=5]="ANNO_LINE_DASH_STYLE_PATTERN",t[t.ANNO_LINE_DASH_STYLE_DEFAULT=0]="ANNO_LINE_DASH_STYLE_DEFAULT"}(io||(io={})),function(t){t[t.ANNO_LINE_JOIN_STYLE_JOINMITER=0]="ANNO_LINE_JOIN_STYLE_JOINMITER",t[t.ANNO_LINE_JOIN_STYLE_JOINROUND=1]="ANNO_LINE_JOIN_STYLE_JOINROUND",t[t.ANNO_LINE_JOIN_STYLE_JOINBEVEL=2]="ANNO_LINE_JOIN_STYLE_JOINBEVEL",t[t.ANNO_LINE_JOIN_STYLE_MITERORBEVEL=3]="ANNO_LINE_JOIN_STYLE_MITERORBEVEL",t[t.ANNO_LINE_JOIN_STYLE_DEFAULT=1]="ANNO_LINE_JOIN_STYLE_DEFAULT"}(no||(no={})),function(t){t[t.ANNO_LINE_CAP_STYLE_BUTT=0]="ANNO_LINE_CAP_STYLE_BUTT",t[t.ANNO_LINE_CAP_STYLE_CAPROUND=1]="ANNO_LINE_CAP_STYLE_CAPROUND",t[t.ANNO_LINE_CAP_STYLE_CAPSQUARE=2]="ANNO_LINE_CAP_STYLE_CAPSQUARE",t[t.ANNO_LINE_CAP_STYLE_CAPTRIANGLE=3]="ANNO_LINE_CAP_STYLE_CAPTRIANGLE",t[t.ANNO_LINE_CAP_STYLE_DEFAULT=1]="ANNO_LINE_CAP_STYLE_DEFAULT"}(ro||(ro={})),function(t){t[t.ANNO_OBJ_FLAG_NOTHING=0]="ANNO_OBJ_FLAG_NOTHING",t[t.ANNO_OBJ_FLAG_WITH_TRANSFORM=1]="ANNO_OBJ_FLAG_WITH_TRANSFORM",t[t.ANNO_OBJ_FLAG_WITH_LINE=2]="ANNO_OBJ_FLAG_WITH_LINE",t[t.ANNO_OBJ_FLAG_WITH_FILL=4]="ANNO_OBJ_FLAG_WITH_FILL",t[t.ANNO_OBJ_FLAG_WITH_TEXTFRAME=8]="ANNO_OBJ_FLAG_WITH_TEXTFRAME"}(oo||(oo={})),function(t){t[t.ANNO_ENCODE_TYPE_NONE=0]="ANNO_ENCODE_TYPE_NONE",t[t.ANNO_ENCODE_TYPE_BASE64=1]="ANNO_ENCODE_TYPE_BASE64",t[t.ANNO_ENCODE_TYPE_GZIP_BASE64=2]="ANNO_ENCODE_TYPE_GZIP_BASE64"}(ao||(ao={})),function(t){t.ADD_OBJECT="addObject",t.REMOVE_OBJECT="removeObject"}(ho||(ho={})),function(t){t[t.SELECT_MOUSE=0]="SELECT_MOUSE",t[t.SELECT_TOOL=1]="SELECT_TOOL",t[t.SELECT_ERASER=2]="SELECT_ERASER",t[t.UNDO=3]="UNDO",t[t.REDO=4]="REDO",t[t.CLEAR=5]="CLEAR",t[t.CLOSE_TOOL_BAR=6]="CLOSE_TOOL_BAR",t[t.UPDATE_PARAMS=7]="UPDATE_PARAMS",t[t.PAUSE_ANNOTATION=8]="PAUSE_ANNOTATION",t[t.SHOW_ANNOTATOR_NAME=9]="SHOW_ANNOTATOR_NAME",t[t.ANNOTATOR_ID_TO_NAME=10]="ANNOTATOR_ID_TO_NAME",t[t.ANNO_CANVAS_SIZE_UPDATE=11]="ANNO_CANVAS_SIZE_UPDATE",t[t.STAMP=12]="STAMP",t[t.SPOTLIGHT=13]="SPOTLIGHT",t[t.TEXTBOX=14]="TEXTBOX",t[t.SELECT_OBJ=15]="SELECT_OBJ",t[t.UPDATE_REMOTE_POSITION_INFO=16]="UPDATE_REMOTE_POSITION_INFO",t[t.UPDATE_VANISHING_TOOL_TIME=17]="UPDATE_VANISHING_TOOL_TIME",t.PALETTE="PALETTE",t.OPTIONS="OPTIONS"}(co||(co={})),function(t){t[t.CLEAR_MINE=0]="CLEAR_MINE",t[t.CLEAR_VIEWER=1]="CLEAR_VIEWER",t[t.CLEAR_ALL=2]="CLEAR_ALL"}(lo||(lo={})),function(t){t[t.HORIZONTAL=0]="HORIZONTAL",t[t.VERTICAL=1]="VERTICAL"}(uo||(uo={})),function(t){t[t.TOP=0]="TOP",t[t.CENTER=1]="CENTER",t[t.BOTTOM=2]="BOTTOM"}(po||(po={})),function(t){t[t.ANNO_FILL_FORMAT_TYPE_NONE=0]="ANNO_FILL_FORMAT_TYPE_NONE",t[t.ANNO_FILL_FORMAT_TYPE_COLOR=1]="ANNO_FILL_FORMAT_TYPE_COLOR",t[t.ANNO_FILL_FORMAT_TYPE_DEFAULT=0]="ANNO_FILL_FORMAT_TYPE_DEFAULT"}(go||(go={})),function(t){t[t.LEFT=0]="LEFT",t[t.CENTER=1]="CENTER",t[t.RIGHT=2]="RIGHT",t[t.JUSTIFY=3]="JUSTIFY",t[t.JUSTIFY_LOW=4]="JUSTIFY_LOW",t[t.NATURAL=5]="NATURAL",t[t.DISTRIBUTE=6]="DISTRIBUTE",t[t.THAI_DISTRIBUTE=7]="THAI_DISTRIBUTE"}(fo||(fo={})),function(t){t[t.BASELINE=0]="BASELINE",t[t.TOP=1]="TOP",t[t.CENTER=2]="CENTER",t[t.FAREAST50=3]="FAREAST50"}(_o||(_o={})),function(t){t[t.LEFT_TO_RIGHT=0]="LEFT_TO_RIGHT",t[t.RIGHT_TO_LEFT=1]="RIGHT_TO_LEFT"}(Oo||(Oo={})),function(t){t[t.NONE=0]="NONE",t[t.NUMBERERD=1]="NUMBERERD",t[t.UNNUMBERERD=2]="UNNUMBERERD",t[t.PICTURE=3]="PICTURE"}(mo||(mo={})),function(t){t[t.ALPHA_LC_PERIOD=0]="ALPHA_LC_PERIOD"}(vo||(vo={})),function(t){t[t.ANNO_TAB_STOP_TYPE_LEFT=0]="ANNO_TAB_STOP_TYPE_LEFT",t[t.ANNO_TAB_STOP_TYPE_RIGHT=1]="ANNO_TAB_STOP_TYPE_RIGHT",t[t.ANNO_TAB_STOP_TYPE_CENTER=2]="ANNO_TAB_STOP_TYPE_CENTER",t[t.ANNO_TAB_STOP_TYPE_DECIMAL=3]="ANNO_TAB_STOP_TYPE_DECIMAL"}(Ao||(Ao={})),function(t){t[t.ANNO_OBJ_THICKNESS_SCRIBBLE_FLAG_NOTHING=0]="ANNO_OBJ_THICKNESS_SCRIBBLE_FLAG_NOTHING",t[t.ANNO_OBJ_THICKNESS_SCRIBBLE_FLAG_DYNAMIC_WIDTH=1]="ANNO_OBJ_THICKNESS_SCRIBBLE_FLAG_DYNAMIC_WIDTH"}(bo||(bo={})),function(t){t[t.ADD_OBJ=0]="ADD_OBJ",t[t.REMOVE_OBJ=1]="REMOVE_OBJ",t[t.RESTORE_OBJ=2]="RESTORE_OBJ",t[t.REMOVE_ALL_OBJ=3]="REMOVE_ALL_OBJ",t[t.RESTORE_ALL_OBJ=4]="RESTORE_ALL_OBJ"}(To||(To={}));class wo{constructor(t){this.mData=t?Array.from(t):[],this.currentPos=0}getSize(){return this.mData.length}writeInt8(t){this.mData.push(255&t),this.currentPos+=1}writeInt16(t){this.mData.push(255&t),this.mData.push(t>>>8&255),this.currentPos+=2}writeInt32(t){this.mData.push(255&t),this.mData.push(t>>>8&255),this.mData.push(t>>>16&255),this.mData.push(t>>>24&255),this.currentPos+=4}writeInt16At(t,e){this.mData[t]=255&e,this.mData[t+1]=e>>>8&255}writeInt32At(t,e){this.mData[t]=255&e,this.mData[t+1]=e>>>8&255,this.mData[t+2]=e>>>16&255,this.mData[t+3]=e>>>24&255}writeFloat32(t){const e=new DataView(new ArrayBuffer(4));e.setFloat32(0,t,!0);const s=new Uint8Array(e.buffer);for(let t=0;t<4;t++)this.mData.push(s[t]);this.currentPos+=4}writeString(t){const e=t.length;this.writeInt32(e);for(let s=0;s<e;s++)this.writeInt16(t.charCodeAt(s))}writeStringIn16BitCode(t){let e=0;for(;e<t.length;)this.writeInt16(t.charCodeAt(e++))}readInt8(){const t=this.currentPos;if(t>=this.mData.length)return 0;const e=this.mData[t];return this.currentPos+=1,e}readInt16(){const t=this.currentPos;if(t+1>=this.mData.length)return 0;const e=this.mData[t]|this.mData[t+1]<<8;return this.currentPos+=2,e}readInt32(){const t=this.readInt32At(this.currentPos);return this.currentPos+=4,t}readInt32At(t){return t<0||t+4>this.mData.length?0:this.mData[t]|this.mData[t+1]<<8|this.mData[t+2]<<16|this.mData[t+3]<<24}readString(){const t=this.readInt32();let e="";for(let s=0;s<t&&s<this.mData.length;s++)e+=String.fromCharCode(this.readInt16());return e}readStringFrom16CharCode(t){let e=[],s=0;for(;s<t;)e.push(this.readInt16()),s++;return String.fromCharCode(...e)}readFloat32(){if(this.currentPos+3>=this.mData.length)return 0;const t=this.mData.slice(this.currentPos,this.currentPos+4),e=new DataView(new Uint8Array(t).buffer);return this.currentPos+=4,e.getFloat32(0,!0)}toInt8Array(){return new Uint8Array(this.mData)}tell(){return this.currentPos}seek(t){this.currentPos=this.mData.length>t?t:this.mData.length-1}}function Io(t,e){t.writeInt16(e.struSize),t.writeInt32(e.dataSize)}function xo(t,e){e.struSize=t.readInt16(),e.dataSize=t.readInt32()}function Eo(t,e,s){const i=t.tell();s.struSize!=i-e&&(s.struSize=i-e,t.writeInt16At(e,s.struSize))}function ko(t,e,s){const i=t.tell();s.dataSize!=i-e&&(s.dataSize=i-e,t.writeInt32At(e+2,s.dataSize))}function Co(t,e,s){t.tell()-e<s.struSize&&t.seek(e+s.struSize)}function Po(t,e,s){t.tell()-e<s.dataSize&&t.seek(e+s.dataSize)}function No(t,e,s,i){return{dnSource:to.FROM_LOCAL,appId:t||Zr,userName:e||"",docId:s||Zr,pageId:i||Zr,annoObjIds:new Array}}function Ro(t){return t>>>16&255|(t>>>8&255)<<8|(255&t)<<16}function Lo(t,e){return{pduType:e,appId:t.appId||Zr,docId:t.docId||Zr,pageId:t.pageId||Zr,annoObjIds:t.annoObjIds||[],whiteboardObjIds:t.whiteboardObjIds||[]}}function jo(t){const{left:e,top:s,right:i,bottom:n}=t,r=Math.abs(i-e),o=Math.abs(n-s);return{width:r,height:o,transform:[1,0,0,1,e+r/2,s+o/2]}}function Do(t){const e=t.transform[4],s=t.transform[5],i=e-t.width/2,n=i+t.width,r=s-t.height/2;return{left:i,right:n,top:r,bottom:r+t.height}}function Fo(t){switch(t){case Q.ANNO_TOOL_TYPE_FADE_PEN:case Q.ANNO_TOOL_TYPE_AUTO_VANISHING_SQUARE:case Q.ANNO_TOOL_TYPE_AUTO_VANISHING_ARROW:case Q.ANNO_TOOL_TYPE_AUTO_VANISHING_DOUBLE_ARROW:case Q.ANNO_TOOL_TYPE_AUTO_VANISHING_DIAMOND:case Q.ANNO_TOOL_TYPE_AUTO_VANISHING_ELLIPSE:case Q.ANNO_TOOL_TYPE_AUTO_VANISHING_RECTANGLE:return!0}return!1}function Mo(t){switch(t){case Qr.kVanishingSquare:case Qr.kVanishingArrow:case Qr.kVanishingDoubleArrow:case Qr.kVanishingDiamond:case Qr.kVanishingEllipse:case Qr.kVanishingRectangle:return!0}return!1}!function(t){t[t.ANNO_OBJ_HIT_CONSTRAINT_NONE=0]="ANNO_OBJ_HIT_CONSTRAINT_NONE",t[t.ANNO_OBJ_HIT_CONSTRAINT_LEFT_TOP=1]="ANNO_OBJ_HIT_CONSTRAINT_LEFT_TOP",t[t.ANNO_OBJ_HIT_CONSTRAINT_CENTER_TOP=2]="ANNO_OBJ_HIT_CONSTRAINT_CENTER_TOP",t[t.ANNO_OBJ_HIT_CONSTRAINT_RIGHT_TOP=4]="ANNO_OBJ_HIT_CONSTRAINT_RIGHT_TOP",t[t.ANNO_OBJ_HIT_CONSTRAINT_RIGHT_CENTER=8]="ANNO_OBJ_HIT_CONSTRAINT_RIGHT_CENTER",t[t.ANNO_OBJ_HIT_CONSTRAINT_RIGHT_BOTTOM=16]="ANNO_OBJ_HIT_CONSTRAINT_RIGHT_BOTTOM",t[t.ANNO_OBJ_HIT_CONSTRAINT_CENTER_BOTTOM=32]="ANNO_OBJ_HIT_CONSTRAINT_CENTER_BOTTOM",t[t.ANNO_OBJ_HIT_CONSTRAINT_LEFT_BOTTOM=64]="ANNO_OBJ_HIT_CONSTRAINT_LEFT_BOTTOM",t[t.ANNO_OBJ_HIT_CONSTRAINT_LEFT_CENTER=128]="ANNO_OBJ_HIT_CONSTRAINT_LEFT_CENTER",t[t.ANNO_OBJ_HIT_CONSTRAINT_ALL=255]="ANNO_OBJ_HIT_CONSTRAINT_ALL"}(yo||(yo={}));class Yo{constructor(){this.annoObjScribble={struSize:6,dataSize:6,annoPoints:[]}}pack(t){const e=t.tell(),s=this.annoObjScribble.annoPoints.length;if(Io(t,this.annoObjScribble),Eo(t,e,this.annoObjScribble),s>0){t.writeInt32(s);for(let e=0;e<s;e++)t.writeInt32(this.annoObjScribble.annoPoints[e].x),t.writeInt32(this.annoObjScribble.annoPoints[e].y)}ko(t,e,this.annoObjScribble)}unpack(t){const e=t.tell();xo(t,this.annoObjScribble),Co(t,e,this.annoObjScribble);const s=t.readInt32();for(let e=0;e<s;e++){const e=t.readInt32(),s=t.readInt32();this.annoObjScribble.annoPoints.push({x:e,y:s})}Po(t,e,this.annoObjScribble)}setData(t){this.annoObjScribble.annoPoints=t}getData(){return this.annoObjScribble.annoPoints}}class Bo{constructor(){this.annoObjThicknessScribble=function(){const t={struSize:13,dataSize:6,annoPoints:[]};return t.dataSize=t.struSize,Object.assign(Object.assign({},t),{color:255,alpha:1,flag:0,dynamicWidths:[],fixedWidth:0})}()}pack(t){const e=t.tell(),s=this.annoObjThicknessScribble.annoPoints.length;if(Io(t,this.annoObjThicknessScribble),t.writeInt32(this.annoObjThicknessScribble.color),t.writeInt16(this.annoObjThicknessScribble.alpha),t.writeInt8(this.annoObjThicknessScribble.flag),Eo(t,e,this.annoObjThicknessScribble),s>0){t.writeInt32(s);for(let e=0;e<s;e++)t.writeInt32(this.annoObjThicknessScribble.annoPoints[e].x),t.writeInt32(this.annoObjThicknessScribble.annoPoints[e].y)}if(this.annoObjThicknessScribble.flag&bo.ANNO_OBJ_THICKNESS_SCRIBBLE_FLAG_DYNAMIC_WIDTH){const e=this.annoObjThicknessScribble.dynamicWidths.length;if(t.writeInt32(e),e>0)for(let s=0;s<e;s++)t.writeFloat32(this.annoObjThicknessScribble.dynamicWidths[s])}else t.writeFloat32(this.annoObjThicknessScribble.fixedWidth);ko(t,e,this.annoObjThicknessScribble)}unpack(t){const e=t.tell();xo(t,this.annoObjThicknessScribble),this.annoObjThicknessScribble.color=t.readInt32(),this.annoObjThicknessScribble.alpha=t.readInt16(),this.annoObjThicknessScribble.flag=t.readInt8(),Co(t,e,this.annoObjThicknessScribble);const s=t.readInt32();for(let e=0;e<s;e++){const e=t.readInt32(),s=t.readInt32();this.annoObjThicknessScribble.annoPoints.push({x:e,y:s})}if(this.annoObjThicknessScribble.flag&bo.ANNO_OBJ_THICKNESS_SCRIBBLE_FLAG_DYNAMIC_WIDTH){const e=t.readInt32();if(e>0)for(let s=0;s<e;s++)this.annoObjThicknessScribble.dynamicWidths.push(t.readFloat32())}else this.annoObjThicknessScribble.fixedWidth=t.readFloat32();Po(t,e,this.annoObjThicknessScribble)}setData(t){this.annoObjThicknessScribble.annoPoints=t}getData(){return this.annoObjThicknessScribble.annoPoints}getColor(){return this.annoObjThicknessScribble.color}getAlpha(){return this.annoObjThicknessScribble.alpha}getFlag(){return this.annoObjThicknessScribble.flag}getDynamicWidth(){return this.annoObjThicknessScribble.dynamicWidths}getFixedWidth(){return this.annoObjThicknessScribble.fixedWidth}}class Ho{constructor(){}pack(t){}unpack(t){}}class Vo extends Ho{constructor(t){super(),this.transform={struSize:30,dataSize:30,a:0,b:0,c:0,d:0,tx:0,ty:0},t&&(this.transform.a=t.a,this.transform.b=t.b,this.transform.c=t.c,this.transform.d=t.d,this.transform.tx=t.tx,this.transform.ty=t.ty)}pack(t){t.writeFloat32(this.transform.a),t.writeFloat32(this.transform.b),t.writeFloat32(this.transform.c),t.writeFloat32(this.transform.d),t.writeFloat32(this.transform.tx),t.writeFloat32(this.transform.ty)}unpack(t){this.transform.a=t.readFloat32(),this.transform.b=t.readFloat32(),this.transform.c=t.readFloat32(),this.transform.d=t.readFloat32(),this.transform.tx=t.readFloat32(),this.transform.ty=t.readFloat32()}}class Wo extends Ho{constructor(t){super(),this.annoLineFormat={struSize:10,dataSize:40,type:so.ANNO_LINE_FORMAT_TYPE_DEFAULT,annoLineData:{colorLine:{struSize:30,dataSize:30,dashStyle:io.ANNO_LINE_DASH_STYLE_DEFAULT,joinStyle:no.ANNO_LINE_JOIN_STYLE_DEFAULT,capStyle:ro.ANNO_LINE_CAP_STYLE_DEFAULT,width:2,color:255,alpha:1}}},t&&(t.type in so&&(this.annoLineFormat.type=t.type),t.lineData&&(this.annoLineFormat.annoLineData.colorLine.width=t.lineData.width,this.annoLineFormat.annoLineData.colorLine.color=Ro(t.lineData.color),void 0!==t.lineData.alpha&&(this.annoLineFormat.annoLineData.colorLine.alpha=t.lineData.alpha)))}pack(t){super.pack(t);const e=t.tell();switch(Io(t,this.annoLineFormat),t.writeInt32(this.annoLineFormat.type),this.annoLineFormat.type){case so.ANNO_LINE_FORMAT_TYPE_NONE:break;case so.ANNO_LINE_FORMAT_TYPE_DEFAULT:{const e=t.tell();Io(t,this.annoLineFormat.annoLineData.colorLine),t.writeInt32(this.annoLineFormat.annoLineData.colorLine.dashStyle),t.writeInt32(this.annoLineFormat.annoLineData.colorLine.joinStyle),t.writeInt32(this.annoLineFormat.annoLineData.colorLine.capStyle),t.writeInt32(this.annoLineFormat.annoLineData.colorLine.width),t.writeInt32(this.annoLineFormat.annoLineData.colorLine.color),t.writeFloat32(this.annoLineFormat.annoLineData.colorLine.alpha),ko(t,e,this.annoLineFormat.annoLineData.colorLine);break}}ko(t,e,this.annoLineFormat)}unpack(t){super.unpack(t);const e=t.tell();switch(xo(t,this.annoLineFormat),this.annoLineFormat.type=t.readInt32(),Co(t,e,this.annoLineFormat),this.annoLineFormat.type){case so.ANNO_LINE_FORMAT_TYPE_NONE:break;case so.ANNO_LINE_FORMAT_TYPE_COLOR:{const e=t.tell();xo(t,this.annoLineFormat.annoLineData.colorLine),this.annoLineFormat.annoLineData.colorLine.dashStyle=t.readInt32(),this.annoLineFormat.annoLineData.colorLine.joinStyle=t.readInt32(),this.annoLineFormat.annoLineData.colorLine.capStyle=t.readInt32(),this.annoLineFormat.annoLineData.colorLine.width=t.readInt32(),this.annoLineFormat.annoLineData.colorLine.color=Ro(t.readInt32()),this.annoLineFormat.annoLineData.colorLine.alpha=t.readFloat32(),Co(t,e,this.annoLineFormat.annoLineData.colorLine),Po(t,e,this.annoLineFormat.annoLineData.colorLine);break}}Po(t,e,this.annoLineFormat)}}class Uo extends Ho{constructor(t){super(),this.annoFillFormat={struSize:10,dataSize:10,type:go.ANNO_FILL_FORMAT_TYPE_DEFAULT,colorFill:{struSize:14,dataSize:14,color:0,alpha:1}},t&&(t.type in go&&(this.annoFillFormat.type=t.type),t.colorFill&&(this.annoFillFormat.colorFill.color=Ro(t.colorFill.color),this.annoFillFormat.colorFill.alpha=t.colorFill.alpha))}pack(t){super.pack(t);const e=t.tell();switch(Io(t,this.annoFillFormat),t.writeInt32(this.annoFillFormat.type),Eo(t,e,this.annoFillFormat),this.annoFillFormat.type){case go.ANNO_FILL_FORMAT_TYPE_NONE:break;case go.ANNO_FILL_FORMAT_TYPE_COLOR:{const e=t.tell();Io(t,this.annoFillFormat.colorFill),t.writeInt32(this.annoFillFormat.colorFill.color),t.writeFloat32(this.annoFillFormat.colorFill.alpha),Eo(t,e,this.annoFillFormat.colorFill),ko(t,e,this.annoFillFormat.colorFill);break}}ko(t,e,this.annoFillFormat)}unpack(t){super.unpack(t);const e=t.tell();switch(xo(t,this.annoFillFormat),this.annoFillFormat.type=t.readInt32(),Co(t,e,this.annoFillFormat),this.annoFillFormat.type){case go.ANNO_FILL_FORMAT_TYPE_NONE:break;case go.ANNO_FILL_FORMAT_TYPE_COLOR:{const e=t.tell();xo(t,this.annoFillFormat.colorFill),this.annoFillFormat.colorFill.color=t.readInt32(),this.annoFillFormat.colorFill.alpha=t.readFloat32(),Co(t,e,this.annoFillFormat.colorFill),Po(t,e,this.annoFillFormat.colorFill);break}}Po(t,e,this.annoFillFormat)}}class zo extends Jr{constructor(t){super(Zr),this.annoObjHeader={struSize:18,dataSize:18,objType:Qr.kNull,objFlag:oo.ANNO_OBJ_FLAG_NOTHING,objId:Zr},this.annoObjHeader.objType=t,this.annoTransform=null,this.annoLineFormat=null,this.annoFillFormat=null,this.annoTextFrame=null,this.annoObjHitConstraint=yo.ANNO_OBJ_HIT_CONSTRAINT_NONE,this.appId=Zr,this.docId=Zr,this.pageId=Zr}pack(t){var e,s,i,n;this.annoObjHeader.objId=this.getId();const r=t.tell();Io(t,this.annoObjHeader),t.writeInt32(this.annoObjHeader.objType),t.writeInt32(this.annoObjHeader.objFlag),t.writeInt32(this.annoObjHeader.objId),this.annoObjHeader.objFlag&oo.ANNO_OBJ_FLAG_WITH_TRANSFORM&&(null===(e=this.annoTransform)||void 0===e||e.pack(t)),this.annoObjHeader.objFlag&oo.ANNO_OBJ_FLAG_WITH_LINE&&(null===(s=this.annoLineFormat)||void 0===s||s.pack(t)),this.annoObjHeader.objFlag&oo.ANNO_OBJ_FLAG_WITH_FILL&&(null===(i=this.annoFillFormat)||void 0===i||i.pack(t)),this.annoObjHeader.objFlag&oo.ANNO_OBJ_FLAG_WITH_TEXTFRAME&&(null===(n=this.annoTextFrame)||void 0===n||n.pack(t)),ko(t,r,this.annoObjHeader)}unpack(t){const e=t.tell();xo(t,this.annoObjHeader),this.annoObjHeader.objType=t.readInt32(),this.annoObjHeader.objFlag=t.readInt32(),this.annoObjHeader.objId=t.readInt32(),Co(t,e,this.annoObjHeader),this.setId(this.annoObjHeader.objId),this.annoObjHeader.objFlag&oo.ANNO_OBJ_FLAG_WITH_TRANSFORM&&(this.annoTransform=new Vo,this.annoTransform.unpack(t)),this.annoObjHeader.objFlag&oo.ANNO_OBJ_FLAG_WITH_LINE&&(this.annoLineFormat=new Wo,this.annoLineFormat.unpack(t)),this.annoObjHeader.objFlag&oo.ANNO_OBJ_FLAG_WITH_FILL&&(this.annoFillFormat=new Uo,this.annoFillFormat.unpack(t)),this.annoObjHeader.objFlag&oo.ANNO_OBJ_FLAG_WITH_TEXTFRAME&&(this.annoTextFrame=new fa,this.annoTextFrame.unpack(t)),Po(t,e,this.annoObjHeader)}packIds(t){t.writeInt32(1),t.writeInt32(this.getId())}setObjHeader(t){this.annoObjHeader.objId=t.objectId}setLineFormat(t){const e=new Wo(t);this.annoLineFormat=e,this.annoObjHeader.objFlag|=oo.ANNO_OBJ_FLAG_WITH_LINE}setFillFormat(t){const e=new Uo(t);this.annoFillFormat=e,this.annoObjHeader.objFlag|=oo.ANNO_OBJ_FLAG_WITH_FILL}makeCopy(){const t=new zo(this.annoObjHeader.objType);return t.setObjHeader({objectId:this.annoObjHeader.objId}),t.setLineFormat(this.annoLineFormat.annoLineFormat),t}setData(t){}setBound(t){}getPoints(){return[]}}class Go extends zo{constructor(t){super(t),this.annoObjScribble=new Yo}pack(t){super.pack(t),this.annoObjScribble.pack(t)}unpack(t){super.unpack(t),this.annoObjScribble.unpack(t)}setData(t){this.annoObjScribble.setData(t)}getPoints(){return this.annoObjScribble.getData()}}class Xo extends Go{constructor(){super(Qr.kSmoothPen)}}class qo extends Go{constructor(){super(Qr.kHighlighter)}}class Jo extends Go{constructor(){super(Qr.kFadePen)}}class Ko extends zo{constructor(){super(Qr.kThicknessPen),this.annoObjThicknessScribble=new Bo}pack(t){super.pack(t),this.annoObjThicknessScribble.pack(t)}unpack(t){super.unpack(t),this.annoObjThicknessScribble.unpack(t)}setData(t){this.annoObjThicknessScribble.setData(t)}getPoints(){return this.annoObjThicknessScribble.getData()}getColor(){return this.annoObjThicknessScribble.getColor()}getAlpha(){return this.annoObjThicknessScribble.getAlpha()}getFlag(){return this.annoObjThicknessScribble.getFlag()}getDynamicWidth(){return this.annoObjThicknessScribble.getDynamicWidth()}getFixedWidth(){return this.annoObjThicknessScribble.getFixedWidth()}}class Zo extends zo{constructor(){super(Qr.kArrow),this.annoObjArrow={struSize:28,dataSize:28,position:{x:0,y:0},size:{width:0,height:0},color:255,alpha:1,title:""}}pack(t){super.pack(t);const e=t.tell();Io(t,this.annoObjArrow),t.writeInt32(this.annoObjArrow.position.x),t.writeInt32(this.annoObjArrow.position.y),t.writeInt32(Ro(this.annoObjArrow.color)),t.writeInt16(Math.floor(255*this.annoObjArrow.alpha)),t.writeInt32(this.annoObjArrow.size.width),t.writeInt32(this.annoObjArrow.size.height),Eo(t,e,this.annoObjArrow),t.writeString(this.annoObjArrow.title),ko(t,e,this.annoObjArrow)}unpack(t){super.unpack(t);const e=t.tell();xo(t,this.annoObjArrow),this.annoObjArrow.position.x=t.readInt32(),this.annoObjArrow.position.y=t.readInt32(),this.annoObjArrow.color=Ro(t.readInt32()),this.annoObjArrow.alpha=t.readInt16()/255,this.annoObjArrow.size.width=t.readInt32(),this.annoObjArrow.size.height=t.readInt32(),Co(t,e,this.annoObjArrow),this.annoObjArrow.title=t.readString(),Po(t,e,this.annoObjArrow)}setData(t){var e,s;this.annoObjArrow.position.x=(null===(e=null==t?void 0:t.position)||void 0===e?void 0:e.x)||0,this.annoObjArrow.position.y=(null===(s=null==t?void 0:t.position)||void 0===s?void 0:s.y)||0,this.annoObjArrow.color=(null==t?void 0:t.color)||255,this.annoObjArrow.alpha=(null==t?void 0:t.alpha)||1,this.annoObjArrow.size.width=(null==t?void 0:t.width)||0,this.annoObjArrow.size.height=(null==t?void 0:t.height)||0,this.annoObjArrow.title=(null==t?void 0:t.title)||""}}class Qo extends zo{constructor(t){super(t),this.annoObjAutoShape={struSize:22,dataSize:22,bounds:{left:0,top:0,right:0,bottom:0}}}pack(t){super.pack(t);const e=t.tell();Io(t,this.annoObjAutoShape),t.writeInt32(this.annoObjAutoShape.bounds.left),t.writeInt32(this.annoObjAutoShape.bounds.top),t.writeInt32(this.annoObjAutoShape.bounds.right),t.writeInt32(this.annoObjAutoShape.bounds.bottom),Eo(t,e,this.annoObjAutoShape),ko(t,e,this.annoObjAutoShape)}unpack(t){super.unpack(t);const e=t.tell();xo(t,this.annoObjAutoShape),this.annoObjAutoShape.bounds.left=t.readInt32(),this.annoObjAutoShape.bounds.top=t.readInt32(),this.annoObjAutoShape.bounds.right=t.readInt32(),this.annoObjAutoShape.bounds.bottom=t.readInt32(),Co(t,e,this.annoObjAutoShape),Po(t,e,this.annoObjAutoShape)}setBound(t){this.annoObjAutoShape.bounds.left=t.left,this.annoObjAutoShape.bounds.top=t.top,this.annoObjAutoShape.bounds.right=t.right,this.annoObjAutoShape.bounds.bottom=t.bottom}}class $o extends Qo{constructor(){super(Qr.kAutoLine)}}class ta extends Qo{constructor(){super(Qr.kAutoRectangle)}}class ea extends Qo{constructor(){super(Qr.kAutoDiamond)}}class sa extends Qo{constructor(){super(Qr.kAutoTriangle)}}class ia extends Qo{constructor(){super(Qr.kAutoEllipse)}}class na extends Qo{constructor(t){super(t)}}class ra extends Qo{constructor(){super(Qr.kTextbox)}}class oa extends Qo{constructor(t){super(t),this.annoObjHitConstraint=yo.ANNO_OBJ_HIT_CONSTRAINT_LEFT_TOP||yo.ANNO_OBJ_HIT_CONSTRAINT_CENTER_TOP||yo.ANNO_OBJ_HIT_CONSTRAINT_RIGHT_TOP||yo.ANNO_OBJ_HIT_CONSTRAINT_RIGHT_CENTER||yo.ANNO_OBJ_HIT_CONSTRAINT_RIGHT_BOTTOM||yo.ANNO_OBJ_HIT_CONSTRAINT_CENTER_BOTTOM||yo.ANNO_OBJ_HIT_CONSTRAINT_LEFT_BOTTOM||yo.ANNO_OBJ_HIT_CONSTRAINT_LEFT_CENTER}}class aa extends Qo{constructor(t){super(t)}}class ha{constructor(){this.fontDescriptor={struSize:0,dataSize:0,size:0,color:0,alpha:0,weight:0,style:0,baseLineOffset:0,name:"",nameAscii:"",nameOther:"",nameComplexScript:""}}pack(t){const e=t.tell();Io(t,this.fontDescriptor),t.writeInt8(this.fontDescriptor.size),t.writeInt32(this.fontDescriptor.color),t.writeFloat32(this.fontDescriptor.alpha),t.writeFloat32(this.fontDescriptor.weight),t.writeInt32(this.fontDescriptor.style),t.writeFloat32(this.fontDescriptor.baseLineOffset),t.writeInt32(this.fontDescriptor.name.length),t.writeInt32(this.fontDescriptor.nameAscii.length),t.writeInt32(this.fontDescriptor.nameOther.length),t.writeInt32(this.fontDescriptor.nameComplexScript.length),Eo(t,e,this.fontDescriptor),t.writeStringIn16BitCode(this.fontDescriptor.name),t.writeStringIn16BitCode(this.fontDescriptor.nameAscii),t.writeStringIn16BitCode(this.fontDescriptor.nameOther),t.writeStringIn16BitCode(this.fontDescriptor.nameComplexScript),ko(t,e,this.fontDescriptor)}unpack(t){const e=t.tell();xo(t,this.fontDescriptor),this.fontDescriptor.size=t.readInt8(),this.fontDescriptor.color=t.readInt32(),this.fontDescriptor.alpha=t.readFloat32(),this.fontDescriptor.weight=t.readFloat32(),this.fontDescriptor.style=t.readInt32(),this.fontDescriptor.baseLineOffset=t.readFloat32();const s=t.readInt32(),i=t.readInt32(),n=t.readInt32(),r=t.readInt32();Co(t,e,this.fontDescriptor),this.fontDescriptor.name=t.readStringFrom16CharCode(s),this.fontDescriptor.nameAscii=t.readStringFrom16CharCode(i),this.fontDescriptor.nameOther=t.readStringFrom16CharCode(n),this.fontDescriptor.nameComplexScript=t.readStringFrom16CharCode(r),Po(t,e,this.fontDescriptor)}}class ca{constructor(){this.bulletFormat={struSize:0,dataSize:0,character:0,type:mo.NONE,style:vo.ALPHA_LC_PERIOD,number:0,relativeSize:0,startValue:0},this.annoFontDescriptor=new ha}pack(t){const e=t.tell();Io(t,this.bulletFormat),t.writeInt32(this.bulletFormat.character),t.writeInt32(this.bulletFormat.type),t.writeInt32(this.bulletFormat.style),t.writeInt32(this.bulletFormat.number),t.writeFloat32(this.bulletFormat.relativeSize),t.writeInt32(this.bulletFormat.startValue),Eo(t,e,this.bulletFormat),this.annoFontDescriptor.pack(t),ko(t,e,this.bulletFormat)}unpack(t){const e=t.tell();xo(t,this.bulletFormat),this.bulletFormat.character=t.readInt32(),this.bulletFormat.type=t.readInt32(),this.bulletFormat.style=t.readInt32(),this.bulletFormat.number=t.readInt32(),this.bulletFormat.relativeSize=t.readFloat32(),this.bulletFormat.startValue=t.readInt32(),Co(t,e,this.bulletFormat),this.annoFontDescriptor.unpack(t),Po(t,e,this.bulletFormat)}}class la{constructor(){this.paragraphFormat={struSize:0,dataSize:0,alignment:fo.CENTER,baseLineAlignment:_o.BASELINE,textDirection:Oo.LEFT_TO_RIGHT,spaceBefore:0,spaceAfter:0,spaceBetween:0,wordWrap:0,hasBullet:!1},this.annoBulletFormat=new ca}pack(t){var e;const s=t.tell();Io(t,this.paragraphFormat),t.writeInt32(this.paragraphFormat.alignment),t.writeInt32(this.paragraphFormat.baseLineAlignment),t.writeInt32(this.paragraphFormat.textDirection),t.writeFloat32(this.paragraphFormat.spaceBefore),t.writeFloat32(this.paragraphFormat.spaceAfter),t.writeFloat32(this.paragraphFormat.spaceBetween),t.writeInt32(this.paragraphFormat.wordWrap),t.writeInt8(this.paragraphFormat.hasBullet?1:0),Eo(t,s,this.paragraphFormat),this.paragraphFormat.hasBullet&&(null===(e=this.annoBulletFormat)||void 0===e||e.pack(t)),ko(t,s,this.paragraphFormat)}unpack(t){const e=t.tell();xo(t,this.paragraphFormat),this.paragraphFormat.alignment=t.readInt32(),this.paragraphFormat.baseLineAlignment=t.readInt32(),this.paragraphFormat.textDirection=t.readInt32(),this.paragraphFormat.spaceBefore=t.readFloat32(),this.paragraphFormat.spaceAfter=t.readFloat32(),this.paragraphFormat.spaceBetween=t.readFloat32(),this.paragraphFormat.wordWrap=t.readInt32(),this.paragraphFormat.hasBullet=1===t.readInt8(),Co(t,e,this.paragraphFormat),this.paragraphFormat.hasBullet&&this.annoBulletFormat.unpack(t),Po(t,e,this.paragraphFormat)}}class da{constructor(){this.textRange={struSize:0,dataSize:0,bounds:{left:0,top:0,right:0,bottom:0},languageId:0,indentLevel:0,startPosition:0,textLength:0,text:""},this.annoParagraphFormat=new la,this.annoFontDescriptor=new ha}pack(t){const e=t.tell();Io(t,this.textRange),t.writeInt32(this.textRange.bounds.left),t.writeInt32(this.textRange.bounds.top),t.writeInt32(this.textRange.bounds.right),t.writeInt32(this.textRange.bounds.bottom),t.writeInt16(this.textRange.languageId),t.writeInt8(this.textRange.indentLevel),t.writeInt32(this.textRange.startPosition),t.writeInt32(this.textRange.textLength),Eo(t,e,this.textRange),this.textRange.textLength>0&&this.textRange.text&&t.writeStringIn16BitCode(this.textRange.text),this.annoParagraphFormat.pack(t),this.annoFontDescriptor.pack(t),ko(t,e,this.textRange)}unpack(t){const e=t.tell();xo(t,this.textRange),this.textRange.bounds.left=t.readInt32(),this.textRange.bounds.top=t.readInt32(),this.textRange.bounds.right=t.readInt32(),this.textRange.bounds.bottom=t.readInt32(),this.textRange.languageId=t.readInt16(),this.textRange.indentLevel=t.readInt8(),this.textRange.startPosition=t.readInt32(),this.textRange.textLength=t.readInt32(),Co(t,e,this.textRange),this.textRange.textLength&&(this.textRange.text=t.readStringFrom16CharCode(this.textRange.textLength)),this.annoParagraphFormat.unpack(t),this.annoFontDescriptor.unpack(t),Po(t,e,this.textRange)}}class ua{constructor(){this.tabStop={struSize:0,dataSize:0,tabStopType:Ao.ANNO_TAB_STOP_TYPE_LEFT,position:0}}pack(t){const e=t.tell();Io(t,this.tabStop),t.writeInt32(this.tabStop.tabStopType),t.writeFloat32(this.tabStop.position),Eo(t,e,this.tabStop),ko(t,e,this.tabStop)}unpack(t){const e=t.tell();xo(t,this.tabStop),this.tabStop.tabStopType=t.readInt32(),this.tabStop.position=t.readFloat32(),Co(t,e,this.tabStop),Po(t,e,this.tabStop)}}class pa{constructor(){this.rulerLevel={struSize:0,dataSize:0,firstMargin:0,leftMargin:0}}pack(t){const e=t.tell();Io(t,this.rulerLevel),t.writeFloat32(this.rulerLevel.firstMargin),t.writeFloat32(this.rulerLevel.leftMargin),Eo(t,e,this.rulerLevel),ko(t,e,this.rulerLevel)}unpack(t){const e=t.tell();xo(t,this.rulerLevel),this.rulerLevel.firstMargin=t.readFloat32(),this.rulerLevel.leftMargin=t.readFloat32(),Co(t,e,this.rulerLevel),Po(t,e,this.rulerLevel)}}class ga{constructor(){this.ruler={struSize:0,dataSize:0,numberOfRulerLevels:0,numberOfTabStops:0},this.annoRulerLevels=[],this.annoTabStops=[]}pack(t){const e=t.tell();Io(t,this.ruler),t.writeInt32(this.ruler.numberOfRulerLevels),t.writeInt32(this.ruler.numberOfTabStops),Eo(t,e,this.ruler);for(let e=0;e<this.annoRulerLevels.length;e++)this.annoRulerLevels[e].pack(t);for(let e=0;e<this.annoTabStops.length;e++)this.annoTabStops[e].pack(t);ko(t,e,this.ruler)}unpack(t){const e=t.tell();xo(t,this.ruler),this.ruler.numberOfRulerLevels=t.readInt32(),this.ruler.numberOfTabStops=t.readInt32(),Co(t,e,this.ruler);for(let e=0;e<this.ruler.numberOfRulerLevels;e++){const e=new pa;e.unpack(t),this.annoRulerLevels.push(e)}for(let e=0;e<this.ruler.numberOfTabStops;e++){const e=new ua;e.unpack(t),this.annoTabStops.push(e)}Po(t,e,this.ruler)}}class fa extends Ho{constructor(){super(),this.textFrame={struSize:0,dataSize:0,hasText:!1,wordWrap:!1,horizontalAnchor:!1,verticalAnchor:!1,marginLeft:0,marginTop:0,marginRight:0,marginBottom:0,orientation:uo.HORIZONTAL,verticalAlignment:po.TOP,bounds:{left:0,top:0,right:0,bottom:0},numberOfTextRange:0},this.annoTextRanges=[],this.annoRuler=new ga}pack(t){const e=t.tell();Io(t,this.textFrame),t.writeInt8(this.textFrame.hasText?1:0),t.writeInt8(this.textFrame.wordWrap?1:0),t.writeInt8(this.textFrame.horizontalAnchor?1:0),t.writeInt8(this.textFrame.verticalAnchor?1:0),t.writeFloat32(this.textFrame.marginLeft),t.writeFloat32(this.textFrame.marginTop),t.writeFloat32(this.textFrame.marginRight),t.writeFloat32(this.textFrame.marginBottom),t.writeInt32(this.textFrame.orientation),t.writeInt32(this.textFrame.verticalAlignment),t.writeInt32(this.textFrame.bounds.left),t.writeInt32(this.textFrame.bounds.top),t.writeInt32(this.textFrame.bounds.right),t.writeInt32(this.textFrame.bounds.bottom),t.writeInt32(this.textFrame.numberOfTextRange),Eo(t,e,this.textFrame);for(let e=0;e<this.annoTextRanges.length;e++)this.annoTextRanges[e].pack(t);this.annoRuler.pack(t),ko(t,e,this.textFrame)}unpack(t){const e=t.tell();xo(t,this.textFrame),this.textFrame.hasText=1===t.readInt8(),this.textFrame.wordWrap=1===t.readInt8(),this.textFrame.horizontalAnchor=1===t.readInt8(),this.textFrame.verticalAnchor=1===t.readInt8(),this.textFrame.marginLeft=t.readFloat32(),this.textFrame.marginTop=t.readFloat32(),this.textFrame.marginRight=t.readFloat32(),this.textFrame.marginBottom=t.readFloat32(),this.textFrame.orientation=t.readInt32(),this.textFrame.verticalAlignment=t.readInt32(),this.textFrame.bounds.left=t.readInt32(),this.textFrame.bounds.top=t.readInt32(),this.textFrame.bounds.right=t.readInt32(),this.textFrame.bounds.bottom=t.readInt32(),this.textFrame.numberOfTextRange=t.readInt32(),Co(t,e,this.textFrame);for(let e=0;e<this.textFrame.numberOfTextRange;e++){const e=new da;e.unpack(t),this.annoTextRanges.push(e)}this.annoRuler.unpack(t),Po(t,e,this.textFrame)}}class _a extends Xr{constructor(t){super(t.appId),this.appId=t.appId,this.isPresenter=t.isPresenter,this.userName=t.userName,this.preseterId=t.preseterId,this.page=new Oa(t)}handlePageSync(t,e){this.setId(t),this.page.setPageId(e)}getPageId(){return this.page.getPageId()}}class Oa extends qr{constructor(t){super(t.appId),this._isErased=!1,this.pageName="",this.appId=t.appId||0,this.currentPageId=this.acquirePageId(t.appId)}setPageId(t){this.currentPageId=t}getPageId(){return this.currentPageId}isErased(){return this._isErased}setErased(t){this._isErased=t}getPageName(){return this.pageName}setPageName(t){this.pageName=t}packPage(t){t.writeInt32(this.currentPageId),t.writeInt8(this._isErased?1:0),t.writeString(this.pageName)}}function ma(t,e){var s;const i=null===(s=t.annoLineFormat)||void 0===s?void 0:s.annoLineFormat.annoLineData.colorLine,n={width:i.width,color:i.color,alpha:i.alpha},r={x:t.annoObjAutoShape.bounds.left,y:t.annoObjAutoShape.bounds.top},o={x:t.annoObjAutoShape.bounds.right,y:t.annoObjAutoShape.bounds.bottom},a=Mo(t.annoObjHeader.objType);return{type:Qi.Line,lineFormat:{type:e,lineData:n,start:r,end:o,isVanishing:a}}}class va extends Kr{constructor(t,e,s){super(Zr),this.annoPduHeader={struSize:22,dataSize:22,pduType:$r.kNull,pduId:Zr,appId:Zr,pduTimeStamp:Date.now()},this.annoPduHeader.pduType=t,s?this.data=s:(this.annoPduHeader.pduId=this.acquirePduId(),this.annoPduHeader.pduTimeStamp=Date.now(),this.data=new wo(null))}pack(){this.data.writeInt16(this.annoPduHeader.struSize),this.data.writeInt32(this.annoPduHeader.dataSize),this.data.writeInt32(this.annoPduHeader.pduType),this.data.writeInt32(this.annoPduHeader.pduId),this.data.writeInt32(this.annoPduHeader.appId),this.data.writeInt32(this.annoPduHeader.pduTimeStamp)}unpack(){const t=this.data.tell();this.annoPduHeader.struSize=this.data.readInt16(),this.annoPduHeader.dataSize=this.data.readInt32(),this.annoPduHeader.pduType=this.data.readInt32(),this.annoPduHeader.pduId=this.data.readInt32(),this.annoPduHeader.appId=this.data.readInt32(),this.annoPduHeader.pduTimeStamp=this.data.readInt32(),Co(this.data,t,this.annoPduHeader.struSize),Po(this.data,t,this.annoPduHeader.dataSize)}getPduType(){return this.annoPduHeader.pduType||$r.kNull}toInt8Array(){return this.data.toInt8Array()}}class Aa extends va{constructor(t,e,s){super(t,e,s),this.annoPduDocRequestDraw={struSize:14,dataSize:14,requesterId:Zr,docId:Zr,requesterEngineVersion:510,requesterName:""},e&&(this.annoPduHeader.appId=e.appId,this.annoPduDocRequestDraw.requesterId=e.appId,this.annoPduDocRequestDraw.docId=e.docId,this.annoPduDocRequestDraw.requesterName=e.userName,this.pack()),s&&(this.data=s,this.unpack())}pack(){super.pack();const t=this.data.tell();this.data.writeInt16(this.annoPduDocRequestDraw.struSize),this.data.writeInt32(this.annoPduDocRequestDraw.dataSize),this.data.writeInt32(this.annoPduDocRequestDraw.docId),this.data.writeInt32(this.annoPduDocRequestDraw.requesterEngineVersion),Eo(this.data,t,this.annoPduDocRequestDraw),this.data.writeString(this.annoPduDocRequestDraw.requesterName),ko(this.data,t,this.annoPduDocRequestDraw)}unpack(){super.unpack();const t=this.data.tell();this.annoPduDocRequestDraw.struSize=this.data.readInt16(),this.annoPduDocRequestDraw.dataSize=this.data.readInt32(),this.annoPduDocRequestDraw.docId=this.data.readInt32(),this.annoPduDocRequestDraw.requesterEngineVersion=this.data.readInt32(),Co(this.data,t,this.annoPduDocRequestDraw),this.annoPduDocRequestDraw.requesterName=this.data.readString(),Po(this.data,t,this.annoPduDocRequestDraw),this.annoPduDocRequestDraw.requesterId=this.annoPduHeader.appId}}class ba extends va{constructor(t,e,s){super(t,e,s),this.annoPduDocRequestDrawAck={struSize:26,dataSize:26,requesterId:Zr,composerId:Zr,docId:Zr,composerEngineVersion:Zr,composerAckCode:eo.UNKNOWN,docDpiScale:1,composerName:""},e?(this.annoPduHeader.appId=e.appId,this.annoPduDocRequestDrawAck.requesterId=e.ackRequesterId||0,this.annoPduDocRequestDrawAck.composerId=e.appId,this.annoPduDocRequestDrawAck.docId=e.docId,this.annoPduDocRequestDrawAck.composerEngineVersion=510,this.annoPduDocRequestDrawAck.composerAckCode=e.docRequestDrawAckCode||0,this.annoPduDocRequestDrawAck.docDpiScale=1,this.annoPduDocRequestDrawAck.composerName=e.userName,this.pack()):s&&(this.data=s,this.unpack())}pack(){super.pack();const t=this.data.tell();this.data.writeInt16(this.annoPduDocRequestDrawAck.struSize),this.data.writeInt32(this.annoPduDocRequestDrawAck.dataSize),this.data.writeInt32(this.annoPduDocRequestDrawAck.requesterId),this.data.writeInt32(this.annoPduDocRequestDrawAck.docId),this.data.writeInt32(this.annoPduDocRequestDrawAck.composerEngineVersion),this.data.writeInt32(this.annoPduDocRequestDrawAck.composerAckCode),this.data.writeFloat32(this.annoPduDocRequestDrawAck.docDpiScale),this.data.writeString(this.annoPduDocRequestDrawAck.composerName),ko(this.data,t,this.annoPduDocRequestDrawAck)}unpack(){super.unpack();const t=this.data.tell();this.annoPduDocRequestDrawAck.struSize=this.data.readInt16(),this.annoPduDocRequestDrawAck.dataSize=this.data.readInt32(),this.annoPduDocRequestDrawAck.requesterId=this.data.readInt32(),this.annoPduDocRequestDrawAck.docId=this.data.readInt32(),this.annoPduDocRequestDrawAck.composerEngineVersion=this.data.readInt32(),this.annoPduDocRequestDrawAck.composerAckCode=this.data.readInt32(),this.annoPduDocRequestDrawAck.docDpiScale=this.data.readFloat32(),Co(this.data,t,this.annoPduDocRequestDrawAck),this.annoPduDocRequestDrawAck.composerName=this.data.readString(),Po(this.data,t,this.annoPduDocRequestDrawAck)}toInt8Array(){return this.data.toInt8Array()}}class Ta extends va{constructor(t,e,s){var i;super(t,e,s),this.annoPduPage={struSize:14,dataSize:14,docId:Zr,pageId:Zr},e?(this.annoPduHeader.appId=e.appId,this.annoPduPage.docId=e.appId,this.annoPduPage.pageId=e.pageId,(null===(i=e.annoPages)||void 0===i?void 0:i.length)&&(this.annoPages=e.annoPages),this.pack()):s&&(this.data=s,this.unpack())}pack(){super.pack();const t=this.data.tell();this.data.writeInt16(this.annoPduPage.struSize),this.data.writeInt32(this.annoPduPage.dataSize),this.data.writeInt32(this.annoPduPage.docId),this.data.writeInt32(this.annoPduPage.pageId),Eo(this.data,t,this.annoPduPage),this.data.writeInt32(this.annoPages.length),this.annoPages.forEach((t=>{t.packPage(this.data)})),ko(this.data,t,this.annoPduPage)}unpack(){super.unpack();const t=this.data.tell();this.annoPduPage.struSize=this.data.readInt16(),this.annoPduPage.dataSize=this.data.readInt32(),this.annoPduPage.docId=this.data.readInt32(),this.annoPduPage.pageId=this.data.readInt32(),Co(this.data,t,this.annoPduPage);const e=this.data.readInt32();if(e>0){this.annoPages=[];for(let t=0;t<e;t++){const t=new Oa({});t.setPageId(this.data.readInt32()),t.setErased(!!this.data.readInt8()),t.setPageName(this.data.readString()),this.annoPages.push(t)}}Po(this.data,t,this.annoPduPage)}}class ya extends va{constructor(t,e,s){super(t,e,s),this.annoPduObj={struSize:14,dataSize:14,docId:Zr,pageId:Zr},e&&(this.annoPduHeader.appId=e.appId,this.annoPduObj.docId=e.docId,this.annoPduObj.pageId=e.pageId,e.annoObj&&(this.annoPduObj.annoObj=e.annoObj),e.annoObjIds&&(this.annoPduObj.annoObjIds=e.annoObjIds))}getHeader(){return this.annoPduHeader}}class Sa extends ya{constructor(t,e,s){super(t,e,s),e?this.pack():s&&this.unpack()}pack(){super.pack();const t=this.data.tell();this.data.writeInt16(this.annoPduObj.struSize),this.data.writeInt32(this.annoPduObj.dataSize),this.data.writeInt32(this.annoPduObj.docId),this.data.writeInt32(this.annoPduObj.pageId),this.annoPduObj.annoObj&&this.annoPduObj.annoObj.pack(this.data),ko(this.data,t,this.annoPduObj)}unpack(){var t;super.unpack();const e=this.data.tell();this.annoPduObj.struSize=this.data.readInt16(),this.annoPduObj.dataSize=this.data.readInt32(),this.annoPduObj.docId=this.data.readInt32(),this.annoPduObj.pageId=this.data.readInt32(),Co(this.data,e,this.annoPduObj);const s=(i=this.data).readInt32At(i.currentPos+6);var i;this.annoPduObj.annoObj=function(t){switch(t){case Qr.kSmoothPen:return new Xo;case Qr.kHighlighter:return new qo;case Qr.kFadePen:return new Jo;case Qr.kTextbox:return new ra;case Qr.kAutoLine:return new $o;case Qr.kAutoArrow1:case Qr.kAutoArrow2:case Qr.kAutoDoubleArrow:return new na(t);case Qr.kAutoRectangle:return new ta;case Qr.kAutoEllipse:return new ia;case Qr.kAutoDiamond:return new ea;case Qr.kAutoTriangle:return new sa;case Qr.kAutoStampArrow:case Qr.kAutoStampCheck:case Qr.kAutoStampX:case Qr.kAutoStampStar:case Qr.kAutoStampHeart:case Qr.kAutoStampQm:return new oa(t);case Qr.kThicknessPen:return new Ko;case Qr.kVanishingSquare:case Qr.kVanishingArrow:case Qr.kVanishingDoubleArrow:case Qr.kVanishingDiamond:case Qr.kVanishingEllipse:case Qr.kVanishingRectangle:return new aa(t);default:return}}(s),null===(t=this.annoPduObj.annoObj)||void 0===t||t.unpack(this.data),Po(this.data,e,this.annoPduObj)}}class wa extends ya{constructor(t,e,s){super(t,e,s),e?(this.timeStampOfRequest=e.timeStampOfAckRequest,this.captureFrameRate=e.captureFrameRate||10,this.pack()):s&&this.unpack()}pack(){super.pack(),this.annoPduObj.struSize+=5,this.annoPduObj.dataSize=this.annoPduObj.struSize;const t=this.data.tell();this.data.writeInt16(this.annoPduObj.struSize),this.data.writeInt32(this.annoPduObj.dataSize),this.data.writeInt32(this.annoPduObj.docId),this.data.writeInt32(this.annoPduObj.pageId),this.data.writeInt32(this.timeStampOfRequest),this.data.writeInt8(this.captureFrameRate),this.annoPduObj.annoObj?this.annoPduObj.annoObj.packIds(this.data):this.data.writeInt32(0),ko(this.data,t,this.annoPduObj)}unpack(){super.unpack();const t=this.data.tell();this.annoPduObj.struSize=this.data.readInt16(),this.annoPduObj.dataSize=this.data.readInt32(),this.annoPduObj.docId=this.data.readInt32(),this.annoPduObj.pageId=this.data.readInt32(),this.timeStampOfRequest=this.data.readInt32(),this.captureFrameRate=this.data.readInt8(),Co(this.data,t,this.annoPduObj);const e=this.data.readInt32();if(e>0){this.annoPduObj.annoObjIds=this.annoPduObj.annoObjIds||[];for(let t=0;t<e;t++)this.annoPduObj.annoObjIds.push(this.data.readInt32())}Po(this.data,t,this.annoPduObj)}}class Ia extends ya{constructor(t,e,s){super(t,e,s),e?this.pack():s&&this.unpack()}pack(){super.pack();const t=this.data.tell();this.data.writeInt16(this.annoPduObj.struSize),this.data.writeInt32(this.annoPduObj.dataSize),this.data.writeInt32(this.annoPduObj.docId),this.data.writeInt32(this.annoPduObj.pageId),this.annoPduObj.annoObj&&this.annoPduObj.annoObj.pack(this.data),ko(this.data,t,this.annoPduObj)}unpack(){var t;super.unpack();const e=this.data.tell();this.annoPduObj.struSize=this.data.readInt16(),this.annoPduObj.dataSize=this.data.readInt32(),this.annoPduObj.docId=this.data.readInt32(),this.annoPduObj.pageId=this.data.readInt32(),Co(this.data,e,this.annoPduObj),this.annoPduObj.annoObj=new Zo,null===(t=this.annoPduObj.annoObj)||void 0===t||t.unpack(this.data),Po(this.data,e,this.annoPduObj)}}class xa extends ya{constructor(t,e,s){super(t,e,s),e?this.pack():s&&this.unpack()}pack(){super.pack();const t=this.data.tell();if(this.data.writeInt16(this.annoPduObj.struSize),this.data.writeInt32(this.annoPduObj.dataSize),this.data.writeInt32(this.annoPduObj.docId),this.data.writeInt32(this.annoPduObj.pageId),this.annoPduObj.annoObjIds){const t=this.annoPduObj.annoObjIds.length;this.data.writeInt32(t);for(let e=0;e<t;e++)this.data.writeInt32(this.annoPduObj.annoObjIds[e])}else this.data.writeInt32(0);ko(this.data,t,this.annoPduObj)}unpack(){super.unpack();const t=this.data.tell();this.annoPduObj.struSize=this.data.readInt16(),this.annoPduObj.dataSize=this.data.readInt32(),this.annoPduObj.docId=this.data.readInt32(),this.annoPduObj.pageId=this.data.readInt32(),Co(this.data,t,this.annoPduObj);const e=this.data.readInt32();if(e>0){this.annoPduObj.annoObjIds=this.annoPduObj.annoObjIds||[];for(let t=0;t<e;t++)this.annoPduObj.annoObjIds.push(this.data.readInt32())}Po(this.data,t,this.annoPduObj)}}class Ea extends xa{constructor(t,e,s){super(t,e,s)}pack(){super.pack()}unpack(){super.unpack()}}class ka extends xa{constructor(t,e,s){super(t,e,s)}pack(){super.pack()}unpack(){super.unpack()}}class Ca extends xa{constructor(t,e,s){super(t,e,s)}pack(){super.pack()}unpack(){super.unpack()}}class Pa extends xa{constructor(t,e,s){super(t,e,s)}pack(){super.pack()}unpack(){super.unpack()}}class Na extends xa{constructor(t,e,s){super(t,e,s)}pack(){super.pack()}unpack(){super.unpack()}}class Ra extends ya{constructor(t,e,s){super(t,e,s),e?this.pack():s&&this.unpack()}pack(){super.pack();const t=this.data.tell();if(this.data.writeInt16(this.annoPduObj.struSize),this.data.writeInt32(this.annoPduObj.dataSize),this.data.writeInt32(this.annoPduObj.docId),this.data.writeInt32(this.annoPduObj.pageId),this.annoPduObj.annoObjIds){const t=this.annoPduObj.annoObjIds.length;this.data.writeInt32(t);for(let e=0;e<t;e++)this.data.writeInt32(this.annoPduObj.annoObjIds[e])}else this.data.writeInt32(0);ko(this.data,t,this.annoPduObj)}unpack(){super.unpack();const t=this.data.tell();this.annoPduObj.struSize=this.data.readInt16(),this.annoPduObj.dataSize=this.data.readInt32(),this.annoPduObj.docId=this.data.readInt32(),this.annoPduObj.pageId=this.data.readInt32(),Co(this.data,t,this.annoPduObj);const e=this.data.readInt32();if(e>0){this.annoPduObj.annoObjIds=this.annoPduObj.annoObjIds||[];for(let t=0;t<e;t++)this.annoPduObj.annoObjIds.push(this.data.readInt32())}Po(this.data,t,this.annoPduObj)}}class La extends Ra{constructor(t,e,s){super(t,e,s)}pack(){super.pack()}unpack(){super.unpack()}}class ja extends Ra{constructor(t,e,s){super(t,e,s)}pack(){super.pack()}unpack(){super.unpack()}}var Da=s(559),Fa=s(2689),Ma=s(385);class Ya extends Gr{constructor(t){super(t.appId),this.currentTool=So(),this.objectMapW2M=new Map,this.objectMapM2W=new Map,this.appId=t.appId,this.userName=t.userName,this.presenterId=t.presenterId,this.isPresenter=t.isPresenter,this.isBOSession=t.isBOSession,this.boardSDKIns=t.boardSDKIns,this.doc=this._createNewDoc()}startAnnote(){}sendMsgToBoard(t){var e;null===(e=this.boardSDKIns)||void 0===e||e.onMessage(t)}destroy(){this.doc=null,this.objectMapW2M.clear(),this.objectMapM2W.clear()}sendAnnoMessage(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.presenterId;const s=new wo(null),i=this._getAnnoMessageHeaderOption();s.writeInt8(37),s.writeInt8(i),s.writeInt16(1),s.writeInt32(e);const n={command:"SEND_ANNOTATION_PDU",isPresenter:this.isPresenter,data:new Uint8Array(s.mData.concat(t.mData))};Fa.A.mediaSDKHandle.sendAnnotationPdu(n,this.isPresenter)}setTool(t){this.currentTool=t}_getAnnoMessageHeaderOption(){let t=0;return t|=this.isPresenter?1:0,t|=this.isBOSession?2:0,t}handleClear(t){const{clearType:e}=t;switch(e){case lo.CLEAR_MINE:this.clearAllMine();break;case lo.CLEAR_ALL:this.clearAll(t);break;case lo.CLEAR_VIEWER:this.clearViewers()}}clearAllMine(){}clearAll(t){}handleUndo(){}handleRedo(){}handleAddLocalObject(t){}handleRemoveLocalObject(t){}onRequestDrawAck(){}handleObjAddAck(t){}clearViewers(){}handleRequestDraw(t){}handlePageSync(t){}handleAddObjRequest(t){}handleRemoveObjRequest(t){}handleRemoveArrowRequest(t){}handleRestoreObjRequest(t){}handleRemoveUserObjRequest(t){}handleRestoreUserObjRequest(t){}handleObjRemoveAllByHost(t){}handleObjRestoreAllByHost(t){}handleShowAnnotatorName(t){}handleAnnotatorId2Name(t){}updateUserName(t){this.userName=t}_createNewDoc(){return new _a({appId:this.appId,isPresenter:this.isPresenter,userName:this.userName,preseterId:this.presenterId})}}class Ba extends Ya{constructor(t){super(t),this.readyToAnnote=!1,this.actionPduQueue=[],this.executedActions=[],this.revokedActions=[],this.sendRequestDrawPdu()}startAnnote(){var t;super.startAnnote(),Fa.A.Notify_APPUI(Da.x$W,{status:!!this.executedActions.length,presenterId:this.presenterId}),Fa.A.Notify_APPUI(Da.p4Z,{status:!!this.revokedActions.length,presenterId:this.presenterId}),null===(t=this.boardSDKIns)||void 0===t||t.onMessage({type:jr.TOGGLE_RENDER_MODE,mode:"raf"})}destroy(){super.destroy(),this.boardSDKIns.onMessage({type:jr.TOOL_BAR_CLOSED}),this.boardSDKIns.onMessage({type:jr.UPDATE_REMOTE_POSITION_INFO,zIndex:1}),this.boardSDKIns.onMessage({type:jr.DESTROY_SESSION,sessionId:this.presenterId.toString()}),this.readyToAnnote=!1,this.executedActions=[],this.revokedActions=[],this.actionPduQueue=[]}sendRequestDrawPdu(){let t=No(this.appId,this.userName,this.doc.getId());const e=new Aa($r.kDocRequestDraw,t);this.sendAnnoMessage(e.data),Ma.Ay.directReport("ANNO_RD:".concat(this.presenterId))}sendAnnoAction(t){this.readyToAnnote?this.sendAnnoMessage(t.data):this.actionPduQueue.push(t)}onRequestDrawAck(){for(this.readyToAnnote=!0;this.actionPduQueue.length;){const t=this.actionPduQueue.shift();this.sendAnnoAction(t)}Ma.Ay.directReport("ANNO_RDA:".concat(this.presenterId))}handleObjAddAck(t){const{annoObjIds:e}=t.annoPduObj;(null==e?void 0:e.length)&&e.forEach((t=>{const e=this.objectMapM2W.get(t);setTimeout((()=>{this.boardSDKIns.onMessage({type:jr.ONACK,objectId:e,sessionId:this.presenterId})}),750)}))}handleAddLocalObject(t){const e=this.currentTool.toolType;let s;switch(e){case Q.ANNO_TOOL_TYPE_PEN:s=new Xo;break;case Q.ANNO_TOOL_TYPE_HIGHLIGHTER:s=new qo;break;case Q.ANNO_TOOL_TYPE_FADE_PEN:s=new Jo;break;case Q.ANNO_TOOL_TYPE_AUTO_LINE:s=new $o;break;case Q.ANNO_TOOL_TYPE_AUTO_ARROW1:s=new na(Qr.kAutoArrow1);break;case Q.ANNO_TOOL_TYPE_AUTO_DOUBLE_ARROW:s=new na(Qr.kAutoDoubleArrow);break;case Q.ANNO_TOOL_TYPE_AUTO_RECTANGLE:case Q.ANNO_TOOL_TYPE_AUTO_RECTANGLE_SEMI_FILL:case Q.ANNO_TOOL_TYPE_AUTO_RECTANGLE_FILL:s=new ta;break;case Q.ANNO_TOOL_TYPE_AUTO_ELLIPSE:case Q.ANNO_TOOL_TYPE_AUTO_ELLIPSE_SEMI_FILL:case Q.ANNO_TOOL_TYPE_AUTO_ELLIPSE_FILL:s=new ia;break;case Q.ANNO_TOOL_TYPE_AUTO_DIAMOND:case Q.ANNO_TOOL_TYPE_AUTO_DIAMOND_SEMI_FILL:case Q.ANNO_TOOL_TYPE_AUTO_DIAMOND_FILL:s=new ea;break;case Q.ANNO_TOOL_TYPE_AUTO_STAMP_ARROW:s=new oa(Qr.kAutoStampArrow);break;case Q.ANNO_TOOL_TYPE_AUTO_STAMP_CHECK:s=new oa(Qr.kAutoStampCheck);break;case Q.ANNO_TOOL_TYPE_AUTO_STAMP_X:s=new oa(Qr.kAutoStampX);break;case Q.ANNO_TOOL_TYPE_AUTO_STAMP_STAR:s=new oa(Qr.kAutoStampStar);break;case Q.ANNO_TOOL_TYPE_AUTO_STAMP_HEART:s=new oa(Qr.kAutoStampHeart);break;case Q.ANNO_TOOL_TYPE_AUTO_STAMP_QM:s=new oa(Qr.kAutoStampQm);break;case Q.ANNO_TOOL_TYPE_ARROW:s=new Zo;break;case Q.ANNO_TOOL_TYPE_AUTO_VANISHING_SQUARE:s=new aa(Qr.kVanishingSquare);break;case Q.ANNO_TOOL_TYPE_AUTO_VANISHING_ARROW:s=new aa(Qr.kVanishingArrow);break;case Q.ANNO_TOOL_TYPE_AUTO_VANISHING_DOUBLE_ARROW:s=new aa(Qr.kVanishingDoubleArrow);break;case Q.ANNO_TOOL_TYPE_AUTO_VANISHING_DIAMOND:s=new aa(Qr.kVanishingDiamond);break;case Q.ANNO_TOOL_TYPE_AUTO_VANISHING_ELLIPSE:s=new aa(Qr.kVanishingEllipse);break;case Q.ANNO_TOOL_TYPE_AUTO_VANISHING_RECTANGLE:s=new aa(Qr.kVanishingRectangle);break;case Q.ANNO_TOOL_TYPE_AUTO_VANISHING_SQUARE:s=new aa(Qr.kVanishingSquare)}if(!s)return;const i=s.acquireObjId(this.appId);s.setObjHeader({objectId:i});const{objectData:n}=t;if(!n)return;this._setAnnoObjectData(n,s),this.doc||(this.doc=this._createNewDoc(),this.readyToAnnote=!1,this.sendRequestDrawPdu());const r=this.doc.getId(),o=this.doc.getPageId();let a,h=No(this.appId,this.userName,r,o);h.annoObj=s,e===Q.ANNO_TOOL_TYPE_ARROW?(a=new Ia($r.kAnnoArrowAdd,h),this.lastArrowObjData={objId:i,docId:r,pageId:o}):a=new Sa($r.kAnnoObjAdd,h),h.annoObjIds=[i],h.whiteboardObjIds=[t.objectId];const c=Lo(h,$r.kAnnoObjAdd);Fo(e)?this._removeLocalVanishingObject(t.objectId):e===Q.ANNO_TOOL_TYPE_ARROW?this._removePreviousArrow(t.objectId):this._pushToExecutedAction(c),this.sendAnnoAction(a),this.objectMapW2M.set(t.objectId,i),this.objectMapM2W.set(i,t.objectId),Ma.Ay.directReport("ANNO_AO:".concat(i,",").concat(e))}handleRemoveLocalObject(t){var e;const s=this.objectMapW2M.get(t.objectId);if(s){for(let e=0;e<this.executedActions.length;e++){const i=this.executedActions[e];if(i.pduType!==$r.kAnnoObjAdd)continue;const n=i.annoObjIds;if(!n.includes(s))continue;let r=No(this.appId,this.userName,i.docId,i.pageId);r.annoObjIds=n,r.whiteboardObjIds=[t.objectId];const o=new Ea($r.kAnnoObjRemove,r),a=Lo(r,$r.kAnnoObjRemove);this._pushToExecutedAction(a),this.sendAnnoAction(o),Ma.Ay.directReport("ANNO_RMO:".concat(n));break}if(s===(null===(e=this.lastArrowObjData)||void 0===e?void 0:e.objId)){let t=No(this.appId,this.userName,this.lastArrowObjData.docId,this.lastArrowObjData.pageId);t.annoObjIds=[s];const e=new ka($r.kAnnoArrowRemove,t);this.sendAnnoAction(e),this.lastArrowObjData=null}}}clearAllMine(){let t=No(this.appId,void 0,this.doc.getId(),this.doc.getPageId());const e=[],s=[];for(let t=0;t<this.executedActions.length;t++){const i=this.executedActions[t];if(i.pduType===$r.kAnnoObjAdd){if(i.isRemoved)continue;i.annoObjIds.forEach((t=>{e.push(t),s.push(this.objectMapM2W.get(t))})),i.isRemoved=!0}}if(!e.length)return t;t.annoObjIds=e,t.whiteboardObjIds=s,this.boardSDKIns.onMessage({type:jr.ERASE_ALL,objectIds:s,sessionId:this.presenterId});const i=new La($r.kAnnoObjRemoveUser,t),n=Lo(t,$r.kAnnoObjRemoveUser);return this._pushToExecutedAction(n),this.sendAnnoAction(i),Ma.Ay.directReport("ANNO_RM_ALL_MINE"),t}clearAll(t){const{isHost:e}=t;if(!e)return;let s,i,n=this.clearAllMine();i=$r.kAnnoObjRemoveAllByHost,s=new Pa(i,n);const r=Lo(n,i);this._pushToExecutedAction(r),this.sendAnnoAction(s),Ma.Ay.directReport("ANNO_RM_ALL")}handleUndo(){const t=this._popExecutedAction();if(!t)return;const e=this._copyPduActionData(t);let s,i;switch(t.pduType){case $r.kAnnoObjAdd:case $r.kAnnoObjRestore:s=new Ea($r.kAnnoObjRemove,e),i=jr.REMOVE_OBJECTS;break;case $r.kAnnoObjRemove:s=new Ca($r.kAnnoObjRestore,e),i=jr.RESTORE_OBJECTS;break;case $r.kAnnoObjRemoveUser:s=new ja($r.kAnnoObjRestoreUser,e),this._markRemoveStatus(e,!1),i=jr.RESTORE_OBJECTS;break;case $r.kAnnoObjRemoveAllByHost:s=new Na($r.kAnnoObjRestoreAllByHost,e),this._markRemoveStatus(e,!1),i=jr.RESTORE_OBJECTS}this.boardSDKIns.onMessage({type:i,objectIds:e.whiteboardObjIds,sessionId:this.presenterId}),this._pushToRevokedAction(t),this.sendAnnoAction(s)}handleRedo(){const t=this._popRevokedAction();if(!t)return;const e=this._copyPduActionData(t);let s,i;switch(t.pduType){case $r.kAnnoObjAdd:case $r.kAnnoObjRestore:s=new Ca($r.kAnnoObjRestore,e),i=jr.RESTORE_OBJECTS;break;case $r.kAnnoObjRemove:s=new Ea(t.pduType,e),i=jr.REMOVE_OBJECTS;break;case $r.kAnnoObjRemoveUser:s=new La(t.pduType,e),i=jr.REMOVE_OBJECTS,this._markRemoveStatus(e,!0);break;case $r.kAnnoObjRemoveAllByHost:s=new Pa(t.pduType,e),i=jr.REMOVE_OBJECTS,this._markRemoveStatus(e,!0)}this.boardSDKIns.onMessage({type:i,objectIds:e.whiteboardObjIds,sessionId:this.presenterId}),this._pushToExecutedAction(t),this.sendAnnoAction(s)}_pushToExecutedAction(t){const e=this.executedActions.length;this.executedActions.push(t),0===e&&Fa.A.Notify_APPUI(Da.x$W,{status:!0,presenterId:this.presenterId})}_pushToRevokedAction(t){const e=this.revokedActions.length;this.revokedActions.push(t),0===e&&Fa.A.Notify_APPUI(Da.p4Z,{status:!0,presenterId:this.presenterId})}_popExecutedAction(){const t=this.executedActions.length,e=this.executedActions.pop();return t&&!this.executedActions.length&&Fa.A.Notify_APPUI(Da.x$W,{status:!1,presenterId:this.presenterId}),e}_popRevokedAction(){const t=this.revokedActions.length,e=this.revokedActions.pop();return t&&!this.revokedActions.length&&Fa.A.Notify_APPUI(Da.p4Z,{status:!1,presenterId:this.presenterId}),e}_copyPduActionData(t){let e=No();return Object.assign(e,t),e}_markRemoveStatus(t,e){const{annoObjIds:s}=t;if(null==s?void 0:s.length)for(let t=0;t<this.executedActions.length;t++){const i=this.executedActions[t];if(i.pduType===$r.kAnnoObjAdd){if(!!i.isRemoved===e)continue;i.annoObjIds.forEach((t=>{s.includes(t)&&(i.isRemoved=e)}))}}}_setAnnoObjectData(t,e){const{type:s}=t;switch(s){case Qi.Pen:this._setAnnoPenObjData(t,e);break;case Qi.Line:this._setAnnoLineObjData(t,e);break;case Qi.Shape:this._setAnnoShapeObjData(t,e);break;case Qi.Stamp:this._setAnnoStampObjData(t,e);break;case Qi.Text:break;case Qi.Arrow:this._setAnnoArrowObjData(t,e);break;default:return}}_setAnnoPenObjData(t,e){t.penFormat&&(e.setLineFormat(t.penFormat),t.points&&e.setData(t.points))}_setAnnoLineObjData(t,e){t.lineFormat&&(e.setLineFormat(t.lineFormat),t.lineFormat.start&&t.lineFormat.end&&e.setBound({left:t.lineFormat.start.x,top:t.lineFormat.start.y,right:t.lineFormat.end.x,bottom:t.lineFormat.end.y}))}_setAnnoShapeObjData(t,e){t.shapeFormat&&(t.shapeFormat.style===sn.Border?t.shapeFormat.lineData&&e.setLineFormat(t.shapeFormat):t.shapeFormat.style!==sn.Filled&&t.shapeFormat.style!==sn.Shaded||e.setFillFormat({type:go.ANNO_FILL_FORMAT_TYPE_COLOR,colorFill:{color:t.shapeFormat.color,alpha:t.shapeFormat.alpha}}),t.transform&&e.setBound(Do(t)))}_setAnnoStampObjData(t,e){if(t.stampFormat){const s=[4,4,3],i=["Check","Cross","Question"].indexOf(t.stampFormat.type);i>=0?e.setLineFormat({type:so.ANNO_LINE_FORMAT_TYPE_COLOR,lineData:{width:s[i],color:t.stampFormat.color}}):e.setFillFormat({type:go.ANNO_FILL_FORMAT_TYPE_COLOR,colorFill:{color:t.stampFormat.color,alpha:t.stampFormat.alpha}}),t.transform&&e.setBound(Do(t))}}_setAnnoArrowObjData(t,e){const{position:s,color:i,alpha:n,width:r,height:o}=t,a=this.userName;e.setData({position:s,color:i,alpha:n,width:r,height:o,title:a})}_removePreviousArrow(t){setTimeout((()=>{this.boardSDKIns.onMessage({type:jr.ONACK,objectId:t,sessionId:this.presenterId})}),1500)}_removeLocalVanishingObject(t){setTimeout((()=>{this.boardSDKIns.onMessage({type:jr.REMOVE_OBJECTS,objectIds:[t],sessionId:this.presenterId})}),2e3)}}class Ha extends Ya{constructor(t){super(t),this.executedActions=[],this.revokedActions=[],this.showAnnotatorName=!1,this.annotatorInfo=new Map,this.arrowObjRecords=new Map,this.presenterId=this.appId,this.sessionObjRecord=[]}startAnnote(){var t;super.startAnnote(),Fa.A.Notify_APPUI(Da.x$W,{status:!!this.executedActions.length,presenterId:this.presenterId}),Fa.A.Notify_APPUI(Da.p4Z,{status:!!this.revokedActions.length,presenterId:this.presenterId}),null===(t=this.boardSDKIns)||void 0===t||t.onMessage({type:jr.TOGGLE_RENDER_MODE,mode:"timer"})}destroy(){var t;super.destroy();try{null===(t=this.boardSDKIns)||void 0===t||t.destroy()}catch(t){}this.boardSDKIns=null,this.sessionObjRecord=[],this.executedActions=[],this.revokedActions=[],this.annotatorInfo.clear(),this.arrowObjRecords.clear()}handleAddLocalObject(t){if(!Fo(this.currentTool.toolType)){if(this.currentTool.toolType===Q.ANNO_TOOL_TYPE_ARROW){const e=this.arrowObjRecords.get(this.presenterId);return e&&this.boardSDKIns.onMessage({type:jr.REMOVE_OBJECTS,objectIds:[e],sessionId:this.presenterId}),void this.arrowObjRecords.set(this.presenterId,t.objectId)}this._pushToExecutedAction({type:To.ADD_OBJ,objectIds:[t.objectId],isRemoved:!1})}}handleRemoveLocalObject(t){for(let e=0;e<this.executedActions.length;e++){const s=this.executedActions[e];if(s.type===To.ADD_OBJ&&-1!==s.objectIds.indexOf(t.objectId)){s.isRemoved=!0;break}}this._pushToExecutedAction({type:To.REMOVE_OBJ,objectIds:[t.objectId],isRemoved:!0})}clearAllMine(){this._clearAll(!0,!1)}clearAll(){this._clearAll(!0,!0)}clearViewers(){this._clearAll(!1,!0)}_clearAll(t,e){const s=[];if(t){this.executedActions.forEach((t=>{t.type===To.ADD_OBJ&&(s.push(t.objectIds[0]),t.isRemoved=!0)}));const t=this.arrowObjRecords.get(this.presenterId);t&&(s.push(t),this.arrowObjRecords.delete(this.presenterId))}e&&this.sessionObjRecord.forEach((t=>{t.isRemoved||(s.push(t.objId),t.isRemoved=!0)})),this.boardSDKIns.onMessage({type:jr.REMOVE_OBJECTS,objectIds:s,sessionId:this.appId}),this._pushToExecutedAction({objectIds:s,type:To.REMOVE_ALL_OBJ,isRemoved:!0})}handleUndo(){const t=this._popExecutedAction();if(!t)return;let e;switch(t.type){case To.ADD_OBJ:e=jr.REMOVE_OBJECTS,t.isRemoved=!0;break;case To.REMOVE_OBJ:e=jr.RESTORE_OBJECTS,t.isRemoved=!1;break;case To.RESTORE_ALL_OBJ:e=jr.REMOVE_OBJECTS,this._markRemoveStatus(t.objectIds,!0);break;case To.REMOVE_ALL_OBJ:e=jr.RESTORE_OBJECTS,this._markRemoveStatus(t.objectIds,!1);break;default:return}this.boardSDKIns.onMessage({type:e,objectIds:t.objectIds,sessionId:this.appId}),this._pushToRevokedAction(t)}handleRedo(){const t=this._popRevokedAction();if(!t)return;let e;switch(t.type){case To.ADD_OBJ:e=jr.RESTORE_OBJECTS,t.isRemoved=!1;break;case To.REMOVE_OBJ:e=jr.REMOVE_OBJECTS,t.isRemoved=!0;break;case To.RESTORE_ALL_OBJ:e=jr.RESTORE_OBJECTS,this._markRemoveStatus(t.objectIds,!1);break;case To.REMOVE_ALL_OBJ:e=jr.REMOVE_OBJECTS,this._markRemoveStatus(t.objectIds,!0);break;default:return}this.boardSDKIns.onMessage({type:e,objectIds:t.objectIds,sessionId:this.appId}),this._pushToExecutedAction(t)}handleShowAnnotatorName(t){this.showAnnotatorName=t}handleAnnotatorId2Name(t){const{userId:e,userName:s}=t;e&&s&&this.annotatorInfo.set(e,s)}handleRequestDraw(t){let e=No(this.appId,this.userName,this.doc.getId(),this.doc.getPageId());const s=t.annoPduDocRequestDraw.requesterId;Fa.A.Notify_APPUI(Da.rV1,{userId:s}),Ma.Ay.directReport("ANNO_RD:".concat(s)),e.ackRequesterId=s,e.docRequestDrawAckCode=eo.ACCPETED;const i=new ba($r.kDocRequestDrawAck,e);this.sendAnnoMessage(i.data,s),e.annoPages=[this.doc.page];const n=new Ta($r.kPageSync,e);this.sendAnnoMessage(n.data,s)}handlePageSync(t){const{docId:e,pageId:s}=t.annoPduPage;this.doc.handlePageSync(e,s)}handleAddObjRequest(t){const e=t.annoPduObj.annoObj,s=t.annoPduHeader.appId,{objId:i,objType:n}=e.annoObjHeader;let r=function(t){const{objType:e}=t.annoObjHeader;switch(e){case Qr.kSmoothPen:case Qr.kHighlighter:case Qr.kFadePen:case Qr.kThicknessPen:return function(t){const e=t.getPoints();let s;const{objType:i,objFlag:n}=t.annoObjHeader;switch(i){case Qr.kSmoothPen:case Qr.kThicknessPen:s=$i.Smooth;break;case Qr.kHighlighter:s=$i.Highlighter;break;case Qr.kFadePen:s=$i.Fade}let r;if(n&oo.ANNO_OBJ_FLAG_WITH_LINE){const e=t.annoLineFormat.annoLineFormat;r={width:e.annoLineData.colorLine.width,color:e.annoLineData.colorLine.color,alpha:e.annoLineData.colorLine.alpha}}const o={type:s,lineData:r};return{type:Qi.Pen,points:e,penFormat:o}}(t);case Qr.kAutoLine:return ma(t,tn.Simple);case Qr.kAutoArrow1:case Qr.kVanishingArrow:return ma(t,tn.ArrowLeft);case Qr.kAutoDoubleArrow:case Qr.kVanishingDoubleArrow:return ma(t,tn.ArrowLeftRight);case Qr.kAutoRectangle:case Qr.kVanishingRectangle:case Qr.kAutoEllipse:case Qr.kVanishingEllipse:case Qr.kAutoDiamond:case Qr.kVanishingDiamond:case Qr.kVanishingSquare:return function(t){const e=jo(t.annoObjAutoShape.bounds),s=Mo(t.annoObjHeader.objType);let i,n,r,o,a;switch(t.annoObjHeader.objType){case Qr.kAutoRectangle:case Qr.kVanishingRectangle:case Qr.kVanishingSquare:i=en.Rectangle;break;case Qr.kAutoEllipse:case Qr.kVanishingEllipse:i=en.Ellipse;break;case Qr.kAutoDiamond:case Qr.kVanishingDiamond:i=en.Diamond}if(t.annoFillFormat)a=t.annoFillFormat.annoFillFormat.colorFill.alpha,n=1===a?sn.Filled:sn.Shaded,r=t.annoFillFormat.annoFillFormat.colorFill.color,r=Ro(r);else if(n=sn.Border,t.annoLineFormat){const e=t.annoLineFormat.annoLineFormat.annoLineData;r=e.colorLine.color,o={width:e.colorLine.width,color:r,alpha:e.colorLine.alpha}}return Object.assign({type:Qi.Shape,shapeFormat:{type:i,style:n,lineData:o,color:r,alpha:a,isVanishing:s}},e)}(t);case Qr.kAutoStampArrow:case Qr.kAutoStampCheck:case Qr.kAutoStampX:case Qr.kAutoStampStar:case Qr.kAutoStampHeart:case Qr.kAutoStampQm:return function(t){const e=jo(t.annoObjAutoShape.bounds);let s;switch(t.annoObjHeader.objType){case Qr.kAutoStampArrow:s="Arrow";break;case Qr.kAutoStampCheck:s="Check";break;case Qr.kAutoStampX:s="Cross";break;case Qr.kAutoStampStar:s="Star";break;case Qr.kAutoStampHeart:s="Heart";break;case Qr.kAutoStampQm:s="Question"}return Object.assign({type:Qi.Stamp,stampFormat:{type:s}},e)}(t);case Qr.kTextbox:return function(t){const e=t.annoTextFrame.textFrame,s=t.annoTextFrame.annoTextRanges[0],i=jo(e.bounds),n=s.textRange.text,r=Ro(s.annoFontDescriptor.fontDescriptor.color),o=s.annoFontDescriptor.fontDescriptor.size,a=s.annoFontDescriptor.fontDescriptor.name;return Object.assign({type:Qi.Text,textFormat:{text:n,color:r,fontSize:o,fontFamily:a}},i)}(t);case Qr.kArrow:case Qr.kArrowWnd:return function(t){const{position:e,color:s,alpha:i,size:n,title:r}=t.annoObjArrow;return{type:Qi.Arrow,position:e,color:s,alpha:i,width:n.width,height:n.height,title:r}}(t);default:return null}}(e);const o=this.showAnnotatorName?this.annotatorInfo.get(s):"";if(r){if(n===Qr.kArrow||n===Qr.kArrowWnd){const t=this.arrowObjRecords.get(s);t&&this.boardSDKIns.onMessage({type:jr.REMOVE_OBJECTS,objectIds:[t],sessionId:this.appId}),this.arrowObjRecords.set(s,i)}this.boardSDKIns.onMessage({type:jr.ADD_OBJECT,data:{objectId:i,objectData:r},annotatorName:o})}let a=No(this.appId,this.userName,this.doc.getId(),this.doc.getPageId());a.timeStampOfAckRequest=t.annoPduHeader.pduTimeStamp,a.annoObj=e;const h=new wa($r.kAnnoObjAddAck,a);this.sessionObjRecord.push({userId:s,objId:i,isRemoved:!1}),this.sendAnnoMessage(h.data,s),Ma.Ay.directReport("ANNO_HAO:".concat(s,",").concat(i,",").concat(n))}handleRemoveObjRequest(t){const e=t.annoPduObj.annoObjIds;e.forEach((t=>{for(let e=0;e<this.sessionObjRecord.length;)t===this.sessionObjRecord[e].objId?this.sessionObjRecord.splice(e,1):e++})),this.boardSDKIns.onMessage({type:jr.REMOVE_OBJECTS,objectIds:e,sessionId:this.appId});const s=t.annoPduHeader.appId;Ma.Ay.directReport("ANNO_HRMO:".concat(s,",").concat(e))}handleRemoveArrowRequest(t){const e=t.annoPduHeader.appId,s=this.arrowObjRecords.get(e);s&&(this.boardSDKIns.onMessage({type:jr.REMOVE_OBJECTS,objectIds:[s],sessionId:this.presenterId}),this.arrowObjRecords.delete(e),Ma.Ay.directReport("ANNO_HRMO:".concat(e,",").concat(s)))}handleRestoreObjRequest(t){const e=t.annoPduObj.annoObjIds,s=t.annoPduHeader.appId;this._handleRestoreObj(e,s),Ma.Ay.directReport("ANNO_HRTO:".concat(s,",").concat(e))}_handleRestoreObj(t,e){t.forEach((t=>{this.sessionObjRecord.push({userId:e,objId:t,isRemoved:!1})})),this.boardSDKIns.onMessage({type:jr.RESTORE_OBJECTS,objectIds:t,sessionId:this.appId})}handleRemoveUserObjRequest(t){const e=t.annoPduObj.annoObjIds,s=t.annoPduHeader.appId;e.forEach((t=>{for(let e=0;e<this.sessionObjRecord.length;){const i=this.sessionObjRecord[e];t===i.objId&&s===i.userId?this.sessionObjRecord.splice(e,1):e++}})),this.boardSDKIns.onMessage({type:jr.REMOVE_OBJECTS,objectIds:e,sessionId:this.appId})}handleRestoreUserObjRequest(t){const e=t.annoPduObj.annoObjIds,s=t.annoPduHeader.appId;this._handleRestoreObj(e,s)}handleObjRemoveAllByHost(t){this._clearAll(!0,!0),Ma.Ay.directReport("ANNO_RM_ALL_BY_HOST")}handleObjRestoreAllByHost(t){const e=[];this.sessionObjRecord.forEach((t=>{t.isRemoved&&(e.push(t.objId),t.isRemoved=!1)})),this.boardSDKIns.onMessage({type:jr.RESTORE_OBJECTS,objectIds:e,sessionId:this.appId}),Ma.Ay.directReport("ANNO_RT_ALL_BY_HOST")}_pushToExecutedAction(t){const e=this.executedActions.length;this.executedActions.push(t),0===e&&Fa.A.Notify_APPUI(Da.x$W,{status:!0,presenterId:this.presenterId})}_pushToRevokedAction(t){const e=this.revokedActions.length;this.revokedActions.push(t),0===e&&Fa.A.Notify_APPUI(Da.p4Z,{status:!0,presenterId:this.presenterId})}_popExecutedAction(){const t=this.executedActions.length,e=this.executedActions.pop();return t&&!this.executedActions.length&&Fa.A.Notify_APPUI(Da.x$W,{status:!1,presenterId:this.presenterId}),e}_popRevokedAction(){const t=this.revokedActions.length,e=this.revokedActions.pop();return t&&!this.revokedActions.length&&Fa.A.Notify_APPUI(Da.p4Z,{status:!1,presenterId:this.presenterId}),e}_markRemoveStatus(t,e){(null==t?void 0:t.length)&&(this.executedActions.forEach((s=>{s.type===To.ADD_OBJ&&-1!==t.indexOf(s.objectIds[0])&&(s.isRemoved=e)})),this.sessionObjRecord.forEach((s=>{-1!==t.indexOf(s.objId)&&(s.isRemoved=e)})))}}const Va=new Map;class Wa extends Gr{constructor(t){super(t.appId),this.currentTool=So(),this.appId=t.appId,this.userName=t.userName,this.presenterId=t.presenterId,this.sharingMainCanvas=t.sharingMainCanvas,this.annoCanvas=t.annoCanvas,this.remoteSizeInfo=t.remoteSizeInfo,this.shareCanvasOserver=new ResizeObserver((()=>{setTimeout((()=>{this.onMainCanvasSizeChange()}),300)})),this.canvasSizeInfo={width:0,height:0},this.annoSession=this._createSession(this.presenterId,t.isBOSession)}destroy(){var t,e;null===(t=this.boardSDKIns)||void 0===t||t.destroy(),null===(e=this.boardSDKPresenterIns)||void 0===e||e.destroy(),Va.forEach((t=>{t.destroy()})),this.shareCanvasOserver.disconnect()}startAnnotation(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.presenterId,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.presenterId=t;const s=t===this.appId;let i=Va.get(t);i||(i=this._createSession(t),i.isBOSession=e),this.annoSession=i,i.startAnnote();const n=s?this.boardSDKPresenterIns:this.boardSDKIns;this.shareCanvasOserver.disconnect(),this.shareCanvasOserver.observe(this.sharingMainCanvas),n.onMessage({type:jr.CHANGE_SESSION,sessionId:this.presenterId.toString()}),n.onMessage(Object.assign({type:jr.TOOL_SELECT},this.currentTool)),Ma.Ay.directReport("ANNO_START:".concat(this.presenterId))}stopAnnotation(t){const{presenterId:e}=t;if(!e)return;this.currentTool=So();const s=e,i=Va.get(s);this.annoSession===i&&(this.annoSession=null),null==i||i.destroy(),e===this.appId&&(this.boardSDKPresenterIns=null),Va.delete(s),Ma.Ay.directReport("ANNO_STOP:".concat(s))}updateCanvas(t){var e,s;this.sharingMainCanvas!==t.sharingMainCanvas&&(this.sharingMainCanvas=t.sharingMainCanvas,this.shareCanvasOserver.disconnect(),this.shareCanvasOserver.observe(this.sharingMainCanvas)),this.annoCanvas=t.annoCanvas;const i=this._checkRemoteSizeInfo();null===(e=this.annoSession)||void 0===e||e.sendMsgToBoard(Object.assign({type:jr.UPDATE_CANVAS,annoCanvas:this.annoCanvas,styles:this._getAnnoCavansStyle()},i)),(null===(s=this.annoSession)||void 0===s?void 0:s.isPresenter)&&(this.annoCanvas.style.visibility="hidden")}updateRemoteSizeInfo(t){let e,s;t.absWidth&&t.absHeight?(e=t.absWidth,s=t.absHeight):(e=t.width,s=t.height),this.updateAnnoCanvasSize({absWidth:e,absHeight:s})}updateAnnoCanvasSize(t){var e,s;(null===(e=this.annoSession)||void 0===e?void 0:e.isPresenter)&&(null==t?void 0:t.width)&&(null==t?void 0:t.height)&&(this.canvasSizeInfo.width=parseFloat(t.width)/window.devicePixelRatio,this.canvasSizeInfo.height=parseFloat(t.height)/window.devicePixelRatio),t.absWidth&&t.absHeight&&(this.remoteSizeInfo.width=t.absWidth,this.remoteSizeInfo.height=t.absHeight);const i=this._checkRemoteSizeInfo();i.width&&i.height&&this.annoSession&&(this.annoSession.isPresenter&&(this.sharingMainCanvas.width===i.absWidth&&this.sharingMainCanvas.height===i.absHeight||(this.sharingMainCanvas.width=i.absWidth,this.sharingMainCanvas.height=i.absHeight)),null===(s=this.annoSession)||void 0===s||s.sendMsgToBoard(Object.assign({type:jr.RESIZE},i)))}onMainCanvasSizeChange(t){var e,s,i,n;const r=this.remoteSizeInfo.width,o=this.remoteSizeInfo.height,a=(null===(e=this.sharingMainCanvas)||void 0===e?void 0:e.offsetWidth)||0,h=(null===(s=this.sharingMainCanvas)||void 0===s?void 0:s.offsetHeight)||0,c=(null===(i=this.annoSession)||void 0===i?void 0:i.isPresenter)?"abs":"";a&&h&&(this.canvasSizeInfo.width=a,this.canvasSizeInfo.height=h),null===(n=this.annoSession)||void 0===n||n.sendMsgToBoard({type:jr.RESIZE,width:a,height:h,absWidth:r,absHeight:o,sizeMode:c})}getAppId(){return this.appId}onRWGMessage(t){if(37!==t[0])return;const e=function(t){const e=new wo(t.subarray(8)),s=function(t){t.seek(6);const e=t.readInt32();return t.seek(0),e}(e);switch(s){case $r.kDocRequestDraw:return new Aa(s,void 0,e);case $r.kDocRequestDrawAck:return new ba(s,void 0,e);case $r.kPageSync:return new Ta(s,void 0,e);case $r.kAnnoObjAdd:return new Sa(s,void 0,e);case $r.kAnnoArrowAdd:return new Ia(s,void 0,e);case $r.kAnnoObjAddAck:return new wa(s,void 0,e);case $r.kAnnoObjRemove:return new Ea(s,void 0,e);case $r.kAnnoArrowRemove:return new ka(s,void 0,e);case $r.kAnnoObjRestore:return new Ca(s,void 0,e);case $r.kAnnoObjRemoveUser:return new La(s,void 0,e);case $r.kAnnoObjRestoreUser:return new ja(s,void 0,e);case $r.kAnnoObjRemoveAllByHost:return new Pa(s,void 0,e);case $r.kAnnoObjRestoreAllByHost:return new Na(s,void 0,e)}return null}(t);if(!e)return;const s=e.getPduType();switch(Ma.Ay.directReport("ANNO_ONRWGMSG:".concat(s)),s){case $r.kDocRequestDraw:this.handleRequestDraw(e);break;case $r.kDocRequestDrawAck:this.handleRequestDrawAck(e);break;case $r.kPageSync:this.handlePageSync(e);break;case $r.kAnnoObjAdd:case $r.kAnnoArrowAdd:this.handleAddObjRequest(e);break;case $r.kAnnoObjRemove:this.handleRemoveObjRequest(e);break;case $r.kAnnoArrowRemove:this.handleRemoveArrowRequest(e);break;case $r.kAnnoObjRestore:this.handleRestoreObjRequest(e);break;case $r.kAnnoObjRemoveUser:this.handleRemoveUserObjRequest(e);break;case $r.kAnnoObjRestoreUser:this.handleRestoreUserObjRequest(e);break;case $r.kAnnoObjAddAck:this.handleObjAddAck(e);break;case $r.kAnnoObjRemoveAllByHost:this.handleObjRemoveAllByHost(e);break;case $r.kAnnoObjRestoreAllByHost:this.handleObjRestoreAllByHost(e)}}handleRequestDraw(t){var e;null===(e=Va.get(this.appId))||void 0===e||e.handleRequestDraw(t)}handleRequestDrawAck(t){var e,s;if((null===(e=t.annoPduDocRequestDrawAck)||void 0===e?void 0:e.requesterId)===this.appId){const e=t.annoPduHeader.appId;null===(s=Va.get(e))||void 0===s||s.onRequestDrawAck()}}handlePageSync(t){var e;const s=t.annoPduHeader.appId;null===(e=Va.get(s))||void 0===e||e.handlePageSync(t)}handleObjAddAck(t){var e;const s=t.annoPduHeader.appId;null===(e=Va.get(s))||void 0===e||e.handleObjAddAck(t)}handleAddObjRequest(t){var e;null===(e=Va.get(this.appId))||void 0===e||e.handleAddObjRequest(t)}handleRemoveObjRequest(t){var e;null===(e=Va.get(this.appId))||void 0===e||e.handleRemoveObjRequest(t)}handleRemoveArrowRequest(t){var e;null===(e=Va.get(this.appId))||void 0===e||e.handleRemoveArrowRequest(t)}handleRestoreObjRequest(t){var e;null===(e=Va.get(this.appId))||void 0===e||e.handleRestoreObjRequest(t)}handleRemoveUserObjRequest(t){var e;null===(e=Va.get(this.appId))||void 0===e||e.handleRemoveUserObjRequest(t)}handleRestoreUserObjRequest(t){var e;null===(e=Va.get(this.appId))||void 0===e||e.handleRestoreUserObjRequest(t)}handleObjRemoveAllByHost(t){var e;null===(e=Va.get(this.appId))||void 0===e||e.handleObjRemoveAllByHost(t)}handleObjRestoreAllByHost(t){var e;null===(e=Va.get(this.appId))||void 0===e||e.handleObjRestoreAllByHost(t)}onAnnotationMsg(t){const{type:e}=t;switch(e){case ho.ADD_OBJECT:this.handleAddLocalObject(t);break;case ho.REMOVE_OBJECT:this.handleRemoveLocalObject(t)}}handleAddLocalObject(t){var e;null===(e=this.annoSession)||void 0===e||e.handleAddLocalObject(t)}handleRemoveLocalObject(t){var e;null===(e=this.annoSession)||void 0===e||e.handleRemoveLocalObject(t)}onBoardRenderEnded(){var t;(null===(t=this.annoSession)||void 0===t?void 0:t.isPresenter)&&Fa.A.mediaSDKHandle.onAnnoRenderRequired()}onAnnotationActions(t){var e;switch(t.actionType){case co.SELECT_MOUSE:t.toolType=Q.ANNO_TOOL_TYPE_NONE,this.handleSelectTool(t);break;case co.SELECT_ERASER:t.toolType=Q.ANNO_TOOL_TYPE_ERASER,this.handleSelectTool(t);break;case co.SELECT_TOOL:case co.STAMP:case co.SPOTLIGHT:this.handleSelectTool(t);break;case co.UNDO:this.handleUndo();break;case co.REDO:this.handleRedo();break;case co.CLEAR:this.handleClear(t);break;case co.CLOSE_TOOL_BAR:null===(e=this.annoSession)||void 0===e||e.sendMsgToBoard({type:jr.TOOL_BAR_CLOSED});break;case co.UPDATE_PARAMS:this.handleUpdateParams(t);break;case co.PAUSE_ANNOTATION:this.handlePauseAnnotation(t);break;case co.SHOW_ANNOTATOR_NAME:this.handleShowAnnotatorName(!!t.toShow);break;case co.ANNOTATOR_ID_TO_NAME:this.handleAnnotatorId2Name(t);break;case co.ANNO_CANVAS_SIZE_UPDATE:this.handleAnnoCanvasSizeUpdate(t);break;case co.UPDATE_REMOTE_POSITION_INFO:this.handleRemotePositionInfoUpdate(t);break;case co.UPDATE_VANISHING_TOOL_TIME:this.handleUpdateVanishingToolTime(t)}}handleSelectTool(t){var e,s;const{toolType:i,width:n,color:r}=t,o=parseInt(r),a=16777215&o,h=(o>>>24)/255;this.currentTool={toolType:i,width:n,color:a,alpha:h},null===(e=this.annoSession)||void 0===e||e.setTool(this.currentTool),null===(s=this.annoSession)||void 0===s||s.sendMsgToBoard(Object.assign(Object.assign({type:jr.TOOL_SELECT},this.currentTool),{title:this.userName}))}handleUndo(){var t;null===(t=Va.get(this.presenterId))||void 0===t||t.handleUndo()}handleRedo(){var t;null===(t=Va.get(this.presenterId))||void 0===t||t.handleRedo()}handleClear(t){var e;null===(e=Va.get(this.presenterId))||void 0===e||e.handleClear(t)}handleUpdateParams(t){const{userName:e}=t;"string"==typeof e&&Va.forEach((t=>{t.updateUserName(e)}))}handlePauseAnnotation(t){var e;const{paused:s}=t;if(Ma.Ay.directReport("ANNO_ON_PAUSE:".concat(s)),"boolean"==typeof s){let t;t=s?{toolType:Q.ANNO_TOOL_TYPE_NONE}:this.currentTool,null===(e=this.annoSession)||void 0===e||e.sendMsgToBoard(Object.assign({type:jr.TOOL_SELECT,sessionId:this.presenterId},t))}}handleShowAnnotatorName(t){var e;null===(e=Va.get(this.appId))||void 0===e||e.handleShowAnnotatorName(t)}handleAnnotatorId2Name(t){var e;const{userId:s,userName:i}=t;null===(e=Va.get(this.appId))||void 0===e||e.handleAnnotatorId2Name({userId:s,userName:i})}handleAnnoCanvasSizeUpdate(t){var e;const s=parseFloat(t.width),i=parseFloat(t.height);this.canvasSizeInfo.width=s,this.canvasSizeInfo.height=i;const n=this._checkRemoteSizeInfo();n.width=s,n.height=i,null===(e=this.annoSession)||void 0===e||e.sendMsgToBoard(Object.assign({type:jr.RESIZE},n))}handleRemotePositionInfoUpdate(t){var e;const{top:s,left:i,bottom:n,right:r}=t;null===(e=this.annoSession)||void 0===e||e.sendMsgToBoard({type:jr.UPDATE_REMOTE_POSITION_INFO,position:"absolute",top:s,left:i,bottom:n,right:r})}handleUpdateVanishingToolTime(t){var e;const{displayTime:s,outTime:i}=t;null===(e=this.annoSession)||void 0===e||e.sendMsgToBoard({type:jr.UPDATE_VANISHING_TOOL_TIME,displayTime:s,outTime:i})}_createSession(t){let e,s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const i=this.appId===t,n=this._getBoardSDKIns(i),r={appId:this.appId,userName:this.userName,presenterId:t,isBOSession:s,boardSDKIns:n,isPresenter:i};return e=i?new Ha(r):new Ba(r),Va.set(t,e),e}_getBoardSDKIns(t){const e=this._checkRemoteSizeInfo();let s=Object.assign({annoCanvas:this.annoCanvas,onAnnotationMsg:this.onAnnotationMsg.bind(this),sessionId:this.presenterId.toString(),styles:this._getAnnoCavansStyle(),onRenderEnd:this.onBoardRenderEnded.bind(this)},e);return t?(this.boardSDKPresenterIns||(this.boardSDKPresenterIns=new Yr,this.boardSDKPresenterIns.init(s)),this.boardSDKPresenterIns):(this.boardSDKIns||(this.boardSDKIns=new Yr,this.boardSDKIns.init(s)),this.boardSDKIns)}_checkRemoteSizeInfo(){var t,e,s,i,n,r,o,a;const h=this.remoteSizeInfo.width,c=this.remoteSizeInfo.height,l=(null===(t=this.annoSession)||void 0===t?void 0:t.isPresenter)?"abs":"";let d,u;return(null===(e=this.annoSession)||void 0===e?void 0:e.isPresenter)?(d=(null===(s=this.canvasSizeInfo)||void 0===s?void 0:s.width)||(null===(i=this.annoCanvas)||void 0===i?void 0:i.offsetWidth),u=(null===(n=this.canvasSizeInfo)||void 0===n?void 0:n.height)||(null===(r=this.annoCanvas)||void 0===r?void 0:r.offsetHeight)):(d=(null===(o=this.sharingMainCanvas)||void 0===o?void 0:o.offsetWidth)||h,u=(null===(a=this.sharingMainCanvas)||void 0===a?void 0:a.offsetHeight)||c),{width:d,height:u,absWidth:h,absHeight:c,sizeMode:l}}_getAnnoCavansStyle(){var t;return{zIndex:(null===(t=this.annoCanvas)||void 0===t?void 0:t.style.zIndex)||0,position:"absolute",top:"0",left:"0"}}}}}]);
|
|
3
|
+
//# sourceMappingURL=https://d1cdksi819e9z7.cloudfront.net/sourcemap/annoter.min.js-e2751b1cdead8de460f4.map
|