{"version":3,"sources":["webpack:///./node_modules/react-reconciler/cjs/react-reconciler.production.min.js","webpack:///./node_modules/konva/lib/Shape.js","webpack:///./node_modules/konva/lib/_FullInternals.js","webpack:///./node_modules/konva/lib/Global.js","webpack:///./node_modules/konva/lib/shapes/Transformer.js","webpack:///./node_modules/konva/lib/BaseLayer.js","webpack:///./node_modules/konva/lib/shapes/Label.js","webpack:///./node_modules/konva/lib/DragAndDrop.js","webpack:///./node_modules/konva/lib/shapes/Star.js","webpack:///./node_modules/konva/lib/filters/Emboss.js","webpack:///./node_modules/konva/lib/Stage.js","webpack:///./node_modules/konva/lib/Container.js","webpack:///./node_modules/konva/lib/Animation.js","webpack:///./node_modules/konva/lib/Group.js","webpack:///./node_modules/konva/lib/Factory.js","webpack:///./node_modules/react-konva/lib/ReactKonvaHostConfig.js","webpack:///./node_modules/konva/lib/Canvas.js","webpack:///./node_modules/konva/lib/shapes/Line.js","webpack:///./node_modules/react-konva/lib/ReactDOMComponentTree.js","webpack:///./node_modules/konva/lib/Tween.js","webpack:///./node_modules/react-konva/lib/HostConfigWithNoPersistence.js","webpack:///./node_modules/konva/lib/Layer.js","webpack:///./node_modules/konva/lib/filters/Threshold.js","webpack:///./node_modules/konva/lib/shapes/Arrow.js","webpack:///./node_modules/konva/lib/filters/Kaleidoscope.js","webpack:///./node_modules/konva/lib/shapes/Circle.js","webpack:///./node_modules/konva/lib/filters/Posterize.js","webpack:///./node_modules/konva/lib/shapes/Image.js","webpack:///./node_modules/konva/lib/shapes/RegularPolygon.js","webpack:///./node_modules/konva/lib/shapes/TextPath.js","webpack:///./node_modules/konva/lib/FastLayer.js","webpack:///./node_modules/react-konva/lib/HostConfigWithNoHydration.js","webpack:///./node_modules/react-reconciler/index.js","webpack:///./node_modules/konva/lib/index.js","webpack:///./node_modules/konva/lib/_CoreInternals.js","webpack:///./node_modules/konva/lib/shapes/Ellipse.js","webpack:///./node_modules/react-konva/lib/ReactKonvaCore.js","webpack:///./node_modules/konva/lib/Core.js","webpack:///./node_modules/konva/lib/filters/Pixelate.js","webpack:///./node_modules/react-konva/lib/invariant.js","webpack:///./node_modules/konva/lib/Validators.js","webpack:///./node_modules/konva/lib/filters/HSV.js","webpack:///./node_modules/konva/lib/Node.js","webpack:///./node_modules/konva/lib/shapes/Text.js","webpack:///./node_modules/react-konva/node_modules/scheduler/index.js","webpack:///./node_modules/react-konva/lib/ReactKonva.js","webpack:///./node_modules/konva/lib/shapes/Rect.js","webpack:///./node_modules/react-konva/lib/makeUpdates.js","webpack:///./node_modules/konva/lib/filters/Brighten.js","webpack:///./node_modules/konva/lib/filters/Sepia.js","webpack:///./node_modules/konva/lib/filters/Solarize.js","webpack:///./node_modules/konva/lib/PointerEvents.js","webpack:///./node_modules/konva/lib/shapes/Arc.js","webpack:///./node_modules/konva/lib/filters/Invert.js","webpack:///./node_modules/konva/lib/shapes/Path.js","webpack:///./node_modules/konva/lib/filters/RGB.js","webpack:///./node_modules/konva/lib/filters/HSL.js","webpack:///./node_modules/konva/lib/filters/Mask.js","webpack:///./node_modules/konva/lib/shapes/Wedge.js","webpack:///./node_modules/konva/lib/Util.js","webpack:///./src/pages/ContactUs/index.js","webpack:///./node_modules/konva/lib/shapes/Sprite.js","webpack:///./node_modules/react-reconciler/node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///./node_modules/konva/lib/filters/RGBA.js","webpack:///./node_modules/react-reconciler/node_modules/scheduler/index.js","webpack:///./node_modules/konva/lib/filters/Noise.js","webpack:///./node_modules/react-konva/node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///./node_modules/konva/lib/filters/Enhance.js","webpack:///./node_modules/konva/lib/filters/Blur.js","webpack:///./node_modules/konva/lib/shapes/Ring.js","webpack:///./node_modules/konva/lib/filters/Contrast.js","webpack:///./node_modules/konva/lib/Context.js","webpack:///./node_modules/konva/lib/filters/Grayscale.js"],"names":["module","exports","$$$reconciler","$$$hostConfig","aa","ba","m","n","a","b","c","arguments","length","encodeURIComponent","q","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","hasOwnProperty","ReactCurrentDispatcher","current","ReactCurrentBatchConfig","suspense","u","Symbol","for","ca","da","ea","fa","ha","ia","ja","ka","la","ma","na","oa","pa","qa","iterator","ra","ta","displayName","name","$$typeof","render","type","_status","_result","ua","alternate","return","effectTag","tag","va","Error","wa","d","e","f","child","sibling","g","l","stateNode","xa","za","getPublicInstance","Aa","getRootHostContext","Ba","getChildHostContext","Ca","prepareForCommit","Da","resetAfterCommit","Ea","createInstance","Fa","appendInitialChild","Ga","finalizeInitialChildren","Ia","prepareUpdate","Ja","shouldSetTextContent","Ka","shouldDeprioritizeSubtree","La","createTextInstance","Ma","setTimeout","Na","clearTimeout","Oa","noTimeout","Pa","isPrimaryRenderer","Qa","supportsMutation","Ra","supportsPersistence","Sa","supportsHydration","Ta","appendChild","Ua","appendChildToContainer","Va","commitTextUpdate","Wa","commitMount","Xa","commitUpdate","Ya","insertBefore","Za","insertInContainerBefore","$a","removeChild","ab","removeChildFromContainer","bb","resetTextContent","cb","hideInstance","db","hideTextInstance","eb","unhideInstance","fb","unhideTextInstance","gb","cloneInstance","hb","createContainerChildSet","ib","appendChildToContainerChildSet","kb","finalizeContainerChildren","lb","replaceContainerChildren","mb","cloneHiddenInstance","nb","cloneHiddenTextInstance","ob","canHydrateInstance","pb","canHydrateTextInstance","qb","isSuspenseInstancePending","rb","isSuspenseInstanceFallback","sb","getNextHydratableSibling","tb","getFirstHydratableChild","ub","hydrateInstance","vb","hydrateTextInstance","wb","getNextHydratableInstanceAfterSuspenseInstance","xb","commitHydratedContainer","yb","commitHydratedSuspenseInstance","zb","Ab","_debugOwner","_debugSource","fileName","replace","lineNumber","Set","Bb","Cb","y","z","Db","A","B","Eb","Fb","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","C","childContextTypes","Gb","Hb","Ib","Jb","getChildContext","Kb","__reactInternalMemoizedMergedChildContext","Lb","Mb","unstable_runWithPriority","Nb","unstable_scheduleCallback","Ob","unstable_cancelCallback","Pb","unstable_shouldYield","Qb","unstable_requestPaint","Rb","unstable_now","Ub","unstable_getCurrentPriorityLevel","Vb","unstable_ImmediatePriority","Wb","unstable_UserBlockingPriority","Xb","unstable_NormalPriority","Yb","unstable_LowPriority","Zb","unstable_IdlePriority","$b","ac","bc","cc","dc","ec","E","fc","gc","hc","ic","jc","kc","push","F","slice","lc","mc","oc","Object","is","pc","prototype","qc","keys","call","rc","defaultProps","sc","tc","uc","vc","wc","xc","_context","_currentValue","_currentValue2","yc","zc","childExpirationTime","Ac","dependencies","firstContext","expirationTime","Bc","Cc","context","observedBits","next","responders","Dc","Ec","baseState","firstUpdate","lastUpdate","firstCapturedUpdate","lastCapturedUpdate","firstEffect","lastEffect","firstCapturedEffect","lastCapturedEffect","Fc","Gc","suspenseConfig","payload","callback","nextEffect","Hc","Ic","updateQueue","memoizedState","Jc","Kc","Lc","Nc","h","k","p","Oc","D","Pc","Qc","Rc","Sc","Tc","Component","refs","Uc","Xc","isMounted","_reactInternalFiber","enqueueSetState","G","Vc","Wc","enqueueReplaceState","enqueueForceUpdate","Yc","shouldComponentUpdate","isPureReactComponent","Zc","contextType","state","updater","$c","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","ad","props","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","bd","Array","isArray","cd","ref","_owner","_stringRef","dd","toString","join","ed","Map","key","set","index","fd","gd","mode","elementType","hd","containerInfo","implementation","id","children","jd","x","K","get","Ha","w","t","r","v","delete","forEach","O","done","N","value","kd","ld","md","H","nd","od","pd","qd","rd","sd","td","I","ud","dehydrated","memoizedProps","revealOrder","vd","responder","wd","J","xd","yd","L","zd","Ad","M","Bd","Cd","Dd","Ed","Fd","Gd","Hd","P","Id","Jd","Kd","Ld","Md","Nd","Od","queue","baseUpdate","Pd","Qd","Rd","lastRenderedReducer","dispatch","action","last","lastRenderedState","eagerReducer","eagerState","Sd","Td","bind","Ud","Vd","create","destroy","deps","Wd","Xd","Yd","Zd","$d","ae","be","ce","readContext","useCallback","useContext","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useResponder","useDeferredValue","useTransition","concat","unstable_next","de","ee","fe","ge","he","ie","pendingProps","je","ke","ne","oe","pe","ReactCurrentOwner","Q","qe","re","se","te","compare","ue","ve","we","xe","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","ye","getDerivedStateFromError","ze","pendingContext","Ge","He","Ie","Je","Ae","retryTime","Be","fallback","unstable_avoidThisFallback","Ce","De","isBackwards","rendering","tail","tailExpiration","tailMode","Ee","Fe","Ke","pendingChildren","Le","Me","Ne","source","stack","Oe","WeakSet","Pe","console","error","Se","Re","Te","Ue","__reactInternalSnapshotBeforeUpdate","Ve","We","componentWillUnmount","Qe","Xe","Ye","Ze","$e","af","bf","instance","cf","hydrate","df","ef","ff","gf","has","add","then","hf","WeakMap","jf","element","kf","lf","mf","componentDidCatch","nf","this","componentStack","ig","of","Math","ceil","pf","qf","S","T","U","V","W","X","zf","Af","Bf","Cf","Df","Ef","Y","Gf","Hf","If","Jf","Kf","Lf","Mf","timeoutMs","Nf","Of","Z","Pf","Qf","Rf","lastExpiredTime","Sf","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Tf","timeout","Uf","Vf","Wf","Xf","Yf","Zf","finishedWork","finishedExpirationTime","lastSuspendedTime","$f","timeoutHandle","ag","busyMinDurationMs","busyDelayMs","bg","eg","pingCache","fg","gg","Sb","hg","jg","firstSuspendedTime","kg","jb","Mc","le","me","Tb","lg","mg","ng","_ctor","default","sa","og","_calculateChangedBits","unstable_observedBits","qg","isReactComponent","rg","sg","tg","ug","vg","createContainer","updateContainer","batchedEventUpdates","batchedUpdates","unbatchedUpdates","deferredUpdates","syncUpdates","discreteUpdates","flushDiscreteUpdates","dg","flushControlled","flushSync","flushPassiveEffects","IsThisRendererActing","getPublicRootInstance","attemptSynchronousHydration","cg","attemptUserBlockingHydration","attemptContinuousHydration","attemptHydrationAtCurrentPriority","findHostInstance","findHostInstanceWithWarning","findHostInstanceWithNoPortals","ya","shouldSuspend","injectIntoDevTools","findFiberByHostInstance","__REACT_DEVTOOLS_GLOBAL_HOOK__","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","pg","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","$$$renderer","extendStatics","__extends","setPrototypeOf","__proto__","__","constructor","defineProperty","dummyContext","Util_1","Factory_1","Node_1","Validators_1","Global_1","PointerEvents","getDummyContext","Util","createCanvasElement","getContext","_clearHasShadowCache","_clearCache","_clearGetShadowRGBACache","_clearFillPatternCache","_clearLinearGradientCache","_clearRadialGradientCache","shapes","Shape","_super","config","_this","getRandomColor","colorKey","on","getLayer","getCanvas","getSceneFunc","attrs","sceneFunc","getHitFunc","hitFunc","hasShadow","_getCache","_hasShadow","shadowEnabled","shadowOpacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","_getFillPattern","__getFillPattern","fillPatternImage","createPattern","fillPatternRepeat","_getLinearGradient","__getLinearGradient","colorStops","fillLinearGradientColorStops","ctx","start","fillLinearGradientStartPoint","end","fillLinearGradientEndPoint","grd","createLinearGradient","addColorStop","_getRadialGradient","__getRadialGradient","fillRadialGradientColorStops","fillRadialGradientStartPoint","fillRadialGradientEndPoint","createRadialGradient","fillRadialGradientStartRadius","fillRadialGradientEndRadius","getShadowRGBA","_getShadowRGBA","rgba","colorToRGBA","hasFill","fillEnabled","fill","hasStroke","strokeEnabled","strokeWidth","stroke","strokeLinearGradientColorStops","hasHitStroke","width","hitStrokeWidth","intersects","point","bufferHitCanvas","getStage","clear","drawHit","getImageData","round","data","Node","_useBufferCanvas","caching","perfectDrawEnabled","getAbsoluteOpacity","setStrokeHitEnabled","val","warn","getStrokeHitEnabled","getSelfRect","size","_centroid","height","getClientRect","skipTransform","relativeTo","fillRect","skipStroke","fillAndStrokeWidth","fillAndStrokeHeight","applyShadow","skipShadow","preWidth","abs","preHeight","blurRadius","roundingOffset","rect","min","_transformedRect","drawScene","can","top","skipBuffer","bufferCanvas","bufferContext","layer","canvas","cachedCanvas","_getCanvasCache","drawFunc","isVisible","save","_applyTransform","_drawCachedSceneCanvas","restore","_applyLineJoin","getAbsoluteTransform","getMatrix","transform","ratio","pixelRatio","hitCanvas","_applyShadow","_applyOpacity","_applyGlobalCompositeOperation","drawImage","_canvas","o","shadowForStrokeEnabled","cachedHitCanvas","hit","log","shouldDrawHit","_drawCachedHitCanvas","drawHitFromCache","alphaThreshold","hitImageData","hitData","len","rgbColorKey","i","sceneCanvas","_getCachedSceneCanvas","hitContext","hitWidth","getWidth","hitHeight","getHeight","_hexToRgb","putImageData","message","hasPointerCapture","pointerId","setPointerCapture","releaseCapture","_fillFunc","_strokeFunc","_fillFuncHit","_strokeFuncHit","nodeType","_registerNode","Factory","addGetterSetter","undefined","getStringValidator","getNumberValidator","getNumberOrAutoValidator","getBooleanValidator","addComponentsGetterSetter","backCompat","dashArray","getDashArray","setDashArray","getDrawFunc","setDrawFunc","drawHitFunc","getDrawHitFunc","setDrawHitFunc","Collection","mapMethods","_CoreInternals_1","Arc_1","Arrow_1","Circle_1","Ellipse_1","Image_1","Label_1","Line_1","Path_1","Rect_1","RegularPolygon_1","Ring_1","Sprite_1","Star_1","Text_1","TextPath_1","Transformer_1","Wedge_1","Blur_1","Brighten_1","Contrast_1","Emboss_1","Enhance_1","Grayscale_1","HSL_1","HSV_1","Invert_1","Kaleidoscope_1","Mask_1","Noise_1","Pixelate_1","Posterize_1","RGB_1","RGBA_1","Sepia_1","Solarize_1","Threshold_1","Konva","_assign","Arc","Arrow","Circle","Ellipse","Image","Label","Tag","Line","Path","Rect","RegularPolygon","Ring","Sprite","Star","Text","TextPath","Transformer","Wedge","Filters","Blur","Brighten","Contrast","Emboss","Enhance","Grayscale","HSL","HSV","Invert","Kaleidoscope","Mask","Noise","Pixelate","Posterize","RGB","RGBA","Sepia","Solarize","Threshold","PI_OVER_180","PI","_detectIE","msie","indexOf","parseInt","substring","rv","edge","_parseUA","userAgent","toLowerCase","match","exec","mobile","ieMobile","browser","version","isIE","glob","global","window","WorkerGlobalScope","self","_global","isBrowser","isUnminified","test","param","dblClickWindow","getAngle","angle","angleDeg","enableTrace","_pointerEventsEnabled","hitOnDragEnabled","captureTouchEventsEnabled","listenClickTap","inDblClickWindow","dragDistance","showWarnings","dragButtons","isDragging","isDragReady","node","UA","navigator","document","_injectGlobal","_NODES_REGISTRY","NodeClass","getClassName","Shape_1","Group_1","Global_2","ATTR_CHANGE_LIST","map","TRANSFORM_CHANGE_STR","ANGLES","TOUCH_DEVICE","ANCHORS_NAMES","_transforming","_createElements","_handleMouseMove","_handleMouseUp","update","getNode","attachTo","setNode","_node","detach","_resetTransformCache","additionalEvents","_attrsAffectingSize","prop","onChange","findOne","getActiveAnchor","_movingAnchorName","off","_clearSelfAndDescendantCache","_getNodeRect","__getNodeRect","rotation","parent","ignoreStroke","dx","scaleX","offsetX","dy","scaleY","offsetY","cos","sin","getX","getY","getRotation","_createBack","_createAnchor","anchor","draggable","_handleMouseDown","cancelBubble","rad","getAbsoluteRotation","scale","getAbsoluteScale","isMirrored","cursor","anchorName","_degToRad","_radToDeg","_inRange","getCursor","content","style","_cursorChange","getParent","back","listening","tr","padding","beginPath","moveTo","rotateEnabled","lineTo","rotateAnchorOffset","_sign","fillStrokeShape","target","split","hypotenuse","sqrt","pow","addEventListener","_fire","evt","newHypotenuse","anchorNode","stage","setPointersPositions","setAbsolutePosition","getPointerPosition","keepProportion","keepRatio","shiftKey","reverseX","reverseY","pos","position","dAlpha","atan2","rot","newRotation","alpha","newAlpha","snaps","rotationSnaps","offset","rotationSnapTolerance","_fitNodeInto","centeredScaling","altKey","topLeft","bottomRight","topOffsetX","topOffsetY","bottomOffsetX","bottomOffsetY","move","absPos","getAbsolutePosition","_removeEvents","removeEventListener","fire","newAttrs","boundBoxFunc","oldAttrs","pure","setAttrs","batchDraw","forceUpdate","invertedScale","enabledAnchors","resizeEnabled","anchorSize","find","each","anchorStroke","anchorStrokeWidth","anchorFill","cornerRadius","anchorCornerRadius","visible","scaledRotateAnchorOffset","borderEnabled","borderStroke","borderStrokeWidth","dash","borderDash","isTransforming","stopTransform","stopDrag","Group","toObject","className","lineEnabled","rotateHandlerOffset","enabledHandlers","Container_1","Canvas_1","BaseLayer","SceneCanvas","_waitingForDraw","_checkVisibility","_checkSmooth","createPNGStream","getHitCanvas","bounds","setZIndex","moveToTop","moveUp","moveDown","moveToBottom","hitGraphEnabled","remove","parentNode","_isInDocument","setSize","_a","_toKonvaCanvas","display","imageSmoothingEnabled","setWidth","setHeight","getIntersection","selector","requestAnimFrame","draw","shape","Container","attrChangeListLen","_addListeners","_sync","getText","getTag","text","that","func","pointerDirection","pointerWidth","pointerHeight","apply","_sceneFunc","arc","closePath","direction","DD","flag","_dragElements","elem","dragStatus","justDragged","_drag","_getFirstPointerId","_changedPointerPositions","max","startPointerPos","startDrag","_setDragPosition","_endDragBefore","drawNode","_endDragAfter","innerRadius","outerRadius","numPoints","radius","imageData","strength","embossStrength","greyLevel","embossWhiteLevel","embossDirection","blend","embossBlend","dirY","dirX","w4","otherY","offsetYOther","otherX","offsetOther","dR","dG","dB","dif","absDif","grey","afterSetFilter","DragAndDrop_1","EVENTS","eventsLength","addEvent","eventName","checkNoClip","clipFunc","clipWidth","clipHeight","stages","Stage","_pointerPositions","_buildDOM","_bindContentEvents","_resizeDOM","_validateAdd","isLayer","getType","isFastLayer","throw","setContainer","container","charAt","getElementsByClassName","getElementById","_setAttr","parentElement","layers","clone","obj","createElement","splice","_getPointerById","getPointersPositions","getContent","translate","layerCanvas","getPixelRatio","_setCanvasSize","getLayers","getChildren","_mouseenter","currentTarget","_mouseover","_mouseout","targetShape","eventsEnabled","_fireAndBubble","pointerPos","_mousemove","_touchmove","isListening","differentTarget","cancelable","preventDefault","_mousedown","_touchstart","clickStartShape","_mouseup","_touchend","clickEndShape","fireDblClick","dblTimeout","_id","_contextmenu","triggeredOnShape","tapStartShape","processedShapesIds","getCapturedShape","tapTriggered","dblTapTriggered","_wheel","_pointerdown","createEvent","_pointermove","_pointerup","_pointercancel","_lostpointercapture","contentPosition","_getContentPosition","event","touches","touch","identifier","clientX","left","clientY","changedTouches","_setPointerPosition","getBoundingClientRect","clientWidth","clientHeight","HitCanvas","innerHTML","userSelect","setAttribute","cache","clearCache","filterFunc","results","hasChildren","removeChildren","destroyChildren","_i","_children","_clearCaches","_generalFind","result","retArr","_descendants","valid","_isMatch","toCollection","fn","_getDescendants","arr","isAncestorOf","no","getAllIntersections","_setChildrenIndices","cachedSceneCanvas","scene","_drawChildren","drawMethod","skipComposition","clipX","clipY","hasClip","clip","copy","invert","hasComposition","globalCompositeOperation","isCache","layerUnderDrag","dragSkip","minX","minY","maxX","maxY","selfRect","Infinity","hasVisible","_isVisible","now","performance","Date","getTime","Animation","animIdCounter","frame","time","timeDiff","lastTime","frameRate","setLayers","lays","addLayer","isRunning","animations","stop","_addAnimation","_removeAnimation","_updateFrameObject","anim","_handleAnimation","_runFrames","layersLen","layerHash","_animationLoop","Anim","requestAnimationFrame","animRunning","attr","def","validator","after","addGetter","addSetter","addOverloadedGetterSetter","method","_capitalize","overWriteSetter","components","component","capitalize","getter","setter","ret","getAttr","basicValidator","getComponentValidator","oldVal","_fireChangeEvent","capitalizedAttr","addDeprecatedGetterSetter","methods","oldMethodName","newMethodName","oldGetter","oldSetter","deprecated","_filterUpToDate","__esModule","cancelPassiveEffects","schedulePassiveEffects","cancelTimeout","scheduleTimeout","cancelDeferredCallback","shouldYield","scheduleDeferredCallback","_HostConfigWithNoPersistence","enumerable","_HostConfigWithNoHydration","_scheduler","parentInstance","_invariant2","_makeUpdates","updatePicture","internalInstanceHandle","_Core2","applyNodeProps","rootContainerInstance","domElement","oldProps","newProps","UPDATE_SIGNAL","NO_CONTEXT","beforeChild","EVENTS_NAMESPACE","textInstance","oldText","newText","updatePayload","hide","show","_interopRequireDefault","_applyProps","_remove","getZIndex","_pixelRatio","Context_1","Canvas","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","getDevicePixelRatio","margin","border","background","setPixelRatio","previousRatio","toDataURL","mimeType","quality","err","SceneContext","HitContext","__spreadArrays","s","il","j","jl","tp","points","tension","closed","bezier","getTensionPoints","quadraticCurveTo","bezierCurveTo","strokeShape","_getTensionPoints","_getTensionPointsClosed","_expandPoints","firstControlPoints","_getControlPoints","lastControlPoints","middle","getNumberArrayValidator","getClosestInstanceFromNode","internalInstanceKey","inst","random","Animation_1","blacklist","duration","easing","onFinish","yoyo","idCounter","colorAttrs","TweenEngine","propFunc","begin","finish","_pos","_change","prevPos","_time","_position","_startTime","_finish","pause","str","handler","setTime","reverse","play","reset","setPosition","getPosition","getTimer","onEnterFrame","seek","Tween","nodeId","Easings","Linear","tween","_tweenFunc","tweens","_addAttr","onReset","diff","tweenId","trueEnd","trueStart","endRGBA","_isArray","_prepareArrayForTween","startRGBA","newVal","setAttr","onPlay","onReverse","onPause","thisId","to","params","BackEaseIn","BackEaseOut","BackEaseInOut","ElasticEaseIn","asin","ElasticEaseOut","ElasticEaseInOut","BounceEaseOut","BounceEaseIn","BounceEaseInOut","EaseIn","EaseOut","EaseInOut","StrongEaseIn","StrongEaseOut","StrongEaseInOut","createHiddenTextInstance","cloneUnhiddenInstance","_invariant","shim","BaseLayer_1","INTERSECTION_OFFSETS","INTERSECTION_OFFSETS_LEN","Layer","intersectionOffset","spiralSearchDistance","continueSearch","_getIntersection","findAncestor","antialiased","p3","_rgbToHex","clearBeforeDraw","enableHitGraph","disableHitGraph","toggleHitCanvas","level","threshold","PI2","fromTension","radians","pointerLength","rotate","pointerAtBeginning","isDashEnabled","dashEnabled","setLineDash","lineRect","srcPos","dstPos","xSize","ySize","power","kaleidoscopePower","kaleidoscopeAngle","floor","tempCanvas","scratchData","src","dst","opt","srcPixels","dstPixels","xMid","polarCenterX","yMid","polarCenterY","rMax","theta","rSize","tSize","conversion","ToPolar","minSectionSize","sectionSize","xStart","xEnd","xDelta","x1","phaseShift","polarRotation","FromPolar","levels","cropWidth","cropHeight","image","cropX","cropY","_hitFunc","fromURL","url","img","createImageElement","onload","crossOrigin","sides","fillText","partialText","strokeText","dummyCanvas","dataArray","parsePathData","_setTextData","kerningFunc","_getContextFont","textBaseline","textDecoration","fontSize","glyphInfo","p0","strokeStyle","lineWidth","p1","getTextWidth","textWidth","getTextHeight","textHeight","setText","_getTextSize","font","metrics","measureText","letterSpacing","align","textFullWidth","fullPathWidth","pathLength","pathCmd","charArr","spacesNumber","pIndex","currentT","getNextPathSegment","pathData","command","findSegmentToFitCharacter","glyphWidth","currLen","attempts","cumulativePathLength","needNewSegment","getLineLength","getPointOnLine","dTheta","getPointOnEllipticalArc","getPointOnCubicBezier","getPointOnQuadraticBezier","lettersInOffset","kern","midpoint","transposeX","transposeY","info","FastLayer","didNotFindHydratableTextInstance","didNotFindHydratableInstance","didNotFindHydratableContainerTextInstance","didNotFindHydratableContainerInstance","didNotHydrateInstance","didNotHydrateContainerInstance","didNotMatchHydratedTextInstance","didNotMatchHydratedContainerTextInstance","Stage_1","Layer_1","FastLayer_1","Tween_1","Transform","ids","names","Context","rx","radiusX","ry","radiusY","_extends","assign","_classCallCheck","Constructor","TypeError","_possibleConstructorReturn","ReferenceError","React","ReactFiberReconciler","ReactDOMComponentTree","HostConfig","_require","toggleStrictMode","_React$Component","subClass","superClass","writable","configurable","_inherits","_stage","_tagRef","_setRef","_mountNode","KonvaRenderer","forwardedRef","prevProps","_this2","_ref","accessKey","role","tabIndex","title","TYPES","nodeName","bundleType","rendererPackageName","getInspectorDataForViewTag","_len","args","_key","StageWrap","forwardRef","__matchRectVersion","useStrictMode","red","green","blue","xBinStart","xBinEnd","yBinStart","yBinEnd","xBin","yBin","pixelsInBin","pixelSize","nBinsX","nBinsY","validateFormat","format","condition","argIndex","String","framesToPop","_formatValue","_isString","_isBoolean","RGBComponent","alphaComponent","_isNumber","getFunctionValidator","_isFunction","item","isObject","nPixels","saturation","hue","vsu","vsw","rr","gr","br","_removeId","_addName","_removeName","nodes","SCALE_CHANGE_STR","emptyChildren","eventListeners","_cache","_lastPos","_isUnderCache","_dragEventId","privateGetter","isCached","conf","drawBorder","cachedFilterCanvas","sceneContext","filter","trans","transformed","canvasCache","cacheCanvas","filters","filterCanvas","filterContext","evtStr","_delegate","parts","baseEvent","events","_off","dispatchEvent","stopNode","targets","findAncestors","cloneObject","subname","getAncestors","ancestors","getAttrs","_isListening","getAbsoluteZIndex","depth","getDepth","addChildren","toArray","haveCachedParent","absoluteMatrix","absoluteTransform","getTranslation","it","origTrans","_clearTransform","_setTransform","skewX","skewY","change","changeX","changeY","_eachAncestorReverse","family","unshift","zIndex","_getAbsoluteOpacity","absOpacity","opacity","newContainer","defaultValue","_isPlainObject","_prepareToStringify","toJSON","JSON","stringify","includeSelf","res","ancestor","sel","selectorArr","isValidSelector","hasName","_getStage","eventType","bubble","_getAbsoluteTransform","at","transformsEnabled","multiply","getTransform","_getAbsoluteScale","_getTransform","skew","allListeners","listener","box","toCanvas","toImage","_urlToImage","getSize","getDragDistance","evtName","evtListeners","setId","oldId","_addId","setName","oldNames","newNames","addName","oldName","newName","fullName","removeName","_setComponentAttr","compareShape","stopBubble","_createDragElement","ap","newNodePos","dbf","dragBoundFunc","bounded","setDraggable","_dragChange","_listenDrag","_dragCleanup","hasDraggingChild","parse","_createNode","Class","rotateDeg","setRotationDeg","getRotationDeg","trimRight","checkDefaultFill","_partialTextX","_partialTextY","lineHeightPx","lineHeight","textArr","textArrLen","verticalAlign","alignY","totalWidth","shouldUnderline","shouldLineThrough","translateY","lineTranslateX","lineTranslateY","oneWord","lastLine","li","letter","_partialText","measureSize","fontStyle","fontFamily","fontVariant","_addTextLine","line","trim","_getTextWidth","lines","fixedWidth","fixedHeight","maxWidth","maxHeightPx","currentHeightPx","wrap","shouldWrap","wrapAtWord","shouldAddEllipsis","ellipsis","additionalWidth","low","high","matchWidth","mid","substr","substrWidth","wrapIndex","nextChar","lastIndexOf","trimLeft","getStrokeScaleEnabled","ReactKonvaCore","topRight","bottomLeft","zIndexWarningShowed","Z_INDEX_WARNING","dragWarningShowed","hasPosition","hasEvents","onDragEnd","onDragMove","DRAGGABLE_WARNING","propsToSkip","isEvent","propChanged","toUpperCase","toRemove","strictUpdate","_useStrictMode","updatedProps","hasUpdates","toAdd","unstable_applyCache","unstable_applyDrawHitFromCache","drawingNode","brightness","Captures","SUPPORT_POINTER_EVENTS","PointerEvent","clockwise","isClosed","cx","cy","psi","fs","inc","isNaN","getLength","getPointAtLength","ii","cp","y1","x2","y2","dist","P1x","P1y","P2x","P2y","fromX","fromY","run","pt","rise","ix","iy","pRise","pRun","pct","P3x","P3y","P4x","P4y","CB1","CB2","CB3","CB4","QB1","QB2","QB3","cosPsi","sinPsi","cs","RegExp","coords","cpx","cpy","jlen","parsed","parseFloat","prevCmd","ctlPtx","ctlPty","cmd","startX","startY","shift","idx","convertEndpointToCenterParameterization","calcLength","p2","path","psiDeg","xp","yp","lambda","cxp","cyp","vMag","vRatio","vAngle","acos","luminance","pixelAt","idata","rgbDistance","mask","rgbv_no","rgbv_ne","rgbv_so","rgbv_se","thres","mean","pTab","rgbMean","backgroundMask","applyMask","sw","sh","weights","side","halfSide","maskResult","so","scy","scx","wt","smoothEdgeMask","dilateMask","erodeMask","getAngleDeg","setAngleDeg","collection","_mapMethod","methodName","prot","sx","sy","m11","m12","m21","m22","matrix","m0","m1","m2","m3","m4","m5","yt","xt","PI_OVER_DEG180","DEG180_OVER_PI","COLORS","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","transparent","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","RGB_REGEX","animQueue","_isElement","isFinite","firstChar","number","el","_simplifyArray","util","imageObj","hex","bigint","randColor","getRGB","color","rgb","_namedColorToRBA","_hex3ColorToRGBA","_hex6ColorToRGBA","_rgbColorToRGBA","_rgbaColorToRGBA","_hslColorToRGBA","Number","hsl","t2","t3","t1","haveIntersection","r1","r2","retObj","cloneArray","deg","extend","Ctor","oldProto","__super__","super","x0","y0","d01","d12","allPoints","right","_getProjectionToSegment","x3","y3","pd2","_getProjectionToLine","MAX_VALUE","proj","px","py","pdist","startArray","endArray","temp","newStart","pr","desc","visitedByCircularReferenceRemoval","getOwnPropertyDescriptor","iconAndContact","icon","contact","useStyles","makeStyles","theme","titleContainer","fontWeight","textTransform","underLineTitle","borderBottom","containerLeft","textAlign","itemInLeft","marginTop","minHeight","alignItems","companyName","iconStyle","wathcing","backgroundColor","textField","marginLeft","spacing","marginRight","textFieldCaptCha","label","itemInRight","linkColor","transition","captchaContainer","justifyContent","buttonSubmit","refreshCaptcha","renderIconAndContact","classes","Grid","xs","original","alt","index2","link","href","rel","randomNoFiveDigit","popupStatus","async","status","Swal","ContactUs","email","setEmail","setMobile","setTitle","textMessage","setTextMessage","captchaInput","setCaptchaInput","randomNo","reRandom","Layout","page","showContactUs","SEO","description","itemContainer","htmlFor","TextField","variant","multiline","minRows","onClick","Button","tel","detail","emailValidation","mobileValidation","ContactUsStore","saveContactUs","_onSubmit","_updated","updated","frameIndex","clearInterval","interval","_setInterval","animation","ix4","offsets","frameOffsets","ix2","fillShape","setInterval","_updateIndex","getIndex","setIndex","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","port2","port1","onmessage","postMessage","pop","sortIndex","R","startTime","priorityLevel","delay","unstable_wrapCallback","unstable_continueExecution","unstable_pauseExecution","unstable_getFirstCallbackNode","unstable_Profiling","amount","noise","half","remap","fromValue","fromMin","fromMax","toMin","toMax","fromRange","toRange","nSubPixels","rMin","gMin","gMax","bMin","bMax","enhanceAmount","enhance","rMid","rGoalMax","rGoalMin","gMid","gGoalMax","gGoalMin","bMid","bGoalMax","bGoalMin","BlurStack","mul_table","shg_table","yi","yw","r_sum","g_sum","b_sum","a_sum","r_out_sum","g_out_sum","b_out_sum","a_out_sum","r_in_sum","g_in_sum","b_in_sum","a_in_sum","rbs","pixels","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","stackEnd","stackIn","stackOut","mul_sum","shg_sum","filterGaussBlurRGBA","PIx2","adjust","contrast","CONTEXT_METHODS","traceArr","_enableTrace","_fill","_stroke","getTrace","relaxed","trace","property","clearTrace","_trace","setTransform","clearRect","_applyLineCap","lineCap","getLineCap","lineJoin","getLineJoin","a0","a1","a2","a3","a4","a5","arcTo","createImageData","a6","a7","a8","ellipse","isPointInPath","strokeRect","getLineDash","origSetter","origMethod","getGlobalCompositeOperation","_fillColor","_fillPattern","fillPatternX","getFillPatternX","fillPatternY","getFillPatternY","fillPatternRotation","getFillPatternRotation","fillPatternOffsetX","getFillPatternOffsetX","fillPatternOffsetY","getFillPatternOffsetY","fillPatternScaleX","getFillPatternScaleX","fillPatternScaleY","getFillPatternScaleY","_fillLinearGradient","_fillRadialGradient","hasColor","fillPriority","getFillPriority","hasPattern","getFillPatternImage","hasLinearGradient","getFillLinearGradientColorStops","hasRadialGradient","getFillRadialGradientColorStops","_strokeLinearGradient","getStrokeLinearGradientStartPoint","getStrokeLinearGradientEndPoint","getStrokeLinearGradientColorStops","strokeScaleEnabled","dashOffset","getShadowForStrokeEnabled","blur","getShadowBlur","getShadowOffset"],"mappings":"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IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnwCC,EAAY,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GA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","file":"component---src-pages-contact-us-index-js-03953e041105f68b38b9.js","sourcesContent":["/** @license React v0.24.0\n * react-reconciler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nmodule.exports = function $$$reconciler($$$hostConfig) {\n 'use strict';\n\n var aa = require(\"object-assign\"),\n ba = require(\"react\"),\n m = require(\"scheduler\");\n function n(a) {\n for (var b = \"https://reactjs.org/docs/error-decoder.html?invariant=\" + a, c = 1; c < arguments.length; c++) b += \"&args[]=\" + encodeURIComponent(arguments[c]);\n return \"Minified React error #\" + a + \"; visit \" + b + \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\";\n }\n var q = ba.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n q.hasOwnProperty(\"ReactCurrentDispatcher\") || (q.ReactCurrentDispatcher = {\n current: null\n });\n q.hasOwnProperty(\"ReactCurrentBatchConfig\") || (q.ReactCurrentBatchConfig = {\n suspense: null\n });\n var u = \"function\" === typeof Symbol && Symbol.for,\n ca = u ? Symbol.for(\"react.element\") : 60103,\n da = u ? Symbol.for(\"react.portal\") : 60106,\n ea = u ? Symbol.for(\"react.fragment\") : 60107,\n fa = u ? Symbol.for(\"react.strict_mode\") : 60108,\n ha = u ? Symbol.for(\"react.profiler\") : 60114,\n ia = u ? Symbol.for(\"react.provider\") : 60109,\n ja = u ? Symbol.for(\"react.context\") : 60110,\n ka = u ? Symbol.for(\"react.concurrent_mode\") : 60111,\n la = u ? Symbol.for(\"react.forward_ref\") : 60112,\n ma = u ? Symbol.for(\"react.suspense\") : 60113,\n na = u ? Symbol.for(\"react.suspense_list\") : 60120,\n oa = u ? Symbol.for(\"react.memo\") : 60115,\n pa = u ? Symbol.for(\"react.lazy\") : 60116;\n u && Symbol.for(\"react.fundamental\");\n u && Symbol.for(\"react.responder\");\n u && Symbol.for(\"react.scope\");\n var qa = \"function\" === typeof Symbol && Symbol.iterator;\n function ra(a) {\n if (null === a || \"object\" !== typeof a) return null;\n a = qa && a[qa] || a[\"@@iterator\"];\n return \"function\" === typeof a ? a : null;\n }\n function sa(a) {\n if (-1 === a._status) {\n a._status = 0;\n var b = a._ctor;\n b = b();\n a._result = b;\n b.then(function (b) {\n 0 === a._status && (b = b.default, a._status = 1, a._result = b);\n }, function (b) {\n 0 === a._status && (a._status = 2, a._result = b);\n });\n }\n }\n function ta(a) {\n if (null == a) return null;\n if (\"function\" === typeof a) return a.displayName || a.name || null;\n if (\"string\" === typeof a) return a;\n switch (a) {\n case ea:\n return \"Fragment\";\n case da:\n return \"Portal\";\n case ha:\n return \"Profiler\";\n case fa:\n return \"StrictMode\";\n case ma:\n return \"Suspense\";\n case na:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof a) switch (a.$$typeof) {\n case ja:\n return \"Context.Consumer\";\n case ia:\n return \"Context.Provider\";\n case la:\n var b = a.render;\n b = b.displayName || b.name || \"\";\n return a.displayName || (\"\" !== b ? \"ForwardRef(\" + b + \")\" : \"ForwardRef\");\n case oa:\n return ta(a.type);\n case pa:\n if (a = 1 === a._status ? a._result : null) return ta(a);\n }\n return null;\n }\n function ua(a) {\n var b = a,\n c = a;\n if (a.alternate) for (; b.return;) b = b.return;else {\n a = b;\n do b = a, 0 !== (b.effectTag & 1026) && (c = b.return), a = b.return; while (a);\n }\n return 3 === b.tag ? c : null;\n }\n function va(a) {\n if (ua(a) !== a) throw Error(n(188));\n }\n function wa(a) {\n var b = a.alternate;\n if (!b) {\n b = ua(a);\n if (null === b) throw Error(n(188));\n return b !== a ? null : a;\n }\n for (var c = a, d = b;;) {\n var e = c.return;\n if (null === e) break;\n var f = e.alternate;\n if (null === f) {\n d = e.return;\n if (null !== d) {\n c = d;\n continue;\n }\n break;\n }\n if (e.child === f.child) {\n for (f = e.child; f;) {\n if (f === c) return va(e), a;\n if (f === d) return va(e), b;\n f = f.sibling;\n }\n throw Error(n(188));\n }\n if (c.return !== d.return) c = e, d = f;else {\n for (var g = !1, l = e.child; l;) {\n if (l === c) {\n g = !0;\n c = e;\n d = f;\n break;\n }\n if (l === d) {\n g = !0;\n d = e;\n c = f;\n break;\n }\n l = l.sibling;\n }\n if (!g) {\n for (l = f.child; l;) {\n if (l === c) {\n g = !0;\n c = f;\n d = e;\n break;\n }\n if (l === d) {\n g = !0;\n d = f;\n c = e;\n break;\n }\n l = l.sibling;\n }\n if (!g) throw Error(n(189));\n }\n }\n if (c.alternate !== d) throw Error(n(190));\n }\n if (3 !== c.tag) throw Error(n(188));\n return c.stateNode.current === c ? a : b;\n }\n function xa(a) {\n a = wa(a);\n if (!a) return null;\n for (var b = a;;) {\n if (5 === b.tag || 6 === b.tag) return b;\n if (b.child) b.child.return = b, b = b.child;else {\n if (b === a) break;\n for (; !b.sibling;) {\n if (!b.return || b.return === a) return null;\n b = b.return;\n }\n b.sibling.return = b.return;\n b = b.sibling;\n }\n }\n return null;\n }\n function ya(a) {\n a = wa(a);\n if (!a) return null;\n for (var b = a;;) {\n if (5 === b.tag || 6 === b.tag) return b;\n if (b.child && 4 !== b.tag) b.child.return = b, b = b.child;else {\n if (b === a) break;\n for (; !b.sibling;) {\n if (!b.return || b.return === a) return null;\n b = b.return;\n }\n b.sibling.return = b.return;\n b = b.sibling;\n }\n }\n return null;\n }\n var za = $$$hostConfig.getPublicInstance,\n Aa = $$$hostConfig.getRootHostContext,\n Ba = $$$hostConfig.getChildHostContext,\n Ca = $$$hostConfig.prepareForCommit,\n Da = $$$hostConfig.resetAfterCommit,\n Ea = $$$hostConfig.createInstance,\n Fa = $$$hostConfig.appendInitialChild,\n Ga = $$$hostConfig.finalizeInitialChildren,\n Ia = $$$hostConfig.prepareUpdate,\n Ja = $$$hostConfig.shouldSetTextContent,\n Ka = $$$hostConfig.shouldDeprioritizeSubtree,\n La = $$$hostConfig.createTextInstance,\n Ma = $$$hostConfig.setTimeout,\n Na = $$$hostConfig.clearTimeout,\n Oa = $$$hostConfig.noTimeout,\n Pa = $$$hostConfig.isPrimaryRenderer,\n Qa = $$$hostConfig.supportsMutation,\n Ra = $$$hostConfig.supportsPersistence,\n Sa = $$$hostConfig.supportsHydration,\n Ta = $$$hostConfig.appendChild,\n Ua = $$$hostConfig.appendChildToContainer,\n Va = $$$hostConfig.commitTextUpdate,\n Wa = $$$hostConfig.commitMount,\n Xa = $$$hostConfig.commitUpdate,\n Ya = $$$hostConfig.insertBefore,\n Za = $$$hostConfig.insertInContainerBefore,\n $a = $$$hostConfig.removeChild,\n ab = $$$hostConfig.removeChildFromContainer,\n bb = $$$hostConfig.resetTextContent,\n cb = $$$hostConfig.hideInstance,\n db = $$$hostConfig.hideTextInstance,\n eb = $$$hostConfig.unhideInstance,\n fb = $$$hostConfig.unhideTextInstance,\n gb = $$$hostConfig.cloneInstance,\n hb = $$$hostConfig.createContainerChildSet,\n ib = $$$hostConfig.appendChildToContainerChildSet,\n kb = $$$hostConfig.finalizeContainerChildren,\n lb = $$$hostConfig.replaceContainerChildren,\n mb = $$$hostConfig.cloneHiddenInstance,\n nb = $$$hostConfig.cloneHiddenTextInstance,\n ob = $$$hostConfig.canHydrateInstance,\n pb = $$$hostConfig.canHydrateTextInstance,\n qb = $$$hostConfig.isSuspenseInstancePending,\n rb = $$$hostConfig.isSuspenseInstanceFallback,\n sb = $$$hostConfig.getNextHydratableSibling,\n tb = $$$hostConfig.getFirstHydratableChild,\n ub = $$$hostConfig.hydrateInstance,\n vb = $$$hostConfig.hydrateTextInstance,\n wb = $$$hostConfig.getNextHydratableInstanceAfterSuspenseInstance,\n xb = $$$hostConfig.commitHydratedContainer,\n yb = $$$hostConfig.commitHydratedSuspenseInstance,\n zb = /^(.*)[\\\\\\/]/;\n function Ab(a) {\n var b = \"\";\n do {\n a: switch (a.tag) {\n case 3:\n case 4:\n case 6:\n case 7:\n case 10:\n case 9:\n var c = \"\";\n break a;\n default:\n var d = a._debugOwner,\n e = a._debugSource,\n f = ta(a.type);\n c = null;\n d && (c = ta(d.type));\n d = f;\n f = \"\";\n e ? f = \" (at \" + e.fileName.replace(zb, \"\") + \":\" + e.lineNumber + \")\" : c && (f = \" (created by \" + c + \")\");\n c = \"\\n in \" + (d || \"Unknown\") + f;\n }\n b += c;\n a = a.return;\n } while (a);\n return b;\n }\n new Set();\n var Bb = [],\n Cb = -1;\n function y(a) {\n 0 > Cb || (a.current = Bb[Cb], Bb[Cb] = null, Cb--);\n }\n function z(a, b) {\n Cb++;\n Bb[Cb] = a.current;\n a.current = b;\n }\n var Db = {},\n A = {\n current: Db\n },\n B = {\n current: !1\n },\n Eb = Db;\n function Fb(a, b) {\n var c = a.type.contextTypes;\n if (!c) return Db;\n var d = a.stateNode;\n if (d && d.__reactInternalMemoizedUnmaskedChildContext === b) return d.__reactInternalMemoizedMaskedChildContext;\n var e = {},\n f;\n for (f in c) e[f] = b[f];\n d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = b, a.__reactInternalMemoizedMaskedChildContext = e);\n return e;\n }\n function C(a) {\n a = a.childContextTypes;\n return null !== a && void 0 !== a;\n }\n function Gb(a) {\n y(B, a);\n y(A, a);\n }\n function Hb(a) {\n y(B, a);\n y(A, a);\n }\n function Ib(a, b, c) {\n if (A.current !== Db) throw Error(n(168));\n z(A, b, a);\n z(B, c, a);\n }\n function Jb(a, b, c) {\n var d = a.stateNode;\n a = b.childContextTypes;\n if (\"function\" !== typeof d.getChildContext) return c;\n d = d.getChildContext();\n for (var e in d) if (!(e in a)) throw Error(n(108, ta(b) || \"Unknown\", e));\n return aa({}, c, {}, d);\n }\n function Kb(a) {\n var b = a.stateNode;\n b = b && b.__reactInternalMemoizedMergedChildContext || Db;\n Eb = A.current;\n z(A, b, a);\n z(B, B.current, a);\n return !0;\n }\n function Lb(a, b, c) {\n var d = a.stateNode;\n if (!d) throw Error(n(169));\n c ? (b = Jb(a, b, Eb), d.__reactInternalMemoizedMergedChildContext = b, y(B, a), y(A, a), z(A, b, a)) : y(B, a);\n z(B, c, a);\n }\n var Mb = m.unstable_runWithPriority,\n Nb = m.unstable_scheduleCallback,\n Ob = m.unstable_cancelCallback,\n Pb = m.unstable_shouldYield,\n Qb = m.unstable_requestPaint,\n Rb = m.unstable_now,\n Ub = m.unstable_getCurrentPriorityLevel,\n Vb = m.unstable_ImmediatePriority,\n Wb = m.unstable_UserBlockingPriority,\n Xb = m.unstable_NormalPriority,\n Yb = m.unstable_LowPriority,\n Zb = m.unstable_IdlePriority,\n $b = {},\n ac = void 0 !== Qb ? Qb : function () {},\n bc = null,\n cc = null,\n dc = !1,\n ec = Rb(),\n E = 1E4 > ec ? Rb : function () {\n return Rb() - ec;\n };\n function fc() {\n switch (Ub()) {\n case Vb:\n return 99;\n case Wb:\n return 98;\n case Xb:\n return 97;\n case Yb:\n return 96;\n case Zb:\n return 95;\n default:\n throw Error(n(332));\n }\n }\n function gc(a) {\n switch (a) {\n case 99:\n return Vb;\n case 98:\n return Wb;\n case 97:\n return Xb;\n case 96:\n return Yb;\n case 95:\n return Zb;\n default:\n throw Error(n(332));\n }\n }\n function hc(a, b) {\n a = gc(a);\n return Mb(a, b);\n }\n function ic(a, b, c) {\n a = gc(a);\n return Nb(a, b, c);\n }\n function jc(a) {\n null === bc ? (bc = [a], cc = Nb(Vb, kc)) : bc.push(a);\n return $b;\n }\n function F() {\n if (null !== cc) {\n var a = cc;\n cc = null;\n Ob(a);\n }\n kc();\n }\n function kc() {\n if (!dc && null !== bc) {\n dc = !0;\n var a = 0;\n try {\n var b = bc;\n hc(99, function () {\n for (; a < b.length; a++) {\n var c = b[a];\n do c = c(!0); while (null !== c);\n }\n });\n bc = null;\n } catch (c) {\n throw null !== bc && (bc = bc.slice(a + 1)), Nb(Vb, F), c;\n } finally {\n dc = !1;\n }\n }\n }\n var lc = 3;\n function mc(a, b, c) {\n c /= 10;\n return 1073741821 - (((1073741821 - a + b / 10) / c | 0) + 1) * c;\n }\n function nc(a, b) {\n return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;\n }\n var oc = \"function\" === typeof Object.is ? Object.is : nc,\n pc = Object.prototype.hasOwnProperty;\n function qc(a, b) {\n if (oc(a, b)) return !0;\n if (\"object\" !== typeof a || null === a || \"object\" !== typeof b || null === b) return !1;\n var c = Object.keys(a),\n d = Object.keys(b);\n if (c.length !== d.length) return !1;\n for (d = 0; d < c.length; d++) if (!pc.call(b, c[d]) || !oc(a[c[d]], b[c[d]])) return !1;\n return !0;\n }\n function rc(a, b) {\n if (a && a.defaultProps) {\n b = aa({}, b);\n a = a.defaultProps;\n for (var c in a) void 0 === b[c] && (b[c] = a[c]);\n }\n return b;\n }\n var sc = {\n current: null\n },\n tc = null,\n uc = null,\n vc = null;\n function wc() {\n vc = uc = tc = null;\n }\n function xc(a, b) {\n var c = a.type._context;\n Pa ? (z(sc, c._currentValue, a), c._currentValue = b) : (z(sc, c._currentValue2, a), c._currentValue2 = b);\n }\n function yc(a) {\n var b = sc.current;\n y(sc, a);\n a = a.type._context;\n Pa ? a._currentValue = b : a._currentValue2 = b;\n }\n function zc(a, b) {\n for (; null !== a;) {\n var c = a.alternate;\n if (a.childExpirationTime < b) a.childExpirationTime = b, null !== c && c.childExpirationTime < b && (c.childExpirationTime = b);else if (null !== c && c.childExpirationTime < b) c.childExpirationTime = b;else break;\n a = a.return;\n }\n }\n function Ac(a, b) {\n tc = a;\n vc = uc = null;\n a = a.dependencies;\n null !== a && null !== a.firstContext && (a.expirationTime >= b && (Bc = !0), a.firstContext = null);\n }\n function Cc(a, b) {\n if (vc !== a && !1 !== b && 0 !== b) {\n if (\"number\" !== typeof b || 1073741823 === b) vc = a, b = 1073741823;\n b = {\n context: a,\n observedBits: b,\n next: null\n };\n if (null === uc) {\n if (null === tc) throw Error(n(308));\n uc = b;\n tc.dependencies = {\n expirationTime: 0,\n firstContext: b,\n responders: null\n };\n } else uc = uc.next = b;\n }\n return Pa ? a._currentValue : a._currentValue2;\n }\n var Dc = !1;\n function Ec(a) {\n return {\n baseState: a,\n firstUpdate: null,\n lastUpdate: null,\n firstCapturedUpdate: null,\n lastCapturedUpdate: null,\n firstEffect: null,\n lastEffect: null,\n firstCapturedEffect: null,\n lastCapturedEffect: null\n };\n }\n function Fc(a) {\n return {\n baseState: a.baseState,\n firstUpdate: a.firstUpdate,\n lastUpdate: a.lastUpdate,\n firstCapturedUpdate: null,\n lastCapturedUpdate: null,\n firstEffect: null,\n lastEffect: null,\n firstCapturedEffect: null,\n lastCapturedEffect: null\n };\n }\n function Gc(a, b) {\n return {\n expirationTime: a,\n suspenseConfig: b,\n tag: 0,\n payload: null,\n callback: null,\n next: null,\n nextEffect: null\n };\n }\n function Hc(a, b) {\n null === a.lastUpdate ? a.firstUpdate = a.lastUpdate = b : (a.lastUpdate.next = b, a.lastUpdate = b);\n }\n function Ic(a, b) {\n var c = a.alternate;\n if (null === c) {\n var d = a.updateQueue;\n var e = null;\n null === d && (d = a.updateQueue = Ec(a.memoizedState));\n } else d = a.updateQueue, e = c.updateQueue, null === d ? null === e ? (d = a.updateQueue = Ec(a.memoizedState), e = c.updateQueue = Ec(c.memoizedState)) : d = a.updateQueue = Fc(e) : null === e && (e = c.updateQueue = Fc(d));\n null === e || d === e ? Hc(d, b) : null === d.lastUpdate || null === e.lastUpdate ? (Hc(d, b), Hc(e, b)) : (Hc(d, b), e.lastUpdate = b);\n }\n function Jc(a, b) {\n var c = a.updateQueue;\n c = null === c ? a.updateQueue = Ec(a.memoizedState) : Kc(a, c);\n null === c.lastCapturedUpdate ? c.firstCapturedUpdate = c.lastCapturedUpdate = b : (c.lastCapturedUpdate.next = b, c.lastCapturedUpdate = b);\n }\n function Kc(a, b) {\n var c = a.alternate;\n null !== c && b === c.updateQueue && (b = a.updateQueue = Fc(b));\n return b;\n }\n function Lc(a, b, c, d, e, f) {\n switch (c.tag) {\n case 1:\n return a = c.payload, \"function\" === typeof a ? a.call(f, d, e) : a;\n case 3:\n a.effectTag = a.effectTag & -4097 | 64;\n case 0:\n a = c.payload;\n e = \"function\" === typeof a ? a.call(f, d, e) : a;\n if (null === e || void 0 === e) break;\n return aa({}, d, e);\n case 2:\n Dc = !0;\n }\n return d;\n }\n function Nc(a, b, c, d, e) {\n Dc = !1;\n b = Kc(a, b);\n for (var f = b.baseState, g = null, l = 0, h = b.firstUpdate, k = f; null !== h;) {\n var p = h.expirationTime;\n p < e ? (null === g && (g = h, f = k), l < p && (l = p)) : (Oc(p, h.suspenseConfig), k = Lc(a, b, h, k, c, d), null !== h.callback && (a.effectTag |= 32, h.nextEffect = null, null === b.lastEffect ? b.firstEffect = b.lastEffect = h : (b.lastEffect.nextEffect = h, b.lastEffect = h)));\n h = h.next;\n }\n p = null;\n for (h = b.firstCapturedUpdate; null !== h;) {\n var D = h.expirationTime;\n D < e ? (null === p && (p = h, null === g && (f = k)), l < D && (l = D)) : (k = Lc(a, b, h, k, c, d), null !== h.callback && (a.effectTag |= 32, h.nextEffect = null, null === b.lastCapturedEffect ? b.firstCapturedEffect = b.lastCapturedEffect = h : (b.lastCapturedEffect.nextEffect = h, b.lastCapturedEffect = h)));\n h = h.next;\n }\n null === g && (b.lastUpdate = null);\n null === p ? b.lastCapturedUpdate = null : a.effectTag |= 32;\n null === g && null === p && (f = k);\n b.baseState = f;\n b.firstUpdate = g;\n b.firstCapturedUpdate = p;\n Pc(l);\n a.expirationTime = l;\n a.memoizedState = k;\n }\n function Qc(a, b, c) {\n null !== b.firstCapturedUpdate && (null !== b.lastUpdate && (b.lastUpdate.next = b.firstCapturedUpdate, b.lastUpdate = b.lastCapturedUpdate), b.firstCapturedUpdate = b.lastCapturedUpdate = null);\n Rc(b.firstEffect, c);\n b.firstEffect = b.lastEffect = null;\n Rc(b.firstCapturedEffect, c);\n b.firstCapturedEffect = b.lastCapturedEffect = null;\n }\n function Rc(a, b) {\n for (; null !== a;) {\n var c = a.callback;\n if (null !== c) {\n a.callback = null;\n var d = b;\n if (\"function\" !== typeof c) throw Error(n(191, c));\n c.call(d);\n }\n a = a.nextEffect;\n }\n }\n var Sc = q.ReactCurrentBatchConfig,\n Tc = new ba.Component().refs;\n function Uc(a, b, c, d) {\n b = a.memoizedState;\n c = c(d, b);\n c = null === c || void 0 === c ? b : aa({}, b, c);\n a.memoizedState = c;\n d = a.updateQueue;\n null !== d && 0 === a.expirationTime && (d.baseState = c);\n }\n var Xc = {\n isMounted: function (a) {\n return (a = a._reactInternalFiber) ? ua(a) === a : !1;\n },\n enqueueSetState: function (a, b, c) {\n a = a._reactInternalFiber;\n var d = G(),\n e = Sc.suspense;\n d = Vc(d, a, e);\n e = Gc(d, e);\n e.payload = b;\n void 0 !== c && null !== c && (e.callback = c);\n Ic(a, e);\n Wc(a, d);\n },\n enqueueReplaceState: function (a, b, c) {\n a = a._reactInternalFiber;\n var d = G(),\n e = Sc.suspense;\n d = Vc(d, a, e);\n e = Gc(d, e);\n e.tag = 1;\n e.payload = b;\n void 0 !== c && null !== c && (e.callback = c);\n Ic(a, e);\n Wc(a, d);\n },\n enqueueForceUpdate: function (a, b) {\n a = a._reactInternalFiber;\n var c = G(),\n d = Sc.suspense;\n c = Vc(c, a, d);\n d = Gc(c, d);\n d.tag = 2;\n void 0 !== b && null !== b && (d.callback = b);\n Ic(a, d);\n Wc(a, c);\n }\n };\n function Yc(a, b, c, d, e, f, g) {\n a = a.stateNode;\n return \"function\" === typeof a.shouldComponentUpdate ? a.shouldComponentUpdate(d, f, g) : b.prototype && b.prototype.isPureReactComponent ? !qc(c, d) || !qc(e, f) : !0;\n }\n function Zc(a, b, c) {\n var d = !1,\n e = Db;\n var f = b.contextType;\n \"object\" === typeof f && null !== f ? f = Cc(f) : (e = C(b) ? Eb : A.current, d = b.contextTypes, f = (d = null !== d && void 0 !== d) ? Fb(a, e) : Db);\n b = new b(c, f);\n a.memoizedState = null !== b.state && void 0 !== b.state ? b.state : null;\n b.updater = Xc;\n a.stateNode = b;\n b._reactInternalFiber = a;\n d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = e, a.__reactInternalMemoizedMaskedChildContext = f);\n return b;\n }\n function $c(a, b, c, d) {\n a = b.state;\n \"function\" === typeof b.componentWillReceiveProps && b.componentWillReceiveProps(c, d);\n \"function\" === typeof b.UNSAFE_componentWillReceiveProps && b.UNSAFE_componentWillReceiveProps(c, d);\n b.state !== a && Xc.enqueueReplaceState(b, b.state, null);\n }\n function ad(a, b, c, d) {\n var e = a.stateNode;\n e.props = c;\n e.state = a.memoizedState;\n e.refs = Tc;\n var f = b.contextType;\n \"object\" === typeof f && null !== f ? e.context = Cc(f) : (f = C(b) ? Eb : A.current, e.context = Fb(a, f));\n f = a.updateQueue;\n null !== f && (Nc(a, f, c, e, d), e.state = a.memoizedState);\n f = b.getDerivedStateFromProps;\n \"function\" === typeof f && (Uc(a, b, f, c), e.state = a.memoizedState);\n \"function\" === typeof b.getDerivedStateFromProps || \"function\" === typeof e.getSnapshotBeforeUpdate || \"function\" !== typeof e.UNSAFE_componentWillMount && \"function\" !== typeof e.componentWillMount || (b = e.state, \"function\" === typeof e.componentWillMount && e.componentWillMount(), \"function\" === typeof e.UNSAFE_componentWillMount && e.UNSAFE_componentWillMount(), b !== e.state && Xc.enqueueReplaceState(e, e.state, null), f = a.updateQueue, null !== f && (Nc(a, f, c, e, d), e.state = a.memoizedState));\n \"function\" === typeof e.componentDidMount && (a.effectTag |= 4);\n }\n var bd = Array.isArray;\n function cd(a, b, c) {\n a = c.ref;\n if (null !== a && \"function\" !== typeof a && \"object\" !== typeof a) {\n if (c._owner) {\n c = c._owner;\n if (c) {\n if (1 !== c.tag) throw Error(n(309));\n var d = c.stateNode;\n }\n if (!d) throw Error(n(147, a));\n var e = \"\" + a;\n if (null !== b && null !== b.ref && \"function\" === typeof b.ref && b.ref._stringRef === e) return b.ref;\n b = function (b) {\n var a = d.refs;\n a === Tc && (a = d.refs = {});\n null === b ? delete a[e] : a[e] = b;\n };\n b._stringRef = e;\n return b;\n }\n if (\"string\" !== typeof a) throw Error(n(284));\n if (!c._owner) throw Error(n(290, a));\n }\n return a;\n }\n function dd(a, b) {\n if (\"textarea\" !== a.type) throw Error(n(31, \"[object Object]\" === Object.prototype.toString.call(b) ? \"object with keys {\" + Object.keys(b).join(\", \") + \"}\" : b, \"\"));\n }\n function ed(a) {\n function b(b, c) {\n if (a) {\n var d = b.lastEffect;\n null !== d ? (d.nextEffect = c, b.lastEffect = c) : b.firstEffect = b.lastEffect = c;\n c.nextEffect = null;\n c.effectTag = 8;\n }\n }\n function c(c, d) {\n if (!a) return null;\n for (; null !== d;) b(c, d), d = d.sibling;\n return null;\n }\n function d(b, a) {\n for (b = new Map(); null !== a;) null !== a.key ? b.set(a.key, a) : b.set(a.index, a), a = a.sibling;\n return b;\n }\n function e(b, a, c) {\n b = fd(b, a, c);\n b.index = 0;\n b.sibling = null;\n return b;\n }\n function f(b, c, d) {\n b.index = d;\n if (!a) return c;\n d = b.alternate;\n if (null !== d) return d = d.index, d < c ? (b.effectTag = 2, c) : d;\n b.effectTag = 2;\n return c;\n }\n function g(b) {\n a && null === b.alternate && (b.effectTag = 2);\n return b;\n }\n function l(b, a, c, d) {\n if (null === a || 6 !== a.tag) return a = gd(c, b.mode, d), a.return = b, a;\n a = e(a, c, d);\n a.return = b;\n return a;\n }\n function h(b, a, c, d) {\n if (null !== a && a.elementType === c.type) return d = e(a, c.props, d), d.ref = cd(b, a, c), d.return = b, d;\n d = hd(c.type, c.key, c.props, null, b.mode, d);\n d.ref = cd(b, a, c);\n d.return = b;\n return d;\n }\n function k(b, a, c, d) {\n if (null === a || 4 !== a.tag || a.stateNode.containerInfo !== c.containerInfo || a.stateNode.implementation !== c.implementation) return a = id(c, b.mode, d), a.return = b, a;\n a = e(a, c.children || [], d);\n a.return = b;\n return a;\n }\n function p(b, a, c, d, f) {\n if (null === a || 7 !== a.tag) return a = jd(c, b.mode, d, f), a.return = b, a;\n a = e(a, c, d);\n a.return = b;\n return a;\n }\n function D(b, a, c) {\n if (\"string\" === typeof a || \"number\" === typeof a) return a = gd(\"\" + a, b.mode, c), a.return = b, a;\n if (\"object\" === typeof a && null !== a) {\n switch (a.$$typeof) {\n case ca:\n return c = hd(a.type, a.key, a.props, null, b.mode, c), c.ref = cd(b, null, a), c.return = b, c;\n case da:\n return a = id(a, b.mode, c), a.return = b, a;\n }\n if (bd(a) || ra(a)) return a = jd(a, b.mode, c, null), a.return = b, a;\n dd(b, a);\n }\n return null;\n }\n function x(b, a, c, d) {\n var e = null !== a ? a.key : null;\n if (\"string\" === typeof c || \"number\" === typeof c) return null !== e ? null : l(b, a, \"\" + c, d);\n if (\"object\" === typeof c && null !== c) {\n switch (c.$$typeof) {\n case ca:\n return c.key === e ? c.type === ea ? p(b, a, c.props.children, d, e) : h(b, a, c, d) : null;\n case da:\n return c.key === e ? k(b, a, c, d) : null;\n }\n if (bd(c) || ra(c)) return null !== e ? null : p(b, a, c, d, null);\n dd(b, c);\n }\n return null;\n }\n function K(b, a, c, d, e) {\n if (\"string\" === typeof d || \"number\" === typeof d) return b = b.get(c) || null, l(a, b, \"\" + d, e);\n if (\"object\" === typeof d && null !== d) {\n switch (d.$$typeof) {\n case ca:\n return b = b.get(null === d.key ? c : d.key) || null, d.type === ea ? p(a, b, d.props.children, e, d.key) : h(a, b, d, e);\n case da:\n return b = b.get(null === d.key ? c : d.key) || null, k(a, b, d, e);\n }\n if (bd(d) || ra(d)) return b = b.get(c) || null, p(a, b, d, e, null);\n dd(a, d);\n }\n return null;\n }\n function Ha(e, g, h, l) {\n for (var k = null, w = null, t = g, r = g = 0, p = null; null !== t && r < h.length; r++) {\n t.index > r ? (p = t, t = null) : p = t.sibling;\n var v = x(e, t, h[r], l);\n if (null === v) {\n null === t && (t = p);\n break;\n }\n a && t && null === v.alternate && b(e, t);\n g = f(v, g, r);\n null === w ? k = v : w.sibling = v;\n w = v;\n t = p;\n }\n if (r === h.length) return c(e, t), k;\n if (null === t) {\n for (; r < h.length; r++) t = D(e, h[r], l), null !== t && (g = f(t, g, r), null === w ? k = t : w.sibling = t, w = t);\n return k;\n }\n for (t = d(e, t); r < h.length; r++) p = K(t, e, r, h[r], l), null !== p && (a && null !== p.alternate && t.delete(null === p.key ? r : p.key), g = f(p, g, r), null === w ? k = p : w.sibling = p, w = p);\n a && t.forEach(function (a) {\n return b(e, a);\n });\n return k;\n }\n function O(e, g, h, l) {\n var k = ra(h);\n if (\"function\" !== typeof k) throw Error(n(150));\n h = k.call(h);\n if (null == h) throw Error(n(151));\n for (var t = k = null, r = g, w = g = 0, p = null, v = h.next(); null !== r && !v.done; w++, v = h.next()) {\n r.index > w ? (p = r, r = null) : p = r.sibling;\n var N = x(e, r, v.value, l);\n if (null === N) {\n null === r && (r = p);\n break;\n }\n a && r && null === N.alternate && b(e, r);\n g = f(N, g, w);\n null === t ? k = N : t.sibling = N;\n t = N;\n r = p;\n }\n if (v.done) return c(e, r), k;\n if (null === r) {\n for (; !v.done; w++, v = h.next()) v = D(e, v.value, l), null !== v && (g = f(v, g, w), null === t ? k = v : t.sibling = v, t = v);\n return k;\n }\n for (r = d(e, r); !v.done; w++, v = h.next()) v = K(r, e, w, v.value, l), null !== v && (a && null !== v.alternate && r.delete(null === v.key ? w : v.key), g = f(v, g, w), null === t ? k = v : t.sibling = v, t = v);\n a && r.forEach(function (a) {\n return b(e, a);\n });\n return k;\n }\n return function (a, d, f, h) {\n var k = \"object\" === typeof f && null !== f && f.type === ea && null === f.key;\n k && (f = f.props.children);\n var l = \"object\" === typeof f && null !== f;\n if (l) switch (f.$$typeof) {\n case ca:\n a: {\n l = f.key;\n for (k = d; null !== k;) {\n if (k.key === l) {\n if (7 === k.tag ? f.type === ea : k.elementType === f.type) {\n c(a, k.sibling);\n d = e(k, f.type === ea ? f.props.children : f.props, h);\n d.ref = cd(a, k, f);\n d.return = a;\n a = d;\n break a;\n } else {\n c(a, k);\n break;\n }\n } else b(a, k);\n k = k.sibling;\n }\n f.type === ea ? (d = jd(f.props.children, a.mode, h, f.key), d.return = a, a = d) : (h = hd(f.type, f.key, f.props, null, a.mode, h), h.ref = cd(a, d, f), h.return = a, a = h);\n }\n return g(a);\n case da:\n a: {\n for (k = f.key; null !== d;) {\n if (d.key === k) {\n if (4 === d.tag && d.stateNode.containerInfo === f.containerInfo && d.stateNode.implementation === f.implementation) {\n c(a, d.sibling);\n d = e(d, f.children || [], h);\n d.return = a;\n a = d;\n break a;\n } else {\n c(a, d);\n break;\n }\n } else b(a, d);\n d = d.sibling;\n }\n d = id(f, a.mode, h);\n d.return = a;\n a = d;\n }\n return g(a);\n }\n if (\"string\" === typeof f || \"number\" === typeof f) return f = \"\" + f, null !== d && 6 === d.tag ? (c(a, d.sibling), d = e(d, f, h), d.return = a, a = d) : (c(a, d), d = gd(f, a.mode, h), d.return = a, a = d), g(a);\n if (bd(f)) return Ha(a, d, f, h);\n if (ra(f)) return O(a, d, f, h);\n l && dd(a, f);\n if (\"undefined\" === typeof f && !k) switch (a.tag) {\n case 1:\n case 0:\n throw a = a.type, Error(n(152, a.displayName || a.name || \"Component\"));\n }\n return c(a, d);\n };\n }\n var kd = ed(!0),\n ld = ed(!1),\n md = {},\n H = {\n current: md\n },\n nd = {\n current: md\n },\n od = {\n current: md\n };\n function pd(a) {\n if (a === md) throw Error(n(174));\n return a;\n }\n function qd(a, b) {\n z(od, b, a);\n z(nd, a, a);\n z(H, md, a);\n b = Aa(b);\n y(H, a);\n z(H, b, a);\n }\n function rd(a) {\n y(H, a);\n y(nd, a);\n y(od, a);\n }\n function sd(a) {\n var b = pd(od.current),\n c = pd(H.current);\n b = Ba(c, a.type, b);\n c !== b && (z(nd, a, a), z(H, b, a));\n }\n function td(a) {\n nd.current === a && (y(H, a), y(nd, a));\n }\n var I = {\n current: 0\n };\n function ud(a) {\n for (var b = a; null !== b;) {\n if (13 === b.tag) {\n var c = b.memoizedState;\n if (null !== c && (c = c.dehydrated, null === c || qb(c) || rb(c))) return b;\n } else if (19 === b.tag && void 0 !== b.memoizedProps.revealOrder) {\n if (0 !== (b.effectTag & 64)) return b;\n } else if (null !== b.child) {\n b.child.return = b;\n b = b.child;\n continue;\n }\n if (b === a) break;\n for (; null === b.sibling;) {\n if (null === b.return || b.return === a) return null;\n b = b.return;\n }\n b.sibling.return = b.return;\n b = b.sibling;\n }\n return null;\n }\n function vd(a, b) {\n return {\n responder: a,\n props: b\n };\n }\n var wd = q.ReactCurrentDispatcher,\n J = q.ReactCurrentBatchConfig,\n xd = 0,\n yd = null,\n L = null,\n zd = null,\n Ad = null,\n M = null,\n Bd = null,\n Cd = 0,\n Dd = null,\n Ed = 0,\n Fd = !1,\n Gd = null,\n Hd = 0;\n function P() {\n throw Error(n(321));\n }\n function Id(a, b) {\n if (null === b) return !1;\n for (var c = 0; c < b.length && c < a.length; c++) if (!oc(a[c], b[c])) return !1;\n return !0;\n }\n function Jd(a, b, c, d, e, f) {\n xd = f;\n yd = b;\n zd = null !== a ? a.memoizedState : null;\n wd.current = null === zd ? Kd : Ld;\n b = c(d, e);\n if (Fd) {\n do Fd = !1, Hd += 1, zd = null !== a ? a.memoizedState : null, Bd = Ad, Dd = M = L = null, wd.current = Ld, b = c(d, e); while (Fd);\n Gd = null;\n Hd = 0;\n }\n wd.current = Md;\n a = yd;\n a.memoizedState = Ad;\n a.expirationTime = Cd;\n a.updateQueue = Dd;\n a.effectTag |= Ed;\n a = null !== L && null !== L.next;\n xd = 0;\n Bd = M = Ad = zd = L = yd = null;\n Cd = 0;\n Dd = null;\n Ed = 0;\n if (a) throw Error(n(300));\n return b;\n }\n function Nd() {\n wd.current = Md;\n xd = 0;\n Bd = M = Ad = zd = L = yd = null;\n Cd = 0;\n Dd = null;\n Ed = 0;\n Fd = !1;\n Gd = null;\n Hd = 0;\n }\n function Od() {\n var a = {\n memoizedState: null,\n baseState: null,\n queue: null,\n baseUpdate: null,\n next: null\n };\n null === M ? Ad = M = a : M = M.next = a;\n return M;\n }\n function Pd() {\n if (null !== Bd) M = Bd, Bd = M.next, L = zd, zd = null !== L ? L.next : null;else {\n if (null === zd) throw Error(n(310));\n L = zd;\n var a = {\n memoizedState: L.memoizedState,\n baseState: L.baseState,\n queue: L.queue,\n baseUpdate: L.baseUpdate,\n next: null\n };\n M = null === M ? Ad = a : M.next = a;\n zd = L.next;\n }\n return M;\n }\n function Qd(a, b) {\n return \"function\" === typeof b ? b(a) : b;\n }\n function Rd(a) {\n var b = Pd(),\n c = b.queue;\n if (null === c) throw Error(n(311));\n c.lastRenderedReducer = a;\n if (0 < Hd) {\n var d = c.dispatch;\n if (null !== Gd) {\n var e = Gd.get(c);\n if (void 0 !== e) {\n Gd.delete(c);\n var f = b.memoizedState;\n do f = a(f, e.action), e = e.next; while (null !== e);\n oc(f, b.memoizedState) || (Bc = !0);\n b.memoizedState = f;\n b.baseUpdate === c.last && (b.baseState = f);\n c.lastRenderedState = f;\n return [f, d];\n }\n }\n return [b.memoizedState, d];\n }\n d = c.last;\n var g = b.baseUpdate;\n f = b.baseState;\n null !== g ? (null !== d && (d.next = null), d = g.next) : d = null !== d ? d.next : null;\n if (null !== d) {\n var l = e = null,\n h = d,\n k = !1;\n do {\n var p = h.expirationTime;\n p < xd ? (k || (k = !0, l = g, e = f), p > Cd && (Cd = p, Pc(Cd))) : (Oc(p, h.suspenseConfig), f = h.eagerReducer === a ? h.eagerState : a(f, h.action));\n g = h;\n h = h.next;\n } while (null !== h && h !== d);\n k || (l = g, e = f);\n oc(f, b.memoizedState) || (Bc = !0);\n b.memoizedState = f;\n b.baseUpdate = l;\n b.baseState = e;\n c.lastRenderedState = f;\n }\n return [b.memoizedState, c.dispatch];\n }\n function Sd(a) {\n var b = Od();\n \"function\" === typeof a && (a = a());\n b.memoizedState = b.baseState = a;\n a = b.queue = {\n last: null,\n dispatch: null,\n lastRenderedReducer: Qd,\n lastRenderedState: a\n };\n a = a.dispatch = Td.bind(null, yd, a);\n return [b.memoizedState, a];\n }\n function Ud(a) {\n return Rd(Qd, a);\n }\n function Vd(a, b, c, d) {\n a = {\n tag: a,\n create: b,\n destroy: c,\n deps: d,\n next: null\n };\n null === Dd ? (Dd = {\n lastEffect: null\n }, Dd.lastEffect = a.next = a) : (b = Dd.lastEffect, null === b ? Dd.lastEffect = a.next = a : (c = b.next, b.next = a, a.next = c, Dd.lastEffect = a));\n return a;\n }\n function Wd(a, b, c, d) {\n var e = Od();\n Ed |= a;\n e.memoizedState = Vd(b, c, void 0, void 0 === d ? null : d);\n }\n function Xd(a, b, c, d) {\n var e = Pd();\n d = void 0 === d ? null : d;\n var f = void 0;\n if (null !== L) {\n var g = L.memoizedState;\n f = g.destroy;\n if (null !== d && Id(d, g.deps)) {\n Vd(0, c, f, d);\n return;\n }\n }\n Ed |= a;\n e.memoizedState = Vd(b, c, f, d);\n }\n function Yd(a, b) {\n return Wd(516, 192, a, b);\n }\n function Zd(a, b) {\n return Xd(516, 192, a, b);\n }\n function $d(a, b) {\n if (\"function\" === typeof b) return a = a(), b(a), function () {\n b(null);\n };\n if (null !== b && void 0 !== b) return a = a(), b.current = a, function () {\n b.current = null;\n };\n }\n function ae() {}\n function be(a, b) {\n Od().memoizedState = [a, void 0 === b ? null : b];\n return a;\n }\n function ce(a, b) {\n var c = Pd();\n b = void 0 === b ? null : b;\n var d = c.memoizedState;\n if (null !== d && null !== b && Id(b, d[1])) return d[0];\n c.memoizedState = [a, b];\n return a;\n }\n function Td(a, b, c) {\n if (!(25 > Hd)) throw Error(n(301));\n var d = a.alternate;\n if (a === yd || null !== d && d === yd) {\n if (Fd = !0, a = {\n expirationTime: xd,\n suspenseConfig: null,\n action: c,\n eagerReducer: null,\n eagerState: null,\n next: null\n }, null === Gd && (Gd = new Map()), c = Gd.get(b), void 0 === c) Gd.set(b, a);else {\n for (b = c; null !== b.next;) b = b.next;\n b.next = a;\n }\n } else {\n var e = G(),\n f = Sc.suspense;\n e = Vc(e, a, f);\n f = {\n expirationTime: e,\n suspenseConfig: f,\n action: c,\n eagerReducer: null,\n eagerState: null,\n next: null\n };\n var g = b.last;\n if (null === g) f.next = f;else {\n var l = g.next;\n null !== l && (f.next = l);\n g.next = f;\n }\n b.last = f;\n if (0 === a.expirationTime && (null === d || 0 === d.expirationTime) && (d = b.lastRenderedReducer, null !== d)) try {\n var h = b.lastRenderedState,\n k = d(h, c);\n f.eagerReducer = d;\n f.eagerState = k;\n if (oc(k, h)) return;\n } catch (p) {} finally {}\n Wc(a, e);\n }\n }\n var Md = {\n readContext: Cc,\n useCallback: P,\n useContext: P,\n useEffect: P,\n useImperativeHandle: P,\n useLayoutEffect: P,\n useMemo: P,\n useReducer: P,\n useRef: P,\n useState: P,\n useDebugValue: P,\n useResponder: P,\n useDeferredValue: P,\n useTransition: P\n },\n Kd = {\n readContext: Cc,\n useCallback: be,\n useContext: Cc,\n useEffect: Yd,\n useImperativeHandle: function (a, b, c) {\n c = null !== c && void 0 !== c ? c.concat([a]) : null;\n return Wd(4, 36, $d.bind(null, b, a), c);\n },\n useLayoutEffect: function (a, b) {\n return Wd(4, 36, a, b);\n },\n useMemo: function (a, b) {\n var c = Od();\n b = void 0 === b ? null : b;\n a = a();\n c.memoizedState = [a, b];\n return a;\n },\n useReducer: function (a, b, c) {\n var d = Od();\n b = void 0 !== c ? c(b) : b;\n d.memoizedState = d.baseState = b;\n a = d.queue = {\n last: null,\n dispatch: null,\n lastRenderedReducer: a,\n lastRenderedState: b\n };\n a = a.dispatch = Td.bind(null, yd, a);\n return [d.memoizedState, a];\n },\n useRef: function (a) {\n var b = Od();\n a = {\n current: a\n };\n return b.memoizedState = a;\n },\n useState: Sd,\n useDebugValue: ae,\n useResponder: vd,\n useDeferredValue: function (a, b) {\n var c = Sd(a),\n d = c[0],\n e = c[1];\n Yd(function () {\n m.unstable_next(function () {\n var c = J.suspense;\n J.suspense = void 0 === b ? null : b;\n try {\n e(a);\n } finally {\n J.suspense = c;\n }\n });\n }, [a, b]);\n return d;\n },\n useTransition: function (a) {\n var b = Sd(!1),\n c = b[0],\n d = b[1];\n return [be(function (b) {\n d(!0);\n m.unstable_next(function () {\n var c = J.suspense;\n J.suspense = void 0 === a ? null : a;\n try {\n d(!1), b();\n } finally {\n J.suspense = c;\n }\n });\n }, [a, c]), c];\n }\n },\n Ld = {\n readContext: Cc,\n useCallback: ce,\n useContext: Cc,\n useEffect: Zd,\n useImperativeHandle: function (a, b, c) {\n c = null !== c && void 0 !== c ? c.concat([a]) : null;\n return Xd(4, 36, $d.bind(null, b, a), c);\n },\n useLayoutEffect: function (a, b) {\n return Xd(4, 36, a, b);\n },\n useMemo: function (a, b) {\n var c = Pd();\n b = void 0 === b ? null : b;\n var d = c.memoizedState;\n if (null !== d && null !== b && Id(b, d[1])) return d[0];\n a = a();\n c.memoizedState = [a, b];\n return a;\n },\n useReducer: Rd,\n useRef: function () {\n return Pd().memoizedState;\n },\n useState: Ud,\n useDebugValue: ae,\n useResponder: vd,\n useDeferredValue: function (a, b) {\n var c = Ud(a),\n d = c[0],\n e = c[1];\n Zd(function () {\n m.unstable_next(function () {\n var c = J.suspense;\n J.suspense = void 0 === b ? null : b;\n try {\n e(a);\n } finally {\n J.suspense = c;\n }\n });\n }, [a, b]);\n return d;\n },\n useTransition: function (a) {\n var b = Ud(!1),\n c = b[0],\n d = b[1];\n return [ce(function (b) {\n d(!0);\n m.unstable_next(function () {\n var c = J.suspense;\n J.suspense = void 0 === a ? null : a;\n try {\n d(!1), b();\n } finally {\n J.suspense = c;\n }\n });\n }, [a, c]), c];\n }\n },\n de = null,\n ee = null,\n fe = !1;\n function ge(a, b) {\n var c = he(5, null, null, 0);\n c.elementType = \"DELETED\";\n c.type = \"DELETED\";\n c.stateNode = b;\n c.return = a;\n c.effectTag = 8;\n null !== a.lastEffect ? (a.lastEffect.nextEffect = c, a.lastEffect = c) : a.firstEffect = a.lastEffect = c;\n }\n function ie(a, b) {\n switch (a.tag) {\n case 5:\n return b = ob(b, a.type, a.pendingProps), null !== b ? (a.stateNode = b, !0) : !1;\n case 6:\n return b = pb(b, a.pendingProps), null !== b ? (a.stateNode = b, !0) : !1;\n case 13:\n return !1;\n default:\n return !1;\n }\n }\n function je(a) {\n if (fe) {\n var b = ee;\n if (b) {\n var c = b;\n if (!ie(a, b)) {\n b = sb(c);\n if (!b || !ie(a, b)) {\n a.effectTag = a.effectTag & -1025 | 2;\n fe = !1;\n de = a;\n return;\n }\n ge(de, c);\n }\n de = a;\n ee = tb(b);\n } else a.effectTag = a.effectTag & -1025 | 2, fe = !1, de = a;\n }\n }\n function ke(a) {\n for (a = a.return; null !== a && 5 !== a.tag && 3 !== a.tag && 13 !== a.tag;) a = a.return;\n de = a;\n }\n function ne(a) {\n if (!Sa || a !== de) return !1;\n if (!fe) return ke(a), fe = !0, !1;\n var b = a.type;\n if (5 !== a.tag || \"head\" !== b && \"body\" !== b && !Ja(b, a.memoizedProps)) for (b = ee; b;) ge(a, b), b = sb(b);\n ke(a);\n if (13 === a.tag) {\n if (!Sa) throw Error(n(316));\n a = a.memoizedState;\n a = null !== a ? a.dehydrated : null;\n if (!a) throw Error(n(317));\n ee = wb(a);\n } else ee = de ? sb(a.stateNode) : null;\n return !0;\n }\n function oe() {\n Sa && (ee = de = null, fe = !1);\n }\n var pe = q.ReactCurrentOwner,\n Bc = !1;\n function Q(a, b, c, d) {\n b.child = null === a ? ld(b, null, c, d) : kd(b, a.child, c, d);\n }\n function qe(a, b, c, d, e) {\n c = c.render;\n var f = b.ref;\n Ac(b, e);\n d = Jd(a, b, c, d, f, e);\n if (null !== a && !Bc) return b.updateQueue = a.updateQueue, b.effectTag &= -517, a.expirationTime <= e && (a.expirationTime = 0), re(a, b, e);\n b.effectTag |= 1;\n Q(a, b, d, e);\n return b.child;\n }\n function se(a, b, c, d, e, f) {\n if (null === a) {\n var g = c.type;\n if (\"function\" === typeof g && !te(g) && void 0 === g.defaultProps && null === c.compare && void 0 === c.defaultProps) return b.tag = 15, b.type = g, ue(a, b, g, d, e, f);\n a = hd(c.type, null, d, null, b.mode, f);\n a.ref = b.ref;\n a.return = b;\n return b.child = a;\n }\n g = a.child;\n if (e < f && (e = g.memoizedProps, c = c.compare, c = null !== c ? c : qc, c(e, d) && a.ref === b.ref)) return re(a, b, f);\n b.effectTag |= 1;\n a = fd(g, d, f);\n a.ref = b.ref;\n a.return = b;\n return b.child = a;\n }\n function ue(a, b, c, d, e, f) {\n return null !== a && qc(a.memoizedProps, d) && a.ref === b.ref && (Bc = !1, e < f) ? re(a, b, f) : ve(a, b, c, d, f);\n }\n function we(a, b) {\n var c = b.ref;\n if (null === a && null !== c || null !== a && a.ref !== c) b.effectTag |= 128;\n }\n function ve(a, b, c, d, e) {\n var f = C(c) ? Eb : A.current;\n f = Fb(b, f);\n Ac(b, e);\n c = Jd(a, b, c, d, f, e);\n if (null !== a && !Bc) return b.updateQueue = a.updateQueue, b.effectTag &= -517, a.expirationTime <= e && (a.expirationTime = 0), re(a, b, e);\n b.effectTag |= 1;\n Q(a, b, c, e);\n return b.child;\n }\n function xe(a, b, c, d, e) {\n if (C(c)) {\n var f = !0;\n Kb(b);\n } else f = !1;\n Ac(b, e);\n if (null === b.stateNode) null !== a && (a.alternate = null, b.alternate = null, b.effectTag |= 2), Zc(b, c, d, e), ad(b, c, d, e), d = !0;else if (null === a) {\n var g = b.stateNode,\n l = b.memoizedProps;\n g.props = l;\n var h = g.context,\n k = c.contextType;\n \"object\" === typeof k && null !== k ? k = Cc(k) : (k = C(c) ? Eb : A.current, k = Fb(b, k));\n var p = c.getDerivedStateFromProps,\n D = \"function\" === typeof p || \"function\" === typeof g.getSnapshotBeforeUpdate;\n D || \"function\" !== typeof g.UNSAFE_componentWillReceiveProps && \"function\" !== typeof g.componentWillReceiveProps || (l !== d || h !== k) && $c(b, g, d, k);\n Dc = !1;\n var x = b.memoizedState;\n h = g.state = x;\n var K = b.updateQueue;\n null !== K && (Nc(b, K, d, g, e), h = b.memoizedState);\n l !== d || x !== h || B.current || Dc ? (\"function\" === typeof p && (Uc(b, c, p, d), h = b.memoizedState), (l = Dc || Yc(b, c, l, d, x, h, k)) ? (D || \"function\" !== typeof g.UNSAFE_componentWillMount && \"function\" !== typeof g.componentWillMount || (\"function\" === typeof g.componentWillMount && g.componentWillMount(), \"function\" === typeof g.UNSAFE_componentWillMount && g.UNSAFE_componentWillMount()), \"function\" === typeof g.componentDidMount && (b.effectTag |= 4)) : (\"function\" === typeof g.componentDidMount && (b.effectTag |= 4), b.memoizedProps = d, b.memoizedState = h), g.props = d, g.state = h, g.context = k, d = l) : (\"function\" === typeof g.componentDidMount && (b.effectTag |= 4), d = !1);\n } else g = b.stateNode, l = b.memoizedProps, g.props = b.type === b.elementType ? l : rc(b.type, l), h = g.context, k = c.contextType, \"object\" === typeof k && null !== k ? k = Cc(k) : (k = C(c) ? Eb : A.current, k = Fb(b, k)), p = c.getDerivedStateFromProps, (D = \"function\" === typeof p || \"function\" === typeof g.getSnapshotBeforeUpdate) || \"function\" !== typeof g.UNSAFE_componentWillReceiveProps && \"function\" !== typeof g.componentWillReceiveProps || (l !== d || h !== k) && $c(b, g, d, k), Dc = !1, h = b.memoizedState, x = g.state = h, K = b.updateQueue, null !== K && (Nc(b, K, d, g, e), x = b.memoizedState), l !== d || h !== x || B.current || Dc ? (\"function\" === typeof p && (Uc(b, c, p, d), x = b.memoizedState), (p = Dc || Yc(b, c, l, d, h, x, k)) ? (D || \"function\" !== typeof g.UNSAFE_componentWillUpdate && \"function\" !== typeof g.componentWillUpdate || (\"function\" === typeof g.componentWillUpdate && g.componentWillUpdate(d, x, k), \"function\" === typeof g.UNSAFE_componentWillUpdate && g.UNSAFE_componentWillUpdate(d, x, k)), \"function\" === typeof g.componentDidUpdate && (b.effectTag |= 4), \"function\" === typeof g.getSnapshotBeforeUpdate && (b.effectTag |= 256)) : (\"function\" !== typeof g.componentDidUpdate || l === a.memoizedProps && h === a.memoizedState || (b.effectTag |= 4), \"function\" !== typeof g.getSnapshotBeforeUpdate || l === a.memoizedProps && h === a.memoizedState || (b.effectTag |= 256), b.memoizedProps = d, b.memoizedState = x), g.props = d, g.state = x, g.context = k, d = p) : (\"function\" !== typeof g.componentDidUpdate || l === a.memoizedProps && h === a.memoizedState || (b.effectTag |= 4), \"function\" !== typeof g.getSnapshotBeforeUpdate || l === a.memoizedProps && h === a.memoizedState || (b.effectTag |= 256), d = !1);\n return ye(a, b, c, d, f, e);\n }\n function ye(a, b, c, d, e, f) {\n we(a, b);\n var g = 0 !== (b.effectTag & 64);\n if (!d && !g) return e && Lb(b, c, !1), re(a, b, f);\n d = b.stateNode;\n pe.current = b;\n var l = g && \"function\" !== typeof c.getDerivedStateFromError ? null : d.render();\n b.effectTag |= 1;\n null !== a && g ? (b.child = kd(b, a.child, null, f), b.child = kd(b, null, l, f)) : Q(a, b, l, f);\n b.memoizedState = d.state;\n e && Lb(b, c, !0);\n return b.child;\n }\n function ze(a) {\n var b = a.stateNode;\n b.pendingContext ? Ib(a, b.pendingContext, b.pendingContext !== b.context) : b.context && Ib(a, b.context, !1);\n qd(a, b.containerInfo);\n }\n var Ae = {\n dehydrated: null,\n retryTime: 0\n };\n function Be(a, b, c) {\n var d = b.mode,\n e = b.pendingProps,\n f = I.current,\n g = !1,\n l;\n (l = 0 !== (b.effectTag & 64)) || (l = 0 !== (f & 2) && (null === a || null !== a.memoizedState));\n l ? (g = !0, b.effectTag &= -65) : null !== a && null === a.memoizedState || void 0 === e.fallback || !0 === e.unstable_avoidThisFallback || (f |= 1);\n z(I, f & 1, b);\n if (null === a) {\n void 0 !== e.fallback && je(b);\n if (g) {\n g = e.fallback;\n e = jd(null, d, 0, null);\n e.return = b;\n if (0 === (b.mode & 2)) for (a = null !== b.memoizedState ? b.child.child : b.child, e.child = a; null !== a;) a.return = e, a = a.sibling;\n c = jd(g, d, c, null);\n c.return = b;\n e.sibling = c;\n b.memoizedState = Ae;\n b.child = e;\n return c;\n }\n d = e.children;\n b.memoizedState = null;\n return b.child = ld(b, null, d, c);\n }\n if (null !== a.memoizedState) {\n a = a.child;\n d = a.sibling;\n if (g) {\n e = e.fallback;\n c = fd(a, a.pendingProps, 0);\n c.return = b;\n if (0 === (b.mode & 2) && (g = null !== b.memoizedState ? b.child.child : b.child, g !== a.child)) for (c.child = g; null !== g;) g.return = c, g = g.sibling;\n d = fd(d, e, d.expirationTime);\n d.return = b;\n c.sibling = d;\n c.childExpirationTime = 0;\n b.memoizedState = Ae;\n b.child = c;\n return d;\n }\n c = kd(b, a.child, e.children, c);\n b.memoizedState = null;\n return b.child = c;\n }\n a = a.child;\n if (g) {\n g = e.fallback;\n e = jd(null, d, 0, null);\n e.return = b;\n e.child = a;\n null !== a && (a.return = e);\n if (0 === (b.mode & 2)) for (a = null !== b.memoizedState ? b.child.child : b.child, e.child = a; null !== a;) a.return = e, a = a.sibling;\n c = jd(g, d, c, null);\n c.return = b;\n e.sibling = c;\n c.effectTag |= 2;\n e.childExpirationTime = 0;\n b.memoizedState = Ae;\n b.child = e;\n return c;\n }\n b.memoizedState = null;\n return b.child = kd(b, a, e.children, c);\n }\n function Ce(a, b) {\n a.expirationTime < b && (a.expirationTime = b);\n var c = a.alternate;\n null !== c && c.expirationTime < b && (c.expirationTime = b);\n zc(a.return, b);\n }\n function De(a, b, c, d, e, f) {\n var g = a.memoizedState;\n null === g ? a.memoizedState = {\n isBackwards: b,\n rendering: null,\n last: d,\n tail: c,\n tailExpiration: 0,\n tailMode: e,\n lastEffect: f\n } : (g.isBackwards = b, g.rendering = null, g.last = d, g.tail = c, g.tailExpiration = 0, g.tailMode = e, g.lastEffect = f);\n }\n function Ee(a, b, c) {\n var d = b.pendingProps,\n e = d.revealOrder,\n f = d.tail;\n Q(a, b, d.children, c);\n d = I.current;\n if (0 !== (d & 2)) d = d & 1 | 2, b.effectTag |= 64;else {\n if (null !== a && 0 !== (a.effectTag & 64)) a: for (a = b.child; null !== a;) {\n if (13 === a.tag) null !== a.memoizedState && Ce(a, c);else if (19 === a.tag) Ce(a, c);else if (null !== a.child) {\n a.child.return = a;\n a = a.child;\n continue;\n }\n if (a === b) break a;\n for (; null === a.sibling;) {\n if (null === a.return || a.return === b) break a;\n a = a.return;\n }\n a.sibling.return = a.return;\n a = a.sibling;\n }\n d &= 1;\n }\n z(I, d, b);\n if (0 === (b.mode & 2)) b.memoizedState = null;else switch (e) {\n case \"forwards\":\n c = b.child;\n for (e = null; null !== c;) a = c.alternate, null !== a && null === ud(a) && (e = c), c = c.sibling;\n c = e;\n null === c ? (e = b.child, b.child = null) : (e = c.sibling, c.sibling = null);\n De(b, !1, e, c, f, b.lastEffect);\n break;\n case \"backwards\":\n c = null;\n e = b.child;\n for (b.child = null; null !== e;) {\n a = e.alternate;\n if (null !== a && null === ud(a)) {\n b.child = e;\n break;\n }\n a = e.sibling;\n e.sibling = c;\n c = e;\n e = a;\n }\n De(b, !0, c, null, f, b.lastEffect);\n break;\n case \"together\":\n De(b, !1, null, null, void 0, b.lastEffect);\n break;\n default:\n b.memoizedState = null;\n }\n return b.child;\n }\n function re(a, b, c) {\n null !== a && (b.dependencies = a.dependencies);\n var d = b.expirationTime;\n 0 !== d && Pc(d);\n if (b.childExpirationTime < c) return null;\n if (null !== a && b.child !== a.child) throw Error(n(153));\n if (null !== b.child) {\n a = b.child;\n c = fd(a, a.pendingProps, a.expirationTime);\n b.child = c;\n for (c.return = b; null !== a.sibling;) a = a.sibling, c = c.sibling = fd(a, a.pendingProps, a.expirationTime), c.return = b;\n c.sibling = null;\n }\n return b.child;\n }\n function Fe(a) {\n a.effectTag |= 4;\n }\n var Ge, He, Ie, Je;\n if (Qa) Ge = function (a, b) {\n for (var c = b.child; null !== c;) {\n if (5 === c.tag || 6 === c.tag) Fa(a, c.stateNode);else if (4 !== c.tag && null !== c.child) {\n c.child.return = c;\n c = c.child;\n continue;\n }\n if (c === b) break;\n for (; null === c.sibling;) {\n if (null === c.return || c.return === b) return;\n c = c.return;\n }\n c.sibling.return = c.return;\n c = c.sibling;\n }\n }, He = function () {}, Ie = function (a, b, c, d, e) {\n a = a.memoizedProps;\n if (a !== d) {\n var f = b.stateNode,\n g = pd(H.current);\n c = Ia(f, c, a, d, e, g);\n (b.updateQueue = c) && Fe(b);\n }\n }, Je = function (a, b, c, d) {\n c !== d && Fe(b);\n };else if (Ra) {\n Ge = function (a, b, c, d) {\n for (var e = b.child; null !== e;) {\n if (5 === e.tag) {\n var f = e.stateNode;\n c && d && (f = mb(f, e.type, e.memoizedProps, e));\n Fa(a, f);\n } else if (6 === e.tag) f = e.stateNode, c && d && (f = nb(f, e.memoizedProps, e)), Fa(a, f);else if (4 !== e.tag) {\n if (13 === e.tag && 0 !== (e.effectTag & 4) && (f = null !== e.memoizedState)) {\n var g = e.child;\n if (null !== g && (null !== g.child && (g.child.return = g, Ge(a, g, !0, f)), f = g.sibling, null !== f)) {\n f.return = e;\n e = f;\n continue;\n }\n }\n if (null !== e.child) {\n e.child.return = e;\n e = e.child;\n continue;\n }\n }\n if (e === b) break;\n for (; null === e.sibling;) {\n if (null === e.return || e.return === b) return;\n e = e.return;\n }\n e.sibling.return = e.return;\n e = e.sibling;\n }\n };\n var Ke = function (a, b, c, d) {\n for (var e = b.child; null !== e;) {\n if (5 === e.tag) {\n var f = e.stateNode;\n c && d && (f = mb(f, e.type, e.memoizedProps, e));\n ib(a, f);\n } else if (6 === e.tag) f = e.stateNode, c && d && (f = nb(f, e.memoizedProps, e)), ib(a, f);else if (4 !== e.tag) {\n if (13 === e.tag && 0 !== (e.effectTag & 4) && (f = null !== e.memoizedState)) {\n var g = e.child;\n if (null !== g && (null !== g.child && (g.child.return = g, Ke(a, g, !0, f)), f = g.sibling, null !== f)) {\n f.return = e;\n e = f;\n continue;\n }\n }\n if (null !== e.child) {\n e.child.return = e;\n e = e.child;\n continue;\n }\n }\n if (e === b) break;\n for (; null === e.sibling;) {\n if (null === e.return || e.return === b) return;\n e = e.return;\n }\n e.sibling.return = e.return;\n e = e.sibling;\n }\n };\n He = function (a) {\n var b = a.stateNode;\n if (null !== a.firstEffect) {\n var c = b.containerInfo,\n d = hb(c);\n Ke(d, a, !1, !1);\n b.pendingChildren = d;\n Fe(a);\n kb(c, d);\n }\n };\n Ie = function (a, b, c, d, e) {\n var f = a.stateNode,\n g = a.memoizedProps;\n if ((a = null === b.firstEffect) && g === d) b.stateNode = f;else {\n var l = b.stateNode,\n h = pd(H.current),\n k = null;\n g !== d && (k = Ia(l, c, g, d, e, h));\n a && null === k ? b.stateNode = f : (f = gb(f, k, c, g, d, b, a, l), Ga(f, c, d, e, h) && Fe(b), b.stateNode = f, a ? Fe(b) : Ge(f, b, !1, !1));\n }\n };\n Je = function (a, b, c, d) {\n c !== d && (a = pd(od.current), c = pd(H.current), b.stateNode = La(d, a, c, b), Fe(b));\n };\n } else He = function () {}, Ie = function () {}, Je = function () {};\n function Le(a, b) {\n switch (a.tailMode) {\n case \"hidden\":\n b = a.tail;\n for (var c = null; null !== b;) null !== b.alternate && (c = b), b = b.sibling;\n null === c ? a.tail = null : c.sibling = null;\n break;\n case \"collapsed\":\n c = a.tail;\n for (var d = null; null !== c;) null !== c.alternate && (d = c), c = c.sibling;\n null === d ? b || null === a.tail ? a.tail = null : a.tail.sibling = null : d.sibling = null;\n }\n }\n function Me(a) {\n switch (a.tag) {\n case 1:\n C(a.type) && Gb(a);\n var b = a.effectTag;\n return b & 4096 ? (a.effectTag = b & -4097 | 64, a) : null;\n case 3:\n rd(a);\n Hb(a);\n b = a.effectTag;\n if (0 !== (b & 64)) throw Error(n(285));\n a.effectTag = b & -4097 | 64;\n return a;\n case 5:\n return td(a), null;\n case 13:\n return y(I, a), b = a.effectTag, b & 4096 ? (a.effectTag = b & -4097 | 64, a) : null;\n case 19:\n return y(I, a), null;\n case 4:\n return rd(a), null;\n case 10:\n return yc(a), null;\n default:\n return null;\n }\n }\n function Ne(a, b) {\n return {\n value: a,\n source: b,\n stack: Ab(b)\n };\n }\n var Oe = \"function\" === typeof WeakSet ? WeakSet : Set;\n function Pe(a, b) {\n var c = b.source,\n d = b.stack;\n null === d && null !== c && (d = Ab(c));\n null !== c && ta(c.type);\n b = b.value;\n null !== a && 1 === a.tag && ta(a.type);\n try {\n console.error(b);\n } catch (e) {\n setTimeout(function () {\n throw e;\n });\n }\n }\n function Qe(a, b) {\n try {\n b.props = a.memoizedProps, b.state = a.memoizedState, b.componentWillUnmount();\n } catch (c) {\n Re(a, c);\n }\n }\n function Se(a) {\n var b = a.ref;\n if (null !== b) if (\"function\" === typeof b) try {\n b(null);\n } catch (c) {\n Re(a, c);\n } else b.current = null;\n }\n function Te(a, b) {\n switch (b.tag) {\n case 0:\n case 11:\n case 15:\n Ue(2, 0, b);\n break;\n case 1:\n if (b.effectTag & 256 && null !== a) {\n var c = a.memoizedProps,\n d = a.memoizedState;\n a = b.stateNode;\n b = a.getSnapshotBeforeUpdate(b.elementType === b.type ? c : rc(b.type, c), d);\n a.__reactInternalSnapshotBeforeUpdate = b;\n }\n break;\n case 3:\n case 5:\n case 6:\n case 4:\n case 17:\n break;\n default:\n throw Error(n(163));\n }\n }\n function Ue(a, b, c) {\n c = c.updateQueue;\n c = null !== c ? c.lastEffect : null;\n if (null !== c) {\n var d = c = c.next;\n do {\n if (0 !== (d.tag & a)) {\n var e = d.destroy;\n d.destroy = void 0;\n void 0 !== e && e();\n }\n 0 !== (d.tag & b) && (e = d.create, d.destroy = e());\n d = d.next;\n } while (d !== c);\n }\n }\n function Ve(a, b, c) {\n \"function\" === typeof We && We(b);\n switch (b.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n a = b.updateQueue;\n if (null !== a && (a = a.lastEffect, null !== a)) {\n var d = a.next;\n hc(97 < c ? 97 : c, function () {\n var a = d;\n do {\n var c = a.destroy;\n if (void 0 !== c) {\n var g = b;\n try {\n c();\n } catch (l) {\n Re(g, l);\n }\n }\n a = a.next;\n } while (a !== d);\n });\n }\n break;\n case 1:\n Se(b);\n c = b.stateNode;\n \"function\" === typeof c.componentWillUnmount && Qe(b, c);\n break;\n case 5:\n Se(b);\n break;\n case 4:\n Qa ? Xe(a, b, c) : Ra && Ye(b);\n }\n }\n function Ze(a, b, c) {\n for (var d = b;;) if (Ve(a, d, c), null === d.child || Qa && 4 === d.tag) {\n if (d === b) break;\n for (; null === d.sibling;) {\n if (null === d.return || d.return === b) return;\n d = d.return;\n }\n d.sibling.return = d.return;\n d = d.sibling;\n } else d.child.return = d, d = d.child;\n }\n function $e(a) {\n var b = a.alternate;\n a.return = null;\n a.child = null;\n a.memoizedState = null;\n a.updateQueue = null;\n a.dependencies = null;\n a.alternate = null;\n a.firstEffect = null;\n a.lastEffect = null;\n a.pendingProps = null;\n a.memoizedProps = null;\n null !== b && $e(b);\n }\n function Ye(a) {\n if (Ra) {\n a = a.stateNode.containerInfo;\n var b = hb(a);\n lb(a, b);\n }\n }\n function af(a) {\n return 5 === a.tag || 3 === a.tag || 4 === a.tag;\n }\n function bf(a) {\n if (Qa) {\n a: {\n for (var b = a.return; null !== b;) {\n if (af(b)) {\n var c = b;\n break a;\n }\n b = b.return;\n }\n throw Error(n(160));\n }\n b = c.stateNode;\n switch (c.tag) {\n case 5:\n var d = !1;\n break;\n case 3:\n b = b.containerInfo;\n d = !0;\n break;\n case 4:\n b = b.containerInfo;\n d = !0;\n break;\n default:\n throw Error(n(161));\n }\n c.effectTag & 16 && (bb(b), c.effectTag &= -17);\n a: b: for (c = a;;) {\n for (; null === c.sibling;) {\n if (null === c.return || af(c.return)) {\n c = null;\n break a;\n }\n c = c.return;\n }\n c.sibling.return = c.return;\n for (c = c.sibling; 5 !== c.tag && 6 !== c.tag && 18 !== c.tag;) {\n if (c.effectTag & 2) continue b;\n if (null === c.child || 4 === c.tag) continue b;else c.child.return = c, c = c.child;\n }\n if (!(c.effectTag & 2)) {\n c = c.stateNode;\n break a;\n }\n }\n for (var e = a;;) {\n var f = 5 === e.tag || 6 === e.tag;\n if (f) f = f ? e.stateNode : e.stateNode.instance, c ? d ? Za(b, f, c) : Ya(b, f, c) : d ? Ua(b, f) : Ta(b, f);else if (4 !== e.tag && null !== e.child) {\n e.child.return = e;\n e = e.child;\n continue;\n }\n if (e === a) break;\n for (; null === e.sibling;) {\n if (null === e.return || e.return === a) return;\n e = e.return;\n }\n e.sibling.return = e.return;\n e = e.sibling;\n }\n }\n }\n function Xe(a, b, c) {\n for (var d = b, e = !1, f, g;;) {\n if (!e) {\n e = d.return;\n a: for (;;) {\n if (null === e) throw Error(n(160));\n f = e.stateNode;\n switch (e.tag) {\n case 5:\n g = !1;\n break a;\n case 3:\n f = f.containerInfo;\n g = !0;\n break a;\n case 4:\n f = f.containerInfo;\n g = !0;\n break a;\n }\n e = e.return;\n }\n e = !0;\n }\n if (5 === d.tag || 6 === d.tag) Ze(a, d, c), g ? ab(f, d.stateNode) : $a(f, d.stateNode);else if (4 === d.tag) {\n if (null !== d.child) {\n f = d.stateNode.containerInfo;\n g = !0;\n d.child.return = d;\n d = d.child;\n continue;\n }\n } else if (Ve(a, d, c), null !== d.child) {\n d.child.return = d;\n d = d.child;\n continue;\n }\n if (d === b) break;\n for (; null === d.sibling;) {\n if (null === d.return || d.return === b) return;\n d = d.return;\n 4 === d.tag && (e = !1);\n }\n d.sibling.return = d.return;\n d = d.sibling;\n }\n }\n function cf(a, b) {\n if (Qa) switch (b.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n Ue(4, 8, b);\n break;\n case 1:\n break;\n case 5:\n var c = b.stateNode;\n if (null != c) {\n var d = b.memoizedProps;\n a = null !== a ? a.memoizedProps : d;\n var e = b.type,\n f = b.updateQueue;\n b.updateQueue = null;\n null !== f && Xa(c, f, e, a, d, b);\n }\n break;\n case 6:\n if (null === b.stateNode) throw Error(n(162));\n c = b.memoizedProps;\n Va(b.stateNode, null !== a ? a.memoizedProps : c, c);\n break;\n case 3:\n Sa && (b = b.stateNode, b.hydrate && (b.hydrate = !1, xb(b.containerInfo)));\n break;\n case 12:\n break;\n case 13:\n df(b);\n ef(b);\n break;\n case 19:\n ef(b);\n break;\n case 17:\n break;\n case 20:\n break;\n case 21:\n break;\n default:\n throw Error(n(163));\n } else {\n switch (b.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n Ue(4, 8, b);\n return;\n case 12:\n return;\n case 13:\n df(b);\n ef(b);\n return;\n case 19:\n ef(b);\n return;\n case 3:\n Sa && (c = b.stateNode, c.hydrate && (c.hydrate = !1, xb(c.containerInfo)));\n }\n a: if (Ra) switch (b.tag) {\n case 1:\n case 5:\n case 6:\n case 20:\n break a;\n case 3:\n case 4:\n b = b.stateNode;\n lb(b.containerInfo, b.pendingChildren);\n break a;\n default:\n throw Error(n(163));\n }\n }\n }\n function df(a) {\n var b = a;\n if (null === a.memoizedState) var c = !1;else c = !0, b = a.child, ff = E();\n if (Qa && null !== b) a: if (a = b, Qa) for (b = a;;) {\n if (5 === b.tag) {\n var d = b.stateNode;\n c ? cb(d) : eb(b.stateNode, b.memoizedProps);\n } else if (6 === b.tag) d = b.stateNode, c ? db(d) : fb(d, b.memoizedProps);else if (13 === b.tag && null !== b.memoizedState && null === b.memoizedState.dehydrated) {\n d = b.child.sibling;\n d.return = b;\n b = d;\n continue;\n } else if (null !== b.child) {\n b.child.return = b;\n b = b.child;\n continue;\n }\n if (b === a) break a;\n for (; null === b.sibling;) {\n if (null === b.return || b.return === a) break a;\n b = b.return;\n }\n b.sibling.return = b.return;\n b = b.sibling;\n }\n }\n function ef(a) {\n var b = a.updateQueue;\n if (null !== b) {\n a.updateQueue = null;\n var c = a.stateNode;\n null === c && (c = a.stateNode = new Oe());\n b.forEach(function (b) {\n var d = gf.bind(null, a, b);\n c.has(b) || (c.add(b), b.then(d, d));\n });\n }\n }\n var hf = \"function\" === typeof WeakMap ? WeakMap : Map;\n function jf(a, b, c) {\n c = Gc(c, null);\n c.tag = 3;\n c.payload = {\n element: null\n };\n var d = b.value;\n c.callback = function () {\n kf || (kf = !0, lf = d);\n Pe(a, b);\n };\n return c;\n }\n function mf(a, b, c) {\n c = Gc(c, null);\n c.tag = 3;\n var d = a.type.getDerivedStateFromError;\n if (\"function\" === typeof d) {\n var e = b.value;\n c.payload = function () {\n Pe(a, b);\n return d(e);\n };\n }\n var f = a.stateNode;\n null !== f && \"function\" === typeof f.componentDidCatch && (c.callback = function () {\n \"function\" !== typeof d && (null === nf ? nf = new Set([this]) : nf.add(this), Pe(a, b));\n var c = b.stack;\n this.componentDidCatch(b.value, {\n componentStack: null !== c ? c : \"\"\n });\n });\n return c;\n }\n var of = Math.ceil,\n pf = q.ReactCurrentDispatcher,\n qf = q.ReactCurrentOwner,\n R = 0,\n rf = 8,\n S = 16,\n sf = 32,\n tf = 0,\n uf = 1,\n vf = 2,\n wf = 3,\n xf = 4,\n yf = 5,\n T = R,\n U = null,\n V = null,\n W = 0,\n X = tf,\n zf = null,\n Af = 1073741823,\n Bf = 1073741823,\n Cf = null,\n Df = 0,\n Ef = !1,\n ff = 0,\n Ff = 500,\n Y = null,\n kf = !1,\n lf = null,\n nf = null,\n Gf = !1,\n Hf = null,\n If = 90,\n Jf = null,\n Kf = 0,\n Lf = null,\n Mf = 0;\n function G() {\n return (T & (S | sf)) !== R ? 1073741821 - (E() / 10 | 0) : 0 !== Mf ? Mf : Mf = 1073741821 - (E() / 10 | 0);\n }\n function Vc(a, b, c) {\n b = b.mode;\n if (0 === (b & 2)) return 1073741823;\n var d = fc();\n if (0 === (b & 4)) return 99 === d ? 1073741823 : 1073741822;\n if ((T & S) !== R) return W;\n if (null !== c) a = mc(a, c.timeoutMs | 0 || 5E3, 250);else switch (d) {\n case 99:\n a = 1073741823;\n break;\n case 98:\n a = mc(a, 150, 100);\n break;\n case 97:\n case 96:\n a = mc(a, 5E3, 250);\n break;\n case 95:\n a = 2;\n break;\n default:\n throw Error(n(326));\n }\n null !== U && a === W && --a;\n return a;\n }\n function Wc(a, b) {\n if (50 < Kf) throw Kf = 0, Lf = null, Error(n(185));\n a = Nf(a, b);\n if (null !== a) {\n var c = fc();\n 1073741823 === b ? (T & rf) !== R && (T & (S | sf)) === R ? Of(a) : (Z(a), T === R && F()) : Z(a);\n (T & 4) === R || 98 !== c && 99 !== c || (null === Jf ? Jf = new Map([[a, b]]) : (c = Jf.get(a), (void 0 === c || c > b) && Jf.set(a, b)));\n }\n }\n function Nf(a, b) {\n a.expirationTime < b && (a.expirationTime = b);\n var c = a.alternate;\n null !== c && c.expirationTime < b && (c.expirationTime = b);\n var d = a.return,\n e = null;\n if (null === d && 3 === a.tag) e = a.stateNode;else for (; null !== d;) {\n c = d.alternate;\n d.childExpirationTime < b && (d.childExpirationTime = b);\n null !== c && c.childExpirationTime < b && (c.childExpirationTime = b);\n if (null === d.return && 3 === d.tag) {\n e = d.stateNode;\n break;\n }\n d = d.return;\n }\n null !== e && (U === e && (Pc(b), X === xf && Pf(e, W)), Qf(e, b));\n return e;\n }\n function Rf(a) {\n var b = a.lastExpiredTime;\n if (0 !== b) return b;\n b = a.firstPendingTime;\n if (!Sf(a, b)) return b;\n b = a.lastPingedTime;\n a = a.nextKnownPendingLevel;\n return b > a ? b : a;\n }\n function Z(a) {\n if (0 !== a.lastExpiredTime) a.callbackExpirationTime = 1073741823, a.callbackPriority = 99, a.callbackNode = jc(Of.bind(null, a));else {\n var b = Rf(a),\n c = a.callbackNode;\n if (0 === b) null !== c && (a.callbackNode = null, a.callbackExpirationTime = 0, a.callbackPriority = 90);else {\n var d = G();\n 1073741823 === b ? d = 99 : 1 === b || 2 === b ? d = 95 : (d = 10 * (1073741821 - b) - 10 * (1073741821 - d), d = 0 >= d ? 99 : 250 >= d ? 98 : 5250 >= d ? 97 : 95);\n if (null !== c) {\n var e = a.callbackPriority;\n if (a.callbackExpirationTime === b && e >= d) return;\n c !== $b && Ob(c);\n }\n a.callbackExpirationTime = b;\n a.callbackPriority = d;\n b = 1073741823 === b ? jc(Of.bind(null, a)) : ic(d, Tf.bind(null, a), {\n timeout: 10 * (1073741821 - b) - E()\n });\n a.callbackNode = b;\n }\n }\n }\n function Tf(a, b) {\n Mf = 0;\n if (b) return b = G(), Uf(a, b), Z(a), null;\n var c = Rf(a);\n if (0 !== c) {\n b = a.callbackNode;\n if ((T & (S | sf)) !== R) throw Error(n(327));\n Vf();\n a === U && c === W || Wf(a, c);\n if (null !== V) {\n var d = T;\n T |= S;\n var e = Xf(a);\n do try {\n Yf();\n break;\n } catch (l) {\n Zf(a, l);\n } while (1);\n wc();\n T = d;\n pf.current = e;\n if (X === uf) throw b = zf, Wf(a, c), Pf(a, c), Z(a), b;\n if (null === V) switch (e = a.finishedWork = a.current.alternate, a.finishedExpirationTime = c, d = X, U = null, d) {\n case tf:\n case uf:\n throw Error(n(345));\n case vf:\n Uf(a, 2 < c ? 2 : c);\n break;\n case wf:\n Pf(a, c);\n d = a.lastSuspendedTime;\n c === d && (a.nextKnownPendingLevel = $f(e));\n if (1073741823 === Af && (e = ff + Ff - E(), 10 < e)) {\n if (Ef) {\n var f = a.lastPingedTime;\n if (0 === f || f >= c) {\n a.lastPingedTime = c;\n Wf(a, c);\n break;\n }\n }\n f = Rf(a);\n if (0 !== f && f !== c) break;\n if (0 !== d && d !== c) {\n a.lastPingedTime = d;\n break;\n }\n a.timeoutHandle = Ma(ag.bind(null, a), e);\n break;\n }\n ag(a);\n break;\n case xf:\n Pf(a, c);\n d = a.lastSuspendedTime;\n c === d && (a.nextKnownPendingLevel = $f(e));\n if (Ef && (e = a.lastPingedTime, 0 === e || e >= c)) {\n a.lastPingedTime = c;\n Wf(a, c);\n break;\n }\n e = Rf(a);\n if (0 !== e && e !== c) break;\n if (0 !== d && d !== c) {\n a.lastPingedTime = d;\n break;\n }\n 1073741823 !== Bf ? d = 10 * (1073741821 - Bf) - E() : 1073741823 === Af ? d = 0 : (d = 10 * (1073741821 - Af) - 5E3, e = E(), c = 10 * (1073741821 - c) - e, d = e - d, 0 > d && (d = 0), d = (120 > d ? 120 : 480 > d ? 480 : 1080 > d ? 1080 : 1920 > d ? 1920 : 3E3 > d ? 3E3 : 4320 > d ? 4320 : 1960 * of(d / 1960)) - d, c < d && (d = c));\n if (10 < d) {\n a.timeoutHandle = Ma(ag.bind(null, a), d);\n break;\n }\n ag(a);\n break;\n case yf:\n if (1073741823 !== Af && null !== Cf) {\n f = Af;\n var g = Cf;\n d = g.busyMinDurationMs | 0;\n 0 >= d ? d = 0 : (e = g.busyDelayMs | 0, f = E() - (10 * (1073741821 - f) - (g.timeoutMs | 0 || 5E3)), d = f <= e ? 0 : e + d - f);\n if (10 < d) {\n Pf(a, c);\n a.timeoutHandle = Ma(ag.bind(null, a), d);\n break;\n }\n }\n ag(a);\n break;\n default:\n throw Error(n(329));\n }\n Z(a);\n if (a.callbackNode === b) return Tf.bind(null, a);\n }\n }\n return null;\n }\n function Of(a) {\n var b = a.lastExpiredTime;\n b = 0 !== b ? b : 1073741823;\n if (a.finishedExpirationTime === b) ag(a);else {\n if ((T & (S | sf)) !== R) throw Error(n(327));\n Vf();\n a === U && b === W || Wf(a, b);\n if (null !== V) {\n var c = T;\n T |= S;\n var d = Xf(a);\n do try {\n bg();\n break;\n } catch (e) {\n Zf(a, e);\n } while (1);\n wc();\n T = c;\n pf.current = d;\n if (X === uf) throw c = zf, Wf(a, b), Pf(a, b), Z(a), c;\n if (null !== V) throw Error(n(261));\n a.finishedWork = a.current.alternate;\n a.finishedExpirationTime = b;\n U = null;\n ag(a);\n Z(a);\n }\n }\n return null;\n }\n function cg(a, b) {\n Uf(a, b);\n Z(a);\n (T & (S | sf)) === R && F();\n }\n function dg() {\n if (null !== Jf) {\n var a = Jf;\n Jf = null;\n a.forEach(function (a, c) {\n Uf(c, a);\n Z(c);\n });\n F();\n }\n }\n function eg(a, b) {\n if ((T & (S | sf)) !== R) throw Error(n(187));\n var c = T;\n T |= 1;\n try {\n return hc(99, a.bind(null, b));\n } finally {\n T = c, F();\n }\n }\n function Wf(a, b) {\n a.finishedWork = null;\n a.finishedExpirationTime = 0;\n var c = a.timeoutHandle;\n c !== Oa && (a.timeoutHandle = Oa, Na(c));\n if (null !== V) for (c = V.return; null !== c;) {\n var d = c;\n switch (d.tag) {\n case 1:\n var e = d.type.childContextTypes;\n null !== e && void 0 !== e && Gb(d);\n break;\n case 3:\n rd(d);\n Hb(d);\n break;\n case 5:\n td(d);\n break;\n case 4:\n rd(d);\n break;\n case 13:\n y(I, d);\n break;\n case 19:\n y(I, d);\n break;\n case 10:\n yc(d);\n }\n c = c.return;\n }\n U = a;\n V = fd(a.current, null, b);\n W = b;\n X = tf;\n zf = null;\n Bf = Af = 1073741823;\n Cf = null;\n Df = 0;\n Ef = !1;\n }\n function Zf(a, b) {\n do {\n try {\n wc();\n Nd();\n if (null === V || null === V.return) return X = uf, zf = b, null;\n a: {\n var c = a,\n d = V.return,\n e = V,\n f = b;\n b = W;\n e.effectTag |= 2048;\n e.firstEffect = e.lastEffect = null;\n if (null !== f && \"object\" === typeof f && \"function\" === typeof f.then) {\n var g = f,\n l = 0 !== (I.current & 1),\n h = d;\n do {\n var k;\n if (k = 13 === h.tag) {\n var p = h.memoizedState;\n if (null !== p) k = null !== p.dehydrated ? !0 : !1;else {\n var D = h.memoizedProps;\n k = void 0 === D.fallback ? !1 : !0 !== D.unstable_avoidThisFallback ? !0 : l ? !1 : !0;\n }\n }\n if (k) {\n var x = h.updateQueue;\n if (null === x) {\n var K = new Set();\n K.add(g);\n h.updateQueue = K;\n } else x.add(g);\n if (0 === (h.mode & 2)) {\n h.effectTag |= 64;\n e.effectTag &= -2981;\n if (1 === e.tag) if (null === e.alternate) e.tag = 17;else {\n var Ha = Gc(1073741823, null);\n Ha.tag = 2;\n Ic(e, Ha);\n }\n e.expirationTime = 1073741823;\n break a;\n }\n f = void 0;\n e = b;\n var O = c.pingCache;\n null === O ? (O = c.pingCache = new hf(), f = new Set(), O.set(g, f)) : (f = O.get(g), void 0 === f && (f = new Set(), O.set(g, f)));\n if (!f.has(e)) {\n f.add(e);\n var w = fg.bind(null, c, g, e);\n g.then(w, w);\n }\n h.effectTag |= 4096;\n h.expirationTime = b;\n break a;\n }\n h = h.return;\n } while (null !== h);\n f = Error((ta(e.type) || \"A React component\") + \" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a component higher in the tree to provide a loading indicator or placeholder to display.\" + Ab(e));\n }\n X !== yf && (X = vf);\n f = Ne(f, e);\n h = d;\n do {\n switch (h.tag) {\n case 3:\n g = f;\n h.effectTag |= 4096;\n h.expirationTime = b;\n var r = jf(h, g, b);\n Jc(h, r);\n break a;\n case 1:\n g = f;\n var t = h.type,\n N = h.stateNode;\n if (0 === (h.effectTag & 64) && (\"function\" === typeof t.getDerivedStateFromError || null !== N && \"function\" === typeof N.componentDidCatch && (null === nf || !nf.has(N)))) {\n h.effectTag |= 4096;\n h.expirationTime = b;\n var Mc = mf(h, g, b);\n Jc(h, Mc);\n break a;\n }\n }\n h = h.return;\n } while (null !== h);\n }\n V = gg(V);\n } catch (Sb) {\n b = Sb;\n continue;\n }\n break;\n } while (1);\n }\n function Xf() {\n var a = pf.current;\n pf.current = Md;\n return null === a ? Md : a;\n }\n function Oc(a, b) {\n a < Af && 2 < a && (Af = a);\n null !== b && a < Bf && 2 < a && (Bf = a, Cf = b);\n }\n function Pc(a) {\n a > Df && (Df = a);\n }\n function bg() {\n for (; null !== V;) V = hg(V);\n }\n function Yf() {\n for (; null !== V && !Pb();) V = hg(V);\n }\n function hg(a) {\n var b = ig(a.alternate, a, W);\n a.memoizedProps = a.pendingProps;\n null === b && (b = gg(a));\n qf.current = null;\n return b;\n }\n function gg(a) {\n V = a;\n do {\n var b = V.alternate;\n a = V.return;\n if (0 === (V.effectTag & 2048)) {\n a: {\n var c = b;\n b = V;\n var d = W,\n e = b.pendingProps;\n switch (b.tag) {\n case 2:\n break;\n case 16:\n break;\n case 15:\n case 0:\n break;\n case 1:\n C(b.type) && Gb(b);\n break;\n case 3:\n rd(b);\n Hb(b);\n e = b.stateNode;\n e.pendingContext && (e.context = e.pendingContext, e.pendingContext = null);\n (null === c || null === c.child) && ne(b) && Fe(b);\n He(b);\n break;\n case 5:\n td(b);\n var f = pd(od.current);\n d = b.type;\n if (null !== c && null != b.stateNode) Ie(c, b, d, e, f), c.ref !== b.ref && (b.effectTag |= 128);else if (e) {\n c = pd(H.current);\n if (ne(b)) {\n e = b;\n if (!Sa) throw Error(n(175));\n c = ub(e.stateNode, e.type, e.memoizedProps, f, c, e);\n e.updateQueue = c;\n c = null !== c ? !0 : !1;\n c && Fe(b);\n } else {\n var g = Ea(d, e, f, c, b);\n Ge(g, b, !1, !1);\n b.stateNode = g;\n Ga(g, d, e, f, c) && Fe(b);\n }\n null !== b.ref && (b.effectTag |= 128);\n } else if (null === b.stateNode) throw Error(n(166));\n break;\n case 6:\n if (c && null != b.stateNode) Je(c, b, c.memoizedProps, e);else {\n if (\"string\" !== typeof e && null === b.stateNode) throw Error(n(166));\n c = pd(od.current);\n f = pd(H.current);\n if (ne(b)) {\n c = b;\n if (!Sa) throw Error(n(176));\n (c = vb(c.stateNode, c.memoizedProps, c)) && Fe(b);\n } else b.stateNode = La(e, c, f, b);\n }\n break;\n case 11:\n break;\n case 13:\n y(I, b);\n e = b.memoizedState;\n if (0 !== (b.effectTag & 64)) {\n b.expirationTime = d;\n break a;\n }\n e = null !== e;\n f = !1;\n null === c ? void 0 !== b.memoizedProps.fallback && ne(b) : (d = c.memoizedState, f = null !== d, e || null === d || (d = c.child.sibling, null !== d && (g = b.firstEffect, null !== g ? (b.firstEffect = d, d.nextEffect = g) : (b.firstEffect = b.lastEffect = d, d.nextEffect = null), d.effectTag = 8)));\n if (e && !f && 0 !== (b.mode & 2)) if (null === c && !0 !== b.memoizedProps.unstable_avoidThisFallback || 0 !== (I.current & 1)) X === tf && (X = wf);else {\n if (X === tf || X === wf) X = xf;\n 0 !== Df && null !== U && (Pf(U, W), Qf(U, Df));\n }\n Ra && e && (b.effectTag |= 4);\n Qa && (e || f) && (b.effectTag |= 4);\n break;\n case 7:\n break;\n case 8:\n break;\n case 12:\n break;\n case 4:\n rd(b);\n He(b);\n break;\n case 10:\n yc(b);\n break;\n case 9:\n break;\n case 14:\n break;\n case 17:\n C(b.type) && Gb(b);\n break;\n case 19:\n y(I, b);\n e = b.memoizedState;\n if (null === e) break;\n f = 0 !== (b.effectTag & 64);\n g = e.rendering;\n if (null === g) {\n if (f) Le(e, !1);else {\n if (X !== tf || null !== c && 0 !== (c.effectTag & 64)) for (c = b.child; null !== c;) {\n g = ud(c);\n if (null !== g) {\n b.effectTag |= 64;\n Le(e, !1);\n c = g.updateQueue;\n null !== c && (b.updateQueue = c, b.effectTag |= 4);\n null === e.lastEffect && (b.firstEffect = null);\n b.lastEffect = e.lastEffect;\n c = d;\n for (e = b.child; null !== e;) f = e, d = c, f.effectTag &= 2, f.nextEffect = null, f.firstEffect = null, f.lastEffect = null, g = f.alternate, null === g ? (f.childExpirationTime = 0, f.expirationTime = d, f.child = null, f.memoizedProps = null, f.memoizedState = null, f.updateQueue = null, f.dependencies = null) : (f.childExpirationTime = g.childExpirationTime, f.expirationTime = g.expirationTime, f.child = g.child, f.memoizedProps = g.memoizedProps, f.memoizedState = g.memoizedState, f.updateQueue = g.updateQueue, d = g.dependencies, f.dependencies = null === d ? null : {\n expirationTime: d.expirationTime,\n firstContext: d.firstContext,\n responders: d.responders\n }), e = e.sibling;\n z(I, I.current & 1 | 2, b);\n b = b.child;\n break a;\n }\n c = c.sibling;\n }\n }\n } else {\n if (!f) if (c = ud(g), null !== c) {\n if (b.effectTag |= 64, f = !0, c = c.updateQueue, null !== c && (b.updateQueue = c, b.effectTag |= 4), Le(e, !0), null === e.tail && \"hidden\" === e.tailMode && !g.alternate) {\n b = b.lastEffect = e.lastEffect;\n null !== b && (b.nextEffect = null);\n break;\n }\n } else E() > e.tailExpiration && 1 < d && (b.effectTag |= 64, f = !0, Le(e, !1), b.expirationTime = b.childExpirationTime = d - 1);\n e.isBackwards ? (g.sibling = b.child, b.child = g) : (c = e.last, null !== c ? c.sibling = g : b.child = g, e.last = g);\n }\n if (null !== e.tail) {\n 0 === e.tailExpiration && (e.tailExpiration = E() + 500);\n c = e.tail;\n e.rendering = c;\n e.tail = c.sibling;\n e.lastEffect = b.lastEffect;\n c.sibling = null;\n e = I.current;\n e = f ? e & 1 | 2 : e & 1;\n z(I, e, b);\n b = c;\n break a;\n }\n break;\n case 20:\n break;\n case 21:\n break;\n default:\n throw Error(n(156, b.tag));\n }\n b = null;\n }\n c = V;\n if (1 === W || 1 !== c.childExpirationTime) {\n e = 0;\n for (f = c.child; null !== f;) d = f.expirationTime, g = f.childExpirationTime, d > e && (e = d), g > e && (e = g), f = f.sibling;\n c.childExpirationTime = e;\n }\n if (null !== b) return b;\n null !== a && 0 === (a.effectTag & 2048) && (null === a.firstEffect && (a.firstEffect = V.firstEffect), null !== V.lastEffect && (null !== a.lastEffect && (a.lastEffect.nextEffect = V.firstEffect), a.lastEffect = V.lastEffect), 1 < V.effectTag && (null !== a.lastEffect ? a.lastEffect.nextEffect = V : a.firstEffect = V, a.lastEffect = V));\n } else {\n b = Me(V, W);\n if (null !== b) return b.effectTag &= 2047, b;\n null !== a && (a.firstEffect = a.lastEffect = null, a.effectTag |= 2048);\n }\n b = V.sibling;\n if (null !== b) return b;\n V = a;\n } while (null !== V);\n X === tf && (X = yf);\n return null;\n }\n function $f(a) {\n var b = a.expirationTime;\n a = a.childExpirationTime;\n return b > a ? b : a;\n }\n function ag(a) {\n var b = fc();\n hc(99, jg.bind(null, a, b));\n return null;\n }\n function jg(a, b) {\n do Vf(); while (null !== Hf);\n if ((T & (S | sf)) !== R) throw Error(n(327));\n var c = a.finishedWork,\n d = a.finishedExpirationTime;\n if (null === c) return null;\n a.finishedWork = null;\n a.finishedExpirationTime = 0;\n if (c === a.current) throw Error(n(177));\n a.callbackNode = null;\n a.callbackExpirationTime = 0;\n a.callbackPriority = 90;\n a.nextKnownPendingLevel = 0;\n var e = $f(c);\n a.firstPendingTime = e;\n d <= a.lastSuspendedTime ? a.firstSuspendedTime = a.lastSuspendedTime = a.nextKnownPendingLevel = 0 : d <= a.firstSuspendedTime && (a.firstSuspendedTime = d - 1);\n d <= a.lastPingedTime && (a.lastPingedTime = 0);\n d <= a.lastExpiredTime && (a.lastExpiredTime = 0);\n a === U && (V = U = null, W = 0);\n 1 < c.effectTag ? null !== c.lastEffect ? (c.lastEffect.nextEffect = c, e = c.firstEffect) : e = c : e = c.firstEffect;\n if (null !== e) {\n var f = T;\n T |= sf;\n qf.current = null;\n Ca(a.containerInfo);\n Y = e;\n do try {\n kg();\n } catch (jb) {\n if (null === Y) throw Error(n(330));\n Re(Y, jb);\n Y = Y.nextEffect;\n } while (null !== Y);\n Y = e;\n do try {\n for (var g = a, l = b; null !== Y;) {\n var h = Y.effectTag;\n h & 16 && Qa && bb(Y.stateNode);\n if (h & 128) {\n var k = Y.alternate;\n if (null !== k) {\n var p = k.ref;\n null !== p && (\"function\" === typeof p ? p(null) : p.current = null);\n }\n }\n switch (h & 1038) {\n case 2:\n bf(Y);\n Y.effectTag &= -3;\n break;\n case 6:\n bf(Y);\n Y.effectTag &= -3;\n cf(Y.alternate, Y);\n break;\n case 1024:\n Y.effectTag &= -1025;\n break;\n case 1028:\n Y.effectTag &= -1025;\n cf(Y.alternate, Y);\n break;\n case 4:\n cf(Y.alternate, Y);\n break;\n case 8:\n var D = g,\n x = Y,\n K = l;\n Qa ? Xe(D, x, K) : Ze(D, x, K);\n $e(x);\n }\n Y = Y.nextEffect;\n }\n } catch (jb) {\n if (null === Y) throw Error(n(330));\n Re(Y, jb);\n Y = Y.nextEffect;\n } while (null !== Y);\n Da(a.containerInfo);\n a.current = c;\n Y = e;\n do try {\n for (h = d; null !== Y;) {\n var Ha = Y.effectTag;\n if (Ha & 36) {\n var O = Y.alternate;\n k = Y;\n p = h;\n switch (k.tag) {\n case 0:\n case 11:\n case 15:\n Ue(16, 32, k);\n break;\n case 1:\n var w = k.stateNode;\n if (k.effectTag & 4) if (null === O) w.componentDidMount();else {\n var r = k.elementType === k.type ? O.memoizedProps : rc(k.type, O.memoizedProps);\n w.componentDidUpdate(r, O.memoizedState, w.__reactInternalSnapshotBeforeUpdate);\n }\n var t = k.updateQueue;\n null !== t && Qc(k, t, w, p);\n break;\n case 3:\n var N = k.updateQueue;\n if (null !== N) {\n g = null;\n if (null !== k.child) switch (k.child.tag) {\n case 5:\n g = za(k.child.stateNode);\n break;\n case 1:\n g = k.child.stateNode;\n }\n Qc(k, N, g, p);\n }\n break;\n case 5:\n var Mc = k.stateNode;\n null === O && k.effectTag & 4 && Wa(Mc, k.type, k.memoizedProps, k);\n break;\n case 6:\n break;\n case 4:\n break;\n case 12:\n break;\n case 13:\n if (Sa && null === k.memoizedState) {\n var Sb = k.alternate;\n if (null !== Sb) {\n var le = Sb.memoizedState;\n if (null !== le) {\n var me = le.dehydrated;\n null !== me && yb(me);\n }\n }\n }\n break;\n case 19:\n case 17:\n case 20:\n case 21:\n break;\n default:\n throw Error(n(163));\n }\n }\n if (Ha & 128) {\n k = void 0;\n var Tb = Y.ref;\n if (null !== Tb) {\n var v = Y.stateNode;\n switch (Y.tag) {\n case 5:\n k = za(v);\n break;\n default:\n k = v;\n }\n \"function\" === typeof Tb ? Tb(k) : Tb.current = k;\n }\n }\n Y = Y.nextEffect;\n }\n } catch (jb) {\n if (null === Y) throw Error(n(330));\n Re(Y, jb);\n Y = Y.nextEffect;\n } while (null !== Y);\n Y = null;\n ac();\n T = f;\n } else a.current = c;\n if (Gf) Gf = !1, Hf = a, If = b;else for (Y = e; null !== Y;) b = Y.nextEffect, Y.nextEffect = null, Y = b;\n b = a.firstPendingTime;\n 0 === b && (nf = null);\n 1073741823 === b ? a === Lf ? Kf++ : (Kf = 0, Lf = a) : Kf = 0;\n \"function\" === typeof lg && lg(c.stateNode, d);\n Z(a);\n if (kf) throw kf = !1, a = lf, lf = null, a;\n if ((T & rf) !== R) return null;\n F();\n return null;\n }\n function kg() {\n for (; null !== Y;) {\n var a = Y.effectTag;\n 0 !== (a & 256) && Te(Y.alternate, Y);\n 0 === (a & 512) || Gf || (Gf = !0, ic(97, function () {\n Vf();\n return null;\n }));\n Y = Y.nextEffect;\n }\n }\n function Vf() {\n if (90 !== If) {\n var a = 97 < If ? 97 : If;\n If = 90;\n return hc(a, mg);\n }\n }\n function mg() {\n if (null === Hf) return !1;\n var a = Hf;\n Hf = null;\n if ((T & (S | sf)) !== R) throw Error(n(331));\n var b = T;\n T |= sf;\n for (a = a.current.firstEffect; null !== a;) {\n try {\n var c = a;\n if (0 !== (c.effectTag & 512)) switch (c.tag) {\n case 0:\n case 11:\n case 15:\n Ue(128, 0, c), Ue(0, 64, c);\n }\n } catch (d) {\n if (null === a) throw Error(n(330));\n Re(a, d);\n }\n c = a.nextEffect;\n a.nextEffect = null;\n a = c;\n }\n T = b;\n F();\n return !0;\n }\n function ng(a, b, c) {\n b = Ne(c, b);\n b = jf(a, b, 1073741823);\n Ic(a, b);\n a = Nf(a, 1073741823);\n null !== a && Z(a);\n }\n function Re(a, b) {\n if (3 === a.tag) ng(a, a, b);else for (var c = a.return; null !== c;) {\n if (3 === c.tag) {\n ng(c, a, b);\n break;\n } else if (1 === c.tag) {\n var d = c.stateNode;\n if (\"function\" === typeof c.type.getDerivedStateFromError || \"function\" === typeof d.componentDidCatch && (null === nf || !nf.has(d))) {\n a = Ne(b, a);\n a = mf(c, a, 1073741823);\n Ic(c, a);\n c = Nf(c, 1073741823);\n null !== c && Z(c);\n break;\n }\n }\n c = c.return;\n }\n }\n function fg(a, b, c) {\n var d = a.pingCache;\n null !== d && d.delete(b);\n U === a && W === c ? X === xf || X === wf && 1073741823 === Af && E() - ff < Ff ? Wf(a, W) : Ef = !0 : Sf(a, c) && (b = a.lastPingedTime, 0 !== b && b < c || (a.lastPingedTime = c, a.finishedExpirationTime === c && (a.finishedExpirationTime = 0, a.finishedWork = null), Z(a)));\n }\n function gf(a, b) {\n var c = a.stateNode;\n null !== c && c.delete(b);\n b = 0;\n 0 === b && (b = G(), b = Vc(b, a, null));\n a = Nf(a, b);\n null !== a && Z(a);\n }\n var ig;\n ig = function (a, b, c) {\n var d = b.expirationTime;\n if (null !== a) {\n var e = b.pendingProps;\n if (a.memoizedProps !== e || B.current) Bc = !0;else {\n if (d < c) {\n Bc = !1;\n switch (b.tag) {\n case 3:\n ze(b);\n oe();\n break;\n case 5:\n sd(b);\n if (b.mode & 4 && 1 !== c && Ka(b.type, e)) return b.expirationTime = b.childExpirationTime = 1, null;\n break;\n case 1:\n C(b.type) && Kb(b);\n break;\n case 4:\n qd(b, b.stateNode.containerInfo);\n break;\n case 10:\n xc(b, b.memoizedProps.value);\n break;\n case 13:\n if (null !== b.memoizedState) {\n d = b.child.childExpirationTime;\n if (0 !== d && d >= c) return Be(a, b, c);\n z(I, I.current & 1, b);\n b = re(a, b, c);\n return null !== b ? b.sibling : null;\n }\n z(I, I.current & 1, b);\n break;\n case 19:\n d = b.childExpirationTime >= c;\n if (0 !== (a.effectTag & 64)) {\n if (d) return Ee(a, b, c);\n b.effectTag |= 64;\n }\n e = b.memoizedState;\n null !== e && (e.rendering = null, e.tail = null);\n z(I, I.current, b);\n if (!d) return null;\n }\n return re(a, b, c);\n }\n Bc = !1;\n }\n } else Bc = !1;\n b.expirationTime = 0;\n switch (b.tag) {\n case 2:\n d = b.type;\n null !== a && (a.alternate = null, b.alternate = null, b.effectTag |= 2);\n a = b.pendingProps;\n e = Fb(b, A.current);\n Ac(b, c);\n e = Jd(null, b, d, a, e, c);\n b.effectTag |= 1;\n if (\"object\" === typeof e && null !== e && \"function\" === typeof e.render && void 0 === e.$$typeof) {\n b.tag = 1;\n Nd();\n if (C(d)) {\n var f = !0;\n Kb(b);\n } else f = !1;\n b.memoizedState = null !== e.state && void 0 !== e.state ? e.state : null;\n var g = d.getDerivedStateFromProps;\n \"function\" === typeof g && Uc(b, d, g, a);\n e.updater = Xc;\n b.stateNode = e;\n e._reactInternalFiber = b;\n ad(b, d, a, c);\n b = ye(null, b, d, !0, f, c);\n } else b.tag = 0, Q(null, b, e, c), b = b.child;\n return b;\n case 16:\n e = b.elementType;\n null !== a && (a.alternate = null, b.alternate = null, b.effectTag |= 2);\n a = b.pendingProps;\n sa(e);\n if (1 !== e._status) throw e._result;\n e = e._result;\n b.type = e;\n f = b.tag = og(e);\n a = rc(e, a);\n switch (f) {\n case 0:\n b = ve(null, b, e, a, c);\n break;\n case 1:\n b = xe(null, b, e, a, c);\n break;\n case 11:\n b = qe(null, b, e, a, c);\n break;\n case 14:\n b = se(null, b, e, rc(e.type, a), d, c);\n break;\n default:\n throw Error(n(306, e, \"\"));\n }\n return b;\n case 0:\n return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : rc(d, e), ve(a, b, d, e, c);\n case 1:\n return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : rc(d, e), xe(a, b, d, e, c);\n case 3:\n ze(b);\n d = b.updateQueue;\n if (null === d) throw Error(n(282));\n e = b.memoizedState;\n e = null !== e ? e.element : null;\n Nc(b, d, b.pendingProps, null, c);\n d = b.memoizedState.element;\n if (d === e) oe(), b = re(a, b, c);else {\n if (e = b.stateNode.hydrate) Sa ? (ee = tb(b.stateNode.containerInfo), de = b, e = fe = !0) : e = !1;\n if (e) for (c = ld(b, null, d, c), b.child = c; c;) c.effectTag = c.effectTag & -3 | 1024, c = c.sibling;else Q(a, b, d, c), oe();\n b = b.child;\n }\n return b;\n case 5:\n return sd(b), null === a && je(b), d = b.type, e = b.pendingProps, f = null !== a ? a.memoizedProps : null, g = e.children, Ja(d, e) ? g = null : null !== f && Ja(d, f) && (b.effectTag |= 16), we(a, b), b.mode & 4 && 1 !== c && Ka(d, e) ? (b.expirationTime = b.childExpirationTime = 1, b = null) : (Q(a, b, g, c), b = b.child), b;\n case 6:\n return null === a && je(b), null;\n case 13:\n return Be(a, b, c);\n case 4:\n return qd(b, b.stateNode.containerInfo), d = b.pendingProps, null === a ? b.child = kd(b, null, d, c) : Q(a, b, d, c), b.child;\n case 11:\n return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : rc(d, e), qe(a, b, d, e, c);\n case 7:\n return Q(a, b, b.pendingProps, c), b.child;\n case 8:\n return Q(a, b, b.pendingProps.children, c), b.child;\n case 12:\n return Q(a, b, b.pendingProps.children, c), b.child;\n case 10:\n a: {\n d = b.type._context;\n e = b.pendingProps;\n g = b.memoizedProps;\n f = e.value;\n xc(b, f);\n if (null !== g) {\n var l = g.value;\n f = oc(l, f) ? 0 : (\"function\" === typeof d._calculateChangedBits ? d._calculateChangedBits(l, f) : 1073741823) | 0;\n if (0 === f) {\n if (g.children === e.children && !B.current) {\n b = re(a, b, c);\n break a;\n }\n } else for (l = b.child, null !== l && (l.return = b); null !== l;) {\n var h = l.dependencies;\n if (null !== h) {\n g = l.child;\n for (var k = h.firstContext; null !== k;) {\n if (k.context === d && 0 !== (k.observedBits & f)) {\n 1 === l.tag && (k = Gc(c, null), k.tag = 2, Ic(l, k));\n l.expirationTime < c && (l.expirationTime = c);\n k = l.alternate;\n null !== k && k.expirationTime < c && (k.expirationTime = c);\n zc(l.return, c);\n h.expirationTime < c && (h.expirationTime = c);\n break;\n }\n k = k.next;\n }\n } else g = 10 === l.tag ? l.type === b.type ? null : l.child : l.child;\n if (null !== g) g.return = l;else for (g = l; null !== g;) {\n if (g === b) {\n g = null;\n break;\n }\n l = g.sibling;\n if (null !== l) {\n l.return = g.return;\n g = l;\n break;\n }\n g = g.return;\n }\n l = g;\n }\n }\n Q(a, b, e.children, c);\n b = b.child;\n }\n return b;\n case 9:\n return e = b.type, f = b.pendingProps, d = f.children, Ac(b, c), e = Cc(e, f.unstable_observedBits), d = d(e), b.effectTag |= 1, Q(a, b, d, c), b.child;\n case 14:\n return e = b.type, f = rc(e, b.pendingProps), f = rc(e.type, f), se(a, b, e, f, d, c);\n case 15:\n return ue(a, b, b.type, b.pendingProps, d, c);\n case 17:\n return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : rc(d, e), null !== a && (a.alternate = null, b.alternate = null, b.effectTag |= 2), b.tag = 1, C(d) ? (a = !0, Kb(b)) : a = !1, Ac(b, c), Zc(b, d, e, c), ad(b, d, e, c), ye(null, b, d, !0, a, c);\n case 19:\n return Ee(a, b, c);\n }\n throw Error(n(156, b.tag));\n };\n var lg = null,\n We = null;\n function pg(a) {\n if (\"undefined\" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) return !1;\n var b = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (b.isDisabled || !b.supportsFiber) return !0;\n try {\n var c = b.inject(a);\n lg = function (a) {\n try {\n b.onCommitFiberRoot(c, a, void 0, 64 === (a.current.effectTag & 64));\n } catch (e) {}\n };\n We = function (a) {\n try {\n b.onCommitFiberUnmount(c, a);\n } catch (e) {}\n };\n } catch (d) {}\n return !0;\n }\n function qg(a, b, c, d) {\n this.tag = a;\n this.key = c;\n this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null;\n this.index = 0;\n this.ref = null;\n this.pendingProps = b;\n this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null;\n this.mode = d;\n this.effectTag = 0;\n this.lastEffect = this.firstEffect = this.nextEffect = null;\n this.childExpirationTime = this.expirationTime = 0;\n this.alternate = null;\n }\n function he(a, b, c, d) {\n return new qg(a, b, c, d);\n }\n function te(a) {\n a = a.prototype;\n return !(!a || !a.isReactComponent);\n }\n function og(a) {\n if (\"function\" === typeof a) return te(a) ? 1 : 0;\n if (void 0 !== a && null !== a) {\n a = a.$$typeof;\n if (a === la) return 11;\n if (a === oa) return 14;\n }\n return 2;\n }\n function fd(a, b) {\n var c = a.alternate;\n null === c ? (c = he(a.tag, b, a.key, a.mode), c.elementType = a.elementType, c.type = a.type, c.stateNode = a.stateNode, c.alternate = a, a.alternate = c) : (c.pendingProps = b, c.effectTag = 0, c.nextEffect = null, c.firstEffect = null, c.lastEffect = null);\n c.childExpirationTime = a.childExpirationTime;\n c.expirationTime = a.expirationTime;\n c.child = a.child;\n c.memoizedProps = a.memoizedProps;\n c.memoizedState = a.memoizedState;\n c.updateQueue = a.updateQueue;\n b = a.dependencies;\n c.dependencies = null === b ? null : {\n expirationTime: b.expirationTime,\n firstContext: b.firstContext,\n responders: b.responders\n };\n c.sibling = a.sibling;\n c.index = a.index;\n c.ref = a.ref;\n return c;\n }\n function hd(a, b, c, d, e, f) {\n var g = 2;\n d = a;\n if (\"function\" === typeof a) te(a) && (g = 1);else if (\"string\" === typeof a) g = 5;else a: switch (a) {\n case ea:\n return jd(c.children, e, f, b);\n case ka:\n g = 8;\n e |= 7;\n break;\n case fa:\n g = 8;\n e |= 1;\n break;\n case ha:\n return a = he(12, c, b, e | 8), a.elementType = ha, a.type = ha, a.expirationTime = f, a;\n case ma:\n return a = he(13, c, b, e), a.type = ma, a.elementType = ma, a.expirationTime = f, a;\n case na:\n return a = he(19, c, b, e), a.elementType = na, a.expirationTime = f, a;\n default:\n if (\"object\" === typeof a && null !== a) switch (a.$$typeof) {\n case ia:\n g = 10;\n break a;\n case ja:\n g = 9;\n break a;\n case la:\n g = 11;\n break a;\n case oa:\n g = 14;\n break a;\n case pa:\n g = 16;\n d = null;\n break a;\n }\n throw Error(n(130, null == a ? a : typeof a, \"\"));\n }\n b = he(g, c, b, e);\n b.elementType = a;\n b.type = d;\n b.expirationTime = f;\n return b;\n }\n function jd(a, b, c, d) {\n a = he(7, a, d, b);\n a.expirationTime = c;\n return a;\n }\n function gd(a, b, c) {\n a = he(6, a, null, b);\n a.expirationTime = c;\n return a;\n }\n function id(a, b, c) {\n b = he(4, null !== a.children ? a.children : [], a.key, b);\n b.expirationTime = c;\n b.stateNode = {\n containerInfo: a.containerInfo,\n pendingChildren: null,\n implementation: a.implementation\n };\n return b;\n }\n function rg(a, b, c) {\n this.tag = b;\n this.current = null;\n this.containerInfo = a;\n this.pingCache = this.pendingChildren = null;\n this.finishedExpirationTime = 0;\n this.finishedWork = null;\n this.timeoutHandle = Oa;\n this.pendingContext = this.context = null;\n this.hydrate = c;\n this.callbackNode = null;\n this.callbackPriority = 90;\n this.lastExpiredTime = this.lastPingedTime = this.nextKnownPendingLevel = this.lastSuspendedTime = this.firstSuspendedTime = this.firstPendingTime = 0;\n }\n function Sf(a, b) {\n var c = a.firstSuspendedTime;\n a = a.lastSuspendedTime;\n return 0 !== c && c >= b && a <= b;\n }\n function Pf(a, b) {\n var c = a.firstSuspendedTime,\n d = a.lastSuspendedTime;\n c < b && (a.firstSuspendedTime = b);\n if (d > b || 0 === c) a.lastSuspendedTime = b;\n b <= a.lastPingedTime && (a.lastPingedTime = 0);\n b <= a.lastExpiredTime && (a.lastExpiredTime = 0);\n }\n function Qf(a, b) {\n b > a.firstPendingTime && (a.firstPendingTime = b);\n var c = a.firstSuspendedTime;\n 0 !== c && (b >= c ? a.firstSuspendedTime = a.lastSuspendedTime = a.nextKnownPendingLevel = 0 : b >= a.lastSuspendedTime && (a.lastSuspendedTime = b + 1), b > a.nextKnownPendingLevel && (a.nextKnownPendingLevel = b));\n }\n function Uf(a, b) {\n var c = a.lastExpiredTime;\n if (0 === c || c > b) a.lastExpiredTime = b;\n }\n function sg(a) {\n var b = a._reactInternalFiber;\n if (void 0 === b) {\n if (\"function\" === typeof a.render) throw Error(n(188));\n throw Error(n(268, Object.keys(a)));\n }\n a = xa(b);\n return null === a ? null : a.stateNode;\n }\n function tg(a, b) {\n a = a.memoizedState;\n null !== a && null !== a.dehydrated && a.retryTime < b && (a.retryTime = b);\n }\n function ug(a, b) {\n tg(a, b);\n (a = a.alternate) && tg(a, b);\n }\n var vg = {\n createContainer: function (a, b, c) {\n a = new rg(a, b, c);\n b = he(3, null, null, 2 === b ? 7 : 1 === b ? 3 : 0);\n a.current = b;\n return b.stateNode = a;\n },\n updateContainer: function (a, b, c, d) {\n var e = b.current,\n f = G(),\n g = Sc.suspense;\n f = Vc(f, e, g);\n a: if (c) {\n c = c._reactInternalFiber;\n b: {\n if (ua(c) !== c || 1 !== c.tag) throw Error(n(170));\n var l = c;\n do {\n switch (l.tag) {\n case 3:\n l = l.stateNode.context;\n break b;\n case 1:\n if (C(l.type)) {\n l = l.stateNode.__reactInternalMemoizedMergedChildContext;\n break b;\n }\n }\n l = l.return;\n } while (null !== l);\n throw Error(n(171));\n }\n if (1 === c.tag) {\n var h = c.type;\n if (C(h)) {\n c = Jb(c, h, l);\n break a;\n }\n }\n c = l;\n } else c = Db;\n null === b.context ? b.context = c : b.pendingContext = c;\n b = Gc(f, g);\n b.payload = {\n element: a\n };\n d = void 0 === d ? null : d;\n null !== d && (b.callback = d);\n Ic(e, b);\n Wc(e, f);\n return f;\n },\n batchedEventUpdates: function (a, b) {\n var c = T;\n T |= 2;\n try {\n return a(b);\n } finally {\n T = c, T === R && F();\n }\n },\n batchedUpdates: function (a, b) {\n var c = T;\n T |= 1;\n try {\n return a(b);\n } finally {\n T = c, T === R && F();\n }\n },\n unbatchedUpdates: function (a, b) {\n var c = T;\n T &= -2;\n T |= rf;\n try {\n return a(b);\n } finally {\n T = c, T === R && F();\n }\n },\n deferredUpdates: function (a) {\n return hc(97, a);\n },\n syncUpdates: function (a, b, c, d) {\n return hc(99, a.bind(null, b, c, d));\n },\n discreteUpdates: function (a, b, c, d) {\n var e = T;\n T |= 4;\n try {\n return hc(98, a.bind(null, b, c, d));\n } finally {\n T = e, T === R && F();\n }\n },\n flushDiscreteUpdates: function () {\n (T & (1 | S | sf)) === R && (dg(), Vf());\n },\n flushControlled: function (a) {\n var b = T;\n T |= 1;\n try {\n hc(99, a);\n } finally {\n T = b, T === R && F();\n }\n },\n flushSync: eg,\n flushPassiveEffects: Vf,\n IsThisRendererActing: {\n current: !1\n },\n getPublicRootInstance: function (a) {\n a = a.current;\n if (!a.child) return null;\n switch (a.child.tag) {\n case 5:\n return za(a.child.stateNode);\n default:\n return a.child.stateNode;\n }\n },\n attemptSynchronousHydration: function (a) {\n switch (a.tag) {\n case 3:\n var b = a.stateNode;\n b.hydrate && cg(b, b.firstPendingTime);\n break;\n case 13:\n eg(function () {\n return Wc(a, 1073741823);\n }), b = mc(G(), 150, 100), ug(a, b);\n }\n },\n attemptUserBlockingHydration: function (a) {\n if (13 === a.tag) {\n var b = mc(G(), 150, 100);\n Wc(a, b);\n ug(a, b);\n }\n },\n attemptContinuousHydration: function (a) {\n if (13 === a.tag) {\n G();\n var b = lc++;\n Wc(a, b);\n ug(a, b);\n }\n },\n attemptHydrationAtCurrentPriority: function (a) {\n if (13 === a.tag) {\n var b = G();\n b = Vc(b, a, null);\n Wc(a, b);\n ug(a, b);\n }\n },\n findHostInstance: sg,\n findHostInstanceWithWarning: function (a) {\n return sg(a);\n },\n findHostInstanceWithNoPortals: function (a) {\n a = ya(a);\n return null === a ? null : 20 === a.tag ? a.stateNode.instance : a.stateNode;\n },\n shouldSuspend: function () {\n return !1;\n },\n injectIntoDevTools: function (a) {\n var b = a.findFiberByHostInstance;\n return pg(aa({}, a, {\n overrideHookState: null,\n overrideProps: null,\n setSuspenseHandler: null,\n scheduleUpdate: null,\n currentDispatcherRef: q.ReactCurrentDispatcher,\n findHostInstanceByFiber: function (a) {\n a = xa(a);\n return null === a ? null : a.stateNode;\n },\n findFiberByHostInstance: function (a) {\n return b ? b(a) : null;\n },\n findHostInstancesForRefresh: null,\n scheduleRefresh: null,\n scheduleRoot: null,\n setRefreshHandler: null,\n getCurrentFiber: null\n }));\n }\n };\n module.exports = vg.default || vg;\n var $$$renderer = module.exports;\n module.exports = $$$reconciler;\n return $$$renderer;\n};","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Factory_1 = require(\"./Factory\");\nvar Node_1 = require(\"./Node\");\nvar Validators_1 = require(\"./Validators\");\nvar Global_1 = require(\"./Global\");\nvar PointerEvents = require(\"./PointerEvents\");\nvar HAS_SHADOW = 'hasShadow';\nvar SHADOW_RGBA = 'shadowRGBA';\nvar patternImage = 'patternImage';\nvar linearGradient = 'linearGradient';\nvar radialGradient = 'radialGradient';\nvar dummyContext;\nfunction getDummyContext() {\n if (dummyContext) {\n return dummyContext;\n }\n dummyContext = Util_1.Util.createCanvasElement().getContext('2d');\n return dummyContext;\n}\nexports.shapes = {};\nfunction _fillFunc(context) {\n context.fill();\n}\nfunction _strokeFunc(context) {\n context.stroke();\n}\nfunction _fillFuncHit(context) {\n context.fill();\n}\nfunction _strokeFuncHit(context) {\n context.stroke();\n}\nfunction _clearHasShadowCache() {\n this._clearCache(HAS_SHADOW);\n}\nfunction _clearGetShadowRGBACache() {\n this._clearCache(SHADOW_RGBA);\n}\nfunction _clearFillPatternCache() {\n this._clearCache(patternImage);\n}\nfunction _clearLinearGradientCache() {\n this._clearCache(linearGradient);\n}\nfunction _clearRadialGradientCache() {\n this._clearCache(radialGradient);\n}\nvar Shape = function (_super) {\n __extends(Shape, _super);\n function Shape(config) {\n var _this = _super.call(this, config) || this;\n var key;\n while (true) {\n key = Util_1.Util.getRandomColor();\n if (key && !(key in exports.shapes)) {\n break;\n }\n }\n _this.colorKey = key;\n exports.shapes[key] = _this;\n _this.on('shadowColorChange.konva shadowBlurChange.konva shadowOffsetChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearHasShadowCache);\n _this.on('shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearGetShadowRGBACache);\n _this.on('fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva', _clearFillPatternCache);\n _this.on('fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva', _clearLinearGradientCache);\n _this.on('fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva', _clearRadialGradientCache);\n return _this;\n }\n Shape.prototype.getContext = function () {\n return this.getLayer().getContext();\n };\n Shape.prototype.getCanvas = function () {\n return this.getLayer().getCanvas();\n };\n Shape.prototype.getSceneFunc = function () {\n return this.attrs.sceneFunc || this['_sceneFunc'];\n };\n Shape.prototype.getHitFunc = function () {\n return this.attrs.hitFunc || this['_hitFunc'];\n };\n Shape.prototype.hasShadow = function () {\n return this._getCache(HAS_SHADOW, this._hasShadow);\n };\n Shape.prototype._hasShadow = function () {\n return this.shadowEnabled() && this.shadowOpacity() !== 0 && !!(this.shadowColor() || this.shadowBlur() || this.shadowOffsetX() || this.shadowOffsetY());\n };\n Shape.prototype._getFillPattern = function () {\n return this._getCache(patternImage, this.__getFillPattern);\n };\n Shape.prototype.__getFillPattern = function () {\n if (this.fillPatternImage()) {\n var ctx = getDummyContext();\n var pattern = ctx.createPattern(this.fillPatternImage(), this.fillPatternRepeat() || 'repeat');\n return pattern;\n }\n };\n Shape.prototype._getLinearGradient = function () {\n return this._getCache(linearGradient, this.__getLinearGradient);\n };\n Shape.prototype.__getLinearGradient = function () {\n var colorStops = this.fillLinearGradientColorStops();\n if (colorStops) {\n var ctx = getDummyContext();\n var start = this.fillLinearGradientStartPoint();\n var end = this.fillLinearGradientEndPoint();\n var grd = ctx.createLinearGradient(start.x, start.y, end.x, end.y);\n for (var n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n };\n Shape.prototype._getRadialGradient = function () {\n return this._getCache(radialGradient, this.__getRadialGradient);\n };\n Shape.prototype.__getRadialGradient = function () {\n var colorStops = this.fillRadialGradientColorStops();\n if (colorStops) {\n var ctx = getDummyContext();\n var start = this.fillRadialGradientStartPoint();\n var end = this.fillRadialGradientEndPoint();\n var grd = ctx.createRadialGradient(start.x, start.y, this.fillRadialGradientStartRadius(), end.x, end.y, this.fillRadialGradientEndRadius());\n for (var n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n };\n Shape.prototype.getShadowRGBA = function () {\n return this._getCache(SHADOW_RGBA, this._getShadowRGBA);\n };\n Shape.prototype._getShadowRGBA = function () {\n if (this.hasShadow()) {\n var rgba = Util_1.Util.colorToRGBA(this.shadowColor());\n return 'rgba(' + rgba.r + ',' + rgba.g + ',' + rgba.b + ',' + rgba.a * (this.shadowOpacity() || 1) + ')';\n }\n };\n Shape.prototype.hasFill = function () {\n return this.fillEnabled() && !!(this.fill() || this.fillPatternImage() || this.fillLinearGradientColorStops() || this.fillRadialGradientColorStops());\n };\n Shape.prototype.hasStroke = function () {\n return this.strokeEnabled() && this.strokeWidth() && !!(this.stroke() || this.strokeLinearGradientColorStops());\n };\n Shape.prototype.hasHitStroke = function () {\n var width = this.hitStrokeWidth();\n if (width === 'auto') {\n return this.hasStroke();\n }\n return this.strokeEnabled() && !!width;\n };\n Shape.prototype.intersects = function (point) {\n var stage = this.getStage(),\n bufferHitCanvas = stage.bufferHitCanvas,\n p;\n bufferHitCanvas.getContext().clear();\n this.drawHit(bufferHitCanvas);\n p = bufferHitCanvas.context.getImageData(Math.round(point.x), Math.round(point.y), 1, 1).data;\n return p[3] > 0;\n };\n Shape.prototype.destroy = function () {\n Node_1.Node.prototype.destroy.call(this);\n delete exports.shapes[this.colorKey];\n delete this.colorKey;\n return this;\n };\n Shape.prototype._useBufferCanvas = function (caching) {\n return !!((!caching || this.hasShadow()) && this.perfectDrawEnabled() && this.getAbsoluteOpacity() !== 1 && this.hasFill() && this.hasStroke() && this.getStage());\n };\n Shape.prototype.setStrokeHitEnabled = function (val) {\n Util_1.Util.warn('strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead.');\n if (val) {\n this.hitStrokeWidth('auto');\n } else {\n this.hitStrokeWidth(0);\n }\n };\n Shape.prototype.getStrokeHitEnabled = function () {\n if (this.hitStrokeWidth() === 0) {\n return false;\n } else {\n return true;\n }\n };\n Shape.prototype.getSelfRect = function () {\n var size = this.size();\n return {\n x: this._centroid ? -size.width / 2 : 0,\n y: this._centroid ? -size.height / 2 : 0,\n width: size.width,\n height: size.height\n };\n };\n Shape.prototype.getClientRect = function (attrs) {\n attrs = attrs || {};\n var skipTransform = attrs.skipTransform;\n var relativeTo = attrs.relativeTo;\n var fillRect = this.getSelfRect();\n var applyStroke = !attrs.skipStroke && this.hasStroke();\n var strokeWidth = applyStroke && this.strokeWidth() || 0;\n var fillAndStrokeWidth = fillRect.width + strokeWidth;\n var fillAndStrokeHeight = fillRect.height + strokeWidth;\n var applyShadow = !attrs.skipShadow && this.hasShadow();\n var shadowOffsetX = applyShadow ? this.shadowOffsetX() : 0;\n var shadowOffsetY = applyShadow ? this.shadowOffsetY() : 0;\n var preWidth = fillAndStrokeWidth + Math.abs(shadowOffsetX);\n var preHeight = fillAndStrokeHeight + Math.abs(shadowOffsetY);\n var blurRadius = applyShadow && this.shadowBlur() || 0;\n var width = preWidth + blurRadius * 2;\n var height = preHeight + blurRadius * 2;\n var roundingOffset = 0;\n if (Math.round(strokeWidth / 2) !== strokeWidth / 2) {\n roundingOffset = 1;\n }\n var rect = {\n width: width + roundingOffset,\n height: height + roundingOffset,\n x: -Math.round(strokeWidth / 2 + blurRadius) + Math.min(shadowOffsetX, 0) + fillRect.x,\n y: -Math.round(strokeWidth / 2 + blurRadius) + Math.min(shadowOffsetY, 0) + fillRect.y\n };\n if (!skipTransform) {\n return this._transformedRect(rect, relativeTo);\n }\n return rect;\n };\n Shape.prototype.drawScene = function (can, top, caching, skipBuffer) {\n var layer = this.getLayer(),\n canvas = can || layer.getCanvas(),\n context = canvas.getContext(),\n cachedCanvas = this._getCanvasCache(),\n drawFunc = this.sceneFunc(),\n hasShadow = this.hasShadow(),\n hasStroke = this.hasStroke(),\n stage,\n bufferCanvas,\n bufferContext;\n if (!this.isVisible() && !caching) {\n return this;\n }\n if (cachedCanvas) {\n context.save();\n layer._applyTransform(this, context, top);\n this._drawCachedSceneCanvas(context);\n context.restore();\n return this;\n }\n if (!drawFunc) {\n return this;\n }\n context.save();\n if (this._useBufferCanvas(caching) && !skipBuffer) {\n stage = this.getStage();\n bufferCanvas = stage.bufferCanvas;\n bufferContext = bufferCanvas.getContext();\n bufferContext.clear();\n bufferContext.save();\n bufferContext._applyLineJoin(this);\n if (!caching) {\n if (layer) {\n layer._applyTransform(this, bufferContext, top);\n } else {\n var m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n }\n }\n drawFunc.call(this, bufferContext, this);\n bufferContext.restore();\n var ratio = bufferCanvas.pixelRatio;\n if (hasShadow && !canvas.hitCanvas) {\n context.save();\n context._applyShadow(this);\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n context.drawImage(bufferCanvas._canvas, 0, 0, bufferCanvas.width / ratio, bufferCanvas.height / ratio);\n context.restore();\n } else {\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n context.drawImage(bufferCanvas._canvas, 0, 0, bufferCanvas.width / ratio, bufferCanvas.height / ratio);\n }\n } else {\n context._applyLineJoin(this);\n if (!caching) {\n if (layer) {\n layer._applyTransform(this, context, top);\n } else {\n var o = this.getAbsoluteTransform(top).getMatrix();\n context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n }\n }\n if (hasShadow && hasStroke && !canvas.hitCanvas) {\n context.save();\n if (!caching) {\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n }\n context._applyShadow(this);\n drawFunc.call(this, context, this);\n context.restore();\n if (this.hasFill() && this.shadowForStrokeEnabled()) {\n drawFunc.call(this, context, this);\n }\n } else if (hasShadow && !canvas.hitCanvas) {\n context.save();\n if (!caching) {\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n }\n context._applyShadow(this);\n drawFunc.call(this, context, this);\n context.restore();\n } else {\n if (!caching) {\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n }\n drawFunc.call(this, context, this);\n }\n }\n context.restore();\n return this;\n };\n Shape.prototype.drawHit = function (can, top, caching) {\n var layer = this.getLayer(),\n canvas = can || layer.hitCanvas,\n context = canvas && canvas.getContext(),\n drawFunc = this.hitFunc() || this.sceneFunc(),\n cachedCanvas = this._getCanvasCache(),\n cachedHitCanvas = cachedCanvas && cachedCanvas.hit;\n if (!this.colorKey) {\n console.log(this);\n Util_1.Util.warn('Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. See the shape in logs above. If you want to reuse shape you should call remove() instead of destroy()');\n }\n if (!this.shouldDrawHit() && !caching) {\n return this;\n }\n if (cachedHitCanvas) {\n context.save();\n layer._applyTransform(this, context, top);\n this._drawCachedHitCanvas(context);\n context.restore();\n return this;\n }\n if (!drawFunc) {\n return this;\n }\n context.save();\n context._applyLineJoin(this);\n if (!caching) {\n if (layer) {\n layer._applyTransform(this, context, top);\n } else {\n var o = this.getAbsoluteTransform(top).getMatrix();\n context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n }\n }\n drawFunc.call(this, context, this);\n context.restore();\n return this;\n };\n Shape.prototype.drawHitFromCache = function (alphaThreshold) {\n if (alphaThreshold === void 0) {\n alphaThreshold = 0;\n }\n var cachedCanvas = this._getCanvasCache(),\n sceneCanvas = this._getCachedSceneCanvas(),\n hitCanvas = cachedCanvas.hit,\n hitContext = hitCanvas.getContext(),\n hitWidth = hitCanvas.getWidth(),\n hitHeight = hitCanvas.getHeight(),\n hitImageData,\n hitData,\n len,\n rgbColorKey,\n i,\n alpha;\n hitContext.clear();\n hitContext.drawImage(sceneCanvas._canvas, 0, 0, hitWidth, hitHeight);\n try {\n hitImageData = hitContext.getImageData(0, 0, hitWidth, hitHeight);\n hitData = hitImageData.data;\n len = hitData.length;\n rgbColorKey = Util_1.Util._hexToRgb(this.colorKey);\n for (i = 0; i < len; i += 4) {\n alpha = hitData[i + 3];\n if (alpha > alphaThreshold) {\n hitData[i] = rgbColorKey.r;\n hitData[i + 1] = rgbColorKey.g;\n hitData[i + 2] = rgbColorKey.b;\n hitData[i + 3] = 255;\n } else {\n hitData[i + 3] = 0;\n }\n }\n hitContext.putImageData(hitImageData, 0, 0);\n } catch (e) {\n Util_1.Util.error('Unable to draw hit graph from cached scene canvas. ' + e.message);\n }\n return this;\n };\n Shape.prototype.hasPointerCapture = function (pointerId) {\n return PointerEvents.hasPointerCapture(pointerId, this);\n };\n Shape.prototype.setPointerCapture = function (pointerId) {\n PointerEvents.setPointerCapture(pointerId, this);\n };\n Shape.prototype.releaseCapture = function (pointerId) {\n PointerEvents.releaseCapture(pointerId, this);\n };\n return Shape;\n}(Node_1.Node);\nexports.Shape = Shape;\nShape.prototype._fillFunc = _fillFunc;\nShape.prototype._strokeFunc = _strokeFunc;\nShape.prototype._fillFuncHit = _fillFuncHit;\nShape.prototype._strokeFuncHit = _strokeFuncHit;\nShape.prototype._centroid = false;\nShape.prototype.nodeType = 'Shape';\nGlobal_1._registerNode(Shape);\nFactory_1.Factory.addGetterSetter(Shape, 'stroke', undefined, Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'strokeWidth', 2, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'hitStrokeWidth', 'auto', Validators_1.getNumberOrAutoValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'strokeHitEnabled', true, Validators_1.getBooleanValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'perfectDrawEnabled', true, Validators_1.getBooleanValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowForStrokeEnabled', true, Validators_1.getBooleanValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'lineJoin');\nFactory_1.Factory.addGetterSetter(Shape, 'lineCap');\nFactory_1.Factory.addGetterSetter(Shape, 'sceneFunc');\nFactory_1.Factory.addGetterSetter(Shape, 'hitFunc');\nFactory_1.Factory.addGetterSetter(Shape, 'dash');\nFactory_1.Factory.addGetterSetter(Shape, 'dashOffset', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowColor', undefined, Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowBlur', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowOpacity', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'shadowOffset', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'shadowOffsetX', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'shadowOffsetY', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternImage');\nFactory_1.Factory.addGetterSetter(Shape, 'fill', undefined, Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternX', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternY', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientColorStops');\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientColorStops');\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientStartRadius', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientEndRadius', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientColorStops');\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternRepeat', 'repeat');\nFactory_1.Factory.addGetterSetter(Shape, 'fillEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'shadowEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'dashEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeScaleEnabled', true);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPriority', 'color');\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillPatternOffset', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternOffsetX', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternOffsetY', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillPatternScale', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternScaleX', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternScaleY', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillLinearGradientStartPoint', ['x', 'y']);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'strokeLinearGradientStartPoint', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientStartPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientStartPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientStartPointY', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientStartPointY', 0);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillLinearGradientEndPoint', ['x', 'y']);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'strokeLinearGradientEndPoint', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientEndPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientEndPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillLinearGradientEndPointY', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'strokeLinearGradientEndPointY', 0);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillRadialGradientStartPoint', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientStartPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientStartPointY', 0);\nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillRadialGradientEndPoint', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientEndPointX', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientEndPointY', 0);\nFactory_1.Factory.addGetterSetter(Shape, 'fillPatternRotation', 0);\nFactory_1.Factory.backCompat(Shape, {\n dashArray: 'dash',\n getDashArray: 'getDash',\n setDashArray: 'getDash',\n drawFunc: 'sceneFunc',\n getDrawFunc: 'getSceneFunc',\n setDrawFunc: 'setSceneFunc',\n drawHitFunc: 'hitFunc',\n getDrawHitFunc: 'getHitFunc',\n setDrawHitFunc: 'setHitFunc'\n});\nUtil_1.Collection.mapMethods(Shape);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _CoreInternals_1 = require(\"./_CoreInternals\");\nvar Arc_1 = require(\"./shapes/Arc\");\nvar Arrow_1 = require(\"./shapes/Arrow\");\nvar Circle_1 = require(\"./shapes/Circle\");\nvar Ellipse_1 = require(\"./shapes/Ellipse\");\nvar Image_1 = require(\"./shapes/Image\");\nvar Label_1 = require(\"./shapes/Label\");\nvar Line_1 = require(\"./shapes/Line\");\nvar Path_1 = require(\"./shapes/Path\");\nvar Rect_1 = require(\"./shapes/Rect\");\nvar RegularPolygon_1 = require(\"./shapes/RegularPolygon\");\nvar Ring_1 = require(\"./shapes/Ring\");\nvar Sprite_1 = require(\"./shapes/Sprite\");\nvar Star_1 = require(\"./shapes/Star\");\nvar Text_1 = require(\"./shapes/Text\");\nvar TextPath_1 = require(\"./shapes/TextPath\");\nvar Transformer_1 = require(\"./shapes/Transformer\");\nvar Wedge_1 = require(\"./shapes/Wedge\");\nvar Blur_1 = require(\"./filters/Blur\");\nvar Brighten_1 = require(\"./filters/Brighten\");\nvar Contrast_1 = require(\"./filters/Contrast\");\nvar Emboss_1 = require(\"./filters/Emboss\");\nvar Enhance_1 = require(\"./filters/Enhance\");\nvar Grayscale_1 = require(\"./filters/Grayscale\");\nvar HSL_1 = require(\"./filters/HSL\");\nvar HSV_1 = require(\"./filters/HSV\");\nvar Invert_1 = require(\"./filters/Invert\");\nvar Kaleidoscope_1 = require(\"./filters/Kaleidoscope\");\nvar Mask_1 = require(\"./filters/Mask\");\nvar Noise_1 = require(\"./filters/Noise\");\nvar Pixelate_1 = require(\"./filters/Pixelate\");\nvar Posterize_1 = require(\"./filters/Posterize\");\nvar RGB_1 = require(\"./filters/RGB\");\nvar RGBA_1 = require(\"./filters/RGBA\");\nvar Sepia_1 = require(\"./filters/Sepia\");\nvar Solarize_1 = require(\"./filters/Solarize\");\nvar Threshold_1 = require(\"./filters/Threshold\");\nexports.Konva = _CoreInternals_1.Konva.Util._assign(_CoreInternals_1.Konva, {\n Arc: Arc_1.Arc,\n Arrow: Arrow_1.Arrow,\n Circle: Circle_1.Circle,\n Ellipse: Ellipse_1.Ellipse,\n Image: Image_1.Image,\n Label: Label_1.Label,\n Tag: Label_1.Tag,\n Line: Line_1.Line,\n Path: Path_1.Path,\n Rect: Rect_1.Rect,\n RegularPolygon: RegularPolygon_1.RegularPolygon,\n Ring: Ring_1.Ring,\n Sprite: Sprite_1.Sprite,\n Star: Star_1.Star,\n Text: Text_1.Text,\n TextPath: TextPath_1.TextPath,\n Transformer: Transformer_1.Transformer,\n Wedge: Wedge_1.Wedge,\n Filters: {\n Blur: Blur_1.Blur,\n Brighten: Brighten_1.Brighten,\n Contrast: Contrast_1.Contrast,\n Emboss: Emboss_1.Emboss,\n Enhance: Enhance_1.Enhance,\n Grayscale: Grayscale_1.Grayscale,\n HSL: HSL_1.HSL,\n HSV: HSV_1.HSV,\n Invert: Invert_1.Invert,\n Kaleidoscope: Kaleidoscope_1.Kaleidoscope,\n Mask: Mask_1.Mask,\n Noise: Noise_1.Noise,\n Pixelate: Pixelate_1.Pixelate,\n Posterize: Posterize_1.Posterize,\n RGB: RGB_1.RGB,\n RGBA: RGBA_1.RGBA,\n Sepia: Sepia_1.Sepia,\n Solarize: Solarize_1.Solarize,\n Threshold: Threshold_1.Threshold\n }\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar PI_OVER_180 = Math.PI / 180;\nfunction detectBrowser() {\n return typeof window !== 'undefined' && ({}.toString.call(window) === '[object Window]' || {}.toString.call(window) === '[object global]');\n}\nvar _detectIE = function (ua) {\n var msie = ua.indexOf('msie ');\n if (msie > 0) {\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n var trident = ua.indexOf('trident/');\n if (trident > 0) {\n var rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n var edge = ua.indexOf('edge/');\n if (edge > 0) {\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n }\n return false;\n};\nexports._parseUA = function (userAgent) {\n var ua = userAgent.toLowerCase(),\n match = /(chrome)[ /]([\\w.]+)/.exec(ua) || /(webkit)[ /]([\\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ /]([\\w.]+)/.exec(ua) || /(msie) ([\\w.]+)/.exec(ua) || ua.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(ua) || [],\n mobile = !!userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i),\n ieMobile = !!userAgent.match(/IEMobile/i);\n return {\n browser: match[1] || '',\n version: match[2] || '0',\n isIE: _detectIE(ua),\n mobile: mobile,\n ieMobile: ieMobile\n };\n};\nexports.glob = typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof WorkerGlobalScope !== 'undefined' ? self : {};\nexports.Konva = {\n _global: exports.glob,\n version: '4.2.2',\n isBrowser: detectBrowser(),\n isUnminified: /param/.test(function (param) {}.toString()),\n dblClickWindow: 400,\n getAngle: function (angle) {\n return exports.Konva.angleDeg ? angle * PI_OVER_180 : angle;\n },\n enableTrace: false,\n _pointerEventsEnabled: false,\n hitOnDragEnabled: false,\n captureTouchEventsEnabled: false,\n listenClickTap: false,\n inDblClickWindow: false,\n pixelRatio: undefined,\n dragDistance: 3,\n angleDeg: true,\n showWarnings: true,\n dragButtons: [0, 1],\n isDragging: function () {\n return exports.Konva['DD'].isDragging;\n },\n isDragReady: function () {\n return !!exports.Konva['DD'].node;\n },\n UA: exports._parseUA(exports.glob.navigator && exports.glob.navigator.userAgent || ''),\n document: exports.glob.document,\n _injectGlobal: function (Konva) {\n exports.glob.Konva = Konva;\n },\n _parseUA: exports._parseUA\n};\nexports._NODES_REGISTRY = {};\nexports._registerNode = function (NodeClass) {\n exports._NODES_REGISTRY[NodeClass.prototype.getClassName()] = NodeClass;\n exports.Konva[NodeClass.prototype.getClassName()] = NodeClass;\n};","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Node_1 = require(\"../Node\");\nvar Shape_1 = require(\"../Shape\");\nvar Rect_1 = require(\"./Rect\");\nvar Group_1 = require(\"../Group\");\nvar Global_1 = require(\"../Global\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_2 = require(\"../Global\");\nvar EVENTS_NAME = 'tr-konva';\nvar ATTR_CHANGE_LIST = ['resizeEnabledChange', 'rotateAnchorOffsetChange', 'rotateEnabledChange', 'enabledAnchorsChange', 'anchorSizeChange', 'borderEnabledChange', 'borderStrokeChange', 'borderStrokeWidthChange', 'borderDashChange', 'anchorStrokeChange', 'anchorStrokeWidthChange', 'anchorFillChange', 'anchorCornerRadiusChange', 'ignoreStrokeChange'].map(function (e) {\n return e + (\".\" + EVENTS_NAME);\n}).join(' ');\nvar NODE_RECT = 'nodeRect';\nvar TRANSFORM_CHANGE_STR = ['widthChange', 'heightChange', 'scaleXChange', 'scaleYChange', 'skewXChange', 'skewYChange', 'rotationChange', 'offsetXChange', 'offsetYChange', 'transformsEnabledChange', 'strokeWidthChange'].map(function (e) {\n return e + (\".\" + EVENTS_NAME);\n}).join(' ');\nvar ANGLES = {\n 'top-left': -45,\n 'top-center': 0,\n 'top-right': 45,\n 'middle-right': -90,\n 'middle-left': 90,\n 'bottom-left': -135,\n 'bottom-center': 180,\n 'bottom-right': 135\n};\nvar TOUCH_DEVICE = 'ontouchstart' in Global_1.Konva._global;\nfunction getCursor(anchorName, rad, isMirrored) {\n if (anchorName === 'rotater') {\n return 'crosshair';\n }\n rad += Util_1.Util._degToRad(ANGLES[anchorName] || 0);\n if (isMirrored) {\n rad *= -1;\n }\n var angle = (Util_1.Util._radToDeg(rad) % 360 + 360) % 360;\n if (Util_1.Util._inRange(angle, 315 + 22.5, 360) || Util_1.Util._inRange(angle, 0, 22.5)) {\n return 'ns-resize';\n } else if (Util_1.Util._inRange(angle, 45 - 22.5, 45 + 22.5)) {\n return 'nesw-resize';\n } else if (Util_1.Util._inRange(angle, 90 - 22.5, 90 + 22.5)) {\n return 'ew-resize';\n } else if (Util_1.Util._inRange(angle, 135 - 22.5, 135 + 22.5)) {\n return 'nwse-resize';\n } else if (Util_1.Util._inRange(angle, 180 - 22.5, 180 + 22.5)) {\n return 'ns-resize';\n } else if (Util_1.Util._inRange(angle, 225 - 22.5, 225 + 22.5)) {\n return 'nesw-resize';\n } else if (Util_1.Util._inRange(angle, 270 - 22.5, 270 + 22.5)) {\n return 'ew-resize';\n } else if (Util_1.Util._inRange(angle, 315 - 22.5, 315 + 22.5)) {\n return 'nwse-resize';\n } else {\n Util_1.Util.error('Transformer has unknown angle for cursor detection: ' + angle);\n return 'pointer';\n }\n}\nvar ANCHORS_NAMES = ['top-left', 'top-center', 'top-right', 'middle-right', 'middle-left', 'bottom-left', 'bottom-center', 'bottom-right'];\nvar MAX_SAFE_INTEGER = 100000000;\nvar Transformer = function (_super) {\n __extends(Transformer, _super);\n function Transformer(config) {\n var _this = _super.call(this, config) || this;\n _this._transforming = false;\n _this._createElements();\n _this._handleMouseMove = _this._handleMouseMove.bind(_this);\n _this._handleMouseUp = _this._handleMouseUp.bind(_this);\n _this.update = _this.update.bind(_this);\n _this.on(ATTR_CHANGE_LIST, _this.update);\n if (_this.getNode()) {\n _this.update();\n }\n return _this;\n }\n Transformer.prototype.attachTo = function (node) {\n this.setNode(node);\n return this;\n };\n Transformer.prototype.setNode = function (node) {\n var _this = this;\n if (this._node) {\n this.detach();\n }\n this._node = node;\n this._resetTransformCache();\n var additionalEvents = node._attrsAffectingSize.map(function (prop) {\n return prop + 'Change.' + EVENTS_NAME;\n }).join(' ');\n var onChange = function () {\n _this._resetTransformCache();\n if (!_this._transforming) {\n _this.update();\n }\n };\n node.on(additionalEvents, onChange);\n node.on(TRANSFORM_CHANGE_STR, onChange);\n node.on(\"xChange.\" + EVENTS_NAME + \" yChange.\" + EVENTS_NAME, function () {\n return _this._resetTransformCache();\n });\n var elementsCreated = !!this.findOne('.top-left');\n if (elementsCreated) {\n this.update();\n }\n return this;\n };\n Transformer.prototype.getNode = function () {\n return this._node;\n };\n Transformer.prototype.getActiveAnchor = function () {\n return this._movingAnchorName;\n };\n Transformer.prototype.detach = function () {\n if (this.getNode()) {\n this.getNode().off('.' + EVENTS_NAME);\n this._node = undefined;\n }\n this._resetTransformCache();\n };\n Transformer.prototype._resetTransformCache = function () {\n this._clearCache(NODE_RECT);\n this._clearCache('transform');\n this._clearSelfAndDescendantCache('absoluteTransform');\n };\n Transformer.prototype._getNodeRect = function () {\n return this._getCache(NODE_RECT, this.__getNodeRect);\n };\n Transformer.prototype.__getNodeRect = function () {\n var node = this.getNode();\n if (!node) {\n return {\n x: -MAX_SAFE_INTEGER,\n y: -MAX_SAFE_INTEGER,\n width: 0,\n height: 0,\n rotation: 0\n };\n }\n if (node.parent && this.parent && node.parent !== this.parent) {\n Util_1.Util.warn('Transformer and attached node have different parents. Konva does not support such case right now. Please move Transformer to the parent of attaching node.');\n }\n var rect = node.getClientRect({\n skipTransform: true,\n skipShadow: true,\n skipStroke: this.ignoreStroke()\n });\n var rotation = Global_1.Konva.getAngle(node.rotation());\n var dx = rect.x * node.scaleX() - node.offsetX() * node.scaleX();\n var dy = rect.y * node.scaleY() - node.offsetY() * node.scaleY();\n return {\n x: node.x() + dx * Math.cos(rotation) + dy * Math.sin(-rotation),\n y: node.y() + dy * Math.cos(rotation) + dx * Math.sin(rotation),\n width: rect.width * node.scaleX(),\n height: rect.height * node.scaleY(),\n rotation: node.rotation()\n };\n };\n Transformer.prototype.getX = function () {\n return this._getNodeRect().x;\n };\n Transformer.prototype.getY = function () {\n return this._getNodeRect().y;\n };\n Transformer.prototype.getRotation = function () {\n return this._getNodeRect().rotation;\n };\n Transformer.prototype.getWidth = function () {\n return this._getNodeRect().width;\n };\n Transformer.prototype.getHeight = function () {\n return this._getNodeRect().height;\n };\n Transformer.prototype._createElements = function () {\n this._createBack();\n ANCHORS_NAMES.forEach(function (name) {\n this._createAnchor(name);\n }.bind(this));\n this._createAnchor('rotater');\n };\n Transformer.prototype._createAnchor = function (name) {\n var _this = this;\n var anchor = new Rect_1.Rect({\n stroke: 'rgb(0, 161, 255)',\n fill: 'white',\n strokeWidth: 1,\n name: name + ' _anchor',\n dragDistance: 0,\n draggable: true,\n hitStrokeWidth: TOUCH_DEVICE ? 10 : 'auto'\n });\n var self = this;\n anchor.on('mousedown touchstart', function (e) {\n self._handleMouseDown(e);\n });\n anchor.on('dragstart', function (e) {\n e.cancelBubble = true;\n });\n anchor.on('dragmove', function (e) {\n e.cancelBubble = true;\n });\n anchor.on('dragend', function (e) {\n e.cancelBubble = true;\n });\n anchor.on('mouseenter', function () {\n var rad = Global_1.Konva.getAngle(_this.getAbsoluteRotation());\n var scale = _this.getNode().getAbsoluteScale();\n var isMirrored = scale.y * scale.x < 0;\n var cursor = getCursor(name, rad, isMirrored);\n anchor.getStage().content.style.cursor = cursor;\n _this._cursorChange = true;\n });\n anchor.on('mouseout', function () {\n if (!anchor.getStage() || !anchor.getParent()) {\n return;\n }\n anchor.getStage().content.style.cursor = '';\n _this._cursorChange = false;\n });\n this.add(anchor);\n };\n Transformer.prototype._createBack = function () {\n var back = new Shape_1.Shape({\n name: 'back',\n width: 0,\n height: 0,\n listening: false,\n sceneFunc: function (ctx) {\n var tr = this.getParent();\n var padding = tr.padding();\n ctx.beginPath();\n ctx.rect(-padding, -padding, this.width() + padding * 2, this.height() + padding * 2);\n ctx.moveTo(this.width() / 2, -padding);\n if (tr.rotateEnabled()) {\n ctx.lineTo(this.width() / 2, -tr.rotateAnchorOffset() * Util_1.Util._sign(this.height()) - padding);\n }\n ctx.fillStrokeShape(this);\n }\n });\n this.add(back);\n };\n Transformer.prototype._handleMouseDown = function (e) {\n this._movingAnchorName = e.target.name().split(' ')[0];\n var attrs = this._getNodeRect();\n var width = attrs.width;\n var height = attrs.height;\n var hypotenuse = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));\n this.sin = Math.abs(height / hypotenuse);\n this.cos = Math.abs(width / hypotenuse);\n window.addEventListener('mousemove', this._handleMouseMove);\n window.addEventListener('touchmove', this._handleMouseMove);\n window.addEventListener('mouseup', this._handleMouseUp, true);\n window.addEventListener('touchend', this._handleMouseUp, true);\n this._transforming = true;\n this._fire('transformstart', {\n evt: e,\n target: this.getNode()\n });\n this.getNode()._fire('transformstart', {\n evt: e,\n target: this.getNode()\n });\n };\n Transformer.prototype._handleMouseMove = function (e) {\n var x, y, newHypotenuse;\n var anchorNode = this.findOne('.' + this._movingAnchorName);\n var stage = anchorNode.getStage();\n stage.setPointersPositions(e);\n anchorNode.setAbsolutePosition(stage.getPointerPosition());\n var keepProportion = this.keepRatio() || e.shiftKey;\n var padding = this.padding();\n if (this._movingAnchorName === 'top-left') {\n if (keepProportion) {\n newHypotenuse = Math.sqrt(Math.pow(this.findOne('.bottom-right').x() - anchorNode.x() - padding * 2, 2) + Math.pow(this.findOne('.bottom-right').y() - anchorNode.y() - padding * 2, 2));\n var reverseX = this.findOne('.top-left').x() > this.findOne('.bottom-right').x() ? -1 : 1;\n var reverseY = this.findOne('.top-left').y() > this.findOne('.bottom-right').y() ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.top-left').x(this.findOne('.bottom-right').x() - x - padding * 2);\n this.findOne('.top-left').y(this.findOne('.bottom-right').y() - y - padding * 2);\n }\n } else if (this._movingAnchorName === 'top-center') {\n this.findOne('.top-left').y(anchorNode.y());\n } else if (this._movingAnchorName === 'top-right') {\n if (keepProportion) {\n newHypotenuse = Math.sqrt(Math.pow(anchorNode.x() - this.findOne('.bottom-left').x() - padding * 2, 2) + Math.pow(this.findOne('.bottom-left').y() - anchorNode.y() - padding * 2, 2));\n var reverseX = this.findOne('.top-right').x() < this.findOne('.top-left').x() ? -1 : 1;\n var reverseY = this.findOne('.top-right').y() > this.findOne('.bottom-left').y() ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.top-right').x(x + padding);\n this.findOne('.top-right').y(this.findOne('.bottom-left').y() - y - padding * 2);\n }\n var pos = anchorNode.position();\n this.findOne('.top-left').y(pos.y);\n this.findOne('.bottom-right').x(pos.x);\n } else if (this._movingAnchorName === 'middle-left') {\n this.findOne('.top-left').x(anchorNode.x());\n } else if (this._movingAnchorName === 'middle-right') {\n this.findOne('.bottom-right').x(anchorNode.x());\n } else if (this._movingAnchorName === 'bottom-left') {\n if (keepProportion) {\n newHypotenuse = Math.sqrt(Math.pow(this.findOne('.top-right').x() - anchorNode.x() - padding * 2, 2) + Math.pow(anchorNode.y() - this.findOne('.top-right').y() - padding * 2, 2));\n var reverseX = this.findOne('.top-right').x() < this.findOne('.bottom-left').x() ? -1 : 1;\n var reverseY = this.findOne('.bottom-right').y() < this.findOne('.top-left').y() ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.bottom-left').x(this.findOne('.top-right').x() - x - padding * 2);\n this.findOne('.bottom-left').y(y + padding);\n }\n pos = anchorNode.position();\n this.findOne('.top-left').x(pos.x);\n this.findOne('.bottom-right').y(pos.y);\n } else if (this._movingAnchorName === 'bottom-center') {\n this.findOne('.bottom-right').y(anchorNode.y());\n } else if (this._movingAnchorName === 'bottom-right') {\n if (keepProportion) {\n newHypotenuse = Math.sqrt(Math.pow(this.findOne('.bottom-right').x() - padding, 2) + Math.pow(this.findOne('.bottom-right').y() - padding, 2));\n var reverseX = this.findOne('.top-left').x() > this.findOne('.bottom-right').x() ? -1 : 1;\n var reverseY = this.findOne('.top-left').y() > this.findOne('.bottom-right').y() ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.bottom-right').x(x + padding);\n this.findOne('.bottom-right').y(y + padding);\n }\n } else if (this._movingAnchorName === 'rotater') {\n var attrs = this._getNodeRect();\n x = anchorNode.x() - attrs.width / 2;\n y = -anchorNode.y() + attrs.height / 2;\n var dAlpha = Math.atan2(-y, x) + Math.PI / 2;\n if (attrs.height < 0) {\n dAlpha -= Math.PI;\n }\n var rot = Global_1.Konva.getAngle(this.rotation());\n var newRotation = Util_1.Util._radToDeg(rot) + Util_1.Util._radToDeg(dAlpha);\n var alpha = Global_1.Konva.getAngle(this.getNode().rotation());\n var newAlpha = Util_1.Util._degToRad(newRotation);\n var snaps = this.rotationSnaps();\n var offset = Global_1.Konva.getAngle(this.rotationSnapTolerance());\n for (var i = 0; i < snaps.length; i++) {\n var angle = Global_1.Konva.getAngle(snaps[i]);\n var dif = Math.abs(angle - Util_1.Util._degToRad(newRotation)) % (Math.PI * 2);\n if (dif < offset) {\n newRotation = Util_1.Util._radToDeg(angle);\n newAlpha = Util_1.Util._degToRad(newRotation);\n }\n }\n var dx = padding;\n var dy = padding;\n this._fitNodeInto({\n rotation: Global_1.Konva.angleDeg ? newRotation : Util_1.Util._degToRad(newRotation),\n x: attrs.x + (attrs.width / 2 + padding) * (Math.cos(alpha) - Math.cos(newAlpha)) + (attrs.height / 2 + padding) * (Math.sin(-alpha) - Math.sin(-newAlpha)) - (dx * Math.cos(rot) + dy * Math.sin(-rot)),\n y: attrs.y + (attrs.height / 2 + padding) * (Math.cos(alpha) - Math.cos(newAlpha)) + (attrs.width / 2 + padding) * (Math.sin(alpha) - Math.sin(newAlpha)) - (dy * Math.cos(rot) + dx * Math.sin(rot)),\n width: attrs.width + padding * 2,\n height: attrs.height + padding * 2\n }, e);\n } else {\n console.error(new Error('Wrong position argument of selection resizer: ' + this._movingAnchorName));\n }\n if (this._movingAnchorName === 'rotater') {\n return;\n }\n var centeredScaling = this.centeredScaling() || e.altKey;\n if (centeredScaling) {\n var topLeft = this.findOne('.top-left');\n var bottomRight = this.findOne('.bottom-right');\n var topOffsetX = topLeft.x() + padding;\n var topOffsetY = topLeft.y() + padding;\n var bottomOffsetX = this.getWidth() - bottomRight.x() + padding;\n var bottomOffsetY = this.getHeight() - bottomRight.y() + padding;\n bottomRight.move({\n x: -topOffsetX,\n y: -topOffsetY\n });\n topLeft.move({\n x: bottomOffsetX,\n y: bottomOffsetY\n });\n }\n var absPos = this.findOne('.top-left').getAbsolutePosition(this.getParent());\n x = absPos.x;\n y = absPos.y;\n var width = this.findOne('.bottom-right').x() - this.findOne('.top-left').x();\n var height = this.findOne('.bottom-right').y() - this.findOne('.top-left').y();\n this._fitNodeInto({\n x: x + this.offsetX(),\n y: y + this.offsetY(),\n width: width,\n height: height\n }, e);\n };\n Transformer.prototype._handleMouseUp = function (e) {\n this._removeEvents(e);\n };\n Transformer.prototype._removeEvents = function (e) {\n if (this._transforming) {\n this._transforming = false;\n window.removeEventListener('mousemove', this._handleMouseMove);\n window.removeEventListener('touchmove', this._handleMouseMove);\n window.removeEventListener('mouseup', this._handleMouseUp, true);\n window.removeEventListener('touchend', this._handleMouseUp, true);\n var node = this.getNode();\n this._fire('transformend', {\n evt: e,\n target: node\n });\n if (node) {\n node.fire('transformend', {\n evt: e,\n target: node\n });\n }\n this._movingAnchorName = null;\n }\n };\n Transformer.prototype._fitNodeInto = function (newAttrs, evt) {\n var boundBoxFunc = this.boundBoxFunc();\n if (boundBoxFunc) {\n var oldAttrs = this._getNodeRect();\n newAttrs = boundBoxFunc.call(this, oldAttrs, newAttrs);\n }\n var node = this.getNode();\n if (newAttrs.rotation !== undefined) {\n this.getNode().rotation(newAttrs.rotation);\n }\n var pure = node.getClientRect({\n skipTransform: true,\n skipShadow: true,\n skipStroke: this.ignoreStroke()\n });\n var padding = this.padding();\n var scaleX = pure.width ? (newAttrs.width - padding * 2) / pure.width : 1;\n var scaleY = pure.height ? (newAttrs.height - padding * 2) / pure.height : 1;\n var rotation = Global_1.Konva.getAngle(node.rotation());\n var dx = pure.x * scaleX - padding - node.offsetX() * scaleX;\n var dy = pure.y * scaleY - padding - node.offsetY() * scaleY;\n this.getNode().setAttrs({\n scaleX: scaleX,\n scaleY: scaleY,\n x: newAttrs.x - (dx * Math.cos(rotation) + dy * Math.sin(-rotation)),\n y: newAttrs.y - (dy * Math.cos(rotation) + dx * Math.sin(rotation))\n });\n this._fire('transform', {\n evt: evt,\n target: this.getNode()\n });\n this.getNode()._fire('transform', {\n evt: evt,\n target: this.getNode()\n });\n this.update();\n this.getLayer().batchDraw();\n };\n Transformer.prototype.forceUpdate = function () {\n this._resetTransformCache();\n this.update();\n };\n Transformer.prototype.update = function () {\n var _this = this;\n var attrs = this._getNodeRect();\n var node = this.getNode();\n var scale = {\n x: 1,\n y: 1\n };\n if (node && node.getParent()) {\n scale = node.getParent().getAbsoluteScale();\n }\n var invertedScale = {\n x: 1 / scale.x,\n y: 1 / scale.y\n };\n var width = attrs.width;\n var height = attrs.height;\n var enabledAnchors = this.enabledAnchors();\n var resizeEnabled = this.resizeEnabled();\n var padding = this.padding();\n var anchorSize = this.anchorSize();\n this.find('._anchor').each(function (node) {\n return node.setAttrs({\n width: anchorSize,\n height: anchorSize,\n offsetX: anchorSize / 2,\n offsetY: anchorSize / 2,\n stroke: _this.anchorStroke(),\n strokeWidth: _this.anchorStrokeWidth(),\n fill: _this.anchorFill(),\n cornerRadius: _this.anchorCornerRadius()\n });\n });\n this.findOne('.top-left').setAttrs({\n x: -padding,\n y: -padding,\n scale: invertedScale,\n visible: resizeEnabled && enabledAnchors.indexOf('top-left') >= 0\n });\n this.findOne('.top-center').setAttrs({\n x: width / 2,\n y: -padding,\n scale: invertedScale,\n visible: resizeEnabled && enabledAnchors.indexOf('top-center') >= 0\n });\n this.findOne('.top-right').setAttrs({\n x: width + padding,\n y: -padding,\n scale: invertedScale,\n visible: resizeEnabled && enabledAnchors.indexOf('top-right') >= 0\n });\n this.findOne('.middle-left').setAttrs({\n x: -padding,\n y: height / 2,\n scale: invertedScale,\n visible: resizeEnabled && enabledAnchors.indexOf('middle-left') >= 0\n });\n this.findOne('.middle-right').setAttrs({\n x: width + padding,\n y: height / 2,\n scale: invertedScale,\n visible: resizeEnabled && enabledAnchors.indexOf('middle-right') >= 0\n });\n this.findOne('.bottom-left').setAttrs({\n x: -padding,\n y: height + padding,\n scale: invertedScale,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-left') >= 0\n });\n this.findOne('.bottom-center').setAttrs({\n x: width / 2,\n y: height + padding,\n scale: invertedScale,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-center') >= 0\n });\n this.findOne('.bottom-right').setAttrs({\n x: width + padding,\n y: height + padding,\n scale: invertedScale,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-right') >= 0\n });\n var scaledRotateAnchorOffset = -this.rotateAnchorOffset() * Math.abs(invertedScale.y);\n this.findOne('.rotater').setAttrs({\n x: width / 2,\n y: scaledRotateAnchorOffset * Util_1.Util._sign(height) - padding,\n scale: invertedScale,\n visible: this.rotateEnabled()\n });\n this.findOne('.back').setAttrs({\n width: width * scale.x,\n height: height * scale.y,\n scale: invertedScale,\n visible: this.borderEnabled(),\n stroke: this.borderStroke(),\n strokeWidth: this.borderStrokeWidth(),\n dash: this.borderDash()\n });\n };\n Transformer.prototype.isTransforming = function () {\n return this._transforming;\n };\n Transformer.prototype.stopTransform = function () {\n if (this._transforming) {\n this._removeEvents();\n var anchorNode = this.findOne('.' + this._movingAnchorName);\n if (anchorNode) {\n anchorNode.stopDrag();\n }\n }\n };\n Transformer.prototype.destroy = function () {\n if (this.getStage() && this._cursorChange) {\n this.getStage().content.style.cursor = '';\n }\n Group_1.Group.prototype.destroy.call(this);\n this.detach();\n this._removeEvents();\n return this;\n };\n Transformer.prototype.toObject = function () {\n return Node_1.Node.prototype.toObject.call(this);\n };\n return Transformer;\n}(Group_1.Group);\nexports.Transformer = Transformer;\nfunction validateAnchors(val) {\n if (!(val instanceof Array)) {\n Util_1.Util.warn('enabledAnchors value should be an array');\n }\n if (val instanceof Array) {\n val.forEach(function (name) {\n if (ANCHORS_NAMES.indexOf(name) === -1) {\n Util_1.Util.warn('Unknown anchor name: ' + name + '. Available names are: ' + ANCHORS_NAMES.join(', '));\n }\n });\n }\n return val || [];\n}\nTransformer.prototype.className = 'Transformer';\nGlobal_2._registerNode(Transformer);\nFactory_1.Factory.addGetterSetter(Transformer, 'enabledAnchors', ANCHORS_NAMES, validateAnchors);\nFactory_1.Factory.addGetterSetter(Transformer, 'resizeEnabled', true);\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorSize', 10, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Transformer, 'rotateEnabled', true);\nFactory_1.Factory.addGetterSetter(Transformer, 'rotationSnaps', []);\nFactory_1.Factory.addGetterSetter(Transformer, 'rotateAnchorOffset', 50, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Transformer, 'rotationSnapTolerance', 5, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Transformer, 'borderEnabled', true);\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorStroke', 'rgb(0, 161, 255)');\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorStrokeWidth', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorFill', 'white');\nFactory_1.Factory.addGetterSetter(Transformer, 'anchorCornerRadius', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Transformer, 'borderStroke', 'rgb(0, 161, 255)');\nFactory_1.Factory.addGetterSetter(Transformer, 'borderStrokeWidth', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Transformer, 'borderDash');\nFactory_1.Factory.addGetterSetter(Transformer, 'keepRatio', true);\nFactory_1.Factory.addGetterSetter(Transformer, 'centeredScaling', false);\nFactory_1.Factory.addGetterSetter(Transformer, 'ignoreStroke', false);\nFactory_1.Factory.addGetterSetter(Transformer, 'padding', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Transformer, 'node');\nFactory_1.Factory.addGetterSetter(Transformer, 'boundBoxFunc');\nFactory_1.Factory.backCompat(Transformer, {\n lineEnabled: 'borderEnabled',\n rotateHandlerOffset: 'rotateAnchorOffset',\n enabledHandlers: 'enabledAnchors'\n});\nUtil_1.Collection.mapMethods(Transformer);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Container_1 = require(\"./Container\");\nvar Node_1 = require(\"./Node\");\nvar Factory_1 = require(\"./Factory\");\nvar Canvas_1 = require(\"./Canvas\");\nvar BaseLayer = function (_super) {\n __extends(BaseLayer, _super);\n function BaseLayer(config) {\n var _this = _super.call(this, config) || this;\n _this.canvas = new Canvas_1.SceneCanvas();\n _this._waitingForDraw = false;\n _this.on('visibleChange', _this._checkVisibility);\n _this._checkVisibility();\n _this.on('imageSmoothingEnabledChange', _this._checkSmooth);\n _this._checkSmooth();\n return _this;\n }\n BaseLayer.prototype.createPNGStream = function () {\n var c = this.canvas._canvas;\n return c.createPNGStream();\n };\n BaseLayer.prototype.getCanvas = function () {\n return this.canvas;\n };\n BaseLayer.prototype.getHitCanvas = function () {\n return this.hitCanvas;\n };\n BaseLayer.prototype.getContext = function () {\n return this.getCanvas().getContext();\n };\n BaseLayer.prototype.clear = function (bounds) {\n this.getContext().clear(bounds);\n return this;\n };\n BaseLayer.prototype.setZIndex = function (index) {\n _super.prototype.setZIndex.call(this, index);\n var stage = this.getStage();\n if (stage) {\n stage.content.removeChild(this.getCanvas()._canvas);\n if (index < stage.children.length - 1) {\n stage.content.insertBefore(this.getCanvas()._canvas, stage.children[index + 1].getCanvas()._canvas);\n } else {\n stage.content.appendChild(this.getCanvas()._canvas);\n }\n }\n return this;\n };\n BaseLayer.prototype.moveToTop = function () {\n Node_1.Node.prototype.moveToTop.call(this);\n var stage = this.getStage();\n if (stage) {\n stage.content.removeChild(this.getCanvas()._canvas);\n stage.content.appendChild(this.getCanvas()._canvas);\n }\n return true;\n };\n BaseLayer.prototype.moveUp = function () {\n var moved = Node_1.Node.prototype.moveUp.call(this);\n if (!moved) {\n return false;\n }\n var stage = this.getStage();\n if (!stage) {\n return false;\n }\n stage.content.removeChild(this.getCanvas()._canvas);\n if (this.index < stage.children.length - 1) {\n stage.content.insertBefore(this.getCanvas()._canvas, stage.children[this.index + 1].getCanvas()._canvas);\n } else {\n stage.content.appendChild(this.getCanvas()._canvas);\n }\n return true;\n };\n BaseLayer.prototype.moveDown = function () {\n if (Node_1.Node.prototype.moveDown.call(this)) {\n var stage = this.getStage();\n if (stage) {\n var children = stage.children;\n stage.content.removeChild(this.getCanvas()._canvas);\n stage.content.insertBefore(this.getCanvas()._canvas, children[this.index + 1].getCanvas()._canvas);\n }\n return true;\n }\n return false;\n };\n BaseLayer.prototype.moveToBottom = function () {\n if (Node_1.Node.prototype.moveToBottom.call(this)) {\n var stage = this.getStage();\n if (stage) {\n var children = stage.children;\n stage.content.removeChild(this.getCanvas()._canvas);\n stage.content.insertBefore(this.getCanvas()._canvas, children[1].getCanvas()._canvas);\n }\n return true;\n }\n return false;\n };\n BaseLayer.prototype.getLayer = function () {\n return this;\n };\n BaseLayer.prototype.hitGraphEnabled = function () {\n return true;\n };\n BaseLayer.prototype.remove = function () {\n var _canvas = this.getCanvas()._canvas;\n Node_1.Node.prototype.remove.call(this);\n if (_canvas && _canvas.parentNode && Util_1.Util._isInDocument(_canvas)) {\n _canvas.parentNode.removeChild(_canvas);\n }\n return this;\n };\n BaseLayer.prototype.getStage = function () {\n return this.parent;\n };\n BaseLayer.prototype.setSize = function (_a) {\n var width = _a.width,\n height = _a.height;\n this.canvas.setSize(width, height);\n return this;\n };\n BaseLayer.prototype._toKonvaCanvas = function (config) {\n config = config || {};\n config.width = config.width || this.getWidth();\n config.height = config.height || this.getHeight();\n config.x = config.x !== undefined ? config.x : this.x();\n config.y = config.y !== undefined ? config.y : this.y();\n return Node_1.Node.prototype._toKonvaCanvas.call(this, config);\n };\n BaseLayer.prototype._checkVisibility = function () {\n var visible = this.visible();\n if (visible) {\n this.canvas._canvas.style.display = 'block';\n } else {\n this.canvas._canvas.style.display = 'none';\n }\n };\n BaseLayer.prototype._checkSmooth = function () {\n this.getContext()._context.imageSmoothingEnabled = this.imageSmoothingEnabled();\n };\n BaseLayer.prototype.getWidth = function () {\n if (this.parent) {\n return this.parent.width();\n }\n };\n BaseLayer.prototype.setWidth = function () {\n Util_1.Util.warn('Can not change width of layer. Use \"stage.width(value)\" function instead.');\n };\n BaseLayer.prototype.getHeight = function () {\n if (this.parent) {\n return this.parent.height();\n }\n };\n BaseLayer.prototype.setHeight = function () {\n Util_1.Util.warn('Can not change height of layer. Use \"stage.height(value)\" function instead.');\n };\n BaseLayer.prototype.getIntersection = function (pos, selector) {\n return null;\n };\n BaseLayer.prototype.batchDraw = function () {\n var _this = this;\n if (!this._waitingForDraw) {\n this._waitingForDraw = true;\n Util_1.Util.requestAnimFrame(function () {\n _this.draw();\n _this._waitingForDraw = false;\n });\n }\n return this;\n };\n BaseLayer.prototype._applyTransform = function (shape, context, top) {\n var m = shape.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n };\n return BaseLayer;\n}(Container_1.Container);\nexports.BaseLayer = BaseLayer;\nBaseLayer.prototype.nodeType = 'BaseLayer';\nFactory_1.Factory.addGetterSetter(BaseLayer, 'imageSmoothingEnabled', true);\nFactory_1.Factory.addGetterSetter(BaseLayer, 'clearBeforeDraw', true);\nUtil_1.Collection.mapMethods(BaseLayer);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Group_1 = require(\"../Group\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_1 = require(\"../Global\");\nvar ATTR_CHANGE_LIST = ['fontFamily', 'fontSize', 'fontStyle', 'padding', 'lineHeight', 'text', 'width'],\n CHANGE_KONVA = 'Change.konva',\n NONE = 'none',\n UP = 'up',\n RIGHT = 'right',\n DOWN = 'down',\n LEFT = 'left',\n attrChangeListLen = ATTR_CHANGE_LIST.length;\nvar Label = function (_super) {\n __extends(Label, _super);\n function Label(config) {\n var _this = _super.call(this, config) || this;\n _this.on('add.konva', function (evt) {\n this._addListeners(evt.child);\n this._sync();\n });\n return _this;\n }\n Label.prototype.getText = function () {\n return this.find('Text')[0];\n };\n Label.prototype.getTag = function () {\n return this.find('Tag')[0];\n };\n Label.prototype._addListeners = function (text) {\n var that = this,\n n;\n var func = function () {\n that._sync();\n };\n for (n = 0; n < attrChangeListLen; n++) {\n text.on(ATTR_CHANGE_LIST[n] + CHANGE_KONVA, func);\n }\n };\n Label.prototype.getWidth = function () {\n return this.getText().width();\n };\n Label.prototype.getHeight = function () {\n return this.getText().height();\n };\n Label.prototype._sync = function () {\n var text = this.getText(),\n tag = this.getTag(),\n width,\n height,\n pointerDirection,\n pointerWidth,\n x,\n y,\n pointerHeight;\n if (text && tag) {\n width = text.width();\n height = text.height();\n pointerDirection = tag.pointerDirection();\n pointerWidth = tag.pointerWidth();\n pointerHeight = tag.pointerHeight();\n x = 0;\n y = 0;\n switch (pointerDirection) {\n case UP:\n x = width / 2;\n y = -1 * pointerHeight;\n break;\n case RIGHT:\n x = width + pointerWidth;\n y = height / 2;\n break;\n case DOWN:\n x = width / 2;\n y = height + pointerHeight;\n break;\n case LEFT:\n x = -1 * pointerWidth;\n y = height / 2;\n break;\n }\n tag.setAttrs({\n x: -1 * x,\n y: -1 * y,\n width: width,\n height: height\n });\n text.setAttrs({\n x: -1 * x,\n y: -1 * y\n });\n }\n };\n return Label;\n}(Group_1.Group);\nexports.Label = Label;\nLabel.prototype.className = 'Label';\nGlobal_1._registerNode(Label);\nUtil_1.Collection.mapMethods(Label);\nvar Tag = function (_super) {\n __extends(Tag, _super);\n function Tag() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Tag.prototype._sceneFunc = function (context) {\n var width = this.width(),\n height = this.height(),\n pointerDirection = this.pointerDirection(),\n pointerWidth = this.pointerWidth(),\n pointerHeight = this.pointerHeight(),\n cornerRadius = Math.min(this.cornerRadius(), width / 2, height / 2);\n context.beginPath();\n if (!cornerRadius) {\n context.moveTo(0, 0);\n } else {\n context.moveTo(cornerRadius, 0);\n }\n if (pointerDirection === UP) {\n context.lineTo((width - pointerWidth) / 2, 0);\n context.lineTo(width / 2, -1 * pointerHeight);\n context.lineTo((width + pointerWidth) / 2, 0);\n }\n if (!cornerRadius) {\n context.lineTo(width, 0);\n } else {\n context.lineTo(width - cornerRadius, 0);\n context.arc(width - cornerRadius, cornerRadius, cornerRadius, Math.PI * 3 / 2, 0, false);\n }\n if (pointerDirection === RIGHT) {\n context.lineTo(width, (height - pointerHeight) / 2);\n context.lineTo(width + pointerWidth, height / 2);\n context.lineTo(width, (height + pointerHeight) / 2);\n }\n if (!cornerRadius) {\n context.lineTo(width, height);\n } else {\n context.lineTo(width, height - cornerRadius);\n context.arc(width - cornerRadius, height - cornerRadius, cornerRadius, 0, Math.PI / 2, false);\n }\n if (pointerDirection === DOWN) {\n context.lineTo((width + pointerWidth) / 2, height);\n context.lineTo(width / 2, height + pointerHeight);\n context.lineTo((width - pointerWidth) / 2, height);\n }\n if (!cornerRadius) {\n context.lineTo(0, height);\n } else {\n context.lineTo(cornerRadius, height);\n context.arc(cornerRadius, height - cornerRadius, cornerRadius, Math.PI / 2, Math.PI, false);\n }\n if (pointerDirection === LEFT) {\n context.lineTo(0, (height + pointerHeight) / 2);\n context.lineTo(-1 * pointerWidth, height / 2);\n context.lineTo(0, (height - pointerHeight) / 2);\n }\n if (cornerRadius) {\n context.lineTo(0, cornerRadius);\n context.arc(cornerRadius, cornerRadius, cornerRadius, Math.PI, Math.PI * 3 / 2, false);\n }\n context.closePath();\n context.fillStrokeShape(this);\n };\n Tag.prototype.getSelfRect = function () {\n var x = 0,\n y = 0,\n pointerWidth = this.pointerWidth(),\n pointerHeight = this.pointerHeight(),\n direction = this.pointerDirection(),\n width = this.width(),\n height = this.height();\n if (direction === UP) {\n y -= pointerHeight;\n height += pointerHeight;\n } else if (direction === DOWN) {\n height += pointerHeight;\n } else if (direction === LEFT) {\n x -= pointerWidth * 1.5;\n width += pointerWidth;\n } else if (direction === RIGHT) {\n width += pointerWidth * 1.5;\n }\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n };\n return Tag;\n}(Shape_1.Shape);\nexports.Tag = Tag;\nTag.prototype.className = 'Tag';\nGlobal_1._registerNode(Tag);\nFactory_1.Factory.addGetterSetter(Tag, 'pointerDirection', NONE);\nFactory_1.Factory.addGetterSetter(Tag, 'pointerWidth', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Tag, 'pointerHeight', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Tag, 'cornerRadius', 0, Validators_1.getNumberValidator());\nUtil_1.Collection.mapMethods(Tag);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Global_1 = require(\"./Global\");\nvar Util_1 = require(\"./Util\");\nexports.DD = {\n get isDragging() {\n var flag = false;\n exports.DD._dragElements.forEach(function (elem) {\n if (elem.dragStatus === 'dragging') {\n flag = true;\n }\n });\n return flag;\n },\n justDragged: false,\n get node() {\n var node;\n exports.DD._dragElements.forEach(function (elem) {\n node = elem.node;\n });\n return node;\n },\n _dragElements: new Map(),\n _drag: function (evt) {\n exports.DD._dragElements.forEach(function (elem, key) {\n var node = elem.node;\n var stage = node.getStage();\n stage.setPointersPositions(evt);\n if (elem.pointerId === undefined) {\n elem.pointerId = Util_1.Util._getFirstPointerId(evt);\n }\n var pos = stage._changedPointerPositions.find(function (pos) {\n return pos.id === elem.pointerId;\n });\n if (!pos) {\n return;\n }\n if (elem.dragStatus !== 'dragging') {\n var dragDistance = node.dragDistance();\n var distance = Math.max(Math.abs(pos.x - elem.startPointerPos.x), Math.abs(pos.y - elem.startPointerPos.y));\n if (distance < dragDistance) {\n return;\n }\n node.startDrag({\n evt: evt\n });\n if (!node.isDragging()) {\n return;\n }\n }\n node._setDragPosition(evt, elem);\n node.fire('dragmove', {\n type: 'dragmove',\n target: node,\n evt: evt\n }, true);\n });\n },\n _endDragBefore: function (evt) {\n exports.DD._dragElements.forEach(function (elem, key) {\n var node = elem.node;\n var stage = node.getStage();\n if (evt) {\n stage.setPointersPositions(evt);\n }\n var pos = stage._changedPointerPositions.find(function (pos) {\n return pos.id === elem.pointerId;\n });\n if (!pos) {\n return;\n }\n if (elem.dragStatus === 'dragging' || elem.dragStatus === 'stopped') {\n exports.DD.justDragged = true;\n Global_1.Konva.listenClickTap = false;\n elem.dragStatus = 'stopped';\n }\n var drawNode = elem.node.getLayer() || elem.node instanceof Global_1.Konva['Stage'] && elem.node;\n if (drawNode) {\n drawNode.draw();\n }\n });\n },\n _endDragAfter: function (evt) {\n exports.DD._dragElements.forEach(function (elem, key) {\n if (elem.dragStatus === 'stopped') {\n elem.node.fire('dragend', {\n type: 'dragend',\n target: elem.node,\n evt: evt\n }, true);\n }\n if (elem.dragStatus !== 'dragging') {\n exports.DD._dragElements.delete(key);\n }\n });\n }\n};\nif (Global_1.Konva.isBrowser) {\n window.addEventListener('mouseup', exports.DD._endDragBefore, true);\n window.addEventListener('touchend', exports.DD._endDragBefore, true);\n window.addEventListener('mousemove', exports.DD._drag);\n window.addEventListener('touchmove', exports.DD._drag);\n window.addEventListener('mouseup', exports.DD._endDragAfter, false);\n window.addEventListener('touchend', exports.DD._endDragAfter, false);\n}","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_1 = require(\"../Global\");\nvar Star = function (_super) {\n __extends(Star, _super);\n function Star() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Star.prototype._sceneFunc = function (context) {\n var innerRadius = this.innerRadius(),\n outerRadius = this.outerRadius(),\n numPoints = this.numPoints();\n context.beginPath();\n context.moveTo(0, 0 - outerRadius);\n for (var n = 1; n < numPoints * 2; n++) {\n var radius = n % 2 === 0 ? outerRadius : innerRadius;\n var x = radius * Math.sin(n * Math.PI / numPoints);\n var y = -1 * radius * Math.cos(n * Math.PI / numPoints);\n context.lineTo(x, y);\n }\n context.closePath();\n context.fillStrokeShape(this);\n };\n Star.prototype.getWidth = function () {\n return this.outerRadius() * 2;\n };\n Star.prototype.getHeight = function () {\n return this.outerRadius() * 2;\n };\n Star.prototype.setWidth = function (width) {\n this.outerRadius(width / 2);\n };\n Star.prototype.setHeight = function (height) {\n this.outerRadius(height / 2);\n };\n return Star;\n}(Shape_1.Shape);\nexports.Star = Star;\nStar.prototype.className = 'Star';\nStar.prototype._centroid = true;\nStar.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\nGlobal_1._registerNode(Star);\nFactory_1.Factory.addGetterSetter(Star, 'numPoints', 5, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Star, 'innerRadius', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Star, 'outerRadius', 0, Validators_1.getNumberValidator());\nUtil_1.Collection.mapMethods(Star);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Factory_1 = require(\"../Factory\");\nvar Node_1 = require(\"../Node\");\nvar Util_1 = require(\"../Util\");\nvar Validators_1 = require(\"../Validators\");\nexports.Emboss = function (imageData) {\n var strength = this.embossStrength() * 10,\n greyLevel = this.embossWhiteLevel() * 255,\n direction = this.embossDirection(),\n blend = this.embossBlend(),\n dirY = 0,\n dirX = 0,\n data = imageData.data,\n w = imageData.width,\n h = imageData.height,\n w4 = w * 4,\n y = h;\n switch (direction) {\n case 'top-left':\n dirY = -1;\n dirX = -1;\n break;\n case 'top':\n dirY = -1;\n dirX = 0;\n break;\n case 'top-right':\n dirY = -1;\n dirX = 1;\n break;\n case 'right':\n dirY = 0;\n dirX = 1;\n break;\n case 'bottom-right':\n dirY = 1;\n dirX = 1;\n break;\n case 'bottom':\n dirY = 1;\n dirX = 0;\n break;\n case 'bottom-left':\n dirY = 1;\n dirX = -1;\n break;\n case 'left':\n dirY = 0;\n dirX = -1;\n break;\n default:\n Util_1.Util.error('Unknown emboss direction: ' + direction);\n }\n do {\n var offsetY = (y - 1) * w4;\n var otherY = dirY;\n if (y + otherY < 1) {\n otherY = 0;\n }\n if (y + otherY > h) {\n otherY = 0;\n }\n var offsetYOther = (y - 1 + otherY) * w * 4;\n var x = w;\n do {\n var offset = offsetY + (x - 1) * 4;\n var otherX = dirX;\n if (x + otherX < 1) {\n otherX = 0;\n }\n if (x + otherX > w) {\n otherX = 0;\n }\n var offsetOther = offsetYOther + (x - 1 + otherX) * 4;\n var dR = data[offset] - data[offsetOther];\n var dG = data[offset + 1] - data[offsetOther + 1];\n var dB = data[offset + 2] - data[offsetOther + 2];\n var dif = dR;\n var absDif = dif > 0 ? dif : -dif;\n var absG = dG > 0 ? dG : -dG;\n var absB = dB > 0 ? dB : -dB;\n if (absG > absDif) {\n dif = dG;\n }\n if (absB > absDif) {\n dif = dB;\n }\n dif *= strength;\n if (blend) {\n var r = data[offset] + dif;\n var g = data[offset + 1] + dif;\n var b = data[offset + 2] + dif;\n data[offset] = r > 255 ? 255 : r < 0 ? 0 : r;\n data[offset + 1] = g > 255 ? 255 : g < 0 ? 0 : g;\n data[offset + 2] = b > 255 ? 255 : b < 0 ? 0 : b;\n } else {\n var grey = greyLevel - dif;\n if (grey < 0) {\n grey = 0;\n } else if (grey > 255) {\n grey = 255;\n }\n data[offset] = data[offset + 1] = data[offset + 2] = grey;\n }\n } while (--x);\n } while (--y);\n};\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'embossStrength', 0.5, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'embossWhiteLevel', 0.5, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'embossDirection', 'top-left', null, Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'embossBlend', false, null, Factory_1.Factory.afterSetFilter);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Factory_1 = require(\"./Factory\");\nvar Container_1 = require(\"./Container\");\nvar Global_1 = require(\"./Global\");\nvar Canvas_1 = require(\"./Canvas\");\nvar DragAndDrop_1 = require(\"./DragAndDrop\");\nvar Global_2 = require(\"./Global\");\nvar PointerEvents = require(\"./PointerEvents\");\nvar STAGE = 'Stage',\n STRING = 'string',\n PX = 'px',\n MOUSEOUT = 'mouseout',\n MOUSELEAVE = 'mouseleave',\n MOUSEOVER = 'mouseover',\n MOUSEENTER = 'mouseenter',\n MOUSEMOVE = 'mousemove',\n MOUSEDOWN = 'mousedown',\n MOUSEUP = 'mouseup',\n POINTERMOVE = 'pointermove',\n POINTERDOWN = 'pointerdown',\n POINTERUP = 'pointerup',\n POINTERCANCEL = 'pointercancel',\n LOSTPOINTERCAPTURE = 'lostpointercapture',\n CONTEXTMENU = 'contextmenu',\n CLICK = 'click',\n DBL_CLICK = 'dblclick',\n TOUCHSTART = 'touchstart',\n TOUCHEND = 'touchend',\n TAP = 'tap',\n DBL_TAP = 'dbltap',\n TOUCHMOVE = 'touchmove',\n WHEEL = 'wheel',\n CONTENT_MOUSEOUT = 'contentMouseout',\n CONTENT_MOUSEOVER = 'contentMouseover',\n CONTENT_MOUSEMOVE = 'contentMousemove',\n CONTENT_MOUSEDOWN = 'contentMousedown',\n CONTENT_MOUSEUP = 'contentMouseup',\n CONTENT_CONTEXTMENU = 'contentContextmenu',\n CONTENT_CLICK = 'contentClick',\n CONTENT_DBL_CLICK = 'contentDblclick',\n CONTENT_TOUCHSTART = 'contentTouchstart',\n CONTENT_TOUCHEND = 'contentTouchend',\n CONTENT_DBL_TAP = 'contentDbltap',\n CONTENT_TAP = 'contentTap',\n CONTENT_TOUCHMOVE = 'contentTouchmove',\n CONTENT_POINTERMOVE = 'contentPointermove',\n CONTENT_POINTERDOWN = 'contentPointerdown',\n CONTENT_POINTERUP = 'contentPointerup',\n CONTENT_WHEEL = 'contentWheel',\n RELATIVE = 'relative',\n KONVA_CONTENT = 'konvajs-content',\n SPACE = ' ',\n UNDERSCORE = '_',\n CONTAINER = 'container',\n MAX_LAYERS_NUMBER = 5,\n EMPTY_STRING = '',\n EVENTS = [MOUSEENTER, MOUSEDOWN, MOUSEMOVE, MOUSEUP, MOUSEOUT, TOUCHSTART, TOUCHMOVE, TOUCHEND, MOUSEOVER, WHEEL, CONTEXTMENU, POINTERDOWN, POINTERMOVE, POINTERUP, POINTERCANCEL, LOSTPOINTERCAPTURE],\n eventsLength = EVENTS.length;\nfunction addEvent(ctx, eventName) {\n ctx.content.addEventListener(eventName, function (evt) {\n ctx[UNDERSCORE + eventName](evt);\n }, false);\n}\nvar NO_POINTERS_MESSAGE = \"Pointer position is missing and not registered by the stage. Looks like it is outside of the stage container. You can set it manually from event: stage.setPointersPositions(event);\";\nexports.stages = [];\nfunction checkNoClip(attrs) {\n if (attrs === void 0) {\n attrs = {};\n }\n if (attrs.clipFunc || attrs.clipWidth || attrs.clipHeight) {\n Util_1.Util.warn('Stage does not support clipping. Please use clip for Layers or Groups.');\n }\n return attrs;\n}\nvar Stage = function (_super) {\n __extends(Stage, _super);\n function Stage(config) {\n var _this = _super.call(this, checkNoClip(config)) || this;\n _this._pointerPositions = [];\n _this._changedPointerPositions = [];\n _this._buildDOM();\n _this._bindContentEvents();\n exports.stages.push(_this);\n _this.on('widthChange.konva heightChange.konva', _this._resizeDOM);\n _this.on('visibleChange.konva', _this._checkVisibility);\n _this.on('clipWidthChange.konva clipHeightChange.konva clipFuncChange.konva', function () {\n checkNoClip(_this.attrs);\n });\n _this._checkVisibility();\n return _this;\n }\n Stage.prototype._validateAdd = function (child) {\n var isLayer = child.getType() === 'Layer';\n var isFastLayer = child.getType() === 'FastLayer';\n var valid = isLayer || isFastLayer;\n if (!valid) {\n Util_1.Util.throw('You may only add layers to the stage.');\n }\n };\n Stage.prototype._checkVisibility = function () {\n if (!this.content) {\n return;\n }\n var style = this.visible() ? '' : 'none';\n this.content.style.display = style;\n };\n Stage.prototype.setContainer = function (container) {\n if (typeof container === STRING) {\n if (container.charAt(0) === '.') {\n var className = container.slice(1);\n container = document.getElementsByClassName(className)[0];\n } else {\n var id;\n if (container.charAt(0) !== '#') {\n id = container;\n } else {\n id = container.slice(1);\n }\n container = document.getElementById(id);\n }\n if (!container) {\n throw 'Can not find container in document with id ' + id;\n }\n }\n this._setAttr(CONTAINER, container);\n if (this.content) {\n if (this.content.parentElement) {\n this.content.parentElement.removeChild(this.content);\n }\n container.appendChild(this.content);\n }\n return this;\n };\n Stage.prototype.shouldDrawHit = function () {\n return true;\n };\n Stage.prototype.clear = function () {\n var layers = this.children,\n len = layers.length,\n n;\n for (n = 0; n < len; n++) {\n layers[n].clear();\n }\n return this;\n };\n Stage.prototype.clone = function (obj) {\n if (!obj) {\n obj = {};\n }\n obj.container = document.createElement('div');\n return Container_1.Container.prototype.clone.call(this, obj);\n };\n Stage.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n var content = this.content;\n if (content && Util_1.Util._isInDocument(content)) {\n this.container().removeChild(content);\n }\n var index = exports.stages.indexOf(this);\n if (index > -1) {\n exports.stages.splice(index, 1);\n }\n return this;\n };\n Stage.prototype.getPointerPosition = function () {\n var pos = this._pointerPositions[0] || this._changedPointerPositions[0];\n if (!pos) {\n Util_1.Util.warn(NO_POINTERS_MESSAGE);\n return null;\n }\n return {\n x: pos.x,\n y: pos.y\n };\n };\n Stage.prototype._getPointerById = function (id) {\n return this._pointerPositions.find(function (p) {\n return p.id === id;\n });\n };\n Stage.prototype.getPointersPositions = function () {\n return this._pointerPositions;\n };\n Stage.prototype.getStage = function () {\n return this;\n };\n Stage.prototype.getContent = function () {\n return this.content;\n };\n Stage.prototype._toKonvaCanvas = function (config) {\n config = config || {};\n var x = config.x || 0,\n y = config.y || 0,\n canvas = new Canvas_1.SceneCanvas({\n width: config.width || this.width(),\n height: config.height || this.height(),\n pixelRatio: config.pixelRatio || 1\n }),\n _context = canvas.getContext()._context,\n layers = this.children;\n if (x || y) {\n _context.translate(-1 * x, -1 * y);\n }\n layers.each(function (layer) {\n if (!layer.isVisible()) {\n return;\n }\n var layerCanvas = layer._toKonvaCanvas(config);\n _context.drawImage(layerCanvas._canvas, x, y, layerCanvas.getWidth() / layerCanvas.getPixelRatio(), layerCanvas.getHeight() / layerCanvas.getPixelRatio());\n });\n return canvas;\n };\n Stage.prototype.getIntersection = function (pos, selector) {\n if (!pos) {\n return null;\n }\n var layers = this.children,\n len = layers.length,\n end = len - 1,\n n,\n shape;\n for (n = end; n >= 0; n--) {\n shape = layers[n].getIntersection(pos, selector);\n if (shape) {\n return shape;\n }\n }\n return null;\n };\n Stage.prototype._resizeDOM = function () {\n var width = this.width();\n var height = this.height();\n if (this.content) {\n this.content.style.width = width + PX;\n this.content.style.height = height + PX;\n }\n this.bufferCanvas.setSize(width, height);\n this.bufferHitCanvas.setSize(width, height);\n this.children.each(function (layer) {\n layer.setSize({\n width: width,\n height: height\n });\n layer.draw();\n });\n };\n Stage.prototype.add = function (layer) {\n if (arguments.length > 1) {\n for (var i = 0; i < arguments.length; i++) {\n this.add(arguments[i]);\n }\n return this;\n }\n _super.prototype.add.call(this, layer);\n var length = this.children.length;\n if (length > MAX_LAYERS_NUMBER) {\n Util_1.Util.warn('The stage has ' + length + ' layers. Recommended maximum number of layers is 3-5. Adding more layers into the stage may drop the performance. Rethink your tree structure, you can use Konva.Group.');\n }\n layer._setCanvasSize(this.width(), this.height());\n layer.draw();\n if (Global_1.Konva.isBrowser) {\n this.content.appendChild(layer.canvas._canvas);\n }\n return this;\n };\n Stage.prototype.getParent = function () {\n return null;\n };\n Stage.prototype.getLayer = function () {\n return null;\n };\n Stage.prototype.hasPointerCapture = function (pointerId) {\n return PointerEvents.hasPointerCapture(pointerId, this);\n };\n Stage.prototype.setPointerCapture = function (pointerId) {\n PointerEvents.setPointerCapture(pointerId, this);\n };\n Stage.prototype.releaseCapture = function (pointerId) {\n PointerEvents.releaseCapture(pointerId, this);\n };\n Stage.prototype.getLayers = function () {\n return this.getChildren();\n };\n Stage.prototype._bindContentEvents = function () {\n if (!Global_1.Konva.isBrowser) {\n return;\n }\n for (var n = 0; n < eventsLength; n++) {\n addEvent(this, EVENTS[n]);\n }\n };\n Stage.prototype._mouseenter = function (evt) {\n this.setPointersPositions(evt);\n this._fire(MOUSEENTER, {\n evt: evt,\n target: this,\n currentTarget: this\n });\n };\n Stage.prototype._mouseover = function (evt) {\n this.setPointersPositions(evt);\n this._fire(CONTENT_MOUSEOVER, {\n evt: evt\n });\n this._fire(MOUSEOVER, {\n evt: evt,\n target: this,\n currentTarget: this\n });\n };\n Stage.prototype._mouseout = function (evt) {\n this.setPointersPositions(evt);\n var targetShape = this.targetShape;\n var eventsEnabled = !DragAndDrop_1.DD.isDragging || Global_1.Konva.hitOnDragEnabled;\n if (targetShape && eventsEnabled) {\n targetShape._fireAndBubble(MOUSEOUT, {\n evt: evt\n });\n targetShape._fireAndBubble(MOUSELEAVE, {\n evt: evt\n });\n this._fire(MOUSELEAVE, {\n evt: evt,\n target: this,\n currentTarget: this\n });\n this.targetShape = null;\n } else if (eventsEnabled) {\n this._fire(MOUSELEAVE, {\n evt: evt,\n target: this,\n currentTarget: this\n });\n this._fire(MOUSEOUT, {\n evt: evt,\n target: this,\n currentTarget: this\n });\n }\n this.pointerPos = undefined;\n this._pointerPositions = [];\n this._fire(CONTENT_MOUSEOUT, {\n evt: evt\n });\n };\n Stage.prototype._mousemove = function (evt) {\n if (Global_1.Konva.UA.ieMobile) {\n return this._touchmove(evt);\n }\n this.setPointersPositions(evt);\n var pointerId = Util_1.Util._getFirstPointerId(evt);\n var shape;\n var eventsEnabled = !DragAndDrop_1.DD.isDragging || Global_1.Konva.hitOnDragEnabled;\n if (eventsEnabled) {\n shape = this.getIntersection(this.getPointerPosition());\n if (shape && shape.isListening()) {\n var differentTarget = !this.targetShape || this.targetShape !== shape;\n if (eventsEnabled && differentTarget) {\n if (this.targetShape) {\n this.targetShape._fireAndBubble(MOUSEOUT, {\n evt: evt,\n pointerId: pointerId\n }, shape);\n this.targetShape._fireAndBubble(MOUSELEAVE, {\n evt: evt,\n pointerId: pointerId\n }, shape);\n }\n shape._fireAndBubble(MOUSEOVER, {\n evt: evt,\n pointerId: pointerId\n }, this.targetShape);\n shape._fireAndBubble(MOUSEENTER, {\n evt: evt,\n pointerId: pointerId\n }, this.targetShape);\n shape._fireAndBubble(MOUSEMOVE, {\n evt: evt,\n pointerId: pointerId\n });\n this.targetShape = shape;\n } else {\n shape._fireAndBubble(MOUSEMOVE, {\n evt: evt,\n pointerId: pointerId\n });\n }\n } else {\n if (this.targetShape && eventsEnabled) {\n this.targetShape._fireAndBubble(MOUSEOUT, {\n evt: evt,\n pointerId: pointerId\n });\n this.targetShape._fireAndBubble(MOUSELEAVE, {\n evt: evt,\n pointerId: pointerId\n });\n this._fire(MOUSEOVER, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: pointerId\n });\n this.targetShape = null;\n }\n this._fire(MOUSEMOVE, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: pointerId\n });\n }\n this._fire(CONTENT_MOUSEMOVE, {\n evt: evt\n });\n }\n if (evt.cancelable) {\n evt.preventDefault();\n }\n };\n Stage.prototype._mousedown = function (evt) {\n if (Global_1.Konva.UA.ieMobile) {\n return this._touchstart(evt);\n }\n this.setPointersPositions(evt);\n var pointerId = Util_1.Util._getFirstPointerId(evt);\n var shape = this.getIntersection(this.getPointerPosition());\n DragAndDrop_1.DD.justDragged = false;\n Global_1.Konva.listenClickTap = true;\n if (shape && shape.isListening()) {\n this.clickStartShape = shape;\n shape._fireAndBubble(MOUSEDOWN, {\n evt: evt,\n pointerId: pointerId\n });\n } else {\n this._fire(MOUSEDOWN, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: pointerId\n });\n }\n this._fire(CONTENT_MOUSEDOWN, {\n evt: evt\n });\n };\n Stage.prototype._mouseup = function (evt) {\n if (Global_1.Konva.UA.ieMobile) {\n return this._touchend(evt);\n }\n this.setPointersPositions(evt);\n var pointerId = Util_1.Util._getFirstPointerId(evt);\n var shape = this.getIntersection(this.getPointerPosition()),\n clickStartShape = this.clickStartShape,\n clickEndShape = this.clickEndShape,\n fireDblClick = false;\n if (Global_1.Konva.inDblClickWindow) {\n fireDblClick = true;\n clearTimeout(this.dblTimeout);\n } else if (!DragAndDrop_1.DD.justDragged) {\n Global_1.Konva.inDblClickWindow = true;\n clearTimeout(this.dblTimeout);\n }\n this.dblTimeout = setTimeout(function () {\n Global_1.Konva.inDblClickWindow = false;\n }, Global_1.Konva.dblClickWindow);\n if (shape && shape.isListening()) {\n this.clickEndShape = shape;\n shape._fireAndBubble(MOUSEUP, {\n evt: evt,\n pointerId: pointerId\n });\n if (Global_1.Konva.listenClickTap && clickStartShape && clickStartShape._id === shape._id) {\n shape._fireAndBubble(CLICK, {\n evt: evt,\n pointerId: pointerId\n });\n if (fireDblClick && clickEndShape && clickEndShape === shape) {\n shape._fireAndBubble(DBL_CLICK, {\n evt: evt,\n pointerId: pointerId\n });\n }\n }\n } else {\n this._fire(MOUSEUP, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: pointerId\n });\n if (Global_1.Konva.listenClickTap) {\n this._fire(CLICK, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: pointerId\n });\n }\n if (fireDblClick) {\n this._fire(DBL_CLICK, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: pointerId\n });\n }\n }\n this._fire(CONTENT_MOUSEUP, {\n evt: evt\n });\n if (Global_1.Konva.listenClickTap) {\n this._fire(CONTENT_CLICK, {\n evt: evt\n });\n if (fireDblClick) {\n this._fire(CONTENT_DBL_CLICK, {\n evt: evt\n });\n }\n }\n Global_1.Konva.listenClickTap = false;\n if (evt.cancelable) {\n evt.preventDefault();\n }\n };\n Stage.prototype._contextmenu = function (evt) {\n this.setPointersPositions(evt);\n var shape = this.getIntersection(this.getPointerPosition());\n if (shape && shape.isListening()) {\n shape._fireAndBubble(CONTEXTMENU, {\n evt: evt\n });\n } else {\n this._fire(CONTEXTMENU, {\n evt: evt,\n target: this,\n currentTarget: this\n });\n }\n this._fire(CONTENT_CONTEXTMENU, {\n evt: evt\n });\n };\n Stage.prototype._touchstart = function (evt) {\n var _this = this;\n this.setPointersPositions(evt);\n var triggeredOnShape = false;\n this._changedPointerPositions.forEach(function (pos) {\n var shape = _this.getIntersection(pos);\n Global_1.Konva.listenClickTap = true;\n DragAndDrop_1.DD.justDragged = false;\n var hasShape = shape && shape.isListening();\n if (!hasShape) {\n return;\n }\n if (Global_1.Konva.captureTouchEventsEnabled) {\n shape.setPointerCapture(pos.id);\n }\n _this.tapStartShape = shape;\n shape._fireAndBubble(TOUCHSTART, {\n evt: evt,\n pointerId: pos.id\n }, _this);\n triggeredOnShape = true;\n if (shape.isListening() && shape.preventDefault() && evt.cancelable) {\n evt.preventDefault();\n }\n });\n if (!triggeredOnShape) {\n this._fire(TOUCHSTART, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id\n });\n }\n this._fire(CONTENT_TOUCHSTART, {\n evt: evt\n });\n };\n Stage.prototype._touchmove = function (evt) {\n var _this = this;\n this.setPointersPositions(evt);\n var eventsEnabled = !DragAndDrop_1.DD.isDragging || Global_1.Konva.hitOnDragEnabled;\n if (eventsEnabled) {\n var triggeredOnShape = false;\n var processedShapesIds = {};\n this._changedPointerPositions.forEach(function (pos) {\n var shape = PointerEvents.getCapturedShape(pos.id) || _this.getIntersection(pos);\n var hasShape = shape && shape.isListening();\n if (!hasShape) {\n return;\n }\n if (processedShapesIds[shape._id]) {\n return;\n }\n processedShapesIds[shape._id] = true;\n shape._fireAndBubble(TOUCHMOVE, {\n evt: evt,\n pointerId: pos.id\n });\n triggeredOnShape = true;\n if (shape.isListening() && shape.preventDefault() && evt.cancelable) {\n evt.preventDefault();\n }\n });\n if (!triggeredOnShape) {\n this._fire(TOUCHMOVE, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id\n });\n }\n this._fire(CONTENT_TOUCHMOVE, {\n evt: evt\n });\n }\n if (DragAndDrop_1.DD.isDragging && DragAndDrop_1.DD.node.preventDefault() && evt.cancelable) {\n evt.preventDefault();\n }\n };\n Stage.prototype._touchend = function (evt) {\n var _this = this;\n this.setPointersPositions(evt);\n var clickEndShape = this.clickEndShape,\n fireDblClick = false;\n if (Global_1.Konva.inDblClickWindow) {\n fireDblClick = true;\n clearTimeout(this.dblTimeout);\n } else if (!DragAndDrop_1.DD.justDragged) {\n Global_1.Konva.inDblClickWindow = true;\n clearTimeout(this.dblTimeout);\n }\n this.dblTimeout = setTimeout(function () {\n Global_1.Konva.inDblClickWindow = false;\n }, Global_1.Konva.dblClickWindow);\n var triggeredOnShape = false;\n var processedShapesIds = {};\n var tapTriggered = false;\n var dblTapTriggered = false;\n this._changedPointerPositions.forEach(function (pos) {\n var shape = PointerEvents.getCapturedShape(pos.id) || _this.getIntersection(pos);\n if (shape) {\n shape.releaseCapture(pos.id);\n }\n var hasShape = shape && shape.isListening();\n if (!hasShape) {\n return;\n }\n if (processedShapesIds[shape._id]) {\n return;\n }\n processedShapesIds[shape._id] = true;\n _this.clickEndShape = shape;\n shape._fireAndBubble(TOUCHEND, {\n evt: evt,\n pointerId: pos.id\n });\n triggeredOnShape = true;\n if (Global_1.Konva.listenClickTap && shape === _this.tapStartShape) {\n tapTriggered = true;\n shape._fireAndBubble(TAP, {\n evt: evt,\n pointerId: pos.id\n });\n if (fireDblClick && clickEndShape && clickEndShape === shape) {\n dblTapTriggered = true;\n shape._fireAndBubble(DBL_TAP, {\n evt: evt,\n pointerId: pos.id\n });\n }\n }\n if (shape.isListening() && shape.preventDefault() && evt.cancelable) {\n evt.preventDefault();\n }\n });\n if (!triggeredOnShape) {\n this._fire(TOUCHEND, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id\n });\n }\n if (Global_1.Konva.listenClickTap && !tapTriggered) {\n this._fire(TAP, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id\n });\n }\n if (fireDblClick && !dblTapTriggered) {\n this._fire(DBL_TAP, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id\n });\n }\n this._fire(CONTENT_TOUCHEND, {\n evt: evt\n });\n if (Global_1.Konva.listenClickTap) {\n this._fire(CONTENT_TAP, {\n evt: evt\n });\n if (fireDblClick) {\n this._fire(CONTENT_DBL_TAP, {\n evt: evt\n });\n }\n }\n Global_1.Konva.listenClickTap = false;\n };\n Stage.prototype._wheel = function (evt) {\n this.setPointersPositions(evt);\n var shape = this.getIntersection(this.getPointerPosition());\n if (shape && shape.isListening()) {\n shape._fireAndBubble(WHEEL, {\n evt: evt\n });\n } else {\n this._fire(WHEEL, {\n evt: evt,\n target: this,\n currentTarget: this\n });\n }\n this._fire(CONTENT_WHEEL, {\n evt: evt\n });\n };\n Stage.prototype._pointerdown = function (evt) {\n if (!Global_1.Konva._pointerEventsEnabled) {\n return;\n }\n this.setPointersPositions(evt);\n var shape = PointerEvents.getCapturedShape(evt.pointerId) || this.getIntersection(this.getPointerPosition());\n if (shape) {\n shape._fireAndBubble(POINTERDOWN, PointerEvents.createEvent(evt));\n }\n };\n Stage.prototype._pointermove = function (evt) {\n if (!Global_1.Konva._pointerEventsEnabled) {\n return;\n }\n this.setPointersPositions(evt);\n var shape = PointerEvents.getCapturedShape(evt.pointerId) || this.getIntersection(this.getPointerPosition());\n if (shape) {\n shape._fireAndBubble(POINTERMOVE, PointerEvents.createEvent(evt));\n }\n };\n Stage.prototype._pointerup = function (evt) {\n if (!Global_1.Konva._pointerEventsEnabled) {\n return;\n }\n this.setPointersPositions(evt);\n var shape = PointerEvents.getCapturedShape(evt.pointerId) || this.getIntersection(this.getPointerPosition());\n if (shape) {\n shape._fireAndBubble(POINTERUP, PointerEvents.createEvent(evt));\n }\n PointerEvents.releaseCapture(evt.pointerId);\n };\n Stage.prototype._pointercancel = function (evt) {\n if (!Global_1.Konva._pointerEventsEnabled) {\n return;\n }\n this.setPointersPositions(evt);\n var shape = PointerEvents.getCapturedShape(evt.pointerId) || this.getIntersection(this.getPointerPosition());\n if (shape) {\n shape._fireAndBubble(POINTERUP, PointerEvents.createEvent(evt));\n }\n PointerEvents.releaseCapture(evt.pointerId);\n };\n Stage.prototype._lostpointercapture = function (evt) {\n PointerEvents.releaseCapture(evt.pointerId);\n };\n Stage.prototype.setPointersPositions = function (evt) {\n var _this = this;\n var contentPosition = this._getContentPosition(),\n x = null,\n y = null;\n evt = evt ? evt : window.event;\n if (evt.touches !== undefined) {\n this._pointerPositions = [];\n this._changedPointerPositions = [];\n Util_1.Collection.prototype.each.call(evt.touches, function (touch) {\n _this._pointerPositions.push({\n id: touch.identifier,\n x: (touch.clientX - contentPosition.left) / contentPosition.scaleX,\n y: (touch.clientY - contentPosition.top) / contentPosition.scaleY\n });\n });\n Util_1.Collection.prototype.each.call(evt.changedTouches || evt.touches, function (touch) {\n _this._changedPointerPositions.push({\n id: touch.identifier,\n x: (touch.clientX - contentPosition.left) / contentPosition.scaleX,\n y: (touch.clientY - contentPosition.top) / contentPosition.scaleY\n });\n });\n } else {\n x = (evt.clientX - contentPosition.left) / contentPosition.scaleX;\n y = (evt.clientY - contentPosition.top) / contentPosition.scaleY;\n this.pointerPos = {\n x: x,\n y: y\n };\n this._pointerPositions = [{\n x: x,\n y: y,\n id: Util_1.Util._getFirstPointerId(evt)\n }];\n this._changedPointerPositions = [{\n x: x,\n y: y,\n id: Util_1.Util._getFirstPointerId(evt)\n }];\n }\n };\n Stage.prototype._setPointerPosition = function (evt) {\n Util_1.Util.warn('Method _setPointerPosition is deprecated. Use \"stage.setPointersPositions(event)\" instead.');\n this.setPointersPositions(evt);\n };\n Stage.prototype._getContentPosition = function () {\n if (!this.content || !this.content.getBoundingClientRect) {\n return {\n top: 0,\n left: 0,\n scaleX: 1,\n scaleY: 1\n };\n }\n var rect = this.content.getBoundingClientRect();\n return {\n top: rect.top,\n left: rect.left,\n scaleX: rect.width / this.content.clientWidth || 1,\n scaleY: rect.height / this.content.clientHeight || 1\n };\n };\n Stage.prototype._buildDOM = function () {\n this.bufferCanvas = new Canvas_1.SceneCanvas({\n width: this.width(),\n height: this.height()\n });\n this.bufferHitCanvas = new Canvas_1.HitCanvas({\n pixelRatio: 1,\n width: this.width(),\n height: this.height()\n });\n if (!Global_1.Konva.isBrowser) {\n return;\n }\n var container = this.container();\n if (!container) {\n throw 'Stage has no container. A container is required.';\n }\n container.innerHTML = EMPTY_STRING;\n this.content = document.createElement('div');\n this.content.style.position = RELATIVE;\n this.content.style.userSelect = 'none';\n this.content.className = KONVA_CONTENT;\n this.content.setAttribute('role', 'presentation');\n container.appendChild(this.content);\n this._resizeDOM();\n };\n Stage.prototype.cache = function () {\n Util_1.Util.warn('Cache function is not allowed for stage. You may use cache only for layers, groups and shapes.');\n return this;\n };\n Stage.prototype.clearCache = function () {\n return this;\n };\n Stage.prototype.batchDraw = function () {\n this.children.each(function (layer) {\n layer.batchDraw();\n });\n return this;\n };\n return Stage;\n}(Container_1.Container);\nexports.Stage = Stage;\nStage.prototype.nodeType = STAGE;\nGlobal_2._registerNode(Stage);\nFactory_1.Factory.addGetterSetter(Stage, 'container');","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Factory_1 = require(\"./Factory\");\nvar Node_1 = require(\"./Node\");\nvar DragAndDrop_1 = require(\"./DragAndDrop\");\nvar Validators_1 = require(\"./Validators\");\nvar Global_1 = require(\"./Global\");\nvar Container = function (_super) {\n __extends(Container, _super);\n function Container() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.children = new Util_1.Collection();\n return _this;\n }\n Container.prototype.getChildren = function (filterFunc) {\n if (!filterFunc) {\n return this.children;\n }\n var results = new Util_1.Collection();\n this.children.each(function (child) {\n if (filterFunc(child)) {\n results.push(child);\n }\n });\n return results;\n };\n Container.prototype.hasChildren = function () {\n return this.getChildren().length > 0;\n };\n Container.prototype.removeChildren = function () {\n var child;\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[i];\n child.parent = null;\n child.index = 0;\n child.remove();\n }\n this.children = new Util_1.Collection();\n return this;\n };\n Container.prototype.destroyChildren = function () {\n var child;\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[i];\n child.parent = null;\n child.index = 0;\n child.destroy();\n }\n this.children = new Util_1.Collection();\n return this;\n };\n Container.prototype.add = function () {\n var children = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n children[_i] = arguments[_i];\n }\n if (arguments.length > 1) {\n for (var i = 0; i < arguments.length; i++) {\n this.add(arguments[i]);\n }\n return this;\n }\n var child = children[0];\n if (child.getParent()) {\n child.moveTo(this);\n return this;\n }\n var _children = this.children;\n this._validateAdd(child);\n child._clearCaches();\n child.index = _children.length;\n child.parent = this;\n _children.push(child);\n this._fire('add', {\n child: child\n });\n return this;\n };\n Container.prototype.destroy = function () {\n if (this.hasChildren()) {\n this.destroyChildren();\n }\n _super.prototype.destroy.call(this);\n return this;\n };\n Container.prototype.find = function (selector) {\n return this._generalFind(selector, false);\n };\n Container.prototype.get = function (selector) {\n Util_1.Util.warn('collection.get() method is deprecated. Please use collection.find() instead.');\n return this.find(selector);\n };\n Container.prototype.findOne = function (selector) {\n var result = this._generalFind(selector, true);\n return result.length > 0 ? result[0] : undefined;\n };\n Container.prototype._generalFind = function (selector, findOne) {\n var retArr = [];\n this._descendants(function (node) {\n var valid = node._isMatch(selector);\n if (valid) {\n retArr.push(node);\n }\n if (valid && findOne) {\n return true;\n }\n return false;\n });\n return Util_1.Collection.toCollection(retArr);\n };\n Container.prototype._descendants = function (fn) {\n var shouldStop = false;\n for (var i = 0; i < this.children.length; i++) {\n var child = this.children[i];\n shouldStop = fn(child);\n if (shouldStop) {\n return true;\n }\n if (!child.hasChildren()) {\n continue;\n }\n shouldStop = child._descendants(fn);\n if (shouldStop) {\n return true;\n }\n }\n return false;\n };\n Container.prototype.toObject = function () {\n var obj = Node_1.Node.prototype.toObject.call(this);\n obj.children = [];\n var children = this.getChildren();\n var len = children.length;\n for (var n = 0; n < len; n++) {\n var child = children[n];\n obj.children.push(child.toObject());\n }\n return obj;\n };\n Container.prototype._getDescendants = function (arr) {\n var retArr = [];\n var len = arr.length;\n for (var n = 0; n < len; n++) {\n var node = arr[n];\n if (this.isAncestorOf(node)) {\n retArr.push(node);\n }\n }\n return retArr;\n };\n Container.prototype.isAncestorOf = function (node) {\n var parent = node.getParent();\n while (parent) {\n if (parent._id === this._id) {\n return true;\n }\n parent = parent.getParent();\n }\n return false;\n };\n Container.prototype.clone = function (obj) {\n var node = Node_1.Node.prototype.clone.call(this, obj);\n this.getChildren().each(function (no) {\n node.add(no.clone());\n });\n return node;\n };\n Container.prototype.getAllIntersections = function (pos) {\n var arr = [];\n this.find('Shape').each(function (shape) {\n if (shape.isVisible() && shape.intersects(pos)) {\n arr.push(shape);\n }\n });\n return arr;\n };\n Container.prototype._setChildrenIndices = function () {\n this.children.each(function (child, n) {\n child.index = n;\n });\n };\n Container.prototype.drawScene = function (can, top, caching) {\n var layer = this.getLayer(),\n canvas = can || layer && layer.getCanvas(),\n context = canvas && canvas.getContext(),\n cachedCanvas = this._getCanvasCache(),\n cachedSceneCanvas = cachedCanvas && cachedCanvas.scene;\n if (this.isVisible() || caching) {\n if (!caching && cachedSceneCanvas) {\n context.save();\n layer._applyTransform(this, context, top);\n this._drawCachedSceneCanvas(context);\n context.restore();\n } else {\n this._drawChildren(canvas, 'drawScene', top, false, caching, caching);\n }\n }\n return this;\n };\n Container.prototype.drawHit = function (can, top, caching) {\n var layer = this.getLayer(),\n canvas = can || layer && layer.hitCanvas,\n context = canvas && canvas.getContext(),\n cachedCanvas = this._getCanvasCache(),\n cachedHitCanvas = cachedCanvas && cachedCanvas.hit;\n if (this.shouldDrawHit(canvas) || caching) {\n if (!caching && cachedHitCanvas) {\n context.save();\n layer._applyTransform(this, context, top);\n this._drawCachedHitCanvas(context);\n context.restore();\n } else {\n this._drawChildren(canvas, 'drawHit', top, false, caching, caching);\n }\n }\n return this;\n };\n Container.prototype._drawChildren = function (canvas, drawMethod, top, caching, skipBuffer, skipComposition) {\n var layer = this.getLayer(),\n context = canvas && canvas.getContext(),\n clipWidth = this.clipWidth(),\n clipHeight = this.clipHeight(),\n clipFunc = this.clipFunc(),\n hasClip = clipWidth && clipHeight || clipFunc,\n clipX,\n clipY;\n if (hasClip && layer) {\n context.save();\n var transform = this.getAbsoluteTransform(top);\n var m = transform.getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n context.beginPath();\n if (clipFunc) {\n clipFunc.call(this, context, this);\n } else {\n clipX = this.clipX();\n clipY = this.clipY();\n context.rect(clipX, clipY, clipWidth, clipHeight);\n }\n context.clip();\n m = transform.copy().invert().getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n }\n var hasComposition = this.globalCompositeOperation() !== 'source-over' && !skipComposition && drawMethod === 'drawScene';\n if (hasComposition && layer) {\n context.save();\n context._applyGlobalCompositeOperation(this);\n }\n this.children.each(function (child) {\n child[drawMethod](canvas, top, caching, skipBuffer);\n });\n if (hasComposition && layer) {\n context.restore();\n }\n if (hasClip && layer) {\n context.restore();\n }\n };\n Container.prototype.shouldDrawHit = function (canvas) {\n if (canvas && canvas.isCache) {\n return true;\n }\n var layer = this.getLayer();\n var layerUnderDrag = false;\n DragAndDrop_1.DD._dragElements.forEach(function (elem) {\n if (elem.dragStatus === 'dragging' && elem.node.getLayer() === layer) {\n layerUnderDrag = true;\n }\n });\n var dragSkip = !Global_1.Konva.hitOnDragEnabled && layerUnderDrag;\n return layer && layer.hitGraphEnabled() && this.isVisible() && !dragSkip;\n };\n Container.prototype.getClientRect = function (attrs) {\n attrs = attrs || {};\n var skipTransform = attrs.skipTransform;\n var relativeTo = attrs.relativeTo;\n var minX, minY, maxX, maxY;\n var selfRect = {\n x: Infinity,\n y: Infinity,\n width: 0,\n height: 0\n };\n var that = this;\n this.children.each(function (child) {\n if (!child.visible()) {\n return;\n }\n var rect = child.getClientRect({\n relativeTo: that,\n skipShadow: attrs.skipShadow,\n skipStroke: attrs.skipStroke\n });\n if (rect.width === 0 && rect.height === 0) {\n return;\n }\n if (minX === undefined) {\n minX = rect.x;\n minY = rect.y;\n maxX = rect.x + rect.width;\n maxY = rect.y + rect.height;\n } else {\n minX = Math.min(minX, rect.x);\n minY = Math.min(minY, rect.y);\n maxX = Math.max(maxX, rect.x + rect.width);\n maxY = Math.max(maxY, rect.y + rect.height);\n }\n });\n var shapes = this.find('Shape');\n var hasVisible = false;\n for (var i = 0; i < shapes.length; i++) {\n var shape = shapes[i];\n if (shape._isVisible(this)) {\n hasVisible = true;\n break;\n }\n }\n if (hasVisible && minX !== undefined) {\n selfRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n } else {\n selfRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n if (!skipTransform) {\n return this._transformedRect(selfRect, relativeTo);\n }\n return selfRect;\n };\n return Container;\n}(Node_1.Node);\nexports.Container = Container;\nFactory_1.Factory.addComponentsGetterSetter(Container, 'clip', ['x', 'y', 'width', 'height']);\nFactory_1.Factory.addGetterSetter(Container, 'clipX', undefined, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Container, 'clipY', undefined, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Container, 'clipWidth', undefined, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Container, 'clipHeight', undefined, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Container, 'clipFunc');\nUtil_1.Collection.mapMethods(Container);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Global_1 = require(\"./Global\");\nvar now = function () {\n if (Global_1.glob.performance && Global_1.glob.performance.now) {\n return function () {\n return Global_1.glob.performance.now();\n };\n }\n return function () {\n return new Date().getTime();\n };\n}();\nvar Animation = function () {\n function Animation(func, layers) {\n this.id = Animation.animIdCounter++;\n this.frame = {\n time: 0,\n timeDiff: 0,\n lastTime: now(),\n frameRate: 0\n };\n this.func = func;\n this.setLayers(layers);\n }\n Animation.prototype.setLayers = function (layers) {\n var lays = [];\n if (!layers) {\n lays = [];\n } else if (layers.length > 0) {\n lays = layers;\n } else {\n lays = [layers];\n }\n this.layers = lays;\n return this;\n };\n Animation.prototype.getLayers = function () {\n return this.layers;\n };\n Animation.prototype.addLayer = function (layer) {\n var layers = this.layers,\n len = layers.length,\n n;\n for (n = 0; n < len; n++) {\n if (layers[n]._id === layer._id) {\n return false;\n }\n }\n this.layers.push(layer);\n return true;\n };\n Animation.prototype.isRunning = function () {\n var a = Animation,\n animations = a.animations,\n len = animations.length,\n n;\n for (n = 0; n < len; n++) {\n if (animations[n].id === this.id) {\n return true;\n }\n }\n return false;\n };\n Animation.prototype.start = function () {\n this.stop();\n this.frame.timeDiff = 0;\n this.frame.lastTime = now();\n Animation._addAnimation(this);\n return this;\n };\n Animation.prototype.stop = function () {\n Animation._removeAnimation(this);\n return this;\n };\n Animation.prototype._updateFrameObject = function (time) {\n this.frame.timeDiff = time - this.frame.lastTime;\n this.frame.lastTime = time;\n this.frame.time += this.frame.timeDiff;\n this.frame.frameRate = 1000 / this.frame.timeDiff;\n };\n Animation._addAnimation = function (anim) {\n this.animations.push(anim);\n this._handleAnimation();\n };\n Animation._removeAnimation = function (anim) {\n var id = anim.id,\n animations = this.animations,\n len = animations.length,\n n;\n for (n = 0; n < len; n++) {\n if (animations[n].id === id) {\n this.animations.splice(n, 1);\n break;\n }\n }\n };\n Animation._runFrames = function () {\n var layerHash = {},\n animations = this.animations,\n anim,\n layers,\n func,\n n,\n i,\n layersLen,\n layer,\n key,\n needRedraw;\n for (n = 0; n < animations.length; n++) {\n anim = animations[n];\n layers = anim.layers;\n func = anim.func;\n anim._updateFrameObject(now());\n layersLen = layers.length;\n if (func) {\n needRedraw = func.call(anim, anim.frame) !== false;\n } else {\n needRedraw = true;\n }\n if (!needRedraw) {\n continue;\n }\n for (i = 0; i < layersLen; i++) {\n layer = layers[i];\n if (layer._id !== undefined) {\n layerHash[layer._id] = layer;\n }\n }\n }\n for (key in layerHash) {\n if (!layerHash.hasOwnProperty(key)) {\n continue;\n }\n layerHash[key].draw();\n }\n };\n Animation._animationLoop = function () {\n var Anim = Animation;\n if (Anim.animations.length) {\n Anim._runFrames();\n requestAnimationFrame(Anim._animationLoop);\n } else {\n Anim.animRunning = false;\n }\n };\n Animation._handleAnimation = function () {\n if (!this.animRunning) {\n this.animRunning = true;\n requestAnimationFrame(this._animationLoop);\n }\n };\n Animation.animations = [];\n Animation.animIdCounter = 0;\n Animation.animRunning = false;\n return Animation;\n}();\nexports.Animation = Animation;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Container_1 = require(\"./Container\");\nvar Global_1 = require(\"./Global\");\nvar Group = function (_super) {\n __extends(Group, _super);\n function Group() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Group.prototype._validateAdd = function (child) {\n var type = child.getType();\n if (type !== 'Group' && type !== 'Shape') {\n Util_1.Util.throw('You may only add groups and shapes to groups.');\n }\n };\n return Group;\n}(Container_1.Container);\nexports.Group = Group;\nGroup.prototype.nodeType = 'Group';\nGlobal_1._registerNode(Group);\nUtil_1.Collection.mapMethods(Group);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Validators_1 = require(\"./Validators\");\nvar GET = 'get',\n SET = 'set';\nexports.Factory = {\n addGetterSetter: function (constructor, attr, def, validator, after) {\n this.addGetter(constructor, attr, def);\n this.addSetter(constructor, attr, validator, after);\n this.addOverloadedGetterSetter(constructor, attr);\n },\n addGetter: function (constructor, attr, def) {\n var method = GET + Util_1.Util._capitalize(attr);\n constructor.prototype[method] = constructor.prototype[method] || function () {\n var val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n },\n addSetter: function (constructor, attr, validator, after) {\n var method = SET + Util_1.Util._capitalize(attr);\n if (!constructor.prototype[method]) {\n exports.Factory.overWriteSetter(constructor, attr, validator, after);\n }\n },\n overWriteSetter: function (constructor, attr, validator, after) {\n var method = SET + Util_1.Util._capitalize(attr);\n constructor.prototype[method] = function (val) {\n if (validator && val !== undefined && val !== null) {\n val = validator.call(this, val, attr);\n }\n this._setAttr(attr, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n },\n addComponentsGetterSetter: function (constructor, attr, components, validator, after) {\n var len = components.length,\n capitalize = Util_1.Util._capitalize,\n getter = GET + capitalize(attr),\n setter = SET + capitalize(attr),\n n,\n component;\n constructor.prototype[getter] = function () {\n var ret = {};\n for (n = 0; n < len; n++) {\n component = components[n];\n ret[component] = this.getAttr(attr + capitalize(component));\n }\n return ret;\n };\n var basicValidator = Validators_1.getComponentValidator(components);\n constructor.prototype[setter] = function (val) {\n var oldVal = this.attrs[attr],\n key;\n if (validator) {\n val = validator.call(this, val);\n }\n if (basicValidator) {\n basicValidator.call(this, val, attr);\n }\n for (key in val) {\n if (!val.hasOwnProperty(key)) {\n continue;\n }\n this._setAttr(attr + capitalize(key), val[key]);\n }\n this._fireChangeEvent(attr, oldVal, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n this.addOverloadedGetterSetter(constructor, attr);\n },\n addOverloadedGetterSetter: function (constructor, attr) {\n var capitalizedAttr = Util_1.Util._capitalize(attr),\n setter = SET + capitalizedAttr,\n getter = GET + capitalizedAttr;\n constructor.prototype[attr] = function () {\n if (arguments.length) {\n this[setter](arguments[0]);\n return this;\n }\n return this[getter]();\n };\n },\n addDeprecatedGetterSetter: function (constructor, attr, def, validator) {\n Util_1.Util.error('Adding deprecated ' + attr);\n var method = GET + Util_1.Util._capitalize(attr);\n var message = attr + ' property is deprecated and will be removed soon. Look at Konva change log for more information.';\n constructor.prototype[method] = function () {\n Util_1.Util.error(message);\n var val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n this.addSetter(constructor, attr, validator, function () {\n Util_1.Util.error(message);\n });\n this.addOverloadedGetterSetter(constructor, attr);\n },\n backCompat: function (constructor, methods) {\n Util_1.Util.each(methods, function (oldMethodName, newMethodName) {\n var method = constructor.prototype[newMethodName];\n var oldGetter = GET + Util_1.Util._capitalize(oldMethodName);\n var oldSetter = SET + Util_1.Util._capitalize(oldMethodName);\n function deprecated() {\n method.apply(this, arguments);\n Util_1.Util.error('\"' + oldMethodName + '\" method is deprecated and will be removed soon. Use \"\"' + newMethodName + '\" instead.');\n }\n constructor.prototype[oldMethodName] = deprecated;\n constructor.prototype[oldGetter] = deprecated;\n constructor.prototype[oldSetter] = deprecated;\n });\n },\n afterSetFilter: function () {\n this._filterUpToDate = false;\n }\n};","'use strict';\n\nexports.__esModule = true;\nexports.supportsMutation = exports.isPrimaryRenderer = exports.cancelPassiveEffects = exports.schedulePassiveEffects = exports.noTimeout = exports.cancelTimeout = exports.scheduleTimeout = exports.cancelDeferredCallback = exports.shouldYield = exports.scheduleDeferredCallback = exports.now = undefined;\nvar _HostConfigWithNoPersistence = require('./HostConfigWithNoPersistence');\nObject.keys(_HostConfigWithNoPersistence).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _HostConfigWithNoPersistence[key];\n }\n });\n});\nvar _HostConfigWithNoHydration = require('./HostConfigWithNoHydration');\nObject.keys(_HostConfigWithNoHydration).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _HostConfigWithNoHydration[key];\n }\n });\n});\nvar _scheduler = require('scheduler');\nObject.defineProperty(exports, 'now', {\n enumerable: true,\n get: function get() {\n return _scheduler.unstable_now;\n }\n});\nObject.defineProperty(exports, 'scheduleDeferredCallback', {\n enumerable: true,\n get: function get() {\n return _scheduler.unstable_scheduleCallback;\n }\n});\nObject.defineProperty(exports, 'shouldYield', {\n enumerable: true,\n get: function get() {\n return _scheduler.unstable_shouldYield;\n }\n});\nObject.defineProperty(exports, 'cancelDeferredCallback', {\n enumerable: true,\n get: function get() {\n return _scheduler.unstable_cancelCallback;\n }\n});\nexports.appendInitialChild = appendInitialChild;\nexports.createInstance = createInstance;\nexports.createTextInstance = createTextInstance;\nexports.finalizeInitialChildren = finalizeInitialChildren;\nexports.getPublicInstance = getPublicInstance;\nexports.prepareForCommit = prepareForCommit;\nexports.prepareUpdate = prepareUpdate;\nexports.resetAfterCommit = resetAfterCommit;\nexports.resetTextContent = resetTextContent;\nexports.shouldDeprioritizeSubtree = shouldDeprioritizeSubtree;\nexports.getRootHostContext = getRootHostContext;\nexports.getChildHostContext = getChildHostContext;\nexports.shouldSetTextContent = shouldSetTextContent;\nexports.appendChild = appendChild;\nexports.appendChildToContainer = appendChildToContainer;\nexports.insertBefore = insertBefore;\nexports.insertInContainerBefore = insertInContainerBefore;\nexports.removeChild = removeChild;\nexports.removeChildFromContainer = removeChildFromContainer;\nexports.commitTextUpdate = commitTextUpdate;\nexports.commitMount = commitMount;\nexports.commitUpdate = commitUpdate;\nexports.hideInstance = hideInstance;\nexports.hideTextInstance = hideTextInstance;\nexports.unhideInstance = unhideInstance;\nexports.unhideTextInstance = unhideTextInstance;\nvar _Core = require('konva/lib/Core');\nvar _Core2 = _interopRequireDefault(_Core);\nvar _makeUpdates = require('./makeUpdates');\nvar _invariant = require('./invariant');\nvar _invariant2 = _interopRequireDefault(_invariant);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar NO_CONTEXT = {};\nvar UPDATE_SIGNAL = {};\n\n// for react-spring capability\n_Core2.default.Node.prototype._applyProps = _makeUpdates.applyNodeProps;\nfunction appendInitialChild(parentInstance, child) {\n if (typeof child === 'string') {\n // Noop for string children of Text (eg foo)\n (0, _invariant2.default)(false, 'Don not use plain text as child of Konva.Node. You are using text: \"%s\"', child);\n return;\n }\n parentInstance.add(child);\n (0, _makeUpdates.updatePicture)(parentInstance);\n}\nfunction createInstance(type, props, internalInstanceHandle) {\n var NodeClass = _Core2.default[type];\n if (!NodeClass) {\n (0, _invariant2.default)(instance, 'Konva has no node with the type \"%s\". If you use minimal version of react-konva, just import required nodes into Konva: `import \"konva/lib/shapes/%s\"` If you want to render DOM elements as part of canvas tree take a look into this demo: https://konvajs.github.io/docs/react/DOM_Portal.html', type, type);\n return;\n }\n var instance = new NodeClass();\n (0, _makeUpdates.applyNodeProps)(instance, props);\n return instance;\n}\nfunction createTextInstance(text, rootContainerInstance, internalInstanceHandle) {\n (0, _invariant2.default)(false, 'Text components are not supported for now in ReactKonva. You text is: \"' + text + '\"');\n}\nfunction finalizeInitialChildren(domElement, type, props) {\n return false;\n}\nfunction getPublicInstance(instance) {\n return instance;\n}\nfunction prepareForCommit() {\n // Noop\n}\nfunction prepareUpdate(domElement, type, oldProps, newProps) {\n return UPDATE_SIGNAL;\n}\nfunction resetAfterCommit() {\n // Noop\n}\nfunction resetTextContent(domElement) {\n // Noop\n}\nfunction shouldDeprioritizeSubtree(type, props) {\n return false;\n}\nfunction getRootHostContext() {\n return NO_CONTEXT;\n}\nfunction getChildHostContext() {\n return NO_CONTEXT;\n}\nvar scheduleTimeout = exports.scheduleTimeout = setTimeout;\nvar cancelTimeout = exports.cancelTimeout = clearTimeout;\nvar noTimeout = exports.noTimeout = -1;\nvar schedulePassiveEffects = exports.schedulePassiveEffects = _scheduler.unstable_scheduleCallback;\nvar cancelPassiveEffects = exports.cancelPassiveEffects = _scheduler.unstable_cancelCallback;\nfunction shouldSetTextContent(type, props) {\n return false;\n}\n\n// The Konva renderer is secondary to the React DOM renderer.\nvar isPrimaryRenderer = exports.isPrimaryRenderer = false;\nvar supportsMutation = exports.supportsMutation = true;\nfunction appendChild(parentInstance, child) {\n if (child.parent === parentInstance) {\n child.moveToTop();\n } else {\n parentInstance.add(child);\n }\n (0, _makeUpdates.updatePicture)(parentInstance);\n}\nfunction appendChildToContainer(parentInstance, child) {\n if (child.parent === parentInstance) {\n child.moveToTop();\n } else {\n parentInstance.add(child);\n }\n (0, _makeUpdates.updatePicture)(parentInstance);\n}\nfunction insertBefore(parentInstance, child, beforeChild) {\n (0, _invariant2.default)(child !== beforeChild, 'ReactKonva: Can not insert node before itself');\n // child._remove() will not stop dragging\n // but child.remove() will stop it, but we don't need it\n // removing will reset zIndexes\n child._remove();\n parentInstance.add(child);\n child.setZIndex(beforeChild.getZIndex());\n (0, _makeUpdates.updatePicture)(parentInstance);\n}\nfunction insertInContainerBefore(parentInstance, child, beforeChild) {\n insertBefore(parentInstance, child, beforeChild);\n}\nfunction removeChild(parentInstance, child) {\n child.destroy();\n child.off(_makeUpdates.EVENTS_NAMESPACE);\n (0, _makeUpdates.updatePicture)(parentInstance);\n}\nfunction removeChildFromContainer(parentInstance, child) {\n child.destroy();\n child.off(_makeUpdates.EVENTS_NAMESPACE);\n (0, _makeUpdates.updatePicture)(parentInstance);\n}\nfunction commitTextUpdate(textInstance, oldText, newText) {\n (0, _invariant2.default)(false, 'Text components are not yet supported in ReactKonva. You text is: \"' + newText + '\"');\n}\nfunction commitMount(instance, type, newProps) {\n // Noop\n}\nfunction commitUpdate(instance, updatePayload, type, oldProps, newProps) {\n (0, _makeUpdates.applyNodeProps)(instance, newProps, oldProps);\n}\nfunction hideInstance(instance) {\n instance.hide();\n (0, _makeUpdates.updatePicture)(instance);\n}\nfunction hideTextInstance(textInstance) {\n // Noop\n}\nfunction unhideInstance(instance, props) {\n if (props.visible == null || props.visible) {\n instance.show();\n }\n}\nfunction unhideTextInstance(textInstance, text) {\n // Noop\n}","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Context_1 = require(\"./Context\");\nvar Global_1 = require(\"./Global\");\nvar Factory_1 = require(\"./Factory\");\nvar Validators_1 = require(\"./Validators\");\nvar _pixelRatio;\nfunction getDevicePixelRatio() {\n if (_pixelRatio) {\n return _pixelRatio;\n }\n var canvas = Util_1.Util.createCanvasElement();\n var context = canvas.getContext('2d');\n _pixelRatio = function () {\n var devicePixelRatio = Global_1.Konva._global.devicePixelRatio || 1,\n backingStoreRatio = context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1;\n return devicePixelRatio / backingStoreRatio;\n }();\n return _pixelRatio;\n}\nvar Canvas = function () {\n function Canvas(config) {\n this.pixelRatio = 1;\n this.width = 0;\n this.height = 0;\n this.isCache = false;\n var conf = config || {};\n var pixelRatio = conf.pixelRatio || Global_1.Konva.pixelRatio || getDevicePixelRatio();\n this.pixelRatio = pixelRatio;\n this._canvas = Util_1.Util.createCanvasElement();\n this._canvas.style.padding = '0';\n this._canvas.style.margin = '0';\n this._canvas.style.border = '0';\n this._canvas.style.background = 'transparent';\n this._canvas.style.position = 'absolute';\n this._canvas.style.top = '0';\n this._canvas.style.left = '0';\n }\n Canvas.prototype.getContext = function () {\n return this.context;\n };\n Canvas.prototype.getPixelRatio = function () {\n return this.pixelRatio;\n };\n Canvas.prototype.setPixelRatio = function (pixelRatio) {\n var previousRatio = this.pixelRatio;\n this.pixelRatio = pixelRatio;\n this.setSize(this.getWidth() / previousRatio, this.getHeight() / previousRatio);\n };\n Canvas.prototype.setWidth = function (width) {\n this.width = this._canvas.width = width * this.pixelRatio;\n this._canvas.style.width = width + 'px';\n var pixelRatio = this.pixelRatio,\n _context = this.getContext()._context;\n _context.scale(pixelRatio, pixelRatio);\n };\n Canvas.prototype.setHeight = function (height) {\n this.height = this._canvas.height = height * this.pixelRatio;\n this._canvas.style.height = height + 'px';\n var pixelRatio = this.pixelRatio,\n _context = this.getContext()._context;\n _context.scale(pixelRatio, pixelRatio);\n };\n Canvas.prototype.getWidth = function () {\n return this.width;\n };\n Canvas.prototype.getHeight = function () {\n return this.height;\n };\n Canvas.prototype.setSize = function (width, height) {\n this.setWidth(width || 0);\n this.setHeight(height || 0);\n };\n Canvas.prototype.toDataURL = function (mimeType, quality) {\n try {\n return this._canvas.toDataURL(mimeType, quality);\n } catch (e) {\n try {\n return this._canvas.toDataURL();\n } catch (err) {\n Util_1.Util.error('Unable to get data URL. ' + err.message + ' For more info read https://konvajs.org/docs/posts/Tainted_Canvas.html.');\n return '';\n }\n }\n };\n return Canvas;\n}();\nexports.Canvas = Canvas;\nFactory_1.Factory.addGetterSetter(Canvas, 'pixelRatio', undefined, Validators_1.getNumberValidator());\nvar SceneCanvas = function (_super) {\n __extends(SceneCanvas, _super);\n function SceneCanvas(config) {\n if (config === void 0) {\n config = {\n width: 0,\n height: 0\n };\n }\n var _this = _super.call(this, config) || this;\n _this.context = new Context_1.SceneContext(_this);\n _this.setSize(config.width, config.height);\n return _this;\n }\n return SceneCanvas;\n}(Canvas);\nexports.SceneCanvas = SceneCanvas;\nvar HitCanvas = function (_super) {\n __extends(HitCanvas, _super);\n function HitCanvas(config) {\n if (config === void 0) {\n config = {\n width: 0,\n height: 0\n };\n }\n var _this = _super.call(this, config) || this;\n _this.hitCanvas = true;\n _this.context = new Context_1.HitContext(_this);\n _this.setSize(config.width, config.height);\n return _this;\n }\n return HitCanvas;\n}(Canvas);\nexports.HitCanvas = HitCanvas;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_1 = require(\"../Global\");\nvar Line = function (_super) {\n __extends(Line, _super);\n function Line(config) {\n var _this = _super.call(this, config) || this;\n _this.on('pointsChange.konva tensionChange.konva closedChange.konva bezierChange.konva', function () {\n this._clearCache('tensionPoints');\n });\n return _this;\n }\n Line.prototype._sceneFunc = function (context) {\n var points = this.points(),\n length = points.length,\n tension = this.tension(),\n closed = this.closed(),\n bezier = this.bezier(),\n tp,\n len,\n n;\n if (!length) {\n return;\n }\n context.beginPath();\n context.moveTo(points[0], points[1]);\n if (tension !== 0 && length > 4) {\n tp = this.getTensionPoints();\n len = tp.length;\n n = closed ? 0 : 4;\n if (!closed) {\n context.quadraticCurveTo(tp[0], tp[1], tp[2], tp[3]);\n }\n while (n < len - 2) {\n context.bezierCurveTo(tp[n++], tp[n++], tp[n++], tp[n++], tp[n++], tp[n++]);\n }\n if (!closed) {\n context.quadraticCurveTo(tp[len - 2], tp[len - 1], points[length - 2], points[length - 1]);\n }\n } else if (bezier) {\n n = 2;\n while (n < length) {\n context.bezierCurveTo(points[n++], points[n++], points[n++], points[n++], points[n++], points[n++]);\n }\n } else {\n for (n = 2; n < length; n += 2) {\n context.lineTo(points[n], points[n + 1]);\n }\n }\n if (closed) {\n context.closePath();\n context.fillStrokeShape(this);\n } else {\n context.strokeShape(this);\n }\n };\n Line.prototype.getTensionPoints = function () {\n return this._getCache('tensionPoints', this._getTensionPoints);\n };\n Line.prototype._getTensionPoints = function () {\n if (this.closed()) {\n return this._getTensionPointsClosed();\n } else {\n return Util_1.Util._expandPoints(this.points(), this.tension());\n }\n };\n Line.prototype._getTensionPointsClosed = function () {\n var p = this.points(),\n len = p.length,\n tension = this.tension(),\n firstControlPoints = Util_1.Util._getControlPoints(p[len - 2], p[len - 1], p[0], p[1], p[2], p[3], tension),\n lastControlPoints = Util_1.Util._getControlPoints(p[len - 4], p[len - 3], p[len - 2], p[len - 1], p[0], p[1], tension),\n middle = Util_1.Util._expandPoints(p, tension),\n tp = [firstControlPoints[2], firstControlPoints[3]].concat(middle).concat([lastControlPoints[0], lastControlPoints[1], p[len - 2], p[len - 1], lastControlPoints[2], lastControlPoints[3], firstControlPoints[0], firstControlPoints[1], p[0], p[1]]);\n return tp;\n };\n Line.prototype.getWidth = function () {\n return this.getSelfRect().width;\n };\n Line.prototype.getHeight = function () {\n return this.getSelfRect().height;\n };\n Line.prototype.getSelfRect = function () {\n var points = this.points();\n if (points.length < 4) {\n return {\n x: points[0] || 0,\n y: points[1] || 0,\n width: 0,\n height: 0\n };\n }\n if (this.tension() !== 0) {\n points = __spreadArrays([points[0], points[1]], this._getTensionPoints(), [points[points.length - 2], points[points.length - 1]]);\n } else {\n points = this.points();\n }\n var minX = points[0];\n var maxX = points[0];\n var minY = points[1];\n var maxY = points[1];\n var x, y;\n for (var i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n };\n return Line;\n}(Shape_1.Shape);\nexports.Line = Line;\nLine.prototype.className = 'Line';\nLine.prototype._attrsAffectingSize = ['points', 'bezier', 'tension'];\nGlobal_1._registerNode(Line);\nFactory_1.Factory.addGetterSetter(Line, 'closed', false);\nFactory_1.Factory.addGetterSetter(Line, 'bezier', false);\nFactory_1.Factory.addGetterSetter(Line, 'tension', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Line, 'points', [], Validators_1.getNumberArrayValidator());\nUtil_1.Collection.mapMethods(Line);","'use strict';\n\nexports.__esModule = true;\nexports.getClosestInstanceFromNode = getClosestInstanceFromNode;\n// from https://github.com/facebook/react/blob/87ae211ccd8d61796cfdef138d1e12fb7a74f85d/packages/shared/ReactTypeOfWork.js\nvar HostComponent = 5;\nvar HostText = 6;\n\n// adapted FROM: https://github.com/facebook/react/blob/master/packages/react-dom/src/client/ReactDOMComponentTree.js\n\nvar randomKey = Math.random().toString(36).slice(2);\nvar internalInstanceKey = '__reactInternalInstance$' + randomKey;\n\n/**\n * Given a DOM node, return the closest ReactDOMComponent or\n * ReactDOMTextComponent instance ancestor.\n */\nfunction getClosestInstanceFromNode(node) {\n if (node[internalInstanceKey]) {\n return node[internalInstanceKey];\n }\n while (!node[internalInstanceKey]) {\n if (node.parentNode) {\n node = node.parentNode;\n } else {\n // Top of the tree. This node must not be part of a React tree (or is\n // unmounted, potentially).\n return null;\n }\n }\n var inst = node[internalInstanceKey];\n if (inst.tag === HostComponent || inst.tag === HostText) {\n // In Fiber, this will always be the deepest root.\n return inst;\n }\n return null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Animation_1 = require(\"./Animation\");\nvar Node_1 = require(\"./Node\");\nvar Global_1 = require(\"./Global\");\nvar blacklist = {\n node: 1,\n duration: 1,\n easing: 1,\n onFinish: 1,\n yoyo: 1\n },\n PAUSED = 1,\n PLAYING = 2,\n REVERSING = 3,\n idCounter = 0,\n colorAttrs = ['fill', 'stroke', 'shadowColor'];\nvar TweenEngine = function () {\n function TweenEngine(prop, propFunc, func, begin, finish, duration, yoyo) {\n this.prop = prop;\n this.propFunc = propFunc;\n this.begin = begin;\n this._pos = begin;\n this.duration = duration;\n this._change = 0;\n this.prevPos = 0;\n this.yoyo = yoyo;\n this._time = 0;\n this._position = 0;\n this._startTime = 0;\n this._finish = 0;\n this.func = func;\n this._change = finish - this.begin;\n this.pause();\n }\n TweenEngine.prototype.fire = function (str) {\n var handler = this[str];\n if (handler) {\n handler();\n }\n };\n TweenEngine.prototype.setTime = function (t) {\n if (t > this.duration) {\n if (this.yoyo) {\n this._time = this.duration;\n this.reverse();\n } else {\n this.finish();\n }\n } else if (t < 0) {\n if (this.yoyo) {\n this._time = 0;\n this.play();\n } else {\n this.reset();\n }\n } else {\n this._time = t;\n this.update();\n }\n };\n TweenEngine.prototype.getTime = function () {\n return this._time;\n };\n TweenEngine.prototype.setPosition = function (p) {\n this.prevPos = this._pos;\n this.propFunc(p);\n this._pos = p;\n };\n TweenEngine.prototype.getPosition = function (t) {\n if (t === undefined) {\n t = this._time;\n }\n return this.func(t, this.begin, this._change, this.duration);\n };\n TweenEngine.prototype.play = function () {\n this.state = PLAYING;\n this._startTime = this.getTimer() - this._time;\n this.onEnterFrame();\n this.fire('onPlay');\n };\n TweenEngine.prototype.reverse = function () {\n this.state = REVERSING;\n this._time = this.duration - this._time;\n this._startTime = this.getTimer() - this._time;\n this.onEnterFrame();\n this.fire('onReverse');\n };\n TweenEngine.prototype.seek = function (t) {\n this.pause();\n this._time = t;\n this.update();\n this.fire('onSeek');\n };\n TweenEngine.prototype.reset = function () {\n this.pause();\n this._time = 0;\n this.update();\n this.fire('onReset');\n };\n TweenEngine.prototype.finish = function () {\n this.pause();\n this._time = this.duration;\n this.update();\n this.fire('onFinish');\n };\n TweenEngine.prototype.update = function () {\n this.setPosition(this.getPosition(this._time));\n };\n TweenEngine.prototype.onEnterFrame = function () {\n var t = this.getTimer() - this._startTime;\n if (this.state === PLAYING) {\n this.setTime(t);\n } else if (this.state === REVERSING) {\n this.setTime(this.duration - t);\n }\n };\n TweenEngine.prototype.pause = function () {\n this.state = PAUSED;\n this.fire('onPause');\n };\n TweenEngine.prototype.getTimer = function () {\n return new Date().getTime();\n };\n return TweenEngine;\n}();\nvar Tween = function () {\n function Tween(config) {\n var that = this,\n node = config.node,\n nodeId = node._id,\n duration,\n easing = config.easing || exports.Easings.Linear,\n yoyo = !!config.yoyo,\n key;\n if (typeof config.duration === 'undefined') {\n duration = 0.3;\n } else if (config.duration === 0) {\n duration = 0.001;\n } else {\n duration = config.duration;\n }\n this.node = node;\n this._id = idCounter++;\n var layers = node.getLayer() || (node instanceof Global_1.Konva['Stage'] ? node.getLayers() : null);\n if (!layers) {\n Util_1.Util.error('Tween constructor have `node` that is not in a layer. Please add node into layer first.');\n }\n this.anim = new Animation_1.Animation(function () {\n that.tween.onEnterFrame();\n }, layers);\n this.tween = new TweenEngine(key, function (i) {\n that._tweenFunc(i);\n }, easing, 0, 1, duration * 1000, yoyo);\n this._addListeners();\n if (!Tween.attrs[nodeId]) {\n Tween.attrs[nodeId] = {};\n }\n if (!Tween.attrs[nodeId][this._id]) {\n Tween.attrs[nodeId][this._id] = {};\n }\n if (!Tween.tweens[nodeId]) {\n Tween.tweens[nodeId] = {};\n }\n for (key in config) {\n if (blacklist[key] === undefined) {\n this._addAttr(key, config[key]);\n }\n }\n this.reset();\n this.onFinish = config.onFinish;\n this.onReset = config.onReset;\n }\n Tween.prototype._addAttr = function (key, end) {\n var node = this.node,\n nodeId = node._id,\n start,\n diff,\n tweenId,\n n,\n len,\n trueEnd,\n trueStart,\n endRGBA;\n tweenId = Tween.tweens[nodeId][key];\n if (tweenId) {\n delete Tween.attrs[nodeId][tweenId][key];\n }\n start = node.getAttr(key);\n if (Util_1.Util._isArray(end)) {\n diff = [];\n len = Math.max(end.length, start.length);\n if (key === 'points' && end.length !== start.length) {\n if (end.length > start.length) {\n trueStart = start;\n start = Util_1.Util._prepareArrayForTween(start, end, node.closed());\n } else {\n trueEnd = end;\n end = Util_1.Util._prepareArrayForTween(end, start, node.closed());\n }\n }\n if (key.indexOf('fill') === 0) {\n for (n = 0; n < len; n++) {\n if (n % 2 === 0) {\n diff.push(end[n] - start[n]);\n } else {\n var startRGBA = Util_1.Util.colorToRGBA(start[n]);\n endRGBA = Util_1.Util.colorToRGBA(end[n]);\n start[n] = startRGBA;\n diff.push({\n r: endRGBA.r - startRGBA.r,\n g: endRGBA.g - startRGBA.g,\n b: endRGBA.b - startRGBA.b,\n a: endRGBA.a - startRGBA.a\n });\n }\n }\n } else {\n for (n = 0; n < len; n++) {\n diff.push(end[n] - start[n]);\n }\n }\n } else if (colorAttrs.indexOf(key) !== -1) {\n start = Util_1.Util.colorToRGBA(start);\n endRGBA = Util_1.Util.colorToRGBA(end);\n diff = {\n r: endRGBA.r - start.r,\n g: endRGBA.g - start.g,\n b: endRGBA.b - start.b,\n a: endRGBA.a - start.a\n };\n } else {\n diff = end - start;\n }\n Tween.attrs[nodeId][this._id][key] = {\n start: start,\n diff: diff,\n end: end,\n trueEnd: trueEnd,\n trueStart: trueStart\n };\n Tween.tweens[nodeId][key] = this._id;\n };\n Tween.prototype._tweenFunc = function (i) {\n var node = this.node,\n attrs = Tween.attrs[node._id][this._id],\n key,\n attr,\n start,\n diff,\n newVal,\n n,\n len,\n end;\n for (key in attrs) {\n attr = attrs[key];\n start = attr.start;\n diff = attr.diff;\n end = attr.end;\n if (Util_1.Util._isArray(start)) {\n newVal = [];\n len = Math.max(start.length, end.length);\n if (key.indexOf('fill') === 0) {\n for (n = 0; n < len; n++) {\n if (n % 2 === 0) {\n newVal.push((start[n] || 0) + diff[n] * i);\n } else {\n newVal.push('rgba(' + Math.round(start[n].r + diff[n].r * i) + ',' + Math.round(start[n].g + diff[n].g * i) + ',' + Math.round(start[n].b + diff[n].b * i) + ',' + (start[n].a + diff[n].a * i) + ')');\n }\n }\n } else {\n for (n = 0; n < len; n++) {\n newVal.push((start[n] || 0) + diff[n] * i);\n }\n }\n } else if (colorAttrs.indexOf(key) !== -1) {\n newVal = 'rgba(' + Math.round(start.r + diff.r * i) + ',' + Math.round(start.g + diff.g * i) + ',' + Math.round(start.b + diff.b * i) + ',' + (start.a + diff.a * i) + ')';\n } else {\n newVal = start + diff * i;\n }\n node.setAttr(key, newVal);\n }\n };\n Tween.prototype._addListeners = function () {\n var _this = this;\n this.tween.onPlay = function () {\n _this.anim.start();\n };\n this.tween.onReverse = function () {\n _this.anim.start();\n };\n this.tween.onPause = function () {\n _this.anim.stop();\n };\n this.tween.onFinish = function () {\n var node = _this.node;\n var attrs = Tween.attrs[node._id][_this._id];\n if (attrs.points && attrs.points.trueEnd) {\n node.setAttr('points', attrs.points.trueEnd);\n }\n if (_this.onFinish) {\n _this.onFinish.call(_this);\n }\n };\n this.tween.onReset = function () {\n var node = _this.node;\n var attrs = Tween.attrs[node._id][_this._id];\n if (attrs.points && attrs.points.trueStart) {\n node.points(attrs.points.trueStart);\n }\n if (_this.onReset) {\n _this.onReset();\n }\n };\n };\n Tween.prototype.play = function () {\n this.tween.play();\n return this;\n };\n Tween.prototype.reverse = function () {\n this.tween.reverse();\n return this;\n };\n Tween.prototype.reset = function () {\n this.tween.reset();\n return this;\n };\n Tween.prototype.seek = function (t) {\n this.tween.seek(t * 1000);\n return this;\n };\n Tween.prototype.pause = function () {\n this.tween.pause();\n return this;\n };\n Tween.prototype.finish = function () {\n this.tween.finish();\n return this;\n };\n Tween.prototype.destroy = function () {\n var nodeId = this.node._id,\n thisId = this._id,\n attrs = Tween.tweens[nodeId],\n key;\n this.pause();\n for (key in attrs) {\n delete Tween.tweens[nodeId][key];\n }\n delete Tween.attrs[nodeId][thisId];\n };\n Tween.attrs = {};\n Tween.tweens = {};\n return Tween;\n}();\nexports.Tween = Tween;\nNode_1.Node.prototype.to = function (params) {\n var onFinish = params.onFinish;\n params.node = this;\n params.onFinish = function () {\n this.destroy();\n if (onFinish) {\n onFinish();\n }\n };\n var tween = new Tween(params);\n tween.play();\n};\nexports.Easings = {\n BackEaseIn: function (t, b, c, d) {\n var s = 1.70158;\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n },\n BackEaseOut: function (t, b, c, d) {\n var s = 1.70158;\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n },\n BackEaseInOut: function (t, b, c, d) {\n var s = 1.70158;\n if ((t /= d / 2) < 1) {\n return c / 2 * (t * t * (((s *= 1.525) + 1) * t - s)) + b;\n }\n return c / 2 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;\n },\n ElasticEaseIn: function (t, b, c, d, a, p) {\n var s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;\n },\n ElasticEaseOut: function (t, b, c, d, a, p) {\n var s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n return a * Math.pow(2, -10 * t) * Math.sin((t * d - s) * (2 * Math.PI) / p) + c + b;\n },\n ElasticEaseInOut: function (t, b, c, d, a, p) {\n var s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d / 2) === 2) {\n return b + c;\n }\n if (!p) {\n p = d * (0.3 * 1.5);\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n if (t < 1) {\n return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p)) + b;\n }\n return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - s) * (2 * Math.PI) / p) * 0.5 + c + b;\n },\n BounceEaseOut: function (t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return c * (7.5625 * t * t) + b;\n } else if (t < 2 / 2.75) {\n return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;\n } else if (t < 2.5 / 2.75) {\n return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;\n } else {\n return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;\n }\n },\n BounceEaseIn: function (t, b, c, d) {\n return c - exports.Easings.BounceEaseOut(d - t, 0, c, d) + b;\n },\n BounceEaseInOut: function (t, b, c, d) {\n if (t < d / 2) {\n return exports.Easings.BounceEaseIn(t * 2, 0, c, d) * 0.5 + b;\n } else {\n return exports.Easings.BounceEaseOut(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;\n }\n },\n EaseIn: function (t, b, c, d) {\n return c * (t /= d) * t + b;\n },\n EaseOut: function (t, b, c, d) {\n return -c * (t /= d) * (t - 2) + b;\n },\n EaseInOut: function (t, b, c, d) {\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t + b;\n }\n return -c / 2 * (--t * (t - 2) - 1) + b;\n },\n StrongEaseIn: function (t, b, c, d) {\n return c * (t /= d) * t * t * t * t + b;\n },\n StrongEaseOut: function (t, b, c, d) {\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n },\n StrongEaseInOut: function (t, b, c, d) {\n if ((t /= d / 2) < 1) {\n return c / 2 * t * t * t * t * t + b;\n }\n return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;\n },\n Linear: function (t, b, c, d) {\n return c * t / d + b;\n }\n};","'use strict';\n\nexports.__esModule = true;\nexports.createHiddenTextInstance = exports.cloneUnhiddenInstance = exports.cloneHiddenInstance = exports.replaceContainerChildren = exports.finalizeContainerChildren = exports.appendChildToContainerChildSet = exports.createContainerChildSet = exports.cloneInstance = exports.supportsPersistence = undefined;\nvar _invariant = require('./invariant');\nvar _invariant2 = _interopRequireDefault(_invariant);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\n// Renderers that don't support persistence\n// can re-export everything from this module.\n\nfunction shim() {\n (0, _invariant2.default)(false, 'The current renderer does not support persistence. ' + 'This error is likely caused by a bug in React. ' + 'Please file an issue.');\n}\n\n// Persistence (when unsupported)\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar supportsPersistence = exports.supportsPersistence = false;\nvar cloneInstance = exports.cloneInstance = shim;\nvar createContainerChildSet = exports.createContainerChildSet = shim;\nvar appendChildToContainerChildSet = exports.appendChildToContainerChildSet = shim;\nvar finalizeContainerChildren = exports.finalizeContainerChildren = shim;\nvar replaceContainerChildren = exports.replaceContainerChildren = shim;\nvar cloneHiddenInstance = exports.cloneHiddenInstance = shim;\nvar cloneUnhiddenInstance = exports.cloneUnhiddenInstance = shim;\nvar createHiddenTextInstance = exports.createHiddenTextInstance = shim;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Container_1 = require(\"./Container\");\nvar Factory_1 = require(\"./Factory\");\nvar BaseLayer_1 = require(\"./BaseLayer\");\nvar Canvas_1 = require(\"./Canvas\");\nvar Shape_1 = require(\"./Shape\");\nvar Validators_1 = require(\"./Validators\");\nvar Global_1 = require(\"./Global\");\nvar HASH = '#',\n BEFORE_DRAW = 'beforeDraw',\n DRAW = 'draw',\n INTERSECTION_OFFSETS = [{\n x: 0,\n y: 0\n }, {\n x: -1,\n y: -1\n }, {\n x: 1,\n y: -1\n }, {\n x: 1,\n y: 1\n }, {\n x: -1,\n y: 1\n }],\n INTERSECTION_OFFSETS_LEN = INTERSECTION_OFFSETS.length;\nvar Layer = function (_super) {\n __extends(Layer, _super);\n function Layer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.hitCanvas = new Canvas_1.HitCanvas({\n pixelRatio: 1\n });\n return _this;\n }\n Layer.prototype._setCanvasSize = function (width, height) {\n this.canvas.setSize(width, height);\n this.hitCanvas.setSize(width, height);\n this._checkSmooth();\n };\n Layer.prototype._validateAdd = function (child) {\n var type = child.getType();\n if (type !== 'Group' && type !== 'Shape') {\n Util_1.Util.throw('You may only add groups and shapes to a layer.');\n }\n };\n Layer.prototype.getIntersection = function (pos, selector) {\n var obj, i, intersectionOffset, shape;\n if (!this.hitGraphEnabled() || !this.isVisible()) {\n return null;\n }\n var spiralSearchDistance = 1;\n var continueSearch = false;\n while (true) {\n for (i = 0; i < INTERSECTION_OFFSETS_LEN; i++) {\n intersectionOffset = INTERSECTION_OFFSETS[i];\n obj = this._getIntersection({\n x: pos.x + intersectionOffset.x * spiralSearchDistance,\n y: pos.y + intersectionOffset.y * spiralSearchDistance\n });\n shape = obj.shape;\n if (shape && selector) {\n return shape.findAncestor(selector, true);\n } else if (shape) {\n return shape;\n }\n continueSearch = !!obj.antialiased;\n if (!obj.antialiased) {\n break;\n }\n }\n if (continueSearch) {\n spiralSearchDistance += 1;\n } else {\n return null;\n }\n }\n };\n Layer.prototype._getIntersection = function (pos) {\n var ratio = this.hitCanvas.pixelRatio;\n var p = this.hitCanvas.context.getImageData(Math.round(pos.x * ratio), Math.round(pos.y * ratio), 1, 1).data,\n p3 = p[3],\n colorKey,\n shape;\n if (p3 === 255) {\n colorKey = Util_1.Util._rgbToHex(p[0], p[1], p[2]);\n shape = Shape_1.shapes[HASH + colorKey];\n if (shape) {\n return {\n shape: shape\n };\n }\n return {\n antialiased: true\n };\n } else if (p3 > 0) {\n return {\n antialiased: true\n };\n }\n return {};\n };\n Layer.prototype.drawScene = function (can, top) {\n var layer = this.getLayer(),\n canvas = can || layer && layer.getCanvas();\n this._fire(BEFORE_DRAW, {\n node: this\n });\n if (this.clearBeforeDraw()) {\n canvas.getContext().clear();\n }\n Container_1.Container.prototype.drawScene.call(this, canvas, top);\n this._fire(DRAW, {\n node: this\n });\n return this;\n };\n Layer.prototype.drawHit = function (can, top) {\n var layer = this.getLayer(),\n canvas = can || layer && layer.hitCanvas;\n if (layer && layer.clearBeforeDraw()) {\n layer.getHitCanvas().getContext().clear();\n }\n Container_1.Container.prototype.drawHit.call(this, canvas, top);\n return this;\n };\n Layer.prototype.clear = function (bounds) {\n BaseLayer_1.BaseLayer.prototype.clear.call(this, bounds);\n this.getHitCanvas().getContext().clear(bounds);\n return this;\n };\n Layer.prototype.enableHitGraph = function () {\n this.hitGraphEnabled(true);\n return this;\n };\n Layer.prototype.disableHitGraph = function () {\n this.hitGraphEnabled(false);\n return this;\n };\n Layer.prototype.toggleHitCanvas = function () {\n if (!this.parent) {\n return;\n }\n var parent = this.parent;\n var added = !!this.hitCanvas._canvas.parentNode;\n if (added) {\n parent.content.removeChild(this.hitCanvas._canvas);\n } else {\n parent.content.appendChild(this.hitCanvas._canvas);\n }\n };\n Layer.prototype.setSize = function (_a) {\n var width = _a.width,\n height = _a.height;\n _super.prototype.setSize.call(this, {\n width: width,\n height: height\n });\n this.hitCanvas.setSize(width, height);\n return this;\n };\n return Layer;\n}(BaseLayer_1.BaseLayer);\nexports.Layer = Layer;\nLayer.prototype.nodeType = 'Layer';\nGlobal_1._registerNode(Layer);\nFactory_1.Factory.addGetterSetter(Layer, 'hitGraphEnabled', true, Validators_1.getBooleanValidator());\nUtil_1.Collection.mapMethods(Layer);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Factory_1 = require(\"../Factory\");\nvar Node_1 = require(\"../Node\");\nvar Validators_1 = require(\"../Validators\");\nexports.Threshold = function (imageData) {\n var level = this.threshold() * 255,\n data = imageData.data,\n len = data.length,\n i;\n for (i = 0; i < len; i += 1) {\n data[i] = data[i] < level ? 0 : 255;\n }\n};\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'threshold', 0.5, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Line_1 = require(\"./Line\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_1 = require(\"../Global\");\nvar Arrow = function (_super) {\n __extends(Arrow, _super);\n function Arrow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Arrow.prototype._sceneFunc = function (ctx) {\n _super.prototype._sceneFunc.call(this, ctx);\n var PI2 = Math.PI * 2;\n var points = this.points();\n var tp = points;\n var fromTension = this.tension() !== 0 && points.length > 4;\n if (fromTension) {\n tp = this.getTensionPoints();\n }\n var n = points.length;\n var dx, dy;\n if (fromTension) {\n dx = points[n - 2] - (tp[tp.length - 2] + tp[tp.length - 4]) / 2;\n dy = points[n - 1] - (tp[tp.length - 1] + tp[tp.length - 3]) / 2;\n } else {\n dx = points[n - 2] - points[n - 4];\n dy = points[n - 1] - points[n - 3];\n }\n var radians = (Math.atan2(dy, dx) + PI2) % PI2;\n var length = this.pointerLength();\n var width = this.pointerWidth();\n ctx.save();\n ctx.beginPath();\n ctx.translate(points[n - 2], points[n - 1]);\n ctx.rotate(radians);\n ctx.moveTo(0, 0);\n ctx.lineTo(-length, width / 2);\n ctx.lineTo(-length, -width / 2);\n ctx.closePath();\n ctx.restore();\n if (this.pointerAtBeginning()) {\n ctx.save();\n ctx.translate(points[0], points[1]);\n if (fromTension) {\n dx = (tp[0] + tp[2]) / 2 - points[0];\n dy = (tp[1] + tp[3]) / 2 - points[1];\n } else {\n dx = points[2] - points[0];\n dy = points[3] - points[1];\n }\n ctx.rotate((Math.atan2(-dy, -dx) + PI2) % PI2);\n ctx.moveTo(0, 0);\n ctx.lineTo(-length, width / 2);\n ctx.lineTo(-length, -width / 2);\n ctx.closePath();\n ctx.restore();\n }\n var isDashEnabled = this.dashEnabled();\n if (isDashEnabled) {\n this.attrs.dashEnabled = false;\n ctx.setLineDash([]);\n }\n ctx.fillStrokeShape(this);\n if (isDashEnabled) {\n this.attrs.dashEnabled = true;\n }\n };\n Arrow.prototype.getSelfRect = function () {\n var lineRect = _super.prototype.getSelfRect.call(this);\n var offset = this.pointerWidth() / 2;\n return {\n x: lineRect.x - offset,\n y: lineRect.y - offset,\n width: lineRect.width + offset * 2,\n height: lineRect.height + offset * 2\n };\n };\n return Arrow;\n}(Line_1.Line);\nexports.Arrow = Arrow;\nArrow.prototype.className = 'Arrow';\nGlobal_1._registerNode(Arrow);\nFactory_1.Factory.addGetterSetter(Arrow, 'pointerLength', 10, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Arrow, 'pointerWidth', 10, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Arrow, 'pointerAtBeginning', false);\nUtil_1.Collection.mapMethods(Arrow);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Factory_1 = require(\"../Factory\");\nvar Node_1 = require(\"../Node\");\nvar Util_1 = require(\"../Util\");\nvar Validators_1 = require(\"../Validators\");\nvar ToPolar = function (src, dst, opt) {\n var srcPixels = src.data,\n dstPixels = dst.data,\n xSize = src.width,\n ySize = src.height,\n xMid = opt.polarCenterX || xSize / 2,\n yMid = opt.polarCenterY || ySize / 2,\n i,\n x,\n y,\n r = 0,\n g = 0,\n b = 0,\n a = 0;\n var rad,\n rMax = Math.sqrt(xMid * xMid + yMid * yMid);\n x = xSize - xMid;\n y = ySize - yMid;\n rad = Math.sqrt(x * x + y * y);\n rMax = rad > rMax ? rad : rMax;\n var rSize = ySize,\n tSize = xSize,\n radius,\n theta;\n var conversion = 360 / tSize * Math.PI / 180,\n sin,\n cos;\n for (theta = 0; theta < tSize; theta += 1) {\n sin = Math.sin(theta * conversion);\n cos = Math.cos(theta * conversion);\n for (radius = 0; radius < rSize; radius += 1) {\n x = Math.floor(xMid + rMax * radius / rSize * cos);\n y = Math.floor(yMid + rMax * radius / rSize * sin);\n i = (y * xSize + x) * 4;\n r = srcPixels[i + 0];\n g = srcPixels[i + 1];\n b = srcPixels[i + 2];\n a = srcPixels[i + 3];\n i = (theta + radius * xSize) * 4;\n dstPixels[i + 0] = r;\n dstPixels[i + 1] = g;\n dstPixels[i + 2] = b;\n dstPixels[i + 3] = a;\n }\n }\n};\nvar FromPolar = function (src, dst, opt) {\n var srcPixels = src.data,\n dstPixels = dst.data,\n xSize = src.width,\n ySize = src.height,\n xMid = opt.polarCenterX || xSize / 2,\n yMid = opt.polarCenterY || ySize / 2,\n i,\n x,\n y,\n dx,\n dy,\n r = 0,\n g = 0,\n b = 0,\n a = 0;\n var rad,\n rMax = Math.sqrt(xMid * xMid + yMid * yMid);\n x = xSize - xMid;\n y = ySize - yMid;\n rad = Math.sqrt(x * x + y * y);\n rMax = rad > rMax ? rad : rMax;\n var rSize = ySize,\n tSize = xSize,\n radius,\n theta,\n phaseShift = opt.polarRotation || 0;\n var x1, y1;\n for (x = 0; x < xSize; x += 1) {\n for (y = 0; y < ySize; y += 1) {\n dx = x - xMid;\n dy = y - yMid;\n radius = Math.sqrt(dx * dx + dy * dy) * rSize / rMax;\n theta = (Math.atan2(dy, dx) * 180 / Math.PI + 360 + phaseShift) % 360;\n theta = theta * tSize / 360;\n x1 = Math.floor(theta);\n y1 = Math.floor(radius);\n i = (y1 * xSize + x1) * 4;\n r = srcPixels[i + 0];\n g = srcPixels[i + 1];\n b = srcPixels[i + 2];\n a = srcPixels[i + 3];\n i = (y * xSize + x) * 4;\n dstPixels[i + 0] = r;\n dstPixels[i + 1] = g;\n dstPixels[i + 2] = b;\n dstPixels[i + 3] = a;\n }\n }\n};\nexports.Kaleidoscope = function (imageData) {\n var xSize = imageData.width,\n ySize = imageData.height;\n var x, y, xoff, i, r, g, b, a, srcPos, dstPos;\n var power = Math.round(this.kaleidoscopePower());\n var angle = Math.round(this.kaleidoscopeAngle());\n var offset = Math.floor(xSize * (angle % 360) / 360);\n if (power < 1) {\n return;\n }\n var tempCanvas = Util_1.Util.createCanvasElement();\n tempCanvas.width = xSize;\n tempCanvas.height = ySize;\n var scratchData = tempCanvas.getContext('2d').getImageData(0, 0, xSize, ySize);\n ToPolar(imageData, scratchData, {\n polarCenterX: xSize / 2,\n polarCenterY: ySize / 2\n });\n var minSectionSize = xSize / Math.pow(2, power);\n while (minSectionSize <= 8) {\n minSectionSize = minSectionSize * 2;\n power -= 1;\n }\n minSectionSize = Math.ceil(minSectionSize);\n var sectionSize = minSectionSize;\n var xStart = 0,\n xEnd = sectionSize,\n xDelta = 1;\n if (offset + minSectionSize > xSize) {\n xStart = sectionSize;\n xEnd = 0;\n xDelta = -1;\n }\n for (y = 0; y < ySize; y += 1) {\n for (x = xStart; x !== xEnd; x += xDelta) {\n xoff = Math.round(x + offset) % xSize;\n srcPos = (xSize * y + xoff) * 4;\n r = scratchData.data[srcPos + 0];\n g = scratchData.data[srcPos + 1];\n b = scratchData.data[srcPos + 2];\n a = scratchData.data[srcPos + 3];\n dstPos = (xSize * y + x) * 4;\n scratchData.data[dstPos + 0] = r;\n scratchData.data[dstPos + 1] = g;\n scratchData.data[dstPos + 2] = b;\n scratchData.data[dstPos + 3] = a;\n }\n }\n for (y = 0; y < ySize; y += 1) {\n sectionSize = Math.floor(minSectionSize);\n for (i = 0; i < power; i += 1) {\n for (x = 0; x < sectionSize + 1; x += 1) {\n srcPos = (xSize * y + x) * 4;\n r = scratchData.data[srcPos + 0];\n g = scratchData.data[srcPos + 1];\n b = scratchData.data[srcPos + 2];\n a = scratchData.data[srcPos + 3];\n dstPos = (xSize * y + sectionSize * 2 - x - 1) * 4;\n scratchData.data[dstPos + 0] = r;\n scratchData.data[dstPos + 1] = g;\n scratchData.data[dstPos + 2] = b;\n scratchData.data[dstPos + 3] = a;\n }\n sectionSize *= 2;\n }\n }\n FromPolar(scratchData, imageData, {\n polarRotation: 0\n });\n};\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'kaleidoscopePower', 2, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'kaleidoscopeAngle', 0, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_1 = require(\"../Global\");\nvar Circle = function (_super) {\n __extends(Circle, _super);\n function Circle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Circle.prototype._sceneFunc = function (context) {\n context.beginPath();\n context.arc(0, 0, this.radius(), 0, Math.PI * 2, false);\n context.closePath();\n context.fillStrokeShape(this);\n };\n Circle.prototype.getWidth = function () {\n return this.radius() * 2;\n };\n Circle.prototype.getHeight = function () {\n return this.radius() * 2;\n };\n Circle.prototype.setWidth = function (width) {\n if (this.radius() !== width / 2) {\n this.radius(width / 2);\n }\n };\n Circle.prototype.setHeight = function (height) {\n if (this.radius() !== height / 2) {\n this.radius(height / 2);\n }\n };\n return Circle;\n}(Shape_1.Shape);\nexports.Circle = Circle;\nCircle.prototype._centroid = true;\nCircle.prototype.className = 'Circle';\nCircle.prototype._attrsAffectingSize = ['radius'];\nGlobal_1._registerNode(Circle);\nFactory_1.Factory.addGetterSetter(Circle, 'radius', 0, Validators_1.getNumberValidator());\nUtil_1.Collection.mapMethods(Circle);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Factory_1 = require(\"../Factory\");\nvar Node_1 = require(\"../Node\");\nvar Validators_1 = require(\"../Validators\");\nexports.Posterize = function (imageData) {\n var levels = Math.round(this.levels() * 254) + 1,\n data = imageData.data,\n len = data.length,\n scale = 255 / levels,\n i;\n for (i = 0; i < len; i += 1) {\n data[i] = Math.floor(data[i] / scale) * scale;\n }\n};\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'levels', 0.5, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_1 = require(\"../Global\");\nvar Image = function (_super) {\n __extends(Image, _super);\n function Image() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Image.prototype._useBufferCanvas = function () {\n return !!((this.hasShadow() || this.getAbsoluteOpacity() !== 1) && this.hasStroke() && this.getStage());\n };\n Image.prototype._sceneFunc = function (context) {\n var width = this.width(),\n height = this.height(),\n image = this.image(),\n cropWidth,\n cropHeight,\n params;\n if (image) {\n cropWidth = this.cropWidth();\n cropHeight = this.cropHeight();\n if (cropWidth && cropHeight) {\n params = [image, this.cropX(), this.cropY(), cropWidth, cropHeight, 0, 0, width, height];\n } else {\n params = [image, 0, 0, width, height];\n }\n }\n if (this.hasFill() || this.hasStroke()) {\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n if (image) {\n context.drawImage.apply(context, params);\n }\n };\n Image.prototype._hitFunc = function (context) {\n var width = this.width(),\n height = this.height();\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n };\n Image.prototype.getWidth = function () {\n var _a;\n var image = this.image();\n return _a = this.attrs.width, _a !== null && _a !== void 0 ? _a : image ? image.width : 0;\n };\n Image.prototype.getHeight = function () {\n var _a;\n var image = this.image();\n return _a = this.attrs.height, _a !== null && _a !== void 0 ? _a : image ? image.height : 0;\n };\n Image.fromURL = function (url, callback) {\n var img = Util_1.Util.createImageElement();\n img.onload = function () {\n var image = new Image({\n image: img\n });\n callback(image);\n };\n img.crossOrigin = 'Anonymous';\n img.src = url;\n };\n return Image;\n}(Shape_1.Shape);\nexports.Image = Image;\nImage.prototype.className = 'Image';\nGlobal_1._registerNode(Image);\nFactory_1.Factory.addGetterSetter(Image, 'image');\nFactory_1.Factory.addComponentsGetterSetter(Image, 'crop', ['x', 'y', 'width', 'height']);\nFactory_1.Factory.addGetterSetter(Image, 'cropX', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Image, 'cropY', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Image, 'cropWidth', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Image, 'cropHeight', 0, Validators_1.getNumberValidator());\nUtil_1.Collection.mapMethods(Image);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_1 = require(\"../Global\");\nvar RegularPolygon = function (_super) {\n __extends(RegularPolygon, _super);\n function RegularPolygon() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RegularPolygon.prototype._sceneFunc = function (context) {\n var sides = this.sides(),\n radius = this.radius(),\n n,\n x,\n y;\n context.beginPath();\n context.moveTo(0, 0 - radius);\n for (n = 1; n < sides; n++) {\n x = radius * Math.sin(n * 2 * Math.PI / sides);\n y = -1 * radius * Math.cos(n * 2 * Math.PI / sides);\n context.lineTo(x, y);\n }\n context.closePath();\n context.fillStrokeShape(this);\n };\n RegularPolygon.prototype.getWidth = function () {\n return this.radius() * 2;\n };\n RegularPolygon.prototype.getHeight = function () {\n return this.radius() * 2;\n };\n RegularPolygon.prototype.setWidth = function (width) {\n this.radius(width / 2);\n };\n RegularPolygon.prototype.setHeight = function (height) {\n this.radius(height / 2);\n };\n return RegularPolygon;\n}(Shape_1.Shape);\nexports.RegularPolygon = RegularPolygon;\nRegularPolygon.prototype.className = 'RegularPolygon';\nRegularPolygon.prototype._centroid = true;\nRegularPolygon.prototype._attrsAffectingSize = ['radius'];\nGlobal_1._registerNode(RegularPolygon);\nFactory_1.Factory.addGetterSetter(RegularPolygon, 'radius', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(RegularPolygon, 'sides', 0, Validators_1.getNumberValidator());\nUtil_1.Collection.mapMethods(RegularPolygon);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Path_1 = require(\"./Path\");\nvar Text_1 = require(\"./Text\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_1 = require(\"../Global\");\nvar EMPTY_STRING = '',\n NORMAL = 'normal';\nfunction _fillFunc(context) {\n context.fillText(this.partialText, 0, 0);\n}\nfunction _strokeFunc(context) {\n context.strokeText(this.partialText, 0, 0);\n}\nvar TextPath = function (_super) {\n __extends(TextPath, _super);\n function TextPath(config) {\n var _this = _super.call(this, config) || this;\n _this.dummyCanvas = Util_1.Util.createCanvasElement();\n _this.dataArray = [];\n _this.dataArray = Path_1.Path.parsePathData(_this.attrs.data);\n _this.on('dataChange.konva', function () {\n this.dataArray = Path_1.Path.parsePathData(this.attrs.data);\n this._setTextData();\n });\n _this.on('textChange.konva alignChange.konva letterSpacingChange.konva kerningFuncChange.konva', _this._setTextData);\n if (config && config['getKerning']) {\n Util_1.Util.warn('getKerning TextPath API is deprecated. Please use \"kerningFunc\" instead.');\n _this.kerningFunc(config['getKerning']);\n }\n _this._setTextData();\n return _this;\n }\n TextPath.prototype._sceneFunc = function (context) {\n context.setAttr('font', this._getContextFont());\n context.setAttr('textBaseline', this.textBaseline());\n context.setAttr('textAlign', 'left');\n context.save();\n var textDecoration = this.textDecoration();\n var fill = this.fill();\n var fontSize = this.fontSize();\n var glyphInfo = this.glyphInfo;\n if (textDecoration === 'underline') {\n context.beginPath();\n }\n for (var i = 0; i < glyphInfo.length; i++) {\n context.save();\n var p0 = glyphInfo[i].p0;\n context.translate(p0.x, p0.y);\n context.rotate(glyphInfo[i].rotation);\n this.partialText = glyphInfo[i].text;\n context.fillStrokeShape(this);\n if (textDecoration === 'underline') {\n if (i === 0) {\n context.moveTo(0, fontSize / 2 + 1);\n }\n context.lineTo(fontSize, fontSize / 2 + 1);\n }\n context.restore();\n }\n if (textDecoration === 'underline') {\n context.strokeStyle = fill;\n context.lineWidth = fontSize / 20;\n context.stroke();\n }\n context.restore();\n };\n TextPath.prototype._hitFunc = function (context) {\n context.beginPath();\n var glyphInfo = this.glyphInfo;\n if (glyphInfo.length >= 1) {\n var p0 = glyphInfo[0].p0;\n context.moveTo(p0.x, p0.y);\n }\n for (var i = 0; i < glyphInfo.length; i++) {\n var p1 = glyphInfo[i].p1;\n context.lineTo(p1.x, p1.y);\n }\n context.setAttr('lineWidth', this.fontSize());\n context.setAttr('strokeStyle', this.colorKey);\n context.stroke();\n };\n TextPath.prototype.getTextWidth = function () {\n return this.textWidth;\n };\n TextPath.prototype.getTextHeight = function () {\n Util_1.Util.warn('text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.');\n return this.textHeight;\n };\n TextPath.prototype.setText = function (text) {\n return Text_1.Text.prototype.setText.call(this, text);\n };\n TextPath.prototype._getContextFont = function () {\n return Text_1.Text.prototype._getContextFont.call(this);\n };\n TextPath.prototype._getTextSize = function (text) {\n var dummyCanvas = this.dummyCanvas;\n var _context = dummyCanvas.getContext('2d');\n _context.save();\n _context.font = this._getContextFont();\n var metrics = _context.measureText(text);\n _context.restore();\n return {\n width: metrics.width,\n height: parseInt(this.attrs.fontSize, 10)\n };\n };\n TextPath.prototype._setTextData = function () {\n var that = this;\n var size = this._getTextSize(this.attrs.text);\n var letterSpacing = this.letterSpacing();\n var align = this.align();\n var kerningFunc = this.kerningFunc();\n this.textWidth = size.width;\n this.textHeight = size.height;\n var textFullWidth = Math.max(this.textWidth + ((this.attrs.text || '').length - 1) * letterSpacing, 0);\n this.glyphInfo = [];\n var fullPathWidth = 0;\n for (var l = 0; l < that.dataArray.length; l++) {\n if (that.dataArray[l].pathLength > 0) {\n fullPathWidth += that.dataArray[l].pathLength;\n }\n }\n var offset = 0;\n if (align === 'center') {\n offset = Math.max(0, fullPathWidth / 2 - textFullWidth / 2);\n }\n if (align === 'right') {\n offset = Math.max(0, fullPathWidth - textFullWidth);\n }\n var charArr = this.text().split('');\n var spacesNumber = this.text().split(' ').length - 1;\n var p0, p1, pathCmd;\n var pIndex = -1;\n var currentT = 0;\n var getNextPathSegment = function () {\n currentT = 0;\n var pathData = that.dataArray;\n for (var j = pIndex + 1; j < pathData.length; j++) {\n if (pathData[j].pathLength > 0) {\n pIndex = j;\n return pathData[j];\n } else if (pathData[j].command === 'M') {\n p0 = {\n x: pathData[j].points[0],\n y: pathData[j].points[1]\n };\n }\n }\n return {};\n };\n var findSegmentToFitCharacter = function (c) {\n var glyphWidth = that._getTextSize(c).width + letterSpacing;\n if (c === ' ' && align === 'justify') {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n var currLen = 0;\n var attempts = 0;\n p1 = undefined;\n while (Math.abs(glyphWidth - currLen) / glyphWidth > 0.01 && attempts < 25) {\n attempts++;\n var cumulativePathLength = currLen;\n while (pathCmd === undefined) {\n pathCmd = getNextPathSegment();\n if (pathCmd && cumulativePathLength + pathCmd.pathLength < glyphWidth) {\n cumulativePathLength += pathCmd.pathLength;\n pathCmd = undefined;\n }\n }\n if (pathCmd === {} || p0 === undefined) {\n return undefined;\n }\n var needNewSegment = false;\n switch (pathCmd.command) {\n case 'L':\n if (Path_1.Path.getLineLength(p0.x, p0.y, pathCmd.points[0], pathCmd.points[1]) > glyphWidth) {\n p1 = Path_1.Path.getPointOnLine(glyphWidth, p0.x, p0.y, pathCmd.points[0], pathCmd.points[1], p0.x, p0.y);\n } else {\n pathCmd = undefined;\n }\n break;\n case 'A':\n var start = pathCmd.points[4];\n var dTheta = pathCmd.points[5];\n var end = pathCmd.points[4] + dTheta;\n if (currentT === 0) {\n currentT = start + 0.00000001;\n } else if (glyphWidth > currLen) {\n currentT += Math.PI / 180.0 * dTheta / Math.abs(dTheta);\n } else {\n currentT -= Math.PI / 360.0 * dTheta / Math.abs(dTheta);\n }\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\n currentT = end;\n needNewSegment = true;\n }\n p1 = Path_1.Path.getPointOnEllipticalArc(pathCmd.points[0], pathCmd.points[1], pathCmd.points[2], pathCmd.points[3], currentT, pathCmd.points[6]);\n break;\n case 'C':\n if (currentT === 0) {\n if (glyphWidth > pathCmd.pathLength) {\n currentT = 0.00000001;\n } else {\n currentT = glyphWidth / pathCmd.pathLength;\n }\n } else if (glyphWidth > currLen) {\n currentT += (glyphWidth - currLen) / pathCmd.pathLength;\n } else {\n currentT -= (currLen - glyphWidth) / pathCmd.pathLength;\n }\n if (currentT > 1.0) {\n currentT = 1.0;\n needNewSegment = true;\n }\n p1 = Path_1.Path.getPointOnCubicBezier(currentT, pathCmd.start.x, pathCmd.start.y, pathCmd.points[0], pathCmd.points[1], pathCmd.points[2], pathCmd.points[3], pathCmd.points[4], pathCmd.points[5]);\n break;\n case 'Q':\n if (currentT === 0) {\n currentT = glyphWidth / pathCmd.pathLength;\n } else if (glyphWidth > currLen) {\n currentT += (glyphWidth - currLen) / pathCmd.pathLength;\n } else {\n currentT -= (currLen - glyphWidth) / pathCmd.pathLength;\n }\n if (currentT > 1.0) {\n currentT = 1.0;\n needNewSegment = true;\n }\n p1 = Path_1.Path.getPointOnQuadraticBezier(currentT, pathCmd.start.x, pathCmd.start.y, pathCmd.points[0], pathCmd.points[1], pathCmd.points[2], pathCmd.points[3]);\n break;\n }\n if (p1 !== undefined) {\n currLen = Path_1.Path.getLineLength(p0.x, p0.y, p1.x, p1.y);\n }\n if (needNewSegment) {\n needNewSegment = false;\n pathCmd = undefined;\n }\n }\n };\n var testChar = 'C';\n var glyphWidth = that._getTextSize(testChar).width + letterSpacing;\n var lettersInOffset = offset / glyphWidth - 1;\n for (var k = 0; k < lettersInOffset; k++) {\n findSegmentToFitCharacter(testChar);\n if (p0 === undefined || p1 === undefined) {\n break;\n }\n p0 = p1;\n }\n for (var i = 0; i < charArr.length; i++) {\n findSegmentToFitCharacter(charArr[i]);\n if (p0 === undefined || p1 === undefined) {\n break;\n }\n var width = Path_1.Path.getLineLength(p0.x, p0.y, p1.x, p1.y);\n var kern = 0;\n if (kerningFunc) {\n try {\n kern = kerningFunc(charArr[i - 1], charArr[i]) * this.fontSize();\n } catch (e) {\n kern = 0;\n }\n }\n p0.x += kern;\n p1.x += kern;\n this.textWidth += kern;\n var midpoint = Path_1.Path.getPointOnLine(kern + width / 2.0, p0.x, p0.y, p1.x, p1.y);\n var rotation = Math.atan2(p1.y - p0.y, p1.x - p0.x);\n this.glyphInfo.push({\n transposeX: midpoint.x,\n transposeY: midpoint.y,\n text: charArr[i],\n rotation: rotation,\n p0: p0,\n p1: p1\n });\n p0 = p1;\n }\n };\n TextPath.prototype.getSelfRect = function () {\n if (!this.glyphInfo.length) {\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n var points = [];\n this.glyphInfo.forEach(function (info) {\n points.push(info.p0.x);\n points.push(info.p0.y);\n points.push(info.p1.x);\n points.push(info.p1.y);\n });\n var minX = points[0] || 0;\n var maxX = points[0] || 0;\n var minY = points[1] || 0;\n var maxY = points[1] || 0;\n var x, y;\n for (var i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n var fontSize = this.fontSize();\n return {\n x: minX - fontSize / 2,\n y: minY - fontSize / 2,\n width: maxX - minX + fontSize,\n height: maxY - minY + fontSize\n };\n };\n return TextPath;\n}(Shape_1.Shape);\nexports.TextPath = TextPath;\nTextPath.prototype._fillFunc = _fillFunc;\nTextPath.prototype._strokeFunc = _strokeFunc;\nTextPath.prototype._fillFuncHit = _fillFunc;\nTextPath.prototype._strokeFuncHit = _strokeFunc;\nTextPath.prototype.className = 'TextPath';\nTextPath.prototype._attrsAffectingSize = ['text', 'fontSize', 'data'];\nGlobal_1._registerNode(TextPath);\nFactory_1.Factory.addGetterSetter(TextPath, 'data');\nFactory_1.Factory.addGetterSetter(TextPath, 'fontFamily', 'Arial');\nFactory_1.Factory.addGetterSetter(TextPath, 'fontSize', 12, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(TextPath, 'fontStyle', NORMAL);\nFactory_1.Factory.addGetterSetter(TextPath, 'align', 'left');\nFactory_1.Factory.addGetterSetter(TextPath, 'letterSpacing', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(TextPath, 'textBaseline', 'middle');\nFactory_1.Factory.addGetterSetter(TextPath, 'fontVariant', NORMAL);\nFactory_1.Factory.addGetterSetter(TextPath, 'text', EMPTY_STRING);\nFactory_1.Factory.addGetterSetter(TextPath, 'textDecoration', null);\nFactory_1.Factory.addGetterSetter(TextPath, 'kerningFunc', null);\nUtil_1.Collection.mapMethods(TextPath);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Container_1 = require(\"./Container\");\nvar BaseLayer_1 = require(\"./BaseLayer\");\nvar Global_1 = require(\"./Global\");\nvar FastLayer = function (_super) {\n __extends(FastLayer, _super);\n function FastLayer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FastLayer.prototype._validateAdd = function (child) {\n var type = child.getType();\n if (type !== 'Shape') {\n Util_1.Util.throw('You may only add shapes to a fast layer.');\n }\n };\n FastLayer.prototype._setCanvasSize = function (width, height) {\n this.canvas.setSize(width, height);\n this._checkSmooth();\n };\n FastLayer.prototype.hitGraphEnabled = function () {\n return false;\n };\n FastLayer.prototype.drawScene = function (can) {\n var layer = this.getLayer(),\n canvas = can || layer && layer.getCanvas();\n if (this.clearBeforeDraw()) {\n canvas.getContext().clear();\n }\n Container_1.Container.prototype.drawScene.call(this, canvas);\n return this;\n };\n FastLayer.prototype.draw = function () {\n this.drawScene();\n return this;\n };\n return FastLayer;\n}(BaseLayer_1.BaseLayer);\nexports.FastLayer = FastLayer;\nFastLayer.prototype.nodeType = 'FastLayer';\nGlobal_1._registerNode(FastLayer);\nUtil_1.Collection.mapMethods(FastLayer);","'use strict';\n\nexports.__esModule = true;\nexports.didNotFindHydratableTextInstance = exports.didNotFindHydratableInstance = exports.didNotFindHydratableContainerTextInstance = exports.didNotFindHydratableContainerInstance = exports.didNotHydrateInstance = exports.didNotHydrateContainerInstance = exports.didNotMatchHydratedTextInstance = exports.didNotMatchHydratedContainerTextInstance = exports.hydrateTextInstance = exports.hydrateInstance = exports.getFirstHydratableChild = exports.getNextHydratableSibling = exports.canHydrateTextInstance = exports.canHydrateInstance = exports.supportsHydration = undefined;\nvar _invariant = require('./invariant');\nvar _invariant2 = _interopRequireDefault(_invariant);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\n// Renderers that don't support hydration\n// can re-export everything from this module.\n\nfunction shim() {\n (0, _invariant2.default)(false, 'The current renderer does not support hyration. ' + 'This error is likely caused by a bug in React. ' + 'Please file an issue.');\n}\n\n// Hydration (when unsupported)\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar supportsHydration = exports.supportsHydration = false;\nvar canHydrateInstance = exports.canHydrateInstance = shim;\nvar canHydrateTextInstance = exports.canHydrateTextInstance = shim;\nvar getNextHydratableSibling = exports.getNextHydratableSibling = shim;\nvar getFirstHydratableChild = exports.getFirstHydratableChild = shim;\nvar hydrateInstance = exports.hydrateInstance = shim;\nvar hydrateTextInstance = exports.hydrateTextInstance = shim;\nvar didNotMatchHydratedContainerTextInstance = exports.didNotMatchHydratedContainerTextInstance = shim;\nvar didNotMatchHydratedTextInstance = exports.didNotMatchHydratedTextInstance = shim;\nvar didNotHydrateContainerInstance = exports.didNotHydrateContainerInstance = shim;\nvar didNotHydrateInstance = exports.didNotHydrateInstance = shim;\nvar didNotFindHydratableContainerInstance = exports.didNotFindHydratableContainerInstance = shim;\nvar didNotFindHydratableContainerTextInstance = exports.didNotFindHydratableContainerTextInstance = shim;\nvar didNotFindHydratableInstance = exports.didNotFindHydratableInstance = shim;\nvar didNotFindHydratableTextInstance = exports.didNotFindHydratableTextInstance = shim;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-reconciler.production.min.js');\n} else {\n module.exports = require('./cjs/react-reconciler.development.js');\n}","var Konva = require('./_FullInternals').Konva;\nKonva._injectGlobal(Konva);\nexports['default'] = Konva;\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Global_1 = require(\"./Global\");\nvar Util_1 = require(\"./Util\");\nvar Node_1 = require(\"./Node\");\nvar Container_1 = require(\"./Container\");\nvar Stage_1 = require(\"./Stage\");\nvar Layer_1 = require(\"./Layer\");\nvar FastLayer_1 = require(\"./FastLayer\");\nvar Group_1 = require(\"./Group\");\nvar DragAndDrop_1 = require(\"./DragAndDrop\");\nvar Shape_1 = require(\"./Shape\");\nvar Animation_1 = require(\"./Animation\");\nvar Tween_1 = require(\"./Tween\");\nvar Context_1 = require(\"./Context\");\nvar Canvas_1 = require(\"./Canvas\");\nexports.Konva = Util_1.Util._assign(Global_1.Konva, {\n Collection: Util_1.Collection,\n Util: Util_1.Util,\n Transform: Util_1.Transform,\n Node: Node_1.Node,\n ids: Node_1.ids,\n names: Node_1.names,\n Container: Container_1.Container,\n Stage: Stage_1.Stage,\n stages: Stage_1.stages,\n Layer: Layer_1.Layer,\n FastLayer: FastLayer_1.FastLayer,\n Group: Group_1.Group,\n DD: DragAndDrop_1.DD,\n Shape: Shape_1.Shape,\n shapes: Shape_1.shapes,\n Animation: Animation_1.Animation,\n Tween: Tween_1.Tween,\n Easings: Tween_1.Easings,\n Context: Context_1.Context,\n Canvas: Canvas_1.Canvas\n});","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_1 = require(\"../Global\");\nvar Ellipse = function (_super) {\n __extends(Ellipse, _super);\n function Ellipse() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Ellipse.prototype._sceneFunc = function (context) {\n var rx = this.radiusX(),\n ry = this.radiusY();\n context.beginPath();\n context.save();\n if (rx !== ry) {\n context.scale(1, ry / rx);\n }\n context.arc(0, 0, rx, 0, Math.PI * 2, false);\n context.restore();\n context.closePath();\n context.fillStrokeShape(this);\n };\n Ellipse.prototype.getWidth = function () {\n return this.radiusX() * 2;\n };\n Ellipse.prototype.getHeight = function () {\n return this.radiusY() * 2;\n };\n Ellipse.prototype.setWidth = function (width) {\n this.radiusX(width / 2);\n };\n Ellipse.prototype.setHeight = function (height) {\n this.radiusY(height / 2);\n };\n return Ellipse;\n}(Shape_1.Shape);\nexports.Ellipse = Ellipse;\nEllipse.prototype.className = 'Ellipse';\nEllipse.prototype._centroid = true;\nEllipse.prototype._attrsAffectingSize = ['radiusX', 'radiusY'];\nGlobal_1._registerNode(Ellipse);\nFactory_1.Factory.addComponentsGetterSetter(Ellipse, 'radius', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Ellipse, 'radiusX', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Ellipse, 'radiusY', 0, Validators_1.getNumberValidator());\nUtil_1.Collection.mapMethods(Ellipse);","/**\n * Based on ReactArt.js\n * Copyright (c) 2017-present Lavrenov Anton.\n * All rights reserved.\n *\n * MIT\n */\n'use strict';\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nvar React = require('react');\nvar Konva = require('konva/lib/Core');\nvar ReactFiberReconciler = require('react-reconciler');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar HostConfig = require('./ReactKonvaHostConfig');\nvar _require = require('./makeUpdates'),\n applyNodeProps = _require.applyNodeProps,\n toggleStrictMode = _require.toggleStrictMode;\n\n// export for testing\n// const REACT_VERSION = '16.8.3';\n// const __matchRectVersion = React.version === REACT_VERSION;\n// skip version testing for now\n\nvar __matchRectVersion = true;\n\n// That warning is useful, but I am not sure we really need it\n// if (!__matchRectVersion) {\n// console.warn(\n// `Version mismatch detected for react-konva and react. react-konva expects to have react version ${REACT_VERSION}, but it has version ${\n// React.version\n// }. Make sure versions are matched, otherwise, react-konva work is not guaranteed. For releases information take a look here: https://github.com/konvajs/react-konva/releases`\n// );\n// }\n\nvar Stage = function (_React$Component) {\n _inherits(Stage, _React$Component);\n function Stage() {\n _classCallCheck(this, Stage);\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n Stage.prototype.componentDidMount = function componentDidMount() {\n if (!Konva.isBrowser) {\n return;\n }\n this._stage = new Konva.Stage({\n width: this.props.width,\n height: this.props.height,\n container: this._tagRef\n });\n this._setRef(this._stage);\n applyNodeProps(this._stage, this.props);\n this._mountNode = KonvaRenderer.createContainer(this._stage);\n KonvaRenderer.updateContainer(this.props.children, this._mountNode, this);\n };\n Stage.prototype._setRef = function _setRef(value) {\n var forwardedRef = this.props.forwardedRef;\n if (!forwardedRef) {\n return;\n }\n if (typeof forwardedRef === 'function') {\n forwardedRef(value);\n } else {\n forwardedRef.current = value;\n }\n };\n Stage.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (!Konva.isBrowser) {\n return;\n }\n this._setRef(this._stage);\n applyNodeProps(this._stage, this.props, prevProps);\n KonvaRenderer.updateContainer(this.props.children, this._mountNode, this);\n };\n Stage.prototype.componentWillUnmount = function componentWillUnmount() {\n if (!Konva.isBrowser) {\n return;\n }\n this._setRef(null);\n KonvaRenderer.updateContainer(null, this._mountNode, this);\n this._stage.destroy();\n };\n Stage.prototype.getStage = function getStage() {\n return this._stage;\n };\n Stage.prototype.render = function render() {\n var _this2 = this;\n var props = this.props;\n return React.createElement('div', {\n ref: function ref(_ref) {\n return _this2._tagRef = _ref;\n },\n accessKey: props.accessKey,\n className: props.className,\n role: props.role,\n style: props.style,\n tabIndex: props.tabIndex,\n title: props.title\n });\n };\n return Stage;\n}(React.Component);\nvar KONVA_NODES = ['Layer', 'FastLayer', 'Group', 'Label', 'Rect', 'Circle', 'Ellipse', 'Wedge', 'Line', 'Sprite', 'Image', 'Text', 'TextPath', 'Star', 'Ring', 'Arc', 'Tag', 'Path', 'RegularPolygon', 'Arrow', 'Shape', 'Transformer'];\nvar TYPES = {};\nKONVA_NODES.forEach(function (nodeName) {\n TYPES[nodeName] = nodeName;\n});\nvar KonvaRenderer = ReactFiberReconciler(HostConfig);\nKonvaRenderer.injectIntoDevTools({\n findFiberByHostInstance: ReactDOMComponentTree.getClosestInstanceFromNode,\n bundleType: process.env.NODE_ENV !== 'production' ? 1 : 0,\n version: React.version,\n rendererPackageName: 'react-konva',\n getInspectorDataForViewTag: function getInspectorDataForViewTag() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n console.log(args);\n }\n});\n\n/** API */\n\nvar StageWrap = React.forwardRef(function (props, ref) {\n return React.createElement(Stage, _extends({}, props, {\n forwardedRef: ref\n }));\n});\nmodule.exports = _extends({}, TYPES, {\n __matchRectVersion: __matchRectVersion,\n Stage: StageWrap,\n useStrictMode: toggleStrictMode\n});","var Konva = require('./_CoreInternals').Konva;\nKonva._injectGlobal(Konva);\nexports['default'] = Konva;\nKonva.default = Konva;\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Factory_1 = require(\"../Factory\");\nvar Util_1 = require(\"../Util\");\nvar Node_1 = require(\"../Node\");\nvar Validators_1 = require(\"../Validators\");\nexports.Pixelate = function (imageData) {\n var pixelSize = Math.ceil(this.pixelSize()),\n width = imageData.width,\n height = imageData.height,\n x,\n y,\n i,\n red,\n green,\n blue,\n alpha,\n nBinsX = Math.ceil(width / pixelSize),\n nBinsY = Math.ceil(height / pixelSize),\n xBinStart,\n xBinEnd,\n yBinStart,\n yBinEnd,\n xBin,\n yBin,\n pixelsInBin,\n data = imageData.data;\n if (pixelSize <= 0) {\n Util_1.Util.error('pixelSize value can not be <= 0');\n return;\n }\n for (xBin = 0; xBin < nBinsX; xBin += 1) {\n for (yBin = 0; yBin < nBinsY; yBin += 1) {\n red = 0;\n green = 0;\n blue = 0;\n alpha = 0;\n xBinStart = xBin * pixelSize;\n xBinEnd = xBinStart + pixelSize;\n yBinStart = yBin * pixelSize;\n yBinEnd = yBinStart + pixelSize;\n pixelsInBin = 0;\n for (x = xBinStart; x < xBinEnd; x += 1) {\n if (x >= width) {\n continue;\n }\n for (y = yBinStart; y < yBinEnd; y += 1) {\n if (y >= height) {\n continue;\n }\n i = (width * y + x) * 4;\n red += data[i + 0];\n green += data[i + 1];\n blue += data[i + 2];\n alpha += data[i + 3];\n pixelsInBin += 1;\n }\n }\n red = red / pixelsInBin;\n green = green / pixelsInBin;\n blue = blue / pixelsInBin;\n alpha = alpha / pixelsInBin;\n for (x = xBinStart; x < xBinEnd; x += 1) {\n if (x >= width) {\n continue;\n }\n for (y = yBinStart; y < yBinEnd; y += 1) {\n if (y >= height) {\n continue;\n }\n i = (width * y + x) * 4;\n data[i + 0] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n data[i + 3] = alpha;\n }\n }\n }\n }\n};\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'pixelSize', 8, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n *\n */\n'use strict';\n\nvar validateFormat = process.env.NODE_ENV !== 'production' ? function (format) {} : function (format) {\n if (format === undefined) {\n throw new Error('invariant(...): Second argument must be a string.');\n }\n};\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments to provide\n * information about what broke and what you were expecting.\n *\n * The invariant message will be stripped in production, but the invariant will\n * remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n validateFormat(format);\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return String(args[argIndex++]);\n }));\n error.name = 'Invariant Violation';\n }\n error.framesToPop = 1; // Skip invariant's own stack frame.\n\n throw error;\n }\n}\nmodule.exports = invariant;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Global_1 = require(\"./Global\");\nvar Util_1 = require(\"./Util\");\nfunction _formatValue(val) {\n if (Util_1.Util._isString(val)) {\n return '\"' + val + '\"';\n }\n if (Object.prototype.toString.call(val) === '[object Number]') {\n return val;\n }\n if (Util_1.Util._isBoolean(val)) {\n return val;\n }\n return Object.prototype.toString.call(val);\n}\nfunction RGBComponent(val) {\n if (val > 255) {\n return 255;\n } else if (val < 0) {\n return 0;\n }\n return Math.round(val);\n}\nexports.RGBComponent = RGBComponent;\nfunction alphaComponent(val) {\n if (val > 1) {\n return 1;\n } else if (val < 0.0001) {\n return 0.0001;\n }\n return val;\n}\nexports.alphaComponent = alphaComponent;\nfunction getNumberValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isNumber(val)) {\n Util_1.Util.warn(_formatValue(val) + ' is a not valid value for \"' + attr + '\" attribute. The value should be a number.');\n }\n return val;\n };\n }\n}\nexports.getNumberValidator = getNumberValidator;\nfunction getNumberOrAutoValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n var isNumber = Util_1.Util._isNumber(val);\n var isAuto = val === 'auto';\n if (!(isNumber || isAuto)) {\n Util_1.Util.warn(_formatValue(val) + ' is a not valid value for \"' + attr + '\" attribute. The value should be a number or \"auto\".');\n }\n return val;\n };\n }\n}\nexports.getNumberOrAutoValidator = getNumberOrAutoValidator;\nfunction getStringValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isString(val)) {\n Util_1.Util.warn(_formatValue(val) + ' is a not valid value for \"' + attr + '\" attribute. The value should be a string.');\n }\n return val;\n };\n }\n}\nexports.getStringValidator = getStringValidator;\nfunction getFunctionValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isFunction(val)) {\n Util_1.Util.warn(_formatValue(val) + ' is a not valid value for \"' + attr + '\" attribute. The value should be a function.');\n }\n return val;\n };\n }\n}\nexports.getFunctionValidator = getFunctionValidator;\nfunction getNumberArrayValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util._isArray(val)) {\n Util_1.Util.warn(_formatValue(val) + ' is a not valid value for \"' + attr + '\" attribute. The value should be a array of numbers.');\n } else {\n val.forEach(function (item) {\n if (!Util_1.Util._isNumber(item)) {\n Util_1.Util.warn('\"' + attr + '\" attribute has non numeric element ' + item + '. Make sure that all elements are numbers.');\n }\n });\n }\n return val;\n };\n }\n}\nexports.getNumberArrayValidator = getNumberArrayValidator;\nfunction getBooleanValidator() {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n var isBool = val === true || val === false;\n if (!isBool) {\n Util_1.Util.warn(_formatValue(val) + ' is a not valid value for \"' + attr + '\" attribute. The value should be a boolean.');\n }\n return val;\n };\n }\n}\nexports.getBooleanValidator = getBooleanValidator;\nfunction getComponentValidator(components) {\n if (Global_1.Konva.isUnminified) {\n return function (val, attr) {\n if (!Util_1.Util.isObject(val)) {\n Util_1.Util.warn(_formatValue(val) + ' is a not valid value for \"' + attr + '\" attribute. The value should be an object with properties ' + components);\n }\n return val;\n };\n }\n}\nexports.getComponentValidator = getComponentValidator;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Factory_1 = require(\"../Factory\");\nvar Node_1 = require(\"../Node\");\nvar Validators_1 = require(\"../Validators\");\nexports.HSV = function (imageData) {\n var data = imageData.data,\n nPixels = data.length,\n v = Math.pow(2, this.value()),\n s = Math.pow(2, this.saturation()),\n h = Math.abs(this.hue() + 360) % 360,\n i;\n var vsu = v * s * Math.cos(h * Math.PI / 180),\n vsw = v * s * Math.sin(h * Math.PI / 180);\n var rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw,\n rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw,\n rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;\n var gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw,\n gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw,\n gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;\n var br = 0.299 * v - 0.3 * vsu + 1.25 * vsw,\n bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw,\n bb = 0.114 * v + 0.886 * vsu - 0.2 * vsw;\n var r, g, b, a;\n for (i = 0; i < nPixels; i += 4) {\n r = data[i + 0];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n data[i + 0] = rr * r + rg * g + rb * b;\n data[i + 1] = gr * r + gg * g + gb * b;\n data[i + 2] = br * r + bg * g + bb * b;\n data[i + 3] = a;\n }\n};\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'hue', 0, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'saturation', 0, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'value', 0, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Factory_1 = require(\"./Factory\");\nvar Canvas_1 = require(\"./Canvas\");\nvar Global_1 = require(\"./Global\");\nvar DragAndDrop_1 = require(\"./DragAndDrop\");\nvar Validators_1 = require(\"./Validators\");\nexports.ids = {};\nexports.names = {};\nvar _addId = function (node, id) {\n if (!id) {\n return;\n }\n exports.ids[id] = node;\n};\nexports._removeId = function (id, node) {\n if (!id) {\n return;\n }\n if (exports.ids[id] !== node) {\n return;\n }\n delete exports.ids[id];\n};\nexports._addName = function (node, name) {\n if (name) {\n if (!exports.names[name]) {\n exports.names[name] = [];\n }\n exports.names[name].push(node);\n }\n};\nexports._removeName = function (name, _id) {\n if (!name) {\n return;\n }\n var nodes = exports.names[name];\n if (!nodes) {\n return;\n }\n for (var n = 0; n < nodes.length; n++) {\n var no = nodes[n];\n if (no._id === _id) {\n nodes.splice(n, 1);\n }\n }\n if (nodes.length === 0) {\n delete exports.names[name];\n }\n};\nvar ABSOLUTE_OPACITY = 'absoluteOpacity',\n ABSOLUTE_TRANSFORM = 'absoluteTransform',\n ABSOLUTE_SCALE = 'absoluteScale',\n CANVAS = 'canvas',\n CHANGE = 'Change',\n CHILDREN = 'children',\n KONVA = 'konva',\n LISTENING = 'listening',\n MOUSEENTER = 'mouseenter',\n MOUSELEAVE = 'mouseleave',\n NAME = 'name',\n SET = 'set',\n SHAPE = 'Shape',\n SPACE = ' ',\n STAGE = 'stage',\n TRANSFORM = 'transform',\n UPPER_STAGE = 'Stage',\n VISIBLE = 'visible',\n CLONE_BLACK_LIST = ['id'],\n TRANSFORM_CHANGE_STR = ['xChange.konva', 'yChange.konva', 'scaleXChange.konva', 'scaleYChange.konva', 'skewXChange.konva', 'skewYChange.konva', 'rotationChange.konva', 'offsetXChange.konva', 'offsetYChange.konva', 'transformsEnabledChange.konva'].join(SPACE),\n SCALE_CHANGE_STR = ['scaleXChange.konva', 'scaleYChange.konva'].join(SPACE);\nvar emptyChildren = new Util_1.Collection();\nvar idCounter = 1;\nvar Node = function () {\n function Node(config) {\n var _this = this;\n this._id = idCounter++;\n this.eventListeners = {};\n this.attrs = {};\n this.index = 0;\n this.parent = null;\n this._cache = new Map();\n this._lastPos = null;\n this._filterUpToDate = false;\n this._isUnderCache = false;\n this.children = emptyChildren;\n this._dragEventId = null;\n this.setAttrs(config);\n this.on(TRANSFORM_CHANGE_STR, function () {\n _this._clearCache(TRANSFORM);\n _this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n });\n this.on(SCALE_CHANGE_STR, function () {\n _this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n });\n this.on('visibleChange.konva', function () {\n _this._clearSelfAndDescendantCache(VISIBLE);\n });\n this.on('listeningChange.konva', function () {\n _this._clearSelfAndDescendantCache(LISTENING);\n });\n this.on('opacityChange.konva', function () {\n _this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n });\n }\n Node.prototype.hasChildren = function () {\n return false;\n };\n Node.prototype.getChildren = function () {\n return emptyChildren;\n };\n Node.prototype._clearCache = function (attr) {\n if (attr) {\n this._cache.delete(attr);\n } else {\n this._cache.clear();\n }\n };\n Node.prototype._getCache = function (attr, privateGetter) {\n var cache = this._cache.get(attr);\n if (cache === undefined) {\n cache = privateGetter.call(this);\n this._cache.set(attr, cache);\n }\n return cache;\n };\n Node.prototype._getCanvasCache = function () {\n return this._cache.get(CANVAS);\n };\n Node.prototype._clearSelfAndDescendantCache = function (attr) {\n this._clearCache(attr);\n if (this.isCached()) {\n return;\n }\n if (this.children) {\n this.children.each(function (node) {\n node._clearSelfAndDescendantCache(attr);\n });\n }\n };\n Node.prototype.clearCache = function () {\n this._cache.delete(CANVAS);\n this._clearSelfAndDescendantCache();\n return this;\n };\n Node.prototype.cache = function (config) {\n var conf = config || {};\n var rect = {};\n if (conf.x === undefined || conf.y === undefined || conf.width === undefined || conf.height === undefined) {\n rect = this.getClientRect({\n skipTransform: true,\n relativeTo: this.getParent()\n });\n }\n var width = Math.ceil(conf.width || rect.width),\n height = Math.ceil(conf.height || rect.height),\n pixelRatio = conf.pixelRatio,\n x = conf.x === undefined ? rect.x : conf.x,\n y = conf.y === undefined ? rect.y : conf.y,\n offset = conf.offset || 0,\n drawBorder = conf.drawBorder || false;\n if (!width || !height) {\n Util_1.Util.error('Can not cache the node. Width or height of the node equals 0. Caching is skipped.');\n return;\n }\n width += offset * 2;\n height += offset * 2;\n x -= offset;\n y -= offset;\n var cachedSceneCanvas = new Canvas_1.SceneCanvas({\n pixelRatio: pixelRatio,\n width: width,\n height: height\n }),\n cachedFilterCanvas = new Canvas_1.SceneCanvas({\n pixelRatio: pixelRatio,\n width: width,\n height: height\n }),\n cachedHitCanvas = new Canvas_1.HitCanvas({\n pixelRatio: 1,\n width: width,\n height: height\n }),\n sceneContext = cachedSceneCanvas.getContext(),\n hitContext = cachedHitCanvas.getContext();\n cachedHitCanvas.isCache = true;\n this._cache.delete('canvas');\n this._filterUpToDate = false;\n if (conf.imageSmoothingEnabled === false) {\n cachedSceneCanvas.getContext()._context.imageSmoothingEnabled = false;\n cachedFilterCanvas.getContext()._context.imageSmoothingEnabled = false;\n cachedHitCanvas.getContext()._context.imageSmoothingEnabled = false;\n }\n sceneContext.save();\n hitContext.save();\n sceneContext.translate(-x, -y);\n hitContext.translate(-x, -y);\n this._isUnderCache = true;\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n this.drawScene(cachedSceneCanvas, this, true);\n this.drawHit(cachedHitCanvas, this, true);\n this._isUnderCache = false;\n sceneContext.restore();\n hitContext.restore();\n if (drawBorder) {\n sceneContext.save();\n sceneContext.beginPath();\n sceneContext.rect(0, 0, width, height);\n sceneContext.closePath();\n sceneContext.setAttr('strokeStyle', 'red');\n sceneContext.setAttr('lineWidth', 5);\n sceneContext.stroke();\n sceneContext.restore();\n }\n this._cache.set(CANVAS, {\n scene: cachedSceneCanvas,\n filter: cachedFilterCanvas,\n hit: cachedHitCanvas,\n x: x,\n y: y\n });\n return this;\n };\n Node.prototype.isCached = function () {\n return this._cache.has('canvas');\n };\n Node.prototype.getClientRect = function (config) {\n throw new Error('abstract \"getClientRect\" method call');\n };\n Node.prototype._transformedRect = function (rect, top) {\n var points = [{\n x: rect.x,\n y: rect.y\n }, {\n x: rect.x + rect.width,\n y: rect.y\n }, {\n x: rect.x + rect.width,\n y: rect.y + rect.height\n }, {\n x: rect.x,\n y: rect.y + rect.height\n }];\n var minX, minY, maxX, maxY;\n var trans = this.getAbsoluteTransform(top);\n points.forEach(function (point) {\n var transformed = trans.point(point);\n if (minX === undefined) {\n minX = maxX = transformed.x;\n minY = maxY = transformed.y;\n }\n minX = Math.min(minX, transformed.x);\n minY = Math.min(minY, transformed.y);\n maxX = Math.max(maxX, transformed.x);\n maxY = Math.max(maxY, transformed.y);\n });\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n };\n Node.prototype._drawCachedSceneCanvas = function (context) {\n context.save();\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n var canvasCache = this._getCanvasCache();\n context.translate(canvasCache.x, canvasCache.y);\n var cacheCanvas = this._getCachedSceneCanvas();\n var ratio = cacheCanvas.pixelRatio;\n context.drawImage(cacheCanvas._canvas, 0, 0, cacheCanvas.width / ratio, cacheCanvas.height / ratio);\n context.restore();\n };\n Node.prototype._drawCachedHitCanvas = function (context) {\n var canvasCache = this._getCanvasCache(),\n hitCanvas = canvasCache.hit;\n context.save();\n context.translate(canvasCache.x, canvasCache.y);\n context.drawImage(hitCanvas._canvas, 0, 0);\n context.restore();\n };\n Node.prototype._getCachedSceneCanvas = function () {\n var filters = this.filters(),\n cachedCanvas = this._getCanvasCache(),\n sceneCanvas = cachedCanvas.scene,\n filterCanvas = cachedCanvas.filter,\n filterContext = filterCanvas.getContext(),\n len,\n imageData,\n n,\n filter;\n if (filters) {\n if (!this._filterUpToDate) {\n var ratio = sceneCanvas.pixelRatio;\n try {\n len = filters.length;\n filterContext.clear();\n filterContext.drawImage(sceneCanvas._canvas, 0, 0, sceneCanvas.getWidth() / ratio, sceneCanvas.getHeight() / ratio);\n imageData = filterContext.getImageData(0, 0, filterCanvas.getWidth(), filterCanvas.getHeight());\n for (n = 0; n < len; n++) {\n filter = filters[n];\n if (typeof filter !== 'function') {\n Util_1.Util.error('Filter should be type of function, but got ' + typeof filter + ' instead. Please check correct filters');\n continue;\n }\n filter.call(this, imageData);\n filterContext.putImageData(imageData, 0, 0);\n }\n } catch (e) {\n Util_1.Util.error('Unable to apply filter. ' + e.message + ' This post my help you https://konvajs.org/docs/posts/Tainted_Canvas.html.');\n }\n this._filterUpToDate = true;\n }\n return filterCanvas;\n }\n return sceneCanvas;\n };\n Node.prototype.on = function (evtStr, handler) {\n if (arguments.length === 3) {\n return this._delegate.apply(this, arguments);\n }\n var events = evtStr.split(SPACE),\n len = events.length,\n n,\n event,\n parts,\n baseEvent,\n name;\n for (n = 0; n < len; n++) {\n event = events[n];\n parts = event.split('.');\n baseEvent = parts[0];\n name = parts[1] || '';\n if (!this.eventListeners[baseEvent]) {\n this.eventListeners[baseEvent] = [];\n }\n this.eventListeners[baseEvent].push({\n name: name,\n handler: handler\n });\n }\n return this;\n };\n Node.prototype.off = function (evtStr, callback) {\n var events = (evtStr || '').split(SPACE),\n len = events.length,\n n,\n t,\n event,\n parts,\n baseEvent,\n name;\n if (!evtStr) {\n for (t in this.eventListeners) {\n this._off(t);\n }\n }\n for (n = 0; n < len; n++) {\n event = events[n];\n parts = event.split('.');\n baseEvent = parts[0];\n name = parts[1];\n if (baseEvent) {\n if (this.eventListeners[baseEvent]) {\n this._off(baseEvent, name, callback);\n }\n } else {\n for (t in this.eventListeners) {\n this._off(t, name, callback);\n }\n }\n }\n return this;\n };\n Node.prototype.dispatchEvent = function (evt) {\n var e = {\n target: this,\n type: evt.type,\n evt: evt\n };\n this.fire(evt.type, e);\n return this;\n };\n Node.prototype.addEventListener = function (type, handler) {\n this.on(type, function (evt) {\n handler.call(this, evt.evt);\n });\n return this;\n };\n Node.prototype.removeEventListener = function (type) {\n this.off(type);\n return this;\n };\n Node.prototype._delegate = function (event, selector, handler) {\n var stopNode = this;\n this.on(event, function (evt) {\n var targets = evt.target.findAncestors(selector, true, stopNode);\n for (var i = 0; i < targets.length; i++) {\n evt = Util_1.Util.cloneObject(evt);\n evt.currentTarget = targets[i];\n handler.call(targets[i], evt);\n }\n });\n };\n Node.prototype.remove = function () {\n if (this.isDragging()) {\n this.stopDrag();\n }\n DragAndDrop_1.DD._dragElements.delete(this._id);\n this._remove();\n return this;\n };\n Node.prototype._clearCaches = function () {\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n this._clearSelfAndDescendantCache(STAGE);\n this._clearSelfAndDescendantCache(VISIBLE);\n this._clearSelfAndDescendantCache(LISTENING);\n };\n Node.prototype._remove = function () {\n this._clearCaches();\n var parent = this.getParent();\n if (parent && parent.children) {\n parent.children.splice(this.index, 1);\n parent._setChildrenIndices();\n this.parent = null;\n }\n };\n Node.prototype.destroy = function () {\n exports._removeId(this.id(), this);\n var names = (this.name() || '').split(/\\s/g);\n for (var i = 0; i < names.length; i++) {\n var subname = names[i];\n exports._removeName(subname, this._id);\n }\n this.remove();\n return this;\n };\n Node.prototype.getAttr = function (attr) {\n var method = 'get' + Util_1.Util._capitalize(attr);\n if (Util_1.Util._isFunction(this[method])) {\n return this[method]();\n }\n return this.attrs[attr];\n };\n Node.prototype.getAncestors = function () {\n var parent = this.getParent(),\n ancestors = new Util_1.Collection();\n while (parent) {\n ancestors.push(parent);\n parent = parent.getParent();\n }\n return ancestors;\n };\n Node.prototype.getAttrs = function () {\n return this.attrs || {};\n };\n Node.prototype.setAttrs = function (config) {\n var key, method;\n if (!config) {\n return this;\n }\n for (key in config) {\n if (key === CHILDREN) {\n continue;\n }\n method = SET + Util_1.Util._capitalize(key);\n if (Util_1.Util._isFunction(this[method])) {\n this[method](config[key]);\n } else {\n this._setAttr(key, config[key]);\n }\n }\n return this;\n };\n Node.prototype.isListening = function () {\n return this._getCache(LISTENING, this._isListening);\n };\n Node.prototype._isListening = function () {\n var listening = this.listening(),\n parent = this.getParent();\n if (listening === 'inherit') {\n if (parent) {\n return parent.isListening();\n } else {\n return true;\n }\n } else {\n return listening;\n }\n };\n Node.prototype.isVisible = function () {\n return this._getCache(VISIBLE, this._isVisible);\n };\n Node.prototype._isVisible = function (relativeTo) {\n var visible = this.visible(),\n parent = this.getParent();\n if (visible === 'inherit') {\n if (parent && parent !== relativeTo) {\n return parent._isVisible(relativeTo);\n } else {\n return true;\n }\n } else if (relativeTo && relativeTo !== parent) {\n return visible && parent._isVisible(relativeTo);\n } else {\n return visible;\n }\n };\n Node.prototype.shouldDrawHit = function () {\n var layer = this.getLayer();\n return !layer && this.isListening() && this.isVisible() || layer && layer.hitGraphEnabled() && this.isListening() && this.isVisible();\n };\n Node.prototype.show = function () {\n this.visible(true);\n return this;\n };\n Node.prototype.hide = function () {\n this.visible(false);\n return this;\n };\n Node.prototype.getZIndex = function () {\n return this.index || 0;\n };\n Node.prototype.getAbsoluteZIndex = function () {\n var depth = this.getDepth(),\n that = this,\n index = 0,\n nodes,\n len,\n n,\n child;\n function addChildren(children) {\n nodes = [];\n len = children.length;\n for (n = 0; n < len; n++) {\n child = children[n];\n index++;\n if (child.nodeType !== SHAPE) {\n nodes = nodes.concat(child.getChildren().toArray());\n }\n if (child._id === that._id) {\n n = len;\n }\n }\n if (nodes.length > 0 && nodes[0].getDepth() <= depth) {\n addChildren(nodes);\n }\n }\n if (that.nodeType !== UPPER_STAGE) {\n addChildren(that.getStage().getChildren());\n }\n return index;\n };\n Node.prototype.getDepth = function () {\n var depth = 0,\n parent = this.parent;\n while (parent) {\n depth++;\n parent = parent.parent;\n }\n return depth;\n };\n Node.prototype.setPosition = function (pos) {\n this.x(pos.x);\n this.y(pos.y);\n return this;\n };\n Node.prototype.getPosition = function () {\n return {\n x: this.x(),\n y: this.y()\n };\n };\n Node.prototype.getAbsolutePosition = function (top) {\n var haveCachedParent = false;\n var parent = this.parent;\n while (parent) {\n if (parent.isCached()) {\n haveCachedParent = true;\n break;\n }\n parent = parent.parent;\n }\n if (haveCachedParent && !top) {\n top = true;\n }\n var absoluteMatrix = this.getAbsoluteTransform(top).getMatrix(),\n absoluteTransform = new Util_1.Transform(),\n offset = this.offset();\n absoluteTransform.m = absoluteMatrix.slice();\n absoluteTransform.translate(offset.x, offset.y);\n return absoluteTransform.getTranslation();\n };\n Node.prototype.setAbsolutePosition = function (pos) {\n var origTrans = this._clearTransform(),\n it;\n this.attrs.x = origTrans.x;\n this.attrs.y = origTrans.y;\n delete origTrans.x;\n delete origTrans.y;\n it = this.getAbsoluteTransform();\n it.invert();\n it.translate(pos.x, pos.y);\n pos = {\n x: this.attrs.x + it.getTranslation().x,\n y: this.attrs.y + it.getTranslation().y\n };\n this.setPosition({\n x: pos.x,\n y: pos.y\n });\n this._setTransform(origTrans);\n return this;\n };\n Node.prototype._setTransform = function (trans) {\n var key;\n for (key in trans) {\n this.attrs[key] = trans[key];\n }\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n };\n Node.prototype._clearTransform = function () {\n var trans = {\n x: this.x(),\n y: this.y(),\n rotation: this.rotation(),\n scaleX: this.scaleX(),\n scaleY: this.scaleY(),\n offsetX: this.offsetX(),\n offsetY: this.offsetY(),\n skewX: this.skewX(),\n skewY: this.skewY()\n };\n this.attrs.x = 0;\n this.attrs.y = 0;\n this.attrs.rotation = 0;\n this.attrs.scaleX = 1;\n this.attrs.scaleY = 1;\n this.attrs.offsetX = 0;\n this.attrs.offsetY = 0;\n this.attrs.skewX = 0;\n this.attrs.skewY = 0;\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n return trans;\n };\n Node.prototype.move = function (change) {\n var changeX = change.x,\n changeY = change.y,\n x = this.x(),\n y = this.y();\n if (changeX !== undefined) {\n x += changeX;\n }\n if (changeY !== undefined) {\n y += changeY;\n }\n this.setPosition({\n x: x,\n y: y\n });\n return this;\n };\n Node.prototype._eachAncestorReverse = function (func, top) {\n var family = [],\n parent = this.getParent(),\n len,\n n;\n if (top && top._id === this._id) {\n func(this);\n return;\n }\n family.unshift(this);\n while (parent && (!top || parent._id !== top._id)) {\n family.unshift(parent);\n parent = parent.parent;\n }\n len = family.length;\n for (n = 0; n < len; n++) {\n func(family[n]);\n }\n };\n Node.prototype.rotate = function (theta) {\n this.rotation(this.rotation() + theta);\n return this;\n };\n Node.prototype.moveToTop = function () {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveToTop function is ignored.');\n return false;\n }\n var index = this.index;\n this.parent.children.splice(index, 1);\n this.parent.children.push(this);\n this.parent._setChildrenIndices();\n return true;\n };\n Node.prototype.moveUp = function () {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveUp function is ignored.');\n return false;\n }\n var index = this.index,\n len = this.parent.getChildren().length;\n if (index < len - 1) {\n this.parent.children.splice(index, 1);\n this.parent.children.splice(index + 1, 0, this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n };\n Node.prototype.moveDown = function () {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveDown function is ignored.');\n return false;\n }\n var index = this.index;\n if (index > 0) {\n this.parent.children.splice(index, 1);\n this.parent.children.splice(index - 1, 0, this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n };\n Node.prototype.moveToBottom = function () {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. moveToBottom function is ignored.');\n return false;\n }\n var index = this.index;\n if (index > 0) {\n this.parent.children.splice(index, 1);\n this.parent.children.unshift(this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n };\n Node.prototype.setZIndex = function (zIndex) {\n if (!this.parent) {\n Util_1.Util.warn('Node has no parent. zIndex parameter is ignored.');\n return this;\n }\n if (zIndex < 0 || zIndex >= this.parent.children.length) {\n Util_1.Util.warn('Unexpected value ' + zIndex + ' for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to ' + (this.parent.children.length - 1) + '.');\n }\n var index = this.index;\n this.parent.children.splice(index, 1);\n this.parent.children.splice(zIndex, 0, this);\n this.parent._setChildrenIndices();\n return this;\n };\n Node.prototype.getAbsoluteOpacity = function () {\n return this._getCache(ABSOLUTE_OPACITY, this._getAbsoluteOpacity);\n };\n Node.prototype._getAbsoluteOpacity = function () {\n var absOpacity = this.opacity();\n var parent = this.getParent();\n if (parent && !parent._isUnderCache) {\n absOpacity *= parent.getAbsoluteOpacity();\n }\n return absOpacity;\n };\n Node.prototype.moveTo = function (newContainer) {\n if (this.getParent() !== newContainer) {\n this._remove();\n newContainer.add(this);\n }\n return this;\n };\n Node.prototype.toObject = function () {\n var obj = {},\n attrs = this.getAttrs(),\n key,\n val,\n getter,\n defaultValue,\n nonPlainObject;\n obj.attrs = {};\n for (key in attrs) {\n val = attrs[key];\n nonPlainObject = Util_1.Util.isObject(val) && !Util_1.Util._isPlainObject(val) && !Util_1.Util._isArray(val);\n if (nonPlainObject) {\n continue;\n }\n getter = typeof this[key] === 'function' && this[key];\n delete attrs[key];\n defaultValue = getter ? getter.call(this) : null;\n attrs[key] = val;\n if (defaultValue !== val) {\n obj.attrs[key] = val;\n }\n }\n obj.className = this.getClassName();\n return Util_1.Util._prepareToStringify(obj);\n };\n Node.prototype.toJSON = function () {\n return JSON.stringify(this.toObject());\n };\n Node.prototype.getParent = function () {\n return this.parent;\n };\n Node.prototype.findAncestors = function (selector, includeSelf, stopNode) {\n var res = [];\n if (includeSelf && this._isMatch(selector)) {\n res.push(this);\n }\n var ancestor = this.parent;\n while (ancestor) {\n if (ancestor === stopNode) {\n return res;\n }\n if (ancestor._isMatch(selector)) {\n res.push(ancestor);\n }\n ancestor = ancestor.parent;\n }\n return res;\n };\n Node.prototype.isAncestorOf = function (node) {\n return false;\n };\n Node.prototype.findAncestor = function (selector, includeSelf, stopNode) {\n return this.findAncestors(selector, includeSelf, stopNode)[0];\n };\n Node.prototype._isMatch = function (selector) {\n if (!selector) {\n return false;\n }\n if (typeof selector === 'function') {\n return selector(this);\n }\n var selectorArr = selector.replace(/ /g, '').split(','),\n len = selectorArr.length,\n n,\n sel;\n for (n = 0; n < len; n++) {\n sel = selectorArr[n];\n if (!Util_1.Util.isValidSelector(sel)) {\n Util_1.Util.warn('Selector \"' + sel + '\" is invalid. Allowed selectors examples are \"#foo\", \".bar\" or \"Group\".');\n Util_1.Util.warn('If you have a custom shape with such className, please change it to start with upper letter like \"Triangle\".');\n Util_1.Util.warn('Konva is awesome, right?');\n }\n if (sel.charAt(0) === '#') {\n if (this.id() === sel.slice(1)) {\n return true;\n }\n } else if (sel.charAt(0) === '.') {\n if (this.hasName(sel.slice(1))) {\n return true;\n }\n } else if (this.className === sel || this.nodeType === sel) {\n return true;\n }\n }\n return false;\n };\n Node.prototype.getLayer = function () {\n var parent = this.getParent();\n return parent ? parent.getLayer() : null;\n };\n Node.prototype.getStage = function () {\n return this._getCache(STAGE, this._getStage);\n };\n Node.prototype._getStage = function () {\n var parent = this.getParent();\n if (parent) {\n return parent.getStage();\n } else {\n return undefined;\n }\n };\n Node.prototype.fire = function (eventType, evt, bubble) {\n evt = evt || {};\n evt.target = evt.target || this;\n if (bubble) {\n this._fireAndBubble(eventType, evt);\n } else {\n this._fire(eventType, evt);\n }\n return this;\n };\n Node.prototype.getAbsoluteTransform = function (top) {\n if (top) {\n return this._getAbsoluteTransform(top);\n } else {\n return this._getCache(ABSOLUTE_TRANSFORM, this._getAbsoluteTransform);\n }\n };\n Node.prototype._getAbsoluteTransform = function (top) {\n var at;\n if (top) {\n at = new Util_1.Transform();\n this._eachAncestorReverse(function (node) {\n var transformsEnabled = node.transformsEnabled();\n if (transformsEnabled === 'all') {\n at.multiply(node.getTransform());\n } else if (transformsEnabled === 'position') {\n at.translate(node.x() - node.offsetX(), node.y() - node.offsetY());\n }\n }, top);\n return at;\n } else {\n if (this.parent) {\n at = this.parent.getAbsoluteTransform().copy();\n } else {\n at = new Util_1.Transform();\n }\n var transformsEnabled = this.transformsEnabled();\n if (transformsEnabled === 'all') {\n at.multiply(this.getTransform());\n } else if (transformsEnabled === 'position') {\n at.translate(this.x() - this.offsetX(), this.y() - this.offsetY());\n }\n return at;\n }\n };\n Node.prototype.getAbsoluteScale = function (top) {\n if (top) {\n return this._getAbsoluteScale(top);\n } else {\n return this._getCache(ABSOLUTE_SCALE, this._getAbsoluteScale);\n }\n };\n Node.prototype._getAbsoluteScale = function (top) {\n var parent = this;\n while (parent) {\n if (parent._isUnderCache) {\n top = parent;\n }\n parent = parent.getParent();\n }\n var scaleX = 1,\n scaleY = 1;\n this._eachAncestorReverse(function (node) {\n scaleX *= node.scaleX();\n scaleY *= node.scaleY();\n }, top);\n return {\n x: scaleX,\n y: scaleY\n };\n };\n Node.prototype.getAbsoluteRotation = function () {\n var parent = this;\n var rotation = 0;\n while (parent) {\n rotation += parent.rotation();\n parent = parent.getParent();\n }\n return rotation;\n };\n Node.prototype.getTransform = function () {\n return this._getCache(TRANSFORM, this._getTransform);\n };\n Node.prototype._getTransform = function () {\n var m = new Util_1.Transform(),\n x = this.x(),\n y = this.y(),\n rotation = Global_1.Konva.getAngle(this.rotation()),\n scaleX = this.scaleX(),\n scaleY = this.scaleY(),\n skewX = this.skewX(),\n skewY = this.skewY(),\n offsetX = this.offsetX(),\n offsetY = this.offsetY();\n if (x !== 0 || y !== 0) {\n m.translate(x, y);\n }\n if (rotation !== 0) {\n m.rotate(rotation);\n }\n if (skewX !== 0 || skewY !== 0) {\n m.skew(skewX, skewY);\n }\n if (scaleX !== 1 || scaleY !== 1) {\n m.scale(scaleX, scaleY);\n }\n if (offsetX !== 0 || offsetY !== 0) {\n m.translate(-1 * offsetX, -1 * offsetY);\n }\n return m;\n };\n Node.prototype.clone = function (obj) {\n var attrs = Util_1.Util.cloneObject(this.attrs),\n key,\n allListeners,\n len,\n n,\n listener;\n for (key in obj) {\n attrs[key] = obj[key];\n }\n var node = new this.constructor(attrs);\n for (key in this.eventListeners) {\n allListeners = this.eventListeners[key];\n len = allListeners.length;\n for (n = 0; n < len; n++) {\n listener = allListeners[n];\n if (listener.name.indexOf(KONVA) < 0) {\n if (!node.eventListeners[key]) {\n node.eventListeners[key] = [];\n }\n node.eventListeners[key].push(listener);\n }\n }\n }\n return node;\n };\n Node.prototype._toKonvaCanvas = function (config) {\n config = config || {};\n var box = this.getClientRect();\n var stage = this.getStage(),\n x = config.x !== undefined ? config.x : box.x,\n y = config.y !== undefined ? config.y : box.y,\n pixelRatio = config.pixelRatio || 1,\n canvas = new Canvas_1.SceneCanvas({\n width: config.width || box.width || (stage ? stage.width() : 0),\n height: config.height || box.height || (stage ? stage.height() : 0),\n pixelRatio: pixelRatio\n }),\n context = canvas.getContext();\n context.save();\n if (x || y) {\n context.translate(-1 * x, -1 * y);\n }\n this.drawScene(canvas);\n context.restore();\n return canvas;\n };\n Node.prototype.toCanvas = function (config) {\n return this._toKonvaCanvas(config)._canvas;\n };\n Node.prototype.toDataURL = function (config) {\n config = config || {};\n var mimeType = config.mimeType || null,\n quality = config.quality || null;\n var url = this._toKonvaCanvas(config).toDataURL(mimeType, quality);\n if (config.callback) {\n config.callback(url);\n }\n return url;\n };\n Node.prototype.toImage = function (config) {\n if (!config || !config.callback) {\n throw 'callback required for toImage method config argument';\n }\n var callback = config.callback;\n delete config.callback;\n Util_1.Util._urlToImage(this.toDataURL(config), function (img) {\n callback(img);\n });\n };\n Node.prototype.setSize = function (size) {\n this.width(size.width);\n this.height(size.height);\n return this;\n };\n Node.prototype.getSize = function () {\n return {\n width: this.width(),\n height: this.height()\n };\n };\n Node.prototype.getClassName = function () {\n return this.className || this.nodeType;\n };\n Node.prototype.getType = function () {\n return this.nodeType;\n };\n Node.prototype.getDragDistance = function () {\n if (this.attrs.dragDistance !== undefined) {\n return this.attrs.dragDistance;\n } else if (this.parent) {\n return this.parent.getDragDistance();\n } else {\n return Global_1.Konva.dragDistance;\n }\n };\n Node.prototype._off = function (type, name, callback) {\n var evtListeners = this.eventListeners[type],\n i,\n evtName,\n handler;\n for (i = 0; i < evtListeners.length; i++) {\n evtName = evtListeners[i].name;\n handler = evtListeners[i].handler;\n if ((evtName !== 'konva' || name === 'konva') && (!name || evtName === name) && (!callback || callback === handler)) {\n evtListeners.splice(i, 1);\n if (evtListeners.length === 0) {\n delete this.eventListeners[type];\n break;\n }\n i--;\n }\n }\n };\n Node.prototype._fireChangeEvent = function (attr, oldVal, newVal) {\n this._fire(attr + CHANGE, {\n oldVal: oldVal,\n newVal: newVal\n });\n };\n Node.prototype.setId = function (id) {\n var oldId = this.id();\n exports._removeId(oldId, this);\n _addId(this, id);\n this._setAttr('id', id);\n return this;\n };\n Node.prototype.setName = function (name) {\n var oldNames = (this.name() || '').split(/\\s/g);\n var newNames = (name || '').split(/\\s/g);\n var subname, i;\n for (i = 0; i < oldNames.length; i++) {\n subname = oldNames[i];\n if (newNames.indexOf(subname) === -1 && subname) {\n exports._removeName(subname, this._id);\n }\n }\n for (i = 0; i < newNames.length; i++) {\n subname = newNames[i];\n if (oldNames.indexOf(subname) === -1 && subname) {\n exports._addName(this, subname);\n }\n }\n this._setAttr(NAME, name);\n return this;\n };\n Node.prototype.addName = function (name) {\n if (!this.hasName(name)) {\n var oldName = this.name();\n var newName = oldName ? oldName + ' ' + name : name;\n this.setName(newName);\n }\n return this;\n };\n Node.prototype.hasName = function (name) {\n if (!name) {\n return false;\n }\n var fullName = this.name();\n if (!fullName) {\n return false;\n }\n var names = (fullName || '').split(/\\s/g);\n return names.indexOf(name) !== -1;\n };\n Node.prototype.removeName = function (name) {\n var names = (this.name() || '').split(/\\s/g);\n var index = names.indexOf(name);\n if (index !== -1) {\n names.splice(index, 1);\n this.setName(names.join(' '));\n }\n return this;\n };\n Node.prototype.setAttr = function (attr, val) {\n var func = this[SET + Util_1.Util._capitalize(attr)];\n if (Util_1.Util._isFunction(func)) {\n func.call(this, val);\n } else {\n this._setAttr(attr, val);\n }\n return this;\n };\n Node.prototype._setAttr = function (key, val) {\n var oldVal = this.attrs[key];\n if (oldVal === val && !Util_1.Util.isObject(val)) {\n return;\n }\n if (val === undefined || val === null) {\n delete this.attrs[key];\n } else {\n this.attrs[key] = val;\n }\n this._fireChangeEvent(key, oldVal, val);\n };\n Node.prototype._setComponentAttr = function (key, component, val) {\n var oldVal;\n if (val !== undefined) {\n oldVal = this.attrs[key];\n if (!oldVal) {\n this.attrs[key] = this.getAttr(key);\n }\n this.attrs[key][component] = val;\n this._fireChangeEvent(key, oldVal, val);\n }\n };\n Node.prototype._fireAndBubble = function (eventType, evt, compareShape) {\n if (evt && this.nodeType === SHAPE) {\n evt.target = this;\n }\n var shouldStop = (eventType === MOUSEENTER || eventType === MOUSELEAVE) && (compareShape && (this === compareShape || this.isAncestorOf && this.isAncestorOf(compareShape)) || this.nodeType === 'Stage' && !compareShape);\n if (!shouldStop) {\n this._fire(eventType, evt);\n var stopBubble = (eventType === MOUSEENTER || eventType === MOUSELEAVE) && compareShape && compareShape.isAncestorOf && compareShape.isAncestorOf(this) && !compareShape.isAncestorOf(this.parent);\n if ((evt && !evt.cancelBubble || !evt) && this.parent && this.parent.isListening() && !stopBubble) {\n if (compareShape && compareShape.parent) {\n this._fireAndBubble.call(this.parent, eventType, evt, compareShape);\n } else {\n this._fireAndBubble.call(this.parent, eventType, evt);\n }\n }\n }\n };\n Node.prototype._fire = function (eventType, evt) {\n var events = this.eventListeners[eventType],\n i;\n if (events) {\n evt = evt || {};\n evt.currentTarget = this;\n evt.type = eventType;\n for (i = 0; i < events.length; i++) {\n events[i].handler.call(this, evt);\n }\n }\n };\n Node.prototype.draw = function () {\n this.drawScene();\n this.drawHit();\n return this;\n };\n Node.prototype._createDragElement = function (evt) {\n var pointerId = evt ? evt.pointerId : undefined;\n var stage = this.getStage();\n var ap = this.getAbsolutePosition();\n var pos = stage._getPointerById(pointerId) || stage._changedPointerPositions[0] || ap;\n DragAndDrop_1.DD._dragElements.set(this._id, {\n node: this,\n startPointerPos: pos,\n offset: {\n x: pos.x - ap.x,\n y: pos.y - ap.y\n },\n dragStatus: 'ready',\n pointerId: pointerId\n });\n };\n Node.prototype.startDrag = function (evt) {\n if (!DragAndDrop_1.DD._dragElements.has(this._id)) {\n this._createDragElement(evt);\n }\n var elem = DragAndDrop_1.DD._dragElements.get(this._id);\n elem.dragStatus = 'dragging';\n this.fire('dragstart', {\n type: 'dragstart',\n target: this,\n evt: evt && evt.evt\n }, true);\n };\n Node.prototype._setDragPosition = function (evt, elem) {\n var pos = this.getStage()._getPointerById(elem.pointerId);\n if (!pos) {\n return;\n }\n var newNodePos = {\n x: pos.x - elem.offset.x,\n y: pos.y - elem.offset.y\n };\n var dbf = this.dragBoundFunc();\n if (dbf !== undefined) {\n var bounded = dbf.call(this, newNodePos, evt);\n if (!bounded) {\n Util_1.Util.warn('dragBoundFunc did not return any value. That is unexpected behavior. You must return new absolute position from dragBoundFunc.');\n } else {\n newNodePos = bounded;\n }\n }\n if (!this._lastPos || this._lastPos.x !== newNodePos.x || this._lastPos.y !== newNodePos.y) {\n this.setAbsolutePosition(newNodePos);\n if (this.getLayer()) {\n this.getLayer().batchDraw();\n } else if (this.getStage()) {\n this.getStage().batchDraw();\n }\n }\n this._lastPos = newNodePos;\n };\n Node.prototype.stopDrag = function (evt) {\n var elem = DragAndDrop_1.DD._dragElements.get(this._id);\n if (elem) {\n elem.dragStatus = 'stopped';\n }\n DragAndDrop_1.DD._endDragBefore(evt);\n DragAndDrop_1.DD._endDragAfter(evt);\n };\n Node.prototype.setDraggable = function (draggable) {\n this._setAttr('draggable', draggable);\n this._dragChange();\n };\n Node.prototype.isDragging = function () {\n var elem = DragAndDrop_1.DD._dragElements.get(this._id);\n return elem ? elem.dragStatus === 'dragging' : false;\n };\n Node.prototype._listenDrag = function () {\n this._dragCleanup();\n this.on('mousedown.konva touchstart.konva', function (evt) {\n var _this = this;\n var shouldCheckButton = evt.evt['button'] !== undefined;\n var canDrag = !shouldCheckButton || Global_1.Konva.dragButtons.indexOf(evt.evt['button']) >= 0;\n if (!canDrag) {\n return;\n }\n if (this.isDragging()) {\n return;\n }\n var hasDraggingChild = false;\n DragAndDrop_1.DD._dragElements.forEach(function (elem) {\n if (_this.isAncestorOf(elem.node)) {\n hasDraggingChild = true;\n }\n });\n if (!hasDraggingChild) {\n this._createDragElement(evt);\n }\n });\n };\n Node.prototype._dragChange = function () {\n if (this.attrs.draggable) {\n this._listenDrag();\n } else {\n this._dragCleanup();\n var stage = this.getStage();\n if (stage && DragAndDrop_1.DD._dragElements.has(this._id)) {\n this.stopDrag();\n }\n }\n };\n Node.prototype._dragCleanup = function () {\n this.off('mousedown.konva');\n this.off('touchstart.konva');\n };\n Node.create = function (data, container) {\n if (Util_1.Util._isString(data)) {\n data = JSON.parse(data);\n }\n return this._createNode(data, container);\n };\n Node._createNode = function (obj, container) {\n var className = Node.prototype.getClassName.call(obj),\n children = obj.children,\n no,\n len,\n n;\n if (container) {\n obj.attrs.container = container;\n }\n if (!Global_1._NODES_REGISTRY[className]) {\n Util_1.Util.warn('Can not find a node with class name \"' + className + '\". Fallback to \"Shape\".');\n className = 'Shape';\n }\n var Class = Global_1._NODES_REGISTRY[className];\n no = new Class(obj.attrs);\n if (children) {\n len = children.length;\n for (n = 0; n < len; n++) {\n no.add(Node._createNode(children[n]));\n }\n }\n return no;\n };\n return Node;\n}();\nexports.Node = Node;\nNode.prototype.nodeType = 'Node';\nNode.prototype._attrsAffectingSize = [];\nFactory_1.Factory.addGetterSetter(Node, 'zIndex');\nFactory_1.Factory.addGetterSetter(Node, 'absolutePosition');\nFactory_1.Factory.addGetterSetter(Node, 'position');\nFactory_1.Factory.addGetterSetter(Node, 'x', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'y', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'globalCompositeOperation', 'source-over', Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Node, 'opacity', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'name', '', Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Node, 'id', '', Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Node, 'rotation', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addComponentsGetterSetter(Node, 'scale', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Node, 'scaleX', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'scaleY', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addComponentsGetterSetter(Node, 'skew', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Node, 'skewX', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'skewY', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addComponentsGetterSetter(Node, 'offset', ['x', 'y']);\nFactory_1.Factory.addGetterSetter(Node, 'offsetX', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'offsetY', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'dragDistance', null, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'width', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'height', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Node, 'listening', 'inherit', function (val) {\n var isValid = val === true || val === false || val === 'inherit';\n if (!isValid) {\n Util_1.Util.warn(val + ' is a not valid value for \"listening\" attribute. The value may be true, false or \"inherit\".');\n }\n return val;\n});\nFactory_1.Factory.addGetterSetter(Node, 'preventDefault', true, Validators_1.getBooleanValidator());\nFactory_1.Factory.addGetterSetter(Node, 'filters', null, function (val) {\n this._filterUpToDate = false;\n return val;\n});\nFactory_1.Factory.addGetterSetter(Node, 'visible', 'inherit', function (val) {\n var isValid = val === true || val === false || val === 'inherit';\n if (!isValid) {\n Util_1.Util.warn(val + ' is a not valid value for \"visible\" attribute. The value may be true, false or \"inherit\".');\n }\n return val;\n});\nFactory_1.Factory.addGetterSetter(Node, 'transformsEnabled', 'all', Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Node, 'size');\nFactory_1.Factory.addGetterSetter(Node, 'dragBoundFunc');\nFactory_1.Factory.addGetterSetter(Node, 'draggable', false, Validators_1.getBooleanValidator());\nFactory_1.Factory.backCompat(Node, {\n rotateDeg: 'rotate',\n setRotationDeg: 'setRotation',\n getRotationDeg: 'getRotation'\n});\nUtil_1.Collection.mapMethods(Node);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Global_1 = require(\"../Global\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_2 = require(\"../Global\");\nvar AUTO = 'auto',\n CENTER = 'center',\n JUSTIFY = 'justify',\n CHANGE_KONVA = 'Change.konva',\n CONTEXT_2D = '2d',\n DASH = '-',\n LEFT = 'left',\n TEXT = 'text',\n TEXT_UPPER = 'Text',\n TOP = 'top',\n BOTTOM = 'bottom',\n MIDDLE = 'middle',\n NORMAL = 'normal',\n PX_SPACE = 'px ',\n SPACE = ' ',\n RIGHT = 'right',\n WORD = 'word',\n CHAR = 'char',\n NONE = 'none',\n ELLIPSIS = '…',\n ATTR_CHANGE_LIST = ['fontFamily', 'fontSize', 'fontStyle', 'fontVariant', 'padding', 'align', 'verticalAlign', 'lineHeight', 'text', 'width', 'height', 'wrap', 'ellipsis', 'letterSpacing'],\n attrChangeListLen = ATTR_CHANGE_LIST.length;\nvar dummyContext;\nfunction getDummyContext() {\n if (dummyContext) {\n return dummyContext;\n }\n dummyContext = Util_1.Util.createCanvasElement().getContext(CONTEXT_2D);\n return dummyContext;\n}\nfunction _fillFunc(context) {\n context.fillText(this._partialText, this._partialTextX, this._partialTextY);\n}\nfunction _strokeFunc(context) {\n context.strokeText(this._partialText, this._partialTextX, this._partialTextY);\n}\nfunction checkDefaultFill(config) {\n config = config || {};\n if (!config.fillLinearGradientColorStops && !config.fillRadialGradientColorStops && !config.fillPatternImage) {\n config.fill = config.fill || 'black';\n }\n return config;\n}\nvar trimRight = String.prototype.trimRight || function polyfill() {\n return this.replace(/[\\s\\xa0]+$/, '');\n};\nvar Text = function (_super) {\n __extends(Text, _super);\n function Text(config) {\n var _this = _super.call(this, checkDefaultFill(config)) || this;\n _this._partialTextX = 0;\n _this._partialTextY = 0;\n for (var n = 0; n < attrChangeListLen; n++) {\n _this.on(ATTR_CHANGE_LIST[n] + CHANGE_KONVA, _this._setTextData);\n }\n _this._setTextData();\n return _this;\n }\n Text.prototype._sceneFunc = function (context) {\n var padding = this.padding(),\n fontSize = this.fontSize(),\n lineHeightPx = this.lineHeight() * fontSize,\n textArr = this.textArr,\n textArrLen = textArr.length,\n verticalAlign = this.verticalAlign(),\n alignY = 0,\n align = this.align(),\n totalWidth = this.getWidth(),\n letterSpacing = this.letterSpacing(),\n fill = this.fill(),\n textDecoration = this.textDecoration(),\n shouldUnderline = textDecoration.indexOf('underline') !== -1,\n shouldLineThrough = textDecoration.indexOf('line-through') !== -1,\n n;\n var translateY = 0;\n var translateY = lineHeightPx / 2;\n var lineTranslateX = 0;\n var lineTranslateY = 0;\n context.setAttr('font', this._getContextFont());\n context.setAttr('textBaseline', MIDDLE);\n context.setAttr('textAlign', LEFT);\n if (verticalAlign === MIDDLE) {\n alignY = (this.getHeight() - textArrLen * lineHeightPx - padding * 2) / 2;\n } else if (verticalAlign === BOTTOM) {\n alignY = this.getHeight() - textArrLen * lineHeightPx - padding * 2;\n }\n context.translate(padding, alignY + padding);\n for (n = 0; n < textArrLen; n++) {\n var lineTranslateX = 0;\n var lineTranslateY = 0;\n var obj = textArr[n],\n text = obj.text,\n width = obj.width,\n lastLine = n !== textArrLen - 1,\n spacesNumber,\n oneWord,\n lineWidth;\n context.save();\n if (align === RIGHT) {\n lineTranslateX += totalWidth - width - padding * 2;\n } else if (align === CENTER) {\n lineTranslateX += (totalWidth - width - padding * 2) / 2;\n }\n if (shouldUnderline) {\n context.save();\n context.beginPath();\n context.moveTo(lineTranslateX, translateY + lineTranslateY + Math.round(fontSize / 2));\n spacesNumber = text.split(' ').length - 1;\n oneWord = spacesNumber === 0;\n lineWidth = align === JUSTIFY && lastLine && !oneWord ? totalWidth - padding * 2 : width;\n context.lineTo(lineTranslateX + Math.round(lineWidth), translateY + lineTranslateY + Math.round(fontSize / 2));\n context.lineWidth = fontSize / 15;\n context.strokeStyle = fill;\n context.stroke();\n context.restore();\n }\n if (shouldLineThrough) {\n context.save();\n context.beginPath();\n context.moveTo(lineTranslateX, translateY + lineTranslateY);\n spacesNumber = text.split(' ').length - 1;\n oneWord = spacesNumber === 0;\n lineWidth = align === JUSTIFY && lastLine && !oneWord ? totalWidth - padding * 2 : width;\n context.lineTo(lineTranslateX + Math.round(lineWidth), translateY + lineTranslateY);\n context.lineWidth = fontSize / 15;\n context.strokeStyle = fill;\n context.stroke();\n context.restore();\n }\n if (letterSpacing !== 0 || align === JUSTIFY) {\n spacesNumber = text.split(' ').length - 1;\n for (var li = 0; li < text.length; li++) {\n var letter = text[li];\n if (letter === ' ' && n !== textArrLen - 1 && align === JUSTIFY) {\n lineTranslateX += Math.floor((totalWidth - padding * 2 - width) / spacesNumber);\n }\n this._partialTextX = lineTranslateX;\n this._partialTextY = translateY + lineTranslateY;\n this._partialText = letter;\n context.fillStrokeShape(this);\n lineTranslateX += Math.round(this.measureSize(letter).width) + letterSpacing;\n }\n } else {\n this._partialTextX = lineTranslateX;\n this._partialTextY = translateY + lineTranslateY;\n this._partialText = text;\n context.fillStrokeShape(this);\n }\n context.restore();\n if (textArrLen > 1) {\n translateY += lineHeightPx;\n }\n }\n };\n Text.prototype._hitFunc = function (context) {\n var width = this.getWidth(),\n height = this.getHeight();\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n };\n Text.prototype.setText = function (text) {\n var str = Util_1.Util._isString(text) ? text : text === null || text === undefined ? '' : text + '';\n this._setAttr(TEXT, str);\n return this;\n };\n Text.prototype.getWidth = function () {\n var isAuto = this.attrs.width === AUTO || this.attrs.width === undefined;\n return isAuto ? this.getTextWidth() + this.padding() * 2 : this.attrs.width;\n };\n Text.prototype.getHeight = function () {\n var isAuto = this.attrs.height === AUTO || this.attrs.height === undefined;\n return isAuto ? this.fontSize() * this.textArr.length * this.lineHeight() + this.padding() * 2 : this.attrs.height;\n };\n Text.prototype.getTextWidth = function () {\n return this.textWidth;\n };\n Text.prototype.getTextHeight = function () {\n Util_1.Util.warn('text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.');\n return this.textHeight;\n };\n Text.prototype.measureSize = function (text) {\n var _context = getDummyContext(),\n fontSize = this.fontSize(),\n metrics;\n _context.save();\n _context.font = this._getContextFont();\n metrics = _context.measureText(text);\n _context.restore();\n return {\n width: metrics.width,\n height: fontSize\n };\n };\n Text.prototype._getContextFont = function () {\n if (Global_1.Konva.UA.isIE) {\n return this.fontStyle() + SPACE + this.fontSize() + PX_SPACE + this.fontFamily();\n }\n return this.fontStyle() + SPACE + this.fontVariant() + SPACE + this.fontSize() + PX_SPACE + this.fontFamily();\n };\n Text.prototype._addTextLine = function (line) {\n if (this.align() === JUSTIFY) {\n line = line.trim();\n }\n var width = this._getTextWidth(line);\n return this.textArr.push({\n text: line,\n width: width\n });\n };\n Text.prototype._getTextWidth = function (text) {\n var letterSpacing = this.letterSpacing();\n var length = text.length;\n return getDummyContext().measureText(text).width + (length ? letterSpacing * (length - 1) : 0);\n };\n Text.prototype._setTextData = function () {\n var lines = this.text().split('\\n'),\n fontSize = +this.fontSize(),\n textWidth = 0,\n lineHeightPx = this.lineHeight() * fontSize,\n width = this.attrs.width,\n height = this.attrs.height,\n fixedWidth = width !== AUTO && width !== undefined,\n fixedHeight = height !== AUTO && height !== undefined,\n padding = this.padding(),\n maxWidth = width - padding * 2,\n maxHeightPx = height - padding * 2,\n currentHeightPx = 0,\n wrap = this.wrap(),\n shouldWrap = wrap !== NONE,\n wrapAtWord = wrap !== CHAR && shouldWrap,\n shouldAddEllipsis = this.ellipsis() && !shouldWrap;\n this.textArr = [];\n getDummyContext().font = this._getContextFont();\n var additionalWidth = shouldAddEllipsis ? this._getTextWidth(ELLIPSIS) : 0;\n for (var i = 0, max = lines.length; i < max; ++i) {\n var line = lines[i];\n var lineWidth = this._getTextWidth(line);\n if (fixedWidth && lineWidth > maxWidth) {\n while (line.length > 0) {\n var low = 0,\n high = line.length,\n match = '',\n matchWidth = 0;\n while (low < high) {\n var mid = low + high >>> 1,\n substr = line.slice(0, mid + 1),\n substrWidth = this._getTextWidth(substr) + additionalWidth;\n if (substrWidth <= maxWidth) {\n low = mid + 1;\n match = substr + (shouldAddEllipsis ? ELLIPSIS : '');\n matchWidth = substrWidth;\n } else {\n high = mid;\n }\n }\n if (match) {\n if (wrapAtWord) {\n var wrapIndex;\n var nextChar = line[match.length];\n var nextIsSpaceOrDash = nextChar === SPACE || nextChar === DASH;\n if (nextIsSpaceOrDash && matchWidth <= maxWidth) {\n wrapIndex = match.length;\n } else {\n wrapIndex = Math.max(match.lastIndexOf(SPACE), match.lastIndexOf(DASH)) + 1;\n }\n if (wrapIndex > 0) {\n low = wrapIndex;\n match = match.slice(0, low);\n matchWidth = this._getTextWidth(match);\n }\n }\n match = match.trimRight();\n this._addTextLine(match);\n textWidth = Math.max(textWidth, matchWidth);\n currentHeightPx += lineHeightPx;\n if (!shouldWrap || fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx) {\n break;\n }\n line = line.slice(low);\n line = line.trimLeft();\n if (line.length > 0) {\n lineWidth = this._getTextWidth(line);\n if (lineWidth <= maxWidth) {\n this._addTextLine(line);\n currentHeightPx += lineHeightPx;\n textWidth = Math.max(textWidth, lineWidth);\n break;\n }\n }\n } else {\n break;\n }\n }\n } else {\n this._addTextLine(line);\n currentHeightPx += lineHeightPx;\n textWidth = Math.max(textWidth, lineWidth);\n }\n if (fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx) {\n break;\n }\n }\n this.textHeight = fontSize;\n this.textWidth = textWidth;\n };\n Text.prototype.getStrokeScaleEnabled = function () {\n return true;\n };\n return Text;\n}(Shape_1.Shape);\nexports.Text = Text;\nText.prototype._fillFunc = _fillFunc;\nText.prototype._strokeFunc = _strokeFunc;\nText.prototype.className = TEXT_UPPER;\nText.prototype._attrsAffectingSize = ['text', 'fontSize', 'padding', 'wrap', 'lineHeight'];\nGlobal_2._registerNode(Text);\nFactory_1.Factory.overWriteSetter(Text, 'width', Validators_1.getNumberOrAutoValidator());\nFactory_1.Factory.overWriteSetter(Text, 'height', Validators_1.getNumberOrAutoValidator());\nFactory_1.Factory.addGetterSetter(Text, 'fontFamily', 'Arial');\nFactory_1.Factory.addGetterSetter(Text, 'fontSize', 12, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Text, 'fontStyle', NORMAL);\nFactory_1.Factory.addGetterSetter(Text, 'fontVariant', NORMAL);\nFactory_1.Factory.addGetterSetter(Text, 'padding', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Text, 'align', LEFT);\nFactory_1.Factory.addGetterSetter(Text, 'verticalAlign', TOP);\nFactory_1.Factory.addGetterSetter(Text, 'lineHeight', 1, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Text, 'wrap', WORD);\nFactory_1.Factory.addGetterSetter(Text, 'ellipsis', false);\nFactory_1.Factory.addGetterSetter(Text, 'letterSpacing', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Text, 'text', '', Validators_1.getStringValidator());\nFactory_1.Factory.addGetterSetter(Text, 'textDecoration', '');\nUtil_1.Collection.mapMethods(Text);","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * Based on ReactArt.js\n * Copyright (c) 2017-present Lavrenov Anton.\n * All rights reserved.\n *\n * MIT\n */\n'use strict';\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar ReactKonvaCore = require('./ReactKonvaCore');\n// import full konva to enable all nodes\nvar Konva = require('konva');\nmodule.exports = _extends({}, ReactKonvaCore);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Global_1 = require(\"../Global\");\nvar Rect = function (_super) {\n __extends(Rect, _super);\n function Rect() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Rect.prototype._sceneFunc = function (context) {\n var cornerRadius = this.cornerRadius(),\n width = this.width(),\n height = this.height();\n context.beginPath();\n if (!cornerRadius) {\n context.rect(0, 0, width, height);\n } else {\n var topLeft = 0;\n var topRight = 0;\n var bottomLeft = 0;\n var bottomRight = 0;\n if (typeof cornerRadius === 'number') {\n topLeft = topRight = bottomLeft = bottomRight = Math.min(cornerRadius, width / 2, height / 2);\n } else {\n topLeft = Math.min(cornerRadius[0], width / 2, height / 2);\n topRight = Math.min(cornerRadius[1], width / 2, height / 2);\n bottomRight = Math.min(cornerRadius[2], width / 2, height / 2);\n bottomLeft = Math.min(cornerRadius[3], width / 2, height / 2);\n }\n context.moveTo(topLeft, 0);\n context.lineTo(width - topRight, 0);\n context.arc(width - topRight, topRight, topRight, Math.PI * 3 / 2, 0, false);\n context.lineTo(width, height - bottomRight);\n context.arc(width - bottomRight, height - bottomRight, bottomRight, 0, Math.PI / 2, false);\n context.lineTo(bottomLeft, height);\n context.arc(bottomLeft, height - bottomLeft, bottomLeft, Math.PI / 2, Math.PI, false);\n context.lineTo(0, topLeft);\n context.arc(topLeft, topLeft, topLeft, Math.PI, Math.PI * 3 / 2, false);\n }\n context.closePath();\n context.fillStrokeShape(this);\n };\n return Rect;\n}(Shape_1.Shape);\nexports.Rect = Rect;\nRect.prototype.className = 'Rect';\nGlobal_1._registerNode(Rect);\nFactory_1.Factory.addGetterSetter(Rect, 'cornerRadius', 0);\nUtil_1.Collection.mapMethods(Rect);","'use strict';\n\nexports.__esModule = true;\nexports.toggleStrictMode = toggleStrictMode;\nexports.applyNodeProps = applyNodeProps;\nexports.updatePicture = updatePicture;\nvar propsToSkip = {\n children: true,\n ref: true,\n key: true,\n style: true,\n forwardedRef: true,\n unstable_applyCache: true,\n unstable_applyDrawHitFromCache: true\n};\nvar zIndexWarningShowed = false;\nvar dragWarningShowed = false;\nvar EVENTS_NAMESPACE = exports.EVENTS_NAMESPACE = '.react-konva-event';\nvar useStrictMode = false;\nfunction toggleStrictMode(value) {\n useStrictMode = value;\n}\nvar DRAGGABLE_WARNING = 'ReactKonva: You have a Konva node with draggable = true and position defined but no onDragMove or onDragEnd events are handled.\\nPosition of a node will be changed during drag&drop, so you should update state of the react app as well.\\nConsider to add onDragMove or onDragEnd events.\\nFor more info see: https://github.com/konvajs/react-konva/issues/256\\n';\nvar Z_INDEX_WARNING = 'ReactKonva: You are using \"zIndex\" attribute for a Konva node.\\nreact-konva may get confused with ordering. Just define correct order of elements in your render function of a component.\\nFor more info see: https://github.com/konvajs/react-konva/issues/194\\n';\nfunction applyNodeProps(instance, props) {\n var oldProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!zIndexWarningShowed && 'zIndex' in props) {\n console.warn(Z_INDEX_WARNING);\n zIndexWarningShowed = true;\n }\n if (!dragWarningShowed && props.draggable) {\n var hasPosition = props.x !== undefined || props.y !== undefined;\n var hasEvents = props.onDragEnd || props.onDragMove;\n if (hasPosition && !hasEvents) {\n console.warn(DRAGGABLE_WARNING);\n dragWarningShowed = true;\n }\n }\n for (var key in oldProps) {\n if (propsToSkip[key]) {\n continue;\n }\n var isEvent = key.slice(0, 2) === 'on';\n var propChanged = oldProps[key] !== props[key];\n if (isEvent && propChanged) {\n var eventName = key.substr(2).toLowerCase();\n if (eventName.substr(0, 7) === 'content') {\n eventName = 'content' + eventName.substr(7, 1).toUpperCase() + eventName.substr(8);\n }\n instance.off(eventName, oldProps[key]);\n }\n var toRemove = !props.hasOwnProperty(key);\n if (toRemove) {\n instance.setAttr(key, undefined);\n }\n }\n var strictUpdate = useStrictMode || props._useStrictMode;\n var updatedProps = {};\n var hasUpdates = false;\n for (var key in props) {\n if (propsToSkip[key]) {\n continue;\n }\n var isEvent = key.slice(0, 2) === 'on';\n var toAdd = oldProps[key] !== props[key];\n if (isEvent && toAdd) {\n var eventName = key.substr(2).toLowerCase();\n if (eventName.substr(0, 7) === 'content') {\n eventName = 'content' + eventName.substr(7, 1).toUpperCase() + eventName.substr(8);\n }\n if (props[key]) {\n instance.on(eventName + EVENTS_NAMESPACE, props[key]);\n }\n }\n if (!isEvent && (props[key] !== oldProps[key] || strictUpdate && props[key] !== instance.getAttr(key))) {\n hasUpdates = true;\n updatedProps[key] = props[key];\n }\n }\n if (hasUpdates) {\n instance.setAttrs(updatedProps);\n updatePicture(instance);\n }\n}\nfunction updatePicture(node) {\n var drawingNode = node.getLayer() || node.getStage();\n drawingNode && drawingNode.batchDraw();\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Factory_1 = require(\"../Factory\");\nvar Node_1 = require(\"../Node\");\nvar Validators_1 = require(\"../Validators\");\nexports.Brighten = function (imageData) {\n var brightness = this.brightness() * 255,\n data = imageData.data,\n len = data.length,\n i;\n for (i = 0; i < len; i += 4) {\n data[i] += brightness;\n data[i + 1] += brightness;\n data[i + 2] += brightness;\n }\n};\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'brightness', 0, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Sepia = function (imageData) {\n var data = imageData.data,\n nPixels = data.length,\n i,\n r,\n g,\n b;\n for (i = 0; i < nPixels; i += 4) {\n r = data[i + 0];\n g = data[i + 1];\n b = data[i + 2];\n data[i + 0] = Math.min(255, r * 0.393 + g * 0.769 + b * 0.189);\n data[i + 1] = Math.min(255, r * 0.349 + g * 0.686 + b * 0.168);\n data[i + 2] = Math.min(255, r * 0.272 + g * 0.534 + b * 0.131);\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Solarize = function (imageData) {\n var data = imageData.data,\n w = imageData.width,\n h = imageData.height,\n w4 = w * 4,\n y = h;\n do {\n var offsetY = (y - 1) * w4;\n var x = w;\n do {\n var offset = offsetY + (x - 1) * 4;\n var r = data[offset];\n var g = data[offset + 1];\n var b = data[offset + 2];\n if (r > 127) {\n r = 255 - r;\n }\n if (g > 127) {\n g = 255 - g;\n }\n if (b > 127) {\n b = 255 - b;\n }\n data[offset] = r;\n data[offset + 1] = g;\n data[offset + 2] = b;\n } while (--x);\n } while (--y);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Global_1 = require(\"./Global\");\nvar Captures = new Map();\nvar SUPPORT_POINTER_EVENTS = Global_1.Konva._global['PointerEvent'] !== undefined;\nfunction getCapturedShape(pointerId) {\n return Captures.get(pointerId);\n}\nexports.getCapturedShape = getCapturedShape;\nfunction createEvent(evt) {\n return {\n evt: evt,\n pointerId: evt.pointerId\n };\n}\nexports.createEvent = createEvent;\nfunction hasPointerCapture(pointerId, shape) {\n return Captures.get(pointerId) === shape;\n}\nexports.hasPointerCapture = hasPointerCapture;\nfunction setPointerCapture(pointerId, shape) {\n releaseCapture(pointerId);\n var stage = shape.getStage();\n if (!stage) return;\n Captures.set(pointerId, shape);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('gotpointercapture', createEvent(new PointerEvent('gotpointercapture')));\n }\n}\nexports.setPointerCapture = setPointerCapture;\nfunction releaseCapture(pointerId, target) {\n var shape = Captures.get(pointerId);\n if (!shape) return;\n var stage = shape.getStage();\n if (stage && stage.content) {}\n Captures.delete(pointerId);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('lostpointercapture', createEvent(new PointerEvent('lostpointercapture')));\n }\n}\nexports.releaseCapture = releaseCapture;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Global_1 = require(\"../Global\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_2 = require(\"../Global\");\nvar Arc = function (_super) {\n __extends(Arc, _super);\n function Arc() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Arc.prototype._sceneFunc = function (context) {\n var angle = Global_1.Konva.getAngle(this.angle()),\n clockwise = this.clockwise();\n context.beginPath();\n context.arc(0, 0, this.outerRadius(), 0, angle, clockwise);\n context.arc(0, 0, this.innerRadius(), angle, 0, !clockwise);\n context.closePath();\n context.fillStrokeShape(this);\n };\n Arc.prototype.getWidth = function () {\n return this.outerRadius() * 2;\n };\n Arc.prototype.getHeight = function () {\n return this.outerRadius() * 2;\n };\n Arc.prototype.setWidth = function (width) {\n this.outerRadius(width / 2);\n };\n Arc.prototype.setHeight = function (height) {\n this.outerRadius(height / 2);\n };\n return Arc;\n}(Shape_1.Shape);\nexports.Arc = Arc;\nArc.prototype._centroid = true;\nArc.prototype.className = 'Arc';\nArc.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\nGlobal_2._registerNode(Arc);\nFactory_1.Factory.addGetterSetter(Arc, 'innerRadius', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Arc, 'outerRadius', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Arc, 'angle', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Arc, 'clockwise', false, Validators_1.getBooleanValidator());\nUtil_1.Collection.mapMethods(Arc);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Invert = function (imageData) {\n var data = imageData.data,\n len = data.length,\n i;\n for (i = 0; i < len; i += 4) {\n data[i] = 255 - data[i];\n data[i + 1] = 255 - data[i + 1];\n data[i + 2] = 255 - data[i + 2];\n }\n};","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Global_1 = require(\"../Global\");\nvar Path = function (_super) {\n __extends(Path, _super);\n function Path(config) {\n var _this = _super.call(this, config) || this;\n _this.dataArray = [];\n _this.pathLength = 0;\n _this.dataArray = Path.parsePathData(_this.data());\n _this.pathLength = 0;\n for (var i = 0; i < _this.dataArray.length; ++i) {\n _this.pathLength += _this.dataArray[i].pathLength;\n }\n _this.on('dataChange.konva', function () {\n this.dataArray = Path.parsePathData(this.data());\n this.pathLength = 0;\n for (var i = 0; i < this.dataArray.length; ++i) {\n this.pathLength += this.dataArray[i].pathLength;\n }\n });\n return _this;\n }\n Path.prototype._sceneFunc = function (context) {\n var ca = this.dataArray;\n context.beginPath();\n var isClosed = false;\n for (var n = 0; n < ca.length; n++) {\n var c = ca[n].command;\n var p = ca[n].points;\n switch (c) {\n case 'L':\n context.lineTo(p[0], p[1]);\n break;\n case 'M':\n context.moveTo(p[0], p[1]);\n break;\n case 'C':\n context.bezierCurveTo(p[0], p[1], p[2], p[3], p[4], p[5]);\n break;\n case 'Q':\n context.quadraticCurveTo(p[0], p[1], p[2], p[3]);\n break;\n case 'A':\n var cx = p[0],\n cy = p[1],\n rx = p[2],\n ry = p[3],\n theta = p[4],\n dTheta = p[5],\n psi = p[6],\n fs = p[7];\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n context.translate(cx, cy);\n context.rotate(psi);\n context.scale(scaleX, scaleY);\n context.arc(0, 0, r, theta, theta + dTheta, 1 - fs);\n context.scale(1 / scaleX, 1 / scaleY);\n context.rotate(-psi);\n context.translate(-cx, -cy);\n break;\n case 'z':\n isClosed = true;\n context.closePath();\n break;\n }\n }\n if (!isClosed && !this.hasFill()) {\n context.strokeShape(this);\n } else {\n context.fillStrokeShape(this);\n }\n };\n Path.prototype.getSelfRect = function () {\n var points = [];\n this.dataArray.forEach(function (data) {\n if (data.command === 'A') {\n var start = data.points[4];\n var dTheta = data.points[5];\n var end = data.points[4] + dTheta;\n var inc = Math.PI / 180.0;\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n }\n if (dTheta < 0) {\n for (var t = start - inc; t > end; t -= inc) {\n var point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);\n points.push(point.x, point.y);\n }\n } else {\n for (var t = start + inc; t < end; t += inc) {\n var point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);\n points.push(point.x, point.y);\n }\n }\n } else if (data.command === 'C') {\n for (var t = 0.0; t <= 1; t += 0.01) {\n var point = Path.getPointOnCubicBezier(t, data.start.x, data.start.y, data.points[0], data.points[1], data.points[2], data.points[3], data.points[4], data.points[5]);\n points.push(point.x, point.y);\n }\n } else {\n points = points.concat(data.points);\n }\n });\n var minX = points[0];\n var maxX = points[0];\n var minY = points[1];\n var maxY = points[1];\n var x, y;\n for (var i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n if (!isNaN(x)) {\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n }\n if (!isNaN(y)) {\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n }\n return {\n x: Math.round(minX),\n y: Math.round(minY),\n width: Math.round(maxX - minX),\n height: Math.round(maxY - minY)\n };\n };\n Path.prototype.getLength = function () {\n return this.pathLength;\n };\n Path.prototype.getPointAtLength = function (length) {\n var point,\n i = 0,\n ii = this.dataArray.length;\n if (!ii) {\n return null;\n }\n while (i < ii && length > this.dataArray[i].pathLength) {\n length -= this.dataArray[i].pathLength;\n ++i;\n }\n if (i === ii) {\n point = this.dataArray[i - 1].points.slice(-2);\n return {\n x: point[0],\n y: point[1]\n };\n }\n if (length < 0.01) {\n point = this.dataArray[i].points.slice(0, 2);\n return {\n x: point[0],\n y: point[1]\n };\n }\n var cp = this.dataArray[i];\n var p = cp.points;\n switch (cp.command) {\n case 'L':\n return Path.getPointOnLine(length, cp.start.x, cp.start.y, p[0], p[1]);\n case 'C':\n return Path.getPointOnCubicBezier(length / cp.pathLength, cp.start.x, cp.start.y, p[0], p[1], p[2], p[3], p[4], p[5]);\n case 'Q':\n return Path.getPointOnQuadraticBezier(length / cp.pathLength, cp.start.x, cp.start.y, p[0], p[1], p[2], p[3]);\n case 'A':\n var cx = p[0],\n cy = p[1],\n rx = p[2],\n ry = p[3],\n theta = p[4],\n dTheta = p[5],\n psi = p[6];\n theta += dTheta * length / cp.pathLength;\n return Path.getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi);\n }\n return null;\n };\n Path.getLineLength = function (x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n };\n Path.getPointOnLine = function (dist, P1x, P1y, P2x, P2y, fromX, fromY) {\n if (fromX === undefined) {\n fromX = P1x;\n }\n if (fromY === undefined) {\n fromY = P1y;\n }\n var m = (P2y - P1y) / (P2x - P1x + 0.00000001);\n var run = Math.sqrt(dist * dist / (1 + m * m));\n if (P2x < P1x) {\n run *= -1;\n }\n var rise = m * run;\n var pt;\n if (P2x === P1x) {\n pt = {\n x: fromX,\n y: fromY + rise\n };\n } else if ((fromY - P1y) / (fromX - P1x + 0.00000001) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise\n };\n } else {\n var ix, iy;\n var len = this.getLineLength(P1x, P1y, P2x, P2y);\n if (len < 0.00000001) {\n return undefined;\n }\n var u = (fromX - P1x) * (P2x - P1x) + (fromY - P1y) * (P2y - P1y);\n u = u / (len * len);\n ix = P1x + u * (P2x - P1x);\n iy = P1y + u * (P2y - P1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt(pRun * pRun / (1 + m * m));\n if (P2x < P1x) {\n run *= -1;\n }\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise\n };\n }\n return pt;\n };\n Path.getPointOnCubicBezier = function (pct, P1x, P1y, P2x, P2y, P3x, P3y, P4x, P4y) {\n function CB1(t) {\n return t * t * t;\n }\n function CB2(t) {\n return 3 * t * t * (1 - t);\n }\n function CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n }\n function CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n }\n var x = P4x * CB1(pct) + P3x * CB2(pct) + P2x * CB3(pct) + P1x * CB4(pct);\n var y = P4y * CB1(pct) + P3y * CB2(pct) + P2y * CB3(pct) + P1y * CB4(pct);\n return {\n x: x,\n y: y\n };\n };\n Path.getPointOnQuadraticBezier = function (pct, P1x, P1y, P2x, P2y, P3x, P3y) {\n function QB1(t) {\n return t * t;\n }\n function QB2(t) {\n return 2 * t * (1 - t);\n }\n function QB3(t) {\n return (1 - t) * (1 - t);\n }\n var x = P3x * QB1(pct) + P2x * QB2(pct) + P1x * QB3(pct);\n var y = P3y * QB1(pct) + P2y * QB2(pct) + P1y * QB3(pct);\n return {\n x: x,\n y: y\n };\n };\n Path.getPointOnEllipticalArc = function (cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi),\n sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta)\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\n };\n };\n Path.parsePathData = function (data) {\n if (!data) {\n return [];\n }\n var cs = data;\n var cc = ['m', 'M', 'l', 'L', 'v', 'V', 'h', 'H', 'z', 'Z', 'c', 'C', 'q', 'Q', 't', 'T', 's', 'S', 'a', 'A'];\n cs = cs.replace(new RegExp(' ', 'g'), ',');\n for (var n = 0; n < cc.length; n++) {\n cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);\n }\n var arr = cs.split('|');\n var ca = [];\n var coords = [];\n var cpx = 0;\n var cpy = 0;\n var re = /([-+]?((\\d+\\.\\d+)|((\\d+)|(\\.\\d+)))(?:e[-+]?\\d+)?)/gi;\n var match;\n for (n = 1; n < arr.length; n++) {\n var str = arr[n];\n var c = str.charAt(0);\n str = str.slice(1);\n coords.length = 0;\n while (match = re.exec(str)) {\n coords.push(match[0]);\n }\n var p = [];\n for (var j = 0, jlen = coords.length; j < jlen; j++) {\n var parsed = parseFloat(coords[j]);\n if (!isNaN(parsed)) {\n p.push(parsed);\n } else {\n p.push(0);\n }\n }\n while (p.length > 0) {\n if (isNaN(p[0])) {\n break;\n }\n var cmd = null;\n var points = [];\n var startX = cpx,\n startY = cpy;\n var prevCmd, ctlPtx, ctlPty;\n var rx, ry, psi, fa, fs, x1, y1;\n switch (c) {\n case 'l':\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'L':\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'm':\n var dx = p.shift();\n var dy = p.shift();\n cpx += dx;\n cpy += dy;\n cmd = 'M';\n if (ca.length > 2 && ca[ca.length - 1].command === 'z') {\n for (var idx = ca.length - 2; idx >= 0; idx--) {\n if (ca[idx].command === 'M') {\n cpx = ca[idx].points[0] + dx;\n cpy = ca[idx].points[1] + dy;\n break;\n }\n }\n }\n points.push(cpx, cpy);\n c = 'l';\n break;\n case 'M':\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'M';\n points.push(cpx, cpy);\n c = 'L';\n break;\n case 'h':\n cpx += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'H':\n cpx = p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'v':\n cpy += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'V':\n cpy = p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'C':\n points.push(p.shift(), p.shift(), p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'c':\n points.push(cpx + p.shift(), cpy + p.shift(), cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'C') {\n ctlPtx = cpx + (cpx - prevCmd.points[2]);\n ctlPty = cpy + (cpy - prevCmd.points[3]);\n }\n points.push(ctlPtx, ctlPty, p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'C') {\n ctlPtx = cpx + (cpx - prevCmd.points[2]);\n ctlPty = cpy + (cpy - prevCmd.points[3]);\n }\n points.push(ctlPtx, ctlPty, cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 'Q':\n points.push(p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'q':\n points.push(cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'Q';\n points.push(cpx, cpy);\n break;\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'Q') {\n ctlPtx = cpx + (cpx - prevCmd.points[0]);\n ctlPty = cpy + (cpy - prevCmd.points[1]);\n }\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'Q';\n points.push(ctlPtx, ctlPty, cpx, cpy);\n break;\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'Q') {\n ctlPtx = cpx + (cpx - prevCmd.points[0]);\n ctlPty = cpy + (cpy - prevCmd.points[1]);\n }\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'Q';\n points.push(ctlPtx, ctlPty, cpx, cpy);\n break;\n case 'A':\n rx = p.shift();\n ry = p.shift();\n psi = p.shift();\n fa = p.shift();\n fs = p.shift();\n x1 = cpx;\n y1 = cpy;\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'A';\n points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);\n break;\n case 'a':\n rx = p.shift();\n ry = p.shift();\n psi = p.shift();\n fa = p.shift();\n fs = p.shift();\n x1 = cpx;\n y1 = cpy;\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'A';\n points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);\n break;\n }\n ca.push({\n command: cmd || c,\n points: points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, cmd || c, points)\n });\n }\n if (c === 'z' || c === 'Z') {\n ca.push({\n command: 'z',\n points: [],\n start: undefined,\n pathLength: 0\n });\n }\n }\n return ca;\n };\n Path.calcLength = function (x, y, cmd, points) {\n var len, p1, p2, t;\n var path = Path;\n switch (cmd) {\n case 'L':\n return path.getLineLength(x, y, points[0], points[1]);\n case 'C':\n len = 0.0;\n p1 = path.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = path.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n return len;\n case 'Q':\n len = 0.0;\n p1 = path.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = path.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n return len;\n case 'A':\n len = 0.0;\n var start = points[4];\n var dTheta = points[5];\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0;\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n }\n p1 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n if (dTheta < 0) {\n for (t = start - inc; t > end; t -= inc) {\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n } else {\n for (t = start + inc; t < end; t += inc) {\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n return 0;\n };\n Path.convertEndpointToCenterParameterization = function (x1, y1, x2, y2, fa, fs, rx, ry, psiDeg) {\n var psi = psiDeg * (Math.PI / 180.0);\n var xp = Math.cos(psi) * (x1 - x2) / 2.0 + Math.sin(psi) * (y1 - y2) / 2.0;\n var yp = -1 * Math.sin(psi) * (x1 - x2) / 2.0 + Math.cos(psi) * (y1 - y2) / 2.0;\n var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry);\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n var f = Math.sqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + ry * ry * (xp * xp)));\n if (fa === fs) {\n f *= -1;\n }\n if (isNaN(f)) {\n f = 0;\n }\n var cxp = f * rx * yp / ry;\n var cyp = f * -ry * xp / rx;\n var cx = (x1 + x2) / 2.0 + Math.cos(psi) * cxp - Math.sin(psi) * cyp;\n var cy = (y1 + y2) / 2.0 + Math.sin(psi) * cxp + Math.cos(psi) * cyp;\n var vMag = function (v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n };\n var vRatio = function (u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n };\n var vAngle = function (u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n };\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n var dTheta = vAngle(u, v);\n if (vRatio(u, v) <= -1) {\n dTheta = Math.PI;\n }\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n if (fs === 0 && dTheta > 0) {\n dTheta = dTheta - 2 * Math.PI;\n }\n if (fs === 1 && dTheta < 0) {\n dTheta = dTheta + 2 * Math.PI;\n }\n return [cx, cy, rx, ry, theta, dTheta, psi, fs];\n };\n return Path;\n}(Shape_1.Shape);\nexports.Path = Path;\nPath.prototype.className = 'Path';\nPath.prototype._attrsAffectingSize = ['data'];\nGlobal_1._registerNode(Path);\nFactory_1.Factory.addGetterSetter(Path, 'data');\nUtil_1.Collection.mapMethods(Path);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Factory_1 = require(\"../Factory\");\nvar Node_1 = require(\"../Node\");\nvar Validators_1 = require(\"../Validators\");\nexports.RGB = function (imageData) {\n var data = imageData.data,\n nPixels = data.length,\n red = this.red(),\n green = this.green(),\n blue = this.blue(),\n i,\n brightness;\n for (i = 0; i < nPixels; i += 4) {\n brightness = (0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2]) / 255;\n data[i] = brightness * red;\n data[i + 1] = brightness * green;\n data[i + 2] = brightness * blue;\n data[i + 3] = data[i + 3];\n }\n};\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'red', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n } else if (val < 0) {\n return 0;\n } else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'green', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n } else if (val < 0) {\n return 0;\n } else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'blue', 0, Validators_1.RGBComponent, Factory_1.Factory.afterSetFilter);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Factory_1 = require(\"../Factory\");\nvar Node_1 = require(\"../Node\");\nvar Validators_1 = require(\"../Validators\");\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'hue', 0, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'saturation', 0, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'luminance', 0, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);\nexports.HSL = function (imageData) {\n var data = imageData.data,\n nPixels = data.length,\n v = 1,\n s = Math.pow(2, this.saturation()),\n h = Math.abs(this.hue() + 360) % 360,\n l = this.luminance() * 127,\n i;\n var vsu = v * s * Math.cos(h * Math.PI / 180),\n vsw = v * s * Math.sin(h * Math.PI / 180);\n var rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw,\n rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw,\n rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;\n var gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw,\n gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw,\n gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;\n var br = 0.299 * v - 0.3 * vsu + 1.25 * vsw,\n bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw,\n bb = 0.114 * v + 0.886 * vsu - 0.2 * vsw;\n var r, g, b, a;\n for (i = 0; i < nPixels; i += 4) {\n r = data[i + 0];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n data[i + 0] = rr * r + rg * g + rb * b + l;\n data[i + 1] = gr * r + gg * g + gb * b + l;\n data[i + 2] = br * r + bg * g + bb * b + l;\n data[i + 3] = a;\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Factory_1 = require(\"../Factory\");\nvar Node_1 = require(\"../Node\");\nvar Validators_1 = require(\"../Validators\");\nfunction pixelAt(idata, x, y) {\n var idx = (y * idata.width + x) * 4;\n var d = [];\n d.push(idata.data[idx++], idata.data[idx++], idata.data[idx++], idata.data[idx++]);\n return d;\n}\nfunction rgbDistance(p1, p2) {\n return Math.sqrt(Math.pow(p1[0] - p2[0], 2) + Math.pow(p1[1] - p2[1], 2) + Math.pow(p1[2] - p2[2], 2));\n}\nfunction rgbMean(pTab) {\n var m = [0, 0, 0];\n for (var i = 0; i < pTab.length; i++) {\n m[0] += pTab[i][0];\n m[1] += pTab[i][1];\n m[2] += pTab[i][2];\n }\n m[0] /= pTab.length;\n m[1] /= pTab.length;\n m[2] /= pTab.length;\n return m;\n}\nfunction backgroundMask(idata, threshold) {\n var rgbv_no = pixelAt(idata, 0, 0);\n var rgbv_ne = pixelAt(idata, idata.width - 1, 0);\n var rgbv_so = pixelAt(idata, 0, idata.height - 1);\n var rgbv_se = pixelAt(idata, idata.width - 1, idata.height - 1);\n var thres = threshold || 10;\n if (rgbDistance(rgbv_no, rgbv_ne) < thres && rgbDistance(rgbv_ne, rgbv_se) < thres && rgbDistance(rgbv_se, rgbv_so) < thres && rgbDistance(rgbv_so, rgbv_no) < thres) {\n var mean = rgbMean([rgbv_ne, rgbv_no, rgbv_se, rgbv_so]);\n var mask = [];\n for (var i = 0; i < idata.width * idata.height; i++) {\n var d = rgbDistance(mean, [idata.data[i * 4], idata.data[i * 4 + 1], idata.data[i * 4 + 2]]);\n mask[i] = d < thres ? 0 : 255;\n }\n return mask;\n }\n}\nfunction applyMask(idata, mask) {\n for (var i = 0; i < idata.width * idata.height; i++) {\n idata.data[4 * i + 3] = mask[i];\n }\n}\nfunction erodeMask(mask, sw, sh) {\n var weights = [1, 1, 1, 1, 0, 1, 1, 1, 1];\n var side = Math.round(Math.sqrt(weights.length));\n var halfSide = Math.floor(side / 2);\n var maskResult = [];\n for (var y = 0; y < sh; y++) {\n for (var x = 0; x < sw; x++) {\n var so = y * sw + x;\n var a = 0;\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scy = y + cy - halfSide;\n var scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n var srcOff = scy * sw + scx;\n var wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a === 255 * 8 ? 255 : 0;\n }\n }\n return maskResult;\n}\nfunction dilateMask(mask, sw, sh) {\n var weights = [1, 1, 1, 1, 1, 1, 1, 1, 1];\n var side = Math.round(Math.sqrt(weights.length));\n var halfSide = Math.floor(side / 2);\n var maskResult = [];\n for (var y = 0; y < sh; y++) {\n for (var x = 0; x < sw; x++) {\n var so = y * sw + x;\n var a = 0;\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scy = y + cy - halfSide;\n var scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n var srcOff = scy * sw + scx;\n var wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a >= 255 * 4 ? 255 : 0;\n }\n }\n return maskResult;\n}\nfunction smoothEdgeMask(mask, sw, sh) {\n var weights = [1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9];\n var side = Math.round(Math.sqrt(weights.length));\n var halfSide = Math.floor(side / 2);\n var maskResult = [];\n for (var y = 0; y < sh; y++) {\n for (var x = 0; x < sw; x++) {\n var so = y * sw + x;\n var a = 0;\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scy = y + cy - halfSide;\n var scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n var srcOff = scy * sw + scx;\n var wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a;\n }\n }\n return maskResult;\n}\nexports.Mask = function (imageData) {\n var threshold = this.threshold(),\n mask = backgroundMask(imageData, threshold);\n if (mask) {\n mask = erodeMask(mask, imageData.width, imageData.height);\n mask = dilateMask(mask, imageData.width, imageData.height);\n mask = smoothEdgeMask(mask, imageData.width, imageData.height);\n applyMask(imageData, mask);\n }\n return imageData;\n};\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'threshold', 0, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Global_1 = require(\"../Global\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_2 = require(\"../Global\");\nvar Wedge = function (_super) {\n __extends(Wedge, _super);\n function Wedge() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Wedge.prototype._sceneFunc = function (context) {\n context.beginPath();\n context.arc(0, 0, this.radius(), 0, Global_1.Konva.getAngle(this.angle()), this.clockwise());\n context.lineTo(0, 0);\n context.closePath();\n context.fillStrokeShape(this);\n };\n Wedge.prototype.getWidth = function () {\n return this.radius() * 2;\n };\n Wedge.prototype.getHeight = function () {\n return this.radius() * 2;\n };\n Wedge.prototype.setWidth = function (width) {\n this.radius(width / 2);\n };\n Wedge.prototype.setHeight = function (height) {\n this.radius(height / 2);\n };\n return Wedge;\n}(Shape_1.Shape);\nexports.Wedge = Wedge;\nWedge.prototype.className = 'Wedge';\nWedge.prototype._centroid = true;\nWedge.prototype._attrsAffectingSize = ['radius'];\nGlobal_2._registerNode(Wedge);\nFactory_1.Factory.addGetterSetter(Wedge, 'radius', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Wedge, 'angle', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Wedge, 'clockwise', false);\nFactory_1.Factory.backCompat(Wedge, {\n angleDeg: 'angle',\n getAngleDeg: 'getAngle',\n setAngleDeg: 'setAngle'\n});\nUtil_1.Collection.mapMethods(Wedge);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Global_1 = require(\"./Global\");\nvar Collection = function () {\n function Collection() {}\n Collection.toCollection = function (arr) {\n var collection = new Collection(),\n len = arr.length,\n n;\n for (n = 0; n < len; n++) {\n collection.push(arr[n]);\n }\n return collection;\n };\n Collection._mapMethod = function (methodName) {\n Collection.prototype[methodName] = function () {\n var len = this.length,\n i;\n var args = [].slice.call(arguments);\n for (i = 0; i < len; i++) {\n this[i][methodName].apply(this[i], args);\n }\n return this;\n };\n };\n Collection.mapMethods = function (constructor) {\n var prot = constructor.prototype;\n for (var methodName in prot) {\n Collection._mapMethod(methodName);\n }\n };\n return Collection;\n}();\nexports.Collection = Collection;\nCollection.prototype = [];\nCollection.prototype.each = function (func) {\n for (var n = 0; n < this.length; n++) {\n func(this[n], n);\n }\n};\nCollection.prototype.toArray = function () {\n var arr = [],\n len = this.length,\n n;\n for (n = 0; n < len; n++) {\n arr.push(this[n]);\n }\n return arr;\n};\nvar Transform = function () {\n function Transform(m) {\n if (m === void 0) {\n m = [1, 0, 0, 1, 0, 0];\n }\n this.m = m && m.slice() || [1, 0, 0, 1, 0, 0];\n }\n Transform.prototype.copy = function () {\n return new Transform(this.m);\n };\n Transform.prototype.point = function (point) {\n var m = this.m;\n return {\n x: m[0] * point.x + m[2] * point.y + m[4],\n y: m[1] * point.x + m[3] * point.y + m[5]\n };\n };\n Transform.prototype.translate = function (x, y) {\n this.m[4] += this.m[0] * x + this.m[2] * y;\n this.m[5] += this.m[1] * x + this.m[3] * y;\n return this;\n };\n Transform.prototype.scale = function (sx, sy) {\n this.m[0] *= sx;\n this.m[1] *= sx;\n this.m[2] *= sy;\n this.m[3] *= sy;\n return this;\n };\n Transform.prototype.rotate = function (rad) {\n var c = Math.cos(rad);\n var s = Math.sin(rad);\n var m11 = this.m[0] * c + this.m[2] * s;\n var m12 = this.m[1] * c + this.m[3] * s;\n var m21 = this.m[0] * -s + this.m[2] * c;\n var m22 = this.m[1] * -s + this.m[3] * c;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n };\n Transform.prototype.getTranslation = function () {\n return {\n x: this.m[4],\n y: this.m[5]\n };\n };\n Transform.prototype.skew = function (sx, sy) {\n var m11 = this.m[0] + this.m[2] * sy;\n var m12 = this.m[1] + this.m[3] * sy;\n var m21 = this.m[2] + this.m[0] * sx;\n var m22 = this.m[3] + this.m[1] * sx;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n };\n Transform.prototype.multiply = function (matrix) {\n var m11 = this.m[0] * matrix.m[0] + this.m[2] * matrix.m[1];\n var m12 = this.m[1] * matrix.m[0] + this.m[3] * matrix.m[1];\n var m21 = this.m[0] * matrix.m[2] + this.m[2] * matrix.m[3];\n var m22 = this.m[1] * matrix.m[2] + this.m[3] * matrix.m[3];\n var dx = this.m[0] * matrix.m[4] + this.m[2] * matrix.m[5] + this.m[4];\n var dy = this.m[1] * matrix.m[4] + this.m[3] * matrix.m[5] + this.m[5];\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n this.m[4] = dx;\n this.m[5] = dy;\n return this;\n };\n Transform.prototype.invert = function () {\n var d = 1 / (this.m[0] * this.m[3] - this.m[1] * this.m[2]);\n var m0 = this.m[3] * d;\n var m1 = -this.m[1] * d;\n var m2 = -this.m[2] * d;\n var m3 = this.m[0] * d;\n var m4 = d * (this.m[2] * this.m[5] - this.m[3] * this.m[4]);\n var m5 = d * (this.m[1] * this.m[4] - this.m[0] * this.m[5]);\n this.m[0] = m0;\n this.m[1] = m1;\n this.m[2] = m2;\n this.m[3] = m3;\n this.m[4] = m4;\n this.m[5] = m5;\n return this;\n };\n Transform.prototype.getMatrix = function () {\n return this.m;\n };\n Transform.prototype.setAbsolutePosition = function (x, y) {\n var m0 = this.m[0],\n m1 = this.m[1],\n m2 = this.m[2],\n m3 = this.m[3],\n m4 = this.m[4],\n m5 = this.m[5],\n yt = (m0 * (y - m5) - m1 * (x - m4)) / (m0 * m3 - m1 * m2),\n xt = (x - m4 - m2 * yt) / m0;\n return this.translate(xt, yt);\n };\n return Transform;\n}();\nexports.Transform = Transform;\nvar OBJECT_ARRAY = '[object Array]',\n OBJECT_NUMBER = '[object Number]',\n OBJECT_STRING = '[object String]',\n OBJECT_BOOLEAN = '[object Boolean]',\n PI_OVER_DEG180 = Math.PI / 180,\n DEG180_OVER_PI = 180 / Math.PI,\n HASH = '#',\n EMPTY_STRING = '',\n ZERO = '0',\n KONVA_WARNING = 'Konva warning: ',\n KONVA_ERROR = 'Konva error: ',\n RGB_PAREN = 'rgb(',\n COLORS = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 132, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 255, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n grey: [128, 128, 128],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 203],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n rebeccapurple: [102, 51, 153],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [119, 128, 144],\n slategrey: [119, 128, 144],\n snow: [255, 255, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n transparent: [255, 255, 255, 0],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 5]\n },\n RGB_REGEX = /rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)/,\n animQueue = [];\nexports.Util = {\n _isElement: function (obj) {\n return !!(obj && obj.nodeType == 1);\n },\n _isFunction: function (obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n },\n _isPlainObject: function (obj) {\n return !!obj && obj.constructor === Object;\n },\n _isArray: function (obj) {\n return Object.prototype.toString.call(obj) === OBJECT_ARRAY;\n },\n _isNumber: function (obj) {\n return Object.prototype.toString.call(obj) === OBJECT_NUMBER && !isNaN(obj) && isFinite(obj);\n },\n _isString: function (obj) {\n return Object.prototype.toString.call(obj) === OBJECT_STRING;\n },\n _isBoolean: function (obj) {\n return Object.prototype.toString.call(obj) === OBJECT_BOOLEAN;\n },\n isObject: function (val) {\n return val instanceof Object;\n },\n isValidSelector: function (selector) {\n if (typeof selector !== 'string') {\n return false;\n }\n var firstChar = selector[0];\n return firstChar === '#' || firstChar === '.' || firstChar === firstChar.toUpperCase();\n },\n _sign: function (number) {\n if (number === 0) {\n return 0;\n }\n if (number > 0) {\n return 1;\n } else {\n return -1;\n }\n },\n requestAnimFrame: function (callback) {\n animQueue.push(callback);\n if (animQueue.length === 1) {\n requestAnimationFrame(function () {\n var queue = animQueue;\n animQueue = [];\n queue.forEach(function (cb) {\n cb();\n });\n });\n }\n },\n createCanvasElement: function () {\n var canvas = document.createElement('canvas');\n try {\n canvas.style = canvas.style || {};\n } catch (e) {}\n return canvas;\n },\n createImageElement: function () {\n return document.createElement('img');\n },\n _isInDocument: function (el) {\n while (el = el.parentNode) {\n if (el == document) {\n return true;\n }\n }\n return false;\n },\n _simplifyArray: function (arr) {\n var retArr = [],\n len = arr.length,\n util = exports.Util,\n n,\n val;\n for (n = 0; n < len; n++) {\n val = arr[n];\n if (util._isNumber(val)) {\n val = Math.round(val * 1000) / 1000;\n } else if (!util._isString(val)) {\n val = val.toString();\n }\n retArr.push(val);\n }\n return retArr;\n },\n _urlToImage: function (url, callback) {\n var imageObj = new Global_1.glob.Image();\n imageObj.onload = function () {\n callback(imageObj);\n };\n imageObj.src = url;\n },\n _rgbToHex: function (r, g, b) {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n },\n _hexToRgb: function (hex) {\n hex = hex.replace(HASH, EMPTY_STRING);\n var bigint = parseInt(hex, 16);\n return {\n r: bigint >> 16 & 255,\n g: bigint >> 8 & 255,\n b: bigint & 255\n };\n },\n getRandomColor: function () {\n var randColor = (Math.random() * 0xffffff << 0).toString(16);\n while (randColor.length < 6) {\n randColor = ZERO + randColor;\n }\n return HASH + randColor;\n },\n get: function (val, def) {\n if (val === undefined) {\n return def;\n } else {\n return val;\n }\n },\n getRGB: function (color) {\n var rgb;\n if (color in COLORS) {\n rgb = COLORS[color];\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2]\n };\n } else if (color[0] === HASH) {\n return this._hexToRgb(color.substring(1));\n } else if (color.substr(0, 4) === RGB_PAREN) {\n rgb = RGB_REGEX.exec(color.replace(/ /g, ''));\n return {\n r: parseInt(rgb[1], 10),\n g: parseInt(rgb[2], 10),\n b: parseInt(rgb[3], 10)\n };\n } else {\n return {\n r: 0,\n g: 0,\n b: 0\n };\n }\n },\n colorToRGBA: function (str) {\n str = str || 'black';\n return exports.Util._namedColorToRBA(str) || exports.Util._hex3ColorToRGBA(str) || exports.Util._hex6ColorToRGBA(str) || exports.Util._rgbColorToRGBA(str) || exports.Util._rgbaColorToRGBA(str) || exports.Util._hslColorToRGBA(str);\n },\n _namedColorToRBA: function (str) {\n var c = COLORS[str.toLowerCase()];\n if (!c) {\n return null;\n }\n return {\n r: c[0],\n g: c[1],\n b: c[2],\n a: 1\n };\n },\n _rgbColorToRGBA: function (str) {\n if (str.indexOf('rgb(') === 0) {\n str = str.match(/rgb\\(([^)]+)\\)/)[1];\n var parts = str.split(/ *, */).map(Number);\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: 1\n };\n }\n },\n _rgbaColorToRGBA: function (str) {\n if (str.indexOf('rgba(') === 0) {\n str = str.match(/rgba\\(([^)]+)\\)/)[1];\n var parts = str.split(/ *, */).map(Number);\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: parts[3]\n };\n }\n },\n _hex6ColorToRGBA: function (str) {\n if (str[0] === '#' && str.length === 7) {\n return {\n r: parseInt(str.slice(1, 3), 16),\n g: parseInt(str.slice(3, 5), 16),\n b: parseInt(str.slice(5, 7), 16),\n a: 1\n };\n }\n },\n _hex3ColorToRGBA: function (str) {\n if (str[0] === '#' && str.length === 4) {\n return {\n r: parseInt(str[1] + str[1], 16),\n g: parseInt(str[2] + str[2], 16),\n b: parseInt(str[3] + str[3], 16),\n a: 1\n };\n }\n },\n _hslColorToRGBA: function (str) {\n if (/hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.test(str)) {\n var _a = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(str),\n _ = _a[0],\n hsl = _a.slice(1);\n var h = Number(hsl[0]) / 360;\n var s = Number(hsl[1]) / 100;\n var l = Number(hsl[2]) / 100;\n var t2 = void 0;\n var t3 = void 0;\n var val = void 0;\n if (s === 0) {\n val = l * 255;\n return {\n r: Math.round(val),\n g: Math.round(val),\n b: Math.round(val),\n a: 1\n };\n }\n if (l < 0.5) {\n t2 = l * (1 + s);\n } else {\n t2 = l + s - l * s;\n }\n var t1 = 2 * l - t2;\n var rgb = [0, 0, 0];\n for (var i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * -(i - 1);\n if (t3 < 0) {\n t3++;\n }\n if (t3 > 1) {\n t3--;\n }\n if (6 * t3 < 1) {\n val = t1 + (t2 - t1) * 6 * t3;\n } else if (2 * t3 < 1) {\n val = t2;\n } else if (3 * t3 < 2) {\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n } else {\n val = t1;\n }\n rgb[i] = val * 255;\n }\n return {\n r: Math.round(rgb[0]),\n g: Math.round(rgb[1]),\n b: Math.round(rgb[2]),\n a: 1\n };\n }\n },\n haveIntersection: function (r1, r2) {\n return !(r2.x > r1.x + r1.width || r2.x + r2.width < r1.x || r2.y > r1.y + r1.height || r2.y + r2.height < r1.y);\n },\n cloneObject: function (obj) {\n var retObj = {};\n for (var key in obj) {\n if (this._isPlainObject(obj[key])) {\n retObj[key] = this.cloneObject(obj[key]);\n } else if (this._isArray(obj[key])) {\n retObj[key] = this.cloneArray(obj[key]);\n } else {\n retObj[key] = obj[key];\n }\n }\n return retObj;\n },\n cloneArray: function (arr) {\n return arr.slice(0);\n },\n _degToRad: function (deg) {\n return deg * PI_OVER_DEG180;\n },\n _radToDeg: function (rad) {\n return rad * DEG180_OVER_PI;\n },\n _capitalize: function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n },\n throw: function (str) {\n throw new Error(KONVA_ERROR + str);\n },\n error: function (str) {\n console.error(KONVA_ERROR + str);\n },\n warn: function (str) {\n if (!Global_1.Konva.showWarnings) {\n return;\n }\n console.warn(KONVA_WARNING + str);\n },\n extend: function (child, parent) {\n function Ctor() {\n this.constructor = child;\n }\n Ctor.prototype = parent.prototype;\n var oldProto = child.prototype;\n child.prototype = new Ctor();\n for (var key in oldProto) {\n if (oldProto.hasOwnProperty(key)) {\n child.prototype[key] = oldProto[key];\n }\n }\n child.__super__ = parent.prototype;\n child.super = parent;\n },\n _getControlPoints: function (x0, y0, x1, y1, x2, y2, t) {\n var d01 = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2)),\n d12 = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)),\n fa = t * d01 / (d01 + d12),\n fb = t * d12 / (d01 + d12),\n p1x = x1 - fa * (x2 - x0),\n p1y = y1 - fa * (y2 - y0),\n p2x = x1 + fb * (x2 - x0),\n p2y = y1 + fb * (y2 - y0);\n return [p1x, p1y, p2x, p2y];\n },\n _expandPoints: function (p, tension) {\n var len = p.length,\n allPoints = [],\n n,\n cp;\n for (n = 2; n < len - 2; n += 2) {\n cp = exports.Util._getControlPoints(p[n - 2], p[n - 1], p[n], p[n + 1], p[n + 2], p[n + 3], tension);\n allPoints.push(cp[0]);\n allPoints.push(cp[1]);\n allPoints.push(p[n]);\n allPoints.push(p[n + 1]);\n allPoints.push(cp[2]);\n allPoints.push(cp[3]);\n }\n return allPoints;\n },\n each: function (obj, func) {\n for (var key in obj) {\n func(key, obj[key]);\n }\n },\n _inRange: function (val, left, right) {\n return left <= val && val < right;\n },\n _getProjectionToSegment: function (x1, y1, x2, y2, x3, y3) {\n var x, y, dist;\n var pd2 = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);\n if (pd2 == 0) {\n x = x1;\n y = y1;\n dist = (x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2);\n } else {\n var u = ((x3 - x1) * (x2 - x1) + (y3 - y1) * (y2 - y1)) / pd2;\n if (u < 0) {\n x = x1;\n y = y1;\n dist = (x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3);\n } else if (u > 1.0) {\n x = x2;\n y = y2;\n dist = (x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3);\n } else {\n x = x1 + u * (x2 - x1);\n y = y1 + u * (y2 - y1);\n dist = (x - x3) * (x - x3) + (y - y3) * (y - y3);\n }\n }\n return [x, y, dist];\n },\n _getProjectionToLine: function (pt, line, isClosed) {\n var pc = exports.Util.cloneObject(pt);\n var dist = Number.MAX_VALUE;\n line.forEach(function (p1, i) {\n if (!isClosed && i === line.length - 1) {\n return;\n }\n var p2 = line[(i + 1) % line.length];\n var proj = exports.Util._getProjectionToSegment(p1.x, p1.y, p2.x, p2.y, pt.x, pt.y);\n var px = proj[0],\n py = proj[1],\n pdist = proj[2];\n if (pdist < dist) {\n pc.x = px;\n pc.y = py;\n dist = pdist;\n }\n });\n return pc;\n },\n _prepareArrayForTween: function (startArray, endArray, isClosed) {\n var n,\n start = [],\n end = [];\n if (startArray.length > endArray.length) {\n var temp = endArray;\n endArray = startArray;\n startArray = temp;\n }\n for (n = 0; n < startArray.length; n += 2) {\n start.push({\n x: startArray[n],\n y: startArray[n + 1]\n });\n }\n for (n = 0; n < endArray.length; n += 2) {\n end.push({\n x: endArray[n],\n y: endArray[n + 1]\n });\n }\n var newStart = [];\n end.forEach(function (point) {\n var pr = exports.Util._getProjectionToLine(point, start, isClosed);\n newStart.push(pr.x);\n newStart.push(pr.y);\n });\n return newStart;\n },\n _prepareToStringify: function (obj) {\n var desc;\n obj.visitedByCircularReferenceRemoval = true;\n for (var key in obj) {\n if (!(obj.hasOwnProperty(key) && obj[key] && typeof obj[key] == 'object')) {\n continue;\n }\n desc = Object.getOwnPropertyDescriptor(obj, key);\n if (obj[key].visitedByCircularReferenceRemoval || exports.Util._isElement(obj[key])) {\n if (desc.configurable) {\n delete obj[key];\n } else {\n return null;\n }\n } else if (exports.Util._prepareToStringify(obj[key]) === null) {\n if (desc.configurable) {\n delete obj[key];\n } else {\n return null;\n }\n }\n }\n delete obj.visitedByCircularReferenceRemoval;\n return obj;\n },\n _assign: function (target, source) {\n for (var key in source) {\n target[key] = source[key];\n }\n return target;\n },\n _getFirstPointerId: function (evt) {\n if (!evt.touches) {\n return 999;\n } else {\n return evt.changedTouches[0].identifier;\n }\n }\n};","import React, { useState } from \"react\"\n// import PropTypes from 'prop-types';\n\nimport { Grid, TextField, Button } from \"@material-ui/core\"\nimport Swal from 'sweetalert2';\nimport Layout from \"../../components/Layout\"\nimport { Stage, Layer, Text } from 'react-konva'\nimport { makeStyles } from \"@material-ui/core/styles\"\nimport ContactUsStore from \"../../stores/ContactUsStore\"\nimport SEO from \"../../components/seo\"\n\nconst iconAndContact = [\n {\n icon:\n `${process.env.AWS_S3_URL}/assets/iTopPlus472427719874.png`,\n type: \"tel\",\n contact: [\"080-965-9665\", \"062-898-2525\"],\n },\n {\n icon:\n `${process.env.AWS_S3_URL}/assets/iTopPlus861925842588.png`,\n type: \"email\",\n contact: [\"besthavengroup@gmail.com\"],\n },\n {\n icon:\n `${process.env.AWS_S3_URL}/assets/iTopPlus798587445952.png`,\n type: \"line\",\n contact: [\"@besthavenkhaoyai\"],\n },\n {\n icon:\n `${process.env.AWS_S3_URL}/assets/iTopPlus1527012246884.png`,\n type: \"facebook\",\n contact: [\"บ้านพักเขาใหญ่ พูลวิลล่าเขาใหญ่ - Best Haven Khaoyai\"],\n },\n]\n\nconst useStyles = makeStyles(theme => ({\n titleContainer: {\n margin: \"50px 0px 20px 0px\",\n },\n title: {\n fontSize: \"30px\",\n fontWeight: \"600\",\n color: \"#444444\",\n textTransform: \"uppercase\",\n // margin: \"100px\",\n },\n underLineTitle: {\n borderBottom: \"1px solid #444\",\n width: \"50%\",\n margin: \"5px auto\",\n display: \"block\",\n },\n containerLeft: {\n textAlign: \"left\",\n },\n itemInLeft: {\n marginTop: \"5px\",\n minHeight: \"60px\",\n display: \"flex\",\n alignItems: \"center\",\n },\n companyName: {\n fontSize: \"28px\",\n fontWeight: \"600\",\n color: \"#444444\",\n },\n iconStyle: {\n width: \"40px\",\n },\n wathcing: {\n backgroundColor: \"red\",\n },\n // wathcing2: {\n // backgroundColor: \"green\",\n // },\n textField: {\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n width: \"100%\",\n \"& label\": {\n fontFamily: `Kanit`,\n },\n },\n textFieldCaptCha: {\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n maxWidth: \"15ch\",\n },\n label: {\n fontSize: \"15px\",\n lineHeight: \"1.42857143\",\n color: \"#333\",\n fontWeight: \"bold\",\n textAlign: \"right\",\n // paddingRight: \"15px\",\n },\n itemInRight: {\n marginTop: \"15px\",\n width: \"100%\",\n },\n linkColor: {\n transition: \"0.3s\",\n color: \"#444\",\n fontSize: \"17px\",\n \"&:hover\": {\n color: \"#e2c366 !important\",\n textDecoration: \"none\",\n },\n },\n captchaContainer: {\n // backgroundImage:\n // \"linear-gradient(to top, lightgrey 0%, lightgrey 1%, #e0e0e0 26%, #efefef 48%, #d9d9d9 75%, #bcbcbc 100%)\",\n textAlign: \"center\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"16ch\",\n height: \"50px\",\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n },\n buttonSubmit: {\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n },\n refreshCaptcha: {\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n fontSize: \"11px\",\n fontWeight: \"600\",\n textDecoration: \"none\",\n cursor: \"pointer\",\n color: \"#000\",\n \"&:hover\": {\n color: \"#ccd5e3 !important\",\n },\n },\n}))\n\nconst renderIconAndContact = classes => {\n return iconAndContact.map((item, index) => {\n return (\n \n \n
\n \n
\n
\n \n
\n
\n {item.contact.map((text, index2) => {\n const link =\n item.type === \"tel\"\n ? `tel:${text}`\n : item.type === \"email\"\n ? `mailto:${text}`\n : item.type === \"line\"\n ? `http://line.me/ti/p/~${text}`\n : item.type === \"facebook\"\n ? `https://th-th.facebook.com/besthavenkhaoyai/`\n : `#`\n return (\n \n {text}\n \n )\n })}\n
\n
\n
\n
\n )\n })\n}\n\nconst randomNoFiveDigit = () => {\n let result = \"\"\n for (let i = 0; i < 5; i++) {\n result += `${Math.floor(Math.random() * 10)}`\n }\n return result\n}\n\nconst _onSubmit = async (name, email, tel, title, detail, captchaInput, randomNo) => {\n // eslint-disable-next-line\n const emailValidation = /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(email)\n // eslint-disable-next-line\n const mobileValidation = /^\\d{10}$/.test(tel)\n if (!name) return\n if (!emailValidation) return\n if (!mobileValidation) return\n if (!title) return\n if (!detail) return\n if (captchaInput !== randomNo) return\n const result = await ContactUsStore.saveContactUs({ name, email, tel, title, detail })\n return result\n}\n\nconst popupStatus = async (status, title, text) => {\n await Swal.fire({\n icon: status,\n title: title,\n text: text,\n })\n}\n\n// const makeGradient = () => {\n// const canvas = document.createElement('canvas');\n// const ctx = canvas.getContext('2d');\n\n// let gradient = ctx.createLinearGradient(0, 0, 100, 100);\n// gradient.addColorStop(0.00, 'lightgrey');\n// gradient.addColorStop(0.10, 'lightgrey');\n// gradient.addColorStop(0.26, '#e0e0e0');\n// gradient.addColorStop(0.48, '#efefef')\n// gradient.addColorStop(0.75, '#d9d9d9');\n// gradient.addColorStop(1.00, '#bcbcbc');\n// return gradient\n// }\n\nconst ContactUs = () => {\n const classes = useStyles()\n const iconAndContact = renderIconAndContact(classes)\n const [name, setName] = useState(\"\")\n const [email, setEmail] = useState(\"\")\n const [mobile, setMobile] = useState(\"\")\n const [title, setTitle] = useState(\"\")\n const [textMessage, setTextMessage] = useState(\"\")\n const [captchaInput, setCaptchaInput] = useState(\"\")\n const [randomNo, reRandom] = useState(randomNoFiveDigit())\n const imgShare = `${process.env.AWS_S3_URL}/assets/share-social-new.jpg`\n return (\n \n \n \n \n ติดต่อเรา\n
\n
\n
\n
\n \n \n
\n \n บ้านพักเขาใหญ่ พูลวิลล่าเขาใหญ่\n \n
\n
{iconAndContact}
\n
\n \n \"about\"\n
\n \n
\n \n \n
\n \n \n \n \n \n setName(e.target.value)}\n />\n \n \n
\n
\n \n \n \n \n \n setEmail(e.target.value)}\n />\n \n \n
\n
\n \n \n \n \n \n setMobile(e.target.value)}\n />\n \n \n
\n
\n \n \n \n \n \n setTitle(e.target.value)}\n />\n \n \n
\n
\n \n \n \n \n \n setTextMessage(e.target.value)}\n />\n \n \n
\n
\n \n \n \n \n \n setCaptchaInput(e.target.value)}\n />\n \n \n
\n
\n \n \n \n
\n \n \n {/* */}\n \n \n \n
\n
\n reRandom(randomNoFiveDigit())}\n >\n เปลี่ยนรหัสภาพ\n \n
\n
\n
\n
\n
\n \n \n \n {\n const result = await _onSubmit(name, email, mobile, title, textMessage, captchaInput, randomNo)\n if (result) {\n setName(\"\")\n setEmail(\"\")\n setMobile(\"\")\n setTitle(\"\")\n setTextMessage(\"\")\n setCaptchaInput(\"\")\n reRandom(randomNoFiveDigit())\n await popupStatus('success', 'ข้อมูลถูกส่ง', 'ส่งแล้วจ้า')\n } else {\n reRandom(randomNoFiveDigit())\n await popupStatus('error', 'ผิดพลาด', 'กรุณาตรวจสอบข้อมูลทั้งหมดให้ครบและถูกต้องหรือไม่ ?')\n }\n }}\n >\n ส่งข้อมูล\n \n \n \n
\n
\n
\n \n
\n )\n}\n\nexport default ContactUs\n\n","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Animation_1 = require(\"../Animation\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_1 = require(\"../Global\");\nvar Sprite = function (_super) {\n __extends(Sprite, _super);\n function Sprite(config) {\n var _this = _super.call(this, config) || this;\n _this._updated = true;\n _this.anim = new Animation_1.Animation(function () {\n var updated = _this._updated;\n _this._updated = false;\n return updated;\n });\n _this.on('animationChange.konva', function () {\n this.frameIndex(0);\n });\n _this.on('frameIndexChange.konva', function () {\n this._updated = true;\n });\n _this.on('frameRateChange.konva', function () {\n if (!this.anim.isRunning()) {\n return;\n }\n clearInterval(this.interval);\n this._setInterval();\n });\n return _this;\n }\n Sprite.prototype._sceneFunc = function (context) {\n var anim = this.animation(),\n index = this.frameIndex(),\n ix4 = index * 4,\n set = this.animations()[anim],\n offsets = this.frameOffsets(),\n x = set[ix4 + 0],\n y = set[ix4 + 1],\n width = set[ix4 + 2],\n height = set[ix4 + 3],\n image = this.image();\n if (this.hasFill() || this.hasStroke()) {\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n if (image) {\n if (offsets) {\n var offset = offsets[anim],\n ix2 = index * 2;\n context.drawImage(image, x, y, width, height, offset[ix2 + 0], offset[ix2 + 1], width, height);\n } else {\n context.drawImage(image, x, y, width, height, 0, 0, width, height);\n }\n }\n };\n Sprite.prototype._hitFunc = function (context) {\n var anim = this.animation(),\n index = this.frameIndex(),\n ix4 = index * 4,\n set = this.animations()[anim],\n offsets = this.frameOffsets(),\n width = set[ix4 + 2],\n height = set[ix4 + 3];\n context.beginPath();\n if (offsets) {\n var offset = offsets[anim];\n var ix2 = index * 2;\n context.rect(offset[ix2 + 0], offset[ix2 + 1], width, height);\n } else {\n context.rect(0, 0, width, height);\n }\n context.closePath();\n context.fillShape(this);\n };\n Sprite.prototype._useBufferCanvas = function () {\n return (this.hasShadow() || this.getAbsoluteOpacity() !== 1) && this.hasStroke();\n };\n Sprite.prototype._setInterval = function () {\n var that = this;\n this.interval = setInterval(function () {\n that._updateIndex();\n }, 1000 / this.frameRate());\n };\n Sprite.prototype.start = function () {\n if (this.isRunning()) {\n return;\n }\n var layer = this.getLayer();\n this.anim.setLayers(layer);\n this._setInterval();\n this.anim.start();\n };\n Sprite.prototype.stop = function () {\n this.anim.stop();\n clearInterval(this.interval);\n };\n Sprite.prototype.isRunning = function () {\n return this.anim.isRunning();\n };\n Sprite.prototype._updateIndex = function () {\n var index = this.frameIndex(),\n animation = this.animation(),\n animations = this.animations(),\n anim = animations[animation],\n len = anim.length / 4;\n if (index < len - 1) {\n this.frameIndex(index + 1);\n } else {\n this.frameIndex(0);\n }\n };\n return Sprite;\n}(Shape_1.Shape);\nexports.Sprite = Sprite;\nSprite.prototype.className = 'Sprite';\nGlobal_1._registerNode(Sprite);\nFactory_1.Factory.addGetterSetter(Sprite, 'animation');\nFactory_1.Factory.addGetterSetter(Sprite, 'animations');\nFactory_1.Factory.addGetterSetter(Sprite, 'frameOffsets');\nFactory_1.Factory.addGetterSetter(Sprite, 'image');\nFactory_1.Factory.addGetterSetter(Sprite, 'frameIndex', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Sprite, 'frameRate', 17, Validators_1.getNumberValidator());\nFactory_1.Factory.backCompat(Sprite, {\n index: 'frameIndex',\n getIndex: 'getFrameIndex',\n setIndex: 'setFrameIndex'\n});\nUtil_1.Collection.mapMethods(Sprite);","/** @license React v0.18.0\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});var f,g,h,k,l;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,\ny=window.setTimeout,z=window.clearTimeout;if(\"undefined\"!==typeof console){var A=window.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\");\"function\"!==typeof A&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\")}if(\"object\"===\ntypeof w&&\"function\"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var B=x.now();exports.unstable_now=function(){return x.now()-B}}var C=!1,D=null,E=-1,F=5,G=0;k=function(){return exports.unstable_now()>=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};exports.unstable_cancelCallback=function(a){a.callback=null};\nexports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=c}}};exports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime 255) {\n return 255;\n } else if (val < 0) {\n return 0;\n } else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'green', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n } else if (val < 0) {\n return 0;\n } else {\n return Math.round(val);\n }\n});\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'blue', 0, Validators_1.RGBComponent, Factory_1.Factory.afterSetFilter);\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'alpha', 1, function (val) {\n this._filterUpToDate = false;\n if (val > 1) {\n return 1;\n } else if (val < 0) {\n return 0;\n } else {\n return val;\n }\n});","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Factory_1 = require(\"../Factory\");\nvar Node_1 = require(\"../Node\");\nvar Validators_1 = require(\"../Validators\");\nexports.Noise = function (imageData) {\n var amount = this.noise() * 255,\n data = imageData.data,\n nPixels = data.length,\n half = amount / 2,\n i;\n for (i = 0; i < nPixels; i += 4) {\n data[i + 0] += half - 2 * half * Math.random();\n data[i + 1] += half - 2 * half * Math.random();\n data[i + 2] += half - 2 * half * Math.random();\n }\n};\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'noise', 0.2, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);","/** @license React v0.18.0\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});var f,g,h,k,l;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,\ny=window.setTimeout,z=window.clearTimeout;if(\"undefined\"!==typeof console){var A=window.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\");\"function\"!==typeof A&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\")}if(\"object\"===\ntypeof w&&\"function\"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var B=x.now();exports.unstable_now=function(){return x.now()-B}}var C=!1,D=null,E=-1,F=5,G=0;k=function(){return exports.unstable_now()>=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};exports.unstable_cancelCallback=function(a){a.callback=null};\nexports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=c}}};exports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime rMax) {\n rMax = r;\n }\n g = data[i + 1];\n if (g < gMin) {\n gMin = g;\n } else if (g > gMax) {\n gMax = g;\n }\n b = data[i + 2];\n if (b < bMin) {\n bMin = b;\n } else if (b > bMax) {\n bMax = b;\n }\n }\n if (rMax === rMin) {\n rMax = 255;\n rMin = 0;\n }\n if (gMax === gMin) {\n gMax = 255;\n gMin = 0;\n }\n if (bMax === bMin) {\n bMax = 255;\n bMin = 0;\n }\n var rMid, rGoalMax, rGoalMin, gMid, gGoalMax, gGoalMin, bMid, bGoalMax, bGoalMin;\n if (enhanceAmount > 0) {\n rGoalMax = rMax + enhanceAmount * (255 - rMax);\n rGoalMin = rMin - enhanceAmount * (rMin - 0);\n gGoalMax = gMax + enhanceAmount * (255 - gMax);\n gGoalMin = gMin - enhanceAmount * (gMin - 0);\n bGoalMax = bMax + enhanceAmount * (255 - bMax);\n bGoalMin = bMin - enhanceAmount * (bMin - 0);\n } else {\n rMid = (rMax + rMin) * 0.5;\n rGoalMax = rMax + enhanceAmount * (rMax - rMid);\n rGoalMin = rMin + enhanceAmount * (rMin - rMid);\n gMid = (gMax + gMin) * 0.5;\n gGoalMax = gMax + enhanceAmount * (gMax - gMid);\n gGoalMin = gMin + enhanceAmount * (gMin - gMid);\n bMid = (bMax + bMin) * 0.5;\n bGoalMax = bMax + enhanceAmount * (bMax - bMid);\n bGoalMin = bMin + enhanceAmount * (bMin - bMid);\n }\n for (i = 0; i < nSubPixels; i += 4) {\n data[i + 0] = remap(data[i + 0], rMin, rMax, rGoalMin, rGoalMax);\n data[i + 1] = remap(data[i + 1], gMin, gMax, gGoalMin, gGoalMax);\n data[i + 2] = remap(data[i + 2], bMin, bMax, bGoalMin, bGoalMax);\n }\n};\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'enhance', 0, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Factory_1 = require(\"../Factory\");\nvar Node_1 = require(\"../Node\");\nvar Validators_1 = require(\"../Validators\");\nfunction BlurStack() {\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n}\nvar mul_table = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];\nvar shg_table = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];\nfunction filterGaussBlurRGBA(imageData, radius) {\n var pixels = imageData.data,\n width = imageData.width,\n height = imageData.height;\n var x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, a_sum, r_out_sum, g_out_sum, b_out_sum, a_out_sum, r_in_sum, g_in_sum, b_in_sum, a_in_sum, pr, pg, pb, pa, rbs;\n var div = radius + radius + 1,\n widthMinus1 = width - 1,\n heightMinus1 = height - 1,\n radiusPlus1 = radius + 1,\n sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2,\n stackStart = new BlurStack(),\n stackEnd = null,\n stack = stackStart,\n stackIn = null,\n stackOut = null,\n mul_sum = mul_table[radius],\n shg_sum = shg_table[radius];\n for (i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n stack.next = stackStart;\n yw = yi = 0;\n for (y = 0; y < height; y++) {\n r_in_sum = g_in_sum = b_in_sum = a_in_sum = r_sum = g_sum = b_sum = a_sum = 0;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n stack = stackStart;\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n for (i = 1; i < radiusPlus1; i++) {\n p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n r_sum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = pg = pixels[p + 1]) * rbs;\n b_sum += (stack.b = pb = pixels[p + 2]) * rbs;\n a_sum += (stack.a = pa = pixels[p + 3]) * rbs;\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n stack = stack.next;\n }\n stackIn = stackStart;\n stackOut = stackEnd;\n for (x = 0; x < width; x++) {\n pixels[yi + 3] = pa = a_sum * mul_sum >> shg_sum;\n if (pa !== 0) {\n pa = 255 / pa;\n pixels[yi] = (r_sum * mul_sum >> shg_sum) * pa;\n pixels[yi + 1] = (g_sum * mul_sum >> shg_sum) * pa;\n pixels[yi + 2] = (b_sum * mul_sum >> shg_sum) * pa;\n } else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;\n r_in_sum += stackIn.r = pixels[p];\n g_in_sum += stackIn.g = pixels[p + 1];\n b_in_sum += stackIn.b = pixels[p + 2];\n a_in_sum += stackIn.a = pixels[p + 3];\n r_sum += r_in_sum;\n g_sum += g_in_sum;\n b_sum += b_in_sum;\n a_sum += a_in_sum;\n stackIn = stackIn.next;\n r_out_sum += pr = stackOut.r;\n g_out_sum += pg = stackOut.g;\n b_out_sum += pb = stackOut.b;\n a_out_sum += pa = stackOut.a;\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n stackOut = stackOut.next;\n yi += 4;\n }\n yw += width;\n }\n for (x = 0; x < width; x++) {\n g_in_sum = b_in_sum = a_in_sum = r_in_sum = g_sum = b_sum = a_sum = r_sum = 0;\n yi = x << 2;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n stack = stackStart;\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n yp = width;\n for (i = 1; i <= radius; i++) {\n yi = yp + x << 2;\n r_sum += (stack.r = pr = pixels[yi]) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = pg = pixels[yi + 1]) * rbs;\n b_sum += (stack.b = pb = pixels[yi + 2]) * rbs;\n a_sum += (stack.a = pa = pixels[yi + 3]) * rbs;\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n stack = stack.next;\n if (i < heightMinus1) {\n yp += width;\n }\n }\n yi = x;\n stackIn = stackStart;\n stackOut = stackEnd;\n for (y = 0; y < height; y++) {\n p = yi << 2;\n pixels[p + 3] = pa = a_sum * mul_sum >> shg_sum;\n if (pa > 0) {\n pa = 255 / pa;\n pixels[p] = (r_sum * mul_sum >> shg_sum) * pa;\n pixels[p + 1] = (g_sum * mul_sum >> shg_sum) * pa;\n pixels[p + 2] = (b_sum * mul_sum >> shg_sum) * pa;\n } else {\n pixels[p] = pixels[p + 1] = pixels[p + 2] = 0;\n }\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n p = x + ((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;\n r_sum += r_in_sum += stackIn.r = pixels[p];\n g_sum += g_in_sum += stackIn.g = pixels[p + 1];\n b_sum += b_in_sum += stackIn.b = pixels[p + 2];\n a_sum += a_in_sum += stackIn.a = pixels[p + 3];\n stackIn = stackIn.next;\n r_out_sum += pr = stackOut.r;\n g_out_sum += pg = stackOut.g;\n b_out_sum += pb = stackOut.b;\n a_out_sum += pa = stackOut.a;\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n}\nexports.Blur = function Blur(imageData) {\n var radius = Math.round(this.blurRadius());\n if (radius > 0) {\n filterGaussBlurRGBA(imageData, radius);\n }\n};\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'blurRadius', 0, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"../Util\");\nvar Factory_1 = require(\"../Factory\");\nvar Shape_1 = require(\"../Shape\");\nvar Validators_1 = require(\"../Validators\");\nvar Global_1 = require(\"../Global\");\nvar PIx2 = Math.PI * 2;\nvar Ring = function (_super) {\n __extends(Ring, _super);\n function Ring() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Ring.prototype._sceneFunc = function (context) {\n context.beginPath();\n context.arc(0, 0, this.innerRadius(), 0, PIx2, false);\n context.moveTo(this.outerRadius(), 0);\n context.arc(0, 0, this.outerRadius(), PIx2, 0, true);\n context.closePath();\n context.fillStrokeShape(this);\n };\n Ring.prototype.getWidth = function () {\n return this.outerRadius() * 2;\n };\n Ring.prototype.getHeight = function () {\n return this.outerRadius() * 2;\n };\n Ring.prototype.setWidth = function (width) {\n this.outerRadius(width / 2);\n };\n Ring.prototype.setHeight = function (height) {\n this.outerRadius(height / 2);\n };\n return Ring;\n}(Shape_1.Shape);\nexports.Ring = Ring;\nRing.prototype.className = 'Ring';\nRing.prototype._centroid = true;\nRing.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\nGlobal_1._registerNode(Ring);\nFactory_1.Factory.addGetterSetter(Ring, 'innerRadius', 0, Validators_1.getNumberValidator());\nFactory_1.Factory.addGetterSetter(Ring, 'outerRadius', 0, Validators_1.getNumberValidator());\nUtil_1.Collection.mapMethods(Ring);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Factory_1 = require(\"../Factory\");\nvar Node_1 = require(\"../Node\");\nvar Validators_1 = require(\"../Validators\");\nexports.Contrast = function (imageData) {\n var adjust = Math.pow((this.contrast() + 100) / 100, 2);\n var data = imageData.data,\n nPixels = data.length,\n red = 150,\n green = 150,\n blue = 150,\n i;\n for (i = 0; i < nPixels; i += 4) {\n red = data[i];\n green = data[i + 1];\n blue = data[i + 2];\n red /= 255;\n red -= 0.5;\n red *= adjust;\n red += 0.5;\n red *= 255;\n green /= 255;\n green -= 0.5;\n green *= adjust;\n green += 0.5;\n green *= 255;\n blue /= 255;\n blue -= 0.5;\n blue *= adjust;\n blue += 0.5;\n blue *= 255;\n red = red < 0 ? 0 : red > 255 ? 255 : red;\n green = green < 0 ? 0 : green > 255 ? 255 : green;\n blue = blue < 0 ? 0 : blue > 255 ? 255 : blue;\n data[i] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n }\n};\nFactory_1.Factory.addGetterSetter(Node_1.Node, 'contrast', 0, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar Util_1 = require(\"./Util\");\nvar Global_1 = require(\"./Global\");\nvar COMMA = ',',\n OPEN_PAREN = '(',\n CLOSE_PAREN = ')',\n OPEN_PAREN_BRACKET = '([',\n CLOSE_BRACKET_PAREN = '])',\n SEMICOLON = ';',\n DOUBLE_PAREN = '()',\n EQUALS = '=',\n CONTEXT_METHODS = ['arc', 'arcTo', 'beginPath', 'bezierCurveTo', 'clearRect', 'clip', 'closePath', 'createLinearGradient', 'createPattern', 'createRadialGradient', 'drawImage', 'ellipse', 'fill', 'fillText', 'getImageData', 'createImageData', 'lineTo', 'moveTo', 'putImageData', 'quadraticCurveTo', 'rect', 'restore', 'rotate', 'save', 'scale', 'setLineDash', 'setTransform', 'stroke', 'strokeText', 'transform', 'translate'];\nvar CONTEXT_PROPERTIES = ['fillStyle', 'strokeStyle', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'lineCap', 'lineDashOffset', 'lineJoin', 'lineWidth', 'miterLimit', 'font', 'textAlign', 'textBaseline', 'globalAlpha', 'globalCompositeOperation', 'imageSmoothingEnabled'];\nvar traceArrMax = 100;\nvar Context = function () {\n function Context(canvas) {\n this.canvas = canvas;\n this._context = canvas._canvas.getContext('2d');\n if (Global_1.Konva.enableTrace) {\n this.traceArr = [];\n this._enableTrace();\n }\n }\n Context.prototype.fillShape = function (shape) {\n if (shape.fillEnabled()) {\n this._fill(shape);\n }\n };\n Context.prototype._fill = function (shape) {};\n Context.prototype.strokeShape = function (shape) {\n if (shape.hasStroke()) {\n this._stroke(shape);\n }\n };\n Context.prototype._stroke = function (shape) {};\n Context.prototype.fillStrokeShape = function (shape) {\n this.fillShape(shape);\n this.strokeShape(shape);\n };\n Context.prototype.getTrace = function (relaxed) {\n var traceArr = this.traceArr,\n len = traceArr.length,\n str = '',\n n,\n trace,\n method,\n args;\n for (n = 0; n < len; n++) {\n trace = traceArr[n];\n method = trace.method;\n if (method) {\n args = trace.args;\n str += method;\n if (relaxed) {\n str += DOUBLE_PAREN;\n } else {\n if (Util_1.Util._isArray(args[0])) {\n str += OPEN_PAREN_BRACKET + args.join(COMMA) + CLOSE_BRACKET_PAREN;\n } else {\n str += OPEN_PAREN + args.join(COMMA) + CLOSE_PAREN;\n }\n }\n } else {\n str += trace.property;\n if (!relaxed) {\n str += EQUALS + trace.val;\n }\n }\n str += SEMICOLON;\n }\n return str;\n };\n Context.prototype.clearTrace = function () {\n this.traceArr = [];\n };\n Context.prototype._trace = function (str) {\n var traceArr = this.traceArr,\n len;\n traceArr.push(str);\n len = traceArr.length;\n if (len >= traceArrMax) {\n traceArr.shift();\n }\n };\n Context.prototype.reset = function () {\n var pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(1 * pixelRatio, 0, 0, 1 * pixelRatio, 0, 0);\n };\n Context.prototype.getCanvas = function () {\n return this.canvas;\n };\n Context.prototype.clear = function (bounds) {\n var canvas = this.getCanvas();\n if (bounds) {\n this.clearRect(bounds.x || 0, bounds.y || 0, bounds.width || 0, bounds.height || 0);\n } else {\n this.clearRect(0, 0, canvas.getWidth() / canvas.pixelRatio, canvas.getHeight() / canvas.pixelRatio);\n }\n };\n Context.prototype._applyLineCap = function (shape) {\n var lineCap = shape.getLineCap();\n if (lineCap) {\n this.setAttr('lineCap', lineCap);\n }\n };\n Context.prototype._applyOpacity = function (shape) {\n var absOpacity = shape.getAbsoluteOpacity();\n if (absOpacity !== 1) {\n this.setAttr('globalAlpha', absOpacity);\n }\n };\n Context.prototype._applyLineJoin = function (shape) {\n var lineJoin = shape.getLineJoin();\n if (lineJoin) {\n this.setAttr('lineJoin', lineJoin);\n }\n };\n Context.prototype.setAttr = function (attr, val) {\n this._context[attr] = val;\n };\n Context.prototype.arc = function (a0, a1, a2, a3, a4, a5) {\n this._context.arc(a0, a1, a2, a3, a4, a5);\n };\n Context.prototype.arcTo = function (a0, a1, a2, a3, a4) {\n this._context.arcTo(a0, a1, a2, a3, a4);\n };\n Context.prototype.beginPath = function () {\n this._context.beginPath();\n };\n Context.prototype.bezierCurveTo = function (a0, a1, a2, a3, a4, a5) {\n this._context.bezierCurveTo(a0, a1, a2, a3, a4, a5);\n };\n Context.prototype.clearRect = function (a0, a1, a2, a3) {\n this._context.clearRect(a0, a1, a2, a3);\n };\n Context.prototype.clip = function () {\n this._context.clip();\n };\n Context.prototype.closePath = function () {\n this._context.closePath();\n };\n Context.prototype.createImageData = function (a0, a1) {\n var a = arguments;\n if (a.length === 2) {\n return this._context.createImageData(a0, a1);\n } else if (a.length === 1) {\n return this._context.createImageData(a0);\n }\n };\n Context.prototype.createLinearGradient = function (a0, a1, a2, a3) {\n return this._context.createLinearGradient(a0, a1, a2, a3);\n };\n Context.prototype.createPattern = function (a0, a1) {\n return this._context.createPattern(a0, a1);\n };\n Context.prototype.createRadialGradient = function (a0, a1, a2, a3, a4, a5) {\n return this._context.createRadialGradient(a0, a1, a2, a3, a4, a5);\n };\n Context.prototype.drawImage = function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n var a = arguments,\n _context = this._context;\n if (a.length === 3) {\n _context.drawImage(a0, a1, a2);\n } else if (a.length === 5) {\n _context.drawImage(a0, a1, a2, a3, a4);\n } else if (a.length === 9) {\n _context.drawImage(a0, a1, a2, a3, a4, a5, a6, a7, a8);\n }\n };\n Context.prototype.ellipse = function (a0, a1, a2, a3, a4, a5, a6, a7) {\n this._context.ellipse(a0, a1, a2, a3, a4, a5, a6, a7);\n };\n Context.prototype.isPointInPath = function (x, y) {\n return this._context.isPointInPath(x, y);\n };\n Context.prototype.fill = function () {\n this._context.fill();\n };\n Context.prototype.fillRect = function (x, y, width, height) {\n this._context.fillRect(x, y, width, height);\n };\n Context.prototype.strokeRect = function (x, y, width, height) {\n this._context.strokeRect(x, y, width, height);\n };\n Context.prototype.fillText = function (a0, a1, a2) {\n this._context.fillText(a0, a1, a2);\n };\n Context.prototype.measureText = function (text) {\n return this._context.measureText(text);\n };\n Context.prototype.getImageData = function (a0, a1, a2, a3) {\n return this._context.getImageData(a0, a1, a2, a3);\n };\n Context.prototype.lineTo = function (a0, a1) {\n this._context.lineTo(a0, a1);\n };\n Context.prototype.moveTo = function (a0, a1) {\n this._context.moveTo(a0, a1);\n };\n Context.prototype.rect = function (a0, a1, a2, a3) {\n this._context.rect(a0, a1, a2, a3);\n };\n Context.prototype.putImageData = function (a0, a1, a2) {\n this._context.putImageData(a0, a1, a2);\n };\n Context.prototype.quadraticCurveTo = function (a0, a1, a2, a3) {\n this._context.quadraticCurveTo(a0, a1, a2, a3);\n };\n Context.prototype.restore = function () {\n this._context.restore();\n };\n Context.prototype.rotate = function (a0) {\n this._context.rotate(a0);\n };\n Context.prototype.save = function () {\n this._context.save();\n };\n Context.prototype.scale = function (a0, a1) {\n this._context.scale(a0, a1);\n };\n Context.prototype.setLineDash = function (a0) {\n if (this._context.setLineDash) {\n this._context.setLineDash(a0);\n } else if ('mozDash' in this._context) {\n this._context['mozDash'] = a0;\n } else if ('webkitLineDash' in this._context) {\n this._context['webkitLineDash'] = a0;\n }\n };\n Context.prototype.getLineDash = function () {\n return this._context.getLineDash();\n };\n Context.prototype.setTransform = function (a0, a1, a2, a3, a4, a5) {\n this._context.setTransform(a0, a1, a2, a3, a4, a5);\n };\n Context.prototype.stroke = function () {\n this._context.stroke();\n };\n Context.prototype.strokeText = function (a0, a1, a2, a3) {\n this._context.strokeText(a0, a1, a2, a3);\n };\n Context.prototype.transform = function (a0, a1, a2, a3, a4, a5) {\n this._context.transform(a0, a1, a2, a3, a4, a5);\n };\n Context.prototype.translate = function (a0, a1) {\n this._context.translate(a0, a1);\n };\n Context.prototype._enableTrace = function () {\n var that = this,\n len = CONTEXT_METHODS.length,\n _simplifyArray = Util_1.Util._simplifyArray,\n origSetter = this.setAttr,\n n,\n args;\n var func = function (methodName) {\n var origMethod = that[methodName],\n ret;\n that[methodName] = function () {\n args = _simplifyArray(Array.prototype.slice.call(arguments, 0));\n ret = origMethod.apply(that, arguments);\n that._trace({\n method: methodName,\n args: args\n });\n return ret;\n };\n };\n for (n = 0; n < len; n++) {\n func(CONTEXT_METHODS[n]);\n }\n that.setAttr = function () {\n origSetter.apply(that, arguments);\n var prop = arguments[0];\n var val = arguments[1];\n if (prop === 'shadowOffsetX' || prop === 'shadowOffsetY' || prop === 'shadowBlur') {\n val = val / this.canvas.getPixelRatio();\n }\n that._trace({\n property: prop,\n val: val\n });\n };\n };\n Context.prototype._applyGlobalCompositeOperation = function (node) {\n var globalCompositeOperation = node.getGlobalCompositeOperation();\n if (globalCompositeOperation !== 'source-over') {\n this.setAttr('globalCompositeOperation', globalCompositeOperation);\n }\n };\n return Context;\n}();\nexports.Context = Context;\nCONTEXT_PROPERTIES.forEach(function (prop) {\n Object.defineProperty(Context.prototype, prop, {\n get: function () {\n return this._context[prop];\n },\n set: function (val) {\n this._context[prop] = val;\n }\n });\n});\nvar SceneContext = function (_super) {\n __extends(SceneContext, _super);\n function SceneContext() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SceneContext.prototype._fillColor = function (shape) {\n var fill = shape.fill();\n this.setAttr('fillStyle', fill);\n shape._fillFunc(this);\n };\n SceneContext.prototype._fillPattern = function (shape) {\n var fillPatternX = shape.getFillPatternX(),\n fillPatternY = shape.getFillPatternY(),\n fillPatternRotation = Global_1.Konva.getAngle(shape.getFillPatternRotation()),\n fillPatternOffsetX = shape.getFillPatternOffsetX(),\n fillPatternOffsetY = shape.getFillPatternOffsetY(),\n fillPatternScaleX = shape.getFillPatternScaleX(),\n fillPatternScaleY = shape.getFillPatternScaleY();\n if (fillPatternX || fillPatternY) {\n this.translate(fillPatternX || 0, fillPatternY || 0);\n }\n if (fillPatternRotation) {\n this.rotate(fillPatternRotation);\n }\n if (fillPatternScaleX || fillPatternScaleY) {\n this.scale(fillPatternScaleX, fillPatternScaleY);\n }\n if (fillPatternOffsetX || fillPatternOffsetY) {\n this.translate(-1 * fillPatternOffsetX, -1 * fillPatternOffsetY);\n }\n this.setAttr('fillStyle', shape._getFillPattern());\n shape._fillFunc(this);\n };\n SceneContext.prototype._fillLinearGradient = function (shape) {\n var grd = shape._getLinearGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n };\n SceneContext.prototype._fillRadialGradient = function (shape) {\n var grd = shape._getRadialGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n };\n SceneContext.prototype._fill = function (shape) {\n var hasColor = shape.fill(),\n fillPriority = shape.getFillPriority();\n if (hasColor && fillPriority === 'color') {\n this._fillColor(shape);\n return;\n }\n var hasPattern = shape.getFillPatternImage();\n if (hasPattern && fillPriority === 'pattern') {\n this._fillPattern(shape);\n return;\n }\n var hasLinearGradient = shape.getFillLinearGradientColorStops();\n if (hasLinearGradient && fillPriority === 'linear-gradient') {\n this._fillLinearGradient(shape);\n return;\n }\n var hasRadialGradient = shape.getFillRadialGradientColorStops();\n if (hasRadialGradient && fillPriority === 'radial-gradient') {\n this._fillRadialGradient(shape);\n return;\n }\n if (hasColor) {\n this._fillColor(shape);\n } else if (hasPattern) {\n this._fillPattern(shape);\n } else if (hasLinearGradient) {\n this._fillLinearGradient(shape);\n } else if (hasRadialGradient) {\n this._fillRadialGradient(shape);\n }\n };\n SceneContext.prototype._strokeLinearGradient = function (shape) {\n var start = shape.getStrokeLinearGradientStartPoint(),\n end = shape.getStrokeLinearGradientEndPoint(),\n colorStops = shape.getStrokeLinearGradientColorStops(),\n grd = this.createLinearGradient(start.x, start.y, end.x, end.y);\n if (colorStops) {\n for (var n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n this.setAttr('strokeStyle', grd);\n }\n };\n SceneContext.prototype._stroke = function (shape) {\n var dash = shape.dash(),\n strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (shape.hasStroke()) {\n if (!strokeScaleEnabled) {\n this.save();\n var pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n if (dash && shape.dashEnabled()) {\n this.setLineDash(dash);\n this.setAttr('lineDashOffset', shape.dashOffset());\n }\n this.setAttr('lineWidth', shape.strokeWidth());\n if (!shape.getShadowForStrokeEnabled()) {\n this.setAttr('shadowColor', 'rgba(0,0,0,0)');\n }\n var hasLinearGradient = shape.getStrokeLinearGradientColorStops();\n if (hasLinearGradient) {\n this._strokeLinearGradient(shape);\n } else {\n this.setAttr('strokeStyle', shape.stroke());\n }\n shape._strokeFunc(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n };\n SceneContext.prototype._applyShadow = function (shape) {\n var util = Util_1.Util,\n color = util.get(shape.getShadowRGBA(), 'black'),\n blur = util.get(shape.getShadowBlur(), 5),\n offset = util.get(shape.getShadowOffset(), {\n x: 0,\n y: 0\n }),\n scale = shape.getAbsoluteScale(),\n ratio = this.canvas.getPixelRatio(),\n scaleX = scale.x * ratio,\n scaleY = scale.y * ratio;\n this.setAttr('shadowColor', color);\n this.setAttr('shadowBlur', blur * Math.min(Math.abs(scaleX), Math.abs(scaleY)));\n this.setAttr('shadowOffsetX', offset.x * scaleX);\n this.setAttr('shadowOffsetY', offset.y * scaleY);\n };\n return SceneContext;\n}(Context);\nexports.SceneContext = SceneContext;\nvar HitContext = function (_super) {\n __extends(HitContext, _super);\n function HitContext() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HitContext.prototype._fill = function (shape) {\n this.save();\n this.setAttr('fillStyle', shape.colorKey);\n shape._fillFuncHit(this);\n this.restore();\n };\n HitContext.prototype.strokeShape = function (shape) {\n if (shape.hasHitStroke()) {\n this._stroke(shape);\n }\n };\n HitContext.prototype._stroke = function (shape) {\n if (shape.hasHitStroke()) {\n var strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (!strokeScaleEnabled) {\n this.save();\n var pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n var hitStrokeWidth = shape.hitStrokeWidth();\n var strokeWidth = hitStrokeWidth === 'auto' ? shape.strokeWidth() : hitStrokeWidth;\n this.setAttr('lineWidth', strokeWidth);\n this.setAttr('strokeStyle', shape.colorKey);\n shape._strokeFuncHit(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n };\n return HitContext;\n}(Context);\nexports.HitContext = HitContext;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Grayscale = function (imageData) {\n var data = imageData.data,\n len = data.length,\n i,\n brightness;\n for (i = 0; i < len; i += 4) {\n brightness = 0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2];\n data[i] = brightness;\n data[i + 1] = brightness;\n data[i + 2] = brightness;\n }\n};"],"sourceRoot":""}