ice-render 1.0.1 → 1.0.4
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/README.md +7 -3
- package/dist/index.cjs.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/types/FrameManager.d.ts +10 -8
- package/dist/types/ICE.d.ts +2 -4
- package/dist/types/control-panel/transform-controls/ResizeControl.d.ts +10 -6
- package/dist/types/control-panel/transform-controls/RotateControl.d.ts +0 -4
- package/dist/types/event/ICEEventTarget.d.ts +7 -7
- package/dist/types/graphic/ICEComponent.d.ts +9 -2
- package/dist/types/graphic/ICEPath.d.ts +1 -4
- package/dist/types/graphic/container/ICEGroup.d.ts +3 -4
- package/dist/types/graphic/link/ICELinkSlot.d.ts +6 -5
- package/dist/types/graphic/link/ICELinkSlotManager.d.ts +3 -2
- package/dist/types/graphic/shape/ICECircle.d.ts +2 -2
- package/dist/types/graphic/shape/ICEEllipse.d.ts +1 -4
- package/dist/types/graphic/shape/ICEIsogon.d.ts +1 -3
- package/dist/types/graphic/shape/ICEStar.d.ts +1 -4
- package/dist/types/graphic/text/ICEText.d.ts +1 -0
- package/dist/types/renderer/CanvasRenderer.d.ts +1 -3
- package/dist/types/util/ImageCache.d.ts +4 -2
- package/package.json +1 -1
package/dist/index.umd.js
CHANGED
|
@@ -22,4 +22,4 @@
|
|
|
22
22
|
* SOFTWARE.
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).ICE={})}(this,function(e){"use strict";function ownKeys(e,t){var n,i=Object.keys(e);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(e),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,n)),i}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach(function(t){_defineProperty$1(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function _defineProperty$1(t,e,n){e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _getPrototypeOf(t){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function _setPrototypeOf(t,e){return(_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,e){return t.__proto__=e,t})(t,e)}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function _createSuper(n){var i=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function _createSuperInternal(){var t,e=_getPrototypeOf(n);return function _possibleConstructorReturn(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}(this,i?(t=_getPrototypeOf(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function _get(){return(_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,e,n){var i=function _superPropBase(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=_getPrototypeOf(t)););return t}(t,e);if(i)return(i=Object.getOwnPropertyDescriptor(i,e)).get?i.get.call(arguments.length<3?t:n):i.value}).apply(this,arguments)}function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function _unsupportedIterableToArray(t,e){if(t){if("string"==typeof t)return _arrayLikeToArray(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Map"===(n="Object"===n&&t.constructor?t.constructor.name:n)||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(t,e):void 0}}(t)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}function r(t){return I.call(t)}function t(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":(M&&M in Object(t)?O:r)(t)}function v(t){return null!=t&&"object"==typeof t}function z(t){return"string"==typeof t||!L(t)&&T(t)&&"[object String]"==B(t)}function A(t){return void 0===t}var n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n="object"==typeof n&&n&&n.Object===Object&&n,i="object"==typeof self&&self&&self.Object===Object&&self,i=n||i||Function("return this")(),s=i.Symbol,o=Object.prototype,x=o.hasOwnProperty,w=o.toString,S=s?s.toStringTag:void 0,I=Object.prototype.toString,O=function getRawTag$1(t){var e=x.call(t,S),n=t[S];try{var i=!(t[S]=void 0)}catch(t){}var s=w.call(t);return i&&(e?t[S]=n:delete t[S]),s},M=s?s.toStringTag:void 0,o=Array.isArray,B=t,L=o,T=v,R="ICE_FRAME_EVENT",D="AFTER_RENDER",N="BEFORE_ADD",H="AFTER_ADD",V="BEFORE_REMOVE",q="ROUND_FINISH",X="HOOK_MOUSEMOVE",J="HOOK_MOUSEUP",$="BEFORE_RESIZE",h="AFTER_RESIZE",F="AFTER_ROTATE",a="AFTER_MOVE",G={linear:function linear(t,e,n,i){return t+(e-t)/n*(Date.now()-i)},easeInQuad:function easeInQuad(t,e,n,i){i=Date.now()-i;return t+(e-t)/n*(i/n)*i},easeOutQuad:function easeOutQuad(t,e,n,i){i=Date.now()-i;return-(e-t)*(i/=n)*(i-2)+t},easeInOutQuad:function easeInOutQuad(t,e,n,i){i=Date.now()-i,e-=t;return(i/=n/2)<1?e/2*i*i+t:-e/2*(--i*(i-2)-1)+t},easeInQuart:function easeInQuart(t,e,n,i){i=Date.now()-i;return(e-t)*(i/=n)*i*i*i+t},easeOutQuart:function easeOutQuart(t,e,n,i){return-(e-t)*((e=(Date.now()-i)/n-1)*e*e*e-1)+t},easeInOutQuart:function easeInOutQuart(t,e,n,i){i=Date.now()-i,e-=t;return(i/=n/2)<1?e/2*i*i*i*i+t:-e/2*((i-=2)*i*i*i-2)+t},easeInCubic:function easeInCubic(t,e,n,i){i=Date.now()-i;return(e-t)*(i/=n)*i*i+t},easeOutCubic:function easeOutCubic(t,e,n,i){return(e-t)*((e=(Date.now()-i)/n-1)*e*e+1)+t},easeInOutCubic:function easeInOutCubic(t,e,n,i){i=Date.now()-i,e-=t;return(i/=n/2)<1?e/2*i*i*i+t:e/2*((i-=2)*i*i+2)+t}},K=(_createClass(AnimationManager,[{key:"start",value:function start(){return this.ice.evtBus.on(R,this.frameEventHandler,this),this}},{key:"stop",value:function stop(){return this.ice.evtBus.off(R,this.frameEventHandler,this),this}},{key:"frameEventHandler",value:function frameEventHandler(t){for(var e=_toConsumableArray(this.animationMap.values()),n=0;n<e.length;n++){var i=e[n];i.state.interactive=!1,this.tween(i),i.state.interactive=!0}}},{key:"tween",value:function tween(t){var e,n={},i=t.props.animations,s=1;for(e in i){var o=i[e];if(o.finished){if(++s===Object.keys(i).length){this.remove(t);break}}else{var r=o.from,a=o.to,l=o.duration,r=(A(o.startTime)&&(o.startTime=Date.now()),A(o.easing)&&(o.easing="linear"),G[o.easing](r,a,l,o.startTime));a<r&&(r=a,o.finished=!0),n[e]=Math.floor(r)}}return t.setState(_objectSpread2({},n)),t}},{key:"add",value:function add(t){this.animationMap.set(t.props.id,t)}},{key:"remove",value:function remove(t){z(t)?this.animationMap.delete(t):this.animationMap.delete(t.props.id)}}]),AnimationManager);function AnimationManager(t){_classCallCheck(this,AnimationManager),_defineProperty$1(this,"animationMap",new Map),this.ice=t}function U(t,e){return t===e||t!=t&&e!=e}function W(t,e){for(var n=t.length;n--;)if(Q(t[n][0],e))return n;return-1}function ba(t){var e=this.__data__;return!((t=Z(e,t))<0||(t==e.length-1?e.pop():Y.call(e,t,1),--this.size,0))}function ca(t){var e=this.__data__;return(t=tt(e,t))<0?void 0:e[t][1]}function da(t){return-1<et(this.__data__,t)}function ea(t,e){var n=this.__data__,i=nt(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}var Q=U,Z=W,Y=Array.prototype.splice,tt=W,et=W,nt=W;function ListCache$4(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}ListCache$4.prototype.clear=function listCacheClear$1(){this.__data__=[],this.size=0},ListCache$4.prototype.delete=ba,ListCache$4.prototype.get=ca,ListCache$4.prototype.has=da,ListCache$4.prototype.set=ea;function ha(){this.__data__=new it,this.size=0}function ia(t){var e=this.__data__,t=e.delete(t);return this.size=e.size,t}function ja(t){return this.__data__.get(t)}function ka(t){return this.__data__.has(t)}function la(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function pa(t){return!!ot(t)&&("[object Function]"==(t=st(t))||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t)}function ua(t){if(null!=t){try{return at.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function Fa(t){return!(!ct(t)||ht(t))&&(lt(t)?pt:dt).test(ut(t))}function Ga(t,e){return null==t?void 0:t[e]}function Ha(t,e){return t=Ga(t,e),Fa(t)?t:void 0}function Ua(t){return t=this.has(t)&&delete this.__data__[t],this.size-=t?1:0,t}function Va(t){var e,n=this.__data__;return yt?"__lodash_hash_undefined__"===(e=n[t])?void 0:e:vt.call(n,t)?n[t]:void 0}function Wa(t){var e=this.__data__;return gt?void 0!==e[t]:Ct.call(e,t)}function Xa(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=mt&&void 0===e?"__lodash_hash_undefined__":e,this}var l=ListCache$4,it=l,st=t,ot=la,c=i["__core-js_shared__"],rt=(c=/[^.]+$/.exec(c&&c.keys&&c.keys.IE_PROTO||""))?"Symbol(src)_1."+c:"",at=Function.prototype.toString,lt=pa,ht=function isMasked$1(t){return!!rt&&rt in t},ct=la,ut=ua,dt=/^\[object .+?Constructor\]$/,c=Function.prototype,u=Object.prototype,c=c.toString,u=u.hasOwnProperty,pt=RegExp("^"+c.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),c=Ha(i,"Map"),u=Ha(Object,"create"),ft=u,yt=u,vt=Object.prototype.hasOwnProperty,gt=u,Ct=Object.prototype.hasOwnProperty,mt=u;function Hash$1(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}Hash$1.prototype.clear=function hashClear$1(){this.__data__=ft?ft(null):{},this.size=0},Hash$1.prototype.delete=Ua,Hash$1.prototype.get=Va,Hash$1.prototype.has=Wa,Hash$1.prototype.set=Xa;function _a(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}function a0(t,e){return t=t.__data__,_a(e)?t["string"==typeof e?"string":"hash"]:t.map}function g0(t){return t=Et(this,t).delete(t),this.size-=t?1:0,t}function h0(t){return Pt(this,t).get(t)}function i0(t){return xt(this,t).has(t)}function j0(t,e){var n=wt(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}var bt=Hash$1,kt=l,_t=c,Et=a0,Pt=a0,xt=a0,wt=a0;function MapCache$1(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}MapCache$1.prototype.clear=function mapCacheClear$1(){this.size=0,this.__data__={hash:new bt,map:new(_t||kt),string:new bt}},MapCache$1.prototype.delete=g0,MapCache$1.prototype.get=h0,MapCache$1.prototype.has=i0,MapCache$1.prototype.set=j0;function s0(t,e){var n=this.__data__;if(n instanceof St){var i=n.__data__;if(!It||i.length<199)return i.push([t,e]),this.size=++n.size,this;n=this.__data__=new Ot(i)}return n.set(t,e),this.size=n.size,this}var St=l,It=c,Ot=MapCache$1,Mt=l,u=ia,l=ja,d=ka;function Stack$2(t){t=this.__data__=new Mt(t);this.size=t.size}Stack$2.prototype.clear=ha,Stack$2.prototype.delete=u,Stack$2.prototype.get=l,Stack$2.prototype.has=d,Stack$2.prototype.set=s0;function x0(t,e,n){"__proto__"==e&&Bt?Bt(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function A0(t,e,n){(void 0===n||Tt(t[e],n))&&(void 0!==n||e in t)||Lt(t,e,n)}function E0(t){var e=new t.constructor(t.byteLength);return new Dt(e).set(new Dt(t)),e}function G0(t,e){return e=e?Nt(t.buffer):t.buffer,new t.constructor(e,t.byteOffset,t.length)}function H0(t,e){var n=-1,i=t.length;for(e=e||Array(i);++n<i;)e[n]=t[n];return e}var jt,u=Stack$2,At=Ha,l=function(){try{var t=At(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),Bt=l,Lt=x0,Tt=U,d=function createBaseFor$1(l){return function(t,e,n){for(var i=-1,s=Object(t),o=n(t),r=o.length;r--;){var a=o[l?r:++i];if(!1===e(s[a],a,s))break}return t}}(),Rt={exports:{}},Dt=(p=(p=(y=Rt).exports)&&!p.nodeType&&p,f=(f=p&&y&&!y.nodeType&&y)&&f.exports===p?i.Buffer:void 0,jt=f?f.allocUnsafe:void 0,y.exports=function cloneBuffer(t,e){if(e)return t.slice();e=t.length,e=jt?jt(e):new t.constructor(e);return t.copy(e),e},i.Uint8Array),Nt=E0,zt=la,Ht=Object.create;function object(){}function L0(e,n){return function(t){return e(n(t))}}function O0(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||qt)}function S0(t){return"function"!=typeof t.constructor||$t(t)?{}:Xt(Jt(t))}function V0(t){return Ft(t)&&"[object Arguments]"==Wt(t)}function _0(t){return"number"==typeof t&&-1<t&&t%1==0&&t<=9007199254740991}function cb(t){return null!=t&&Yt(t.length)&&!Zt(t)}function fb(t){return ee(t)&&te(t)}function qb(t){return!(!se(t)||"[object Object]"!=ne(t))&&(null===(t=ie(t))||"function"==typeof(t=re.call(t,"constructor")&&t.constructor)&&t instanceof t&&oe.call(t)==ae)}function vb(t){return ce(t)&&he(t.length)&&!!m[le(t)]}function wb(e){return function(t){return e(t)}}function Db(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}function Hb(t,e,n){var i=t[e];pe.call(t,e)&&de(i,n)&&(void 0!==n||e in t)||ue(t,e,n)}function Kb(t,e,n,i){var s=!n;n=n||{};for(var o=-1,r=e.length;++o<r;){var a=e[o],l=i?i(n[a],t[a],a,n,t):void 0;void 0===l&&(l=t[a]),(s?ye:fe)(n,a,l)}return n}function Mb(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&ve.test(t))&&-1<t&&t%1==0&&t<e}function Nb(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i}function Ub(t,e){var n,i=Ce(t),s=!i&&ge(t),o=!i&&!s&&me(t),r=!i&&!s&&!o&&ke(t),a=i||s||o||r,l=a?Nb(t.length,String):[],h=l.length;for(n in t)!e&&!_e.call(t,n)||a&&("length"==n||o&&("offset"==n||"parent"==n)||r&&("buffer"==n||"byteLength"==n||"byteOffset"==n)||be(n,h))||l.push(n);return l}function $b(t){if(!Ee(t))return xe(t);var e,n=Pe(t),i=[];for(e in t)("constructor"!=e||!n&&we.call(t,e))&&i.push(e);return i}function a1(t){return Ie(t)?Se(t,!0):$b(t)}function v1(t,e,n,i,s,o,r){var a,l,h,c=Xe(t,n),u=Xe(e,n),d=r.get(u);d?je(t,n,d):((e=void 0===(d=o?o(c,u,n+"",t,e,r):void 0))&&(l=!(a=De(u))&&ze(u),h=!a&&!l&&qe(u),d=u,a||l||h?d=De(c)?c:Ne(c)?Le(c):l?Ae(u,!(e=!1)):h?Be(u,!(e=!1)):[]:Ue(u)||Re(u)?Re(d=c)?d=Je(c):Ve(c)&&!He(c)||(d=Te(u)):e=!1),e&&(r.set(u,d),s(d,u,i,o,r),r.delete(u)),je(t,n,d))}function A1(t){return t}function B1(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function E1(t){return function(){return t}}function Q1(t,e){return sn(nn(t,e,en),t+"")}function R1(t,e,n){if(!hn(n))return!1;var i=typeof e;return!!("number"==i?an(n)&&ln(e,n.length):"string"==i&&e in n)&&rn(n[e],t)}var Vt,Ut,p=L0(Object.getPrototypeOf,Object),qt=Object.prototype,Xt=function(t){if(!zt(t))return{};if(Ht)return Ht(t);object.prototype=t;t=new object;return object.prototype=void 0,t},Jt=p,$t=O0,Wt=t,Ft=v,Gt=v,f=Object.prototype,Kt=f.hasOwnProperty,Qt=f.propertyIsEnumerable,y=V0(function(){return arguments}())?V0:function(t){return Gt(t)&&Kt.call(t,"callee")&&!Qt.call(t,"callee")},Zt=pa,Yt=_0,te=cb,ee=v,f={exports:{}},ne=(b=(b=(C=f).exports)&&!b.nodeType&&b,g=(g=b&&C&&!C.nodeType&&C)&&g.exports===b?i.Buffer:void 0,b=(g?g.isBuffer:void 0)||function stubFalse(){return!1},C.exports=b,t),ie=p,se=v,g=Function.prototype,C=Object.prototype,oe=g.toString,re=C.hasOwnProperty,ae=oe.call(Object),le=t,he=_0,ce=v,m={},b=(m["[object Float32Array]"]=m["[object Float64Array]"]=m["[object Int8Array]"]=m["[object Int16Array]"]=m["[object Int32Array]"]=m["[object Uint8Array]"]=m["[object Uint8ClampedArray]"]=m["[object Uint16Array]"]=m["[object Uint32Array]"]=!0,m["[object Arguments]"]=m["[object Array]"]=m["[object ArrayBuffer]"]=m["[object Boolean]"]=m["[object DataView]"]=m["[object Date]"]=m["[object Error]"]=m["[object Function]"]=m["[object Map]"]=m["[object Number]"]=m["[object Object]"]=m["[object RegExp]"]=m["[object Set]"]=m["[object String]"]=m["[object WeakMap]"]=!1,{exports:{}}),n=(C=(C=(g=b).exports)&&!C.nodeType&&C,Vt=C&&g&&!g.nodeType&&g,Ut=Vt&&Vt.exports===C&&n.process,C=function(){try{return Vt&&Vt.require&&Vt.require("util").types||Ut&&Ut.binding&&Ut.binding("util")}catch(t){}}(),g.exports=C,vb),g=wb,C=b.exports,C=C&&C.isTypedArray,g=C?g(C):n,ue=x0,de=U,pe=Object.prototype.hasOwnProperty,fe=Hb,ye=x0,ve=/^(?:0|[1-9]\d*)$/,ge=y,Ce=o,me=f.exports,be=Mb,ke=g,_e=Object.prototype.hasOwnProperty,Ee=la,Pe=O0,xe=function nativeKeysIn$1(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e},we=Object.prototype.hasOwnProperty,Se=Ub,Ie=cb,Oe=Kb,Me=a1,je=A0,Ae=Rt.exports,Be=G0,Le=H0,Te=S0,Re=y,De=o,Ne=fb,ze=f.exports,He=pa,Ve=la,Ue=qb,qe=g,Xe=Db,Je=function toPlainObject$1(t){return Oe(t,Me(t))},$e=u,We=A0,Fe=d,Ge=la,Ke=a1,Qe=Db,Ze=Math.max,Ye=l,tn=Date.now,C=function shortOut$1(n){var i=0,s=0;return function(){var t=tn(),e=16-(t-s);if(s=t,0<e){if(800<=++i)return arguments[0]}else i=0;return n.apply(void 0,arguments)}}(Ye?function(t,e){return Ye(t,"toString",{configurable:!0,enumerable:!1,value:E1(e),writable:!0})}:A1),en=A1,nn=function overRest$1(o,r,a){return r=Ze(void 0===r?o.length-1:r,0),function(){for(var t=arguments,e=-1,n=Ze(t.length-r,0),i=Array(n);++e<n;)i[e]=t[r+e];for(var e=-1,s=Array(r+1);++e<r;)s[e]=t[e];return s[r]=a(i),B1(o,this,s)}},sn=C,rn=U,an=cb,ln=Mb,hn=la,cn=function baseMerge$1(i,s,o,r,a){i!==s&&Fe(s,function(t,e){var n;a=a||new $e,Ge(t)?v1(i,s,e,o,baseMerge$1,r,a):(n=r?r(Qe(i,e),t,e+"",i,s,a):void 0,We(i,e,n=void 0===n?t:n))},Ke)},un=function createAssigner$1(a){return Q1(function(t,e){var n=-1,i=e.length,s=1<i?e[i-1]:void 0,o=2<i?e[2]:void 0,s=3<a.length&&"function"==typeof s?(i--,s):void 0;for(o&&R1(e[0],e[1],o)&&(s=i<3?void 0:s,i=1),t=Object(t);++n<i;){var r=e[n];r&&a(t,r,n,s)}return t})}(function(t,e,n){cn(t,e,n)}),dn="undefined"!=typeof Float32Array?Float32Array:Array,pn=Math.PI/180;function toRadian(t){return t*pn}function invert(t,e){var n=e[0],i=e[1],s=e[2],o=e[3],r=e[4],e=e[5],a=n*o-i*s;return a?(t[0]=o*(a=1/a),t[1]=-i*a,t[2]=-s*a,t[3]=n*a,t[4]=(s*e-o*r)*a,t[5]=(i*r-n*e)*a,t):null}function multiply(t,e,n){var i=e[0],s=e[1],o=e[2],r=e[3],a=e[4],e=e[5],l=n[0],h=n[1],c=n[2],u=n[3],d=n[4],n=n[5];return t[0]=i*l+o*h,t[1]=s*l+r*h,t[2]=i*c+o*u,t[3]=s*c+r*u,t[4]=i*d+o*n+a,t[5]=s*d+r*n+e,t}function transformMat2d(t,e,n){var i=e[0],e=e[1];return t[0]=n[0]*i+n[2]*e+n[4],t[1]=n[1]*i+n[3]*e+n[5],t}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)}),function create(){var t=new dn(2);dn!=Float32Array&&(t[0]=0,t[1]=0)}();function W1(t,e){for(var n=-1,i=null==t?0:t.length;++n<i&&!1!==e(t[n],n,t););return t}function _1(t){if(!fn(t))return yn(t);var e,n=[];for(e in Object(t))vn.call(t,e)&&"constructor"!=e&&n.push(e);return n}function dc(t){return(mn(t)?gn:Cn)(t)}function gc(t,e){return t&&bn(e,kn(e),t)}function jc(t,e){return t&&_n(e,En(e),t)}function kc(){return[]}function lc(t,e){for(var n=-1,i=null==t?0:t.length,s=0,o=[];++n<i;){var r=t[n];e(r,n,t)&&(o[s++]=r)}return o}function sc(t,e){return wn(t,Sn(t),e)}function tc(t,e){for(var n=-1,i=e.length,s=t.length;++n<i;)t[s+n]=e[n];return t}function Bc(t,e){return jn(t,An(t),e)}function Ec(t,e,n){return e=e(t),Ln(t)?e:Bn(e,n(t))}function Ic(t){return Tn(t,Dn,Rn)}function Mc(t){return Nn(t,Hn,zn)}function a2(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&Fn.call(t,"index")&&(n.index=t.index,n.input=t.input),n}function k2(t){return Qn?Object(Qn.call(t)):{}}function m2(t,e,n){var i=t.constructor;switch(e){case"[object ArrayBuffer]":return Zn(t);case"[object Boolean]":case"[object Date]":return new i(+t);case"[object DataView]":return Yn(t,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return ei(t,n);case"[object Map]":return new i;case"[object Number]":case"[object String]":return new i(t);case"[object RegExp]":return ti(t);case"[object Set]":return new i;case"[object Symbol]":return k2(t)}}function p2(t){return ii(t)&&"[object Map]"==ni(t)}function w2(t){return oi(t)&&"[object Set]"==si(t)}function Z2(t){return Ii(t,5)}var n=L0(Object.keys,Object),fn=O0,yn=n,vn=Object.prototype.hasOwnProperty,gn=Ub,Cn=_1,mn=cb,bn=Kb,kn=dc,_n=Kb,En=a1,Pn=Object.prototype.propertyIsEnumerable,xn=Object.getOwnPropertySymbols,d=xn?function(e){return null==e?[]:(e=Object(e),lc(xn(e),function(t){return Pn.call(e,t)}))}:kc,wn=Kb,Sn=d,In=tc,On=p,Mn=d,l=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)In(e,Mn(t)),t=On(t);return e}:kc,jn=Kb,An=l,Bn=tc,Ln=o,Tn=Ec,Rn=d,Dn=dc,Nn=Ec,zn=l,Hn=a1,C=Ha(i,"DataView"),n=c,p=Ha(i,"Promise"),d=Ha(i,"Set"),l=Ha(i,"WeakMap"),Vn=t,Un=ua,qn=Un(C),Xn=Un(n),Jn=Un(p),$n=Un(d),Wn=Un(l),c=Vn,C=c=C&&"[object DataView]"!=c(new C(new ArrayBuffer(1)))||n&&"[object Map]"!=c(new n)||p&&"[object Promise]"!=c(p.resolve())||d&&"[object Set]"!=c(new d)||l&&"[object WeakMap]"!=c(new l)?function(t){var e=Vn(t),t="[object Object]"==e?t.constructor:void 0,t=t?Un(t):"";if(t)switch(t){case qn:return"[object DataView]";case Xn:return"[object Map]";case Jn:return"[object Promise]";case $n:return"[object Set]";case Wn:return"[object WeakMap]"}return e}:c,Fn=Object.prototype.hasOwnProperty,Gn=E0,Kn=/\w*$/,n=s?s.prototype:void 0,Qn=n?n.valueOf:void 0,Zn=E0,Yn=function cloneDataView$1(t,e){e=e?Gn(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.byteLength)},ti=function cloneRegExp$1(t){var e=new t.constructor(t.source,Kn.exec(t));return e.lastIndex=t.lastIndex,e},ei=G0,ni=C,ii=v,p=wb,d=b.exports,l=d&&d.isMap,c=l?p(l):p2,si=C,oi=v,n=wb,d=b.exports,p=d&&d.isSet,l=p?n(p):w2,ri=u,ai=W1,li=Hb,hi=gc,ci=jc,ui=Rt.exports,di=H0,pi=sc,fi=Bc,yi=Ic,vi=Mc,gi=C,Ci=a2,mi=m2,bi=S0,ki=o,_i=f.exports,Ei=c,Pi=la,xi=l,wi=dc,Si=a1,k={},Ii=(k["[object Arguments]"]=k["[object Array]"]=k["[object ArrayBuffer]"]=k["[object DataView]"]=k["[object Boolean]"]=k["[object Date]"]=k["[object Float32Array]"]=k["[object Float64Array]"]=k["[object Int8Array]"]=k["[object Int16Array]"]=k["[object Int32Array]"]=k["[object Map]"]=k["[object Number]"]=k["[object Object]"]=k["[object RegExp]"]=k["[object Set]"]=k["[object String]"]=k["[object Symbol]"]=k["[object Uint8Array]"]=k["[object Uint8ClampedArray]"]=k["[object Uint16Array]"]=k["[object Uint32Array]"]=!0,k["[object Error]"]=k["[object Function]"]=k["[object WeakMap]"]=!1,function baseClone$1(n,i,s,t,e,o){var r,a=1&i,l=2&i,h=4&i;if(void 0!==(r=s?e?s(n,t,e,o):s(n):r))return r;if(!Pi(n))return n;t=ki(n);if(t){if(r=Ci(n),!a)return di(n,r)}else{var c=gi(n),u="[object Function]"==c||"[object GeneratorFunction]"==c;if(_i(n))return ui(n,a);if("[object Object]"==c||"[object Arguments]"==c||u&&!e){if(r=l||u?{}:bi(n),!a)return l?fi(n,ci(r,n)):pi(n,hi(r,n))}else{if(!k[c])return e?n:{};r=mi(n,c,a)}}u=(o=o||new ri).get(n);if(u)return u;o.set(n,r),xi(n)?n.forEach(function(t){r.add(baseClone$1(t,i,s,t,n,o))}):Ei(n)&&n.forEach(function(t,e){r.set(e,baseClone$1(t,i,s,e,n,o))});var d=t?void 0:(h?l?vi:yi:l?Si:wi)(n);return ai(d||n,function(t,e){d&&(t=n[e=t]),li(r,e,baseClone$1(t,i,s,e,n,o))}),r}),b=null,_=((b=window||global||{}).requestFrame=b.requestAnimationFrame||b.webkitRequestAnimationFrame||b.mozRequestAnimationFrame||b.oRequestAnimationFrame||b.msRequestAnimationFrame,b),E=(_createClass(ICEEvent,[{key:"composedPath",value:function composedPath(){throw new Error("Method not implemented.")}},{key:"initEvent",value:function initEvent(t,e,n){throw new Error("Method not implemented.")}},{key:"preventDefault",value:function preventDefault(){throw new Error("Method not implemented.")}},{key:"stopImmediatePropagation",value:function stopImmediatePropagation(){throw new Error("Method not implemented.")}},{key:"stopPropagation",value:function stopPropagation(){throw new Error("Method not implemented.")}}]),ICEEvent),Oi=_1,Mi=C,ji=y,Ai=o,Bi=cb,Li=f.exports,Ti=O0,Ri=g,Di=Object.prototype.hasOwnProperty;function ICEEvent(){var t,e,n=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};for(t in _classCallCheck(this,ICEEvent),n)this[t]=n[t];for(e in i)this[e]=i[e]}function kd(t){if(null==t)return!0;if(Bi(t)&&(Ai(t)||"string"==typeof t||"function"==typeof t.splice||Li(t)||Ri(t)||ji(t)))return!t.length;var e,n=Mi(t);if("[object Map]"==n||"[object Set]"==n)return!t.size;if(Ti(t))return!Oi(t).length;for(e in t)if(Di.call(t,e))return!1;return!0}_createClass(ICEEventTarget,[{key:"on",value:function on(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:_;this.listeners[t]||(this.listeners[t]=[]),this.off(t,e,n),this.listeners[t].push({callback:e,scope:n})}},{key:"off",value:function off(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:_;if(i=this.listeners[t])for(var i=_toConsumableArray(i),s=0;s<i.length;s++){var o=i[s];if(o.callback===e&&o.scope===n)return void this.listeners[t].splice(s,1)}}},{key:"once",value:function once(e,n){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:_,s=this;s.on(e,function callback(t){s.off(e,callback,i),n.call(i,t)},i)}},{key:"trigger",value:function trigger(t){var e,n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};if(kd(this.listeners[t]))return!1;if(this.suspendedEventNames.includes(t))return!1;n?((e=new E(n)).originalEvent=n.originalEvent||n,e.param=_objectSpread2({},i)):e=new E({type:t,timeStamp:Date.now(),param:_objectSpread2({},i)});for(var s=this.listeners[t],o=0;o<s.length;o++){var r=s[o];r.callback.call(r.scope,e)}return!0}},{key:"suspend",value:function suspend(t){t&&!this.suspendedEventNames.includes(t)&&this.suspendedEventNames.push(t)}},{key:"resume",value:function resume(e){this.suspendedEventNames.splice(this.suspendedEventNames.findIndex(function(t){return t===e}),1)}},{key:"purgeEvents",value:function purgeEvents(){this.listeners={},this.suspendedEventNames=[]}},{key:"hasListener",value:function hasListener(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:_;if(!this.listeners[t])return!1;var i=this.listeners[t];if(!i)return!1;for(var s=0;s<i.length;s++){var o=i[s];if(o.callback===e&&o.scope===n)return!0}return!1}}]);d=ICEEventTarget;function ICEEventTarget(){_classCallCheck(this,ICEEventTarget),_defineProperty$1(this,"listeners",{}),_defineProperty$1(this,"suspendedEventNames",[])}d.prototype.addEventListener=d.prototype.on,d.prototype.removeEventListener=d.prototype.off,d.prototype.dispatchEvent=d.prototype.trigger;_createClass(GeoUtil,null,[{key:"calcRotateAngle",value:function calcRotateAngle(t,e,n,i){t-=n,n=e-i,e=Math.hypot(t,n);return((n/e<0?-1:1)*Math.acos(t/e)*180/Math.PI+360)%360}},{key:"calcRotateAngleFromMatrix",value:function calcRotateAngleFromMatrix(t){var e=0,n=t[0],t=t[1],i=Math.hypot(n,t),t=t/i,e=Math.acos(n/i);return t<0&&(e+=Math.PI/2),e*(180/Math.PI)}},{key:"calcScaleFromMatrix",value:function calcScaleFromMatrix(t){var e=t[0],n=t[1],i=t[2],t=t[3];return[Math.hypot(e,n)/e,Math.hypot(i,t)/t]}}]);var Ni=GeoUtil,zi=(_createClass(ICEBoundingBox,[{key:"containsPoint",value:function containsPoint(t){var e=this.getMinAndMaxPoint(),n=e.minX,i=e.minY,s=e.maxX,e=e.maxY;if(t[0]<n||t[0]>s||t[1]<i||t[1]>e)return!1;for(var o=0,r=this.getBoundingLines(),a=0;a<r.length;a++){var l,h=r[a];t[1]>h.o[1]&&t[1]>h.d[1]||t[1]<h.o[1]&&t[1]<h.d[1]||(h.o[0]===h.d[0]&&h.o[0]>=t[0]?h.o[0]:(l=(h.d[1]-h.o[1])/(h.d[0]-h.o[0]),h.o[0]+(t[1]-h.o[1])/l))>t[0]&&o++}return 0!==o&&o%2==1}},{key:"getBoundingLines",value:function getBoundingLines(){return[{o:_toConsumableArray(this.tl),d:_toConsumableArray(this.tr)},{o:_toConsumableArray(this.tr),d:_toConsumableArray(this.br)},{o:_toConsumableArray(this.br),d:_toConsumableArray(this.bl)},{o:_toConsumableArray(this.bl),d:_toConsumableArray(this.tl)}]}},{key:"getMinAndMaxPoint",value:function getMinAndMaxPoint(){for(var t=this.tl[0],e=this.tl[1],n=this.tl[0],i=this.tl[1],s=[this.tr,this.bl,this.br],o=0;o<s.length;o++){var r=s[o];r[0]<t&&(t=r[0]),r[0]>n&&(n=r[0]),r[1]<e&&(e=r[1]),r[1]>i&&(i=r[1])}return{minX:t,minY:e,maxX:n,maxY:i}}},{key:"containsBox",value:function containsBox(t){return!1}},{key:"isIntersect",value:function isIntersect(t){var e=this.tl[0],n=this.br[0],i=this.tl[1],s=this.br[1],o=t.tl[0],r=t.br[0],a=t.tl[1],t=t.br[1];return!(r<e||t<i||n<o||s<a)}},{key:"transform",value:function transform(t){var e=transformMat2d([],this.tl,t),n=transformMat2d([],this.tr,t),i=transformMat2d([],this.bl,t),s=transformMat2d([],this.br,t),t=transformMat2d([],this.center,t);return new ICEBoundingBox([].concat(_toConsumableArray(e),_toConsumableArray(n),_toConsumableArray(i),_toConsumableArray(s),_toConsumableArray(t)))}},{key:"union",value:function union(t){return null}},{key:"width",get:function get(){var t=this.br[0]-this.bl[0],e=this.br[1]-this.bl[1];return Math.hypot(t,e)}},{key:"height",get:function get(){var t=this.br[0]-this.tr[0],e=this.br[1]-this.tr[1];return Math.hypot(t,e)}},{key:"left",get:function get(){return this.tl[0]},set:function set(t){throw new Error("Can not set left to ICEBoundingBox directly.")}},{key:"top",get:function get(){return this.tl[1]},set:function set(t){throw new Error("Can not set top to ICEBoundingBox directly.")}},{key:"centerX",get:function get(){return this.center[0]}},{key:"centerY",get:function get(){return this.center[1]}},{key:"centerPoint",get:function get(){return this.center}}],[{key:"fromDimension",value:function fromDimension(t,e,n,i){return new ICEBoundingBox([].concat([t,e],[t+n,e],[t,e+i],[t+n,e+i],[t+n/2,e+i/2]))}}]),ICEBoundingBox);function ICEBoundingBox(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[0,0,0,0,0,0,0,0,0,0];_classCallCheck(this,ICEBoundingBox),_defineProperty$1(this,"tl",[0,0]),_defineProperty$1(this,"tr",[0,0]),_defineProperty$1(this,"bl",[0,0]),_defineProperty$1(this,"br",[0,0]),_defineProperty$1(this,"tc",[0,0]),_defineProperty$1(this,"rc",[0,0]),_defineProperty$1(this,"bc",[0,0]),_defineProperty$1(this,"lc",[0,0]),_defineProperty$1(this,"center",[0,0]),this.tl=[t[0],t[1]],this.tr=[t[2],t[3]],this.bl=[t[4],t[5]],this.br=[t[6],t[7]],this.tc=[(this.tr[0]+this.tl[0])/2,(this.tr[1]+this.tl[1])/2],this.bc=[(this.br[0]+this.bl[0])/2,(this.br[1]+this.bl[1])/2],this.lc=[(this.bl[0]+this.tl[0])/2,(this.bl[1]+this.tl[1])/2],this.rc=[(this.br[0]+this.tr[0])/2,(this.br[1]+this.tr[1])/2],this.center=[t[8],t[9]]}function GeoUtil(){throw _classCallCheck(this,GeoUtil),new Error("GeoUtil is a static util class.")}function getVal(t,e){return e.split(".").reduce(function(t,e){return t[e]},t)}function flattenTree(t,e,n,i){for(var s=0<arguments.length&&void 0!==t?t:[],o=1<arguments.length&&void 0!==e?e:[],r=2<arguments.length&&void 0!==n?n:1,a=3<arguments.length&&void 0!==i?i:null,l=0;l<o.length;l++){var h=o[l];h._level=r,h._pid=a,s.push(h),flattenTree(s,h.childNodes||[],r+1,h.id)}return s}_inherits(ICEComponent,d),Hi=_createSuper(ICEComponent),_createClass(ICEComponent,[{key:"initEvents",value:function initEvents(){this.on("mousedown",this.mouseDownEvtHandler,this),this.on("keydown",this.keyboardEvtHandler,this),this.on("keyup",this.keyboardEvtHandler,this)}},{key:"mouseDownEvtHandler",value:function mouseDownEvtHandler(t){this.state.interactive&&this.state.draggable&&(this.on("mousemove",this.mouseMoveEvtHandler,this),this.on("mouseup",this.mouseUpEvtHandler,this))}},{key:"mouseMoveEvtHandler",value:function mouseMoveEvtHandler(t){var e=t.movementX,n=t.movementY;return this.moveGlobalPosition(e,n,t),!0}},{key:"mouseUpEvtHandler",value:function mouseUpEvtHandler(t){this.off("mousemove",this.mouseMoveEvtHandler,this),this.off("mouseup",this.mouseUpEvtHandler,this)}},{key:"keyboardEvtHandler",value:function keyboardEvtHandler(t){switch(t.key){case"ArrowUp":this.moveGlobalPosition(0,-2,t);break;case"ArrowDown":this.moveGlobalPosition(0,2,t);break;case"ArrowLeft":this.moveGlobalPosition(-2,0,t);break;case"ArrowRight":this.moveGlobalPosition(2,0,t);break;case"Delete":(this.parentNode&&this.parentNode.removeChild?this.parentNode:this.ice).removeChild(this)}}},{key:"render",value:function render(){this.trigger("BEFORE_RENDER"),this.state.display&&(this.calcComponentParams(),this.applyStyleToCtx(),this.applyTransformToCtx(),this.doRender(),this.trigger(D),this.dirty=!1)}},{key:"applyStyleToCtx",value:function applyStyleToCtx(){var t,e=_objectSpread2(_objectSpread2({},this.props.style),this.state.style);for(t in e)this.ctx[t]=e[t]}},{key:"calcComponentParams",value:function calcComponentParams(){return{width:this.state.width,height:this.state.height}}},{key:"calcLocalOrigin",value:function calcLocalOrigin(){var t=[0,0],e=this.state.origin;return e&&"localCenter"!==e||(t[0]=this.state.width/2,t[1]=this.state.height/2),this.state.localOrigin=t}},{key:"calcAbsoluteOrigin",value:function calcAbsoluteOrigin(){var t=getVal(this,"state.transform.translate.0")+this.state.left,e=getVal(this,"state.transform.translate.1")+this.state.top,n=_toConsumableArray(this.calcLocalOrigin());return n[0]+=t,n[1]+=e,this.parentNode&&(n=transformMat2d([],n,[1,0,0,1,-this.parentNode.state.localOrigin[0],-this.parentNode.state.localOrigin[1]]),n=transformMat2d([],n,this.parentNode.state.composedMatrix)),this.state.absoluteOrigin=n}},{key:"calcLinearMatrix",value:function calcLinearMatrix(){var t=function create$1(){var t=new dn(6);return dn!=Float32Array&&(t[1]=0,t[2]=0,t[4]=0,t[5]=0),t[0]=1,t[3]=1,t}(),e=getVal(this,"state.transform.skew.0"),n=getVal(this,"state.transform.skew.1"),t=function scale(t,e,n){var i=e[0],s=e[1],o=e[2],r=e[3],a=e[4],e=e[5],l=n[0],n=n[1];return t[0]=i*l,t[1]=s*l,t[2]=o*n,t[3]=r*n,t[4]=a,t[5]=e,t}([],function rotate(t,e,n){var i=e[0],s=e[1],o=e[2],r=e[3],a=e[4],e=e[5],l=Math.sin(n),n=Math.cos(n);return t[0]=i*n+o*l,t[1]=s*n+r*l,t[2]=i*-l+o*n,t[3]=s*-l+r*n,t[4]=a,t[5]=e,t}([],function skew(t,e,n,i){n=Math.tan(n),i=Math.tan(i);return t[0]=e[0],t[1]=e[1]+n,t[2]=e[2]+i,t[3]=e[3],t[4]=e[4],t[5]=e[5],t}([],t,e*pn,n*pn),toRadian(getVal(this,"state.transform.rotate"))),[getVal(this,"state.transform.scale.0"),getVal(this,"state.transform.scale.1")]);return this.state.linearMatrix=t}},{key:"calcAbsoluteLinearMatrix",value:function calcAbsoluteLinearMatrix(){for(var t=this,e=t.calcLinearMatrix();t.parentNode;)e=multiply([],t.parentNode.state.linearMatrix,e),t=t.parentNode;return this.state.absoluteLinearMatrix=e}},{key:"composeMatrix",value:function composeMatrix(){var t=this.calcAbsoluteOrigin(),t=multiply([],[1,0,0,1,t[0],t[1]],this.calcAbsoluteLinearMatrix());return this.state.composedMatrix=t}},{key:"applyTransformToCtx",value:function applyTransformToCtx(){var t,e=this.dirty?this.composeMatrix():this.state.composedMatrix;(t=this.ctx).setTransform.apply(t,_toConsumableArray(e))}},{key:"doRender",value:function doRender(){var t;this.ctx.setTransform(1,0,0,1,0,0),this.ctx.lineWidth=1,this.state.showMinBoundingBox&&(t=this.getMinBoundingBox(),this.ctx.strokeStyle="#ff0000",this.ctx.fillStyle="rgba(0,0,0,0)",this.ctx.beginPath(),this.ctx.moveTo(t.tl[0],t.tl[1]),this.ctx.lineTo(t.tr[0],t.tr[1]),this.ctx.lineTo(t.br[0],t.br[1]),this.ctx.lineTo(t.bl[0],t.bl[1]),this.ctx.closePath(),this.ctx.stroke(),this.ctx.fill()),this.state.showMaxBoundingBox&&(t=this.getMaxBoundingBox(),this.ctx.strokeStyle="#0000ff",this.ctx.fillStyle="rgba(0,0,0,0)",this.ctx.beginPath(),this.ctx.moveTo(t.tl[0],t.tl[1]),this.ctx.lineTo(t.tr[0],t.tr[1]),this.ctx.lineTo(t.br[0],t.br[1]),this.ctx.lineTo(t.bl[0],t.bl[1]),this.ctx.closePath(),this.ctx.stroke(),this.ctx.fill())}},{key:"getMinBoundingBox",value:function getMinBoundingBox(){var t=0<arguments.length&&void 0!==arguments[0]&&arguments[0],e=this.state.localOrigin[0],n=this.state.localOrigin[1],i=this.state.width,s=this.state.height,e=new zi([0-e,0-n,0-e+i,0-n,0-e,0-n+s,0-e+i,0-n+s,0,0]),i=t?this.composeMatrix():this.state.composedMatrix;return e.transform(i)}},{key:"getMaxBoundingBox",value:function getMaxBoundingBox(){var t=this.getMinBoundingBox(0<arguments.length&&void 0!==arguments[0]&&arguments[0]),e=t.getMinAndMaxPoint(),n=e.minX,i=e.minY,s=e.maxX,e=e.maxY,t=t.centerPoint;return new zi([n,i,s,i,n,e,s,e,t[0],t[1]])}},{key:"setState",value:function setState(t){un(this.state,t),this.dirty=!0,this.ice&&(this.ice.dirty=!0)}},{key:"dirty",get:function get(){return this.__dirty},set:function set(t){this.__dirty=t}},{key:"setPosition",value:function setPosition(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:new E;this.trigger("BEFORE_MOVE",_objectSpread2(_objectSpread2({},n),{},{left:t,top:e})),this.setState({left:t,top:e}),this.trigger(a,_objectSpread2(_objectSpread2({},n),{},{left:t,top:e}))}},{key:"moveGlobalPosition",value:function moveGlobalPosition(t,e){var n,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:new E;this.parentNode&&(t=(n=transformMat2d([],[t,e],invert([],this.parentNode.state.absoluteLinearMatrix)))[0],e=n[1]),this.setPosition(this.state.left+t,this.state.top+e,_objectSpread2(_objectSpread2({},i),{},{tx:t,ty:e}))}},{key:"setGlobalPosition",value:function setGlobalPosition(t,e){var n,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:new E;this.parentNode&&(t=(n=transformMat2d([],[t,e],invert([],this.parentNode.state.absoluteLinearMatrix)))[0],e=n[1]),this.setPosition(t,e,_objectSpread2(_objectSpread2({},i),{},{left:t,top:e}))}},{key:"setGlobalRotate",value:function setGlobalRotate(t){var e;this.parentNode&&(e=this.parentNode.state.absoluteLinearMatrix,t-=Ni.calcRotateAngleFromMatrix(e)),this.setState({transform:{rotate:t}})}},{key:"localToGlobal",value:function localToGlobal(t,e){t=[t,e];return transformMat2d([],t,this.state.composedMatrix)}},{key:"globalToLocal",value:function globalToLocal(t,e){t=[t,e];return transformMat2d([],t,invert([],this.state.composedMatrix))}},{key:"getRotateAngle",value:function getRotateAngle(){var t=this.state.composedMatrix;return Ni.calcRotateAngleFromMatrix(t)}},{key:"getLocalLeftTop",value:function getLocalLeftTop(){var t=this.getMinBoundingBox(!0),e=t.width,n=t.height;return{left:t.centerX-t.width/2,top:t.centerY-t.height/2,width:e,height:n}}},{key:"containsPoint",value:function containsPoint(t,e){return this.getMinBoundingBox().containsPoint([t,e])}},{key:"destory",value:function destory(){this.trigger(V,null,{component:this}),this.purgeEvents(),this.ice=null,this.ctx=null,this.root=null,this.evtBus=null,this.parentNode=null}}]);var Hi,n=ICEComponent;function ICEComponent(){var t,e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEComponent),_defineProperty$1(_assertThisInitialized(t=Hi.call(this)),"__dirty",!0),_defineProperty$1(_assertThisInitialized(t),"props",{id:"ICE_"+function uuid(){if(_.crypto)return _.crypto.randomUUID();var n=Date.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=(n+16*Math.random())%16|0;return n=Math.floor(n/16),("x"==t?e:3&e|8).toString(16)})}(),left:0,top:0,width:0,height:0,style:{fillStyle:"red",strokeStyle:"blue",lineWidth:1},fill:!0,stroke:!0,animations:{},transform:{translate:[0,0],scale:[1,1],skew:[0,0],rotate:0},linearMatrix:[],composedMatrix:[],origin:"localCenter",localOrigin:[0,0],absoluteOrigin:[0,0],zIndex:ICEComponent.instanceCounter++,display:!0,draggable:!0,transformable:!0,interactive:!0,linkable:!0,showMinBoundingBox:!1,showMaxBoundingBox:!1}),_defineProperty$1(_assertThisInitialized(t),"state",{}),t.props=un(t.props,e),t.state=Z2(t.props),t.root=_,t.initEvents(),t}_defineProperty$1(n,"instanceCounter",0);_inherits(ICEPath,n),Xi=_createSuper(ICEPath),_createClass(ICEPath,[{key:"doRender",value:function doRender(){this.dirty&&(this.ctx.beginPath(),this.createPathObject()),this.state.closePath&&this.path2D.closePath(),this.state.fill&&this.ctx.fill(this.path2D),this.state.stroke&&this.ctx.stroke(this.path2D),_get(_getPrototypeOf(ICEPath.prototype),"doRender",this).call(this)}}]);var Vi,Ui,qi,Xi,p=ICEPath,u=(_inherits(ICERect,p),qi=_createSuper(ICERect),_createClass(ICERect,[{key:"createPathObject",value:function createPathObject(){return this.path2D=new Path2D,this.path2D.rect(0-this.state.localOrigin[0],0-this.state.localOrigin[1],this.state.width,this.state.height),this.path2D}}]),ICERect),Rt=(_inherits(ICEGroup,u),Ui=_createSuper(ICEGroup),_createClass(ICEGroup,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ICEGroup.prototype),"initEvents",this).call(this),this.once(H,this.afterAddHandler,this)}},{key:"afterAddHandler",value:function afterAddHandler(){for(var t=0;t<this.childNodes.length;t++){var e=this.childNodes[t];this.syncChildEvents(e)}}},{key:"syncChildEvents",value:function syncChildEvents(t){t.trigger(N),t.ice=this.ice,t.ctx=this.ice.ctx,t.evtBus=this.ice.evtBus,t.trigger(H)}},{key:"addChild",value:function addChild(t){var e=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];-1===this.childNodes.indexOf(t)&&((t.parentNode=this).childNodes.push(t),this.dirty=e,this.ice&&(this.syncChildEvents(t),this.ice.dirty=e))}},{key:"addChildren",value:function addChildren(t){for(var e=0;e<t.length;e++){var n=t[e];this.addChild(n,!1)}this.dirty=!0,this.ice&&(this.ice.dirty=!0)}},{key:"removeChild",value:function removeChild(t){var e=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];t.destory(),this.childNodes.splice(this.childNodes.indexOf(t),1),this.dirty=e,this.ice&&(this.ice.dirty=e)}},{key:"removeChildren",value:function removeChildren(t){for(var e=0;e<t.length;e++){var n=t[e];this.removeChild(n,!1)}this.dirty=!0,this.ice&&(this.ice.dirty=!0)}},{key:"setState",value:function setState(t){un(this.state,t),this.dirty=!0,function setRecursively(t){if(t.dirty=!0,t.childNodes&&t.childNodes.length)for(var e=0;e<t.childNodes.length;e++)setRecursively(t.childNodes[e])}(this),this.ice&&(this.ice.dirty=!0)}},{key:"destory",value:function destory(){this.removeChildren(this.childNodes),_get(_getPrototypeOf(ICEGroup.prototype),"destory",this).call(this)}}]),ICEGroup),c=(_inherits(ICEControlPanel,Rt),Vi=_createSuper(ICEControlPanel),_createClass(ICEControlPanel,[{key:"doRender",value:function doRender(){_get(_getPrototypeOf(ICEControlPanel.prototype),"doRender",this).call(this),this.updateControlPositions()}},{key:"moveGlobalPosition",value:function moveGlobalPosition(t,e,n){_get(_getPrototypeOf(ICEControlPanel.prototype),"moveGlobalPosition",this).call(this,t,e,n),this._targetComponent&&this._targetComponent.moveGlobalPosition(t,e,n)}}]),ICEControlPanel);function ICEControlPanel(t){return _classCallCheck(this,ICEControlPanel),_defineProperty$1(_assertThisInitialized(t=Vi.call(this,_objectSpread2(_objectSpread2({},t),{},{linkable:!1}))),"isControlPanel",!0),t}function ICEGroup(t){return _classCallCheck(this,ICEGroup),_defineProperty$1(_assertThisInitialized(t=Ui.call(this,t)),"parentNode",null),_defineProperty$1(_assertThisInitialized(t),"childNodes",[]),t}function ICERect(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICERect),qi.call(this,_objectSpread2({width:10,height:10},t))}function ICEPath(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEPath),_defineProperty$1(_assertThisInitialized(t=Xi.call(this,_objectSpread2({closePath:!0},t))),"path2D",new Path2D),t}function td(t){return null==t}_inherits(ICEEllipse,p),Fi=_createSuper(ICEEllipse),_createClass(ICEEllipse,[{key:"createPathObject",value:function createPathObject(){return this.path2D=new Path2D,this.path2D.ellipse(this.state.radiusX-this.state.localOrigin[0],this.state.radiusY-this.state.localOrigin[1],this.state.radiusX,this.state.radiusY,this.state.rotation,this.state.startAngle,this.state.endAngle,this.state.counterclockwise),this.path2D.closePath(),this.path2D}},{key:"setState",value:function setState(t){td(t.radiusX)?td(t.width)||(t.radiusX=t.width/2):t.width=2*t.radiusX,td(t.radiusY)?td(t.height)||(t.radiusY=t.height/2):t.height=2*t.radiusY,_get(_getPrototypeOf(ICEEllipse.prototype),"setState",this).call(this,t)}}]);var Ji,$i,Wi,Fi,l=ICEEllipse,b=(_inherits(ICECircle,l),Wi=_createSuper(ICECircle),_createClass(ICECircle)),Gi=(_inherits(ICELinkHook,b),$i=_createSuper(ICELinkHook),_createClass(ICELinkHook,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ICELinkHook.prototype),"initEvents",this).call(this),this.on("mousedown",this.mosueDownHandler,this),this.on("mousemove",this.mosueMoveHandler,this),this.on("mouseup",this.mosueUpHandler,this),this.on(a,this.resizeEvtHandler,this)}},{key:"keyboardEvtHandler",value:function keyboardEvtHandler(t){}},{key:"mosueDownHandler",value:function mosueDownHandler(t){this.evtBus.trigger("HOOK_MOUSEDOWN",new E({target:this}))}},{key:"mosueMoveHandler",value:function mosueMoveHandler(t){this.evtBus.trigger(X,new E({target:this}))}},{key:"mosueUpHandler",value:function mosueUpHandler(t){this.evtBus.trigger(J,new E({target:this}))}},{key:"resizeEvtHandler",value:function resizeEvtHandler(t){var e;this.parentNode&&(e=this.props.position,this.parentNode.trigger($,new E(t,{position:e})),this.parentNode.trigger(h,new E(t,{position:e})))}}]),ICELinkHook),Ki=(_inherits(LineControlPanel,c),Ji=_createSuper(LineControlPanel),_createClass(LineControlPanel,[{key:"initControls",value:function initControls(){var t=this.state.width,e=this.state.height,n=this.controlSize/2;this.startControl=new Gi({zIndex:10001001,display:!1,left:-n,top:-n,width:this.controlSize,height:this.controlSize,style:{strokeStyle:"#0c09d4",fillStyle:"#3ce92c",lineWidth:1},position:"start"}),this.addChild(this.startControl),this.endControl=new Gi({zIndex:10001002,display:!1,left:t-n,top:e-n,width:this.controlSize,height:this.controlSize,style:{strokeStyle:"#0c09d4",fillStyle:"#3ce92c",lineWidth:1},position:"end"}),this.addChild(this.endControl)}},{key:"initEvents",value:function initEvents(){this.on(h,this.resizeEvtHandler,this)}},{key:"enable",value:function enable(){this.setState({display:!0}),this.resume(h),this.showHooks()}},{key:"disable",value:function disable(){this.setState({display:!1}),this.suspend(h),this.hideHooks()}},{key:"updateControlPositions",value:function updateControlPositions(){}},{key:"resizeEvtHandler",value:function resizeEvtHandler(t){if(this.targetComponent){var e=t.position,n=t.movementX,i=t.movementY,t=this.targetComponent.state,s=t.points.length,o=t.points[0][0],r=t.points[0][1],a=t.points[s-1][0],l=t.points[s-1][1],s=transformMat2d([],[n,i],invert([],t.absoluteLinearMatrix)),n=s[0],i=s[1];switch(e){case"start":o+=n,r+=i;break;case"end":a+=n,l+=i}this.targetComponent.setState({startPoint:[o,r],endPoint:[a,l]})}}},{key:"updatePosition",value:function updatePosition(){var t,e,n;this.targetComponent&&(this.setState({left:0,top:-5,width:3,height:3,transform:{translate:[0,0],scale:[1,1],skew:[0,0],rotate:0}}),t=this.controlSize/2,n=this.targetComponent.state.points.length,e=this.targetComponent.state.points[0],n=this.targetComponent.state.points[n-1],e=[e[0],e[1]],n=[n[0],n[1]],this.startControl.setState({left:e[0]-t,top:e[1]-t}),this.endControl.setState({left:n[0]-t,top:n[1]-t}))}},{key:"targetComponent",get:function get(){return this._targetComponent},set:function set(t){var e=this;this._targetComponent&&this._targetComponent.off(a,this.updatePosition,this),this._targetComponent=t,this._targetComponent&&this._targetComponent.on(a,this.updatePosition,this),this._targetComponent&&this._targetComponent.once(V,function(){e.targetComponent=null,e.disable()},this),this.updatePosition()}},{key:"showHooks",value:function showHooks(){this.startControl.setState({display:!0}),this.endControl.setState({display:!0})}},{key:"hideHooks",value:function hideHooks(){this.startControl.setState({display:!1}),this.endControl.setState({display:!1})}}]),LineControlPanel),Qi=/\s/;function LineControlPanel(t){return _classCallCheck(this,LineControlPanel),_defineProperty$1(_assertThisInitialized(t=Ji.call(this,_objectSpread2(_objectSpread2({},t),{},{zIndex:10001e3,linkable:!1,showMinBoundingBox:!1,showMaxBoundingBox:!1}))),"controlSize",16),t.initControls(),t}function ICELinkHook(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICELinkHook),$i.call(this,_objectSpread2({linkable:!1},t))}function ICECircle(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=(_classCallCheck(this,ICECircle),_objectSpread2({radius:10},t));return t.radiusX=t.radius,t.radiusY=t.radius,Wi.call(this,t)}function ICEEllipse(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=(_classCallCheck(this,ICEEllipse),_objectSpread2({radiusX:20,radiusY:10,rotation:0,startAngle:0,endAngle:2*Math.PI,counterclockwise:!0},t));return t.width=2*t.radiusX,t.height=2*t.radiusY,Fi.call(this,t)}function Dd(t){return"symbol"==typeof t||ys(t)&&"[object Symbol]"==fs(t)}function Ed(t){return t&&t.slice(0,ds(t)+1).replace(ps,"")}function Ld(t){if("number"==typeof t)return t;if(gs(t))return NaN;if(vs(t)&&(e="function"==typeof t.valueOf?t.valueOf():t,t=vs(e)?e+"":e),"string"!=typeof t)return 0===t?t:+t;t=Ed(t);var e=ms.test(t);return e||bs.test(t)?ks(t.slice(2),e?2:8):Cs.test(t)?NaN:+t}function Nd(t){return t?(t=_s(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function Ud(t){if("string"==typeof t)return t;if(Ps(t))return Es(t,Ud)+"";if(xs(t))return ws?ws.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function Xd(t){return null==t?"":Ud(t)}var Zi,Yi,ts,es,ns,is,ss,os,rs,as,ls,hs,cs,us,ds=function trimmedEndIndex$1(t){for(var e=t.length;e--&&Qi.test(t.charAt(e)););return e},ps=/^\s+/,fs=t,ys=v,vs=la,gs=Dd,Cs=/^[-+]0x[0-9a-f]+$/i,ms=/^0b[01]+$/i,bs=/^0o[0-7]+$/i,ks=parseInt,_s=Ld,Es=function arrayMap$1(t,e){for(var n=-1,i=null==t?0:t.length,s=Array(i);++n<i;)s[n]=e(t[n],n,t);return s},Ps=o,xs=Dd,C=s?s.prototype:void 0,ws=C?C.toString:void 0,Ss=function toInteger$1(t){var t=Nd(t),e=t%1;return t==t?e?t-e:t:0},Is=Ld,Os=i.isFinite,Ms=Math.min,js=function createRound$1(t){var s=Math[t];return function(t,e){var n,i;return t=Is(t),(e=null==e?0:Ms(Ss(e),292))&&Os(t)?(n=(Xd(t)+"e").split("e"),i=s(n[0]+"e"+(+n[1]+e)),+((n=(Xd(i)+"e").split("e"))[0]+"e"+(+n[1]-e))):s(t)}}("round"),As=(_inherits(ResizeControl,u),us=_createSuper(ResizeControl),_createClass(ResizeControl,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ResizeControl.prototype),"initEvents",this).call(this),this.on(a,this.resizeEvtHandler,this)}},{key:"resizeEvtHandler",value:function resizeEvtHandler(t){if(this.parentNode){var e=t.quadrant,n=t.movementX,i=t.movementY,s=this.parentNode.state,o=s.left,r=s.top,a=s.width,l=s.height,s=transformMat2d([],[n,i],invert([],s.absoluteLinearMatrix)),n=s[0],i=s[1];switch(e){case 1:o-=n,r+=i,a+=2*n,l-=2*i;break;case 2:o+=n,r+=i,a-=2*n,l-=2*i;break;case 3:o+=n,r-=i,a-=2*n,l+=2*i;break;case 4:o-=n,r-=i,a+=2*n,l+=2*i;break;case 5:r+=i,l-=2*i;break;case 6:r-=i,l+=2*i;break;case 7:o+=n,a-=2*n;break;case 8:o-=n,a+=2*n}s={top:r,left:o,width:Math.abs(a),height:Math.abs(l)};this.parentNode.trigger($,new E(t,{quadrant:e})),this.parentNode.setState(s),this.parentNode.trigger(h,new E(t,{quadrant:e}))}}},{key:"moveGlobalPosition",value:function moveGlobalPosition(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:new E,i=0<t?1:-1,s=0<e?1:-1,o=this.parentNode.state,r=o.localOrigin,a=o.width,l=o.height,o=transformMat2d([],[t,e],invert([],o.absoluteLinearMatrix)),o=(t=o[0],e=o[1],this.state),h=o.left,c=o.top,o=o.quadrant,u=this.state.width/2,d=0;"x"===this.state.direction?d=0<(h=0===js(h+=t)?.5*i:h)+u-r[0]?8:7:"y"===this.state.direction?d=0<(c=0===js(c+=e)?.5*s:c)+u-r[1]?6:5:"xy"===this.state.direction&&(s=-l/2/(s=0===js(s=-a/2)?.5*i:s),0===js(a=a/2)&&(a=.5*i),c+=e=2===o||4==o?s*(h+u-r[0]+t)-(c+u-r[1]):-l/2/a*(h+u-r[0]+t)-(c+u-r[1]),d=0<(h+=t)+u-r[0]?0<c+u-r[1]?4:1:0<c+u-r[1]?3:2),o!==d&&this.parentNode.toggleControlQuadrant(this,d),this.setPosition(h,c,new E(n,{left:h,top:c,tx:t,ty:e,quadrant:d}))}}]),ResizeControl),Bs=(_inherits(RotateControl,b),cs=_createSuper(RotateControl),_createClass(RotateControl,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(RotateControl.prototype),"initEvents",this).call(this),this.on(a,this.rotateEvtHandler,this)}},{key:"rotateEvtHandler",value:function rotateEvtHandler(t){var e;this.parentNode&&(e=this.parentNode.state.absoluteOrigin,t={transform:{rotate:Ni.calcRotateAngle(t.offsetX,t.offsetY,e[0],e[1])+90}},this.parentNode.trigger("BEFORE_ROTATE",new E(t)),this.parentNode.setState(t),this.parentNode.trigger(F,new E(t)))}}]),RotateControl),Ls=(_inherits(TransformControlPanel,c),hs=_createSuper(TransformControlPanel),_createClass(TransformControlPanel,[{key:"initControls",value:function initControls(){var t=this.state.width,e=this.state.height,n=t/2,i=e/2,s=this.resizeControlSize/2,o=[{direction:"xy",quadrant:2,position:[-s,-s]},{direction:"y",quadrant:5,position:[n-s,-s]},{direction:"xy",quadrant:1,position:[t-s,-s]},{direction:"x",quadrant:8,position:[t-s,i-s]},{direction:"xy",quadrant:4,position:[t-s,e-s]},{direction:"y",quadrant:6,position:[n-s,e-s]},{direction:"xy",quadrant:3,position:[-s,e-s]},{direction:"x",quadrant:7,position:[-s,i-s]}];this.resizeControlInstanceCache=[];for(var r=0;r<o.length;r++){var a=o[r],a=new As({zIndex:10000002,display:!1,left:a.position[0],top:a.position[1],width:this.resizeControlSize,height:this.resizeControlSize,style:{strokeStyle:"#8b0000",fillStyle:"#CC3300",lineWidth:1},direction:a.direction,quadrant:a.quadrant});this.addChild(a),this.resizeControlInstanceCache.push(a)}t=this.state.width/2-this.rotateControlSize,n=-this.rotateControlffsetY;this.rotateControlInstance=new Bs({zIndex:10000003,display:!1,left:t,top:n,radius:this.rotateControlSize,style:{strokeStyle:"#8b0000",fillStyle:"#CC3300",lineWidth:1}}),this.addChild(this.rotateControlInstance)}},{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(TransformControlPanel.prototype),"initEvents",this).call(this),this.on(h,this.resizeEvtHandler,this),this.on(F,this.rotateEvtHandler,this),this.on("keydown",this.keyboardEvtHandler,this),this.on("keyup",this.keyboardEvtHandler,this)}},{key:"enable",value:function enable(){this.rotateControlInstance.setState({display:!0});for(var t=0;t<this.resizeControlInstanceCache.length;t++)this.resizeControlInstanceCache[t].setState({display:!0});this.setState({display:!0}),this.resume(h),this.resume(F),this.resume("keydown"),this.resume("keyup")}},{key:"disable",value:function disable(){this.rotateControlInstance.setState({display:!1});for(var t=0;t<this.resizeControlInstanceCache.length;t++)this.resizeControlInstanceCache[t].setState({display:!1});this.setState({display:!1}),this.suspend(h),this.suspend(F),this.suspend("keydown"),this.suspend("keyup")}},{key:"keyboardEvtHandler",value:function keyboardEvtHandler(t){this.targetComponent&&this.targetComponent.trigger(t.type,t,{component:this.targetComponent})}},{key:"rotateEvtHandler",value:function rotateEvtHandler(t){var e;this.targetComponent&&(e=this.state.transform.rotate,this.targetComponent.setGlobalRotate(e),this.targetComponent.trigger(F))}},{key:"resizeEvtHandler",value:function resizeEvtHandler(t){if(this.targetComponent){var e=t.quadrant,n=t.movementX,i=t.movementY,t=this.targetComponent.state,s=t.left,o=t.top,r=t.width,a=t.height,t=transformMat2d([],[n,i],invert([],t.absoluteLinearMatrix)),n=t[0],i=t[1];switch(e){case 1:s-=n,o+=i,r+=2*n,a-=2*i;break;case 2:s+=n,o+=i,r-=2*n,a-=2*i;break;case 3:s+=n,o-=i,r-=2*n,a+=2*i;break;case 4:s-=n,o-=i,r+=2*n,a+=2*i;break;case 5:o+=i,a-=2*i;break;case 6:o-=i,a+=2*i;break;case 7:s+=n,r-=2*n;break;case 8:s-=n,r+=2*n}this.targetComponent.setState({left:s,top:o,width:Math.abs(r),height:Math.abs(a)}),this.targetComponent.trigger(h)}}},{key:"updateControlPositions",value:function updateControlPositions(){for(var t=this.state.width,e=this.state.height,n=t/2,i=e/2,s=this.resizeControlSize/2,o=0;o<this.resizeControlInstanceCache.length;o++){var r=this.resizeControlInstanceCache[o],a=[0,0];switch(r.state.quadrant){case 1:a=[t-s,-s];break;case 2:a=[-s,-s];break;case 3:a=[-s,e-s];break;case 4:a=[t-s,e-s];break;case 5:a=[n-s,-s];break;case 6:a=[n-s,e-s];break;case 7:a=[-s,i-s];break;case 8:a=[t-s,i-s]}r.setState({left:a[0],top:a[1]})}var l=this.state.width/2-this.rotateControlSize,h=-this.rotateControlffsetY;this.rotateControlInstance.setState({left:l,top:h})}},{key:"updatePanel",value:function updatePanel(){var t,e,n,i,s;this.targetComponent&&(t=this.targetComponent.getRotateAngle(),e=(s=this.targetComponent.getLocalLeftTop()).left,n=s.top,i=s.width,s=s.height,this.setState({left:e,top:n,width:i,height:s,transform:{rotate:t}}))}},{key:"targetComponent",get:function get(){return this._targetComponent},set:function set(t){var e=this;this._targetComponent&&this._targetComponent.off(a,this.updatePanel,this),this._targetComponent=t,this._targetComponent&&this._targetComponent.on(a,this.updatePanel,this),this._targetComponent&&this._targetComponent.once(V,function(){e.targetComponent=null,e.disable()},this),this.updatePanel()}},{key:"toggleControlQuadrant",value:function toggleControlQuadrant(t,e){for(var n=0;n<this.resizeControlInstanceCache.length;n++){var i=this.resizeControlInstanceCache[n];if(i.state.quadrant===e){var s=0;switch(e){case 1:s=3;break;case 2:s=4;break;case 3:s=1;break;case 4:s=2;break;case 5:s=6;break;case 6:s=5;break;case 7:s=8;break;case 8:s=7}i.setState({quadrant:s})}}t.setState({quadrant:e})}}]),TransformControlPanel),Ts=(_createClass(ICEControlPanelManager,[{key:"start",value:function start(){return this.ice.evtBus.on("mousedown",this.mouseDownHandler,this),this}},{key:"stop",value:function stop(){return this.ice.evtBus.off("mousedown",this.mouseDownHandler,this),this}},{key:"mouseDownHandler",value:function mouseDownHandler(t){t=t.target;if(!t.ice||!t.state.interactive||!t.state.transformable)return this.lineControlPanel.disable(),void this.transformControlPanel.disable();t&&(t.isControlPanel||t.parentNode&&t.parentNode.isControlPanel)||(this.ice.selectionList=[t],this.lineControlPanel.disable(),this.transformControlPanel.disable(),t.isLine?(this.lineControlPanel.targetComponent=t,this.lineControlPanel.enable()):(this.transformControlPanel.targetComponent=t,this.transformControlPanel.enable()))}}]),ICEControlPanelManager),Rs=[["mousedown","ICE_MOUSEDOWN"],["mouseup","ICE_MOUSEUP"],["mousemove","ICE_MOUSEMOVE"],["click","ICE_CLICK"],["dblclick","ICE_DBCLICK"],["contextmenu","ICE_CONTEXTMENU"]],Ds=[["keydown","ICE_KEYDOWN"],["keyup","ICE_KEYUP"]],Ns=(_createClass(DOMEventDispatcher,[{key:"start",value:function start(){for(var i=this,s=null,o=[].concat(_toConsumableArray(Rs),_toConsumableArray(Ds)),t=function _loop(t){var t=o[t],e=t[0],n=t[1];i.ice.evtBus.on(n,function(t){i._stopped||((s="ICE_MOUSEMOVE"!==n&&-1===n.indexOf("KEY")?i.findTargetComponent(t):s)&&(t.target=s).trigger(e,t),i.ice.evtBus.trigger(e,t,{component:s}))})},e=0;e<o.length;e++)t(e);return this}},{key:"stopped",get:function get(){return this._stopped},set:function set(t){this._stopped=t}},{key:"findTargetComponent",value:function findTargetComponent(t){if(this._stopped)return null;var e=t.offsetX,n=t.offsetY,t=flattenTree([],this.ice.childNodes),i=flattenTree([],this.ice.toolNodes),s=[].concat(_toConsumableArray(t),_toConsumableArray(i));s.sort(function(t,e){return t.state.zIndex-e.state.zIndex});for(var o=0;o<s.length;o++){var r=s[o],a=r.state,l=a.interactive,a=a.display;r.containsPoint(e,n)&&l&&a&&this.selectionCandidates.push(r)}t=this.selectionCandidates.pop();return this.selectionCandidates=[],t}}]),DOMEventDispatcher),zs={evtBuses:[],start:function start(){if(_&&_.addEventListener)for(var t=function _loop(t){for(var n=zs.evtBuses[t],i=[].concat(_toConsumableArray(Rs),_toConsumableArray(Ds)),e=function _loop2(t){var e=i[t];_.addEventListener(e[0],function(t){n.trigger(e[1],t)})},s=0;s<i.length;s++)e(s)},e=0;e<zs.evtBuses.length;e++)t(e)},regitserEvtBus:function regitserEvtBus(t){zs.evtBuses.includes(t)||zs.evtBuses.push(t)},delEvtBus:function delEvtBus(t){zs.evtBuses.includes(t)&&zs.evtBuses.splice(zs.evtBuses.indexOf(t),1)}},Hs=(_inherits(EventBus,d),ls=_createSuper(EventBus),_createClass(EventBus)),Vs=(_createClass(GeoLine,[{key:"contains",value:function contains(t,e){var n=Math.hypot(this.endPoint.x-this.startPoint.x,this.endPoint.y-this.startPoint.y),i=Math.hypot(t-this.startPoint.x,e-this.startPoint.y),t=Math.hypot(t-this.endPoint.x,e-this.endPoint.y);return n-3<=i+t&&i+t<=n+3}}]),GeoLine),j=(_createClass(GeoPoint,[{key:"equals",value:function equals(t){return this.x==t.x&&this.y==t.y}},{key:"clone",value:function clone(){return new GeoPoint(this.x,this.y)}}],[{key:"load",value:function load(t){return new GeoPoint(Number(t.x),Number(t.y))}},{key:"cloneArray",value:function cloneArray(t){for(var e=[],n=0;n<t.length;n++)e.push(t[n].clone());return e}}]),GeoPoint),y=(_inherits(ICEDotPath,p),as=_createSuper(ICEDotPath),_createClass(ICEDotPath,[{key:"calcComponentParams",value:function calcComponentParams(){if(!this.dirty)return{width:this.state.width,height:this.state.height};this.calcDots();var t=this.calc4VertexPoints(),e=Math.abs(t[1][0]-t[0][0]),t=Math.abs(t[2][1]-t[0][1]);return this.state.width=e,this.state.height=t,{width:this.state.width,height:this.state.height}}},{key:"calcLocalOrigin",value:function calcLocalOrigin(){for(var t=_get(_getPrototypeOf(ICEDotPath.prototype),"calcLocalOrigin",this).call(this),e=0;e<this.state.dots.length;e++){var n=transformMat2d([],this.state.dots[e],[1,0,0,1,-t[0],-t[1]]);this.state.dots[e]=n}return t}},{key:"createPathObject",value:function createPathObject(){this.path2D=new Path2D,this.path2D.moveTo(this.state.dots[0][0],this.state.dots[0][1]);for(var t=1;t<this.state.dots.length;t++){var e=this.state.dots[t];this.path2D.lineTo(e[0],e[1])}return this.path2D}},{key:"calcDots",value:function calcDots(){return this.state.dots=[],this.state.dots}},{key:"calc4VertexPoints",value:function calc4VertexPoints(){for(var t=this.state.dots[0][0],e=this.state.dots[0][1],n=this.state.dots[0][0],i=this.state.dots[0][1],s=1;s<this.state.dots.length;s++){var o=this.state.dots[s];o[0]<t&&(t=o[0]),o[0]>n&&(n=o[0]),o[1]<e&&(e=o[1]),o[1]>i&&(i=o[1])}return[[t,e],[n,e],[t,i],[n,i]]}},{key:"getTransformedDots",value:function getTransformedDots(){for(var t=this.state.composedMatrix,e=this.state.dots,n=[],i=0;i<e.length;i++){var s=transformMat2d([],e[i],t);n.push(s)}return n}}]),ICEDotPath),f=(_inherits(ICEImage,n),rs=_createSuper(ICEImage),_createClass(ICEImage,[{key:"doRender",value:function doRender(){var t,e;this.state.src&&(t=(e=this.ice.imageCache.setImage(this.state.src)).loaded,e=e.image,t&&this.ctx.drawImage(e,0-this.state.localOrigin[0],0-this.state.localOrigin[1],this.state.width,this.state.height)),_get(_getPrototypeOf(ICEImage.prototype),"doRender",this).call(this)}}]),ICEImage),g=_createClass(function ICEBezier(){_classCallCheck(this,ICEBezier)}),Us=(_inherits(ICELinkSlot,b),os=_createSuper(ICELinkSlot),_createClass(ICELinkSlot,[{key:"keyboardEvtHandler",value:function keyboardEvtHandler(t){}},{key:"destory",value:function destory(){this.hostComponent=null,_get(_getPrototypeOf(ICELinkSlot.prototype),"destory",this).call(this)}},{key:"updatePosition",value:function updatePosition(){var t=this._hostComponent.getMinBoundingBox(),e=0,n=0;switch(this.state.position){case"T":e=t.tc[0]-this.state.radius,n=t.tc[1]-this.state.radius;break;case"R":e=t.rc[0]-this.state.radius,n=t.rc[1]-this.state.radius;break;case"B":e=t.bc[0]-this.state.radius,n=t.bc[1]-this.state.radius;break;case"L":e=t.lc[0]-this.state.radius,n=t.lc[1]-this.state.radius}this.setState({left:e,top:n})}},{key:"hostComponent",get:function get(){return this._hostComponent},set:function set(t){var e=this;this._hostComponent&&this._hostComponent.off(D,this.updatePosition,this),this._hostComponent=t,this._hostComponent&&this._hostComponent.on(D,this.updatePosition,this),this._hostComponent&&this._hostComponent.once(V,function(){e._hostComponent=null,e.setState({display:!1})},this),this._hostComponent&&this.setState({display:!0})}}]),ICELinkSlot),o=(_inherits(ICEPolyLine,y),ss=_createSuper(ICEPolyLine),_createClass(ICEPolyLine,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ICEPolyLine.prototype),"initEvents",this).call(this),this.once(H,this.afterAddHandler,this)}},{key:"afterAddHandler",value:function afterAddHandler(t){this.evtBus.once(q,this.syncConnections,this)}},{key:"syncConnections",value:function syncConnections(){this.removeLink("start"),this.removeLink("end");var t=this.state.links;t&&(t.start&&t.start.id&&t.start.position&&this.createLink(t.start.id,t.start.position),t.end&&t.end.id&&t.end.position&&this.createLink(t.end.id,t.end.position)),this.dirty=!0,this.ice.dirty=!0}},{key:"createLink",value:function createLink(t,e){t=this.ice.findComponent(t);t&&t.on(a,this.followComponent,this),t&&t.on(h,this.followComponent,this),t&&t.on(F,this.followComponent,this),t&&t.once(D,this.followComponent,this),t&&this.followComponent(),this.state.draggable=!1}},{key:"removeLink",value:function removeLink(t,e,n){var i;this.state.links&&this.state.links[t]&&(i=this.state.links[t].id,t=this.state.links[t].position,n=n||t,i===(e=e||i)&&t===n&&((e=this.ice.findComponent(i))&&e.off(a,this.followComponent,this),e&&e.off(h,this.followComponent,this),e&&e.off(F,this.followComponent,this)),t=!0,this.state.links.start&&this.state.links.start.id&&(t=!1),this.state.links.end&&this.state.links.end.id&&(t=!1),this.state.draggable=t)}},{key:"getLinkFromId",value:function getLinkFromId(){return this.state.links.start.id}},{key:"getLinkToId",value:function getLinkToId(){return this.state.links.end.id}},{key:"followComponent",value:function followComponent(t){for(var e in this.state.links)if(this.state.links[e]&&this.state.links[e].id&&this.state.links[e].position){var n=this.state.links[e].id,i=this.state.links[e].position,n=this.ice.findComponent(n);if(n){var s=n.getMinBoundingBox(),o=[0,0];switch(i){case"T":o=s.tc;break;case"R":o=s.rc;break;case"B":o=s.bc;break;case"L":o=s.lc}switch(e){case"start":this.setState({startPoint:_toConsumableArray(o)});break;case"end":this.setState({endPoint:_toConsumableArray(o)})}}}}},{key:"calcLocalOrigin",value:function calcLocalOrigin(){var t=[0,0];return this.state.localOrigin=t}},{key:"calcDots",value:function calcDots(){var t=this.state.left,e=this.state.top;this.state.dots=[];for(var n=0;n<this.state.points.length;n++){var i=this.state.points[n],s=i[0]-t,i=i[1]-e;this.state.dots.push([s,i])}return this.calcArrowPoints(),this.state.dots}},{key:"calcArrowPoints",value:function calcArrowPoints(){var t,e,n;"start"!==this.state.arrow&&"both"!==this.state.arrow||(n=_toConsumableArray(this.state.dots[0]),e=[_toConsumableArray(this.state.dots[0]),_toConsumableArray(this.state.dots[1])],e=this.doCalcArrowPoints(e),(t=this.state.dots).unshift.apply(t,_toConsumableArray(e)),this.state.dots.unshift(_toConsumableArray(n))),"end"!==this.state.arrow&&"both"!==this.state.arrow||(t=this.state.dots.length,e=_toConsumableArray(this.state.dots[t-1]),n=[_toConsumableArray(this.state.dots[t-1]),_toConsumableArray(this.state.dots[t-2])],n=this.doCalcArrowPoints(n),(t=this.state.dots).push.apply(t,_toConsumableArray(n)),this.state.dots.push(_toConsumableArray(e)))}},{key:"doCalcArrowPoints",value:function doCalcArrowPoints(t){var e=t[0],t=t[1],n=(t[0]=t[0]-e[0],t[1]=t[1]-e[1],t[0]/Math.hypot.apply(Math,_toConsumableArray(t))),t=t[1]/Math.hypot.apply(Math,_toConsumableArray(t)),i=Math.cos(this.state.arrowAngel),s=Math.sin(this.state.arrowAngel),o=this.state.arrowLength*(n*i-t*s),r=this.state.arrowLength*(t*i+n*s),a=this.state.arrowLength*(n*i+t*s),t=this.state.arrowLength*(t*i-n*s);return[[o+=e[0],r+=e[1]],[a+=e[0],t+=e[1]]]}},{key:"addDot",value:function addDot(t,e){this.state.points.splice(e,0,t),this.state.dots.splice(e,0,[t[0],t[1]])}},{key:"rmDot",value:function rmDot(t){return!(this.state.points.length<3||(this.state.points.splice(t,1),this.state.dots.splice(t,1),0))}},{key:"calcComponentParams",value:function calcComponentParams(){if(!this.dirty)return{width:this.state.width,height:this.state.height};this.calcDots();var t=this.calc4VertexPoints(),e=Math.abs(t[1][0]-t[0][0]),n=this.state.style.lineWidth;return this.isDotsOnSameLine()||(n=Math.abs(t[2][1]-t[0][1])),this.state.width=e,this.state.height=n,{width:this.state.width,height:this.state.height}}},{key:"isDotsOnSameLine",value:function isDotsOnSameLine(){for(var t,e=this.state.points.length,n=js(this.state.points[0][0],2),i=js(this.state.points[0][1],2),s=0,o=[js(this.state.points[e-1][0],2)-n,js(this.state.points[e-1][1],2)-i],r=0;r<e;r++){var a=this.state.points[r],a=[a[0]-n,a[1]-i];0===(a=o[0]*a[1]-o[1]*a[0],(t=[])[0]=t[1]=0,t[2]=a,t[2])&&s++}return s===e}},{key:"calc4VertexPoints",value:function calc4VertexPoints(){return this.isDotsOnSameLine()?this.splitEndpointsTo4Points():_get(_getPrototypeOf(ICEPolyLine.prototype),"calc4VertexPoints",this).call(this)}},{key:"splitEndpointsTo4Points",value:function splitEndpointsTo4Points(){var t=this.state.points.length,e=this.state.points[t-1][0]-this.state.points[0][0],t=this.state.points[t-1][1]-this.state.points[0][1],n=this.getRotateAngle(),i=this.state.height,s=Math.cos(n*Math.PI/180)*i/2,n=Math.sin(n*Math.PI/180)*i/2;return[[0+(s=js(s,3)),0+(n=js(n,3))],[0-s,0-n],[e+s,t+n],[e-s,t-n]]}},{key:"getMinBoundingBox",value:function getMinBoundingBox(){var t=this.state.localOrigin[0],e=this.state.localOrigin[1],n=this.calc4VertexPoints(),t=new zi([n[0][0]-t,n[0][1]-e,n[1][0]-t,n[1][1]-e,n[2][0]-t,n[2][1]-e,n[3][0]-t,n[3][1]-e,0,0]);return t.transform(this.state.composedMatrix)}},{key:"setState",value:function setState(t){if(td(t.width)||delete t.width,td(t.height)||delete t.height,td(t.transform)||delete t.transform,!td(t.left))for(var e=t.left-this.state.points[0][0],n=0;n<this.state.points.length;n++)this.state.points[n][0]+=e;if(!td(t.top))for(var i=t.top-this.state.points[0][1],s=0;s<this.state.points.length;s++)this.state.points[s][1]+=i;var o;td(t.startPoint)||(this.state.points[0]=_toConsumableArray(t.startPoint),this.state.left=this.state.points[0][0],this.state.top=this.state.points[0][1]),td(t.endPoint)||(o=this.state.points.length,this.state.points[o-1]=_toConsumableArray(t.endPoint)),td(t.links)||(un(this.state.links,t.links),this.syncConnections()),_get(_getPrototypeOf(ICEPolyLine.prototype),"setState",this).call(this,t)}},{key:"getRotateAngle",value:function getRotateAngle(){var t,e;return this.isDotsOnSameLine()?(e=this.state.points.length,t=this.state.points[e-1][0]-this.state.points[0][0],e=this.state.points[e-1][1]-this.state.points[0][1],Ni.calcRotateAngle(t,e,0,0)+90):_get(_getPrototypeOf(ICEPolyLine.prototype),"getRotateAngle",this).call(this)}},{key:"containsPoint",value:function containsPoint(t,e){for(var n=this.getLines(),i=0;i<n.length;i++){var s=n[i],o=s.o[0],r=s.o[1],a=s.d[0],s=s.d[1],l=Math.hypot(a-o,s-r),o=Math.hypot(o-t,r-e),r=Math.hypot(a-t,s-e);if(l-3<=o+r&&o+r<=l+3)return!0}return!1}},{key:"getLines",value:function getLines(){var t=[],e=this.getTransformedDots();if(!e||e.length<2)return t;for(var n=0;n<e.length-1;n++){var i={o:[e[n][0],e[n][1]],d:[e[n+1][0],e[n+1][1]]};t.push(i)}return t}},{key:"destory",value:function destory(){this.removeLink("start"),this.removeLink("end"),_get(_getPrototypeOf(ICEPolyLine.prototype),"destory",this).call(this)}}],[{key:"arrangeParam",value:function arrangeParam(t){var e=un({},{lineType:"solid",lineWidth:1,arrow:"none",arrowLength:15,arrowAngel:30*pn,points:[],showMinBoundingBox:!1,showMaxBoundingBox:!1,links:{},style:{lineJoin:"round"}},t,{linkable:!1,closePath:!1,fill:!1}),n=e.points.length;return n<2&&(0===n?(e.points.push([0,0]),e.points.push([10,10])):1===n&&e.points.push([10,10])),(e=_objectSpread2(_objectSpread2({},e),{left:t.points[0][0],top:t.points[0][1],transform:{translate:[0,0],scale:[1,1],skew:[0,0],rotate:0}})).style.lineWidth<1&&(e.style.lineWidth=1),e}}]),ICEPolyLine),s=(_inherits(ICEVisioLink,o),is=_createSuper(ICEVisioLink),_createClass(ICEVisioLink,[{key:"calcDots",value:function calcDots(){var t=this.interpolate(),e=this.state,n=e.left,i=e.top,s=t[0][2];this.state.points=[],this.state.dots=[];for(var o=0;o<s.length;o++){var r=s[o];this.state.points.push([r.x,r.y]),this.state.dots.push([r.x-n,r.y-i])}return this.calcArrowPoints(),this.state.dots}},{key:"interpolate",value:function interpolate(){var t=this.state.points.length,e=this.state.points[0][0],n=this.state.points[0][1],i=this.state.points[t-1][0],t=this.state.points[t-1][1],s=new j(e,n),o=new j(i,t),r=[],a=null,l=null,h=[],c=new zi,u=new zi;if(f=this.ice&&this.state.links&&this.state.links.start&&this.state.links.start.id?this.ice.findComponent(this.state.links.start.id):f){c=f.getMinBoundingBox(),r[0]=new j(s.x,c.tl[1]-this.state.escapeDistance),r[1]=new j(c.tr[0]+this.state.escapeDistance,s.y),r[2]=new j(s.x,c.br[1]+this.state.escapeDistance),r[3]=new j(c.tl[0]-this.state.escapeDistance,s.y);for(var a=r[0],d=1;d<r.length;d++)this.distance(s,r[d])<this.distance(s,a)&&(a=r[d])}if(y=this.ice&&this.state.links&&this.state.links.end&&this.state.links.end.id?this.ice.findComponent(this.state.links.end.id):y){u=y.getMinBoundingBox(),r[0]=new j(o.x,u.tl[1]-this.state.escapeDistance),r[1]=new j(u.tr[0]+this.state.escapeDistance,o.y),r[2]=new j(o.x,u.br[1]+this.state.escapeDistance),r[3]=new j(u.tl[0]-this.state.escapeDistance,o.y);for(var l=r[0],p=1;p<r.length;p++)this.distance(o,r[p])<this.distance(o,l)&&(l=r[p])}var e=0,n=[s],i=(a&&(n.push(a),e=1),l&&n.push(l),n.push(o),j.cloneArray(n)),t=(h.push(["s0","s0",i]),j.cloneArray(n)),f=j.cloneArray(t),y=(f.splice(e+1,0,new j(f[e].x,f[e+1].y)),h.push(["s1","s1_1",f]),j.cloneArray(t)),i=(y.splice(e+1,0,new j(y[e+1].x,y[e].y)),h.push(["s1","s1_2",y]),j.cloneArray(t)),n=new j((i[e].x+i[e+1].x)/2,i[e].y),f=new j((i[e].x+i[e+1].x)/2,i[e+1].y),y=(i.splice(e+1,0,n,f),h.push(["s2","s2_1",i]),j.cloneArray(t)),n=new j(y[e].x,(y[e].y+y[e+1].y)/2),f=new j(y[e+1].x,(y[e].y+y[e+1].y)/2),i=(y.splice(e+1,0,n,f),h.push(["s2","s2_2",y]),j.cloneArray(t)),n=[i[e].x+20,i[e+1].x+20],f=(c&&n.push(c.br[0]+20),u&&n.push(u.br[0]+20),this.max(n)),y=new j(f,i[e].y),n=new j(f,i[e+1].y),f=(i.splice(e+1,0,y,n),h.push(["s2","s2_3",i]),j.cloneArray(t)),y=[f[e].y-20,f[e+1].y-20],n=(c&&y.push(c.tl[1]-20),u&&y.push(u.tl[1]-20),this.min(y)),i=new j(f[e].x,n),y=new j(f[e+1].x,n),n=(f.splice(e+1,0,i,y),h.push(["s2","s2_4",f]),j.cloneArray(t)),i=[n[e].x-20,n[e+1].x-20],y=(c&&i.push(c.tl[0]-20),u&&i.push(u.tl[0]-20),this.min(i)),f=new j(y,n[e].y),i=new j(y,n[e+1].y),y=(n.splice(e+1,0,f,i),h.push(["s2","s2_5",n]),j.cloneArray(t)),f=[y[e].y+20,y[e+1].y+20],i=(c&&f.push(c.tl[1]+c.height+20),u&&f.push(u.tl[1]+u.height+20),this.max(f)),n=new j(y[e].x,i),t=new j(y[e+1].x,i);y.splice(e+1,0,n,t),h.push(["s2","s2_6",y]);for(var v=[],g=0;g<h.length;g++){var C=h[g][2];this.orthogonalPath(C)&&v.push(h[g])}if(h=v,!s.equals(o)){for(var m=[],b=0;b<h.length;b++){var k=h[b][2];this.forwardPath(k)&&m.push(h[b])}(h=m).length}for(var _=[],E=0;E<h.length;E++){var P=!1,x=h[E][2].slice();(u||c)&&(x=x.slice(1,x.length-1)),c&&(P=P||this.polylineIntersectsRectangle(x,c)),(P=u?P||this.polylineIntersectsRectangle(x,u):P)||_.push(h[E])}(h=0!=_.length?_:h).length;for(var w=h[0][2].length,S=[],I=0;I<h.length;I++)h[I][2].length==w&&S.push(h[I]);for(var h=S,O=0,M=0;M<h.length;M++)this.scorePath(h[O][2])<this.scorePath(h[M][2])&&(O=M);return[h[O]]}},{key:"orthogonalPath",value:function orthogonalPath(t){if(t.length<=1)return!0;for(var e=0;e<t.length-1;e++)if(t[e].x!=t[e+1].x&&t[e].y!=t[e+1].y)return!1;return!0}},{key:"lineIntersectsLine",value:function lineIntersectsLine(t,e){if(t.startPoint.x==t.endPoint.x&&e.startPoint.x==e.endPoint.x)return t.startPoint.x==e.startPoint.x&&(t.contains(e.startPoint.x,e.startPoint.y)||t.contains(e.endPoint.x,e.endPoint.y));if(t.startPoint.x==t.endPoint.x||e.startPoint.x==e.endPoint.x)return t.startPoint.x==t.endPoint.x&&(s=t,t=e,e=s),s=(t.endPoint.y-t.startPoint.y)/(t.endPoint.x-t.startPoint.x),n=t.startPoint.y-s*t.startPoint.x,i=e.startPoint.x,t.contains(i,s=s*i+n)&&e.contains(i,s);var n=(t.endPoint.y-t.startPoint.y)/(t.endPoint.x-t.startPoint.x),i=t.startPoint.y-n*t.startPoint.x,s=(e.endPoint.y-e.startPoint.y)/(e.endPoint.x-e.startPoint.x),o=e.startPoint.y-s*e.startPoint.x;if(n==s)return i==o&&(t.contains(e.startPoint.x,e.startPoint.y)||t.contains(e.endPoint.x,e.endPoint.y));o=(o-i)/(n-s),s=n*o+i;return t.contains(o,s)&&e.contains(o,s)}},{key:"polylineIntersectsRectangle",value:function polylineIntersectsRectangle(t,e){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=[];i.push(new Vs(new j(e.x1,e.y1),new j(e.x2,e.y1))),i.push(new Vs(new j(e.x2,e.y1),new j(e.x2,e.y2))),i.push(new Vs(new j(e.x2,e.y2),new j(e.x1,e.y2))),i.push(new Vs(new j(e.x1,e.y2),new j(e.x1,e.y1)));for(var s=0;s<t.length-1;s++)for(var o=new Vs(t[s],t[s+1]),r=0;r<i.length;r++)if(this.lineIntersectsLine(o,i[r]))return!0;if(n)for(var a=new Vs(t[t.length-1],t[0]),l=0;l<i.length;l++)if(this.lineIntersectsLine(a,i[l]))return!0;return!1}},{key:"scorePath",value:function scorePath(t){if(t.length<=2)return-1;for(var e=0,n=1;n<t.length-1;n++)if(t[n-1].x==t[n].x&&t[n].x==t[n+1].x){if(this.signum(t[n+1].y-t[n].y)!=this.signum(t[n].y-t[n-1].y))return-1;e++}else if(t[n-1].y==t[n].y&&t[n].y==t[n+1].y){if(this.signum(t[n+1].x-t[n].x)!=this.signum(t[n].x-t[n-1].x))return-1;e++}else e--;return e}},{key:"signum",value:function signum(t){return 0<t?1:t<0?-1:0}},{key:"forwardPath",value:function forwardPath(t){if(t.length<=2)return!0;for(var e=0;e<t.length-2;e++)if(t[e].x==t[e+1].x&&t[e+1].x==t[e+2].x){if(0!=this.signum(t[e+1].y-t[e].y)&&this.signum(t[e+1].y-t[e].y)==-1*this.signum(t[e+2].y-t[e+1].y))return!1}else if(t[e].y==t[e+1].y&&t[e+1].y==t[e+2].y&&0!=this.signum(t[e+1].x-t[e].x)&&this.signum(t[e+1].x-t[e].x)==-1*this.signum(t[e+2].x-t[e+1].x))return!1;return!0}},{key:"distance",value:function distance(t,e){return Math.hypot(e.x-t.x,e.y-t.y)}},{key:"max",value:function max(t){if(0==t.lenght)return NaN;for(var e=t[0],n=0;n<t.length;n++)e<t[n]&&(e=t[n]);return e}},{key:"min",value:function min(t){if(0==t.lenght)return NaN;for(var e=t[0],n=0;n<t.length;n++)e>t[n]&&(e=t[n]);return e}},{key:"addDot",value:function addDot(t,e){throw new Error("Can NOT add dot to ICEVisioLink mannually.")}},{key:"rmDot",value:function rmDot(t){throw new Error("Can NOT remove dot from ICEVisioLink mannually.")}}],[{key:"arrangeParam",value:function arrangeParam(t){return td(t.startPoint)&&(t.startPoint=[0,0]),td(t.endPoint)&&(t.endPoint=[10,10]),t.points=[_toConsumableArray(t.startPoint),_toConsumableArray(t.endPoint)],_objectSpread2({escapeDistance:30},t)}}]),ICEVisioLink),C=(_inherits(ICEIsogon,y),ns=_createSuper(ICEIsogon),_createClass(ICEIsogon,[{key:"calcDots",value:function calcDots(){this.state.dots=[];for(var t=2*Math.PI/this.state.edges,e=this.state.radius,n=0;n<this.state.edges;n++){var i=t*n-toRadian(this.state.startAngle),s=Math.floor(e*Math.cos(i)+e),i=Math.floor(e*Math.sin(i)+e);this.state.dots.push([s,i])}return this.state.dots}},{key:"calcComponentParams",value:function calcComponentParams(){return this.dirty&&(this.calcDots(),this.state.width=2*this.state.radius,this.state.height=2*this.state.radius),{width:this.state.width,height:this.state.height}}},{key:"setState",value:function setState(t){td(t.radius)?td(t.width)?td(t.height)||(t.radius=t.height/2):t.radius=t.width/2:(t.width=2*t.radius,t.height=2*t.radius),_get(_getPrototypeOf(ICEIsogon.prototype),"setState",this).call(this,t)}}]),ICEIsogon),i=(_inherits(ICERose,y),es=_createSuper(ICERose),_createClass(ICERose,[{key:"calcDots",value:function calcDots(){var t=this.state.radius,e=this.state.leafNum;this.state.dots=[];for(var n,i,s=Math.PI/this.state.pointNumber,o=0;n=t+t*Math.sin(e*o)*Math.cos(o),i=t+t*Math.sin(e*o)*Math.sin(o),this.state.dots.push([n,i]),!((o+=s)>=2*Math.PI););return this.state.dots}},{key:"calcComponentParams",value:function calcComponentParams(){return this.dirty&&(this.calcDots(),this.state.width=2*this.state.radius,this.state.height=2*this.state.radius),{width:this.state.width,height:this.state.height}}},{key:"setState",value:function setState(t){td(t.radius)?td(t.width)?td(t.height)||(t.radius=t.height/2,t.width=t.height):(t.radius=t.width/2,t.height=t.width):(t.width=2*t.radius,t.height=2*t.radius),_get(_getPrototypeOf(ICERose.prototype),"setState",this).call(this,t)}}]),ICERose),qs=(_inherits(ICEStar,y),ts=_createSuper(ICEStar),_createClass(ICEStar,[{key:"calcDots",value:function calcDots(){this.state.dots=[];for(var t,e,n=toRadian(this.state.startAngle),i=Math.PI/this.state.spikes,s=this.state.outerRadius,o=this.state.innerRadius,r=0;r<this.state.spikes;r++)t=Math.cos(n)*s+s,e=Math.sin(n)*s+s,this.state.dots.push([t,e]),n+=i,t=Math.cos(n)*o+s,e=Math.sin(n)*o+s,this.state.dots.push([t,e]),n+=i;return this.state.dots}},{key:"calcComponentParams",value:function calcComponentParams(){return this.dirty&&(this.calcDots(),this.state.width=2*this.state.outerRadius,this.state.height=2*this.state.outerRadius),{width:this.state.width,height:this.state.height}}},{key:"setState",value:function setState(t){td(t.outerRadius)?td(t.width)?td(t.height)||(t.outerRadius=t.height/2):t.outerRadius=t.width/2:(t.width=2*t.outerRadius,t.height=2*t.outerRadius),_get(_getPrototypeOf(ICEStar.prototype),"setState",this).call(this,t)}}]),ICEStar),Xs="__ICE_UTILS_TEXT_MEASURE_DIV__",Js=(_inherits(ICEText,n),Yi=_createSuper(ICEText),_createClass(ICEText,[{key:"calcComponentParams",value:function calcComponentParams(){return this.dirty?this.measureText():{width:this.state.width,height:this.state.height}}},{key:"measureText",value:function measureText(t){var e;try{if(!(e=this.root.document.getElementById(Xs))){(e=this.root.document.createElement("div")).setAttribute("id",Xs);var n,i={visibility:"hidden",position:"absolute",top:"0",left:"0",padding:"0",margin:"0",border:"none",fontFamily:this.state.style.fontFamily,fontWeight:this.state.style.fontWeight,fontSize:this.state.style.fontSize+"px"};for(n in i)e.style[n]=i[n];e.contenteditable=!1,this.root.document.body.appendChild(e)}e.innerHTML=this.state.text;var s=this.state.style,o=s.paddingTop,r=s.paddingBottom,a=s.paddingLeft,l=s.paddingRight,h={width:e.offsetWidth+a+l,height:e.offsetHeight+o+r};return this.props.width=h.width,this.props.height=h.height,this.state.width=h.width,this.state.height=h.height,{width:this.state.width,height:this.state.height}}catch(t){}}},{key:"doRender",value:function doRender(){this.dirty&&this.measureText();var t=this.state.style,e=(t.paddingTop,t.paddingBottom),n=t.paddingLeft;t.paddingRight,this.state.stroke&&this.ctx.strokeText(this.state.text,0-this.state.localOrigin[0]+n,0-this.state.localOrigin[1]+this.state.height-e,this.state.width),this.state.fill&&this.ctx.fillText(this.state.text,0-this.state.localOrigin[0]+n,0-this.state.localOrigin[1]+this.state.height-e,this.state.width),_get(_getPrototypeOf(ICEText.prototype),"doRender",this).call(this)}}],[{key:"arrangeParam",value:function arrangeParam(t){t=un({text:"",left:0,top:0,width:10,height:10,style:{fontWeight:"bold",fontSize:32,fontFamily:"Arial",lineWidth:1,textBaseline:"bottom",paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}},t);return t.style=_objectSpread2(_objectSpread2({},t.style),{},{font:"".concat(t.style.fontWeight," ").concat(t.style.fontSize,"px ").concat(t.style.fontFamily)}),t}}]),ICEText),$s={ICERect:u,ICECircle:b,ICEEllipse:l,ICEStar:qs,ICEIsogon:C,ICEText:Js,ICEImage:f,ICEGroup:Rt,ICEVisioLink:s,ICEPolyLine:o},P={evtBuses:[],stopped:!1,frameCallback:function frameCallback(){for(var t=0;t<P.evtBuses.length;t++){if(P.stopped)return;P.evtBuses[t].trigger(R)}P.stopped||_.requestFrame(P.frameCallback)},start:function start(){P.stopped=!1,_.requestFrame(P.frameCallback)},stop:function stop(){P.stopped=!0},pause:function pause(){},resume:function resume(){},regitserEvtBus:function regitserEvtBus(t){P.evtBuses.includes(t)||P.evtBuses.push(t)},delEvtBus:function delEvtBus(t){P.evtBuses.includes(t)&&P.evtBuses.splice(P.evtBuses.indexOf(t),1)}},Ws=(_createClass(ICELinkSlotManager,[{key:"start",value:function start(){return this.createLinkSlots(),this.ice.evtBus.on(X,this.hookMouseMoveHandler,this),this.ice.evtBus.on(J,this.hookMouseUpHandler,this),this.ice.evtBus.on("mouseup",this.globalMouseUpHandler,this),this}},{key:"stop",value:function stop(){return this.ice.evtBus.off(X,this.hookMouseMoveHandler,this),this.ice.evtBus.off(J,this.hookMouseUpHandler,this),this.ice.evtBus.off("mouseup",this.globalMouseUpHandler,this),this}},{key:"hookMouseMoveHandler",value:function hookMouseMoveHandler(t){for(var e=t.target,n=e.getMaxBoundingBox(),i=null,s=_toConsumableArray(this.ice.childNodes),o=0;o<s.length;o++){var r=s[o];if(r&&r.state.linkable&&r.getMaxBoundingBox().isIntersect(n)){i=r;break}}if(i)for(var a=0;a<this.ice._linkSlots.length;a++){var l=this.ice._linkSlots[a];l.hostComponent!==i&&(l.hostComponent=i),l.setState({display:!0,style:{fillStyle:"#3ce92c"}}),e.setState({style:{fillStyle:"#3ce92c"}}),l.getMaxBoundingBox().isIntersect(n)&&(l.setState({style:{fillStyle:"#fffb00"}}),e.setState({style:{fillStyle:"#fffb00"}}))}}},{key:"hookMouseUpHandler",value:function hookMouseUpHandler(t){for(var t=t.target,e=t.state.position,n=t.parentNode.targetComponent,i=t.getMaxBoundingBox(),s=!1,o=0;o<this.ice._linkSlots.length;o++){var r,a=this.ice._linkSlots[o];a.getMaxBoundingBox().isIntersect(i)&&(s=!0,(r={})[e]={id:a.hostComponent.state.id,position:a.state.position},n&&n.setState({links:r})),a.setState({display:!1,style:{fillStyle:"#3ce92c"}})}s||((t={})[e]=null,n&&n.setState({links:t}))}},{key:"globalMouseUpHandler",value:function globalMouseUpHandler(t){for(var e=0;e<this.ice._linkSlots.length;e++)this.ice._linkSlots[e].setState({display:!1,style:{fillStyle:"#3ce92c"}})}},{key:"createLinkSlots",value:function createLinkSlots(){var t,e,n,i;this.ice._linkSlots&&this.ice._linkSlots.length||(t=new Us({zIndex:10000010,display:!1,transformable:!1,draggable:!1,radius:this.slotRadius,position:"T",style:{strokeStyle:"#0c09d4",fillStyle:"#3ce92c",lineWidth:1}}),this.ice.addTool(t),e=new Us({zIndex:10000011,display:!1,transformable:!1,draggable:!1,radius:this.slotRadius,position:"R",style:{strokeStyle:"#0c09d4",fillStyle:"#3ce92c",lineWidth:1}}),this.ice.addTool(e),n=new Us({zIndex:10000012,display:!1,transformable:!1,draggable:!1,radius:this.slotRadius,position:"B",style:{strokeStyle:"#0c09d4",fillStyle:"#3ce92c",lineWidth:1}}),this.ice.addTool(n),i=new Us({zIndex:10000013,display:!1,transformable:!1,draggable:!1,radius:this.slotRadius,position:"L",style:{strokeStyle:"#0c09d4",fillStyle:"#3ce92c",lineWidth:1}}),this.ice.addTool(i),this.ice._linkSlots=[t,e,n,i])}}]),ICELinkSlotManager),Fs=(_createClass(Deserializer,[{key:"fromJSONObject",value:function fromJSONObject(t){for(var e=t.childNodes,n=0;n<e.length;n++)this.decodeRecursively(this.ice,e[n])}},{key:"fromJSONString",value:function fromJSONString(t){t=JSON.parse(t);this.fromJSONObject(t)}},{key:"decodeRecursively",value:function decodeRecursively(t,e){var n=new(this.ice.getType(e.type))(e.state),i=(t.addChild(n),e.childNodes);if(i&&i.length)for(var s=0;s<i.length;s++)this.decodeRecursively(n,i[s])}}]),Deserializer),Gs=(_createClass(Serializer,[{key:"toJSONString",value:function toJSONString(){return JSON.stringify(this.toJSONObject())}},{key:"toJSONObject",value:function toJSONObject(){for(var t={createTime:(new Date).toLocaleString(),lastModifyTime:(new Date).toLocaleString(),childNodes:[]},e=0;e<this.ice.childNodes.length;e++){var n=this.ice.childNodes[e];this.encodeRecursively(n,t)}return t}},{key:"encodeRecursively",value:function encodeRecursively(t,e){var n={state:t.state,type:t.constructor.name,childNodes:[]};if(e.childNodes.push(n),t.childNodes&&t.childNodes.length)for(var i=0;i<t.childNodes.length;i++)this.encodeRecursively(t.childNodes[i],n)}}]),Serializer),Ks=(_inherits(CanvasRenderer,d),Zi=_createSuper(CanvasRenderer),_createClass(CanvasRenderer,[{key:"start",value:function start(){return this.stopped=!1,this.ice.evtBus.on(R,this.frameEvtHandler,this),this}},{key:"stop",value:function stop(){return this.stopped=!0,this.ice.evtBus.off(R,this.frameEvtHandler,this),this}},{key:"frameEvtHandler",value:function frameEvtHandler(t){this.ice.dirty&&this.doRender()}},{key:"refreshQueue",value:function refreshQueue(){this.componentQueue=flattenTree([],this.ice.childNodes),this.componentQueue.sort(function(t,e){return t.state.zIndex-e.state.zIndex}),this.toolsQueue=flattenTree([],this.ice.toolNodes),this.toolsQueue.sort(function(t,e){return t.state.zIndex-e.state.zIndex})}},{key:"doRender",value:function doRender(){this.refreshQueue(),this.ice.ctx.clearRect(0,0,this.ice.canvasWidth,this.ice.canvasHeight);for(var t=0;t<this.componentQueue.length;t++){var e=this.componentQueue[t];e.root=this.ice.root,e.ctx=this.ice.ctx,e.evtBus=this.ice.evtBus,e.ice=this.ice,e.render()}for(var n=0;n<this.toolsQueue.length;n++){var i=this.toolsQueue[n];i.root=this.ice.root,i.ctx=this.ice.ctx,i.evtBus=this.ice.evtBus,i.ice=this.ice,i.render()}this.ice.dirty=!1,this.ice.evtBus.trigger(q)}}]),CanvasRenderer),Qs=(_createClass(ImageCache,[{key:"setImage",value:function setImage(t){var e=this,n=this.imageCache.get(t);return n||((n=new Image).onload=function(){e.ice.dirty=!0},n.onerror=function(){},n.src=t,this.imageCache.size>ImageCache.CACHE_SIZE&&this.imageCache.delete(this.imageCache.keys().next().value),this.imageCache.set(t,n)),{loaded:this.loaded(n),image:n}}},{key:"loaded",value:function loaded(t){return t.complete&&0<t.naturalWidth}}]),ImageCache);function ImageCache(t){_classCallCheck(this,ImageCache),_defineProperty$1(this,"imageCache",new Map),this.ice=t}function CanvasRenderer(t){var e;return _classCallCheck(this,CanvasRenderer),_defineProperty$1(_assertThisInitialized(e=Zi.call(this)),"stopped",!1),_defineProperty$1(_assertThisInitialized(e),"componentQueue",[]),_defineProperty$1(_assertThisInitialized(e),"toolsQueue",[]),e.ice=t,e}function Serializer(t){_classCallCheck(this,Serializer),this.ice=t}function Deserializer(t){_classCallCheck(this,Deserializer),this.ice=t}function ICELinkSlotManager(t){_classCallCheck(this,ICELinkSlotManager),_defineProperty$1(this,"slotRadius",10),this.ice=t}function ICEText(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=(_classCallCheck(this,ICEText),ICEText.arrangeParam(t));return(t=Yi.call(this,t)).measureText(),t}function ICEStar(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=(_classCallCheck(this,ICEStar),_objectSpread2({outerRadius:50,innerRadius:20,startAngle:90,spikes:5},t));return t.spikes=Math.floor(1<=t.spikes?t.spikes:1),t.width=2*t.outerRadius,t.height=2*t.outerRadius,ts.call(this,t)}function ICERose(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=(_classCallCheck(this,ICERose),_objectSpread2({radius:50,leafNum:2,pointNumber:100},t));return t.leafNum=Math.floor(2<=t.leafNum?t.leafNum:2),t.width=2*t.radius,t.height=2*t.radius,es.call(this,t)}function ICEIsogon(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=(_classCallCheck(this,ICEIsogon),_objectSpread2({radius:10,edges:3,startAngle:90},t));return t.edges=Math.floor(3<=t.edges?t.edges:3),t.width=2*t.radius,t.height=2*t.radius,ns.call(this,t)}function ICEVisioLink(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEVisioLink),t=ICEVisioLink.arrangeParam(t),is.call(this,t)}function ICEPolyLine(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=(_classCallCheck(this,ICEPolyLine),ICEPolyLine.arrangeParam(t));return _defineProperty$1(_assertThisInitialized(t=ss.call(this,t)),"isLine",!0),t}function ICELinkSlot(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICELinkSlot),os.call(this,_objectSpread2({linkable:!1,draggable:!1,position:"T"},t))}function ICEImage(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEImage),rs.call(this,_objectSpread2({width:100,height:100,src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALkAAAC2CAYAAACF+yyJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAtoSURBVHhe7Z3tj15FHYb9VxUVo7zFUBWC8YXoF9++GENMRAWRKAkxGj8pihpjFBVF1CBlKaUU+wK0pYVqt12fn+6xs7PXnDPzO3O2Z+a5r+T6ss995nm2vXf3vM68570vXNuTsmdVctm9KrnsXpVcdq9KLrtXJZfdq5LL7lXJZfeq5LJ7VXLZvSq57F6VXHavSi67VyWX3auSy+5VyWX3quSye1Vy2b0quexelVx2r0ouu1cll92rksvuVcll96rksntVctm9KrnsXpVcdq9KLrtXJZfdq5LL7lXJZfeq5LJ7VfIjcIy7j/M2sp4q+YKWQNvLOqrkC+nhodO7OJacp0q+gHO4/2UVvbYqeWXH+O2lG3sf29nd++Eb1/e/wtC40q9KXtGfX+Dy3v4PzpspKCt9quQVJSgXS1BO+lTJK0pQLvab/zz8F+CjL3FWlquSV/KBE7v79bwJ5VISlJPlquSV/AXsj1MuJUE5Wa5KXsmfvKWSr1WVvJJ2BiWGciljLm/2figny1XJK0pQLvbS4d15zEmfKnlFicfPXsdsKEE56VMlr+hdx7mwqV2P75/ji0dvboahvPSpkle2BjSu9KuSL+AcaDw5T5V8IT3QOHK+KvmCni/oOm0v66iSO/zz5Rv71cwr56Nn+ADzmUs3MB8bQq/LcVVyhzHvg0wsQbnYmCfPTZ+SlAdVyQv92mm4crPhzokHkgnKhaagrEyrkjtM8eAr6UfXCMoNpqCsHFcld5rC7g3PzVPOTPHZkR8imbbpkqeg7BKm+NXFw0Un4swH4CavgTuOaH6Wd/gYGbOt2GTJc8k5IJxrileuHjxzQoSv37uTHutWfh8x9zU4m0BTJd959+apu1z+tdmExgoN+euVvNN6oSnCe1aI4bUvneKDWWPI5PrhFw++F2VC6dG7HGistdpMyc/9u7zgA/bfSGMOxlBmyhT2qVOv29efSNykZYTj5xrz2Jn0KcdvOQs+QGOu0SZKbn+u5/LAyJ/ZGO/uQSnPvp3+waXxc4x57nL6L9Ncnh0Ze002UfIUlDVTUNYkKJdjDWjcHD938vBuD+XMFJQ1U1B2ba6+5HZWgaBsKPFwhdN7Oc6BxsuVoJxJUC6UuJi4V35Nrr7kBOVIYk6uRA80TonEnBxJUG5NquQbbZLNGMqVWgJtX2rMcNA7lTMoR9JRBOXWZHMlt4d+KUc+VTBNRIydzaFcqTnQdqXeVjBbAEE5ki5YUW5NNlfy+CLLmN876y+5QTmPYyc/Ke+RoJxJUC5lDGXWpHZX9iUo55WgnFeCciZBOfL5K4d/ZCm3JlXyfR+BBxso55WgnFeCciZBOZKg3Jpcfcl/nJiwnrKhqWt5x3byLwr98kK9BxQIynmNscn+KWemoGxo6uIVZdfk6ktupqCseW1sJ3gf2o6gnEeCch4vwPCUy4G2M/8OuykGZddmEyW3ZUjG+PSJ3f9etr+eUe6Y8H2I8PU5EpTzSISv0370FF8+tbv38c1fA/oBCgnfZ602UXJzSexGJXsPe7A4Jv4cXgnKeSTs6zXu+Rkj/hxrtZmSm15yt6Xc11+vc/80QTmPMXb7Qg60bS7xZ1izTZXcLLmn/Orm/zrc1vubLRzDK0G5Un9zsXxXxB7GDsewSUlLCLdtweZKPjh2f/m7Ublj/zhyiytBY5RKUK7UEuy7pjEGfwZXiENomxZstuQ1zIW2LfE1ezwpAeVLzIW23Ra3uuSDOdB2U9rzkDn8yfnwQQ73ahU5/SYv4Y3NJjQO6eGDI4vahqYmOBpjm5dM3KqSp66elnL3yPQQNaBxB2twttIdlq3YfcmXJHyfF96ZPpgdzvb84HzeD1s4/pJ8pvNJi7or+e8Lz5wQdrXPxqIFaGNy/zbEn9PM4W8ZVyvte7bxPhRNR+Hh7YL79Vuxq5J7ic+nx6ZmlcqBxoudA403+LuJ2yHGoPFadWtL/qnNb2kaY8wShlsFch2bIo6gMcYsvRBmD5zQOC26NSWvdbD1/oky2k1itF2uT8Py5SHfrVS+qYNw2qZVuyq5FSDkngVPmxGU80pQrpYhdqsyZVq1uwPPo5KgnFeCcnJaldwpQTmvBOXktCq5U4JyXgnKyWlVcqcE5bwSlJPTquROCcp5JSgnp1XJnRKU80pQTk6rkjslKOeVoJycViV3SlDOK0E5Oa1K7pSgnFeCcnJaldwpQTmvBOXktF2VPL6sP/Zww1wJynklKFfLkKm7Mluzq5KPUesGram7Be3mVtou119PTDGhG7TK3ZqSx3xy4VttHx1ZWpC05ztLoDHG1K22nehl6mkYPTTRtt0deP6hwuNvX3z1f7/l7bf9FLmTjMaf08zBVoiewiZLsvFqPP4WriLdi92VPPQoJ7zMeZB5WAJdDzIfrV2XPLbWlBR3aUqKptyqkseWcqagHB40udAybnXJB3Og7ab8ROY0cXaASNtPmXM4oGni9Js8C9q2xFOa8POW2mzJbdchhZ3yo20GS8/A0BilEpQrtQT7rmmMQVsIbAzapgWbK/lLmoT/gJ5J+L/62sGzKY/B8o5jhNu2YFMl95K7LeVaXE7lG6/nlZa2zSX+DGu2mZIvyTDbFV0hjD+HV4JyHgn7+lFeJ1izTZQ8Z4lDuzqpJQ5vEr6ec9U05guv7u7d//Lu3lsTPyfh+6zVJkqegrLmyDHp/6HtCMp5JCjn8SgWq039oFB2ba6+5LWXHS9ZjrvlZceP7XDOTEHZ0NRZKcquydWXnKAcSVDOfATOMFDOK0E5rwTlTIJyJEG5NamS70tQzitBOa8E5UyCcuRzlw//Nqfcmmyu5Ceu5l8Ctxv/YyhnEpTzOHZCj/IeCcqZBOVSxlBmTTZX8pLlPmjxVcqZMbYYLuVKzYG2K5XmTaecSVCOLHmftajdlY12qiyGcqWWQNuXGmM7Fjk5g3IkHXpSbk2q5AW5Ej3QOCUSc3IkQbk1ufqS33Hc9w9LfDuxjg9BuVznQOPlSlDOJCgXStg5esquydWX3ExBWTMFZU2CcjnWgMbN8fMn83e7UlDWTEHZtdlEyUtXRiPGpqCIsXs+KDdlKc+PXG6n8XOMsVN+lDPnYldBady12UTJTVvX3kvqAGwwhjJTphjem7CvP3EufYIxHD/XmO+MzP9iN6bNgcZco82U3Bx7wibF1AMUZshfRn7zpUxxJXhvYnjtK6fSj8kNmVzvjI5hKBP6sLPoNNZabarkg7l4dztKTHEyumhFhK8f20kX/VZ+HzH23Cptv2abLPlgCsouYQqbzzAnG2duHzn2+MiLB7NLaWt4Ekfxg7aUTZf8VpoitQ9MUM5M4VkqXarkLlM8ODITFUG5wRSUleOq5IWmJvaxAz7KDxKUC01BWZlWJXcYcxtkYgnKxcY8ea7egxzbokruMLynml6PtbnKiWcyZ84KodfluCr5gp5P73EcgraXdVTJF9IDjSPnq5Iv4BxoPDlPlbyyNaBxpV+VvKK2pCJxaZeL+zg8g2q8uRmG8tKnSl5RImdJQoJy0qdKXlGCcrEX4foS5aRPlbySdHMV5VLGlMxKIMdVySv504LpL0iCcrJclbyStEoD5VISlJPlquSVpIVtKZeSoJwsVyWvKEG5WHrWcpuXJKytSl5RgnKxBOWkT5W8ok8nVk+zNe8pb6agrPSpkld2DLu11hYB+NHE8uc0rvSrki/gHO5r8Gn4tauSL6SHh06r4Euoki9oCbS9rKNKfgSOcY9OFS6uSi67VyWX3auSy+5VyWX3quSye1Vy2b0quexelVx2r0ouu1cll92rksvuVcll96rksntVctm9KrnsXpVcdq9KLrtXJZfdq5LL7lXJZfeq5LJ7VXLZvSq57F6VXHavSi67VyWX3auSy+5VyWX3quSye1Vy2b0quezca3v/AeMnvtkH1pHJAAAAAElFTkSuQmCC"},t))}function ICEDotPath(t){return _classCallCheck(this,ICEDotPath),as.call(this,_objectSpread2({dots:[],closePath:!0},t))}function GeoPoint(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0,e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0;_classCallCheck(this,GeoPoint),this.x=t,this.y=e}function GeoLine(t,e){_classCallCheck(this,GeoLine),this.startPoint=t,this.endPoint=e}function EventBus(){return _classCallCheck(this,EventBus),ls.call(this)}function DOMEventDispatcher(t){_classCallCheck(this,DOMEventDispatcher),_defineProperty$1(this,"selectionCandidates",[]),_defineProperty$1(this,"_stopped",!1),this.ice=t}function ICEControlPanelManager(t){_classCallCheck(this,ICEControlPanelManager),this.ice=t,this.transformControlPanel=new Ls({left:500,top:100,width:100,height:100,style:{strokeStyle:"#8b0000",fillStyle:"rgba(255, 255, 49, 0.2)",lineWidth:1},transform:{rotate:45}}),this.ice.addTool(this.transformControlPanel),this.transformControlPanel.disable(),this.lineControlPanel=new Ki({left:700,top:50,width:100,height:100,style:{strokeStyle:"rgba(255, 255, 49, 0)",fillStyle:"rgba(255, 255, 49, 0)",lineWidth:1}}),this.ice.addTool(this.lineControlPanel),this.lineControlPanel.disable()}function TransformControlPanel(t){return _classCallCheck(this,TransformControlPanel),_defineProperty$1(_assertThisInitialized(t=hs.call(this,_objectSpread2(_objectSpread2({},t),{},{zIndex:10000001,linkable:!1,showMinBoundingBox:!1,showMaxBoundingBox:!1}))),"rotateControlSize",8),_defineProperty$1(_assertThisInitialized(t),"rotateControlffsetY",60),_defineProperty$1(_assertThisInitialized(t),"resizeControlInstanceCache",[]),_defineProperty$1(_assertThisInitialized(t),"resizeControlSize",16),t.initControls(),t}function RotateControl(t){return _classCallCheck(this,RotateControl),cs.call(this,_objectSpread2(_objectSpread2({},t),{},{linkable:!1}))}function ResizeControl(t){return _classCallCheck(this,ResizeControl),us.call(this,_objectSpread2(_objectSpread2({position:"l",direction:"x",quadrant:1},t),{},{linkable:!1}))}_defineProperty$1(Qs,"CACHE_SIZE",100);_createClass(ICE,[{key:"init",value:function init(t){if(!t)throw new Error("ICE.init() failed...");if(this.ctx===t)throw new Error("同一个 canvas 实例只能 init 一次...");for(var e in $s)this.typeMapping[e]=$s[e];return this.root=_,z(t)?(this.canvasEl=this.root.document.getElementById(t),this.canvasEl.oncontextmenu=function(t){t.preventDefault(),t.stopPropagation()},this.canvasWidth=this.canvasEl.width,this.canvasHeight=this.canvasEl.height,this.canvasBoundingClientRect=this.canvasEl.getBoundingClientRect(),this.ctx=this.canvasEl.getContext("2d")):this.ctx=t,this.evtBus=new Hs,P.regitserEvtBus(this.evtBus),P.start(),zs.regitserEvtBus(this.evtBus),zs.start(),this.eventDispatcher=new Ns(this).start(),this.animationManager=new K(this).start(),this.controlPanelManager=new Ts(this).start(),this.renderer=new Ks(this).start(),this.linkSlotManager=new Ws(this).start(),this.serializer=new Gs(this),this.deserializer=new Fs(this),this.imageCache=new Qs(this),this}},{key:"addTool",value:function addTool(t){-1===this.childNodes.indexOf(t)&&(this.evtBus.trigger(N,null,{component:t}),t.trigger(N),t.ice=this,t.ctx=this.ctx,t.evtBus=this.evtBus,this.toolNodes.push(t),this.dirty=!0,this.evtBus.trigger(H,null,{component:t}),t.trigger(H))}},{key:"removeTool",value:function removeTool(t){this.evtBus.trigger(V,null,{component:t}),t.destory(),this.toolNodes.splice(this.toolNodes.indexOf(t),1),this.dirty=!0}},{key:"addChild",value:function addChild(t){var e=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];-1===this.childNodes.indexOf(t)&&(this.evtBus.trigger(N,null,{component:t}),t.trigger(N),t.ice=this,t.ctx=this.ctx,t.evtBus=this.evtBus,t.parentNode=null,this.childNodes.push(t),Object.keys(t.props.animations).length&&this.animationManager.add(t),this.dirty=e,this.evtBus.trigger(H,null,{component:t}),t.trigger(H))}},{key:"addChildren",value:function addChildren(t){for(var e=0;e<t.length;e++)this.addChild(t[e],!1);this.dirty=!0}},{key:"removeChild",value:function removeChild(t){var e=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];this.evtBus.trigger(V,null,{component:t}),t.destory(),this.childNodes.splice(this.childNodes.indexOf(t),1),this.dirty=e}},{key:"removeChildren",value:function removeChildren(t){for(var e=0;e<t.length;e++)this.removeChild(t[e],!1);this.dirty=!0}},{key:"clearAll",value:function clearAll(){this.removeChildren(_toConsumableArray(this.childNodes))}},{key:"findComponent",value:function findComponent(e){return this.childNodes.filter(function(t){return t.props.id===e})[0]}},{key:"dirty",get:function get(){return this.__dirty},set:function set(t){this.__dirty=t}},{key:"registerType",value:function registerType(t,e){this.typeMapping[t]=e}},{key:"getType",value:function getType(t){return this.typeMapping[t]}},{key:"toJSONString",value:function toJSONString(){return this.serializer.toJSONString()}},{key:"toJSONObject",value:function toJSONObject(){return this.serializer.toJSONObject()}},{key:"fromJSONObject",value:function fromJSONObject(t){var e=this;P.stop(),this.renderer.stop(),this.eventDispatcher.stopped=!0,this.animationManager.stop(),this.controlPanelManager.stop(),this.linkSlotManager.stop(),this.clearAll(),this.deserializer.fromJSONObject(t),P.start(),this.renderer.start(),this.animationManager.start(),this.controlPanelManager.start(),this.linkSlotManager.start(),setTimeout(function(){e.eventDispatcher.stopped=!1},300)}},{key:"fromJSONString",value:function fromJSONString(t){t=JSON.parse(t);this.fromJSONObject(t)}}]);var Zs=ICE;function ICE(){_classCallCheck(this,ICE),_defineProperty$1(this,"childNodes",[]),_defineProperty$1(this,"toolNodes",[]),_defineProperty$1(this,"canvasWidth",0),_defineProperty$1(this,"canvasHeight",0),_defineProperty$1(this,"selectionList",[]),_defineProperty$1(this,"typeMapping",{}),_defineProperty$1(this,"__dirty",!0),_defineProperty$1(this,"_lastUpdateTime",Date.now())}e.AnimationManager=K,e.CanvasRenderer=Ks,e.DOMEventDispatcher=Ns,e.DOMEventInterceptor=zs,e.EventBus=Hs,e.GeoLine=Vs,e.GeoPoint=j,e.GeoUtil=Ni,e.ICE=Zs,e.ICEBezier=g,e.ICEBoundingBox=zi,e.ICECircle=b,e.ICEComponent=n,e.ICEControlPanel=c,e.ICEControlPanelManager=Ts,e.ICEDotPath=y,e.ICEEllipse=l,e.ICEEventTarget=d,e.ICEGroup=Rt,e.ICEImage=f,e.ICEIsogon=C,e.ICELinkHook=Gi,e.ICELinkSlot=Us,e.ICEPath=p,e.ICEPolyLine=o,e.ICERect=u,e.ICERose=i,e.ICEStar=qs,e.ICEText=Js,e.ICEVisioLink=s,e.LineControlPanel=Ki,e.ResizeControl=As,e.RotateControl=Bs,e.TransformControlPanel=Ls,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
25
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).ICE={})}(this,function(t){"use strict";function ownKeys(e,t){var n,i=Object.keys(e);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(e),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,n)),i}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach(function(t){_defineProperty$1(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function _defineProperty$1(t,e,n){e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e)}function _getPrototypeOf(t){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function _setPrototypeOf(t,e){return(_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(t,e){return t.__proto__=e,t})(t,e)}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function _createSuper(n){var i=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function _createSuperInternal(){var t,e=_getPrototypeOf(n);return function _possibleConstructorReturn(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t)}(this,i?(t=_getPrototypeOf(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function _get(){return(_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,e,n){var i=function _superPropBase(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=_getPrototypeOf(t)););return t}(t,e);if(i)return(i=Object.getOwnPropertyDescriptor(i,e)).get?i.get.call(arguments.length<3?t:n):i.value}).apply(this,arguments)}function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function _unsupportedIterableToArray(t,e){if(t){if("string"==typeof t)return _arrayLikeToArray(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Map"===(n="Object"===n&&t.constructor?t.constructor.name:n)||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(t,e):void 0}}(t)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e="object"==typeof e&&e&&e.Object===Object&&e,n="object"==typeof self&&self&&self.Object===Object&&self,n=e||n||Function("return this")(),E=n.Symbol,x=Object.prototype,w=x.hasOwnProperty,S=x.toString,I=E?E.toStringTag:void 0,O=Object.prototype.toString,M=function getRawTag$1(t){var e=w.call(t,I),n=t[I];try{var i=!(t[I]=void 0)}catch(t){}var s=S.call(t);return i&&(e?t[I]=n:delete t[I]),s},j=function objectToString$1(t){return O.call(t)},B=E?E.toStringTag:void 0,x=function baseGetTag$7(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":(B&&B in Object(t)?M:j)(t)},L=Array.isArray,T=function isObjectLike$9(t){return null!=t&&"object"==typeof t},R=x,D=L,N=T,z=function isString(t){return"string"==typeof t||!D(t)&&N(t)&&"[object String]"==R(t)},$=function isUndefined(t){return void 0===t},H="ICE_FRAME_EVENT",V="AFTER_RENDER",q="BEFORE_ADD",U="AFTER_ADD",J="BEFORE_REMOVE",X="ROUND_FINISH",G="HOOK_MOUSEMOVE",F="HOOK_MOUSEUP",K="BEFORE_RESIZE",h="AFTER_RESIZE",W="AFTER_ROTATE",Q="AFTER_MOVE",Z={linear:function linear(t,e,n,i){return t+(e-t)/n*(Date.now()-i)},easeInQuad:function easeInQuad(t,e,n,i){i=Date.now()-i;return t+(e-t)/n*(i/n)*i},easeOutQuad:function easeOutQuad(t,e,n,i){i=Date.now()-i;return-(e-t)*(i/=n)*(i-2)+t},easeInOutQuad:function easeInOutQuad(t,e,n,i){i=Date.now()-i,e-=t;return(i/=n/2)<1?e/2*i*i+t:-e/2*(--i*(i-2)-1)+t},easeInQuart:function easeInQuart(t,e,n,i){i=Date.now()-i;return(e-t)*(i/=n)*i*i*i+t},easeOutQuart:function easeOutQuart(t,e,n,i){return-(e-t)*((e=(Date.now()-i)/n-1)*e*e*e-1)+t},easeInOutQuart:function easeInOutQuart(t,e,n,i){i=Date.now()-i,e-=t;return(i/=n/2)<1?e/2*i*i*i*i+t:-e/2*((i-=2)*i*i*i-2)+t},easeInCubic:function easeInCubic(t,e,n,i){i=Date.now()-i;return(e-t)*(i/=n)*i*i+t},easeOutCubic:function easeOutCubic(t,e,n,i){return(e-t)*((e=(Date.now()-i)/n-1)*e*e+1)+t},easeInOutCubic:function easeInOutCubic(t,e,n,i){i=Date.now()-i,e-=t;return(i/=n/2)<1?e/2*i*i*i+t:e/2*((i-=2)*i*i+2)+t}},Y=(_createClass(AnimationManager,[{key:"start",value:function start(){return this.ice.evtBus.on(H,this.frameEventHandler,this),this}},{key:"stop",value:function stop(){return this.ice.evtBus.off(H,this.frameEventHandler,this),this}},{key:"frameEventHandler",value:function frameEventHandler(t){for(var e=_toConsumableArray(this.animationMap.values()),n=0;n<e.length;n++){var i=e[n];i.state.interactive=!1,this.tween(i),i.state.interactive=!0}}},{key:"tween",value:function tween(t){var e,n={},i=t.props.animations,s=1;for(e in i){var o=i[e];if(o.finished){if(++s===Object.keys(i).length){this.remove(t);break}}else{var r=o.from,a=o.to,l=o.duration,r=($(o.startTime)&&(o.startTime=Date.now()),$(o.easing)&&(o.easing="linear"),Z[o.easing](r,a,l,o.startTime));a<r&&(r=a,o.finished=!0),n[e]=Math.floor(r)}}return t.setState(_objectSpread2({},n)),t}},{key:"add",value:function add(t){this.animationMap.set(t.props.id,t)}},{key:"remove",value:function remove(t){z(t)?this.animationMap.delete(t):this.animationMap.delete(t.props.id)}}]),AnimationManager);function AnimationManager(t){_classCallCheck(this,AnimationManager),_defineProperty$1(this,"animationMap",new Map),this.ice=t}var i=function eq$4(t,e){return t===e||t!=t&&e!=e},tt=i,s=function assocIndexOf$4(t,e){for(var n=t.length;n--;)if(tt(t[n][0],e))return n;return-1},et=s,nt=Array.prototype.splice,it=s,st=s,ot=s,s=function listCacheDelete$1(t){var e=this.__data__,t=et(e,t);return!(t<0||(t==e.length-1?e.pop():nt.call(e,t,1),--this.size,0))},rt=function listCacheGet$1(t){var e=this.__data__,t=it(e,t);return t<0?void 0:e[t][1]},at=function listCacheHas$1(t){return-1<st(this.__data__,t)},lt=function listCacheSet$1(t,e){var n=this.__data__,i=ot(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this};function ListCache$4(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}ListCache$4.prototype.clear=function listCacheClear$1(){this.__data__=[],this.size=0},ListCache$4.prototype.delete=s,ListCache$4.prototype.get=rt,ListCache$4.prototype.has=at,ListCache$4.prototype.set=lt;var s=ListCache$4,ht=s,rt=function stackClear$1(){this.__data__=new ht,this.size=0},at=function stackDelete$1(t){var e=this.__data__,t=e.delete(t);return this.size=e.size,t},lt=function stackGet$1(t){return this.__data__.get(t)},o=function stackHas$1(t){return this.__data__.has(t)},ct=function isObject$9(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},ut=x,dt=ct,pt=function isFunction$3(t){if(!dt(t))return!1;t=ut(t);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},r=n["__core-js_shared__"],ft=(r=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"",yt=Function.prototype.toString,r=function toSource$2(t){if(null!=t){try{return yt.call(t)}catch(t){}try{return t+""}catch(t){}}return""},gt=pt,vt=function isMasked$1(t){return!!ft&&ft in t},Ct=ct,mt=r,bt=/^\[object .+?Constructor\]$/,a=Function.prototype,l=Object.prototype,a=a.toString,l=l.hasOwnProperty,kt=RegExp("^"+a.call(l).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),_t=function baseIsNative$1(t){return!(!Ct(t)||vt(t))&&(gt(t)?kt:bt).test(mt(t))},Pt=function getValue$1(t,e){return null==t?void 0:t[e]},a=function getNative$7(t,e){t=Pt(t,e);return _t(t)?t:void 0},l=a(n,"Map"),c=a(Object,"create"),Et=c,xt=c,wt=Object.prototype.hasOwnProperty,St=c,It=Object.prototype.hasOwnProperty,Ot=c,c=function hashDelete$1(t){t=this.has(t)&&delete this.__data__[t];return this.size-=t?1:0,t},Mt=function hashGet$1(t){var e,n=this.__data__;return xt?"__lodash_hash_undefined__"===(e=n[t])?void 0:e:wt.call(n,t)?n[t]:void 0},u=function hashHas$1(t){var e=this.__data__;return St?void 0!==e[t]:It.call(e,t)},d=function hashSet$1(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Ot&&void 0===e?"__lodash_hash_undefined__":e,this};function Hash$1(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}Hash$1.prototype.clear=function hashClear$1(){this.__data__=Et?Et(null):{},this.size=0},Hash$1.prototype.delete=c,Hash$1.prototype.get=Mt,Hash$1.prototype.has=u,Hash$1.prototype.set=d;var At=Hash$1,jt=s,Bt=l,Lt=function isKeyable$1(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t},c=function getMapData$4(t,e){t=t.__data__;return Lt(e)?t["string"==typeof e?"string":"hash"]:t.map},Tt=c,Rt=c,Dt=c,Nt=c,Mt=function mapCacheDelete$1(t){t=Tt(this,t).delete(t);return this.size-=t?1:0,t},u=function mapCacheGet$1(t){return Rt(this,t).get(t)},d=function mapCacheHas$1(t){return Dt(this,t).has(t)},c=function mapCacheSet$1(t,e){var n=Nt(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this};function MapCache$1(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}MapCache$1.prototype.clear=function mapCacheClear$1(){this.size=0,this.__data__={hash:new At,map:new(Bt||jt),string:new At}},MapCache$1.prototype.delete=Mt,MapCache$1.prototype.get=u,MapCache$1.prototype.has=d,MapCache$1.prototype.set=c;var zt=s,$t=l,Ht=MapCache$1,Vt=s,Mt=at,u=lt,d=o,c=function stackSet$1(t,e){var n=this.__data__;if(n instanceof zt){var i=n.__data__;if(!$t||i.length<199)return i.push([t,e]),this.size=++n.size,this;n=this.__data__=new Ht(i)}return n.set(t,e),this.size=n.size,this};function Stack$2(t){t=this.__data__=new Vt(t);this.size=t.size}Stack$2.prototype.clear=rt,Stack$2.prototype.delete=Mt,Stack$2.prototype.get=u,Stack$2.prototype.has=d,Stack$2.prototype.set=c;var qt,s=Stack$2,Ut=a,at=function(){try{var t=Ut(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),Jt=at,lt=function baseAssignValue$3(t,e,n){"__proto__"==e&&Jt?Jt(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n},Xt=lt,Gt=i,o=function assignMergeValue$2(t,e,n){(void 0===n||Gt(t[e],n))&&(void 0!==n||e in t)||Xt(t,e,n)},rt=function createBaseFor$1(l){return function(t,e,n){for(var i=-1,s=Object(t),o=n(t),r=o.length;r--;){var a=o[l?r:++i];if(!1===e(s[a],a,s))break}return t}}(),Mt={exports:{}},Ft=(d=(d=(u=Mt).exports)&&!d.nodeType&&d,c=(c=d&&u&&!u.nodeType&&u)&&c.exports===d?n.Buffer:void 0,qt=c?c.allocUnsafe:void 0,u.exports=function cloneBuffer(t,e){if(e)return t.slice();e=t.length,e=qt?qt(e):new t.constructor(e);return t.copy(e),e},n.Uint8Array),d=function cloneArrayBuffer$3(t){var e=new t.constructor(t.byteLength);return new Ft(e).set(new Ft(t)),e},Kt=d,c=function cloneTypedArray$2(t,e){e=e?Kt(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.length)},u=function copyArray$2(t,e){var n=-1,i=t.length;for(e=e||Array(i);++n<i;)e[n]=t[n];return e},Wt=ct,Qt=Object.create;function object(){}var Zt,Yt,te=function overArg$2(e,n){return function(t){return e(n(t))}},ee=te(Object.getPrototypeOf,Object),ne=Object.prototype,ie=function isPrototype$4(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||ne)},se=function(t){if(!Wt(t))return{};if(Qt)return Qt(t);object.prototype=t;t=new object;return object.prototype=void 0,t},oe=ee,re=ie,ae=function initCloneObject$2(t){return"function"!=typeof t.constructor||re(t)?{}:se(oe(t))},le=x,he=T,p=function baseIsArguments$1(t){return he(t)&&"[object Arguments]"==le(t)},ce=T,ue=Object.prototype,de=ue.hasOwnProperty,pe=ue.propertyIsEnumerable,ue=p(function(){return arguments}())?p:function(t){return ce(t)&&de.call(t,"callee")&&!pe.call(t,"callee")},p=function isLength$2(t){return"number"==typeof t&&-1<t&&t%1==0&&t<=9007199254740991},fe=pt,ye=p,ge=function isArrayLike$5(t){return null!=t&&ye(t.length)&&!fe(t)},ve=ge,Ce=T,me=function isArrayLikeObject$1(t){return Ce(t)&&ve(t)},be={exports:{}},ke=(g=(g=(y=be).exports)&&!g.nodeType&&g,f=(f=g&&y&&!y.nodeType&&y)&&f.exports===g?n.Buffer:void 0,g=(f?f.isBuffer:void 0)||function stubFalse(){return!1},y.exports=g,x),_e=ee,Pe=T,f=Function.prototype,y=Object.prototype,Ee=f.toString,xe=y.hasOwnProperty,we=Ee.call(Object),g=function isPlainObject$1(t){if(!Pe(t)||"[object Object]"!=ke(t))return!1;t=_e(t);if(null===t)return!0;t=xe.call(t,"constructor")&&t.constructor;return"function"==typeof t&&t instanceof t&&Ee.call(t)==we},Se=x,Ie=p,Oe=T,v={},f=(v["[object Float32Array]"]=v["[object Float64Array]"]=v["[object Int8Array]"]=v["[object Int16Array]"]=v["[object Int32Array]"]=v["[object Uint8Array]"]=v["[object Uint8ClampedArray]"]=v["[object Uint16Array]"]=v["[object Uint32Array]"]=!0,v["[object Arguments]"]=v["[object Array]"]=v["[object ArrayBuffer]"]=v["[object Boolean]"]=v["[object DataView]"]=v["[object Date]"]=v["[object Error]"]=v["[object Function]"]=v["[object Map]"]=v["[object Number]"]=v["[object Object]"]=v["[object RegExp]"]=v["[object Set]"]=v["[object String]"]=v["[object WeakMap]"]=!1,function baseIsTypedArray$1(t){return Oe(t)&&Ie(t.length)&&!!v[Se(t)]}),y=function baseUnary$3(e){return function(t){return e(t)}},p={exports:{}},e=(C=(C=(Me=p).exports)&&!C.nodeType&&C,Zt=C&&Me&&!Me.nodeType&&Me,Yt=Zt&&Zt.exports===C&&e.process,C=function(){try{return Zt&&Zt.require&&Zt.require("util").types||Yt&&Yt.binding&&Yt.binding("util")}catch(t){}}(),Me.exports=C,f),Me=y,C=p.exports,f=C&&C.isTypedArray,C=f?Me(f):e,Me=function safeGet$2(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]},Ae=lt,je=i,Be=Object.prototype.hasOwnProperty,f=function assignValue$2(t,e,n){var i=t[e];Be.call(t,e)&&je(i,n)&&(void 0!==n||e in t)||Ae(t,e,n)},Le=f,Te=lt,e=function copyObject$5(t,e,n,i){var s=!n;n=n||{};for(var o=-1,r=e.length;++o<r;){var a=e[o],l=i?i(n[a],t[a],a,n,t):void 0;void 0===l&&(l=t[a]),(s?Te:Le)(n,a,l)}return n},Re=/^(?:0|[1-9]\d*)$/,lt=function isIndex$2(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&Re.test(t))&&-1<t&&t%1==0&&t<e},De=function baseTimes$1(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i},Ne=ue,ze=L,$e=be.exports,He=lt,Ve=C,qe=Object.prototype.hasOwnProperty,Ue=function arrayLikeKeys$2(t,e){var n,i=ze(t),s=!i&&Ne(t),o=!i&&!s&&$e(t),r=!i&&!s&&!o&&Ve(t),a=i||s||o||r,l=a?De(t.length,String):[],h=l.length;for(n in t)!e&&!qe.call(t,n)||a&&("length"==n||o&&("offset"==n||"parent"==n)||r&&("buffer"==n||"byteLength"==n||"byteOffset"==n)||He(n,h))||l.push(n);return l},Je=ct,Xe=ie,Ge=function nativeKeysIn$1(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e},Fe=Object.prototype.hasOwnProperty,Ke=Ue,We=function baseKeysIn$1(t){if(!Je(t))return Ge(t);var e,n=Xe(t),i=[];for(e in t)("constructor"!=e||!n&&Fe.call(t,e))&&i.push(e);return i},Qe=ge,Ze=function keysIn$5(t){return Qe(t)?Ke(t,!0):We(t)},Ye=e,tn=Ze,en=o,nn=Mt.exports,sn=c,rn=u,an=ae,ln=ue,hn=L,cn=me,un=be.exports,dn=pt,pn=ct,fn=g,yn=C,gn=Me,vn=function toPlainObject$1(t){return Ye(t,tn(t))},Cn=s,mn=o,bn=rt,kn=function baseMergeDeep$1(t,e,n,i,s,o,r){var a,l,h,c=gn(t,n),u=gn(e,n),d=r.get(u);d?en(t,n,d):((e=void 0===(d=o?o(c,u,n+"",t,e,r):void 0))&&(l=!(a=hn(u))&&un(u),h=!a&&!l&&yn(u),d=u,a||l||h?d=hn(c)?c:cn(c)?rn(c):l?nn(u,!(e=!1)):h?sn(u,!(e=!1)):[]:fn(u)||ln(u)?ln(d=c)?d=vn(c):pn(c)&&!dn(c)||(d=an(u)):e=!1),e&&(r.set(u,d),s(d,u,i,o,r),r.delete(u)),en(t,n,d))},_n=ct,Pn=Ze,En=Me,me=function identity$2(t){return t},xn=function apply$1(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)},wn=Math.max,Sn=function constant$1(t){return function(){return t}},In=at,On=Date.now,pt=function shortOut$1(n){var i=0,s=0;return function(){var t=On(),e=16-(t-s);if(s=t,0<e){if(800<=++i)return arguments[0]}else i=0;return n.apply(void 0,arguments)}}(In?function(t,e){return In(t,"toString",{configurable:!0,enumerable:!1,value:Sn(e),writable:!0})}:me),Mn=me,An=function overRest$1(o,r,a){return r=wn(void 0===r?o.length-1:r,0),function(){for(var t=arguments,e=-1,n=wn(t.length-r,0),i=Array(n);++e<n;)i[e]=t[r+e];for(var e=-1,s=Array(r+1);++e<r;)s[e]=t[e];return s[r]=a(i),xn(o,this,s)}},jn=pt,Bn=i,Ln=ge,Tn=lt,Rn=ct,Dn=function baseRest$1(t,e){return jn(An(t,e,Mn),t+"")},Nn=function isIterateeCall$1(t,e,n){if(!Rn(n))return!1;var i=typeof e;return!!("number"==i?Ln(n)&&Tn(e,n.length):"string"==i&&e in n)&&Bn(n[e],t)},zn=function baseMerge$1(i,s,o,r,a){i!==s&&bn(s,function(t,e){var n;a=a||new Cn,_n(t)?kn(i,s,e,o,baseMerge$1,r,a):(n=r?r(En(i,e),t,e+"",i,s,a):void 0,mn(i,e,n=void 0===n?t:n))},Pn)},$n=function createAssigner$1(a){return Dn(function(t,e){var n=-1,i=e.length,s=1<i?e[i-1]:void 0,o=2<i?e[2]:void 0,s=3<a.length&&"function"==typeof s?(i--,s):void 0;for(o&&Nn(e[0],e[1],o)&&(s=i<3?void 0:s,i=1),t=Object(t);++n<i;){var r=e[n];r&&a(t,r,n,s)}return t})}(function(t,e,n){zn(t,e,n)}),Hn="undefined"!=typeof Float32Array?Float32Array:Array,Vn=Math.PI/180;function toRadian(t){return t*Vn}function invert(t,e){var n=e[0],i=e[1],s=e[2],o=e[3],r=e[4],e=e[5],a=n*o-i*s;return a?(t[0]=o*(a=1/a),t[1]=-i*a,t[2]=-s*a,t[3]=n*a,t[4]=(s*e-o*r)*a,t[5]=(i*r-n*e)*a,t):null}function multiply(t,e,n){var i=e[0],s=e[1],o=e[2],r=e[3],a=e[4],e=e[5],l=n[0],h=n[1],c=n[2],u=n[3],d=n[4],n=n[5];return t[0]=i*l+o*h,t[1]=s*l+r*h,t[2]=i*c+o*u,t[3]=s*c+r*u,t[4]=i*d+o*n+a,t[5]=s*d+r*n+e,t}function transformMat2d(t,e,n){var i=e[0],e=e[1];return t[0]=n[0]*i+n[2]*e+n[4],t[1]=n[1]*i+n[3]*e+n[5],t}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)}),function create(){var t=new Hn(2);Hn!=Float32Array&&(t[0]=0,t[1]=0)}();var g=function arrayEach$1(t,e){for(var n=-1,i=null==t?0:t.length;++n<i&&!1!==e(t[n],n,t););return t},o=te(Object.keys,Object),qn=ie,Un=o,Jn=Object.prototype.hasOwnProperty,rt=function baseKeys$2(t){if(!qn(t))return Un(t);var e,n=[];for(e in Object(t))Jn.call(t,e)&&"constructor"!=e&&n.push(e);return n},Xn=Ue,Gn=rt,Fn=ge,Me=function keys$3(t){return(Fn(t)?Xn:Gn)(t)},Kn=e,Wn=Me,at=function baseAssign$1(t,e){return t&&Kn(e,Wn(e),t)},Qn=e,Zn=Ze,me=function baseAssignIn$1(t,e){return t&&Qn(e,Zn(e),t)},pt=function stubArray$2(){return[]},Yn=function arrayFilter$1(t,e){for(var n=-1,i=null==t?0:t.length,s=0,o=[];++n<i;){var r=t[n];e(r,n,t)&&(o[s++]=r)}return o},ti=Object.prototype.propertyIsEnumerable,ei=Object.getOwnPropertySymbols,i=ei?function(e){return null==e?[]:(e=Object(e),Yn(ei(e),function(t){return ti.call(e,t)}))}:pt,ni=e,ii=i,lt=function copySymbols$1(t,e){return ni(t,ii(t),e)},te=function arrayPush$2(t,e){for(var n=-1,i=e.length,s=t.length;++n<i;)t[s+n]=e[n];return t},si=te,oi=ee,ri=i,o=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)si(e,ri(t)),t=oi(t);return e}:pt,ai=e,li=o,Ue=function copySymbolsIn$1(t,e){return ai(t,li(t),e)},hi=te,ci=L,ee=function baseGetAllKeys$2(t,e,n){e=e(t);return ci(t)?e:hi(e,n(t))},ui=ee,di=i,pi=Me,pt=function getAllKeys$1(t){return ui(t,pi,di)},fi=ee,yi=o,gi=Ze,e=function getAllKeysIn$1(t){return fi(t,gi,yi)},te=a(n,"DataView"),i=l,ee=a(n,"Promise"),o=a(n,"Set"),l=a(n,"WeakMap"),vi=x,Ci=r,mi=Ci(te),bi=Ci(i),ki=Ci(ee),_i=Ci(o),Pi=Ci(l),a=vi,r=a=te&&"[object DataView]"!=a(new te(new ArrayBuffer(1)))||i&&"[object Map]"!=a(new i)||ee&&"[object Promise]"!=a(ee.resolve())||o&&"[object Set]"!=a(new o)||l&&"[object WeakMap]"!=a(new l)?function(t){var e=vi(t),t="[object Object]"==e?t.constructor:void 0,t=t?Ci(t):"";if(t)switch(t){case mi:return"[object DataView]";case bi:return"[object Map]";case ki:return"[object Promise]";case _i:return"[object Set]";case Pi:return"[object WeakMap]"}return e}:a,Ei=Object.prototype.hasOwnProperty,te=function initCloneArray$1(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&Ei.call(t,"index")&&(n.index=t.index,n.input=t.input),n},xi=d,wi=/\w*$/,i=E?E.prototype:void 0,Si=i?i.valueOf:void 0,Ii=d,Oi=function cloneDataView$1(t,e){e=e?xi(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.byteLength)},Mi=function cloneRegExp$1(t){var e=new t.constructor(t.source,wi.exec(t));return e.lastIndex=t.lastIndex,e},Ai=function cloneSymbol$1(t){return Si?Object(Si.call(t)):{}},ji=c,ee=function initCloneByTag$1(t,e,n){var i=t.constructor;switch(e){case"[object ArrayBuffer]":return Ii(t);case"[object Boolean]":case"[object Date]":return new i(+t);case"[object DataView]":return Oi(t,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return ji(t,n);case"[object Map]":return new i;case"[object Number]":case"[object String]":return new i(t);case"[object RegExp]":return Mi(t);case"[object Set]":return new i;case"[object Symbol]":return Ai(t)}},Bi=r,Li=T,o=function baseIsMap$1(t){return Li(t)&&"[object Map]"==Bi(t)},l=y,a=p.exports,i=a&&a.isMap,d=i?l(i):o,Ti=r,Ri=T,c=function baseIsSet$1(t){return Ri(t)&&"[object Set]"==Ti(t)},a=y,l=p.exports,i=l&&l.isSet,o=i?a(i):c,Di=s,Ni=g,zi=f,$i=at,Hi=me,Vi=Mt.exports,qi=u,Ui=lt,Ji=Ue,Xi=pt,Gi=e,Fi=r,Ki=te,Wi=ee,Qi=ae,Zi=L,Yi=be.exports,ts=d,es=ct,ns=o,is=Me,ss=Ze,m={},os=(m["[object Arguments]"]=m["[object Array]"]=m["[object ArrayBuffer]"]=m["[object DataView]"]=m["[object Boolean]"]=m["[object Date]"]=m["[object Float32Array]"]=m["[object Float64Array]"]=m["[object Int8Array]"]=m["[object Int16Array]"]=m["[object Int32Array]"]=m["[object Map]"]=m["[object Number]"]=m["[object Object]"]=m["[object RegExp]"]=m["[object Set]"]=m["[object String]"]=m["[object Symbol]"]=m["[object Uint8Array]"]=m["[object Uint8ClampedArray]"]=m["[object Uint16Array]"]=m["[object Uint32Array]"]=!0,m["[object Error]"]=m["[object Function]"]=m["[object WeakMap]"]=!1,function baseClone$1(n,i,s,t,e,o){var r,a=1&i,l=2&i,h=4&i;if(void 0!==(r=s?e?s(n,t,e,o):s(n):r))return r;if(!es(n))return n;t=Zi(n);if(t){if(r=Ki(n),!a)return qi(n,r)}else{var c=Fi(n),u="[object Function]"==c||"[object GeneratorFunction]"==c;if(Yi(n))return Vi(n,a);if("[object Object]"==c||"[object Arguments]"==c||u&&!e){if(r=l||u?{}:Qi(n),!a)return l?Ji(n,Hi(r,n)):Ui(n,$i(r,n))}else{if(!m[c])return e?n:{};r=Wi(n,c,a)}}u=(o=o||new Di).get(n);if(u)return u;o.set(n,r),ns(n)?n.forEach(function(t){r.add(baseClone$1(t,i,s,t,n,o))}):ts(n)&&n.forEach(function(t,e){r.set(e,baseClone$1(t,i,s,e,n,o))});var d=t?void 0:(h?l?Gi:Xi:l?ss:is)(n);return Ni(d||n,function(t,e){d&&(t=n[e=t]),zi(r,e,baseClone$1(t,i,s,e,n,o))}),r}),rs=function cloneDeep(t){return os(t,5)},y=null,b=((y=window||global||{}).requestFrame=y.requestAnimationFrame||y.webkitRequestAnimationFrame||y.mozRequestAnimationFrame||y.oRequestAnimationFrame||y.msRequestAnimationFrame,y),k=(_createClass(ICEEvent,[{key:"composedPath",value:function composedPath(){throw new Error("Method not implemented.")}},{key:"initEvent",value:function initEvent(t,e,n){throw new Error("Method not implemented.")}},{key:"preventDefault",value:function preventDefault(){throw new Error("Method not implemented.")}},{key:"stopImmediatePropagation",value:function stopImmediatePropagation(){throw new Error("Method not implemented.")}},{key:"stopPropagation",value:function stopPropagation(){throw new Error("Method not implemented.")}}]),ICEEvent),as=rt,ls=r,hs=ue,cs=L,us=ge,ds=be.exports,ps=ie,fs=C,ys=Object.prototype.hasOwnProperty;function ICEEvent(){var t,e,n=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};for(t in _classCallCheck(this,ICEEvent),n)this[t]=n[t];for(e in i)this[e]=i[e]}var gs=function isEmpty(t){if(null==t)return!0;if(us(t)&&(cs(t)||"string"==typeof t||"function"==typeof t.splice||ds(t)||fs(t)||hs(t)))return!t.length;var e,n=ls(t);if("[object Map]"==n||"[object Set]"==n)return!t.size;if(ps(t))return!as(t).length;for(e in t)if(ys.call(t,e))return!1;return!0},p=(_createClass(ICEEventTarget,[{key:"on",value:function on(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:b;this.listeners[t]||(this.listeners[t]=[]),this.off(t,e,n),this.listeners[t].push({callback:e,scope:n})}},{key:"off",value:function off(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:b;if(i=this.listeners[t])for(var i=_toConsumableArray(i),s=0;s<i.length;s++){var o=i[s];if(o.callback===e&&o.scope===n)return void this.listeners[t].splice(s,1)}}},{key:"trigger",value:function trigger(t){var e,n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};if(gs(this.listeners[t]))return!1;if(this.suspendedEventNames.includes(t))return!1;n?((e=new k(n)).originalEvent=n.originalEvent||n,e.param=_objectSpread2({},i)):e=new k({type:t,timeStamp:Date.now(),param:_objectSpread2({},i)});for(var s=this.listeners[t],o=0;o<s.length;o++){var r=s[o];r.callback.call(r.scope,e)}return!0}},{key:"once",value:function once(e,n){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:b,s=this;s.on(e,function callback(t){s.off(e,callback,i),n.call(i,t)},i)}},{key:"suspend",value:function suspend(t){t&&!this.suspendedEventNames.includes(t)&&this.suspendedEventNames.push(t)}},{key:"resume",value:function resume(e){this.suspendedEventNames.splice(this.suspendedEventNames.findIndex(function(t){return t===e}),1)}},{key:"purgeEvents",value:function purgeEvents(){this.listeners={},this.suspendedEventNames=[]}},{key:"hasListener",value:function hasListener(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:b;if(!this.listeners[t])return!1;var i=this.listeners[t];if(!i)return!1;for(var s=0;s<i.length;s++){var o=i[s];if(o.callback===e&&o.scope===n)return!0}return!1}}]),ICEEventTarget);function ICEEventTarget(){_classCallCheck(this,ICEEventTarget),_defineProperty$1(this,"listeners",{}),_defineProperty$1(this,"suspendedEventNames",[])}p.prototype.addEventListener=p.prototype.on,p.prototype.removeEventListener=p.prototype.off,p.prototype.dispatchEvent=p.prototype.trigger;_createClass(GeoUtil,null,[{key:"calcRotateAngle",value:function calcRotateAngle(t,e,n,i){t-=n,n=e-i,e=Math.hypot(t,n);return((n/e<0?-1:1)*Math.acos(t/e)*180/Math.PI+360)%360}},{key:"calcRotateAngleFromMatrix",value:function calcRotateAngleFromMatrix(t){var e=t[0],t=t[1];return Math.atan2(t,e)*(180/Math.PI)}},{key:"calcScaleFromMatrix",value:function calcScaleFromMatrix(t){var e=t[0],n=t[1],i=t[2],t=t[3];return[Math.hypot(e,n)/e,Math.hypot(i,t)/t]}}]);var vs=GeoUtil,Cs=(_createClass(ICEBoundingBox,[{key:"containsPoint",value:function containsPoint(t){var e=this.getMinAndMaxPoint(),n=e.minX,i=e.minY,s=e.maxX,e=e.maxY;if(t[0]<n||t[0]>s||t[1]<i||t[1]>e)return!1;for(var o=0,r=this.getBoundingLines(),a=0;a<r.length;a++){var l,h=r[a];t[1]>h.o[1]&&t[1]>h.d[1]||t[1]<h.o[1]&&t[1]<h.d[1]||(h.o[0]===h.d[0]&&h.o[0]>=t[0]?h.o[0]:(l=(h.d[1]-h.o[1])/(h.d[0]-h.o[0]),h.o[0]+(t[1]-h.o[1])/l))>t[0]&&o++}return 0!==o&&o%2==1}},{key:"getBoundingLines",value:function getBoundingLines(){return[{o:_toConsumableArray(this.tl),d:_toConsumableArray(this.tr)},{o:_toConsumableArray(this.tr),d:_toConsumableArray(this.br)},{o:_toConsumableArray(this.br),d:_toConsumableArray(this.bl)},{o:_toConsumableArray(this.bl),d:_toConsumableArray(this.tl)}]}},{key:"getMinAndMaxPoint",value:function getMinAndMaxPoint(){for(var t=this.tl[0],e=this.tl[1],n=this.tl[0],i=this.tl[1],s=[this.tr,this.bl,this.br],o=0;o<s.length;o++){var r=s[o];r[0]<t&&(t=r[0]),r[0]>n&&(n=r[0]),r[1]<e&&(e=r[1]),r[1]>i&&(i=r[1])}return{minX:t,minY:e,maxX:n,maxY:i}}},{key:"containsBox",value:function containsBox(t){return!1}},{key:"isIntersect",value:function isIntersect(t){var e=this.tl[0],n=this.br[0],i=this.tl[1],s=this.br[1],o=t.tl[0],r=t.br[0],a=t.tl[1],t=t.br[1];return!(r<e||t<i||n<o||s<a)}},{key:"transform",value:function transform(t){var e=transformMat2d([],this.tl,t),n=transformMat2d([],this.tr,t),i=transformMat2d([],this.bl,t),s=transformMat2d([],this.br,t),t=transformMat2d([],this.center,t);return new ICEBoundingBox([].concat(_toConsumableArray(e),_toConsumableArray(n),_toConsumableArray(i),_toConsumableArray(s),_toConsumableArray(t)))}},{key:"union",value:function union(t){return null}},{key:"width",get:function get(){var t=this.br[0]-this.bl[0],e=this.br[1]-this.bl[1];return Math.hypot(t,e)}},{key:"height",get:function get(){var t=this.br[0]-this.tr[0],e=this.br[1]-this.tr[1];return Math.hypot(t,e)}},{key:"left",get:function get(){return this.tl[0]},set:function set(t){throw new Error("Can not set left to ICEBoundingBox directly.")}},{key:"top",get:function get(){return this.tl[1]},set:function set(t){throw new Error("Can not set top to ICEBoundingBox directly.")}},{key:"centerX",get:function get(){return this.center[0]}},{key:"centerY",get:function get(){return this.center[1]}},{key:"centerPoint",get:function get(){return this.center}}],[{key:"fromDimension",value:function fromDimension(t,e,n,i){return new ICEBoundingBox([].concat([t,e],[t+n,e],[t,e+i],[t+n,e+i],[t+n/2,e+i/2]))}}]),ICEBoundingBox);function ICEBoundingBox(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[0,0,0,0,0,0,0,0,0,0];_classCallCheck(this,ICEBoundingBox),_defineProperty$1(this,"tl",[0,0]),_defineProperty$1(this,"tr",[0,0]),_defineProperty$1(this,"bl",[0,0]),_defineProperty$1(this,"br",[0,0]),_defineProperty$1(this,"tc",[0,0]),_defineProperty$1(this,"rc",[0,0]),_defineProperty$1(this,"bc",[0,0]),_defineProperty$1(this,"lc",[0,0]),_defineProperty$1(this,"center",[0,0]),this.tl=[t[0],t[1]],this.tr=[t[2],t[3]],this.bl=[t[4],t[5]],this.br=[t[6],t[7]],this.tc=[(this.tr[0]+this.tl[0])/2,(this.tr[1]+this.tl[1])/2],this.bc=[(this.br[0]+this.bl[0])/2,(this.br[1]+this.bl[1])/2],this.lc=[(this.bl[0]+this.tl[0])/2,(this.bl[1]+this.tl[1])/2],this.rc=[(this.br[0]+this.tr[0])/2,(this.br[1]+this.tr[1])/2],this.center=[t[8],t[9]]}function GeoUtil(){throw _classCallCheck(this,GeoUtil),new Error("GeoUtil is a static util class.")}function getVal(t,e){return e.split(".").reduce(function(t,e){return t[e]},t)}function flattenTree(t,e,n,i){for(var s=0<arguments.length&&void 0!==t?t:[],o=1<arguments.length&&void 0!==e?e:[],r=2<arguments.length&&void 0!==n?n:1,a=3<arguments.length&&void 0!==i?i:null,l=0;l<o.length;l++){var h=o[l];h._level=r,h._pid=a,s.push(h),flattenTree(s,h.childNodes||[],r+1,h.id)}return s}_inherits(ICEComponent,p),ms=_createSuper(ICEComponent),_createClass(ICEComponent,[{key:"initEvents",value:function initEvents(){this.on("mousedown",this.mouseDownEvtHandler,this),this.on("keydown",this.keyboardEvtHandler,this),this.on("keyup",this.keyboardEvtHandler,this)}},{key:"mouseDownEvtHandler",value:function mouseDownEvtHandler(t){this.state.interactive&&this.state.draggable&&(this.on("mousemove",this.mouseMoveEvtHandler,this),this.on("mouseup",this.mouseUpEvtHandler,this))}},{key:"mouseMoveEvtHandler",value:function mouseMoveEvtHandler(t){var e=t.movementX,n=t.movementY;return this.moveGlobalPosition(e,n,t),!0}},{key:"mouseUpEvtHandler",value:function mouseUpEvtHandler(t){this.off("mousemove",this.mouseMoveEvtHandler,this),this.off("mouseup",this.mouseUpEvtHandler,this)}},{key:"keyboardEvtHandler",value:function keyboardEvtHandler(t){switch(t.key){case"ArrowUp":this.moveGlobalPosition(0,-2,t);break;case"ArrowDown":this.moveGlobalPosition(0,2,t);break;case"ArrowLeft":this.moveGlobalPosition(-2,0,t);break;case"ArrowRight":this.moveGlobalPosition(2,0,t);break;case"Delete":(this.parentNode&&this.parentNode.removeChild?this.parentNode:this.ice).removeChild(this)}}},{key:"render",value:function render(){this.trigger("BEFORE_RENDER"),this.state.display&&(this.calcComponentParams(),this.applyStyleToCtx(),this.applyTransformToCtx(),this.doRender(),this.trigger(V),this.dirty=!1)}},{key:"applyStyleToCtx",value:function applyStyleToCtx(){var t,e=_objectSpread2(_objectSpread2({},this.props.style),this.state.style);for(t in e)this.ctx[t]=e[t]}},{key:"calcComponentParams",value:function calcComponentParams(){return{width:this.state.width,height:this.state.height}}},{key:"calcLocalOrigin",value:function calcLocalOrigin(){var t=[0,0],e=this.state.origin;return e&&"localCenter"!==e||(t[0]=this.state.width/2,t[1]=this.state.height/2),this.state.localOrigin=t}},{key:"calcAbsoluteOrigin",value:function calcAbsoluteOrigin(){var t=getVal(this,"state.transform.translate.0")+this.state.left,e=getVal(this,"state.transform.translate.1")+this.state.top,n=_toConsumableArray(this.calcLocalOrigin());return n[0]+=t,n[1]+=e,this.parentNode&&(n=transformMat2d([],n,[1,0,0,1,-this.parentNode.state.localOrigin[0],-this.parentNode.state.localOrigin[1]]),n=transformMat2d([],n,this.parentNode.state.composedMatrix)),this.state.absoluteOrigin=n}},{key:"calcLinearMatrix",value:function calcLinearMatrix(){var t=function create$1(){var t=new Hn(6);return Hn!=Float32Array&&(t[1]=0,t[2]=0,t[4]=0,t[5]=0),t[0]=1,t[3]=1,t}(),e=getVal(this,"state.transform.skew.0"),n=getVal(this,"state.transform.skew.1"),t=function scale(t,e,n){var i=e[0],s=e[1],o=e[2],r=e[3],a=e[4],e=e[5],l=n[0],n=n[1];return t[0]=i*l,t[1]=s*l,t[2]=o*n,t[3]=r*n,t[4]=a,t[5]=e,t}([],function rotate(t,e,n){var i=e[0],s=e[1],o=e[2],r=e[3],a=e[4],e=e[5],l=Math.sin(n),n=Math.cos(n);return t[0]=i*n+o*l,t[1]=s*n+r*l,t[2]=i*-l+o*n,t[3]=s*-l+r*n,t[4]=a,t[5]=e,t}([],function skew(t,e,n,i){n=Math.tan(n),i=Math.tan(i);return t[0]=e[0],t[1]=e[1]+n,t[2]=e[2]+i,t[3]=e[3],t[4]=e[4],t[5]=e[5],t}([],t,e*Vn,n*Vn),toRadian(getVal(this,"state.transform.rotate"))),[getVal(this,"state.transform.scale.0"),getVal(this,"state.transform.scale.1")]);return this.state.linearMatrix=t}},{key:"calcAbsoluteLinearMatrix",value:function calcAbsoluteLinearMatrix(){for(var t=this,e=t.calcLinearMatrix();t.parentNode;)e=multiply([],t.parentNode.state.linearMatrix,e),t=t.parentNode;return this.state.absoluteLinearMatrix=e}},{key:"composeMatrix",value:function composeMatrix(){var t=this.calcAbsoluteOrigin(),t=multiply([],[1,0,0,1,t[0],t[1]],this.calcAbsoluteLinearMatrix());return this.state.composedMatrix=t}},{key:"applyTransformToCtx",value:function applyTransformToCtx(){var t,e=this.dirty?this.composeMatrix():this.state.composedMatrix;(t=this.ctx).setTransform.apply(t,_toConsumableArray(e))}},{key:"doRender",value:function doRender(){var t;this.ctx.setTransform(1,0,0,1,0,0),this.ctx.lineWidth=1,this.state.showMinBoundingBox&&(t=this.getMinBoundingBox(),this.ctx.strokeStyle="#ff0000",this.ctx.fillStyle="rgba(0,0,0,0)",this.ctx.beginPath(),this.ctx.moveTo(t.tl[0],t.tl[1]),this.ctx.lineTo(t.tr[0],t.tr[1]),this.ctx.lineTo(t.br[0],t.br[1]),this.ctx.lineTo(t.bl[0],t.bl[1]),this.ctx.closePath(),this.ctx.stroke(),this.ctx.fill()),this.state.showMaxBoundingBox&&(t=this.getMaxBoundingBox(),this.ctx.strokeStyle="#0000ff",this.ctx.fillStyle="rgba(0,0,0,0)",this.ctx.beginPath(),this.ctx.moveTo(t.tl[0],t.tl[1]),this.ctx.lineTo(t.tr[0],t.tr[1]),this.ctx.lineTo(t.br[0],t.br[1]),this.ctx.lineTo(t.bl[0],t.bl[1]),this.ctx.closePath(),this.ctx.stroke(),this.ctx.fill())}},{key:"getMinBoundingBox",value:function getMinBoundingBox(){var t=0<arguments.length&&void 0!==arguments[0]&&arguments[0],e=this.state.localOrigin[0],n=this.state.localOrigin[1],i=this.state.width,s=this.state.height,e=new Cs([0-e,0-n,0-e+i,0-n,0-e,0-n+s,0-e+i,0-n+s,0,0]),i=t?this.composeMatrix():this.state.composedMatrix;return e.transform(i)}},{key:"getMaxBoundingBox",value:function getMaxBoundingBox(){var t=this.getMinBoundingBox(0<arguments.length&&void 0!==arguments[0]&&arguments[0]),e=t.getMinAndMaxPoint(),n=e.minX,i=e.minY,s=e.maxX,e=e.maxY,t=t.centerPoint;return new Cs([n,i,s,i,n,e,s,e,t[0],t[1]])}},{key:"setState",value:function setState(t){$n(this.state,t),this.dirty=!0,this.ice&&(this.ice.dirty=!0)}},{key:"dirty",get:function get(){return this.__dirty},set:function set(t){this.__dirty=t}},{key:"setPosition",value:function setPosition(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:new k;this.trigger("BEFORE_MOVE",_objectSpread2(_objectSpread2({},n),{},{left:t,top:e})),this.setState({left:t,top:e}),this.trigger(Q,_objectSpread2(_objectSpread2({},n),{},{left:t,top:e}))}},{key:"moveGlobalPosition",value:function moveGlobalPosition(t,e){var n,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:new k;this.parentNode&&(t=(n=transformMat2d([],[t,e],invert([],this.parentNode.state.absoluteLinearMatrix)))[0],e=n[1]),this.setPosition(this.state.left+t,this.state.top+e,_objectSpread2(_objectSpread2({},i),{},{tx:t,ty:e}))}},{key:"setGlobalPosition",value:function setGlobalPosition(t,e){var n,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:new k;this.parentNode&&(t=(n=transformMat2d([],[t,e],invert([],this.parentNode.state.absoluteLinearMatrix)))[0],e=n[1]),this.setPosition(t,e,_objectSpread2(_objectSpread2({},i),{},{left:t,top:e}))}},{key:"setGlobalRotate",value:function setGlobalRotate(t){var e;this.parentNode&&(e=this.parentNode.state.absoluteLinearMatrix,t-=vs.calcRotateAngleFromMatrix(e)),this.setState({transform:{rotate:t}})}},{key:"localToGlobal",value:function localToGlobal(t,e){t=[t,e];return transformMat2d([],t,this.state.composedMatrix)}},{key:"globalToLocal",value:function globalToLocal(t,e){t=[t,e];return transformMat2d([],t,invert([],this.state.composedMatrix))}},{key:"getRotateAngle",value:function getRotateAngle(){var t=0<arguments.length&&void 0!==arguments[0]&&arguments[0]?this.composeMatrix():this.state.composedMatrix;return vs.calcRotateAngleFromMatrix(t)}},{key:"getLocalLeftTop",value:function getLocalLeftTop(){var t=this.getMinBoundingBox(0<arguments.length&&void 0!==arguments[0]&&arguments[0]),e=t.width,n=t.height;return{left:t.centerX-t.width/2,top:t.centerY-t.height/2,width:e,height:n}}},{key:"containsPoint",value:function containsPoint(t,e){return this.getMinBoundingBox().containsPoint([t,e])}},{key:"destory",value:function destory(){this.trigger(J,null,{component:this}),this.purgeEvents(),this.ice=null,this.ctx=null,this.root=null,this.evtBus=null,this.parentNode=null}}]);var ms,l=ICEComponent;function ICEComponent(){var t,e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEComponent),_defineProperty$1(_assertThisInitialized(t=ms.call(this)),"__dirty",!0),_defineProperty$1(_assertThisInitialized(t),"props",{id:"ICE_"+function uuid(){if(b.crypto)return b.crypto.randomUUID();var n=Date.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=(n+16*Math.random())%16|0;return n=Math.floor(n/16),("x"==t?e:3&e|8).toString(16)})}(),left:0,top:0,width:0,height:0,style:{fillStyle:"red",strokeStyle:"blue",lineWidth:1},fill:!0,stroke:!0,animations:{},transform:{translate:[0,0],scale:[1,1],skew:[0,0],rotate:0},linearMatrix:[],composedMatrix:[],origin:"localCenter",localOrigin:[0,0],absoluteOrigin:[0,0],zIndex:ICEComponent.instanceCounter++,display:!0,draggable:!0,transformable:!0,interactive:!0,linkable:!0,showMinBoundingBox:!1,showMaxBoundingBox:!1}),_defineProperty$1(_assertThisInitialized(t),"state",{}),t.props=$n(t.props,e),t.state=rs(t.props),t.root=b,t.initEvents(),t}_defineProperty$1(l,"instanceCounter",0);_inherits(ICEPath,l),Ps=_createSuper(ICEPath),_createClass(ICEPath,[{key:"doRender",value:function doRender(){this.dirty&&(this.ctx.beginPath(),this.createPathObject()),this.state.closePath&&this.path2D.closePath(),this.state.fill&&this.ctx.fill(this.path2D),this.state.stroke&&this.ctx.stroke(this.path2D),_get(_getPrototypeOf(ICEPath.prototype),"doRender",this).call(this)}}]);var bs,ks,_s,Ps,a=ICEPath,i=(_inherits(ICERect,a),_s=_createSuper(ICERect),_createClass(ICERect,[{key:"createPathObject",value:function createPathObject(){return this.path2D=new Path2D,this.path2D.rect(0-this.state.localOrigin[0],0-this.state.localOrigin[1],this.state.width,this.state.height),this.path2D}}]),ICERect),c=(_inherits(ICEGroup,i),ks=_createSuper(ICEGroup),_createClass(ICEGroup,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ICEGroup.prototype),"initEvents",this).call(this),this.once(U,this.afterAddHandler,this)}},{key:"afterAddHandler",value:function afterAddHandler(){for(var t=0;t<this.childNodes.length;t++){var e=this.childNodes[t];this.syncChildEvents(e)}}},{key:"syncChildEvents",value:function syncChildEvents(t){t.trigger(q),t.ice=this.ice,t.ctx=this.ice.ctx,t.evtBus=this.ice.evtBus,t.trigger(U)}},{key:"addChild",value:function addChild(t){var e=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];-1===this.childNodes.indexOf(t)&&((t.parentNode=this).childNodes.push(t),this.dirty=e,this.ice&&(this.syncChildEvents(t),this.ice.dirty=e))}},{key:"addChildren",value:function addChildren(t){for(var e=0;e<t.length;e++){var n=t[e];this.addChild(n,!1)}this.dirty=!0,this.ice&&(this.ice.dirty=!0)}},{key:"removeChild",value:function removeChild(t){var e=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];t.destory(),this.childNodes.splice(this.childNodes.indexOf(t),1),this.dirty=e,this.ice&&(this.ice.dirty=e)}},{key:"removeChildren",value:function removeChildren(t){for(var e=0;e<t.length;e++){var n=t[e];this.removeChild(n,!1)}this.dirty=!0,this.ice&&(this.ice.dirty=!0)}},{key:"setState",value:function setState(t){$n(this.state,t),this.dirty=!0,function setRecursively(t){if(t.dirty=!0,t.childNodes&&t.childNodes.length)for(var e=0;e<t.childNodes.length;e++)setRecursively(t.childNodes[e])}(this),this.ice&&(this.ice.dirty=!0)}},{key:"destory",value:function destory(){this.removeChildren(this.childNodes),_get(_getPrototypeOf(ICEGroup.prototype),"destory",this).call(this)}}]),ICEGroup),s=(_inherits(ICEControlPanel,c),bs=_createSuper(ICEControlPanel),_createClass(ICEControlPanel,[{key:"doRender",value:function doRender(){_get(_getPrototypeOf(ICEControlPanel.prototype),"doRender",this).call(this),this.updateControlPositions()}},{key:"moveGlobalPosition",value:function moveGlobalPosition(t,e,n){_get(_getPrototypeOf(ICEControlPanel.prototype),"moveGlobalPosition",this).call(this,t,e,n),this._targetComponent&&this._targetComponent.moveGlobalPosition(t,e,n)}}]),ICEControlPanel);function ICEControlPanel(t){return _classCallCheck(this,ICEControlPanel),_defineProperty$1(_assertThisInitialized(t=bs.call(this,_objectSpread2(_objectSpread2({},t),{},{linkable:!1}))),"isControlPanel",!0),t}function ICEGroup(t){return _classCallCheck(this,ICEGroup),_defineProperty$1(_assertThisInitialized(t=ks.call(this,t)),"parentNode",null),_defineProperty$1(_assertThisInitialized(t),"childNodes",[]),t}function ICERect(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICERect),_s.call(this,_objectSpread2({width:10,height:10},t))}function ICEPath(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEPath),_defineProperty$1(_assertThisInitialized(t=Ps.call(this,_objectSpread2({closePath:!0},t))),"path2D",new Path2D),t}var Es,xs,ws,Ss,_=function isNil(t){return null==t},g=(_inherits(ICEEllipse,a),Ss=_createSuper(ICEEllipse),_createClass(ICEEllipse,[{key:"createPathObject",value:function createPathObject(){return this.path2D=new Path2D,this.path2D.ellipse(this.state.radiusX-this.state.localOrigin[0],this.state.radiusY-this.state.localOrigin[1],this.state.radiusX,this.state.radiusY,this.state.rotation,this.state.startAngle,this.state.endAngle,this.state.counterclockwise),this.path2D.closePath(),this.path2D}},{key:"setState",value:function setState(t){_(t.radiusX)?_(t.width)||(t.radiusX=t.width/2):t.width=2*t.radiusX,_(t.radiusY)?_(t.height)||(t.radiusY=t.height/2):t.height=2*t.radiusY,_get(_getPrototypeOf(ICEEllipse.prototype),"setState",this).call(this,t)}}]),ICEEllipse),f=(_inherits(ICECircle,g),ws=_createSuper(ICECircle),_createClass(ICECircle)),Is=(_inherits(ICELinkHook,f),xs=_createSuper(ICELinkHook),_createClass(ICELinkHook,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ICELinkHook.prototype),"initEvents",this).call(this),this.on("mousedown",this.mosueDownHandler,this),this.on("mousemove",this.mosueMoveHandler,this),this.on("mouseup",this.mosueUpHandler,this),this.on(Q,this.resizeEvtHandler,this)}},{key:"keyboardEvtHandler",value:function keyboardEvtHandler(t){}},{key:"mosueDownHandler",value:function mosueDownHandler(t){this.evtBus.trigger("HOOK_MOUSEDOWN",new k({target:this}))}},{key:"mosueMoveHandler",value:function mosueMoveHandler(t){this.evtBus.trigger(G,new k({target:this}))}},{key:"mosueUpHandler",value:function mosueUpHandler(t){this.evtBus.trigger(F,new k({target:this}))}},{key:"resizeEvtHandler",value:function resizeEvtHandler(t){var e;this.parentNode&&(e=this.props.position,this.parentNode.trigger(K,new k(t,{position:e})),this.parentNode.trigger(h,new k(t,{position:e})))}}]),ICELinkHook),Os=(_inherits(LineControlPanel,s),Es=_createSuper(LineControlPanel),_createClass(LineControlPanel,[{key:"initControls",value:function initControls(){var t=this.state.width,e=this.state.height,n=this.controlSize/2;this.startControl=new Is({zIndex:10001001,display:!1,left:-n,top:-n,width:this.controlSize,height:this.controlSize,style:{strokeStyle:"#0c09d4",fillStyle:"#3ce92c",lineWidth:1},position:"start"}),this.addChild(this.startControl),this.endControl=new Is({zIndex:10001002,display:!1,left:t-n,top:e-n,width:this.controlSize,height:this.controlSize,style:{strokeStyle:"#0c09d4",fillStyle:"#3ce92c",lineWidth:1},position:"end"}),this.addChild(this.endControl)}},{key:"initEvents",value:function initEvents(){this.on(h,this.resizeEvtHandler,this)}},{key:"enable",value:function enable(){this.setState({display:!0}),this.resume(h),this.showHooks()}},{key:"disable",value:function disable(){this.setState({display:!1}),this.suspend(h),this.hideHooks()}},{key:"updateControlPositions",value:function updateControlPositions(){}},{key:"resizeEvtHandler",value:function resizeEvtHandler(t){if(this.targetComponent){var e=t.position,n=t.movementX,i=t.movementY,t=this.targetComponent.state,s=t.points.length,o=t.points[0][0],r=t.points[0][1],a=t.points[s-1][0],l=t.points[s-1][1],s=transformMat2d([],[n,i],invert([],t.absoluteLinearMatrix)),n=s[0],i=s[1];switch(e){case"start":o+=n,r+=i;break;case"end":a+=n,l+=i}this.targetComponent.setState({startPoint:[o,r],endPoint:[a,l]})}}},{key:"updatePosition",value:function updatePosition(){var t,e,n;this.targetComponent&&(this.setState({left:0,top:-5,width:3,height:3,transform:{translate:[0,0],scale:[1,1],skew:[0,0],rotate:0}}),t=this.controlSize/2,n=this.targetComponent.state.points.length,e=this.targetComponent.state.points[0],n=this.targetComponent.state.points[n-1],e=[e[0],e[1]],n=[n[0],n[1]],this.startControl.setState({left:e[0]-t,top:e[1]-t}),this.endControl.setState({left:n[0]-t,top:n[1]-t}))}},{key:"targetComponent",get:function get(){return this._targetComponent},set:function set(t){var e=this;this._targetComponent&&this._targetComponent.off(Q,this.updatePosition,this),this._targetComponent=t,this._targetComponent&&this._targetComponent.on(Q,this.updatePosition,this),this._targetComponent&&this._targetComponent.once(J,function(){e.targetComponent=null,e.disable()},this),this.updatePosition()}},{key:"showHooks",value:function showHooks(){this.startControl.setState({display:!0}),this.endControl.setState({display:!0})}},{key:"hideHooks",value:function hideHooks(){this.startControl.setState({display:!1}),this.endControl.setState({display:!1})}}]),LineControlPanel),Ms=/\s/;function LineControlPanel(t){return _classCallCheck(this,LineControlPanel),_defineProperty$1(_assertThisInitialized(t=Es.call(this,_objectSpread2(_objectSpread2({},t),{},{zIndex:10001e3,linkable:!1,showMinBoundingBox:!1,showMaxBoundingBox:!1}))),"controlSize",16),t.initControls(),t}function ICELinkHook(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICELinkHook),xs.call(this,_objectSpread2({linkable:!1},t))}function ICECircle(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=(_classCallCheck(this,ICECircle),_objectSpread2({radius:10},t));return t.radiusX=t.radius,t.radiusY=t.radius,ws.call(this,t)}function ICEEllipse(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=(_classCallCheck(this,ICEEllipse),_objectSpread2({radiusX:20,radiusY:10,rotation:0,startAngle:0,endAngle:2*Math.PI,counterclockwise:!0},t));return t.width=2*t.radiusX,t.height=2*t.radiusY,Ss.call(this,t)}var As,js,Bs,Ls,Ts,Rs,Ds,Ns,zs,$s,Hs,Vs,qs,Us,Js=function trimmedEndIndex$1(t){for(var e=t.length;e--&&Ms.test(t.charAt(e)););return e},Xs=/^\s+/,Gs=x,Fs=T,at=function isSymbol$2(t){return"symbol"==typeof t||Fs(t)&&"[object Symbol]"==Gs(t)},Ks=function baseTrim$1(t){return t&&t.slice(0,Js(t)+1).replace(Xs,"")},Ws=ct,Qs=at,Zs=/^[-+]0x[0-9a-f]+$/i,Ys=/^0b[01]+$/i,to=/^0o[0-7]+$/i,eo=parseInt,me=function toNumber$2(t){if("number"==typeof t)return t;if(Qs(t))return NaN;if(Ws(t)&&(e="function"==typeof t.valueOf?t.valueOf():t,t=Ws(e)?e+"":e),"string"!=typeof t)return 0===t?t:+t;t=Ks(t);var e=Ys.test(t);return e||to.test(t)?eo(t.slice(2),e?2:8):Zs.test(t)?NaN:+t},no=me,io=function toFinite$1(t){return t?(t=no(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0},so=function arrayMap$1(t,e){for(var n=-1,i=null==t?0:t.length,s=Array(i);++n<i;)s[n]=e(t[n],n,t);return s},oo=L,ro=at,Mt=E?E.prototype:void 0,ao=Mt?Mt.toString:void 0,lo=function baseToString$1(t){if("string"==typeof t)return t;if(oo(t))return so(t,baseToString$1)+"";if(ro(t))return ao?ao.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e},ho=function toInteger$1(t){var t=io(t),e=t%1;return t==t?e?t-e:t:0},co=me,uo=function toString$1(t){return null==t?"":lo(t)},po=n.isFinite,fo=Math.min,yo=function createRound$1(t){var s=Math[t];return function(t,e){var n,i;return t=co(t),(e=null==e?0:fo(ho(e),292))&&po(t)?(n=(uo(t)+"e").split("e"),i=s(n[0]+"e"+(+n[1]+e)),+((n=(uo(i)+"e").split("e"))[0]+"e"+(+n[1]-e))):s(t)}}("round"),go=(_inherits(ResizeControl,i),Us=_createSuper(ResizeControl),_createClass(ResizeControl,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ResizeControl.prototype),"initEvents",this).call(this),this.on(Q,this.resizeEvtHandler,this)}},{key:"resizeEvtHandler",value:function resizeEvtHandler(t){if(this.parentNode){var e=t.quadrant,n=t.movementX,i=t.movementY,s=this.parentNode.state,o=s.left,r=s.top,a=s.width,l=s.height,s=transformMat2d([],[n,i],invert([],s.absoluteLinearMatrix)),n=s[0],i=s[1];switch(e){case 1:o-=n,r+=i,a+=2*n,l-=2*i;break;case 2:o+=n,r+=i,a-=2*n,l-=2*i;break;case 3:o+=n,r-=i,a-=2*n,l+=2*i;break;case 4:o-=n,r-=i,a+=2*n,l+=2*i;break;case 5:r+=i,l-=2*i;break;case 6:r-=i,l+=2*i;break;case 7:o+=n,a-=2*n;break;case 8:o-=n,a+=2*n}s={top:r,left:o,width:Math.abs(a),height:Math.abs(l)};this.parentNode.trigger(K,new k(t,{quadrant:e})),this.parentNode.setState(s),this.parentNode.trigger(h,new k(t,{quadrant:e}))}}},{key:"moveGlobalPosition",value:function moveGlobalPosition(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:new k,i=0<t?1:-1,s=0<e?1:-1,o=this.parentNode.state,r=o.localOrigin,a=o.width,l=o.height,o=transformMat2d([],[t,e],invert([],o.absoluteLinearMatrix)),o=(t=o[0],e=o[1],this.state),h=o.left,c=o.top,o=o.quadrant,u=this.state.width/2,d=0;"x"===this.state.direction?d=0<(h=0===yo(h+=t)?.5*i:h)+u-r[0]?8:7:"y"===this.state.direction?d=0<(c=0===yo(c+=e)?.5*s:c)+u-r[1]?6:5:"xy"===this.state.direction&&(s=-l/2/(s=0===yo(s=-a/2)?.5*i:s),0===yo(a=a/2)&&(a=.5*i),c+=e=2===o||4==o?s*(h+u-r[0]+t)-(c+u-r[1]):-l/2/a*(h+u-r[0]+t)-(c+u-r[1]),d=0<(h+=t)+u-r[0]?0<c+u-r[1]?4:1:0<c+u-r[1]?3:2),o!==d&&this.parentNode.toggleControlQuadrant(this,d),this.setPosition(h,c,new k(n,{left:h,top:c,tx:t,ty:e,quadrant:d}))}}]),ResizeControl),vo=(_inherits(RotateControl,f),qs=_createSuper(RotateControl),_createClass(RotateControl,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(RotateControl.prototype),"initEvents",this).call(this),this.on(Q,this.rotateEvtHandler,this)}},{key:"rotateEvtHandler",value:function rotateEvtHandler(t){var e;this.parentNode&&(e=this.parentNode.state.absoluteOrigin,t={transform:{rotate:vs.calcRotateAngle(t.offsetX,t.offsetY,e[0],e[1])+90}},this.parentNode.trigger("BEFORE_ROTATE",new k(t)),this.parentNode.setState(t),this.parentNode.trigger(W,new k(t)))}}]),RotateControl),Co=(_inherits(TransformControlPanel,s),Vs=_createSuper(TransformControlPanel),_createClass(TransformControlPanel,[{key:"initControls",value:function initControls(){var t=this.state.width,e=this.state.height,n=t/2,i=e/2,s=this.resizeControlSize/2,o=[{direction:"xy",quadrant:2,position:[-s,-s]},{direction:"y",quadrant:5,position:[n-s,-s]},{direction:"xy",quadrant:1,position:[t-s,-s]},{direction:"x",quadrant:8,position:[t-s,i-s]},{direction:"xy",quadrant:4,position:[t-s,e-s]},{direction:"y",quadrant:6,position:[n-s,e-s]},{direction:"xy",quadrant:3,position:[-s,e-s]},{direction:"x",quadrant:7,position:[-s,i-s]}];this.resizeControlInstanceCache=[];for(var r=0;r<o.length;r++){var a=o[r],a=new go({zIndex:10000002,display:!1,left:a.position[0],top:a.position[1],width:this.resizeControlSize,height:this.resizeControlSize,style:{strokeStyle:"#8b0000",fillStyle:"#CC3300",lineWidth:1},direction:a.direction,quadrant:a.quadrant});this.addChild(a),this.resizeControlInstanceCache.push(a)}t=this.state.width/2-this.rotateControlSize,n=-this.rotateControlffsetY;this.rotateControlInstance=new vo({zIndex:10000003,display:!1,left:t,top:n,radius:this.rotateControlSize,style:{strokeStyle:"#8b0000",fillStyle:"#CC3300",lineWidth:1}}),this.addChild(this.rotateControlInstance)}},{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(TransformControlPanel.prototype),"initEvents",this).call(this),this.on(h,this.resizeEvtHandler,this),this.on(W,this.rotateEvtHandler,this),this.on("keydown",this.keyboardEvtHandler,this),this.on("keyup",this.keyboardEvtHandler,this)}},{key:"enable",value:function enable(){this.rotateControlInstance.setState({display:!0});for(var t=0;t<this.resizeControlInstanceCache.length;t++)this.resizeControlInstanceCache[t].setState({display:!0});this.setState({display:!0}),this.resume(h),this.resume(W),this.resume("keydown"),this.resume("keyup")}},{key:"disable",value:function disable(){this.rotateControlInstance.setState({display:!1});for(var t=0;t<this.resizeControlInstanceCache.length;t++)this.resizeControlInstanceCache[t].setState({display:!1});this.setState({display:!1}),this.suspend(h),this.suspend(W),this.suspend("keydown"),this.suspend("keyup")}},{key:"keyboardEvtHandler",value:function keyboardEvtHandler(t){this.targetComponent&&this.targetComponent.trigger(t.type,t,{component:this.targetComponent})}},{key:"rotateEvtHandler",value:function rotateEvtHandler(t){var e;this.targetComponent&&(e=this.state.transform.rotate,this.targetComponent.setGlobalRotate(e),this.targetComponent.trigger(W))}},{key:"resizeEvtHandler",value:function resizeEvtHandler(t){if(this.targetComponent){var e=t.quadrant,n=t.movementX,i=t.movementY,t=this.targetComponent.state,s=t.left,o=t.top,r=t.width,a=t.height,t=transformMat2d([],[n,i],invert([],t.absoluteLinearMatrix)),n=t[0],i=t[1];switch(e){case 1:s-=n,o+=i,r+=2*n,a-=2*i;break;case 2:s+=n,o+=i,r-=2*n,a-=2*i;break;case 3:s+=n,o-=i,r-=2*n,a+=2*i;break;case 4:s-=n,o-=i,r+=2*n,a+=2*i;break;case 5:o+=i,a-=2*i;break;case 6:o-=i,a+=2*i;break;case 7:s+=n,r-=2*n;break;case 8:s-=n,r+=2*n}this.targetComponent.setState({left:s,top:o,width:Math.abs(r),height:Math.abs(a)}),this.targetComponent.trigger(h)}}},{key:"updateControlPositions",value:function updateControlPositions(){for(var t=this.state.width,e=this.state.height,n=t/2,i=e/2,s=this.resizeControlSize/2,o=0;o<this.resizeControlInstanceCache.length;o++){var r=this.resizeControlInstanceCache[o],a=[0,0];switch(r.state.quadrant){case 1:a=[t-s,-s];break;case 2:a=[-s,-s];break;case 3:a=[-s,e-s];break;case 4:a=[t-s,e-s];break;case 5:a=[n-s,-s];break;case 6:a=[n-s,e-s];break;case 7:a=[-s,i-s];break;case 8:a=[t-s,i-s]}r.setState({left:a[0],top:a[1]})}var l=this.state.width/2-this.rotateControlSize,h=-this.rotateControlffsetY;this.rotateControlInstance.setState({left:l,top:h})}},{key:"updatePanel",value:function updatePanel(){var t,e,n,i,s;this.targetComponent&&(t=this.targetComponent.getRotateAngle(!0),e=(s=this.targetComponent.getLocalLeftTop(!0)).left,n=s.top,i=s.width,s=s.height,this.setState({left:e,top:n,width:i,height:s,transform:{rotate:t}}))}},{key:"targetComponent",get:function get(){return this._targetComponent},set:function set(t){var e=this;this._targetComponent&&this._targetComponent.off(Q,this.updatePanel,this),this._targetComponent=t,this._targetComponent&&this._targetComponent.on(Q,this.updatePanel,this),this._targetComponent&&this._targetComponent.once(J,function(){e.targetComponent=null,e.disable()},this),this.updatePanel()}},{key:"toggleControlQuadrant",value:function toggleControlQuadrant(t,e){for(var n=0;n<this.resizeControlInstanceCache.length;n++){var i=this.resizeControlInstanceCache[n];if(i.state.quadrant===e){var s=0;switch(e){case 1:s=3;break;case 2:s=4;break;case 3:s=1;break;case 4:s=2;break;case 5:s=6;break;case 6:s=5;break;case 7:s=8;break;case 8:s=7}i.setState({quadrant:s})}}t.setState({quadrant:e})}}]),TransformControlPanel),mo=(_createClass(ICEControlPanelManager,[{key:"start",value:function start(){return this.ice.evtBus.on("mousedown",this.mouseDownHandler,this),this}},{key:"stop",value:function stop(){return this.ice.evtBus.off("mousedown",this.mouseDownHandler,this),this}},{key:"mouseDownHandler",value:function mouseDownHandler(t){t=t.target;if(!t.ice||!t.state.interactive||!t.state.transformable)return this.lineControlPanel.disable(),void this.transformControlPanel.disable();t&&(t.isControlPanel||t.parentNode&&t.parentNode.isControlPanel)||(this.ice.selectionList=[t],this.lineControlPanel.disable(),this.transformControlPanel.disable(),t.isLine?(this.lineControlPanel.targetComponent=t,this.lineControlPanel.enable()):(this.transformControlPanel.targetComponent=t,this.transformControlPanel.enable()))}}]),ICEControlPanelManager),bo=[["mousedown","ICE_MOUSEDOWN"],["mouseup","ICE_MOUSEUP"],["mousemove","ICE_MOUSEMOVE"],["click","ICE_CLICK"],["dblclick","ICE_DBCLICK"],["contextmenu","ICE_CONTEXTMENU"]],ko=[["keydown","ICE_KEYDOWN"],["keyup","ICE_KEYUP"]],_o=(_createClass(DOMEventDispatcher,[{key:"start",value:function start(){for(var i=this,s=null,o=[].concat(_toConsumableArray(bo),_toConsumableArray(ko)),t=function _loop(t){var t=o[t],e=t[0],n=t[1];i.ice.evtBus.on(n,function(t){i._stopped||((s="ICE_MOUSEMOVE"!==n&&-1===n.indexOf("KEY")?i.findTargetComponent(t):s)&&(t.target=s).trigger(e,t),i.ice.evtBus.trigger(e,t,{component:s}))})},e=0;e<o.length;e++)t(e);return this}},{key:"stopped",get:function get(){return this._stopped},set:function set(t){this._stopped=t}},{key:"findTargetComponent",value:function findTargetComponent(t){if(this._stopped)return null;var e=t.offsetX,n=t.offsetY,t=flattenTree([],this.ice.childNodes),i=flattenTree([],this.ice.toolNodes),s=[].concat(_toConsumableArray(t),_toConsumableArray(i));s.sort(function(t,e){return t.state.zIndex-e.state.zIndex});for(var o=0;o<s.length;o++){var r=s[o],a=r.state,l=a.interactive,a=a.display;r.containsPoint(e,n)&&l&&a&&this.selectionCandidates.push(r)}t=this.selectionCandidates.pop();return this.selectionCandidates=[],t}}]),DOMEventDispatcher),Po={evtBuses:[],start:function start(){if(b&&b.addEventListener)for(var t=function _loop(t){for(var n=Po.evtBuses[t],i=[].concat(_toConsumableArray(bo),_toConsumableArray(ko)),e=function _loop2(t){var e=i[t];b.addEventListener(e[0],function(t){n.trigger(e[1],t)})},s=0;s<i.length;s++)e(s)},e=0;e<Po.evtBuses.length;e++)t(e)},regitserEvtBus:function regitserEvtBus(t){Po.evtBuses.includes(t)||Po.evtBuses.push(t)},delEvtBus:function delEvtBus(t){Po.evtBuses.includes(t)&&Po.evtBuses.splice(Po.evtBuses.indexOf(t),1)}},Eo=(_inherits(EventBus,p),Hs=_createSuper(EventBus),_createClass(EventBus)),xo=(_createClass(GeoLine,[{key:"contains",value:function contains(t,e){var n=Math.hypot(this.endPoint.x-this.startPoint.x,this.endPoint.y-this.startPoint.y),i=Math.hypot(t-this.startPoint.x,e-this.startPoint.y),t=Math.hypot(t-this.endPoint.x,e-this.endPoint.y);return n-3<=i+t&&i+t<=n+3}}]),GeoLine),A=(_createClass(GeoPoint,[{key:"equals",value:function equals(t){return this.x==t.x&&this.y==t.y}},{key:"clone",value:function clone(){return new GeoPoint(this.x,this.y)}}],[{key:"load",value:function load(t){return new GeoPoint(Number(t.x),Number(t.y))}},{key:"cloneArray",value:function cloneArray(t){for(var e=[],n=0;n<t.length;n++)e.push(t[n].clone());return e}}]),GeoPoint),u=(_inherits(ICEDotPath,a),$s=_createSuper(ICEDotPath),_createClass(ICEDotPath,[{key:"calcComponentParams",value:function calcComponentParams(){if(!this.dirty)return{width:this.state.width,height:this.state.height};this.calcDots();var t=this.calc4VertexPoints(),e=Math.abs(t[1][0]-t[0][0]),t=Math.abs(t[2][1]-t[0][1]);return this.state.width=e,this.state.height=t,{width:this.state.width,height:this.state.height}}},{key:"calcLocalOrigin",value:function calcLocalOrigin(){for(var t=_get(_getPrototypeOf(ICEDotPath.prototype),"calcLocalOrigin",this).call(this),e=0;e<this.state.dots.length;e++){var n=transformMat2d([],this.state.dots[e],[1,0,0,1,-t[0],-t[1]]);this.state.dots[e]=n}return t}},{key:"createPathObject",value:function createPathObject(){this.path2D=new Path2D,this.path2D.moveTo(this.state.dots[0][0],this.state.dots[0][1]);for(var t=1;t<this.state.dots.length;t++){var e=this.state.dots[t];this.path2D.lineTo(e[0],e[1])}return this.path2D}},{key:"calcDots",value:function calcDots(){return this.state.dots=[],this.state.dots}},{key:"calc4VertexPoints",value:function calc4VertexPoints(){for(var t=this.state.dots[0][0],e=this.state.dots[0][1],n=this.state.dots[0][0],i=this.state.dots[0][1],s=1;s<this.state.dots.length;s++){var o=this.state.dots[s];o[0]<t&&(t=o[0]),o[0]>n&&(n=o[0]),o[1]<e&&(e=o[1]),o[1]>i&&(i=o[1])}return[[t,e],[n,e],[t,i],[n,i]]}},{key:"getTransformedDots",value:function getTransformedDots(){for(var t=this.state.composedMatrix,e=this.state.dots,n=[],i=0;i<e.length;i++){var s=transformMat2d([],e[i],t);n.push(s)}return n}}]),ICEDotPath),lt=(_inherits(ICEImage,l),zs=_createSuper(ICEImage),_createClass(ICEImage,[{key:"doRender",value:function doRender(){var t,e;this.state.src&&(t=(e=this.ice.imageCache.setImage(this.state.src)).loaded,e=e.image,t&&this.ctx.drawImage(e,0-this.state.localOrigin[0],0-this.state.localOrigin[1],this.state.width,this.state.height)),_get(_getPrototypeOf(ICEImage.prototype),"doRender",this).call(this)}}]),ICEImage),Ue=_createClass(function ICEBezier(){_classCallCheck(this,ICEBezier)}),wo=(_inherits(ICELinkSlot,f),Ns=_createSuper(ICELinkSlot),_createClass(ICELinkSlot,[{key:"keyboardEvtHandler",value:function keyboardEvtHandler(t){}},{key:"destory",value:function destory(){this.hostComponent=null,_get(_getPrototypeOf(ICELinkSlot.prototype),"destory",this).call(this)}},{key:"updatePosition",value:function updatePosition(){var t=this._hostComponent.getMinBoundingBox(),e=0,n=0;switch(this.state.position){case"T":e=t.tc[0]-this.state.radius,n=t.tc[1]-this.state.radius;break;case"R":e=t.rc[0]-this.state.radius,n=t.rc[1]-this.state.radius;break;case"B":e=t.bc[0]-this.state.radius,n=t.bc[1]-this.state.radius;break;case"L":e=t.lc[0]-this.state.radius,n=t.lc[1]-this.state.radius;break;case"C":e=t.center[0]-this.state.radius,n=t.center[1]-this.state.radius}this.setState({left:e,top:n})}},{key:"hostComponent",get:function get(){return this._hostComponent},set:function set(t){var e=this;this._hostComponent&&this._hostComponent.off(V,this.updatePosition,this),this._hostComponent=t,this._hostComponent&&this._hostComponent.on(V,this.updatePosition,this),this._hostComponent&&this._hostComponent.once(J,function(){e._hostComponent=null,e.setState({display:!1})},this),this._hostComponent&&this.setState({display:!0})}}]),ICELinkSlot),pt=(_inherits(ICEPolyLine,u),Ds=_createSuper(ICEPolyLine),_createClass(ICEPolyLine,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ICEPolyLine.prototype),"initEvents",this).call(this),this.once(U,this.afterAddHandler,this)}},{key:"afterAddHandler",value:function afterAddHandler(t){this.evtBus.once(X,this.syncConnections,this)}},{key:"syncConnections",value:function syncConnections(){this.removeLink("start"),this.removeLink("end");var t=this.state.links;t&&(t.start&&t.start.id&&t.start.position&&this.createLink(t.start.id,t.start.position),t.end&&t.end.id&&t.end.position&&this.createLink(t.end.id,t.end.position)),this.dirty=!0,this.ice.dirty=!0}},{key:"createLink",value:function createLink(t,e){t=this.ice.findComponent(t);t&&t.on(Q,this.followComponent,this),t&&t.on(h,this.followComponent,this),t&&t.on(W,this.followComponent,this),t&&t.once(V,this.followComponent,this),t&&this.followComponent(),this.state.draggable=!1}},{key:"removeLink",value:function removeLink(t,e,n){var i;this.state.links&&this.state.links[t]&&(i=this.state.links[t].id,t=this.state.links[t].position,n=n||t,i===(e=e||i)&&t===n&&((e=this.ice.findComponent(i))&&e.off(Q,this.followComponent,this),e&&e.off(h,this.followComponent,this),e&&e.off(W,this.followComponent,this)),t=!0,this.state.links.start&&this.state.links.start.id&&(t=!1),this.state.links.end&&this.state.links.end.id&&(t=!1),this.state.draggable=t)}},{key:"getLinkFromId",value:function getLinkFromId(){return this.state.links.start.id}},{key:"getLinkToId",value:function getLinkToId(){return this.state.links.end.id}},{key:"followComponent",value:function followComponent(t){for(var e in this.state.links)if(this.state.links[e]&&this.state.links[e].id&&this.state.links[e].position){var n=this.state.links[e].id,i=this.state.links[e].position,n=this.ice.findComponent(n);if(n){var s=n.getMinBoundingBox(),o=[0,0];switch(i){case"T":o=s.tc;break;case"R":o=s.rc;break;case"B":o=s.bc;break;case"L":o=s.lc;break;case"C":o=s.center}switch(e){case"start":this.setState({startPoint:_toConsumableArray(o)});break;case"end":this.setState({endPoint:_toConsumableArray(o)})}}}}},{key:"calcLocalOrigin",value:function calcLocalOrigin(){var t=[0,0];return this.state.localOrigin=t}},{key:"calcDots",value:function calcDots(){var t=this.state.left,e=this.state.top;this.state.dots=[];for(var n=0;n<this.state.points.length;n++){var i=this.state.points[n],s=i[0]-t,i=i[1]-e;this.state.dots.push([s,i])}return this.calcArrowPoints(),this.state.dots}},{key:"calcArrowPoints",value:function calcArrowPoints(){var t,e,n;"start"!==this.state.arrow&&"both"!==this.state.arrow||(n=_toConsumableArray(this.state.dots[0]),e=[_toConsumableArray(this.state.dots[0]),_toConsumableArray(this.state.dots[1])],e=this.doCalcArrowPoints(e),(t=this.state.dots).unshift.apply(t,_toConsumableArray(e)),this.state.dots.unshift(_toConsumableArray(n))),"end"!==this.state.arrow&&"both"!==this.state.arrow||(t=this.state.dots.length,e=_toConsumableArray(this.state.dots[t-1]),n=[_toConsumableArray(this.state.dots[t-1]),_toConsumableArray(this.state.dots[t-2])],n=this.doCalcArrowPoints(n),(t=this.state.dots).push.apply(t,_toConsumableArray(n)),this.state.dots.push(_toConsumableArray(e)))}},{key:"doCalcArrowPoints",value:function doCalcArrowPoints(t){var e=t[0],t=t[1],n=(t[0]=t[0]-e[0],t[1]=t[1]-e[1],t[0]/Math.hypot.apply(Math,_toConsumableArray(t))),t=t[1]/Math.hypot.apply(Math,_toConsumableArray(t)),i=Math.cos(this.state.arrowAngel),s=Math.sin(this.state.arrowAngel),o=this.state.arrowLength*(n*i-t*s),r=this.state.arrowLength*(t*i+n*s),a=this.state.arrowLength*(n*i+t*s),t=this.state.arrowLength*(t*i-n*s);return[[o+=e[0],r+=e[1]],[a+=e[0],t+=e[1]]]}},{key:"addDot",value:function addDot(t,e){this.state.points.splice(e,0,t),this.state.dots.splice(e,0,[t[0],t[1]])}},{key:"rmDot",value:function rmDot(t){return!(this.state.points.length<3||(this.state.points.splice(t,1),this.state.dots.splice(t,1),0))}},{key:"calcComponentParams",value:function calcComponentParams(){if(!this.dirty)return{width:this.state.width,height:this.state.height};this.calcDots();var t=this.calc4VertexPoints(),e=Math.abs(t[1][0]-t[0][0]),n=this.state.style.lineWidth;return this.isDotsOnSameLine()||(n=Math.abs(t[2][1]-t[0][1])),this.state.width=e,this.state.height=n,{width:this.state.width,height:this.state.height}}},{key:"isDotsOnSameLine",value:function isDotsOnSameLine(){for(var t,e=this.state.points.length,n=yo(this.state.points[0][0],2),i=yo(this.state.points[0][1],2),s=0,o=[yo(this.state.points[e-1][0],2)-n,yo(this.state.points[e-1][1],2)-i],r=0;r<e;r++){var a=this.state.points[r],a=[a[0]-n,a[1]-i];0===(a=o[0]*a[1]-o[1]*a[0],(t=[])[0]=t[1]=0,t[2]=a,t[2])&&s++}return s===e}},{key:"calc4VertexPoints",value:function calc4VertexPoints(){return this.isDotsOnSameLine()?this.splitEndpointsTo4Points():_get(_getPrototypeOf(ICEPolyLine.prototype),"calc4VertexPoints",this).call(this)}},{key:"splitEndpointsTo4Points",value:function splitEndpointsTo4Points(){var t=this.state.points.length,e=this.state.points[t-1][0]-this.state.points[0][0],t=this.state.points[t-1][1]-this.state.points[0][1],n=this.getRotateAngle(),i=this.state.height,s=Math.cos(n*Math.PI/180)*i/2,n=Math.sin(n*Math.PI/180)*i/2;return[[0+(s=yo(s,3)),0+(n=yo(n,3))],[0-s,0-n],[e+s,t+n],[e-s,t-n]]}},{key:"getMinBoundingBox",value:function getMinBoundingBox(){var t=this.state.localOrigin[0],e=this.state.localOrigin[1],n=this.calc4VertexPoints(),t=new Cs([n[0][0]-t,n[0][1]-e,n[1][0]-t,n[1][1]-e,n[2][0]-t,n[2][1]-e,n[3][0]-t,n[3][1]-e,0,0]);return t.transform(this.state.composedMatrix)}},{key:"setState",value:function setState(t){if(_(t.width)||delete t.width,_(t.height)||delete t.height,_(t.transform)||delete t.transform,!_(t.left))for(var e=t.left-this.state.points[0][0],n=0;n<this.state.points.length;n++)this.state.points[n][0]+=e;if(!_(t.top))for(var i=t.top-this.state.points[0][1],s=0;s<this.state.points.length;s++)this.state.points[s][1]+=i;var o;_(t.startPoint)||(this.state.points[0]=_toConsumableArray(t.startPoint),this.state.left=this.state.points[0][0],this.state.top=this.state.points[0][1]),_(t.endPoint)||(o=this.state.points.length,this.state.points[o-1]=_toConsumableArray(t.endPoint)),_(t.links)||($n(this.state.links,t.links),this.syncConnections()),_get(_getPrototypeOf(ICEPolyLine.prototype),"setState",this).call(this,t)}},{key:"getRotateAngle",value:function getRotateAngle(){var t,e;return this.isDotsOnSameLine()?(e=this.state.points.length,t=this.state.points[e-1][0]-this.state.points[0][0],e=this.state.points[e-1][1]-this.state.points[0][1],vs.calcRotateAngle(t,e,0,0)+90):_get(_getPrototypeOf(ICEPolyLine.prototype),"getRotateAngle",this).call(this)}},{key:"containsPoint",value:function containsPoint(t,e){for(var n=this.getLines(),i=0;i<n.length;i++){var s=n[i],o=s.o[0],r=s.o[1],a=s.d[0],s=s.d[1],l=Math.hypot(a-o,s-r),o=Math.hypot(o-t,r-e),r=Math.hypot(a-t,s-e);if(l-3<=o+r&&o+r<=l+3)return!0}return!1}},{key:"getLines",value:function getLines(){var t=[],e=this.getTransformedDots();if(!e||e.length<2)return t;for(var n=0;n<e.length-1;n++){var i={o:[e[n][0],e[n][1]],d:[e[n+1][0],e[n+1][1]]};t.push(i)}return t}},{key:"destory",value:function destory(){this.removeLink("start"),this.removeLink("end"),_get(_getPrototypeOf(ICEPolyLine.prototype),"destory",this).call(this)}}],[{key:"arrangeParam",value:function arrangeParam(t){var e=$n({},{lineType:"solid",lineWidth:1,arrow:"none",arrowLength:15,arrowAngel:30*Vn,points:[],showMinBoundingBox:!1,showMaxBoundingBox:!1,links:{},style:{lineJoin:"round"}},t,{linkable:!1,closePath:!1,fill:!1}),n=e.points.length;return n<2&&(0===n?(e.points.push([0,0]),e.points.push([10,10])):1===n&&e.points.push([10,10])),(e=_objectSpread2(_objectSpread2({},e),{left:t.points[0][0],top:t.points[0][1],transform:{translate:[0,0],scale:[1,1],skew:[0,0],rotate:0}})).style.lineWidth<1&&(e.style.lineWidth=1),e}}]),ICEPolyLine),e=(_inherits(ICEVisioLink,pt),Rs=_createSuper(ICEVisioLink),_createClass(ICEVisioLink,[{key:"calcDots",value:function calcDots(){var t=this.interpolate(),e=this.state,n=e.left,i=e.top,s=t[0][2];this.state.points=[],this.state.dots=[];for(var o=0;o<s.length;o++){var r=s[o];this.state.points.push([r.x,r.y]),this.state.dots.push([r.x-n,r.y-i])}return this.calcArrowPoints(),this.state.dots}},{key:"interpolate",value:function interpolate(){var t=this.state.points.length,e=this.state.points[0][0],n=this.state.points[0][1],i=this.state.points[t-1][0],t=this.state.points[t-1][1],s=new A(e,n),o=new A(i,t),r=[],a=null,l=null,h=[],c=new Cs,u=new Cs;if(f=this.ice&&this.state.links&&this.state.links.start&&this.state.links.start.id?this.ice.findComponent(this.state.links.start.id):f){c=f.getMinBoundingBox(),r[0]=new A(s.x,c.tl[1]-this.state.escapeDistance),r[1]=new A(c.tr[0]+this.state.escapeDistance,s.y),r[2]=new A(s.x,c.br[1]+this.state.escapeDistance),r[3]=new A(c.tl[0]-this.state.escapeDistance,s.y);for(var a=r[0],d=1;d<r.length;d++)this.distance(s,r[d])<this.distance(s,a)&&(a=r[d])}if(y=this.ice&&this.state.links&&this.state.links.end&&this.state.links.end.id?this.ice.findComponent(this.state.links.end.id):y){u=y.getMinBoundingBox(),r[0]=new A(o.x,u.tl[1]-this.state.escapeDistance),r[1]=new A(u.tr[0]+this.state.escapeDistance,o.y),r[2]=new A(o.x,u.br[1]+this.state.escapeDistance),r[3]=new A(u.tl[0]-this.state.escapeDistance,o.y);for(var l=r[0],p=1;p<r.length;p++)this.distance(o,r[p])<this.distance(o,l)&&(l=r[p])}var e=0,n=[s],i=(a&&(n.push(a),e=1),l&&n.push(l),n.push(o),A.cloneArray(n)),t=(h.push(["s0","s0",i]),A.cloneArray(n)),f=A.cloneArray(t),y=(f.splice(e+1,0,new A(f[e].x,f[e+1].y)),h.push(["s1","s1_1",f]),A.cloneArray(t)),i=(y.splice(e+1,0,new A(y[e+1].x,y[e].y)),h.push(["s1","s1_2",y]),A.cloneArray(t)),n=new A((i[e].x+i[e+1].x)/2,i[e].y),f=new A((i[e].x+i[e+1].x)/2,i[e+1].y),y=(i.splice(e+1,0,n,f),h.push(["s2","s2_1",i]),A.cloneArray(t)),n=new A(y[e].x,(y[e].y+y[e+1].y)/2),f=new A(y[e+1].x,(y[e].y+y[e+1].y)/2),i=(y.splice(e+1,0,n,f),h.push(["s2","s2_2",y]),A.cloneArray(t)),n=[i[e].x+20,i[e+1].x+20],f=(c&&n.push(c.br[0]+20),u&&n.push(u.br[0]+20),this.max(n)),y=new A(f,i[e].y),n=new A(f,i[e+1].y),f=(i.splice(e+1,0,y,n),h.push(["s2","s2_3",i]),A.cloneArray(t)),y=[f[e].y-20,f[e+1].y-20],n=(c&&y.push(c.tl[1]-20),u&&y.push(u.tl[1]-20),this.min(y)),i=new A(f[e].x,n),y=new A(f[e+1].x,n),n=(f.splice(e+1,0,i,y),h.push(["s2","s2_4",f]),A.cloneArray(t)),i=[n[e].x-20,n[e+1].x-20],y=(c&&i.push(c.tl[0]-20),u&&i.push(u.tl[0]-20),this.min(i)),f=new A(y,n[e].y),i=new A(y,n[e+1].y),y=(n.splice(e+1,0,f,i),h.push(["s2","s2_5",n]),A.cloneArray(t)),f=[y[e].y+20,y[e+1].y+20],i=(c&&f.push(c.tl[1]+c.height+20),u&&f.push(u.tl[1]+u.height+20),this.max(f)),n=new A(y[e].x,i),t=new A(y[e+1].x,i);y.splice(e+1,0,n,t),h.push(["s2","s2_6",y]);for(var g=[],v=0;v<h.length;v++){var C=h[v][2];this.orthogonalPath(C)&&g.push(h[v])}if(h=g,!s.equals(o)){for(var m=[],b=0;b<h.length;b++){var k=h[b][2];this.forwardPath(k)&&m.push(h[b])}(h=m).length}for(var _=[],P=0;P<h.length;P++){var E=!1,x=h[P][2].slice();(u||c)&&(x=x.slice(1,x.length-1)),c&&(E=E||this.polylineIntersectsRectangle(x,c)),(E=u?E||this.polylineIntersectsRectangle(x,u):E)||_.push(h[P])}(h=0!=_.length?_:h).length;for(var w=h[0][2].length,S=[],I=0;I<h.length;I++)h[I][2].length==w&&S.push(h[I]);for(var h=S,O=0,M=0;M<h.length;M++)this.scorePath(h[O][2])<this.scorePath(h[M][2])&&(O=M);return[h[O]]}},{key:"orthogonalPath",value:function orthogonalPath(t){if(t.length<=1)return!0;for(var e=0;e<t.length-1;e++)if(t[e].x!=t[e+1].x&&t[e].y!=t[e+1].y)return!1;return!0}},{key:"lineIntersectsLine",value:function lineIntersectsLine(t,e){if(t.startPoint.x==t.endPoint.x&&e.startPoint.x==e.endPoint.x)return t.startPoint.x==e.startPoint.x&&(t.contains(e.startPoint.x,e.startPoint.y)||t.contains(e.endPoint.x,e.endPoint.y));if(t.startPoint.x==t.endPoint.x||e.startPoint.x==e.endPoint.x)return t.startPoint.x==t.endPoint.x&&(s=t,t=e,e=s),s=(t.endPoint.y-t.startPoint.y)/(t.endPoint.x-t.startPoint.x),n=t.startPoint.y-s*t.startPoint.x,i=e.startPoint.x,t.contains(i,s=s*i+n)&&e.contains(i,s);var n=(t.endPoint.y-t.startPoint.y)/(t.endPoint.x-t.startPoint.x),i=t.startPoint.y-n*t.startPoint.x,s=(e.endPoint.y-e.startPoint.y)/(e.endPoint.x-e.startPoint.x),o=e.startPoint.y-s*e.startPoint.x;if(n==s)return i==o&&(t.contains(e.startPoint.x,e.startPoint.y)||t.contains(e.endPoint.x,e.endPoint.y));o=(o-i)/(n-s),s=n*o+i;return t.contains(o,s)&&e.contains(o,s)}},{key:"polylineIntersectsRectangle",value:function polylineIntersectsRectangle(t,e){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=[];i.push(new xo(new A(e.x1,e.y1),new A(e.x2,e.y1))),i.push(new xo(new A(e.x2,e.y1),new A(e.x2,e.y2))),i.push(new xo(new A(e.x2,e.y2),new A(e.x1,e.y2))),i.push(new xo(new A(e.x1,e.y2),new A(e.x1,e.y1)));for(var s=0;s<t.length-1;s++)for(var o=new xo(t[s],t[s+1]),r=0;r<i.length;r++)if(this.lineIntersectsLine(o,i[r]))return!0;if(n)for(var a=new xo(t[t.length-1],t[0]),l=0;l<i.length;l++)if(this.lineIntersectsLine(a,i[l]))return!0;return!1}},{key:"scorePath",value:function scorePath(t){if(t.length<=2)return-1;for(var e=0,n=1;n<t.length-1;n++)if(t[n-1].x==t[n].x&&t[n].x==t[n+1].x){if(this.signum(t[n+1].y-t[n].y)!=this.signum(t[n].y-t[n-1].y))return-1;e++}else if(t[n-1].y==t[n].y&&t[n].y==t[n+1].y){if(this.signum(t[n+1].x-t[n].x)!=this.signum(t[n].x-t[n-1].x))return-1;e++}else e--;return e}},{key:"signum",value:function signum(t){return 0<t?1:t<0?-1:0}},{key:"forwardPath",value:function forwardPath(t){if(t.length<=2)return!0;for(var e=0;e<t.length-2;e++)if(t[e].x==t[e+1].x&&t[e+1].x==t[e+2].x){if(0!=this.signum(t[e+1].y-t[e].y)&&this.signum(t[e+1].y-t[e].y)==-1*this.signum(t[e+2].y-t[e+1].y))return!1}else if(t[e].y==t[e+1].y&&t[e+1].y==t[e+2].y&&0!=this.signum(t[e+1].x-t[e].x)&&this.signum(t[e+1].x-t[e].x)==-1*this.signum(t[e+2].x-t[e+1].x))return!1;return!0}},{key:"distance",value:function distance(t,e){return Math.hypot(e.x-t.x,e.y-t.y)}},{key:"max",value:function max(t){if(0==t.lenght)return NaN;for(var e=t[0],n=0;n<t.length;n++)e<t[n]&&(e=t[n]);return e}},{key:"min",value:function min(t){if(0==t.lenght)return NaN;for(var e=t[0],n=0;n<t.length;n++)e>t[n]&&(e=t[n]);return e}},{key:"addDot",value:function addDot(t,e){throw new Error("Can NOT add dot to ICEVisioLink mannually.")}},{key:"rmDot",value:function rmDot(t){throw new Error("Can NOT remove dot from ICEVisioLink mannually.")}}],[{key:"arrangeParam",value:function arrangeParam(t){return _(t.startPoint)&&(t.startPoint=[0,0]),_(t.endPoint)&&(t.endPoint=[10,10]),t.points=[_toConsumableArray(t.startPoint),_toConsumableArray(t.endPoint)],_objectSpread2({escapeDistance:30},t)}}]),ICEVisioLink),te=(_inherits(ICEIsogon,u),Ts=_createSuper(ICEIsogon),_createClass(ICEIsogon,[{key:"calcDots",value:function calcDots(){this.state.dots=[];for(var t=2*Math.PI/this.state.edges,e=this.state.radius,n=0;n<this.state.edges;n++){var i=t*n-toRadian(this.state.startAngle),s=Math.floor(e*Math.cos(i)+e),i=Math.floor(e*Math.sin(i)+e);this.state.dots.push([s,i])}return this.state.dots}},{key:"calcComponentParams",value:function calcComponentParams(){return this.dirty&&(this.calcDots(),this.state.width=2*this.state.radius,this.state.height=2*this.state.radius),{width:this.state.width,height:this.state.height}}},{key:"setState",value:function setState(t){_(t.radius)?_(t.width)?_(t.height)||(t.radius=t.height/2):t.radius=t.width/2:(t.width=2*t.radius,t.height=2*t.radius),_get(_getPrototypeOf(ICEIsogon.prototype),"setState",this).call(this,t)}}]),ICEIsogon),ee=(_inherits(ICERose,u),Ls=_createSuper(ICERose),_createClass(ICERose,[{key:"calcDots",value:function calcDots(){var t=this.state.radius,e=this.state.leafNum;this.state.dots=[];for(var n,i,s=Math.PI/this.state.pointNumber,o=0;n=t+t*Math.sin(e*o)*Math.cos(o),i=t+t*Math.sin(e*o)*Math.sin(o),this.state.dots.push([n,i]),!((o+=s)>=2*Math.PI););return this.state.dots}},{key:"calcComponentParams",value:function calcComponentParams(){return this.dirty&&(this.calcDots(),this.state.width=2*this.state.radius,this.state.height=2*this.state.radius),{width:this.state.width,height:this.state.height}}},{key:"setState",value:function setState(t){_(t.radius)?_(t.width)?_(t.height)||(t.radius=t.height/2,t.width=t.height):(t.radius=t.width/2,t.height=t.width):(t.width=2*t.radius,t.height=2*t.radius),_get(_getPrototypeOf(ICERose.prototype),"setState",this).call(this,t)}}]),ICERose),ae=(_inherits(ICEStar,u),Bs=_createSuper(ICEStar),_createClass(ICEStar,[{key:"calcDots",value:function calcDots(){this.state.dots=[];for(var t,e,n=toRadian(this.state.startAngle),i=Math.PI/this.state.spikes,s=this.state.outerRadius,o=this.state.innerRadius,r=0;r<this.state.spikes;r++)t=Math.cos(n)*s+s,e=Math.sin(n)*s+s,this.state.dots.push([t,e]),n+=i,t=Math.cos(n)*o+s,e=Math.sin(n)*o+s,this.state.dots.push([t,e]),n+=i;return this.state.dots}},{key:"calcComponentParams",value:function calcComponentParams(){return this.dirty&&(this.calcDots(),this.state.width=2*this.state.outerRadius,this.state.height=2*this.state.outerRadius),{width:this.state.width,height:this.state.height}}},{key:"setState",value:function setState(t){_(t.outerRadius)?_(t.width)?_(t.height)||(t.outerRadius=t.height/2):t.outerRadius=t.width/2:(t.width=2*t.outerRadius,t.height=2*t.outerRadius),_get(_getPrototypeOf(ICEStar.prototype),"setState",this).call(this,t)}}]),ICEStar),So="__ICE_UTILS_TEXT_MEASURE_DIV__",d=(_inherits(ICEText,l),js=_createSuper(ICEText),_createClass(ICEText,[{key:"calcComponentParams",value:function calcComponentParams(){return this.dirty?this.measureText():{width:this.state.width,height:this.state.height}}},{key:"measureText",value:function measureText(t){var e;try{if(!(e=this.root.document.getElementById(So))){(e=this.root.document.createElement("div")).setAttribute("id",So);var n,i={visibility:"hidden",position:"absolute",top:"0",left:"0",padding:"0",margin:"0",border:"none",fontFamily:this.state.style.fontFamily,fontWeight:this.state.style.fontWeight,fontSize:this.state.style.fontSize+"px"};for(n in i)e.style[n]=i[n];e.contenteditable=!1,this.root.document.body.appendChild(e)}e.innerHTML=this.state.text;var s=this.state.style,o=s.paddingTop,r=s.paddingBottom,a=s.paddingLeft,l=s.paddingRight,h={width:e.offsetWidth+a+l,height:e.offsetHeight+o+r};return this.props.width=h.width,this.props.height=h.height,this.state.width=h.width,this.state.height=h.height,{width:this.state.width,height:this.state.height}}catch(t){}}},{key:"doRender",value:function doRender(){this.dirty&&this.measureText();var t=this.state.style,e=(t.paddingTop,t.paddingBottom),n=t.paddingLeft;t.paddingRight,this.state.stroke&&this.ctx.strokeText(this.state.text,0-this.state.localOrigin[0]+n,0-this.state.localOrigin[1]+this.state.height-e,this.state.width),this.state.fill&&this.ctx.fillText(this.state.text,0-this.state.localOrigin[0]+n,0-this.state.localOrigin[1]+this.state.height-e,this.state.width),_get(_getPrototypeOf(ICEText.prototype),"doRender",this).call(this)}}],[{key:"arrangeParam",value:function arrangeParam(t){t=$n({text:"",left:0,top:0,width:10,height:10,style:{fontWeight:"bold",fontSize:32,fontFamily:"Arial",lineWidth:1,textBaseline:"bottom",paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}},t);return t.style=_objectSpread2(_objectSpread2({},t.style),{},{font:"".concat(t.style.fontWeight," ").concat(t.style.fontSize,"px ").concat(t.style.fontFamily)}),t}}]),ICEText),Io={ICERect:i,ICECircle:f,ICEEllipse:g,ICEStar:ae,ICEIsogon:te,ICEText:d,ICEImage:lt,ICEGroup:c,ICEVisioLink:e,ICEPolyLine:pt},P={evtBuses:[],stopped:!1,frameCallback:function frameCallback(){for(var t=0;t<P.evtBuses.length;t++){if(P.stopped)return;P.evtBuses[t].trigger(H)}P.stopped||b.requestFrame(P.frameCallback)},start:function start(){P.stopped=!1,b.requestFrame(P.frameCallback)},stop:function stop(){P.stopped=!0},regitserEvtBus:function regitserEvtBus(t){P.evtBuses.includes(t)||P.evtBuses.push(t)},delEvtBus:function delEvtBus(t){P.evtBuses.includes(t)&&P.evtBuses.splice(P.evtBuses.indexOf(t),1)}},Oo=(_createClass(ICELinkSlotManager,[{key:"start",value:function start(){return this.createLinkSlots(),this.ice.evtBus.on(G,this.hookMouseMoveHandler,this),this.ice.evtBus.on(F,this.hookMouseUpHandler,this),this.ice.evtBus.on("mouseup",this.globalMouseUpHandler,this),this}},{key:"stop",value:function stop(){return this.ice.evtBus.off(G,this.hookMouseMoveHandler,this),this.ice.evtBus.off(F,this.hookMouseUpHandler,this),this.ice.evtBus.off("mouseup",this.globalMouseUpHandler,this),this}},{key:"hookMouseMoveHandler",value:function hookMouseMoveHandler(t){for(var e=t.target,n=e.getMaxBoundingBox(),i=_toConsumableArray(this.ice.childNodes),s=0;s<i.length;s++){var o=i[s];if(o&&o.state.linkable&&o.getMaxBoundingBox().isIntersect(n)){this.collision=o;break}}if(this.collision){for(var r=!1,a=0;a<this.ice._linkSlots.length;a++){var l=this.ice._linkSlots[a];l.hostComponent!==this.collision&&(l.hostComponent=this.collision),l.setState({display:!0,style:{fillStyle:"#3ce92c"}}),e.setState({style:{fillStyle:"#3ce92c"}}),l.getMaxBoundingBox().isIntersect(n)&&(r=!0,l.setState({style:{fillStyle:"#fffb00"}}))}r&&e.setState({style:{fillStyle:"#fffb00"}})}else{for(var h=0;h<this.ice._linkSlots.length;h++)this.ice._linkSlots[h].setState({display:!1,style:{fillStyle:"#3ce92c"}});e.setState({style:{fillStyle:"#3ce92c"}})}}},{key:"hookMouseUpHandler",value:function hookMouseUpHandler(t){var t=t.target,e=t.state.position,n=t.parentNode.targetComponent,i=t.getMaxBoundingBox(),s=!1;if(this.collision)for(var o=0;o<this.ice._linkSlots.length;o++){var r=this.ice._linkSlots[o];if(r.setState({display:!1,style:{fillStyle:"#3ce92c"}}),r.getMaxBoundingBox().isIntersect(i)){var s=!0,a={};a[e]={id:r.hostComponent.state.id,position:r.state.position},n&&n.setState({links:a});break}}s?t.setState({display:!1,style:{fillStyle:"#3ce92c"}}):((t={})[e]=null,n&&n.setState({links:t})),this.collision=null}},{key:"globalMouseUpHandler",value:function globalMouseUpHandler(t){for(var e=0;e<this.ice._linkSlots.length;e++)this.ice._linkSlots[e].setState({display:!1,style:{fillStyle:"#3ce92c"}})}},{key:"createLinkSlots",value:function createLinkSlots(){var t,e,n,i,s;this.ice._linkSlots&&this.ice._linkSlots.length||(t=new wo({zIndex:10000010,display:!1,transformable:!1,draggable:!1,radius:this.slotRadius,position:"T",style:{strokeStyle:"#0c09d4",fillStyle:"#3ce92c",lineWidth:1}}),this.ice.addTool(t),e=new wo({zIndex:10000011,display:!1,transformable:!1,draggable:!1,radius:this.slotRadius,position:"R",style:{strokeStyle:"#0c09d4",fillStyle:"#3ce92c",lineWidth:1}}),this.ice.addTool(e),n=new wo({zIndex:10000012,display:!1,transformable:!1,draggable:!1,radius:this.slotRadius,position:"B",style:{strokeStyle:"#0c09d4",fillStyle:"#3ce92c",lineWidth:1}}),this.ice.addTool(n),i=new wo({zIndex:10000013,display:!1,transformable:!1,draggable:!1,radius:this.slotRadius,position:"L",style:{strokeStyle:"#0c09d4",fillStyle:"#3ce92c",lineWidth:1}}),this.ice.addTool(i),s=new wo({zIndex:10000014,display:!1,transformable:!1,draggable:!1,radius:this.slotRadius,position:"C",style:{strokeStyle:"#0c09d4",fillStyle:"#3ce92c",lineWidth:1}}),this.ice.addTool(s),this.ice._linkSlots=[t,e,n,i,s])}}]),ICELinkSlotManager),Mo=(_createClass(Deserializer,[{key:"fromJSONObject",value:function fromJSONObject(t){for(var e=t.childNodes,n=0;n<e.length;n++)this.decodeRecursively(this.ice,e[n])}},{key:"fromJSONString",value:function fromJSONString(t){t=JSON.parse(t);this.fromJSONObject(t)}},{key:"decodeRecursively",value:function decodeRecursively(t,e){var n=new(this.ice.getType(e.type))(e.state),i=(t.addChild(n),e.childNodes);if(i&&i.length)for(var s=0;s<i.length;s++)this.decodeRecursively(n,i[s])}}]),Deserializer),Ao=(_createClass(Serializer,[{key:"toJSONString",value:function toJSONString(){return JSON.stringify(this.toJSONObject())}},{key:"toJSONObject",value:function toJSONObject(){for(var t={createTime:(new Date).toLocaleString(),lastModifyTime:(new Date).toLocaleString(),childNodes:[]},e=0;e<this.ice.childNodes.length;e++){var n=this.ice.childNodes[e];this.encodeRecursively(n,t)}return t}},{key:"encodeRecursively",value:function encodeRecursively(t,e){var n={state:t.state,type:t.constructor.name,childNodes:[]};if(e.childNodes.push(n),t.childNodes&&t.childNodes.length)for(var i=0;i<t.childNodes.length;i++)this.encodeRecursively(t.childNodes[i],n)}}]),Serializer),jo=(_inherits(CanvasRenderer,p),As=_createSuper(CanvasRenderer),_createClass(CanvasRenderer,[{key:"start",value:function start(){return this.stopped=!1,this.ice.evtBus.on(H,this.frameEvtHandler,this),this}},{key:"stop",value:function stop(){return this.stopped=!0,this.ice.evtBus.off(H,this.frameEvtHandler,this),this}},{key:"frameEvtHandler",value:function frameEvtHandler(t){this.ice.dirty&&this.doRender()}},{key:"refreshQueue",value:function refreshQueue(){this.componentQueue=flattenTree([],this.ice.childNodes),this.componentQueue.sort(function(t,e){return t.state.zIndex-e.state.zIndex}),this.toolsQueue=flattenTree([],this.ice.toolNodes),this.toolsQueue.sort(function(t,e){return t.state.zIndex-e.state.zIndex})}},{key:"doRender",value:function doRender(){this.refreshQueue(),this.ice.ctx.clearRect(0,0,this.ice.canvasWidth,this.ice.canvasHeight);for(var t=0;t<this.componentQueue.length;t++){var e=this.componentQueue[t];e.root=this.ice.root,e.ctx=this.ice.ctx,e.evtBus=this.ice.evtBus,e.ice=this.ice,e.render()}for(var n=0;n<this.toolsQueue.length;n++){var i=this.toolsQueue[n];i.root=this.ice.root,i.ctx=this.ice.ctx,i.evtBus=this.ice.evtBus,i.ice=this.ice,i.render()}this.ice.dirty=!1,this.ice.evtBus.trigger(X)}}]),CanvasRenderer),Bo=(_createClass(ImageCache,[{key:"setImage",value:function setImage(t){var e=this,n=this.imageCache.get(t);return n||((n=new Image).onload=function(){e.ice.dirty=!0},n.onerror=function(){},n.src=t,this.imageCache.size>ImageCache.CACHE_SIZE&&this.imageCache.delete(this.imageCache.keys().next().value),this.imageCache.set(t,n)),{loaded:this.loaded(n),image:n}}},{key:"loaded",value:function loaded(t){return t.complete&&0<t.naturalWidth}}]),ImageCache);function ImageCache(t){_classCallCheck(this,ImageCache),_defineProperty$1(this,"imageCache",new Map),this.ice=t}function CanvasRenderer(t){var e;return _classCallCheck(this,CanvasRenderer),_defineProperty$1(_assertThisInitialized(e=As.call(this)),"stopped",!1),_defineProperty$1(_assertThisInitialized(e),"componentQueue",[]),_defineProperty$1(_assertThisInitialized(e),"toolsQueue",[]),e.ice=t,e}function Serializer(t){_classCallCheck(this,Serializer),this.ice=t}function Deserializer(t){_classCallCheck(this,Deserializer),this.ice=t}function ICELinkSlotManager(t){_classCallCheck(this,ICELinkSlotManager),_defineProperty$1(this,"slotRadius",10),this.ice=t}function ICEText(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=(_classCallCheck(this,ICEText),ICEText.arrangeParam(t));return(t=js.call(this,t)).measureText(),t}function ICEStar(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=(_classCallCheck(this,ICEStar),_objectSpread2({outerRadius:50,innerRadius:20,startAngle:90,spikes:5},t));return t.spikes=Math.floor(1<=t.spikes?t.spikes:1),t.width=2*t.outerRadius,t.height=2*t.outerRadius,Bs.call(this,t)}function ICERose(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=(_classCallCheck(this,ICERose),_objectSpread2({radius:50,leafNum:2,pointNumber:100},t));return t.leafNum=Math.floor(2<=t.leafNum?t.leafNum:2),t.width=2*t.radius,t.height=2*t.radius,Ls.call(this,t)}function ICEIsogon(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=(_classCallCheck(this,ICEIsogon),_objectSpread2({radius:10,edges:3,startAngle:90},t));return t.edges=Math.floor(3<=t.edges?t.edges:3),t.width=2*t.radius,t.height=2*t.radius,Ts.call(this,t)}function ICEVisioLink(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEVisioLink),t=ICEVisioLink.arrangeParam(t),Rs.call(this,t)}function ICEPolyLine(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=(_classCallCheck(this,ICEPolyLine),ICEPolyLine.arrangeParam(t));return _defineProperty$1(_assertThisInitialized(t=Ds.call(this,t)),"isLine",!0),t}function ICELinkSlot(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICELinkSlot),Ns.call(this,_objectSpread2({linkable:!1,draggable:!1,position:"T"},t))}function ICEImage(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEImage),zs.call(this,_objectSpread2({width:100,height:100,src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALkAAAC2CAYAAACF+yyJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAtoSURBVHhe7Z3tj15FHYb9VxUVo7zFUBWC8YXoF9++GENMRAWRKAkxGj8pihpjFBVF1CBlKaUU+wK0pYVqt12fn+6xs7PXnDPzO3O2Z+a5r+T6ss995nm2vXf3vM68570vXNuTsmdVctm9KrnsXpVcdq9KLrtXJZfdq5LL7lXJZfeq5LJ7VXLZvSq57F6VXHavSi67VyWX3auSy+5VyWX3quSye1Vy2b0quexelVx2r0ouu1cll92rksvuVcll96rksntVctm9KrnsXpVcdq9KLrtXJZfdq5LL7lXJZfeq5LJ7VfIjcIy7j/M2sp4q+YKWQNvLOqrkC+nhodO7OJacp0q+gHO4/2UVvbYqeWXH+O2lG3sf29nd++Eb1/e/wtC40q9KXtGfX+Dy3v4PzpspKCt9quQVJSgXS1BO+lTJK0pQLvab/zz8F+CjL3FWlquSV/KBE7v79bwJ5VISlJPlquSV/AXsj1MuJUE5Wa5KXsmfvKWSr1WVvJJ2BiWGciljLm/2figny1XJK0pQLvbS4d15zEmfKnlFicfPXsdsKEE56VMlr+hdx7mwqV2P75/ji0dvboahvPSpkle2BjSu9KuSL+AcaDw5T5V8IT3QOHK+KvmCni/oOm0v66iSO/zz5Rv71cwr56Nn+ADzmUs3MB8bQq/LcVVyhzHvg0wsQbnYmCfPTZ+SlAdVyQv92mm4crPhzokHkgnKhaagrEyrkjtM8eAr6UfXCMoNpqCsHFcld5rC7g3PzVPOTPHZkR8imbbpkqeg7BKm+NXFw0Un4swH4CavgTuOaH6Wd/gYGbOt2GTJc8k5IJxrileuHjxzQoSv37uTHutWfh8x9zU4m0BTJd959+apu1z+tdmExgoN+euVvNN6oSnCe1aI4bUvneKDWWPI5PrhFw++F2VC6dG7HGistdpMyc/9u7zgA/bfSGMOxlBmyhT2qVOv29efSNykZYTj5xrz2Jn0KcdvOQs+QGOu0SZKbn+u5/LAyJ/ZGO/uQSnPvp3+waXxc4x57nL6L9Ncnh0Ze002UfIUlDVTUNYkKJdjDWjcHD938vBuD+XMFJQ1U1B2ba6+5HZWgaBsKPFwhdN7Oc6BxsuVoJxJUC6UuJi4V35Nrr7kBOVIYk6uRA80TonEnBxJUG5NquQbbZLNGMqVWgJtX2rMcNA7lTMoR9JRBOXWZHMlt4d+KUc+VTBNRIydzaFcqTnQdqXeVjBbAEE5ki5YUW5NNlfy+CLLmN876y+5QTmPYyc/Ke+RoJxJUC5lDGXWpHZX9iUo55WgnFeCciZBOfL5K4d/ZCm3JlXyfR+BBxso55WgnFeCciZBOZKg3Jpcfcl/nJiwnrKhqWt5x3byLwr98kK9BxQIynmNscn+KWemoGxo6uIVZdfk6ktupqCseW1sJ3gf2o6gnEeCch4vwPCUy4G2M/8OuykGZddmEyW3ZUjG+PSJ3f9etr+eUe6Y8H2I8PU5EpTzSISv0370FF8+tbv38c1fA/oBCgnfZ602UXJzSexGJXsPe7A4Jv4cXgnKeSTs6zXu+Rkj/hxrtZmSm15yt6Xc11+vc/80QTmPMXb7Qg60bS7xZ1izTZXcLLmn/Orm/zrc1vubLRzDK0G5Un9zsXxXxB7GDsewSUlLCLdtweZKPjh2f/m7Ublj/zhyiytBY5RKUK7UEuy7pjEGfwZXiENomxZstuQ1zIW2LfE1ezwpAeVLzIW23Ra3uuSDOdB2U9rzkDn8yfnwQQ73ahU5/SYv4Y3NJjQO6eGDI4vahqYmOBpjm5dM3KqSp66elnL3yPQQNaBxB2twttIdlq3YfcmXJHyfF96ZPpgdzvb84HzeD1s4/pJ8pvNJi7or+e8Lz5wQdrXPxqIFaGNy/zbEn9PM4W8ZVyvte7bxPhRNR+Hh7YL79Vuxq5J7ic+nx6ZmlcqBxoudA403+LuJ2yHGoPFadWtL/qnNb2kaY8wShlsFch2bIo6gMcYsvRBmD5zQOC26NSWvdbD1/oky2k1itF2uT8Py5SHfrVS+qYNw2qZVuyq5FSDkngVPmxGU80pQrpYhdqsyZVq1uwPPo5KgnFeCcnJaldwpQTmvBOXktCq5U4JyXgnKyWlVcqcE5bwSlJPTquROCcp5JSgnp1XJnRKU80pQTk6rkjslKOeVoJycViV3SlDOK0E5Oa1K7pSgnFeCcnJaldwpQTmvBOXktF2VPL6sP/Zww1wJynklKFfLkKm7Mluzq5KPUesGram7Be3mVtou119PTDGhG7TK3ZqSx3xy4VttHx1ZWpC05ztLoDHG1K22nehl6mkYPTTRtt0deP6hwuNvX3z1f7/l7bf9FLmTjMaf08zBVoiewiZLsvFqPP4WriLdi92VPPQoJ7zMeZB5WAJdDzIfrV2XPLbWlBR3aUqKptyqkseWcqagHB40udAybnXJB3Og7ab8ROY0cXaASNtPmXM4oGni9Js8C9q2xFOa8POW2mzJbdchhZ3yo20GS8/A0BilEpQrtQT7rmmMQVsIbAzapgWbK/lLmoT/gJ5J+L/62sGzKY/B8o5jhNu2YFMl95K7LeVaXE7lG6/nlZa2zSX+DGu2mZIvyTDbFV0hjD+HV4JyHgn7+lFeJ1izTZQ8Z4lDuzqpJQ5vEr6ec9U05guv7u7d//Lu3lsTPyfh+6zVJkqegrLmyDHp/6HtCMp5JCjn8SgWq039oFB2ba6+5LWXHS9ZjrvlZceP7XDOTEHZ0NRZKcquydWXnKAcSVDOfATOMFDOK0E5rwTlTIJyJEG5NamS70tQzitBOa8E5UyCcuRzlw//Nqfcmmyu5Ceu5l8Ctxv/YyhnEpTzOHZCj/IeCcqZBOVSxlBmTTZX8pLlPmjxVcqZMbYYLuVKzYG2K5XmTaecSVCOLHmftajdlY12qiyGcqWWQNuXGmM7Fjk5g3IkHXpSbk2q5AW5Ej3QOCUSc3IkQbk1ufqS33Hc9w9LfDuxjg9BuVznQOPlSlDOJCgXStg5esquydWX3ExBWTMFZU2CcjnWgMbN8fMn83e7UlDWTEHZtdlEyUtXRiPGpqCIsXs+KDdlKc+PXG6n8XOMsVN+lDPnYldBady12UTJTVvX3kvqAGwwhjJTphjem7CvP3EufYIxHD/XmO+MzP9iN6bNgcZco82U3Bx7wibF1AMUZshfRn7zpUxxJXhvYnjtK6fSj8kNmVzvjI5hKBP6sLPoNNZabarkg7l4dztKTHEyumhFhK8f20kX/VZ+HzH23Cptv2abLPlgCsouYQqbzzAnG2duHzn2+MiLB7NLaWt4Ekfxg7aUTZf8VpoitQ9MUM5M4VkqXarkLlM8ODITFUG5wRSUleOq5IWmJvaxAz7KDxKUC01BWZlWJXcYcxtkYgnKxcY8ea7egxzbokruMLynml6PtbnKiWcyZ84KodfluCr5gp5P73EcgraXdVTJF9IDjSPnq5Iv4BxoPDlPlbyyNaBxpV+VvKK2pCJxaZeL+zg8g2q8uRmG8tKnSl5RImdJQoJy0qdKXlGCcrEX4foS5aRPlbySdHMV5VLGlMxKIMdVySv504LpL0iCcrJclbyStEoD5VISlJPlquSVpIVtKZeSoJwsVyWvKEG5WHrWcpuXJKytSl5RgnKxBOWkT5W8ok8nVk+zNe8pb6agrPSpkld2DLu11hYB+NHE8uc0rvSrki/gHO5r8Gn4tauSL6SHh06r4Euoki9oCbS9rKNKfgSOcY9OFS6uSi67VyWX3auSy+5VyWX3quSye1Vy2b0quexelVx2r0ouu1cll92rksvuVcll96rksntVctm9KrnsXpVcdq9KLrtXJZfdq5LL7lXJZfeq5LJ7VXLZvSq57F6VXHavSi67VyWX3auSy+5VyWX3quSye1Vy2b0quezca3v/AeMnvtkH1pHJAAAAAElFTkSuQmCC"},t))}function ICEDotPath(t){return _classCallCheck(this,ICEDotPath),$s.call(this,_objectSpread2({dots:[],closePath:!0},t))}function GeoPoint(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0,e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0;_classCallCheck(this,GeoPoint),this.x=t,this.y=e}function GeoLine(t,e){_classCallCheck(this,GeoLine),this.startPoint=t,this.endPoint=e}function EventBus(){return _classCallCheck(this,EventBus),Hs.call(this)}function DOMEventDispatcher(t){_classCallCheck(this,DOMEventDispatcher),_defineProperty$1(this,"selectionCandidates",[]),_defineProperty$1(this,"_stopped",!1),this.ice=t}function ICEControlPanelManager(t){_classCallCheck(this,ICEControlPanelManager),this.ice=t,this.transformControlPanel=new Co({left:500,top:100,width:100,height:100,style:{strokeStyle:"#8b0000",fillStyle:"rgba(255, 255, 49, 0.2)",lineWidth:1},transform:{rotate:45}}),this.ice.addTool(this.transformControlPanel),this.transformControlPanel.disable(),this.lineControlPanel=new Os({left:700,top:50,width:100,height:100,style:{strokeStyle:"rgba(255, 255, 49, 0)",fillStyle:"rgba(255, 255, 49, 0)",lineWidth:1}}),this.ice.addTool(this.lineControlPanel),this.lineControlPanel.disable()}function TransformControlPanel(t){return _classCallCheck(this,TransformControlPanel),_defineProperty$1(_assertThisInitialized(t=Vs.call(this,_objectSpread2(_objectSpread2({},t),{},{zIndex:10000001,linkable:!1,showMinBoundingBox:!1,showMaxBoundingBox:!1}))),"rotateControlSize",8),_defineProperty$1(_assertThisInitialized(t),"rotateControlffsetY",60),_defineProperty$1(_assertThisInitialized(t),"resizeControlInstanceCache",[]),_defineProperty$1(_assertThisInitialized(t),"resizeControlSize",16),t.initControls(),t}function RotateControl(t){return _classCallCheck(this,RotateControl),qs.call(this,_objectSpread2(_objectSpread2({},t),{},{linkable:!1}))}function ResizeControl(t){return _classCallCheck(this,ResizeControl),Us.call(this,_objectSpread2(_objectSpread2({position:"l",direction:"x",quadrant:1},t),{},{linkable:!1}))}_defineProperty$1(Bo,"CACHE_SIZE",100);_createClass(ICE,[{key:"init",value:function init(t){if(!t)throw new Error("ICE.init() failed...");if(this.ctx===t)throw new Error("同一个 canvas 实例只能 init 一次...");for(var e in Io)this.typeMapping[e]=Io[e];return this.root=b,z(t)?(this.canvasEl=this.root.document.getElementById(t),this.canvasEl.oncontextmenu=function(t){t.preventDefault(),t.stopPropagation()},this.canvasWidth=this.canvasEl.width,this.canvasHeight=this.canvasEl.height,this.canvasBoundingClientRect=this.canvasEl.getBoundingClientRect(),this.ctx=this.canvasEl.getContext("2d")):this.ctx=t,this.evtBus=new Eo,P.regitserEvtBus(this.evtBus),P.start(),Po.regitserEvtBus(this.evtBus),Po.start(),this.eventDispatcher=new _o(this).start(),this.animationManager=new Y(this).start(),this.controlPanelManager=new mo(this).start(),this.renderer=new jo(this).start(),this.linkSlotManager=new Oo(this).start(),this.serializer=new Ao(this),this.deserializer=new Mo(this),this.imageCache=new Bo(this),this}},{key:"addTool",value:function addTool(t){-1===this.childNodes.indexOf(t)&&(this.evtBus.trigger(q,null,{component:t}),t.trigger(q),t.ice=this,t.ctx=this.ctx,t.evtBus=this.evtBus,this.toolNodes.push(t),this.dirty=!0,this.evtBus.trigger(U,null,{component:t}),t.trigger(U))}},{key:"removeTool",value:function removeTool(t){this.evtBus.trigger(J,null,{component:t}),t.destory(),this.toolNodes.splice(this.toolNodes.indexOf(t),1),this.dirty=!0}},{key:"addChild",value:function addChild(t){var e=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];-1===this.childNodes.indexOf(t)&&(this.evtBus.trigger(q,null,{component:t}),t.trigger(q),t.ice=this,t.ctx=this.ctx,t.evtBus=this.evtBus,t.parentNode=null,this.childNodes.push(t),Object.keys(t.props.animations).length&&this.animationManager.add(t),this.dirty=e,this.evtBus.trigger(U,null,{component:t}),t.trigger(U))}},{key:"addChildren",value:function addChildren(t){for(var e=0;e<t.length;e++)this.addChild(t[e],!1);this.dirty=!0}},{key:"removeChild",value:function removeChild(t){var e=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];this.evtBus.trigger(J,null,{component:t}),t.destory(),this.childNodes.splice(this.childNodes.indexOf(t),1),this.dirty=e}},{key:"removeChildren",value:function removeChildren(t){for(var e=0;e<t.length;e++)this.removeChild(t[e],!1);this.dirty=!0}},{key:"clearAll",value:function clearAll(){this.removeChildren(_toConsumableArray(this.childNodes))}},{key:"findComponent",value:function findComponent(e){return this.childNodes.filter(function(t){return t.props.id===e})[0]}},{key:"dirty",get:function get(){return this.__dirty},set:function set(t){this.__dirty=t}},{key:"registerType",value:function registerType(t,e){this.typeMapping[t]=e}},{key:"getType",value:function getType(t){return this.typeMapping[t]}},{key:"toJSONString",value:function toJSONString(){return this.serializer.toJSONString()}},{key:"toJSONObject",value:function toJSONObject(){return this.serializer.toJSONObject()}},{key:"fromJSONObject",value:function fromJSONObject(t){var e=this;P.stop(),this.renderer.stop(),this.eventDispatcher.stopped=!0,this.animationManager.stop(),this.controlPanelManager.stop(),this.linkSlotManager.stop(),this.clearAll(),this.deserializer.fromJSONObject(t),P.start(),this.renderer.start(),this.animationManager.start(),this.controlPanelManager.start(),this.linkSlotManager.start(),setTimeout(function(){e.eventDispatcher.stopped=!1},300)}},{key:"fromJSONString",value:function fromJSONString(t){t=JSON.parse(t);this.fromJSONObject(t)}}]);o=ICE;function ICE(){_classCallCheck(this,ICE),_defineProperty$1(this,"childNodes",[]),_defineProperty$1(this,"toolNodes",[]),_defineProperty$1(this,"canvasWidth",0),_defineProperty$1(this,"canvasHeight",0),_defineProperty$1(this,"selectionList",[]),_defineProperty$1(this,"typeMapping",{}),_defineProperty$1(this,"__dirty",!0)}t.AnimationManager=Y,t.CanvasRenderer=jo,t.DOMEventDispatcher=_o,t.DOMEventInterceptor=Po,t.EventBus=Eo,t.GeoLine=xo,t.GeoPoint=A,t.GeoUtil=vs,t.ICE=o,t.ICEBezier=Ue,t.ICEBoundingBox=Cs,t.ICECircle=f,t.ICEComponent=l,t.ICEControlPanel=s,t.ICEControlPanelManager=mo,t.ICEDotPath=u,t.ICEEllipse=g,t.ICEEventTarget=p,t.ICEGroup=c,t.ICEImage=lt,t.ICEIsogon=te,t.ICELinkHook=Is,t.ICELinkSlot=wo,t.ICEPath=a,t.ICEPolyLine=pt,t.ICERect=i,t.ICERose=ee,t.ICEStar=ae,t.ICEText=d,t.ICEVisioLink=e,t.LineControlPanel=Os,t.ResizeControl=go,t.RotateControl=vo,t.TransformControlPanel=Co,Object.defineProperty(t,"__esModule",{value:!0})});
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
2
|
+
* @singleton
|
|
3
|
+
* @class FrameManager 帧频控制器
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
-
* 在同一个 window/global 中,只有一个 FrameManager ,也就是说 FrameManager 是跨 ICE 实例共享的。
|
|
6
|
-
* FrameManager 只负责把 window/global 上的 requestAnimationFrame 回调函数转换成 ICE_EVENT_NAME_CONSTS.ICE_FRAME_EVENT 事件,然后在所有事件总线上进行触发。
|
|
7
|
-
* FrameManager 只触发事件,不进行渲染,渲染操作由对应的 Render 完成。
|
|
5
|
+
* - 全局单例,请勿创建多个实例。
|
|
6
|
+
* - 在同一个 window/global 中,只有一个 FrameManager ,也就是说 FrameManager 是跨 ICE 实例共享的。
|
|
7
|
+
* - FrameManager 只负责把 window/global 上的 requestAnimationFrame 回调函数转换成 ICE_EVENT_NAME_CONSTS.ICE_FRAME_EVENT 事件,然后在所有事件总线上进行触发。
|
|
8
|
+
* - FrameManager 只触发事件,不进行渲染,渲染操作由对应的 Render 完成。
|
|
9
|
+
* - FrameManager 与 EventBus 之间是一对多的关系,一个 FrameManager 上可以注册多个事件总线,因为同一个页面上可能会存在多幅画面。
|
|
8
10
|
*
|
|
9
|
-
* @singleton
|
|
10
11
|
* @see ICE
|
|
11
12
|
* @author 大漠穷秋<damoqiongqiu@126.com>
|
|
12
13
|
*/
|
|
@@ -16,8 +17,9 @@ declare const FrameManager: {
|
|
|
16
17
|
frameCallback: () => void;
|
|
17
18
|
start: () => void;
|
|
18
19
|
stop: () => void;
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
/**
|
|
21
|
+
* @method registerEvtBus 注册事件总线
|
|
22
|
+
*/
|
|
21
23
|
regitserEvtBus: (evtBus: any) => void;
|
|
22
24
|
delEvtBus: (evtBus: any) => void;
|
|
23
25
|
};
|
package/dist/types/ICE.d.ts
CHANGED
|
@@ -10,10 +10,9 @@ import ImageCache from './util/ImageCache';
|
|
|
10
10
|
/**
|
|
11
11
|
* @class ICE
|
|
12
12
|
*
|
|
13
|
-
* ICE: Interactive Canvas Engine , 交互式 canvas 渲染引擎。
|
|
14
|
-
*
|
|
15
13
|
* - ICE 是整个引擎的主入口类。
|
|
16
|
-
* - 同一个
|
|
14
|
+
* - 同一个 canvas 标签上只能初始化一个 ICE 实例。
|
|
15
|
+
* - 同一个页面上可以存在多幅图。
|
|
17
16
|
*
|
|
18
17
|
* @author 大漠穷秋<damoqiongqiu@126.com>
|
|
19
18
|
*/
|
|
@@ -70,7 +69,6 @@ declare class ICE {
|
|
|
70
69
|
removeChildren(arr: Array<ICEComponent>): void;
|
|
71
70
|
clearAll(): void;
|
|
72
71
|
findComponent(id: string): any;
|
|
73
|
-
protected _lastUpdateTime: number;
|
|
74
72
|
set dirty(flag: boolean);
|
|
75
73
|
get dirty(): boolean;
|
|
76
74
|
/**
|