{“version”:3,“sources”:,“names”:[“installedModules”,“webpack_require”,“moduleId”,“exports”,“module”,“i”,“l”,“modules”,“call”,“m”,“c”,“d”,“name”,“getter”,“o”,“Object”,“defineProperty”,“enumerable”,“get”,“r”,“Symbol”,“toStringTag”,“value”,“t”,“mode”,“__esModule”,“ns”,“create”,“key”,“bind”,“n”,“object”,“property”,“prototype”,“hasOwnProperty”,“p”,“s”,“Util_1”,“Validators_1”,“Factory”,“addGetterSetter”,“constructor”,“attr”,“def”,“validator”,“after”,“this”,“addGetter”,“addSetter”,“addOverloadedGetterSetter”,“method”,“Util”,“_capitalize”,“val”,“attrs”,“undefined”,“overWriteSetter”,“_setAttr”,“addComponentsGetterSetter”,“components”,“component”,“len”,“length”,“capitalize”,“setter”,“ret”,“getAttr”,“basicValidator”,“getComponentValidator”,“oldVal”,“_fireChangeEvent”,“capitalizedAttr”,“arguments”,“addDeprecatedGetterSetter”,“error”,“message”,“backCompat”,“methods”,“each”,“oldMethodName”,“newMethodName”,“oldGetter”,“oldSetter”,“deprecated”,“apply”,“afterSetFilter”,“_filterUpToDate”,“PI_OVER_180”,“Math”,“PI”,“_detectIE”,“ua”,“msie”,“indexOf”,“parseInt”,“substring”,“rv”,“edge”,“_parseUA”,“userAgent”,“toLowerCase”,“match”,“exec”,“mobile”,“ieMobile”,“browser”,“version”,“isIE”,“glob”,“global”,“window”,“WorkerGlobalScope”,“self”,“Konva”,“_global”,“isBrowser”,“toString”,“isUnminified”,“test”,“param”,“dblClickWindow”,“getAngle”,“angle”,“angleDeg”,“enableTrace”,“_pointerEventsEnabled”,“hitOnDragEnabled”,“captureTouchEventsEnabled”,“listenClickTap”,“inDblClickWindow”,“pixelRatio”,“dragDistance”,“showWarnings”,“dragButtons”,“isDragging”,“isDragReady”,“node”,“UA”,“navigator”,“document”,“_injectGlobal”,“_NODES_REGISTRY”,“_registerNode”,“NodeClass”,“getClassName”,“Global_1”,“_formatValue”,“_isString”,“_isBoolean”,“RGBComponent”,“round”,“alphaComponent”,“getNumberValidator”,“_isNumber”,“warn”,“getNumberOrAutoValidator”,“getStringValidator”,“getFunctionValidator”,“_isFunction”,“getNumberArrayValidator”,“_isArray”,“forEach”,“item”,“getBooleanValidator”,“isObject”,“Collection”,“toCollection”,“arr”,“collection”,“push”,“_mapMethod”,“methodName”,“args”,“slice”,“mapMethods”,“prot”,“func”,“toArray”,“Transform”,“copy”,“point”,“x”,“y”,“translate”,“scale”,“sx”,“sy”,“rotate”,“rad”,“cos”,“sin”,“m11”,“m12”,“m21”,“m22”,“getTranslation”,“skew”,“multiply”,“matrix”,“dx”,“dy”,“invert”,“m0”,“m1”,“m2”,“m3”,“m4”,“m5”,“getMatrix”,“setAbsolutePosition”,“yt”,“xt”,“decompose”,“a”,“b”,“delta”,“result”,“rotation”,“scaleX”,“scaleY”,“skewX”,“skewY”,“sqrt”,“acos”,“_getRotation”,“PI_OVER_DEG180”,“DEG180_OVER_PI”,“COLORS”,“aliceblue”,“antiquewhite”,“aqua”,“aquamarine”,“azure”,“beige”,“bisque”,“black”,“blanchedalmond”,“blue”,“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”,“green”,“greenyellow”,“grey”,“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”,“red”,“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”,“obj”,“nodeType”,“_isPlainObject”,“isNaN”,“isFinite”,“isValidSelector”,“selector”,“firstChar”,“toUpperCase”,“_sign”,“number”,“requestAnimFrame”,“callback”,“requestAnimationFrame”,“queue”,“cb”,“createCanvasElement”,“canvas”,“createElement”,“style”,“e”,“createImageElement”,“_isInDocument”,“el”,“parentNode”,“_simplifyArray”,“retArr”,“util”,“_urlToImage”,“url”,“imageObj”,“Image”,“onload”,“src”,“_rgbToHex”,“g”,“_hexToRgb”,“hex”,“replace”,“bigint”,“getRandomColor”,“randColor”,“random”,“getRGB”,“color”,“rgb”,“substr”,“colorToRGBA”,“str”,“_namedColorToRBA”,“_hex3ColorToRGBA”,“_hex6ColorToRGBA”,“_rgbColorToRGBA”,“_rgbaColorToRGBA”,“_hslColorToRGBA”,“parts”,“split”,“map”,“Number”,“_a”,“hsl”,“h”,“t2”,“t3”,“t1”,“haveIntersection”,“r1”,“r2”,“width”,“height”,“cloneObject”,“retObj”,“cloneArray”,“_degToRad”,“deg”,“_radToDeg”,“radians”,“charAt”,“throw”,“Error”,“console”,“extend”,“child”,“parent”,“Ctor”,“oldProto”,“__super__”,“super”,“_getControlPoints”,“x0”,“y0”,“x1”,“y1”,“x2”,“y2”,“d01”,“pow”,“d12”,“fa”,“fb”,“_expandPoints”,“tension”,“cp”,“allPoints”,“_inRange”,“left”,“right”,“_getProjectionToSegment”,“x3”,“y3”,“dist”,“pd2”,“u”,“_getProjectionToLine”,“pt”,“line”,“isClosed”,“pc”,“MAX_VALUE”,“p1”,“p2”,“proj”,“px”,“py”,“pdist”,“_prepareArrayForTween”,“startArray”,“endArray”,“start”,“end”,“temp”,“newStart”,“pr”,“_prepareToStringify”,“desc”,“visitedByCircularReferenceRemoval”,“getOwnPropertyDescriptor”,“configurable”,“_assign”,“target”,“source”,“_getFirstPointerId”,“evt”,“touches”,“changedTouches”,“identifier”,“Factory_1”,“Canvas_1”,“DragAndDrop_1”,“ids”,“names”,“_removeId”,“id”,“_addName”,“_removeName”,“_id”,“nodes”,“splice”,“TRANSFORM_CHANGE_STR”,“join”,“emptyChildren”,“idCounter”,“Node”,“config”,“_this”,“eventListeners”,“index”,“_cache”,“Map”,“_lastPos”,“_batchingTransformChange”,“_needClearTransformCache”,“_isUnderCache”,“children”,“_dragEventId”,“setAttrs”,“on”,“_clearCache”,“_clearSelfAndDescendantCache”,“hasChildren”,“getChildren”,“delete”,“clear”,“_getCache”,“privateGetter”,“cache”,“set”,“_getCanvasCache”,“forceEvent”,“fire”,“isCached”,“clearCache”,“conf”,“rect”,“getClientRect”,“skipTransform”,“relativeTo”,“getParent”,“ceil”,“offset”,“drawBorder”,“cachedSceneCanvas”,“SceneCanvas”,“cachedFilterCanvas”,“cachedHitCanvas”,“HitCanvas”,“sceneContext”,“getContext”,“hitContext”,“isCache”,“imageSmoothingEnabled”,“_context”,“save”,“drawScene”,“drawHit”,“restore”,“beginPath”,“closePath”,“setAttr”,“stroke”,“scene”,“filter”,“hit”,“has”,“_transformedRect”,“top”,“minX”,“minY”,“maxX”,“maxY”,“points”,“trans”,“getAbsoluteTransform”,“transformed”,“min”,“max”,“_drawCachedSceneCanvas”,“context”,“_applyOpacity”,“_applyGlobalCompositeOperation”,“canvasCache”,“cacheCanvas”,“_getCachedSceneCanvas”,“ratio”,“drawImage”,“_canvas”,“_drawCachedHitCanvas”,“hitCanvas”,“imageData”,“filters”,“cachedCanvas”,“sceneCanvas”,“filterCanvas”,“filterContext”,“setSize”,“getWidth”,“getHeight”,“getImageData”,“putImageData”,“evtStr”,“handler”,“_delegate”,“baseEvent”,“events”,“off”,“_off”,“dispatchEvent”,“type”,“addEventListener”,“removeEventListener”,“event”,“stopNode”,“targets”,“findAncestors”,“currentTarget”,“remove”,“stopDrag”,“DD”,“_dragElements”,“_remove”,“_clearCaches”,“_setChildrenIndices”,“destroy”,“subname”,“getAncestors”,“ancestors”,“getAttrs”,“isListening”,“_isListening”,“listening”,“isVisible”,“_isVisible”,“visible”,“shouldDrawHit”,“layer”,“getLayer”,“hitGraphEnabled”,“show”,“hide”,“getZIndex”,“getAbsoluteZIndex”,“depth”,“getDepth”,“that”,“addChildren”,“concat”,“getStage”,“_batchTransformChanges”,“setPosition”,“pos”,“getPosition”,“getAbsolutePosition”,“haveCachedParent”,“absoluteMatrix”,“absoluteTransform”,“it”,“origTrans”,“_clearTransform”,“_getAbsoluteTransform”,“_setTransform”,“offsetX”,“offsetY”,“move”,“change”,“changeX”,“changeY”,“_eachAncestorReverse”,“family”,“unshift”,“theta”,“moveToTop”,“moveUp”,“moveDown”,“moveToBottom”,“setZIndex”,“zIndex”,“getAbsoluteOpacity”,“_getAbsoluteOpacity”,“absOpacity”,“opacity”,“moveTo”,“newContainer”,“add”,“toObject”,“defaultValue”,“className”,“toJSON”,“JSON”,“stringify”,“includeSelf”,“res”,“_isMatch”,“ancestor”,“isAncestorOf”,“findAncestor”,“sel”,“selectorArr”,“hasName”,“_getStage”,“eventType”,“bubble”,“_fireAndBubble”,“_fire”,“at”,“transformsEnabled”,“getTransform”,“getAbsoluteScale”,“getAbsoluteRotation”,“_getTransform”,“clone”,“allListeners”,“listener”,“_toKonvaCanvas”,“box”,“stage”,“toCanvas”,“toDataURL”,“mimeType”,“quality”,“toImage”,“img”,“size”,“getSize”,“getType”,“getDragDistance”,“evtName”,“evtListeners”,“newVal”,“setId”,“oldId”,“_addId”,“setName”,“oldNames”,“newNames”,“addName”,“oldName”,“newName”,“fullName”,“removeName”,“_setComponentAttr”,“compareShape”,“stopBubble”,“cancelBubble”,“draw”,“_createDragElement”,“pointerId”,“ap”,“_getPointerById”,“_changedPointerPositions”,“startPointerPos”,“dragStatus”,“startDrag”,“_setDragPosition”,“elem”,“newNodePos”,“dbf”,“dragBoundFunc”,“bounded”,“batchDraw”,“_endDragBefore”,“_endDragAfter”,“setDraggable”,“draggable”,“_dragChange”,“_listenDrag”,“_dragCleanup”,“hasDraggingChild”,“data”,“container”,“parse”,“_createNode”,“no”,“Class”,“_attrsAffectingSize”,“rotateDeg”,“setRotationDeg”,“getRotationDeg”,“extendStatics”,“__extends”,“setPrototypeOf”,“__proto__”,“Array”,“__”,“dummyContext”,“Node_1”,“PointerEvents”,“getDummyContext”,“_clearHasShadowCache”,“_clearGetShadowRGBACache”,“_clearFillPatternCache”,“_clearLinearGradientCache”,“_clearRadialGradientCache”,“shapes”,“Shape”,“_super”,“colorKey”,“getCanvas”,“getSceneFunc”,“sceneFunc”,“getHitFunc”,“hitFunc”,“hasShadow”,“_hasShadow”,“shadowEnabled”,“shadowOpacity”,“shadowColor”,“shadowBlur”,“shadowOffsetX”,“shadowOffsetY”,“_getFillPattern”,“__getFillPattern”,“fillPatternImage”,“createPattern”,“fillPatternRepeat”,“_getLinearGradient”,“__getLinearGradient”,“colorStops”,“fillLinearGradientColorStops”,“ctx”,“fillLinearGradientStartPoint”,“fillLinearGradientEndPoint”,“grd”,“createLinearGradient”,“addColorStop”,“_getRadialGradient”,“__getRadialGradient”,“fillRadialGradientColorStops”,“fillRadialGradientStartPoint”,“fillRadialGradientEndPoint”,“createRadialGradient”,“fillRadialGradientStartRadius”,“fillRadialGradientEndRadius”,“getShadowRGBA”,“_getShadowRGBA”,“rgba”,“hasFill”,“fillEnabled”,“fill”,“hasStroke”,“strokeEnabled”,“strokeWidth”,“strokeLinearGradientColorStops”,“hasHitStroke”,“hitStrokeWidth”,“intersects”,“bufferHitCanvas”,“_useBufferCanvas”,“caching”,“perfectDrawEnabled”,“setStrokeHitEnabled”,“getStrokeHitEnabled”,“getSelfRect”,“_centroid”,“fillRect”,“skipStroke”,“fillAndStrokeWidth”,“fillAndStrokeHeight”,“applyShadow”,“skipShadow”,“preWidth”,“abs”,“preHeight”,“blurRadius”,“roundingOffset”,“can”,“skipBuffer”,“bufferCanvas”,“bufferContext”,“drawFunc”,“_applyTransform”,“_applyLineJoin”,“transform”,“_applyShadow”,“shadowForStrokeEnabled”,“log”,“drawHitFromCache”,“alphaThreshold”,“hitImageData”,“hitData”,“rgbColorKey”,“hitWidth”,“hitHeight”,“hasPointerCapture”,“setPointerCapture”,“releaseCapture”,“_fillFunc”,“_strokeFunc”,“_fillFuncHit”,“_strokeFuncHit”,“dashArray”,“getDashArray”,“setDashArray”,“getDrawFunc”,“setDrawFunc”,“drawHitFunc”,“getDrawHitFunc”,“setDrawHitFunc”,“Pair”,“anchor”,“Anchor”,“None”,“connector”,“Structure”,“itself”,“orthogonalTransform”,“Piece”,“up”,“down”,“metadata”,“centralAnchor”,“_size”,“_initializeListeners”,“configure”,“translateListeners”,“connectListeners”,“disconnectListeners”,“centerAround”,“import”,“annotate”,“resize”,“assign”,“puzzle”,“connections”,“rightConnection”,“downConnection”,“leftConnection”,“upConnection”,“f”,“other”,“others”,“back”,“vertical”,“connectWith”,“proximity”,“attract”,“horizontal”,“tryConnectHorizontallyWith”,“tryConnectVerticallyWith”,“canConnectHorizontallyWith”,“connectHorizontallyWith”,“canConnectVerticallyWith”,“connectVerticallyWith”,“connected”,“presentConnections”,“fireDisconnect”,“isAt”,“quiet”,“diff”,“recenterAround”,“isNull”,“fireTranslate”,“pushedPieces”,“stationaries”,“horizontallyOpenMovement”,“vericallyOpenMovement”,“disconnect”,“autoconnectWith”,“drag”,“drop”,“openMovement”,“canConnectWith”,“closeTo”,“translated”,“radio”,“diameter”,“pieceSize”,“compact”,“base”,“export”,“structure”,“serialize”,“dump”,“deserialize”,“vector”,“cast”,“one”,“first”,“second”,“inner”,“equal”,“zero”,“update”,“v1”,“v2”,“divide”,“plus”,“minus”,“between”,“tolerance”,“asVector”,“Container”,“filterFunc”,“results”,“removeChildren”,“destroyChildren”,“_i”,“_children”,“_validateAdd”,“find”,“_generalFind”,“findOne”,“_descendants”,“valid”,“fn”,“getAllIntersections”,“shape”,“_drawChildren”,“drawMethod”,“skipComposition”,“clipX”,“clipY”,“clipWidth”,“clipHeight”,“clipFunc”,“hasClip”,“clip”,“hasComposition”,“globalCompositeOperation”,“layerUnderDrag”,“dragSkip”,“selfRect”,“Infinity”,“hasVisible”,“_pixelRatio”,“Context_1”,“Canvas”,“devicePixelRatio”,“webkitBackingStorePixelRatio”,“mozBackingStorePixelRatio”,“msBackingStorePixelRatio”,“oBackingStorePixelRatio”,“backingStorePixelRatio”,“getDevicePixelRatio”,“padding”,“margin”,“border”,“background”,“position”,“getPixelRatio”,“setPixelRatio”,“previousRatio”,“setWidth”,“setHeight”,“err”,“SceneContext”,“HitContext”,“NullValidator”,“Vector”,“Shuffler”,“Puzzle”,“pieceRadio”,“pieces”,“piece”,“addPiece”,“belongTo”,“relocateTo”,“tryConnectWith”,“shuffleWith”,“shuffler”,“autoconnect”,“onTranslate”,“onConnect”,“onDisconnect”,“onValid”,“asPair”,“head”,“isValid”,“validate”,“every”,“options”,“addPieces”,“Tab”,“isSlot”,“isTab”,“isNone”,“complement”,“Slot”,“orthogonalMap”,“values”,“mapper”,“replacement”,“pivot”,“arg”,“AbstractValidator”,“validListeners”,“_valid”,“wasValid”,“updateValidity”,“fireValid”,“PuzzleValidator”,“condition”,“dx0”,“dy0”,“DIFF_DELTA”,“relativeRefs”,“expected”,“refs”,“diff0”,“equalDiffs”,“PieceValidator”,“select”,“insert”,“sl”,“sr”,“su”,“sd”,“Squared”,“borderFill”,“sizeVector”,“Classic”,“Rounded”,“bezelize”,“bezelDepth”,“insertDepth”,“borderLength”,“referenceInsertAxis”,“fullSize”,“atVector”,“trunc”,“referenceInsertAxisLength”,“b0”,“b1”,“b2”,“b3”,“bezels”,“nx”,“ny”,“rsy”,“rsx”,“r2sy”,“r2sx”,“Manufacturer”,“twoAndTwo”,“ImageMetadata”,“Metadata”,“SpatialMetadata”,“Horizontal”,“Vertical”,“strokeColor”,“lineSoftness”,“preventOffstageDrag”,“image”,“fixed”,“painter”,“puzzleDiameter”,“maxPiecesCount”,“outline”,“imageMetadata”,“asImageMetadata”,“_painter”,“_initialize”,“initialize”,“_maxPiecesCount”,“_puzzleDiameter”,“_imageAdjuster”,“_outline”,“_puzzle”,“figures”,“templates”,“renderPiece”,“_newPiece”,“figure”,“label”,“group”,“sketch”,“text”,“fontSize”,“_bindGroupToPiece”,“_bindPieceToGroup”,“_annotatePiecePosition”,“renderPieces”,“horizontalPiecesCount”,“verticalPiecesCount”,“insertsGenerator”,“manufacturer”,“withDimmensions”,“withInsertsGenerator”,“withMetadata”,“autogenerateWithManufacturer”,“withStructure”,“settings”,“build”,“template”,“templateName”,“sketchPiece”,“farness”,“shuffle”,“autoconnected”,“columns”,“grid”,“solve”,“padder”,“noise”,“targetPosition”,“redraw”,“getFigure”,“reinitialize”,“attachValidator”,“solved”,“relativePosition”,“absolutePosition”,“getFigureById”,“factor”,“_dx”,“_dy”,“physicalTranslate”,“logicalTranslate”,“onDrag”,“onDragEnd”,“content”,“_baseImageMetadataFor”,“axis”,“atDimension”,“pieceDiameter”,“adjustImagesToPuzzle”,“adjustImagesToPiece”,“structureLike”,“newPiece”,“asStructure”,“currentPosition”,“estimatedPuzzleDiameter”,“_initializeEmptyPuzzle”,“flag”,“justDragged”,“_drag”,“setPointersPositions”,“drawNode”,“parseInsert”,“string”,“sampleIndex”,“list”,“_it”,“atRandom”,“destinations”,“j”,“destination”,“column”,“Set”,“lineLength”,“linePivot”,“init”,“tail”,“noop”,“maxDistance”,“InsertSequence”,“generator”,“_previous”,“_current”,“_n”,“flipflop”,“_”,“Container_1”,“Group”,“now”,“performance”,“Date”,“getTime”,“Animation”,“layers”,“animIdCounter”,“frame”,“time”,“timeDiff”,“lastTime”,“frameRate”,“setLayers”,“lays”,“getLayers”,“addLayer”,“isRunning”,“animations”,“stop”,“_addAnimation”,“_removeAnimation”,“_updateFrameObject”,“anim”,“_handleAnimation”,“_runFrames”,“layersLen”,“layerHash”,“_animationLoop”,“Anim”,“animRunning”,“Positioner”,“headAnchor”,“initializeOffset”,“positioner”,“horizontalSequence”,“verticalSequence”,“_newSequence”,“next”,“_buildPiece”,“naturalAnchor”,“_annotateAll”,“_annotate”,“baseMetadata”,“String”,“previousComplement”,“current”,“diffToTarget”,“CONTEXT_METHODS”,“Context”,“traceArr”,“_enableTrace”,“fillShape”,“_fill”,“strokeShape”,“_stroke”,“fillStrokeShape”,“getTrace”,“relaxed”,“trace”,“clearTrace”,“_trace”,“shift”,“reset”,“setTransform”,“bounds”,“clearRect”,“_applyLineCap”,“lineCap”,“getLineCap”,“lineJoin”,“getLineJoin”,“arc”,“a0”,“a1”,“a2”,“a3”,“a4”,“a5”,“arcTo”,“bezierCurveTo”,“createImageData”,“a6”,“a7”,“a8”,“ellipse”,“isPointInPath”,“strokeRect”,“fillText”,“measureText”,“lineTo”,“quadraticCurveTo”,“setLineDash”,“getLineDash”,“strokeText”,“origSetter”,“origMethod”,“prop”,“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”,“dash”,“strokeScaleEnabled”,“getStrokeScaleEnabled”,“dashEnabled”,“dashOffset”,“getShadowForStrokeEnabled”,“blur”,“getShadowBlur”,“getShadowOffset”,“Captures”,“SUPPORT_POINTER_EVENTS”,“createEvent”,“PointerEvent”,“getCapturedShape”,“BaseLayer”,“_waitingForDraw”,“_checkVisibility”,“_setSmoothEnabled”,“createPNGStream”,“getHitCanvas”,“removeChild”,“insertBefore”,“appendChild”,“display”,“getIntersection”,“__spreadArrays”,“il”,“k”,“jl”,“Shape_1”,“Line”,“_sceneFunc”,“tp”,“closed”,“bezier”,“getTensionPoints”,“_getTensionPoints”,“_getTensionPointsClosed”,“firstControlPoints”,“lastControlPoints”,“middle”,“Path”,“dataArray”,“pathLength”,“parsePathData”,“ca”,“command”,“cx”,“cy”,“rx”,“ry”,“dTheta”,“psi”,“fs”,“inc”,“getPointOnEllipticalArc”,“getPointOnCubicBezier”,“getLength”,“getPointAtLength”,“ii”,“getPointOnLine”,“getPointOnQuadraticBezier”,“getLineLength”,“P1x”,“P1y”,“P2x”,“P2y”,“fromX”,“fromY”,“run”,“rise”,“ix”,“iy”,“pRise”,“pRun”,“pct”,“P3x”,“P3y”,“P4x”,“P4y”,“CB1”,“CB2”,“CB3”,“CB4”,“QB1”,“QB2”,“QB3”,“cosPsi”,“sinPsi”,“cs”,“cc”,“RegExp”,“coords”,“cpx”,“cpy”,“re”,“jlen”,“parsed”,“parseFloat”,“prevCmd”,“ctlPtx”,“ctlPty”,“cmd”,“startX”,“startY”,“idx”,“convertEndpointToCenterParameterization”,“calcLength”,“path”,“psiDeg”,“xp”,“yp”,“lambda”,“cxp”,“cyp”,“vMag”,“v”,“vRatio”,“vAngle”,“Rect”,“cornerRadius”,“topLeft”,“topRight”,“bottomLeft”,“bottomRight”,“Global_2”,“ATTR_CHANGE_LIST”,“attrChangeListLen”,“trimRight”,“Text”,“checkDefaultFill”,“_partialTextX”,“_partialTextY”,“_setTextData”,“lineHeightPx”,“lineHeight”,“textArr”,“textArrLen”,“verticalAlign”,“alignY”,“align”,“totalWidth”,“letterSpacing”,“textDecoration”,“shouldUnderline”,“shouldLineThrough”,“translateY”,“lineTranslateX”,“lineTranslateY”,“_getContextFont”,“spacesNumber”,“oneWord”,“lineWidth”,“lastLine”,“strokeStyle”,“li”,“letter”,“floor”,“_partialText”,“measureSize”,“_hitFunc”,“setText”,“getTextWidth”,“textWidth”,“getTextHeight”,“textHeight”,“metrics”,“font”,“fontStyle”,“fontFamily”,“fontVariant”,“_addTextLine”,“trim”,“_getTextWidth”,“lines”,“fixedWidth”,“fixedHeight”,“maxWidth”,“maxHeightPx”,“currentHeightPx”,“wrap”,“shouldWrap”,“wrapAtWord”,“shouldAddEllipsis”,“ellipsis”,“additionalWidth”,“low”,“high”,“matchWidth”,“mid”,“substrWidth”,“wrapIndex”,“nextChar”,“lastIndexOf”,“trimLeft”,“Outline”,“generators”,“painters”,“Dummy”,“Connector”,“forward”,“backward”,“forwardAnchor”,“backwardAnchor”,“forwardConnection”,“backwardConnection”,“iron”,“magnet”,“fireConnect”,“imageLike”,“HTMLImageElement”,“HTMLCanvasElement”,“Painter”,“drawn”,“_piece”,“_figure”,“Stage”,“_options”,“_newStage”,“_initializeLayer”,“_newLayer”,“_newGroup”,“furthermost”,“_newLine”,“isBezier”,“imageMetadataFor”,“fillPatternScale”,“fillPatternOffset”,“_newText”,“body”,“cursor”,“model”,“currentPositionDiff”,“Layer”,“_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”,“Arc”,“Arrow”,“Circle”,“Ellipse”,“Label”,“Tag”,“RegularPolygon”,“Ring”,“Sprite”,“Star”,“TextPath”,“Transformer”,“Wedge”,“Filters”,“Blur”,“Brighten”,“Contrast”,“Emboss”,“Enhance”,“Grayscale”,“HSL”,“HSV”,“Invert”,“Kaleidoscope”,“Mask”,“Noise”,“Pixelate”,“Posterize”,“RGB”,“RGBA”,“Sepia”,“Solarize”,“Threshold”,“Stage_1”,“Layer_1”,“FastLayer_1”,“Group_1”,“Animation_1”,“Tween_1”,“stages”,“FastLayer”,“Tween”,“Easings”,“Function”,“EVENTS”,“eventsLength”,“addEvent”,“eventName”,“checkNoClip”,“_pointerPositions”,“_buildDOM”,“_bindContentEvents”,“_resizeDOM”,“isLayer”,“isFastLayer”,“setContainer”,“getElementsByClassName”,“getElementById”,“parentElement”,“getPointerPosition”,“getPointersPositions”,“getContent”,“layerCanvas”,“_mouseenter”,“_mouseover”,“_mouseout”,“targetShape”,“eventsEnabled”,“pointerPos”,“_mousemove”,“_touchmove”,“cancelable”,“preventDefault”,“_mousedown”,“_touchstart”,“clickStartShape”,“_mouseup”,“_touchend”,“clickEndShape”,“fireDblClick”,“clearTimeout”,“dblTimeout”,“setTimeout”,“_contextmenu”,“triggeredOnShape”,“tapStartShape”,“processedShapesIds”,“tapTriggered”,“dblTapTriggered”,“_wheel”,“_pointerdown”,“_pointermove”,“_pointerup”,“_pointercancel”,“_lostpointercapture”,“contentPosition”,“_getContentPosition”,“touch”,“clientX”,“clientY”,“_setPointerPosition”,“getBoundingClientRect”,“clientWidth”,“clientHeight”,“innerHTML”,“userSelect”,“setAttribute”,“BaseLayer_1”,“INTERSECTION_OFFSETS”,“INTERSECTION_OFFSETS_LEN”,“intersectionOffset”,“spiralSearchDistance”,“continueSearch”,“_getIntersection”,“antialiased”,“p3”,“clearBeforeDraw”,“enableHitGraph”,“disableHitGraph”,“toggleHitCanvas”,“blacklist”,“duration”,“easing”,“onFinish”,“yoyo”,“colorAttrs”,“TweenEngine”,“propFunc”,“begin”,“finish”,“_pos”,“_change”,“prevPos”,“_time”,“_position”,“_startTime”,“_finish”,“pause”,“setTime”,“reverse”,“play”,“state”,“getTimer”,“onEnterFrame”,“seek”,“nodeId”,“Linear”,“tween”,“_tweenFunc”,“_addListeners”,“tweens”,“_addAttr”,“onReset”,“tweenId”,“trueEnd”,“trueStart”,“endRGBA”,“startRGBA”,“onPlay”,“onReverse”,“onPause”,“thisId”,“to”,“params”,“BackEaseIn”,“BackEaseOut”,“BackEaseInOut”,“ElasticEaseIn”,“asin”,“ElasticEaseOut”,“ElasticEaseInOut”,“BounceEaseOut”,“BounceEaseIn”,“BounceEaseInOut”,“EaseIn”,“EaseOut”,“EaseInOut”,“StrongEaseIn”,“StrongEaseOut”,“StrongEaseInOut”,“clockwise”,“outerRadius”,“innerRadius”,“PI2”,“fromTension”,“atan2”,“pointerLength”,“pointerWidth”,“pointerAtBeginning”,“isDashEnabled”,“lineRect”,“radius”,“radiusX”,“radiusY”,“cropWidth”,“cropHeight”,“cropX”,“cropY”,“fromURL”,“crossOrigin”,“_sync”,“getText”,“getTag”,“pointerDirection”,“pointerHeight”,“tag”,“direction”,“sides”,“PIx2”,“_updated”,“updated”,“frameIndex”,“clearInterval”,“interval”,“_setInterval”,“animation”,“ix4”,“offsets”,“frameOffsets”,“ix2”,“setInterval”,“_updateIndex”,“getIndex”,“setIndex”,“numPoints”,“partialText”,“dummyCanvas”,“kerningFunc”,“textBaseline”,“glyphInfo”,“p0”,“_getTextSize”,“textFullWidth”,“fullPathWidth”,“pathCmd”,“charArr”,“pIndex”,“currentT”,“getNextPathSegment”,“pathData”,“findSegmentToFitCharacter”,“glyphWidth”,“currLen”,“attempts”,“cumulativePathLength”,“needNewSegment”,“lettersInOffset”,“kern”,“midpoint”,“transposeX”,“transposeY”,“info”,“__assign”,“ANGLES”,“TOUCH_DEVICE”,“ANCHORS_NAMES”,“rotateAroundPoint”,“angleRad”,“rotateAroundCenter”,“deltaRad”,“getCenter”,“_transforming”,“_createElements”,“_handleMouseMove”,“_handleMouseUp”,“getNode”,“attachTo”,“setNode”,“setNodes”,“_nodes”,“detach”,“additionalEvents”,“onChange”,“_resetTransformCache”,“_proxyDrag”,“lastPos”,“otherNode”,“otherAbs”,“getNodes”,“getActiveAnchor”,“_movingAnchorName”,“_getNodeRect”,“__getNodeRect”,“__getNodeShape”,“rot”,“relative”,“ignoreStroke”,“absScale”,“absPos”,“totalPoints”,“tr”,“getX”,“getY”,“_createBack”,“_createAnchor”,“_handleMouseDown”,“anchorName”,“getCursor”,“_cursorChange”,“rotateEnabled”,“rotateAnchorOffset”,“shouldOverdrawWholeArea”,“hypotenuse”,“_anchorDragOffset”,“newHypotenuse”,“anchorNode”,“pp”,“oldAbs”,“newAbs”,“keepProportion”,“keepRatio”,“shiftKey”,“centeredScaling”,“altKey”,“comparePoint”,“reverseX”,“reverseY”,“topOffsetX”,“topOffsetY”,“bottomOffsetX”,“bottomOffsetY”,“_fitNodesInto”,“newRotation”,“tol”,“rotationSnapTolerance”,“snaps”,“newRotationRad”,“snapped”,“absDiff”,“getSnap”,“rotationSnaps”,“_removeEvents”,“newAttrs”,“oldAttrs”,“boundBoxFunc”,“oldTr”,“newTr”,“parentTransform”,“localTransform”,“newLocalTransform”,“forceUpdate”,“_batchChangeChild”,“enabledAnchors”,“resizeEnabled”,“anchorSize”,“anchorStroke”,“anchorStrokeWidth”,“anchorFill”,“anchorCornerRadius”,“borderEnabled”,“borderStroke”,“borderStrokeWidth”,“borderDash”,“isTransforming”,“stopTransform”,“lineEnabled”,“rotateHandlerOffset”,“enabledHandlers”,“getAngleDeg”,“setAngleDeg”,“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”,“pg”,“pb”,“pa”,“rbs”,“pixels”,“div”,“widthMinus1”,“heightMinus1”,“radiusPlus1”,“sumFactor”,“stackStart”,“stackEnd”,“stack”,“stackIn”,“stackOut”,“mul_sum”,“shg_sum”,“filterGaussBlurRGBA”,“brightness”,“adjust”,“contrast”,“nPixels”,“strength”,“embossStrength”,“greyLevel”,“embossWhiteLevel”,“embossDirection”,“blend”,“embossBlend”,“dirY”,“dirX”,“w”,“w4”,“otherY”,“offsetYOther”,“otherX”,“offsetOther”,“dR”,“dG”,“dB”,“dif”,“absDif”,“remap”,“fromValue”,“fromMin”,“fromMax”,“toMin”,“toMax”,“fromRange”,“toRange”,“nSubPixels”,“rMin”,“rMax”,“gMin”,“gMax”,“bMin”,“bMax”,“enhanceAmount”,“enhance”,“rMid”,“rGoalMax”,“rGoalMin”,“gMid”,“gGoalMax”,“gGoalMin”,“bMid”,“bGoalMax”,“bGoalMin”,“saturation”,“hue”,“luminance”,“vsu”,“vsw”,“rr”,“rg”,“rb”,“gr”,“gg”,“gb”,“br”,“bg”,“bb”,“srcPos”,“dstPos”,“xSize”,“ySize”,“power”,“kaleidoscopePower”,“kaleidoscopeAngle”,“tempCanvas”,“scratchData”,“dst”,“opt”,“srcPixels”,“dstPixels”,“xMid”,“polarCenterX”,“yMid”,“polarCenterY”,“rSize”,“tSize”,“conversion”,“ToPolar”,“minSectionSize”,“sectionSize”,“xStart”,“xEnd”,“xDelta”,“phaseShift”,“polarRotation”,“FromPolar”,“pixelAt”,“idata”,“rgbDistance”,“mask”,“threshold”,“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”,“amount”,“half”,“alpha”,“xBinStart”,“xBinEnd”,“yBinStart”,“yBinEnd”,“xBin”,“yBin”,“pixelsInBin”,“pixelSize”,“nBinsX”,“nBinsY”,“levels”,“ia”,“level”],“mappings”:“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xoD,UAAUyhC,UAAY,SAAUznB,GAClCnZ,KAAK8yD,OAAO35C,EAAS,IAElBwuC,EAxBC,CAyBV9P,EAAQ1mB,OACV9zB,EAAQsqD,MAAQA,EAChBA,EAAMxoD,UAAUorB,UAAY,QAC5Bo9B,EAAMxoD,UAAU21B,WAAY,EAC5B6yB,EAAMxoD,UAAU4wB,oBAAsB,CAAC,UACvC8tB,EAAS73C,cAAc2hD,GACvB3pC,EAAUve,QAAQC,gBAAgBioD,EAAO,SAAU,EAAGnoD,EAAakH,sBACnEsX,EAAUve,QAAQC,gBAAgBioD,EAAO,QAAS,EAAGnoD,EAAakH,sBAClEsX,EAAUve,QAAQC,gBAAgBioD,EAAO,aAAa,GACtD3pC,EAAUve,QAAQqC,WAAW6lD,EAAO,CAChC9iD,SAAU,QACVw4D,YAAa,WACbC,YAAa,aAEjB/9D,EAAOgI,WAAWS,WAAW2/C,I,6BC3D7B1pD,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtD,IAAIwf,EAAY,EAAQ,GACpB0S,EAAS,EAAQ,GACjBlxB,EAAe,EAAQ,GAC3B,SAAS+9D,IACLv9D,KAAK3B,EAAI,EACT2B,KAAKiX,EAAI,EACTjX,KAAKwK,EAAI,EACTxK,KAAKuK,EAAI,EACTvK,KAAKowC,KAAO,KAEhB,IAAIotB,EAAY,CACZ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEAC,EAAY,CACZ,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAwKJpgE,EAAQwqD,KAAO,SAAcvjC,GACzB,IAAIwuC,EAASpwD,KAAK8D,MAAMxG,KAAKw1B,cACzBs9B,EAAS,GAxKjB,SAA6BxuC,EAAWwuC,GACpC,IACIvqD,EAAGC,EAAGjL,EAAG8B,EAAG09C,EAAI2gB,EAAIC,EAAIC,EAAOC,EAAOC,EAAOC,EAAOC,EAAWC,EAAWC,EAAWC,EAAWC,EAAUC,EAAUC,EAAUC,EAAUrhD,EAAIshD,EAAIC,EAAIC,EAAIC,EADxJC,EAASt6C,EAAUmL,KAAMvW,EAAQoL,EAAUp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”,“file”:“headbreaker.js”,“sourcesContent”:[“ t// The module cachen tvar installedModules = {};nn t// The require functionn tfunction webpack_require(moduleId) {nn tt// Check if module is in cachen ttif(installedModules[moduleId]) {n tttreturn installedModules.exports;n tt}n tt// Create a new module (and put it into the cache)n ttvar module = installedModules = {n ttti: moduleId,n tttl: false,n tttexports: {}n tt};nn tt// Execute the module functionn ttmodules[moduleId].call(module.exports, module, module.exports, webpack_require);nn tt// Flag the module as loadedn ttmodule.l = true;nn tt// Return the exports of the modulen ttreturn module.exports;n t}nnn t// expose the modules object (webpack_modules)n t_webpack_require_.m = modules;nn t// expose the module cachen t_webpack_require_.c = installedModules;nn t// define getter function for harmony exportsn t_webpack_require_.d = function(exports, name, getter) {n ttif(!webpack_require.o(exports, name)) {n tttObject.defineProperty(exports, name, { enumerable: true, get: getter });n tt}n t};nn t// define __esModule on exportsn t_webpack_require_.r = function(exports) {n ttif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {n tttObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });n tt}n ttObject.defineProperty(exports, '__esModule', { value: true });n t};nn t// create a fake namespace objectn t// mode & 1: value is a module id, require itn t// mode & 2: merge all properties of value into the nsn t// mode & 4: return value when already ns objectn t// mode & 8|1: behave like requiren t_webpack_require_.t = function(value, mode) {n ttif(mode & 1) value = webpack_require(value);n ttif(mode & 8) return value;n ttif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;n ttvar ns = Object.create(null);n tt_webpack_require_.r(ns);n ttObject.defineProperty(ns, 'default', { enumerable: true, value: value });n ttif(mode & 2 && typeof value != 'string') for(var key in value) webpack_require.d(ns, key, function(key) { return value; }.bind(null, key));n ttreturn ns;n t};nn t// getDefaultExport function for compatibility with non-harmony modulesn t_webpack_require_.n = function(module) {n ttvar getter = module && module.__esModule ?n tttfunction getDefault() { return module; } :n tttfunction getModuleExports() { return module; };n tt_webpack_require_.d(getter, 'a', getter);n ttreturn getter;n t};nn t// Object.prototype.hasOwnProperty.calln t_webpack_require_.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };nn t// webpack_public_pathn t_webpack_require_.p = "";nnn t// Load entry module and return exportsn treturn webpack_require(_webpack_require_.s = 37);n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });nvar Util_1 = require("./Util");nvar Validators_1 = require("./Validators");nvar GET = 'get', 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 =n constructor.prototype ||n function () {n var val = this.attrs;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) {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 = 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, capitalize = Util_1.Util._capitalize, getter = GET + capitalize(attr), setter = SET + capitalize(attr), n, component;n constructor.prototype = function () {n var ret = {};n for (n = 0; n < len; n++) {n component = components;n ret = this.getAttr(attr + capitalize(component));n }n return ret;n };n var basicValidator = Validators_1.getComponentValidator(components);n constructor.prototype = function (val) {n var oldVal = this.attrs, 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);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), setter = SET + capitalizedAttr, getter = GET + capitalizedAttr;n constructor.prototype = function () {n if (arguments.length) {n this(arguments);n return this;n }n return this();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 +n ' property is deprecated and will be removed soon. Look at Konva change log for more information.';n constructor.prototype = function () {n Util_1.Util.error(message);n var val = this.attrs;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;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('"' +n oldMethodName +n '" method is deprecated and will be removed soon. Use ""' +n newMethodName +n '" instead.');n }n constructor.prototype = deprecated;n constructor.prototype = deprecated;n constructor.prototype = deprecated;n });n },n afterSetFilter: function () {n this._filterUpToDate = false;n }n};n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });nvar PI_OVER_180 = Math.PI / 180;nfunction detectBrowser() {n return (typeof window !== 'undefined' &&n ({}.toString.call(window) === '[object Window]' ||n {}.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(), match = /(chrome)[ /]([\w.]+)/.exec(ua) ||n /(webkit)[ /]([\w.]+)/.exec(ua) ||n /(opera)(?:.*version|)[ /]([\w.]+)/.exec(ua) ||n /(msie) ([\w.]+)/.exec(ua) ||n (ua.indexOf('compatible') < 0 &&n /(mozilla)(?:.*? rv:(+)|)/.exec(ua)) ||n [], mobile = !!userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i), ieMobile = !!userAgent.match(/IEMobile/i);n return {n browser: match || '',n version: match || '0',n isIE: _detectIE(ua),n mobile: mobile,n ieMobile: ieMobilen };n};nexports.glob = typeof global !== 'undefined'n ? globaln : typeof window !== 'undefined'n ? windown : typeof WorkerGlobalScope !== 'undefined'n ? selfn : {};nexports.Konva = {n _global: exports.glob,n version: '6.0.0',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.isDragging;n },n isDragReady: function () {n return !!exports.Konva.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._parseUAn};nexports._NODES_REGISTRY = {};nexports._registerNode = function (NodeClass) {n exports._NODES_REGISTRY = NodeClass;n exports.Konva = NodeClass;n};n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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 }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 }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) +n ' is a not valid value for "' +n attr +n '" 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) +n ' is a not valid value for "' +n attr +n '" 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) +n ' is a not valid value for "' +n attr +n '" 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) +n ' is a not valid value for "' +n attr +n '" 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) +n ' is a not valid value for "' +n attr +n '" attribute. The value should be a array of numbers.');n }n else {n val.forEach(function (item) {n if (!Util_1.Util._isNumber(item)) {n Util_1.Util.warn('"' +n attr +n '" attribute has non numeric element ' +n item +n '. 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) +n ' is a not valid value for "' +n attr +n '" 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) +n ' is a not valid value for "' +n attr +n '" attribute. The value should be an object with properties ' +n components);n }n return val;n };n }n}nexports.getComponentValidator = getComponentValidator;n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });nvar Global_1 = require("./Global");nvar Collection = (function () {n function Collection() {n }n Collection.toCollection = function (arr) {n var collection = new Collection(), len = arr.length, n;n for (n = 0; n < len; n++) {n collection.push(arr);n }n return collection;n };n Collection._mapMethod = function (methodName) {n Collection.prototype = function () {n var len = this.length, i;n var args = [].slice.call(arguments);n for (i = 0; i < len; i++) {n this[methodName].apply(this, 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};nCollection.prototype.toArray = function () {n var arr = [], len = this.length, n;n for (n = 0; n < len; n++) {n arr.push(this);n }n return arr;n};nvar Transform = (function () {n function Transform(m) {n if (m === void 0) { m = [1, 0, 0, 1, 0, 0]; }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 * point.x + m * point.y + m,n y: m * point.x + m * point.y + mn };n };n Transform.prototype.translate = function (x, y) {n this.m += this.m * x + this.m * y;n this.m += this.m * x + this.m * y;n return this;n };n Transform.prototype.scale = function (sx, sy) {n this.m *= sx;n this.m *= sx;n this.m *= sy;n this.m *= 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 * c + this.m * s;n var m12 = this.m * c + this.m * s;n var m21 = this.m * -s + this.m * c;n var m22 = this.m * -s + this.m * c;n this.m = m11;n this.m = m12;n this.m = m21;n this.m = m22;n return this;n };n Transform.prototype.getTranslation = function () {n return {n x: this.m,n y: this.mn };n };n Transform.prototype.skew = function (sx, sy) {n var m11 = this.m + this.m * sy;n var m12 = this.m + this.m * sy;n var m21 = this.m + this.m * sx;n var m22 = this.m + this.m * sx;n this.m = m11;n this.m = m12;n this.m = m21;n this.m = m22;n return this;n };n Transform.prototype.multiply = function (matrix) {n var m11 = this.m * matrix.m + this.m * matrix.m;n var m12 = this.m * matrix.m + this.m * matrix.m;n var m21 = this.m * matrix.m + this.m * matrix.m;n var m22 = this.m * matrix.m + this.m * matrix.m;n var dx = this.m * matrix.m + this.m * matrix.m + this.m;n var dy = this.m * matrix.m + this.m * matrix.m + this.m;n this.m = m11;n this.m = m12;n this.m = m21;n this.m = m22;n this.m = dx;n this.m = dy;n return this;n };n Transform.prototype.invert = function () {n var d = 1 / (this.m * this.m - this.m * this.m);n var m0 = this.m * d;n var m1 = -this.m[1] * d;n var m2 = -this.m[2] * d;n var m3 = this.m * d;n var m4 = d * (this.m * this.m - this.m * this.m);n var m5 = d * (this.m * this.m - this.m * this.m);n this.m = m0;n this.m = m1;n this.m = m2;n this.m = m3;n this.m = m4;n this.m = 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, m1 = this.m, m2 = this.m, m3 = this.m, m4 = this.m, m5 = this.m, yt = (m0 * (y - m5) - m1 * (x - m4)) / (m0 * m3 - m1 * m2), xt = (x - m4 - m2 * yt) / m0;n return this.translate(xt, yt);n };n Transform.prototype.decompose = function () {n var a = this.m;n var b = this.m;n var c = this.m;n var d = this.m;n var e = this.m;n var f = this.m;n var delta = a * d - b * c;n var result = {n x: e,n y: f,n rotation: 0,n scaleX: 0,n scaleY: 0,n skewX: 0,n skewY: 0n };n if (a != 0 || b != 0) {n var r = Math.sqrt(a * a + b * b);n result.rotation = b > 0 ? Math.acos(a / r) : -Math.acos(a / r);n result.scaleX = r;n result.scaleY = delta / r;n result.skewX = (a * c + b * d) / delta;n result.skewY = 0;n }n else if (c != 0 || d != 0) {n var s = Math.sqrt(c * c + d * d);n result.rotation =n Math.PI / 2 - (d > 0 ? Math.acos(-c / s) : -Math.acos(c / s));n result.scaleX = delta / s;n result.scaleY = s;n result.skewX = 0;n result.skewY = (a * c + b * d) / delta;n }n else {n }n result.rotation = exports.Util._getRotation(result.rotation);n return result;n };n return Transform;n}());nexports.Transform = Transform;nvar OBJECT_ARRAY = '[object Array]', OBJECT_NUMBER = '[object Number]', OBJECT_STRING = '[object String]', OBJECT_BOOLEAN = '[object Boolean]', PI_OVER_DEG180 = Math.PI / 180, DEG180_OVER_PI = 180 / Math.PI, HASH = '#', EMPTY_STRING = '', ZERO = '0', KONVA_WARNING = 'Konva warning: ', KONVA_ERROR = 'Konva error: ', RGB_PAREN = 'rgb(', 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}, RGB_REGEX = /rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/, 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 &&n !isNaN(obj) &&n 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;n return (firstChar === '#' ||n firstChar === '.' ||n firstChar === firstChar.toUpperCase());n },n _sign: function (number) {n if (number === 0) {n return 0;n }n if (number > 0) {n return 1;n }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 }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 = [], len = arr.length, util = exports.Util, n, val;n for (n = 0; n < len; n++) {n val = arr;n if (util._isNumber(val)) {n val = Math.round(val * 1000) / 1000;n }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 & 255n };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 }n else {n return val;n }n },n getRGB: function (color) {n var rgb;n if (color in COLORS) {n rgb = COLORS;n return {n r: rgb,n g: rgb,n b: rgbn };n }n else if (color === HASH) {n return this._hexToRgb(color.substring(1));n }n else if (color.substr(0, 4) === RGB_PAREN) {n rgb = RGB_REGEX.exec(color.replace(/ /g, ''));n return {n r: parseInt(rgb, 10),n g: parseInt(rgb, 10),n b: parseInt(rgb, 10)n };n }n else {n return {n r: 0,n g: 0,n b: 0n };n }n },n colorToRGBA: function (str) {n str = str || 'black';n return (exports.Util._namedColorToRBA(str) ||n exports.Util._hex3ColorToRGBA(str) ||n exports.Util._hex6ColorToRGBA(str) ||n exports.Util._rgbColorToRGBA(str) ||n exports.Util._rgbaColorToRGBA(str) ||n exports.Util._hslColorToRGBA(str));n },n _namedColorToRBA: function (str) {n var c = COLORS;n if (!c) {n return null;n }n return {n r: c,n g: c,n b: c,n a: 1n };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,n g: parts,n b: parts,n a: 1n };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,n g: parts,n b: parts,n a: partsn };n }n },n _hex6ColorToRGBA: function (str) {n if (str === '#' && 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: 1n };n }n },n _hex3ColorToRGBA: function (str) {n if (str === '#' && str.length === 4) {n return {n r: parseInt(str + str, 16),n g: parseInt(str + str, 16),n b: parseInt(str + str, 16),n a: 1n };n }n },n _hslColorToRGBA: function (str) {n if (/hsl\((\d+),\s*(+)%,\s*(+)%\)/g.test(str)) {n var _a = /hsl\((\d+),\s*(+)%,\s*(+)%\)/g.exec(str), _ = _a, hsl = _a.slice(1);n var h = Number(hsl) / 360;n var s = Number(hsl) / 100;n var l = Number(hsl) / 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: 1n };n }n if (l < 0.5) {n t2 = l * (1 + s);n }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 }n else if (2 * t3 < 1) {n val = t2;n }n else if (3 * t3 < 2) {n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;n }n else {n val = t1;n }n rgb = val * 255;n }n return {n r: Math.round(rgb),n g: Math.round(rgb),n b: Math.round(rgb),n a: 1n };n }n },n haveIntersection: function (r1, r2) {n return !(r2.x > r1.x + r1.width ||n r2.x + r2.width < r1.x ||n r2.y > r1.y + r1.height ||n 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)) {n retObj = this.cloneObject(obj);n }n else if (this._isArray(obj)) {n retObj = this.cloneArray(obj);n }n else {n retObj = obj;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 _getRotation: function (radians) {n return Global_1.Konva.angleDeg ? exports.Util._radToDeg(radians) : radians;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 = oldProto;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)), d12 = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)), fa = (t * d01) / (d01 + d12), fb = (t * d12) / (d01 + d12), p1x = x1 - fa * (x2 - x0), p1y = y1 - fa * (y2 - y0), p2x = x1 + fb * (x2 - x0), p2y = y1 + fb * (y2 - y0);n return [p1x, p1y, p2x, p2y];n },n _expandPoints: function (p, tension) {n var len = p.length, allPoints = [], n, cp;n for (n = 2; n < len - 2; n += 2) {n cp = exports.Util._getControlPoints(p[n - 2], p[n - 1], p, p[n + 1], p[n + 2], p[n + 3], tension);n allPoints.push(cp);n allPoints.push(cp);n allPoints.push(p);n allPoints.push(p[n + 1]);n allPoints.push(cp);n allPoints.push(cp);n }n return allPoints;n },n each: function (obj, func) {n for (var key in obj) {n func(key, obj);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 }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 }n else if (u > 1.0) {n x = x2;n y = y2;n dist = (x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3);n }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, py = proj, pdist = proj;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, start = [], 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 y: startArray[n + 1]n });n }n for (n = 0; n < endArray.length; n += 2) {n end.push({n x: endArray,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 && typeof obj == 'object')) {n continue;n }n desc = Object.getOwnPropertyDescriptor(obj, key);n if (obj.visitedByCircularReferenceRemoval ||n exports.Util._isElement(obj)) {n if (desc.configurable) {n delete obj;n }n else {n return null;n }n }n else if (exports.Util._prepareToStringify(obj) === null) {n if (desc.configurable) {n delete obj;n }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 = source;n }n return target;n },n _getFirstPointerId: function (evt) {n if (!evt.touches) {n return 999;n }n else {n return evt.changedTouches.identifier;n }n }n};n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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 = node;n};nexports._removeId = function (id, node) {n if (!id) {n return;n }n if (exports.ids !== node) {n return;n }n delete exports.ids;n};nexports._addName = function (node, name) {n if (name) {n if (!exports.names) {n exports.names = [];n }n exports.names.push(node);n }n};nexports._removeName = function (name, _id) {n if (!name) {n return;n }n var nodes = exports.names;n if (!nodes) {n return;n }n for (var n = 0; n < nodes.length; n++) {n var no = nodes;n if (no._id === _id) {n nodes.splice(n, 1);n }n }n if (nodes.length === 0) {n delete exports.names;n }n};nvar ABSOLUTE_OPACITY = 'absoluteOpacity', ABSOLUTE_TRANSFORM = 'absoluteTransform', ABSOLUTE_SCALE = 'absoluteScale', CANVAS = 'canvas', CHANGE = 'Change', CHILDREN = 'children', KONVA = 'konva', LISTENING = 'listening', MOUSEENTER = 'mouseenter', MOUSELEAVE = 'mouseleave', NAME = 'name', SET = 'set', SHAPE = 'Shape', SPACE = ' ', STAGE = 'stage', TRANSFORM = 'transform', UPPER_STAGE = 'Stage', VISIBLE = 'visible', TRANSFORM_CHANGE_STR = [n 'xChange.konva',n 'yChange.konva',n 'scaleXChange.konva',n 'scaleYChange.konva',n 'skewXChange.konva',n 'skewYChange.konva',n 'rotationChange.konva',n 'offsetXChange.konva',n 'offsetYChange.konva',n 'transformsEnabledChange.konva',n].join(SPACE), 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._batchingTransformChange = false;n this._needClearTransformCache = false;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 if (_this._batchingTransformChange) {n _this._needClearTransformCache = true;n return;n }n _this._clearCache(TRANSFORM);n _this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);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 }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, forceEvent) {n this._clearCache(attr);n if (forceEvent && attr === ABSOLUTE_TRANSFORM) {n this.fire('_clearTransformCache');n }n if (this.isCached()) {n return;n }n if (this.children) {n this.children.each(function (node) {n node._clearSelfAndDescendantCache(attr, true);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 ||n conf.y === undefined ||n conf.width === undefined ||n 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), height = Math.ceil(conf.height || rect.height), pixelRatio = conf.pixelRatio, x = conf.x === undefined ? rect.x : conf.x, y = conf.y === undefined ? rect.y : conf.y, offset = conf.offset || 0, 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 }), cachedFilterCanvas = new Canvas_1.SceneCanvas({n pixelRatio: pixelRatio,n width: 0,n height: 0,n }), cachedHitCanvas = new Canvas_1.HitCanvas({n pixelRatio: 1,n width: width,n height: height,n }), sceneContext = cachedSceneCanvas.getContext(), 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 }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, y: rect.y },n { x: rect.x + rect.width, y: rect.y },n { x: rect.x + rect.width, y: rect.y + rect.height },n { x: rect.x, 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(), 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(), cachedCanvas = this._getCanvasCache(), sceneCanvas = cachedCanvas.scene, filterCanvas = cachedCanvas.filter, filterContext = filterCanvas.getContext(), len, imageData, n, filter;n if (filters) {n if (!this._filterUpToDate) {n var ratio = sceneCanvas.pixelRatio;n filterCanvas.setSize(sceneCanvas.width / sceneCanvas.pixelRatio, sceneCanvas.height / 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 if (typeof filter !== 'function') {n Util_1.Util.error('Filter should be type of function, but got ' +n typeof filter +n ' instead. Please check correct filters');n continue;n }n filter.call(this, imageData);n filterContext.putImageData(imageData, 0, 0);n }n }n catch (e) {n Util_1.Util.error('Unable to apply filter. ' +n e.message +n ' This post my help you 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), len = events.length, n, event, parts, baseEvent, name;n for (n = 0; n < len; n++) {n event = events;n parts = event.split('.');n baseEvent = parts;n name = parts || '';n if (!this.eventListeners) {n this.eventListeners = [];n }n this.eventListeners.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), len = events.length, n, t, event, parts, baseEvent, 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 parts = event.split('.');n baseEvent = parts;n name = parts;n if (baseEvent) {n if (this.eventListeners) {n this._off(baseEvent, name, callback);n }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;n handler.call(targets, 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;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)) {n return this();n }n return this.attrs;n };n Node.prototype.getAncestors = function () {n var parent = this.getParent(), 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)) {n this(config);n }n else {n this._setAttr(key, config);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(), parent = this.getParent();n if (listening === 'inherit') {n if (parent) {n return parent.isListening();n }n else {n return true;n }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(), parent = this.getParent();n if (visible === 'inherit') {n if (parent && parent !== relativeTo) {n return parent._isVisible(relativeTo);n }n else {n return true;n }n }n else if (relativeTo && relativeTo !== parent) {n return visible && parent._isVisible(relativeTo);n }n else {n return visible;n }n };n Node.prototype.shouldDrawHit = function () {n var layer = this.getLayer();n return ((!layer && this.isListening() && this.isVisible()) ||n (layer &&n layer.hitGraphEnabled() &&n this.isListening() &&n 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(), that = this, index = 0, nodes, len, n, child;n function addChildren(children) {n nodes = [];n len = children.length;n for (n = 0; n < len; n++) {n child = children;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.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, parent = this.parent;n while (parent) {n depth++;n parent = parent.parent;n }n return depth;n };n Node.prototype._batchTransformChanges = function (func) {n this._batchingTransformChange = true;n func();n this._batchingTransformChange = false;n if (this._needClearTransformCache) {n this._clearCache(TRANSFORM);n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM, true);n }n this._needClearTransformCache = false;n };n Node.prototype.setPosition = function (pos) {n var _this = this;n this._batchTransformChanges(function () {n _this.x(pos.x);n _this.y(pos.y);n });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(), absoluteTransform = new Util_1.Transform(), 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(), it;n this.attrs.x = origTrans.x;n this.attrs.y = origTrans.y;n delete origTrans.x;n delete origTrans.y;n this._clearCache(TRANSFORM);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._setTransform(origTrans);n this.setPosition({ x: pos.x, y: pos.y });n return this;n };n Node.prototype._setTransform = function (trans) {n var key;n for (key in trans) {n this.attrs = trans;n }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 return trans;n };n Node.prototype.move = function (change) {n var changeX = change.x, changeY = change.y, x = this.x(), y = this.y();n if (changeX !== undefined) {n x += changeX;n }n if (changeY !== undefined) {n y += changeY;n }n this.setPosition({ x: x, y: y });n return this;n };n Node.prototype._eachAncestorReverse = function (func, top) {n var family = [], parent = this.getParent(), len, 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 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, 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 ' +n zIndex +n ' for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to ' +n (this.parent.children.length - 1) +n '.');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 = {}, attrs = this.getAttrs(), key, val, getter, defaultValue, nonPlainObject;n obj.attrs = {};n for (key in attrs) {n val = attrs;n nonPlainObject =n 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 === 'function' && this;n delete attrs;n defaultValue = getter ? getter.call(this) : null;n attrs = val;n if (defaultValue !== val) {n obj.attrs = 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);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(','), len = selectorArr.length, n, sel;n for (n = 0; n < len; n++) {n sel = selectorArr;n if (!Util_1.Util.isValidSelector(sel)) {n Util_1.Util.warn('Selector "' +n sel +n '" 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 }n else if (sel.charAt(0) === '.') {n if (this.hasName(sel.slice(1))) {n return true;n }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 }n else {n return undefined;n }n };n Node.prototype.fire = function (eventType, evt, bubble) {n if (evt === void 0) { evt = {}; }n evt.target = evt.target || this;n if (bubble) {n this._fireAndBubble(eventType, evt);n }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 }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 }n else if (transformsEnabled === 'position') {n at.translate(node.x() - node.offsetX(), node.y() - node.offsetY());n }n }, top);n return at;n }n else {n if (this.parent) {n at = this.parent.getAbsoluteTransform().copy();n }n else {n at = new Util_1.Transform();n }n var transformsEnabled = this.transformsEnabled();n if (transformsEnabled === 'all') {n at.multiply(this.getTransform());n }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 var parent = this;n while (parent) {n if (parent._isUnderCache) {n top = parent;n }n parent = parent.getParent();n }n var transform = this.getAbsoluteTransform(top);n var attrs = transform.decompose();n return {n x: attrs.scaleX,n y: attrs.scaleY,n };n };n Node.prototype.getAbsoluteRotation = function () {n return this.getAbsoluteTransform().decompose().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(), x = this.x(), y = this.y(), rotation = Global_1.Konva.getAngle(this.rotation()), scaleX = this.scaleX(), scaleY = this.scaleY(), skewX = this.skewX(), skewY = this.skewY(), offsetX = this.offsetX(), 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), key, allListeners, len, n, listener;n for (key in obj) {n attrs = obj;n }n var node = new this.constructor(attrs);n for (key in this.eventListeners) {n allListeners = this.eventListeners;n len = allListeners.length;n for (n = 0; n < len; n++) {n listener = allListeners;n if (listener.name.indexOf(KONVA) < 0) {n if (!node.eventListeners) {n node.eventListeners = [];n }n node.eventListeners.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(), x = config.x !== undefined ? config.x : box.x, y = config.y !== undefined ? config.y : box.y, pixelRatio = config.pixelRatio || 1, 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 }), 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, 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 }n else if (this.parent) {n return this.parent.getDragDistance();n }n else {n return Global_1.Konva.dragDistance;n }n };n Node.prototype._off = function (type, name, callback) {n var evtListeners = this.eventListeners, i, evtName, handler;n for (i = 0; i < evtListeners.length; i++) {n evtName = evtListeners.name;n handler = evtListeners.handler;n if ((evtName !== 'konva' || name === 'konva') &&n (!name || evtName === name) &&n (!callback || callback === handler)) {n evtListeners.splice(i, 1);n if (evtListeners.length === 0) {n delete this.eventListeners;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;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;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 }n else {n this._setAttr(attr, val);n }n return this;n };n Node.prototype._setAttr = function (key, val) {n var oldVal = this.attrs;n if (oldVal === val && !Util_1.Util.isObject(val)) {n return;n }n if (val === undefined || val === null) {n delete this.attrs;n }n else {n this.attrs = 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;n if (!oldVal) {n this.attrs = this.getAttr(key);n }n this.attrs[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) &&n ((compareShape &&n (this === compareShape ||n (this.isAncestorOf && this.isAncestorOf(compareShape)))) ||n (this.nodeType === 'Stage' && !compareShape));n if (!shouldStop) {n this._fire(eventType, evt);n var stopBubble = (eventType === MOUSEENTER || eventType === MOUSELEAVE) &&n compareShape &&n compareShape.isAncestorOf &&n compareShape.isAncestorOf(this) &&n !compareShape.isAncestorOf(this.parent);n if (((evt && !evt.cancelBubble) || !evt) &&n this.parent &&n this.parent.isListening() &&n !stopBubble) {n if (compareShape && compareShape.parent) {n this._fireAndBubble.call(this.parent, eventType, evt, compareShape);n }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, 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.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) ||n stage._changedPointerPositions ||n 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 }n else {n newNodePos = bounded;n }n }n if (!this._lastPos ||n this._lastPos.x !== newNodePos.x ||n this._lastPos.y !== newNodePos.y) {n this.setAbsolutePosition(newNodePos);n if (this.getLayer()) {n this.getLayer().batchDraw();n }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 !== undefined;n var canDrag = !shouldCheckButton || Global_1.Konva.dragButtons.indexOf(evt.evt) >= 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 }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), children = obj.children, no, len, n;n if (container) {n obj.attrs.container = container;n }n if (!Global_1._NODES_REGISTRY) {n Util_1.Util.warn('Can not find a node with class name "' +n className +n '". Fallback to "Shape".');n className = 'Shape';n }n var Class = Global_1._NODES_REGISTRY;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 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 +n ' 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 +n ' 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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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 = _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;n };n Shape.prototype.getHitFunc = function () {n return this.attrs.hitFunc || this;n };n Shape.prototype.hasShadow = function () {n return this._getCache(HAS_SHADOW, this._hasShadow);n };n Shape.prototype._hasShadow = function () {n return (this.shadowEnabled() &&n this.shadowOpacity() !== 0 &&n !!(this.shadowColor() ||n this.shadowBlur() ||n this.shadowOffsetX() ||n 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, 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, 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(' +n rgba.r +n ',' +n rgba.g +n ',' +n rgba.b +n ',' +n rgba.a * (this.shadowOpacity() || 1) +n ')');n }n };n Shape.prototype.hasFill = function () {n return (this.fillEnabled() &&n !!(this.fill() ||n this.fillPatternImage() ||n this.fillLinearGradientColorStops() ||n this.fillRadialGradientColorStops()));n };n Shape.prototype.hasStroke = function () {n return (this.strokeEnabled() &&n this.strokeWidth() &&n !!(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(), bufferHitCanvas = stage.bufferHitCanvas, 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 > 0;n };n Shape.prototype.destroy = function () {n Node_1.Node.prototype.destroy.call(this);n delete exports.shapes;n delete this.colorKey;n return this;n };n Shape.prototype._useBufferCanvas = function (caching) {n return !!((!caching || this.hasShadow()) &&n this.perfectDrawEnabled() &&n this.getAbsoluteOpacity() !== 1 &&n this.hasFill() &&n this.hasStroke() &&n 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 }n else {n this.hitStrokeWidth(0);n }n };n Shape.prototype.getStrokeHitEnabled = function () {n if (this.hitStrokeWidth() === 0) {n return false;n }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.heightn };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) +n Math.min(shadowOffsetX, 0) +n fillRect.x,n y: -Math.round(strokeWidth / 2 + blurRadius) +n Math.min(shadowOffsetY, 0) +n fillRect.yn };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(), canvas = can || layer.getCanvas(), context = canvas.getContext(), cachedCanvas = this._getCanvasCache(), drawFunc = this.sceneFunc(), hasShadow = this.hasShadow(), hasStroke = this.hasStroke(), stage, bufferCanvas, 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 }n else {n var m = this.getAbsoluteTransform(top).getMatrix();n context.transform(m, m, m, m, m, m);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 }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 }n else {n context._applyLineJoin(this);n if (!caching) {n if (layer) {n layer._applyTransform(this, context, top);n }n else {n var o = this.getAbsoluteTransform(top).getMatrix();n context.transform(o, o, o, o, o, o);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 }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 }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(), canvas = can || layer.hitCanvas, context = canvas && canvas.getContext(), drawFunc = this.hitFunc() || this.sceneFunc(), cachedCanvas = this._getCanvasCache(), 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 }n else {n var o = this.getAbsoluteTransform(top).getMatrix();n context.transform(o, o, o, o, o, o);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) { alphaThreshold = 0; }n var cachedCanvas = this._getCanvasCache(), sceneCanvas = this._getCachedSceneCanvas(), hitCanvas = cachedCanvas.hit, hitContext = hitCanvas.getContext(), hitWidth = hitCanvas.getWidth(), hitHeight = hitCanvas.getHeight(), hitImageData, hitData, len, rgbColorKey, i, 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 = rgbColorKey.r;n hitData[i + 1] = rgbColorKey.g;n hitData[i + 2] = rgbColorKey.b;n hitData[i + 3] = 255;n }n else {n hitData[i + 3] = 0;n }n }n hitContext.putImageData(hitImageData, 0, 0);n }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', [n 'x',n 'y'n]);nFactory_1.Factory.addComponentsGetterSetter(Shape, 'strokeLinearGradientStartPoint', [n 'x',n 'y'n]);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', [n 'x',n 'y'n]);nFactory_1.Factory.addComponentsGetterSetter(Shape, 'strokeLinearGradientEndPoint', [n 'x',n 'y'n]);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', [n 'x',n 'y'n]);nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientStartPointX', 0);nFactory_1.Factory.addGetterSetter(Shape, 'fillRadialGradientStartPointY', 0);nFactory_1.Factory.addComponentsGetterSetter(Shape, 'fillRadialGradientEndPoint', [n 'x',n 'y'n]);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);n”,“const Pair = require('./pair');nconst {anchor, Anchor} = require('./anchor');nconst {None} = require('./insert')nconst connector = require('./connector')nconst Structure = require('./structure');nconst {itself, orthogonalTransform} = require('./prelude');nn/**n * @callback TranslationListenern * @param {Piece} piecen * @param {number} dxn * @param {number} dyn */nn/**n * @callback ConnectionListenern * @param {Piece} piecen * @param {Piece} targetn */nn /**n * @typedef {Object} PieceConfign * @property {import('./vector').Vector} [centralAnchor]n * @property {import('./size').Size} [size]n * @property {any} [metadata]n */nn/**n * A piece primitive representation that can be easily stringified, exchanged and persistedn *n * @typedef {object} PieceDumpn * @property {import('./vector').Vector} centralAnchorn * @property {import('./size').Size} [size]n * @property {any} metadatan * @property {import('./prelude').Orthogonal<object>} [connections]n * @property {string} structuren */nn /**n * A jigsaw piecen */n class Piece {nn /**n * @param {import('./structure').Structure} [structure]n * @param {PieceConfig} [config]n */n constructor({up = None, down = None, left = None, right = None} = {}, config = {}) {n this.up = up;n this.down = down;n this.left = left;n this.right = right;n /** @type {any} */n this.metadata = {};n /** @type {Anchor} */n this.centralAnchor = null;n /** @type {import('./size').Size} */n this._size = null;n this._initializeListeners();n this.configure(config);n }nn _initializeListeners() {n /** @type {TranslationListener[]} */n this.translateListeners = [];n /** @type {ConnectionListener[]} */n this.connectListeners = [];n /** @type {ConnectionListener[]} */n this.disconnectListeners = [];n }nn /**n * Runs positining, sizing and metadata configurationsn * in a single stepn *n * @param {PieceConfig} confign */n configure(config) {n if (config.centralAnchor) {n this.centerAround(Anchor.import(config.centralAnchor));n }nn if (config.metadata) {n this.annotate(config.metadata);n }nn if (config.size) {n this.resize(config.size)n }n }nnn /**n * Adds unestructured user-defined metadata on this piece.n *n * @param {object} metadatan */n annotate(metadata) {n Object.assign(this.metadata, metadata);n }nn /**n * Sets unestructured user-defined metadata on this piece.n *n * This object has no strong requirement, but it is recommended to have ann * id property.n *n * @param {object} metadatan */n reannotate(metadata) {n this.metadata = metadata;n }nn /**n * @param {import('./puzzle')} puzzlen */n belongTo(puzzle) {n this.puzzle = puzzle;n }nn /**n * @type {Piece[]}n */n get presentConnections() {n return this.connections.filter(itself);n }nn /**n * @type {Piece[]}n */n get connections() {n return [n this.rightConnection,n this.downConnection,n this.leftConnection,n this.upConnectionn ];n }nn /**n * @type {import('./insert').Insert[]}n */n get inserts() {n return [n this.right,n this.down,n this.left,n this.upn ];n }nn /**n * @param {TranslationListener} f the callbackn */n onTranslate(f) {n this.translateListeners.push(f);n }nn /**n * @param {ConnectionListener} f the callbackn */n onConnect(f) {n this.connectListeners.push(f);n }nn /**n * @param {ConnectionListener} f the callbackn */n onDisconnect(f) {n this.disconnectListeners.push(f);n }nn /**n * @param {number} dxn * @param {number} dyn */n fireTranslate(dx, dy) {n this.translateListeners.forEach(it => it(this, dx, dy));n }nn /**n * @param {Piece} othern */n fireConnect(other) {n this.connectListeners.forEach(it => it(this, other));n }nn /**n * @param {Piece[]} othersn */n fireDisconnect(others) {n others.forEach(other => {n this.disconnectListeners.forEach(it => it(this, other));n });n }nn /**n *n * @param {Piece} othern * @param {boolean} [back]n */n connectVerticallyWith(other, back = false) {n connector.vertical.connectWith(this, other, this.proximity, back);n }nn /**n * @param {Piece} othern */n attractVertically(other, back = false) {n connector.vertical.attract(this, other, back);n }nn /**n * @param {Piece} othern * @param {boolean} [back]n */n connectHorizontallyWith(other, back = false) {n connector.horizontal.connectWith(this, other, this.proximity, back);n }nn /**n * @param {Piece} othern */n attractHorizontally(other, back = false) {n connector.horizontal.attract(this, other, back);n }nn /**n * @param {Piece} othern * @param {boolean} [back]n */n tryConnectWith(other, back = false) {n this.tryConnectHorizontallyWith(other, back);n this.tryConnectVerticallyWith(other, back);n }nn /**n *n * @param {Piece} othern * @param {boolean} [back]n */n tryConnectHorizontallyWith(other, back = false) {n if (this.canConnectHorizontallyWith(other)) {n this.connectHorizontallyWith(other, back);n }n }n /**n *n * @param {Piece} othern * @param {boolean} [back]n */n tryConnectVerticallyWith(other, back = false) {n if (this.canConnectVerticallyWith(other)) {n this.connectVerticallyWith(other, back);n }n }nn disconnect() {n if (!this.connected) {n return;n }n const connections = this.presentConnections;nn if (this.upConnection) {n this.upConnection.downConnection = null;n /** @type {Piece} */n this.upConnection = null;n }nn if (this.downConnection) {n this.downConnection.upConnection = null;n this.downConnection = null;n }nn if (this.leftConnection) {n this.leftConnection.rightConnection = null;n /** @type {Piece} */n this.leftConnection = null;n }nn if (this.rightConnection) {n this.rightConnection.leftConnection = null;n this.rightConnection = null;n }nn this.fireDisconnect(connections);n }nn /**n * Sets the centralAnchor for this piece.n *n * @param {Anchor} anchorn */n centerAround(anchor) {n if (this.centralAnchor) {n throw new Error("this pieces has already being centered. Use recenterAround instead");n }n this.centralAnchor = anchor;n }nnn /**n * Sets the initial position of this piece. This method is similar to {@link Piece#centerAround},n * but takes a pair instead of an anchor.n *n * @param {number} xn * @param {number} yn */n locateAt(x, y) {n this.centerAround(anchor(x, y));n }nn /**n * Tells whether this piece central anchor is at given pointn *n * @param {number} xn * @param {number} yn * @return {boolean}n */n isAt(x, y) {n return this.centralAnchor.isAt(x, y);n }nn /**n * Moves this piece to the given position, firing translation events.n * Piece must be already centered.n *n * @param {Anchor} anchor the new central anchorn * @param {boolean} [quiet] indicates whether events should be suppressedn */n recenterAround(anchor, quiet = false) {n const [dx, dy] = anchor.diff(this.centralAnchor);n this.translate(dx, dy, quiet);n }nn /**n * Moves this piece to the given position, firing translation events.n * Piece must be already centered. This method is similar to {@link Piece#recenterAround},n * but takes a pair instead of an anchor.n *n * @param {number} x the final x positionn * @param {number} y the final y positionn * @param {boolean} [quiet] indicates whether events should be suppressedn */n relocateTo(x, y, quiet = false) {n this.recenterAround(anchor(x, y), quiet);n }nn /**n * Move this piece a given distance, firing translation eventsn *n * @param {number} dx the x distancen * @param {number} dy the y distancen * @param {boolean} [quiet] indicates whether events should be suppressedn */n translate(dx, dy, quiet = false) {n if (!Pair.isNull(dx, dy)) {n this.centralAnchor.translate(dx, dy);n if (!quiet) {n this.fireTranslate(dx, dy);n }n }n }nn /**n *n * @param {number} dxn * @param {number} dyn * @param {boolean} [quiet]n * @param {Piece[]} [pushedPieces]n */n push(dx, dy, quiet = false, pushedPieces = [this]) {n this.translate(dx, dy, quiet);nn const stationaries = this.presentConnections.filter(it => pushedPieces.indexOf(it) === -1);n pushedPieces.push(…stationaries);n stationaries.forEach(it => it.push(dx, dy, false, pushedPieces));n }nn /**n *n * @param {number} dxn * @param {number} dyn */n drag(dx, dy, quiet = false) {n if (Pair.isNull(dx, dy)) return;nn if (this.horizontallyOpenMovement(dx) && this.vericallyOpenMovement(dy)) {n this.disconnect();n this.translate(dx, dy, quiet);n } else {n this.push(dx, dy, quiet);n }n }nn drop() {n this.puzzle.autoconnectWith(this);n }nn dragAndDrop(dx, dy) {n this.drag(dx, dy);n this.drop();n }nn /**n *n * @param {number} dyn * @returns {boolean}n */n vericallyOpenMovement(dy) {n return connector.vertical.openMovement(this, dy);n }nn /**n *n * @param {number} dxn * @returns {boolean}n */n horizontallyOpenMovement(dx) {n return connector.horizontal.openMovement(this, dx);n }nn /**n *n * @param {Piece} othern * @returns {boolean}n */n canConnectHorizontallyWith(other) {n return connector.horizontal.canConnectWith(this, other, this.proximity);n }nn /**n *n * @param {Piece} othern * @returns {boolean}n */n canConnectVerticallyWith(other) {n return connector.vertical.canConnectWith(this, other, this.proximity);n }nn /**n *n * @param {Piece} othern * @returns {boolean}n */n verticallyCloseTo(other) {n return connector.vertical.closeTo(this, other, this.proximity);n }nn /**n *n * @param {Piece} othern * @returns {boolean}n */n horizontallyCloseTo(other) {n return connector.horizontal.closeTo(this, other, this.proximity);n }nnn /**n *n * @param {Piece} othern * @returns {boolean}n */n verticallyMatch(other) {n return connector.vertical.match(this, other);n }nn /**n *n * @param {Piece} othern * @returns {boolean}n */n horizontallyMatch(other) {n return connector.horizontal.match(this, other);n }nn get connected() {n return !!(this.upConnection || this.downConnection || this.leftConnection || this.rightConnection);n }nn /**n *@type {Anchor}n */n get downAnchor() {n return this.centralAnchor.translated(0, this.radio.y);n }nn /**n *@type {Anchor}n */n get rightAnchor() {n return this.centralAnchor.translated(this.radio.x, 0);n }nn /**n *@type {Anchor}n */n get upAnchor() {n return this.centralAnchor.translated(0, -this.radio.y);n }nn /**n *@type {Anchor}n */n get leftAnchor() {n return this.centralAnchor.translated(-this.radio.x, 0);n }nn /**n * Defines this piece's own dimmension, overriding puzzle'sn * default dimmensionn *n * @param {import('./size').Size} sizen */n resize(size) {n this._size = size;n }nn /**n * @type {import('./vector').Vector}n */n get radio() {n return this.size.radio;n }nn /**n * The double of the radion *n * @type {import('./vector').Vector}n */n get diameter() {n return this.size.diameter;n }nn get size() {n return this._size || this.puzzle.pieceSize;n }nn /**n * @type {number}n */n get proximity() {n return this.puzzle.proximity;n }nn /**n * This piece id. It is extracted from metadatan *n * @type {string}n */n get id() {n return this.metadata.id;n }nn /**n * Converts this piece into a plain, stringify-ready object.n * Connections should have idsn *n * @param {object} optionsn * @param {boolean} [options.compact]n * @returns {PieceDump}n */n export({compact = false} = {}) {n const base = {n centralAnchor: this.centralAnchor && this.centralAnchor.export(),n structure: Structure.serialize(this),n metadata: this.metadatan };n if (this._size) {n base.size = {radio: this._size.radio };n }n return compact ? base : Object.assign(base, {n connections: orthogonalTransform(this.connections, it => ({id: it.id}))n })n }nn /**n * Converts this piece back from a dump. Connections are not restored. {@link Puzzle#autoconnect} method should be usedn * after importing all themn *n * @param {PieceDump} dumpn * @returns {Piece}n */n static import(dump) {n return new Piece(n Structure.deserialize(dump.structure),n {centralAnchor: dump.centralAnchor, metadata: dump.metadata, size: dump.size});n }n}nnmodule.exports = Piece;n”,“const Pair = require('./pair');nn/**n * @typedef {object} Vectorn * @property {number} xn * @property {number} yn */nn/**n *n * @param {number} xn * @param {number} yn *n * @returns {Vector}n */nfunction vector(x, y) {n return { x, y };n}nn/**n * @param {Vector|number} valuen * @returns {Vector}n */nfunction cast(value) {n if (typeof value === 'number') {n return vector(value, value);n } else {n return value;n }n}nn /**n * This module contains functions for dealing with objects with x and yn * coordinates that represent or include point datan *n * @module Vectorn */nn/**n * Returns a new (0, 0) vectorn *n * @returns {Vector}n */nfunction zero() {n return vector(0, 0);n}nn/**n * Compares two pointsn *n * @param {Vector} onen * @param {Vector} othern * @param {number} [delta] the tolance in comparisonn * @returns {boolean}n */nfunction equal(one, other, delta = 0) {n return Pair.equal(one.x, one.y, other.x, other.y, delta);n}nn/**n * Creates a copy of the given pointn *n * @param {Vector} onen * @returns {Vector}n */nfunction copy({x, y}) {n return {x, y}n}nn/**n * @param {Vector} vectorn * @param {any} xn * @param {any} yn */nfunction update(vector, x, y) {n vector.x = x;n vector.y = y;n}nn/**n * @param {Vector} onen * @param {Vector} othern * @returns {import('./pair').Pair};n */nfunction diff(one, other) {n return Pair.diff(one.x, one.y, other.x, other.y);n}nn/**n * @param {Vector|number} onen * @param {Vector|number} othern *n * @returns {Vector}n */nfunction multiply(one, other) {n return apply(one, other, (v1, v2) => v1 * v2);n}nn/**n * @param {Vector|number} onen * @param {Vector|number} othern *n * @returns {Vector}n */nfunction divide(one, other) {n return apply(one, other, (v1, v2) => v1 / v2);n}nn/**n * @param {Vector|number} onen * @param {Vector|number} othern *n * @returns {Vector}n */nfunction plus(one, other) {n return apply(one, other, (v1, v2) => v1 + v2);n}nn/**n * @param {Vector|number} onen * @param {Vector|number} othern *n * @returns {Vector}n */nfunction minus(one, other) {n return apply(one, other, (v1, v2) => v1 - v2);n}nn/**n * @param {Vector|number} onen * @param {Vector|number} othern *n * @returns {Vector}n */nfunction min(one, other) {n return apply(one, other, Math.min);n}nn/**n * @param {Vector|number} onen * @param {Vector|number} othern *n * @returns {Vector}n */nfunction max(one, other) {n return apply(one, other, Math.max);n}nn/**n * @param {Vector|number} onen * @param {Vector|number} othern * @param {(one: number, other: number) => number} fn *n * @returns {Vector}n */nfunction apply(one, other, f) {n const first = cast(one);n const second = cast(other);n return {x: f(first.x, second.x), y: f(first.y, second.y)};n}nnconst inner = {n /**n * @param {Vector} onen *n * @returns {number}n */n min(one) {n return this.apply(one, Math.min);n },nn /**n * @param {Vector} onen *n * @returns {number}n */n max(one) {n return this.apply(one, Math.max);n },nn /**n * @param {Vector} onen * @param {(one: number, other: number) => number} fn * @return {number}n */n apply(one, f) {n return f(one.x, one.y)n }n}nnmodule.exports = {n cast,n vector,n copy,n equal,n zero,n update,n diff,n multiply,n divide,n plus,n minus,n apply,n min,n max,n innern};n”,“/**n * @typedef {[number, number]} Pairn */nn/**n * Utilities for handling 2D vectors, expressed a two-elements listn *n * @module Pairn */nn/**n * Tells whether this pair is (0, 0)n *n * @param {number} xn * @param {number} yn * @returns {boolean}n */nfunction isNull(x, y) {n return equal(x, y, 0, 0);n}nn/**n * @param {number} x1n * @param {number} y1n * @param {number} x2n * @param {number} y2n * @param {number} [delta] tolerance in comparisonn * @returns {boolean}n */nfunction equal(x1, y1, x2, y2, delta = 0) {n return Math.abs(x1 - x2) <= delta && Math.abs(y1 - y2) <= delta;n}nn/**n * Calculates the difference of two vectorsn *n * @param {number} x1n * @param {number} y1n * @param {number} x2n * @param {number} y2n * @returns {Pair}n */nfunction diff(x1, y1, x2, y2) {n return [x1 - x2, y1 - y2];n}nnmodule.exports = {n isNull,n diff,n equaln};n”,“const between = require('./between');nconst Pair = require('./pair')nconst {vector} = require('./vector')nn/**n * An Anchor is a mutable 2D point thatn * is used to locate pieces and pieces insertsn */nclass Anchor {n /**n *n * @param {number} xn * @param {number} yn */n constructor(x, y) {n this.x = x;n this.y = y;n }nn /**n * @param {Anchor} othern * @returns {boolean}n */n equal(other) {n return this.isAt(other.x, other.y);n }nn /**n * @param {number} xn * @param {number} yn * @returns {boolean}n */n isAt(x, y) {n return Pair.equal(this.x, this.y, x, y);n }nn /**n * Creates a translated copy of this Anchorn * according to a vectorn *n * @param {number} dxn * @param {number} dyn * @returns {Anchor}n */n translated(dx, dy) {n return this.copy().translate(dx, dy);n }nn /**n * Translates this anchor given to a vectorn *n * @param {number} dxn * @param {number} dyn */n translate(dx, dy) {n this.x += dx;n this.y += dy;n return this;n }nn /**n * Answers whether this Anchor is near to another given a tolerancen *n * @param {Anchor} othern * @param {number} tolerance the max distance within its radius is considered to be "close"n * @returns {boolean}n */n closeTo(other, tolerance) {n return between(this.x, other.x-tolerance, other.x + tolerance) && between(this.y, other.y-tolerance, other.y + tolerance)n }nn /**n * @returns {Anchor}n */n copy() {n return new Anchor(this.x, this.y);n }nn /**n * Calculates the difference between this anchor and anothern *n * @param {Anchor} othern * @returns {import('./pair').Pair}n */n diff(other) {n return Pair.diff(this.x, this.y, other.x, other.y)n }nn /**n * Converts this anchor into a pointn *n * @returns {import('./pair').Pair}n */n asPair() {n return [this.x, this.y];n }nn /**n * Converts this anchor into a vectorn *n * @returns {import('./vector').Vector}n */n asVector() {n return vector(this.x, this.y);n }nn /**n * @returns {import('./vector').Vector}n */n export() {n return this.asVector();n }nn /**n * @param {number} maxXn * @param {number} maxYn * @returns {Anchor}n */n static atRandom(maxX, maxY) {n return new Anchor(Math.random() * maxX, Math.random() * maxY);n }nn /**n *n * @param {import('./vector').Vector} vectorn * @returns {Anchor}n */n static import(vector) {n return anchor(vector.x, vector.y);n }n}nn/**n * Creates a new {@link Anchor}n *n * @param {number} xn * @param {number} yn * @returns {Anchor}n */nfunction anchor(x, y) {n return new Anchor(x, y);n}nnmodule.exports = {n anchor,n Anchorn}n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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;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;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 = arguments;n }n if (arguments.length > 1) {n for (var i = 0; i < arguments.length; i++) {n this.add(arguments);n }n return this;n }n var child = children;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: childn });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 : 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;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 obj.children.push(child.toObject());n }n return obj;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(), canvas = can || (layer && layer.getCanvas()), context = canvas && canvas.getContext(), cachedCanvas = this._getCanvasCache(), 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 }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(), canvas = can || (layer && layer.hitCanvas), context = canvas && canvas.getContext(), cachedCanvas = this._getCanvasCache(), 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 }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(), context = canvas && canvas.getContext(), clipWidth = this.clipWidth(), clipHeight = this.clipHeight(), clipFunc = this.clipFunc(), hasClip = (clipWidth && clipHeight) || clipFunc, clipX, clipY;n if (hasClip && layer) {n context.save();n var transform = this.getAbsoluteTransform(top);n var m = transform.getMatrix();n context.transform(m, m, m, m, m, m);n context.beginPath();n if (clipFunc) {n clipFunc.call(this, context, this);n }n else {n clipX = this.clipX();n clipY = this.clipY();n context.rect(clipX, clipY, clipWidth, clipHeight);n }n context.clip();n m = transformn .copy()n .invert()n .getMatrix();n context.transform(m, m, m, m, m, m);n }n var hasComposition = this.globalCompositeOperation() !== 'source-over' &&n !skipComposition &&n drawMethod === 'drawScene';n if (hasComposition && layer) {n context.save();n context._applyGlobalCompositeOperation(this);n }n this.children.each(function (child) {n child(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 (config) {n config = config || {};n var skipTransform = config.skipTransform;n var relativeTo = config.relativeTo;n var minX, minY, maxX, maxY;n var selfRect = {n x: Infinity,n y: Infinity,n width: 0,n height: 0n };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: config.skipShadow,n skipStroke: config.skipStroken });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 }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;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 - minYn };n }n else {n selfRect = {n x: 0,n y: 0,n width: 0,n height: 0n };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', [n 'x',n 'y',n 'width',n 'height'n]);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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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, backingStoreRatio = context.webkitBackingStorePixelRatio ||n context.mozBackingStorePixelRatio ||n context.msBackingStorePixelRatio ||n context.oBackingStorePixelRatio ||n context.backingStorePixelRatio ||n 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, _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, _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 }n catch (e) {n try {n return this._canvas.toDataURL();n }n catch (err) {n Util_1.Util.error('Unable to get data URL. ' +n err.message +n ' For more info read 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) { config = { width: 0, height: 0 }; }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) { config = { width: 0, height: 0 }; }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;n”,“const {Anchor} = require('./anchor');nconst Piece = require('./piece');nconst {NullValidator} = require('./validator');nconst {vector, …Vector} = require('./vector')nconst {radio} = require('./size')nconst Shuffler = require('./shuffler');nn/**n * A puzzle primitive representation that can be easily stringified, exchanged and persistedn *n * @typedef {object} PuzzleDumpn * @property {import('./vector').Vector} pieceRadion * @property {number} proximityn * @property {import('./piece').PieceDump[]} piecesn */nn/**n * @typedef {object} Settingsn * @property {import('./vector').Vector|number} [pieceRadio]n * @property {number} [proximity]n */nnn /**n * A set of a {@link Piece}s that can be manipulated as a whole, and that can ben * used as a pieces factoryn */nclass Puzzle {nn /**n * @param {Settings} [options]n */n constructor({pieceRadio = 2, proximity = 1} = {}) {n this.pieceSize = radio(pieceRadio);n this.proximity = proximity;n /** @type {Piece[]} */n this.pieces = [];n /** @type {import('./validator').Validator} */n this.validator = new NullValidator();n }nn /**n * Creates and adds to this puzzle a new piecen *n * @param {import('./structure').Structure} [structure] the piece structuren * @param {import('./piece').PieceConfig} [config] the piece confign * @returns {Piece} the new piecen */n newPiece(structure = {}, config = {}) {n const piece = new Piece(structure, config);n this.addPiece(piece);n return piece;n }nn /**n * @param {Piece} piecen */n addPiece(piece) {n this.pieces.push(piece);n piece.belongTo(this);n }nn /**n * @param {Piece[]} piecesn */n addPieces(pieces) {n pieces.forEach(it => this.addPiece(it));n }nn /**n * Annotates all the pieces with the given list of metadatan *n * @param {object[]} metadatan */n annotate(metadata) {n this.pieces.forEach((piece, index) => piece.annotate(metadata));n }nn /**n * Relocates all the pieces to the given list of pointsn *n * @param {import('./pair').Pair[]} pointsn */n relocateTo(points) {n this.pieces.forEach((piece, index) => piece.relocateTo(…points));n }nn /**n * Tries to connect pieces in their current positionsn * This method is O(n^2)n */n autoconnect() {n this.pieces.forEach(it => this.autoconnectWith(it));n }nn /**n * Disconnects all piecesn */n disconnect() {n this.pieces.forEach(it => it.disconnect());n }nn /**n * Tries to connect the given piece to the rest of the setn * This method is O(n)n * @param {Piece} piecen */n autoconnectWith(piece) {n this.pieces.filter(it => it !== piece).forEach(other => {n piece.tryConnectWith(other);n other.tryConnectWith(piece, true);n })n }nn /**n * @param {number} maxXn * @param {number} maxYn */n shuffle(maxX, maxY) {n this.shuffleWith(Shuffler.random(maxX, maxY));n }nn /**n * @param {import('./shuffler').Shuffler} shufflern */n shuffleWith(shuffler) {n this.disconnect();n shuffler(this.pieces).forEach(({x, y}, index) => {n this.pieces.relocateTo(x, y);n });n this.autoconnect();n }nn /**n * @param {number} dxn * @param {number} dyn */n translate(dx, dy) {n this.pieces.forEach(it => it.translate(dx, dy));n }n /**n * @param {import('./piece').TranslationListener} fn */n onTranslate(f) {n this.pieces.forEach(it => it.onTranslate(f));n }nn /**n * @param {import('./piece').ConnectionListener} fn */n onConnect(f) {n this.pieces.forEach(it => it.onConnect(f));n }nn /**n * @param {import('./piece').ConnectionListener} fn */n onDisconnect(f) {n this.pieces.forEach(it => it.onDisconnect(f));n }nn /**n * @param {import('./validator').ValidationListener} fn */n onValid(f) {n this.validator.onValid(f);n }nn /**n * Answers the list of points wheren * central anchors of pieces are locatedn *n * @type {import('./pair').Pair[]}n */n get points() {n return this.pieces.map(it => it.centralAnchor.asPair());n }nn /**n * Answers a list of points whose coordinates are scaledn * to the {@link Puzzle#pieceWidth}n *n * @type {import('./pair').Pair[]}n */n get refs() {n return this.points.map(([x, y], index) => {n const diameter = this.pieces.diameter;n return [x / diameter.x, y / diameter.y]n })n }nn /**n * @type {any[]}n */n get metadata() {n return this.pieces.map(it => it.metadata);n }nn /**n * Returns the first piecen *n * @type {Piece}n */n get head() {n return this.pieces;n }nn /**n * Returns the central anchor of the first piecen *n * @type {Anchor}n */n get headAnchor() {n return this.head.centralAnchor;n }nn /**n * @param {import('./validator').Validator} validatorn */n attachValidator(validator) {n this.validator = validator;n }nn /**n * Checks whether this puzzle is valid.n *n * Calling this method will not fire any validation listeners nor update then * valid property.n *n * @returns {boolean}n */n isValid() {n return this.validator.isValid(this);n }nn /**n * Returns the current validation statusn *n * Calling this property will not fire any validation listeners.n *n * @type {boolean}n */n get valid() {n return this.validator.valid;n }nn /**n * Checks whether this puzzle is valid, updating valid propertyn * and firing validation listeners if becomes validn */n validate() {n this.validator.validate(this);n }nn /**n * Checks whether this puzzle is valid, updating valid property.n *n * Validations listeners are NOT fired.n */n updateValidity() {n this.validator.validate(this);n }nn /**n * Wether all the pieces in this puzzle are connectedn *n * @type {boolean}n */n get connected() {n return this.pieces.every(it => it.connected);n }nn /**n * The piece width, from edge to edge.n * This is the double of the {@link Puzzle#pieceRadio}n *n * @type {import('./vector').Vector}n */n get pieceDiameter() {n return this.pieceSize.diameter;n }nn /**n * The piece width, from center to edgen *n * @type {import('./vector').Vector}n */n get pieceRadio() {n return this.pieceSize.radio;n }nn /**n * Converts this piece into a plain, stringify-ready object.n * Pieces should have idsn *n * @param {object} options config options for exportn * @param {boolean} [options.compact] if connection information must be omittedn * @returns {PuzzleDump}n */n export(options = {}) {n return {n pieceRadio: this.pieceRadio,n proximity: this.proximity,n pieces: this.pieces.map(it => it.export(options))n }n }nn /**n * @param {PuzzleDump} dumpn * @returns {Puzzle}n */n static import(dump) {n const puzzle = new Puzzle({pieceRadio: dump.pieceRadio, proximity: dump.proximity});n puzzle.addPieces(dump.pieces.map(it => Piece.import(it)));n puzzle.autoconnect();n return puzzle;n }n}nnmodule.exports = Puzzle;n”,“/**n * A connection element of a piecen *n * @typedef {(Tab|Slot|None)} Insertn */nnconst Tab = {n isSlot: () => false,n isTab: () => true,n isNone: () => false,n match: (other) => other.isSlot(),n toString: () => "Tab",n complement: () => Slot,n serialize: () => 'T'n}nnconst Slot = {n isSlot: () => true,n isTab: () => false,n isNone: () => false,n match: (other) => other.isTab(),n toString: () => "Slot",n complement: () => Tab,n serialize: () => 'S'n}nnconst None = {n isSlot: () => false,n isTab: () => false,n isNone: () => true,n match: (other) => false,n toString: () => "None",n complement: () => None,n serialize: () => '-'n}nnmodule.exports = {n None,n Slot,n Tabn};nnn”,“/**n * @template An * @typedef {Object} Orthogonaln * @property {A} upn * @property {A} downn * @property {A} leftn * @property {A} rightn */nn/**n * @template An * @template Bn *n * @callback Mappern * @param {A} valuen * @returns {B}n */nn/**n * Misc generic functionsn *n * @module Preluden */nn/**n * @template Tn * @param {T} onen * @param {T} othern * @param {boolean} [back]n * @returns {[T, T]}n */nfunction pivot(one, other, back = false) {n return back ? [one, other] : [other, one];n}nn/**n * @template An * @template Bn *n * @param {A[]} valuesn * @param {Mapper<A, B>} mappern * @param {A} replacementn * @returns {B[]}n */nfunction orthogonalMap(values, mapper, replacement = null) {n return values.map(it => {n const value = it || replacement;n return value && mapper(value)n });n}nn/**n * @template An * @template Bn * @param {A[]} valuesn * @param {Mapper<A, B>} mappern * @param {A} replacementn * @returns {Orthogonal<B>}n */nfunction orthogonalTransform(values, mapper, replacement = null) {n const [right, down, left, up] = orthogonalMap(values, mapper, replacement)n return {right, down, left, up};n}nn/**n * @template An * @param {A} argn * @returns {A}n */nfunction itself(arg) {n return arg;n}nnmodule.exports = {n pivot,n itself,n orthogonalMap,n orthogonalTransformn};n”,“const Puzzle = require('./puzzle');nconst Piece = require('./piece');nconst Pair = require('./pair');nn/**n * @typedef {PieceValidator | PuzzleValidator | NullValidator} Validatorn **/nn/**n * @callback ValidationListenern * @param {Puzzle} puzzlen */nn/** An abstract base validator */nclass AbstractValidator {nn constructor() {n /** @type {ValidationListener[]} */n this.validListeners = [];n this._valid = undefined;n }nn /**n * Validates the puzzle, updating the validity state andn * firing validation eventsn *n * @param {Puzzle} puzzlen */n validate(puzzle) {n const wasValid = this._valid;n this.updateValidity(puzzle);n if (this._valid && !wasValid) {n this.fireValid(puzzle);n }n }nn /**n * Updates the valid state.n *n * @param {Puzzle} puzzlen */n updateValidity(puzzle) {n // @ts-ignoren this._valid = this.isValid(puzzle);n }nn /**n * @param {Puzzle} puzzlen */n fireValid(puzzle) {n this.validListeners.forEach(it => it(puzzle));n }nn /**n * Registers a validation listenern *n * @param {ValidationListener} fn */n onValid(f) {n this.validListeners.push(f);n }nn /**n * Answers the current validity status of this validator. Thisn * property neither alters the current status nor triggers new validity checksn *n * @type {boolean}n */n get valid() {n return this._valid;n }nn /**n * Answers wether this is the {@link NullValidator}n *n * @type {boolean}n */n get isNull() {n return false;n }n}nn/**n * @callback PieceConditionn * @param {Piece} puzzlen * @returns {boolean}n */nnn/**n * @callback PuzzleConditionn * @param {Puzzle} puzzlen * @returns {boolean}n */nn/** A validator that evaluates each piece independently */nclass PieceValidator extends AbstractValidator {nn /**n * @param {PieceCondition} fn */n constructor(f) {n super();n this.condition = f;n }nn /**n * @param {Puzzle} puzzlen * @returns {boolean}n */n isValid(puzzle) {n return puzzle.pieces.every(it => this.condition(it));n }n}nn/** A validator that evaluates the whole puzzle */nclass PuzzleValidator extends AbstractValidator {nn /**n * @param {PuzzleCondition} fn */n constructor(f) {n super();n this.condition = f;n }nn /**n * @param {Puzzle} puzzlen */n isValid(puzzle) {n return this.condition(puzzle);n }nn /**n * Compares two pairsn *n * @param {import('./pair').Pair} param0n * @param {import('./pair').Pair} param1n *n * @returns {boolean}n */n static equalDiffs([dx0, dy0], [dx, dy]) {n return Pair.equal(dx0, dy0, dx, dy, PuzzleValidator.DIFF_DELTA);n }n}nn/** A validator that always is invalid */nclass NullValidator extends AbstractValidator {nn /**n * @param {Puzzle} puzzlen */n isValid(puzzle) {n return false;n }nn /**n * @type {boolean}n */n get isNull() {n return true;n }n};nn/**n * The delta used to compare distancesn *n * @type {number}n */nPuzzleValidator.DIFF_DELTA = 0.01;nn/*n @type {PuzzleCondition}n*/nPuzzleValidator.connected = (puzzle) => puzzle.connected;nn/**n * @param {import('./pair').Pair[]} expected the expected relative refsn * @returns {PuzzleCondition}n */nPuzzleValidator.relativeRefs = (expected) => {n return (puzzle) => {n function diff(x, y, index) {n return Pair.diff(x, y, …expected);n }n const refs = puzzle.refs;n const [x0, y0] = refs;n const diff0 = diff(x0, y0, 0);n return refs.every(([x, y], index) => PuzzleValidator.equalDiffs(diff0, diff(x, y, index)));n };n};nnmodule.exports = {n PuzzleValidator,n PieceValidator,n NullValidatorn}n”,“const Piece = require('./piece');nconst {vector, …Vector} = require('./vector');nn/**n * @typedef {Squared|Rounded} Outlinen */nnn/**n * This module contains the draw function. Override it change pieces drawing strategyn *n * @module Outlinen */nn/**n * @template Tn * @param {import('./insert').Insert} insertn * @param {T} tn * @param {T} sn * @param {T} nn * @returns {T}n */nfunction select(insert, t, s, n) {n return insert.isTab() ? t : insert.isSlot() ? s : n;n}nnconst sl = (p, t, s, n) => select(p.left, t, s, n);nconst sr = (p, t, s, n) => select(p.right, t, s, n);nconst su = (p, t, s, n) => select(p.up, t, s, n);nconst sd = (p, t, s, n) => select(p.down, t, s, n);nnclass Squared {n /**n * @param {Piece} piecen * @param {import('./vector').Vector|number} [size]n * @param {import('./vector').Vector|number} [borderFill]n * @returns {number[]}n */n draw(piece, size = 50, borderFill = 0) {n const sizeVector = Vector.cast(size);n const offset = Vector.divide(Vector.multiply(borderFill, 5), sizeVector);n return [n (0 - offset.x), (0 - offset.y),n 1, (0 - offset.y),n 2, select(piece.up, (-1 - offset.y), (1 - offset.y), (0 - offset.y)),n 3, (0 - offset.y),n (4 + offset.x), (0 - offset.y),n (4 + offset.x), 1,n sr(piece, (5 + offset.x), (3 + offset.x), (4 + offset.x)), 2,n (4 + offset.x), 3,n (4 + offset.x), (4 + offset.y),n 3, (4 + offset.y),n 2, select(piece.down, (5 + offset.y), (3 + offset.y), (4 + offset.y)),n 1, (4 + offset.y),n (0 - offset.x), (4 + offset.y),n (0 - offset.x), 3,n sl(piece, (-1 - offset.x), (1 - offset.x), (0 - offset.x)), 2,n (0 - offset.x), 1n ].map((it, index) => it * (index % 2 === 0 ? sizeVector.x : sizeVector.y) / 5 )n }nn isBezier() {n return false;n }n}nnclass Rounded {n constructor({n bezelize = false,n bezelDepth = 2/5,n insertDepth = 4/5,n borderLength = 1/3,n referenceInsertAxis = null} = {}) {n this.bezelize = bezelize;n this.bezelDepth = bezelDepth;n this.insertDepth = insertDepth;n this.borderLength = borderLength;n /** @type {import('./axis').Axis} */n this.referenceInsertAxis = referenceInsertAxis;n }nn /**n * @param {import('./vector').Vector} fullSizen * @return {number}n */n referenceInsertAxisLength(fullSize) {n return this.referenceInsertAxis ? this.referenceInsertAxis.atVector(fullSize) : Vector.inner.min(fullSize);n }nn /**n * @param {Piece} pn * @param {import('./vector').Vector|number} [size]n * @param {import('./vector').Vector|number} [borderFill]n * @returns {number[]}n */n draw(p, size = 150, borderFill = 0) {n /** full piece size, from edge to edge */n const fullSize = Vector.cast(size);nn /** insert external diameter */n const r = Math.trunc(this.referenceInsertAxisLength(fullSize) * (1 - 2 * this.borderLength) * 100) / 100;nn /** edge length, from vertex to insert start */n const s = Vector.divide(Vector.minus(fullSize, r), 2);nn /** insert internal radio, from center to insert end */n const o = Vector.multiply(r, this.insertDepth);nn /** bezel radio */n const b = Vector.multiply(Vector.inner.min(s), this.bezelDepth);nn /** the four bezel flags, starting at up-left corner */n const [b0, b1, b2, b3] = this.bezels(p);nn const nx = © => c ? b.x : 0;n const ny = © => c ? b.y : 0;nn const rsy = r + s.y;n const rsx = r + s.x;n const r2sy = r + 2 * s.y;n const r2sx = r + 2 * s.x;nnn return [n /** col: */ // 0 1 2n /** start: */ nx(b0) , 0 ,n …(b0 ?n /** bezel: */ [0 , 0 , 0 , 0 , 0 , b.y ] :n /** */ [ ]),n /** edge: */ 0 , ny(b0) , 0 , s.y , 0 , s.y ,n …sl(p,n /** insert: */ [-o.x , s.y , -o.x , rsy],n /** */ [o.x , s.y , o.x , rsy],n /** */ [0 , s.y , 0 , rsy])n /** */ , 0 , rsy ,n /** edge: */ 0 , rsy , 0 , r2sy , 0 , r2sy - ny(b1),n …(b1 ?n /** bezel: */ [0 , r2sy , 0 , r2sy , b.x , r2sy ] :n /** */ [ ]),n /** edge: */ nx(b1) , r2sy , s.x , r2sy , s.x , r2sy ,n …sd(p,n /** insert: */ [s.x , r2sy + o.y , rsx , r2sy + o.y ],n /** */ [s.x , r2sy - o.y , rsx , r2sy - o.y ],n /** */ [s.x , r2sy , rsx , r2sy ])n /** */ , rsx , r2sy ,n /** edge: */ rsx , r2sy , r2sx , r2sy , r2sx - nx(b2) , r2sy ,n …(b2 ?n /** bezel: */ [r2sx , r2sy , r2sx , r2sy , r2sx , r2sy - b.y]:n /** */ [ ]),n /** edge: */ r2sx , r2sy - ny(b2) , r2sx , rsy , r2sx , rsy ,n …sr(p,n /** insert: */ [r2sx + o.x , rsy , r2sx + o.x , s.y],n /** */ [r2sx - o.x , rsy , r2sx - o.x , s.y],n /** */ [r2sx , rsy , r2sx , s.y])n /** */ , r2sx , s.y ,n /** edge: */ r2sx , s.y , r2sx , 0 , r2sx , ny(b3) ,n …(b3 ?n /** bezel: */ [r2sx , 0 , r2sx , 0 , r2sx - b.x , 0] :n /** */ [ ]),n /** edge: */ r2sx - nx(b3) , 0 , rsx , 0 , rsx , 0 ,n …su(p,n /** insert: */ [rsx , -o.y , s.x , -o.y],n /** */ [rsx , o.y , s.x , o.y],n /** */ [rsx , 0 , s.x , 0])n /** */ , s.x , 0 ,n /** edge: */ s.x , 0 , 0 , 0 , (b0 ? b.x : 0) , 0n ]n }nnn bezels(p) {n if (this.bezelize) {n return [n p.left.isNone() && p.up.isNone(),n p.left.isNone() && p.down.isNone(),n p.right.isNone() && p.down.isNone(),n p.right.isNone() && p.up.isNone()n ];n } else {n return [false, false, false, false];n }n }nn isBezier() {n return true;n }n}nnmodule.exports = {n Classic: new Squared(),n Squared,n Roundedn}n”,“const Pair = require('./pair');nconst Piece = require('./piece');nconst Puzzle = require('./puzzle');nconst Manufacturer = require('../src/manufacturer');nconst {twoAndTwo} = require('./sequence');nconst Structure = require('./structure');nconst ImageMetadata = require('./image-metadata');nconst {vector, …Vector} = require('./vector');nconst Metadata = require('./metadata');nconst SpatialMetadata = require('./spatial-metadata');nconst {PuzzleValidator, PieceValidator} = require('./validator');nconst {Horizontal, Vertical} = require('./axis');nconst Shuffler = require('./shuffler');nconst {diameter} = require('./size');nconst {itself} = require('./prelude');nconst {Classic} = require('./outline');nn/**n * @typedef {object} Shapen * @typedef {object} Groupn * @typedef {object} Labeln */nn/**n * @typedef {object} Figuren * @property {Shape} shapen * @property {Group} groupn * @property {Label} [label]n */nn/**n * @callback CanvasConnectionListenern * @param {Piece} piece the connecting piecen * @param {Figure} figure the visual representation of the connecting piecen * @param {Piece} targetPiece the target connected piecen * @param {Figure} targetFigure the visual representation of the target connectedn */nn/**n * @callback CanvasTranslationListenern * @param {Piece} piece the translated piecen * @param {Figure} figure the visual representation of the translated piecen * @param {number} dx the horizontal displacementn * @param {number} dy the vertical displacementn*/nn/**n * @typedef {object} LabelMetadatan * @property {string} [text]n * @property {number} [fontSize]n * @property {number} [x]n * @property {number} [y]n */nn/**n * @typedef {object} CanvasMetadatan * @property {string} [id]n * @property {import('./vector').Vector} [targetPosition]n * @property {import('./vector').Vector} [currentPosition]n * @property {string} [color]n * @property {boolean} [fixed]n * @property {string} [strokeColor]n * @property {import('./image-metadata').ImageLike} [image]n * @property {LabelMetadata} [label]n */nn/**n * @typedef {object} Templaten * @property {import('./structure').StructureLike} structuren * @property {import('./size').Size} [size]n * @property {CanvasMetadata} metadatan */nn /**n * An HTML graphical area where puzzles and pieces can be rendered. No assumption of the rendering backend is done - it may ben * and be a plain HTML SVG or canvas element, or a higher-level library - and this task is fully delegated to {@link Painter}n */nclass Canvas {nn /**n * @privaten * @typedef {import('./painter')} Paintern */nn /**n * @param {string} id the html id of the element where to place the canvasn * @param {object} optionsn * @param {number} options.widthn * @param {number} options.heightn * @param {import('./vector').Vector|number} [options.pieceSize] the piece size expresed as it edge-to-edge diametern * @param {number} [options.proximity]n * @param {import('./vector').Vector|number} [options.borderFill] the broder fill of the pieces, expresed in pixels. 0 means no border fill, 0.5 * pieceSize means full filln * @param {number} [options.strokeWidth]n * @param {string} [options.strokeColor]n * @param {number} [options.lineSoftness] how soft the line will ben * @param {boolean} [options.preventOffstageDrag] whether dragging out of canvas is preventedn * @param {import('./image-metadata').ImageLike} [options.image] an optional background image for the puzzle that will be split across all pieces.n * @param {boolean} [options.fixed] whether the canvas can is fixed or can be draggedn * @param {Painter} [options.painter] the Painter object used to actually draw figures in canvasn * @param {import('./vector').Vector|number} [options.puzzleDiameter] the puzzle diameter used to calculate the maximal width and heightn * You only need to specify this option when pieces are manually sketched and images must be adjustedn * @param {import('./vector').Vector|number} [options.maxPiecesCount] the maximal amount of pieces used to calculate the maximal width and height.n * You only need to specify this option when pieces are manually sketched and images must be adjustedn * @param {import('./outline').Outline} [options.outline]n */n constructor(id, {n width,n height,n pieceSize = 50,n proximity = 10,n borderFill = 0,n strokeWidth = 3,n strokeColor = 'black',n lineSoftness = 0,n preventOffstageDrag = false,n image = null,n fixed = false,n painter = null,n puzzleDiameter = null,n maxPiecesCount = null,n outline = nulln }) {n this.width = width;n this.height = height;n this.pieceSize = diameter(pieceSize);n this.borderFill = Vector.cast(borderFill);n this.imageMetadata = ImageMetadata.asImageMetadata(image);n this.strokeWidth = strokeWidth;n this.strokeColor = strokeColor;n this.lineSoftness = lineSoftness;n this.preventOffstageDrag = preventOffstageDrag;n this.proximity = proximity;n this.fixed = fixed;n /** @type {Painter} */n this._painter = painter || new window['painters’]();n this._initialize();n this._painter.initialize(this, id);n /** @type {import('./vector').Vector} */n this._maxPiecesCount = Vector.cast(maxPiecesCount);n /** @type {import('./vector').Vector} */n this._puzzleDiameter = Vector.cast(puzzleDiameter);n /** @type {(image: import('./image-metadata').ImageMetadata) => import('./image-metadata').ImageMetadata} */n this._imageAdjuster = itself;n this._outline = outline || Classic;n }nn _initialize() {n /** @type {Puzzle} */n this._puzzle = null;n /** @type {Object<string, Figure>} */n this.figures = {};n /** @type {Object<string, Template>} */n this.templates = {};n }nn /**n * Creates and renders a piece using a template, that is ready to be rendered by calling {@link Canvas#draw}n *n * @param {Template} optionsn */n sketchPiece({structure, size = null, metadata}) {n SpatialMetadata.initialize(metadata, Vector.zero())n this.renderPiece(this._newPiece(structure, size, metadata));n }nn /**n * Renders a previously created piece objectn *n * @param {Piece} piecen */n renderPiece(piece) {n /** @type {Figure} */n const figure = {label: null, group: null, shape: null};n this.figures = figure;nn this._painter.sketch(this, piece, figure, this._outline);nn /** @type {LabelMetadata} */n const label = piece.metadata.label;n if (label && label.text) {n label.fontSize = label.fontSize || piece.diameter.y * 0.55;n label.y = label.y || (piece.diameter.y - label.fontSize) / 2;n this._painter.label(this, piece, figure);n }nn this._bindGroupToPiece(figure.group, piece);n this._bindPieceToGroup(piece, figure.group);n }nn /**n * Renders many previously created piece objectsn *n * @param {Piece[]} piecesn */n renderPieces(pieces) {n pieces.forEach((it) => {n this._annotatePiecePosition(it);n this.renderPiece(it);n });n }nn /**n * Renders a previously created puzzle object. This methodn * overrides this canvas' {@link Canvas#pieceDiameter} and {@link Canvas#proximity}n *n * @param {Puzzle} puzzlen */n renderPuzzle(puzzle) {n this.pieceSize = puzzle.pieceSize;n this.proximity = puzzle.proximity * 2;n this._puzzle = puzzle;n this.renderPieces(puzzle.pieces);n }nn /**n * Automatically creates and renders pieces given some configuration paramtersn *n * @param {object} optionsn * @param {number} [options.horizontalPiecesCount]n * @param {number} [options.verticalPiecesCount]n * @param {import('./sequence').InsertsGenerator} [options.insertsGenerator]n * @param {CanvasMetadata[]} [options.metadata] optional list of metadata that will be attached to each generated piecen */n autogenerate({horizontalPiecesCount = 5, verticalPiecesCount = 5, insertsGenerator = twoAndTwo, metadata = []} = {}) {n const manufacturer = new Manufacturer();n manufacturer.withDimmensions(horizontalPiecesCount, verticalPiecesCount);n manufacturer.withInsertsGenerator(insertsGenerator);n manufacturer.withMetadata(metadata);n this.autogenerateWithManufacturer(manufacturer);n }nn /**n * @param {Manufacturer} manufacturern */n autogenerateWithManufacturer(manufacturer) {n manufacturer.withStructure(this.settings);n this._puzzle = manufacturer.build();n this._maxPiecesCount = vector(manufacturer.width, manufacturer.height);n this.renderPieces(this.puzzle.pieces);n }nn /**n * Creates a name piece template, that can be later instantiated using {@link Canvas#sketchPieceUsingTemplate}n *n * @param {string} namen * @param {Template} templaten */n defineTemplate(name, template) {n this.templates = template;n }nn /**n * Creates a new Piece with given id using a named templaten * defined with {@link Canvas#defineTemplate}n *n * @param {string} idn * @param {string} templateNamen */n sketchPieceUsingTemplate(id, templateName) {n const options = this.templates;n if (!options) {n throw new Error(`Unknown template ${id}`);n }n const metadata = Metadata.copy(options.metadata);n metadata.id = id;n this.sketchPiece({structure: options.structure, metadata: metadata})n }nn /**n * @param {number} farness from 0 to 1, how far pieces will be placed from x = pieceDiameter.x, y = pieceDiameter.yn */n shuffle(farness = 1) {n const offset = this.pieceRadio;n this.puzzle.shuffle(farness * (this.width - offset.x), farness * (this.height - offset.y))n this.puzzle.translate(offset.x, offset.y);n this.autoconnected = true;n }nn /**n * Warning: this method requires {@code maxPiecesCount} to be set.n *n * @param {number} farnessn */n shuffleColumns(farness = 1) {n this.shuffleWith(farness, Shuffler.columns);n }nn /**n * Warning: this method requires {@code maxPiecesCount} to be set.n *n * @param {number} farnessn */n shuffleGrid(farness = 1) {n this.shuffleWith(farness, Shuffler.grid);n }nn /**n * Warning: this method requires {@code maxPiecesCount} to be set.n * Warning: this method requires puzzle to have an even number of columnsn *n * @param {number} farnessn */n shuffleLine(farness = 1) {n this.shuffleWith(farness, Shuffler.line);n }nnn /**n * @param {number} farnessn * @param {import('./shuffler').Shuffler} shufflern */n shuffleWith(farness, shuffler) {n this.solve();n this.puzzle.shuffleWith(Shuffler.padder(this.proximity * 3, this.maxPiecesCount.x, this.maxPiecesCount.y));n this.puzzle.shuffleWith(shuffler)n this.puzzle.shuffleWith(Shuffler.noise(Vector.cast(this.proximity * farness / 2)))n this.autoconnected = true;n }nn solve() {n this.puzzle.pieces.forEach(it => {n const {x, y} = it.metadata.targetPosition;n it.relocateTo(x, y);n });n this.autoconnect();n }nn autoconnect() {n this.puzzle.autoconnect();n this.autoconnected = true;n }nn /**n * Draws this canvas for the first timen */n draw() {n if (!this.autoconnected) {n this.autoconnect();n }n this.puzzle.updateValidity();n this.autoconnected = false;n this.redraw();n }nn /**n * Re-draws this canvas. This method is useful when the canvas {@link Figure}s haven * being modified and you need changes to become visiblen */n redraw() {n this._painter.draw(this);n }nn /**n * Refreshes image metadata.n *n * Use this method in order adjuster updates and image changes after initial drawn * to make effect.n **/n refill() {n this.puzzle.pieces.forEach(piece => {n this._painter.fill(this, piece, this.getFigure(piece));n });n }nn /**n * Clears the canvas, clearing the rendering backend and discarding all the created templates, figures, and piecesn */n clear() {n this._initialize();n this._painter.reinitialize(this);n }nn /**n * Sets a validator for the canvas' puzzle. Only one validatorn * can be attached, so subsequent calls of this method will override the previouslyn * attached validatorn *n * @param {import('./validator').Validator} validatorn */n attachValidator(validator) {n this.puzzle.attachValidator(validator);n }nn /**n * Sets a validator that will report when puzzle has been solved,n * overriding any previously configured validatorn */n attachSolvedValidator() {n this.puzzle.attachValidator(new PuzzleValidator(SpatialMetadata.solved));n }nn /**n * Sets a validator that will report when puzzle pieces are in their expected relativen * positions, overriding any previously configured validatorn */n attachRelativePositionValidator() {n this.puzzle.attachValidator(new PuzzleValidator(SpatialMetadata.relativePosition));n }nn /**n * Sets a validator that will report when puzzle are at the expected givenn * relative refsn *n * @param {[number, number][]} expectedn */n attachRelativeRefsValidator(expected) {n this.puzzle.attachValidator(new PuzzleValidator(PuzzleValidator.relativeRefs(expected)));n }nn /**n * Sets a validator that will report when puzzle pieces are in their expected absoluten * positions, overriding any previously configured validatorn */n attachAbsolutePositionValidator() {n this.puzzle.attachValidator(new PieceValidator(SpatialMetadata.absolutePosition));n }nn /**n * Registers a listener for connect eventsn *n * @param {CanvasConnectionListener} fn */n onConnect(f) {n this.puzzle.onConnect((piece, target) => {n f(piece, this.getFigure(piece), target, this.getFigure(target));n });n }nn /**n * Registers a listener for disconnect eventsn *n * @param {CanvasConnectionListener} fn */n onDisconnect(f) {n this.puzzle.onDisconnect((piece, target) => {n f(piece, this.getFigure(piece), target, this.getFigure(target));n });n }nn /**n * @param {CanvasTranslationListener} fn */n onTranslate(f) {n this.puzzle.onTranslate((piece, dx, dy) => {n f(piece, this.getFigure(piece), dx, dy);n });n }nn /**n * @param {import('./validator').ValidationListener} fn */n onValid(f) {n this.puzzle.onValid(f);n }nn /**n * Returns the current validation statusn *n * @type {boolean}n */n get valid() {n return this.puzzle.valid;n }nn /**n * Answers the visual representation for the given piece.n * This method uses piece's id.n *n * @param {Piece} piecen * @returns {Figure}n */n getFigure(piece) {n return this.getFigureById(piece.metadata.id);n }nn /**n * Answers the visual representation for the given piece id.n *n * @param {string} idn * @returns {Figure}n */n getFigureById(id) {n return this.figures;n }nn /**n * Sets the new width and height of the canvasn *n * @param {number} widthn * @param {number} heightn */n resize(width, height) {n this.width = width;n this.height = height;n this._painter.resize(this, width, height);n }nn /**n * Scales the canvas contents to the given factorn * @param {import('./vector').Vector|number} factorn */n scale(factor) {n this._painter.scale(this, Vector.cast(factor));n }nn /**n * @param {Piece} piecen */n _annotatePiecePosition(piece) {n const p = piece.centralAnchor.asVector();n SpatialMetadata.initialize(piece.metadata, p, Vector.copy(p));n }nn /**n * Configures updates from piece into groupn * @param {Group} groupn * @param {Piece} piecen */n _bindGroupToPiece(group, piece) {n piece.onTranslate((_dx, _dy) => {n this._painter.physicalTranslate(this, group, piece);n this._painter.logicalTranslate(this, piece, group);n });n }nn /**n * * Configures updates from group into piecen * @param {Piece} piecen * @param {Group} groupn */n _bindPieceToGroup(piece, group) {n this._painter.onDrag(this, piece, group, (dx, dy) => {n if (!Pair.isNull(dx, dy)) {n piece.drag(dx, dy, true);n this._painter.logicalTranslate(this, piece, group);n this.redraw();n }n });n this._painter.onDragEnd(this, piece, group, () => {n piece.drop();n this.puzzle.validate();n this.redraw();n })n }nn /**n * @param {Piece} piecen * @returns {import('./image-metadata').ImageMetadata}n */n _baseImageMetadataFor(piece) {n if (this.imageMetadata) {n const scale = piece.metadata.scale || this.imageMetadata.scale || 1;n const offset = Vector.plus(n piece.metadata.targetPosition || Vector.zero(),n this.imageMetadata.offset || Vector.zero());n return { content: this.imageMetadata.content, offset, scale };n } else {n return ImageMetadata.asImageMetadata(piece.metadata.image);n }n }nn /**n * @param {Piece} piecen *n * @returns {import('./image-metadata').ImageMetadata}n */n imageMetadataFor(piece) {n return this._imageAdjuster(this._baseImageMetadataFor(piece));n }nn /**n * Configures canvas to adjust images axis to puzzle's axis.n *n * Warning: this method requires {@code maxPiecesCount} or {@code puzzleDiameter} to be set.n *n * @param {import('./axis').Axis} axisn */n adjustImagesToPuzzle(axis) {n this._imageAdjuster = (image) => {n const scale = axis.atVector(this.puzzleDiameter) / axis.atDimension(image.content);n const offset = Vector.plus(image.offset, Vector.minus(this.borderFill, this.pieceDiameter));n return { content: image.content, scale, offset };n };n }nn /**n * Configures canvas to adjust images width to puzzle's widthn *n * Warning: this method requires {@code maxPiecesCount} or {@code puzzleDiameter} to be set.n */n adjustImagesToPuzzleWidth() {n this.adjustImagesToPuzzle(Horizontal);n }nn /**n * Configures canvas to adjust images height to puzzle's heightn *n * Warning: this method requires {@code maxPiecesCount} or {@code puzzleDiameter} to be set.n */n adjustImagesToPuzzleHeight() {n this.adjustImagesToPuzzle(Vertical);n }nn /**n * Configures canvas to adjust images axis to pieces's axisn *n * Warning: this method requires {@code maxPiecesCount} or {@code puzzleDiameter} to be set.n *n * @param {import('./axis').Axis} axisn */n adjustImagesToPiece(axis) {n this._imageAdjuster = (image) => {n const scale = axis.atVector(this.pieceDiameter) / axis.atDimension(image.content);n const offset = Vector.plus(image.offset, this.borderFill);n return { content: image.content, scale, offset };n }n }nn /**n * Configures canvas to adjust images width to pieces's widthn *n * Warning: this method requires {@code maxPiecesCount} or {@code puzzleDiameter} to be set.n */n adjustImagesToPieceWidth() {n this.adjustImagesToPiece(Horizontal);n }nn /**n * Configures canvas to adjust images height to pieces's heightn *n * Warning: this method requires {@code maxPiecesCount} or {@code puzzleDiameter} to be set.n */n adjustImagesToPieceHeight() {n this.adjustImagesToPiece(Vertical);n }nnn _initializeEmptyPuzzle() {n this._puzzle = new Puzzle(this.settings);n }nn /**n * @param {import('./structure').StructureLike} structureLike the piece structuren * @param {import('./size').Size} sizen * @param {CanvasMetadata} metadatan */n _newPiece(structureLike, size, metadata) {n let piece = this.puzzle.newPiece(n Structure.asStructure(structureLike),n { centralAnchor: vector(metadata.currentPosition.x, metadata.currentPosition.y), metadata, size });n return piece;n }nn /**n * The puzzle diameter, using then * configured puzzle diameter or the estimated one, if the first is not available.n *n * @type {import('./vector').Vector}n * */n get puzzleDiameter() {n return this._puzzleDiameter || this.estimatedPuzzleDiameter;n }nn /**n * The estimated puzzle diameter calculated using the the max pieces count.n *n * @type {import('./vector').Vector}n * */n get estimatedPuzzleDiameter() {n return Vector.plus(Vector.multiply(this.pieceDiameter, this.maxPiecesCount), this.strokeWidth * 2)n }nn get maxPiecesCount() {n if (!this._maxPiecesCount) {n throw new Error("max pieces count was not specified");n }n return this._maxPiecesCount;n }nn /**n * @type {import('./vector').Vector}n */n get pieceRadio() {n return this.pieceSize.radio;n }nn /**n * @type {import('./vector').Vector}n */n get pieceDiameter() {n return this.pieceSize.diameter;n }nn /**n * The puzzle rendered by this canvasn *n * @type {Puzzle}n */n get puzzle() {n if (!this._puzzle) {n this._initializeEmptyPuzzle();n }n return this._puzzle;n }nn /**n * @type {import('./puzzle').Settings}n */n get settings() {n return {pieceRadio: this.pieceRadio, proximity: this.proximity}n }n}nnmodule.exports = Canvasn”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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) { return pos.id === elem.pointerId; });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({ evt: evt });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: evtn }, 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) { return pos.id === elem.pointerId; });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() ||n (elem.node instanceof Global_1.Konva && 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: evtn }, 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}n”,“const {Slot, Tab, None} = require('./insert');nconst {orthogonalMap} = require('./prelude');nn/**n * @typedef {object} Structuren * @property {import('./insert').Insert} [up]n * @property {import('./insert').Insert} [left]n * @property {import('./insert').Insert} [down]n * @property {import('./insert').Insert} [right]n */nn/**n * @module Structuren */nn/**n * @privaten * @param {string} insertn * @returns {import('./insert').Insert}n */nfunction parseInsert(insert) {n return insert === 'S' ? Slot : insert === 'T' ? Tab : None;n}nn/**n *n * @param {Structure} structuren * @returns {string}n */nfunction serialize(structure) {n return orthogonalMap([structure.right, structure.down, structure.left, structure.up], it => it.serialize(), None).join('');n}nn/**n *n * @param {string} stringn * @returns {Structure}n */nfunction deserialize(string) {nn if (string.length !== 4) {n throw new Error("structure string must be 4-chars long");n }nn return {n right: parseInsert(string),n down: parseInsert(string),n left: parseInsert(string),n up: parseInsert(string),n };n}nn/**n * @typedef {Structure|string} StructureLiken */nn/**n * @param {StructureLike} structureLiken * @returns {Structure}n */nfunction asStructure(structureLike) {n if (typeof(structureLike) === 'string') {n return deserialize(structureLike);n }n return structureLike;n}nnmodule.exports = {n serialize,n deserialize,n asStructuren};nnn”,“const Vector = require('./vector');nn/**n * @typedef {Object} Sizen * @property {import('./vector').Vector} radion * @property {import('./vector').Vector} diametern **/nnn/**n * @param {import('./vector').Vector|number} valuen * @returns {Size}n */nfunction radio(value) {n const vector = Vector.cast(value)n return {n radio: vector,n diameter: Vector.multiply(vector, 2)n };n}nn/**n * @param {import('./vector').Vector|number} valuen * @returns {Size}n */nfunction diameter(value) {n const vector = Vector.cast(value)n return {n radio: Vector.multiply(vector, 0.5),n diameter: vectorn };n}nnmodule.exports = {n radio,n diametern}n”,“const {Anchor} = require('./anchor');nn/**n * @typedef {(pieces: import("./piece")[]) => import("./vector").Vector[]} Shufflern */nn/**n * @privaten */nfunction sampleIndex(list) {n return Math.round(Math.random() * (list.length - 1));n}nn/**n * @param {number} maxXn * @param {number} maxYn *n * @returns {Shuffler}n */nfunction random(maxX, maxY) {n return (pieces) => pieces.map(_it => Anchor.atRandom(maxX, maxY));n}nn/**n * @type {Shuffler}n * */nconst grid = (pieces) => {n const destinations = pieces.map(it => it.centralAnchor.asVector());n for (let i = 0; i < destinations.length; i++) {n const j = sampleIndex(destinations);n const temp = destinations;n destinations = destinations;n destinations = temp;n }n return destinations;n};nn/**n * @type {Shuffler}n * */nconst columns = (pieces) => {n const destinations = pieces.map(it => it.centralAnchor.asVector());n const columns = new Map();nn for (let destination of destinations) {n if (!columns.get(destination.x)) {n columns.set(destination.x, destinations.filter(it => it.x == destination.x));n }n const column = columns.get(destination.x);nn const j = sampleIndex(column);n const temp = column.yn column.y = destination.y;n destination.y = temp;n }n return destinations;n};nnn/**n * @type {Shuffler}n * */nconst line = (pieces) => {n const destinations = pieces.map(it => it.centralAnchor.asVector());n const columns = new Set(destinations.map(it => it.x));n const maxX = Math.max(…columns);n const minX = Math.min(…columns);n const width = (maxX - minX) / (columns.size - 1);n const pivot = minX + (width / 2);nn const lineLength = destinations.length * width;n const linePivot = destinations.filter(it => it.x < pivot).length * width;nn const init = [];n const tail = [];nn for (let i = 0; i < linePivot; i += width) {n init.push(i);n }nn for (let i = init[init.length - 1] + width; i < lineLength; i += width) {n tail.push(i);n }nn for (let destination of destinations) {n const source = destination.x < pivot ? init : tail;n const index = sampleIndex(source);nn destination.y = 0;n destination.x = source;n source.splice(index, 1);n }n return destinations;n};nn/**n * @param {number} paddingn * @param {number} widthn * @param {number} heightn * @returns {Shuffler}n * */nfunction padder(padding, width, height) {n return (pieces) => {n const destinations = pieces.map(it => it.centralAnchor.asVector());n let dx = 0;n let dy = 0;n for (let j = 0; j < height; j++) {n for (let i = 0; i < width; i++) {n const destination = destinations[i + width * j];n destination.x += dx;n destination.y += dy;nn dx += padding;n }n dx = 0;n dy += padding;n }n return destinations;n }n}nn/**n * @param {import('./vector').Vector} maxDistancen * @returns {Shuffler}n */nfunction noise(maxDistance) {n return (pieces) => {n return pieces.map(it =>n Anchorn .atRandom(2 * maxDistance.x, 2 * maxDistance.y)n .translate(-maxDistance.x, -maxDistance.y)n .translate(it.centralAnchor.x, it.centralAnchor.y)n .asVector());n }n}nn/**n * @type {Shuffler}n * */nconst noop = (pieces) => pieces.map(it => it.centralAnchor);nnmodule.exports = {n random,n grid,n columns,n line,n noop,n padder,n noisen}n”,“const {Tab, Slot, None} = require('./insert');nn/**n * A function for generating {@link Insert}s sequentiallyn *n * @callback InsertsGeneratorn * @param {number} index the position of the element to be generated in the sequencen * @returns {import('./insert').Insert}n */nn/**n * This module exports several {@link Insert}s sequences strategies: {@link fixed}, {@link flipflop}, {@link twoAndTwo} and {@link random}n *n * @module sequencen */nn/**n * @type {InsertsGenerator}n */nfunction fixed(_n) {n return Tab;n}nn/**n * Generates slots and tabs alternatelyn *n * @type {InsertsGenerator}n */nfunction flipflop(n) {n return n % 2 === 0 ? Tab : Slot;n}nn/**n * Generates sequences of two slots and then two tabsn *n * @type {InsertsGenerator}n */nfunction twoAndTwo(n) {n return n % 4 < 2 ? Tab : Slot;n}nn/**n * Generates tabs and slots in a psuedo-random wayn *n * @type {InsertsGenerator}n */nfunction random(_) {n return Math.random() < 0.5 ? Tab : Slot;n}nn/**n * An InsertSequence is a statefull object thatn * allows to generate {@link Insert}s sequences using an {@link InsertsGenerator} as strategyn */nclass InsertSequence {n /**n * @param {InsertsGenerator} generator the generator used by this sequence to produce insertsn */n constructor(generator) {n this.generator = generator;n this.n = 0n this._previous;n this._current = None;n }nn /**n * The previously generated insertn *n * @returns {import('./insert').Insert}n */n previousComplement() {n return this._previous.complement();n }nn /**n * Answers the last Insert generated by {@link InsertSequence#next}n *n * @returns {import('./insert').Insert}n */n current(max) {n if (this.n == max) {n return Nonen }n return this._current;n }nn /**n * @returns {import('./insert').Insert}n **/n next() {n this._previous = this._current;n this._current = this.generator(this.n++);n return this._current;n }n}nnmodule.exports = {n InsertSequence,n fixed,n flipflop,n twoAndTwo,n randomn}n”,“/**n * This module exposes metadata-handling functions you can override to have better performancen *n * @module Metadatan */nn/**n * Copies a metadata object. The default implementation uses {@link JSON#parse}. Override it to have better performancen *n * @template Tn * @param {T} metadatan * @returns {T}n */nfunction copy(metadata) {n return JSON.parse(JSON.stringify(metadata));n}nnmodule.exports = {n copyn}n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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);n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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: 0n };n this.func = func;n this.setLayers(layers);n }n Animation.prototype.setLayers = function (layers) {n var lays = [];n if (!layers) {n lays = [];n }n else if (layers.length > 0) {n lays = layers;n }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, len = layers.length, n;n for (n = 0; n < len; n++) {n if (layers._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, animations = a.animations, len = animations.length, n;n for (n = 0; n < len; n++) {n if (animations.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, animations = this.animations, len = animations.length, n;n for (n = 0; n < len; n++) {n if (animations.id === id) {n this.animations.splice(n, 1);n break;n }n }n };n Animation._runFrames = function () {n var layerHash = {}, animations = this.animations, anim, layers, func, n, i, layersLen, layer, key, needRedraw;n for (n = 0; n < animations.length; n++) {n anim = animations;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 }n else {n needRedraw = true;n }n if (!needRedraw) {n continue;n }n for (i = 0; i < layersLen; i++) {n layer = layers;n if (layer._id !== undefined) {n layerHash = layer;n }n }n }n for (key in layerHash) {n if (!layerHash.hasOwnProperty(key)) {n continue;n }n layerHash.draw();n }n };n Animation._animationLoop = function () {n var Anim = Animation;n if (Anim.animations.length) {n Anim._runFrames();n requestAnimationFrame(Anim._animationLoop);n }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;n”,“nn/**n * @typedef {Vertical|Horizontal} Axisn */nnconst Vertical = {n /**n * @param {import("./vector").Vector} vectorn * @returns {number}n */n atVector(vector) {n return vector.yn },nn /**n * @param {HTMLImageElement|HTMLCanvasElement} imagen * @returns {number}n */n atDimension(image) {n return image.height;n }n}nnconst Horizontal = {n /**n * @param {import("./vector").Vector} vectorn * @returns {number}n */n atVector(vector) {n return vector.xn },nn /**n * @param {HTMLImageElement|HTMLCanvasElement} imagen * @returns {number}n */n atDimension(image) {n return image.width;n }n}nnmodule.exports = {n Vertical,n Horizontaln}n”,“const Puzzle = require('./puzzle');nconst Piece = require('./piece');nconst {Anchor} = require('./anchor');nconst {anchor} = require('./anchor');nconst {fixed, InsertSequence} = require('./sequence')nconst Metadata = require('./metadata');nn/**n * A manufacturer allows to create rectangularn * puzzles by automatically generating insertsn */nclass Manufacturer {n constructor() {n this.insertsGenerator = fixed;n this.metadata = [];n /** @type {Anchor} */n this.headAnchor = null;n }nn /**n * Attach metadata to each piecen *n * @param {object[]} metadata list of metadata that will be attached to each generated piecen */n withMetadata(metadata) {n this.metadata = metadata;n }nn /**n * @param {import('./sequence').InsertsGenerator} generatorn */n withInsertsGenerator(generator) {n this.insertsGenerator = generator || this.insertsGenerator;n }nn /**n * Sets the central anchor. If not specified, puzzle will be positionedn * at the distance of a whole piece from the originn *n * @param {Anchor} anchorn */n withHeadAt(anchor) {n this.headAnchor = anchor;n }nn /**n * If nothing is configured, default Puzzle structured is assumedn *n * @param {import('../src/puzzle').Settings} structuren */n withStructure(structure) {n this.structure = structuren }nn /**n *n * @param {number} widthn * @param {number} heightn */n withDimmensions(width, height) {n this.width = width;n this.height = height;n }nn /**n * @returns {Puzzle}n */n build() {n const puzzle = new Puzzle(this.structure);n const positioner = new Positioner(puzzle, this.headAnchor);nn let verticalSequence = this._newSequence();n let horizontalSequence;nn for (let y = 0; y < this.height; y++) {n horizontalSequence = this._newSequence();n verticalSequence.next();nn for (let x = 0; x < this.width; x++) {n horizontalSequence.next();n const piece = this._buildPiece(puzzle, horizontalSequence, verticalSequence);n piece.centerAround(positioner.naturalAnchor(x, y));n }n }n this._annotateAll(puzzle.pieces);n return puzzle;n }nn /**n * @param {Piece[]} piecesn */n _annotateAll(pieces) {n pieces.forEach((piece, index) => this._annotate(piece, index));n }nn /**n * @param {Piece} piecen * @param {number} indexn */n _annotate(piece, index) {n const baseMetadata = this.metadata;n const metadata = baseMetadata ? Metadata.copy(baseMetadata) : {};n metadata.id = metadata.id || String(index + 1);n piece.annotate(metadata);n }nn _newSequence() {n return new InsertSequence(this.insertsGenerator);n }nn /**n * @param {Puzzle} puzzlen * @param {InsertSequence} horizontalSequencen * @param {InsertSequence} verticalSequencen */n _buildPiece(puzzle, horizontalSequence, verticalSequence) {n return puzzle.newPiece({n left: horizontalSequence.previousComplement(),n up: verticalSequence.previousComplement(),n right: horizontalSequence.current(this.width),n down: verticalSequence.current(this.height)n });n }n}nnclass Positioner {n /**n *n * @param {Puzzle} puzzlen * @param {Anchor} headAnchorn */n constructor(puzzle, headAnchor) {n this.puzzle = puzzle;n this.initializeOffset(headAnchor);n }nn /**n * @param {Anchor} headAnchorn */n initializeOffset(headAnchor) {n if (headAnchor) {n /** @type {import('./vector').Vector} */n this.offset = headAnchor.asVector();n }n else {n this.offset = this.pieceDiameter;n }n }nn get pieceDiameter() {n return this.puzzle.pieceDiameter;n }nn /**n * @param {number} xn * @param {number} yn */n naturalAnchor(x, y) {n return anchor(n x * this.pieceDiameter.x + this.offset.x,n y * this.pieceDiameter.y + this.offset.y);n }n}nnmodule.exports = Manufacturer;n”,“const Vector = require('./vector');nconst Piece = require('./piece');nconst Pair = require('./pair');nconst {PuzzleValidator} = require('./validator');nn/**n * @typedef {object} SpatialMetadatan * @property {import('./vector').Vector} [targetPosition]n * @property {import('./vector').Vector} [currentPosition]n */nn/**n * Functions for handling spatial metadatan * and pieces and puzzles that are annotated with itn *n * @module SpatialMetadatan */nn /**n *n * @param {Piece} piecen */nfunction diffToTarget(piece) {n return Vector.diff(piece.metadata.targetPosition, piece.centralAnchor.asVector());n}nn/**n * @type {import('../src/validator').PuzzleCondition}n */nconst solved = (puzzle) => relativePosition(puzzle) && PuzzleValidator.connected(puzzle);nn/**n * @type {import('../src/validator').PuzzleCondition}n */nconst relativePosition = (puzzle) => {n const diff0 = diffToTarget(puzzle.head);n return puzzle.pieces.every(piece => PuzzleValidator.equalDiffs(diff0, diffToTarget(piece)));n}nn/**n *@type {import('../src/validator').PieceCondition}n */nconst absolutePosition = (piece) => Vector.equal(piece.centralAnchor.asVector(), piece.metadata.targetPosition);nnn/**n * @param {SpatialMetadata} metadatan * @param {import('./vector').Vector} targetn * @param {import('./vector').Vector} [current]n */nfunction initialize(metadata, target, current) {n metadata.targetPosition = metadata.targetPosition || target;n metadata.currentPosition = metadata.currentPosition || current || Vector.copy(metadata.targetPosition);n}nnmodule.exports = {n initialize,n solved,n relativePosition,n absolutePositionn}n”,“const Canvas = require('./canvas');nconst Piece = require('./piece');nn/**n * @callback VectorActionn * @param {number} dxn * @param {number} dyn */nn /**n * @callback Actionn */nn/**n * An interface for a a rendering backend for a {@link Canvas}, that can be implemented inn * order to create UI representations of a puzzle.n *n * @interface Paintern */nclass Painter {n /**n * @param {Canvas} canvasn * @param {number} widthn * @param {number} heightn */n resize(canvas, width, height) {}nn /**n * Creates the rendering backend, initializig all its contents.n * After this call, painter is ready to receive any other messagesn *n * @param {Canvas} canvasn * @param {string} idn */n initialize(canvas, id) { }nn /**n * Recreates the rendering backend, clearing all its contentsn * After this call, painter is ready to receive any other messagesn * as it had been just initialized.n *n * @param {Canvas} canvasn */n reinitialize(canvas) { }nn /**n * Draws the canvas figures in the rendering backendn *n * @param {Canvas} canvasn */n draw(canvas) { }nn /**n * Scales the canvas contentsn *n * @param {Canvas} canvasn * @param {import('./vector').Vector} factorn */n scale(canvas, factor) { }nn /**n * Adds a piece to the rendering backend, so that it is ready to be drawnn *n * @param {Canvas} canvasn * @param {Piece} piecen * @param {import('./canvas').Figure} figure the rendering backend information for this piece. This method may mutate it if necessaryn * @param {import('./outline').Outline} outlinen */n sketch(canvas, piece, figure, outline) { }nn /**n * Fills a piece using the canvas image informationn * assigned for itn *n * @param {Canvas} canvasn * @param {Piece} piecen * @param {import('./canvas').Figure} figuren */n fill(canvas, piece, figure) { }nn /**n * Adds piece's label to the given figure in the rendering backendn *n * @param {Canvas} canvasn * @param {Piece} piecen * @param {import('./canvas').Figure} figure the rendering backend information for this piece. This method may mutate it if necessaryn */n label(canvas, piece, figure) { }nn /**n * Translates th given piecen * @param {Canvas} canvasn * @param {import('./canvas').Group} groupn * @param {Piece} piecen */n physicalTranslate(canvas, group, piece) { }nn /**n * @param {Canvas} canvasn * @param {Piece} piecen * @param {import('./canvas').Group} groupn */n logicalTranslate(canvas, piece, group) { }nn /**n * Registers a drag-start callbackn *n * @param {Canvas} canvasn * @param {Piece} piecen * @param {import('./canvas').Group} groupn * @param {VectorAction} fn *n */n onDrag(canvas, piece, group, f) { }nn /**n * Registers a drag-end callbackn *n * @param {Canvas} canvasn * @param {Piece} piecen * @param {import('./canvas').Group} groupn * @param {Action} fn */n onDragEnd(canvas, piece, group, f) { }n}nnmodule.exports = Painter;n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });nvar Util_1 = require("./Util");nvar Global_1 = require("./Global");nvar COMMA = ',', OPEN_PAREN = '(', CLOSE_PAREN = ')', OPEN_PAREN_BRACKET = '([', CLOSE_BRACKET_PAREN = '])', SEMICOLON = ';', DOUBLE_PAREN = '()', EQUALS = '=', CONTEXT_METHODS = [n 'arc',n 'arcTo',n 'beginPath',n 'bezierCurveTo',n 'clearRect',n 'clip',n 'closePath',n 'createLinearGradient',n 'createPattern',n 'createRadialGradient',n 'drawImage',n 'ellipse',n 'fill',n 'fillText',n 'getImageData',n 'createImageData',n 'lineTo',n 'moveTo',n 'putImageData',n 'quadraticCurveTo',n 'rect',n 'restore',n 'rotate',n 'save',n 'scale',n 'setLineDash',n 'setTransform',n 'stroke',n 'strokeText',n 'transform',n 'translate'n];nvar CONTEXT_PROPERTIES = [n 'fillStyle',n 'strokeStyle',n 'shadowColor',n 'shadowBlur',n 'shadowOffsetX',n 'shadowOffsetY',n 'lineCap',n 'lineDashOffset',n 'lineJoin',n 'lineWidth',n 'miterLimit',n 'font',n 'textAlign',n 'textBaseline',n 'globalAlpha',n 'globalCompositeOperation',n 'imageSmoothingEnabled'n];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 };n Context.prototype.strokeShape = function (shape) {n if (shape.hasStroke()) {n this._stroke(shape);n }n };n Context.prototype._stroke = function (shape) {n };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, len = traceArr.length, str = '', n, trace, method, args;n for (n = 0; n < len; n++) {n trace = traceArr;n method = trace.method;n if (method) {n args = trace.args;n str += method;n if (relaxed) {n str += DOUBLE_PAREN;n }n else {n if (Util_1.Util._isArray(args)) {n str += OPEN_PAREN_BRACKET + args.join(COMMA) + CLOSE_BRACKET_PAREN;n }n else {n str += OPEN_PAREN + args.join(COMMA) + CLOSE_PAREN;n }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, 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 }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 = 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 }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, _context = this._context;n if (a.length === 3) {n _context.drawImage(a0, a1, a2);n }n else if (a.length === 5) {n _context.drawImage(a0, a1, a2, a3, a4);n }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 }n else if ('mozDash' in this._context) {n this._context = a0;n }n else if ('webkitLineDash' in this._context) {n this._context = 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, len = CONTEXT_METHODS.length, _simplifyArray = Util_1.Util._simplifyArray, origSetter = this.setAttr, n, args;n var func = function (methodName) {n var origMethod = that, ret;n that = function () {n args = _simplifyArray(Array.prototype.slice.call(arguments, 0));n ret = origMethod.apply(that, arguments);n that._trace({n method: methodName,n args: argsn });n return ret;n };n };n for (n = 0; n < len; n++) {n func(CONTEXT_METHODS);n }n that.setAttr = function () {n origSetter.apply(that, arguments);n var prop = arguments;n var val = arguments;n if (prop === 'shadowOffsetX' ||n prop === 'shadowOffsetY' ||n prop === 'shadowBlur') {n val = val / this.canvas.getPixelRatio();n }n that._trace({n property: prop,n val: valn });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;n },n set: function (val) {n this._context = 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(), fillPatternY = shape.getFillPatternY(), fillPatternRotation = Global_1.Konva.getAngle(shape.getFillPatternRotation()), fillPatternOffsetX = shape.getFillPatternOffsetX(), fillPatternOffsetY = shape.getFillPatternOffsetY(), fillPatternScaleX = shape.getFillPatternScaleX(), 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(), 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 }n else if (hasPattern) {n this._fillPattern(shape);n }n else if (hasLinearGradient) {n this._fillLinearGradient(shape);n }n else if (hasRadialGradient) {n this._fillRadialGradient(shape);n }n };n SceneContext.prototype._strokeLinearGradient = function (shape) {n var start = shape.getStrokeLinearGradientStartPoint(), end = shape.getStrokeLinearGradientEndPoint(), colorStops = shape.getStrokeLinearGradientColorStops(), 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, colorStops[n + 1]);n }n this.setAttr('strokeStyle', grd);n }n };n SceneContext.prototype._stroke = function (shape) {n var dash = shape.dash(), 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 }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, color = util.get(shape.getShadowRGBA(), 'black'), blur = util.get(shape.getShadowBlur(), 5), offset = util.get(shape.getShadowOffset(), {n x: 0,n y: 0n }), scale = shape.getAbsoluteScale(), ratio = this.canvas.getPixelRatio(), scaleX = scale.x * ratio, 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;n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });nvar Global_1 = require("./Global");nvar Captures = new Map();nvar SUPPORT_POINTER_EVENTS = Global_1.Konva._global !== undefined;nfunction getCapturedShape(pointerId) {n return Captures.get(pointerId);n}nexports.getCapturedShape = getCapturedShape;nfunction createEvent(evt) {n return {n evt: evt,n pointerId: evt.pointerIdn };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)n 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)n return;n var stage = shape.getStage();n if (stage && stage.content) {n }n Captures.delete(pointerId);n if (SUPPORT_POINTER_EVENTS) {n shape._fire('lostpointercapture', createEvent(new PointerEvent('lostpointercapture')));n }n}nexports.releaseCapture = releaseCapture;n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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._setSmoothEnabled);n _this._setSmoothEnabled();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 }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 }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.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, height = _a.height;n this.canvas.setSize(width, height);n this._setSmoothEnabled();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 }n else {n this.canvas._canvas.style.display = 'none';n }n };n BaseLayer.prototype._setSmoothEnabled = 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, m, m, m, m, m);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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }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.length;n for (var r = Array(s), k = 0, i = 0; i < il; i++)n for (var a = arguments, j = 0, jl = a.length; j < jl; j++, k++)n r = a;n return r;n};nObject.defineProperty(exports, "__esModule", { value: true });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(), length = points.length, tension = this.tension(), closed = this.closed(), bezier = this.bezier(), tp, len, n;n if (!length) {n return;n }n context.beginPath();n context.moveTo(points, points);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, tp, tp, tp);n }n while (n < len - 2) {n context.bezierCurveTo(tp, tp, tp, tp, tp, tp);n }n if (!closed) {n context.quadraticCurveTo(tp[len - 2], tp[len - 1], points[length - 2], points[length - 1]);n }n }n else if (bezier) {n n = 2;n while (n < length) {n context.bezierCurveTo(points, points, points, points, points, points);n }n }n else {n for (n = 2; n < length; n += 2) {n context.lineTo(points, points[n + 1]);n }n }n if (closed) {n context.closePath();n context.fillStrokeShape(this);n }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 }n else {n return Util_1.Util._expandPoints(this.points(), this.tension());n }n };n Line.prototype._getTensionPointsClosed = function () {n var p = this.points(), len = p.length, tension = this.tension(), firstControlPoints = Util_1.Util._getControlPoints(p[len - 2], p[len - 1], p, p, p, p, tension), lastControlPoints = Util_1.Util._getControlPoints(p[len - 4], p[len - 3], p[len - 2], p[len - 1], p, p, tension), middle = Util_1.Util._expandPoints(p, tension), tp = [firstControlPoints, firstControlPoints]n .concat(middle)n .concat([n lastControlPoints,n lastControlPoints,n p[len - 2],n p[len - 1],n lastControlPoints,n lastControlPoints,n firstControlPoints,n firstControlPoints,n p,n pn ]);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,n y: points || 0,n width: 0,n height: 0n };n }n if (this.tension() !== 0) {n points = __spreadArrays([n points,n pointsn ], this._getTensionPoints(), [n points[points.length - 2],n points[points.length - 1]n ]);n }n else {n points = this.points();n }n var minX = points;n var maxX = points;n var minY = points;n var maxY = points;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 - minYn };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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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.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.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.command;n var p = ca.points;n switch © {n case 'L':n context.lineTo(p, p);n break;n case 'M':n context.moveTo(p, p);n break;n case 'C':n context.bezierCurveTo(p, p, p, p, p, p);n break;n case 'Q':n context.quadraticCurveTo(p, p, p, p);n break;n case 'A':n var cx = p, cy = p, rx = p, ry = p, theta = p, dTheta = p, psi = p, fs = p;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 }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;n var dTheta = data.points;n var end = data.points + 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, data.points, data.points, data.points, t, 0);n points.push(point.x, point.y);n }n }n else {n for (var t = start + inc; t < end; t += inc) {n var point = Path.getPointOnEllipticalArc(data.points, data.points, data.points, data.points, t, 0);n points.push(point.x, point.y);n }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, data.points, data.points, data.points, data.points, data.points);n points.push(point.x, point.y);n }n }n else {n points = points.concat(data.points);n }n });n var minX = points;n var maxX = points;n var minY = points;n var maxY = points;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, i = 0, ii = this.dataArray.length;n if (!ii) {n return null;n }n while (i < ii && length > this.dataArray.pathLength) {n length -= this.dataArray.pathLength;n ++i;n }n if (i === ii) {n point = this.dataArray[i - 1].points.slice(-2);n return {n x: point,n y: pointn };n }n if (length < 0.01) {n point = this.dataArray.points.slice(0, 2);n return {n x: point,n y: pointn };n }n var cp = this.dataArray;n var p = cp.points;n switch (cp.command) {n case 'L':n return Path.getPointOnLine(length, cp.start.x, cp.start.y, p, p);n case 'C':n return Path.getPointOnCubicBezier(length / cp.pathLength, cp.start.x, cp.start.y, p, p, p, p, p, p);n case 'Q':n return Path.getPointOnQuadraticBezier(length / cp.pathLength, cp.start.x, cp.start.y, p, p, p, p);n case 'A':n var cx = p, cy = p, rx = p, ry = p, theta = p, dTheta = p, psi = p;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 + risen };n }n else if ((fromY - P1y) / (fromX - P1x + 0.00000001) === m) {n pt = {n x: fromX + run,n y: fromY + risen };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 + risen };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: yn };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: yn };n };n Path.getPointOnEllipticalArc = function (cx, cy, rx, ry, theta, psi) {n var cosPsi = Math.cos(psi), 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 = [n 'm',n 'M',n 'l',n 'L',n 'v',n 'V',n 'h',n 'H',n 'z',n 'Z',n 'c',n 'C',n 'q',n 'Q',n 't',n 'T',n 's',n 'S',n 'a',n 'A'n ];n cs = cs.replace(new RegExp(' ', 'g'), ',');n for (var n = 0; n < cc.length; n++) {n cs = cs.replace(new RegExp(cc, 'g'), '|' + cc);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 var c = str.charAt(0);n str = str.slice(1);n coords.length = 0;n while ((match = re.exec(str))) {n coords.push(match);n }n var p = [];n for (var j = 0, jlen = coords.length; j < jlen; j++) {n var parsed = parseFloat(coords);n if (!isNaN(parsed)) {n p.push(parsed);n }n else {n p.push(0);n }n }n while (p.length > 0) {n if (isNaN(p)) {n break;n }n var cmd = null;n var points = [];n var startX = cpx, startY = cpy;n var prevCmd, ctlPtx, ctlPty;n var rx, ry, psi, fa, fs, x1, y1;n switch © {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.command === 'M') {n cpx = ca.points + dx;n cpy = ca.points + 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);n ctlPty = cpy + (cpy - prevCmd.points);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);n ctlPty = cpy + (cpy - prevCmd.points);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);n ctlPty = cpy + (cpy - prevCmd.points);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);n ctlPty = cpy + (cpy - prevCmd.points);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: startYn },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: 0n });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, points);n case 'C':n len = 0.0;n p1 = path.getPointOnCubicBezier(0, x, y, points, points, points, points, points, points);n for (t = 0.01; t <= 1; t += 0.01) {n p2 = path.getPointOnCubicBezier(t, x, y, points, points, points, points, points, points);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, points, points, points);n for (t = 0.01; t <= 1; t += 0.01) {n p2 = path.getPointOnQuadraticBezier(t, x, y, points, points, points, points);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;n var dTheta = points;n var end = points + 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, points, points, points, start, 0);n if (dTheta < 0) {n for (t = start - inc; t > end; t -= inc) {n p2 = path.getPointOnEllipticalArc(points, points, points, points, t, 0);n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);n p1 = p2;n }n }n else {n for (t = start + inc; t < end; t += inc) {n p2 = path.getPointOnEllipticalArc(points, points, points, points, t, 0);n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);n p1 = p2;n }n }n p2 = path.getPointOnEllipticalArc(points, points, points, points, 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 +n (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)) /n (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 * v + v * v);n };n var vRatio = function (u, v) {n return (u * v + u * v) / (vMag(u) * vMag(v));n };n var vAngle = function (u, v) {n return (u * v < u * v ? -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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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(), width = this.width(), height = this.height();n context.beginPath();n if (!cornerRadius) {n context.rect(0, 0, width, height);n }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 }n else {n topLeft = Math.min(cornerRadius, width / 2, height / 2);n topRight = Math.min(cornerRadius, width / 2, height / 2);n bottomRight = Math.min(cornerRadius, width / 2, height / 2);n bottomLeft = Math.min(cornerRadius, 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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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', CENTER = 'center', JUSTIFY = 'justify', CHANGE_KONVA = 'Change.konva', CONTEXT_2D = '2d', DASH = '-', LEFT = 'left', TEXT = 'text', TEXT_UPPER = 'Text', TOP = 'top', BOTTOM = 'bottom', MIDDLE = 'middle', NORMAL = 'normal', PX_SPACE = 'px ', SPACE = ' ', RIGHT = 'right', WORD = 'word', CHAR = 'char', NONE = 'none', ELLIPSIS = '…', ATTR_CHANGE_LIST = [n 'fontFamily',n 'fontSize',n 'fontStyle',n 'fontVariant',n 'padding',n 'align',n 'verticalAlign',n 'lineHeight',n 'text',n 'width',n 'height',n 'wrap',n 'ellipsis',n '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 &&n !config.fillRadialGradientColorStops &&n !config.fillPatternImage) {n config.fill = config.fill || 'black';n }n return config;n}nvar trimRight = String.prototype.trimRight ||n function polyfill() {n return this.replace(/+$/, '');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 + CHANGE_KONVA, _this._setTextData);n }n _this._setTextData();n return _this;n }n Text.prototype._sceneFunc = function (context) {n var padding = this.padding(), fontSize = this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, textArr = this.textArr, textArrLen = textArr.length, verticalAlign = this.verticalAlign(), alignY = 0, align = this.align(), totalWidth = this.getWidth(), letterSpacing = this.letterSpacing(), fill = this.fill(), textDecoration = this.textDecoration(), shouldUnderline = textDecoration.indexOf('underline') !== -1, shouldLineThrough = textDecoration.indexOf('line-through') !== -1, 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 }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, text = obj.text, width = obj.width, lastLine = n !== textArrLen - 1, spacesNumber, oneWord, lineWidth;n context.save();n if (align === RIGHT) {n lineTranslateX += totalWidth - width - padding * 2;n }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 =n align === JUSTIFY && lastLine && !oneWordn ? totalWidth - padding * 2n : 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 =n align === JUSTIFY && lastLine && !oneWordn ? totalWidth - padding * 2n : 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;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 +=n Math.round(this.measureSize(letter).width) + letterSpacing;n }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(), 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)n ? textn : text === null || text === undefinedn ? ''n : 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 isAuton ? this.fontSize() * this.textArr.length * this.lineHeight() +n this.padding() * 2n : 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(), fontSize = this.fontSize(), 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: fontSizen };n };n Text.prototype._getContextFont = function () {n if (Global_1.Konva.UA.isIE) {n return (this.fontStyle() +n SPACE +n this.fontSize() +n PX_SPACE +n this.fontFamily());n }n return (this.fontStyle() +n SPACE +n this.fontVariant() +n SPACE +n this.fontSize() +n PX_SPACE +n 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({ text: line, width: width });n };n Text.prototype._getTextWidth = function (text) {n var letterSpacing = this.letterSpacing();n var length = text.length;n return (getDummyContext().measureText(text).width +n (length ? letterSpacing * (length - 1) : 0));n };n Text.prototype._setTextData = function () {n var lines = this.text().split('\n'), fontSize = +this.fontSize(), textWidth = 0, lineHeightPx = this.lineHeight() * fontSize, width = this.attrs.width, height = this.attrs.height, fixedWidth = width !== AUTO && width !== undefined, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxWidth = width - padding * 2, maxHeightPx = height - padding * 2, currentHeightPx = 0, wrap = this.wrap(), shouldWrap = wrap !== NONE, wrapAtWord = wrap !== CHAR && shouldWrap, 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;n var lineWidth = this._getTextWidth(line);n if (fixedWidth && lineWidth > maxWidth) {n while (line.length > 0) {n var low = 0, high = line.length, match = '', matchWidth = 0;n while (low < high) {n var mid = (low + high) >>> 1, substr = line.slice(0, mid + 1), substrWidth = this._getTextWidth(substr) + additionalWidth;n if (substrWidth <= maxWidth) {n low = mid + 1;n match = substr + (shouldAddEllipsis ? ELLIPSIS : '');n matchWidth = substrWidth;n }n else {n high = mid;n }n }n if (match) {n if (wrapAtWord) {n var wrapIndex;n var nextChar = line;n var nextIsSpaceOrDash = nextChar === SPACE || nextChar === DASH;n if (nextIsSpaceOrDash && matchWidth <= maxWidth) {n wrapIndex = match.length;n }n else {n wrapIndex =n Math.max(match.lastIndexOf(SPACE), match.lastIndexOf(DASH)) +n 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 ||n (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 }n else {n break;n }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 = [n 'text',n 'fontSize',n 'padding',n 'wrap',n 'lineHeight'n];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);n”,“const Pair = require('./pair')nconst {anchor, Anchor} = require('./anchor')nconst Puzzle = require('./puzzle');nconst Piece = require('./piece');nconst {Tab, Slot, None} = require('./insert');nconst {NullValidator, PieceValidator, PuzzleValidator} = require('./validator');nconst {Horizontal, Vertical} = require('./axis');nconst Structure = require('./structure');nconst Outline = require('./outline');nconst Canvas = require('./canvas');nconst Manufacturer = require('./manufacturer');nconst {InsertSequence, …generators} = require('./sequence');nconst Metadata = require('./metadata');nconst SpatialMetadata = require('./spatial-metadata');nconst {vector, …Vector} = require('./vector');nconst {radio, diameter} = require('./size');nconst Shuffler = require('./shuffler');nconst outline = require('./outline');nn/**n * @module headbreakern */nmodule.exports = {n anchor,n vector,n radio,n diameter,n Anchor,n Puzzle,n Piece,n Canvas,n Manufacturer,n InsertSequence,n PieceValidator,n PuzzleValidator,n NullValidator,n Horizontal,n Vertical,n Tab,n Slot,n None,n Pair,n Metadata,n SpatialMetadata,n Outline,n Structure,n Vector,n Shuffler,n generators,n outline,n painters: {n Dummy: require('./dummy-painter'),n Konva: require('./konva-painter')n }n}n”,“/**n * @privaten * @module betweenn * */nn/**n * @param {number} valuen * @param {number} minn * @param {number} maxn * @returns {boolean}n */nfunction between(value, min, max) {n return min <= value && value <= max;n}nnmodule.exports = between;n”,“/**n * @privaten * @module Connectorn */nconst {pivot} = require('./prelude');nn/**n * @privaten */nclass Connector {nn /**n * @param {"x" | "y"} axisn * @param {"right" | "down"} forwardn * @param {"left" | "up"} backwardn */n constructor(axis, forward, backward) {nn this.axis = axis;nn this.forward = forward;n this.backward = backward;nn this.forwardAnchor = `${forward}Anchor`;n this.backwardAnchor = `${backward}Anchor`;nn this.forwardConnection = `${forward}Connection`;n this.backwardConnection = `${backward}Connection`;n }nn /**n * @param {boolean} [back]n */n attract(one, other, back = false) {n const [iron, magnet] = pivot(one, other, back);n let dx, dy;n if (magnet.centralAnchor > iron.centralAnchor) {n [dx, dy] = magnet.diff(iron)n } else {n [dx, dy] = magnet.diff(iron)n }n iron.push(dx, dy);n }nnn /**n * @param {number} deltan * @returns {boolean}n */n openMovement(one, delta) {n return (delta > 0 && !one) || (delta < 0 && !one) || delta == 0;n }nn /**n * @param {number} proximityn * @returns {boolean}n */n canConnectWith(one, other, proximity) {n return this.closeTo(one, other, proximity) && this.match(one, other);n }nn /**n *n * @param {number} proximityn * @returns {boolean}n */n closeTo(one, other, proximity) {n return one.closeTo(other, proximity);n }nn /**n * @returns {boolean}n */n match(one, other) {n return one.match(other);n }nn /**n * @param {import('./piece')} onen * @param {*} othern * @param {number} proximityn * @param {boolean} backn */n connectWith(one, other, proximity, back) {n if (!this.canConnectWith(one, other, proximity)) {n throw new Error(`can not connect ${this.forward}!`);n }n if (one !== other) {n this.attract(other, one, back);n one = other;n other = one;n one.fireConnect(other);n }n }n}nnmodule.exports = {n horizontal: new Connector("x", "right", "left"),n vertical: new Connector("y", "down", "up")n};n”,“const {vector} = require('./vector');nn/**n * @typedef {object} ImageMetadatan * @property {HTMLImageElement|HTMLCanvasElement} contentn * @property {import('./vector').Vector} [offset]n * @property {number} [scale]n */nn/**n * @typedef {HTMLImageElement|HTMLCanvasElement|ImageMetadata} ImageLiken */nn/**n * @module ImageMetadatan */nn/**n * Converts an image-like object into a true {@link ImageMetadata} objectn *n * @param {ImageLike} imageLiken * @returns {ImageMetadata}n */nfunction asImageMetadata(imageLike) {n if (imageLike instanceof HTMLImageElement || imageLike instanceof HTMLCanvasElement) {n return {n content: imageLike,n offset: vector(1, 1),n scale: 1n };n }n return imageLike;n}nnmodule.exports = {n asImageMetadatan}n”,“const Canvas = require('./canvas');nconst Piece = require('./piece');nconst Painter = require('./painter');nn/**n * A {@link Painter} for testing purpouses that does not perform renderingn *n * @implements {Painter}n */nclass DummyPainter extends Painter {n /**n * @param {Canvas} canvasn * @param {string} idn */n initialize(canvas, id) {n canvas = {drawn: false, figures: 0};n }nn /**n * @param {Canvas} canvasn */n draw(canvas) {n canvas.drawn = true;n }nn /**n *n * @param {Canvas} canvasn * @param {Piece} _piecen * @param {import('./canvas').Figure} _figuren * @param {import('./outline').Outline} outlinen */n sketch(canvas, _piece, _figure, outline) {n canvas.figures++;n }n}nnmodule.exports = DummyPainter;n”,“let Konva;ntry {n // @ts-ignoren Konva = require('konva');n} catch (e) {n Konva = {n Stage: class {n constructor(_options) {n throw new Error("Konva not loaded");n }n }n };n}nnconst Canvas = require('./canvas');nconst Outline = require('./outline');nconst Piece = require('./piece');nconst Pair = require('./pair');nconst {vector, …Vector} = require('./vector');nconst Painter = require('./painter');nnn/**n * @privaten * @param {Piece} modeln * @param {*} groupn */nfunction currentPositionDiff(model, group) {n return Pair.diff(group.x(),group.y(), model.metadata.currentPosition.x, model.metadata.currentPosition.y);n}nn/**n * A {@link Painter} that uses Konva.js as rendering backendn * @implements {Painter}n */nclass KonvaPainter extends Painter {n /** @typedef {import('./canvas').Figure} Figure */n /** @typedef {import('./canvas').Group} Group */nn /**n * @param {Canvas} canvasn * @param {string} idn */n initialize(canvas, id) {n var stage = this._newStage({n container: id,n width: canvas.width,n height: canvas.height,n draggable: !canvas.fixed,n });nn this._initializeLayer(stage, canvas);n }nn _initializeLayer(stage, canvas) {n var layer = this._newLayer({});n stage.add(layer);n canvas = layer;n }nn /**n * @param {Canvas} canvasn */n draw(canvas) {n canvas.draw();n }nn /**n * @param {Canvas} canvasn */n reinitialize(canvas) {n const layer = canvas;n const stage = layer.getStage();n layer.destroy();nn this._initializeLayer(stage, canvas);n }nn /**n * @param {Canvas} canvasn * @param {number} widthn * @param {number} heightn */n resize(canvas, width, height) {n const layer = canvas;n const stage = layer.getStage();nn stage.width(width);n stage.height(height);n }nn /**n * @param {Canvas} canvasn * @param {import('./vector').Vector} factorn */n scale(canvas, factor) {n canvas.getStage().scale(factor);n }nn /**n *n * @param {Canvas} canvasn * @param {Piece} piecen * @param {Figure} figuren * @param {import('./outline').Outline} outlinen */n sketch(canvas, piece, figure, outline) {n figure.group = this._newGroup({n x: piece.metadata.currentPosition.x,n y: piece.metadata.currentPosition.y,n draggable: !piece.metadata.fixed,n dragBoundFunc: canvas.preventOffstageDrag ? (position) => {n const furthermost = Vector.minus(vector(canvas.width, canvas.height), piece.size.radio);n return Vector.max(Vector.min(position, furthermost), piece.size.radio);n } : null,n });nn figure.shape = this._newLine({n points: outline.draw(piece, piece.diameter, canvas.borderFill),n bezier: outline.isBezier(),n tension: outline.isBezier() ? null : canvas.lineSoftness,n stroke: piece.metadata.strokeColor || canvas.strokeColor,n strokeWidth: canvas.strokeWidth,n closed: true,n …Vector.multiply(piece.radio, -1),n });n this.fill(canvas, piece, figure);n figure.group.add(figure.shape);nn canvas.add(figure.group);n }nn /**n * @param {Canvas} canvasn * @param {Piece} piecen * @param {Figure} figuren */n fill(canvas, piece, figure) {n const image = canvas.imageMetadataFor(piece);n figure.shape.fill(!image ? piece.metadata.color || 'black' : null);n figure.shape.fillPatternImage(image && image.content);n figure.shape.fillPatternScale(image && {x: image.scale, y: image.scale});n figure.shape.fillPatternOffset(image && Vector.divide(image.offset, image.scale));n }nn /**n *n * @param {Canvas} _canvasn * @param {Piece} piecen * @param {Figure} figuren */n label(_canvas, piece, figure) {n figure.label = this._newText({n …Vector.minus({n x: piece.metadata.label.x || (figure.group.width() / 2),n y: piece.metadata.label.y || (figure.group.height() / 2),n }, piece.radio),n text: piece.metadata.label.text,n fontSize: piece.metadata.label.fontSize,n fontFamily: piece.metadata.label.fontFamily || 'Sans Serif',n fill: piece.metadata.label.color || 'white',n });n figure.group.add(figure.label);n }nn /**n *n * @param {Canvas} _canvasn * @param {Group} groupn * @param {Piece} piecen */n physicalTranslate(_canvas, group, piece) {n group.x(piece.centralAnchor.x);n group.y(piece.centralAnchor.y);n }nn /**n * @param {Canvas} _canvasn * @param {Piece} piecen * @param {*} groupn */n logicalTranslate(_canvas, piece, group) {n Vector.update(piece.metadata.currentPosition, group.x(), group.y());n }nn /**n * @param {Canvas} _canvasn * @param {Piece} piecen * @param {Group} groupn * @param {import('./painter').VectorAction} fn */n onDrag(_canvas, piece, group, f) {n group.on('mouseover', () => {n document.body.style.cursor = 'pointer';n });n group.on('mouseout', () => {n document.body.style.cursor = 'default';n });n group.on('dragmove', () => {n let [dx, dy] = currentPositionDiff(piece, group);n f(dx, dy);n });n }nn /**n * @param {Canvas} _canvasn * @param {Piece} _piecen * @param {Group} groupn * @param {import('./painter').Action} fn */n onDragEnd(_canvas, _piece, group, f) {n group.on('dragend', () => {n f()n });n }nn /**n * @param {object} optionsn */n _newLine(options) {n return new Konva.Line(options);n }nn /**n * @param {object} optionsn */n _newGroup(options) {n return new Konva.Group(options);n }nn /**n * @param {object} optionsn */n _newText(options) {n return new Konva.Text(options)n }nn /**n * @param {object} optionsn */n _newStage(options) {n return new Konva.Stage(options);n }nn /**n * @param {object} optionsn */n _newLayer(options) {n return new Konva.Layer(options);n }n}nnmodule.exports = KonvaPainter;n”,“var Konva = require(‘./_FullInternals’).Konva;nKonva._injectGlobal(Konva);nexports = Konva;nmodule.exports = exports;n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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.Thresholdn }n});n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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.Canvasn});n”,“var g;nn// This works in non-strict modeng = (function() {ntreturn this;n})();nntry {nt// This works if eval is allowed (see CSP)ntg = g || new Function("return this")();n} catch (e) {nt// This works if the window reference is availablentif (typeof window === "object") g = window;n}nn// g can still be undefined, but nothing to do about it…n// We return undefined, instead of nothing here, so it'sn// easier to handle this case. if(!global) { …}nnmodule.exports = g;n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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', STRING = 'string', PX = 'px', MOUSEOUT = 'mouseout', MOUSELEAVE = 'mouseleave', MOUSEOVER = 'mouseover', MOUSEENTER = 'mouseenter', MOUSEMOVE = 'mousemove', MOUSEDOWN = 'mousedown', MOUSEUP = 'mouseup', POINTERMOVE = 'pointermove', POINTERDOWN = 'pointerdown', POINTERUP = 'pointerup', POINTERCANCEL = 'pointercancel', LOSTPOINTERCAPTURE = 'lostpointercapture', CONTEXTMENU = 'contextmenu', CLICK = 'click', DBL_CLICK = 'dblclick', TOUCHSTART = 'touchstart', TOUCHEND = 'touchend', TAP = 'tap', DBL_TAP = 'dbltap', TOUCHMOVE = 'touchmove', WHEEL = 'wheel', CONTENT_MOUSEOUT = 'contentMouseout', CONTENT_MOUSEOVER = 'contentMouseover', CONTENT_MOUSEMOVE = 'contentMousemove', CONTENT_MOUSEDOWN = 'contentMousedown', CONTENT_MOUSEUP = 'contentMouseup', CONTENT_CONTEXTMENU = 'contentContextmenu', CONTENT_CLICK = 'contentClick', CONTENT_DBL_CLICK = 'contentDblclick', CONTENT_TOUCHSTART = 'contentTouchstart', CONTENT_TOUCHEND = 'contentTouchend', CONTENT_DBL_TAP = 'contentDbltap', CONTENT_TAP = 'contentTap', CONTENT_TOUCHMOVE = 'contentTouchmove', CONTENT_POINTERMOVE = 'contentPointermove', CONTENT_POINTERDOWN = 'contentPointerdown', CONTENT_POINTERUP = 'contentPointerup', CONTENT_WHEEL = 'contentWheel', RELATIVE = 'relative', KONVA_CONTENT = 'konvajs-content', SPACE = ' ', UNDERSCORE = '_', CONTAINER = 'container', MAX_LAYERS_NUMBER = 5, EMPTY_STRING = '', EVENTS = [n MOUSEENTER,n MOUSEDOWN,n MOUSEMOVE,n MOUSEUP,n MOUSEOUT,n TOUCHSTART,n TOUCHMOVE,n TOUCHEND,n MOUSEOVER,n WHEEL,n CONTEXTMENU,n POINTERDOWN,n POINTERMOVE,n POINTERUP,n POINTERCANCEL,n LOSTPOINTERCAPTUREn], 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) { attrs = {}; }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);n }n else {n var id;n if (container.charAt(0) !== '#') {n id = container;n }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, len = layers.length, n;n for (n = 0; n < len; n++) {n layers.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 || this._changedPointerPositions;n if (!pos) {n Util_1.Util.warn(NO_POINTERS_MESSAGE);n return null;n }n return {n x: pos.x,n y: pos.yn };n };n Stage.prototype._getPointerById = function (id) {n return this._pointerPositions.find(function (p) { return p.id === id; });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, y = config.y || 0, canvas = new Canvas_1.SceneCanvas({n width: config.width || this.width(),n height: config.height || this.height(),n pixelRatio: config.pixelRatio || 1n }), _context = canvas.getContext()._context, 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, len = layers.length, end = len - 1, n, shape;n for (n = end; n >= 0; n–) {n shape = layers.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({ width: width, height: height });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);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 ' +n length +n ' 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.setSize({ width: this.width(), height: 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 Stage.prototype._mouseenter = function (evt) {n this.setPointersPositions(evt);n this._fire(MOUSEENTER, { evt: evt, target: this, currentTarget: this });n };n Stage.prototype._mouseover = function (evt) {n this.setPointersPositions(evt);n this._fire(CONTENT_MOUSEOVER, { evt: evt });n this._fire(MOUSEOVER, { evt: evt, target: this, currentTarget: this });n };n Stage.prototype._mouseout = function (evt) {n var _a;n this.setPointersPositions(evt);n var targetShape = ((_a = this.targetShape) === null || _a === void 0 ? void 0 : _a.getStage()) ? this.targetShape : null;n var eventsEnabled = !DragAndDrop_1.DD.isDragging || Global_1.Konva.hitOnDragEnabled;n if (targetShape && eventsEnabled) {n targetShape._fireAndBubble(MOUSEOUT, { evt: evt });n targetShape._fireAndBubble(MOUSELEAVE, { evt: evt });n this._fire(MOUSELEAVE, { evt: evt, target: this, currentTarget: this });n this.targetShape = null;n }n else if (eventsEnabled) {n this._fire(MOUSELEAVE, {n evt: evt,n target: this,n currentTarget: thisn });n this._fire(MOUSEOUT, {n evt: evt,n target: this,n currentTarget: thisn });n }n this.pointerPos = undefined;n this._pointerPositions = [];n this._fire(CONTENT_MOUSEOUT, { evt: evt });n };n Stage.prototype._mousemove = function (evt) {n var _a;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 targetShape = ((_a = this.targetShape) === null || _a === void 0 ? void 0 : _a.getStage()) ? this.targetShape : null;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 = targetShape !== shape;n if (eventsEnabled && differentTarget) {n if (targetShape) {n targetShape._fireAndBubble(MOUSEOUT, { evt: evt, pointerId: pointerId }, shape);n targetShape._fireAndBubble(MOUSELEAVE, { evt: evt, pointerId: pointerId }, shape);n }n shape._fireAndBubble(MOUSEOVER, { evt: evt, pointerId: pointerId }, targetShape);n shape._fireAndBubble(MOUSEENTER, { evt: evt, pointerId: pointerId }, targetShape);n shape._fireAndBubble(MOUSEMOVE, { evt: evt, pointerId: pointerId });n this.targetShape = shape;n }n else {n shape._fireAndBubble(MOUSEMOVE, { evt: evt, pointerId: pointerId });n }n }n else {n if (targetShape && eventsEnabled) {n targetShape._fireAndBubble(MOUSEOUT, { evt: evt, pointerId: pointerId });n targetShape._fireAndBubble(MOUSELEAVE, { evt: evt, pointerId: pointerId });n this._fire(MOUSEOVER, {n evt: evt,n target: this,n currentTarget: this,n pointerId: pointerIdn });n this.targetShape = null;n }n this._fire(MOUSEMOVE, {n evt: evt,n target: this,n currentTarget: this,n pointerId: pointerIdn });n }n this._fire(CONTENT_MOUSEMOVE, { evt: evt });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, { evt: evt, pointerId: pointerId });n }n else {n this._fire(MOUSEDOWN, {n evt: evt,n target: this,n currentTarget: this,n pointerId: pointerIdn });n }n this._fire(CONTENT_MOUSEDOWN, { evt: evt });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()), clickStartShape = this.clickStartShape, clickEndShape = this.clickEndShape, fireDblClick = false;n if (Global_1.Konva.inDblClickWindow) {n fireDblClick = true;n clearTimeout(this.dblTimeout);n }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, { evt: evt, pointerId: pointerId });n if (Global_1.Konva.listenClickTap &&n clickStartShape &&n clickStartShape._id === shape._id) {n shape._fireAndBubble(CLICK, { evt: evt, pointerId: pointerId });n if (fireDblClick && clickEndShape && clickEndShape === shape) {n shape._fireAndBubble(DBL_CLICK, { evt: evt, pointerId: pointerId });n }n }n }n else {n this._fire(MOUSEUP, {n evt: evt,n target: this,n currentTarget: this,n pointerId: pointerIdn });n if (Global_1.Konva.listenClickTap) {n this._fire(CLICK, {n evt: evt,n target: this,n currentTarget: this,n pointerId: pointerIdn });n }n if (fireDblClick) {n this._fire(DBL_CLICK, {n evt: evt,n target: this,n currentTarget: this,n pointerId: pointerIdn });n }n }n this._fire(CONTENT_MOUSEUP, { evt: evt });n if (Global_1.Konva.listenClickTap) {n this._fire(CONTENT_CLICK, { evt: evt });n if (fireDblClick) {n this._fire(CONTENT_DBL_CLICK, { evt: evt });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, { evt: evt });n }n else {n this._fire(CONTEXTMENU, {n evt: evt,n target: this,n currentTarget: thisn });n }n this._fire(CONTENT_CONTEXTMENU, { evt: evt });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, { evt: evt, pointerId: pos.id }, _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.idn });n }n this._fire(CONTENT_TOUCHSTART, { evt: evt });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) {n return;n }n processedShapesIds = true;n shape._fireAndBubble(TOUCHMOVE, { evt: evt, pointerId: pos.id });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.idn });n }n this._fire(CONTENT_TOUCHMOVE, { evt: evt });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, fireDblClick = false;n if (Global_1.Konva.inDblClickWindow) {n fireDblClick = true;n clearTimeout(this.dblTimeout);n }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) ||n _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) {n return;n }n processedShapesIds = true;n _this.clickEndShape = shape;n shape._fireAndBubble(TOUCHEND, { evt: evt, pointerId: pos.id });n triggeredOnShape = true;n if (Global_1.Konva.listenClickTap && shape === _this.tapStartShape) {n tapTriggered = true;n shape._fireAndBubble(TAP, { evt: evt, pointerId: pos.id });n if (fireDblClick && clickEndShape && clickEndShape === shape) {n dblTapTriggered = true;n shape._fireAndBubble(DBL_TAP, { evt: evt, pointerId: pos.id });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.idn });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.idn });n }n if (fireDblClick && !dblTapTriggered) {n this._fire(DBL_TAP, {n evt: evt,n target: this,n currentTarget: this,n pointerId: this._changedPointerPositions.idn });n }n this._fire(CONTENT_TOUCHEND, { evt: evt });n if (Global_1.Konva.listenClickTap) {n this._fire(CONTENT_TAP, { evt: evt });n if (fireDblClick) {n this._fire(CONTENT_DBL_TAP, { evt: evt });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, { evt: evt });n }n else {n this._fire(WHEEL, {n evt: evt,n target: this,n currentTarget: thisn });n }n this._fire(CONTENT_WHEEL, { evt: evt });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) ||n 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) ||n 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) ||n 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) ||n 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(), x = null, 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.scaleYn });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.scaleYn });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: yn };n this._pointerPositions = [{ x: x, y: y, id: Util_1.Util._getFirstPointerId(evt) }];n this._changedPointerPositions = [n { x: x, y: y, 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: 1n };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 || 1n };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');n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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 = '#', BEFORE_DRAW = 'beforeDraw', DRAW = 'draw', INTERSECTION_OFFSETS = [n { x: 0, y: 0 },n { x: -1, y: -1 },n { x: 1, y: -1 },n { x: 1, y: 1 },n { x: -1, y: 1 }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: 1n });n return _this;n }n Layer.prototype.setSize = function (_a) {n var width = _a.width, height = _a.height;n _super.prototype.setSize.call(this, { width: width, height: height });n this.hitCanvas.setSize(width, height);n return this;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;n obj = this._getIntersection({n x: pos.x + intersectionOffset.x * spiralSearchDistance,n y: pos.y + intersectionOffset.y * spiralSearchDistancen });n shape = obj.shape;n if (shape && selector) {n return shape.findAncestor(selector, true);n }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 }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, p3 = p, colorKey, shape;n if (p3 === 255) {n colorKey = Util_1.Util._rgbToHex(p, p, p);n shape = Shape_1.shapes[HASH + colorKey];n if (shape) {n return {n shape: shapen };n }n return {n antialiased: truen };n }n else if (p3 > 0) {n return {n antialiased: truen };n }n return {};n };n Layer.prototype.drawScene = function (can, top) {n var layer = this.getLayer(), canvas = can || (layer && layer.getCanvas());n this._fire(BEFORE_DRAW, {n node: thisn });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: thisn });n return this;n };n Layer.prototype.drawHit = function (can, top) {n var layer = this.getLayer(), canvas = can || (layer && layer.hitCanvas);n if (layer && layer.clearBeforeDraw()) {n layern .getHitCanvas()n .getContext()n .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()n .getContext()n .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 }n else {n parent.content.appendChild(this.hitCanvas._canvas);n }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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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.hitGraphEnabled = function () {n return false;n };n FastLayer.prototype.drawScene = function (can) {n var layer = this.getLayer(), 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);n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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: 1n}, PAUSED = 1, PLAYING = 2, REVERSING = 3, idCounter = 0, 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;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 }n else {n this.finish();n }n }n else if (t < 0) {n if (this.yoyo) {n this._time = 0;n this.play();n }n else {n this.reset();n }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 }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, node = config.node, nodeId = node._id, duration, easing = config.easing || exports.Easings.Linear, yoyo = !!config.yoyo, key;n if (typeof config.duration === 'undefined') {n duration = 0.3;n }n else if (config.duration === 0) {n duration = 0.001;n }n else {n duration = config.duration;n }n this.node = node;n this._id = idCounter++;n var layers = node.getLayer() ||n (node instanceof Global_1.Konva ? 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) {n Tween.attrs = {};n }n if (!Tween.attrs[this._id]) {n Tween.attrs[this._id] = {};n }n if (!Tween.tweens) {n Tween.tweens = {};n }n for (key in config) {n if (blacklist === undefined) {n this._addAttr(key, config);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, nodeId = node._id, start, diff, tweenId, n, len, trueEnd, trueStart, endRGBA;n tweenId = Tween.tweens[key];n if (tweenId) {n delete Tween.attrs[tweenId];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 }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 - start);n }n else {n var startRGBA = Util_1.Util.colorToRGBA(start);n endRGBA = Util_1.Util.colorToRGBA(end);n start = 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.an });n }n }n }n else {n for (n = 0; n < len; n++) {n diff.push(end - 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.an };n }n else {n diff = end - start;n }n Tween.attrs[this._id] = {n start: start,n diff: diff,n end: end,n trueEnd: trueEnd,n trueStart: trueStartn };n Tween.tweens[key] = this._id;n };n Tween.prototype._tweenFunc = function (i) {n var node = this.node, attrs = Tween.attrs[this._id], key, attr, start, diff, newVal, n, len, end;n for (key in attrs) {n attr = attrs;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 || 0) + diff * i);n }n else {n newVal.push('rgba(' +n Math.round(start.r + diff.r * i) +n ',' +n Math.round(start.g + diff.g * i) +n ',' +n Math.round(start.b + diff.b * i) +n ',' +n (start.a + diff.a * i) +n ')');n }n }n }n else {n for (n = 0; n < len; n++) {n newVal.push((start || 0) + diff * i);n }n }n }n else if (colorAttrs.indexOf(key) !== -1) {n newVal =n 'rgba(' +n Math.round(start.r + diff.r * i) +n ',' +n Math.round(start.g + diff.g * i) +n ',' +n Math.round(start.b + diff.b * i) +n ',' +n (start.a + diff.a * i) +n ')';n }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[_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[_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, thisId = this._id, attrs = Tween.tweens, key;n this.pause();n for (key in attrs) {n delete Tween.tweens[key];n }n delete Tween.attrs[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©) {n a = c;n s = p / 4;n }n else {n s = (p / (2 * Math.PI)) * Math.asin(c / a);n }n return (-(a *n Math.pow(2, 10 * (t -= 1)) *n 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©) {n a = c;n s = p / 4;n }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) +n c +n 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©) {n a = c;n s = p / 4;n }n else {n s = (p / (2 * Math.PI)) * Math.asin(c / a);n }n if (t < 1) {n return (-0.5 *n (a *n Math.pow(2, 10 * (t -= 1)) *n Math.sin(((t * d - s) * (2 * Math.PI)) / p)) +n b);n }n return (a *n Math.pow(2, -10 * (t -= 1)) *n Math.sin(((t * d - s) * (2 * Math.PI)) / p) *n 0.5 +n c +n 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 }n else if (t < 2 / 2.75) {n return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;n }n else if (t < 2.5 / 2.75) {n return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;n }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 }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};n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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()), 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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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 }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, points);n if (fromTension) {n dx = (tp + tp) / 2 - points;n dy = (tp + tp) / 2 - points;n }n else {n dx = points - points;n dy = points - points;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 * 2n };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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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(), 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”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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) &&n this.hasStroke() &&n this.getStage());n };n Image.prototype._sceneFunc = function (context) {n var width = this.width(), height = this.height(), image = this.image(), cropWidth, cropHeight, params;n if (image) {n cropWidth = this.cropWidth();n cropHeight = this.cropHeight();n if (cropWidth && cropHeight) {n params = [n image,n this.cropX(),n this.cropY(),n cropWidth,n cropHeight,n 0,n 0,n width,n heightn ];n }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(), 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) !== 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) !== 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: imgn });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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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 = [n 'fontFamily',n 'fontSize',n 'fontStyle',n 'padding',n 'lineHeight',n 'text',n 'width'n], CHANGE_KONVA = 'Change.konva', NONE = 'none', UP = 'up', RIGHT = 'right', DOWN = 'down', LEFT = 'left', 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’);n };n Label.prototype.getTag = function () {n return this.find(‘Tag’);n };n Label.prototype._addListeners = function (text) {n var that = this, n;n var func = function () {n that._sync();n };n for (n = 0; n < attrChangeListLen; n++) {n text.on(ATTR_CHANGE_LIST + 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(), tag = this.getTag(), width, height, pointerDirection, pointerWidth, x, y, 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: heightn });n text.setAttrs({n x: -1 * x,n y: -1 * yn });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(), height = this.height(), pointerDirection = this.pointerDirection(), pointerWidth = this.pointerWidth(), pointerHeight = this.pointerHeight(), cornerRadius = Math.min(this.cornerRadius(), width / 2, height / 2);n context.beginPath();n if (!cornerRadius) {n context.moveTo(0, 0);n }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 }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 }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 }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, y = 0, pointerWidth = this.pointerWidth(), pointerHeight = this.pointerHeight(), direction = this.pointerDirection(), width = this.width(), height = this.height();n if (direction === UP) {n y -= pointerHeight;n height += pointerHeight;n }n else if (direction === DOWN) {n height += pointerHeight;n }n else if (direction === LEFT) {n x -= pointerWidth * 1.5;n width += pointerWidth;n }n else if (direction === RIGHT) {n width += pointerWidth * 1.5;n }n return {n x: x,n y: y,n width: width,n height: heightn };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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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(), radius = this.radius(), n, x, 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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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(), index = this.frameIndex(), ix4 = index * 4, set = this.animations(), offsets = this.frameOffsets(), x = set[ix4 + 0], y = set[ix4 + 1], width = set[ix4 + 2], height = set[ix4 + 3], 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, ix2 = index * 2;n context.drawImage(image, x, y, width, height, offset[ix2 + 0], offset[ix2 + 1], width, height);n }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(), index = this.frameIndex(), ix4 = index * 4, set = this.animations(), offsets = this.frameOffsets(), width = set[ix4 + 2], height = set[ix4 + 3];n context.beginPath();n if (offsets) {n var offset = offsets;n var ix2 = index * 2;n context.rect(offset[ix2 + 0], offset[ix2 + 1], width, height);n }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(), animation = this.animation(), animations = this.animations(), anim = animations, len = anim.length / 4;n if (index < len - 1) {n this.frameIndex(index + 1);n }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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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(), outerRadius = this.outerRadius(), 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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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 = '', 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) {n Util_1.Util.warn('getKerning TextPath API is deprecated. Please use "kerningFunc" instead.');n _this.kerningFunc(config);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.p0;n context.translate(p0.x, p0.y);n context.rotate(glyphInfo.rotation);n this.partialText = glyphInfo.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.p0;n context.moveTo(p0.x, p0.y);n }n for (var i = 0; i < glyphInfo.length; i++) {n var p1 = glyphInfo.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.pathLength > 0) {n fullPathWidth += that.dataArray.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.pathLength > 0) {n pIndex = j;n return pathData;n }n else if (pathData.command === 'M') {n p0 = {n x: pathData.points,n y: pathData.pointsn };n }n }n return {};n };n var findSegmentToFitCharacter = function © {n var glyphWidth = that._getTextSize©.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 &&n attempts < 25) {n attempts++;n var cumulativePathLength = currLen;n while (pathCmd === undefined) {n pathCmd = getNextPathSegment();n if (pathCmd &&n 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, pathCmd.points) > glyphWidth) {n p1 = Path_1.Path.getPointOnLine(glyphWidth, p0.x, p0.y, pathCmd.points, pathCmd.points, p0.x, p0.y);n }n else {n pathCmd = undefined;n }n break;n case 'A':n var start = pathCmd.points;n var dTheta = pathCmd.points;n var end = pathCmd.points + dTheta;n if (currentT === 0) {n currentT = start + 0.00000001;n }n else if (glyphWidth > currLen) {n currentT += ((Math.PI / 180.0) * dTheta) / Math.abs(dTheta);n }n else {n currentT -= ((Math.PI / 360.0) * dTheta) / Math.abs(dTheta);n }n if ((dTheta < 0 && currentT < end) ||n (dTheta >= 0 && currentT > end)) {n currentT = end;n needNewSegment = true;n }n p1 = Path_1.Path.getPointOnEllipticalArc(pathCmd.points, pathCmd.points, pathCmd.points, pathCmd.points, currentT, pathCmd.points);n break;n case 'C':n if (currentT === 0) {n if (glyphWidth > pathCmd.pathLength) {n currentT = 0.00000001;n }n else {n currentT = glyphWidth / pathCmd.pathLength;n }n }n else if (glyphWidth > currLen) {n currentT += (glyphWidth - currLen) / pathCmd.pathLength;n }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, pathCmd.points, pathCmd.points, pathCmd.points, pathCmd.points, pathCmd.points);n break;n case 'Q':n if (currentT === 0) {n currentT = glyphWidth / pathCmd.pathLength;n }n else if (glyphWidth > currLen) {n currentT += (glyphWidth - currLen) / pathCmd.pathLength;n }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, pathCmd.points, pathCmd.points, pathCmd.points);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);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) * this.fontSize();n }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,n rotation: rotation,n p0: p0,n p1: p1n });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: 0n };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;n var maxX = points || 0;n var minY = points || 0;n var maxY = points || 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 + fontSizen };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);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nvar __assign = (this && this.__assign) || function () {n __assign = Object.assign || function(t) {n for (var s, i = 1, n = arguments.length; i < n; i++) {n s = arguments;n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))n t = s;n }n return t;n };n return __assign.apply(this, arguments);n};nObject.defineProperty(exports, "__esModule", { value: true });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 = [n 'resizeEnabledChange',n 'rotateAnchorOffsetChange',n 'rotateEnabledChange',n 'enabledAnchorsChange',n 'anchorSizeChange',n 'borderEnabledChange',n 'borderStrokeChange',n 'borderStrokeWidthChange',n 'borderDashChange',n 'anchorStrokeChange',n 'anchorStrokeWidthChange',n 'anchorFillChange',n 'anchorCornerRadiusChange',n 'ignoreStrokeChange',n]n .map(function (e) { return e + ("." + EVENTS_NAME); })n .join(' ');nvar NODES_RECT = 'nodesRect';nvar TRANSFORM_CHANGE_STR = [n 'widthChange',n 'heightChange',n 'scaleXChange',n 'scaleYChange',n 'skewXChange',n 'skewYChange',n 'rotationChange',n 'offsetXChange',n 'offsetYChange',n 'transformsEnabledChange',n 'strokeWidthChange',n]n .map(function (e) { 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) {n if (anchorName === 'rotater') {n return 'crosshair';n }n rad += Util_1.Util._degToRad(ANGLES || 0);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 }n else if (Util_1.Util._inRange(angle, 45 - 22.5, 45 + 22.5)) {n return 'nesw-resize';n }n else if (Util_1.Util._inRange(angle, 90 - 22.5, 90 + 22.5)) {n return 'ew-resize';n }n else if (Util_1.Util._inRange(angle, 135 - 22.5, 135 + 22.5)) {n return 'nwse-resize';n }n else if (Util_1.Util._inRange(angle, 180 - 22.5, 180 + 22.5)) {n return 'ns-resize';n }n else if (Util_1.Util._inRange(angle, 225 - 22.5, 225 + 22.5)) {n return 'nesw-resize';n }n else if (Util_1.Util._inRange(angle, 270 - 22.5, 270 + 22.5)) {n return 'ew-resize';n }n else if (Util_1.Util._inRange(angle, 315 - 22.5, 315 + 22.5)) {n return 'nwse-resize';n }n else {n Util_1.Util.error('Transformer has unknown angle for cursor detection: ' + angle);n return 'pointer';n }n}nvar ANCHORS_NAMES = [n 'top-left',n 'top-center',n 'top-right',n 'middle-right',n 'middle-left',n 'bottom-left',n 'bottom-center',n 'bottom-right',n];nvar MAX_SAFE_INTEGER = 100000000;nfunction getCenter(shape) {n return {n x: shape.x +n (shape.width / 2) * Math.cos(shape.rotation) +n (shape.height / 2) * Math.sin(-shape.rotation),n y: shape.y +n (shape.height / 2) * Math.cos(shape.rotation) +n (shape.width / 2) * Math.sin(shape.rotation),n };n}nfunction rotateAroundPoint(shape, angleRad, point) {n var x = point.x +n (shape.x - point.x) * Math.cos(angleRad) -n (shape.y - point.y) * Math.sin(angleRad);n var y = point.y +n (shape.x - point.x) * Math.sin(angleRad) +n (shape.y - point.y) * Math.cos(angleRad);n return __assign(__assign({}, shape), { rotation: shape.rotation + angleRad, x: x,n y: y });n}nfunction rotateAroundCenter(shape, deltaRad) {n var center = getCenter(shape);n return rotateAroundPoint(shape, deltaRad, center);n}nfunction getSnap(snaps, newRotationRad, tol) {n var snapped = newRotationRad;n for (var i = 0; i < snaps.length; i++) {n var angle = Global_1.Konva.getAngle(snaps);n var absDiff = Math.abs(angle - newRotationRad) % (Math.PI * 2);n var dif = Math.min(absDiff, Math.PI * 2 - absDiff);n if (dif < tol) {n snapped = angle;n }n }n return snapped;n}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 Util_1.Util.warn('tr.setNode(shape), tr.node(shape) and tr.attachTo(shape) methods are deprecated. Please use tr.nodes(nodesArray) instead.');n return this.setNodes();n };n Transformer.prototype.getNode = function () {n return this._nodes && this._nodes;n };n Transformer.prototype.setNodes = function (nodes) {n var _this = this;n if (nodes === void 0) { nodes = []; }n if (this._nodes && this._nodes.length) {n this.detach();n }n this._nodes = nodes;n if (nodes.length === 1) {n this.rotation(nodes.rotation());n }n else {n this.rotation(0);n }n this._nodes.forEach(function (node) {n var additionalEvents = node._attrsAffectingSizen .map(function (prop) { 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("_clearTransformCache." + EVENTS_NAME, onChange);n node.on("xChange." + EVENTS_NAME + " yChange." + EVENTS_NAME, onChange);n _this._proxyDrag(node);n });n this._resetTransformCache();n var elementsCreated = !!this.findOne('.top-left');n if (elementsCreated) {n this.update();n }n return this;n };n Transformer.prototype._proxyDrag = function (node) {n var _this = this;n var lastPos;n node.on("dragstart." + EVENTS_NAME, function () {n lastPos = node.getAbsolutePosition();n });n node.on("dragmove." + EVENTS_NAME, function () {n if (!lastPos) {n return;n }n var abs = node.getAbsolutePosition();n var dx = abs.x - lastPos.x;n var dy = abs.y - lastPos.y;n _this.nodes().forEach(function (otherNode) {n if (otherNode === node) {n return;n }n if (otherNode.isDragging()) {n return;n }n var otherAbs = otherNode.getAbsolutePosition();n otherNode.setAbsolutePosition({n x: otherAbs.x + dx,n y: otherAbs.y + dy,n });n otherNode.startDrag();n });n lastPos = null;n });n };n Transformer.prototype.getNodes = function () {n return this._nodes;n };n Transformer.prototype.getActiveAnchor = function () {n return this._movingAnchorName;n };n Transformer.prototype.detach = function () {n if (this._nodes) {n this._nodes.forEach(function (node) {n node.off('.' + EVENTS_NAME);n });n }n this._nodes = [];n this._resetTransformCache();n };n Transformer.prototype._resetTransformCache = function () {n this._clearCache(NODES_RECT);n this._clearCache('transform');n this._clearSelfAndDescendantCache('absoluteTransform');n };n Transformer.prototype._getNodeRect = function () {n return this._getCache(NODES_RECT, this.__getNodeRect);n };n Transformer.prototype.__getNodeShape = function (node, rot, relative) {n if (rot === void 0) { rot = this.rotation(); }n var rect = node.getClientRect({n skipTransform: true,n skipShadow: true,n skipStroke: this.ignoreStroke(),n });n var absScale = node.getAbsoluteScale(relative);n var absPos = node.getAbsolutePosition(relative);n var dx = rect.x * absScale.x - node.offsetX() * absScale.x;n var dy = rect.y * absScale.y - node.offsetY() * absScale.y;n var rotation = (Global_1.Konva.getAngle(node.getAbsoluteRotation()) + Math.PI * 2) %n (Math.PI * 2);n var box = {n x: absPos.x + dx * Math.cos(rotation) + dy * Math.sin(-rotation),n y: absPos.y + dy * Math.cos(rotation) + dx * Math.sin(rotation),n width: rect.width * absScale.x,n height: rect.height * absScale.y,n rotation: rotation,n };n return rotateAroundPoint(box, -Global_1.Konva.getAngle(rot), {n x: 0,n y: 0,n });n };n Transformer.prototype.__getNodeRect = function () {n var _this = this;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 var totalPoints = [];n this.nodes().map(function (node) {n var box = node.getClientRect({n skipTransform: true,n skipShadow: true,n skipStroke: _this.ignoreStroke(),n });n var points = [n { x: box.x, y: box.y },n { x: box.x + box.width, y: box.y },n { x: box.x + box.width, y: box.y + box.height },n { x: box.x, y: box.y + box.height },n ];n var trans = node.getAbsoluteTransform();n points.forEach(function (point) {n var transformed = trans.point(point);n totalPoints.push(transformed);n });n });n var tr = new Util_1.Transform();n tr.rotate(-Global_1.Konva.getAngle(this.rotation()));n var minX, minY, maxX, maxY;n totalPoints.forEach(function (point) {n var transformed = tr.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 tr.invert();n var p = tr.point({ x: minX, y: minY });n return {n x: p.x,n y: p.y,n width: maxX - minX,n height: maxY - minY,n rotation: Global_1.Konva.getAngle(this.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.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 anchor.stopDrag();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.rotation());n var cursor = getCursor(name, rad);n anchor.getStage().content.style.cursor = cursor;n _this._cursorChange = true;n });n anchor.on('mouseout', function () {n anchor.getStage().content.style.cursor = '';n _this._cursorChange = false;n });n this.add(anchor);n };n Transformer.prototype._createBack = function () {n var _this = this;n var back = new Shape_1.Shape({n name: 'back',n width: 0,n height: 0,n draggable: true,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 hitFunc: function (ctx, shape) {n if (!_this.shouldOverdrawWholeArea()) {n return;n }n var padding = _this.padding();n ctx.beginPath();n ctx.rect(-padding, -padding, shape.width() + padding * 2, shape.height() + padding * 2);n ctx.fillStrokeShape(shape);n },n });n this.add(back);n this._proxyDrag(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 var ap = e.target.getAbsolutePosition();n var pos = e.target.getStage().getPointerPosition();n this._anchorDragOffset = {n x: pos.x - ap.x,n y: pos.y - ap.y,n };n this._fire('transformstart', { evt: e, target: this.getNode() });n this.getNode()._fire('transformstart', { evt: e, target: this.getNode() });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 var pp = stage.getPointerPosition();n var newNodePos = {n x: pp.x - this._anchorDragOffset.x,n y: pp.y - this._anchorDragOffset.y,n };n var oldAbs = anchorNode.getAbsolutePosition();n anchorNode.setAbsolutePosition(newNodePos);n var newAbs = anchorNode.getAbsolutePosition();n if (oldAbs.x === newAbs.x && oldAbs.y === newAbs.y) {n return;n }n 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 delta = Math.atan2(-y, x) + Math.PI / 2;n if (attrs.height < 0) {n delta -= Math.PI;n }n var oldRotation = Global_1.Konva.getAngle(this.rotation());n var newRotation = oldRotation + delta;n var tol = Global_1.Konva.getAngle(this.rotationSnapTolerance());n var snappedRot = getSnap(this.rotationSnaps(), newRotation, tol);n var diff = snappedRot - attrs.rotation;n var shape = rotateAroundCenter(attrs, diff);n this._fitNodesInto(shape, e);n return;n }n var keepProportion = this.keepRatio() || e.shiftKey;n var centeredScaling = this.centeredScaling() || e.altKey;n if (this._movingAnchorName === 'top-left') {n if (keepProportion) {n var comparePoint = centeredScalingn ? {n x: this.width() / 2,n y: this.height() / 2,n }n : {n x: this.findOne('.bottom-right').x(),n y: this.findOne('.bottom-right').y(),n };n newHypotenuse = Math.sqrt(Math.pow(comparePoint.x - anchorNode.x(), 2) +n Math.pow(comparePoint.y - anchorNode.y(), 2));n var reverseX = this.findOne('.top-left').x() > comparePoint.x ? -1 : 1;n var reverseY = this.findOne('.top-left').y() > comparePoint.y ? -1 : 1;n x = newHypotenuse * this.cos * reverseX;n y = newHypotenuse * this.sin * reverseY;n this.findOne('.top-left').x(comparePoint.x - x);n this.findOne('.top-left').y(comparePoint.y - y);n }n }n else if (this._movingAnchorName === 'top-center') {n this.findOne('.top-left').y(anchorNode.y());n }n else if (this._movingAnchorName === 'top-right') {n if (keepProportion) {n var comparePoint = centeredScalingn ? {n x: this.width() / 2,n y: this.height() / 2,n }n : {n x: this.findOne('.bottom-left').x(),n y: this.findOne('.bottom-left').y(),n };n newHypotenuse = Math.sqrt(Math.pow(anchorNode.x() - comparePoint.x, 2) +n Math.pow(comparePoint.y - anchorNode.y(), 2));n var reverseX = this.findOne('.top-right').x() < comparePoint.x ? -1 : 1;n var reverseY = this.findOne('.top-right').y() > comparePoint.y ? -1 : 1;n x = newHypotenuse * this.cos * reverseX;n y = newHypotenuse * this.sin * reverseY;n this.findOne('.top-right').x(comparePoint.x + x);n this.findOne('.top-right').y(comparePoint.y - y);n }n var pos = anchorNode.position();n this.findOne('.top-left').y(pos.y);n this.findOne('.bottom-right').x(pos.x);n }n else if (this._movingAnchorName === 'middle-left') {n this.findOne('.top-left').x(anchorNode.x());n }n else if (this._movingAnchorName === 'middle-right') {n this.findOne('.bottom-right').x(anchorNode.x());n }n else if (this._movingAnchorName === 'bottom-left') {n if (keepProportion) {n var comparePoint = centeredScalingn ? {n x: this.width() / 2,n y: this.height() / 2,n }n : {n x: this.findOne('.top-right').x(),n y: this.findOne('.top-right').y(),n };n newHypotenuse = Math.sqrt(Math.pow(comparePoint.x - anchorNode.x(), 2) +n Math.pow(anchorNode.y() - comparePoint.y, 2));n var reverseX = comparePoint.x < anchorNode.x() ? -1 : 1;n var reverseY = anchorNode.y() < comparePoint.y ? -1 : 1;n x = newHypotenuse * this.cos * reverseX;n y = newHypotenuse * this.sin * reverseY;n anchorNode.x(comparePoint.x - x);n anchorNode.y(comparePoint.y + y);n }n pos = anchorNode.position();n this.findOne('.top-left').x(pos.x);n this.findOne('.bottom-right').y(pos.y);n }n else if (this._movingAnchorName === 'bottom-center') {n this.findOne('.bottom-right').y(anchorNode.y());n }n else if (this._movingAnchorName === 'bottom-right') {n if (keepProportion) {n var comparePoint = centeredScalingn ? {n x: this.width() / 2,n y: this.height() / 2,n }n : {n x: this.findOne('.top-left').x(),n y: this.findOne('.top-left').y(),n };n newHypotenuse = Math.sqrt(Math.pow(anchorNode.x() - comparePoint.x, 2) +n Math.pow(anchorNode.y() - comparePoint.y, 2));n var reverseX = this.findOne('.bottom-right').x() < comparePoint.x ? -1 : 1;n var reverseY = this.findOne('.bottom-right').y() < comparePoint.y ? -1 : 1;n x = newHypotenuse * this.cos * reverseX;n y = newHypotenuse * this.sin * reverseY;n this.findOne('.bottom-right').x(comparePoint.x + x);n this.findOne('.bottom-right').y(comparePoint.y + y);n }n }n else {n console.error(new Error('Wrong position argument of selection resizer: ' +n this._movingAnchorName));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();n var topOffsetY = topLeft.y();n var bottomOffsetX = this.getWidth() - bottomRight.x();n var bottomOffsetY = this.getHeight() - bottomRight.y();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();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._fitNodesInto({n x: x,n y: y,n width: width,n height: height,n rotation: Global_1.Konva.getAngle(this.rotation()),n }, e);n };n Transformer.prototype._handleMouseUp = function (e) {n this._removeEvents(e);n };n Transformer.prototype.getAbsoluteTransform = function () {n return this.getTransform();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', { evt: e, target: node });n if (node) {n node.fire('transformend', { evt: e, target: node });n }n this._movingAnchorName = null;n }n };n Transformer.prototype._fitNodesInto = function (newAttrs, evt) {n var _this = this;n var oldAttrs = this._getNodeRect();n var minSize = 1;n if (Util_1.Util._inRange(newAttrs.width, -this.padding() * 2 - minSize, minSize)) {n this.update();n return;n }n if (Util_1.Util._inRange(newAttrs.height, -this.padding() * 2 - minSize, minSize)) {n this.update();n return;n }n var allowNegativeScale = true;n var t = new Util_1.Transform();n t.rotate(Global_1.Konva.getAngle(this.rotation()));n if (this._movingAnchorName &&n newAttrs.width < 0 &&n this._movingAnchorName.indexOf('left') >= 0) {n var offset = t.point({n x: -this.padding() * 2,n y: 0,n });n newAttrs.x += offset.x;n newAttrs.y += offset.y;n newAttrs.width += this.padding() * 2;n this._movingAnchorName = this._movingAnchorName.replace('left', 'right');n this._anchorDragOffset.x -= offset.x;n this._anchorDragOffset.y -= offset.y;n if (!allowNegativeScale) {n this.update();n return;n }n }n else if (this._movingAnchorName &&n newAttrs.width < 0 &&n this._movingAnchorName.indexOf('right') >= 0) {n var offset = t.point({n x: this.padding() * 2,n y: 0,n });n this._movingAnchorName = this._movingAnchorName.replace('right', 'left');n this._anchorDragOffset.x -= offset.x;n this._anchorDragOffset.y -= offset.y;n newAttrs.width += this.padding() * 2;n if (!allowNegativeScale) {n this.update();n return;n }n }n if (this._movingAnchorName &&n newAttrs.height < 0 &&n this._movingAnchorName.indexOf('top') >= 0) {n var offset = t.point({n x: 0,n y: -this.padding() * 2,n });n newAttrs.x += offset.x;n newAttrs.y += offset.y;n this._movingAnchorName = this._movingAnchorName.replace('top', 'bottom');n this._anchorDragOffset.x -= offset.x;n this._anchorDragOffset.y -= offset.y;n newAttrs.height += this.padding() * 2;n if (!allowNegativeScale) {n this.update();n return;n }n }n else if (this._movingAnchorName &&n newAttrs.height < 0 &&n this._movingAnchorName.indexOf('bottom') >= 0) {n var offset = t.point({n x: 0,n y: this.padding() * 2,n });n this._movingAnchorName = this._movingAnchorName.replace('bottom', 'top');n this._anchorDragOffset.x -= offset.x;n this._anchorDragOffset.y -= offset.y;n newAttrs.height += this.padding() * 2;n if (!allowNegativeScale) {n this.update();n return;n }n }n if (this.boundBoxFunc()) {n var bounded = this.boundBoxFunc()(oldAttrs, newAttrs);n if (bounded) {n newAttrs = bounded;n }n else {n Util_1.Util.warn('boundBoxFunc returned falsy. You should return new bound rect from it!');n }n }n var baseSize = 10000000;n var oldTr = new Util_1.Transform();n oldTr.translate(oldAttrs.x, oldAttrs.y);n oldTr.rotate(oldAttrs.rotation);n oldTr.scale(oldAttrs.width / baseSize, oldAttrs.height / baseSize);n var newTr = new Util_1.Transform();n newTr.translate(newAttrs.x, newAttrs.y);n newTr.rotate(newAttrs.rotation);n newTr.scale(newAttrs.width / baseSize, newAttrs.height / baseSize);n var delta = newTr.multiply(oldTr.invert());n this._nodes.forEach(function (node) {n var parentTransform = node.getParent().getAbsoluteTransform();n var localTransform = node.getTransform().copy();n localTransform.translate(node.offsetX(), node.offsetY());n var newLocalTransform = new Util_1.Transform();n newLocalTransformn .multiply(parentTransform.copy().invert())n .multiply(delta)n .multiply(parentTransform)n .multiply(localTransform);n var attrs = newLocalTransform.decompose();n node._batchTransformChanges(function () {n node.setAttrs(attrs);n });n _this._fire('transform', { evt: evt, target: node });n node._fire('transform', { evt: evt, target: node });n });n this.rotation(Util_1.Util._getRotation(newAttrs.rotation));n this._resetTransformCache();n this.update();n this.getLayer().batchDraw();n };n Transformer.prototype.forceUpdate = function () {n this._resetTransformCache();n this.update();n };n Transformer.prototype._batchChangeChild = function (selector, attrs) {n var anchor = this.findOne(selector);n anchor._batchTransformChanges(function () {n anchor.setAttrs(attrs);n });n };n Transformer.prototype.update = function () {n var _this = this;n var attrs = this._getNodeRect();n this.rotation(Util_1.Util._getRotation(attrs.rotation));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 node._batchTransformChanges(function () {n 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 });n this._batchChangeChild('.top-left', {n x: 0,n y: 0,n offsetX: anchorSize / 2 + padding,n offsetY: anchorSize / 2 + padding,n visible: resizeEnabled && enabledAnchors.indexOf('top-left') >= 0,n });n this._batchChangeChild('.top-center', {n x: width / 2,n y: 0,n offsetY: anchorSize / 2 + padding,n visible: resizeEnabled && enabledAnchors.indexOf('top-center') >= 0,n });n this._batchChangeChild('.top-right', {n x: width,n y: 0,n offsetX: anchorSize / 2 - padding,n offsetY: anchorSize / 2 + padding,n visible: resizeEnabled && enabledAnchors.indexOf('top-right') >= 0,n });n this._batchChangeChild('.middle-left', {n x: 0,n y: height / 2,n offsetX: anchorSize / 2 + padding,n visible: resizeEnabled && enabledAnchors.indexOf('middle-left') >= 0,n });n this._batchChangeChild('.middle-right', {n x: width,n y: height / 2,n offsetX: anchorSize / 2 - padding,n visible: resizeEnabled && enabledAnchors.indexOf('middle-right') >= 0,n });n this._batchChangeChild('.bottom-left', {n x: 0,n y: height,n offsetX: anchorSize / 2 + padding,n offsetY: anchorSize / 2 - padding,n visible: resizeEnabled && enabledAnchors.indexOf('bottom-left') >= 0,n });n this._batchChangeChild('.bottom-center', {n x: width / 2,n y: height,n offsetY: anchorSize / 2 - padding,n visible: resizeEnabled && enabledAnchors.indexOf('bottom-center') >= 0,n });n this._batchChangeChild('.bottom-right', {n x: width,n y: height,n offsetX: anchorSize / 2 - padding,n offsetY: anchorSize / 2 - padding,n visible: resizeEnabled && enabledAnchors.indexOf('bottom-right') >= 0,n });n this._batchChangeChild('.rotater', {n x: width / 2,n y: -this.rotateAnchorOffset() * Util_1.Util._sign(height) - padding,n visible: this.rotateEnabled(),n });n this._batchChangeChild('.back', {n width: width,n height: height,n visible: this.borderEnabled(),n stroke: this.borderStroke(),n strokeWidth: this.borderStrokeWidth(),n dash: this.borderDash(),n x: 0,n y: 0,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: ' +n name +n '. Available names are: ' +n 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, 'nodes');nFactory_1.Factory.addGetterSetter(Transformer, 'boundBoxFunc');nFactory_1.Factory.addGetterSetter(Transformer, 'shouldOverdrawWholeArea', false);nFactory_1.Factory.backCompat(Transformer, {n lineEnabled: 'borderEnabled',n rotateHandlerOffset: 'rotateAnchorOffset',n enabledHandlers: 'enabledAnchors',n});nUtil_1.Collection.mapMethods(Transformer);n”,“"use strict";nvar __extends = (this && this.__extends) || (function () {n var extendStatics = function (d, b) {n extendStatics = Object.setPrototypeOf ||n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d = b; };n return extendStatics(d, b);n };n return function (d, b) {n extendStatics(d, b);n function __() { this.constructor = d; }n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());n };n})();nObject.defineProperty(exports, "__esModule", { value: true });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);n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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 = [n 512,n 512,n 456,n 512,n 328,n 456,n 335,n 512,n 405,n 328,n 271,n 456,n 388,n 335,n 292,n 512,n 454,n 405,n 364,n 328,n 298,n 271,n 496,n 456,n 420,n 388,n 360,n 335,n 312,n 292,n 273,n 512,n 482,n 454,n 428,n 405,n 383,n 364,n 345,n 328,n 312,n 298,n 284,n 271,n 259,n 496,n 475,n 456,n 437,n 420,n 404,n 388,n 374,n 360,n 347,n 335,n 323,n 312,n 302,n 292,n 282,n 273,n 265,n 512,n 497,n 482,n 468,n 454,n 441,n 428,n 417,n 405,n 394,n 383,n 373,n 364,n 354,n 345,n 337,n 328,n 320,n 312,n 305,n 298,n 291,n 284,n 278,n 271,n 265,n 259,n 507,n 496,n 485,n 475,n 465,n 456,n 446,n 437,n 428,n 420,n 412,n 404,n 396,n 388,n 381,n 374,n 367,n 360,n 354,n 347,n 341,n 335,n 329,n 323,n 318,n 312,n 307,n 302,n 297,n 292,n 287,n 282,n 278,n 273,n 269,n 265,n 261,n 512,n 505,n 497,n 489,n 482,n 475,n 468,n 461,n 454,n 447,n 441,n 435,n 428,n 422,n 417,n 411,n 405,n 399,n 394,n 389,n 383,n 378,n 373,n 368,n 364,n 359,n 354,n 350,n 345,n 341,n 337,n 332,n 328,n 324,n 320,n 316,n 312,n 309,n 305,n 301,n 298,n 294,n 291,n 287,n 284,n 281,n 278,n 274,n 271,n 268,n 265,n 262,n 259,n 257,n 507,n 501,n 496,n 491,n 485,n 480,n 475,n 470,n 465,n 460,n 456,n 451,n 446,n 442,n 437,n 433,n 428,n 424,n 420,n 416,n 412,n 408,n 404,n 400,n 396,n 392,n 388,n 385,n 381,n 377,n 374,n 370,n 367,n 363,n 360,n 357,n 354,n 350,n 347,n 344,n 341,n 338,n 335,n 332,n 329,n 326,n 323,n 320,n 318,n 315,n 312,n 310,n 307,n 304,n 302,n 299,n 297,n 294,n 292,n 289,n 287,n 285,n 282,n 280,n 278,n 275,n 273,n 271,n 269,n 267,n 265,n 263,n 261,n 259n];nvar shg_table = [n 9,n 11,n 12,n 13,n 13,n 14,n 14,n 15,n 15,n 15,n 15,n 16,n 16,n 16,n 16,n 17,n 17,n 17,n 17,n 17,n 17,n 17,n 18,n 18,n 18,n 18,n 18,n 18,n 18,n 18,n 18,n 19,n 19,n 19,n 19,n 19,n 19,n 19,n 19,n 19,n 19,n 19,n 19,n 19,n 19,n 20,n 20,n 20,n 20,n 20,n 20,n 20,n 20,n 20,n 20,n 20,n 20,n 20,n 20,n 20,n 20,n 20,n 20,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 21,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 22,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 23,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24,n 24n];nfunction filterGaussBlurRGBA(imageData, radius) {n var pixels = imageData.data, width = imageData.width, 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, widthMinus1 = width - 1, heightMinus1 = height - 1, radiusPlus1 = radius + 1, sumFactor = (radiusPlus1 * (radiusPlus1 + 1)) / 2, stackStart = new BlurStack(), stackEnd = null, stack = stackStart, stackIn = null, stackOut = null, mul_sum = mul_table, shg_sum = shg_table;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);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) * (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 = ((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 }n else {n pixels = 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;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);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) * (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 = ((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 }n else {n pixels = 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 =n (x +n ((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width) <<n 2;n r_sum += r_in_sum += stackIn.r = pixels;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);n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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, data = imageData.data, len = data.length, i;n for (i = 0; i < len; i += 4) {n data += 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);n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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, nPixels = data.length, red = 150, green = 150, blue = 150, i;n for (i = 0; i < nPixels; i += 4) {n red = data;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 = 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);n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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, greyLevel = this.embossWhiteLevel() * 255, direction = this.embossDirection(), blend = this.embossBlend(), dirY = 0, dirX = 0, data = imageData.data, w = imageData.width, h = imageData.height, w4 = w * 4, 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 - data;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 + dif;n var g = data[offset + 1] + dif;n var b = data[offset + 2] + dif;n data = 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 }n else {n var grey = greyLevel - dif;n if (grey < 0) {n grey = 0;n }n else if (grey > 255) {n grey = 255;n }n data = 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);n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });nvar Factory_1 = require("../Factory");nvar Node_1 = require("../Node");nvar Validators_1 = require("../Validators");nfunction remap(fromValue, fromMin, fromMax, toMin, toMax) {n var fromRange = fromMax - fromMin, toRange = toMax - toMin, toValue;n if (fromRange === 0) {n return toMin + toRange / 2;n }n if (toRange === 0) {n return toMin;n }n toValue = (fromValue - fromMin) / fromRange;n toValue = toRange * toValue + toMin;n return toValue;n}nexports.Enhance = function (imageData) {n var data = imageData.data, nSubPixels = data.length, rMin = data, rMax = rMin, r, gMin = data, gMax = gMin, g, bMin = data, bMax = bMin, b, i;n var enhanceAmount = this.enhance();n if (enhanceAmount === 0) {n return;n }n for (i = 0; i < nSubPixels; i += 4) {n r = data[i + 0];n if (r < rMin) {n rMin = r;n }n else if (r > rMax) {n rMax = r;n }n g = data[i + 1];n if (g < gMin) {n gMin = g;n }n else if (g > gMax) {n gMax = g;n }n b = data[i + 2];n if (b < bMin) {n bMin = b;n }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 }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);n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });nexports.Grayscale = function (imageData) {n var data = imageData.data, len = data.length, i, brightness;n for (i = 0; i < len; i += 4) {n brightness = 0.34 * data + 0.5 * data[i + 1] + 0.16 * data[i + 2];n data = brightness;n data[i + 1] = brightness;n data[i + 2] = brightness;n }n};n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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, nPixels = data.length, v = 1, s = Math.pow(2, this.saturation()), h = Math.abs(this.hue() + 360) % 360, l = this.luminance() * 127, i;n var vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);n var rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw, rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw, rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;n var gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw, gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw, gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;n var br = 0.299 * v - 0.3 * vsu + 1.25 * vsw, bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw, 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};n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });nvar Factory_1 = require("../Factory");nvar Node_1 = require("../Node");nvar Validators_1 = require("../Validators");nexports.HSV = function (imageData) {n var data = imageData.data, nPixels = data.length, v = Math.pow(2, this.value()), s = Math.pow(2, this.saturation()), h = Math.abs(this.hue() + 360) % 360, i;n var vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);n var rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw, rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw, rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;n var gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw, gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw, gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;n var br = 0.299 * v - 0.3 * vsu + 1.25 * vsw, bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw, 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);n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });nexports.Invert = function (imageData) {n var data = imageData.data, len = data.length, i;n for (i = 0; i < len; i += 4) {n data = 255 - data;n data[i + 1] = 255 - data[i + 1];n data[i + 2] = 255 - data[i + 2];n }n};n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2, i, x, y, r = 0, g = 0, b = 0, a = 0;n var rad, 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, tSize = xSize, radius, theta;n var conversion = ((360 / tSize) * Math.PI) / 180, sin, 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, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2, i, x, y, dx, dy, r = 0, g = 0, b = 0, a = 0;n var rad, 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, tSize = xSize, radius, theta, 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, 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 = tempCanvasn .getContext('2d')n .getImageData(0, 0, xSize, ySize);n ToPolar(imageData, scratchData, {n polarCenterX: xSize / 2,n polarCenterY: ySize / 2n });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, xEnd = sectionSize, 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, { polarRotation: 0 });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);n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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, idata.data, idata.data, idata.data);n return d;n}nfunction rgbDistance(p1, p2) {n return Math.sqrt(Math.pow(p1 - p2, 2) +n Math.pow(p1 - p2, 2) +n Math.pow(p1 - p2, 2));n}nfunction rgbMean(pTab) {n var m = [0, 0, 0];n for (var i = 0; i < pTab.length; i++) {n m += pTab[0];n m += pTab[1];n m += pTab[2];n }n m /= pTab.length;n m /= pTab.length;n m /= 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 &&n rgbDistance(rgbv_ne, rgbv_se) < thres &&n rgbDistance(rgbv_se, rgbv_so) < thres &&n 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, [n idata.data[i * 4],n idata.data[i * 4 + 1],n idata.data[i * 4 + 2]n ]);n mask = 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;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 * wt;n }n }n }n maskResult = 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 * wt;n }n }n }n maskResult = 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 * wt;n }n }n }n maskResult = a;n }n }n return maskResult;n}nexports.Mask = function (imageData) {n var threshold = this.threshold(), 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);n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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, data = imageData.data, nPixels = data.length, half = amount / 2, 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);n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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()), width = imageData.width, height = imageData.height, x, y, i, red, green, blue, alpha, nBinsX = Math.ceil(width / pixelSize), nBinsY = Math.ceil(height / pixelSize), xBinStart, xBinEnd, yBinStart, yBinEnd, xBin, yBin, pixelsInBin, 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”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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, data = imageData.data, len = data.length, scale = 255 / levels, i;n for (i = 0; i < len; i += 1) {n data = Math.floor(data / scale) * scale;n }n};nFactory_1.Factory.addGetterSetter(Node_1.Node, 'levels', 0.5, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });nvar Factory_1 = require("../Factory");nvar Node_1 = require("../Node");nvar Validators_1 = require("../Validators");nexports.RGB = function (imageData) {n var data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue(), i, brightness;n for (i = 0; i < nPixels; i += 4) {n brightness =n (0.34 * data + 0.5 * data[i + 1] + 0.16 * data[i + 2]) / 255;n data = 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 }n else if (val < 0) {n return 0;n }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 }n else if (val < 0) {n return 0;n }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);n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });nvar Factory_1 = require("../Factory");nvar Node_1 = require("../Node");nvar Validators_1 = require("../Validators");nexports.RGBA = function (imageData) {n var data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue(), alpha = this.alpha(), i, ia;n for (i = 0; i < nPixels; i += 4) {n ia = 1 - alpha;n data = red * alpha + data * ia;n data[i + 1] = green * alpha + data[i + 1] * ia;n data[i + 2] = blue * alpha + data[i + 2] * ia;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 }n else if (val < 0) {n return 0;n }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 }n else if (val < 0) {n return 0;n }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 }n else if (val < 0) {n return 0;n }n else {n return val;n }n});n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });nexports.Sepia = function (imageData) {n var data = imageData.data, nPixels = data.length, i, r, g, 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};n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });nexports.Solarize = function (imageData) {n var data = imageData.data, w = imageData.width, h = imageData.height, w4 = w * 4, 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;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 = r;n data[offset + 1] = g;n data[offset + 2] = b;n } while (–x);n } while (–y);n};n”,“"use strict";nObject.defineProperty(exports, "__esModule", { value: true });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, data = imageData.data, len = data.length, i;n for (i = 0; i < len; i += 1) {n data = data < level ? 0 : 255;n }n};nFactory_1.Factory.addGetterSetter(Node_1.Node, 'threshold', 0.5, Validators_1.getNumberValidator(), Factory_1.Factory.afterSetFilter);n”],“sourceRoot”:“”}