ice-entity-designer 0.0.13 → 0.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -22,4 +22,4 @@
22
22
  * SOFTWARE.
23
23
  */
24
24
 
25
- "use strict";function ownKeys$1(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$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1(Object(n),!0).forEach(function(t){_defineProperty$2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _classCallCheck$1(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$1(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$1(t,e,n){return e&&_defineProperties$1(t.prototype,e),n&&_defineProperties$1(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function _defineProperty$2(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function _inherits$1(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$1(t,e)}function _getPrototypeOf$1(t){return(_getPrototypeOf$1=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function _setPrototypeOf$1(t,e){return(_setPrototypeOf$1=Object.setPrototypeOf||function _setPrototypeOf(t,e){return t.__proto__=e,t})(t,e)}function _assertThisInitialized$1(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function _possibleConstructorReturn$1(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$1(t)}function _createSuper$1(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$1(n);return _possibleConstructorReturn$1(this,i?(t=_getPrototypeOf$1(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function _superPropBase$1(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=_getPrototypeOf$1(t)););return t}function _get$1(){return(_get$1="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,e,n){var i=_superPropBase$1(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$1(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray$1(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$1(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$1(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$1(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 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){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}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&&function _setPrototypeOf(t,e){(Object.setPrototypeOf||function _setPrototypeOf(t,e){return t.__proto__=e,t})(t,e)}(t,e)}function _getPrototypeOf(t){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}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)}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 _possibleConstructorReturn(this,i?(t=_getPrototypeOf(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function _superPropBase(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=_getPrototypeOf(t)););return t}function _get(){return(_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,e,n){var i=_superPropBase(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}Object.defineProperty(exports,"__esModule",{value:!0});var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e="object"==typeof t&&t&&t.Object===Object&&t,n=e,i="object"==typeof self&&self&&self.Object===Object&&self,r=n||i||Function("return this")(),o=r.Symbol,a=o,s=Object.prototype,l=s.hasOwnProperty,c=s.toString,h=a?a.toStringTag:void 0,u=Object.prototype.toString,d=function getRawTag$1(t){var e=l.call(t,h),n=t[h];try{var i=!(t[h]=void 0)}catch(t){}var r=c.call(t);return i&&(e?t[h]=n:delete t[h]),r},f=function objectToString$1(t){return u.call(t)},p=o?o.toStringTag:void 0,y=function baseGetTag$7(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":(p&&p in Object(t)?d:f)(t)},v=Array.isArray,g=function isObjectLike$9(t){return null!=t&&"object"==typeof t},m=y,b=v,C=g,_=function isString(t){return"string"==typeof t||!b(t)&&C(t)&&"[object String]"==m(t)},k=function isUndefined(t){return void 0===t},w="ICE_FRAME_EVENT",P="BEFORE_RENDER",x="AFTER_RENDER",E="BEFORE_ADD",S="AFTER_ADD",$="BEFORE_REMOVE",O="ROUND_FINISH",I="HOOK_MOUSEDOWN",j="HOOK_MOUSEMOVE",M="HOOK_MOUSEUP",A="BEFORE_RESIZE",B="AFTER_RESIZE",L="AFTER_ROTATE",T="BEFORE_MOVE",z="AFTER_MOVE",R={linear:function linear(t,e,n,i){return t+(e-t)/n*(Date.now()-i)},easeInQuad:function easeInQuad(t,e,n,i){return t+(e-t)/n*((i=Date.now()-i)/n)*i},easeOutQuad:function easeOutQuad(t,e,n,i){return i=Date.now()-i,-(e-t)*(i/=n)*(i-2)+t},easeInOutQuad:function easeInOutQuad(t,e,n,i){return i=Date.now()-i,e-=t,(i/=n/2)<1?e/2*i*i+t:-e/2*(--i*(i-2)-1)+t},easeInQuart:function easeInQuart(t,e,n,i){return i=Date.now()-i,(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){return i=Date.now()-i,e-=t,(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){return i=Date.now()-i,(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){return i=Date.now()-i,e-=t,(i/=n/2)<1?e/2*i*i*i+t:e/2*((i-=2)*i*i+2)+t}},N=function(){function AnimationManager(t){_classCallCheck(this,AnimationManager),_defineProperty$1(this,"animationMap",new Map),this.ice=t}return _createClass(AnimationManager,[{key:"start",value:function start(){return this.ice.evtBus.on(w,this.frameEventHandler,this),this}},{key:"stop",value:function stop(){return this.ice.evtBus.off(w,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,r=1;for(e in i){var o=i[e];if(o.finished){if(++r===Object.keys(i).length){this.remove(t);break}}else{var s=o.from,a=o.to,l=o.duration;a<(k(o.startTime)&&(o.startTime=Date.now()),k(o.easing)&&(o.easing="linear"),s=R[o.easing](s,a,l,o.startTime))&&(s=a,o.finished=!0),n[e]=Math.floor(s)}}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){_(t)?this.animationMap.delete(t):this.animationMap.delete(t.props.id)}}]),AnimationManager}(),D=function eq$4(t,e){return t===e||t!=t&&e!=e},H=D,V=function assocIndexOf$4(t,e){for(var n=t.length;n--;)if(H(t[n][0],e))return n;return-1},F=V,U=Array.prototype.splice,q=V,W=V,J=V,G=function listCacheClear$1(){this.__data__=[],this.size=0};function ListCache$4$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])}}ListCache$4$1.prototype.clear=G,ListCache$4$1.prototype.delete=function listCacheDelete$1(t){var e=this.__data__;return!((t=F(e,t))<0||(t==e.length-1?e.pop():U.call(e,t,1),--this.size,0))},ListCache$4$1.prototype.get=function listCacheGet$1(t){var e=this.__data__;return(t=q(e,t))<0?void 0:e[t][1]},ListCache$4$1.prototype.has=function listCacheHas$1(t){return-1<W(this.__data__,t)},ListCache$4$1.prototype.set=function listCacheSet$1(t,e){var n=this.__data__,i=J(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this};var X,K=ListCache$4$1,Q=K,Z=function isObject$9(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},Y=y,tt=Z,et=function isFunction$3(t){return!!tt(t)&&("[object Function]"==(t=Y(t))||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t)},nt=r["__core-js_shared__"],it=(X=/[^.]+$/.exec(nt&&nt.keys&&nt.keys.IE_PROTO||""))?"Symbol(src)_1."+X:"",rt=Function.prototype.toString,ot=function toSource$2(t){if(null!=t){try{return rt.call(t)}catch(t){}try{return t+""}catch(t){}}return""},at=et,st=function isMasked$1(t){return!!it&&it in t},lt=Z,ct=ot,ht=/^\[object .+?Constructor\]$/,ut=Function.prototype,dt=Object.prototype,ft=ut.toString,pt=dt.hasOwnProperty,yt=RegExp("^"+ft.call(pt).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),vt=function getNative$7(t,e){return function baseIsNative$1(t){return lt(t)&&!st(t)&&(at(t)?yt:ht).test(ct(t))}(t=function getValue$1(t,e){return null==t?void 0:t[e]}(t,e))?t:void 0},gt=vt(r,"Map"),mt=vt(Object,"create"),bt=mt,Ct=mt,_t=Object.prototype.hasOwnProperty,kt=mt,wt=Object.prototype.hasOwnProperty,Pt=mt,xt=function hashClear$1(){this.__data__=bt?bt(null):{},this.size=0},Et=function hashDelete$1(t){return t=this.has(t)&&delete this.__data__[t],this.size-=t?1:0,t},St=function hashGet$1(t){var e,n=this.__data__;return Ct?"__lodash_hash_undefined__"===(e=n[t])?void 0:e:_t.call(n,t)?n[t]:void 0};function Hash$1$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$1.prototype.clear=xt,Hash$1$1.prototype.delete=Et,Hash$1$1.prototype.get=St,Hash$1$1.prototype.has=function hashHas$1(t){var e=this.__data__;return kt?void 0!==e[t]:wt.call(e,t)},Hash$1$1.prototype.set=function hashSet$1(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Pt&&void 0===e?"__lodash_hash_undefined__":e,this};var $t=Hash$1$1,Ot=K,It=gt,jt=function getMapData$4(t,e){return t=t.__data__,function isKeyable$1(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}(e)?t["string"==typeof e?"string":"hash"]:t.map},Mt=jt,At=jt,Bt=jt,Lt=jt;function MapCache$1$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$1.prototype.clear=function mapCacheClear$1(){this.size=0,this.__data__={hash:new $t,map:new(It||Ot),string:new $t}},MapCache$1$1.prototype.delete=function mapCacheDelete$1(t){return t=Mt(this,t).delete(t),this.size-=t?1:0,t},MapCache$1$1.prototype.get=function mapCacheGet$1(t){return At(this,t).get(t)},MapCache$1$1.prototype.has=function mapCacheHas$1(t){return Bt(this,t).has(t)},MapCache$1$1.prototype.set=function mapCacheSet$1(t,e){var n=Lt(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this};var Tt=K,zt=gt,Rt=MapCache$1$1,Nt=K,Dt=function stackClear$1(){this.__data__=new Q,this.size=0},Ht=function stackDelete$1(t){var e=this.__data__;return t=e.delete(t),this.size=e.size,t},Vt=function stackGet$1(t){return this.__data__.get(t)},Ft=function stackHas$1(t){return this.__data__.has(t)};function Stack$2(t){t=this.__data__=new Nt(t),this.size=t.size}Stack$2.prototype.clear=Dt,Stack$2.prototype.delete=Ht,Stack$2.prototype.get=Vt,Stack$2.prototype.has=Ft,Stack$2.prototype.set=function stackSet$1(t,e){var n=this.__data__;if(n instanceof Tt){var i=n.__data__;if(!zt||i.length<199)return i.push([t,e]),this.size=++n.size,this;n=this.__data__=new Rt(i)}return n.set(t,e),this.size=n.size,this};var Ut=Stack$2,qt=vt,Wt=function(){try{var t=qt(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),Jt=Wt,Gt=function baseAssignValue$3(t,e,n){"__proto__"==e&&Jt?Jt(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n},Xt=Gt,Kt=D,Qt=function assignMergeValue$2(t,e,n){(void 0===n||Kt(t[e],n))&&(void 0!==n||e in t)||Xt(t,e,n)},Zt=function createBaseFor$1(l){return function(t,e,n){for(var i=-1,r=Object(t),o=n(t),s=o.length;s--;){var a=o[l?s:++i];if(!1===e(r[a],a,r))break}return t}}(),Yt={exports:{}},te=(function(t,e){var n,i=(n=(n=(e=e&&!e.nodeType&&e)&&t&&!t.nodeType&&t)&&n.exports===e?r.Buffer:void 0)?n.allocUnsafe:void 0;t.exports=function cloneBuffer(t,e){return e?t.slice():(e=t.length,e=i?i(e):new t.constructor(e),t.copy(e),e)}}(Yt,Yt.exports),r.Uint8Array),ee=function cloneArrayBuffer$3(t){var e=new t.constructor(t.byteLength);return new te(e).set(new te(t)),e},ne=ee,ie=function cloneTypedArray$2(t,e){return e=e?ne(t.buffer):t.buffer,new t.constructor(e,t.byteOffset,t.length)},re=function copyArray$2(t,e){var n=-1,i=t.length;for(e=e||Array(i);++n<i;)e[n]=t[n];return e},oe=Z,ae=Object.create,se=function(){function object(){}return function(t){return oe(t)?ae?ae(t):(object.prototype=t,t=new object,object.prototype=void 0,t):{}}}(),le=function overArg$2(e,n){return function(t){return e(n(t))}},ce=le(Object.getPrototypeOf,Object),he=Object.prototype,ue=function isPrototype$4(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||he)},de=se,fe=ce,pe=ue,ye=function initCloneObject$2(t){return"function"!=typeof t.constructor||pe(t)?{}:de(fe(t))},ve=y,ge=g,me=function baseIsArguments$1(t){return ge(t)&&"[object Arguments]"==ve(t)},be=g,Ce=Object.prototype,_e=Ce.hasOwnProperty,ke=Ce.propertyIsEnumerable,we=me(function(){return arguments}())?me:function(t){return be(t)&&_e.call(t,"callee")&&!ke.call(t,"callee")},Pe=function isLength$2(t){return"number"==typeof t&&-1<t&&t%1==0&&t<=9007199254740991},xe=et,Ee=Pe,Se=function isArrayLike$5(t){return null!=t&&Ee(t.length)&&!xe(t)},$e=Se,Oe=g,Ie={exports:{}},je=function stubFalse(){return!1},Me=(function(t,e){var n;e=((n=(n=(e=e&&!e.nodeType&&e)&&t&&!t.nodeType&&t)&&n.exports===e?r.Buffer:void 0)?n.isBuffer:void 0)||je,t.exports=e}(Ie,Ie.exports),y),Ae=ce,Be=g,Le=Function.prototype,Te=Object.prototype,ze=Le.toString,Re=Te.hasOwnProperty,Ne=ze.call(Object),De=y,He=Pe,Ve=g,Fe={},Ue=(Fe["[object Float32Array]"]=Fe["[object Float64Array]"]=Fe["[object Int8Array]"]=Fe["[object Int16Array]"]=Fe["[object Int32Array]"]=Fe["[object Uint8Array]"]=Fe["[object Uint8ClampedArray]"]=Fe["[object Uint16Array]"]=Fe["[object Uint32Array]"]=!0,Fe["[object Arguments]"]=Fe["[object Array]"]=Fe["[object ArrayBuffer]"]=Fe["[object Boolean]"]=Fe["[object DataView]"]=Fe["[object Date]"]=Fe["[object Error]"]=Fe["[object Function]"]=Fe["[object Map]"]=Fe["[object Number]"]=Fe["[object Object]"]=Fe["[object RegExp]"]=Fe["[object Set]"]=Fe["[object String]"]=Fe["[object WeakMap]"]=!1,function baseIsTypedArray$1(t){return Ve(t)&&He(t.length)&&!!Fe[De(t)]}),qe=function baseUnary$3(e){return function(t){return e(t)}},We={exports:{}},Je=(function(t,n){var i=(n=n&&!n.nodeType&&n)&&t&&!t.nodeType&&t,r=i&&i.exports===n&&e.process;n=function(){try{return i&&i.require&&i.require("util").types||r&&r.binding&&r.binding("util")}catch(t){}}(),t.exports=n}(We,We.exports),Ue),Ge=qe,Xe=We.exports,Ke=Xe&&Xe.isTypedArray,Qe=Ke?Ge(Ke):Je,Ze=function safeGet$2(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]},Ye=Gt,tn=D,en=Object.prototype.hasOwnProperty,nn=function assignValue$2(t,e,n){var i=t[e];en.call(t,e)&&tn(i,n)&&(void 0!==n||e in t)||Ye(t,e,n)},rn=nn,an=Gt,sn=function copyObject$5(t,e,n,i){var r=!n;n=n||{};for(var o=-1,s=e.length;++o<s;){var a=e[o],l=i?i(n[a],t[a],a,n,t):void 0;void 0===l&&(l=t[a]),(r?an:rn)(n,a,l)}return n},ln=/^(?:0|[1-9]\d*)$/,cn=function isIndex$2(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&ln.test(t))&&-1<t&&t%1==0&&t<e},hn=we,un=v,dn=Ie.exports,fn=cn,pn=Qe,yn=Object.prototype.hasOwnProperty,vn=function arrayLikeKeys$2(t,e){var n,i=un(t),r=!i&&hn(t),o=!i&&!r&&dn(t),s=!i&&!r&&!o&&pn(t),a=i||r||o||s,l=a?function baseTimes$1(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i}(t.length,String):[],c=l.length;for(n in t)!e&&!yn.call(t,n)||a&&("length"==n||o&&("offset"==n||"parent"==n)||s&&("buffer"==n||"byteLength"==n||"byteOffset"==n)||fn(n,c))||l.push(n);return l},gn=Z,mn=ue,bn=Object.prototype.hasOwnProperty,Cn=vn,_n=function baseKeysIn$1(t){if(!gn(t))return function nativeKeysIn$1(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}(t);var e,n=mn(t),i=[];for(e in t)("constructor"!=e||!n&&bn.call(t,e))&&i.push(e);return i},kn=Se,wn=function keysIn$5(t){return kn(t)?Cn(t,!0):_n(t)},Pn=sn,xn=wn,En=Qt,Sn=Yt.exports,$n=ie,On=re,In=ye,jn=we,Mn=v,An=function isArrayLikeObject$1(t){return Oe(t)&&$e(t)},Bn=Ie.exports,Ln=et,Tn=Z,zn=function isPlainObject$1(t){return!(!Be(t)||"[object Object]"!=Me(t))&&(null===(t=Ae(t))||"function"==typeof(t=Re.call(t,"constructor")&&t.constructor)&&t instanceof t&&ze.call(t)==Ne)},Rn=Qe,Nn=Ze,Dn=Ut,Hn=Qt,Vn=Zt,Fn=function baseMergeDeep$1(t,e,n,i,r,o,s){var a,l,c,h=Nn(t,n),u=Nn(e,n),d=s.get(u);d||((e=void 0===(d=o?o(h,u,n+"",t,e,s):void 0))&&(l=!(a=Mn(u))&&Bn(u),c=!a&&!l&&Rn(u),d=u,a||l||c?d=Mn(h)?h:An(h)?On(h):l?Sn(u,!(e=!1)):c?$n(u,!(e=!1)):[]:zn(u)||jn(u)?jn(d=h)?d=function toPlainObject$1(t){return Pn(t,xn(t))}(h):Tn(h)&&!Ln(h)||(d=In(u)):e=!1),e&&(s.set(u,d),r(d,u,i,o,s),s.delete(u))),En(t,n,d)},Un=Z,qn=wn,Wn=Ze,Jn=function identity$2(t){return t},Gn=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)},Xn=Math.max,Kn=function constant$1(t){return function(){return t}},Qn=Wt,Zn=Qn?function(t,e){return Qn(t,"toString",{configurable:!0,enumerable:!1,value:Kn(e),writable:!0})}:Jn,Yn=Date.now,ti=function shortOut$1(n){var i=0,r=0;return function(){var t=Yn(),e=16-(t-r);if(r=t,0<e){if(800<=++i)return arguments[0]}else i=0;return n.apply(void 0,arguments)}}(Zn),ei=Jn,ni=function overRest$1(o,s,a){return s=Xn(void 0===s?o.length-1:s,0),function(){for(var t=arguments,e=-1,n=Xn(t.length-s,0),i=Array(n);++e<n;)i[e]=t[s+e];for(var e=-1,r=Array(s+1);++e<s;)r[e]=t[e];return r[s]=a(i),Gn(o,this,r)}},ii=ti,ri=D,oi=Se,ai=cn,si=Z,li=function baseMerge$1(i,r,o,s,a){i!==r&&Vn(r,function(t,e){var n;a=a||new Dn,Un(t)?Fn(i,r,e,o,baseMerge$1,s,a):(n=s?s(Wn(i,e),t,e+"",i,r,a):void 0,Hn(i,e,n=void 0===n?t:n))},qn)},ci=function createAssigner$1(a){return function baseRest$1(t,e){return ii(ni(t,e,ei),t+"")}(function(t,e){var n=-1,i=e.length,r=1<i?e[i-1]:void 0,o=2<i?e[2]:void 0,r=3<a.length&&"function"==typeof r?(i--,r):void 0;for(o&&function isIterateeCall$1(t,e,n){var i;if(si(n))return i=typeof e,("number"==i?oi(n)&&ai(e,n.length):"string"==i&&e in n)&&ri(n[e],t)}(e[0],e[1],o)&&(r=i<3?void 0:r,i=1),t=Object(t);++n<i;){var s=e[n];s&&a(t,s,n,r)}return t})}(function(t,e,n){li(t,e,n)}),hi="undefined"!=typeof Float32Array?Float32Array:Array,ui=Math.PI/180;function toRadian(t){return t*ui}function invert(t,e){var n=e[0],i=e[1],r=e[2],o=e[3],s=e[4],a=(e=e[5],n*o-i*r);return a?(t[0]=o*(a=1/a),t[1]=-i*a,t[2]=-r*a,t[3]=n*a,t[4]=(r*e-o*s)*a,t[5]=(i*s-n*e)*a,t):null}function multiply(t,e,n){var i=e[0],r=e[1],o=e[2],s=e[3],a=e[4],l=(e=e[5],n[0]),c=n[1],h=n[2],u=n[3],d=n[4];return n=n[5],t[0]=i*l+o*c,t[1]=r*l+s*c,t[2]=i*h+o*u,t[3]=r*h+s*u,t[4]=i*d+o*n+a,t[5]=r*d+s*n+e,t}function transformMat2d(t,e,n){var i=e[0];return e=e[1],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 hi(2);hi!=Float32Array&&(t[0]=0,t[1]=0)}();var di=le(Object.keys,Object),fi=ue,pi=di,yi=Object.prototype.hasOwnProperty,vi=function baseKeys$2(t){if(!fi(t))return pi(t);var e,n=[];for(e in Object(t))yi.call(t,e)&&"constructor"!=e&&n.push(e);return n},gi=vn,mi=vi,bi=Se,Ci=function keys$3(t){return(bi(t)?gi:mi)(t)},_i=sn,ki=Ci,wi=sn,Pi=wn,xi=function stubArray$2(){return[]},Ei=xi,Si=Object.prototype.propertyIsEnumerable,$i=Object.getOwnPropertySymbols,Oi=$i?function(e){return null==e?[]:(e=Object(e),function arrayFilter$1(t,e){for(var n=-1,i=null==t?0:t.length,r=0,o=[];++n<i;){var s=t[n];e(s,n,t)&&(o[r++]=s)}return o}($i(e),function(t){return Si.call(e,t)}))}:Ei,Ii=sn,ji=Oi,Mi=function arrayPush$2(t,e){for(var n=-1,i=e.length,r=t.length;++n<i;)t[r+n]=e[n];return t},Ai=Mi,Bi=ce,Li=Oi,Ti=xi,zi=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)Ai(e,Li(t)),t=Bi(t);return e}:Ti,Ri=sn,Ni=zi,Di=Mi,Hi=v,Vi=function baseGetAllKeys$2(t,e,n){return e=e(t),Hi(t)?e:Di(e,n(t))},Fi=Vi,Ui=Oi,qi=Ci,Wi=Vi,Ji=zi,Gi=wn,Xi=vt(r,"DataView"),Ki=gt,Qi=vt(r,"Promise"),Zi=vt(r,"Set"),Yi=vt(r,"WeakMap"),tr=y,er=ot,nr=er(Xi),ir=er(Ki),rr=er(Qi),or=er(Zi),ar=er(Yi),sr=tr,lr=sr=Xi&&"[object DataView]"!=sr(new Xi(new ArrayBuffer(1)))||Ki&&"[object Map]"!=sr(new Ki)||Qi&&"[object Promise]"!=sr(Qi.resolve())||Zi&&"[object Set]"!=sr(new Zi)||Yi&&"[object WeakMap]"!=sr(new Yi)?function(t){var e=tr(t);if(t=(t="[object Object]"==e?t.constructor:void 0)?er(t):"")switch(t){case nr:return"[object DataView]";case ir:return"[object Map]";case rr:return"[object Promise]";case or:return"[object Set]";case ar:return"[object WeakMap]"}return e}:sr,cr=Object.prototype.hasOwnProperty,hr=ee,ur=/\w*$/,dr=o?o.prototype:void 0,fr=dr?dr.valueOf:void 0,pr=ee,yr=function cloneDataView$1(t,e){return e=e?hr(t.buffer):t.buffer,new t.constructor(e,t.byteOffset,t.byteLength)},vr=function cloneRegExp$1(t){var e=new t.constructor(t.source,ur.exec(t));return e.lastIndex=t.lastIndex,e},gr=ie,mr=lr,br=g,Cr=qe,_r=We.exports,kr=_r&&_r.isMap,wr=kr?Cr(kr):function baseIsMap$1(t){return br(t)&&"[object Map]"==mr(t)},Pr=lr,xr=g,Er=qe,Sr=We.exports,$r=Sr&&Sr.isSet,Or=$r?Er($r):function baseIsSet$1(t){return xr(t)&&"[object Set]"==Pr(t)},Ir=Ut,jr=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},Mr=nn,Ar=function baseAssign$1(t,e){return t&&_i(e,ki(e),t)},Br=function baseAssignIn$1(t,e){return t&&wi(e,Pi(e),t)},Lr=Yt.exports,Tr=re,zr=function copySymbols$1(t,e){return Ii(t,ji(t),e)},Rr=function copySymbolsIn$1(t,e){return Ri(t,Ni(t),e)},Nr=function getAllKeys$1(t){return Fi(t,qi,Ui)},Dr=function getAllKeysIn$1(t){return Wi(t,Gi,Ji)},Hr=lr,Vr=function initCloneArray$1(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&cr.call(t,"index")&&(n.index=t.index,n.input=t.input),n},Fr=function initCloneByTag$1(t,e,n){var i=t.constructor;switch(e){case"[object ArrayBuffer]":return pr(t);case"[object Boolean]":case"[object Date]":return new i(+t);case"[object DataView]":return yr(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 gr(t,n);case"[object Map]":return new i;case"[object Number]":case"[object String]":return new i(t);case"[object RegExp]":return vr(t);case"[object Set]":return new i;case"[object Symbol]":return function cloneSymbol$1(t){return fr?Object(fr.call(t)):{}}(t)}},Ur=ye,qr=v,Wr=Ie.exports,Jr=wr,Gr=Z,Xr=Or,Kr=Ci,Qr=wn,Zr={},Yr=(Zr["[object Arguments]"]=Zr["[object Array]"]=Zr["[object ArrayBuffer]"]=Zr["[object DataView]"]=Zr["[object Boolean]"]=Zr["[object Date]"]=Zr["[object Float32Array]"]=Zr["[object Float64Array]"]=Zr["[object Int8Array]"]=Zr["[object Int16Array]"]=Zr["[object Int32Array]"]=Zr["[object Map]"]=Zr["[object Number]"]=Zr["[object Object]"]=Zr["[object RegExp]"]=Zr["[object Set]"]=Zr["[object String]"]=Zr["[object Symbol]"]=Zr["[object Uint8Array]"]=Zr["[object Uint8ClampedArray]"]=Zr["[object Uint16Array]"]=Zr["[object Uint32Array]"]=!0,Zr["[object Error]"]=Zr["[object Function]"]=Zr["[object WeakMap]"]=!1,function baseClone$1(n,i,r,t,e,o){var s,a=1&i,l=2&i,c=4&i;if(void 0!==(s=r?e?r(n,t,e,o):r(n):s))return s;if(!Gr(n))return n;if(t=qr(n)){if(s=Vr(n),!a)return Tr(n,s)}else{var h=Hr(n),u="[object Function]"==h||"[object GeneratorFunction]"==h;if(Wr(n))return Lr(n,a);if("[object Object]"==h||"[object Arguments]"==h||u&&!e){if(s=l||u?{}:Ur(n),!a)return l?Rr(n,Br(s,n)):zr(n,Ar(s,n))}else{if(!Zr[h])return e?n:{};s=Fr(n,h,a)}}if(u=(o=o||new Ir).get(n))return u;o.set(n,s),Xr(n)?n.forEach(function(t){s.add(baseClone$1(t,i,r,t,n,o))}):Jr(n)&&n.forEach(function(t,e){s.set(e,baseClone$1(t,i,r,e,n,o))});var d=t?void 0:(c?l?Dr:Nr:l?Qr:Kr)(n);return jr(d||n,function(t,e){d&&(t=n[e=t]),Mr(s,e,baseClone$1(t,i,r,e,n,o))}),s}),to=function cloneDeep(t){return Yr(t,5)},eo=null,no=((eo=window||global||{}).requestFrame=eo.requestAnimationFrame||eo.webkitRequestAnimationFrame||eo.mozRequestAnimationFrame||eo.oRequestAnimationFrame||eo.msRequestAnimationFrame,eo),io=function(){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]}return _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}(),ro=vi,oo=lr,ao=we,so=v,lo=Se,co=Ie.exports,ho=ue,uo=Qe,fo=Object.prototype.hasOwnProperty,po=function isEmpty(t){if(null==t)return!0;if(lo(t)&&(so(t)||"string"==typeof t||"function"==typeof t.splice||co(t)||uo(t)||ao(t)))return!t.length;var e,n=oo(t);if("[object Map]"==n||"[object Set]"==n)return!t.size;if(ho(t))return!ro(t).length;for(e in t)if(fo.call(t,e))return!1;return!0},yo=function(){function ICEEventTarget(){_classCallCheck(this,ICEEventTarget),_defineProperty$1(this,"listeners",{}),_defineProperty$1(this,"suspendedEventNames",[])}return _createClass(ICEEventTarget,[{key:"on",value:function on(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:no;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]:no;if(i=this.listeners[t])for(var i=_toConsumableArray(i),r=0;r<i.length;r++){var o=i[r];if(o.callback===e&&o.scope===n)return void this.listeners[t].splice(r,1)}}},{key:"once",value:function once(e,n){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:no,r=this;r.on(e,function callback(t){r.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(po(this.listeners[t]))return!1;if(this.suspendedEventNames.includes(t))return!1;n?((e=new io(n)).originalEvent=n.originalEvent||n,e.param=_objectSpread2({},i)):e=new io({type:t,timeStamp:Date.now(),param:_objectSpread2({},i)});for(var r=this.listeners[t],o=0;o<r.length;o++){var s=r[o];s.callback.call(s.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]:no;if(!this.listeners[t])return!1;var i=this.listeners[t];if(!i)return!1;for(var r=0;r<i.length;r++){var o=i[r];if(o.callback===e&&o.scope===n)return!0}return!1}}]),ICEEventTarget}(),vo=(yo.prototype.addEventListener=yo.prototype.on,yo.prototype.removeEventListener=yo.prototype.off,yo.prototype.dispatchEvent=yo.prototype.trigger,function(){function GeoUtil(){throw _classCallCheck(this,GeoUtil),new Error("GeoUtil is a static util class.")}return _createClass(GeoUtil,null,[{key:"calcRotateAngle",value:function calcRotateAngle(t,e,n,i){return t-=n,(((n=e-i)/(e=Math.hypot(t,n))<0?-1:1)*Math.acos(t/e)*180/Math.PI+360)%360}},{key:"calcRotateAngleFromMatrix",value:function calcRotateAngleFromMatrix(t){var e=0,n=t[0],i=(t=t[1],Math.hypot(n,t));return t/=i,e=Math.acos(n/i),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];return t=t[3],[Math.hypot(e,n)/e,Math.hypot(i,t)/t]}}]),GeoUtil}()),go=function(){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]]}return _createClass(ICEBoundingBox,[{key:"containsPoint",value:function containsPoint(t){var e=(r=this.getMinAndMaxPoint()).minX,n=r.minY,i=r.maxX,r=r.maxY;if(t[0]<e||t[0]>i||t[1]<n||t[1]>r)return!1;for(var o=0,s=this.getBoundingLines(),a=0;a<s.length;a++){var l,c=s[a];t[1]>c.o[1]&&t[1]>c.d[1]||t[1]<c.o[1]&&t[1]<c.d[1]||(c.o[0]===c.d[0]&&c.o[0]>=t[0]?c.o[0]:(l=(c.d[1]-c.o[1])/(c.d[0]-c.o[0]),c.o[0]+(t[1]-c.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],r=[this.tr,this.bl,this.br],o=0;o<r.length;o++){var s=r[o];s[0]<t&&(t=s[0]),s[0]>n&&(n=s[0]),s[1]<e&&(e=s[1]),s[1]>i&&(i=s[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],r=this.br[1],o=t.tl[0],s=t.br[0],a=t.tl[1];return t=t.br[1],!(s<e||t<i||n<o||r<a)}},{key:"transform",value:function transform(t){var e=transformMat2d([],this.tl,t),n=transformMat2d([],this.tr,t),i=transformMat2d([],this.bl,t),r=transformMat2d([],this.br,t);return t=transformMat2d([],this.center,t),new ICEBoundingBox([].concat(_toConsumableArray(e),_toConsumableArray(n),_toConsumableArray(i),_toConsumableArray(r),_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 getVal(t,e){return e.split(".").reduce(function(t,e){return t[e]},t)}function flattenTree(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[],n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:1,i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,r=0;r<e.length;r++){var o=e[r];o._level=n,o._pid=i,t.push(o),flattenTree(t,o.childNodes||[],n+1,o.id)}return t}function uuid(){if(no.crypto)return no.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)})}var mo=function(){_inherits(ICEComponent,yo);var n=_createSuper(ICEComponent);function ICEComponent(){var t,e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEComponent),_defineProperty$1(_assertThisInitialized(t=n.call(this)),"__dirty",!0),_defineProperty$1(_assertThisInitialized(t),"props",{id:"ICE_"+uuid(),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=ci(t.props,e),t.state=to(t.props),t.root=no,t.initEvents(),t}return _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(P),this.state.display&&(this.calcComponentParams(),this.applyStyleToCtx(),this.applyTransformToCtx(),this.doRender(),this.trigger(x),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 hi(6);return hi!=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],r=e[1],o=e[2],s=e[3],a=e[4],l=(e=e[5],n[0]);return n=n[1],t[0]=i*l,t[1]=r*l,t[2]=o*n,t[3]=s*n,t[4]=a,t[5]=e,t}([],function rotate(t,e,n){var i=e[0],r=e[1],o=e[2],s=e[3],a=e[4],l=(e=e[5],Math.sin(n));return n=Math.cos(n),t[0]=i*n+o*l,t[1]=r*n+s*l,t[2]=i*-l+o*n,t[3]=r*-l+s*n,t[4]=a,t[5]=e,t}([],function skew(t,e,n,i){return n=Math.tan(n),i=Math.tan(i),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,toRadian(e),toRadian(n)),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=multiply([],[1,0,0,1,(t=this.calcAbsoluteOrigin())[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,r=this.state.height,e=new go([0-e,0-n,0-e+i,0-n,0-e,0-n+r,0-e+i,0-n+r,0,0]),i=t?this.composeMatrix():this.state.composedMatrix;return e.transform(i)}},{key:"getMaxBoundingBox",value:function getMaxBoundingBox(){var t=(i=(r=this.getMinBoundingBox(0<arguments.length&&void 0!==arguments[0]&&arguments[0])).getMinAndMaxPoint()).minX,e=i.minY,n=i.maxX,i=i.maxY,r=r.centerPoint;return new go([t,e,n,e,t,i,n,i,r[0],r[1]])}},{key:"setState",value:function setState(t){ci(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 io;this.trigger(T,_objectSpread2(_objectSpread2({},n),{},{left:t,top:e})),this.setState({left:t,top:e}),this.trigger(z,_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 io;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 io;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-=vo.calcRotateAngleFromMatrix(e)),this.setState({transform:{rotate:t}})}},{key:"localToGlobal",value:function localToGlobal(t,e){return transformMat2d([],t=[t,e],this.state.composedMatrix)}},{key:"globalToLocal",value:function globalToLocal(t,e){return transformMat2d([],t=[t,e],invert([],this.state.composedMatrix))}},{key:"getRotateAngle",value:function getRotateAngle(){var t=this.state.composedMatrix;return vo.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($,null,{component:this}),this.purgeEvents(),this.ice=null,this.ctx=null,this.root=null,this.evtBus=null,this.parentNode=null}}]),ICEComponent}(),bo=(_defineProperty$1(mo,"instanceCounter",0),function(){_inherits(ICEPath,mo);var e=_createSuper(ICEPath);function ICEPath(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEPath),_defineProperty$1(_assertThisInitialized(t=e.call(this,_objectSpread2({closePath:!0},t))),"path2D",new Path2D),t}return _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)}}]),ICEPath}()),Co=function(){_inherits(ICERect,bo);var e=_createSuper(ICERect);function ICERect(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICERect),e.call(this,_objectSpread2({width:10,height:10},t))}return _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}(),_o=function(){_inherits(ICEGroup,Co);var e=_createSuper(ICEGroup);function ICEGroup(t){return _classCallCheck(this,ICEGroup),_defineProperty$1(_assertThisInitialized(t=e.call(this,t)),"parentNode",null),_defineProperty$1(_assertThisInitialized(t),"childNodes",[]),t}return _createClass(ICEGroup,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ICEGroup.prototype),"initEvents",this).call(this),this.once(S,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(E),t.ice=this.ice,t.ctx=this.ice.ctx,t.evtBus=this.ice.evtBus,t.trigger(S)}},{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){ci(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}(),ko=function(){_inherits(ICEControlPanel,_o);var e=_createSuper(ICEControlPanel);function ICEControlPanel(t){return _classCallCheck(this,ICEControlPanel),_defineProperty$1(_assertThisInitialized(t=e.call(this,_objectSpread2(_objectSpread2({},t),{},{linkable:!1}))),"isControlPanel",!0),t}return _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}(),wo=function isNil(t){return null==t},Po=function(){_inherits(ICEEllipse,bo);var e=_createSuper(ICEEllipse);function ICEEllipse(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEEllipse),(t=_objectSpread2({radiusX:20,radiusY:10,rotation:0,startAngle:0,endAngle:2*Math.PI,counterclockwise:!0},t)).width=2*t.radiusX,t.height=2*t.radiusY,e.call(this,t)}return _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){wo(t.radiusX)?wo(t.width)||(t.radiusX=t.width/2):t.width=2*t.radiusX,wo(t.radiusY)?wo(t.height)||(t.radiusY=t.height/2):t.height=2*t.radiusY,_get(_getPrototypeOf(ICEEllipse.prototype),"setState",this).call(this,t)}}]),ICEEllipse}(),xo=function(){_inherits(ICECircle,Po);var e=_createSuper(ICECircle);function ICECircle(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICECircle),(t=_objectSpread2({radius:10},t)).radiusX=t.radius,t.radiusY=t.radius,e.call(this,t)}return _createClass(ICECircle)}(),Eo=function(){_inherits(ICELinkHook,xo);var e=_createSuper(ICELinkHook);function ICELinkHook(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICELinkHook),e.call(this,_objectSpread2({linkable:!1},t))}return _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(z,this.resizeEvtHandler,this)}},{key:"keyboardEvtHandler",value:function keyboardEvtHandler(t){}},{key:"mosueDownHandler",value:function mosueDownHandler(t){this.evtBus.trigger(I,new io({target:this}))}},{key:"mosueMoveHandler",value:function mosueMoveHandler(t){this.evtBus.trigger(j,new io({target:this}))}},{key:"mosueUpHandler",value:function mosueUpHandler(t){this.evtBus.trigger(M,new io({target:this}))}},{key:"resizeEvtHandler",value:function resizeEvtHandler(t){var e;this.parentNode&&(e=this.props.position,this.parentNode.trigger(A,new io(t,{position:e})),this.parentNode.trigger(B,new io(t,{position:e})))}}]),ICELinkHook}(),So=function(){_inherits(LineControlPanel,ko);var e=_createSuper(LineControlPanel);function LineControlPanel(t){return _classCallCheck(this,LineControlPanel),_defineProperty$1(_assertThisInitialized(t=e.call(this,_objectSpread2(_objectSpread2({},t),{},{zIndex:10001e3,linkable:!1,showMinBoundingBox:!1,showMaxBoundingBox:!1}))),"controlSize",16),t.initControls(),t}return _createClass(LineControlPanel,[{key:"initControls",value:function initControls(){var t=this.state.width,e=this.state.height,n=this.controlSize/2;this.startControl=new Eo({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 Eo({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(B,this.resizeEvtHandler,this)}},{key:"enable",value:function enable(){this.setState({display:!0}),this.resume(B),this.showHooks()}},{key:"disable",value:function disable(){this.setState({display:!1}),this.suspend(B),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,r=(t=this.targetComponent.state).points.length,o=t.points[0][0],s=t.points[0][1],a=t.points[r-1][0],l=t.points[r-1][1],n=(r=transformMat2d([],[n,i],invert([],t.absoluteLinearMatrix)))[0],i=r[1];switch(e){case"start":o+=n,s+=i;break;case"end":a+=n,l+=i}this.targetComponent.setState({startPoint:[o,s],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(z,this.updatePosition,this),this._targetComponent=t,this._targetComponent&&this._targetComponent.on(z,this.updatePosition,this),this._targetComponent&&this._targetComponent.once($,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}(),$o=/\s/,Oo=/^\s+/,Io=y,jo=g,Mo=function isSymbol$2(t){return"symbol"==typeof t||jo(t)&&"[object Symbol]"==Io(t)},Ao=function baseTrim$1(t){return t&&t.slice(0,function trimmedEndIndex$1(t){for(var e=t.length;e--&&$o.test(t.charAt(e)););return e}(t)+1).replace(Oo,"")},Bo=Z,Lo=Mo,To=/^[-+]0x[0-9a-f]+$/i,zo=/^0b[01]+$/i,Ro=/^0o[0-7]+$/i,No=parseInt,Do=function toNumber$2(t){if("number"==typeof t)return t;if(Lo(t))return NaN;if(Bo(t)&&(e="function"==typeof t.valueOf?t.valueOf():t,t=Bo(e)?e+"":e),"string"!=typeof t)return 0===t?t:+t;t=Ao(t);var e=zo.test(t);return e||Ro.test(t)?No(t.slice(2),e?2:8):To.test(t)?NaN:+t},Ho=Do,Vo=v,Fo=Mo,Uo=o?o.prototype:void 0,qo=Uo?Uo.toString:void 0,Wo=function baseToString$1(t){if("string"==typeof t)return t;if(Vo(t))return function arrayMap$1(t,e){for(var n=-1,i=null==t?0:t.length,r=Array(i);++n<i;)r[n]=e(t[n],n,t);return r}(t,baseToString$1)+"";if(Fo(t))return qo?qo.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e},Jo=function toInteger$1(t){var e=(t=function toFinite$1(t){return t?(t=Ho(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}(t))%1;return t==t?e?t-e:t:0},Go=Do,Xo=function toString$1(t){return null==t?"":Wo(t)},Ko=r.isFinite,Qo=Math.min,Zo=function createRound$1(t){var r=Math[t];return function(t,e){var n,i;return t=Go(t),(e=null==e?0:Qo(Jo(e),292))&&Ko(t)?(n=(Xo(t)+"e").split("e"),i=r(n[0]+"e"+(+n[1]+e)),+((n=(Xo(i)+"e").split("e"))[0]+"e"+(+n[1]-e))):r(t)}}("round"),Yo=function(){_inherits(ResizeControl,Co);var e=_createSuper(ResizeControl);function ResizeControl(t){return _classCallCheck(this,ResizeControl),e.call(this,_objectSpread2(_objectSpread2({position:"l",direction:"x",quadrant:1},t),{},{linkable:!1}))}return _createClass(ResizeControl,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ResizeControl.prototype),"initEvents",this).call(this),this.on(z,this.resizeEvtHandler,this)}},{key:"resizeEvtHandler",value:function resizeEvtHandler(t){if(this.parentNode){var e,n=t.quadrant,i=t.movementX,r=t.movementY,o=(e=this.parentNode.state).left,s=e.top,a=e.width,l=e.height,i=(e=transformMat2d([],[i,r],invert([],e.absoluteLinearMatrix)))[0],r=e[1];switch(n){case 1:o-=i,s+=r,a+=2*i,l-=2*r;break;case 2:o+=i,s+=r,a-=2*i,l-=2*r;break;case 3:o+=i,s-=r,a-=2*i,l+=2*r;break;case 4:o-=i,s-=r,a+=2*i,l+=2*r;break;case 5:s+=r,l-=2*r;break;case 6:s-=r,l+=2*r;break;case 7:o+=i,a-=2*i;break;case 8:o-=i,a+=2*i}e={top:s,left:o,width:Math.abs(a),height:Math.abs(l)},this.parentNode.trigger(A,new io(t,{quadrant:n})),this.parentNode.setState(e),this.parentNode.trigger(B,new io(t,{quadrant:n}))}}},{key:"moveGlobalPosition",value:function moveGlobalPosition(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:new io,i=0<t?1:-1,r=0<e?1:-1,o=(h=this.parentNode.state).localOrigin,s=h.width,a=h.height,l=(t=(h=transformMat2d([],[t,e],invert([],h.absoluteLinearMatrix)))[0],e=h[1],(h=this.state).left),c=h.top,h=h.quadrant,u=this.state.width/2,d=0;"x"===this.state.direction?d=0<(l=0===Zo(l+=t)?.5*i:l)+u-o[0]?8:7:"y"===this.state.direction?d=0<(c=0===Zo(c+=e)?.5*r:c)+u-o[1]?6:5:"xy"===this.state.direction&&(r=-a/2/(0===Zo(r=-s/2)?.5*i:r),0===Zo(s/=2)&&(s=.5*i),c+=e=2===h||4==h?r*(l+u-o[0]+t)-(c+u-o[1]):-a/2/s*(l+u-o[0]+t)-(c+u-o[1]),d=0<(l+=t)+u-o[0]?0<c+u-o[1]?4:1:0<c+u-o[1]?3:2),h!==d&&this.parentNode.toggleControlQuadrant(this,d),this.setPosition(l,c,new io(n,{left:l,top:c,tx:t,ty:e,quadrant:d}))}}]),ResizeControl}(),ta=function(){_inherits(RotateControl,xo);var e=_createSuper(RotateControl);function RotateControl(t){return _classCallCheck(this,RotateControl),e.call(this,_objectSpread2(_objectSpread2({},t),{},{linkable:!1}))}return _createClass(RotateControl,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(RotateControl.prototype),"initEvents",this).call(this),this.on(z,this.rotateEvtHandler,this)}},{key:"rotateEvtHandler",value:function rotateEvtHandler(t){var e;this.parentNode&&(e=this.parentNode.state.absoluteOrigin,t={transform:{rotate:vo.calcRotateAngle(t.offsetX,t.offsetY,e[0],e[1])+90}},this.parentNode.trigger("BEFORE_ROTATE",new io(t)),this.parentNode.setState(t),this.parentNode.trigger(L,new io(t)))}}]),RotateControl}(),ea=function(){_inherits(TransformControlPanel,ko);var e=_createSuper(TransformControlPanel);function TransformControlPanel(t){return _classCallCheck(this,TransformControlPanel),_defineProperty$1(_assertThisInitialized(t=e.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}return _createClass(TransformControlPanel,[{key:"initControls",value:function initControls(){var t=this.state.width,e=this.state.height,n=t/2,i=e/2,r=this.resizeControlSize/2,o=[{direction:"xy",quadrant:2,position:[-r,-r]},{direction:"y",quadrant:5,position:[n-r,-r]},{direction:"xy",quadrant:1,position:[t-r,-r]},{direction:"x",quadrant:8,position:[t-r,i-r]},{direction:"xy",quadrant:4,position:[t-r,e-r]},{direction:"y",quadrant:6,position:[n-r,e-r]},{direction:"xy",quadrant:3,position:[-r,e-r]},{direction:"x",quadrant:7,position:[-r,i-r]}];this.resizeControlInstanceCache=[];for(var s=0;s<o.length;s++){var a=new Yo({zIndex:10000002,display:!1,left:(a=o[s]).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 ta({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(B,this.resizeEvtHandler,this),this.on(L,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(B),this.resume(L),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(B),this.suspend(L),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(L))}},{key:"resizeEvtHandler",value:function resizeEvtHandler(t){if(this.targetComponent){var e=t.quadrant,n=t.movementX,i=t.movementY,r=(t=this.targetComponent.state).left,o=t.top,s=t.width,a=t.height,n=(t=transformMat2d([],[n,i],invert([],t.absoluteLinearMatrix)))[0],i=t[1];switch(e){case 1:r-=n,o+=i,s+=2*n,a-=2*i;break;case 2:r+=n,o+=i,s-=2*n,a-=2*i;break;case 3:r+=n,o-=i,s-=2*n,a+=2*i;break;case 4:r-=n,o-=i,s+=2*n,a+=2*i;break;case 5:o+=i,a-=2*i;break;case 6:o-=i,a+=2*i;break;case 7:r+=n,s-=2*n;break;case 8:r-=n,s+=2*n}this.targetComponent.setState({left:r,top:o,width:Math.abs(s),height:Math.abs(a)}),this.targetComponent.trigger(B)}}},{key:"updateControlPositions",value:function updateControlPositions(){for(var t=this.state.width,e=this.state.height,n=t/2,i=e/2,r=this.resizeControlSize/2,o=0;o<this.resizeControlInstanceCache.length;o++){var s=this.resizeControlInstanceCache[o],a=[0,0];switch(s.state.quadrant){case 1:a=[t-r,-r];break;case 2:a=[-r,-r];break;case 3:a=[-r,e-r];break;case 4:a=[t-r,e-r];break;case 5:a=[n-r,-r];break;case 6:a=[n-r,e-r];break;case 7:a=[-r,i-r];break;case 8:a=[t-r,i-r]}s.setState({left:a[0],top:a[1]})}var l=this.state.width/2-this.rotateControlSize,c=-this.rotateControlffsetY;this.rotateControlInstance.setState({left:l,top:c})}},{key:"updatePanel",value:function updatePanel(){var t,e,n,i,r;this.targetComponent&&(t=this.targetComponent.getRotateAngle(),e=(r=this.targetComponent.getLocalLeftTop()).left,n=r.top,i=r.width,r=r.height,this.setState({left:e,top:n,width:i,height:r,transform:{rotate:t}}))}},{key:"targetComponent",get:function get(){return this._targetComponent},set:function set(t){var e=this;this._targetComponent&&this._targetComponent.off(z,this.updatePanel,this),this._targetComponent=t,this._targetComponent&&this._targetComponent.on(z,this.updatePanel,this),this._targetComponent&&this._targetComponent.once($,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 r=0;switch(e){case 1:r=3;break;case 2:r=4;break;case 3:r=1;break;case 4:r=2;break;case 5:r=6;break;case 6:r=5;break;case 7:r=8;break;case 8:r=7}i.setState({quadrant:r})}}t.setState({quadrant:e})}}]),TransformControlPanel}(),na=function(){function ICEControlPanelManager(t){_classCallCheck(this,ICEControlPanelManager),this.ice=t,this.transformControlPanel=new ea({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 So({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()}return _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){if(!(t=t.target).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}(),ia=[["mousedown","ICE_MOUSEDOWN"],["mouseup","ICE_MOUSEUP"],["mousemove","ICE_MOUSEMOVE"],["click","ICE_CLICK"],["dblclick","ICE_DBCLICK"],["contextmenu","ICE_CONTEXTMENU"]],ra=[["keydown","ICE_KEYDOWN"],["keyup","ICE_KEYUP"]],oa=function(){function DOMEventDispatcher(t){_classCallCheck(this,DOMEventDispatcher),_defineProperty$1(this,"selectionCandidates",[]),_defineProperty$1(this,"_stopped",!1),this.ice=t}return _createClass(DOMEventDispatcher,[{key:"start",value:function start(){for(var i=this,r=null,o=[].concat(_toConsumableArray(ia),_toConsumableArray(ra)),t=0;t<o.length;t++)!function J9(t){var e=(t=o[t])[0],n=t[1];i.ice.evtBus.on(n,function(t){i._stopped||((r="ICE_MOUSEMOVE"!==n&&-1===n.indexOf("KEY")?i.findTargetComponent(t):r)&&(t.target=r).trigger(e,t),i.ice.evtBus.trigger(e,t,{component:r}))})}(t);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,i=(t=flattenTree([],this.ice.childNodes),flattenTree([],this.ice.toolNodes)),r=[].concat(_toConsumableArray(t),_toConsumableArray(i));r.sort(function(t,e){return t.state.zIndex-e.state.zIndex});for(var o=0;o<r.length;o++){var s=r[o],a=(l=s.state).interactive,l=l.display;s.containsPoint(e,n)&&a&&l&&this.selectionCandidates.push(s)}return t=this.selectionCandidates.pop(),this.selectionCandidates=[],t}}]),DOMEventDispatcher}(),aa={evtBuses:[],start:function start(){if(no&&no.addEventListener){function dk(t){for(var n=aa.evtBuses[t],i=[].concat(_toConsumableArray(ia),_toConsumableArray(ra)),e=0;e<i.length;e++)!function ik(t){var e=i[t];no.addEventListener(e[0],function(t){n.trigger(e[1],t)})}(e)}for(var t=0;t<aa.evtBuses.length;t++)dk(t)}},regitserEvtBus:function regitserEvtBus(t){aa.evtBuses.includes(t)||aa.evtBuses.push(t)},delEvtBus:function delEvtBus(t){aa.evtBuses.includes(t)&&aa.evtBuses.splice(aa.evtBuses.indexOf(t),1)}},sa=function(){_inherits(EventBus,yo);var t=_createSuper(EventBus);function EventBus(){return _classCallCheck(this,EventBus),t.call(this)}return _createClass(EventBus)}(),la=function(){function GeoLine(t,e){_classCallCheck(this,GeoLine),this.startPoint=t,this.endPoint=e}return _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);return n-3<=i+(t=Math.hypot(t-this.endPoint.x,e-this.endPoint.y))&&i+t<=n+3}}]),GeoLine}(),ca=function(){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}return _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}(),ha=function(){_inherits(ICEDotPath,bo);var e=_createSuper(ICEDotPath);function ICEDotPath(t){return _classCallCheck(this,ICEDotPath),e.call(this,_objectSpread2({dots:[],closePath:!0},t))}return _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],r=1;r<this.state.dots.length;r++){var o=this.state.dots[r];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 r=transformMat2d([],e[i],t);n.push(r)}return n}}]),ICEDotPath}(),ua="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",da=function(){_inherits(ICEImage,mo);var e=_createSuper(ICEImage);function ICEImage(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEImage),e.call(this,_objectSpread2({width:100,height:100,src:ua},t))}return _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}(),fa=(_createClass(function ICEBezier(){_classCallCheck(this,ICEBezier)}),function(){_inherits(ICELinkSlot,xo);var e=_createSuper(ICELinkSlot);function ICELinkSlot(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICELinkSlot),e.call(this,_objectSpread2({linkable:!1,draggable:!1,position:"T"},t))}return _createClass(ICELinkSlot,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ICELinkSlot.prototype),"initEvents",this).call(this),this.once(P,this.beforeRenderHandler,this),this.once($,this.beforeRemoveHandler,this)}},{key:"keyboardEvtHandler",value:function keyboardEvtHandler(t){}},{key:"beforeRenderHandler",value:function beforeRenderHandler(t){this.evtBus.on(I,this.hookMouseDownHandler,this),this.evtBus.on(j,this.hookMouseMoveHandler,this),this.evtBus.on(M,this.hookMouseUpHandler,this),this.evtBus.on("mouseup",this.globalMouseUpHandler,this)}},{key:"beforeRemoveHandler",value:function beforeRemoveHandler(t){this.evtBus.off(I,this.hookMouseDownHandler,this),this.evtBus.off(j,this.hookMouseMoveHandler,this),this.evtBus.off(M,this.hookMouseUpHandler,this),this.evtBus.off("mouseup",this.globalMouseUpHandler,this),this.hostComponent=null}},{key:"globalMouseUpHandler",value:function globalMouseUpHandler(){this.setState({display:!1})}},{key:"hookMouseDownHandler",value:function hookMouseDownHandler(t){this._hostComponent&&this.setState({display:!0})}},{key:"hookMouseMoveHandler",value:function hookMouseMoveHandler(t){t=t.target,this.isIntersectWithHook(t)?(this.setState({style:{fillStyle:"#fffb00"}}),t._currentAboveSlot=this,t.setState({style:{fillStyle:"#fffb00"}})):(this.setState({style:{fillStyle:"#3ce92c"}}),t._currentAboveSlot===this&&t.setState({style:{fillStyle:"#3ce92c"}}))}},{key:"hookMouseUpHandler",value:function hookMouseUpHandler(t){var e,n;this._hostComponent&&(e=(t=t.target).parentNode.targetComponent,n=t.state.position,this.isIntersectWithHook(t)?e&&e.setLink(n,this._hostComponent,this.props.position):e&&e.removeLink(n,this._hostComponent,this.props.position),this.setState({display:!1,style:{fillStyle:"#3ce92c"}}),t.setState({style:{fillStyle:"#3ce92c"}}))}},{key:"isIntersectWithHook",value:function isIntersectWithHook(t){var e=this.getMaxBoundingBox();return t=t.getMaxBoundingBox(),!!e.isIntersect(t)}},{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(x,this.updatePosition,this),this._hostComponent=t,this._hostComponent&&this._hostComponent.on(x,this.updatePosition,this),this._hostComponent&&this._hostComponent.once($,function(){e._hostComponent=null,e.setState({display:!1})},this),this._hostComponent&&this.setState({display:!0})}}]),ICELinkSlot}()),pa=function(){_inherits(ICEPolyLine,ha);var e=_createSuper(ICEPolyLine);function ICEPolyLine(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEPolyLine),t=ICEPolyLine.arrangeParam(t),_defineProperty$1(_assertThisInitialized(t=e.call(this,t)),"isLine",!0),_defineProperty$1(_assertThisInitialized(t),"links",{start:{},end:{}}),t}return _createClass(ICEPolyLine,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ICEPolyLine.prototype),"initEvents",this).call(this),this.once(S,this.afterAddHandler,this)}},{key:"afterAddHandler",value:function afterAddHandler(t){this.evtBus.once(O,this.makeConnection,this)}},{key:"makeConnection",value:function makeConnection(){var t,e,n=this.state.links;n&&(n.start&&(t=n.start.id,e=n.start.position,t&&e&&(t=this.ice.findComponent(t),this.setLink("start",t,e))),n.end&&(t=n.end.id,e=n.end.position,t&&e&&(n=this.ice.findComponent(t),this.setLink("end",n,e)))),this.ice.dirty=!0}},{key:"setLink",value:function setLink(t,e,n){this.removeLink(t,e,n),this.links[t]={component:e,position:n},e.on(z,this.followComponent,this),e.on(B,this.followComponent,this),e.on(L,this.followComponent,this),e.once(x,this.followComponent,this),this.followComponent();var i,r={};for(i in this.links){var o=this.links[i];o.component&&o.position&&(r[i]={id:o.component.props.id,position:o.position})}this.setState({links:_objectSpread2({},r),draggable:!1})}},{key:"removeLink",value:function removeLink(t,e,n){var i=this.links[t].component,r=this.links[t].position;i===e&&r===n&&(i&&i.off(z,this.followComponent,this),i&&i.off(B,this.followComponent,this),i&&i.off(L,this.followComponent,this),this.links[t]={},this.state.links[t]={}),this.links.start.component||this.links.end.component||this.setState({draggable:!0})}},{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.links){var n=this.links[e].position,i=this.links[e].component;if(n&&i){var r=i.getMinBoundingBox(),o=[0,0];switch(n){case"T":o=r.tc;break;case"R":o=r.rc;break;case"B":o=r.bc;break;case"L":o=r.lc}switch(e){case"start":this.setState({startPoint:_toConsumableArray(o)});break;case"end":this.setState({endPoint:_toConsumableArray(o)})}}}}},{key:"calcLocalOrigin",value:function calcLocalOrigin(){return this.state.localOrigin=[0,0]}},{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=(r=this.state.points[n])[0]-t,r=r[1]-e;this.state.dots.push([i,r])}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],n=((t=t[1])[0]=t[0]-e[0],t[1]=t[1]-e[1],t[0]/Math.hypot.apply(Math,_toConsumableArray(t))),i=(t=t[1]/Math.hypot.apply(Math,_toConsumableArray(t)),Math.cos(this.state.arrowAngel)),r=Math.sin(this.state.arrowAngel),o=this.state.arrowLength*(n*i-t*r),s=this.state.arrowLength*(t*i+n*r),a=this.state.arrowLength*(n*i+t*r);return t=this.state.arrowLength*(t*i-n*r),[[o+=e[0],s+=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=Zo(this.state.points[0][0],2),i=Zo(this.state.points[0][1],2),r=0,o=[Zo(this.state.points[e-1][0],2)-n,Zo(this.state.points[e-1][1],2)-i],s=0;s<e;s++){var a=[(a=this.state.points[s])[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])&&r++}return r===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],n=(t=this.state.points[t-1][1]-this.state.points[0][1],this.getRotateAngle()),i=this.state.height,r=Math.cos(n*Math.PI/180)*i/2,n=Math.sin(n*Math.PI/180)*i/2;return[[0+(r=Zo(r,3)),0+(n=Zo(n,3))],[0-r,0-n],[e+r,t+n],[e-r,t-n]]}},{key:"getMinBoundingBox",value:function getMinBoundingBox(){var t=this.state.localOrigin[0],e=this.state.localOrigin[1],n=this.calc4VertexPoints();return(t=new go([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])).transform(this.state.composedMatrix)}},{key:"setState",value:function setState(t){if(wo(t.width)||delete t.width,wo(t.height)||delete t.height,wo(t.transform)||delete t.transform,!wo(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(!wo(t.top))for(var i=t.top-this.state.points[0][1],r=0;r<this.state.points.length;r++)this.state.points[r][1]+=i;var o;wo(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]),wo(t.endPoint)||(o=this.state.points.length,this.state.points[o-1]=_toConsumableArray(t.endPoint)),_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],vo.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 r=(a=n[i]).o[0],o=a.o[1],s=a.d[0],a=a.d[1],l=Math.hypot(s-r,a-o);if(l-3<=(r=Math.hypot(r-t,o-e))+(o=Math.hypot(s-t,a-e))&&r+o<=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.links.start&&this.removeLink("start",this.links.start.component,this.links.start.position),this.links.end&&this.removeLink("end",this.links.end.component,this.links.end.position),_get(_getPrototypeOf(ICEPolyLine.prototype),"destory",this).call(this)}}],[{key:"arrangeParam",value:function arrangeParam(t){var e=ci({},{lineType:"solid",lineWidth:1,arrow:"none",arrowLength:15,arrowAngel:toRadian(30),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}(),ya=function(){_inherits(ICEVisioLink,pa);var e=_createSuper(ICEVisioLink);function ICEVisioLink(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEVisioLink),t=ICEVisioLink.arrangeParam(t),e.call(this,t)}return _createClass(ICEVisioLink,[{key:"calcDots",value:function calcDots(){var t=this.interpolate(),e=this.state,n=e.left,i=e.top,r=t[0][2];this.state.points=[],this.state.dots=[];for(var o=0;o<r.length;o++){var s=r[o];this.state.points.push([s.x,s.y]),this.state.dots.push([s.x-n,s.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],r=(t=this.state.points[t-1][1],new ca(e,n)),o=new ca(i,t),s=[],a=null,l=null,c=[],h=new go,u=new go;if(e=this.links.start.component){h=e.getMinBoundingBox(),s[0]=new ca(r.x,h.tl[1]-this.state.escapeDistance),s[1]=new ca(h.tr[0]+this.state.escapeDistance,r.y),s[2]=new ca(r.x,h.br[1]+this.state.escapeDistance),s[3]=new ca(h.tl[0]-this.state.escapeDistance,r.y);for(var a=s[0],d=1;d<s.length;d++)this.distance(r,s[d])<this.distance(r,a)&&(a=s[d])}if(n=this.links.end.component){u=n.getMinBoundingBox(),s[0]=new ca(o.x,u.tl[1]-this.state.escapeDistance),s[1]=new ca(u.tr[0]+this.state.escapeDistance,o.y),s[2]=new ca(o.x,u.br[1]+this.state.escapeDistance),s[3]=new ca(u.tl[0]-this.state.escapeDistance,o.y);for(var l=s[0],p=1;p<s.length;p++)this.distance(o,s[p])<this.distance(o,l)&&(l=s[p])}i=0,t=[r],a&&(t.push(a),i=1),l&&t.push(l),t.push(o),e=ca.cloneArray(t),c.push(["s0","s0",e]),n=ca.cloneArray(t),(e=ca.cloneArray(n)).splice(i+1,0,new ca(e[i].x,e[i+1].y)),c.push(["s1","s1_1",e]),(t=ca.cloneArray(n)).splice(i+1,0,new ca(t[i+1].x,t[i].y)),c.push(["s1","s1_2",t]);var e=ca.cloneArray(n),t=new ca((e[i].x+e[i+1].x)/2,e[i].y),f=new ca((e[i].x+e[i+1].x)/2,e[i+1].y);e.splice(i+1,0,t,f),c.push(["s2","s2_1",e]),t=ca.cloneArray(n),f=new ca(t[i].x,(t[i].y+t[i+1].y)/2),e=new ca(t[i+1].x,(t[i].y+t[i+1].y)/2),e=[(t.splice(i+1,0,f,e),c.push(["s2","s2_2",t]),(f=ca.cloneArray(n))[i].x+20),f[i+1].x+20],h&&e.push(h.br[0]+20),u&&e.push(u.br[0]+20),t=this.max(e),e=new ca(t,f[i].y),t=new ca(t,f[i+1].y),t=[(f.splice(i+1,0,e,t),c.push(["s2","s2_3",f]),(e=ca.cloneArray(n))[i].y-20),e[i+1].y-20],h&&t.push(h.tl[1]-20),u&&t.push(u.tl[1]-20),f=this.min(t),t=new ca(e[i].x,f),f=new ca(e[i+1].x,f),f=[(e.splice(i+1,0,t,f),c.push(["s2","s2_4",e]),(t=ca.cloneArray(n))[i].x-20),t[i+1].x-20],h&&f.push(h.tl[0]-20),u&&f.push(u.tl[0]-20),e=this.min(f),f=new ca(e,t[i].y),e=new ca(e,t[i+1].y),e=[(t.splice(i+1,0,f,e),c.push(["s2","s2_5",t]),(f=ca.cloneArray(n))[i].y+20),f[i+1].y+20],h&&e.push(h.tl[1]+h.height+20),u&&e.push(u.tl[1]+u.height+20),t=this.max(e),n=new ca(f[i].x,t),e=new ca(f[i+1].x,t),f.splice(i+1,0,n,e),c.push(["s2","s2_6",f]);for(var y=[],v=0;v<c.length;v++){var g=c[v][2];this.orthogonalPath(g)&&y.push(c[v])}if(c=y,!r.equals(o)){for(var m=[],b=0;b<c.length;b++){var C=c[b][2];this.forwardPath(C)&&m.push(c[b])}(c=m).length}for(var _=[],k=0;k<c.length;k++){var w=!1,P=c[k][2].slice();(u||h)&&(P=P.slice(1,P.length-1)),h&&(w=w||this.polylineIntersectsRectangle(P,h)),(w=u?w||this.polylineIntersectsRectangle(P,u):w)||_.push(c[k])}(c=0!=_.length?_:c).length;for(var x=c[0][2].length,S=[],E=0;E<c.length;E++)c[E][2].length==x&&S.push(c[E]);for(var c=S,$=0,O=0;O<c.length;O++)this.scorePath(c[$][2])<this.scorePath(c[O][2])&&($=O);return[c[$]]}},{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&&(r=t,t=e,e=r),r=(t.endPoint.y-t.startPoint.y)/(t.endPoint.x-t.startPoint.x),n=t.startPoint.y-r*t.startPoint.x,i=e.startPoint.x,t.contains(i,r=r*i+n)&&e.contains(i,r);var n=(t.endPoint.y-t.startPoint.y)/(t.endPoint.x-t.startPoint.x),i=t.startPoint.y-n*t.startPoint.x,r=(e.endPoint.y-e.startPoint.y)/(e.endPoint.x-e.startPoint.x),o=e.startPoint.y-r*e.startPoint.x;return n==r?i==o&&(t.contains(e.startPoint.x,e.startPoint.y)||t.contains(e.endPoint.x,e.endPoint.y)):(r=n*(o=(o-i)/(n-r))+i,t.contains(o,r)&&e.contains(o,r))}},{key:"polylineIntersectsRectangle",value:function polylineIntersectsRectangle(t,e){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=[];i.push(new la(new ca(e.x1,e.y1),new ca(e.x2,e.y1))),i.push(new la(new ca(e.x2,e.y1),new ca(e.x2,e.y2))),i.push(new la(new ca(e.x2,e.y2),new ca(e.x1,e.y2))),i.push(new la(new ca(e.x1,e.y2),new ca(e.x1,e.y1)));for(var r=0;r<t.length-1;r++)for(var o=new la(t[r],t[r+1]),s=0;s<i.length;s++)if(this.lineIntersectsLine(o,i[s]))return!0;if(n)for(var a=new la(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 wo(t.startPoint)&&(t.startPoint=[0,0]),wo(t.endPoint)&&(t.endPoint=[10,10]),t.points=[_toConsumableArray(t.startPoint),_toConsumableArray(t.endPoint)],_objectSpread2({escapeDistance:30},t)}}]),ICEVisioLink}(),va=function(){_inherits(ICEIsogon,ha);var e=_createSuper(ICEIsogon);function ICEIsogon(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEIsogon),(t=_objectSpread2({radius:10,edges:3,startAngle:90},t)).edges=Math.floor(3<=t.edges?t.edges:3),t.width=2*t.radius,t.height=2*t.radius,e.call(this,t)}return _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),r=Math.floor(e*Math.cos(i)+e),i=Math.floor(e*Math.sin(i)+e);this.state.dots.push([r,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){wo(t.radius)?wo(t.width)?wo(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}(),ga=(!function(){_inherits(ICERose,ha);var e=_createSuper(ICERose);function ICERose(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICERose),(t=_objectSpread2({radius:50,leafNum:2,pointNumber:100},t)).leafNum=Math.floor(2<=t.leafNum?t.leafNum:2),t.width=2*t.radius,t.height=2*t.radius,e.call(this,t)}_createClass(ICERose,[{key:"calcDots",value:function calcDots(){var t=this.state.radius,e=this.state.leafNum;this.state.dots=[];for(var n,i,r=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+=r)>=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){wo(t.radius)?wo(t.width)?wo(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)}}])}(),function(){_inherits(ICEStar,ha);var e=_createSuper(ICEStar);function ICEStar(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEStar),(t=_objectSpread2({outerRadius:50,innerRadius:20,startAngle:90,spikes:5},t)).spikes=Math.floor(1<=t.spikes?t.spikes:1),t.width=2*t.outerRadius,t.height=2*t.outerRadius,e.call(this,t)}return _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,r=this.state.outerRadius,o=this.state.innerRadius,s=0;s<this.state.spikes;s++)t=Math.cos(n)*r+r,e=Math.sin(n)*r+r,this.state.dots.push([t,e]),n+=i,t=Math.cos(n)*o+r,e=Math.sin(n)*o+r,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){wo(t.outerRadius)?wo(t.width)?wo(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}()),ma="__ICE_UTILS_TEXT_MEASURE_DIV__",ba=function(){_inherits(ICEText,mo);var e=_createSuper(ICEText);function ICEText(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEText),t=ICEText.arrangeParam(t),(t=e.call(this,t)).measureText(),t}return _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(ma))){(e=this.root.document.createElement("div")).setAttribute("id",ma);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 r=this.state.style,o=r.paddingTop,s=r.paddingBottom,a=r.paddingLeft,l=r.paddingRight,c={width:e.offsetWidth+a+l,height:e.offsetHeight+o+s};return this.props.width=c.width,this.props.height=c.height,this.state.width=c.width,this.state.height=c.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){return(t=ci({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)).style=_objectSpread2(_objectSpread2({},t.style),{},{font:"".concat(t.style.fontWeight," ").concat(t.style.fontSize,"px ").concat(t.style.fontFamily)}),t}}]),ICEText}(),Ca={ICERect:Co,ICECircle:xo,ICEEllipse:Po,ICEStar:ga,ICEIsogon:va,ICEText:ba,ICEImage:da,ICEGroup:_o,ICEVisioLink:ya,ICEPolyLine:pa},_a={evtBuses:[],stopped:!1,frameCallback:function frameCallback(){for(var t=0;t<_a.evtBuses.length;t++){if(_a.stopped)return;_a.evtBuses[t].trigger(w)}_a.stopped||no.requestFrame(_a.frameCallback)},start:function start(){_a.stopped=!1,no.requestFrame(_a.frameCallback)},stop:function stop(){_a.stopped=!0},pause:function pause(){},resume:function resume(){},regitserEvtBus:function regitserEvtBus(t){_a.evtBuses.includes(t)||_a.evtBuses.push(t)},delEvtBus:function delEvtBus(t){_a.evtBuses.includes(t)&&_a.evtBuses.splice(_a.evtBuses.indexOf(t),1)}},ka=function(){function ICELinkSlotManager(t){_classCallCheck(this,ICELinkSlotManager),_defineProperty$1(this,"slotRadius",10),this.ice=t}return _createClass(ICELinkSlotManager,[{key:"start",value:function start(){return this.createLinkSlots(),this.ice.evtBus.on(j,this.hookMouseMoveHandler,this),this}},{key:"stop",value:function stop(){return this.ice.evtBus.off(j,this.hookMouseMoveHandler,this),this}},{key:"hookMouseMoveHandler",value:function hookMouseMoveHandler(t){for(var e=t.target.getMaxBoundingBox(),n=null,i=_toConsumableArray(this.ice.childNodes),r=0;r<i.length;r++){var o=i[r];if(o&&o.state.linkable&&o.getMaxBoundingBox().isIntersect(e)){n=o;break}}for(var s=0;s<this.ice._linkSlots.length;s++){var a=this.ice._linkSlots[s];a.hostComponent!==n&&(a.hostComponent=n)}}},{key:"createLinkSlots",value:function createLinkSlots(){var t,e,n,i;this.ice._linkSlots&&this.ice._linkSlots.length||(t=new fa({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 fa({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 fa({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 fa({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}(),wa=function(){function Deserializer(t){_classCallCheck(this,Deserializer),this.ice=t}return _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 r=0;r<i.length;r++)this.decodeRecursively(n,i[r])}}]),Deserializer}(),Pa=function(){function Serializer(t){_classCallCheck(this,Serializer),this.ice=t}return _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}(),xa=function(){_inherits(CanvasRenderer,yo);var n=_createSuper(CanvasRenderer);function CanvasRenderer(t){var e;return _classCallCheck(this,CanvasRenderer),_defineProperty$1(_assertThisInitialized(e=n.call(this)),"stopped",!1),_defineProperty$1(_assertThisInitialized(e),"componentQueue",[]),_defineProperty$1(_assertThisInitialized(e),"toolsQueue",[]),e.ice=t,e}return _createClass(CanvasRenderer,[{key:"start",value:function start(){return this.stopped=!1,this.ice.evtBus.on(w,this.frameEvtHandler,this),this}},{key:"stop",value:function stop(){return this.stopped=!0,this.ice.evtBus.off(w,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(O)}}]),CanvasRenderer}(),Ea=function(){function ImageCache(t){_classCallCheck(this,ImageCache),_defineProperty$1(this,"imageCache",new Map),this.ice=t}return _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}(),Sa=(_defineProperty$1(Ea,"CACHE_SIZE",100),_createClass(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())},[{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 Ca)this.typeMapping[e]=Ca[e];return this.root=no,_(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 sa,_a.regitserEvtBus(this.evtBus),_a.start(),aa.regitserEvtBus(this.evtBus),aa.start(),this.eventDispatcher=new oa(this).start(),this.animationManager=new N(this).start(),this.controlPanelManager=new na(this).start(),this.renderer=new xa(this).start(),this.linkSlotManager=new ka(this).start(),this.serializer=new Pa(this),this.deserializer=new wa(this),this.imageCache=new Ea(this),this}},{key:"addTool",value:function addTool(t){-1===this.childNodes.indexOf(t)&&(this.evtBus.trigger(E,null,{component:t}),t.trigger(E),t.ice=this,t.ctx=this.ctx,t.evtBus=this.evtBus,this.toolNodes.push(t),this.dirty=!0,this.evtBus.trigger(S,null,{component:t}),t.trigger(S))}},{key:"removeTool",value:function removeTool(t){this.evtBus.trigger($,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(E,null,{component:t}),t.trigger(E),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(S,null,{component:t}),t.trigger(S))}},{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($,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;_a.stop(),this.renderer.stop(),this.eventDispatcher.stopped=!0,this.animationManager.stop(),this.controlPanelManager.stop(),this.linkSlotManager.stop(),this.clearAll(),this.deserializer.fromJSONObject(t),_a.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)}}]),"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{}),$a=function isNil(t){return null==t},Oa=function listCacheClear$1(){this.__data__=[],this.size=0},Ia=function eq$4(t,e){return t===e||t!=t&&e!=e},ja=Ia,Ma=function assocIndexOf$4(t,e){for(var n=t.length;n--;)if(ja(t[n][0],e))return n;return-1},Aa=Ma,Ba=Array.prototype.splice,La=Ma,Ta=Ma,za=Ma,Ra=Oa,Na=function listCacheDelete$1(t){var e=this.__data__,t=Aa(e,t);return!(t<0||(t==e.length-1?e.pop():Ba.call(e,t,1),--this.size,0))},Da=function listCacheGet$1(t){var e=this.__data__,t=La(e,t);return t<0?void 0:e[t][1]},Ha=function listCacheHas$1(t){return-1<Ta(this.__data__,t)},Va=function listCacheSet$1(t,e){var n=this.__data__,i=za(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=Ra,ListCache$4.prototype.delete=Na,ListCache$4.prototype.get=Da,ListCache$4.prototype.has=Ha,ListCache$4.prototype.set=Va;var ps,Fa=ListCache$4,Ua=Fa,qa=function stackClear$1(){this.__data__=new Ua,this.size=0},Wa=function stackDelete$1(t){var e=this.__data__,t=e.delete(t);return this.size=e.size,t},Ja=function stackGet$1(t){return this.__data__.get(t)},Ga=function stackHas$1(t){return this.__data__.has(t)},Xa="object"==typeof Sa&&Sa&&Sa.Object===Object&&Sa,Ka=Xa,Qa="object"==typeof self&&self&&self.Object===Object&&self,Za=Ka||Qa||Function("return this")(),Ya=Za.Symbol,ts=Ya,es=Object.prototype,ns=es.hasOwnProperty,is=es.toString,rs=ts?ts.toStringTag:void 0,os=function getRawTag$1(t){var e=ns.call(t,rs),n=t[rs];try{var i=!(t[rs]=void 0)}catch(t){}var r=is.call(t);return i&&(e?t[rs]=n:delete t[rs]),r},as=Object.prototype.toString,ss=os,ls=function objectToString$1(t){return as.call(t)},cs=Ya?Ya.toStringTag:void 0,hs=function baseGetTag$4(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":(cs&&cs in Object(t)?ss:ls)(t)},us=function isObject$7(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},ds=hs,fs=us,ys=function isFunction$3(t){if(!fs(t))return!1;t=ds(t);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},vs=Za["__core-js_shared__"],gs=(ps=/[^.]+$/.exec(vs&&vs.keys&&vs.keys.IE_PROTO||""))?"Symbol(src)_1."+ps:"",ms=function isMasked$1(t){return!!gs&&gs in t},bs=Function.prototype.toString,Cs=ys,_s=ms,ks=us,ws=function toSource$1(t){if(null!=t){try{return bs.call(t)}catch(t){}try{return t+""}catch(t){}}return""},Ps=/^\[object .+?Constructor\]$/,xs=Function.prototype,Es=Object.prototype,Ss=xs.toString,$s=Es.hasOwnProperty,Os=RegExp("^"+Ss.call($s).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Is=function baseIsNative$1(t){return!(!ks(t)||_s(t))&&(Cs(t)?Os:Ps).test(ws(t))},js=function getValue$1(t,e){return null==t?void 0:t[e]},Ms=function getNative$3(t,e){t=js(t,e);return Is(t)?t:void 0},As=Ms(Za,"Map"),Bs=Ms(Object,"create"),Ls=Bs,Ts=function hashClear$1(){this.__data__=Ls?Ls(null):{},this.size=0},zs=function hashDelete$1(t){t=this.has(t)&&delete this.__data__[t];return this.size-=t?1:0,t},Rs=Bs,Ns=Object.prototype.hasOwnProperty,Ds=function hashGet$1(t){var e,n=this.__data__;return Rs?"__lodash_hash_undefined__"===(e=n[t])?void 0:e:Ns.call(n,t)?n[t]:void 0},Hs=Bs,Vs=Object.prototype.hasOwnProperty,Fs=Bs,Us=Ts,qs=zs,Ws=Ds,Js=function hashHas$1(t){var e=this.__data__;return Hs?void 0!==e[t]:Vs.call(e,t)},Gs=function hashSet$1(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Fs&&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=Us,Hash$1.prototype.delete=qs,Hash$1.prototype.get=Ws,Hash$1.prototype.has=Js,Hash$1.prototype.set=Gs;var Xs=Hash$1,Ks=Fa,Qs=As,Zs=function isKeyable$1(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t},Ys=function getMapData$4(t,e){t=t.__data__;return Zs(e)?t["string"==typeof e?"string":"hash"]:t.map},tl=Ys,el=Ys,nl=Ys,il=Ys,rl=function mapCacheClear$1(){this.size=0,this.__data__={hash:new Xs,map:new(Qs||Ks),string:new Xs}},ol=function mapCacheDelete$1(t){t=tl(this,t).delete(t);return this.size-=t?1:0,t},al=function mapCacheGet$1(t){return el(this,t).get(t)},sl=function mapCacheHas$1(t){return nl(this,t).has(t)},ll=function mapCacheSet$1(t,e){var n=il(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=rl,MapCache$1.prototype.delete=ol,MapCache$1.prototype.get=al,MapCache$1.prototype.has=sl,MapCache$1.prototype.set=ll;var cl=Fa,hl=As,ul=MapCache$1,dl=Fa,fl=qa,pl=Wa,yl=Ja,vl=Ga,gl=function stackSet$1(t,e){var n=this.__data__;if(n instanceof cl){var i=n.__data__;if(!hl||i.length<199)return i.push([t,e]),this.size=++n.size,this;n=this.__data__=new ul(i)}return n.set(t,e),this.size=n.size,this};function Stack$1(t){t=this.__data__=new dl(t);this.size=t.size}Stack$1.prototype.clear=fl,Stack$1.prototype.delete=pl,Stack$1.prototype.get=yl,Stack$1.prototype.has=vl,Stack$1.prototype.set=gl;var ml=Stack$1,bl=Ms,Cl=function(){try{var t=bl(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),_l=Cl,kl=function baseAssignValue$3(t,e,n){"__proto__"==e&&_l?_l(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n},wl=kl,Pl=Ia,xl=function assignMergeValue$2(t,e,n){(void 0===n||Pl(t[e],n))&&(void 0!==n||e in t)||wl(t,e,n)},El=function createBaseFor$1(l){return function(t,e,n){for(var i=-1,r=Object(t),o=n(t),s=o.length;s--;){var a=o[l?s:++i];if(!1===e(r[a],a,r))break}return t}}(),Sl={exports:{}},$l=(!function(t,e){var e=e&&!e.nodeType&&e,n=e&&t&&!t.nodeType&&t,n=n&&n.exports===e?Za.Buffer:void 0,i=n?n.allocUnsafe:void 0;t.exports=function cloneBuffer(t,e){if(e)return t.slice();e=t.length,e=i?i(e):new t.constructor(e);return t.copy(e),e}}(Sl,Sl.exports),Za.Uint8Array),Ol=function cloneArrayBuffer$1(t){var e=new t.constructor(t.byteLength);return new $l(e).set(new $l(t)),e},Il=function cloneTypedArray$1(t,e){e=e?Ol(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.length)},jl=function copyArray$1(t,e){var n=-1,i=t.length;for(e=e||Array(i);++n<i;)e[n]=t[n];return e},Ml=us,Al=Object.create,Bl=function(){function object(){}return function(t){if(!Ml(t))return{};if(Al)return Al(t);object.prototype=t;t=new object;return object.prototype=void 0,t}}(),Ll=function overArg$1(e,n){return function(t){return e(n(t))}}(Object.getPrototypeOf,Object),Tl=Object.prototype,zl=function isPrototype$2(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Tl)},Rl=Bl,Nl=Ll,Dl=zl,Hl=function initCloneObject$1(t){return"function"!=typeof t.constructor||Dl(t)?{}:Rl(Nl(t))},Vl=function isObjectLike$5(t){return null!=t&&"object"==typeof t},Fl=hs,Ul=Vl,ql=function baseIsArguments$1(t){return Ul(t)&&"[object Arguments]"==Fl(t)},Wl=Vl,Jl=Object.prototype,Gl=Jl.hasOwnProperty,Xl=Jl.propertyIsEnumerable,Kl=ql(function(){return arguments}())?ql:function(t){return Wl(t)&&Gl.call(t,"callee")&&!Xl.call(t,"callee")},Ql=Array.isArray,Zl=function isLength$2(t){return"number"==typeof t&&-1<t&&t%1==0&&t<=9007199254740991},Yl=ys,tc=Zl,ec=function isArrayLike$3(t){return null!=t&&tc(t.length)&&!Yl(t)},nc=ec,ic=Vl,rc=function isArrayLikeObject$1(t){return ic(t)&&nc(t)},oc={exports:{}},ac=function stubFalse(){return!1},sc=(!function(t,e){var e=e&&!e.nodeType&&e,n=e&&t&&!t.nodeType&&t,n=n&&n.exports===e?Za.Buffer:void 0,e=(n?n.isBuffer:void 0)||ac;t.exports=e}(oc,oc.exports),hs),lc=Ll,cc=Vl,hc=Function.prototype,uc=Object.prototype,dc=hc.toString,fc=uc.hasOwnProperty,pc=dc.call(Object),yc=function isPlainObject$1(t){if(!cc(t)||"[object Object]"!=sc(t))return!1;t=lc(t);if(null===t)return!0;t=fc.call(t,"constructor")&&t.constructor;return"function"==typeof t&&t instanceof t&&dc.call(t)==pc},vc=hs,gc=Zl,mc=Vl,bc={},Cc=(bc["[object Float32Array]"]=bc["[object Float64Array]"]=bc["[object Int8Array]"]=bc["[object Int16Array]"]=bc["[object Int32Array]"]=bc["[object Uint8Array]"]=bc["[object Uint8ClampedArray]"]=bc["[object Uint16Array]"]=bc["[object Uint32Array]"]=!0,bc["[object Arguments]"]=bc["[object Array]"]=bc["[object ArrayBuffer]"]=bc["[object Boolean]"]=bc["[object DataView]"]=bc["[object Date]"]=bc["[object Error]"]=bc["[object Function]"]=bc["[object Map]"]=bc["[object Number]"]=bc["[object Object]"]=bc["[object RegExp]"]=bc["[object Set]"]=bc["[object String]"]=bc["[object WeakMap]"]=!1,function baseIsTypedArray$1(t){return mc(t)&&gc(t.length)&&!!bc[vc(t)]}),_c=function baseUnary$1(e){return function(t){return e(t)}},kc={exports:{}},wc=(!function(t,e){var e=e&&!e.nodeType&&e,n=e&&t&&!t.nodeType&&t,i=n&&n.exports===e&&Xa.process,e=function(){try{return n&&n.require&&n.require("util").types||i&&i.binding&&i.binding("util")}catch(t){}}();t.exports=e}(kc,kc.exports),Cc),Pc=_c,xc=kc.exports,Ec=xc&&xc.isTypedArray,Sc=Ec?Pc(Ec):wc,$c=function safeGet$2(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]},Oc=kl,Ic=Ia,jc=Object.prototype.hasOwnProperty,Mc=function assignValue$1(t,e,n){var i=t[e];jc.call(t,e)&&Ic(i,n)&&(void 0!==n||e in t)||Oc(t,e,n)},Ac=kl,Bc=function copyObject$1(t,e,n,i){var r=!n;n=n||{};for(var o=-1,s=e.length;++o<s;){var a=e[o],l=i?i(n[a],t[a],a,n,t):void 0;void 0===l&&(l=t[a]),(r?Ac:Mc)(n,a,l)}return n},Lc=/^(?:0|[1-9]\d*)$/,Tc=function isIndex$2(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&Lc.test(t))&&-1<t&&t%1==0&&t<e},zc=function baseTimes$1(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i},Rc=Kl,Nc=Ql,Dc=oc.exports,Hc=Tc,Vc=Sc,Fc=Object.prototype.hasOwnProperty,Uc=function arrayLikeKeys$1(t,e){var n,i=Nc(t),r=!i&&Rc(t),o=!i&&!r&&Dc(t),s=!i&&!r&&!o&&Vc(t),a=i||r||o||s,l=a?zc(t.length,String):[],c=l.length;for(n in t)!e&&!Fc.call(t,n)||a&&("length"==n||o&&("offset"==n||"parent"==n)||s&&("buffer"==n||"byteLength"==n||"byteOffset"==n)||Hc(n,c))||l.push(n);return l},qc=us,Wc=zl,Jc=function nativeKeysIn$1(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e},Gc=Object.prototype.hasOwnProperty,Xc=Uc,Kc=function baseKeysIn$1(t){if(!qc(t))return Jc(t);var e,n=Wc(t),i=[];for(e in t)("constructor"!=e||!n&&Gc.call(t,e))&&i.push(e);return i},Qc=ec,Zc=function keysIn$2(t){return Qc(t)?Xc(t,!0):Kc(t)},Yc=Bc,th=Zc,eh=xl,nh=Sl.exports,ih=Il,rh=jl,oh=Hl,ah=Kl,sh=Ql,lh=rc,ch=oc.exports,hh=ys,uh=us,dh=yc,fh=Sc,ph=$c,yh=function toPlainObject$1(t){return Yc(t,th(t))},vh=ml,gh=xl,mh=El,bh=function baseMergeDeep$1(t,e,n,i,r,o,s){var a,l,c,h=ph(t,n),u=ph(e,n),d=s.get(u);d?eh(t,n,d):((e=void 0===(d=o?o(h,u,n+"",t,e,s):void 0))&&(l=!(a=sh(u))&&ch(u),c=!a&&!l&&fh(u),d=u,a||l||c?d=sh(h)?h:lh(h)?rh(h):l?nh(u,!(e=!1)):c?ih(u,!(e=!1)):[]:dh(u)||ah(u)?ah(d=h)?d=yh(h):uh(h)&&!hh(h)||(d=oh(u)):e=!1),e&&(s.set(u,d),r(d,u,i,o,s),s.delete(u)),eh(t,n,d))},Ch=us,_h=Zc,kh=$c,wh=function baseMerge$1(i,r,o,s,a){i!==r&&mh(r,function(t,e){var n;a=a||new vh,Ch(t)?bh(i,r,e,o,baseMerge$1,s,a):(n=s?s(kh(i,e),t,e+"",i,r,a):void 0,gh(i,e,n=void 0===n?t:n))},_h)},Ph=function identity$2(t){return t},xh=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)},Eh=Math.max,Sh=function overRest$1(o,s,a){return s=Eh(void 0===s?o.length-1:s,0),function(){for(var t=arguments,e=-1,n=Eh(t.length-s,0),i=Array(n);++e<n;)i[e]=t[s+e];for(var e=-1,r=Array(s+1);++e<s;)r[e]=t[e];return r[s]=a(i),xh(o,this,r)}},$h=function constant$1(t){return function(){return t}},Oh=Cl,Ih=Oh?function(t,e){return Oh(t,"toString",{configurable:!0,enumerable:!1,value:$h(e),writable:!0})}:Ph,jh=Date.now,Mh=function shortOut$1(n){var i=0,r=0;return function(){var t=jh(),e=16-(t-r);if(r=t,0<e){if(800<=++i)return arguments[0]}else i=0;return n.apply(void 0,arguments)}}(Ih),Ah=Ph,Bh=Sh,Lh=Mh,Th=Ia,zh=ec,Rh=Tc,Nh=us,Dh=function baseRest$1(t,e){return Lh(Bh(t,e,Ah),t+"")},Hh=function isIterateeCall$1(t,e,n){if(!Nh(n))return!1;var i=typeof e;return!!("number"==i?zh(n)&&Rh(e,n.length):"string"==i&&e in n)&&Th(n[e],t)},Vh=wh,Fh=function createAssigner$1(a){return Dh(function(t,e){var n=-1,i=e.length,r=1<i?e[i-1]:void 0,o=2<i?e[2]:void 0,r=3<a.length&&"function"==typeof r?(i--,r):void 0;for(o&&Hh(e[0],e[1],o)&&(r=i<3?void 0:r,i=1),t=Object(t);++n<i;){var s=e[n];s&&a(t,s,n,r)}return t})}(function(t,e,n){Vh(t,e,n)}),Uh=function(){_inherits$1(Entity,_o);var e=_createSuper$1(Entity);function Entity(t){_classCallCheck$1(this,Entity);var t=Entity.arrangeParam(t);return _defineProperty$2(_assertThisInitialized$1(t=e.call(this,t)),"entityFieldsComponent",[]),t}return _createClass$1(Entity,[{key:"doRender",value:function doRender(){this.dirty&&this.syncEntityNameAndFields(),this.doLayout(),_get$1(_getPrototypeOf$1(Entity.prototype),"doRender",this).call(this)}},{key:"syncEntityNameAndFields",value:function syncEntityNameAndFields(){if(this.state.entityName&&(this.entityNameComponent&&this.removeChild(this.entityNameComponent),this.entityNameComponent=new ba({left:0,top:0,text:this.state.entityName,style:{strokeStyle:"#222",fillStyle:"#222",fontSize:18,fontWeight:"bold",paddingTop:10,paddingLeft:10,paddingRight:10,paddingBottom:10},interactive:!1,stroke:!1,showMinBoundingBox:!1,showMaxBoundingBox:!1}),this.addChild(this.entityNameComponent),this.deviderLine&&this.removeChild(this.deviderLine),this.deviderLine=new pa({left:0,top:0,points:[[0,0],[this.state.width,0]],style:{strokeStyle:"#333",fillStyle:"#333",lineWidth:2},interactive:!1}),this.addChild(this.deviderLine)),this.entityFieldsComponent.length&&(this.removeChildren(this.entityFieldsComponent),this.entityFieldsComponent.length=0),!$a(this.state.fields)){for(var t=this.state.fields.length,e=0;e<t;e++){var n=this.state.fields[e],n=new ba({left:0,top:0,text:"".concat(n.name," ").concat(n.type," ").concat(n.length),style:{strokeStyle:"#222",fillStyle:"#222",fontSize:18,fontWeight:"normal",paddingTop:10,paddingLeft:10,paddingRight:10,paddingBottom:e===t-1?10:0},interactive:!1,stroke:!1,showMinBoundingBox:!1,showMaxBoundingBox:!1});this.entityFieldsComponent.push(n)}this.addChildren(this.entityFieldsComponent)}}},{key:"doLayout",value:function doLayout(){var t=this.state.width,e=0,n=0;this.entityNameComponent&&(e=this.childNodes[0].state.height,t=Math.max(t,this.childNodes[0].state.width),n=e+=this.deviderLine.state.height);for(var i=0;i<this.entityFieldsComponent.length;i++){var r=this.entityFieldsComponent[i];r.setState({left:0,top:e}),e+=r.state.height,t=Math.max(t,r.state.width)}this.deviderLine&&this.deviderLine.setState({points:[[0,n],[t,n]]}),this.setState({height:Math.max(e,this.state.height),width:t})}},{key:"toEntityObject",value:function toEntityObject(){var n={name:this.state.entityName,columns:{}};return this.state.fields.forEach(function(t,e){n.columns[t.name]=_objectSpread2$1({},t)}),n}},{key:"setState",value:function setState(t){this.state=_objectSpread2$1(_objectSpread2$1({},this.state),t),this.dirty=!0,this.ice&&(this.ice.dirty=!0)}}],[{key:"arrangeParam",value:function arrangeParam(t){t=Fh({entityName:"Entity Name",fields:[],style:{strokeStyle:"#000",fillStyle:"#00eeff"}},t,{transformable:!1});return $a(t.entityName)&&(t.entityName="Entity Name"),$a(t.fields)&&(t.fields=[]),t}}]),Entity}(),qh=function(){_inherits$1(Relation,ya);var e=_createSuper$1(Relation);function Relation(t){return _classCallCheck$1(this,Relation),e.call(this,_objectSpread2$1({title:"Relation",relationType:"one-to-one",referencedColumnName:"id"},t))}return _createClass$1(Relation,[{key:"toEntityObject",value:function toEntityObject(){var t=this.state,e=t.title,n=t.relationType,t=t.referencedColumnName,i=this.links.start.component,r=this.links.end.component;return{title:e,fromId:i.state.id,fromName:i.state.entityName,toId:r.state.id,toName:r.state.entityName,relationType:n,referencedColumnName:t}}}]),Relation}();function toWords(t){return(t=function convertToString(t){return"string"==typeof(t=t||"")?t:String(t)}(t)).match(/[A-Z\xC0-\xD6\xD8-\xDE]?[a-z\xDF-\xF6\xF8-\xFF]+|[A-Z\xC0-\xD6\xD8-\xDE]+(?![a-z\xDF-\xF6\xF8-\xFF])|\d+/g)}function toCamelCase(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n="",i=0,r=t.length;i<r;i++){var o=t[i].toLowerCase();n+=o=!e&&0==i?o:o.substr(0,1).toUpperCase()+o.substr(1)}return n}function camelCase(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1];return toCamelCase(toWords(t),e)}var Wh=[],Jh=[],Gh={},Xh={},Kh={};function sanitizeRule(t){return"string"==typeof t?new RegExp("^"+t+"$","i"):t}function restoreCase(t,e){return t===e?e:t===t.toLowerCase()?e.toLowerCase():t===t.toUpperCase()?e.toUpperCase():t[0]===t[0].toUpperCase()?e.charAt(0).toUpperCase()+e.substr(1).toLowerCase():e.toLowerCase()}function interpolate(t,n){return t.replace(/\$(\d{1,2})/g,function(t,e){return n[e]||""})}function replace(i,r){return i.replace(r[0],function(t,e){var n=interpolate(r[1],arguments);return restoreCase(""===t?i[e-1]:t,n)})}function sanitizeWord(t,e,n){if(!t.length||Gh.hasOwnProperty(t))return e;for(var i=n.length;i--;){var r=n[i];if(r[0].test(e))return replace(e,r)}return e}function replaceWord(n,i,r){return function(t){var e=t.toLowerCase();return i.hasOwnProperty(e)?restoreCase(t,e):n.hasOwnProperty(e)?restoreCase(t,n[e]):sanitizeWord(e,t,r)}}function checkWord(e,n,i){return function(t){t=t.toLowerCase();return!!n.hasOwnProperty(t)||!e.hasOwnProperty(t)&&sanitizeWord(t,t,i)===t}}function pluralize(t,e,n){return(n?e+" ":"")+(1===e?pluralize.singular(t):pluralize.plural(t))}function toSchemaObject(t){for(var e=_toConsumableArray$1(t),n=[],i={},r=0;r<e.length;r++){var o=e[r];"Relation"===o.constructor.name?n.push(o):"Entity"===o.constructor.name&&(i[o.state.id]=o.toEntityObject())}for(var s=0;s<n.length;s++){var a=n[s].toEntityObject(),l=a.fromId,c=a.fromName,h=a.toId,u=a.toName,d=a.relationType,a=a.referencedColumnName,l=i[l],h=i[h];l&&h&&(l.relations||(l.relations={}),h.relations||(h.relations={}),"one-to-one"===d?(l.relations["".concat(camelCase(u))]={type:d,target:u,joinColumn:{target:u,referencedColumnName:a}},h.relations["".concat(camelCase(c))]={type:d,target:c}):"one-to-many"===d?l.relations["".concat(camelCase(u))]={type:d,target:u}:"many-to-one"===d?h.relations["".concat(camelCase(c))]={type:"one-to-many",target:c}:"many-to-many"===d&&(l.relations["".concat(pluralize(camelCase(u)))]={type:d,target:u,joinTable:{target:u}},h.relations["".concat(pluralize(camelCase(c)))]={type:d,target:c}))}var p,f=[];for(p in i)f.push(i[p]);return f}pluralize.plural=replaceWord(Kh,Xh,Wh),pluralize.isPlural=checkWord(Kh,Xh,Wh),pluralize.singular=replaceWord(Xh,Kh,Jh),pluralize.isSingular=checkWord(Xh,Kh,Jh),pluralize.addPluralRule=function(t,e){Wh.push([sanitizeRule(t),e])},pluralize.addSingularRule=function(t,e){Jh.push([sanitizeRule(t),e])},pluralize.addUncountableRule=function(t){"string"!=typeof t?(pluralize.addPluralRule(t,"$0"),pluralize.addSingularRule(t,"$0")):Gh[t.toLowerCase()]=!0},pluralize.addIrregularRule=function(t,e){e=e.toLowerCase(),t=t.toLowerCase(),Kh[t]=e,Xh[e]=t},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"]].forEach(function(t){return pluralize.addIrregularRule(t[0],t[1])}),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach(function(t){return pluralize.addPluralRule(t[0],t[1])}),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach(function(t){return pluralize.addSingularRule(t[0],t[1])}),["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","species","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[eé]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(pluralize.addUncountableRule),exports.Entity=Uh,exports.Relation=qh,exports.toSchemaObject=toSchemaObject,exports.toSchemaString=function toSchemaString(t){return JSON.stringify(toSchemaObject(t))};
25
+ "use strict";function ownKeys$1(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$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1(Object(n),!0).forEach(function(t){_defineProperty$2(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _classCallCheck$1(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties$1(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$1(t,e,n){return e&&_defineProperties$1(t.prototype,e),n&&_defineProperties$1(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function _defineProperty$2(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function _inherits$1(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$1(t,e)}function _getPrototypeOf$1(t){return(_getPrototypeOf$1=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function _setPrototypeOf$1(t,e){return(_setPrototypeOf$1=Object.setPrototypeOf||function _setPrototypeOf(t,e){return t.__proto__=e,t})(t,e)}function _assertThisInitialized$1(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function _possibleConstructorReturn$1(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$1(t)}function _createSuper$1(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$1(n);return _possibleConstructorReturn$1(this,i?(t=_getPrototypeOf$1(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function _superPropBase$1(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=_getPrototypeOf$1(t)););return t}function _get$1(){return(_get$1="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,e,n){var i=_superPropBase$1(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$1(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray$1(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$1(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$1(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$1(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 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){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}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&&function _setPrototypeOf(t,e){(Object.setPrototypeOf||function _setPrototypeOf(t,e){return t.__proto__=e,t})(t,e)}(t,e)}function _getPrototypeOf(t){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}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)}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 _possibleConstructorReturn(this,i?(t=_getPrototypeOf(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function _superPropBase(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=_getPrototypeOf(t)););return t}function _get(){return(_get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function _get(t,e,n){var i=_superPropBase(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}Object.defineProperty(exports,"__esModule",{value:!0});var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e="object"==typeof t&&t&&t.Object===Object&&t,n=e,i="object"==typeof self&&self&&self.Object===Object&&self,r=n||i||Function("return this")(),o=r.Symbol,a=o,s=Object.prototype,l=s.hasOwnProperty,c=s.toString,h=a?a.toStringTag:void 0,u=Object.prototype.toString,d=function getRawTag$1(t){var e=l.call(t,h),n=t[h];try{var i=!(t[h]=void 0)}catch(t){}var r=c.call(t);return i&&(e?t[h]=n:delete t[h]),r},f=function objectToString$1(t){return u.call(t)},p=o?o.toStringTag:void 0,y=function baseGetTag$7(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":(p&&p in Object(t)?d:f)(t)},v=Array.isArray,g=function isObjectLike$9(t){return null!=t&&"object"==typeof t},m=y,b=v,C=g,_=function isString(t){return"string"==typeof t||!b(t)&&C(t)&&"[object String]"==m(t)},k=function isUndefined(t){return void 0===t},w="ICE_FRAME_EVENT",P="BEFORE_RENDER",x="AFTER_RENDER",E="BEFORE_ADD",S="AFTER_ADD",$="BEFORE_REMOVE",O="ROUND_FINISH",I="HOOK_MOUSEDOWN",j="HOOK_MOUSEMOVE",M="HOOK_MOUSEUP",A="BEFORE_RESIZE",B="AFTER_RESIZE",L="AFTER_ROTATE",T="BEFORE_MOVE",z="AFTER_MOVE",R={linear:function linear(t,e,n,i){return t+(e-t)/n*(Date.now()-i)},easeInQuad:function easeInQuad(t,e,n,i){return t+(e-t)/n*((i=Date.now()-i)/n)*i},easeOutQuad:function easeOutQuad(t,e,n,i){return i=Date.now()-i,-(e-t)*(i/=n)*(i-2)+t},easeInOutQuad:function easeInOutQuad(t,e,n,i){return i=Date.now()-i,e-=t,(i/=n/2)<1?e/2*i*i+t:-e/2*(--i*(i-2)-1)+t},easeInQuart:function easeInQuart(t,e,n,i){return i=Date.now()-i,(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){return i=Date.now()-i,e-=t,(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){return i=Date.now()-i,(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){return i=Date.now()-i,e-=t,(i/=n/2)<1?e/2*i*i*i+t:e/2*((i-=2)*i*i+2)+t}},N=function(){function AnimationManager(t){_classCallCheck(this,AnimationManager),_defineProperty$1(this,"animationMap",new Map),this.ice=t}return _createClass(AnimationManager,[{key:"start",value:function start(){return this.ice.evtBus.on(w,this.frameEventHandler,this),this}},{key:"stop",value:function stop(){return this.ice.evtBus.off(w,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,r=1;for(e in i){var o=i[e];if(o.finished){if(++r===Object.keys(i).length){this.remove(t);break}}else{var s=o.from,a=o.to,l=o.duration;a<(k(o.startTime)&&(o.startTime=Date.now()),k(o.easing)&&(o.easing="linear"),s=R[o.easing](s,a,l,o.startTime))&&(s=a,o.finished=!0),n[e]=Math.floor(s)}}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){_(t)?this.animationMap.delete(t):this.animationMap.delete(t.props.id)}}]),AnimationManager}(),D=function eq$4(t,e){return t===e||t!=t&&e!=e},H=D,V=function assocIndexOf$4(t,e){for(var n=t.length;n--;)if(H(t[n][0],e))return n;return-1},F=V,U=Array.prototype.splice,q=V,W=V,J=V,G=function listCacheClear$1(){this.__data__=[],this.size=0};function ListCache$4$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])}}ListCache$4$1.prototype.clear=G,ListCache$4$1.prototype.delete=function listCacheDelete$1(t){var e=this.__data__;return!((t=F(e,t))<0||(t==e.length-1?e.pop():U.call(e,t,1),--this.size,0))},ListCache$4$1.prototype.get=function listCacheGet$1(t){var e=this.__data__;return(t=q(e,t))<0?void 0:e[t][1]},ListCache$4$1.prototype.has=function listCacheHas$1(t){return-1<W(this.__data__,t)},ListCache$4$1.prototype.set=function listCacheSet$1(t,e){var n=this.__data__,i=J(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this};var X,K=ListCache$4$1,Q=K,Z=function isObject$9(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},Y=y,tt=Z,et=function isFunction$3(t){return!!tt(t)&&("[object Function]"==(t=Y(t))||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t)},nt=r["__core-js_shared__"],it=(X=/[^.]+$/.exec(nt&&nt.keys&&nt.keys.IE_PROTO||""))?"Symbol(src)_1."+X:"",rt=Function.prototype.toString,ot=function toSource$2(t){if(null!=t){try{return rt.call(t)}catch(t){}try{return t+""}catch(t){}}return""},at=et,st=function isMasked$1(t){return!!it&&it in t},lt=Z,ct=ot,ht=/^\[object .+?Constructor\]$/,ut=Function.prototype,dt=Object.prototype,ft=ut.toString,pt=dt.hasOwnProperty,yt=RegExp("^"+ft.call(pt).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),vt=function getNative$7(t,e){return function baseIsNative$1(t){return lt(t)&&!st(t)&&(at(t)?yt:ht).test(ct(t))}(t=function getValue$1(t,e){return null==t?void 0:t[e]}(t,e))?t:void 0},gt=vt(r,"Map"),mt=vt(Object,"create"),bt=mt,Ct=mt,_t=Object.prototype.hasOwnProperty,kt=mt,wt=Object.prototype.hasOwnProperty,Pt=mt,xt=function hashClear$1(){this.__data__=bt?bt(null):{},this.size=0},Et=function hashDelete$1(t){return t=this.has(t)&&delete this.__data__[t],this.size-=t?1:0,t},St=function hashGet$1(t){var e,n=this.__data__;return Ct?"__lodash_hash_undefined__"===(e=n[t])?void 0:e:_t.call(n,t)?n[t]:void 0};function Hash$1$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$1.prototype.clear=xt,Hash$1$1.prototype.delete=Et,Hash$1$1.prototype.get=St,Hash$1$1.prototype.has=function hashHas$1(t){var e=this.__data__;return kt?void 0!==e[t]:wt.call(e,t)},Hash$1$1.prototype.set=function hashSet$1(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Pt&&void 0===e?"__lodash_hash_undefined__":e,this};var $t=Hash$1$1,Ot=K,It=gt,jt=function getMapData$4(t,e){return t=t.__data__,function isKeyable$1(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}(e)?t["string"==typeof e?"string":"hash"]:t.map},Mt=jt,At=jt,Bt=jt,Lt=jt;function MapCache$1$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$1.prototype.clear=function mapCacheClear$1(){this.size=0,this.__data__={hash:new $t,map:new(It||Ot),string:new $t}},MapCache$1$1.prototype.delete=function mapCacheDelete$1(t){return t=Mt(this,t).delete(t),this.size-=t?1:0,t},MapCache$1$1.prototype.get=function mapCacheGet$1(t){return At(this,t).get(t)},MapCache$1$1.prototype.has=function mapCacheHas$1(t){return Bt(this,t).has(t)},MapCache$1$1.prototype.set=function mapCacheSet$1(t,e){var n=Lt(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this};var Tt=K,zt=gt,Rt=MapCache$1$1,Nt=K,Dt=function stackClear$1(){this.__data__=new Q,this.size=0},Ht=function stackDelete$1(t){var e=this.__data__;return t=e.delete(t),this.size=e.size,t},Vt=function stackGet$1(t){return this.__data__.get(t)},Ft=function stackHas$1(t){return this.__data__.has(t)};function Stack$2(t){t=this.__data__=new Nt(t),this.size=t.size}Stack$2.prototype.clear=Dt,Stack$2.prototype.delete=Ht,Stack$2.prototype.get=Vt,Stack$2.prototype.has=Ft,Stack$2.prototype.set=function stackSet$1(t,e){var n=this.__data__;if(n instanceof Tt){var i=n.__data__;if(!zt||i.length<199)return i.push([t,e]),this.size=++n.size,this;n=this.__data__=new Rt(i)}return n.set(t,e),this.size=n.size,this};var Ut=Stack$2,qt=vt,Wt=function(){try{var t=qt(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),Jt=Wt,Gt=function baseAssignValue$3(t,e,n){"__proto__"==e&&Jt?Jt(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n},Xt=Gt,Kt=D,Qt=function assignMergeValue$2(t,e,n){(void 0===n||Kt(t[e],n))&&(void 0!==n||e in t)||Xt(t,e,n)},Zt=function createBaseFor$1(l){return function(t,e,n){for(var i=-1,r=Object(t),o=n(t),s=o.length;s--;){var a=o[l?s:++i];if(!1===e(r[a],a,r))break}return t}}(),Yt={exports:{}},te=(function(t,e){var n,i=(n=(n=(e=e&&!e.nodeType&&e)&&t&&!t.nodeType&&t)&&n.exports===e?r.Buffer:void 0)?n.allocUnsafe:void 0;t.exports=function cloneBuffer(t,e){return e?t.slice():(e=t.length,e=i?i(e):new t.constructor(e),t.copy(e),e)}}(Yt,Yt.exports),r.Uint8Array),ee=function cloneArrayBuffer$3(t){var e=new t.constructor(t.byteLength);return new te(e).set(new te(t)),e},ne=ee,ie=function cloneTypedArray$2(t,e){return e=e?ne(t.buffer):t.buffer,new t.constructor(e,t.byteOffset,t.length)},re=function copyArray$2(t,e){var n=-1,i=t.length;for(e=e||Array(i);++n<i;)e[n]=t[n];return e},oe=Z,ae=Object.create,se=function(){function object(){}return function(t){return oe(t)?ae?ae(t):(object.prototype=t,t=new object,object.prototype=void 0,t):{}}}(),le=function overArg$2(e,n){return function(t){return e(n(t))}},ce=le(Object.getPrototypeOf,Object),he=Object.prototype,ue=function isPrototype$4(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||he)},de=se,fe=ce,pe=ue,ye=function initCloneObject$2(t){return"function"!=typeof t.constructor||pe(t)?{}:de(fe(t))},ve=y,ge=g,me=function baseIsArguments$1(t){return ge(t)&&"[object Arguments]"==ve(t)},be=g,Ce=Object.prototype,_e=Ce.hasOwnProperty,ke=Ce.propertyIsEnumerable,we=me(function(){return arguments}())?me:function(t){return be(t)&&_e.call(t,"callee")&&!ke.call(t,"callee")},Pe=function isLength$2(t){return"number"==typeof t&&-1<t&&t%1==0&&t<=9007199254740991},xe=et,Ee=Pe,Se=function isArrayLike$5(t){return null!=t&&Ee(t.length)&&!xe(t)},$e=Se,Oe=g,Ie={exports:{}},je=function stubFalse(){return!1},Me=(function(t,e){var n;e=((n=(n=(e=e&&!e.nodeType&&e)&&t&&!t.nodeType&&t)&&n.exports===e?r.Buffer:void 0)?n.isBuffer:void 0)||je,t.exports=e}(Ie,Ie.exports),y),Ae=ce,Be=g,Le=Function.prototype,Te=Object.prototype,ze=Le.toString,Re=Te.hasOwnProperty,Ne=ze.call(Object),De=y,He=Pe,Ve=g,Fe={},Ue=(Fe["[object Float32Array]"]=Fe["[object Float64Array]"]=Fe["[object Int8Array]"]=Fe["[object Int16Array]"]=Fe["[object Int32Array]"]=Fe["[object Uint8Array]"]=Fe["[object Uint8ClampedArray]"]=Fe["[object Uint16Array]"]=Fe["[object Uint32Array]"]=!0,Fe["[object Arguments]"]=Fe["[object Array]"]=Fe["[object ArrayBuffer]"]=Fe["[object Boolean]"]=Fe["[object DataView]"]=Fe["[object Date]"]=Fe["[object Error]"]=Fe["[object Function]"]=Fe["[object Map]"]=Fe["[object Number]"]=Fe["[object Object]"]=Fe["[object RegExp]"]=Fe["[object Set]"]=Fe["[object String]"]=Fe["[object WeakMap]"]=!1,function baseIsTypedArray$1(t){return Ve(t)&&He(t.length)&&!!Fe[De(t)]}),qe=function baseUnary$3(e){return function(t){return e(t)}},We={exports:{}},Je=(function(t,n){var i=(n=n&&!n.nodeType&&n)&&t&&!t.nodeType&&t,r=i&&i.exports===n&&e.process;n=function(){try{return i&&i.require&&i.require("util").types||r&&r.binding&&r.binding("util")}catch(t){}}(),t.exports=n}(We,We.exports),Ue),Ge=qe,Xe=We.exports,Ke=Xe&&Xe.isTypedArray,Qe=Ke?Ge(Ke):Je,Ze=function safeGet$2(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]},Ye=Gt,tn=D,en=Object.prototype.hasOwnProperty,nn=function assignValue$2(t,e,n){var i=t[e];en.call(t,e)&&tn(i,n)&&(void 0!==n||e in t)||Ye(t,e,n)},rn=nn,an=Gt,sn=function copyObject$5(t,e,n,i){var r=!n;n=n||{};for(var o=-1,s=e.length;++o<s;){var a=e[o],l=i?i(n[a],t[a],a,n,t):void 0;void 0===l&&(l=t[a]),(r?an:rn)(n,a,l)}return n},ln=/^(?:0|[1-9]\d*)$/,cn=function isIndex$2(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&ln.test(t))&&-1<t&&t%1==0&&t<e},hn=we,un=v,dn=Ie.exports,fn=cn,pn=Qe,yn=Object.prototype.hasOwnProperty,vn=function arrayLikeKeys$2(t,e){var n,i=un(t),r=!i&&hn(t),o=!i&&!r&&dn(t),s=!i&&!r&&!o&&pn(t),a=i||r||o||s,l=a?function baseTimes$1(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i}(t.length,String):[],c=l.length;for(n in t)!e&&!yn.call(t,n)||a&&("length"==n||o&&("offset"==n||"parent"==n)||s&&("buffer"==n||"byteLength"==n||"byteOffset"==n)||fn(n,c))||l.push(n);return l},gn=Z,mn=ue,bn=Object.prototype.hasOwnProperty,Cn=vn,_n=function baseKeysIn$1(t){if(!gn(t))return function nativeKeysIn$1(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}(t);var e,n=mn(t),i=[];for(e in t)("constructor"!=e||!n&&bn.call(t,e))&&i.push(e);return i},kn=Se,wn=function keysIn$5(t){return kn(t)?Cn(t,!0):_n(t)},Pn=sn,xn=wn,En=Qt,Sn=Yt.exports,$n=ie,On=re,In=ye,jn=we,Mn=v,An=function isArrayLikeObject$1(t){return Oe(t)&&$e(t)},Bn=Ie.exports,Ln=et,Tn=Z,zn=function isPlainObject$1(t){return!(!Be(t)||"[object Object]"!=Me(t))&&(null===(t=Ae(t))||"function"==typeof(t=Re.call(t,"constructor")&&t.constructor)&&t instanceof t&&ze.call(t)==Ne)},Rn=Qe,Nn=Ze,Dn=Ut,Hn=Qt,Vn=Zt,Fn=function baseMergeDeep$1(t,e,n,i,r,o,s){var a,l,c,h=Nn(t,n),u=Nn(e,n),d=s.get(u);d||((e=void 0===(d=o?o(h,u,n+"",t,e,s):void 0))&&(l=!(a=Mn(u))&&Bn(u),c=!a&&!l&&Rn(u),d=u,a||l||c?d=Mn(h)?h:An(h)?On(h):l?Sn(u,!(e=!1)):c?$n(u,!(e=!1)):[]:zn(u)||jn(u)?jn(d=h)?d=function toPlainObject$1(t){return Pn(t,xn(t))}(h):Tn(h)&&!Ln(h)||(d=In(u)):e=!1),e&&(s.set(u,d),r(d,u,i,o,s),s.delete(u))),En(t,n,d)},Un=Z,qn=wn,Wn=Ze,Jn=function identity$2(t){return t},Gn=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)},Xn=Math.max,Kn=function constant$1(t){return function(){return t}},Qn=Wt,Zn=Qn?function(t,e){return Qn(t,"toString",{configurable:!0,enumerable:!1,value:Kn(e),writable:!0})}:Jn,Yn=Date.now,ti=function shortOut$1(n){var i=0,r=0;return function(){var t=Yn(),e=16-(t-r);if(r=t,0<e){if(800<=++i)return arguments[0]}else i=0;return n.apply(void 0,arguments)}}(Zn),ei=Jn,ni=function overRest$1(o,s,a){return s=Xn(void 0===s?o.length-1:s,0),function(){for(var t=arguments,e=-1,n=Xn(t.length-s,0),i=Array(n);++e<n;)i[e]=t[s+e];for(var e=-1,r=Array(s+1);++e<s;)r[e]=t[e];return r[s]=a(i),Gn(o,this,r)}},ii=ti,ri=D,oi=Se,ai=cn,si=Z,li=function baseMerge$1(i,r,o,s,a){i!==r&&Vn(r,function(t,e){var n;a=a||new Dn,Un(t)?Fn(i,r,e,o,baseMerge$1,s,a):(n=s?s(Wn(i,e),t,e+"",i,r,a):void 0,Hn(i,e,n=void 0===n?t:n))},qn)},ci=function createAssigner$1(a){return function baseRest$1(t,e){return ii(ni(t,e,ei),t+"")}(function(t,e){var n=-1,i=e.length,r=1<i?e[i-1]:void 0,o=2<i?e[2]:void 0,r=3<a.length&&"function"==typeof r?(i--,r):void 0;for(o&&function isIterateeCall$1(t,e,n){var i;if(si(n))return i=typeof e,("number"==i?oi(n)&&ai(e,n.length):"string"==i&&e in n)&&ri(n[e],t)}(e[0],e[1],o)&&(r=i<3?void 0:r,i=1),t=Object(t);++n<i;){var s=e[n];s&&a(t,s,n,r)}return t})}(function(t,e,n){li(t,e,n)}),hi="undefined"!=typeof Float32Array?Float32Array:Array,ui=Math.PI/180;function toRadian(t){return t*ui}function invert(t,e){var n=e[0],i=e[1],r=e[2],o=e[3],s=e[4],a=(e=e[5],n*o-i*r);return a?(t[0]=o*(a=1/a),t[1]=-i*a,t[2]=-r*a,t[3]=n*a,t[4]=(r*e-o*s)*a,t[5]=(i*s-n*e)*a,t):null}function multiply(t,e,n){var i=e[0],r=e[1],o=e[2],s=e[3],a=e[4],l=(e=e[5],n[0]),c=n[1],h=n[2],u=n[3],d=n[4];return n=n[5],t[0]=i*l+o*c,t[1]=r*l+s*c,t[2]=i*h+o*u,t[3]=r*h+s*u,t[4]=i*d+o*n+a,t[5]=r*d+s*n+e,t}function transformMat2d(t,e,n){var i=e[0];return e=e[1],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 hi(2);hi!=Float32Array&&(t[0]=0,t[1]=0)}();var di=le(Object.keys,Object),fi=ue,pi=di,yi=Object.prototype.hasOwnProperty,vi=function baseKeys$2(t){if(!fi(t))return pi(t);var e,n=[];for(e in Object(t))yi.call(t,e)&&"constructor"!=e&&n.push(e);return n},gi=vn,mi=vi,bi=Se,Ci=function keys$3(t){return(bi(t)?gi:mi)(t)},_i=sn,ki=Ci,wi=sn,Pi=wn,xi=function stubArray$2(){return[]},Ei=xi,Si=Object.prototype.propertyIsEnumerable,$i=Object.getOwnPropertySymbols,Oi=$i?function(e){return null==e?[]:(e=Object(e),function arrayFilter$1(t,e){for(var n=-1,i=null==t?0:t.length,r=0,o=[];++n<i;){var s=t[n];e(s,n,t)&&(o[r++]=s)}return o}($i(e),function(t){return Si.call(e,t)}))}:Ei,Ii=sn,ji=Oi,Mi=function arrayPush$2(t,e){for(var n=-1,i=e.length,r=t.length;++n<i;)t[r+n]=e[n];return t},Ai=Mi,Bi=ce,Li=Oi,Ti=xi,zi=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)Ai(e,Li(t)),t=Bi(t);return e}:Ti,Ri=sn,Ni=zi,Di=Mi,Hi=v,Vi=function baseGetAllKeys$2(t,e,n){return e=e(t),Hi(t)?e:Di(e,n(t))},Fi=Vi,Ui=Oi,qi=Ci,Wi=Vi,Ji=zi,Gi=wn,Xi=vt(r,"DataView"),Ki=gt,Qi=vt(r,"Promise"),Zi=vt(r,"Set"),Yi=vt(r,"WeakMap"),tr=y,er=ot,nr=er(Xi),ir=er(Ki),rr=er(Qi),or=er(Zi),ar=er(Yi),sr=tr,lr=sr=Xi&&"[object DataView]"!=sr(new Xi(new ArrayBuffer(1)))||Ki&&"[object Map]"!=sr(new Ki)||Qi&&"[object Promise]"!=sr(Qi.resolve())||Zi&&"[object Set]"!=sr(new Zi)||Yi&&"[object WeakMap]"!=sr(new Yi)?function(t){var e=tr(t);if(t=(t="[object Object]"==e?t.constructor:void 0)?er(t):"")switch(t){case nr:return"[object DataView]";case ir:return"[object Map]";case rr:return"[object Promise]";case or:return"[object Set]";case ar:return"[object WeakMap]"}return e}:sr,cr=Object.prototype.hasOwnProperty,hr=ee,ur=/\w*$/,dr=o?o.prototype:void 0,fr=dr?dr.valueOf:void 0,pr=ee,yr=function cloneDataView$1(t,e){return e=e?hr(t.buffer):t.buffer,new t.constructor(e,t.byteOffset,t.byteLength)},vr=function cloneRegExp$1(t){var e=new t.constructor(t.source,ur.exec(t));return e.lastIndex=t.lastIndex,e},gr=ie,mr=lr,br=g,Cr=qe,_r=We.exports,kr=_r&&_r.isMap,wr=kr?Cr(kr):function baseIsMap$1(t){return br(t)&&"[object Map]"==mr(t)},Pr=lr,xr=g,Er=qe,Sr=We.exports,$r=Sr&&Sr.isSet,Or=$r?Er($r):function baseIsSet$1(t){return xr(t)&&"[object Set]"==Pr(t)},Ir=Ut,jr=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},Mr=nn,Ar=function baseAssign$1(t,e){return t&&_i(e,ki(e),t)},Br=function baseAssignIn$1(t,e){return t&&wi(e,Pi(e),t)},Lr=Yt.exports,Tr=re,zr=function copySymbols$1(t,e){return Ii(t,ji(t),e)},Rr=function copySymbolsIn$1(t,e){return Ri(t,Ni(t),e)},Nr=function getAllKeys$1(t){return Fi(t,qi,Ui)},Dr=function getAllKeysIn$1(t){return Wi(t,Gi,Ji)},Hr=lr,Vr=function initCloneArray$1(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&cr.call(t,"index")&&(n.index=t.index,n.input=t.input),n},Fr=function initCloneByTag$1(t,e,n){var i=t.constructor;switch(e){case"[object ArrayBuffer]":return pr(t);case"[object Boolean]":case"[object Date]":return new i(+t);case"[object DataView]":return yr(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 gr(t,n);case"[object Map]":return new i;case"[object Number]":case"[object String]":return new i(t);case"[object RegExp]":return vr(t);case"[object Set]":return new i;case"[object Symbol]":return function cloneSymbol$1(t){return fr?Object(fr.call(t)):{}}(t)}},Ur=ye,qr=v,Wr=Ie.exports,Jr=wr,Gr=Z,Xr=Or,Kr=Ci,Qr=wn,Zr={},Yr=(Zr["[object Arguments]"]=Zr["[object Array]"]=Zr["[object ArrayBuffer]"]=Zr["[object DataView]"]=Zr["[object Boolean]"]=Zr["[object Date]"]=Zr["[object Float32Array]"]=Zr["[object Float64Array]"]=Zr["[object Int8Array]"]=Zr["[object Int16Array]"]=Zr["[object Int32Array]"]=Zr["[object Map]"]=Zr["[object Number]"]=Zr["[object Object]"]=Zr["[object RegExp]"]=Zr["[object Set]"]=Zr["[object String]"]=Zr["[object Symbol]"]=Zr["[object Uint8Array]"]=Zr["[object Uint8ClampedArray]"]=Zr["[object Uint16Array]"]=Zr["[object Uint32Array]"]=!0,Zr["[object Error]"]=Zr["[object Function]"]=Zr["[object WeakMap]"]=!1,function baseClone$1(n,i,r,t,e,o){var s,a=1&i,l=2&i,c=4&i;if(void 0!==(s=r?e?r(n,t,e,o):r(n):s))return s;if(!Gr(n))return n;if(t=qr(n)){if(s=Vr(n),!a)return Tr(n,s)}else{var h=Hr(n),u="[object Function]"==h||"[object GeneratorFunction]"==h;if(Wr(n))return Lr(n,a);if("[object Object]"==h||"[object Arguments]"==h||u&&!e){if(s=l||u?{}:Ur(n),!a)return l?Rr(n,Br(s,n)):zr(n,Ar(s,n))}else{if(!Zr[h])return e?n:{};s=Fr(n,h,a)}}if(u=(o=o||new Ir).get(n))return u;o.set(n,s),Xr(n)?n.forEach(function(t){s.add(baseClone$1(t,i,r,t,n,o))}):Jr(n)&&n.forEach(function(t,e){s.set(e,baseClone$1(t,i,r,e,n,o))});var d=t?void 0:(c?l?Dr:Nr:l?Qr:Kr)(n);return jr(d||n,function(t,e){d&&(t=n[e=t]),Mr(s,e,baseClone$1(t,i,r,e,n,o))}),s}),to=function cloneDeep(t){return Yr(t,5)},eo=null,no=((eo=window||global||{}).requestFrame=eo.requestAnimationFrame||eo.webkitRequestAnimationFrame||eo.mozRequestAnimationFrame||eo.oRequestAnimationFrame||eo.msRequestAnimationFrame,eo),io=function(){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]}return _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}(),ro=vi,oo=lr,ao=we,so=v,lo=Se,co=Ie.exports,ho=ue,uo=Qe,fo=Object.prototype.hasOwnProperty,po=function isEmpty(t){if(null==t)return!0;if(lo(t)&&(so(t)||"string"==typeof t||"function"==typeof t.splice||co(t)||uo(t)||ao(t)))return!t.length;var e,n=oo(t);if("[object Map]"==n||"[object Set]"==n)return!t.size;if(ho(t))return!ro(t).length;for(e in t)if(fo.call(t,e))return!1;return!0},yo=function(){function ICEEventTarget(){_classCallCheck(this,ICEEventTarget),_defineProperty$1(this,"listeners",{}),_defineProperty$1(this,"suspendedEventNames",[])}return _createClass(ICEEventTarget,[{key:"on",value:function on(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:no;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]:no;if(i=this.listeners[t])for(var i=_toConsumableArray(i),r=0;r<i.length;r++){var o=i[r];if(o.callback===e&&o.scope===n)return void this.listeners[t].splice(r,1)}}},{key:"once",value:function once(e,n){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:no,r=this;r.on(e,function callback(t){r.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(po(this.listeners[t]))return!1;if(this.suspendedEventNames.includes(t))return!1;n?((e=new io(n)).originalEvent=n.originalEvent||n,e.param=_objectSpread2({},i)):e=new io({type:t,timeStamp:Date.now(),param:_objectSpread2({},i)});for(var r=this.listeners[t],o=0;o<r.length;o++){var s=r[o];s.callback.call(s.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]:no;if(!this.listeners[t])return!1;var i=this.listeners[t];if(!i)return!1;for(var r=0;r<i.length;r++){var o=i[r];if(o.callback===e&&o.scope===n)return!0}return!1}}]),ICEEventTarget}(),vo=(yo.prototype.addEventListener=yo.prototype.on,yo.prototype.removeEventListener=yo.prototype.off,yo.prototype.dispatchEvent=yo.prototype.trigger,function(){function GeoUtil(){throw _classCallCheck(this,GeoUtil),new Error("GeoUtil is a static util class.")}return _createClass(GeoUtil,null,[{key:"calcRotateAngle",value:function calcRotateAngle(t,e,n,i){return t-=n,(((n=e-i)/(e=Math.hypot(t,n))<0?-1:1)*Math.acos(t/e)*180/Math.PI+360)%360}},{key:"calcRotateAngleFromMatrix",value:function calcRotateAngleFromMatrix(t){var e=0,n=t[0],i=(t=t[1],Math.hypot(n,t));return t/=i,e=Math.acos(n/i),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];return t=t[3],[Math.hypot(e,n)/e,Math.hypot(i,t)/t]}}]),GeoUtil}()),go=function(){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]]}return _createClass(ICEBoundingBox,[{key:"containsPoint",value:function containsPoint(t){var e=(r=this.getMinAndMaxPoint()).minX,n=r.minY,i=r.maxX,r=r.maxY;if(t[0]<e||t[0]>i||t[1]<n||t[1]>r)return!1;for(var o=0,s=this.getBoundingLines(),a=0;a<s.length;a++){var l,c=s[a];t[1]>c.o[1]&&t[1]>c.d[1]||t[1]<c.o[1]&&t[1]<c.d[1]||(c.o[0]===c.d[0]&&c.o[0]>=t[0]?c.o[0]:(l=(c.d[1]-c.o[1])/(c.d[0]-c.o[0]),c.o[0]+(t[1]-c.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],r=[this.tr,this.bl,this.br],o=0;o<r.length;o++){var s=r[o];s[0]<t&&(t=s[0]),s[0]>n&&(n=s[0]),s[1]<e&&(e=s[1]),s[1]>i&&(i=s[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],r=this.br[1],o=t.tl[0],s=t.br[0],a=t.tl[1];return t=t.br[1],!(s<e||t<i||n<o||r<a)}},{key:"transform",value:function transform(t){var e=transformMat2d([],this.tl,t),n=transformMat2d([],this.tr,t),i=transformMat2d([],this.bl,t),r=transformMat2d([],this.br,t);return t=transformMat2d([],this.center,t),new ICEBoundingBox([].concat(_toConsumableArray(e),_toConsumableArray(n),_toConsumableArray(i),_toConsumableArray(r),_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 getVal(t,e){return e.split(".").reduce(function(t,e){return t[e]},t)}function flattenTree(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:[],n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:1,i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,r=0;r<e.length;r++){var o=e[r];o._level=n,o._pid=i,t.push(o),flattenTree(t,o.childNodes||[],n+1,o.id)}return t}function uuid(){if(no.crypto)return no.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)})}var mo=function(){_inherits(ICEComponent,yo);var n=_createSuper(ICEComponent);function ICEComponent(){var t,e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEComponent),_defineProperty$1(_assertThisInitialized(t=n.call(this)),"__dirty",!0),_defineProperty$1(_assertThisInitialized(t),"props",{id:"ICE_"+uuid(),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=ci(t.props,e),t.state=to(t.props),t.root=no,t.initEvents(),t}return _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(P),this.state.display&&(this.calcComponentParams(),this.applyStyleToCtx(),this.applyTransformToCtx(),this.doRender(),this.trigger(x),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 hi(6);return hi!=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],r=e[1],o=e[2],s=e[3],a=e[4],l=(e=e[5],n[0]);return n=n[1],t[0]=i*l,t[1]=r*l,t[2]=o*n,t[3]=s*n,t[4]=a,t[5]=e,t}([],function rotate(t,e,n){var i=e[0],r=e[1],o=e[2],s=e[3],a=e[4],l=(e=e[5],Math.sin(n));return n=Math.cos(n),t[0]=i*n+o*l,t[1]=r*n+s*l,t[2]=i*-l+o*n,t[3]=r*-l+s*n,t[4]=a,t[5]=e,t}([],function skew(t,e,n,i){return n=Math.tan(n),i=Math.tan(i),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,toRadian(e),toRadian(n)),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=multiply([],[1,0,0,1,(t=this.calcAbsoluteOrigin())[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,r=this.state.height,e=new go([0-e,0-n,0-e+i,0-n,0-e,0-n+r,0-e+i,0-n+r,0,0]),i=t?this.composeMatrix():this.state.composedMatrix;return e.transform(i)}},{key:"getMaxBoundingBox",value:function getMaxBoundingBox(){var t=(i=(r=this.getMinBoundingBox(0<arguments.length&&void 0!==arguments[0]&&arguments[0])).getMinAndMaxPoint()).minX,e=i.minY,n=i.maxX,i=i.maxY,r=r.centerPoint;return new go([t,e,n,e,t,i,n,i,r[0],r[1]])}},{key:"setState",value:function setState(t){ci(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 io;this.trigger(T,_objectSpread2(_objectSpread2({},n),{},{left:t,top:e})),this.setState({left:t,top:e}),this.trigger(z,_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 io;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 io;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-=vo.calcRotateAngleFromMatrix(e)),this.setState({transform:{rotate:t}})}},{key:"localToGlobal",value:function localToGlobal(t,e){return transformMat2d([],t=[t,e],this.state.composedMatrix)}},{key:"globalToLocal",value:function globalToLocal(t,e){return transformMat2d([],t=[t,e],invert([],this.state.composedMatrix))}},{key:"getRotateAngle",value:function getRotateAngle(){var t=this.state.composedMatrix;return vo.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($,null,{component:this}),this.purgeEvents(),this.ice=null,this.ctx=null,this.root=null,this.evtBus=null,this.parentNode=null}}]),ICEComponent}(),bo=(_defineProperty$1(mo,"instanceCounter",0),function(){_inherits(ICEPath,mo);var e=_createSuper(ICEPath);function ICEPath(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEPath),_defineProperty$1(_assertThisInitialized(t=e.call(this,_objectSpread2({closePath:!0},t))),"path2D",new Path2D),t}return _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)}}]),ICEPath}()),Co=function(){_inherits(ICERect,bo);var e=_createSuper(ICERect);function ICERect(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICERect),e.call(this,_objectSpread2({width:10,height:10},t))}return _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}(),_o=function(){_inherits(ICEGroup,Co);var e=_createSuper(ICEGroup);function ICEGroup(t){return _classCallCheck(this,ICEGroup),_defineProperty$1(_assertThisInitialized(t=e.call(this,t)),"parentNode",null),_defineProperty$1(_assertThisInitialized(t),"childNodes",[]),t}return _createClass(ICEGroup,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ICEGroup.prototype),"initEvents",this).call(this),this.once(S,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(E),t.ice=this.ice,t.ctx=this.ice.ctx,t.evtBus=this.ice.evtBus,t.trigger(S)}},{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){ci(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}(),ko=function(){_inherits(ICEControlPanel,_o);var e=_createSuper(ICEControlPanel);function ICEControlPanel(t){return _classCallCheck(this,ICEControlPanel),_defineProperty$1(_assertThisInitialized(t=e.call(this,_objectSpread2(_objectSpread2({},t),{},{linkable:!1}))),"isControlPanel",!0),t}return _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}(),wo=function isNil(t){return null==t},Po=function(){_inherits(ICEEllipse,bo);var e=_createSuper(ICEEllipse);function ICEEllipse(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEEllipse),(t=_objectSpread2({radiusX:20,radiusY:10,rotation:0,startAngle:0,endAngle:2*Math.PI,counterclockwise:!0},t)).width=2*t.radiusX,t.height=2*t.radiusY,e.call(this,t)}return _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){wo(t.radiusX)?wo(t.width)||(t.radiusX=t.width/2):t.width=2*t.radiusX,wo(t.radiusY)?wo(t.height)||(t.radiusY=t.height/2):t.height=2*t.radiusY,_get(_getPrototypeOf(ICEEllipse.prototype),"setState",this).call(this,t)}}]),ICEEllipse}(),xo=function(){_inherits(ICECircle,Po);var e=_createSuper(ICECircle);function ICECircle(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICECircle),(t=_objectSpread2({radius:10},t)).radiusX=t.radius,t.radiusY=t.radius,e.call(this,t)}return _createClass(ICECircle)}(),Eo=function(){_inherits(ICELinkHook,xo);var e=_createSuper(ICELinkHook);function ICELinkHook(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICELinkHook),e.call(this,_objectSpread2({linkable:!1},t))}return _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(z,this.resizeEvtHandler,this)}},{key:"keyboardEvtHandler",value:function keyboardEvtHandler(t){}},{key:"mosueDownHandler",value:function mosueDownHandler(t){this.evtBus.trigger(I,new io({target:this}))}},{key:"mosueMoveHandler",value:function mosueMoveHandler(t){this.evtBus.trigger(j,new io({target:this}))}},{key:"mosueUpHandler",value:function mosueUpHandler(t){this.evtBus.trigger(M,new io({target:this}))}},{key:"resizeEvtHandler",value:function resizeEvtHandler(t){var e;this.parentNode&&(e=this.props.position,this.parentNode.trigger(A,new io(t,{position:e})),this.parentNode.trigger(B,new io(t,{position:e})))}}]),ICELinkHook}(),So=function(){_inherits(LineControlPanel,ko);var e=_createSuper(LineControlPanel);function LineControlPanel(t){return _classCallCheck(this,LineControlPanel),_defineProperty$1(_assertThisInitialized(t=e.call(this,_objectSpread2(_objectSpread2({},t),{},{zIndex:10001e3,linkable:!1,showMinBoundingBox:!1,showMaxBoundingBox:!1}))),"controlSize",16),t.initControls(),t}return _createClass(LineControlPanel,[{key:"initControls",value:function initControls(){var t=this.state.width,e=this.state.height,n=this.controlSize/2;this.startControl=new Eo({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 Eo({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(B,this.resizeEvtHandler,this)}},{key:"enable",value:function enable(){this.setState({display:!0}),this.resume(B),this.showHooks()}},{key:"disable",value:function disable(){this.setState({display:!1}),this.suspend(B),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,r=(t=this.targetComponent.state).points.length,o=t.points[0][0],s=t.points[0][1],a=t.points[r-1][0],l=t.points[r-1][1],n=(r=transformMat2d([],[n,i],invert([],t.absoluteLinearMatrix)))[0],i=r[1];switch(e){case"start":o+=n,s+=i;break;case"end":a+=n,l+=i}this.targetComponent.setState({startPoint:[o,s],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(z,this.updatePosition,this),this._targetComponent=t,this._targetComponent&&this._targetComponent.on(z,this.updatePosition,this),this._targetComponent&&this._targetComponent.once($,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}(),$o=/\s/,Oo=/^\s+/,Io=y,jo=g,Mo=function isSymbol$2(t){return"symbol"==typeof t||jo(t)&&"[object Symbol]"==Io(t)},Ao=function baseTrim$1(t){return t&&t.slice(0,function trimmedEndIndex$1(t){for(var e=t.length;e--&&$o.test(t.charAt(e)););return e}(t)+1).replace(Oo,"")},Bo=Z,Lo=Mo,To=/^[-+]0x[0-9a-f]+$/i,zo=/^0b[01]+$/i,Ro=/^0o[0-7]+$/i,No=parseInt,Do=function toNumber$2(t){if("number"==typeof t)return t;if(Lo(t))return NaN;if(Bo(t)&&(e="function"==typeof t.valueOf?t.valueOf():t,t=Bo(e)?e+"":e),"string"!=typeof t)return 0===t?t:+t;t=Ao(t);var e=zo.test(t);return e||Ro.test(t)?No(t.slice(2),e?2:8):To.test(t)?NaN:+t},Ho=Do,Vo=v,Fo=Mo,Uo=o?o.prototype:void 0,qo=Uo?Uo.toString:void 0,Wo=function baseToString$1(t){if("string"==typeof t)return t;if(Vo(t))return function arrayMap$1(t,e){for(var n=-1,i=null==t?0:t.length,r=Array(i);++n<i;)r[n]=e(t[n],n,t);return r}(t,baseToString$1)+"";if(Fo(t))return qo?qo.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e},Jo=function toInteger$1(t){var e=(t=function toFinite$1(t){return t?(t=Ho(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}(t))%1;return t==t?e?t-e:t:0},Go=Do,Xo=function toString$1(t){return null==t?"":Wo(t)},Ko=r.isFinite,Qo=Math.min,Zo=function createRound$1(t){var r=Math[t];return function(t,e){var n,i;return t=Go(t),(e=null==e?0:Qo(Jo(e),292))&&Ko(t)?(n=(Xo(t)+"e").split("e"),i=r(n[0]+"e"+(+n[1]+e)),+((n=(Xo(i)+"e").split("e"))[0]+"e"+(+n[1]-e))):r(t)}}("round"),Yo=function(){_inherits(ResizeControl,Co);var e=_createSuper(ResizeControl);function ResizeControl(t){return _classCallCheck(this,ResizeControl),e.call(this,_objectSpread2(_objectSpread2({position:"l",direction:"x",quadrant:1},t),{},{linkable:!1}))}return _createClass(ResizeControl,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ResizeControl.prototype),"initEvents",this).call(this),this.on(z,this.resizeEvtHandler,this)}},{key:"resizeEvtHandler",value:function resizeEvtHandler(t){if(this.parentNode){var e,n=t.quadrant,i=t.movementX,r=t.movementY,o=(e=this.parentNode.state).left,s=e.top,a=e.width,l=e.height,i=(e=transformMat2d([],[i,r],invert([],e.absoluteLinearMatrix)))[0],r=e[1];switch(n){case 1:o-=i,s+=r,a+=2*i,l-=2*r;break;case 2:o+=i,s+=r,a-=2*i,l-=2*r;break;case 3:o+=i,s-=r,a-=2*i,l+=2*r;break;case 4:o-=i,s-=r,a+=2*i,l+=2*r;break;case 5:s+=r,l-=2*r;break;case 6:s-=r,l+=2*r;break;case 7:o+=i,a-=2*i;break;case 8:o-=i,a+=2*i}e={top:s,left:o,width:Math.abs(a),height:Math.abs(l)},this.parentNode.trigger(A,new io(t,{quadrant:n})),this.parentNode.setState(e),this.parentNode.trigger(B,new io(t,{quadrant:n}))}}},{key:"moveGlobalPosition",value:function moveGlobalPosition(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:new io,i=0<t?1:-1,r=0<e?1:-1,o=(h=this.parentNode.state).localOrigin,s=h.width,a=h.height,l=(t=(h=transformMat2d([],[t,e],invert([],h.absoluteLinearMatrix)))[0],e=h[1],(h=this.state).left),c=h.top,h=h.quadrant,u=this.state.width/2,d=0;"x"===this.state.direction?d=0<(l=0===Zo(l+=t)?.5*i:l)+u-o[0]?8:7:"y"===this.state.direction?d=0<(c=0===Zo(c+=e)?.5*r:c)+u-o[1]?6:5:"xy"===this.state.direction&&(r=-a/2/(0===Zo(r=-s/2)?.5*i:r),0===Zo(s/=2)&&(s=.5*i),c+=e=2===h||4==h?r*(l+u-o[0]+t)-(c+u-o[1]):-a/2/s*(l+u-o[0]+t)-(c+u-o[1]),d=0<(l+=t)+u-o[0]?0<c+u-o[1]?4:1:0<c+u-o[1]?3:2),h!==d&&this.parentNode.toggleControlQuadrant(this,d),this.setPosition(l,c,new io(n,{left:l,top:c,tx:t,ty:e,quadrant:d}))}}]),ResizeControl}(),ta=function(){_inherits(RotateControl,xo);var e=_createSuper(RotateControl);function RotateControl(t){return _classCallCheck(this,RotateControl),e.call(this,_objectSpread2(_objectSpread2({},t),{},{linkable:!1}))}return _createClass(RotateControl,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(RotateControl.prototype),"initEvents",this).call(this),this.on(z,this.rotateEvtHandler,this)}},{key:"rotateEvtHandler",value:function rotateEvtHandler(t){var e;this.parentNode&&(e=this.parentNode.state.absoluteOrigin,t={transform:{rotate:vo.calcRotateAngle(t.offsetX,t.offsetY,e[0],e[1])+90}},this.parentNode.trigger("BEFORE_ROTATE",new io(t)),this.parentNode.setState(t),this.parentNode.trigger(L,new io(t)))}}]),RotateControl}(),ea=function(){_inherits(TransformControlPanel,ko);var e=_createSuper(TransformControlPanel);function TransformControlPanel(t){return _classCallCheck(this,TransformControlPanel),_defineProperty$1(_assertThisInitialized(t=e.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}return _createClass(TransformControlPanel,[{key:"initControls",value:function initControls(){var t=this.state.width,e=this.state.height,n=t/2,i=e/2,r=this.resizeControlSize/2,o=[{direction:"xy",quadrant:2,position:[-r,-r]},{direction:"y",quadrant:5,position:[n-r,-r]},{direction:"xy",quadrant:1,position:[t-r,-r]},{direction:"x",quadrant:8,position:[t-r,i-r]},{direction:"xy",quadrant:4,position:[t-r,e-r]},{direction:"y",quadrant:6,position:[n-r,e-r]},{direction:"xy",quadrant:3,position:[-r,e-r]},{direction:"x",quadrant:7,position:[-r,i-r]}];this.resizeControlInstanceCache=[];for(var s=0;s<o.length;s++){var a=new Yo({zIndex:10000002,display:!1,left:(a=o[s]).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 ta({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(B,this.resizeEvtHandler,this),this.on(L,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(B),this.resume(L),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(B),this.suspend(L),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(L))}},{key:"resizeEvtHandler",value:function resizeEvtHandler(t){if(this.targetComponent){var e=t.quadrant,n=t.movementX,i=t.movementY,r=(t=this.targetComponent.state).left,o=t.top,s=t.width,a=t.height,n=(t=transformMat2d([],[n,i],invert([],t.absoluteLinearMatrix)))[0],i=t[1];switch(e){case 1:r-=n,o+=i,s+=2*n,a-=2*i;break;case 2:r+=n,o+=i,s-=2*n,a-=2*i;break;case 3:r+=n,o-=i,s-=2*n,a+=2*i;break;case 4:r-=n,o-=i,s+=2*n,a+=2*i;break;case 5:o+=i,a-=2*i;break;case 6:o-=i,a+=2*i;break;case 7:r+=n,s-=2*n;break;case 8:r-=n,s+=2*n}this.targetComponent.setState({left:r,top:o,width:Math.abs(s),height:Math.abs(a)}),this.targetComponent.trigger(B)}}},{key:"updateControlPositions",value:function updateControlPositions(){for(var t=this.state.width,e=this.state.height,n=t/2,i=e/2,r=this.resizeControlSize/2,o=0;o<this.resizeControlInstanceCache.length;o++){var s=this.resizeControlInstanceCache[o],a=[0,0];switch(s.state.quadrant){case 1:a=[t-r,-r];break;case 2:a=[-r,-r];break;case 3:a=[-r,e-r];break;case 4:a=[t-r,e-r];break;case 5:a=[n-r,-r];break;case 6:a=[n-r,e-r];break;case 7:a=[-r,i-r];break;case 8:a=[t-r,i-r]}s.setState({left:a[0],top:a[1]})}var l=this.state.width/2-this.rotateControlSize,c=-this.rotateControlffsetY;this.rotateControlInstance.setState({left:l,top:c})}},{key:"updatePanel",value:function updatePanel(){var t,e,n,i,r;this.targetComponent&&(t=this.targetComponent.getRotateAngle(),e=(r=this.targetComponent.getLocalLeftTop()).left,n=r.top,i=r.width,r=r.height,this.setState({left:e,top:n,width:i,height:r,transform:{rotate:t}}))}},{key:"targetComponent",get:function get(){return this._targetComponent},set:function set(t){var e=this;this._targetComponent&&this._targetComponent.off(z,this.updatePanel,this),this._targetComponent=t,this._targetComponent&&this._targetComponent.on(z,this.updatePanel,this),this._targetComponent&&this._targetComponent.once($,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 r=0;switch(e){case 1:r=3;break;case 2:r=4;break;case 3:r=1;break;case 4:r=2;break;case 5:r=6;break;case 6:r=5;break;case 7:r=8;break;case 8:r=7}i.setState({quadrant:r})}}t.setState({quadrant:e})}}]),TransformControlPanel}(),na=function(){function ICEControlPanelManager(t){_classCallCheck(this,ICEControlPanelManager),this.ice=t,this.transformControlPanel=new ea({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 So({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()}return _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){if(!(t=t.target).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}(),ia=[["mousedown","ICE_MOUSEDOWN"],["mouseup","ICE_MOUSEUP"],["mousemove","ICE_MOUSEMOVE"],["click","ICE_CLICK"],["dblclick","ICE_DBCLICK"],["contextmenu","ICE_CONTEXTMENU"]],ra=[["keydown","ICE_KEYDOWN"],["keyup","ICE_KEYUP"]],oa=function(){function DOMEventDispatcher(t){_classCallCheck(this,DOMEventDispatcher),_defineProperty$1(this,"selectionCandidates",[]),_defineProperty$1(this,"_stopped",!1),this.ice=t}return _createClass(DOMEventDispatcher,[{key:"start",value:function start(){for(var i=this,r=null,o=[].concat(_toConsumableArray(ia),_toConsumableArray(ra)),t=0;t<o.length;t++)!function J9(t){var e=(t=o[t])[0],n=t[1];i.ice.evtBus.on(n,function(t){i._stopped||((r="ICE_MOUSEMOVE"!==n&&-1===n.indexOf("KEY")?i.findTargetComponent(t):r)&&(t.target=r).trigger(e,t),i.ice.evtBus.trigger(e,t,{component:r}))})}(t);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,i=(t=flattenTree([],this.ice.childNodes),flattenTree([],this.ice.toolNodes)),r=[].concat(_toConsumableArray(t),_toConsumableArray(i));r.sort(function(t,e){return t.state.zIndex-e.state.zIndex});for(var o=0;o<r.length;o++){var s=r[o],a=(l=s.state).interactive,l=l.display;s.containsPoint(e,n)&&a&&l&&this.selectionCandidates.push(s)}return t=this.selectionCandidates.pop(),this.selectionCandidates=[],t}}]),DOMEventDispatcher}(),aa={evtBuses:[],start:function start(){if(no&&no.addEventListener){function dk(t){for(var n=aa.evtBuses[t],i=[].concat(_toConsumableArray(ia),_toConsumableArray(ra)),e=0;e<i.length;e++)!function ik(t){var e=i[t];no.addEventListener(e[0],function(t){n.trigger(e[1],t)})}(e)}for(var t=0;t<aa.evtBuses.length;t++)dk(t)}},regitserEvtBus:function regitserEvtBus(t){aa.evtBuses.includes(t)||aa.evtBuses.push(t)},delEvtBus:function delEvtBus(t){aa.evtBuses.includes(t)&&aa.evtBuses.splice(aa.evtBuses.indexOf(t),1)}},sa=function(){_inherits(EventBus,yo);var t=_createSuper(EventBus);function EventBus(){return _classCallCheck(this,EventBus),t.call(this)}return _createClass(EventBus)}(),la=function(){function GeoLine(t,e){_classCallCheck(this,GeoLine),this.startPoint=t,this.endPoint=e}return _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);return n-3<=i+(t=Math.hypot(t-this.endPoint.x,e-this.endPoint.y))&&i+t<=n+3}}]),GeoLine}(),ca=function(){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}return _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}(),ha=function(){_inherits(ICEDotPath,bo);var e=_createSuper(ICEDotPath);function ICEDotPath(t){return _classCallCheck(this,ICEDotPath),e.call(this,_objectSpread2({dots:[],closePath:!0},t))}return _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],r=1;r<this.state.dots.length;r++){var o=this.state.dots[r];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 r=transformMat2d([],e[i],t);n.push(r)}return n}}]),ICEDotPath}(),ua="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",da=function(){_inherits(ICEImage,mo);var e=_createSuper(ICEImage);function ICEImage(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEImage),e.call(this,_objectSpread2({width:100,height:100,src:ua},t))}return _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}(),fa=(_createClass(function ICEBezier(){_classCallCheck(this,ICEBezier)}),function(){_inherits(ICELinkSlot,xo);var e=_createSuper(ICELinkSlot);function ICELinkSlot(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICELinkSlot),e.call(this,_objectSpread2({linkable:!1,draggable:!1,position:"T"},t))}return _createClass(ICELinkSlot,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ICELinkSlot.prototype),"initEvents",this).call(this),this.once(P,this.beforeRenderHandler,this),this.once($,this.beforeRemoveHandler,this)}},{key:"keyboardEvtHandler",value:function keyboardEvtHandler(t){}},{key:"beforeRenderHandler",value:function beforeRenderHandler(t){this.evtBus.on(I,this.hookMouseDownHandler,this),this.evtBus.on(j,this.hookMouseMoveHandler,this),this.evtBus.on(M,this.hookMouseUpHandler,this),this.evtBus.on("mouseup",this.globalMouseUpHandler,this)}},{key:"beforeRemoveHandler",value:function beforeRemoveHandler(t){this.evtBus.off(I,this.hookMouseDownHandler,this),this.evtBus.off(j,this.hookMouseMoveHandler,this),this.evtBus.off(M,this.hookMouseUpHandler,this),this.evtBus.off("mouseup",this.globalMouseUpHandler,this),this.hostComponent=null}},{key:"globalMouseUpHandler",value:function globalMouseUpHandler(){this.setState({display:!1})}},{key:"hookMouseDownHandler",value:function hookMouseDownHandler(t){this._hostComponent&&this.setState({display:!0})}},{key:"hookMouseMoveHandler",value:function hookMouseMoveHandler(t){t=t.target,this.isIntersectWithHook(t)?(this.setState({style:{fillStyle:"#fffb00"}}),t._currentAboveSlot=this,t.setState({style:{fillStyle:"#fffb00"}})):(this.setState({style:{fillStyle:"#3ce92c"}}),t._currentAboveSlot===this&&t.setState({style:{fillStyle:"#3ce92c"}}))}},{key:"hookMouseUpHandler",value:function hookMouseUpHandler(t){var e,n;this._hostComponent&&(e=(t=t.target).parentNode.targetComponent,n=t.state.position,this.isIntersectWithHook(t)?e&&e.setLink(n,this._hostComponent,this.props.position):e&&e.removeLink(n,this._hostComponent,this.props.position),this.setState({display:!1,style:{fillStyle:"#3ce92c"}}),t.setState({style:{fillStyle:"#3ce92c"}}))}},{key:"isIntersectWithHook",value:function isIntersectWithHook(t){var e=this.getMaxBoundingBox();return t=t.getMaxBoundingBox(),!!e.isIntersect(t)}},{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(x,this.updatePosition,this),this._hostComponent=t,this._hostComponent&&this._hostComponent.on(x,this.updatePosition,this),this._hostComponent&&this._hostComponent.once($,function(){e._hostComponent=null,e.setState({display:!1})},this),this._hostComponent&&this.setState({display:!0})}}]),ICELinkSlot}()),pa=function(){_inherits(ICEPolyLine,ha);var e=_createSuper(ICEPolyLine);function ICEPolyLine(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEPolyLine),t=ICEPolyLine.arrangeParam(t),_defineProperty$1(_assertThisInitialized(t=e.call(this,t)),"isLine",!0),_defineProperty$1(_assertThisInitialized(t),"links",{start:{},end:{}}),t}return _createClass(ICEPolyLine,[{key:"initEvents",value:function initEvents(){_get(_getPrototypeOf(ICEPolyLine.prototype),"initEvents",this).call(this),this.once(S,this.afterAddHandler,this)}},{key:"afterAddHandler",value:function afterAddHandler(t){this.evtBus.once(O,this.makeConnection,this)}},{key:"makeConnection",value:function makeConnection(){var t,e,n=this.state.links;n&&(n.start&&(t=n.start.id,e=n.start.position,t&&e&&(t=this.ice.findComponent(t),this.setLink("start",t,e))),n.end&&(t=n.end.id,e=n.end.position,t&&e&&(n=this.ice.findComponent(t),this.setLink("end",n,e)))),this.ice.dirty=!0}},{key:"setLink",value:function setLink(t,e,n){this.removeLink(t,e,n),this.links[t]={component:e,position:n},e.on(z,this.followComponent,this),e.on(B,this.followComponent,this),e.on(L,this.followComponent,this),e.once(x,this.followComponent,this),this.followComponent();var i,r={};for(i in this.links){var o=this.links[i];o.component&&o.position&&(r[i]={id:o.component.props.id,position:o.position})}this.setState({links:_objectSpread2({},r),draggable:!1})}},{key:"removeLink",value:function removeLink(t,e,n){var i=this.links[t].component,r=this.links[t].position;i===e&&r===n&&(i&&i.off(z,this.followComponent,this),i&&i.off(B,this.followComponent,this),i&&i.off(L,this.followComponent,this),this.links[t]={},this.state.links[t]={}),this.links.start.component||this.links.end.component||this.setState({draggable:!0})}},{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.links){var n=this.links[e].position,i=this.links[e].component;if(n&&i){var r=i.getMinBoundingBox(),o=[0,0];switch(n){case"T":o=r.tc;break;case"R":o=r.rc;break;case"B":o=r.bc;break;case"L":o=r.lc}switch(e){case"start":this.setState({startPoint:_toConsumableArray(o)});break;case"end":this.setState({endPoint:_toConsumableArray(o)})}}}}},{key:"calcLocalOrigin",value:function calcLocalOrigin(){return this.state.localOrigin=[0,0]}},{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=(r=this.state.points[n])[0]-t,r=r[1]-e;this.state.dots.push([i,r])}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],n=((t=t[1])[0]=t[0]-e[0],t[1]=t[1]-e[1],t[0]/Math.hypot.apply(Math,_toConsumableArray(t))),i=(t=t[1]/Math.hypot.apply(Math,_toConsumableArray(t)),Math.cos(this.state.arrowAngel)),r=Math.sin(this.state.arrowAngel),o=this.state.arrowLength*(n*i-t*r),s=this.state.arrowLength*(t*i+n*r),a=this.state.arrowLength*(n*i+t*r);return t=this.state.arrowLength*(t*i-n*r),[[o+=e[0],s+=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=Zo(this.state.points[0][0],2),i=Zo(this.state.points[0][1],2),r=0,o=[Zo(this.state.points[e-1][0],2)-n,Zo(this.state.points[e-1][1],2)-i],s=0;s<e;s++){var a=[(a=this.state.points[s])[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])&&r++}return r===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],n=(t=this.state.points[t-1][1]-this.state.points[0][1],this.getRotateAngle()),i=this.state.height,r=Math.cos(n*Math.PI/180)*i/2,n=Math.sin(n*Math.PI/180)*i/2;return[[0+(r=Zo(r,3)),0+(n=Zo(n,3))],[0-r,0-n],[e+r,t+n],[e-r,t-n]]}},{key:"getMinBoundingBox",value:function getMinBoundingBox(){var t=this.state.localOrigin[0],e=this.state.localOrigin[1],n=this.calc4VertexPoints();return(t=new go([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])).transform(this.state.composedMatrix)}},{key:"setState",value:function setState(t){if(wo(t.width)||delete t.width,wo(t.height)||delete t.height,wo(t.transform)||delete t.transform,!wo(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(!wo(t.top))for(var i=t.top-this.state.points[0][1],r=0;r<this.state.points.length;r++)this.state.points[r][1]+=i;var o;wo(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]),wo(t.endPoint)||(o=this.state.points.length,this.state.points[o-1]=_toConsumableArray(t.endPoint)),_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],vo.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 r=(a=n[i]).o[0],o=a.o[1],s=a.d[0],a=a.d[1],l=Math.hypot(s-r,a-o);if(l-3<=(r=Math.hypot(r-t,o-e))+(o=Math.hypot(s-t,a-e))&&r+o<=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.links.start&&this.removeLink("start",this.links.start.component,this.links.start.position),this.links.end&&this.removeLink("end",this.links.end.component,this.links.end.position),_get(_getPrototypeOf(ICEPolyLine.prototype),"destory",this).call(this)}}],[{key:"arrangeParam",value:function arrangeParam(t){var e=ci({},{lineType:"solid",lineWidth:1,arrow:"none",arrowLength:15,arrowAngel:toRadian(30),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}(),ya=function(){_inherits(ICEVisioLink,pa);var e=_createSuper(ICEVisioLink);function ICEVisioLink(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEVisioLink),t=ICEVisioLink.arrangeParam(t),e.call(this,t)}return _createClass(ICEVisioLink,[{key:"calcDots",value:function calcDots(){var t=this.interpolate(),e=this.state,n=e.left,i=e.top,r=t[0][2];this.state.points=[],this.state.dots=[];for(var o=0;o<r.length;o++){var s=r[o];this.state.points.push([s.x,s.y]),this.state.dots.push([s.x-n,s.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],r=(t=this.state.points[t-1][1],new ca(e,n)),o=new ca(i,t),s=[],a=null,l=null,c=[],h=new go,u=new go;if(e=this.links.start.component){h=e.getMinBoundingBox(),s[0]=new ca(r.x,h.tl[1]-this.state.escapeDistance),s[1]=new ca(h.tr[0]+this.state.escapeDistance,r.y),s[2]=new ca(r.x,h.br[1]+this.state.escapeDistance),s[3]=new ca(h.tl[0]-this.state.escapeDistance,r.y);for(var a=s[0],d=1;d<s.length;d++)this.distance(r,s[d])<this.distance(r,a)&&(a=s[d])}if(n=this.links.end.component){u=n.getMinBoundingBox(),s[0]=new ca(o.x,u.tl[1]-this.state.escapeDistance),s[1]=new ca(u.tr[0]+this.state.escapeDistance,o.y),s[2]=new ca(o.x,u.br[1]+this.state.escapeDistance),s[3]=new ca(u.tl[0]-this.state.escapeDistance,o.y);for(var l=s[0],p=1;p<s.length;p++)this.distance(o,s[p])<this.distance(o,l)&&(l=s[p])}i=0,t=[r],a&&(t.push(a),i=1),l&&t.push(l),t.push(o),e=ca.cloneArray(t),c.push(["s0","s0",e]),n=ca.cloneArray(t),(e=ca.cloneArray(n)).splice(i+1,0,new ca(e[i].x,e[i+1].y)),c.push(["s1","s1_1",e]),(t=ca.cloneArray(n)).splice(i+1,0,new ca(t[i+1].x,t[i].y)),c.push(["s1","s1_2",t]);var e=ca.cloneArray(n),t=new ca((e[i].x+e[i+1].x)/2,e[i].y),f=new ca((e[i].x+e[i+1].x)/2,e[i+1].y);e.splice(i+1,0,t,f),c.push(["s2","s2_1",e]),t=ca.cloneArray(n),f=new ca(t[i].x,(t[i].y+t[i+1].y)/2),e=new ca(t[i+1].x,(t[i].y+t[i+1].y)/2),e=[(t.splice(i+1,0,f,e),c.push(["s2","s2_2",t]),(f=ca.cloneArray(n))[i].x+20),f[i+1].x+20],h&&e.push(h.br[0]+20),u&&e.push(u.br[0]+20),t=this.max(e),e=new ca(t,f[i].y),t=new ca(t,f[i+1].y),t=[(f.splice(i+1,0,e,t),c.push(["s2","s2_3",f]),(e=ca.cloneArray(n))[i].y-20),e[i+1].y-20],h&&t.push(h.tl[1]-20),u&&t.push(u.tl[1]-20),f=this.min(t),t=new ca(e[i].x,f),f=new ca(e[i+1].x,f),f=[(e.splice(i+1,0,t,f),c.push(["s2","s2_4",e]),(t=ca.cloneArray(n))[i].x-20),t[i+1].x-20],h&&f.push(h.tl[0]-20),u&&f.push(u.tl[0]-20),e=this.min(f),f=new ca(e,t[i].y),e=new ca(e,t[i+1].y),e=[(t.splice(i+1,0,f,e),c.push(["s2","s2_5",t]),(f=ca.cloneArray(n))[i].y+20),f[i+1].y+20],h&&e.push(h.tl[1]+h.height+20),u&&e.push(u.tl[1]+u.height+20),t=this.max(e),n=new ca(f[i].x,t),e=new ca(f[i+1].x,t),f.splice(i+1,0,n,e),c.push(["s2","s2_6",f]);for(var y=[],v=0;v<c.length;v++){var g=c[v][2];this.orthogonalPath(g)&&y.push(c[v])}if(c=y,!r.equals(o)){for(var m=[],b=0;b<c.length;b++){var C=c[b][2];this.forwardPath(C)&&m.push(c[b])}(c=m).length}for(var _=[],k=0;k<c.length;k++){var w=!1,P=c[k][2].slice();(u||h)&&(P=P.slice(1,P.length-1)),h&&(w=w||this.polylineIntersectsRectangle(P,h)),(w=u?w||this.polylineIntersectsRectangle(P,u):w)||_.push(c[k])}(c=0!=_.length?_:c).length;for(var x=c[0][2].length,S=[],E=0;E<c.length;E++)c[E][2].length==x&&S.push(c[E]);for(var c=S,$=0,O=0;O<c.length;O++)this.scorePath(c[$][2])<this.scorePath(c[O][2])&&($=O);return[c[$]]}},{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&&(r=t,t=e,e=r),r=(t.endPoint.y-t.startPoint.y)/(t.endPoint.x-t.startPoint.x),n=t.startPoint.y-r*t.startPoint.x,i=e.startPoint.x,t.contains(i,r=r*i+n)&&e.contains(i,r);var n=(t.endPoint.y-t.startPoint.y)/(t.endPoint.x-t.startPoint.x),i=t.startPoint.y-n*t.startPoint.x,r=(e.endPoint.y-e.startPoint.y)/(e.endPoint.x-e.startPoint.x),o=e.startPoint.y-r*e.startPoint.x;return n==r?i==o&&(t.contains(e.startPoint.x,e.startPoint.y)||t.contains(e.endPoint.x,e.endPoint.y)):(r=n*(o=(o-i)/(n-r))+i,t.contains(o,r)&&e.contains(o,r))}},{key:"polylineIntersectsRectangle",value:function polylineIntersectsRectangle(t,e){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=[];i.push(new la(new ca(e.x1,e.y1),new ca(e.x2,e.y1))),i.push(new la(new ca(e.x2,e.y1),new ca(e.x2,e.y2))),i.push(new la(new ca(e.x2,e.y2),new ca(e.x1,e.y2))),i.push(new la(new ca(e.x1,e.y2),new ca(e.x1,e.y1)));for(var r=0;r<t.length-1;r++)for(var o=new la(t[r],t[r+1]),s=0;s<i.length;s++)if(this.lineIntersectsLine(o,i[s]))return!0;if(n)for(var a=new la(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 wo(t.startPoint)&&(t.startPoint=[0,0]),wo(t.endPoint)&&(t.endPoint=[10,10]),t.points=[_toConsumableArray(t.startPoint),_toConsumableArray(t.endPoint)],_objectSpread2({escapeDistance:30},t)}}]),ICEVisioLink}(),va=function(){_inherits(ICEIsogon,ha);var e=_createSuper(ICEIsogon);function ICEIsogon(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEIsogon),(t=_objectSpread2({radius:10,edges:3,startAngle:90},t)).edges=Math.floor(3<=t.edges?t.edges:3),t.width=2*t.radius,t.height=2*t.radius,e.call(this,t)}return _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),r=Math.floor(e*Math.cos(i)+e),i=Math.floor(e*Math.sin(i)+e);this.state.dots.push([r,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){wo(t.radius)?wo(t.width)?wo(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}(),ga=(!function(){_inherits(ICERose,ha);var e=_createSuper(ICERose);function ICERose(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICERose),(t=_objectSpread2({radius:50,leafNum:2,pointNumber:100},t)).leafNum=Math.floor(2<=t.leafNum?t.leafNum:2),t.width=2*t.radius,t.height=2*t.radius,e.call(this,t)}_createClass(ICERose,[{key:"calcDots",value:function calcDots(){var t=this.state.radius,e=this.state.leafNum;this.state.dots=[];for(var n,i,r=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+=r)>=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){wo(t.radius)?wo(t.width)?wo(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)}}])}(),function(){_inherits(ICEStar,ha);var e=_createSuper(ICEStar);function ICEStar(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEStar),(t=_objectSpread2({outerRadius:50,innerRadius:20,startAngle:90,spikes:5},t)).spikes=Math.floor(1<=t.spikes?t.spikes:1),t.width=2*t.outerRadius,t.height=2*t.outerRadius,e.call(this,t)}return _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,r=this.state.outerRadius,o=this.state.innerRadius,s=0;s<this.state.spikes;s++)t=Math.cos(n)*r+r,e=Math.sin(n)*r+r,this.state.dots.push([t,e]),n+=i,t=Math.cos(n)*o+r,e=Math.sin(n)*o+r,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){wo(t.outerRadius)?wo(t.width)?wo(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}()),ma="__ICE_UTILS_TEXT_MEASURE_DIV__",ba=function(){_inherits(ICEText,mo);var e=_createSuper(ICEText);function ICEText(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return _classCallCheck(this,ICEText),t=ICEText.arrangeParam(t),(t=e.call(this,t)).measureText(),t}return _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(ma))){(e=this.root.document.createElement("div")).setAttribute("id",ma);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 r=this.state.style,o=r.paddingTop,s=r.paddingBottom,a=r.paddingLeft,l=r.paddingRight,c={width:e.offsetWidth+a+l,height:e.offsetHeight+o+s};return this.props.width=c.width,this.props.height=c.height,this.state.width=c.width,this.state.height=c.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){return(t=ci({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)).style=_objectSpread2(_objectSpread2({},t.style),{},{font:"".concat(t.style.fontWeight," ").concat(t.style.fontSize,"px ").concat(t.style.fontFamily)}),t}}]),ICEText}(),Ca={ICERect:Co,ICECircle:xo,ICEEllipse:Po,ICEStar:ga,ICEIsogon:va,ICEText:ba,ICEImage:da,ICEGroup:_o,ICEVisioLink:ya,ICEPolyLine:pa},_a={evtBuses:[],stopped:!1,frameCallback:function frameCallback(){for(var t=0;t<_a.evtBuses.length;t++){if(_a.stopped)return;_a.evtBuses[t].trigger(w)}_a.stopped||no.requestFrame(_a.frameCallback)},start:function start(){_a.stopped=!1,no.requestFrame(_a.frameCallback)},stop:function stop(){_a.stopped=!0},pause:function pause(){},resume:function resume(){},regitserEvtBus:function regitserEvtBus(t){_a.evtBuses.includes(t)||_a.evtBuses.push(t)},delEvtBus:function delEvtBus(t){_a.evtBuses.includes(t)&&_a.evtBuses.splice(_a.evtBuses.indexOf(t),1)}},ka=function(){function ICELinkSlotManager(t){_classCallCheck(this,ICELinkSlotManager),_defineProperty$1(this,"slotRadius",10),this.ice=t}return _createClass(ICELinkSlotManager,[{key:"start",value:function start(){return this.createLinkSlots(),this.ice.evtBus.on(j,this.hookMouseMoveHandler,this),this}},{key:"stop",value:function stop(){return this.ice.evtBus.off(j,this.hookMouseMoveHandler,this),this}},{key:"hookMouseMoveHandler",value:function hookMouseMoveHandler(t){for(var e=t.target.getMaxBoundingBox(),n=null,i=_toConsumableArray(this.ice.childNodes),r=0;r<i.length;r++){var o=i[r];if(o&&o.state.linkable&&o.getMaxBoundingBox().isIntersect(e)){n=o;break}}for(var s=0;s<this.ice._linkSlots.length;s++){var a=this.ice._linkSlots[s];a.hostComponent!==n&&(a.hostComponent=n)}}},{key:"createLinkSlots",value:function createLinkSlots(){var t,e,n,i;this.ice._linkSlots&&this.ice._linkSlots.length||(t=new fa({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 fa({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 fa({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 fa({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}(),wa=function(){function Deserializer(t){_classCallCheck(this,Deserializer),this.ice=t}return _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 r=0;r<i.length;r++)this.decodeRecursively(n,i[r])}}]),Deserializer}(),Pa=function(){function Serializer(t){_classCallCheck(this,Serializer),this.ice=t}return _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}(),xa=function(){_inherits(CanvasRenderer,yo);var n=_createSuper(CanvasRenderer);function CanvasRenderer(t){var e;return _classCallCheck(this,CanvasRenderer),_defineProperty$1(_assertThisInitialized(e=n.call(this)),"stopped",!1),_defineProperty$1(_assertThisInitialized(e),"componentQueue",[]),_defineProperty$1(_assertThisInitialized(e),"toolsQueue",[]),e.ice=t,e}return _createClass(CanvasRenderer,[{key:"start",value:function start(){return this.stopped=!1,this.ice.evtBus.on(w,this.frameEvtHandler,this),this}},{key:"stop",value:function stop(){return this.stopped=!0,this.ice.evtBus.off(w,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(O)}}]),CanvasRenderer}(),Ea=function(){function ImageCache(t){_classCallCheck(this,ImageCache),_defineProperty$1(this,"imageCache",new Map),this.ice=t}return _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}(),Sa=(_defineProperty$1(Ea,"CACHE_SIZE",100),_createClass(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())},[{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 Ca)this.typeMapping[e]=Ca[e];return this.root=no,_(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 sa,_a.regitserEvtBus(this.evtBus),_a.start(),aa.regitserEvtBus(this.evtBus),aa.start(),this.eventDispatcher=new oa(this).start(),this.animationManager=new N(this).start(),this.controlPanelManager=new na(this).start(),this.renderer=new xa(this).start(),this.linkSlotManager=new ka(this).start(),this.serializer=new Pa(this),this.deserializer=new wa(this),this.imageCache=new Ea(this),this}},{key:"addTool",value:function addTool(t){-1===this.childNodes.indexOf(t)&&(this.evtBus.trigger(E,null,{component:t}),t.trigger(E),t.ice=this,t.ctx=this.ctx,t.evtBus=this.evtBus,this.toolNodes.push(t),this.dirty=!0,this.evtBus.trigger(S,null,{component:t}),t.trigger(S))}},{key:"removeTool",value:function removeTool(t){this.evtBus.trigger($,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(E,null,{component:t}),t.trigger(E),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(S,null,{component:t}),t.trigger(S))}},{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($,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;_a.stop(),this.renderer.stop(),this.eventDispatcher.stopped=!0,this.animationManager.stop(),this.controlPanelManager.stop(),this.linkSlotManager.stop(),this.clearAll(),this.deserializer.fromJSONObject(t),_a.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)}}]),"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{}),$a=function isNil(t){return null==t},Oa=function listCacheClear$1(){this.__data__=[],this.size=0},Ia=function eq$4(t,e){return t===e||t!=t&&e!=e},ja=Ia,Ma=function assocIndexOf$4(t,e){for(var n=t.length;n--;)if(ja(t[n][0],e))return n;return-1},Aa=Ma,Ba=Array.prototype.splice,La=Ma,Ta=Ma,za=Ma,Ra=Oa,Na=function listCacheDelete$1(t){var e=this.__data__,t=Aa(e,t);return!(t<0||(t==e.length-1?e.pop():Ba.call(e,t,1),--this.size,0))},Da=function listCacheGet$1(t){var e=this.__data__,t=La(e,t);return t<0?void 0:e[t][1]},Ha=function listCacheHas$1(t){return-1<Ta(this.__data__,t)},Va=function listCacheSet$1(t,e){var n=this.__data__,i=za(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=Ra,ListCache$4.prototype.delete=Na,ListCache$4.prototype.get=Da,ListCache$4.prototype.has=Ha,ListCache$4.prototype.set=Va;var ps,Fa=ListCache$4,Ua=Fa,qa=function stackClear$1(){this.__data__=new Ua,this.size=0},Wa=function stackDelete$1(t){var e=this.__data__,t=e.delete(t);return this.size=e.size,t},Ja=function stackGet$1(t){return this.__data__.get(t)},Ga=function stackHas$1(t){return this.__data__.has(t)},Xa="object"==typeof Sa&&Sa&&Sa.Object===Object&&Sa,Ka=Xa,Qa="object"==typeof self&&self&&self.Object===Object&&self,Za=Ka||Qa||Function("return this")(),Ya=Za.Symbol,ts=Ya,es=Object.prototype,ns=es.hasOwnProperty,is=es.toString,rs=ts?ts.toStringTag:void 0,os=function getRawTag$1(t){var e=ns.call(t,rs),n=t[rs];try{var i=!(t[rs]=void 0)}catch(t){}var r=is.call(t);return i&&(e?t[rs]=n:delete t[rs]),r},as=Object.prototype.toString,ss=os,ls=function objectToString$1(t){return as.call(t)},cs=Ya?Ya.toStringTag:void 0,hs=function baseGetTag$4(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":(cs&&cs in Object(t)?ss:ls)(t)},us=function isObject$7(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},ds=hs,fs=us,ys=function isFunction$3(t){if(!fs(t))return!1;t=ds(t);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},vs=Za["__core-js_shared__"],gs=(ps=/[^.]+$/.exec(vs&&vs.keys&&vs.keys.IE_PROTO||""))?"Symbol(src)_1."+ps:"",ms=function isMasked$1(t){return!!gs&&gs in t},bs=Function.prototype.toString,Cs=ys,_s=ms,ks=us,ws=function toSource$1(t){if(null!=t){try{return bs.call(t)}catch(t){}try{return t+""}catch(t){}}return""},Ps=/^\[object .+?Constructor\]$/,xs=Function.prototype,Es=Object.prototype,Ss=xs.toString,$s=Es.hasOwnProperty,Os=RegExp("^"+Ss.call($s).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Is=function baseIsNative$1(t){return!(!ks(t)||_s(t))&&(Cs(t)?Os:Ps).test(ws(t))},js=function getValue$1(t,e){return null==t?void 0:t[e]},Ms=function getNative$3(t,e){t=js(t,e);return Is(t)?t:void 0},As=Ms(Za,"Map"),Bs=Ms(Object,"create"),Ls=Bs,Ts=function hashClear$1(){this.__data__=Ls?Ls(null):{},this.size=0},zs=function hashDelete$1(t){t=this.has(t)&&delete this.__data__[t];return this.size-=t?1:0,t},Rs=Bs,Ns=Object.prototype.hasOwnProperty,Ds=function hashGet$1(t){var e,n=this.__data__;return Rs?"__lodash_hash_undefined__"===(e=n[t])?void 0:e:Ns.call(n,t)?n[t]:void 0},Hs=Bs,Vs=Object.prototype.hasOwnProperty,Fs=Bs,Us=Ts,qs=zs,Ws=Ds,Js=function hashHas$1(t){var e=this.__data__;return Hs?void 0!==e[t]:Vs.call(e,t)},Gs=function hashSet$1(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Fs&&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=Us,Hash$1.prototype.delete=qs,Hash$1.prototype.get=Ws,Hash$1.prototype.has=Js,Hash$1.prototype.set=Gs;var Xs=Hash$1,Ks=Fa,Qs=As,Zs=function isKeyable$1(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t},Ys=function getMapData$4(t,e){t=t.__data__;return Zs(e)?t["string"==typeof e?"string":"hash"]:t.map},tl=Ys,el=Ys,nl=Ys,il=Ys,rl=function mapCacheClear$1(){this.size=0,this.__data__={hash:new Xs,map:new(Qs||Ks),string:new Xs}},ol=function mapCacheDelete$1(t){t=tl(this,t).delete(t);return this.size-=t?1:0,t},al=function mapCacheGet$1(t){return el(this,t).get(t)},sl=function mapCacheHas$1(t){return nl(this,t).has(t)},ll=function mapCacheSet$1(t,e){var n=il(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=rl,MapCache$1.prototype.delete=ol,MapCache$1.prototype.get=al,MapCache$1.prototype.has=sl,MapCache$1.prototype.set=ll;var cl=Fa,hl=As,ul=MapCache$1,dl=Fa,fl=qa,pl=Wa,yl=Ja,vl=Ga,gl=function stackSet$1(t,e){var n=this.__data__;if(n instanceof cl){var i=n.__data__;if(!hl||i.length<199)return i.push([t,e]),this.size=++n.size,this;n=this.__data__=new ul(i)}return n.set(t,e),this.size=n.size,this};function Stack$1(t){t=this.__data__=new dl(t);this.size=t.size}Stack$1.prototype.clear=fl,Stack$1.prototype.delete=pl,Stack$1.prototype.get=yl,Stack$1.prototype.has=vl,Stack$1.prototype.set=gl;var ml=Stack$1,bl=Ms,Cl=function(){try{var t=bl(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),_l=Cl,kl=function baseAssignValue$3(t,e,n){"__proto__"==e&&_l?_l(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n},wl=kl,Pl=Ia,xl=function assignMergeValue$2(t,e,n){(void 0===n||Pl(t[e],n))&&(void 0!==n||e in t)||wl(t,e,n)},El=function createBaseFor$1(l){return function(t,e,n){for(var i=-1,r=Object(t),o=n(t),s=o.length;s--;){var a=o[l?s:++i];if(!1===e(r[a],a,r))break}return t}}(),Sl={exports:{}},$l=(!function(t,e){var e=e&&!e.nodeType&&e,n=e&&t&&!t.nodeType&&t,n=n&&n.exports===e?Za.Buffer:void 0,i=n?n.allocUnsafe:void 0;t.exports=function cloneBuffer(t,e){if(e)return t.slice();e=t.length,e=i?i(e):new t.constructor(e);return t.copy(e),e}}(Sl,Sl.exports),Za.Uint8Array),Ol=function cloneArrayBuffer$1(t){var e=new t.constructor(t.byteLength);return new $l(e).set(new $l(t)),e},Il=function cloneTypedArray$1(t,e){e=e?Ol(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.length)},jl=function copyArray$1(t,e){var n=-1,i=t.length;for(e=e||Array(i);++n<i;)e[n]=t[n];return e},Ml=us,Al=Object.create,Bl=function(){function object(){}return function(t){if(!Ml(t))return{};if(Al)return Al(t);object.prototype=t;t=new object;return object.prototype=void 0,t}}(),Ll=function overArg$1(e,n){return function(t){return e(n(t))}}(Object.getPrototypeOf,Object),Tl=Object.prototype,zl=function isPrototype$2(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Tl)},Rl=Bl,Nl=Ll,Dl=zl,Hl=function initCloneObject$1(t){return"function"!=typeof t.constructor||Dl(t)?{}:Rl(Nl(t))},Vl=function isObjectLike$5(t){return null!=t&&"object"==typeof t},Fl=hs,Ul=Vl,ql=function baseIsArguments$1(t){return Ul(t)&&"[object Arguments]"==Fl(t)},Wl=Vl,Jl=Object.prototype,Gl=Jl.hasOwnProperty,Xl=Jl.propertyIsEnumerable,Kl=ql(function(){return arguments}())?ql:function(t){return Wl(t)&&Gl.call(t,"callee")&&!Xl.call(t,"callee")},Ql=Array.isArray,Zl=function isLength$2(t){return"number"==typeof t&&-1<t&&t%1==0&&t<=9007199254740991},Yl=ys,tc=Zl,ec=function isArrayLike$3(t){return null!=t&&tc(t.length)&&!Yl(t)},nc=ec,ic=Vl,rc=function isArrayLikeObject$1(t){return ic(t)&&nc(t)},oc={exports:{}},ac=function stubFalse(){return!1},sc=(!function(t,e){var e=e&&!e.nodeType&&e,n=e&&t&&!t.nodeType&&t,n=n&&n.exports===e?Za.Buffer:void 0,e=(n?n.isBuffer:void 0)||ac;t.exports=e}(oc,oc.exports),hs),lc=Ll,cc=Vl,hc=Function.prototype,uc=Object.prototype,dc=hc.toString,fc=uc.hasOwnProperty,pc=dc.call(Object),yc=function isPlainObject$1(t){if(!cc(t)||"[object Object]"!=sc(t))return!1;t=lc(t);if(null===t)return!0;t=fc.call(t,"constructor")&&t.constructor;return"function"==typeof t&&t instanceof t&&dc.call(t)==pc},vc=hs,gc=Zl,mc=Vl,bc={},Cc=(bc["[object Float32Array]"]=bc["[object Float64Array]"]=bc["[object Int8Array]"]=bc["[object Int16Array]"]=bc["[object Int32Array]"]=bc["[object Uint8Array]"]=bc["[object Uint8ClampedArray]"]=bc["[object Uint16Array]"]=bc["[object Uint32Array]"]=!0,bc["[object Arguments]"]=bc["[object Array]"]=bc["[object ArrayBuffer]"]=bc["[object Boolean]"]=bc["[object DataView]"]=bc["[object Date]"]=bc["[object Error]"]=bc["[object Function]"]=bc["[object Map]"]=bc["[object Number]"]=bc["[object Object]"]=bc["[object RegExp]"]=bc["[object Set]"]=bc["[object String]"]=bc["[object WeakMap]"]=!1,function baseIsTypedArray$1(t){return mc(t)&&gc(t.length)&&!!bc[vc(t)]}),_c=function baseUnary$1(e){return function(t){return e(t)}},kc={exports:{}},wc=(!function(t,e){var e=e&&!e.nodeType&&e,n=e&&t&&!t.nodeType&&t,i=n&&n.exports===e&&Xa.process,e=function(){try{return n&&n.require&&n.require("util").types||i&&i.binding&&i.binding("util")}catch(t){}}();t.exports=e}(kc,kc.exports),Cc),Pc=_c,xc=kc.exports,Ec=xc&&xc.isTypedArray,Sc=Ec?Pc(Ec):wc,$c=function safeGet$2(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]},Oc=kl,Ic=Ia,jc=Object.prototype.hasOwnProperty,Mc=function assignValue$1(t,e,n){var i=t[e];jc.call(t,e)&&Ic(i,n)&&(void 0!==n||e in t)||Oc(t,e,n)},Ac=kl,Bc=function copyObject$1(t,e,n,i){var r=!n;n=n||{};for(var o=-1,s=e.length;++o<s;){var a=e[o],l=i?i(n[a],t[a],a,n,t):void 0;void 0===l&&(l=t[a]),(r?Ac:Mc)(n,a,l)}return n},Lc=/^(?:0|[1-9]\d*)$/,Tc=function isIndex$2(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&Lc.test(t))&&-1<t&&t%1==0&&t<e},zc=function baseTimes$1(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i},Rc=Kl,Nc=Ql,Dc=oc.exports,Hc=Tc,Vc=Sc,Fc=Object.prototype.hasOwnProperty,Uc=function arrayLikeKeys$1(t,e){var n,i=Nc(t),r=!i&&Rc(t),o=!i&&!r&&Dc(t),s=!i&&!r&&!o&&Vc(t),a=i||r||o||s,l=a?zc(t.length,String):[],c=l.length;for(n in t)!e&&!Fc.call(t,n)||a&&("length"==n||o&&("offset"==n||"parent"==n)||s&&("buffer"==n||"byteLength"==n||"byteOffset"==n)||Hc(n,c))||l.push(n);return l},qc=us,Wc=zl,Jc=function nativeKeysIn$1(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e},Gc=Object.prototype.hasOwnProperty,Xc=Uc,Kc=function baseKeysIn$1(t){if(!qc(t))return Jc(t);var e,n=Wc(t),i=[];for(e in t)("constructor"!=e||!n&&Gc.call(t,e))&&i.push(e);return i},Qc=ec,Zc=function keysIn$2(t){return Qc(t)?Xc(t,!0):Kc(t)},Yc=Bc,th=Zc,eh=xl,nh=Sl.exports,ih=Il,rh=jl,oh=Hl,ah=Kl,sh=Ql,lh=rc,ch=oc.exports,hh=ys,uh=us,dh=yc,fh=Sc,ph=$c,yh=function toPlainObject$1(t){return Yc(t,th(t))},vh=ml,gh=xl,mh=El,bh=function baseMergeDeep$1(t,e,n,i,r,o,s){var a,l,c,h=ph(t,n),u=ph(e,n),d=s.get(u);d?eh(t,n,d):((e=void 0===(d=o?o(h,u,n+"",t,e,s):void 0))&&(l=!(a=sh(u))&&ch(u),c=!a&&!l&&fh(u),d=u,a||l||c?d=sh(h)?h:lh(h)?rh(h):l?nh(u,!(e=!1)):c?ih(u,!(e=!1)):[]:dh(u)||ah(u)?ah(d=h)?d=yh(h):uh(h)&&!hh(h)||(d=oh(u)):e=!1),e&&(s.set(u,d),r(d,u,i,o,s),s.delete(u)),eh(t,n,d))},Ch=us,_h=Zc,kh=$c,wh=function baseMerge$1(i,r,o,s,a){i!==r&&mh(r,function(t,e){var n;a=a||new vh,Ch(t)?bh(i,r,e,o,baseMerge$1,s,a):(n=s?s(kh(i,e),t,e+"",i,r,a):void 0,gh(i,e,n=void 0===n?t:n))},_h)},Ph=function identity$2(t){return t},xh=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)},Eh=Math.max,Sh=function overRest$1(o,s,a){return s=Eh(void 0===s?o.length-1:s,0),function(){for(var t=arguments,e=-1,n=Eh(t.length-s,0),i=Array(n);++e<n;)i[e]=t[s+e];for(var e=-1,r=Array(s+1);++e<s;)r[e]=t[e];return r[s]=a(i),xh(o,this,r)}},$h=function constant$1(t){return function(){return t}},Oh=Cl,Ih=Oh?function(t,e){return Oh(t,"toString",{configurable:!0,enumerable:!1,value:$h(e),writable:!0})}:Ph,jh=Date.now,Mh=function shortOut$1(n){var i=0,r=0;return function(){var t=jh(),e=16-(t-r);if(r=t,0<e){if(800<=++i)return arguments[0]}else i=0;return n.apply(void 0,arguments)}}(Ih),Ah=Ph,Bh=Sh,Lh=Mh,Th=Ia,zh=ec,Rh=Tc,Nh=us,Dh=function baseRest$1(t,e){return Lh(Bh(t,e,Ah),t+"")},Hh=function isIterateeCall$1(t,e,n){if(!Nh(n))return!1;var i=typeof e;return!!("number"==i?zh(n)&&Rh(e,n.length):"string"==i&&e in n)&&Th(n[e],t)},Vh=wh,Fh=function createAssigner$1(a){return Dh(function(t,e){var n=-1,i=e.length,r=1<i?e[i-1]:void 0,o=2<i?e[2]:void 0,r=3<a.length&&"function"==typeof r?(i--,r):void 0;for(o&&Hh(e[0],e[1],o)&&(r=i<3?void 0:r,i=1),t=Object(t);++n<i;){var s=e[n];s&&a(t,s,n,r)}return t})}(function(t,e,n){Vh(t,e,n)}),Uh=function(){_inherits$1(Entity,_o);var e=_createSuper$1(Entity);function Entity(t){_classCallCheck$1(this,Entity);var t=Entity.arrangeParam(t);return _defineProperty$2(_assertThisInitialized$1(t=e.call(this,t)),"entityFieldsComponent",[]),t.syncEntityNameAndFields(),t}return _createClass$1(Entity,[{key:"syncEntityNameAndFields",value:function syncEntityNameAndFields(){if(this.entityNameComponent&&this.removeChild(this.entityNameComponent),this.deviderLine&&this.removeChild(this.deviderLine),this.entityFieldsComponent.length&&(this.removeChildren(this.entityFieldsComponent),this.entityFieldsComponent.length=0),this.state.entityName&&(this.entityNameComponent=new ba({left:0,top:0,text:this.state.entityName,style:{strokeStyle:"#222",fillStyle:"#222",fontSize:18,fontWeight:"bold",paddingTop:10,paddingLeft:10,paddingRight:10,paddingBottom:10},interactive:!1,stroke:!1,showMinBoundingBox:!1,showMaxBoundingBox:!1}),this.addChild(this.entityNameComponent),this.deviderLine=new pa({left:0,top:0,points:[[0,0],[this.state.width,0]],style:{strokeStyle:"#333",fillStyle:"#333",lineWidth:2},interactive:!1}),this.addChild(this.deviderLine)),!$a(this.state.fields)){for(var t=this.state.fields.length,e=0;e<t;e++){var n=this.state.fields[e],n=new ba({left:0,top:0,text:"".concat(n.name," ").concat(n.type," ").concat(n.length),style:{strokeStyle:"#222",fillStyle:"#222",fontSize:18,fontWeight:"normal",paddingTop:10,paddingLeft:10,paddingRight:10,paddingBottom:e===t-1?10:0},interactive:!1,stroke:!1,showMinBoundingBox:!1,showMaxBoundingBox:!1});this.entityFieldsComponent.push(n)}this.addChildren(this.entityFieldsComponent)}}},{key:"calcComponentParams",value:function calcComponentParams(){var t=this.state.width,e=0,n=0;this.entityNameComponent&&(e=this.childNodes[0].state.height,t=Math.max(t,this.childNodes[0].state.width),n=e+=this.deviderLine.state.height);for(var i=0;i<this.entityFieldsComponent.length;i++){var r=this.entityFieldsComponent[i];r.setState({left:0,top:e}),e+=r.state.height,t=Math.max(t,r.state.width)}this.deviderLine&&this.deviderLine.setState({points:[[0,n],[t,n]]});var n=t,o=Math.max(e,this.state.height);return{width:this.state.width=n,height:this.state.height=o}}},{key:"toEntityObject",value:function toEntityObject(){var n={name:this.state.entityName,columns:{}};return this.state.fields.forEach(function(t,e){n.columns[t.name]=_objectSpread2$1({},t)}),n}},{key:"setState",value:function setState(t){var e=!1;$a(t.fields)||(this.state.fields=t.fields,e=!0),$a(t.entityName)||(this.state.entityName=t.entityName,e=!0),e&&this.syncEntityNameAndFields(),_get$1(_getPrototypeOf$1(Entity.prototype),"setState",this).call(this,t)}}],[{key:"arrangeParam",value:function arrangeParam(t){t=Fh({entityName:"Entity Name",fields:[],style:{strokeStyle:"#000",fillStyle:"#00eeff"}},t,{transformable:!1});return $a(t.entityName)&&(t.entityName="Entity Name"),$a(t.fields)&&(t.fields=[]),t}}]),Entity}(),qh=function(){_inherits$1(Relation,ya);var e=_createSuper$1(Relation);function Relation(t){return _classCallCheck$1(this,Relation),e.call(this,_objectSpread2$1({title:"Relation",relationType:"one-to-one",referencedColumnName:"id"},t))}return _createClass$1(Relation,[{key:"toEntityObject",value:function toEntityObject(){var t=this.state,e=t.title,n=t.relationType,t=t.referencedColumnName,i=this.links.start.component,r=this.links.end.component;return{title:e,fromId:i.state.id,fromName:i.state.entityName,toId:r.state.id,toName:r.state.entityName,relationType:n,referencedColumnName:t}}}]),Relation}();function toWords(t){return(t=function convertToString(t){return"string"==typeof(t=t||"")?t:String(t)}(t)).match(/[A-Z\xC0-\xD6\xD8-\xDE]?[a-z\xDF-\xF6\xF8-\xFF]+|[A-Z\xC0-\xD6\xD8-\xDE]+(?![a-z\xDF-\xF6\xF8-\xFF])|\d+/g)}function toCamelCase(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n="",i=0,r=t.length;i<r;i++){var o=t[i].toLowerCase();n+=o=!e&&0==i?o:o.substr(0,1).toUpperCase()+o.substr(1)}return n}function camelCase(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1];return toCamelCase(toWords(t),e)}var Wh=[],Jh=[],Gh={},Xh={},Kh={};function sanitizeRule(t){return"string"==typeof t?new RegExp("^"+t+"$","i"):t}function restoreCase(t,e){return t===e?e:t===t.toLowerCase()?e.toLowerCase():t===t.toUpperCase()?e.toUpperCase():t[0]===t[0].toUpperCase()?e.charAt(0).toUpperCase()+e.substr(1).toLowerCase():e.toLowerCase()}function interpolate(t,n){return t.replace(/\$(\d{1,2})/g,function(t,e){return n[e]||""})}function replace(i,r){return i.replace(r[0],function(t,e){var n=interpolate(r[1],arguments);return restoreCase(""===t?i[e-1]:t,n)})}function sanitizeWord(t,e,n){if(!t.length||Gh.hasOwnProperty(t))return e;for(var i=n.length;i--;){var r=n[i];if(r[0].test(e))return replace(e,r)}return e}function replaceWord(n,i,r){return function(t){var e=t.toLowerCase();return i.hasOwnProperty(e)?restoreCase(t,e):n.hasOwnProperty(e)?restoreCase(t,n[e]):sanitizeWord(e,t,r)}}function checkWord(e,n,i){return function(t){t=t.toLowerCase();return!!n.hasOwnProperty(t)||!e.hasOwnProperty(t)&&sanitizeWord(t,t,i)===t}}function pluralize(t,e,n){return(n?e+" ":"")+(1===e?pluralize.singular(t):pluralize.plural(t))}function toSchemaObject(t){for(var e=_toConsumableArray$1(t),n=[],i={},r=0;r<e.length;r++){var o=e[r];"Relation"===o.constructor.name?n.push(o):"Entity"===o.constructor.name&&(i[o.state.id]=o.toEntityObject())}for(var s=0;s<n.length;s++){var a=n[s].toEntityObject(),l=a.fromId,c=a.fromName,h=a.toId,u=a.toName,d=a.relationType,a=a.referencedColumnName,l=i[l],h=i[h];l&&h&&(l.relations||(l.relations={}),h.relations||(h.relations={}),"one-to-one"===d?(l.relations["".concat(camelCase(u))]={type:d,target:u,joinColumn:{target:u,referencedColumnName:a}},h.relations["".concat(camelCase(c))]={type:d,target:c}):"one-to-many"===d?l.relations["".concat(camelCase(u))]={type:d,target:u}:"many-to-one"===d?h.relations["".concat(camelCase(c))]={type:"one-to-many",target:c}:"many-to-many"===d&&(l.relations["".concat(pluralize(camelCase(u)))]={type:d,target:u,joinTable:{target:u}},h.relations["".concat(pluralize(camelCase(c)))]={type:d,target:c}))}var p,f=[];for(p in i)f.push(i[p]);return f}pluralize.plural=replaceWord(Kh,Xh,Wh),pluralize.isPlural=checkWord(Kh,Xh,Wh),pluralize.singular=replaceWord(Xh,Kh,Jh),pluralize.isSingular=checkWord(Xh,Kh,Jh),pluralize.addPluralRule=function(t,e){Wh.push([sanitizeRule(t),e])},pluralize.addSingularRule=function(t,e){Jh.push([sanitizeRule(t),e])},pluralize.addUncountableRule=function(t){"string"!=typeof t?(pluralize.addPluralRule(t,"$0"),pluralize.addSingularRule(t,"$0")):Gh[t.toLowerCase()]=!0},pluralize.addIrregularRule=function(t,e){e=e.toLowerCase(),t=t.toLowerCase(),Kh[t]=e,Xh[e]=t},[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"]].forEach(function(t){return pluralize.addIrregularRule(t[0],t[1])}),[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]].forEach(function(t){return pluralize.addPluralRule(t[0],t[1])}),[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]].forEach(function(t){return pluralize.addSingularRule(t[0],t[1])}),["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","species","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[eé]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i].forEach(pluralize.addUncountableRule),exports.Entity=Uh,exports.Relation=qh,exports.toSchemaObject=toSchemaObject,exports.toSchemaString=function toSchemaString(t){return JSON.stringify(toSchemaObject(t))};