{"version":3,"sources":["webpack:///./node_modules/devexpress-diagram/dist/dx-diagram.js"],"names":["factory","modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","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","ShapeType","ShapeTypes","ShapeCategories","General","Flowchart","OrgChart","Containers","Custom","Text","Rectangle","Ellipse","Cross","Triangle","Diamond","Heart","Pentagon","Hexagon","Octagon","Star","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","ArrowUpDown","ArrowLeftRight","Process","Decision","Terminator","PredefinedProcess","Document","MultipleDocuments","ManualInput","Preparation","Data","Database","HardDisk","InternalStorage","PaperTape","ManualOperation","Delay","StoredData","Display","Merge","Connector","Or","SummingJunction","Container","VerticalContainer","HorizontalContainer","Card","CardWithImageOnLeft","CardWithImageOnTop","CardWithImageOnRight","Point","x","y","this","zero","fromNumber","num","isZero","toString","JSON","stringify","copyFrom","obj","clone","equals","offset","offsetX","offsetY","offsetByPoint","multiply","multiplierX","multiplierY","negative","applyConverter","converter","plus","a","b","minus","xComparer","yComparer","Size","width","height","empty","initByCommonAction","action","widthAdp","heightAdp","isEmpty","nonNegativeSize","offsetWidth","offsetHeight","multiplierW","multiplierH","conv","ObjectUtils","GeometryUtils","Utils","EventDispatcher","Range","size_1","point_1","rectangle_1","search_1","from","to","undefined","Math","abs","configurable","extend","range","min","max","includes","fromLength","length","listeners","add","listener","Error","hasEventListener","push","remove","currentListener","splice","raise","funcName","args","_i","arguments","func","apply","raise1","flatten","arr","concat","getCommonRectangle","rects","minX","Number","MAX_VALUE","maxX","minY","maxY","forEach","rect","right","bottom","findFreeSpace","size","exact","targetRect","xs","ys","sort","reduce","acc","v","index","matrix","map","_loop_1","xi0","SearchUtils","binaryIndexOf","xi1","yi0","yi1","yi","xi","checkResult","checkRect","yimin","ximin","ximax","getArrowPoints","point","directionPoint","arrowHeight","arrowWidth","point1","point2","point3","catX","catY","hypotenuse","sqrt","pow","cos","sin","x1","y1","x2","y2","x3","y3","removeUnnecessaryLinePoints","points","removeCallback","checkCallback","pt","removeDuplicatedPoints","removeOneLinePoints","removeBackwardPoints","nextPoint","getNextPoint","prevPoint","tg","indexToRemove","direction","result","newIndex","getDistance","getPathLength","prevPt","lineLength","getPathPointByPosition","relativePosition","targetLength","currentLength","delta","getLineAngle","beginPoint","endPoint","atan2","getTriangleBeginAngle","lineAngle","beginPointAngle","getTriangleEndAngle","endPointAngle","getPathPointByPoint","distance","beginAngle","endAngle","beginDistance","endDistance","orthOffset","currentDistance","PI","round","fround","isAbove","tan","getPathPositionByPoint","maxPositionCount","angle","atan","arePointsEqual","points1","points2","count1","getMaxRectangleEnscribedInEllipse","ellipseSize","dx","dy","getEllipseByEnscribedRectangle","rectSize","cloneObject","source","assign","compareObjects","obj1","obj2","isDeepEqual","props1","getOwnPropertyNames","props2","isNaN","extendStatics","__extends","setPrototypeOf","__proto__","Array","__","constructor","PathPrimitiveClosePathCommand","PathPrimitiveArcToCommand","PathPrimitiveQuadraticCurveToCommand","PathPrimitiveCubicCurveToCommand","PathPrimitiveLineToCommand","PathPrimitiveMoveToCommand","PathPrimitiveCommand","PathPrimitive","RenderHelper_1","Primitive_1","PrimitiveObject_1","_super","commands","style","className","clipPathId","onApplyProperties","_this","command","createMainElement","document","createElementNS","svgNS","applyElementProperties","element","measurer","setAttribute","join","setPositionCorrectionAttribute","SvgPrimitive","PrimitiveObject","getUnitVaue","fromPoint","rx","ry","xAxisRotation","largeArcFlag","sweepFag","ModelUtils","unit_converter_1","vector_1","math_1","Enums_1","AddConnectionHistoryItem_1","AddConnectorHistoryItem_1","AddConnectorPointHistoryItem_1","AddShapeHistoryItem_1","ChangeShapeParametersHistoryItem_1","DeleteConnectionHistoryItem_1","DeleteConnectorHistoryItem_1","DeleteConnectorPointHistoryItem_1","DeleteShapeHistoryItem_1","InsertToContainerHistoryItem_1","MoveConnectorPointHistoryItem_1","MoveShapeHistoryItem_1","RemoveFromContainerHistoryItem_1","ResizeShapeHistoryItem_1","SetSelectionHistoryItem_1","ModelResizeHistoryItem_1","UpdatePositionsOnPageResizeHistoryItem_1","ChangeConnectorPropertyHistoryItem_1","ChangeConnectorTextHistoryItem_1","ChangeLockedHistoryItem_1","ChangeStyleHistoryItem_1","ChangeStyleTextHistoryItem_1","Graph_1","GraphInfo_1","Structures_1","Utils_1","Connector_1","ConnectorProperties_1","ConnectorRenderPoint_1","ConnectorRenderPointsContext_1","Shape_1","setShapePosition","history","model","shape","newPosition","position","addAndRedo","MoveShapeHistoryItem","setShapeSize","newSize","ResizeShapeHistoryItem","addConnectorPoint","connectorKey","pointIndex","AddConnectorPointHistoryItem","deleteConnectorPoint","DeleteConnectorPointHistoryItem","deleteConnectorPoints","connector","deleteConnectorUnnecessaryPoints","validateRenderPoints","unnecessaryPoints","createUnnecessaryPoints","skippedRenderPoints","keys","DeleteConnectorUnnecessaryPointsHistoryItem","predicate","_","clonePoints","cp","findFirstPointIndex","createNecessaryPoints","lastPointIndex","isNecessaryPoint","createNecessaryRenderPoints","some","validateRenderPointIndexes","renderPoints","startIndex","rp","ConnectorRenderPoint","skipped","moveConnectorPoint","MoveConnectorPointHistoryItem","updateConnectorAttachedPoints","beginTransaction","beginContainer","beginItem","findItemCollapsedContainer","beginAttachedToContainer","endItem","isContainerItem","endContainer","endAttachedToContainer","updateConnectorBeginPoint","getConnectionPointIndexForItem","updateConnectorEndPoint","endTransaction","getConnectionPointIndex","connectionPointIndex","beginConnectionPointIndex","targetPoint","endConnectionPointIndex","getConnectionPointPosition","rectangle","center","newPoint","updateContainerConnectorsAttachedPoints","rootContainer","container","getChildren","child","Shape","attachedConnectors","beginItemInContainer","endItemInContainer","collapsedContainer","findItemTopCollapsedContainer","endCollapsedContainer","getConnectorsWithoutBeginItemInfo","findConnectorsWithoutBeginItem","getConnectorsWithoutEndItemInfo","findConnectorsWithoutEndItem","updateShapeAttachedConnectors","removeConnectorIntermediatePoints","updateMovingShapeConnections","beginPointsInfo","endPointsInfo","resetTargetCallback","updateTargetCallback","beforeAttachConnectorCallback","pi","getMovingShapeConnectionPointIndex","containsPoint","DeleteConnectionHistoryItem","ConnectorPosition","Begin","AddConnectionHistoryItem","End","getConnectionPoints","connectionPointActionSize","shouldRemoveConnectorIntermediatePoints","properties","lineOption","ConnectorLineOption","Orthogonal","isShapeIntersectConnectorPointsLine","minOffset","UnitConverter","pixelsToTwips","inflate","getSnappedPos","gridSize","pos","isHorizontal","snapOffset","snapStartPoint","tryUpdateModelRectangle","processPoints","modelManipulator","getModelSizeUpdateOffset","ModelResizeHistoryItem","left","top","UpdatePositionsOnPageResizeHistoryItem","Vector","raiseModelRectangleChanged","getRectangle","deleteItems","selection","items","deleteLocked","itemsHash","item","selectionKeys","getKeys","filter","SetSelectionHistoryItem","deleteItemsCore","removeFromContainer","children","RemoveFromContainerHistoryItem","updateAttachedConnectorsContainer","locked","findItem","deleteShape","deleteConnector","detachConnectors","allowed","permissionsProvider","canDeleteItems","DeleteShapeHistoryItem","DeleteConnectorHistoryItem","deleteAllItems","slice","deleteSelection","getSelectedItems","changeSelectionLocked","ChangeLockedHistoryItem","updateSelection","copyStylesToItem","fromItem","newItemKey","toItem","styleText","propertyName","ChangeStyleTextHistoryItem","ChangeStyleHistoryItem","cloneShapeToOffset","addHistoryItem","AddShapeHistoryItem","description","text","newKey","shapeKey","ChangeShapeParametersHistoryItem","parameters","applyOffsetToConnectorRenderPointsContext","context","ConnectorRenderPointsContext","actualRoutingMode","cloneConnectorToOffset","beginItemKey","endItemKey","newPoints","AddConnectorHistoryItem","createRenderPointsContext","newConnector","findConnector","ChangeConnectorPropertyHistoryItem","findShape","texts","connectorText","ChangeConnectorTextHistoryItem","cloneSelectionToOffset","onItemAdded","newShapes","ids","getSelectedShapes","getSelectedConnectors","findContainerByEventKey","findContainer","isLocked","hasKey","canInsertToContainer","findChild","canInsertSelectionToContainer","insertToContainer","enableChildren","oldContainer","InsertToContainerHistoryItem","insertSelectionToContainer","selectedItems","indexOf","removeSelectionFromContainer","getConnectorContainer","updateConnectorContainer","updateNewShapeProperties","itemKey","inputPosition","getDefaultStyle","getDefaultStylePropertyValue","getDefaultTextStyle","getDefaultTextStylePropertyValue","updateNewConnectorProperties","getDefaultConnectorProperties","getDefaultConnectorPropertyValue","applyLayout","graph","layout","nonGraphItems","settings","snapToGrid","skipPointIndices","occupiedRectangles","getOccupiedRectangles","offsetLayoutToFreeSpace","clientRectangle","containerPadding","adjustLayoutToSnapGrid","resizeContainerOnLayout","applyLayoutToNodes","edges","e","applyLayoutToConnectors","getNonGraphItems","nodeKeyMap","shapes","connectors","containerRect","spacing","graphItemRect","freePoint","createSize","offsetNodes","layoutRect","nonLayoutRectangles","nodeKeys","prev","cur","connectorsSet","forEachNode","nl","nk","applyLayoutToNode","beginPointIndex","endPointIndex","childPosition","edgeLayout","edgeToPosition","beginIndex","getConnectionPointIndexForSide","SetConnectionPointIndexHistoryItem","endIndex","nodeToLayout","getGraphInfoByItems","isDatabinding","itemsByContainerKey","containerKey","expanded","getGraphByItems","allowCreateInfo","nodes","GraphInfo","level","skipLocked","Graph","knownIds","extendByConnectedComponents","getItemIndex","getNode","addNode","addEdge","Edge","getlUnitValue","units","twipsValue","DiagramUnit","Cm","twipsToCentimeters","In","twipsToInches","Px","twipsToPixels","getUnitText","unitItems","formatUnit","fractionDigits","unitItemText","unitValue","toFixed","getTwipsValue","centimetersToTwips","inchesToTwips","getGuidItemKey","MathUtils","generateGuid","createSelectedItems","canMoveConnector","createRectangle","CompositionHistoryItem","HistoryItem","uniqueId","changeModified","getName","historyItems","dataSyncItems","redo","manipulator","undo","historyItem","CONNECTOR_DEFAULT_TEXT_POSITION","segment_1","CanvasManagerBase_1","NativeItem_1","Event_1","ITextMeasurer_1","PathPrimitive_1","TextPrimitive_1","Settings_1","Utils_2","DiagramItem_1","ModelUtils_1","ConnectorPointsCalculator_1","ConnectorPointsOrthogonalCalculator_1","ConnectorLineEndingStrategies_1","ConnectorTexts_1","ConnectorProperties","ConnectorTexts","getRenderPoints","xarr","yarr","routingStrategy","renderPointsWithoutSkipped","lockCreateRenderPoints","shouldInvalidateRenderPoints","getTextCount","count","getText","textObj","setText","set","ConnectorText","getTextPoint","getTextPositionByPoint","minTextHeight","pointsToTwips","parseInt","getTextRectangle","fromGeometry","keepSkipped","changeRenderPoints","ConnectorPointsOrthogonalCalculator","getPoints","ConnectorRoutingMode","None","newRenderPoints","createRenderPoints","AllShapesOnly","getCalculator","shouldChangeRenderPoints","updatePointsOnPageResize","addPoint","deletePoint","movePoint","onAddPoint","replaceRenderPointsCore","invalidateRenderPoints","onDeletePoint","onDeleteUnnecessaryPoints","necessaryPoints","onMovePoint","replaceRenderPoints","clearRenderPoints","Straight","ConnectorPointsCalculator","createPrimitives","path","createLineEndingPrimitives","createTextPrimitives","connectorPath","strategy","createLineEndingStrategy","startLineEnding","endLineEnding","info","hasCommands","lineEndingPath","needCreateSeparatePrimitive","createPrimitive","createCommands","lineEnding","ConnectorLineEnding","ConnectorLineEndingNoneStrategy","Arrow","ConnectorLineEndingArrowStrategy","OutlinedTriangle","ConnectorLineEndingOutlinedTriangleStrategy","FilledTriangle","ConnectorLineEndingFilledTriangleStrategy","ConnectorLineEndingStrategy","createSelectorPrimitives","enableText","TextPrimitive","TextOwner","PAGE_BG_TEXTFLOOR_FILTER_ID","el","RenderUtils","setElementEventData","MouseEventElementType","getExtremeItem","getExtremeConnectionPointIndex","getMinX","getMinY","getConnectionPointSide","ConnectionPointSide","Undefined","getSegments","Segment","intersectedByRect","isIntersectedByRect","toNative","NativeConnector","dataKey","fromKey","toKey","fromId","fromPointIndex","toId","toPointIndex","applyUnits","DiagramItem","ShapeDescription","ShapeTextPadding","ShapeDefaultSize","ShapeMinDimension","ShapeDefaultDimension","LocalizationService_1","RectaglePrimitive_1","ConnectionPoint_1","defaultSize","hasDefaultText","onChanged","connectionPoints","createConnectionPoints","getTitle","DiagramLocalizationService","shapeTexts","getDefaultText","getDefaultImageUrl","ConnectionPoint","North","East","South","West","processConnectionPoint","side","createParameters","normalizeParameters","modifyParameters","deltaX","deltaY","changeParameterValue","change","getParameterPoints","getExpandedSize","getCollapsedSize","getToolboxHeightToWidthRatio","allowResizeHorizontally","_shape","allowResizeVertically","forToolbox","primitives","createShapePrimitives","enableImage","createImagePrimitives","_forToolbox","textSpacing","getTextClipPathId","getTextAngle","TextAngle","Angle0deg","getClientRectangle","getTextEditRectangle","RectanglePrimitive","raiseShapeDescriptionChanged","notifyShapeDescriptionChanged","DEFAULT_ZINDEX","Style_1","customData","zIndex","Style","TextStyle","getConnectionPoint","toPoint","getNearestConnectionPoint","ptDistance","prevIndex","getConnectionPointSideByIndex","strokeWidth","areIntersected","SimpleCommandBase","CommandBase_1","CommandStates_1","getState","SimpleCommandState","isEnabled","getValue","getDefaultValue","getItems","isVisible","control","readOnly","isEnabledInReadOnlyMode","getModelUnit","getModelUnitText","getModelUnitTwipsValue","getViewUnit","viewUnits","getViewUnitText","getViewUnitTwipsValue","CommandBase","DiagramClipboardEvent","DiagramKeyboardEvent","DiagramContextMenuEvent","DiagramWheelEvent","DiagramMouseEvent","DiagramMouseEventBase","DiagramMouseEventTouch","DiagramFocusEvent","DiagramEvent","ResizeEventSource","MouseEventSource","MouseButton","key_1","type","modifiers","inputText","ModifierKey","offsetPoint","modelPoint","button","touches","scrollX","scrollY","eventPoint","keyCode","getShortcutCode","clipboardData","hundredthsOfMillimeterToTwipsRound","documentsToTwips","pixelsToTwipsF","pixelsToTwipsCustomDpi","dpi","pixelsToTwipsFCustomDpi","inchesToTwipsF","pointsToTwipsF","picasToTwips","PICAS_PER_INCH","centimetersToTwipsF","DPI","CENTIMETERS_PER_INCH","twipsToDegrees","twipsToRadians","degreesToTwips","radiansToTwips","radiansToDegrees","twipsToFD","fdToTwips","emuToTwips","val","twipsToPixelsF","inchesToPixels","centimeterToPixel","millimetersToPixel","pointsToPixels","pointsToPixelsF","pixelsToPoints","pixelsToPointsF","twipsToPoints","twipsToPointsF","pixelsToInches","pixelToCentimeters","twipsToHundredthsOfMillimeter","pixelsToHundredthsOfMillimeter","hundredthsOfMillimeterToTwips","twipsToEmu","twipsToDegree","HitTestDeviation","flag_1","algorithms_1","fixed_1","createPosition","createVerticalInterval","FixedInterval","createHorizontalInterval","fromPoints","pointA","pointB","fromPositions","fromCenter","minRadius","isCollapsed","setPosition","setSize","setGeomerty","moveRectangle","moveRectangleByPoint","resize","containsRectangle","applyOffsetsInside","offsets","applyNormalizedOffsetsInside","horSum","vertSum","applyOffsetsOutside","getHorizIntersection","objA","objB","IntervalAlgorithms","getIntersection","getVertIntersection","horInters","vertInters","start","getHorNonCollapsedIntersection","inters","getVertNonCollapsedIntersection","getNonCollapsedIntersection","rectA","rectB","union","RectangleDeviation","initRectangle","initPoint","deviation","Flag","calcDeviation","Left","Right","Top","Bottom","calcAdditionalParams","insidePoint","offsetToInside","ShapeDescription_1","ShapeParameters_1","ImageInfo_1","expandedSize","toolboxSize","image","ImageInfo","ShapeParameters","allowEditText","hasTemplate","allowEditImage","getMinWidth","settingsMinWidth","minWidth","getMinHeight","settingsMinHeight","minHeight","getMaxWidth","settingsMaxWidth","maxWidth","getMaxHeight","settingsMaxHeight","maxHeight","normalizeX","normalizeY","getConnectionPointSideByGeometry","toggleExpandedSize","NativeShape","attachedConnectorIds","containerId","containerChildItemIds","containerExpanded","RenderHelper","Diagnostics_1","createSvgElement","parent","forExport","svgElement","baseVal","appendChild","forMeasurer","createElement","Diagnostics","optimizeLayers","transform","addEventListener","eventName","handler","removeEventListener","DiagramModelOperation","ModelOperationSettings","_addShape","_addShapeFromToolbox","_deleteShape","_deleteConnector","_changeConnection","_changeConnectorPoints","_changeShapeText","_changeConnectorText","_resizeShape","_moveShape","applySettings","addShape","addShapeFromToolbox","changeConnection","changeConnectorPoints","changeShapeText","changeConnectorText","resizeShape","moveShape","Browser","IdentUserAgent","userAgent","ignoreDocumentMode","browserTypesOrderedList","defaultVersions","Safari","Chrome","Mozilla","Netscape","Firefox","Opera","IE","toLowerCase","indentPlatformMajorVersion","platformIdentStrings","optVersion","patterns","Opera10","browserType","version","browserTypeCandidate","matches","RegExp","exec","GetBrowserVersion","getIECompatibleVersionString","browserVersionDetected","platform","minOccurenceIndex","identStr","importantIdent","substr","occurenceIndex","toUpperCase","match","isSamsungAndroidDevice","floor","getVersionFromTrident","documentMode","fillUserAgentInfo","tridentPattern","ieCompatibleVersionString","getVersionFromMatches","versionFromTrident","compatible","isTouchEnabled","window","navigator","Version","MajorVersion","WindowsPlatform","MacOSMobilePlatform","MacOSPlatform","AndroidMobilePlatform","WindowsPhonePlatform","WebKitFamily","NetscapeFamily","HardwareAcceleration","WebKitTouchUI","isIETouchUI","UserAgent","MSTouchUI","maxTouchPoints","TouchUI","MobileUI","AndroidDefaultBrowser","AndroidChromeBrowser","SamsungAndroidDevice","isARMArchitecture","VirtualKeyboardSupported","fillDocumentElementBrowserTypeClassNames","PlaformMajorVersion","versionStr","parseFloat","documentElementClassName","browserTypeslist","documentElement","Info","getUserAgent","_foo","raiseEvent","browser_1","updateSvgElementSize","removeElement","parentNode","removeChild","removeContent","firstChild","getElementEventData","getAttribute","getHtmlElementStylePropertyName","getTextAnchorValue","propertyValue","reverseTextAnchor","getStrokeDasharrayValue","dashArray","split","applyStyleToElement","defaultStyle","getDefaultInstance","elPropertyName","HTMLElement","setProperty","generateSvgElementId","prefix","getUrlPathById","id","location","protocol","host","pathname","evt","_evt","raiseFunc","preventDefault","RectangleShapeDescription","ShapeTypes_1","_a","getSizeByText","textSize","Alignment","DataLayoutOrientation","LogicalDirectionKind","TreeLayoutSettings","LayoutSettings","orientation","Vertical","Forward","baseSpacing","columnSpacing","layerSpacing","componentSpacing","alignment","Center","subTreeColumnSpacing","setUnitAttribute","string_1","ColorUtils","getAlpha","color","getRed","getGreen","getBlue","redPartToString","redStr","greenPartToString","greenStr","bluePartToString","blueStr","fromArgbNumber","alpha","red","green","blue","fromRgbaString","matchesRGBA","replace","matchItem","fromHashString","hash","isHashColorString","charAt","StringUtils","repeat","fromColorName","colorNameAsHash","colorNames","fromString","rgbaColor","hashColor","colorToHash","stringToHash","test","isKnownColorName","isGray","DARK_COLOR","LIGHT_COLOR","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","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","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","windowtext","PermissionRequestEventArgs","RequestedEntity","apiController","eventArgs","updateUI","_eventArgs","createEventArgs","insertInDOM","createChildElements","createCustomContent","applyElementStyleProperties","removeAttribute","applyChildrenProperties","childNodes","applyElementStylePropertiesCore","destroyCustomContent","dispose","primitive","KeyCode","encode_1","KeyUtils","getKeyModifiers","altKey","Alt","ctrlKey","Ctrl","shiftKey","Shift","isCtrlKey","isShiftKey","isAltKey","isMetaKey","Meta","getShortcutCodeByEvent","getEventKeyCode","metaKey","which","parseShortcutString","shortcutString","shcKeys","trim","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","Enter","Home","Up","Down","PageUp","PageDown","Space","Tab","Backspace","ContextMenu","Esc","Delete","Insert","charCodeAt","alert","EncodeUtils","decodeViaTextArea","common_1","DomUtils","clearInnerHtml","setStylePosition","setStyleSize","setStyleSizeAndPosition","hideNode","node","isHTMLElementNode","nodeType","Node","ELEMENT_NODE","isTextNode","TEXT_NODE","isElementNode","isHTMLTableRowElement","tagName","isItParent","parentElement","getParentByTagName","getDocumentScrollTop","isScrollBodyIE","getCurrentStyle","body","overflow","scrollTop","pageYOffset","getDocumentScrollLeft","scrollLeft","currentStyle","defaultView","getComputedStyle","frameElement","changes","curElement","display","ownerDocument","srcObject","isDefined","newObject","ch","setFocus","focusCore","focus","activeElement","setTimeout","hasClassName","classNames","classList","contains","elementClassName","elementClasses","addClassName","removeClassName","updClassName","newClassName","toggleClassName","toggle","pxToInt","px","pxToNumber","pxToFloat","getAbsolutePositionY","getAbsolutePositionY_FF3","getBoundingClientRect","getAbsolutePositionY_IE","curEl","isFirstCycle","cells","getAbsoluteScrollOffset_OperaFF","offsetTop","offsetParent","getAbsolutePositionY_Opera","borderTopWidth","getAbsolutePositionY_NS","getAbsolutePositionY_Other","getAbsolutePositionX","getAbsolutePositionX_FF3","getAbsolutePositionX_IE","offsetLeft","getAbsolutePositionX_Opera","borderLeftWidth","getAbsolutePositionX_NS","getAbsolutePositionX_Other","isInteractiveControl","getClearClientHeight","getTopBottomPaddings","getVerticalBordersWidth","paddingTop","paddingBottom","res","borderTopStyle","borderBottomStyle","borderBottomWidth","getNodes","collection","all","getElementsByTagName","getChildNodes","getNodesByClassName","querySelectorAll","result_1","elem","getChildNodesByClassName","nodeList","nodeListToArray","isNonNullString","getVerticalScrollBarWidth","verticalScrollBarWidth","cssText","widthWithoutScrollBar","widthWithScrollBar","clientWidth","getHorizontalBordersWidth","borderLeftStyle","borderRightStyle","borderRightWidth","getFontFamiliesFromCssString","cssString","fam","getInnerText","html2PlainTextFilter","innerHTML","innerText","textContent","parseFunction","indexOfPx","isX","AutoZoomMode","DiagramSettings","onZoomChanged","onViewChanged","onReadOnlyChanged","onConnectorRoutingModeChanged","_zoomLevel","_zoomLevelItems","_simpleView","_fullscreen","_readOnly","_autoZoom","Disabled","_snapToGrid","_showGrid","_gridSize","_gridSizeItems","_pageSizeItems","_viewUnits","_connectorRoutingMode","correctZoomLevel","notifyZoomChanged","notifyViewChanged","notifyReadOnlyChanged","notifyGridChanged","showGrid","notifyConnectorRoutingModeChanged","_shapeMinWidth","_shapeMinHeight","_shapeMaxWidth","_shapeMaxHeight","applyShapeSizeSettings","shapeMaxHeight","shapeMinHeight","shapeMaxWidth","shapeMinWidth","ShapeParameterPoint","EmptyStyle","StrokeStyle","TextAlignment","DEFAULT_STROKE_DASHARRAY","DEFAULT_STROKE_WIDTH","StyleBase","color_1","Svg_1","createDefaultProperties","createInstance","callback","strokeWidthPx","toHash","toObject","k","modified","fromObject","isColorProperty","defaultInstance","isDefaultStrokeDashArray","resetStrokeDashArray","getAlignment","strokeOffset","_strokeWidthPx","_strokeOffset","default1pxInstance","default1pxNegativeOffsetInstance","default2pxInstance","styles","DEFAULT_CONNECTOR_ENDLINEENDING","DEFAULT_CONNECTOR_STARTLINEENDING","DEFAULT_CONNECTOR_LINEOPTION","MouseHandlerDraggingState","MouseHandlerStateBase_1","canApplyChangesOnMouseMove","initPosition","dragStartLimit","onAfterApplyChanges","raiseDragStart","getDraggingElementKeys","mouseDownPoint","onMouseDown","onMouseMove","mouseMoveEvent","cancelChanges","switchToDefaultState","onApplyChanges","onKeyDown","performMouseMoveEvent","onKeyUp","onMouseUp","beginStorePermissions","finish","checkStoredPermissionsOnFinish","onFinishWithChanges","raiseDragEnd","endStorePermissions","clearInteractingItems","isStoredPermissionsGranted","lockPermissions","undoTransaction","unlockPermissions","getSnappedPoint","getSnappedPointOnDragPoint","MouseHandlerCancellableState","list_1","digits","factor","powFactor","numberCloseTo","accuracy","restrictValue","minVal","maxVal","getRandomInt","random","ListUtils","initByCallback","ind","somePrimes","metrics_1","startPoint","Metrics","euclideanDistance","isIntersected","segment","intersectCore","dy1","dy2","ShapeParameter","parameter","addRange","paramObj","ConnectionMode","PositionInfo","weight","getHashKey","reverse","GroupPrimitive","onBeforeDispose","MouseHandlerStateBase","onMouseClick","onMouseDblClick","onMouseWheel","onDragStart","onDragEnd","onShortcut","_shortcutCode","onConnectionPointsShow","onConnectionTargetShow","code","array","comparer","minIndex","maxIndex","findFromZeroPosition","currentIndex","compare","normedBinaryIndexOf","binaryIndexNormalizator","normedInterpolationIndexOf","toFind","lowIndex","highIndex","firstObject","lowValue","highValue","midIndex","midValue","CanvasManagerBase","TextFilterPrimitive_1","actualZoom","dom","elements","createAndChangePrimitivesElements","createAndChangePrimitiveElement","createPrimitiveElement","sibling","changeByPrimitive","changePrimitiveElement","getOrCreateElement","createTextFloodFilter","pageColor","TextFloodFilterPrimitive","getAbsoluteSize","modelSize","SetAbsoluteY","SetAbsoluteX","dom_1","IsNumber","str","isFinite","prepareClientPosForElement","div","visibility","createElementMock","realPos","getPositionElementOffset","ArrayInsert","ArrayRemove","ArrayIndexOf","ArrayRemoveAt","pop","ArrayClear","ArrayContains","ArrayEqual","array1","array2","ArraySame","every","ArrayGetIntegerEdgeValues","arrayToSort","CollectionToArray","ArrayIntegerAscendingSort","end","ArrayIntegerSort","desc","i1","i2","CollectionsUnionToArray","firstCollection","secondCollection","firstCollectionLength","secondCollectionLength","CreateHashTableFromArray","CreateIndexHashTableFromArray","ArrayToHash","getKeyFunc","getValueFunc","Sum","prevValue","Min","CalculateArrayMinMax","Max","NearestLeftBinarySearchComparer","arrayElement","leftPoint","ArrayBinarySearch","binarySearchComparer","defaultBinarySearchComparer","middle","compareResult","ArrayFlatten","arrayOfArrays","GetDistinctArray","resultArray","currentEntry","ForEach","len","MergeHashTables","target","_val","isMax","startValue","NEGATIVE_INFINITY","POSITIVE_INFINITY","byRange","cssTextToObject","name_1","objectToCssText","ImageCache","CacheImageInfo","base64_1","base64","actualId","imageUrl","referenceInfo","isLoaded","_base64","Base64Utils","normalizeToDataUrl","_referenceInfo","_isLoaded","_isLoading","startLoading","finalizeLoading","emptyImageId","lastActualId","onReadyStateChanged","cache","nonLoadedImages","createUnloadedInfoByBase64","transparentOnePixelImage","reset","getImageData","createUnloadedInfoByUrl","findInfoByUrl","registerImageData","getNextActualId","findInfoByBase64","createUnloadedInfoByShapeImageInfo","imageInfo","data","exportUrl","checkPrependDataUrl","existingData","raiseReadyStateChanged","loadAllImages","loader","cacheInfo","isLoading","load","existingInfo","loadedInfo","imageInfoIndex","base64_2","cacheElem","isReference","hasNonLoadedImages","findInfoCore","cacheImageInfo","ready","notifyImageCacheReadyStateChanged","instance","PageOrientation","HistoryItem_1","addConnection","deleteConnection","oldConnectionPointIndex","setConnectionPointIndex","boolToInt","boolToString","isNumber","isString","isEven","isOdd","numberToStringBin","minLength","padLeft","numberToStringHex","imageUrlOrBase64","url","loadFailed","transparentWhiteImage1_1","loadBase64Content","base64Content","setUnableToLoadFlag","ConnectorPointsOrthogonalSideCalculatorBase","beginRect","endRect","getBeginOffsetPoints","targetSide","originPoint","originRect","getCorrectOriginPoint","isBeginEndSame","getSameShapeOffsetPoints","isBeginEndOverlappedPoints","getOverlappedPointsOffsetPoints","isBeginEndOverlapped","getBeginOverlappedShapeOffsetPoints","isOriginRectContainsTargetPoint","isOnSidePoint","getBeginOnSideOffsetPoints","getBeginOffSideOffsetPoints","getEndOffsetPoints","getEndOverlappedShapeOffsetPoints","getEndOnSideOffsetPoints","getEndOffSideOffsetPoints","getSide","getSideCalculator","getMinOffset","isBeginEndOverlappedX","isBeginEndOverlappedY","shapeDescription","EllipsePrimitive","cx","cy","ClipPathPrimitive","ExportImportCommandBase","__webpack_exports__","__assign","__rest","__decorate","__param","__metadata","__awaiter","__generator","__createBinding","__exportStar","__values","__read","__spread","__spreadArrays","__await","__asyncGenerator","__asyncDelegator","__asyncValues","__makeTemplateObject","__importStar","__importDefault","__classPrivateFieldGet","__classPrivateFieldSet","getOwnPropertySymbols","propertyIsEnumerable","decorators","getOwnPropertyDescriptor","Reflect","decorate","paramIndex","decorator","metadataKey","metadataValue","metadata","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","done","then","f","g","label","sent","trys","ops","verb","iterator","op","TypeError","k2","ar","error","il","j","jl","asyncIterator","q","resume","fulfill","settle","shift","cooked","raw","__setModuleDefault","mod","default","receiver","privateMap","has","begin","fromSegment","normalize","angleBetween","cosFi","scalarProduct","acos","LoggerDisplayMode","beginAverage","groupName","enableLogsAndTimers","lastAverageGroupName","endAverage","tryLogAverage","sameGroupTimers","timers","endTime","average","startTime","log","timer","message","lastCreatedTimer","performance","now","endTimer","timeoutID","showMessage","logPerfInfo","nodesCount","querySelector","memory","toLocaleString","Console","console","existText","getElement","lastMessage","lastLineLength","lastLine","before","after","background","fontSize","fontFamily","clr","opacity","optimizeUsingRAF","isAlpha","isDigit","stringHashCode","strLen","endsAt","template","strInd","tmplInd","strStartInd","startsAt","stringInLowerCase","stringInUpperCase","atLeastOneSymbolInUpperCase","char","getSymbolFromEnd","posFromEnd","trimChars","trimInternal","joinedChars","trimStart","trimEnd","getDecimalSeparator","isNullOrEmpty","totalWidth","paddingChar","substring","DiagramModel","ImageCache_1","pageSize","itemIndexByKey","keyCounter","pageLandscape","defaultPageColor","initializeKeyCounter","forceUpdate","pushItem","cacheShapeImage","removeItem","updateIndicesHash","findShapesCore","findShapeCore","findShapeAtPosition","findShapeByDataKey","findShapesByImageUrl","findShapesByDescription","imageLoader","findNearestContainer","recursive","findItemContainerCore","findItemContainer","findConnectorCore","findConnectorAtPoints","findConnectorByDataKey","findConnectorByBeginEndDataKeys","beginDataKey","endDataKey","findConnectorsCore","findItemByDataKey","findItemCore","isIntersectedItems","item1","item2","s1","s2","getIntersectItems","getIntersectItemsMinZIndex","getIntersectItemsMaxZIndex","iterateItems","getNextKey","TextPrimitive270degRenderHelper","TextPrimitive180degRenderHelper","TextPrimitive90degRenderHelper","TextPrimitiveRenderHelper","TextUtils_1","owner","textWidth","textHeight","reverseTextAhchor","filterId","textSegmens","textToParagraphs","renderHelper","createRenderHelper","getTextX","getTextY","fitToSize","createTSpanElements","prepareTSpanElements","prepareMainElement","txt","createTSpanElement","words_1","textToWords","lines","wordsByLines","measureWords","line","firstTSpan","prepareFirstTSpanElement","tSpan","prepareTSpanElement","lineCount","Angle90deg","Angle180deg","Angle270deg","baselineCorrection","needRotation","LINE_HEIGHT","textAnchor","getLineHeight","getTextHeight","getTextLineSize","getOptimalTextRectangle","TEXTRECT_RATIO_EPS","Data_1","WHITESPACES","absLineWidth","words","measuredWords","spaceWidth","lastLineWidth","lastLineIndex","word","wordWidth","compareRatio","eps","an","bn","calcHeight","paragraphs","measureResult","yRange","calcByFit","wordSize","textOrParagraphs","emptyTextAsSingleLine","isArray","initialSize","keepRatio","MAX_SAFE_INTEGER","maxWordWidth","xRange","ratio","initRatio","incHeightToRatio","newFitToHeight","maxParagraphWidth","deltaWidth","attempt","newRatio","newError","getOptimalTextRectangleCore","RightAngleConnectorRoutingMathOperations","line_equation_1","AStarMetrics_1","createSegments","createUnionSegments","segments","shouldCreateSegment","startRenderPoint","endRenderPoint","currentSegment","unionPoints","isCorner","p1","p2","p3","createAngle","vector1","vector2","getTurnDirection","RightAngleTurnDirection","Backwards","createRectanlePolygonalChain","topLeft","topRight","bottomRight","bottomLeft","isLineIntersected","excludeBeginPoint","excludeEndPoint","intersection","LineEquation","isSegmentNormal","isConnectionRectanleLineIntersected","createPoint","isRectangleCut","rectanlePolygonalChain","hasSegmentIn","hasSegmentOut","startPoint_1","endPoint_1","currentContainsStart","currentContainsEnd","rectLinesContainsStart_1","rectLinesContainsEnd_1","rectLinesContainsStart","rectLinesContainsEnd","state_1","createBeginConnectionSegment","beginConnectionSide","createEndConnectionSegment","endConnectionSide","removeOrSkipUnnecessaryPoints","skipUnnecessaryPoints","sp","renderPointsContext","addConnector","selectedKeys","forceChange","oldSelection","oldText","styleProperty","styleValue","oldStyleValue","changeStyleText","ChangeStyleHistoryItemBase","GraphIterator","FastGraph","ListUtils_1","GraphBase","nodeMap","edgeMap","onInit","edge","getEdge","getAdjacentEdges","nodeKey","connectionMode","OutgoingAndIncoming","Incoming","Outgoing","cast","castNode","castEdge","getConnectedComponents","createIterator","visitEachEdgeOnce","components","onNode","onEdge","iterate","this_1","getSpanningGraph","rootKey","edgeWeightFunc","sortedAdjacentEdges","spanningTreeNodesSet","HashSet","spanningTreeEdgesSet","addNodeToSpanningGraph","minWeighedEdge","tryPush","list","adjacentEdges","parentToChildren","childToParents","getParents","visitEachNodeOnce","visitedNodes","visitedEdges","skipNode","iterateCore","isNodeVisited","skipEdge","outgoing","onAfterEdge","onAllEdges","incoming","isEdgeVisited","edgeKey","Margin","EdgeLayout","NodeLayout","NodeInfo","margin","EllipseShapeDescription","EllipsePrimitive_1","Exporter","export","page","exportItemsCore","exportItems","exportShape","connectorObj","exportConnector","exportItem","paramsObj","styleObj","styleTextObj","propsObj","exportSvg","exportManager","exportSvgImage","exportPng","exportPngImage","exportJpg","exportJpgImage","ToggleStyleTextPropertyCommand","StylePropertyCommandBase_1","getCurrentTextStylePropertyValue","getStyleProperty","getStylePropertyValue","executeCore","state","setTextStylePropertyValue","getStyleObj","getDefaultStyleObj","StylePropertyCommandBase","ChangeStylePropertyCommand","ChangeStylePropertyCommandBase_1","getCurrentStylePropertyValue","createHistoryItem","updateInputPosition","setStylePropertyValue","ChangeStylePropertyCommandBase","AutoLayoutCommandBase","SimpleCommandBase_1","ScrollIntoViewHistoryItem_1","getAffectedShapes","getAffectedConnectors","createLayoutSettings","graphInfo","rectangle_2","model_1","commonRect","ScrollIntoViewOnUndoHistoryItem","view","createLayout","ScrollIntoViewOnRedoHistoryItem","ChangePagePropertyCommand","createHistoryItems","CanvasItemsManager","CONNECTOR_CAN_MOVE","NOT_VALID_CSSCLASS","ModelChange_1","GroupPrimitive_1","CanvasManager_1","viewElement","zoomLevel","itemSelectorGroupContainers","itemSelectorElements","itemGroupContainers","itemElements","itemChildElements","selectorPrimitives","initializeContainerElements","itemSelectorsContainer","itemsContainer","clear","applyChange","getItemParent","applyShapeChange","isValid","applyConnectorChange","setPointerEventsNone","pointerEvents","notifyDragStart","itemKeys","notifyDragEnd","notifyDragScrollStart","notifyDragScrollEnd","notifyTextInputStart","notifyTextInputEnd","notifyTextInputPermissionsCheck","notifyActualZoomChanged","scale","changeByFunc","notifyViewAdjusted","canvasOffset","invalidatePrimitives","getPrimitives","getSelectorPrimitives","getShapeSelectorClassName","getShapeClassName","selectorClassName","itemSelectorParent","getItemSelectorGroupContainer","itemParent","getItemGroupContainer","itemClassName","ItemChangeType","Create","createItemElements","changeItemChildrenVisibility","Remove","removeItemCustomContent","removeItemElements","UpdateStructure","UpdateProperties","Update","changeItemElements","changeItemClassName","moveItemElements","UpdateClassName","getConnectorSelectorClassName","getConnectorClassName","selectorMoveClassName","gEl","updateStructure","changeChildrenByPrimitives","insertBefore","getItemGroupContainerKey","parentContainerKey","getItemSelectorParent","notifySelectionChanged","newSelectedItems","itemsToUpdate","populateItems","sourceSet","checkSet","CanvasManager","TextMeasurer","fontSizeCache","containers","createNodes","splitToWords","styleHashKey","getStyleHash","measureElements","tryLoadWordsToMeasurer","putElementsInDOM","beforeMeasureInDOM","measureElementsInDOM","afterMeasureInDOM","measureTextLine","textLine","results","onNewModel","onNewModelCore","shapeElements","tryLoadShapeTexts","connectorElements","tryLoadConnectorTexts","replaceParent","mainElement","clean","newSet","hashes","styleHashes","textOwner","elementsToMeasure","hashesToMeasure","styleHashesToMeasure","newWords","tryLoadWordToMeasurer","getDomElementSize","getDomFontSize","getHash","cachedSize","setAttributeNS","includeWhitespace","textEl","bBox","getBBox","createContainer","ExtensionLine","Resize","EdgeOnLayer","NodeOnLayer","SugiyamaNodesOrderer","SugiyamaLayerDistributor","SugiyamaLayoutBuilder","BaseBuilder_1","NodeLayout_1","LayoutSettings_1","GraphLayout_1","CycleRemover_1","build","GraphLayout","nodeOrderer","component","acyclicGraphInfo","CycleRemover","removeCycles","layers","getLayers","orderedGraph","orderNodes","removedEdges","ek","coordinatedGraph","assignAbsCoordinates","componentLayout","createInfoGraphLayout","reversedEdges","setComponentOffset","getComponentOffset","currentPosition","sortedLayers","layer","absOffsetInfo","getAbsOffsetInfo","positions","totalDepth","leftEdge","rightEdge","MIN_SAFE_INTEGER","maxDepthLayer","depthNodeSize","getDepthNodeSize","directionOffset","chooseDirectionValue","absPosition","getAbsPosition","getBreadthNodeSize","setBreadth","nodePosition","setDepthOffset","isDummy","breadth","Horizontal","getDirectionValue","createNodesLayout","createEdgesLayout","infoGraph","DIRECT","getDirectEdgeLayout","TOP_TO_BOTTOM","getDiffLevelEdgeLayout","BOTTOM_TO_TOP","TOP_TO_TOP","getSameLevelEdgeLayout","BOTTOM_TO_BOTTOM","occupied","originFrom","isReversed","candidates_1","oneliner","candidate","topToBottom","nodesInfos","absOffsetMatrix","addCell","intAbsCoord","trunc","leftOffset","coord","breadthPosition","absCoordinate","itemSize","absoluteOffsetInfo","absLeftOffset","cellWidth","getBreadthNodeSizeCore","getDepthNodeSizeCore","LayoutBuilder","acyclicGraph","feasibleTree","getFeasibleTree","calcNodesLayers","initLayerAssignment","currentLayer","actualAssignedNodes","assigningNodes","_loop_2","assigningNodesSet","minLayer","currentLevel","out","idCounter","currentIteration","initGraphInfo","nodeInfos","orderInfo","initOrder","bestNodesPositions","getNodeToPositionMap","bestCrossCount","getCrossCount","isParentToChildren","getNodesOrder","crossCount","current","order","_loop_3","nodePositions","ni","adjacentNodesPositions","getNodePosition","this_2","sortNodes","medianIndex","leftMedianPosition","rightMedianPosition","_loop_4","viewedAdjacentNodesPositions","vp","countNodesOnLayer","nodesInfoMap","edgeInfos","span","prevNodeInfo","dNodeInfo","createDummyID","absCoordinates","getAbsCoodinate","medianPositions","MedianAlignmentMode","TopLeft","TopRight","BottomLeft","BottomRight","getPositionByMedian","nodeToPosition","posList","medians","getMedians","resolveMedianConflicts","getSortedBlocks","block","maxPos","ln","blocks","isBottom","allNodesInfo","firstNode","getBlock","xMinNodeInfo","yOnMinXLayer","yMinNodeInfo","xOnMinYLayer","root","median","filteredMedians","_loop_5","minPos","medianItemKey","medianPosition","checkMedianConfict","actualAdjacentEdges","getActualAdjacentEdges","getMedianPosition","getHashCode","_originFrom","BatchUpdatableObject","suspendUpdateCount","occurredEvents","beginUpdate","onUpdateLocked","endUpdate","isUpdateLocked","onUpdateUnlocked","suspendUpdate","continueUpdate","registerOccurredEvent","eventMask","resetOccurredEvents","EmptyBatchUpdatableObject","touch_1","EvtUtils","preventEvent","returnValue","getEventSource","srcElement","getEventSourceByPosition","elementFromPoint","getEventX","getEventY","getMouseWheelEventName","isLeftButtonPressed","TouchUtils","isTouchEvent","event","buttons","touchMouseMoveEventName","preventEventAndBubble","stopPropagation","cancelBubble","clientEventRequiresDocScrollCorrection","isSafariVerLess3","isMacOSMobileVerLess51","clientX","clientY","getWheelDelta","ret","detail","wheelDelta","CommandManager","DiagramCommand","DeleteCommand_1","UndoCommand_1","RedoCommand_1","ImportCommand_1","ExportCommand_1","ToggleFontBoldCommand_1","ToggleFontItalicCommand_1","ToggleFontUnderlineCommand_1","ChangeFontNameCommand_1","ChangeFontSizeCommand_1","ChangeFontColorCommand_1","ChangeFillColorCommand_1","ChangeStrokeColorCommand_1","ChangeTextAlignCommand_1","ChangeConnectorLineEndingCommand_1","ChangeConnectorLineOptionCommand_1","SelectAllCommand_1","AutoLayoutTreeVerticalCommand_1","ChangeSnapToGridCommand_1","ChangeGridSizeCommand_1","ChangePageLandscapeCommand_1","ChangePageSizeCommand_1","ExportPngCommand_1","ExportSvgCommand_1","ExportJpgCommand_1","CopySelectionCommand_1","CutSelectionCommand_1","PasteSelectionCommand_1","ImportBPMNCommand_1","SendToBackCommand_1","BringToFrontCommand_1","AutoLayoutLayeredHorizontalCommand_1","MoveCommands_1","ChangeZoomLevelCommand_1","BindDocumentCommand_1","UnbindDocumentCommand_1","AutoLayoutTreeHorizontalCommand_1","AutoLayoutLayeredVerticalCommand_1","LockCommand_1","UnlockCommand_1","CloneCommand_1","ChangeUnitsCommand_1","ChangePageColorCommand_1","ChangeShowGridCommand_1","ToggleFullscreenCommand_1","ToggleSimpleViewCommand_1","ToggleReadOnlyCommand_1","EditShapeImageCommand_1","PasteSelectionInPosition_1","ImportXMLCommand_1","InsertShapeImageCommand_1","DeleteShapeImageCommand_1","ChangeStrokeStyleCommand_1","ChangeStrokeWidthCommand_1","AutoLayoutTreeVerticalBottomToTopCommand_1","AutoLayoutTreeHorizontalRightToLeftCommand_1","AutoLayoutLayeredVerticalBottomToTopCommand_1","AutoLayoutLayeredHorizontalRightToLeftCommand_1","ChangeConnectorRoutingModeCommand_1","shortcutsToCommand","lastCommandsChain","executingCommandsChain","executingCommandCounter","isPublicApiCall","createCommand","Undo","UndoCommand","Key_z","Redo","RedoCommand","Key_y","Cut","CutSelectionCommand","Key_x","Copy","CopySelectionCommand","Key_c","Paste","PasteSelectionCommand","PasteInPosition","PasteSelectionInPositionCommand","SelectAll","SelectAllCommand","Key_a","DeleteCommand","Import","ImportCommand","ImportBPMN","ImportBPMNCommand","ImportXML","ImportXMLCommand","Export","ExportCommand","ExportSvg","ExportSvgCommand","ExportPng","ExportPngCommand","ExportJpg","ExportJpgCommand","BindDocument","BindDocumentCommand","UnbindDocument","UnbindDocumentCommand","Bold","ToggleFontBoldCommand","Key_b","Italic","ToggleFontItalicCommand","Key_i","Underline","ToggleFontUnderlineCommand","Key_u","FontName","ChangeFontNameCommand","FontSize","ChangeFontSizeCommand","FontColor","ChangeFontColorCommand","FillColor","ChangeFillColorCommand","StrokeColor","ChangeStrokeColorCommand","ChangeStrokeStyleCommand","StrokeWidth","ChangeStrokeWidthCommand","TextLeftAlign","TextLeftAlignCommand","TextCenterAlign","TextCenterAlignCommand","TextRightAlign","TextRightAlignCommand","ChangeConnectorLineOptionCommand","ConnectorStartLineEnding","ChangeConnectorStartLineEndingCommand","ConnectorEndLineEnding","ChangeConnectorEndLineEndingCommand","BringToFront","BringToFrontCommand","SendToBack","SendToBackCommand","MoveLeft","MoveLeftCommand","MoveRight","MoveRightCommand","MoveUp","MoveUpCommand","MoveDown","MoveDownCommand","MoveStepLeft","MoveStepLeftCommand","MoveStepRight","MoveStepRightCommand","MoveStepUp","MoveStepUpCommand","MoveStepDown","MoveStepDownCommand","CloneLeft","CloneLeftCommand","CloneRight","CloneRightCommand","CloneUp","CloneUpCommand","CloneDown","CloneDownCommand","Lock","LockCommand","Unlock","UnLockCommand","AutoLayoutTree","AutoLayoutTreeVerticalCommand","AutoLayoutFlow","AutoLayoutLayeredHorizontalCommand","Units","ChangeUnitsCommand","ViewUnits","ChangeViewUnitsCommand","PageSize","ChangePageSizeCommand","PageLandscape","ChangePageLandscapeCommand","PageColor","ChangePageColorCommand","GridSize","ChangeGridSizeCommand","ShowGrid","ChangeShowGridCommand","SnapToGrid","ChangeSnapToGridCommand","ZoomLevel","ChangeZoomLevelCommand","ZoomLevelInPercentage","ChangeZoomLevelInPercentageCommand","AutoLayoutTreeVertical","AutoLayoutTreeVerticalBottomToTop","AutoLayoutTreeVerticalBottomToTopCommand","AutoLayoutTreeHorizontal","AutoLayoutTreeHorizontalCommand","AutoLayoutTreeHorizontalRightToLeft","AutoLayoutTreeHorizontalRightToLeftCommand","AutoLayoutLayeredVertical","AutoLayoutLayeredVerticalCommand","AutoLayoutLayeredVerticalBottomToTop","AutoLayoutLayeredVerticalBottomToTopCommand","AutoLayoutLayeredHorizontal","AutoLayoutLayeredHorizontalRightToLeft","AutoLayoutLayeredHorizontalRightToLeftCommand","Fullscreen","ToggleFullscreenCommand","ToggleSimpleView","ToggleSimpleViewCommand","ToggleReadOnly","ToggleReadOnlyCommand","InsertShapeImage","InsertShapeImageCommand","EditShapeImage","EditShapeImageCommand","DeleteShapeImage","DeleteShapeImageCommand","FitToScreen","FitToScreenCommand","FitToWidth","FitToWidthCommand","SwitchAutoZoom","SwitchAutoZoomCommand","ToggleAutoZoom","ToggleAutoZoomCommand","ZoomLevelItems","ChangeZoomLevelItemsCommand","GridSizeItems","ChangeGridSizeItemsCommand","PageSizeItems","ChangePageSizeItemsCommand","Zoom25","ChangeZoomLevelTo25Command","Zoom50","ChangeZoomLevelTo50Command","Zoom75","ChangeZoomLevelTo75Command","Zoom100","ChangeZoomLevelTo100Command","Zoom125","ChangeZoomLevelTo125Command","Zoom150","ChangeZoomLevelTo150Command","Zoom200","ChangeZoomLevelTo200Command","AutoZoomToContent","ToggleAutoZoomToContentCommand","AutoZoomToWidth","ToggleAutoZoomToWidthCommand","ChangeConnectorRoutingModeCommand","getCommand","beforeExecuting","afterExecuting","processShortcut","execute","processPaste","_selection","notifyScrollPositionChanged","commandId","commandType","shortcuts","shortcut","min_max_1","comparers_1","removeBy","shallowCopy","deepCopy","initByValue","numElements","initValue","initCallback","forEachOnInterval","interval","reverseForEachOnInterval","reducedMap","newItem","indexBy","reverseIndexBy","elementBy","reverseElementBy","last","setLast","newVal","incLast","decLast","allOf2","equalsByReference","aLen","unique","cmp","equal","finalizeObj","unshift","uniqueNumber","Comparers","number","NaN","forEach2","listA","listB","reverseForEach","reverseIndexOf","accumulate","initAccValue","accumulateNumber","anyOf","unsafeAnyOf","currResult","reverseAnyOf","unsafeReverseAnyOf","anyOf2","allOf","allOfOnInterval","addListOnTail","resultList","addedList","joinLists","lists","accList","countIf","merge","shouldMerge","prevObj","minExtended","minElement","maxExtended","maxElement","minMax","minMaxExtended","MinMax","minValue","elemValue","ExtendedMin","maxValue","ExtendedMax","ExtendedMinMax","minByCmp","found","maxByCmp","minMaxByCmp","xDist","yDist","manhattanDistance","file_1","mime_type_1","mimeType","prependByDataUrl","dataUrl","deleteDataUrlPrefix","base64DataUrl","getUint8Array","atob","Uint8Array","fromArrayBuffer","buffer","binary","bytes","byteLength","String","fromCharCode","btoa","getFileFromBase64","fileName","options","FileUtils","createFile","getMimeTypeAsString","getKnownMimeType","MimeTypeUtils","stringTypeToType","DxMimeType","Unknown","fromBlobAsArrayBuffer","blob","reader","FileReader","onloadend","readAsArrayBuffer","fromBlobAsDataUrl","readAsDataURL","NativeItem","unitsApplied","applyUnitsCore","Offsets","fromOffsets","fromSide","horizontal","vertical","multLeft","multRight","multTop","multBottom","oldValue","changeConnectorProperty","changeStyle","first","ShapeDescriptionManager","ProcessShapeDescription_1","DecisionShapeDescription_1","ManualInputShapeDescription_1","DataShapeDescription_1","TerminatorShapeDescription_1","PredefinedProcessShapeDescription_1","ArrowUpDownShapeDescription_1","ArrowRightShapeDescription_1","ArrowUpShapeDescription_1","CrossShapeDescription_1","DiamondShapeDescription_1","EllipseShapeDescription_1","HeartShapeDescription_1","RectangleShapeDescription_1","TextShapeDescription_1","PentagonShapeDescription_1","HexagonShapeDescription_1","OctagonShapeDescription_1","StarShapeDescription_1","ArrowDownShapeDescription_1","ArrowLeftRightShapeDescription_1","ArrowLeftShapeDescription_1","TriangleShapeDescription_1","DocumentShapeDescription_1","MultipleDocumentsShapeDescription_1","PreparationShapeDescription_1","HardDiskShapeDescription_1","DatabaseShapeDescription_1","InternalStorageShapeDescription_1","PaperTapeShapeDescription_1","ManualOperationShapeDescription_1","DelayShapeDescription_1","StoredDataShapeDescription_1","MergeShapeDescription_1","DisplayShapeDescription_1","OrShapeDescription_1","SummingJunctionShapeDescription_1","CustomShapeDescription_1","VerticalContainerDescription_1","HorizontalContainerDescription_1","CardWithImageOnTopDescription_1","ConnectorShapeDescription_1","CardWithHorizontalImageDescription_1","descriptions","descriptionTypes","descriptionCategories","onShapeDecriptionChanged","register","TextShapeDescription","CrossShapeDescription","TriangleShapeDescription","DiamondShapeDescription","HeartShapeDescription","PentagonShapeDescription","HexagonShapeDescription","OctagonShapeDescription","StarShapeDescription","ArrowUpShapeDescription","ArrowDownShapeDescription","ArrowLeftShapeDescription","ArrowRightShapeDescription","ArrowUpDownShapeDescription","ArrowLeftRightShapeDescription","ProcessShapeDescription","DecisionShapeDescription","TerminatorShapeDescription","PredefinedProcessShapeDescription","DocumentShapeDescription","MultipleDocumentsShapeDescription","ManualInputShapeDescription","PreparationShapeDescription","DataShapeDescription","DatabaseShapeDescription","HardDiskShapeDescription","InternalStorageShapeDescription","PaperTapeShapeDescription","ManualOperationShapeDescription","DelayShapeDescription","StoredDataShapeDescription","DisplayShapeDescription","MergeShapeDescription","ConnectorShapeDescription","OrShapeDescription","SummingJunctionShapeDescription","CardWithImageOnLeftDescription","CardWithImageOnRightDescription","CardWithImageOnTopDescription","VerticalContainerDescription","HorizontalContainerDescription","defaultContainerInstance","getTypesByCategory","category","getCategoryByType","getCategoryByDescription","registerCustomShape","baseDescription","baseType","CustomShapeDescription","unregisterCustomShape","shapeType","ArrowVerticalShapeDescription","ArrowVerticalLineWidthParameterName","ArrowVerticalTriangleHeightParameterName","ArrowHorizontalShapeDescription","ArrowVerticalLineHeightParameterName","ArrowVerticalTriangleWidthParameterName","PolygonShapeDescription","calculateHeight","angleCount","ImportUtils","parseJSON","json","parse","createDocument","xml","DOMParser","parseFromString","ChangeStyleTextPropertyCommand","TreeLayoutBuilder","Tree_1","nodeToLevel","levelDepthSize","tree","Tree","createSpanningTree","processTree","preProcessTree","parents","maxDepthSize","getMaxDepthSize","loadNodes","hasNode","processLevel","Backward","levelDepths","mostDepthPos_1","setDepthPos","getDepthPos","depthPos","breadthParentRange","prevRange","addNodes","parentEdges","updateEdgeConnections","lastChild","childRange","getBreadthPos","alignParent","breadthPos","maxDepthSide","getBeginEdgeIndex","getEndEdgeIndex","isVertical","availableRange","alignedPosition","ExportImageCommand","CanvasItemsManager_1","CanvasExportManager_1","ExportImportCommandBase_1","Exporter_1","TextMeasurer_1","DOMManipulator_1","exporter","getExportManager","getExportFunc","exportFunc","getExtension","tryDispose","getOrCreateMeasurer","itemsManager","render","createItemsManager","CanvasExportManager","canvasManager","ExportDOMManipulator","onModelChanged","commitItemsCreateChanges","tempMeasurer","ItemChange","DOMManipulator","queue","doChange","cancelAnimation","rafId","cancelAnimationFrame","requestAnimation","doChangeSync","rafRequested","func_1","requestAnimationFrame","ClipboardCommand","setClipboardData","input","getClipboardData","isPasteSupportedByBrowser","ChangeZindexHistoryItem","oldZIndex","changeZIndex","DataLayoutParameters","DataLayoutType","WideTree_1","Sugiyama_1","sizeSettings","layoutType","layoutSettings","Sugiyama","autoSizeEnabled","getLayoutBuilder","EditShapeImageCommandBase","ChangeShapeImageHistoryItem_1","selectedShape","getSelectedShape","selectedShapes","selectedUnlockedShapes","ChangeShapeImageHistoryItem","onEventAttachingToDocument","isTouchEventName","documentTouchHandlers","documentEventAttachingAllowed","changedTouches","pageX","pageY","touchMouseDownEventName","PointerEvent","touchMouseUpEventName","msTouchDraggableClassName","DiagramControl","CommandManager_1","Diagram_1","DataLayoutParameters_1","ModelOperationSettings_1","tslib_1","newEnd","makeByStartEnd","makeByStartLength","makeByLengthEnd","makeByConstInterval","expand","MutableInterval","SparseIntervalsIterator","sparseIntervals","intervalIndex","curr","moveNext","posInInterval","initObject","numIntervals","getInterval","movePrev","isStarted","FilterPrimitive","transformAttr","COLOR_PROPERTIES","propName","ConnectorPointsCalculatorBase","IntersectedShapeZone","AStarMetrics","IntersectedShapesMetrics","TurnDirectionMetrics","IntersectedShapeMetrics","shapeMargin","penalty","relativePenalty","createRelativeMarginPenalty","isTopPosition","isLeftPosition","isBottomPosition","isRightPosition","extendedTopLeft","extendedRectangle","rectangleTopLeft","topLeftDistance","extendedTopRight","rectangleTopRight","topRightDistance","extendedBottomLeft","rectangleBottomLeft","bottomLeftDistance","extendedBottomRight","rectangleBottomRight","bottomRightDistance","turnDirection","turnBack","turnLeft","turnRight","shapeMetrics","intersectedItems","turnDirectionMetrics","shapesMetrics","oldParameters","changeShapeParameters","oldPosition","oldSize","oldLocked","changeLocked","Importer","ShapeDescriptionManager_1","ImporterBase_1","ImportUtils_1","shapeDescriptionManager","getObject","getPageObject","getShapeObjects","getConnectorObjects","importPageSettings","pageObj","assert","importShape","shapeObj","importShapeChildren","importConnector","ImporterBase","ClipPathPrimitive_1","textClipPathId","top_1","getSizeByTextRectangle","PolygonShapeDescription_1","defaultRatio","py","sideX","createDocumentPrimitives","curveOffsetRatio","ImagePrimitive_1","ShapeWithImageDescription_1","ImageLoader_1","SvgElementPrimitive_1","defaultWidth","defaultHeight","ImageLoader","updateSvgImage","defaultText","defaultImageUrl","title","svgUrl","svgImage","cachedImage","svgToolboxUrl","svgToolboxImage","createTemplate","keepRatioOnAutoSize","toolboxWidthToHeightRatio","allowResize","ptObj","svgLeft","svgTop","svgWidth","svgHeight","ImagePrimitive","createToolboxTemplate","templateLeft","templateTop","templateWidth","templateHeight","nativeShape","createNativeShape","SvgElementPrimitive","destroyTemplate","textLeft","textTop","getImageSize","shapeSize","includeMargins","ShapeWithImageDescription","imageWidth","imageHeight","getImagePlacementRectangle","imageLeft","imageTop","isToolboxImage","preserveAspectRatio","SHAPE_IMAGE_CLASSNAMES","ShapeImageIndicator_1","IMAGE","IMAGE_PLACEHOLDER","LOADING_INDICATOR","USER_PIC","WARNING_MARK","defaultIconSize","getImageMargin","createImagePlaceholder","imagePrimitives","unableToLoad","createEmptyImagePrimitives","renderUrl","createLoadingImagePrimitives","createLoadedImagePrimitives","imageScalingRule","loadingRect","getIconPlacementRectangle","ShapeImageIndicator","createLoadingIndicatorPrimitives","showWarning","createEmptyImagePrimitive","createWarningPrimitive","iconRect","borderThickness","animationStarted","createLoadingIndicatorPrimitive","createUserIconPrimitives","createUserIconPrimitive","createWarningIconPrimitives","createWarningIconPrimitive","rotate","centerX","centerY","timestamp","transformAttributeValue","animationRequestId","onApplyLoadingIndicatorElementProperties","radius","sizeInPixels","exclamationLineWidth","loadedCallback","loadInner","loadPictureByUrl","loadPictureByBase64","loadedData","imageLoaded","img","Image","onload","src","xhr","XMLHttpRequest","response","onerror","status","open","responseType","send","ContainerDescription","CONTAINER_EXPAND_BUTTON_SIGN_RATIO","CONTAINER_EXPAND_BUTTON_RECT_RATIO","CONTAINER_HEADER_TOOLBOX_SIZE_RATIO","CONTAINER_HEADER_SIZE","createHeaderPrimitives","createExpandButtonPrimitives","buttonRect","ShapeExpandButton","CardBaseDescription","RoundedRectanglePrimitive_1","RoundedRectanglePrimitive","textRectangle","imgBlockSize","isTextAfterImage","getImageSizeByTextBlockSize","createGraphicalTextRepresentation","textRect","horizontalShift","verticalShift","createTextRepresentationPrimitives","imageSize","imageRectangle","lineHeight","Model_1","import","importShapes","importConnectors","updateConnections","updateChildren","importItems","itemHash","oldKey","importItemsData","shapeDataKeys","srcShape","destShape","srcConnector","destConnector","shapeObjs","connectorObjs","childKey","lockInputPositionUpdating","processParameter","ChangeConnectorPropertyCommand","getCurrentConnectorPropertyValue","getPropertyName","getPropertyDefaultValue","setConnectorPropertyValue","AutoLayoutCommandBase_1","nodeLayout","copyEdges","excludeMargins","near","far","graphLayout","pendingChanges","pendingRemoveChanges","updatesLock","applyPendingChanges","getPendingChanges","getPendingRemoveChanges","removeChanges","applyChangesCore","changesToReapply","postponeChanges","notifyModelChanged","notifyPageColorChanged","notifyPageSizeChanged","PasteSelectionCommandBase","ClipboardCommand_1","Importer_1","ImportShapeHistoryItem_1","ImportConnectorHistoryItem_1","parseClipboardData","contextMenuPosition","calculateSelectionOffset","getShapeNewPosition","performPaste","addItemForSortingRecursive","itemsHashtable","getSortedPasteItems","sortedItems","beginUpdateCanvas","ImportShapeHistoryItem","ImportConnectorHistoryItem","endUpdateCanvas","barManager","updateItemsState","positionOffset","ChangeLockedCommand","enabled","getLockState","oldImage","changeShapeImage","MouseHandlerDefaultState","MouseHandlerMoveConnectorPointState_1","MouseHandlerResizeShapeState_1","MouseHandlerMoveConnectorSideState_1","MouseHandlerDragParameterPointState_1","MouseHandlerCreateConnectorState_1","MouseHandlerMoveConnectorOrthogonalSideState_1","MouseHandlerToolboxDraggingState_1","MouseHandlerMoveConnectorTextState_1","MouseHandlerDefaultStateBase_1","MouseHandlerMoveShapeState_1","MouseHandlerMoveConnectorState_1","visualizerManager","resetConnectionPoints","onMouseDownCore","canScrollPage","startScrolling","changeSingleSelection","switchState","MouseHandlerMoveConnectorTextState","ShapeResizeBox","MouseHandlerResizeShapeState","ShapeParameterBox","MouseHandlerDragParameterPointState","ConnectorPoint","MouseHandlerMoveConnectorPointState","ConnectorSide","MouseHandlerMoveConnectorSideState","ConnectorOrthogonalSide","MouseHandlerMoveConnectorOrthogonalSideState","ShapeConnectionPoint","MouseHandlerCreateConnectorState","onDragDiagramItemOnMouseDown","canAddDiagramItemToSelection","MouseHandlerMoveShapeState","MouseHandlerMoveConnectorState","MouseHandlerBeforeToolboxDraggingState","onMouseMoveCore","updateConnectionsOnMouseMove","canRemoveDiagramItemToSelection","removeDiagramItemFromSelection","canDragObjectOnMouseDown","canExpandContainerOnMouseDown","canClearSelectionOnMouseDown","processOnMouseMoveAfterLimit","startSelection","canSelectOnMouseUp","canClearSelectionOnMouseUp","canPerformChangeConnectionOnUpdateUI","MouseHandlerDefaultStateBase","MouseHandlerMoveConnectorPointStateBase","MouseHandlerDraggingState_1","resetConnectionTarget","addInteractingItem","allowAttachToObjects","pointPosition","setConnectionTarget","oppositeConnectionPointIndex","setConnectionPoints","oppositePointPosition","getOppositePointPosition","oppositeItem","targetItem","updateOppositeItemConnectionPointIndex","tryUpdateModelSize","checkContainers","checkOppositeItem","canMultipleSelection","targetItem_1","position_1","MouseHandlerToggleShapeExpandedState_1","MouseHandlerSelectionState_1","MouseHandlerZoomOnWheelState_1","MouseHandlerScrollingState_1","onStartScrollPageByKeyboard","onFinishScrollPageByKeyboard","canFinishTextEditing","hasDiagramItem","onShapeExpandBtnMouseDown","clearSelection","replaceSelection","mouseDownEvent","startLimit","onMouseUpCore","canStartZoomOnWheel","MouseHandlerZoomOnWheelState","onLongTouch","replaceMultipleSelection","MouseHandlerSelectionState","raiseDragScrollStart","MouseHandlerScrollingState","inSelection","addDiagramItemToSelection","MouseHandlerToggleShapeExpandedState","lastOffset","getPointByEvent","currentPoint","actualOffset","scrollBy","onFinishScrollPageByMouse","MouseHandlerDragDiagramItemStateBase","DraggingConnector","ChangeConnectorPointsHistoryItem_1","startPoints","startRenderContext","DraggingShape","startPosition","startScrollLeft","startScrollTop","resetExtensionLines","resetContainerTarget","shouldClone","canCopySelectedItems","initDrag","lockInitDrag","draggingShapes","draggingShape","MoveShape","copySelection","updateContainers","setExtensionLines","allowInsertToContainer","setContainerTarget","calculateFixedPosition","ds","firstDraggingShape","offset_1","draggingConnectors","dc","moveConnectorCore","moveConnector","modelConnectorsWithoutBeginItemInfo","modelConnectorsWithoutEndItemInfo","getSnappedPointOnDragDiagramItem","fixedX","fixedY","initDraggingShapes","areValidDraggingShapes","initDraggingConnectors","areValidDraggingConnectors","createModelConnectorsWithoutBeginItemInfo","createModelConnectorsWithoutEndItemInfo","draggingConnectorsIndexByKey","registerConnector","containsDraggingConnectorByKey","AddShape","canCalculateFixedPosition","offsetConnector","changeConnector","ChangeConnectorPointsHistoryItem","offsetRenderContext","pointOffset","ReplaceConnectorPointsHistoryItem","UpdateConnectorPointsHistoryItem","oldRenderContext","oldPoints","updateRenderPoints","newRenderContext","MouseHandlerDefaultReadOnlyState","ChangeShapeTextHistoryItem","ContextMenuHandler","batch_updatable_1","contextMenuVisible","textInputStarted","canHideContextMenu","onVisibilityChanged","hideContextMenu","onContextMenu","showContextMenu","onFocus","onBlur","onTextInputFocus","onTextInputBlur","notifyShowContextMenu","notifyHideContextMenu","notifyShowContextToolbox","getPositionToInsertShapeTo","notifyHideContextToolbox","VisualizerManager","ConnectionTargetVisualizer_1","ContainerTargetVisualizer_1","ExtensionLinesVisualizer_1","ConnectionPointsVisualizer_1","CanvasSelectionManager_1","ResizeInfoVisualizer_1","SelectionRectVisualizer_1","eventManager","onVisualizersUpdate","connectionPointsVisualizer","ConnectionPointsVisualizer","connectionTargetVisualizer","ConnectionTargetVisualizer","containerTargetVisualizer","ContainerTargetVisualizer","extensionLinesVisualizer","ExtensionLinesVisualizer","resizeInfoVisualizer","ResizeInfoVisualizer","selectionRectangleVisualizer","SelectionRectVisualizer","initialize","onMouseEnter","onMouseLeave","resetResizeInfo","resetSelectionRectangle","preventShowOutside","isFocused","isSelected","setPoints","ConnectionPointInfo","setPointIndex","updateConnectionPoints","getKey","update","setTargetRect","addPageExtensionLines","addShapeExtensionLines","horPages","pageWidth","verPages","pageHeight","addSegment","ExtensionLineType","HorizontalCenterToPageCenter","VerticalCenterToPageCenter","LeftToPageCenter","TopToPageCenter","RightToPageCenter","BottomToPageCenter","x1nc","y1nc","x2nc","y2nc","sRect","lwCor","CanvasSelectionManager","extensionLineWidth","showDistance","extensionLineOffset","distanceText","VerticalCenterAfter","VerticalCenterBefore","TopToTopAfter","TopToTopBefore","BottomToBottomAfter","BottomToBottomBefore","TopToBottomAfter","TopToBottomBefore","BottomToTopAfter","BottomToTopBefore","HorizontalCenterBelow","HorizontalCenterAbove","LeftToLeftBelow","LeftToLeftAbove","RightToRightBelow","RightToRightAbove","LeftToRightBelow","LeftToRightAbove","RightToLeftBelow","RightToLeftAbove","setResizeInfo","resizeInfoOffset","setSelectionRectangle","setRectangle","TargetVisualizerBase","dispatcher","targetStrokeWidth","raiseShow","raiseHide","lineIndexByType","curIndex","notifyExtensionLinesShow","notifyExtensionLinesHide","ACTIVE_SELECTION_CSSCLASS","SELECTION_ELEMENT_CLASSNAMES","SELECTION_RECTANGLE","CONNECTION_POINT","ACTIVE","CONTAINER_TARGET","CONNECTION_TARGET","EXTENSION_LINE","CONNECTION_MARK","SELECTION_MARK","LOCKED_SELECTION_MARK","ITEMS_SELECTION_RECT","CONNECTOR_MULTI_SELECTION","CONNECTOR_SELECTION","CONNECTOR_POINT_MARK","CONNECTOR_SELECTION_MASK","CONNECTOR_SIDE_MARK","ITEM_SELECTION_RECT","ITEM_MULTI_SELECTION","connectionPointElements","extensionLineElements","selectionMap","parentContainer","itemSelectionContainer","visualizersContainer","selectionMarksContainer","selectionRectElement","resizeInfoElement","connectionTargetElement","containerTargetElement","showSelectionRect","rectEl","getSelectionRectElement","hideSelectionRect","showResizeInfo","rectPrimitive","groupEl","getResizeInfoElement","resizeInfoTextOffset","hideResizeInfo","getConnectionPointClassName","active","showConnectionPoint","showConnectionPointCore","connectionPointLargeSize","connectionPointSmallSize","ellEl","getConnectionPointElement","hideConnectionPoints","showContainerTarget","getContainerTargetElement","hideContainerTarget","showConnectionTarget","getConnectionTargetElement","hideConnectionTarget","showExtensionLine","x1_1","y1_1","x1_2","y1_2","x2_1","y2_1","x2_2","y2_2","extensionLineEndingSize","sizeLineXCorr","sizeLineYCorr","getExtensionLineElement","hideExtensionLines","getOrCreateShapeSelection","usedItems","ShapeSelectionElement","getOrCreateConnectorSelection","ConnectorSelectionElement","textInfo","getOrCreateMultipleSelection","MultipleSelectionElement","getMultipleSelection","updateShapeSelection","multipleSelection","onModelItemChanged","updateConnectorSelection","renderPoints_1","textPos","hideOutdatedSelection","updated","destroy","selectionCanBeDrawn","changedItems","isMultipleSelection","onSelectionChanged","rectangles_1","notifySelectionRectShow","notifySelectionRectHide","notifyResizeInfoShow","notifyResizeInfoHide","notifyConnectionPointsShow","activePointIndex","outsideRectangle","connectionPointShift","notifyConnectionPointsHide","notifyConnectionTargetShow","correctSelectionRect","connectionTargetBorderWidth","notifyConnectionTargetHide","notifyContainerTargetShow","notifyContainerTargetHide","targetLineWidth","selectionLineWidth","outsideOffset","selectionOffset","evenOddWidth","corr","ceil","lwCorr","correction","evenOddSelectionCorrection","selectionMarkSize","lockedSelectionMarkSize","selectionRectLineWidth","multiSelectionRectLineWidth","geomertyMarkSize","connectorPointMarkSize","connectorSideMarkSize","resizeInfoLineWidth","CanvasElement","rectsContainer","marksContainer","updatedElements","zoom","redraw","redrawCore","drawSelectionMarks","hasEWMarks","hasNSMarks","hasCornerMarks","drawSelectionMark","ResizeBox_NW","ResizeBox_N","ResizeBox_NE","ResizeBox_E","ResizeBox_SE","ResizeBox_S","ResizeBox_SW","ResizeBox_W","drawSelectionRect","cacheKey","ItemSelectionElement","isLockedRender","drawLockedSelectionMark","rectangles","needDrawSelectionMarks","rectKeys","selRect","SelectionRect","shapeParameterPoints","drawLockedSelection","drawUnlockedSelection","drawShapeParameterPoints","pp","drawShapeParameterPoint","pointKey","lineType","drawConnectorSelection","drawConnectorSelectionMarks","nextOffset","nextR","textIndex","txtAlign","commandsWB","nextPt","getSelectionOffsetPoints","offsetXNegative","offsetYNegative","nextOffsetX","nextOffsetY","nextOffsetXNegative","nextOffsetYNegative","textPts","getTextStartEndPoints","a1","b1","c1","c1wb","a2","b2","c2","c2wb","det","getSelectionOffset","pt1","pt2","align","pointsCount","isEdgePoint","markSize","drawConnectorSideMarks","prevPtIndex","canDrawConnectorSideMark","classNameSuffix","minSize","DiagramDraggingEvent","ToolboxDraggingObject","Toolbox","DragState","evt_1","allowDragging","shapeTypes","getAllowedShapeTypes","dragPrepareTimeout","dragState","emulateDragEvents","onDragOperation","onClickOperation","attachHandlers","detachHandlers","draggable","tabIndex","onElementMouseDownHandler","onElementMouseDown","onElementMouseUpHandler","onElementMouseUp","onMouseDownHandler","onMouseMoveHandler","onMouseUpHandler","onDragStartHandler","onTouchMoveHandler","onTouchMove","onSelectionChangeHandler","onSelectionChange","createElements","createDraggingObject","onFinishDragging","resetDragState","onCaptured","capture","getDragShapeType","mouseDownShapeType","setDragState","Prepare","Start","draggingObject","Dragging","updateDraggingElementPosition","evtX","evtY","xPos","yPos","newState","clearTimeout","prepareDragging","onDragPrepareTimeout","startDragging","doDragging","finishDragging","dragStartPoint","dragStartShapeType","createDraggingElement","captured","forced","beginDeleteItems","endDeleteItems","enumVal","newValue","flags","flags_1","flag","collector_1","oneConstainsOtherArraysOfInterval","mergedIntervalsA","intervalsB","shouldBeContais","currenInterval","mergedInterval","containsInterval","intervalA","intervalB","getIntersectionTemplate","getIntersectionNonNullLength","getIntersectionNonNullLengthTemplate","getIntersectionsTwoArraysOfInterval","intervalsA","getIntersectionsTwoArraysOfIntervalTemplate","lengthIntervalsA","lengthIntervalsB","intervalsAIndex","intervalsBIndex","currAInterval","currBInterval","currResultInterval","getAffectedObjects","objects","intervals","getFirstIndex","conflictResolver","objectInterval","touchingIntervalLength","touchPoint","getAffectedObjectsTemplate","collector","SparseIntervalsCollector","intervals_1","objInterval","getIntervals","handleAffectedObjects","intervals_2","getMergedIntervals","needSort","getMergedIntervalsTemplate","sortedIntervals","minBound","maxBound","reflectIntervals","bounds","reflectIntervalsTemplate","lastIntervalEnd","reflectionOfPointOnInterval","valInterval","targetInterval","MinMaxNumber","string","stringIgnoreCase","Equals","simpleType","normalizeLength","ConstInterval","isNormalized","containsIntervalWithoutEnd","containsWithIntervalEnd","containsWithoutIntervalEndAndStart","SparseIntervals","iterator_1","objects_iterator_1","_count","_numIntervals","getNativeIterator","getObjectsIterator","SparseObjectsIterator","TextFilterPrimitive","FilterPrimitive_1","feFlood","feComposite","floodColor","nodeName","prepareFEFloodNode","colorHash","encodeHtml","decodeHtml","prepareTextForRequest","prepareTextForCallBackRequest","html","textArea","polyfill","firstSource","nextSource","keysArray","nextIndex","nextKey","writable","loadJavascriptFile","srcUri","headElem","bodyElem","scriptElem","htmlScriptElement","startDownloadFileLocal","content","ArrayBuffer","msSaveOrOpenBlob","a_1","url_1","URL","createObjectURL","href","download","click","revokeObjectURL","fileBits","Blob","lastModified","Date","File","isFile","file","_b","_c","OpenXmlMimeType","RtfMimeType","PlainTextMimeType","DocmMimeType","ImagePngMimeType","ImageGifMimeType","ImageJpegMimeType","ImagePjpegMimeType","ImageSvgMimeType","ImageTiffMimeType","ImageIcoMimeType","ImageWbmpMimeType","ImageWebpMimeType","stringTypeToExtension","mimeTypeAsStr","stringTypeToTypeMap","typeToExtensionMap","typeToExtension","ext","extensionToType","extension","extensionToTypeMap","typeToStringType","typeToStringTypeMap","OpenXml","Rtf","PlainText","Docm","Png","Gif","Jpeg","Pjpeg","Svg","Tiff","Ico","Wbmp","Webp","ConnectorPointsCalculatorBase_1","ConnectorPointsOrthogonalUndefinedSideCalculator_1","ConnectorPointsOrthogonalSouthSideCalculator_1","ConnectorPointsOrthogonalNorthSideCalculator_1","ConnectorPointsOrthogonalEastSideCalculator_1","ConnectorPointsOrthogonalWestSideCalculator_1","RightAngleConnectorRoutingMathOperations_1","sideCalculators","ConnectorPointsOrthogonalUndefinedSideCalculator","ConnectorPointsOrthogonalSouthSideCalculator","ConnectorPointsOrthogonalNorthSideCalculator","ConnectorPointsOrthogonalEastSideCalculator","ConnectorPointsOrthogonalWestSideCalculator","beginSide","getPointSide","beginNextSide","endSide","endPrevSide","beginSideCalculator","endSideCalculator","isDirectConnectionAllowed","getDirectConnectionPoints","bOffsetPoints","addMiddlePoints","middlePoint","getMiddlePoint","getMiddlePoints","directionPoint1","nextToBegin","directionPoint2","nextToEnd","rect1","createPointsRect","rect2","itemRect1","itemRect2","isReturnPoint","isIntermediatePoints","isPriorMiddlePoint","ConnectorPointsOrthogonalSideCalculatorBase_1","calculator","diffX","diffY","getAsideOffsetPoints","getScaleableOffsetY","getScaleableAsideOffsetPoints","asideOffset","isEnd","getScaleableOffsetX","aParam","bParam","cParam","equation","A1","B1","C1","A2","B2","C2","getStyle","getCssClass","arrowPoints","renderContext","addDeleteConnectorPoint","oldPoint","offsets_1","backOffset","newWidth","newHeight","changeModelSize","applyOffset","LayoutUtils_1","sourceGraph","_graph","getNodeInfoGraph","_level","getLevel","LayoutUtils","shapeToLayout","getContainerLevel","shapeRect","connRect","isPermissionsRequired","executed","executeWithPermissions","updateControlState","lockUIUpdating","defaultValue","visible","denyUpdateValue","canUndo","canRedo","importer","importModel","slopeHeightRatio","yOffset","slopeAngle","curveWidthRatio","PredefinedProcessEdgeParameterName","ShapeParameterPoint_1","minEdge","ArrowVerticalShapeDescription_1","p1dx","p0dy","p1x1","p0y1","p1x2","p0y2","ArrowHorizontalShapeDescription_1","p0dx","p1dy","p0x1","p1y1","p1y2","triangleWidth","triangleHeight","CrossVerticalWidthParameterName","CrossHorizontalWidthParameterName","p0x2","_textSize","sideY","StarConvexParameterName","getActualBottom","pDistance","getInnerPointDistance","getInnerPointPos","innerPointX","innerPointY","getInnerPointDistanceByAxis","edge1","edge2","edgeX1","edgeX2","edgeY1","edgeY2","disX","disY","documentsOffsetRatioForToolbox","documentsOffsetRatio","documentOffsetX","documentOffsetY","clipRect","arcWidthRatio","InternalStorageVerticalEdgeParameterName","InternalStorageHorizontalEdgeParameterName","maxRectInEllipse","rectByEllipse","ex","ey","createContent","destroyContent","ContainerDescription_1","headerSize","getHeaderSize","CardBaseDescription_1","w","textBlockSize","CardWithHorizontalImageDescription","_width","_height","ChangeStyleTextPropertyCommand_1","ChangeStylePropertyCommand_1","ChangeTextAlignCommand","ChangeConnectorPropertyCommand_1","scrollIntoView","childToParent","hasChildren","findRoot","aggregator","inc","gridSizeItems","ChangePagePropertyCommand_1","ChangePageLandscapeHistoryItem_1","ChangePageLandscapeHistoryItem","changePageLandscape","ChangePageSizeHistoryItem_1","getModelUnitSize","ChangePageSizeHistoryItem","pageSizeItems","changePageSize","getSvgImage","exportAsInline","exportForBinaryImage","svgEl","modelAbsSize","backgroundColor","exportCssRules","getExportCssRules","bk","cloneNode","inlineStyle","getSvgImageUrl","getSvgBase64String","getSvgString","XMLSerializer","serializeToString","base64Start","getBase64EncodeUnicode","encodeURIComponent","styleSheets","rules","getRules","rule","selectorText","isCSSStyleRule","checkSelector","exportStyleRules","styleSheet","isCSSStyleSheet","cssRules","stylesheet","destNode","srcNode","exportStyleAttributes","getPropertyValue","exportBinaryImage","canvasEl","ctx","getContext","fillStyle","fillRect","canvg","exportBinaryImageCanvgAsync","exportBinaryImageCanvgOld","imgEl_1","drawImage","toDataURL","svgStr","renderCallback","canvas","Canvg","PasteSelectoinCommandBase_1","insertShape","removeShape","insertConnector","removeConnector","BPMNImporter_1","BPMNImporter","updateModel","externalKeyToModelKey","insert","getShapeDescription","BPMNNode","doc","onDefinitionsElement","validate","nodesMap","dataSourceKey","onProcessElement","onStartEventElement","onSequenceFlowElement","onScriptTaskElement","onUserTaskElement","onServiceTaskElement","onSendTaskElement","onExclusiveGateway","onEndEventGateway","createNode","createEdge","hasAttribute","BPMNEdge","sourceKey","feedbackSet","getFeedbackSet","reverseEdges","nonTrivialStronglyConnectedComponents","getNonTrivialStronglyConnectedComponents","maxCyclicEdges","getMaxCyclicEdges","edgeCycleCount","cycles","cycle","edgeSet","getStronglyConnectedComponents","nodesStack","lowLink","onStack","isVisited","getStronglyConnectedComponent","topStackNode","itemsMap","aEdges","ChangeZindexHistoryItem_1","needSendToBack","newZIndex","needBringToFront","MoveCommand","getPosition","startPtIndex","endPtIndex","getZoom","autoZoom","updateLayout","zoomLevelItems","ChangeZoomLevelExactlyCommand","exactValue","FitZoomCommandBase","getZoomLevel","getActualAutoZoomLevel","FitContent","nodeDataSource","performImportData","dataSource","createDocumentDataSource","edgeDataSource","dataParameters","nodeDataImporter","edgeDataImporter","layoutParameters","createModelItems","deleteDocumentDataSource","CloneCommand","canAddItems","selectionRect","getOffsetX","getOffsetY","ChangeUnitsHistoryItem_1","ChangeUnitsHistoryItem","oldUnits","ChangePageColorHistoryItem_1","ChangePageColorHistoryItem","changePageColor","fullscreen","notifyToggleFullscreen","simpleView","selectionPos","newSelectionPos","getModelPointByEventPoint","XMLImporter_1","XmlImporter","pageElements","pageSizeAttr","getSize","positionAttr","getPoint","shapeAttr","getShapeType","getItemKey","sizeAttr","contentAttr","headerAttr","importStyle","childShapeObjs","childShapeObj","childShape","beginPointAttr","pointAttr","endPointAttr","endItemPointIndexAttr","endItemPointIndex","beginItemPointIndexAttr","beginItemPointIndex","endItemAttr","beginItemAttr","backgroundAttr","getColor","strokeAttr","foregroundAttr","fontFamilyAttr","fontSizeAttr","textAlignmentAttr","getNumbers","parts","part","attrValue","numbers","connectorRoutingMode","ModelManipulator_1","EventManager_1","Selection_1","History_1","BarManager_1","RenderManager_1","DocumentDataSource_1","ViewController_1","ToolboxManager_1","ApiController_1","PermissionsProvider_1","ConnectorRoutingModel_1","ReloadContentParameters_1","updateLockCount","shouldUpdateItemsByModel","reloadContentNeeded","reloadContentParameters","ReloadContentParameters","reloadContentByExternalChangesParameters","Selection","onNativeAction","ApiController","PermissionsProvider","onRequestOperation","routingModel","ConnectorRoutingModel","ModelManipulator","History","BarManager","ViewController","commandManager","EventManager","mouseHandler","visualizersManager","toolboxManager","ToolboxManager","operationSettings","cleanMarkup","onTextInputOperation","onMouseOperation","onModelSizeChanged","scrollView","initMeasurer","RenderManager","gridVisible","raiseSelectionChanged","createToolbox","renderAsText","toolbox","getToolboxAllowedShapeTypes","registerToolbox","createContextToolbox","onClick","contextToolbox","cleanContextToolbox","contextToolboxOnClick","allowedShapeTypes","beginUpdateUI","canAddShapeFromToolbox","endUpdateUI","refreshToolbox","toolboxes","clearCache","AddShapeFromToolbox","refresh","applyToolboxFilter","shapeSubstring","applyFilter","notifyToolboxClick","resetScroll","captureFocus","registerBar","bar","updateBarItemsState","queryCommands","getNativeItemByKey","createNativeItem","getNativeItemByDataKey","setInitialStyleProperties","setInitialTextStyleProperties","setInitialConnectorProperties","addCustomShapes","removeCustomShapes","onImportData","commitPageChanges","notifyHistoryChanged","documentDataSource","DocumentDataSource","setDataSource","applyOperationSettings","notifyEdgeInserted","errorCallback","onEdgeInserted","notifyEdgeUpdated","onEdgeUpdated","notifyEdgeRemoved","onEdgeRemoved","notifyNodeInserted","onNodeInserted","notifyNodeUpdated","onNodeUpdated","notifyNodeRemoved","onNodeRemoved","reloadContent","getData","isExternalChanges","isChangesLocked","addNewHistoryItem","reloadContentCore","refetchData","updateModelItems","dataKeys","commitItemUpdateChanges","notifyDataChanges","raiseOnChanged","notifyToolboxDragStart","onToolboxDragStart","notifyToolboxDragEnd","onToolboxDragEnd","onTextInputStart","onTextInputEnd","onToggleFullscreen","onShowContextMenu","getEventPointByModelPoint","onHideContextMenu","onShowContextToolbox","onHideContextToolbox","updateShapeDescription","notifyRequestOperation","operation","requestOperationByDataSource","IsNodeParentIdMode","IsNodeItemsMode","ChangeConnection","attachedConnector","isShapeParent","parentShape","beginChangesNotification","changesLockChanged","endChangesNotification","preventNotifyReloadContent","notifyReloadContent","lockedReadOnly","updateItemsByModel","initializeCore","updateShapeImage","updateModelSize","raisePageSizeChanged","raiseModelSizeChanged","raisePageColorChanged","commitItemsChangesCore","changeType","raiseModelChanged","changeStyleCore","changeCustomData","resizeInteractingItem","getInteractingItem","ResizeShape","size_2","canResizeShapes","moveInteractingItem","canMoveShapes","position_2","changeShapeExpanded","createStrategy","callBack","oldConnectorPoints","getConnectorInteractingPoints","addDeleteConnectorPointCore","moveConnectorPointCore","interactingItem","changeConnectionPoints","newConnectorPoints","canChangeConnectorPoints","existingItem","existingConnectionPointIndex","canChangeConnection","changeConnectorTextPosition","raiseSnapPointChange","oldRectangle","newRectangle","createModelRectangleOffset","notifyModelSizeChanged","notifyModelRectangleChanged","notifySnapPointPositionChanged","MouseHandler_1","TextInputHandler_1","ContextMenuHandler_1","ContextMenuTouchHandler_1","VisualizersManager_1","VisualizersTouchManager_1","ContextToolboxHandler_1","VisualizerTouchManager","contextMenuHandler","ContextMenuTouchHandler","contextToolboxHandler","ContextToolboxHandler","MouseHandler","textInputHandler","TextInputHandler","lockUpdateCanvas","processDragging","onDblClick","notifyDblClick","notifyClick","scCode","isShortcutForFocusInput","onTextInputKeyDown","onPaste","isTextInputActive","onWheel","draggingEvt","getDraggingEvent","draggingEvent","onDocumentDragStart","onDocumentDragEnd","onDocumentDragScrollStart","onDocumentDragScrollEnd","onDocumentClick","raiseTextInputStart","raiseTextInputEnd","raiseTextInputPermissionsCheck","MouseHandlerDefaultState_1","MouseHandlerDefaultReadOnlyTouchState_1","MouseHandlerDefaultReadOnlyState_1","MouseHandlerDefaultTouchState_1","finishStateLock","allowMultipleSelection","allowCopyDiagramItems","allowSnapToCellOnDragDiagramItem","allowSnapToCellOnDragPoint","allowSnapToCellOnResizeShape","allowFixedDrag","allowZoomOnWheel","allowScrollPage","shouldScrollPage","copyDiagramItemsByCtrlAndShift","startScrollingPageByCtrl","initializeDefaultState","defaultState","MouseHandlerDefaultReadOnlyTouchState","MouseHandlerDefaultTouchState","showContextToolbox","applyCallback","cancelCallback","hideContextToolbox","applyed","hasCtrlModifier","hasCtrlOrShiftModifier","hasCtrlAndShiftModifier","hasAltModifier","hasShiftModifier","canFinishZoomOnWheel","canStartScrollingPageByKeyboard","canEndScrollingPageByKeyboard","finishScrollingPage","canEndScrollingPage","raiseDragScrollEnd","basePoint","snapToCell","getSnapToCellOnDragDiagramItem","getFixedXPosition","getFixedYPosition","additionalSnappedPoint","getSnapToCellOnDragPoint","getSnappedOffsetOnDragPoint","lockAspectRatioOnShapeResize","getSnappedPositionOnResizeShape","getSnapToCellOnResizeShape","pressedDiagramItemKey","pressedDiagramItemInSelection","raiseClick","canPerformChangeConnection","operationParams","oldItem","restartState","MouseHandlerMoveConnectorPointStateBase_1","rotation","resizeEventSource","lockH","lockV","sideH","sideV","startRectangle","startShapeSizes","startShapePositions","startConnectorPoints","ratioX","ratioY","shapeWidth","getNormalizedSize","shapeHeight","shapeLeft","shapeTop","connectorPtPos","startSize","lockAspectRatio","absDeltaX","absDeltaY","getSnappedPosition","snappedY","snappedX","pointCreated","parameterPointKey","startParameters","connectedItem","createNewShapeAtConnectorEnd","beginShape","getNewShapeSide","clonedShape","getNewShapePosition","checkNewConnectorPermissions","getNewShapeSideByConnectorPoints","getSourceItem","renderPointIndexes","renderPointIndex1","renderPointIndex2","renderPoint1","renderPoint2","isVerticalOrientation","pointIndex1","correctEdgePoint","findPointIndex","pointIndex2","createdPoint1_1","createdPoint2_1","MouseHandlerToolboxDraggingState","isModelEmpty","tryRemoveTimer","dragging","Background","switchToDraggingState","nonPageAreaTimer","savedEvt","skipLockUpdatePageSize","updatePageSizeTimer","processAndRemoveUpdatePageSizeTimer","tryRemoveUpdatePageSizeTimer","deleteHistoryItem","insertToolboxItem","shape_1","undoTransactionTo","startShapePosition","connectorsWithoutBeginItemInfo","connectorsWithoutEndItemInfo","ChangeConnectorTextPositionHistoryItem_1","savedText","ChangeConnectorTextPositionHistoryItem","ToggleShapeExpandedHistoryItem_1","ToggleShapeExpandedHistoryItem","selectRect","trySwitchToDefault","getNextStepZoom","scrollTo","MouseHandlerZoomOnPinchState_1","startZooming","MouseHandlerZoomOnPinchState","startDistance","getTouchDistance","startZoomLevel","prevDistance","getMiddleLayoutPoint","getMiddleAbsPoint","pt0","getMiddlePointByEvent","touch","ChangeShapeTextHistoryItem_1","startTextInput","textInputItem","textEditRectangle","canChangeShapeText","textInputPosition","canChangeConnectorText","endTextInput","applyTextInput","newText","getTextInputElementValue","canApplyShapeTextChange","canApplyConnectorTextChange","cancelTextInput","processDblClick","contextToolboxVisible","showContextMenuAtSelection","showContextMenuAtEmptySelection","ConnectionTargetInfo","TargetVisualizerBase_1","ContainerTargetInfo","hideConnections","showConnections","needShowConnections","contextToolboxCancelCallback","InputPosition_1","InputPosition","getSelectedItemsInsideContainers","getSelectedItemsCore","includeLocked","conn","includeInsideContainers","InputPositionProperties_1","initialProperties","InputPositionProperties","defaultProperties","currentProperties","getConnectorProperties","getConnectorPropertyValue","getTextStyle","getTextStylePropertyValue","baseProperties","connectorProperties","textStyle","updateConnectorProperties","updateStyle","updatePropertyValue","stylePropertyName","destObj","getSrcObj","valueAssigned","incrementalId","transactionLevel","unmodifiedIndex","currTransactionId","isModified","raiseChanged","startDataSyncItem","transaction","isDataSyncTransaction","transactionLength","addDataSyncItem","addInternal","deleteOldItems","toHistoryItem","compositionHistoryItem","exceedItemsCount","MAX_HISTORY_ITEM_COUNT","getNextId","resetModified","getCurrentItemId","currentItem","ti","bars","commandKeys","knownCommandKeys_1","getCommandKeys","cmd","length_1","updateBarItem","commandKey","commandState","setItemVisible","setItemEnabled","itemValue","getItemValue","setItemSubItems","setItemValue","getDefaultItemValue","setEnabled","notifyBarCommandExecuted","commandID","notifyBarUpdateRequested","DBL_CLICK_TIMEOUT","LONG_TOUCH_TIMEOUT","ScrollView_1","InputManager_1","CanvasPageManager_1","CanvasViewManager_1","AutoScrollController_1","events","moveLocked","lockMouseMoveTimer","lastClickElement","longTouchTimer","dblTouchTimer","scroll","NativeScrollView","CanvasViewManager","InputManager","canvasElement","CanvasPageManager","pageElement","autoScroll","AutoScrollController","attachEvents","killLockMouseMoveTimer","clearLastMouseDownEvent","detachEvents","saveScrollPosition","adjust","onMouseEnterHandler","onMouseLeaveHandler","onMouseWheelHandler","onMouseDblClickHandler","onContextMenuHandler","onWindowResizelHandler","onWindowResize","onOrientationChangeHandler","onOrientationChange","onMouseClickHandler","mouseWheelHandler","lockMouseMove","lockFocus","lastDownMouseEvent","createDiagramMouseEvent","processTouchDown","processTouchMove","mouseEvent","processTouchUp","createActualMouseClickEvent","createDiagramMouseEventTouches","createDiagramContextMenuEvent","touchDownPoint","getTouchPointFromEvent","resetLongTouch","resetDblClick","currentTouchPoint","touchPositionLimit","touchPosition","resetTo","oldFitInfo","checkFitToCanvas","newFitInfo","createDiagramWheelEvent","onDragScrollStart","onDragScrollEnd","findEventSourceByPosition","getOffsetPointByEvent","getModelPoint","eventSource","getOffsetPointByEventPoint","findByPosition","isDiagramControl","isDocumentContainer","src_1","isTextInputElement","scrollContainer","getScrollContainer","containerX","containerY","getAbsolutePoint","onScroll","scrollBarWidth","onScrollHandler","notifyScrollChanged","getScroll","setScroll","offsetScroll","boundingRect","getScrollBarWidth","layoutPointResolver","textMeasurer","focused","focusLocked","createInputElements","detachInputElementEvents","detachTextInputElementEvents","inputElement","selectAll","preventScroll","select","clipboardInputElement","execCommand","readText","clipText","catch","createFocusInputElement","createTextInputElement","createClipboardInputElement","attachInputElementEvents","setInputElementFocusHandlerMode","textInputElementContainer","setInputElementTextInputMode","textAngle","textInputElement","setTextInputElementBounds","setTextInputElementStyle","updateTextInputPadding","savedTextInputPosition","savedTextInputSize","savedTextInputAngle","transforms","savedTextInputStyle","onInputBlurHandler","onInputBlur","onInputFocusHandler","onInputFocus","onInputKeyDownHandler","onInputKeyDown","onInputKeyPressHandler","onInputKeyPress","onInputKeyUpHandler","onInputKeyUp","onPasteHandler","attachTextInputElementEvents","onTextInputBlurHandler","onTextInputFocusHandler","onTextInputKeyDownHandler","onTextInputMouseWheelHandler","onTextInputMouseWheel","onTextInputMouseUpHandler","onTextInputMouseUp","onTextInputKeyUpHandler","onTextInputKeyUp","onTextInputChangeHandler","onTextInputChange","blurControl","focusControl","measureResults","getDiagramFocusEvent","getDiagramKeyboardEvent","getDiagramClipboardEvent","evtClipboardData","PatternPrimitive_1","snapPoint","gridPatternId","pagesGridPatternId","pagesGridClipId","canvasViewOffset","initContainers","backgroundContainer","redrawPage","redrawGrid","updateGridElements","updatePagesGridElements","getGridRectElement","gridRectElement","getGridPatternElement","gridPatternElement","gridRectPrimitive","absGridSize_1","sizes","outerPathCommands","innerPathCommands","commonSize","gridPatternPrimitive","PatternPrimitive","createGridPathPrimitive","createGridPatternPrimitivePosition","getPagesGridRectElement","getPagesGridClipPathElement","pagesGridClipPathElement","getPagesGridPatternElement","pagesGridPatternElement","pageAbsSize","pageGridPathCommands","GRID_PAGES_LINEWIDTH","pagesGridPatternPrimitive","pagesGridClipPathPrimitive","CROP_OFFSET","CANVAS_SCROLL_PADDING","CANVAS_MIN_PADDING","ShadowFilterPrimitive_1","fixedZoomLevel","paddings","crop","lockAutoZoom","autoScrollLocker","pageClipPathId","pageShadowId","rectangleToCrop","updateElements","ShadowFilterPrimitive","containerSize","resetPaddings","adjustCore","tryNormalizePaddings","scrollSize","getActualModelSizeWithoutZoom","scrollbars","checkScrollBars","absRectangle","correctCrop","setActualZoom","scrollbarWidth","actualModelSizeWithoutZoom","getActualAutoZoom","getActualZoom","fixedZoom","actualModelSize","translate","currentTail","tail","getTailSpace","applyChanges","changeScrollByOffset","changeTranslateByOffset","cropHiddenHead","curTranslate","curScroll","curTail","curOffset","getScrollDeltaByOffset","getTranslateDeltaByOffset","commonWidth","containerWidth","hasScrollbar","maxScroll","headPadding","tailPadding","originModelSize","setScrollTo","getVisibileAreaAbsShift","absPoint","newScroll","updatePageElement","updateCanvasElement","createPageClipPathPrimitive","newModelSize","resizeView","resetView","cropWithoutZoom","toReset","paddingsH","paddingsV","oldZoom","oldCrop","newCrop","tailSpace","newPaddings","setSvgSize","lockAutoScroll","unlockAutoScroll","isAutoScrollLocked","modelOffset","getActualOffset","newModelAbsSize","docOffset","hasHorizontalScroll","hasVerticalScroll","lastWidth","lastHeight","excludeScroll","cropLeft","cropTop","absolutePoint","checkScrollArea","feGaussianBlur","feOffset","feMerge","feMergeNode1","feMergeNode2","leftButtonPressed","scrollDragging","scrollTimer","raiseMouseMoveFunc","clearScrollTimer","canAutoScroll","changeScrollPosition","raiseMouseMove","changed","x_1","y_1","width_1","height_1","getScrollingOffset","edgeOffset","UpdateNodeKeyRelatedObjectsStackAction","UpdateNodeKeyRelatedObjectsStackItem","DataSource_1","nodeObj","kind","changesListener","nodeInsertingLockCount","updateNodeKeyRelatedObjectsCount","updateNodeKeyRelatedObjectsStack","updateNodeKeyRelatedObjectsStackActions","deleteNodes","deleteEdges","updateNode","updateEdge","isItemObjectModified","itemObj","setLocked","setZIndex","setCustomData","setStyle","defaultStyle_1","setStyleText","defaultTextStyle_1","setDataObjectKeyRelatedProperty","method","dataObj","allowAutoGeneratedProperty","autoGeneratedDataKeys","updateItemObjectProperties","dataSourceItems","getParentArray","parentArray","findNode","isNodeObjectModified","updateNodeObjectProperties","updateNodeObjectConnectedProperties","addNodeInternal","setKey","addInternalKeyOnInsert","updateNodeObjectKey","beginNodeInserting","endNodeInserting","compareStrings","setImage","actualUrl","setLeft","setTop","setWidth","setHeight","setType","useNodeParentId","setParentKey","parentKey","getParentItemKey","parentItem","updateNodeObjectParentKey","useNodeContainerId","setContainerKey","getContainerShapeKey","containerItem","updateNodeObjectContainerKey","useNodeItems","setItems","updateNodeObjectItems","useNodeChildren","setChildren","updateNodeObjectChildren","parentNodeObj","getParentKey","newParentKey","isRootParentKey","isInUpdateNodeKeyRelatedObjects","addToUpdateNodeKeyRelatedObjectsStackAction","updateNodeObjectContainerOrParentKeyInternal","updateNodeObjectParentKeyInternal","containerNodeObj","getContainerKey","newContainerKey","parentDataObj","checkNodeCyrcleItems","oldItemsArray","itemsArray","containerDataObj","oldChildrenArray","childrenArray","nodeDataObj","parentDataObjCandidate","childDataObj","dataKeyChanged","getNodeArray","updateNodeKeyRelatedObjects","isInNodeInserting","addToUpdateNodeKeyRelatedObjectsStack","getChildItems","childNodeObj","useEdgesArray","edgeObj","findEdge","updateEdgeObjectFromProperty","updateEdgeObjectToProperty","dataModified","getParentItem","isEdgeObjectModified","updateEdgeObjectProperties","canUpdateEdgeDataSource","addEdgeInternal","updateEdgeObjectKey","setFromPointIndex","setToPointIndex","compareTexts","setLineOption","setStartLineEnding","setEndLineEnding","fromObj","setFrom","updateEdgeObjectFromOrToPropertyInternal","toObj","setTo","texts_1","textVal","raiseNodeInsertingStack","beginUpdateNodeKeyRelatedObjects","endUpdateNodeKeyRelatedObjects","raiseUpdateNodeKeyRelatedObjectsStack","preventNotifyChanges","DataSource","ChangeCustomDataHistoryItem_1","DataImporter_1","DataSourceItems_1","canUseAutoSize","loadParameters","createNodeDataImporter","createEdgeDataImporter","fetchData","isAutoGeneratedKey","DataSourceNodeDataImporter","assignNodeDataImporterProperties","DataSourceEdgeDataImporter","assignEdgeDataImporterProperties","assignItemDataImporterProperties","getCustomData","getLocked","getStyleText","getZIndex","getType","getImage","getLeft","getTop","getWidth","getHeight","getFrom","getFromPointIndex","getTo","getToPointIndex","getLineOption","getStartLineEnding","getEndLineEnding","edgeDataObj","addNodeEdgesByParentId","isContainer","oldNodes","oldEdges","getItemChanges","oldItems","newItems","areEqual","remainedItems","containsItem","remainedNewItems","removedItems","addedItems","remained","remainedNew","removed","added","parentNodeDataObj","containerNodeDataObj","childNodeDataObjs","assignNodeProperties","childNodeDataObj","itemDataObjs","itemDataObj","itemNode","getNodeKey","externalKey","DataSourceNodeItem","assignEdgeProperties","DataSourceEdgeItem","assignItemProperties","rowIndex","colIndex","externalToInnerMap","createShapeByNode","containerShapeKey","containerShape","toShape","fromShape","createConnectorByEdge","needAutoLayout","updateDataKeys","updateTemplateItem","layoutShapes","layoutConnectors","shapesToRemove","connectorsToRemove","changeShapeByDataItem","changeItemByDataItem","updateShapeContainer","edgeKeysToUpdate","changeConnectorPointsByDataItem","getConnectorPointsByEdge","changeConnectorByDataItem","applyShapeAutoSize","shapeSizeSettings","shapeTextSize","textHorOffset","textVerOffset","sizeToPx","newShapeTextSize","shapeNewSize","dataItem","ChangeCustomDataHistoryItem","modelPoints","createModelPointFromDataSourceEdgeItemPoints","lastIndex","dep","isValidDataSourceEdgeItemPoint","createModelPoint","str1","str2","isEmptyString","oldCustomData","DataSourceItemDataImporter","DataSourceItem","LOG_MIN_ZOOM","LOG_MAX_ZOOM","ZERO_STEP","getStepByZoom","ZOOMLEVEL_COMMANDS","AUTOZOOM_COMMANDS","increase","currentZoomStep","getNearestCurrentZoomStep","ZOOM_STEPS","logZoom","exp","TextToolbox_1","IconToolbox_1","measurers","TextToolbox","IconToolbox","aggr","searchFilter","toolboxIndex","filteringToolboxes","itemEl","Toolbox_1","readonly","drawShapeIcons","toolboxWidth","lineWidth","targetWidth","shapeIconSize","shapeIconSpacing","shapeIconCountInRow","iconCountInRow","createShape","updateShapeIconBounds","shapeEl","drawShape","drawSelector","shapeIconAttributes","pr","selectorRect","shrinkText","xPosT","yPosT","needResetShapeText","shapeSizeT","ApiControllerAction","__1","SelectionChanged","tryRaiseUserAction","cleanupNativeItem","createNativeConnector","convertUnit","convertPoint","convertSize","callEvent","isUserAction","item_1","AddShape_1","DeleteShape_1","DeleteConnector_1","AddShapeFromToolbox_1","ChangeConnection_1","ChangeConnectorPoints_1","BeforeChangeShapeText_1","BeforeChangeConnectorText_1","ChangeShapeText_1","ChangeConnectorText_1","PermissionsProviderStorage_1","ResizeShape_1","MoveShape_1","permissionsLockCount","requestDeleteItems","updateUICount","storage","PermissionsProviderStorage","entry","entity","DeleteShapeRequestedEntity","DeleteConnectorRequestedEntity","requestOperation","AddShapeRequestedEntity","itemType","AddShapeFromToolboxRequestedEntity","ChangeConnectionRequestedEntity","ChangeConnectorPointsRequestedEntity","BeforeChangeShapeTextRequestedEntity","BeforeChangeConnectorTextRequestedEntity","textToApply","ChangeShapeTextRequestedEntity","ChangeConnectorTextRequestedEntity","shapeInfo","ResizeShapeRequestedEntity","MoveShapeRequestedEntity","cachedEntity_1","requestOperationCore","needStorePermissions","storePermission","storageKey","settingsKey","getInteractingItemCount","AddShapeEventArgs","RequestedEntity_1","other","DeleteShapeEventArgs","DeleteShape","DeleteConnectorEventArgs","DeleteConnector","AddShapeFromToolboxEventArgs","ChangeConnectionEventArgs","oldShape","connectorsAreEqual","shapesAreEqual","oldShapesAreEqual","ChangeConnectorPointsEventArgs","ChangeConnectorPoints","BeforeChangeShapeTextEventArgs","BeforeChangeShapeText","BeforeChangeConnectorTextEventArgs","BeforeChangeConnectorText","ChangeShapeTextEventArgs","ChangeShapeText","ChangeConnectorTextEventArgs","ChangeConnectorText","interactingItems","storedPermissions","getInteractingItemKey","storePermissions","granted","ResizeShapeEventArgs","MoveShapeEventArgs","ConnectorRoutingPenaltyDescription","RightAngleConnectorRoutingStrategy_1","shapeMargins","shouldReverseConnections","shouldResizeConnections","penaltyDescription","option","RightAngleConnectorRoutingStrategy","beginConnectorShape","endConnectorShape","getShapes","getConnectorShapes","RightAngleConnectorRoutingContext_1","supportRenderPoints","beginConnectionShape","endConnectionShape","RightAngleConnectorRoutingContext","shouldCreateRenderPoints","createRenderPointsCore","oldRenderPoints","renderPointIndex","lastRenderPointIndex","oldRenderPoint","firstSegment","newRenderPoint","getRenderPointIndexByPointIndex","previuosRenderPoint","currentRenderPoint_1","currentRenderPoint_2","currentRenderPoint_3","nextRenderPoint","currentRenderPoint_4","currentRenderPoint","currentRenderSegment","currentStartCustomPointIndex","setup","renderSegments","registerCustomPoints","startPointIndex","registerRenderPoints","createRoutedPoints","startInfo","endInfo","createProhibitedSegments","resultPath","routedPoints","registerPoint","IntersectingItemsByPointsContext","CuttingItemsContext","ConnectorRenderSegment_1","RoutingGrid_1","AStarContext_1","AStarCalculator_1","cuttingItemKeys","registerShape","getOrAddItems","getConnectionSide","ignorableItemKeys","cuttingShapesContext","intersectedItemsByPointsContext","isInvalidRenderSegments","isSmallPath","hasIntersecting","isReversedStartConnection","isReversedEndConnection","beginConnectionSegment","endConnectionSegment","isReversedConnectionSegment","supportSegments","supportSegment","connectionSegment","doubleMargins","beginPathPoint","endPathPoint","processContainers","processSupportSegments","processIntersection","processConnections","processRenderSegments","processRoutingGrid","processRoutingMetrics","targetInfo","prohibitedSegments","startPathPoint","targetPathPoint","createAStarContext","AStarCalculator","calculate","addConnectionRoutedPoints","getIntersectedItems","isIgnorableItem","registerIgnorableShape","beginShapeContainer","endShapeContainer","createSupportSegments","isConnectedByStart","isConnectedByEnd","beginShapeContainsEndConnection","endShapeContainsBeginConnection","shapeContainsOtherConnection","createRenderSegments","renderSegment","nextRenderSegment","createGridPoints","routingGrid","createGrid","metrics","createAStarMetrics","AStarContext","isCustomSegment","startSegmentsPoint","endSegmentsPoint","unionRoutingSegments","ep","ConnectorRenderSegment","createPreviousCustomSegment","startRoutingPoint","previuosPointIndex","prevEndPoint","startNextPoint","isPathNormal","connectionSide","targetShape","otherShape","otherPoint","targetRectangle","createBeginConnectionSegmentCore","currentOffset","hasIntersectedItemsByPoint","reversedSegment","isEndConnectionRectanleLineIntersected","secondPoint","connectionItem","createEndConnectionSegmentCore","isBeginConnectionRectanleLineIntersected","createExtendedShapesBounds","RoutingGrid","ConnectorProhibitedSegments_1","previousCustomSegment","createProhibitedSegmentsCore","addExludedPoint","ConnectorProhibitedSegments","exludedPoints","allowPoint","verticalGridLines","horizontalGridLines","boundsSet","verticalLines","horizontalLines","varticalHashMap","horizontalHashMap","addLine","hashMap","getNeighborPoints","verticalIndex","isValidArrayIndex","horizontalIndex","AStarContextBase","SortedQueues_1","UniqueAStarNodePositions_1","AStarNode_1","targetPosition","maxStepsCount","prohibitedPoints","updatableSet","stepsCount","currentNode","generalSet","SortedQueues","UniqueAStarNodePositions","AStarNode","enqueue","openNode","startContinue","dequeueMin","endContinue","addProhibitedPoint","nextPosition","getPenalty","finishWithPath","getPath","finishWithoutPath","routingContext","grid","middlePosition","hasIntersectedItem","isIntersectedWithExtendedRectangle","hasOneShapeConnection","itemContainsConnectionPoints","isConnectionPoint","_itemsArrays","_sortedKeys","getQueue","addSortedKey","removeCore","removeSortedKey","sortedPointIndex","sortedKeys","shouldStartContinue","shouldFinish","_dataKeys","_getData","_layoutParameters"],"mappings":"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","file":"vendors~7d8b98a6.a613177f5f531f0ac5a9.bundle.js","sourcesContent":["/*!\n * DevExpress Diagram (dx-diagram)\n * Version: 2.0.23\n * Build date: Mon Apr 19 2021\n * \n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\n * Read about DevExpress licensing here: https://www.devexpress.com/Support/EULAs\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"diagram\"] = factory();\n\telse\n\t\troot[\"DevExpress\"] = root[\"DevExpress\"] || {}, root[\"DevExpress\"][\"diagram\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 106);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ShapeType = exports.ShapeTypes = exports.ShapeCategories = void 0;\r\nvar ShapeCategories = /** @class */ (function () {\r\n function ShapeCategories() {\r\n }\r\n ShapeCategories.General = \"general\";\r\n ShapeCategories.Flowchart = \"flowchart\";\r\n ShapeCategories.OrgChart = \"orgChart\";\r\n ShapeCategories.Containers = \"containers\";\r\n ShapeCategories.Custom = \"custom\";\r\n return ShapeCategories;\r\n}());\r\nexports.ShapeCategories = ShapeCategories;\r\nvar ShapeTypes = /** @class */ (function () {\r\n function ShapeTypes() {\r\n }\r\n // Standard\r\n ShapeTypes.Text = \"text\";\r\n ShapeTypes.Rectangle = \"rectangle\";\r\n ShapeTypes.Ellipse = \"ellipse\";\r\n ShapeTypes.Cross = \"cross\";\r\n ShapeTypes.Triangle = \"triangle\";\r\n ShapeTypes.Diamond = \"diamond\";\r\n ShapeTypes.Heart = \"heart\";\r\n ShapeTypes.Pentagon = \"pentagon\";\r\n ShapeTypes.Hexagon = \"hexagon\";\r\n ShapeTypes.Octagon = \"octagon\";\r\n ShapeTypes.Star = \"star\";\r\n ShapeTypes.ArrowLeft = \"arrowLeft\";\r\n ShapeTypes.ArrowUp = \"arrowTop\";\r\n ShapeTypes.ArrowRight = \"arrowRight\";\r\n ShapeTypes.ArrowDown = \"arrowBottom\";\r\n ShapeTypes.ArrowUpDown = \"arrowNorthSouth\";\r\n ShapeTypes.ArrowLeftRight = \"arrowEastWest\";\r\n // Flowchart\r\n ShapeTypes.Process = \"process\";\r\n ShapeTypes.Decision = \"decision\";\r\n ShapeTypes.Terminator = \"terminator\";\r\n ShapeTypes.PredefinedProcess = \"predefinedProcess\";\r\n ShapeTypes.Document = \"document\";\r\n ShapeTypes.MultipleDocuments = \"multipleDocuments\";\r\n ShapeTypes.ManualInput = \"manualInput\";\r\n ShapeTypes.Preparation = \"preparation\";\r\n ShapeTypes.Data = \"data\";\r\n ShapeTypes.Database = \"database\";\r\n ShapeTypes.HardDisk = \"hardDisk\";\r\n ShapeTypes.InternalStorage = \"internalStorage\";\r\n ShapeTypes.PaperTape = \"paperTape\";\r\n ShapeTypes.ManualOperation = \"manualOperation\";\r\n ShapeTypes.Delay = \"delay\";\r\n ShapeTypes.StoredData = \"storedData\";\r\n ShapeTypes.Display = \"display\";\r\n ShapeTypes.Merge = \"merge\";\r\n ShapeTypes.Connector = \"connector\";\r\n ShapeTypes.Or = \"or\";\r\n ShapeTypes.SummingJunction = \"summingJunction\";\r\n // Containers\r\n ShapeTypes.Container = \"container\"; // abstract\r\n ShapeTypes.VerticalContainer = \"verticalContainer\";\r\n ShapeTypes.HorizontalContainer = \"horizontalContainer\";\r\n // Shapes with images\r\n ShapeTypes.Card = \"card\"; // abstract\r\n ShapeTypes.CardWithImageOnLeft = \"cardWithImageOnLeft\";\r\n ShapeTypes.CardWithImageOnTop = \"cardWithImageOnTop\";\r\n ShapeTypes.CardWithImageOnRight = \"cardWithImageOnRight\";\r\n return ShapeTypes;\r\n}());\r\nexports.ShapeTypes = ShapeTypes;\r\nvar ShapeType;\r\n(function (ShapeType) {\r\n ShapeType[ShapeType[\"text\"] = 0] = \"text\";\r\n ShapeType[ShapeType[\"rectangle\"] = 1] = \"rectangle\";\r\n ShapeType[ShapeType[\"ellipse\"] = 2] = \"ellipse\";\r\n ShapeType[ShapeType[\"cross\"] = 3] = \"cross\";\r\n ShapeType[ShapeType[\"triangle\"] = 4] = \"triangle\";\r\n ShapeType[ShapeType[\"diamond\"] = 5] = \"diamond\";\r\n ShapeType[ShapeType[\"heart\"] = 6] = \"heart\";\r\n ShapeType[ShapeType[\"pentagon\"] = 7] = \"pentagon\";\r\n ShapeType[ShapeType[\"hexagon\"] = 8] = \"hexagon\";\r\n ShapeType[ShapeType[\"octagon\"] = 9] = \"octagon\";\r\n ShapeType[ShapeType[\"star\"] = 10] = \"star\";\r\n ShapeType[ShapeType[\"arrowLeft\"] = 11] = \"arrowLeft\";\r\n ShapeType[ShapeType[\"arrowTop\"] = 12] = \"arrowTop\";\r\n ShapeType[ShapeType[\"arrowRight\"] = 13] = \"arrowRight\";\r\n ShapeType[ShapeType[\"arrowBottom\"] = 14] = \"arrowBottom\";\r\n ShapeType[ShapeType[\"arrowNorthSouth\"] = 15] = \"arrowNorthSouth\";\r\n ShapeType[ShapeType[\"arrowEastWest\"] = 16] = \"arrowEastWest\";\r\n // Flowchart\r\n ShapeType[ShapeType[\"process\"] = 17] = \"process\";\r\n ShapeType[ShapeType[\"decision\"] = 18] = \"decision\";\r\n ShapeType[ShapeType[\"terminator\"] = 19] = \"terminator\";\r\n ShapeType[ShapeType[\"predefinedProcess\"] = 20] = \"predefinedProcess\";\r\n ShapeType[ShapeType[\"document\"] = 21] = \"document\";\r\n ShapeType[ShapeType[\"multipleDocuments\"] = 22] = \"multipleDocuments\";\r\n ShapeType[ShapeType[\"manualInput\"] = 23] = \"manualInput\";\r\n ShapeType[ShapeType[\"preparation\"] = 24] = \"preparation\";\r\n ShapeType[ShapeType[\"data\"] = 25] = \"data\";\r\n ShapeType[ShapeType[\"database\"] = 26] = \"database\";\r\n ShapeType[ShapeType[\"hardDisk\"] = 27] = \"hardDisk\";\r\n ShapeType[ShapeType[\"internalStorage\"] = 28] = \"internalStorage\";\r\n ShapeType[ShapeType[\"paperTape\"] = 29] = \"paperTape\";\r\n ShapeType[ShapeType[\"manualOperation\"] = 30] = \"manualOperation\";\r\n ShapeType[ShapeType[\"delay\"] = 31] = \"delay\";\r\n ShapeType[ShapeType[\"storedData\"] = 32] = \"storedData\";\r\n ShapeType[ShapeType[\"display\"] = 33] = \"display\";\r\n ShapeType[ShapeType[\"merge\"] = 34] = \"merge\";\r\n ShapeType[ShapeType[\"connector\"] = 35] = \"connector\";\r\n ShapeType[ShapeType[\"or\"] = 36] = \"or\";\r\n ShapeType[ShapeType[\"summingJunction\"] = 37] = \"summingJunction\";\r\n // Containers\r\n ShapeType[ShapeType[\"verticalContainer\"] = 38] = \"verticalContainer\";\r\n ShapeType[ShapeType[\"horizontalContainer\"] = 39] = \"horizontalContainer\";\r\n // Shapes with images\r\n ShapeType[ShapeType[\"cardWithImageOnLeft\"] = 40] = \"cardWithImageOnLeft\";\r\n ShapeType[ShapeType[\"cardWithImageOnTop\"] = 41] = \"cardWithImageOnTop\";\r\n ShapeType[ShapeType[\"cardWithImageOnRight\"] = 42] = \"cardWithImageOnRight\";\r\n})(ShapeType = exports.ShapeType || (exports.ShapeType = {}));\r\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Point = (function () {\r\n function Point(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n Point.zero = function () {\r\n return new Point(0, 0);\r\n };\r\n Point.fromNumber = function (num) {\r\n return new Point(num, num);\r\n };\r\n Point.prototype.isZero = function () {\r\n return this.x === 0 && this.y === 0;\r\n };\r\n Point.prototype.toString = function () {\r\n return JSON.stringify(this);\r\n };\r\n Point.prototype.copyFrom = function (obj) {\r\n this.x = obj.x;\r\n this.y = obj.y;\r\n };\r\n Point.prototype.clone = function () {\r\n return new Point(this.x, this.y);\r\n };\r\n Point.prototype.equals = function (obj) {\r\n return this.x === obj.x && this.y === obj.y;\r\n };\r\n Point.prototype.offset = function (offsetX, offsetY) {\r\n this.x += offsetX;\r\n this.y += offsetY;\r\n return this;\r\n };\r\n Point.prototype.offsetByPoint = function (offset) {\r\n this.x += offset.x;\r\n this.y += offset.y;\r\n return this;\r\n };\r\n Point.prototype.multiply = function (multiplierX, multiplierY) {\r\n this.x *= multiplierX;\r\n this.y *= multiplierY;\r\n return this;\r\n };\r\n Point.prototype.negative = function () {\r\n this.x *= -1;\r\n this.y *= -1;\r\n return this;\r\n };\r\n Point.prototype.applyConverter = function (converter) {\r\n this.x = converter(this.x);\r\n this.y = converter(this.y);\r\n return this;\r\n };\r\n Point.plus = function (a, b) {\r\n return new Point(a.x + b.x, a.y + b.y);\r\n };\r\n Point.minus = function (a, b) {\r\n return new Point(a.x - b.x, a.y - b.y);\r\n };\r\n Point.xComparer = function (a, b) {\r\n return a.x - b.x;\r\n };\r\n Point.yComparer = function (a, b) {\r\n return a.y - b.y;\r\n };\r\n Point.equals = function (a, b) {\r\n return a.x === b.x && a.y === b.y;\r\n };\r\n return Point;\r\n}());\r\nexports.Point = Point;\r\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Size = (function () {\r\n function Size(width, height) {\r\n this.width = width;\r\n this.height = height;\r\n }\r\n Size.empty = function () {\r\n return new Size(0, 0);\r\n };\r\n Size.fromNumber = function (num) {\r\n return new Size(num, num);\r\n };\r\n Size.initByCommonAction = function (action) {\r\n var widthAdp = function (s) { return s.width; };\r\n var heightAdp = function (s) { return s.height; };\r\n return new Size(action(widthAdp, heightAdp), action(heightAdp, widthAdp));\r\n };\r\n Size.prototype.isEmpty = function () {\r\n return this.width === 0 && this.height === 0;\r\n };\r\n Size.prototype.toString = function () {\r\n return JSON.stringify(this);\r\n };\r\n Size.prototype.nonNegativeSize = function () {\r\n if (this.width < 0)\r\n this.width = 0;\r\n if (this.height < 0)\r\n this.height = 0;\r\n return this;\r\n };\r\n Size.prototype.offset = function (offsetWidth, offsetHeight) {\r\n this.width = this.width + offsetWidth;\r\n this.height = this.height + offsetHeight;\r\n return this;\r\n };\r\n Size.prototype.multiply = function (multiplierW, multiplierH) {\r\n this.width *= multiplierW;\r\n this.height *= multiplierH;\r\n return this;\r\n };\r\n Size.prototype.equals = function (obj) {\r\n return this.width === obj.width && this.height === obj.height;\r\n };\r\n Size.prototype.clone = function () {\r\n return new Size(this.width, this.height);\r\n };\r\n Size.prototype.copyFrom = function (obj) {\r\n this.width = obj.width;\r\n this.height = obj.height;\r\n };\r\n Size.prototype.applyConverter = function (conv) {\r\n this.width = conv(this.width);\r\n this.height = conv(this.height);\r\n return this;\r\n };\r\n Size.equals = function (a, b) {\r\n return a.width === b.width && a.height === b.height;\r\n };\r\n return Size;\r\n}());\r\nexports.Size = Size;\r\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectUtils = exports.GeometryUtils = exports.Utils = exports.EventDispatcher = exports.Range = void 0;\r\n__webpack_require__(174);\r\nvar size_1 = __webpack_require__(2);\r\nvar point_1 = __webpack_require__(1);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar search_1 = __webpack_require__(40);\r\nvar Range = /** @class */ (function () {\r\n function Range(from, to) {\r\n this.from = from;\r\n this.to = to !== undefined ? to : from;\r\n }\r\n Object.defineProperty(Range.prototype, \"length\", {\r\n get: function () {\r\n return Math.abs(this.to - this.from);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Range.prototype.extend = function (range) {\r\n this.from = Math.min(range.from, this.from);\r\n this.to = Math.max(range.to, this.to);\r\n };\r\n Range.prototype.includes = function (value) {\r\n return value >= this.from && value <= this.to;\r\n };\r\n Range.fromLength = function (from, length) {\r\n return new Range(from, from + length);\r\n };\r\n return Range;\r\n}());\r\nexports.Range = Range;\r\nvar EventDispatcher = /** @class */ (function () {\r\n function EventDispatcher() {\r\n this.listeners = [];\r\n }\r\n EventDispatcher.prototype.add = function (listener) {\r\n if (!listener)\r\n throw new Error(\"Not Implemented\");\r\n if (!this.hasEventListener(listener))\r\n this.listeners.push(listener);\r\n };\r\n EventDispatcher.prototype.remove = function (listener) {\r\n for (var i = 0, currentListener = void 0; currentListener = this.listeners[i]; i++)\r\n if (currentListener === listener) {\r\n this.listeners.splice(i, 1);\r\n break;\r\n }\r\n };\r\n EventDispatcher.prototype.raise = function (funcName) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n for (var i = 0, listener = void 0; listener = this.listeners[i]; i++) {\r\n var func = listener[funcName];\r\n func && func.apply(listener, args);\r\n }\r\n };\r\n EventDispatcher.prototype.raise1 = function (action) {\r\n for (var i = 0, listener = void 0; listener = this.listeners[i]; i++)\r\n action(listener);\r\n };\r\n EventDispatcher.prototype.hasEventListener = function (listener) {\r\n for (var i = 0, l = this.listeners.length; i < l; i++)\r\n if (this.listeners[i] === listener)\r\n return true;\r\n return false;\r\n };\r\n return EventDispatcher;\r\n}());\r\nexports.EventDispatcher = EventDispatcher;\r\nvar Utils = /** @class */ (function () {\r\n function Utils() {\r\n }\r\n Utils.flatten = function (arr) {\r\n return [].concat.apply([], arr);\r\n };\r\n return Utils;\r\n}());\r\nexports.Utils = Utils;\r\nvar GeometryUtils = /** @class */ (function () {\r\n function GeometryUtils() {\r\n }\r\n GeometryUtils.getCommonRectangle = function (rects) {\r\n if (!rects.length)\r\n return new rectangle_1.Rectangle(0, 0, 0, 0);\r\n var minX = Number.MAX_VALUE;\r\n var maxX = -Number.MAX_VALUE;\r\n var minY = Number.MAX_VALUE;\r\n var maxY = -Number.MAX_VALUE;\r\n rects.forEach(function (rect) {\r\n minX = Math.min(minX, rect.x);\r\n maxX = Math.max(maxX, rect.right);\r\n minY = Math.min(minY, rect.y);\r\n maxY = Math.max(maxY, rect.bottom);\r\n });\r\n return new rectangle_1.Rectangle(minX, minY, maxX - minX, maxY - minY);\r\n };\r\n GeometryUtils.findFreeSpace = function (rects, size, exact, targetRect) {\r\n var xs = [targetRect ? targetRect.x : 0];\r\n var ys = [targetRect ? targetRect.y : 0];\r\n rects.forEach(function (r) {\r\n xs.push(r.x);\r\n xs.push(r.right);\r\n ys.push(r.y);\r\n ys.push(r.bottom);\r\n });\r\n xs = xs.sort(function (a, b) { return a - b; }).reduce(function (acc, v, index) { return (xs[index - 1] !== v && acc.push(v) && acc) || acc; }, []); // magic for distinct\r\n ys = ys.sort(function (a, b) { return a - b; }).reduce(function (acc, v, index) { return (ys[index - 1] !== v && acc.push(v) && acc) || acc; }, []);\r\n var matrix = ys.map(function (y) { return xs.map(function (x, i) { return xs[i + 1] - x; }); });\r\n var _loop_1 = function (i, rect) {\r\n var xi0 = search_1.SearchUtils.binaryIndexOf(xs, function (a) { return a - rect.x; });\r\n var xi1 = search_1.SearchUtils.binaryIndexOf(xs, function (a) { return a - rect.right; });\r\n var yi0 = search_1.SearchUtils.binaryIndexOf(ys, function (a) { return a - rect.y; });\r\n var yi1 = search_1.SearchUtils.binaryIndexOf(ys, function (a) { return a - rect.bottom; });\r\n for (var y = yi0; y < yi1; y++)\r\n for (var x = xi0; x < xi1; x++)\r\n matrix[y][x] *= -1;\r\n };\r\n for (var i = 0, rect = void 0; rect = rects[i]; i++) {\r\n _loop_1(i, rect);\r\n }\r\n for (var yi = 0; yi < ys.length; yi++)\r\n for (var xi = 0; xi < xs.length - 1; xi++) {\r\n var checkResult = this.checkRect(matrix, ys, xs, yi, xi, size, exact);\r\n if (checkResult > 0)\r\n xi = checkResult;\r\n else if (checkResult === 0)\r\n return new point_1.Point(xs[xi], ys[yi]);\r\n }\r\n return null;\r\n };\r\n // wtf\r\n GeometryUtils.checkRect = function (matrix, ys, xs, yimin, ximin, size, exact) {\r\n var height = 0;\r\n var width = 0;\r\n var ximax = xs.length - 2;\r\n for (var yi = yimin; yi < ys.length; yi++) {\r\n height = ys[yi + 1] - ys[yimin];\r\n for (var xi = ximin; xi <= ximax; xi++) {\r\n if (matrix[yi][xi] < 0)\r\n return xi === 0 ? -1 : xi; // move left?\r\n width = xs[xi + 1] - xs[ximin];\r\n if (size.width <= width || (!exact && xi === xs.length - 2 && size.width / 2 <= width)) {\r\n if (size.height <= height || (!exact && yi === ys.length - 2 && size.height / 2 <= height))\r\n return 0;\r\n ximax = xi;\r\n }\r\n }\r\n }\r\n };\r\n GeometryUtils.getArrowPoints = function (point, directionPoint, arrowHeight, arrowWidth) {\r\n if (point.x === directionPoint.x && point.y === directionPoint.y)\r\n return { point1: point.clone(), point2: point.clone(), point3: point.clone() };\r\n var catX = directionPoint.x - point.x;\r\n var catY = directionPoint.y - point.y;\r\n var hypotenuse = Math.sqrt(Math.pow(catX, 2) + Math.pow(catY, 2));\r\n var cos = catX / hypotenuse;\r\n var sin = catY / hypotenuse;\r\n var x1 = point.x + arrowHeight * cos + arrowWidth * sin;\r\n var y1 = point.y + arrowHeight * sin - arrowWidth * cos;\r\n var x2 = point.x + arrowHeight * cos - arrowWidth * sin;\r\n var y2 = point.y + arrowHeight * sin + arrowWidth * cos;\r\n var x3 = point.x + arrowHeight * cos;\r\n var y3 = point.y + arrowHeight * sin;\r\n return { point1: new point_1.Point(x1, y1), point2: new point_1.Point(x2, y2), point3: new point_1.Point(x3, y3) };\r\n };\r\n GeometryUtils.removeUnnecessaryLinePoints = function (points, removeCallback, checkCallback) {\r\n if (checkCallback === void 0) { checkCallback = (function (pt) { return pt !== undefined; }); }\r\n this.removeDuplicatedPoints(points, removeCallback, checkCallback);\r\n this.removeOneLinePoints(points, removeCallback, checkCallback);\r\n this.removeBackwardPoints(points, removeCallback, checkCallback);\r\n };\r\n GeometryUtils.removeBackwardPoints = function (points, removeCallback, checkCallback) {\r\n if (checkCallback === void 0) { checkCallback = (function (pt) { return pt !== undefined; }); }\r\n var index = 0;\r\n var point;\r\n while (point = points[index]) {\r\n if (points.length <= 2)\r\n break;\r\n var nextPoint = this.getNextPoint(points, index, true, checkCallback);\r\n var prevPoint = this.getNextPoint(points, index, false, checkCallback);\r\n if (prevPoint && nextPoint) {\r\n if (point.x === prevPoint.x && point.x === nextPoint.x)\r\n if ((point.y > prevPoint.y && point.y > nextPoint.y) ||\r\n (point.y < prevPoint.y && point.y < nextPoint.y))\r\n if (removeCallback(points[index], index))\r\n continue;\r\n if (point.y === prevPoint.y && point.y === nextPoint.y)\r\n if ((point.x > prevPoint.x && point.x > nextPoint.x) ||\r\n (point.x < prevPoint.x && point.x < nextPoint.x))\r\n if (removeCallback(points[index], index))\r\n continue;\r\n }\r\n index++;\r\n }\r\n };\r\n GeometryUtils.removeOneLinePoints = function (points, removeCallback, checkCallback) {\r\n if (checkCallback === void 0) { checkCallback = (function (pt) { return pt !== undefined; }); }\r\n var index = 0;\r\n var point;\r\n while (point = points[index]) {\r\n if (points.length <= 2)\r\n break;\r\n var nextPoint = this.getNextPoint(points, index, true, checkCallback);\r\n var prevPoint = this.getNextPoint(points, index, false, checkCallback);\r\n if (prevPoint && nextPoint) {\r\n if ((point.x === prevPoint.x && point.x === nextPoint.x) ||\r\n (point.y === prevPoint.y && point.y === nextPoint.y))\r\n if (removeCallback(points[index], index))\r\n continue;\r\n var tg = (nextPoint.y - prevPoint.y) / (nextPoint.x - prevPoint.x);\r\n if (nextPoint.y - points[index].y === (nextPoint.x - points[index].x) * tg)\r\n if (removeCallback(points[index], index))\r\n continue;\r\n }\r\n index++;\r\n }\r\n };\r\n GeometryUtils.removeDuplicatedPoints = function (points, removeCallback, checkCallback) {\r\n if (checkCallback === void 0) { checkCallback = (function (pt) { return pt !== undefined; }); }\r\n var index = 0;\r\n var point;\r\n while (point = points[index]) {\r\n if (points.length <= 2)\r\n break;\r\n var nextPoint = this.getNextPoint(points, index, true, checkCallback);\r\n if (nextPoint)\r\n if (point.x === nextPoint.x && point.y === nextPoint.y) {\r\n var indexToRemove = index + 1;\r\n if (indexToRemove === points.length - 1)\r\n indexToRemove--;\r\n if (removeCallback(points[indexToRemove], indexToRemove))\r\n continue;\r\n }\r\n index++;\r\n }\r\n };\r\n GeometryUtils.getNextPoint = function (points, index, direction, checkCallback) {\r\n var result;\r\n var newIndex = index + (direction ? 1 : -1);\r\n while (result = points[newIndex]) {\r\n if (checkCallback(result))\r\n return result;\r\n newIndex = newIndex + (direction ? 1 : -1);\r\n }\r\n };\r\n GeometryUtils.getDistance = function (a, b) {\r\n return Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2));\r\n };\r\n GeometryUtils.getPathLength = function (points) {\r\n var length = 0;\r\n var prevPt;\r\n points.forEach(function (pt) {\r\n if (prevPt !== undefined) {\r\n var lineLength = GeometryUtils.getDistance(pt, prevPt);\r\n length += lineLength;\r\n }\r\n prevPt = pt;\r\n });\r\n return length;\r\n };\r\n GeometryUtils.getPathPointByPosition = function (points, relativePosition) {\r\n if (!points.length)\r\n throw new Error(\"Invalid points\");\r\n if (0 > relativePosition || relativePosition > 1)\r\n throw new Error(\"Invalid relative position\");\r\n var length = this.getPathLength(points);\r\n if (points.length <= 2 && length === 0 || relativePosition === 0)\r\n return [points[0], 0];\r\n var targetLength = length * relativePosition;\r\n var currentLength = 0;\r\n for (var i = 1; i < points.length; i++) {\r\n var lineLength = GeometryUtils.getDistance(points[i], points[i - 1]);\r\n if (currentLength + lineLength >= targetLength) {\r\n var delta = targetLength - currentLength;\r\n var cos = (points[i].x - points[i - 1].x) / lineLength;\r\n var sin = (points[i].y - points[i - 1].y) / lineLength;\r\n return [new point_1.Point(points[i - 1].x + cos * delta, points[i - 1].y + sin * delta), i];\r\n }\r\n currentLength += lineLength;\r\n }\r\n return [points[points.length - 1], points.length - 1];\r\n };\r\n GeometryUtils.getLineAngle = function (beginPoint, endPoint) {\r\n return Math.atan2(endPoint.y - beginPoint.y, endPoint.x - beginPoint.x);\r\n };\r\n GeometryUtils.getTriangleBeginAngle = function (beginPoint, endPoint, point) {\r\n var lineAngle = this.getLineAngle(beginPoint, endPoint);\r\n var beginPointAngle = this.getLineAngle(beginPoint, point);\r\n return Math.abs(beginPointAngle - lineAngle);\r\n };\r\n GeometryUtils.getTriangleEndAngle = function (beginPoint, endPoint, point) {\r\n var lineAngle = this.getLineAngle(beginPoint, endPoint);\r\n var endPointAngle = this.getLineAngle(point, endPoint);\r\n return Math.abs(lineAngle - endPointAngle);\r\n };\r\n GeometryUtils.getPathPointByPoint = function (points, point) {\r\n if (!points.length)\r\n throw new Error(\"Invalid points\");\r\n if (points.length === 1)\r\n return points[0];\r\n var distance = Number.MAX_VALUE;\r\n var result;\r\n for (var i = 1; i < points.length; i++) {\r\n var beginPoint = points[i - 1];\r\n var endPoint = points[i];\r\n if (point.equals(beginPoint)) {\r\n result = beginPoint.clone();\r\n break;\r\n }\r\n if (point.equals(endPoint)) {\r\n result = endPoint.clone();\r\n break;\r\n }\r\n var beginAngle = this.getTriangleBeginAngle(beginPoint, endPoint, point);\r\n var endAngle = this.getTriangleEndAngle(beginPoint, endPoint, point);\r\n var beginDistance = GeometryUtils.getDistance(point, beginPoint);\r\n var endDistance = GeometryUtils.getDistance(point, endPoint);\r\n var orthOffset = beginDistance * Math.sin(beginAngle);\r\n var currentDistance = void 0;\r\n if (Math.PI / 2 <= beginAngle && beginAngle <= Math.PI * 3 / 2)\r\n currentDistance = beginDistance;\r\n else if (Math.PI / 2 <= endAngle && endAngle <= Math.PI * 3 / 2)\r\n currentDistance = endDistance;\r\n else\r\n currentDistance = Math.abs(orthOffset);\r\n if (currentDistance < distance) {\r\n distance = currentDistance;\r\n if (Math.PI / 2 <= beginAngle && beginAngle <= Math.PI * 3 / 2)\r\n result = beginPoint.clone();\r\n else if (Math.PI / 2 <= endAngle && endAngle <= Math.PI * 3 / 2)\r\n result = endPoint.clone();\r\n else {\r\n var round = Math.fround || Math.round;\r\n var lineAngle = this.getLineAngle(beginPoint, endPoint);\r\n var offsetX = round(Math.abs(orthOffset * Math.sin(lineAngle)));\r\n var offsetY = round(Math.abs(orthOffset * Math.cos(lineAngle)));\r\n var isAbove = point.y - beginPoint.y < round((point.x - beginPoint.x) * Math.tan(lineAngle));\r\n if (0 <= lineAngle && lineAngle <= Math.PI / 2) {\r\n offsetX *= isAbove ? -1 : 1;\r\n offsetY *= isAbove ? 1 : -1;\r\n }\r\n else if (Math.PI / 2 <= lineAngle && lineAngle <= Math.PI) {\r\n offsetX *= isAbove ? 1 : -1;\r\n offsetY *= isAbove ? 1 : -1;\r\n }\r\n else if (0 >= lineAngle && lineAngle >= -Math.PI / 2) {\r\n offsetX *= isAbove ? 1 : -1;\r\n offsetY *= isAbove ? 1 : -1;\r\n }\r\n else if (-Math.PI / 2 >= lineAngle && lineAngle >= -Math.PI) {\r\n offsetX *= isAbove ? -1 : 1;\r\n offsetY *= isAbove ? 1 : -1;\r\n }\r\n result = point.clone().offset(offsetX, offsetY);\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n GeometryUtils.getPathPositionByPoint = function (points, point, maxPositionCount) {\r\n if (maxPositionCount === void 0) { maxPositionCount = 100; }\r\n point = this.getPathPointByPoint(points, point);\r\n var length = this.getPathLength(points);\r\n var currentLength = 0;\r\n for (var i = 1; i < points.length; i++) {\r\n var beginPoint = points[i - 1];\r\n var endPoint = points[i];\r\n var lineLength = GeometryUtils.getDistance(endPoint, beginPoint);\r\n var angle = Math.atan((endPoint.y - beginPoint.y) / (endPoint.x - beginPoint.x));\r\n var round = Math.fround || Math.round;\r\n if ((point.x === endPoint.x && point.x === beginPoint.x) || (point.y === endPoint.y && point.y === beginPoint.y) ||\r\n round(point.y - beginPoint.y) === round((point.x - beginPoint.x) * Math.tan(angle))) {\r\n if (Math.sin(angle) !== 0)\r\n currentLength += Math.abs((point.y - beginPoint.y) / Math.sin(angle));\r\n else\r\n currentLength += Math.abs(point.x - beginPoint.x);\r\n return Math.round(currentLength * maxPositionCount / length) / maxPositionCount;\r\n }\r\n currentLength += lineLength;\r\n }\r\n return 1;\r\n };\r\n GeometryUtils.arePointsEqual = function (points1, points2) {\r\n var count1 = points1.length;\r\n var count2 = points2.length;\r\n if (count1 !== count2)\r\n return false;\r\n for (var i = 0; i < count1; i++)\r\n if (!points1[i].equals(points2[i]))\r\n return false;\r\n return true;\r\n };\r\n GeometryUtils.getMaxRectangleEnscribedInEllipse = function (ellipseSize) {\r\n var dx = ellipseSize.width * Math.sqrt(2) / 2;\r\n var dy = ellipseSize.height * Math.sqrt(2) / 2;\r\n return new size_1.Size(dx, dy);\r\n };\r\n GeometryUtils.getEllipseByEnscribedRectangle = function (rectSize) {\r\n return new size_1.Size(2 * rectSize.width / Math.sqrt(2), 2 * rectSize.height / Math.sqrt(2));\r\n };\r\n return GeometryUtils;\r\n}());\r\nexports.GeometryUtils = GeometryUtils;\r\nvar ObjectUtils = /** @class */ (function () {\r\n function ObjectUtils() {\r\n }\r\n ObjectUtils.cloneObject = function (source) {\r\n return source && Object.assign({}, source);\r\n };\r\n ObjectUtils.compareObjects = function (obj1, obj2) {\r\n if (obj1 === obj2)\r\n return true;\r\n if (typeof obj1 === \"object\" && typeof obj2 === \"object\")\r\n return this.isDeepEqual(obj1, obj2);\r\n return false;\r\n };\r\n ObjectUtils.isDeepEqual = function (obj1, obj2) {\r\n var props1 = obj1 ? Object.getOwnPropertyNames(obj1) : [];\r\n var props2 = obj2 ? Object.getOwnPropertyNames(obj2) : [];\r\n if (props1.length !== props2.length)\r\n return false;\r\n for (var i = 0; i < props1.length; i++) {\r\n var property = props1[i];\r\n switch (typeof obj1[property]) {\r\n case \"object\": {\r\n if (!this.isDeepEqual(obj1[property], obj2[property]))\r\n return false;\r\n break;\r\n }\r\n case \"number\": {\r\n if (!isNaN(obj1[property]) || !isNaN(obj2[property]))\r\n if (obj1[property] !== obj2[property])\r\n return false;\r\n break;\r\n }\r\n default: {\r\n if (obj1[property] !== obj2[property])\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return ObjectUtils;\r\n}());\r\nexports.ObjectUtils = ObjectUtils;\r\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PathPrimitiveClosePathCommand = exports.PathPrimitiveArcToCommand = exports.PathPrimitiveQuadraticCurveToCommand = exports.PathPrimitiveCubicCurveToCommand = exports.PathPrimitiveLineToCommand = exports.PathPrimitiveMoveToCommand = exports.PathPrimitiveCommand = exports.PathPrimitive = void 0;\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar Primitive_1 = __webpack_require__(24);\r\nvar PrimitiveObject_1 = __webpack_require__(110);\r\nvar PathPrimitive = /** @class */ (function (_super) {\r\n __extends(PathPrimitive, _super);\r\n function PathPrimitive(commands, style, className, clipPathId, onApplyProperties) {\r\n var _this = _super.call(this, style, className, clipPathId, onApplyProperties) || this;\r\n _this.commands = commands.map(function (command) {\r\n command.style = style;\r\n return command;\r\n });\r\n return _this;\r\n }\r\n PathPrimitive.prototype.createMainElement = function () {\r\n return document.createElementNS(RenderHelper_1.svgNS, \"path\");\r\n };\r\n PathPrimitive.prototype.applyElementProperties = function (element, measurer) {\r\n element.setAttribute(\"d\", this.commands.map(function (c) { return c.toString(); }).join(\" \"));\r\n this.setPositionCorrectionAttribute(element);\r\n _super.prototype.applyElementProperties.call(this, element, measurer);\r\n };\r\n return PathPrimitive;\r\n}(Primitive_1.SvgPrimitive));\r\nexports.PathPrimitive = PathPrimitive;\r\nvar PathPrimitiveCommand = /** @class */ (function (_super) {\r\n __extends(PathPrimitiveCommand, _super);\r\n function PathPrimitiveCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return PathPrimitiveCommand;\r\n}(PrimitiveObject_1.PrimitiveObject));\r\nexports.PathPrimitiveCommand = PathPrimitiveCommand;\r\nvar PathPrimitiveMoveToCommand = /** @class */ (function (_super) {\r\n __extends(PathPrimitiveMoveToCommand, _super);\r\n function PathPrimitiveMoveToCommand(x, y) {\r\n var _this = _super.call(this) || this;\r\n _this.x = x;\r\n _this.y = y;\r\n return _this;\r\n }\r\n PathPrimitiveMoveToCommand.prototype.toString = function () {\r\n return \"M \" + this.getUnitVaue(this.x) + \" \" + this.getUnitVaue(this.y);\r\n };\r\n PathPrimitiveMoveToCommand.fromPoint = function (point) {\r\n return new PathPrimitiveMoveToCommand(point.x, point.y);\r\n };\r\n return PathPrimitiveMoveToCommand;\r\n}(PathPrimitiveCommand));\r\nexports.PathPrimitiveMoveToCommand = PathPrimitiveMoveToCommand;\r\nvar PathPrimitiveLineToCommand = /** @class */ (function (_super) {\r\n __extends(PathPrimitiveLineToCommand, _super);\r\n function PathPrimitiveLineToCommand(x, y) {\r\n var _this = _super.call(this) || this;\r\n _this.x = x;\r\n _this.y = y;\r\n return _this;\r\n }\r\n PathPrimitiveLineToCommand.prototype.toString = function () {\r\n return \"L \" + this.getUnitVaue(this.x) + \" \" + this.getUnitVaue(this.y);\r\n };\r\n PathPrimitiveLineToCommand.fromPoint = function (point) {\r\n return new PathPrimitiveLineToCommand(point.x, point.y);\r\n };\r\n return PathPrimitiveLineToCommand;\r\n}(PathPrimitiveCommand));\r\nexports.PathPrimitiveLineToCommand = PathPrimitiveLineToCommand;\r\nvar PathPrimitiveCubicCurveToCommand = /** @class */ (function (_super) {\r\n __extends(PathPrimitiveCubicCurveToCommand, _super);\r\n function PathPrimitiveCubicCurveToCommand(x1, y1, x2, y2, x3, y3) {\r\n var _this = _super.call(this) || this;\r\n _this.x1 = x1;\r\n _this.y1 = y1;\r\n _this.x2 = x2;\r\n _this.y2 = y2;\r\n _this.x3 = x3;\r\n _this.y3 = y3;\r\n return _this;\r\n }\r\n PathPrimitiveCubicCurveToCommand.prototype.toString = function () {\r\n return \"C \" + this.getUnitVaue(this.x1) + \" \" + this.getUnitVaue(this.y1) + \",\" +\r\n this.getUnitVaue(this.x2) + \" \" + this.getUnitVaue(this.y2) + \",\" +\r\n this.getUnitVaue(this.x3) + \" \" + this.getUnitVaue(this.y3);\r\n };\r\n return PathPrimitiveCubicCurveToCommand;\r\n}(PathPrimitiveCommand));\r\nexports.PathPrimitiveCubicCurveToCommand = PathPrimitiveCubicCurveToCommand;\r\nvar PathPrimitiveQuadraticCurveToCommand = /** @class */ (function (_super) {\r\n __extends(PathPrimitiveQuadraticCurveToCommand, _super);\r\n function PathPrimitiveQuadraticCurveToCommand(x1, y1, x2, y2) {\r\n var _this = _super.call(this) || this;\r\n _this.x1 = x1;\r\n _this.y1 = y1;\r\n _this.x2 = x2;\r\n _this.y2 = y2;\r\n return _this;\r\n }\r\n PathPrimitiveQuadraticCurveToCommand.prototype.toString = function () {\r\n return \"Q \" + this.getUnitVaue(this.x1) + \" \" + this.getUnitVaue(this.y1) + \",\" +\r\n this.getUnitVaue(this.x2) + \" \" + this.getUnitVaue(this.y2);\r\n };\r\n return PathPrimitiveQuadraticCurveToCommand;\r\n}(PathPrimitiveCommand));\r\nexports.PathPrimitiveQuadraticCurveToCommand = PathPrimitiveQuadraticCurveToCommand;\r\nvar PathPrimitiveArcToCommand = /** @class */ (function (_super) {\r\n __extends(PathPrimitiveArcToCommand, _super);\r\n function PathPrimitiveArcToCommand(rx, ry, xAxisRotation, largeArcFlag, sweepFag, x, y) {\r\n var _this = _super.call(this) || this;\r\n _this.rx = rx;\r\n _this.ry = ry;\r\n _this.xAxisRotation = xAxisRotation;\r\n _this.largeArcFlag = largeArcFlag;\r\n _this.sweepFag = sweepFag;\r\n _this.x = x;\r\n _this.y = y;\r\n return _this;\r\n }\r\n PathPrimitiveArcToCommand.prototype.toString = function () {\r\n return \"A \" + this.getUnitVaue(this.rx) + \" \" + this.getUnitVaue(this.ry) + \" \" +\r\n this.getUnitVaue(this.xAxisRotation) + \" \" +\r\n (this.largeArcFlag ? \"1\" : \"0\") + \" \" + (this.sweepFag ? \"1\" : \"0\") +\r\n this.getUnitVaue(this.x) + \",\" + this.getUnitVaue(this.y);\r\n };\r\n return PathPrimitiveArcToCommand;\r\n}(PathPrimitiveCommand));\r\nexports.PathPrimitiveArcToCommand = PathPrimitiveArcToCommand;\r\nvar PathPrimitiveClosePathCommand = /** @class */ (function (_super) {\r\n __extends(PathPrimitiveClosePathCommand, _super);\r\n function PathPrimitiveClosePathCommand() {\r\n return _super.call(this) || this;\r\n }\r\n PathPrimitiveClosePathCommand.prototype.toString = function () {\r\n return \"z\";\r\n };\r\n return PathPrimitiveClosePathCommand;\r\n}(PathPrimitiveCommand));\r\nexports.PathPrimitiveClosePathCommand = PathPrimitiveClosePathCommand;\r\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelUtils = void 0;\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar point_1 = __webpack_require__(1);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar size_1 = __webpack_require__(2);\r\nvar vector_1 = __webpack_require__(56);\r\nvar math_1 = __webpack_require__(33);\r\nvar Enums_1 = __webpack_require__(46);\r\nvar AddConnectionHistoryItem_1 = __webpack_require__(47);\r\nvar AddConnectorHistoryItem_1 = __webpack_require__(63);\r\nvar AddConnectorPointHistoryItem_1 = __webpack_require__(188);\r\nvar AddShapeHistoryItem_1 = __webpack_require__(51);\r\nvar ChangeShapeParametersHistoryItem_1 = __webpack_require__(114);\r\nvar DeleteConnectionHistoryItem_1 = __webpack_require__(64);\r\nvar DeleteConnectorHistoryItem_1 = __webpack_require__(115);\r\nvar DeleteConnectorPointHistoryItem_1 = __webpack_require__(189);\r\nvar DeleteShapeHistoryItem_1 = __webpack_require__(116);\r\nvar InsertToContainerHistoryItem_1 = __webpack_require__(190);\r\nvar MoveConnectorPointHistoryItem_1 = __webpack_require__(191);\r\nvar MoveShapeHistoryItem_1 = __webpack_require__(192);\r\nvar RemoveFromContainerHistoryItem_1 = __webpack_require__(193);\r\nvar ResizeShapeHistoryItem_1 = __webpack_require__(117);\r\nvar SetSelectionHistoryItem_1 = __webpack_require__(65);\r\nvar ModelResizeHistoryItem_1 = __webpack_require__(194);\r\nvar UpdatePositionsOnPageResizeHistoryItem_1 = __webpack_require__(195);\r\nvar ChangeConnectorPropertyHistoryItem_1 = __webpack_require__(88);\r\nvar ChangeConnectorTextHistoryItem_1 = __webpack_require__(66);\r\nvar ChangeLockedHistoryItem_1 = __webpack_require__(118);\r\nvar ChangeStyleHistoryItem_1 = __webpack_require__(89);\r\nvar ChangeStyleTextHistoryItem_1 = __webpack_require__(67);\r\nvar Graph_1 = __webpack_require__(68);\r\nvar GraphInfo_1 = __webpack_require__(196);\r\nvar Structures_1 = __webpack_require__(37);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar ConnectorProperties_1 = __webpack_require__(31);\r\nvar ConnectorRenderPoint_1 = __webpack_require__(28);\r\nvar ConnectorRenderPointsContext_1 = __webpack_require__(86);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar ModelUtils = /** @class */ (function () {\r\n function ModelUtils() {\r\n }\r\n ModelUtils.setShapePosition = function (history, model, shape, newPosition) {\r\n if (!shape.position.equals(newPosition))\r\n history.addAndRedo(new MoveShapeHistoryItem_1.MoveShapeHistoryItem(shape.key, newPosition));\r\n };\r\n ModelUtils.setShapeSize = function (history, model, shape, newPosition, newSize) {\r\n if (!shape.size.equals(newSize) || !shape.position.equals(newPosition))\r\n history.addAndRedo(new ResizeShapeHistoryItem_1.ResizeShapeHistoryItem(shape.key, newPosition, newSize));\r\n };\r\n ModelUtils.addConnectorPoint = function (history, connectorKey, pointIndex, position) {\r\n history.addAndRedo(new AddConnectorPointHistoryItem_1.AddConnectorPointHistoryItem(connectorKey, pointIndex, position));\r\n };\r\n ModelUtils.deleteConnectorPoint = function (history, connectorKey, index) {\r\n history.addAndRedo(new DeleteConnectorPointHistoryItem_1.DeleteConnectorPointHistoryItem(connectorKey, index));\r\n };\r\n ModelUtils.deleteConnectorPoints = function (history, connector) {\r\n while (connector.points.length > 2)\r\n this.deleteConnectorPoint(history, connector.key, 1);\r\n };\r\n ModelUtils.deleteConnectorUnnecessaryPoints = function (history, connector, validateRenderPoints) {\r\n if (validateRenderPoints === void 0) { validateRenderPoints = false; }\r\n var unnecessaryPoints = this.createUnnecessaryPoints(connector.points, connector.skippedRenderPoints);\r\n if (Object.keys(unnecessaryPoints).length > 0)\r\n history.addAndRedo(new DeleteConnectorPointHistoryItem_1.DeleteConnectorUnnecessaryPointsHistoryItem(connector.key, unnecessaryPoints, validateRenderPoints));\r\n };\r\n ModelUtils.createUnnecessaryPoints = function (points, skippedRenderPoints, predicate) {\r\n if (predicate === void 0) { predicate = function (_) { return true; }; }\r\n var result = {};\r\n var clonePoints = points.map(function (p) { return p.clone(); });\r\n Utils_1.GeometryUtils.removeUnnecessaryLinePoints(clonePoints, function (cp) {\r\n if (predicate(cp)) {\r\n var index = ModelUtils.findFirstPointIndex(points, function (p) { return p.equals(cp); });\r\n clonePoints.splice(index, 1);\r\n if (result[index] === undefined)\r\n result[index] = cp;\r\n if (index > 0 && result[index - 1] === undefined && cp.equals(points[index - 1]))\r\n result[index - 1] = cp;\r\n if (index < points.length - 1 && result[index + 1] === undefined && cp.equals(points[index + 1]))\r\n result[index + 1] = cp;\r\n return true;\r\n }\r\n });\r\n if (!skippedRenderPoints)\r\n return result;\r\n skippedRenderPoints.forEach(function (p) {\r\n if (predicate(p)) {\r\n var pointIndex = p.pointIndex;\r\n if (pointIndex >= 0 && result[pointIndex] === undefined)\r\n result[pointIndex] = new point_1.Point(p.x, p.y);\r\n }\r\n });\r\n return result;\r\n };\r\n ModelUtils.createNecessaryPoints = function (points, unnecessaryPoints) {\r\n var _this = this;\r\n var result = [];\r\n var lastPointIndex = points.length - 1;\r\n points.forEach(function (p, index) {\r\n if (index === 0 || index === lastPointIndex || _this.isNecessaryPoint(p, index, unnecessaryPoints))\r\n result.push(p.clone());\r\n });\r\n return result;\r\n };\r\n ModelUtils.createNecessaryRenderPoints = function (points, unnecessaryPoints) {\r\n var _this = this;\r\n var result = [];\r\n var lastPointIndex = points.length - 1;\r\n points.forEach(function (p, index) {\r\n if (index === 0 || index === lastPointIndex || _this.isNecessaryPoint(p, p.pointIndex, unnecessaryPoints))\r\n result.push(p.clone());\r\n });\r\n return result;\r\n };\r\n ModelUtils.isNecessaryPoint = function (point, pointIndex, unnecessaryPoints) {\r\n return unnecessaryPoints[pointIndex] === undefined && !Object.keys(unnecessaryPoints).some(function (key) { return point.equals(unnecessaryPoints[key]); });\r\n };\r\n ModelUtils.validateRenderPointIndexes = function (points, renderPoints, startIndex) {\r\n var _this = this;\r\n var result = renderPoints.map(function (rp, i) { return new ConnectorRenderPoint_1.ConnectorRenderPoint(rp.x, rp.y, i >= startIndex && rp.pointIndex >= 0 ? _this.findFirstPointIndex(points, function (p) { return p.equals(rp); }) : rp.pointIndex, rp.skipped); });\r\n result[0].skipped = false;\r\n result[result.length - 1].skipped = false;\r\n return result;\r\n };\r\n ModelUtils.findFirstPointIndex = function (points, predicate) {\r\n if (!points || !predicate)\r\n return -1;\r\n for (var i = 0; i < points.length; i++)\r\n if (predicate(points[i]))\r\n return i;\r\n return -1;\r\n };\r\n ModelUtils.moveConnectorPoint = function (history, connector, pointIndex, newPosition) {\r\n if (!connector.points[pointIndex].equals(newPosition))\r\n history.addAndRedo(new MoveConnectorPointHistoryItem_1.MoveConnectorPointHistoryItem(connector.key, pointIndex, newPosition));\r\n };\r\n ModelUtils.updateConnectorAttachedPoints = function (history, model, connector) {\r\n history.beginTransaction();\r\n var beginContainer = connector.beginItem && model.findItemCollapsedContainer(connector.beginItem);\r\n var beginAttachedToContainer = beginContainer && (!connector.endItem || !model.isContainerItem(beginContainer, connector.endItem));\r\n var endContainer = connector.endItem && model.findItemCollapsedContainer(connector.endItem);\r\n var endAttachedToContainer = endContainer && (!connector.beginItem || !model.isContainerItem(endContainer, connector.beginItem));\r\n if (beginAttachedToContainer)\r\n this.updateConnectorBeginPoint(history, connector, beginContainer, (endAttachedToContainer && endContainer) || connector.endItem, function (index) { return beginContainer.getConnectionPointIndexForItem(connector.beginItem, index); });\r\n else\r\n this.updateConnectorBeginPoint(history, connector, connector.beginItem, (endAttachedToContainer && endContainer) || connector.endItem);\r\n if (endAttachedToContainer)\r\n this.updateConnectorEndPoint(history, connector, endContainer, function (index) { return endContainer.getConnectionPointIndexForItem(connector.beginItem, index); });\r\n else\r\n this.updateConnectorEndPoint(history, connector, connector.endItem);\r\n history.endTransaction();\r\n };\r\n ModelUtils.updateConnectorBeginPoint = function (history, connector, beginItem, endItem, getConnectionPointIndex) {\r\n if (beginItem) {\r\n var connectionPointIndex = getConnectionPointIndex !== undefined ?\r\n getConnectionPointIndex(connector.beginConnectionPointIndex) : connector.beginConnectionPointIndex;\r\n var targetPoint = connector.points[1];\r\n if (endItem && connector.points.length === 2)\r\n if (connector.endConnectionPointIndex !== -1)\r\n targetPoint = endItem.getConnectionPointPosition(connector.endConnectionPointIndex, point_1.Point.zero());\r\n else\r\n targetPoint = endItem.rectangle.center;\r\n var newPoint = beginItem.getConnectionPointPosition(connectionPointIndex, targetPoint);\r\n this.moveConnectorPoint(history, connector, 0, newPoint.clone());\r\n }\r\n };\r\n ModelUtils.updateConnectorEndPoint = function (history, connector, endItem, getConnectionPointIndex) {\r\n if (endItem) {\r\n var connectionPointIndex = getConnectionPointIndex !== undefined ?\r\n getConnectionPointIndex(connector.endConnectionPointIndex) : connector.endConnectionPointIndex;\r\n var newPoint = endItem.getConnectionPointPosition(connectionPointIndex, connector.points[connector.points.length - 2]);\r\n this.moveConnectorPoint(history, connector, connector.points.length - 1, newPoint);\r\n }\r\n };\r\n ModelUtils.updateContainerConnectorsAttachedPoints = function (history, model, rootContainer, container) {\r\n var _this = this;\r\n if (container === void 0) { container = rootContainer; }\r\n history.beginTransaction();\r\n var children = model.getChildren(container);\r\n children.forEach(function (child) {\r\n if (child instanceof Shape_1.Shape) {\r\n child.attachedConnectors.forEach(function (connector) {\r\n var beginItemInContainer = connector.beginItem && model.isContainerItem(container, connector.beginItem);\r\n var endItemInContainer = connector.endItem && model.isContainerItem(container, connector.endItem);\r\n if (beginItemInContainer && !endItemInContainer) {\r\n var collapsedContainer = model.findItemTopCollapsedContainer(connector.beginItem);\r\n var endCollapsedContainer = connector.endItem && model.findItemTopCollapsedContainer(connector.endItem);\r\n if (!collapsedContainer)\r\n _this.updateConnectorBeginPoint(history, connector, connector.beginItem, endCollapsedContainer || connector.endItem);\r\n else\r\n _this.updateConnectorBeginPoint(history, connector, collapsedContainer, endCollapsedContainer || connector.endItem, function (index) { return rootContainer.getConnectionPointIndexForItem(connector.beginItem, index); });\r\n }\r\n if (endItemInContainer && !beginItemInContainer) {\r\n var collapsedContainer = model.findItemTopCollapsedContainer(connector.endItem);\r\n if (!collapsedContainer)\r\n _this.updateConnectorEndPoint(history, connector, connector.endItem);\r\n else\r\n _this.updateConnectorEndPoint(history, connector, collapsedContainer, function (index) { return rootContainer.getConnectionPointIndexForItem(connector.endItem, index); });\r\n }\r\n });\r\n _this.updateContainerConnectorsAttachedPoints(history, model, rootContainer, child);\r\n }\r\n });\r\n history.endTransaction();\r\n };\r\n ModelUtils.getConnectorsWithoutBeginItemInfo = function (model) {\r\n var connectors = model.findConnectorsWithoutBeginItem();\r\n return connectors.map(function (c) {\r\n return {\r\n connector: c,\r\n point: c.points[0].clone()\r\n };\r\n });\r\n };\r\n ModelUtils.getConnectorsWithoutEndItemInfo = function (model) {\r\n var connectors = model.findConnectorsWithoutEndItem();\r\n return connectors.map(function (c) {\r\n return {\r\n connector: c,\r\n point: c.points[c.points.length - 1].clone()\r\n };\r\n });\r\n };\r\n ModelUtils.updateShapeAttachedConnectors = function (history, model, shape) {\r\n var _this = this;\r\n shape.attachedConnectors.forEach(function (connector) {\r\n _this.removeConnectorIntermediatePoints(history, connector);\r\n _this.updateConnectorAttachedPoints(history, model, connector);\r\n });\r\n };\r\n ModelUtils.updateMovingShapeConnections = function (history, shape, beginPointsInfo, endPointsInfo, resetTargetCallback, updateTargetCallback, beforeAttachConnectorCallback) {\r\n var _this = this;\r\n resetTargetCallback();\r\n beginPointsInfo.forEach(function (pi) {\r\n var connectionPointIndex = _this.getMovingShapeConnectionPointIndex(shape, pi.point);\r\n if (shape.rectangle.containsPoint(pi.point) || connectionPointIndex > -1) {\r\n updateTargetCallback(shape, connectionPointIndex);\r\n if (connectionPointIndex !== pi.connector.beginConnectionPointIndex && pi.connector.beginItem)\r\n history.addAndRedo(new DeleteConnectionHistoryItem_1.DeleteConnectionHistoryItem(pi.connector, Connector_1.ConnectorPosition.Begin));\r\n beforeAttachConnectorCallback(pi.connector);\r\n history.addAndRedo(new AddConnectionHistoryItem_1.AddConnectionHistoryItem(pi.connector, shape, connectionPointIndex, Connector_1.ConnectorPosition.Begin));\r\n }\r\n else if (pi.connector.beginItem) {\r\n history.addAndRedo(new DeleteConnectionHistoryItem_1.DeleteConnectionHistoryItem(pi.connector, Connector_1.ConnectorPosition.Begin));\r\n history.addAndRedo(new MoveConnectorPointHistoryItem_1.MoveConnectorPointHistoryItem(pi.connector.key, 0, pi.point));\r\n }\r\n });\r\n endPointsInfo.forEach(function (pi) {\r\n var connectionPointIndex = _this.getMovingShapeConnectionPointIndex(shape, pi.point);\r\n if (shape.rectangle.containsPoint(pi.point) || connectionPointIndex > -1) {\r\n updateTargetCallback(shape, connectionPointIndex);\r\n if (connectionPointIndex !== pi.connector.endConnectionPointIndex && pi.connector.endItem)\r\n history.addAndRedo(new DeleteConnectionHistoryItem_1.DeleteConnectionHistoryItem(pi.connector, Connector_1.ConnectorPosition.End));\r\n beforeAttachConnectorCallback(pi.connector);\r\n history.addAndRedo(new AddConnectionHistoryItem_1.AddConnectionHistoryItem(pi.connector, shape, connectionPointIndex, Connector_1.ConnectorPosition.End));\r\n }\r\n else if (pi.connector.endItem) {\r\n history.addAndRedo(new DeleteConnectionHistoryItem_1.DeleteConnectionHistoryItem(pi.connector, Connector_1.ConnectorPosition.End));\r\n history.addAndRedo(new MoveConnectorPointHistoryItem_1.MoveConnectorPointHistoryItem(pi.connector.key, pi.connector.points.length - 1, pi.point));\r\n }\r\n });\r\n };\r\n ModelUtils.getMovingShapeConnectionPointIndex = function (shape, point) {\r\n var _this = this;\r\n var connectionPointIndex = -1;\r\n shape.getConnectionPoints().forEach(function (pt, index) {\r\n if (Utils_1.GeometryUtils.getDistance(point, pt) < _this.connectionPointActionSize)\r\n connectionPointIndex = index;\r\n });\r\n return connectionPointIndex;\r\n };\r\n ModelUtils.shouldRemoveConnectorIntermediatePoints = function (connector) {\r\n return connector.properties.lineOption === ConnectorProperties_1.ConnectorLineOption.Orthogonal && connector.points.length > 2 &&\r\n (this.isShapeIntersectConnectorPointsLine(connector.beginItem, connector) ||\r\n this.isShapeIntersectConnectorPointsLine(connector.endItem, connector));\r\n };\r\n ModelUtils.removeConnectorIntermediatePoints = function (history, connector) {\r\n if (this.shouldRemoveConnectorIntermediatePoints(connector)) {\r\n history.beginTransaction();\r\n this.deleteConnectorPoints(history, connector);\r\n history.endTransaction();\r\n }\r\n };\r\n ModelUtils.isShapeIntersectConnectorPointsLine = function (shape, connector) {\r\n if (!shape)\r\n return false;\r\n var offset = Connector_1.Connector.minOffset - unit_converter_1.UnitConverter.pixelsToTwips(1);\r\n var rect = shape.rectangle.clone().inflate(offset, offset);\r\n var prevPt;\r\n for (var i = 1; i < connector.points.length - 1; i++) {\r\n if (prevPt !== undefined) {\r\n if (prevPt.x === connector.points[i].x)\r\n if (rect.x <= prevPt.x && prevPt.x <= rect.right)\r\n return true;\r\n if (prevPt.y === connector.points[i].y)\r\n if (rect.y <= prevPt.y && prevPt.y <= rect.bottom)\r\n return true;\r\n }\r\n prevPt = connector.points[i];\r\n }\r\n return false;\r\n };\r\n ModelUtils.getSnappedPos = function (model, gridSize, pos, isHorizontal) {\r\n var snapOffset = isHorizontal ? model.snapStartPoint.x : model.snapStartPoint.y;\r\n return Math.round((pos - snapOffset) / gridSize) * gridSize + snapOffset;\r\n };\r\n ModelUtils.tryUpdateModelRectangle = function (history, processPoints) {\r\n var offset = history.modelManipulator.getModelSizeUpdateOffset();\r\n if (!offset.isEmpty()) {\r\n history.addAndRedo(new ModelResizeHistoryItem_1.ModelResizeHistoryItem(offset));\r\n if (offset.left || offset.top) {\r\n history.addAndRedo(new UpdatePositionsOnPageResizeHistoryItem_1.UpdatePositionsOnPageResizeHistoryItem(new vector_1.Vector(offset.left, offset.top)));\r\n if (processPoints !== undefined)\r\n processPoints(offset.left, offset.top);\r\n }\r\n history.modelManipulator.raiseModelRectangleChanged(history.modelManipulator.model.getRectangle(true));\r\n }\r\n };\r\n ModelUtils.deleteItems = function (history, model, selection, items, deleteLocked) {\r\n history.beginTransaction();\r\n var itemsHash = {};\r\n items.forEach(function (item) { return itemsHash[item.key] = item; });\r\n var selectionKeys = selection.getKeys().filter(function (key) { return !itemsHash[key]; });\r\n history.addAndRedo(new SetSelectionHistoryItem_1.SetSelectionHistoryItem(selection, selectionKeys));\r\n this.deleteItemsCore(history, model, items, deleteLocked);\r\n this.tryUpdateModelRectangle(history);\r\n history.endTransaction();\r\n };\r\n ModelUtils.deleteItemsCore = function (history, model, items, deleteLocked) {\r\n var _this = this;\r\n items.sort(function (a, b) {\r\n var v1 = (a instanceof Connector_1.Connector) ? 0 : 1;\r\n var v2 = (b instanceof Connector_1.Connector) ? 0 : 1;\r\n return v1 - v2;\r\n });\r\n items.forEach(function (item) {\r\n if (item.container)\r\n _this.removeFromContainer(history, model, item);\r\n if (item instanceof Shape_1.Shape) {\r\n var children = model.getChildren(item);\r\n if (children.length) {\r\n children.forEach(function (child) {\r\n history.addAndRedo(new RemoveFromContainerHistoryItem_1.RemoveFromContainerHistoryItem(child));\r\n _this.updateAttachedConnectorsContainer(history, model, child);\r\n });\r\n _this.deleteItemsCore(history, model, children.filter(function (child) { return !child.locked || deleteLocked; }), deleteLocked);\r\n }\r\n if (model.findItem(item.key))\r\n _this.deleteShape(history, item);\r\n }\r\n if (item instanceof Connector_1.Connector)\r\n if (model.findItem(item.key))\r\n _this.deleteConnector(history, item);\r\n });\r\n };\r\n ModelUtils.detachConnectors = function (history, shape) {\r\n history.beginTransaction();\r\n while (shape.attachedConnectors.length > 0) {\r\n var connector = shape.attachedConnectors[0];\r\n history.addAndRedo(new DeleteConnectionHistoryItem_1.DeleteConnectionHistoryItem(connector, connector.beginItem === shape ? Connector_1.ConnectorPosition.Begin : Connector_1.ConnectorPosition.End));\r\n }\r\n history.endTransaction();\r\n };\r\n ModelUtils.deleteShape = function (history, shape) {\r\n var allowed = history.modelManipulator.permissionsProvider.canDeleteItems([shape]);\r\n history.beginTransaction();\r\n this.detachConnectors(history, shape);\r\n history.addAndRedo(new DeleteShapeHistoryItem_1.DeleteShapeHistoryItem(shape.key, allowed));\r\n history.endTransaction();\r\n };\r\n ModelUtils.deleteConnector = function (history, connector) {\r\n history.beginTransaction();\r\n if (connector.beginItem)\r\n history.addAndRedo(new DeleteConnectionHistoryItem_1.DeleteConnectionHistoryItem(connector, Connector_1.ConnectorPosition.Begin));\r\n if (connector.endItem)\r\n history.addAndRedo(new DeleteConnectionHistoryItem_1.DeleteConnectionHistoryItem(connector, Connector_1.ConnectorPosition.End));\r\n history.addAndRedo(new DeleteConnectorHistoryItem_1.DeleteConnectorHistoryItem(connector.key));\r\n history.endTransaction();\r\n };\r\n ModelUtils.deleteAllItems = function (history, model, selection) {\r\n this.deleteItems(history, model, selection, model.items.slice(), true);\r\n };\r\n ModelUtils.deleteSelection = function (history, model, selection) {\r\n this.deleteItems(history, model, selection, selection.getSelectedItems());\r\n };\r\n ModelUtils.changeSelectionLocked = function (history, model, selection, locked) {\r\n history.beginTransaction();\r\n var items = selection.getSelectedItems(true);\r\n items.forEach(function (item) {\r\n history.addAndRedo(new ChangeLockedHistoryItem_1.ChangeLockedHistoryItem(item, locked));\r\n });\r\n ModelUtils.updateSelection(history, selection);\r\n history.endTransaction();\r\n };\r\n ModelUtils.copyStylesToItem = function (history, model, fromItem, newItemKey) {\r\n var toItem = model.findItem(newItemKey);\r\n fromItem.styleText.forEach(function (propertyName) {\r\n if (fromItem.styleText[propertyName] !== toItem.styleText[propertyName])\r\n history.addAndRedo(new ChangeStyleTextHistoryItem_1.ChangeStyleTextHistoryItem(newItemKey, propertyName, fromItem.styleText[propertyName]));\r\n });\r\n fromItem.style.forEach(function (propertyName) {\r\n if (fromItem.style[propertyName] !== toItem.style[propertyName])\r\n history.addAndRedo(new ChangeStyleHistoryItem_1.ChangeStyleHistoryItem(newItemKey, propertyName, fromItem.style[propertyName]));\r\n });\r\n };\r\n // Selection\r\n ModelUtils.updateSelection = function (history, selection) {\r\n history.addAndRedo(new SetSelectionHistoryItem_1.SetSelectionHistoryItem(selection, selection.getKeys(), true));\r\n };\r\n // Cloning\r\n ModelUtils.cloneShapeToOffset = function (history, model, shape, dx, dy) {\r\n history.beginTransaction();\r\n var newPosition = shape.position.clone().offset(dx, dy);\r\n var addHistoryItem = new AddShapeHistoryItem_1.AddShapeHistoryItem(shape.description, newPosition, shape.text);\r\n history.addAndRedo(addHistoryItem);\r\n var newKey = addHistoryItem.shapeKey;\r\n history.addAndRedo(new ResizeShapeHistoryItem_1.ResizeShapeHistoryItem(newKey, newPosition, shape.size.clone()));\r\n history.addAndRedo(new ChangeShapeParametersHistoryItem_1.ChangeShapeParametersHistoryItem(newKey, shape.parameters.clone()));\r\n this.copyStylesToItem(history, model, shape, newKey);\r\n history.endTransaction();\r\n return newKey;\r\n };\r\n ModelUtils.applyOffsetToConnectorRenderPointsContext = function (context, dx, dy) {\r\n return context && context.renderPoints ? new ConnectorRenderPointsContext_1.ConnectorRenderPointsContext(context.renderPoints.map(function (p) { return p.clone().offset(dx, dy); }), true, context.actualRoutingMode) : undefined;\r\n };\r\n ModelUtils.cloneConnectorToOffset = function (history, model, connector, beginItemKey, endItemKey, dx, dy) {\r\n history.beginTransaction();\r\n var newPoints = connector.points.map(function (p) { return p.clone().offset(dx, dy); });\r\n var addHistoryItem = new AddConnectorHistoryItem_1.AddConnectorHistoryItem(newPoints, undefined, this.applyOffsetToConnectorRenderPointsContext(connector.createRenderPointsContext(), dx, dy));\r\n history.addAndRedo(addHistoryItem);\r\n var newKey = addHistoryItem.connectorKey;\r\n var newConnector = model.findConnector(newKey);\r\n connector.properties.forEach(function (propertyName) {\r\n if (connector.properties[propertyName] !== newConnector.properties[propertyName])\r\n history.addAndRedo(new ChangeConnectorPropertyHistoryItem_1.ChangeConnectorPropertyHistoryItem(newKey, propertyName, connector.properties[propertyName]));\r\n });\r\n if (beginItemKey) {\r\n var from = model.findShape(beginItemKey);\r\n history.addAndRedo(new AddConnectionHistoryItem_1.AddConnectionHistoryItem(newConnector, from, connector.beginConnectionPointIndex, Connector_1.ConnectorPosition.Begin));\r\n }\r\n if (endItemKey) {\r\n var to = model.findShape(endItemKey);\r\n history.addAndRedo(new AddConnectionHistoryItem_1.AddConnectionHistoryItem(newConnector, to, connector.endConnectionPointIndex, Connector_1.ConnectorPosition.End));\r\n }\r\n var newTexts = connector.texts.clone();\r\n newTexts.forEach(function (connectorText) {\r\n history.addAndRedo(new ChangeConnectorTextHistoryItem_1.ChangeConnectorTextHistoryItem(newConnector, connectorText.position, connectorText.value));\r\n });\r\n this.copyStylesToItem(history, model, connector, newKey);\r\n history.endTransaction();\r\n return newKey;\r\n };\r\n ModelUtils.cloneSelectionToOffset = function (history, model, onItemAdded, selection, dx, dy) {\r\n var _this = this;\r\n history.beginTransaction();\r\n var newShapes = {};\r\n var ids = [];\r\n selection.getSelectedShapes().forEach(function (shape) {\r\n var newKey = _this.cloneShapeToOffset(history, model, shape, dx, dy);\r\n newShapes[shape.key] = newKey;\r\n ids.push(newKey);\r\n if (onItemAdded)\r\n onItemAdded(newKey);\r\n });\r\n selection.getSelectedConnectors().forEach(function (connector) {\r\n var beginItemKey = connector.beginItem ? newShapes[connector.beginItem.key] : null;\r\n var endItemKey = connector.endItem ? newShapes[connector.endItem.key] : null;\r\n var newKey = _this.cloneConnectorToOffset(history, model, connector, beginItemKey, endItemKey, dx, dy);\r\n ids.push(newKey);\r\n if (onItemAdded)\r\n onItemAdded(newKey);\r\n });\r\n history.addAndRedo(new SetSelectionHistoryItem_1.SetSelectionHistoryItem(selection, ids));\r\n ModelUtils.tryUpdateModelRectangle(history);\r\n history.endTransaction();\r\n };\r\n // Containers\r\n ModelUtils.findContainerByEventKey = function (model, selection, key) {\r\n var container = model.findContainer(key);\r\n if (container && !container.isLocked)\r\n return container;\r\n else {\r\n var shape = model.findShape(key);\r\n if (shape && shape.container && !selection.hasKey(shape.key))\r\n return ModelUtils.findContainerByEventKey(model, selection, shape.container.key);\r\n }\r\n };\r\n ModelUtils.canInsertToContainer = function (model, item, container) {\r\n if (item === container)\r\n return false;\r\n if (item instanceof Shape_1.Shape)\r\n if (model.findChild(item, container.key))\r\n return false;\r\n return true;\r\n };\r\n ModelUtils.canInsertSelectionToContainer = function (model, selection, container) {\r\n var result = true;\r\n selection.getSelectedItems().forEach(function (item) {\r\n if (item === container) {\r\n result = false;\r\n return;\r\n }\r\n if (item instanceof Shape_1.Shape)\r\n if (model.findChild(item, container.key)) {\r\n result = false;\r\n return;\r\n }\r\n });\r\n return result;\r\n };\r\n ModelUtils.insertToContainer = function (history, model, item, container) {\r\n if (!container.enableChildren)\r\n throw Error(\"Inpossible to add children to non-container shape.\");\r\n if (!this.canInsertToContainer(model, item, container))\r\n return;\r\n var oldContainer = item.container;\r\n if (oldContainer !== container) {\r\n history.beginTransaction();\r\n if (oldContainer)\r\n history.addAndRedo(new RemoveFromContainerHistoryItem_1.RemoveFromContainerHistoryItem(item));\r\n history.addAndRedo(new InsertToContainerHistoryItem_1.InsertToContainerHistoryItem(item, container));\r\n this.updateAttachedConnectorsContainer(history, model, item);\r\n history.endTransaction();\r\n }\r\n };\r\n ModelUtils.removeFromContainer = function (history, model, item) {\r\n if (item.container) {\r\n history.beginTransaction();\r\n history.addAndRedo(new RemoveFromContainerHistoryItem_1.RemoveFromContainerHistoryItem(item));\r\n this.updateAttachedConnectorsContainer(history, model, item);\r\n history.endTransaction();\r\n }\r\n };\r\n ModelUtils.insertSelectionToContainer = function (history, model, selection, container) {\r\n var _this = this;\r\n history.beginTransaction();\r\n var selectedItems = selection.getSelectedItems();\r\n var items = selectedItems.filter(function (item) { return !item.container || selectedItems.indexOf(item.container) === -1; });\r\n items.forEach(function (item) {\r\n _this.insertToContainer(history, model, item, container);\r\n });\r\n history.endTransaction();\r\n };\r\n ModelUtils.removeSelectionFromContainer = function (history, model, selection) {\r\n var _this = this;\r\n history.beginTransaction();\r\n selection.getSelectedItems().forEach(function (item) {\r\n if (item.container && !selection.hasKey(item.container.key)) {\r\n history.addAndRedo(new RemoveFromContainerHistoryItem_1.RemoveFromContainerHistoryItem(item));\r\n _this.updateAttachedConnectorsContainer(history, model, item);\r\n }\r\n });\r\n history.endTransaction();\r\n };\r\n ModelUtils.getConnectorContainer = function (connector) {\r\n if (connector.beginItem && connector.endItem && connector.beginItem.container === connector.endItem.container)\r\n return connector.beginItem.container;\r\n };\r\n ModelUtils.updateAttachedConnectorsContainer = function (history, model, item) {\r\n var _this = this;\r\n history.beginTransaction();\r\n item.attachedConnectors.forEach(function (connector) {\r\n _this.updateConnectorContainer(history, model, connector);\r\n });\r\n history.endTransaction();\r\n };\r\n ModelUtils.updateConnectorContainer = function (history, model, connector) {\r\n var container = this.getConnectorContainer(connector);\r\n if (container)\r\n history.addAndRedo(new InsertToContainerHistoryItem_1.InsertToContainerHistoryItem(connector, container));\r\n else if (connector.container)\r\n history.addAndRedo(new RemoveFromContainerHistoryItem_1.RemoveFromContainerHistoryItem(connector));\r\n };\r\n ModelUtils.updateNewShapeProperties = function (history, selection, itemKey) {\r\n var style = selection.inputPosition.getDefaultStyle();\r\n style.forEach(function (propertyName) {\r\n history.addAndRedo(new ChangeStyleHistoryItem_1.ChangeStyleHistoryItem(itemKey, propertyName, selection.inputPosition.getDefaultStylePropertyValue(propertyName)));\r\n });\r\n var textStyle = selection.inputPosition.getDefaultTextStyle();\r\n textStyle.forEach(function (propertyName) {\r\n history.addAndRedo(new ChangeStyleTextHistoryItem_1.ChangeStyleTextHistoryItem(itemKey, propertyName, selection.inputPosition.getDefaultTextStylePropertyValue(propertyName)));\r\n });\r\n };\r\n ModelUtils.updateNewConnectorProperties = function (history, selection, itemKey) {\r\n var connectorProperties = selection.inputPosition.getDefaultConnectorProperties();\r\n connectorProperties.forEach(function (propertyName) {\r\n history.addAndRedo(new ChangeConnectorPropertyHistoryItem_1.ChangeConnectorPropertyHistoryItem(itemKey, propertyName, selection.inputPosition.getDefaultConnectorPropertyValue(propertyName)));\r\n });\r\n var style = selection.inputPosition.getDefaultStyle();\r\n style.forEach(function (propertyName) {\r\n history.addAndRedo(new ChangeStyleHistoryItem_1.ChangeStyleHistoryItem(itemKey, propertyName, selection.inputPosition.getDefaultStylePropertyValue(propertyName)));\r\n });\r\n var textStyle = selection.inputPosition.getDefaultTextStyle();\r\n textStyle.forEach(function (propertyName) {\r\n history.addAndRedo(new ChangeStyleTextHistoryItem_1.ChangeStyleTextHistoryItem(itemKey, propertyName, selection.inputPosition.getDefaultTextStylePropertyValue(propertyName)));\r\n });\r\n };\r\n // Layout\r\n ModelUtils.applyLayout = function (history, model, container, graph, layout, nonGraphItems, settings, snapToGrid, gridSize, skipPointIndices) {\r\n history.beginTransaction();\r\n var occupiedRectangles = this.getOccupiedRectangles(nonGraphItems, container);\r\n layout = this.offsetLayoutToFreeSpace(layout, container && container.clientRectangle, occupiedRectangles, settings.containerPadding);\r\n if (snapToGrid)\r\n this.adjustLayoutToSnapGrid(model, layout, gridSize);\r\n if (container)\r\n this.resizeContainerOnLayout(history, model, layout, container, settings.containerPadding);\r\n this.applyLayoutToNodes(history, model, layout, graph.edges.map(function (e) { return model.findConnector(e.key); }));\r\n this.applyLayoutToConnectors(history, model, layout, graph.edges.map(function (e) { return model.findConnector(e.key); }), skipPointIndices);\r\n history.endTransaction();\r\n return layout.getRectangle(true);\r\n };\r\n ModelUtils.getNonGraphItems = function (model, container, nodeKeyMap, shapes, connectors) {\r\n var allItems = container ? model.getChildren(container) : model.items.filter(function (item) { return !item.container; });\r\n return allItems.filter(function (item) {\r\n if (item instanceof Connector_1.Connector)\r\n return (!item.beginItem || !nodeKeyMap[item.beginItem.key]) && (!item.endItem || !nodeKeyMap[item.endItem.key]) &&\r\n connectors.indexOf(item) === -1;\r\n if (item instanceof Shape_1.Shape)\r\n return !nodeKeyMap[item.key] &&\r\n shapes.indexOf(item) === -1;\r\n });\r\n };\r\n ModelUtils.getOccupiedRectangles = function (nonGraphItems, container) {\r\n var occupiedRectangles = nonGraphItems.map(function (i) { return i.rectangle; });\r\n if (container && occupiedRectangles.length) {\r\n var rect = container.clientRectangle;\r\n occupiedRectangles.push(new rectangle_1.Rectangle(rect.right, rect.y, 1, 1));\r\n occupiedRectangles.push(new rectangle_1.Rectangle(rect.right, rect.bottom, 1, 1));\r\n }\r\n return occupiedRectangles;\r\n };\r\n ModelUtils.offsetLayoutToFreeSpace = function (layout, containerRect, occupiedRectangles, spacing) {\r\n var graphItemRect = layout.getRectangle(true);\r\n var freePoint = Utils_1.GeometryUtils.findFreeSpace(occupiedRectangles, graphItemRect.createSize().offset(spacing, spacing).nonNegativeSize(), false, containerRect);\r\n if (freePoint) {\r\n var x = freePoint.x + spacing;\r\n var y = freePoint.y + spacing;\r\n return layout.offsetNodes(x, y);\r\n }\r\n var maxX = occupiedRectangles && occupiedRectangles.length ?\r\n occupiedRectangles.reduce(function (max, rect) { return rect.right > max ? rect.right : max; }, 0) :\r\n (containerRect ? containerRect.x : 0);\r\n var minY = containerRect ? containerRect.y : Math.max(0, graphItemRect.y);\r\n return layout.offsetNodes(maxX + spacing, minY + spacing);\r\n };\r\n ModelUtils.resizeContainerOnLayout = function (history, model, layout, container, spacing) {\r\n var layoutRect = layout.getRectangle(true);\r\n var nonLayoutRectangles = container.children\r\n .filter(function (item) {\r\n if (item instanceof Shape_1.Shape)\r\n return layout.nodeKeys.indexOf(item.key) === -1;\r\n if (item instanceof Connector_1.Connector && item.beginItem && item.endItem)\r\n return layout.nodeKeys.indexOf(item.beginItem.key) === -1 && layout.nodeKeys.indexOf(item.endItem.key) === -1;\r\n return false;\r\n })\r\n .map(function (item) { return item.rectangle; });\r\n var right = nonLayoutRectangles.map(function (rect) { return rect.right; }).reduce(function (prev, cur) { return Math.max(prev, cur); }, layoutRect.right);\r\n var bottom = nonLayoutRectangles.map(function (rect) { return rect.bottom; }).reduce(function (prev, cur) { return Math.max(prev, cur); }, layoutRect.bottom);\r\n var width = container.rectangle.width + right + spacing - container.rectangle.right;\r\n var height = container.rectangle.height + bottom + spacing - container.rectangle.bottom;\r\n ModelUtils.setShapeSize(history, model, container, container.position, new size_1.Size(width, height));\r\n ModelUtils.updateShapeAttachedConnectors(history, model, container);\r\n };\r\n ModelUtils.applyLayoutToNodes = function (history, model, layout, connectors) {\r\n var _this = this;\r\n var connectorsSet = connectors.reduce(function (acc, c) { return acc[c.key] = true && acc; }, {});\r\n layout.forEachNode(function (nl, nk) {\r\n var shape = model.findShape(nk);\r\n _this.applyLayoutToNode(history, model, shape, nl.position, connectorsSet);\r\n });\r\n };\r\n ModelUtils.applyLayoutToNode = function (history, model, shape, position, connectorsSet) {\r\n var _this = this;\r\n var delta = position.clone().offset(-shape.position.x, -shape.position.y);\r\n ModelUtils.setShapePosition(history, model, shape, position);\r\n if (delta.x !== 0 || delta.y !== 0) {\r\n shape.attachedConnectors\r\n .filter(function (c) { return !connectorsSet[c.key]; })\r\n .forEach(function (connector) {\r\n _this.updateConnectorAttachedPoints(history, model, connector);\r\n var beginPointIndex = connector.beginItem ? 1 : 0;\r\n var endPointIndex = connector.endItem ? (connector.points.length - 2) : (connector.points.length - 1);\r\n for (var i = beginPointIndex; i <= endPointIndex; i++)\r\n _this.moveConnectorPoint(history, connector, i, connector.points[i].offset(delta.x, delta.y));\r\n });\r\n model.getChildren(shape).forEach(function (child) {\r\n if (child instanceof Shape_1.Shape) {\r\n var childPosition = child.position.clone().offset(delta.x, delta.y);\r\n _this.applyLayoutToNode(history, model, child, childPosition, connectorsSet);\r\n }\r\n });\r\n }\r\n };\r\n ModelUtils.applyLayoutToConnectors = function (history, model, layout, connectors, skipPointIndices) {\r\n var _this = this;\r\n connectors.filter(function (c) { return c.beginItem || c.endItem; }).forEach(function (connector) {\r\n var edgeLayout = layout.edgeToPosition[connector.key];\r\n if (connector.beginItem && connector.endItem && !skipPointIndices && edgeLayout) {\r\n var beginIndex = connector.beginItem.getConnectionPointIndexForSide(edgeLayout.beginIndex);\r\n if (beginIndex !== connector.beginConnectionPointIndex)\r\n history.addAndRedo(new AddConnectionHistoryItem_1.SetConnectionPointIndexHistoryItem(connector, beginIndex, Connector_1.ConnectorPosition.Begin));\r\n var endIndex = connector.endItem.getConnectionPointIndexForSide(edgeLayout.endIndex);\r\n if (endIndex !== connector.endConnectionPointIndex)\r\n history.addAndRedo(new AddConnectionHistoryItem_1.SetConnectionPointIndexHistoryItem(connector, endIndex, Connector_1.ConnectorPosition.End));\r\n }\r\n _this.updateConnectorAttachedPoints(history, model, connector);\r\n if (edgeLayout)\r\n _this.deleteConnectorPoints(history, connector);\r\n });\r\n };\r\n ModelUtils.adjustLayoutToSnapGrid = function (model, layout, gridSize) {\r\n var _this = this;\r\n layout.nodeKeys.forEach(function (key) {\r\n layout.nodeToLayout[key].position.x = _this.getSnappedPos(model, gridSize, layout.nodeToLayout[key].position.x, true);\r\n layout.nodeToLayout[key].position.y = _this.getSnappedPos(model, gridSize, layout.nodeToLayout[key].position.y, false);\r\n });\r\n };\r\n ModelUtils.getGraphInfoByItems = function (model, shapes, connectors, isDatabinding) {\r\n if (isDatabinding === void 0) { isDatabinding = true; }\r\n var itemsByContainerKey = {};\r\n var items = [].concat(shapes).concat(connectors);\r\n items.forEach(function (item) {\r\n var containerKey = item.container && item.container.key;\r\n if (!itemsByContainerKey[containerKey])\r\n itemsByContainerKey[containerKey] = [];\r\n itemsByContainerKey[containerKey].push(item);\r\n });\r\n var result = [];\r\n for (var key in itemsByContainerKey) {\r\n if (!Object.prototype.hasOwnProperty.call(itemsByContainerKey, key))\r\n continue;\r\n var container = key && model.findContainer(key);\r\n if (!container || (container.expanded && !model.findItemCollapsedContainer(container))) {\r\n var containerKey = container && container.key;\r\n var graph = this.getGraphByItems(model, itemsByContainerKey[key], containerKey, !isDatabinding);\r\n var allowCreateInfo = false;\r\n if (graph.nodes.length > 1)\r\n allowCreateInfo = true;\r\n else if (graph.nodes.length)\r\n if (isDatabinding)\r\n allowCreateInfo = true;\r\n else if (container && itemsByContainerKey[container.container && container.container.key])\r\n allowCreateInfo = true;\r\n if (allowCreateInfo)\r\n result.push(new GraphInfo_1.GraphInfo(container, graph));\r\n }\r\n }\r\n return result.sort(function (a, b) { return b.level - a.level; });\r\n };\r\n ModelUtils.getGraphByItems = function (model, items, containerKey, skipLocked) {\r\n var _this = this;\r\n var graph = new Graph_1.Graph([], []);\r\n var knownIds = {};\r\n items.forEach(function (item) {\r\n _this.extendByConnectedComponents(item, graph, containerKey, knownIds, skipLocked);\r\n });\r\n graph.nodes.sort(function (a, b) { return model.getItemIndex(model.findItem(a)) - model.getItemIndex(model.findItem(b)); });\r\n graph.edges.sort(function (a, b) { return model.getItemIndex(model.findItem(a.key)) - model.getItemIndex(model.findItem(b.key)); });\r\n graph.edges = graph.edges.filter(function (e) { return graph.getNode(e.from) && graph.getNode(e.to); });\r\n return graph;\r\n };\r\n ModelUtils.extendByConnectedComponents = function (item, graph, containerKey, knownIds, skipLocked) {\r\n var _this = this;\r\n if (!item || (skipLocked && item.locked) || knownIds[item.key])\r\n return;\r\n knownIds[item.key] = true;\r\n if (item instanceof Connector_1.Connector && (item.container && item.container.key) === containerKey &&\r\n item.beginItem && (!item.beginItem.locked || !skipLocked) && item.endItem && (!item.endItem.locked || !skipLocked) &&\r\n item.beginItem !== item.endItem) {\r\n graph.addEdge(new Structures_1.Edge(item.key, item.beginItem && item.beginItem.key, item.endItem && item.endItem.key));\r\n this.extendByConnectedComponents(item.beginItem, graph, containerKey, knownIds, skipLocked);\r\n this.extendByConnectedComponents(item.endItem, graph, containerKey, knownIds, skipLocked);\r\n }\r\n else if (item instanceof Shape_1.Shape && (item.container && item.container.key) === containerKey) {\r\n graph.addNode(item);\r\n item.attachedConnectors.forEach(function (c) { return _this.extendByConnectedComponents(c, graph, containerKey, knownIds, skipLocked); });\r\n }\r\n };\r\n // Units\r\n ModelUtils.getlUnitValue = function (units, twipsValue) {\r\n switch (units) {\r\n case Enums_1.DiagramUnit.Cm:\r\n return unit_converter_1.UnitConverter.twipsToCentimeters(twipsValue);\r\n case Enums_1.DiagramUnit.In:\r\n return unit_converter_1.UnitConverter.twipsToInches(twipsValue);\r\n case Enums_1.DiagramUnit.Px:\r\n return unit_converter_1.UnitConverter.twipsToPixels(twipsValue);\r\n }\r\n };\r\n ModelUtils.getUnitText = function (units, unitItems, formatUnit, twipsValue, fractionDigits) {\r\n if (fractionDigits === void 0) { fractionDigits = 2; }\r\n var unitItemText = unitItems[units] ? \" \" + unitItems[units] : \"\";\r\n var unitValue = this.getlUnitValue(units, twipsValue);\r\n switch (units) {\r\n case Enums_1.DiagramUnit.Cm:\r\n return formatUnit(+unitValue.toFixed(fractionDigits)) + unitItemText;\r\n case Enums_1.DiagramUnit.In:\r\n return formatUnit(+unitValue.toFixed(fractionDigits)) + unitItemText;\r\n case Enums_1.DiagramUnit.Px:\r\n return formatUnit(+unitValue.toFixed(0)) + unitItemText;\r\n }\r\n };\r\n ModelUtils.getTwipsValue = function (units, value) {\r\n switch (units) {\r\n case Enums_1.DiagramUnit.Cm:\r\n return unit_converter_1.UnitConverter.centimetersToTwips(value);\r\n case Enums_1.DiagramUnit.In:\r\n return unit_converter_1.UnitConverter.inchesToTwips(value);\r\n case Enums_1.DiagramUnit.Px:\r\n return unit_converter_1.UnitConverter.pixelsToTwips(value);\r\n }\r\n };\r\n ModelUtils.getGuidItemKey = function () {\r\n return math_1.MathUtils.generateGuid();\r\n };\r\n ModelUtils.createSelectedItems = function (selection) {\r\n var result = {};\r\n selection.getSelectedItems(true).forEach(function (i) { return result[i.key] = i; });\r\n return result;\r\n };\r\n ModelUtils.canMoveConnector = function (selectedItems, connector) {\r\n var beginItem = connector.beginItem;\r\n var endItem = connector.endItem;\r\n if (!beginItem && !endItem)\r\n return true;\r\n if (!selectedItems[connector.key])\r\n return false;\r\n if (beginItem === endItem)\r\n return !!selectedItems[beginItem.key];\r\n if (!beginItem)\r\n return !!selectedItems[endItem.key];\r\n if (!endItem)\r\n return !!selectedItems[beginItem.key];\r\n return !!selectedItems[beginItem.key] && !!selectedItems[endItem.key];\r\n };\r\n ModelUtils.createRectangle = function (items) {\r\n return Utils_1.GeometryUtils.getCommonRectangle(items.map(function (i) { return i.rectangle; }));\r\n };\r\n ModelUtils.connectionPointActionSize = unit_converter_1.UnitConverter.pixelsToTwips(8);\r\n return ModelUtils;\r\n}());\r\nexports.ModelUtils = ModelUtils;\r\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CompositionHistoryItem = exports.HistoryItem = void 0;\r\nvar HistoryItem = /** @class */ (function () {\r\n function HistoryItem() {\r\n this.uniqueId = -1;\r\n }\r\n HistoryItem.prototype.changeModified = function () {\r\n return true;\r\n };\r\n HistoryItem.prototype.getName = function () {\r\n return this.constructor.name;\r\n };\r\n return HistoryItem;\r\n}());\r\nexports.HistoryItem = HistoryItem;\r\nvar CompositionHistoryItem = /** @class */ (function (_super) {\r\n __extends(CompositionHistoryItem, _super);\r\n function CompositionHistoryItem() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.historyItems = [];\r\n _this.dataSyncItems = [];\r\n return _this;\r\n }\r\n CompositionHistoryItem.prototype.changeModified = function () {\r\n var item;\r\n for (var i = 0; item = this.historyItems[i]; i++)\r\n if (item.changeModified())\r\n return true;\r\n return false;\r\n };\r\n CompositionHistoryItem.prototype.redo = function (manipulator) {\r\n var item;\r\n for (var i = 0; item = this.historyItems[i]; i++)\r\n item.redo(manipulator);\r\n };\r\n CompositionHistoryItem.prototype.undo = function (manipulator) {\r\n var item;\r\n for (var i = this.dataSyncItems.length - 1; item = this.dataSyncItems[i]; i--)\r\n item.undo(manipulator);\r\n this.dataSyncItems = [];\r\n for (var i = this.historyItems.length - 1; item = this.historyItems[i]; i--)\r\n item.undo(manipulator);\r\n };\r\n CompositionHistoryItem.prototype.add = function (historyItem) {\r\n if (historyItem == null)\r\n throw new Error(\"cannot be null\");\r\n this.historyItems.push(historyItem);\r\n };\r\n return CompositionHistoryItem;\r\n}(HistoryItem));\r\nexports.CompositionHistoryItem = CompositionHistoryItem;\r\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Connector = exports.CONNECTOR_DEFAULT_TEXT_POSITION = exports.ConnectorPosition = void 0;\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar segment_1 = __webpack_require__(34);\r\nvar size_1 = __webpack_require__(2);\r\nvar CanvasManagerBase_1 = __webpack_require__(41);\r\nvar NativeItem_1 = __webpack_require__(85);\r\nvar Event_1 = __webpack_require__(11);\r\nvar ITextMeasurer_1 = __webpack_require__(42);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar TextPrimitive_1 = __webpack_require__(60);\r\nvar Utils_1 = __webpack_require__(18);\r\nvar Settings_1 = __webpack_require__(27);\r\nvar Utils_2 = __webpack_require__(3);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar ConnectorPointsCalculator_1 = __webpack_require__(178);\r\nvar ConnectorPointsOrthogonalCalculator_1 = __webpack_require__(179);\r\nvar ConnectorLineEndingStrategies_1 = __webpack_require__(186);\r\nvar ConnectorProperties_1 = __webpack_require__(31);\r\nvar ConnectorTexts_1 = __webpack_require__(187);\r\nvar ConnectorRenderPointsContext_1 = __webpack_require__(86);\r\nvar ConnectorPosition;\r\n(function (ConnectorPosition) {\r\n ConnectorPosition[ConnectorPosition[\"Begin\"] = 0] = \"Begin\";\r\n ConnectorPosition[ConnectorPosition[\"End\"] = 1] = \"End\";\r\n})(ConnectorPosition = exports.ConnectorPosition || (exports.ConnectorPosition = {}));\r\nexports.CONNECTOR_DEFAULT_TEXT_POSITION = 0.5;\r\nvar Connector = /** @class */ (function (_super) {\r\n __extends(Connector, _super);\r\n function Connector(points) {\r\n var _this = _super.call(this) || this;\r\n _this.beginConnectionPointIndex = -1;\r\n _this.endConnectionPointIndex = -1;\r\n _this.properties = new ConnectorProperties_1.ConnectorProperties();\r\n _this.points = points.map(function (pt) { return pt.clone(); });\r\n if (points.length < 2)\r\n throw Error(\"Points count should be greater than 1\");\r\n _this.texts = new ConnectorTexts_1.ConnectorTexts();\r\n return _this;\r\n }\r\n Object.defineProperty(Connector.prototype, \"rectangle\", {\r\n get: function () {\r\n var points = this.getRenderPoints();\r\n var xarr = points.map(function (p) { return p.x; });\r\n var yarr = points.map(function (p) { return p.y; });\r\n var minX = xarr.reduce(function (prev, cur) { return Math.min(prev, cur); }, Number.MAX_VALUE);\r\n var maxX = xarr.reduce(function (prev, cur) { return Math.max(prev, cur); }, -Number.MAX_VALUE);\r\n var minY = yarr.reduce(function (prev, cur) { return Math.min(prev, cur); }, Number.MAX_VALUE);\r\n var maxY = yarr.reduce(function (prev, cur) { return Math.max(prev, cur); }, -Number.MAX_VALUE);\r\n return new rectangle_1.Rectangle(minX, minY, maxX - minX, maxY - minY);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Connector.prototype, \"skippedRenderPoints\", {\r\n get: function () {\r\n return this.renderPoints ? this.renderPoints.filter(function (p) { return p.skipped; }) : undefined;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Connector.prototype, \"shouldChangeRenderPoints\", {\r\n get: function () {\r\n return this.renderPoints !== undefined && this.routingStrategy !== undefined;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Connector.prototype.assign = function (item) {\r\n _super.prototype.assign.call(this, item);\r\n item.beginItem = this.beginItem;\r\n item.beginConnectionPointIndex = this.beginConnectionPointIndex;\r\n item.endItem = this.endItem;\r\n item.endConnectionPointIndex = this.endConnectionPointIndex;\r\n item.properties = this.properties.clone();\r\n item.texts = this.texts.clone();\r\n if (this.routingStrategy !== undefined)\r\n item.routingStrategy = this.routingStrategy.clone();\r\n if (this.renderPoints !== undefined)\r\n item.renderPoints = this.renderPoints.map(function (p) { return p.clone(); });\r\n if (this.renderPointsWithoutSkipped !== undefined)\r\n item.renderPointsWithoutSkipped = this.renderPointsWithoutSkipped.map(function (p) { return p.clone(); });\r\n if (this.actualRoutingMode !== undefined)\r\n item.actualRoutingMode = this.actualRoutingMode;\r\n if (this.lockCreateRenderPoints !== undefined)\r\n item.lockCreateRenderPoints = this.lockCreateRenderPoints;\r\n if (this.shouldInvalidateRenderPoints !== undefined)\r\n item.shouldInvalidateRenderPoints = this.shouldInvalidateRenderPoints;\r\n };\r\n Connector.prototype.clone = function () {\r\n var clone = new Connector(this.points);\r\n this.assign(clone);\r\n return clone;\r\n };\r\n Connector.prototype.getTextCount = function () {\r\n return this.texts.count();\r\n };\r\n Connector.prototype.getText = function (position) {\r\n if (position === void 0) { position = exports.CONNECTOR_DEFAULT_TEXT_POSITION; }\r\n var textObj = this.texts.get(position);\r\n return textObj ? textObj.value : \"\";\r\n };\r\n Connector.prototype.setText = function (text, position) {\r\n if (position === void 0) { position = exports.CONNECTOR_DEFAULT_TEXT_POSITION; }\r\n if (!text || text === \"\")\r\n this.texts.remove(position);\r\n else\r\n this.texts.set(position, new ConnectorTexts_1.ConnectorText(position, text));\r\n };\r\n Connector.prototype.getTextPoint = function (position) {\r\n var points = this.getRenderPoints();\r\n return Utils_2.GeometryUtils.getPathPointByPosition(points, position)[0];\r\n };\r\n Connector.prototype.getTextPositionByPoint = function (point) {\r\n var points = this.getRenderPoints();\r\n var length = Utils_2.GeometryUtils.getPathLength(points);\r\n var pos = Utils_2.GeometryUtils.getPathPositionByPoint(points, point);\r\n var minTextHeight = unit_converter_1.UnitConverter.pointsToTwips(parseInt(this.styleText[\"font-size\"]));\r\n if (minTextHeight > pos * length)\r\n return minTextHeight / length;\r\n if (minTextHeight > length - pos * length)\r\n return (length - minTextHeight) / length;\r\n return pos;\r\n };\r\n Connector.prototype.getTextRectangle = function (position) {\r\n return rectangle_1.Rectangle.fromGeometry(this.getTextPoint(position), new size_1.Size(0, 0));\r\n };\r\n Connector.prototype.getRenderPoints = function (keepSkipped) {\r\n if (keepSkipped === void 0) { keepSkipped = false; }\r\n if (this.shouldInvalidateRenderPoints === undefined || this.shouldInvalidateRenderPoints) {\r\n this.shouldInvalidateRenderPoints = false;\r\n if (!this.routingStrategy)\r\n this.changeRenderPoints(this.getCalculator().getPoints());\r\n else if (!this.lockCreateRenderPoints) {\r\n this.changeRenderPoints(new ConnectorPointsOrthogonalCalculator_1.ConnectorPointsOrthogonalCalculator(this).getPoints());\r\n if (this.actualRoutingMode !== Settings_1.ConnectorRoutingMode.None && this.points && this.renderPoints) {\r\n var beginPoint = this.points[0];\r\n var endPoint = this.points[this.points.length - 1];\r\n if (!beginPoint.equals(endPoint)) {\r\n var newRenderPoints = this.routingStrategy.createRenderPoints(this.points, this.renderPoints, this.beginItem, this.endItem, this.beginConnectionPointIndex, this.endConnectionPointIndex, ModelUtils_1.ModelUtils.getConnectorContainer(this));\r\n if (newRenderPoints) {\r\n this.changeRenderPoints(newRenderPoints);\r\n this.actualRoutingMode = Settings_1.ConnectorRoutingMode.AllShapesOnly;\r\n }\r\n else\r\n this.actualRoutingMode = Settings_1.ConnectorRoutingMode.None;\r\n }\r\n }\r\n }\r\n }\r\n return keepSkipped ? this.renderPoints : this.renderPointsWithoutSkipped;\r\n };\r\n Connector.prototype.createRenderPointsContext = function () {\r\n return this.shouldChangeRenderPoints ? new ConnectorRenderPointsContext_1.ConnectorRenderPointsContext(this.renderPoints.map(function (p) { return p.clone(); }), this.lockCreateRenderPoints, this.actualRoutingMode) : undefined;\r\n };\r\n Connector.prototype.updatePointsOnPageResize = function (offsetX, offsetY) {\r\n this.points = this.points.map(function (p) { return p.clone().offset(offsetX, offsetY); });\r\n if (this.renderPoints)\r\n this.changeRenderPoints(this.renderPoints.map(function (p) {\r\n var result = p.clone().offset(offsetX, offsetY);\r\n result.pointIndex = p.pointIndex;\r\n result.skipped = p.skipped;\r\n return result;\r\n }));\r\n };\r\n Connector.prototype.addPoint = function (pointIndex, point) {\r\n this.points.splice(pointIndex, 0, point);\r\n };\r\n Connector.prototype.deletePoint = function (pointIndex) {\r\n this.points.splice(pointIndex, 1);\r\n };\r\n Connector.prototype.movePoint = function (pointIndex, point) {\r\n this.points[pointIndex] = point;\r\n };\r\n Connector.prototype.onAddPoint = function (pointIndex, point) {\r\n if (this.shouldChangeRenderPoints)\r\n this.replaceRenderPointsCore(this.routingStrategy.onAddPoint(this.points, pointIndex, point, this.renderPoints), true, Settings_1.ConnectorRoutingMode.AllShapesOnly);\r\n else\r\n this.invalidateRenderPoints();\r\n };\r\n Connector.prototype.onDeletePoint = function (pointIndex) {\r\n if (this.shouldChangeRenderPoints)\r\n this.replaceRenderPointsCore(this.routingStrategy.onDeletePoint(this.points, pointIndex, this.renderPoints), this.points.length > 2, Settings_1.ConnectorRoutingMode.AllShapesOnly);\r\n else\r\n this.invalidateRenderPoints();\r\n };\r\n Connector.prototype.onDeleteUnnecessaryPoints = function (unnecessaryPoints) {\r\n if (this.shouldChangeRenderPoints) {\r\n var necessaryPoints = ModelUtils_1.ModelUtils.createNecessaryRenderPoints(this.renderPoints, unnecessaryPoints);\r\n if (necessaryPoints.length > 0)\r\n this.replaceRenderPointsCore(ModelUtils_1.ModelUtils.validateRenderPointIndexes(this.points, necessaryPoints, 0), this.lockCreateRenderPoints, Settings_1.ConnectorRoutingMode.AllShapesOnly);\r\n }\r\n else\r\n this.invalidateRenderPoints();\r\n };\r\n Connector.prototype.onMovePoint = function (pointIndex, point) {\r\n if (this.shouldChangeRenderPoints) {\r\n if (pointIndex === 0 || pointIndex === this.points.length - 1)\r\n this.lockCreateRenderPoints = false;\r\n this.replaceRenderPointsCore(this.routingStrategy.onMovePoint(this.points, pointIndex, point, this.renderPoints), this.lockCreateRenderPoints, Settings_1.ConnectorRoutingMode.AllShapesOnly);\r\n }\r\n else\r\n this.invalidateRenderPoints();\r\n };\r\n Connector.prototype.replaceRenderPoints = function (context) {\r\n if (context !== undefined)\r\n this.replaceRenderPointsCore(context.renderPoints, context.lockCreateRenderPoints, context.actualRoutingMode);\r\n else\r\n this.invalidateRenderPoints();\r\n };\r\n Connector.prototype.clearRenderPoints = function () {\r\n this.changeRenderPoints(undefined);\r\n this.lockCreateRenderPoints = false;\r\n this.actualRoutingMode = undefined;\r\n this.invalidateRenderPoints();\r\n };\r\n Connector.prototype.replaceRenderPointsCore = function (renderPoints, lockCreateRenderPoints, mode) {\r\n this.changeRenderPoints(renderPoints);\r\n this.lockCreateRenderPoints = lockCreateRenderPoints;\r\n this.actualRoutingMode = mode;\r\n this.invalidateRenderPoints();\r\n };\r\n Connector.prototype.changeRenderPoints = function (renderPoints) {\r\n this.renderPoints = renderPoints;\r\n this.renderPointsWithoutSkipped = renderPoints ? this.renderPoints.filter(function (pt) { return !pt.skipped; }) : undefined;\r\n };\r\n Connector.prototype.getCalculator = function () {\r\n return (this.properties.lineOption === ConnectorProperties_1.ConnectorLineOption.Straight) ?\r\n new ConnectorPointsCalculator_1.ConnectorPointsCalculator(this) :\r\n new ConnectorPointsOrthogonalCalculator_1.ConnectorPointsOrthogonalCalculator(this);\r\n };\r\n Connector.prototype.invalidateRenderPoints = function () {\r\n this.shouldInvalidateRenderPoints = true;\r\n };\r\n Connector.prototype.createPrimitives = function () {\r\n var result = [];\r\n var points = this.getRenderPoints();\r\n var path = new PathPrimitive_1.PathPrimitive(points.map(function (pt, index) {\r\n return index === 0 ? new PathPrimitive_1.PathPrimitiveMoveToCommand(pt.x, pt.y) : new PathPrimitive_1.PathPrimitiveLineToCommand(pt.x, pt.y);\r\n }), this.style);\r\n result.push(path);\r\n result = result.concat(this.createLineEndingPrimitives(points, path));\r\n result = result.concat(this.createTextPrimitives());\r\n return result;\r\n };\r\n Connector.prototype.createLineEndingPrimitives = function (points, connectorPath) {\r\n var result = [];\r\n if (points.length > 1) {\r\n var lineEndingInfo = [\r\n { strategy: this.createLineEndingStrategy(this.properties.startLineEnding), point1: points[0], point2: points[1] },\r\n { strategy: this.createLineEndingStrategy(this.properties.endLineEnding), point1: points[points.length - 1], point2: points[points.length - 2] }\r\n ];\r\n lineEndingInfo.forEach(function (info) {\r\n var strategy = info.strategy;\r\n if (strategy.hasCommands()) {\r\n var lineEndingPath = connectorPath;\r\n if (strategy.needCreateSeparatePrimitive())\r\n result.push(lineEndingPath = strategy.createPrimitive());\r\n lineEndingPath.commands = lineEndingPath.commands.concat(strategy.createCommands(info.point1, info.point2));\r\n }\r\n });\r\n }\r\n return result;\r\n };\r\n Connector.prototype.createLineEndingStrategy = function (lineEnding) {\r\n switch (lineEnding) {\r\n case ConnectorProperties_1.ConnectorLineEnding.None:\r\n return new ConnectorLineEndingStrategies_1.ConnectorLineEndingNoneStrategy(this.style);\r\n case ConnectorProperties_1.ConnectorLineEnding.Arrow:\r\n return new ConnectorLineEndingStrategies_1.ConnectorLineEndingArrowStrategy(this.style);\r\n case ConnectorProperties_1.ConnectorLineEnding.OutlinedTriangle:\r\n return new ConnectorLineEndingStrategies_1.ConnectorLineEndingOutlinedTriangleStrategy(this.style);\r\n case ConnectorProperties_1.ConnectorLineEnding.FilledTriangle:\r\n return new ConnectorLineEndingStrategies_1.ConnectorLineEndingFilledTriangleStrategy(this.style);\r\n default:\r\n return new ConnectorLineEndingStrategies_1.ConnectorLineEndingStrategy(this.style);\r\n }\r\n };\r\n Connector.prototype.createSelectorPrimitives = function () {\r\n var result = [];\r\n var points = this.getRenderPoints();\r\n result.push(new PathPrimitive_1.PathPrimitive(points.map(function (pt, index) {\r\n if (index === 0)\r\n return new PathPrimitive_1.PathPrimitiveMoveToCommand(pt.x, pt.y);\r\n else\r\n return new PathPrimitive_1.PathPrimitiveLineToCommand(pt.x, pt.y);\r\n }), null, \"selector\"));\r\n return result;\r\n };\r\n Connector.prototype.createTextPrimitives = function () {\r\n var _this = this;\r\n if (!this.enableText)\r\n return [];\r\n var result = [];\r\n this.texts.forEach(function (textObj) {\r\n var text = _this.getText(textObj.position);\r\n if (text && text !== \"\") {\r\n var pt = _this.getTextPoint(textObj.position);\r\n result = result.concat([\r\n new TextPrimitive_1.TextPrimitive(pt.x, pt.y, text, ITextMeasurer_1.TextOwner.Connector, undefined, undefined, undefined, _this.styleText, true, null, CanvasManagerBase_1.PAGE_BG_TEXTFLOOR_FILTER_ID, undefined, function (el) {\r\n Utils_1.RenderUtils.setElementEventData(el, Event_1.MouseEventElementType.ConnectorText, _this.key, textObj.position);\r\n })\r\n ]);\r\n }\r\n });\r\n return result;\r\n };\r\n Connector.prototype.getExtremeItem = function (position) {\r\n if (position === ConnectorPosition.Begin)\r\n return this.beginItem;\r\n if (position === ConnectorPosition.End)\r\n return this.endItem;\r\n return null;\r\n };\r\n Connector.prototype.getExtremeConnectionPointIndex = function (position) {\r\n if (position === ConnectorPosition.Begin)\r\n return this.beginConnectionPointIndex;\r\n if (position === ConnectorPosition.End)\r\n return this.endConnectionPointIndex;\r\n return -1;\r\n };\r\n Connector.prototype.getMinX = function () {\r\n var points = this.getRenderPoints();\r\n var xarr = points.map(function (p) { return p.x; });\r\n return xarr.reduce(function (prev, cur) { return Math.min(prev, cur); }, Number.MAX_VALUE);\r\n };\r\n Connector.prototype.getMinY = function () {\r\n var points = this.getRenderPoints();\r\n var yarr = points.map(function (p) { return p.y; });\r\n return yarr.reduce(function (prev, cur) { return Math.min(prev, cur); }, Number.MAX_VALUE);\r\n };\r\n Connector.prototype.getConnectionPoints = function () {\r\n return [];\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Connector.prototype.getConnectionPointSide = function (point, targetPoint) {\r\n return DiagramItem_1.ConnectionPointSide.Undefined;\r\n };\r\n Connector.prototype.getSegments = function () {\r\n var result = [];\r\n var renderPoints = this.getRenderPoints();\r\n renderPoints.forEach(function (pt, index) {\r\n if (index > 0)\r\n result.push(new segment_1.Segment(renderPoints[index - 1], pt));\r\n });\r\n return result;\r\n };\r\n Connector.prototype.intersectedByRect = function (rect) {\r\n return this.getSegments().some(function (s) { return s.isIntersectedByRect(rect); });\r\n };\r\n Connector.prototype.toNative = function (units) {\r\n var item = new NativeItem_1.NativeConnector(this.key, this.dataKey);\r\n item.fromKey = this.beginItem && this.beginItem.dataKey;\r\n item.toKey = this.endItem && this.endItem.dataKey;\r\n item.texts = this.texts.map(function (t) { return t; }).sort(function (a, b) { return a.position - b.position; }).map(function (a) { return a.value; });\r\n item.fromId = this.beginItem && this.beginItem.key;\r\n item.fromPointIndex = this.beginConnectionPointIndex;\r\n item.toId = this.endItem && this.endItem.key;\r\n item.toPointIndex = this.endConnectionPointIndex;\r\n item.points = this.points.map(function (pt) { return pt.clone(); });\r\n item.applyUnits(units);\r\n return item;\r\n };\r\n Connector.minOffset = unit_converter_1.UnitConverter.pixelsToTwips(24);\r\n Connector.minTextHeight = unit_converter_1.UnitConverter.pixelsToTwips(12);\r\n return Connector;\r\n}(DiagramItem_1.DiagramItem));\r\nexports.Connector = Connector;\r\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ShapeDescription = exports.ShapeTextPadding = exports.ShapeDefaultSize = exports.ShapeMinDimension = exports.ShapeDefaultDimension = void 0;\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar size_1 = __webpack_require__(2);\r\nvar LocalizationService_1 = __webpack_require__(35);\r\nvar ITextMeasurer_1 = __webpack_require__(42);\r\nvar RectaglePrimitive_1 = __webpack_require__(21);\r\nvar TextPrimitive_1 = __webpack_require__(60);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar ConnectionPoint_1 = __webpack_require__(44);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nexports.ShapeDefaultDimension = 1440;\r\nexports.ShapeMinDimension = 360;\r\nexports.ShapeDefaultSize = new size_1.Size(exports.ShapeDefaultDimension, exports.ShapeDefaultDimension);\r\nexports.ShapeTextPadding = unit_converter_1.UnitConverter.pixelsToTwips(10);\r\nvar ShapeDescription = /** @class */ (function () {\r\n function ShapeDescription(defaultSize, hasDefaultText) {\r\n if (defaultSize === void 0) { defaultSize = exports.ShapeDefaultSize.clone(); }\r\n this.defaultSize = defaultSize;\r\n this.hasDefaultText = hasDefaultText;\r\n this.onChanged = new Utils_1.EventDispatcher();\r\n this.connectionPoints = this.createConnectionPoints();\r\n }\r\n Object.defineProperty(ShapeDescription.prototype, \"enableText\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShapeDescription.prototype, \"allowEditText\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShapeDescription.prototype, \"enableImage\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShapeDescription.prototype, \"allowEditImage\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShapeDescription.prototype, \"hasTemplate\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShapeDescription.prototype, \"enableChildren\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShapeDescription.prototype, \"minWidth\", {\r\n get: function () { return undefined; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShapeDescription.prototype, \"minHeight\", {\r\n get: function () { return undefined; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShapeDescription.prototype, \"maxWidth\", {\r\n get: function () { return undefined; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShapeDescription.prototype, \"maxHeight\", {\r\n get: function () { return undefined; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShapeDescription.prototype, \"toolboxSize\", {\r\n get: function () { return this.defaultSize; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ShapeDescription.prototype.getTitle = function () {\r\n return LocalizationService_1.DiagramLocalizationService.shapeTexts[this.key];\r\n };\r\n ShapeDescription.prototype.getDefaultText = function () {\r\n return this.hasDefaultText ? LocalizationService_1.DiagramLocalizationService.shapeTexts[this.key] : \"\";\r\n };\r\n ShapeDescription.prototype.getDefaultImageUrl = function () {\r\n return \"\";\r\n };\r\n ShapeDescription.prototype.getConnectionPoints = function () {\r\n return this.connectionPoints;\r\n };\r\n ShapeDescription.prototype.createConnectionPoints = function () {\r\n return [\r\n new ConnectionPoint_1.ConnectionPoint(0.5, 0, DiagramItem_1.ConnectionPointSide.North),\r\n new ConnectionPoint_1.ConnectionPoint(1, 0.5, DiagramItem_1.ConnectionPointSide.East),\r\n new ConnectionPoint_1.ConnectionPoint(0.5, 1, DiagramItem_1.ConnectionPointSide.South),\r\n new ConnectionPoint_1.ConnectionPoint(0, 0.5, DiagramItem_1.ConnectionPointSide.West)\r\n ];\r\n };\r\n ShapeDescription.prototype.processConnectionPoint = function (shape, point) {\r\n };\r\n ShapeDescription.prototype.getConnectionPointIndexForItem = function (item, connectionPointIndex) {\r\n return connectionPointIndex;\r\n };\r\n ShapeDescription.prototype.getConnectionPointIndexForSide = function (side) {\r\n return side;\r\n };\r\n ShapeDescription.prototype.createParameters = function (parameters) {\r\n };\r\n ShapeDescription.prototype.normalizeParameters = function (shape, parameters) {\r\n };\r\n ShapeDescription.prototype.modifyParameters = function (shape, parameters, deltaX, deltaY) {\r\n throw Error(\"Not implemented\");\r\n };\r\n ShapeDescription.prototype.changeParameterValue = function (parameters, key, change) {\r\n var p = parameters.get(key);\r\n p.value = change(p);\r\n };\r\n ShapeDescription.prototype.getParameterPoints = function (shape) {\r\n return [];\r\n };\r\n ShapeDescription.prototype.getExpandedSize = function (shape) {\r\n return shape.size;\r\n };\r\n ShapeDescription.prototype.getCollapsedSize = function (shape) {\r\n return shape.size;\r\n };\r\n ShapeDescription.prototype.getToolboxHeightToWidthRatio = function (width, height) {\r\n return height / width;\r\n };\r\n ShapeDescription.prototype.allowResizeHorizontally = function (_shape) {\r\n return true;\r\n };\r\n ShapeDescription.prototype.allowResizeVertically = function (_shape) {\r\n return true;\r\n };\r\n ShapeDescription.prototype.createPrimitives = function (shape, forToolbox) {\r\n var primitives = [];\r\n primitives = primitives.concat(this.createShapePrimitives(shape, forToolbox));\r\n if (this.enableImage)\r\n primitives = primitives.concat(this.createImagePrimitives(shape, forToolbox));\r\n if (this.enableText)\r\n primitives = primitives.concat(this.createTextPrimitives(shape, forToolbox));\r\n return primitives;\r\n };\r\n ShapeDescription.prototype.createImagePrimitives = function (_shape, _forToolbox) {\r\n return [];\r\n };\r\n ShapeDescription.prototype.createTextPrimitives = function (shape, forToolbox) {\r\n if (shape.text === undefined || shape.text === \"\")\r\n return [];\r\n var rect = this.getTextRectangle(shape);\r\n return [\r\n new TextPrimitive_1.TextPrimitive(rect.x, rect.y, shape.text, ITextMeasurer_1.TextOwner.Shape, rect.width, rect.height, ShapeDescription.textSpacing, shape.styleText, false, this.getTextClipPathId(forToolbox), undefined, this.getTextAngle())\r\n ];\r\n };\r\n ShapeDescription.prototype.getTextClipPathId = function (_forToolbox) {\r\n return undefined;\r\n };\r\n ShapeDescription.prototype.getTextAngle = function () {\r\n return TextPrimitive_1.TextAngle.Angle0deg;\r\n };\r\n ShapeDescription.prototype.getClientRectangle = function (shape) {\r\n return shape.rectangle;\r\n };\r\n ShapeDescription.prototype.getTextEditRectangle = function (shape) {\r\n return this.getTextRectangle(shape);\r\n };\r\n ShapeDescription.prototype.createSelectorPrimitives = function (shape) {\r\n return [\r\n new RectaglePrimitive_1.RectanglePrimitive(shape.position.x, shape.position.y, shape.size.width, shape.size.height, null, \"selector\")\r\n ];\r\n };\r\n ShapeDescription.prototype.raiseShapeDescriptionChanged = function (description) {\r\n this.onChanged.raise1(function (l) { return l.notifyShapeDescriptionChanged(description); });\r\n };\r\n ShapeDescription.textSpacing = unit_converter_1.UnitConverter.pixelsToTwips(2);\r\n return ShapeDescription;\r\n}());\r\nexports.ShapeDescription = ShapeDescription;\r\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DiagramItem = exports.DEFAULT_ZINDEX = exports.ConnectionPointSide = void 0;\r\nvar Utils_1 = __webpack_require__(3);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar Style_1 = __webpack_require__(30);\r\nvar ConnectionPointSide;\r\n(function (ConnectionPointSide) {\r\n ConnectionPointSide[ConnectionPointSide[\"Undefined\"] = -1] = \"Undefined\";\r\n ConnectionPointSide[ConnectionPointSide[\"North\"] = 0] = \"North\";\r\n ConnectionPointSide[ConnectionPointSide[\"East\"] = 1] = \"East\";\r\n ConnectionPointSide[ConnectionPointSide[\"South\"] = 2] = \"South\";\r\n ConnectionPointSide[ConnectionPointSide[\"West\"] = 3] = \"West\";\r\n})(ConnectionPointSide = exports.ConnectionPointSide || (exports.ConnectionPointSide = {}));\r\nexports.DEFAULT_ZINDEX = 0;\r\nvar DiagramItem = /** @class */ (function () {\r\n function DiagramItem() {\r\n this.key = undefined;\r\n this.dataKey = undefined;\r\n this.customData = undefined;\r\n this.attachedConnectors = [];\r\n this.zIndex = exports.DEFAULT_ZINDEX;\r\n this.locked = false;\r\n this.container = undefined;\r\n this.style = new Style_1.Style();\r\n this.styleText = new Style_1.TextStyle();\r\n }\r\n DiagramItem.prototype.assign = function (item) {\r\n item.key = this.key;\r\n item.dataKey = this.dataKey;\r\n item.customData = Utils_1.ObjectUtils.cloneObject(this.customData);\r\n item.locked = this.locked;\r\n item.attachedConnectors = this.attachedConnectors.slice();\r\n item.style = this.style.clone();\r\n item.styleText = this.styleText.clone();\r\n item.zIndex = this.zIndex;\r\n item.container = this.container;\r\n };\r\n DiagramItem.prototype.getConnectionPointPosition = function (index, targetPoint) {\r\n return this.getConnectionPoint(index, targetPoint).toPoint();\r\n };\r\n DiagramItem.prototype.getConnectionPoint = function (index, targetPoint) {\r\n if (index < 0 && targetPoint)\r\n index = this.getNearestConnectionPoint(targetPoint);\r\n var connectionPoints = this.getConnectionPoints();\r\n return connectionPoints[index] || connectionPoints[0];\r\n };\r\n DiagramItem.prototype.getNearestConnectionPoint = function (targetPoint) {\r\n var distance = Number.MAX_VALUE;\r\n var result;\r\n this.getConnectionPoints().forEach(function (pt, index) {\r\n var ptDistance = Utils_1.GeometryUtils.getDistance(pt, targetPoint);\r\n if (ptDistance < distance) {\r\n distance = ptDistance;\r\n result = index;\r\n }\r\n });\r\n return result;\r\n };\r\n DiagramItem.prototype.getConnectionPointIndex = function (side) {\r\n var points = this.getConnectionPoints();\r\n return points.reduce(function (prevIndex, pt, index) {\r\n if (side === ConnectionPointSide.North && pt.y < points[prevIndex].y)\r\n return index;\r\n if (side === ConnectionPointSide.South && pt.y > points[prevIndex].y)\r\n return index;\r\n if (side === ConnectionPointSide.West && pt.x < points[prevIndex].x)\r\n return index;\r\n if (side === ConnectionPointSide.East && pt.x > points[prevIndex].x)\r\n return index;\r\n return prevIndex;\r\n }, 0);\r\n };\r\n DiagramItem.prototype.getConnectionPointSideByIndex = function (index, targetPoint) {\r\n var point = this.getConnectionPoint(index, targetPoint);\r\n return this.getConnectionPointSide(point, targetPoint);\r\n };\r\n DiagramItem.prototype.getConnectionPointIndexForSide = function (side) {\r\n return side;\r\n };\r\n Object.defineProperty(DiagramItem.prototype, \"enableText\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramItem.prototype, \"allowEditText\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramItem.prototype, \"hasTemplate\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramItem.prototype, \"enableChildren\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramItem.prototype, \"isLocked\", {\r\n get: function () { return this.locked || (this.container && this.container.isLocked); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramItem.prototype, \"allowResizeHorizontally\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramItem.prototype, \"allowResizeVertically\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramItem.prototype, \"strokeWidth\", {\r\n get: function () { return this.style.strokeWidth; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DiagramItem.prototype.intersectedByRect = function (rect) {\r\n return rectangle_1.Rectangle.areIntersected(this.rectangle, rect);\r\n };\r\n return DiagramItem;\r\n}());\r\nexports.DiagramItem = DiagramItem;\r\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SimpleCommandBase = void 0;\r\nvar CommandBase_1 = __webpack_require__(198);\r\nvar CommandStates_1 = __webpack_require__(199);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar LocalizationService_1 = __webpack_require__(35);\r\nvar SimpleCommandBase = /** @class */ (function (_super) {\r\n __extends(SimpleCommandBase, _super);\r\n function SimpleCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SimpleCommandBase.prototype.getState = function () {\r\n return new CommandStates_1.SimpleCommandState(this.isEnabled(), this.getValue(), this.getDefaultValue(), this.getItems(), this.isVisible());\r\n };\r\n SimpleCommandBase.prototype.isVisible = function () {\r\n return true;\r\n };\r\n SimpleCommandBase.prototype.isEnabled = function () {\r\n return !this.control.settings.readOnly || this.isEnabledInReadOnlyMode();\r\n };\r\n SimpleCommandBase.prototype.isEnabledInReadOnlyMode = function () {\r\n return false;\r\n };\r\n SimpleCommandBase.prototype.getValue = function () {\r\n return undefined;\r\n };\r\n SimpleCommandBase.prototype.getDefaultValue = function () {\r\n return undefined;\r\n };\r\n SimpleCommandBase.prototype.getItems = function () {\r\n return undefined;\r\n };\r\n SimpleCommandBase.prototype.getModelUnit = function (value) {\r\n return ModelUtils_1.ModelUtils.getlUnitValue(this.control.model.units, value);\r\n };\r\n SimpleCommandBase.prototype.getModelUnitText = function (value) {\r\n return ModelUtils_1.ModelUtils.getUnitText(this.control.model.units, LocalizationService_1.DiagramLocalizationService.unitItems, LocalizationService_1.DiagramLocalizationService.formatUnit, value);\r\n };\r\n SimpleCommandBase.prototype.getModelUnitTwipsValue = function (value) {\r\n return ModelUtils_1.ModelUtils.getTwipsValue(this.control.model.units, value);\r\n };\r\n SimpleCommandBase.prototype.getViewUnit = function (value) {\r\n return ModelUtils_1.ModelUtils.getlUnitValue(this.control.settings.viewUnits, value);\r\n };\r\n SimpleCommandBase.prototype.getViewUnitText = function (value) {\r\n return ModelUtils_1.ModelUtils.getUnitText(this.control.settings.viewUnits, LocalizationService_1.DiagramLocalizationService.unitItems, LocalizationService_1.DiagramLocalizationService.formatUnit, value);\r\n };\r\n SimpleCommandBase.prototype.getViewUnitTwipsValue = function (value) {\r\n return ModelUtils_1.ModelUtils.getTwipsValue(this.control.settings.viewUnits, value);\r\n };\r\n return SimpleCommandBase;\r\n}(CommandBase_1.CommandBase));\r\nexports.SimpleCommandBase = SimpleCommandBase;\r\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DiagramClipboardEvent = exports.DiagramKeyboardEvent = exports.DiagramContextMenuEvent = exports.DiagramWheelEvent = exports.DiagramMouseEvent = exports.DiagramMouseEventBase = exports.DiagramMouseEventTouch = exports.DiagramFocusEvent = exports.DiagramEvent = exports.ResizeEventSource = exports.MouseEventSource = exports.MouseEventElementType = exports.MouseButton = void 0;\r\nvar key_1 = __webpack_require__(25);\r\nvar MouseButton;\r\n(function (MouseButton) {\r\n MouseButton[MouseButton[\"None\"] = 0] = \"None\";\r\n MouseButton[MouseButton[\"Left\"] = 1] = \"Left\";\r\n MouseButton[MouseButton[\"Right\"] = 2] = \"Right\";\r\n MouseButton[MouseButton[\"Middle\"] = 4] = \"Middle\";\r\n})(MouseButton = exports.MouseButton || (exports.MouseButton = {}));\r\nvar MouseEventElementType;\r\n(function (MouseEventElementType) {\r\n MouseEventElementType[MouseEventElementType[\"Undefined\"] = 0] = \"Undefined\";\r\n MouseEventElementType[MouseEventElementType[\"Background\"] = 1] = \"Background\";\r\n MouseEventElementType[MouseEventElementType[\"Document\"] = 2] = \"Document\";\r\n MouseEventElementType[MouseEventElementType[\"Connector\"] = 3] = \"Connector\";\r\n MouseEventElementType[MouseEventElementType[\"ConnectorPoint\"] = 4] = \"ConnectorPoint\";\r\n MouseEventElementType[MouseEventElementType[\"ConnectorSide\"] = 5] = \"ConnectorSide\";\r\n MouseEventElementType[MouseEventElementType[\"ConnectorOrthogonalSide\"] = 6] = \"ConnectorOrthogonalSide\";\r\n MouseEventElementType[MouseEventElementType[\"ConnectorText\"] = 7] = \"ConnectorText\";\r\n MouseEventElementType[MouseEventElementType[\"Shape\"] = 8] = \"Shape\";\r\n MouseEventElementType[MouseEventElementType[\"ShapeResizeBox\"] = 9] = \"ShapeResizeBox\";\r\n MouseEventElementType[MouseEventElementType[\"ShapeParameterBox\"] = 10] = \"ShapeParameterBox\";\r\n MouseEventElementType[MouseEventElementType[\"SelectionRect\"] = 11] = \"SelectionRect\";\r\n MouseEventElementType[MouseEventElementType[\"ShapeConnectionPoint\"] = 12] = \"ShapeConnectionPoint\";\r\n MouseEventElementType[MouseEventElementType[\"ShapeExpandButton\"] = 13] = \"ShapeExpandButton\";\r\n})(MouseEventElementType = exports.MouseEventElementType || (exports.MouseEventElementType = {}));\r\nvar MouseEventSource = /** @class */ (function () {\r\n function MouseEventSource(type, key, value) {\r\n this.type = type;\r\n this.key = key;\r\n this.value = value;\r\n }\r\n return MouseEventSource;\r\n}());\r\nexports.MouseEventSource = MouseEventSource;\r\nvar ResizeEventSource;\r\n(function (ResizeEventSource) {\r\n ResizeEventSource[ResizeEventSource[\"Undefined\"] = 0] = \"Undefined\";\r\n ResizeEventSource[ResizeEventSource[\"ResizeBox_NW\"] = 1] = \"ResizeBox_NW\";\r\n ResizeEventSource[ResizeEventSource[\"ResizeBox_NE\"] = 2] = \"ResizeBox_NE\";\r\n ResizeEventSource[ResizeEventSource[\"ResizeBox_SE\"] = 3] = \"ResizeBox_SE\";\r\n ResizeEventSource[ResizeEventSource[\"ResizeBox_SW\"] = 4] = \"ResizeBox_SW\";\r\n ResizeEventSource[ResizeEventSource[\"ResizeBox_N\"] = 5] = \"ResizeBox_N\";\r\n ResizeEventSource[ResizeEventSource[\"ResizeBox_E\"] = 6] = \"ResizeBox_E\";\r\n ResizeEventSource[ResizeEventSource[\"ResizeBox_S\"] = 7] = \"ResizeBox_S\";\r\n ResizeEventSource[ResizeEventSource[\"ResizeBox_W\"] = 8] = \"ResizeBox_W\";\r\n})(ResizeEventSource = exports.ResizeEventSource || (exports.ResizeEventSource = {}));\r\nvar DiagramEvent = /** @class */ (function () {\r\n function DiagramEvent(modifiers) {\r\n this.modifiers = modifiers;\r\n }\r\n return DiagramEvent;\r\n}());\r\nexports.DiagramEvent = DiagramEvent;\r\nvar DiagramFocusEvent = /** @class */ (function (_super) {\r\n __extends(DiagramFocusEvent, _super);\r\n function DiagramFocusEvent(inputText) {\r\n var _this = _super.call(this, key_1.ModifierKey.None) || this;\r\n _this.inputText = inputText;\r\n return _this;\r\n }\r\n return DiagramFocusEvent;\r\n}(DiagramEvent));\r\nexports.DiagramFocusEvent = DiagramFocusEvent;\r\nvar DiagramMouseEventTouch = /** @class */ (function () {\r\n function DiagramMouseEventTouch(offsetPoint, modelPoint) {\r\n this.offsetPoint = offsetPoint;\r\n this.modelPoint = modelPoint;\r\n }\r\n return DiagramMouseEventTouch;\r\n}());\r\nexports.DiagramMouseEventTouch = DiagramMouseEventTouch;\r\nvar DiagramMouseEventBase = /** @class */ (function (_super) {\r\n __extends(DiagramMouseEventBase, _super);\r\n function DiagramMouseEventBase(modifiers, offsetPoint, modelPoint, source) {\r\n var _this = _super.call(this, modifiers) || this;\r\n _this.offsetPoint = offsetPoint;\r\n _this.modelPoint = modelPoint;\r\n _this.source = source;\r\n return _this;\r\n }\r\n return DiagramMouseEventBase;\r\n}(DiagramEvent));\r\nexports.DiagramMouseEventBase = DiagramMouseEventBase;\r\nvar DiagramMouseEvent = /** @class */ (function (_super) {\r\n __extends(DiagramMouseEvent, _super);\r\n function DiagramMouseEvent(modifiers, button, offsetPoint, modelPoint, source, touches) {\r\n if (touches === void 0) { touches = []; }\r\n var _this = _super.call(this, modifiers, offsetPoint, modelPoint, source) || this;\r\n _this.button = button;\r\n _this.touches = touches;\r\n _this.scrollX = 0;\r\n _this.scrollY = 0;\r\n return _this;\r\n }\r\n return DiagramMouseEvent;\r\n}(DiagramMouseEventBase));\r\nexports.DiagramMouseEvent = DiagramMouseEvent;\r\nvar DiagramWheelEvent = /** @class */ (function (_super) {\r\n __extends(DiagramWheelEvent, _super);\r\n function DiagramWheelEvent(modifiers, deltaX, deltaY, offsetPoint, modelPoint, source) {\r\n var _this = _super.call(this, modifiers, offsetPoint, modelPoint, source) || this;\r\n _this.deltaX = deltaX;\r\n _this.deltaY = deltaY;\r\n return _this;\r\n }\r\n return DiagramWheelEvent;\r\n}(DiagramMouseEventBase));\r\nexports.DiagramWheelEvent = DiagramWheelEvent;\r\nvar DiagramContextMenuEvent = /** @class */ (function (_super) {\r\n __extends(DiagramContextMenuEvent, _super);\r\n function DiagramContextMenuEvent(modifiers, eventPoint, modelPoint) {\r\n var _this = _super.call(this, modifiers) || this;\r\n _this.eventPoint = eventPoint;\r\n _this.modelPoint = modelPoint;\r\n return _this;\r\n }\r\n return DiagramContextMenuEvent;\r\n}(DiagramEvent));\r\nexports.DiagramContextMenuEvent = DiagramContextMenuEvent;\r\nvar DiagramKeyboardEvent = /** @class */ (function (_super) {\r\n __extends(DiagramKeyboardEvent, _super);\r\n function DiagramKeyboardEvent(modifiers, keyCode, inputText) {\r\n var _this = _super.call(this, modifiers) || this;\r\n _this.keyCode = keyCode;\r\n _this.inputText = inputText;\r\n return _this;\r\n }\r\n DiagramKeyboardEvent.prototype.getShortcutCode = function () {\r\n return this.modifiers | this.keyCode;\r\n };\r\n return DiagramKeyboardEvent;\r\n}(DiagramEvent));\r\nexports.DiagramKeyboardEvent = DiagramKeyboardEvent;\r\nvar DiagramClipboardEvent = /** @class */ (function (_super) {\r\n __extends(DiagramClipboardEvent, _super);\r\n function DiagramClipboardEvent(clipboardData) {\r\n var _this = _super.call(this, key_1.ModifierKey.None) || this;\r\n _this.clipboardData = clipboardData;\r\n return _this;\r\n }\r\n return DiagramClipboardEvent;\r\n}(DiagramEvent));\r\nexports.DiagramClipboardEvent = DiagramClipboardEvent;\r\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UnitConverter = (function () {\r\n function UnitConverter() {\r\n }\r\n UnitConverter.hundredthsOfMillimeterToTwipsRound = function (value) {\r\n return Math.round(1440 * value / 2540.0);\r\n };\r\n UnitConverter.documentsToTwips = function (value) {\r\n return 24 * value / 5;\r\n };\r\n UnitConverter.pixelsToTwips = function (value) {\r\n return Math.round(UnitConverter.pixelsToTwipsF(value));\r\n };\r\n UnitConverter.pixelsToTwipsCustomDpi = function (value, dpi) {\r\n return Math.round(UnitConverter.pixelsToTwipsFCustomDpi(value, dpi));\r\n };\r\n UnitConverter.inchesToTwips = function (value) {\r\n return Math.round(UnitConverter.inchesToTwipsF(value));\r\n };\r\n UnitConverter.pointsToTwips = function (value) {\r\n return Math.round(UnitConverter.pointsToTwipsF(value));\r\n };\r\n UnitConverter.picasToTwips = function (value) {\r\n return Math.round(value * 1440 / UnitConverter.PICAS_PER_INCH);\r\n };\r\n UnitConverter.centimetersToTwips = function (value) {\r\n return Math.round(UnitConverter.centimetersToTwipsF(value));\r\n };\r\n UnitConverter.pixelsToTwipsF = function (value) {\r\n return value * 1440 / UnitConverter.DPI;\r\n };\r\n UnitConverter.pixelsToTwipsFCustomDpi = function (value, dpi) {\r\n return value * 1440 / dpi;\r\n };\r\n UnitConverter.inchesToTwipsF = function (value) {\r\n return value * 1440;\r\n };\r\n UnitConverter.pointsToTwipsF = function (value) {\r\n return value * 20;\r\n };\r\n UnitConverter.centimetersToTwipsF = function (value) {\r\n return value * 1440 / UnitConverter.CENTIMETERS_PER_INCH;\r\n };\r\n UnitConverter.twipsToDegrees = function (value) {\r\n return value / 60000;\r\n };\r\n UnitConverter.twipsToRadians = function (value) {\r\n return value / 60000 * Math.PI / 180;\r\n };\r\n UnitConverter.degreesToTwips = function (value) {\r\n return value * 60000;\r\n };\r\n UnitConverter.radiansToTwips = function (value) {\r\n return value * 60000 / Math.PI * 180;\r\n };\r\n UnitConverter.radiansToDegrees = function (value) {\r\n return value / Math.PI * 180;\r\n };\r\n UnitConverter.twipsToFD = function (value) {\r\n return Math.round(value * 2048 / 1875);\r\n };\r\n UnitConverter.fdToTwips = function (value) {\r\n return Math.round(value * 1875 / 2048);\r\n };\r\n UnitConverter.emuToTwips = function (val) {\r\n return val / 635;\r\n };\r\n UnitConverter.twipsToPixels = function (value) {\r\n return Math.round(UnitConverter.twipsToPixelsF(value));\r\n };\r\n UnitConverter.inchesToPixels = function (value) {\r\n return Math.round(UnitConverter.DPI * value);\r\n };\r\n UnitConverter.centimeterToPixel = function (value) {\r\n return Math.round(value / (UnitConverter.CENTIMETERS_PER_INCH / UnitConverter.DPI));\r\n };\r\n UnitConverter.millimetersToPixel = function (value) {\r\n return Math.round(value / (UnitConverter.CENTIMETERS_PER_INCH / UnitConverter.DPI) / 10);\r\n };\r\n UnitConverter.pointsToPixels = function (value) {\r\n return Math.round(value * UnitConverter.DPI / 72);\r\n };\r\n UnitConverter.pointsToPixelsF = function (value) {\r\n return value * UnitConverter.DPI / 72;\r\n };\r\n UnitConverter.twipsToPixelsF = function (value) {\r\n return value * UnitConverter.DPI / 1440;\r\n };\r\n UnitConverter.pixelsToPoints = function (value) {\r\n return Math.round(value * 72 / UnitConverter.DPI);\r\n };\r\n UnitConverter.pixelsToPointsF = function (value) {\r\n return value * 72 / UnitConverter.DPI;\r\n };\r\n UnitConverter.twipsToPoints = function (value) {\r\n return Math.round(this.twipsToPointsF(value));\r\n };\r\n UnitConverter.twipsToPointsF = function (value) {\r\n return value / 20;\r\n };\r\n UnitConverter.twipsToInches = function (value) {\r\n return value / 1440;\r\n };\r\n UnitConverter.pixelsToInches = function (value) {\r\n return value / UnitConverter.DPI;\r\n };\r\n UnitConverter.twipsToCentimeters = function (value) {\r\n return value * UnitConverter.CENTIMETERS_PER_INCH / 1440;\r\n };\r\n UnitConverter.pixelToCentimeters = function (value) {\r\n return value * UnitConverter.CENTIMETERS_PER_INCH / UnitConverter.DPI;\r\n };\r\n UnitConverter.twipsToHundredthsOfMillimeter = function (value) {\r\n return Math.round(127 * value / 72);\r\n };\r\n UnitConverter.pixelsToHundredthsOfMillimeter = function (value) {\r\n return Math.round(2540 * value / UnitConverter.DPI);\r\n };\r\n UnitConverter.hundredthsOfMillimeterToTwips = function (value) {\r\n return 15 * value / 127;\r\n };\r\n UnitConverter.twipsToEmu = function (val) {\r\n return val * 635;\r\n };\r\n UnitConverter.twipsToDegree = function (value) {\r\n return value / 60000;\r\n };\r\n UnitConverter.DPI = 96;\r\n UnitConverter.CENTIMETERS_PER_INCH = 2.54;\r\n UnitConverter.PICAS_PER_INCH = 6;\r\n return UnitConverter;\r\n}());\r\nexports.UnitConverter = UnitConverter;\r\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar flag_1 = __webpack_require__(163);\r\nvar algorithms_1 = __webpack_require__(164);\r\nvar fixed_1 = __webpack_require__(107);\r\nvar point_1 = __webpack_require__(1);\r\nvar size_1 = __webpack_require__(2);\r\nvar Rectangle = (function () {\r\n function Rectangle(x, y, width, height) {\r\n this.x = x;\r\n this.y = y;\r\n this.width = width;\r\n this.height = height;\r\n }\r\n Object.defineProperty(Rectangle.prototype, \"right\", {\r\n get: function () {\r\n return this.x + this.width;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Rectangle.prototype, \"bottom\", {\r\n get: function () {\r\n return this.y + this.height;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Rectangle.prototype, \"center\", {\r\n get: function () {\r\n return Rectangle.center(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Rectangle.prototype.createRectangle = function () {\r\n return new Rectangle(this.x, this.y, this.width, this.height);\r\n };\r\n Rectangle.prototype.createSize = function () {\r\n return new size_1.Size(this.width, this.height);\r\n };\r\n Rectangle.prototype.createPosition = function () {\r\n return new point_1.Point(this.x, this.y);\r\n };\r\n Rectangle.prototype.createVerticalInterval = function () {\r\n return new fixed_1.FixedInterval(this.y, this.height);\r\n };\r\n Rectangle.prototype.createHorizontalInterval = function () {\r\n return new fixed_1.FixedInterval(this.x, this.width);\r\n };\r\n Rectangle.fromGeometry = function (point, size) {\r\n return new Rectangle(point.x, point.y, size.width, size.height);\r\n };\r\n Rectangle.fromPoints = function (pointA, pointB) {\r\n var x = Math.min(pointA.x, pointB.x);\r\n var y = Math.min(pointA.y, pointB.y);\r\n var width = Math.abs(pointA.x - pointB.x);\r\n var height = Math.abs(pointA.y - pointB.y);\r\n return new Rectangle(x, y, width, height);\r\n };\r\n Rectangle.fromPositions = function (x1, y1, x2, y2) {\r\n var x = Math.min(x1, x2);\r\n var y = Math.min(y1, y2);\r\n var width = Math.abs(x2 - x1);\r\n var height = Math.abs(y2 - y1);\r\n return new Rectangle(x, y, width, height);\r\n };\r\n Rectangle.fromCenter = function (center, minRadius) {\r\n return new Rectangle(center.x - minRadius, center.y - minRadius, minRadius * 2, minRadius * 2);\r\n };\r\n Rectangle.prototype.isCollapsed = function () {\r\n return this.width === 0 || this.height === 0;\r\n };\r\n Rectangle.prototype.isEmpty = function () {\r\n return this.x === 0 && this.y === 0 &&\r\n this.width === 0 && this.height === 0;\r\n };\r\n Rectangle.prototype.toString = function () {\r\n return JSON.stringify(this);\r\n };\r\n Rectangle.prototype.setPosition = function (pos) {\r\n this.x = pos.x;\r\n this.y = pos.y;\r\n return this;\r\n };\r\n Rectangle.prototype.setSize = function (size) {\r\n this.width = size.width;\r\n this.height = size.height;\r\n return this;\r\n };\r\n Rectangle.prototype.setGeomerty = function (rect) {\r\n this.x = rect.x;\r\n this.y = rect.y;\r\n this.width = rect.width;\r\n this.height = rect.height;\r\n return this;\r\n };\r\n Rectangle.prototype.moveRectangle = function (offsetX, offsetY) {\r\n this.x += offsetX;\r\n this.y += offsetY;\r\n return this;\r\n };\r\n Rectangle.prototype.moveRectangleByPoint = function (offset) {\r\n this.x += offset.x;\r\n this.y += offset.y;\r\n return this;\r\n };\r\n Rectangle.prototype.resize = function (deltaX, deltaY) {\r\n this.width += deltaX;\r\n this.height += deltaY;\r\n return this;\r\n };\r\n Rectangle.prototype.nonNegativeSize = function () {\r\n if (this.width < 0)\r\n this.width = 0;\r\n if (this.height < 0)\r\n this.height = 0;\r\n return this;\r\n };\r\n Rectangle.prototype.multiply = function (multiplierX, multiplierY) {\r\n this.x *= multiplierX;\r\n this.y *= multiplierY;\r\n this.width *= multiplierX;\r\n this.height *= multiplierY;\r\n return this;\r\n };\r\n Rectangle.prototype.equals = function (obj) {\r\n return Rectangle.equals(this, obj);\r\n };\r\n Rectangle.prototype.clone = function () {\r\n var rect = new Rectangle(0, 0, 0, 0);\r\n rect.copyFrom(this);\r\n return rect;\r\n };\r\n Rectangle.prototype.copyFrom = function (obj) {\r\n this.x = obj.x;\r\n this.y = obj.y;\r\n this.width = obj.width;\r\n this.height = obj.height;\r\n };\r\n Rectangle.prototype.containsPoint = function (point) {\r\n return Rectangle.containsPoint(this, point);\r\n };\r\n Rectangle.prototype.containsRectangle = function (rectangle) {\r\n return this.x <= rectangle.x &&\r\n this.right >= rectangle.right &&\r\n this.y <= rectangle.y &&\r\n this.bottom >= rectangle.bottom;\r\n };\r\n Rectangle.prototype.inflate = function (deltaX, deltaY) {\r\n if (deltaY === void 0) { deltaY = deltaX; }\r\n this.x -= deltaX;\r\n this.y -= deltaY;\r\n this.width += deltaX * 2;\r\n this.height += deltaY * 2;\r\n return this;\r\n };\r\n Rectangle.prototype.applyOffsetsInside = function (offsets) {\r\n this.x += offsets.left;\r\n this.y += offsets.top;\r\n this.width -= offsets.left + offsets.right;\r\n this.height -= offsets.top + offsets.bottom;\r\n return this;\r\n };\r\n Rectangle.prototype.applyNormalizedOffsetsInside = function (offsets) {\r\n var left = Math.max(0, offsets.left);\r\n var right = Math.max(0, offsets.right);\r\n var horSum = left + right;\r\n if (horSum !== 0) {\r\n if (horSum <= this.width) {\r\n this.x += left;\r\n this.width -= horSum;\r\n }\r\n else {\r\n this.x += this.width * (left / horSum);\r\n this.width = 0;\r\n }\r\n }\r\n var top = Math.max(0, offsets.top);\r\n var bottom = Math.max(0, offsets.bottom);\r\n var vertSum = top + bottom;\r\n if (vertSum !== 0) {\r\n if (vertSum <= this.height) {\r\n this.y += top;\r\n this.height -= vertSum;\r\n }\r\n else {\r\n this.y += this.height * (top / vertSum);\r\n this.height = 0;\r\n }\r\n }\r\n return this;\r\n };\r\n Rectangle.prototype.applyOffsetsOutside = function (offsets) {\r\n this.x -= offsets.left;\r\n this.y -= offsets.top;\r\n this.width += offsets.left + offsets.right;\r\n this.height += offsets.top + offsets.bottom;\r\n return this;\r\n };\r\n Rectangle.prototype.applyConverter = function (converter) {\r\n this.x = converter(this.x);\r\n this.y = converter(this.y);\r\n this.width = converter(this.width);\r\n this.height = converter(this.height);\r\n return this;\r\n };\r\n Rectangle.getHorizIntersection = function (objA, objB) {\r\n return algorithms_1.IntervalAlgorithms.getIntersection(new fixed_1.FixedInterval(objA.x, objA.width), new fixed_1.FixedInterval(objB.x, objB.width));\r\n };\r\n Rectangle.getVertIntersection = function (objA, objB) {\r\n return algorithms_1.IntervalAlgorithms.getIntersection(new fixed_1.FixedInterval(objA.y, objA.height), new fixed_1.FixedInterval(objB.y, objB.height));\r\n };\r\n Rectangle.getIntersection = function (objA, objB) {\r\n var horInters = algorithms_1.IntervalAlgorithms.getIntersection(new fixed_1.FixedInterval(objA.x, objA.width), new fixed_1.FixedInterval(objB.x, objB.width));\r\n if (!horInters)\r\n return null;\r\n var vertInters = algorithms_1.IntervalAlgorithms.getIntersection(new fixed_1.FixedInterval(objA.y, objA.height), new fixed_1.FixedInterval(objB.y, objB.height));\r\n if (!vertInters)\r\n return null;\r\n return new Rectangle(horInters.start, vertInters.start, horInters.length, vertInters.length);\r\n };\r\n Rectangle.getHorNonCollapsedIntersection = function (objA, objB) {\r\n var inters = Rectangle.getHorizIntersection(objA, objB);\r\n return inters && !inters.isCollapsed() ? inters : null;\r\n };\r\n Rectangle.getVertNonCollapsedIntersection = function (objA, objB) {\r\n var inters = Rectangle.getVertIntersection(objA, objB);\r\n return inters && !inters.isCollapsed() ? inters : null;\r\n };\r\n Rectangle.getNonCollapsedIntersection = function (objA, objB) {\r\n var inters = Rectangle.getIntersection(objA, objB);\r\n return inters && !inters.isCollapsed() ? inters : null;\r\n };\r\n Rectangle.areIntersected = function (rectA, rectB) {\r\n return !(rectA.x > rectB.x + rectB.width || rectB.x > rectA.x + rectA.width) &&\r\n !(rectA.y > rectB.y + rectB.height || rectB.y > rectA.y + rectA.height);\r\n };\r\n Rectangle.union = function (rectA, rectB) {\r\n var right = Math.max(rectA.x + rectA.width, rectB.x + rectB.width);\r\n var bottom = Math.max(rectA.y + rectA.height, rectB.y + rectB.height);\r\n var x = Math.min(rectA.x, rectB.x);\r\n var y = Math.min(rectA.y, rectB.y);\r\n return new Rectangle(x, y, right - x, bottom - y);\r\n };\r\n Rectangle.equals = function (a, b) {\r\n return a.x === b.x &&\r\n a.y === b.y &&\r\n a.width === b.width &&\r\n a.height === b.height;\r\n };\r\n Rectangle.center = function (rect) {\r\n return new point_1.Point(rect.x + rect.width / 2, rect.y + rect.height / 2);\r\n };\r\n Rectangle.containsPoint = function (rect, point) {\r\n var right = rect.x + rect.width;\r\n var bottom = rect.y + rect.height;\r\n return point.y >= rect.y && bottom >= point.y &&\r\n point.x >= rect.x && right >= point.x;\r\n };\r\n return Rectangle;\r\n}());\r\nexports.Rectangle = Rectangle;\r\nvar HitTestDeviation;\r\n(function (HitTestDeviation) {\r\n HitTestDeviation[HitTestDeviation[\"None\"] = 0] = \"None\";\r\n HitTestDeviation[HitTestDeviation[\"Top\"] = 1] = \"Top\";\r\n HitTestDeviation[HitTestDeviation[\"Bottom\"] = 2] = \"Bottom\";\r\n HitTestDeviation[HitTestDeviation[\"Left\"] = 4] = \"Left\";\r\n HitTestDeviation[HitTestDeviation[\"Right\"] = 8] = \"Right\";\r\n})(HitTestDeviation = exports.HitTestDeviation || (exports.HitTestDeviation = {}));\r\nvar RectangleDeviation = (function () {\r\n function RectangleDeviation(initRectangle, initPoint) {\r\n this.initRectangle = initRectangle;\r\n this.initPoint = initPoint;\r\n this.deviation = new flag_1.Flag(HitTestDeviation.None);\r\n }\r\n RectangleDeviation.prototype.calcDeviation = function () {\r\n if (this.initPoint.x < this.initRectangle.x)\r\n this.deviation.set(HitTestDeviation.Left, true);\r\n else if (this.initPoint.x > this.initRectangle.right)\r\n this.deviation.set(HitTestDeviation.Right, true);\r\n if (this.initPoint.y < this.initRectangle.y)\r\n this.deviation.set(HitTestDeviation.Top, true);\r\n else if (this.initPoint.y > this.initRectangle.bottom)\r\n this.deviation.set(HitTestDeviation.Bottom, true);\r\n return this;\r\n };\r\n RectangleDeviation.prototype.calcAdditionalParams = function () {\r\n this.insidePoint = this.initPoint.clone();\r\n this.offsetToInside = new point_1.Point(0, 0);\r\n if (this.deviation.get(HitTestDeviation.Left)) {\r\n this.insidePoint.x = this.initRectangle.x;\r\n this.offsetToInside.x = this.insidePoint.x - this.initPoint.x;\r\n }\r\n else if (this.deviation.get(HitTestDeviation.Right)) {\r\n this.insidePoint.x = this.initRectangle.right;\r\n this.offsetToInside.x = this.initPoint.x - this.insidePoint.x;\r\n }\r\n if (this.deviation.get(HitTestDeviation.Top)) {\r\n this.insidePoint.y = this.initRectangle.y;\r\n this.offsetToInside.y = this.insidePoint.y - this.initPoint.y;\r\n }\r\n else if (this.deviation.get(HitTestDeviation.Bottom)) {\r\n this.insidePoint.y = this.initRectangle.bottom;\r\n this.offsetToInside.y = this.initPoint.y - this.insidePoint.y;\r\n }\r\n return this;\r\n };\r\n return RectangleDeviation;\r\n}());\r\nexports.RectangleDeviation = RectangleDeviation;\r\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Shape = void 0;\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar ShapeParameters_1 = __webpack_require__(36);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ConnectionPoint_1 = __webpack_require__(44);\r\nvar ImageInfo_1 = __webpack_require__(49);\r\nvar NativeItem_1 = __webpack_require__(85);\r\nvar Shape = /** @class */ (function (_super) {\r\n __extends(Shape, _super);\r\n function Shape(description, position, forToolbox) {\r\n var _this = _super.call(this) || this;\r\n _this.description = description;\r\n // Containers\r\n _this.children = [];\r\n _this.expanded = true;\r\n _this.expandedSize = undefined;\r\n if (!description)\r\n throw Error(\"Shape type is incorrect\");\r\n _this.position = position.clone();\r\n var defaultSize = forToolbox ? description.toolboxSize : description.defaultSize;\r\n _this.size = defaultSize.clone();\r\n _this.text = description.getDefaultText();\r\n _this.image = new ImageInfo_1.ImageInfo(description.getDefaultImageUrl());\r\n _this.parameters = new ShapeParameters_1.ShapeParameters();\r\n description.createParameters(_this.parameters);\r\n return _this;\r\n }\r\n Shape.prototype.assign = function (item) {\r\n _super.prototype.assign.call(this, item);\r\n item.size = this.size.clone();\r\n item.text = this.text;\r\n item.image = this.image.clone();\r\n item.parameters = this.parameters.clone();\r\n item.children = this.children.slice();\r\n item.expanded = this.expanded;\r\n if (this.expandedSize)\r\n item.expandedSize = this.expandedSize.clone();\r\n };\r\n Shape.prototype.clone = function () {\r\n var clone = new Shape(this.description, this.position.clone());\r\n this.assign(clone);\r\n return clone;\r\n };\r\n Object.defineProperty(Shape.prototype, \"enableText\", {\r\n get: function () { return this.description.enableText; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Shape.prototype, \"allowEditText\", {\r\n get: function () { return this.description.allowEditText; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Shape.prototype, \"hasTemplate\", {\r\n get: function () { return this.description.hasTemplate; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Shape.prototype, \"enableChildren\", {\r\n get: function () { return this.description.enableChildren; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Shape.prototype, \"enableImage\", {\r\n get: function () { return this.description.enableImage; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Shape.prototype, \"allowEditImage\", {\r\n get: function () { return this.description.allowEditImage; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Shape.prototype.getMinWidth = function (settingsMinWidth) {\r\n return typeof (this.description.minWidth) === \"number\" ? this.description.minWidth :\r\n typeof (settingsMinWidth) === \"number\" ? settingsMinWidth : ShapeDescription_1.ShapeMinDimension;\r\n };\r\n Shape.prototype.getMinHeight = function (settingsMinHeight) {\r\n return typeof (this.description.minHeight) === \"number\" ? this.description.minHeight :\r\n typeof (settingsMinHeight) === \"number\" ? settingsMinHeight : ShapeDescription_1.ShapeMinDimension;\r\n };\r\n Shape.prototype.getMaxWidth = function (settingsMaxWidth) {\r\n return typeof (this.description.maxWidth) === \"number\" ? this.description.maxWidth :\r\n typeof (settingsMaxWidth) === \"number\" ? settingsMaxWidth : undefined;\r\n };\r\n Shape.prototype.getMaxHeight = function (settingsMaxHeight) {\r\n return typeof (this.description.maxHeight) === \"number\" ? this.description.maxHeight :\r\n typeof (settingsMaxHeight) === \"number\" ? settingsMaxHeight : undefined;\r\n };\r\n Shape.prototype.createPrimitives = function () {\r\n return this.description.createPrimitives(this);\r\n };\r\n Shape.prototype.createSelectorPrimitives = function () {\r\n return this.description.createSelectorPrimitives(this);\r\n };\r\n Shape.prototype.normalizeX = function (x) {\r\n return Math.max(this.position.x, Math.min(x, this.position.x + this.size.width));\r\n };\r\n Shape.prototype.normalizeY = function (y) {\r\n return Math.max(this.position.y, Math.min(y, this.position.y + this.size.height));\r\n };\r\n Shape.prototype.getConnectionPoints = function () {\r\n var _this = this;\r\n var result = this.description.getConnectionPoints().map(function (pt) {\r\n var point = new ConnectionPoint_1.ConnectionPoint(_this.position.x + pt.x * _this.size.width, _this.position.y + pt.y * _this.size.height, pt.side);\r\n _this.description.processConnectionPoint(_this, point);\r\n return point;\r\n });\r\n return result;\r\n };\r\n Shape.prototype.getConnectionPointSide = function (point, targetPoint) {\r\n if (point.side !== DiagramItem_1.ConnectionPointSide.Undefined)\r\n return point.side;\r\n return this.getConnectionPointSideByGeometry(point);\r\n };\r\n Shape.prototype.getConnectionPointSideByGeometry = function (point) {\r\n var pt = point.clone().offset(-this.position.x, -this.position.y).multiply(1 / this.size.width, 1 / this.size.height);\r\n if (pt.x >= pt.y && (pt.x > 0 || pt.y > 0)) {\r\n if (pt.x < 0.5 || (1 - pt.x) >= pt.y)\r\n return DiagramItem_1.ConnectionPointSide.North;\r\n return DiagramItem_1.ConnectionPointSide.East;\r\n }\r\n else {\r\n if (pt.x > 0.5 || (1 - pt.x) <= pt.y)\r\n return DiagramItem_1.ConnectionPointSide.South;\r\n return DiagramItem_1.ConnectionPointSide.West;\r\n }\r\n };\r\n Shape.prototype.getConnectionPointIndexForItem = function (item, connectionPointIndex) {\r\n return this.description.getConnectionPointIndexForItem(item, connectionPointIndex);\r\n };\r\n Shape.prototype.getConnectionPointIndexForSide = function (side) {\r\n return this.description.getConnectionPointIndexForSide(side);\r\n };\r\n Shape.prototype.toggleExpandedSize = function () {\r\n if (!this.expanded) {\r\n this.expandedSize = this.size.clone();\r\n this.size = this.getCollapsedSize();\r\n }\r\n else {\r\n this.size = this.getExpandedSize();\r\n this.expandedSize = undefined;\r\n }\r\n };\r\n Shape.prototype.getExpandedSize = function () {\r\n return this.description.getExpandedSize(this);\r\n };\r\n Shape.prototype.getCollapsedSize = function () {\r\n return this.description.getCollapsedSize(this);\r\n };\r\n Shape.prototype.getToolboxHeightToWidthRatio = function () {\r\n return this.description.getToolboxHeightToWidthRatio(this.size.width, this.size.height);\r\n };\r\n Object.defineProperty(Shape.prototype, \"allowResizeHorizontally\", {\r\n get: function () {\r\n return this.description.allowResizeHorizontally(this);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Shape.prototype, \"allowResizeVertically\", {\r\n get: function () {\r\n return this.description.allowResizeVertically(this);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Shape.prototype, \"rectangle\", {\r\n get: function () {\r\n return rectangle_1.Rectangle.fromGeometry(this.position, this.size);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Shape.prototype, \"clientRectangle\", {\r\n get: function () {\r\n return this.description.getClientRectangle(this);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Shape.prototype, \"textRectangle\", {\r\n get: function () {\r\n return this.description.getTextRectangle(this);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Shape.prototype, \"textEditRectangle\", {\r\n get: function () {\r\n return this.description.getTextEditRectangle(this);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Shape.prototype, \"textAngle\", {\r\n get: function () {\r\n return this.description.getTextAngle();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Shape.prototype.toNative = function (units) {\r\n var item = new NativeItem_1.NativeShape(this.key, this.dataKey);\r\n item.type = this.description.key;\r\n item.text = this.text;\r\n item.position = this.position.clone();\r\n item.size = this.size.clone();\r\n item.attachedConnectorIds = this.attachedConnectors.map(function (c) { return c.key; });\r\n item.applyUnits(units);\r\n item.containerId = this.container ? this.container.key : null;\r\n item.containerChildItemIds = this.children.map(function (item) { return item.key; });\r\n item.containerExpanded = this.expanded;\r\n return item;\r\n };\r\n return Shape;\r\n}(DiagramItem_1.DiagramItem));\r\nexports.Shape = Shape;\r\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RenderHelper = exports.svgNS = void 0;\r\nvar Diagnostics_1 = __webpack_require__(57);\r\nexports.svgNS = \"http://www.w3.org/2000/svg\";\r\nvar RenderHelper = /** @class */ (function () {\r\n function RenderHelper() {\r\n }\r\n RenderHelper.createSvgElement = function (parent, forExport) {\r\n if (forExport === void 0) { forExport = false; }\r\n var svgElement = document.createElementNS(exports.svgNS, \"svg\");\r\n svgElement.className.baseVal = \"dxdi-canvas\" + (forExport ? \" export\" : \"\");\r\n parent && parent.appendChild(svgElement);\r\n return svgElement;\r\n };\r\n RenderHelper.createMainElement = function (parent, forMeasurer) {\r\n if (forMeasurer === void 0) { forMeasurer = false; }\r\n var element = document.createElement(\"div\");\r\n element.setAttribute(\"class\", \"dxdi-control\" + (forMeasurer ? \" measurer\" : \"\"));\r\n if (Diagnostics_1.Diagnostics.optimizeLayers)\r\n element.style.transform = \"translateZ(0)\";\r\n parent && parent.appendChild(element);\r\n return element;\r\n };\r\n RenderHelper.addEventListener = function (element, eventName, handler) {\r\n element.addEventListener(eventName, handler);\r\n };\r\n RenderHelper.removeEventListener = function (element, eventName, handler) {\r\n element.removeEventListener(eventName, handler);\r\n };\r\n return RenderHelper;\r\n}());\r\nexports.RenderHelper = RenderHelper;\r\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DiagramModelOperation = exports.ModelOperationSettings = void 0;\r\nvar ModelOperationSettings = /** @class */ (function () {\r\n function ModelOperationSettings() {\r\n this._addShape = true;\r\n this._addShapeFromToolbox = true;\r\n this._deleteShape = true;\r\n this._deleteConnector = true;\r\n this._changeConnection = true;\r\n this._changeConnectorPoints = true;\r\n this._changeShapeText = true;\r\n this._changeConnectorText = true;\r\n this._resizeShape = true;\r\n this._moveShape = true;\r\n }\r\n Object.defineProperty(ModelOperationSettings.prototype, \"addShape\", {\r\n get: function () { return this._addShape; },\r\n set: function (value) {\r\n if (value !== this._addShape)\r\n this._addShape = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ModelOperationSettings.prototype, \"addShapeFromToolbox\", {\r\n get: function () { return this._addShapeFromToolbox; },\r\n set: function (value) {\r\n if (value !== this._addShapeFromToolbox)\r\n this._addShapeFromToolbox = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ModelOperationSettings.prototype, \"deleteShape\", {\r\n get: function () { return this._deleteShape; },\r\n set: function (value) {\r\n if (value !== this._deleteShape)\r\n this._deleteShape = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ModelOperationSettings.prototype, \"deleteConnector\", {\r\n get: function () { return this._deleteConnector; },\r\n set: function (value) {\r\n if (value !== this._deleteConnector)\r\n this._deleteConnector = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ModelOperationSettings.prototype, \"changeConnection\", {\r\n get: function () { return this._changeConnection; },\r\n set: function (value) {\r\n if (value !== this._changeConnection)\r\n this._changeConnection = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ModelOperationSettings.prototype, \"changeConnectorPoints\", {\r\n get: function () { return this._changeConnectorPoints; },\r\n set: function (value) {\r\n if (value !== this._changeConnectorPoints)\r\n this._changeConnectorPoints = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ModelOperationSettings.prototype, \"changeShapeText\", {\r\n get: function () { return this._changeShapeText; },\r\n set: function (value) {\r\n if (value !== this._changeShapeText)\r\n this._changeShapeText = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ModelOperationSettings.prototype, \"changeConnectorText\", {\r\n get: function () { return this._changeConnectorText; },\r\n set: function (value) {\r\n if (value !== this._changeConnectorText)\r\n this._changeConnectorText = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ModelOperationSettings.prototype, \"resizeShape\", {\r\n get: function () { return this._resizeShape; },\r\n set: function (value) {\r\n if (value !== this._resizeShape)\r\n this._resizeShape = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ModelOperationSettings.prototype, \"moveShape\", {\r\n get: function () { return this._moveShape; },\r\n set: function (value) {\r\n if (value !== this._moveShape)\r\n this._moveShape = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ModelOperationSettings.prototype.applySettings = function (settings) {\r\n if (!settings)\r\n return;\r\n if (typeof settings.addShape === \"boolean\")\r\n this.addShape = settings.addShape;\r\n if (typeof settings.addShapeFromToolbox === \"boolean\")\r\n this.addShapeFromToolbox = settings.addShapeFromToolbox;\r\n if (typeof settings.deleteShape === \"boolean\")\r\n this.deleteShape = settings.deleteShape;\r\n if (typeof settings.deleteConnector === \"boolean\")\r\n this.deleteConnector = settings.deleteConnector;\r\n if (typeof settings.changeConnection === \"boolean\")\r\n this.changeConnection = settings.changeConnection;\r\n if (typeof settings.changeConnectorPoints === \"boolean\")\r\n this.changeConnectorPoints = settings.changeConnectorPoints;\r\n if (typeof settings.changeShapeText === \"boolean\")\r\n this.changeShapeText = settings.changeShapeText;\r\n if (typeof settings.changeConnectorText === \"boolean\")\r\n this.changeConnectorText = settings.changeConnectorText;\r\n if (typeof settings.resizeShape === \"boolean\")\r\n this.resizeShape = settings.resizeShape;\r\n if (typeof settings.moveShape === \"boolean\")\r\n this.moveShape = settings.moveShape;\r\n };\r\n return ModelOperationSettings;\r\n}());\r\nexports.ModelOperationSettings = ModelOperationSettings;\r\nvar DiagramModelOperation;\r\n(function (DiagramModelOperation) {\r\n DiagramModelOperation[DiagramModelOperation[\"AddShape\"] = 0] = \"AddShape\";\r\n DiagramModelOperation[DiagramModelOperation[\"AddShapeFromToolbox\"] = 1] = \"AddShapeFromToolbox\";\r\n DiagramModelOperation[DiagramModelOperation[\"DeleteShape\"] = 2] = \"DeleteShape\";\r\n DiagramModelOperation[DiagramModelOperation[\"DeleteConnector\"] = 3] = \"DeleteConnector\";\r\n DiagramModelOperation[DiagramModelOperation[\"ChangeConnection\"] = 4] = \"ChangeConnection\";\r\n DiagramModelOperation[DiagramModelOperation[\"ChangeConnectorPoints\"] = 5] = \"ChangeConnectorPoints\";\r\n DiagramModelOperation[DiagramModelOperation[\"BeforeChangeShapeText\"] = 6] = \"BeforeChangeShapeText\";\r\n DiagramModelOperation[DiagramModelOperation[\"ChangeShapeText\"] = 7] = \"ChangeShapeText\";\r\n DiagramModelOperation[DiagramModelOperation[\"BeforeChangeConnectorText\"] = 8] = \"BeforeChangeConnectorText\";\r\n DiagramModelOperation[DiagramModelOperation[\"ChangeConnectorText\"] = 9] = \"ChangeConnectorText\";\r\n DiagramModelOperation[DiagramModelOperation[\"ResizeShape\"] = 10] = \"ResizeShape\";\r\n DiagramModelOperation[DiagramModelOperation[\"MoveShape\"] = 11] = \"MoveShape\";\r\n})(DiagramModelOperation = exports.DiagramModelOperation || (exports.DiagramModelOperation = {}));\r\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Browser = (function () {\r\n function Browser() {\r\n }\r\n Browser.IdentUserAgent = function (userAgent, ignoreDocumentMode) {\r\n if (ignoreDocumentMode === void 0) { ignoreDocumentMode = false; }\r\n var browserTypesOrderedList = ['Mozilla', 'IE', 'Firefox', 'Netscape', 'Safari', 'Chrome', 'Opera', 'Opera10', 'Edge'];\r\n var defaultBrowserType = 'IE';\r\n var defaultPlatform = 'Win';\r\n var defaultVersions = { Safari: 2, Chrome: 0.1, Mozilla: 1.9, Netscape: 8, Firefox: 2, Opera: 9, IE: 6, Edge: 12 };\r\n if (!userAgent || userAgent.length === 0) {\r\n Browser.fillUserAgentInfo(browserTypesOrderedList, defaultBrowserType, defaultVersions[defaultBrowserType], defaultPlatform);\r\n return;\r\n }\r\n userAgent = userAgent.toLowerCase();\r\n Browser.indentPlatformMajorVersion(userAgent);\r\n try {\r\n var platformIdentStrings = {\r\n 'Windows': 'Win',\r\n 'Macintosh': 'Mac',\r\n 'Mac OS': 'Mac',\r\n 'Mac_PowerPC': 'Mac',\r\n 'cpu os': 'MacMobile',\r\n 'cpu iphone os': 'MacMobile',\r\n 'Android': 'Android',\r\n '!Windows Phone': 'WinPhone',\r\n '!WPDesktop': 'WinPhone',\r\n '!ZuneWP': 'WinPhone'\r\n };\r\n var optSlashOrSpace = '(?:/|\\\\s*)?';\r\n var versionString = '(\\\\d+)(?:\\\\.((?:\\\\d+?[1-9])|\\\\d)0*?)?';\r\n var optVersion = '(?:' + versionString + ')?';\r\n var patterns = {\r\n Safari: 'applewebkit(?:.*?(?:version/' + versionString + '[\\\\.\\\\w\\\\d]*?(?:\\\\s+mobile/\\\\S*)?\\\\s+safari))?',\r\n Chrome: '(?:chrome|crios)(?!frame)' + optSlashOrSpace + optVersion,\r\n Mozilla: 'mozilla(?:.*rv:' + optVersion + '.*Gecko)?',\r\n Netscape: '(?:netscape|navigator)\\\\d*/?\\\\s*' + optVersion,\r\n Firefox: 'firefox' + optSlashOrSpace + optVersion,\r\n Opera: '(?:opera|\\\\sopr)' + optSlashOrSpace + optVersion,\r\n Opera10: 'opera.*\\\\s*version' + optSlashOrSpace + optVersion,\r\n IE: 'msie\\\\s*' + optVersion,\r\n Edge: 'edge' + optSlashOrSpace + optVersion\r\n };\r\n var browserType = null;\r\n var version = -1;\r\n for (var i = 0; i < browserTypesOrderedList.length; i++) {\r\n var browserTypeCandidate = browserTypesOrderedList[i];\r\n var regExp = new RegExp(patterns[browserTypeCandidate], 'i');\r\n var matches = regExp.exec(userAgent);\r\n if (matches && matches.index >= 0) {\r\n if (browserType === 'IE' && version >= 11 && browserTypeCandidate === 'Safari')\r\n continue;\r\n browserType = browserTypeCandidate;\r\n if (browserType === 'Opera10')\r\n browserType = 'Opera';\r\n var tridentPattern = 'trident' + optSlashOrSpace + optVersion;\r\n version = Browser.GetBrowserVersion(userAgent, matches, tridentPattern, Browser.getIECompatibleVersionString());\r\n if (browserType === 'Mozilla' && version >= 11)\r\n browserType = 'IE';\r\n }\r\n }\r\n if (!browserType)\r\n browserType = defaultBrowserType;\r\n var browserVersionDetected = version !== -1;\r\n if (!browserVersionDetected)\r\n version = defaultVersions[browserType];\r\n var platform = null;\r\n var minOccurenceIndex = Number.MAX_VALUE;\r\n for (var identStr in platformIdentStrings) {\r\n if (!Object.prototype.hasOwnProperty.call(platformIdentStrings, identStr))\r\n continue;\r\n var importantIdent = identStr.substr(0, 1) === '!';\r\n var occurenceIndex = userAgent.indexOf((importantIdent ? identStr.substr(1) : identStr).toLowerCase());\r\n if (occurenceIndex >= 0 && (occurenceIndex < minOccurenceIndex || importantIdent)) {\r\n minOccurenceIndex = importantIdent ? 0 : occurenceIndex;\r\n platform = platformIdentStrings[identStr];\r\n }\r\n }\r\n var samsungPattern = 'SM-[A-Z]';\r\n var m = userAgent.toUpperCase().match(samsungPattern);\r\n var isSamsungAndroidDevice = m && m.length > 0;\r\n if (platform === 'WinPhone' && version < 9)\r\n version = Math.floor(Browser.getVersionFromTrident(userAgent, 'trident' + optSlashOrSpace + optVersion));\r\n if (!ignoreDocumentMode && browserType === 'IE' && version > 7 && document.documentMode < version)\r\n version = document.documentMode;\r\n if (platform === 'WinPhone')\r\n version = Math.max(9, version);\r\n if (!platform)\r\n platform = defaultPlatform;\r\n if (platform === platformIdentStrings['cpu os'] && !browserVersionDetected)\r\n version = 4;\r\n Browser.fillUserAgentInfo(browserTypesOrderedList, browserType, version, platform, isSamsungAndroidDevice);\r\n }\r\n catch (e) {\r\n Browser.fillUserAgentInfo(browserTypesOrderedList, defaultBrowserType, defaultVersions[defaultBrowserType], defaultPlatform);\r\n }\r\n };\r\n Browser.GetBrowserVersion = function (userAgent, matches, tridentPattern, ieCompatibleVersionString) {\r\n var version = Browser.getVersionFromMatches(matches);\r\n if (ieCompatibleVersionString) {\r\n var versionFromTrident = Browser.getVersionFromTrident(userAgent, tridentPattern);\r\n if (ieCompatibleVersionString === 'edge' || parseInt(ieCompatibleVersionString) === versionFromTrident)\r\n return versionFromTrident;\r\n }\r\n return version;\r\n };\r\n Browser.getIECompatibleVersionString = function () {\r\n if (document.compatible) {\r\n for (var i = 0; i < document.compatible.length; i++) {\r\n if (document.compatible[i].userAgent === 'IE' && document.compatible[i].version)\r\n return document.compatible[i].version.toLowerCase();\r\n }\r\n }\r\n return '';\r\n };\r\n Browser.isTouchEnabled = function () {\r\n return ('ontouchstart' in window) ||\r\n (navigator['maxTouchPoints'] > 0) ||\r\n (navigator['msMaxTouchPoints'] > 0);\r\n };\r\n Browser.fillUserAgentInfo = function (browserTypesOrderedList, browserType, version, platform, isSamsungAndroidDevice) {\r\n if (isSamsungAndroidDevice === void 0) { isSamsungAndroidDevice = false; }\r\n for (var i = 0; i < browserTypesOrderedList.length; i++) {\r\n var type = browserTypesOrderedList[i];\r\n Browser[type] = type === browserType;\r\n }\r\n Browser.Version = Math.floor(10.0 * version) / 10.0;\r\n Browser.MajorVersion = Math.floor(Browser.Version);\r\n Browser.WindowsPlatform = platform === 'Win' || platform === 'WinPhone';\r\n Browser.MacOSMobilePlatform = platform === 'MacMobile' || (platform === 'Mac' && Browser.isTouchEnabled());\r\n Browser.MacOSPlatform = platform === 'Mac' && !Browser.MacOSMobilePlatform;\r\n Browser.AndroidMobilePlatform = platform === 'Android';\r\n Browser.WindowsPhonePlatform = platform === 'WinPhone';\r\n Browser.WebKitFamily = Browser.Safari || Browser.Chrome || Browser.Opera && Browser.MajorVersion >= 15;\r\n Browser.NetscapeFamily = Browser.Netscape || Browser.Mozilla || Browser.Firefox;\r\n Browser.HardwareAcceleration = (Browser.IE && Browser.MajorVersion >= 9) || (Browser.Firefox && Browser.MajorVersion >= 4) ||\r\n (Browser.AndroidMobilePlatform && Browser.Chrome) || (Browser.Chrome && Browser.MajorVersion >= 37) ||\r\n (Browser.Safari && !Browser.WindowsPlatform) || Browser.Edge || (Browser.Opera && Browser.MajorVersion >= 46);\r\n Browser.WebKitTouchUI = Browser.MacOSMobilePlatform || Browser.AndroidMobilePlatform;\r\n var isIETouchUI = Browser.IE && Browser.MajorVersion > 9 && Browser.WindowsPlatform && Browser.UserAgent.toLowerCase().indexOf('touch') >= 0;\r\n Browser.MSTouchUI = isIETouchUI || (Browser.Edge && !!window.navigator.maxTouchPoints);\r\n Browser.TouchUI = Browser.WebKitTouchUI || Browser.MSTouchUI;\r\n Browser.MobileUI = Browser.WebKitTouchUI || Browser.WindowsPhonePlatform;\r\n Browser.AndroidDefaultBrowser = Browser.AndroidMobilePlatform && !Browser.Chrome;\r\n Browser.AndroidChromeBrowser = Browser.AndroidMobilePlatform && Browser.Chrome;\r\n if (isSamsungAndroidDevice)\r\n Browser.SamsungAndroidDevice = isSamsungAndroidDevice;\r\n if (Browser.MSTouchUI) {\r\n var isARMArchitecture = Browser.UserAgent.toLowerCase().indexOf('arm;') > -1;\r\n Browser.VirtualKeyboardSupported = isARMArchitecture || Browser.WindowsPhonePlatform;\r\n }\r\n else\r\n Browser.VirtualKeyboardSupported = Browser.WebKitTouchUI;\r\n Browser.fillDocumentElementBrowserTypeClassNames(browserTypesOrderedList);\r\n };\r\n Browser.indentPlatformMajorVersion = function (userAgent) {\r\n var regex = /(?:(?:windows nt|macintosh|mac os|cpu os|cpu iphone os|android|windows phone|linux) )(\\d+)(?:[-0-9_.])*/;\r\n var matches = regex.exec(userAgent);\r\n if (matches)\r\n Browser.PlaformMajorVersion = matches[1];\r\n };\r\n Browser.getVersionFromMatches = function (matches) {\r\n var result = -1;\r\n var versionStr = '';\r\n if (matches) {\r\n if (matches[1]) {\r\n versionStr += matches[1];\r\n if (matches[2])\r\n versionStr += '.' + matches[2];\r\n }\r\n if (versionStr !== '') {\r\n result = parseFloat(versionStr);\r\n if (isNaN(result))\r\n result = -1;\r\n }\r\n }\r\n return result;\r\n };\r\n Browser.getVersionFromTrident = function (userAgent, tridentPattern) {\r\n var tridentDiffFromVersion = 4;\r\n var matches = new RegExp(tridentPattern, 'i').exec(userAgent);\r\n return Browser.getVersionFromMatches(matches) + tridentDiffFromVersion;\r\n };\r\n Browser.fillDocumentElementBrowserTypeClassNames = function (browserTypesOrderedList) {\r\n var documentElementClassName = '';\r\n var browserTypeslist = browserTypesOrderedList.concat(['WindowsPlatform', 'MacOSPlatform', 'MacOSMobilePlatform', 'AndroidMobilePlatform',\r\n 'WindowsPhonePlatform', 'WebKitFamily', 'WebKitTouchUI', 'MSTouchUI', 'TouchUI', 'AndroidDefaultBrowser']);\r\n for (var i = 0; i < browserTypeslist.length; i++) {\r\n var type = browserTypeslist[i];\r\n if (Browser[type])\r\n documentElementClassName += 'dx' + type + ' ';\r\n }\r\n documentElementClassName += 'dxBrowserVersion-' + Browser.MajorVersion;\r\n if (typeof document !== 'undefined' && document && document.documentElement) {\r\n if (document.documentElement.className !== '')\r\n documentElementClassName = ' ' + documentElementClassName;\r\n document.documentElement.className += documentElementClassName;\r\n Browser.Info = documentElementClassName;\r\n }\r\n };\r\n Browser.getUserAgent = function () {\r\n return typeof navigator !== 'undefined' && navigator.userAgent ? navigator.userAgent.toLowerCase() : '';\r\n };\r\n Browser.UserAgent = Browser.getUserAgent();\r\n Browser._foo = Browser.IdentUserAgent(Browser.UserAgent);\r\n return Browser;\r\n}());\r\nexports.Browser = Browser;\r\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.raiseEvent = exports.RenderUtils = void 0;\r\nvar Event_1 = __webpack_require__(11);\r\nvar math_1 = __webpack_require__(33);\r\nvar browser_1 = __webpack_require__(17);\r\nvar RenderUtils = /** @class */ (function () {\r\n function RenderUtils() {\r\n }\r\n RenderUtils.updateSvgElementSize = function (svgElement, width, height, forExport) {\r\n svgElement.style.width = width + \"px\";\r\n svgElement.style.height = height + \"px\";\r\n svgElement.setAttribute(\"viewBox\", \"0 0 \" + width + \" \" + height);\r\n if (forExport) {\r\n svgElement.setAttribute(\"width\", width.toString());\r\n svgElement.setAttribute(\"height\", height.toString());\r\n }\r\n };\r\n RenderUtils.removeElement = function (element) {\r\n element && element.parentNode && element.parentNode.removeChild(element);\r\n };\r\n RenderUtils.removeContent = function (element) {\r\n while (element && element.firstChild)\r\n element.removeChild(element.firstChild);\r\n };\r\n RenderUtils.setElementEventData = function (element, type, key, value) {\r\n if (type === Event_1.MouseEventElementType.Undefined)\r\n return;\r\n element.setAttribute(\"data-type\", type.toString());\r\n if (key !== undefined)\r\n element.setAttribute(\"data-key\", key.toString());\r\n if (value !== undefined)\r\n element.setAttribute(\"data-value\", value.toString());\r\n };\r\n RenderUtils.getElementEventData = function (element) {\r\n if (element.getAttribute && element.getAttribute(\"data-type\"))\r\n return new Event_1.MouseEventSource(parseInt(element.getAttribute(\"data-type\")), element.getAttribute(\"data-key\"), element.getAttribute(\"data-value\"));\r\n var className = element.getAttribute && element.getAttribute(\"class\");\r\n if (className === \"dxdi-page\" || className === \"dxdi-main\")\r\n return new Event_1.MouseEventSource(Event_1.MouseEventElementType.Document);\r\n };\r\n RenderUtils.getHtmlElementStylePropertyName = function (propertyName) {\r\n switch (propertyName) {\r\n case \"fill\":\r\n return \"color\";\r\n case \"text-anchor\":\r\n return \"text-align\";\r\n }\r\n return propertyName;\r\n };\r\n RenderUtils.getTextAnchorValue = function (propertyValue, reverseTextAnchor) {\r\n if (reverseTextAnchor === void 0) { reverseTextAnchor = false; }\r\n if (reverseTextAnchor) {\r\n if (propertyValue === \"start\")\r\n return \"end\";\r\n if (propertyValue === \"end\")\r\n return \"start\";\r\n }\r\n return propertyValue;\r\n };\r\n RenderUtils.getStrokeDasharrayValue = function (propertyValue, strokeWidth) {\r\n if (strokeWidth) {\r\n var dashArray = propertyValue && propertyValue.toString();\r\n var dashArrayParts = dashArray ? dashArray.split(/[\\s,]+/) : [];\r\n return dashArrayParts.map(function (v) { return parseInt(v) / 2 * strokeWidth; }).join(\",\");\r\n }\r\n return propertyValue;\r\n };\r\n RenderUtils.applyStyleToElement = function (style, element, reverseTextAnchor) {\r\n var _this = this;\r\n if (reverseTextAnchor === void 0) { reverseTextAnchor = false; }\r\n var defaultStyle = style.getDefaultInstance();\r\n style.forEach(function (propertyName) {\r\n var propertyValue = style[propertyName];\r\n var elPropertyName = (element instanceof HTMLElement) ? _this.getHtmlElementStylePropertyName(propertyName) : propertyName;\r\n if (propertyValue !== undefined && propertyValue !== \"\" && propertyValue !== defaultStyle[propertyName]) {\r\n switch (propertyName) {\r\n case \"text-anchor\":\r\n propertyValue = _this.getTextAnchorValue(propertyValue, reverseTextAnchor);\r\n break;\r\n case \"stroke-dasharray\":\r\n propertyValue = _this.getStrokeDasharrayValue(propertyValue, parseInt(style[\"stroke-width\"]));\r\n break;\r\n }\r\n element.style.setProperty(elPropertyName, propertyValue);\r\n }\r\n else\r\n element.style.setProperty(elPropertyName, \"\");\r\n });\r\n };\r\n RenderUtils.generateSvgElementId = function (prefix) {\r\n return prefix + \"_\" + math_1.MathUtils.generateGuid();\r\n };\r\n RenderUtils.getUrlPathById = function (id) {\r\n if (browser_1.Browser.Safari)\r\n return \"url(\" + location.protocol + \"//\" + location.host + location.pathname + \"#\" + id + \")\";\r\n return \"url(#\" + id + \")\";\r\n };\r\n return RenderUtils;\r\n}());\r\nexports.RenderUtils = RenderUtils;\r\nfunction raiseEvent(evt, _evt, raiseFunc) {\r\n raiseFunc(_evt);\r\n if (_evt.preventDefault)\r\n evt.preventDefault();\r\n}\r\nexports.raiseEvent = raiseEvent;\r\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RectangleShapeDescription = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar size_1 = __webpack_require__(2);\r\nvar RectaglePrimitive_1 = __webpack_require__(21);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar RectangleShapeDescription = /** @class */ (function (_super) {\r\n __extends(RectangleShapeDescription, _super);\r\n function RectangleShapeDescription(defaultSize, hasDefaultText) {\r\n if (defaultSize === void 0) { defaultSize = new size_1.Size(ShapeDescription_1.ShapeDefaultDimension, ShapeDescription_1.ShapeDefaultDimension * 0.75); }\r\n return _super.call(this, defaultSize, hasDefaultText) || this;\r\n }\r\n Object.defineProperty(RectangleShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Rectangle; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RectangleShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n RectangleShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var _a = shape.rectangle, left = _a.x, top = _a.y, width = _a.width, height = _a.height;\r\n return [\r\n new RectaglePrimitive_1.RectanglePrimitive(left, top, width, height, shape.style),\r\n ];\r\n };\r\n RectangleShapeDescription.prototype.getTextRectangle = function (shape) {\r\n return shape.rectangle.clone().inflate(-ShapeDescription_1.ShapeTextPadding, -ShapeDescription_1.ShapeTextPadding);\r\n };\r\n RectangleShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n return textSize.clone().offset(ShapeDescription_1.ShapeTextPadding * 2, ShapeDescription_1.ShapeTextPadding * 2);\r\n };\r\n return RectangleShapeDescription;\r\n}(ShapeDescription_1.ShapeDescription));\r\nexports.RectangleShapeDescription = RectangleShapeDescription;\r\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Alignment = exports.DataLayoutOrientation = exports.LogicalDirectionKind = exports.TreeLayoutSettings = exports.LayoutSettings = void 0;\r\nvar Connector_1 = __webpack_require__(7);\r\nvar LayoutSettings = /** @class */ (function () {\r\n function LayoutSettings(gridSize) {\r\n this.orientation = DataLayoutOrientation.Vertical;\r\n this.direction = LogicalDirectionKind.Forward;\r\n var baseSpacing = (gridSize && gridSize * 2 > Connector_1.Connector.minOffset) ? gridSize * 2 : Connector_1.Connector.minOffset;\r\n this.columnSpacing = baseSpacing;\r\n this.layerSpacing = baseSpacing * 2;\r\n this.containerPadding = baseSpacing * 2;\r\n this.componentSpacing = baseSpacing * 2;\r\n }\r\n return LayoutSettings;\r\n}());\r\nexports.LayoutSettings = LayoutSettings;\r\nvar TreeLayoutSettings = /** @class */ (function (_super) {\r\n __extends(TreeLayoutSettings, _super);\r\n function TreeLayoutSettings(gridSize) {\r\n var _this = _super.call(this, gridSize) || this;\r\n _this.alignment = Alignment.Center;\r\n _this.subTreeColumnSpacing = _this.componentSpacing / 2;\r\n return _this;\r\n }\r\n return TreeLayoutSettings;\r\n}(LayoutSettings));\r\nexports.TreeLayoutSettings = TreeLayoutSettings;\r\nvar LogicalDirectionKind;\r\n(function (LogicalDirectionKind) {\r\n LogicalDirectionKind[LogicalDirectionKind[\"Backward\"] = 0] = \"Backward\";\r\n LogicalDirectionKind[LogicalDirectionKind[\"Forward\"] = 1] = \"Forward\";\r\n})(LogicalDirectionKind = exports.LogicalDirectionKind || (exports.LogicalDirectionKind = {}));\r\nvar DataLayoutOrientation;\r\n(function (DataLayoutOrientation) {\r\n DataLayoutOrientation[DataLayoutOrientation[\"Horizontal\"] = 0] = \"Horizontal\";\r\n DataLayoutOrientation[DataLayoutOrientation[\"Vertical\"] = 1] = \"Vertical\";\r\n})(DataLayoutOrientation = exports.DataLayoutOrientation || (exports.DataLayoutOrientation = {}));\r\nvar Alignment;\r\n(function (Alignment) {\r\n Alignment[Alignment[\"Left\"] = 0] = \"Left\";\r\n Alignment[Alignment[\"Center\"] = 1] = \"Center\";\r\n})(Alignment = exports.Alignment || (exports.Alignment = {}));\r\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RectanglePrimitive = void 0;\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar Primitive_1 = __webpack_require__(24);\r\nvar RectanglePrimitive = /** @class */ (function (_super) {\r\n __extends(RectanglePrimitive, _super);\r\n function RectanglePrimitive(x, y, width, height, style, className, clipPathId, onApplyProperties) {\r\n var _this = _super.call(this, style, className, clipPathId, onApplyProperties) || this;\r\n _this.x = x;\r\n _this.y = y;\r\n _this.width = width;\r\n _this.height = height;\r\n return _this;\r\n }\r\n RectanglePrimitive.prototype.createMainElement = function () {\r\n return document.createElementNS(RenderHelper_1.svgNS, \"rect\");\r\n };\r\n RectanglePrimitive.prototype.applyElementProperties = function (element, measurer) {\r\n this.setUnitAttribute(element, \"x\", this.x);\r\n this.setUnitAttribute(element, \"y\", this.y);\r\n this.setUnitAttribute(element, \"width\", this.width);\r\n this.setUnitAttribute(element, \"height\", this.height);\r\n this.setPositionCorrectionAttribute(element);\r\n _super.prototype.applyElementProperties.call(this, element, measurer);\r\n };\r\n return RectanglePrimitive;\r\n}(Primitive_1.SvgPrimitive));\r\nexports.RectanglePrimitive = RectanglePrimitive;\r\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar string_1 = __webpack_require__(58);\r\nvar ColorUtils = (function () {\r\n function ColorUtils() {\r\n }\r\n ColorUtils.getAlpha = function (color) {\r\n return (color >> 24) & 255;\r\n };\r\n ColorUtils.getRed = function (color) {\r\n return (color >> 16) & 255;\r\n };\r\n ColorUtils.getGreen = function (color) {\r\n return (color >> 8) & 255;\r\n };\r\n ColorUtils.getBlue = function (color) {\r\n return color & 255;\r\n };\r\n ColorUtils.redPartToString = function (color) {\r\n var redStr = ColorUtils.getRed(color).toString(16);\r\n return redStr.length > 1 ? redStr : '0' + redStr;\r\n };\r\n ColorUtils.greenPartToString = function (color) {\r\n var greenStr = ColorUtils.getGreen(color).toString(16);\r\n return greenStr.length > 1 ? greenStr : '0' + greenStr;\r\n };\r\n ColorUtils.bluePartToString = function (color) {\r\n var blueStr = ColorUtils.getBlue(color).toString(16);\r\n return blueStr.length > 1 ? blueStr : '0' + blueStr;\r\n };\r\n ColorUtils.fromArgbNumber = function (alpha, red, green, blue) {\r\n return (alpha << 24) | (red << 16) | (green << 8) | blue;\r\n };\r\n ColorUtils.fromRgbaString = function (color, alpha) {\r\n if (alpha === void 0) { alpha = 255; }\r\n var matchesRGBA = color.replace(/ +/g, '').match(/(rgba?)|(\\d+(\\.\\d+)?%?)|(\\.\\d+)/g);\r\n if (matchesRGBA && matchesRGBA.length > 3) {\r\n var result = [];\r\n for (var i = 1, matchItem = void 0; matchItem = matchesRGBA[i]; i++) {\r\n var item = matchItem.indexOf('%') !== -1 ?\r\n Math.round(parseFloat(matchItem) * 2.55) :\r\n parseInt(matchItem);\r\n if (item < 0 || item > 255)\r\n return null;\r\n result.push(item);\r\n }\r\n if (color.indexOf('rgba') === 0) {\r\n if (isNaN(result[3]) || result[3] < 0 || result[3] > 1)\r\n return null;\r\n else if (result[3] <= 1)\r\n result[3] = Math.round(result[3] * 255);\r\n }\r\n else if (result[3])\r\n return null;\r\n return ((result[0] & 255) << 16) | ((result[1] & 255) << 8) | (result[2] & 255) |\r\n (((result.length > 3 ? result[3] : alpha) & 255) << 24);\r\n }\r\n return null;\r\n };\r\n ColorUtils.fromHashString = function (hash, alpha) {\r\n if (alpha === void 0) { alpha = 255; }\r\n if (!ColorUtils.isHashColorString(hash))\r\n return null;\r\n if (hash.charAt(0) === '#')\r\n hash = hash.substr(1);\r\n if (hash.length === 3)\r\n hash = string_1.StringUtils.repeat(hash.charAt(0), 2) + string_1.StringUtils.repeat(hash.charAt(1), 2) + string_1.StringUtils.repeat(hash.charAt(2), 2);\r\n return parseInt(hash, 16) | (alpha << 24);\r\n };\r\n ColorUtils.fromColorName = function (color, alpha) {\r\n if (alpha === void 0) { alpha = 255; }\r\n var colorNameAsHash = ColorUtils.colorNames[color.toLowerCase()];\r\n return colorNameAsHash ? ColorUtils.fromHashString(colorNameAsHash, alpha) : null;\r\n };\r\n ColorUtils.fromString = function (color, alpha) {\r\n if (alpha === void 0) { alpha = 255; }\r\n var rgbaColor = ColorUtils.fromRgbaString(color, alpha);\r\n if (rgbaColor !== null)\r\n return rgbaColor;\r\n var hashColor = ColorUtils.fromHashString(color, alpha);\r\n if (hashColor !== null)\r\n return hashColor;\r\n return ColorUtils.fromColorName(color, alpha);\r\n };\r\n ColorUtils.colorToHash = function (color) {\r\n return '#' + ColorUtils.redPartToString(color) + ColorUtils.greenPartToString(color) + ColorUtils.bluePartToString(color);\r\n };\r\n ColorUtils.stringToHash = function (color) {\r\n var result = this.fromString(color);\r\n return result !== null ? this.colorToHash(result) : null;\r\n };\r\n ColorUtils.isHashColorString = function (color) {\r\n return /^#?([0-9a-f]{6})$/i.test(color) || /^#?([0-9a-f]{3})$/i.test(color);\r\n };\r\n ColorUtils.isKnownColorName = function (color) {\r\n return !!ColorUtils.colorNames[color.toLowerCase()];\r\n };\r\n ColorUtils.isGray = function (color) {\r\n var red = ColorUtils.getRed(color);\r\n return red === ColorUtils.getGreen(color) && red === ColorUtils.getBlue(color);\r\n };\r\n ColorUtils.DARK_COLOR = -16777216;\r\n ColorUtils.LIGHT_COLOR = -1;\r\n ColorUtils.colorNames = {\r\n aliceblue: '#f0f8ff', antiquewhite: '#faebd7', aqua: '#00ffff',\r\n aquamarine: '#7fffd4', azure: '#f0ffff', beige: '#f5f5dc',\r\n bisque: '#ffe4c4', black: '#000000', blanchedalmond: '#ffebcd',\r\n blue: '#0000ff', blueviolet: '#8a2be2', brown: '#a52a2a',\r\n burlywood: '#deb887', cadetblue: '#5f9ea0', chartreuse: '#7fff00',\r\n chocolate: '#d2691e', coral: '#ff7f50', cornflowerblue: '#6495ed',\r\n cornsilk: '#fff8dc', crimson: '#dc143c', cyan: '#00ffff',\r\n darkblue: '#00008b', darkcyan: '#008b8b', darkgoldenrod: '#b8860b',\r\n darkgray: '#a9a9a9', darkgreen: '#006400', darkkhaki: '#bdb76b',\r\n darkmagenta: '#8b008b', darkolivegreen: '#556b2f', darkorange: '#ff8c00',\r\n darkorchid: '#9932cc', darkred: '#8b0000', darksalmon: '#e9967a',\r\n darkseagreen: '#8fbc8f', darkslateblue: '#483d8b', darkslategray: '#2f4f4f',\r\n darkturquoise: '#00ced1', darkviolet: '#9400d3', deeppink: '#ff1493',\r\n deepskyblue: '#00bfff', dimgray: '#696969', dodgerblue: '#1e90ff',\r\n feldspar: '#d19275', firebrick: '#b22222', floralwhite: '#fffaf0',\r\n forestgreen: '#228b22', fuchsia: '#ff00ff', gainsboro: '#dcdcdc',\r\n ghostwhite: '#f8f8ff', gold: '#ffd700', goldenrod: '#daa520', gray: '#808080',\r\n green: '#00ff00', greenyellow: '#adff2f', honeydew: '#f0fff0', hotpink: '#ff69b4',\r\n indianred: '#cd5c5c', indigo: '#4b0082', ivory: '#fffff0', khaki: '#f0e68c',\r\n lavender: '#e6e6fa', lavenderblush: '#fff0f5', lawngreen: '#7cfc00',\r\n lemonchiffon: '#fffacd', lightblue: '#add8e6', lightcoral: '#f08080',\r\n lightcyan: '#e0ffff', lightgoldenrodyellow: '#fafad2', lightgray: '#d3d3d3',\r\n lightgreen: '#90ee90', lightpink: '#ffb6c1', lightsalmon: '#ffa07a',\r\n lightseagreen: '#20b2aa', lightskyblue: '#87cefa', lightslateblue: '#8470ff',\r\n lightslategray: '#778899', lightsteelblue: '#b0c4de', lightyellow: '#ffffe0',\r\n lime: '#00ff00', limegreen: '#32cd32', linen: '#faf0e6', magenta: '#ff00ff',\r\n maroon: '#800000', mediumaquamarine: '#66cdaa', mediumblue: '#0000cd',\r\n mediumorchid: '#ba55d3', mediumpurple: '#9370d8', mediumseagreen: '#3cb371',\r\n mediumslateblue: '#7b68ee', mediumspringgreen: '#00fa9a', mediumturquoise: '#48d1cc',\r\n mediumvioletred: '#c71585', midnightblue: '#191970', mintcream: '#f5fffa',\r\n mistyrose: '#ffe4e1', moccasin: '#ffe4b5', navajowhite: '#ffdead', navy: '#000080',\r\n oldlace: '#fdf5e6', olive: '#808000', olivedrab: '#6b8e23', orange: '#ffa500',\r\n orangered: '#ff4500', orchid: '#da70d6', palegoldenrod: '#eee8aa', palegreen: '#98fb98',\r\n paleturquoise: '#afeeee', palevioletred: '#d87093', papayawhip: '#ffefd5',\r\n peachpuff: '#ffdab9', peru: '#cd853f', pink: '#ffc0cb', plum: '#dda0dd',\r\n powderblue: '#b0e0e6', purple: '#800080', red: '#ff0000', rosybrown: '#bc8f8f',\r\n royalblue: '#4169e1', saddlebrown: '#8b4513', salmon: '#fa8072', sandybrown: '#f4a460',\r\n seagreen: '#2e8b57', seashell: '#fff5ee', sienna: '#a0522d', silver: '#c0c0c0',\r\n skyblue: '#87ceeb', slateblue: '#6a5acd', slategray: '#708090', snow: '#fffafa',\r\n springgreen: '#00ff7f', steelblue: '#4682b4', tan: '#d2b48c', teal: '#008080',\r\n thistle: '#d8bfd8', tomato: '#ff6347', turquoise: '#40e0d0', violet: '#ee82ee',\r\n violetred: '#d02090', wheat: '#f5deb3', white: '#ffffff', whitesmoke: '#f5f5f5',\r\n yellow: '#ffff00', yellowgreen: '#9acd32', windowtext: '#000000'\r\n };\r\n return ColorUtils;\r\n}());\r\nexports.ColorUtils = ColorUtils;\r\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PermissionRequestEventArgs = exports.RequestedEntity = void 0;\r\nvar RequestedEntity = /** @class */ (function () {\r\n function RequestedEntity(apiController) {\r\n this.apiController = apiController;\r\n }\r\n Object.defineProperty(RequestedEntity.prototype, \"allowed\", {\r\n get: function () {\r\n return this.eventArgs.allowed;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RequestedEntity.prototype, \"updateUI\", {\r\n get: function () {\r\n return this.eventArgs.updateUI;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RequestedEntity.prototype, \"eventArgs\", {\r\n get: function () {\r\n if (!this._eventArgs)\r\n this._eventArgs = this.createEventArgs();\r\n return this._eventArgs;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return RequestedEntity;\r\n}());\r\nexports.RequestedEntity = RequestedEntity;\r\nvar PermissionRequestEventArgs = /** @class */ (function () {\r\n function PermissionRequestEventArgs() {\r\n this.allowed = true;\r\n this.updateUI = false;\r\n }\r\n return PermissionRequestEventArgs;\r\n}());\r\nexports.PermissionRequestEventArgs = PermissionRequestEventArgs;\r\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SvgPrimitive = void 0;\r\nvar Utils_1 = __webpack_require__(18);\r\nvar PrimitiveObject_1 = __webpack_require__(110);\r\nvar SvgPrimitive = /** @class */ (function (_super) {\r\n __extends(SvgPrimitive, _super);\r\n function SvgPrimitive(style, className, clipPathId, onApplyProperties) {\r\n var _this = _super.call(this, style) || this;\r\n _this.className = className;\r\n _this.clipPathId = clipPathId;\r\n _this.onApplyProperties = onApplyProperties;\r\n _this.children = [];\r\n return _this;\r\n }\r\n SvgPrimitive.prototype.createElement = function (insertInDOM) {\r\n var el = this.createMainElement();\r\n this.createChildElements(el);\r\n insertInDOM(el);\r\n this.createCustomContent(el);\r\n return el;\r\n };\r\n SvgPrimitive.prototype.createChildElements = function (parent) {\r\n for (var i = 0; i < this.children.length; i++)\r\n this.children[i].createElement(function (el) { return parent.appendChild(el); });\r\n };\r\n SvgPrimitive.prototype.applyElementProperties = function (element, measurer) {\r\n this.applyElementStyleProperties(element);\r\n if (this.className)\r\n element.setAttribute(\"class\", this.className);\r\n if (typeof this.clipPathId === \"string\")\r\n if (this.clipPathId)\r\n element.setAttribute(\"clip-path\", Utils_1.RenderUtils.getUrlPathById(this.clipPathId));\r\n else\r\n element.removeAttribute(\"clip-path\");\r\n if (this.onApplyProperties)\r\n this.onApplyProperties(element);\r\n this.applyChildrenProperties(element, measurer);\r\n };\r\n SvgPrimitive.prototype.applyChildrenProperties = function (element, measurer) {\r\n for (var i = 0; i < this.children.length; i++)\r\n this.children[i].applyElementProperties(element.childNodes[i], measurer);\r\n };\r\n SvgPrimitive.prototype.applyElementStyleProperties = function (element) {\r\n this.applyElementStylePropertiesCore(element);\r\n };\r\n SvgPrimitive.prototype.applyElementStylePropertiesCore = function (element, reverseTextAnchor) {\r\n if (reverseTextAnchor === void 0) { reverseTextAnchor = false; }\r\n if (this.style)\r\n Utils_1.RenderUtils.applyStyleToElement(this.style, element, reverseTextAnchor);\r\n };\r\n SvgPrimitive.prototype.createCustomContent = function (parent) {\r\n };\r\n SvgPrimitive.prototype.destroyCustomContent = function (parent) {\r\n };\r\n SvgPrimitive.prototype.dispose = function () {\r\n if (this.children)\r\n this.children.forEach(function (primitive) { return primitive.dispose(); });\r\n };\r\n return SvgPrimitive;\r\n}(PrimitiveObject_1.PrimitiveObject));\r\nexports.SvgPrimitive = SvgPrimitive;\r\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar browser_1 = __webpack_require__(17);\r\nvar encode_1 = __webpack_require__(173);\r\nvar string_1 = __webpack_require__(58);\r\nvar KeyUtils = (function () {\r\n function KeyUtils() {\r\n }\r\n KeyUtils.getKeyModifiers = function (evt) {\r\n var result = 0;\r\n if (evt.altKey)\r\n result |= ModifierKey.Alt;\r\n if (evt.ctrlKey)\r\n result |= ModifierKey.Ctrl;\r\n if (evt.shiftKey)\r\n result |= ModifierKey.Shift;\r\n return result;\r\n };\r\n KeyUtils.getShortcutCode = function (keyCode, isCtrlKey, isShiftKey, isAltKey, isMetaKey) {\r\n var value = keyCode;\r\n value |= isCtrlKey ? ModifierKey.Ctrl : 0;\r\n value |= isShiftKey ? ModifierKey.Shift : 0;\r\n value |= isAltKey ? ModifierKey.Alt : 0;\r\n value |= isMetaKey ? ModifierKey.Meta : 0;\r\n return value;\r\n };\r\n KeyUtils.getShortcutCodeByEvent = function (evt) {\r\n return KeyUtils.getShortcutCode(KeyUtils.getEventKeyCode(evt), evt.ctrlKey, evt.shiftKey, evt.altKey, browser_1.Browser.MacOSPlatform ? evt.metaKey : false);\r\n };\r\n KeyUtils.getEventKeyCode = function (evt) {\r\n return browser_1.Browser.NetscapeFamily || browser_1.Browser.Opera ? evt.which : evt.keyCode;\r\n };\r\n KeyUtils.parseShortcutString = function (shortcutString) {\r\n if (!shortcutString)\r\n return 0;\r\n var isCtrlKey = false;\r\n var isShiftKey = false;\r\n var isAltKey = false;\r\n var isMetaKey = false;\r\n var keyCode = null;\r\n var shcKeys = shortcutString.toString().split('+');\r\n if (shcKeys.length > 0) {\r\n for (var i = 0; i < shcKeys.length; i++) {\r\n var key = string_1.StringUtils.trim(shcKeys[i].toUpperCase());\r\n switch (key) {\r\n case 'CONTROL':\r\n case 'CONTROLKEY':\r\n case 'CTRL':\r\n isCtrlKey = true;\r\n break;\r\n case 'SHIFT':\r\n case 'SHIFTKEY':\r\n isShiftKey = true;\r\n break;\r\n case 'ALT':\r\n isAltKey = true;\r\n break;\r\n case 'CMD':\r\n isMetaKey = true;\r\n break;\r\n case 'F1':\r\n keyCode = KeyCode.F1;\r\n break;\r\n case 'F2':\r\n keyCode = KeyCode.F2;\r\n break;\r\n case 'F3':\r\n keyCode = KeyCode.F3;\r\n break;\r\n case 'F4':\r\n keyCode = KeyCode.F4;\r\n break;\r\n case 'F5':\r\n keyCode = KeyCode.F5;\r\n break;\r\n case 'F6':\r\n keyCode = KeyCode.F6;\r\n break;\r\n case 'F7':\r\n keyCode = KeyCode.F7;\r\n break;\r\n case 'F8':\r\n keyCode = KeyCode.F8;\r\n break;\r\n case 'F9':\r\n keyCode = KeyCode.F9;\r\n break;\r\n case 'F10':\r\n keyCode = KeyCode.F10;\r\n break;\r\n case 'F11':\r\n keyCode = KeyCode.F11;\r\n break;\r\n case 'F12':\r\n keyCode = KeyCode.F12;\r\n break;\r\n case 'RETURN':\r\n case 'ENTER':\r\n keyCode = KeyCode.Enter;\r\n break;\r\n case 'HOME':\r\n keyCode = KeyCode.Home;\r\n break;\r\n case 'END':\r\n keyCode = KeyCode.End;\r\n break;\r\n case 'LEFT':\r\n keyCode = KeyCode.Left;\r\n break;\r\n case 'RIGHT':\r\n keyCode = KeyCode.Right;\r\n break;\r\n case 'UP':\r\n keyCode = KeyCode.Up;\r\n break;\r\n case 'DOWN':\r\n keyCode = KeyCode.Down;\r\n break;\r\n case 'PAGEUP':\r\n keyCode = KeyCode.PageUp;\r\n break;\r\n case 'PAGEDOWN':\r\n keyCode = KeyCode.PageDown;\r\n break;\r\n case 'SPACE':\r\n keyCode = KeyCode.Space;\r\n break;\r\n case 'TAB':\r\n keyCode = KeyCode.Tab;\r\n break;\r\n case 'BACKSPACE':\r\n case 'BACK':\r\n keyCode = KeyCode.Backspace;\r\n break;\r\n case 'CONTEXT':\r\n keyCode = KeyCode.ContextMenu;\r\n break;\r\n case 'ESCAPE':\r\n case 'ESC':\r\n keyCode = KeyCode.Esc;\r\n break;\r\n case 'DELETE':\r\n case 'DEL':\r\n keyCode = KeyCode.Delete;\r\n break;\r\n case 'INSERT':\r\n case 'INS':\r\n keyCode = KeyCode.Insert;\r\n break;\r\n case 'PLUS':\r\n keyCode = '+'.charCodeAt(0);\r\n break;\r\n default:\r\n keyCode = key.charCodeAt(0);\r\n break;\r\n }\r\n }\r\n }\r\n else\r\n alert(encode_1.EncodeUtils.decodeViaTextArea('Invalid shortcut'));\r\n return KeyUtils.getShortcutCode(keyCode, isCtrlKey, isShiftKey, isAltKey, isMetaKey);\r\n };\r\n return KeyUtils;\r\n}());\r\nexports.KeyUtils = KeyUtils;\r\nvar ModifierKey;\r\n(function (ModifierKey) {\r\n ModifierKey[ModifierKey[\"None\"] = 0] = \"None\";\r\n ModifierKey[ModifierKey[\"Ctrl\"] = 65536] = \"Ctrl\";\r\n ModifierKey[ModifierKey[\"Shift\"] = 262144] = \"Shift\";\r\n ModifierKey[ModifierKey[\"Alt\"] = 1048576] = \"Alt\";\r\n ModifierKey[ModifierKey[\"Meta\"] = 16777216] = \"Meta\";\r\n})(ModifierKey = exports.ModifierKey || (exports.ModifierKey = {}));\r\nvar KeyCode;\r\n(function (KeyCode) {\r\n KeyCode[KeyCode[\"Backspace\"] = 8] = \"Backspace\";\r\n KeyCode[KeyCode[\"Tab\"] = 9] = \"Tab\";\r\n KeyCode[KeyCode[\"Enter\"] = 13] = \"Enter\";\r\n KeyCode[KeyCode[\"Pause\"] = 19] = \"Pause\";\r\n KeyCode[KeyCode[\"CapsLock\"] = 20] = \"CapsLock\";\r\n KeyCode[KeyCode[\"Esc\"] = 27] = \"Esc\";\r\n KeyCode[KeyCode[\"Space\"] = 32] = \"Space\";\r\n KeyCode[KeyCode[\"PageUp\"] = 33] = \"PageUp\";\r\n KeyCode[KeyCode[\"PageDown\"] = 34] = \"PageDown\";\r\n KeyCode[KeyCode[\"End\"] = 35] = \"End\";\r\n KeyCode[KeyCode[\"Home\"] = 36] = \"Home\";\r\n KeyCode[KeyCode[\"Left\"] = 37] = \"Left\";\r\n KeyCode[KeyCode[\"Up\"] = 38] = \"Up\";\r\n KeyCode[KeyCode[\"Right\"] = 39] = \"Right\";\r\n KeyCode[KeyCode[\"Down\"] = 40] = \"Down\";\r\n KeyCode[KeyCode[\"Insert\"] = 45] = \"Insert\";\r\n KeyCode[KeyCode[\"Delete\"] = 46] = \"Delete\";\r\n KeyCode[KeyCode[\"Key_0\"] = 48] = \"Key_0\";\r\n KeyCode[KeyCode[\"Key_1\"] = 49] = \"Key_1\";\r\n KeyCode[KeyCode[\"Key_2\"] = 50] = \"Key_2\";\r\n KeyCode[KeyCode[\"Key_3\"] = 51] = \"Key_3\";\r\n KeyCode[KeyCode[\"Key_4\"] = 52] = \"Key_4\";\r\n KeyCode[KeyCode[\"Key_5\"] = 53] = \"Key_5\";\r\n KeyCode[KeyCode[\"Key_6\"] = 54] = \"Key_6\";\r\n KeyCode[KeyCode[\"Key_7\"] = 55] = \"Key_7\";\r\n KeyCode[KeyCode[\"Key_8\"] = 56] = \"Key_8\";\r\n KeyCode[KeyCode[\"Key_9\"] = 57] = \"Key_9\";\r\n KeyCode[KeyCode[\"Key_a\"] = 65] = \"Key_a\";\r\n KeyCode[KeyCode[\"Key_b\"] = 66] = \"Key_b\";\r\n KeyCode[KeyCode[\"Key_c\"] = 67] = \"Key_c\";\r\n KeyCode[KeyCode[\"Key_d\"] = 68] = \"Key_d\";\r\n KeyCode[KeyCode[\"Key_e\"] = 69] = \"Key_e\";\r\n KeyCode[KeyCode[\"Key_f\"] = 70] = \"Key_f\";\r\n KeyCode[KeyCode[\"Key_g\"] = 71] = \"Key_g\";\r\n KeyCode[KeyCode[\"Key_h\"] = 72] = \"Key_h\";\r\n KeyCode[KeyCode[\"Key_i\"] = 73] = \"Key_i\";\r\n KeyCode[KeyCode[\"Key_j\"] = 74] = \"Key_j\";\r\n KeyCode[KeyCode[\"Key_k\"] = 75] = \"Key_k\";\r\n KeyCode[KeyCode[\"Key_l\"] = 76] = \"Key_l\";\r\n KeyCode[KeyCode[\"Key_m\"] = 77] = \"Key_m\";\r\n KeyCode[KeyCode[\"Key_n\"] = 78] = \"Key_n\";\r\n KeyCode[KeyCode[\"Key_o\"] = 79] = \"Key_o\";\r\n KeyCode[KeyCode[\"Key_p\"] = 80] = \"Key_p\";\r\n KeyCode[KeyCode[\"Key_q\"] = 81] = \"Key_q\";\r\n KeyCode[KeyCode[\"Key_r\"] = 82] = \"Key_r\";\r\n KeyCode[KeyCode[\"Key_s\"] = 83] = \"Key_s\";\r\n KeyCode[KeyCode[\"Key_t\"] = 84] = \"Key_t\";\r\n KeyCode[KeyCode[\"Key_u\"] = 85] = \"Key_u\";\r\n KeyCode[KeyCode[\"Key_v\"] = 86] = \"Key_v\";\r\n KeyCode[KeyCode[\"Key_w\"] = 87] = \"Key_w\";\r\n KeyCode[KeyCode[\"Key_x\"] = 88] = \"Key_x\";\r\n KeyCode[KeyCode[\"Key_y\"] = 89] = \"Key_y\";\r\n KeyCode[KeyCode[\"Key_z\"] = 90] = \"Key_z\";\r\n KeyCode[KeyCode[\"Windows\"] = 91] = \"Windows\";\r\n KeyCode[KeyCode[\"ContextMenu\"] = 93] = \"ContextMenu\";\r\n KeyCode[KeyCode[\"Numpad_0\"] = 96] = \"Numpad_0\";\r\n KeyCode[KeyCode[\"Numpad_1\"] = 97] = \"Numpad_1\";\r\n KeyCode[KeyCode[\"Numpad_2\"] = 98] = \"Numpad_2\";\r\n KeyCode[KeyCode[\"Numpad_3\"] = 99] = \"Numpad_3\";\r\n KeyCode[KeyCode[\"Numpad_4\"] = 100] = \"Numpad_4\";\r\n KeyCode[KeyCode[\"Numpad_5\"] = 101] = \"Numpad_5\";\r\n KeyCode[KeyCode[\"Numpad_6\"] = 102] = \"Numpad_6\";\r\n KeyCode[KeyCode[\"Numpad_7\"] = 103] = \"Numpad_7\";\r\n KeyCode[KeyCode[\"Numpad_8\"] = 104] = \"Numpad_8\";\r\n KeyCode[KeyCode[\"Numpad_9\"] = 105] = \"Numpad_9\";\r\n KeyCode[KeyCode[\"Multiply\"] = 106] = \"Multiply\";\r\n KeyCode[KeyCode[\"Add\"] = 107] = \"Add\";\r\n KeyCode[KeyCode[\"Subtract\"] = 109] = \"Subtract\";\r\n KeyCode[KeyCode[\"Decimal\"] = 110] = \"Decimal\";\r\n KeyCode[KeyCode[\"Divide\"] = 111] = \"Divide\";\r\n KeyCode[KeyCode[\"F1\"] = 112] = \"F1\";\r\n KeyCode[KeyCode[\"F2\"] = 113] = \"F2\";\r\n KeyCode[KeyCode[\"F3\"] = 114] = \"F3\";\r\n KeyCode[KeyCode[\"F4\"] = 115] = \"F4\";\r\n KeyCode[KeyCode[\"F5\"] = 116] = \"F5\";\r\n KeyCode[KeyCode[\"F6\"] = 117] = \"F6\";\r\n KeyCode[KeyCode[\"F7\"] = 118] = \"F7\";\r\n KeyCode[KeyCode[\"F8\"] = 119] = \"F8\";\r\n KeyCode[KeyCode[\"F9\"] = 120] = \"F9\";\r\n KeyCode[KeyCode[\"F10\"] = 121] = \"F10\";\r\n KeyCode[KeyCode[\"F11\"] = 122] = \"F11\";\r\n KeyCode[KeyCode[\"F12\"] = 123] = \"F12\";\r\n KeyCode[KeyCode[\"NumLock\"] = 144] = \"NumLock\";\r\n KeyCode[KeyCode[\"ScrollLock\"] = 145] = \"ScrollLock\";\r\n KeyCode[KeyCode[\"Semicolon\"] = 186] = \"Semicolon\";\r\n KeyCode[KeyCode[\"Equals\"] = 187] = \"Equals\";\r\n KeyCode[KeyCode[\"Comma\"] = 188] = \"Comma\";\r\n KeyCode[KeyCode[\"Dash\"] = 189] = \"Dash\";\r\n KeyCode[KeyCode[\"Period\"] = 190] = \"Period\";\r\n KeyCode[KeyCode[\"ForwardSlash\"] = 191] = \"ForwardSlash\";\r\n KeyCode[KeyCode[\"GraveAccent\"] = 192] = \"GraveAccent\";\r\n KeyCode[KeyCode[\"OpenBracket\"] = 219] = \"OpenBracket\";\r\n KeyCode[KeyCode[\"BackSlash\"] = 220] = \"BackSlash\";\r\n KeyCode[KeyCode[\"CloseBracket\"] = 221] = \"CloseBracket\";\r\n KeyCode[KeyCode[\"SingleQuote\"] = 222] = \"SingleQuote\";\r\n})(KeyCode = exports.KeyCode || (exports.KeyCode = {}));\r\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar browser_1 = __webpack_require__(17);\r\nvar common_1 = __webpack_require__(48);\r\nvar math_1 = __webpack_require__(33);\r\nvar string_1 = __webpack_require__(58);\r\nvar DomUtils = (function () {\r\n function DomUtils() {\r\n }\r\n DomUtils.clearInnerHtml = function (element) {\r\n while (element.firstChild)\r\n element.removeChild(element.firstChild);\r\n };\r\n DomUtils.setStylePosition = function (style, point) {\r\n style.left = math_1.MathUtils.round(point.x, 3) + 'px';\r\n style.top = math_1.MathUtils.round(point.y, 3) + 'px';\r\n };\r\n DomUtils.setStyleSize = function (style, size) {\r\n style.width = math_1.MathUtils.round(size.width, 3) + 'px';\r\n style.height = math_1.MathUtils.round(size.height, 3) + 'px';\r\n };\r\n DomUtils.setStyleSizeAndPosition = function (style, rectangle) {\r\n DomUtils.setStylePosition(style, rectangle);\r\n DomUtils.setStyleSize(style, rectangle);\r\n };\r\n DomUtils.hideNode = function (node) {\r\n if (node) {\r\n var parentNode = node.parentNode;\r\n if (parentNode)\r\n parentNode.removeChild(node);\r\n }\r\n };\r\n DomUtils.isHTMLElementNode = function (node) {\r\n return node.nodeType === Node.ELEMENT_NODE;\r\n };\r\n DomUtils.isTextNode = function (node) {\r\n return node.nodeType === Node.TEXT_NODE;\r\n };\r\n DomUtils.isElementNode = function (node) {\r\n return node.nodeType === Node.ELEMENT_NODE;\r\n };\r\n DomUtils.isHTMLTableRowElement = function (element) {\r\n return element.tagName === 'TR';\r\n };\r\n DomUtils.isItParent = function (parentElement, element) {\r\n if (!parentElement || !element)\r\n return false;\r\n while (element) {\r\n if (element === parentElement)\r\n return true;\r\n if (element.tagName === 'BODY')\r\n return false;\r\n element = element.parentNode;\r\n }\r\n return false;\r\n };\r\n DomUtils.getParentByTagName = function (element, tagName) {\r\n tagName = tagName.toUpperCase();\r\n while (element) {\r\n if (element.tagName === 'BODY')\r\n return null;\r\n if (element.tagName === tagName)\r\n return element;\r\n element = element.parentNode;\r\n }\r\n return null;\r\n };\r\n DomUtils.getDocumentScrollTop = function () {\r\n var isScrollBodyIE = browser_1.Browser.IE && DomUtils.getCurrentStyle(document.body).overflow === 'hidden' && document.body.scrollTop > 0;\r\n if (browser_1.Browser.WebKitFamily || browser_1.Browser.Edge || isScrollBodyIE) {\r\n if (browser_1.Browser.MacOSMobilePlatform)\r\n return window.pageYOffset;\r\n if (browser_1.Browser.WebKitFamily)\r\n return document.documentElement.scrollTop || document.body.scrollTop;\r\n return document.body.scrollTop;\r\n }\r\n else\r\n return document.documentElement.scrollTop;\r\n };\r\n DomUtils.getDocumentScrollLeft = function () {\r\n var isScrollBodyIE = browser_1.Browser.IE && DomUtils.getCurrentStyle(document.body).overflow === 'hidden' && document.body.scrollLeft > 0;\r\n if (browser_1.Browser.Edge || isScrollBodyIE)\r\n return document.body ? document.body.scrollLeft : document.documentElement.scrollLeft;\r\n if (browser_1.Browser.WebKitFamily)\r\n return document.documentElement.scrollLeft || document.body.scrollLeft;\r\n return document.documentElement.scrollLeft;\r\n };\r\n DomUtils.getCurrentStyle = function (element) {\r\n if (element.currentStyle)\r\n return element.currentStyle;\r\n else if (document.defaultView && document.defaultView.getComputedStyle) {\r\n var result = document.defaultView.getComputedStyle(element, null);\r\n if (!result && browser_1.Browser.Firefox && window.frameElement) {\r\n var changes = [];\r\n var curElement = window.frameElement;\r\n while (!(result = document.defaultView.getComputedStyle(element, null))) {\r\n changes.push([curElement, curElement.style.display]);\r\n curElement.style.setProperty('display', 'block', 'important');\r\n curElement = curElement.tagName === 'BODY' ? curElement.ownerDocument.defaultView.frameElement : curElement.parentNode;\r\n }\r\n result = cloneObject(result);\r\n for (var ch = void 0, i = 0; ch = changes[i]; i++)\r\n ch[0].style.display = ch[1];\r\n document.body.offsetWidth;\r\n }\r\n return result;\r\n }\r\n return window.getComputedStyle(element, null);\r\n };\r\n DomUtils.setFocus = function (element) {\r\n function focusCore() {\r\n try {\r\n element.focus();\r\n if (browser_1.Browser.IE && document.activeElement !== element)\r\n element.focus();\r\n }\r\n catch (e) {\r\n }\r\n }\r\n if (browser_1.Browser.MacOSMobilePlatform)\r\n focusCore();\r\n else {\r\n setTimeout(function () {\r\n focusCore();\r\n }, 100);\r\n }\r\n };\r\n DomUtils.hasClassName = function (element, className) {\r\n try {\r\n var classNames = className.split(' ');\r\n var classList = element.classList;\r\n if (classList) {\r\n for (var i = classNames.length - 1; i >= 0; i--) {\r\n if (!classList.contains(classNames[i]))\r\n return false;\r\n }\r\n }\r\n else {\r\n var elementClassName = element.getAttribute && element.getAttribute('class');\r\n if (!elementClassName)\r\n return false;\r\n var elementClasses = elementClassName.split(' ');\r\n for (var i = classNames.length - 1; i >= 0; i--) {\r\n if (elementClasses.indexOf(classNames[i]) < 0)\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n };\r\n DomUtils.addClassName = function (element, className) {\r\n if (!DomUtils.hasClassName(element, className)) {\r\n var elementClassName = element.getAttribute && element.getAttribute('class');\r\n element.setAttribute('class', elementClassName === '' ? className : elementClassName + \" \" + className);\r\n }\r\n };\r\n DomUtils.removeClassName = function (element, className) {\r\n var elementClassName = element.getAttribute && element.getAttribute('class');\r\n var updClassName = \" \" + elementClassName + \" \";\r\n var newClassName = updClassName.replace(\" \" + className + \" \", ' ');\r\n if (updClassName.length !== newClassName.length)\r\n element.setAttribute('class', string_1.StringUtils.trim(newClassName));\r\n };\r\n DomUtils.toggleClassName = function (element, className, toggle) {\r\n if (toggle === undefined) {\r\n if (DomUtils.hasClassName(element, className))\r\n DomUtils.removeClassName(element, className);\r\n else\r\n DomUtils.addClassName(element, className);\r\n }\r\n else {\r\n if (toggle)\r\n DomUtils.addClassName(element, className);\r\n else\r\n DomUtils.removeClassName(element, className);\r\n }\r\n };\r\n DomUtils.pxToInt = function (px) {\r\n return pxToNumber(px, parseInt);\r\n };\r\n DomUtils.pxToFloat = function (px) {\r\n return pxToNumber(px, parseFloat);\r\n };\r\n DomUtils.getAbsolutePositionY = function (element) {\r\n function getAbsolutePositionY_IE(element) {\r\n return browser_1.Browser.IE && element.parentNode === null ?\r\n 0 :\r\n element.getBoundingClientRect().top + DomUtils.getDocumentScrollTop();\r\n }\r\n function getAbsolutePositionY_FF3(element) {\r\n return Math.round(element.getBoundingClientRect().top + DomUtils.getDocumentScrollTop());\r\n }\r\n function getAbsolutePositionY_Opera(curEl) {\r\n var isFirstCycle = true;\r\n if (curEl && DomUtils.isHTMLTableRowElement(curEl) && curEl.cells.length > 0)\r\n curEl = curEl.cells[0];\r\n var pos = getAbsoluteScrollOffset_OperaFF(curEl, false);\r\n while (curEl != null) {\r\n pos += curEl.offsetTop;\r\n if (!isFirstCycle)\r\n pos -= curEl.scrollTop;\r\n curEl = curEl.offsetParent;\r\n isFirstCycle = false;\r\n }\r\n pos += document.body.scrollTop;\r\n return pos;\r\n }\r\n function getAbsolutePositionY_NS(curEl) {\r\n var pos = getAbsoluteScrollOffset_OperaFF(curEl, false);\r\n var isFirstCycle = true;\r\n while (curEl != null) {\r\n pos += curEl.offsetTop;\r\n if (!isFirstCycle && curEl.offsetParent != null)\r\n pos -= curEl.scrollTop;\r\n if (!isFirstCycle && browser_1.Browser.Firefox) {\r\n var style = DomUtils.getCurrentStyle(curEl);\r\n if (curEl.tagName === 'DIV' && style.overflow !== 'visible')\r\n pos += DomUtils.pxToInt(style.borderTopWidth);\r\n }\r\n isFirstCycle = false;\r\n curEl = curEl.offsetParent;\r\n }\r\n return pos;\r\n }\r\n function getAbsolutePositionY_Other(curEl) {\r\n var pos = 0;\r\n var isFirstCycle = true;\r\n while (curEl != null) {\r\n pos += curEl.offsetTop;\r\n if (!isFirstCycle && curEl.offsetParent != null)\r\n pos -= curEl.scrollTop;\r\n isFirstCycle = false;\r\n curEl = curEl.offsetParent;\r\n }\r\n return pos;\r\n }\r\n if (!element)\r\n return 0;\r\n if (browser_1.Browser.IE)\r\n return getAbsolutePositionY_IE(element);\r\n else if (browser_1.Browser.Firefox && browser_1.Browser.Version >= 3)\r\n return getAbsolutePositionY_FF3(element);\r\n else if (browser_1.Browser.Opera)\r\n return getAbsolutePositionY_Opera(element);\r\n else if (browser_1.Browser.NetscapeFamily && (!browser_1.Browser.Firefox || browser_1.Browser.Version < 3))\r\n return getAbsolutePositionY_NS(element);\r\n else if (browser_1.Browser.WebKitFamily || browser_1.Browser.Edge)\r\n return getAbsolutePositionY_FF3(element);\r\n return getAbsolutePositionY_Other(element);\r\n };\r\n DomUtils.getAbsolutePositionX = function (element) {\r\n function getAbsolutePositionX_IE(element) {\r\n return browser_1.Browser.IE && element.parentNode === null ?\r\n 0 :\r\n element.getBoundingClientRect().left + DomUtils.getDocumentScrollLeft();\r\n }\r\n function getAbsolutePositionX_FF3(element) {\r\n return Math.round(element.getBoundingClientRect().left + DomUtils.getDocumentScrollLeft());\r\n }\r\n function getAbsolutePositionX_Opera(curEl) {\r\n var isFirstCycle = true;\r\n var pos = getAbsoluteScrollOffset_OperaFF(curEl, true);\r\n while (curEl != null) {\r\n pos += curEl.offsetLeft;\r\n if (!isFirstCycle)\r\n pos -= curEl.scrollLeft;\r\n curEl = curEl.offsetParent;\r\n isFirstCycle = false;\r\n }\r\n pos += document.body.scrollLeft;\r\n return pos;\r\n }\r\n function getAbsolutePositionX_NS(curEl) {\r\n var pos = getAbsoluteScrollOffset_OperaFF(curEl, true);\r\n var isFirstCycle = true;\r\n while (curEl != null) {\r\n pos += curEl.offsetLeft;\r\n if (!isFirstCycle && curEl.offsetParent != null)\r\n pos -= curEl.scrollLeft;\r\n if (!isFirstCycle && browser_1.Browser.Firefox) {\r\n var style = DomUtils.getCurrentStyle(curEl);\r\n if (curEl.tagName === 'DIV' && style.overflow !== 'visible')\r\n pos += DomUtils.pxToInt(style.borderLeftWidth);\r\n }\r\n isFirstCycle = false;\r\n curEl = curEl.offsetParent;\r\n }\r\n return pos;\r\n }\r\n function getAbsolutePositionX_Other(curEl) {\r\n var pos = 0;\r\n var isFirstCycle = true;\r\n while (curEl != null) {\r\n pos += curEl.offsetLeft;\r\n if (!isFirstCycle && curEl.offsetParent != null)\r\n pos -= curEl.scrollLeft;\r\n isFirstCycle = false;\r\n curEl = curEl.offsetParent;\r\n }\r\n return pos;\r\n }\r\n if (!element)\r\n return 0;\r\n if (browser_1.Browser.IE)\r\n return getAbsolutePositionX_IE(element);\r\n else if (browser_1.Browser.Firefox && browser_1.Browser.Version >= 3)\r\n return getAbsolutePositionX_FF3(element);\r\n else if (browser_1.Browser.Opera)\r\n return getAbsolutePositionX_Opera(element);\r\n else if (browser_1.Browser.NetscapeFamily && (!browser_1.Browser.Firefox || browser_1.Browser.Version < 3))\r\n return getAbsolutePositionX_NS(element);\r\n else if (browser_1.Browser.WebKitFamily || browser_1.Browser.Edge)\r\n return getAbsolutePositionX_FF3(element);\r\n else\r\n return getAbsolutePositionX_Other(element);\r\n };\r\n DomUtils.isInteractiveControl = function (element) {\r\n return ['A', 'INPUT', 'SELECT', 'OPTION', 'TEXTAREA', 'BUTTON', 'IFRAME'].indexOf(element.tagName) > -1;\r\n };\r\n DomUtils.getClearClientHeight = function (element) {\r\n return element.offsetHeight - (DomUtils.getTopBottomPaddings(element) + DomUtils.getVerticalBordersWidth(element));\r\n };\r\n DomUtils.getTopBottomPaddings = function (element, style) {\r\n var currentStyle = style ? style : DomUtils.getCurrentStyle(element);\r\n return DomUtils.pxToInt(currentStyle.paddingTop) + DomUtils.pxToInt(currentStyle.paddingBottom);\r\n };\r\n DomUtils.getVerticalBordersWidth = function (element, style) {\r\n if (!common_1.isDefined(style))\r\n style = (browser_1.Browser.IE && browser_1.Browser.MajorVersion !== 9 && window.getComputedStyle) ? window.getComputedStyle(element) : DomUtils.getCurrentStyle(element);\r\n var res = 0;\r\n if (style.borderTopStyle !== 'none')\r\n res += DomUtils.pxToFloat(style.borderTopWidth);\r\n if (style.borderBottomStyle !== 'none')\r\n res += DomUtils.pxToFloat(style.borderBottomWidth);\r\n return res;\r\n };\r\n DomUtils.getNodes = function (parent, predicate) {\r\n var collection = parent.all || parent.getElementsByTagName('*');\r\n var result = [];\r\n for (var i = 0; i < collection.length; i++) {\r\n var element = collection[i];\r\n if (predicate(element))\r\n result.push(element);\r\n }\r\n return result;\r\n };\r\n DomUtils.getChildNodes = function (parent, predicate) {\r\n var collection = parent.childNodes;\r\n var result = [];\r\n for (var i = 0; i < collection.length; i++) {\r\n var element = collection[i];\r\n if (predicate(element))\r\n result.push(element);\r\n }\r\n return result;\r\n };\r\n DomUtils.getNodesByClassName = function (parent, className) {\r\n if (parent.querySelectorAll) {\r\n var children = parent.querySelectorAll(\".\" + className);\r\n var result_1 = [];\r\n children.forEach(function (element) { return result_1.push(element); });\r\n return result_1;\r\n }\r\n else\r\n return DomUtils.getNodes(parent, function (elem) { return DomUtils.hasClassName(elem, className); });\r\n };\r\n DomUtils.getChildNodesByClassName = function (parent, className) {\r\n function nodeListToArray(nodeList, filter) {\r\n var result = [];\r\n for (var i = 0; i < nodeList.length; i++) {\r\n var element = nodeList[i];\r\n if (filter(element))\r\n result.push(element);\r\n }\r\n return result;\r\n }\r\n if (parent.querySelectorAll) {\r\n var children = parent.querySelectorAll(\".\" + className);\r\n return nodeListToArray(children, function (element) { return element.parentNode === parent; });\r\n }\r\n else {\r\n return DomUtils.getChildNodes(parent, function (elem) {\r\n if (DomUtils.isElementNode(elem))\r\n return common_1.isNonNullString(elem.className) && DomUtils.hasClassName(elem, elem.className);\r\n else\r\n return false;\r\n });\r\n }\r\n };\r\n DomUtils.getVerticalScrollBarWidth = function () {\r\n if (DomUtils.verticalScrollBarWidth === undefined) {\r\n var container = document.createElement('DIV');\r\n container.style.cssText = 'position: absolute; top: 0px; left: 0px; visibility: hidden; width: 200px; height: 150px; overflow: hidden; box-sizing: content-box';\r\n document.body.appendChild(container);\r\n var child = document.createElement('P');\r\n container.appendChild(child);\r\n child.style.cssText = 'width: 100%; height: 200px;';\r\n var widthWithoutScrollBar = child.offsetWidth;\r\n container.style.overflow = 'scroll';\r\n var widthWithScrollBar = child.offsetWidth;\r\n if (widthWithoutScrollBar === widthWithScrollBar)\r\n widthWithScrollBar = container.clientWidth;\r\n DomUtils.verticalScrollBarWidth = widthWithoutScrollBar - widthWithScrollBar;\r\n document.body.removeChild(container);\r\n }\r\n return DomUtils.verticalScrollBarWidth;\r\n };\r\n DomUtils.getHorizontalBordersWidth = function (element, style) {\r\n if (!common_1.isDefined(style))\r\n style = (browser_1.Browser.IE && window.getComputedStyle) ? window.getComputedStyle(element) : DomUtils.getCurrentStyle(element);\r\n var res = 0;\r\n if (style.borderLeftStyle !== 'none')\r\n res += DomUtils.pxToFloat(style.borderLeftWidth);\r\n if (style.borderRightStyle !== 'none')\r\n res += DomUtils.pxToFloat(style.borderRightWidth);\r\n return res;\r\n };\r\n DomUtils.getFontFamiliesFromCssString = function (cssString) {\r\n return cssString.split(',').map(function (fam) { return string_1.StringUtils.trim(fam.replace(/'|\"/gi, '')); });\r\n };\r\n DomUtils.getInnerText = function (container) {\r\n if (browser_1.Browser.Safari && browser_1.Browser.MajorVersion <= 5) {\r\n if (DomUtils.html2PlainTextFilter === null) {\r\n DomUtils.html2PlainTextFilter = document.createElement('DIV');\r\n DomUtils.html2PlainTextFilter.style.width = '0';\r\n DomUtils.html2PlainTextFilter.style.height = '0';\r\n DomUtils.html2PlainTextFilter.style.overflow = 'visible';\r\n DomUtils.html2PlainTextFilter.style.display = 'none';\r\n document.body.appendChild(DomUtils.html2PlainTextFilter);\r\n }\r\n var filter = DomUtils.html2PlainTextFilter;\r\n filter.innerHTML = container.innerHTML;\r\n filter.style.display = '';\r\n var innerText = filter.innerText;\r\n filter.style.display = 'none';\r\n return innerText;\r\n }\r\n else if (browser_1.Browser.NetscapeFamily || browser_1.Browser.WebKitFamily || (browser_1.Browser.IE && browser_1.Browser.Version >= 9) || browser_1.Browser.Edge)\r\n return container.textContent;\r\n else\r\n return container.innerText;\r\n };\r\n DomUtils.html2PlainTextFilter = null;\r\n DomUtils.verticalScrollBarWidth = undefined;\r\n return DomUtils;\r\n}());\r\nexports.DomUtils = DomUtils;\r\nfunction cloneObject(srcObject) {\r\n if (typeof (srcObject) !== 'object' || !common_1.isDefined(srcObject))\r\n return srcObject;\r\n var newObject = {};\r\n for (var i in srcObject)\r\n newObject[i] = srcObject[i];\r\n return newObject;\r\n}\r\nfunction pxToNumber(px, parseFunction) {\r\n var result = 0;\r\n if (common_1.isDefined(px) && px !== '') {\r\n try {\r\n var indexOfPx = px.indexOf('px');\r\n if (indexOfPx > -1)\r\n result = parseFunction(px.substr(0, indexOfPx));\r\n }\r\n catch (e) { }\r\n }\r\n return result;\r\n}\r\nfunction getAbsoluteScrollOffset_OperaFF(curEl, isX) {\r\n var pos = 0;\r\n var isFirstCycle = true;\r\n while (curEl != null) {\r\n if (curEl.tagName === 'BODY')\r\n break;\r\n var style = DomUtils.getCurrentStyle(curEl);\r\n if (style.position === 'absolute')\r\n break;\r\n if (!isFirstCycle && curEl.tagName === 'DIV' && (style.position === '' || style.position === 'static'))\r\n pos -= isX ? curEl.scrollLeft : curEl.scrollTop;\r\n curEl = curEl.parentNode;\r\n isFirstCycle = false;\r\n }\r\n return pos;\r\n}\r\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorRoutingMode = exports.AutoZoomMode = exports.DiagramSettings = void 0;\r\nvar Utils_1 = __webpack_require__(3);\r\nvar size_1 = __webpack_require__(2);\r\nvar Enums_1 = __webpack_require__(46);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar DiagramSettings = /** @class */ (function () {\r\n function DiagramSettings() {\r\n this.onZoomChanged = new Utils_1.EventDispatcher();\r\n this.onViewChanged = new Utils_1.EventDispatcher();\r\n this.onReadOnlyChanged = new Utils_1.EventDispatcher();\r\n this.onConnectorRoutingModeChanged = new Utils_1.EventDispatcher();\r\n this._zoomLevel = 1;\r\n this._zoomLevelItems = [0.5, 0.75, 1, 1.25, 1.5, 2, 3];\r\n this._simpleView = false;\r\n this._fullscreen = false;\r\n this._readOnly = false;\r\n this._autoZoom = AutoZoomMode.Disabled;\r\n this._snapToGrid = true;\r\n this._showGrid = true;\r\n this._gridSize = 180;\r\n this._gridSizeItems = [90, 180, 360, 720];\r\n this._pageSizeItems = [\r\n { size: new size_1.Size(12240, 15840), text: \"US-Letter ({width} x {height})\" },\r\n { size: new size_1.Size(12240, 20160), text: \"US-Legal ({width} x {height})\" },\r\n { size: new size_1.Size(15817, 24491), text: \"US-Tabloid ({width} x {height})\" },\r\n { size: new size_1.Size(47679, 67408), text: \"A0 ({width} x {height})\" },\r\n { size: new size_1.Size(33676, 47679), text: \"A1 ({width} x {height})\" },\r\n { size: new size_1.Size(23811, 33676), text: \"A2 ({width} x {height})\" },\r\n { size: new size_1.Size(16838, 23811), text: \"A3 ({width} x {height})\" },\r\n { size: new size_1.Size(11906, 16838), text: \"A4 ({width} x {height})\" },\r\n { size: new size_1.Size(8391, 11906), text: \"A5 ({width} x {height})\" },\r\n { size: new size_1.Size(5953, 8391), text: \"A6 ({width} x {height})\" },\r\n { size: new size_1.Size(4195, 5953), text: \"A7 ({width} x {height})\" }\r\n ];\r\n this._viewUnits = Enums_1.DiagramUnit.In;\r\n this._connectorRoutingMode = ConnectorRoutingMode.AllShapesOnly;\r\n }\r\n Object.defineProperty(DiagramSettings.prototype, \"zoomLevel\", {\r\n get: function () { return this._zoomLevel; },\r\n set: function (value) {\r\n var _this = this;\r\n value = DiagramSettings.correctZoomLevel(value);\r\n if (value !== this._zoomLevel) {\r\n this._zoomLevel = value;\r\n this.onZoomChanged.raise1(function (listener) { return listener.notifyZoomChanged(value, _this._autoZoom); });\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"zoomLevelItems\", {\r\n get: function () { return this._zoomLevelItems; },\r\n set: function (value) {\r\n value = value.map(function (l) { return DiagramSettings.correctZoomLevel(l); });\r\n if (value !== this._zoomLevelItems)\r\n this._zoomLevelItems = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"autoZoom\", {\r\n get: function () { return this._autoZoom; },\r\n set: function (value) {\r\n var _this = this;\r\n if (value !== this._autoZoom) {\r\n this._autoZoom = value;\r\n this.onZoomChanged.raise1(function (l) { return l.notifyZoomChanged(_this._zoomLevel, value); });\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"simpleView\", {\r\n get: function () { return this._simpleView; },\r\n set: function (value) {\r\n if (value !== this._simpleView) {\r\n this._simpleView = value;\r\n this.onViewChanged.raise1(function (listener) { return listener.notifyViewChanged(value); });\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"readOnly\", {\r\n get: function () { return this._readOnly; },\r\n set: function (value) {\r\n if (value !== this._readOnly) {\r\n this._readOnly = value;\r\n this.onReadOnlyChanged.raise1(function (listener) { return listener.notifyReadOnlyChanged(value); });\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"fullscreen\", {\r\n get: function () { return this._fullscreen; },\r\n set: function (value) { this._fullscreen = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"snapToGrid\", {\r\n get: function () { return this._snapToGrid; },\r\n set: function (value) { this._snapToGrid = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"showGrid\", {\r\n get: function () { return this._showGrid; },\r\n set: function (value) {\r\n var _this = this;\r\n if (value !== this._showGrid) {\r\n this._showGrid = value;\r\n this.onViewChanged.raise1(function (l) { return l.notifyGridChanged(_this.showGrid, _this.gridSize); });\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"gridSize\", {\r\n get: function () { return this._gridSize; },\r\n set: function (value) {\r\n var _this = this;\r\n if (value !== this._gridSize) {\r\n this._gridSize = value;\r\n this.onViewChanged.raise1(function (l) { return l.notifyGridChanged(_this.showGrid, _this.gridSize); });\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"gridSizeItems\", {\r\n get: function () { return this._gridSizeItems; },\r\n set: function (value) {\r\n if (value !== this._gridSizeItems)\r\n this._gridSizeItems = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"pageSizeItems\", {\r\n get: function () { return this._pageSizeItems; },\r\n set: function (value) {\r\n if (value !== this._pageSizeItems)\r\n this._pageSizeItems = value;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"viewUnits\", {\r\n get: function () { return this._viewUnits; },\r\n set: function (value) { this._viewUnits = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"connectorRoutingMode\", {\r\n get: function () { return this._connectorRoutingMode; },\r\n set: function (value) {\r\n if (value !== this._connectorRoutingMode) {\r\n this._connectorRoutingMode = value;\r\n this.onConnectorRoutingModeChanged.raise1(function (listener) { return listener.notifyConnectorRoutingModeChanged(value); });\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"shapeMinWidth\", {\r\n get: function () { return this._shapeMinWidth; },\r\n set: function (value) { this._shapeMinWidth = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"shapeMinHeight\", {\r\n get: function () { return this._shapeMinHeight; },\r\n set: function (value) { this._shapeMinHeight = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"shapeMaxWidth\", {\r\n get: function () { return this._shapeMaxWidth; },\r\n set: function (value) { this._shapeMaxWidth = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramSettings.prototype, \"shapeMaxHeight\", {\r\n get: function () { return this._shapeMaxHeight; },\r\n set: function (value) { this._shapeMaxHeight = value; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DiagramSettings.prototype.applyShapeSizeSettings = function (settings, units) {\r\n if (!settings)\r\n return;\r\n if (typeof (settings.shapeMaxHeight) === \"number\")\r\n this.shapeMaxHeight = ModelUtils_1.ModelUtils.getTwipsValue(units, settings.shapeMaxHeight);\r\n if (typeof (settings.shapeMinHeight) === \"number\")\r\n this.shapeMinHeight = ModelUtils_1.ModelUtils.getTwipsValue(units, settings.shapeMinHeight);\r\n if (typeof (settings.shapeMaxWidth) === \"number\")\r\n this.shapeMaxWidth = ModelUtils_1.ModelUtils.getTwipsValue(units, settings.shapeMaxWidth);\r\n if (typeof (settings.shapeMinWidth) === \"number\")\r\n this.shapeMinWidth = ModelUtils_1.ModelUtils.getTwipsValue(units, settings.shapeMinWidth);\r\n };\r\n DiagramSettings.correctZoomLevel = function (level) {\r\n return Math.min(10, Math.max(level, 0.01));\r\n };\r\n return DiagramSettings;\r\n}());\r\nexports.DiagramSettings = DiagramSettings;\r\nvar AutoZoomMode;\r\n(function (AutoZoomMode) {\r\n AutoZoomMode[AutoZoomMode[\"Disabled\"] = 0] = \"Disabled\";\r\n AutoZoomMode[AutoZoomMode[\"FitContent\"] = 1] = \"FitContent\";\r\n AutoZoomMode[AutoZoomMode[\"FitToWidth\"] = 2] = \"FitToWidth\";\r\n})(AutoZoomMode = exports.AutoZoomMode || (exports.AutoZoomMode = {}));\r\nvar ConnectorRoutingMode;\r\n(function (ConnectorRoutingMode) {\r\n ConnectorRoutingMode[ConnectorRoutingMode[\"None\"] = 0] = \"None\";\r\n ConnectorRoutingMode[ConnectorRoutingMode[\"ConnectorShapesOnly\"] = 1] = \"ConnectorShapesOnly\";\r\n ConnectorRoutingMode[ConnectorRoutingMode[\"AllShapesOnly\"] = 2] = \"AllShapesOnly\";\r\n // AllDiagramItems = 3,\r\n})(ConnectorRoutingMode = exports.ConnectorRoutingMode || (exports.ConnectorRoutingMode = {}));\r\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorRenderPoint = void 0;\r\nvar point_1 = __webpack_require__(1);\r\nvar ConnectorRenderPoint = /** @class */ (function (_super) {\r\n __extends(ConnectorRenderPoint, _super);\r\n function ConnectorRenderPoint(x, y, pointIndex, skipped) {\r\n if (pointIndex === void 0) { pointIndex = -1; }\r\n if (skipped === void 0) { skipped = false; }\r\n var _this = _super.call(this, x, y) || this;\r\n _this.pointIndex = pointIndex;\r\n _this.skipped = skipped;\r\n return _this;\r\n }\r\n // todo delete that\r\n ConnectorRenderPoint.prototype.offset = function (offsetX, offsetY) {\r\n _super.prototype.offset.call(this, offsetX, offsetY);\r\n this.pointIndex = -1;\r\n this.skipped = false;\r\n return this;\r\n };\r\n // todo delete that\r\n ConnectorRenderPoint.prototype.multiply = function (multiplierX, multiplierY) {\r\n _super.prototype.multiply.call(this, multiplierX, multiplierY);\r\n this.pointIndex = -1;\r\n this.skipped = false;\r\n return this;\r\n };\r\n ConnectorRenderPoint.prototype.clone = function () { return new ConnectorRenderPoint(this.x, this.y, this.pointIndex, this.skipped); };\r\n return ConnectorRenderPoint;\r\n}(point_1.Point));\r\nexports.ConnectorRenderPoint = ConnectorRenderPoint;\r\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ShapeParameterPoint = void 0;\r\nvar ShapeParameterPoint = /** @class */ (function () {\r\n function ShapeParameterPoint(key, point) {\r\n this.key = key;\r\n this.point = point;\r\n }\r\n return ShapeParameterPoint;\r\n}());\r\nexports.ShapeParameterPoint = ShapeParameterPoint;\r\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EmptyStyle = exports.StrokeStyle = exports.TextAlignment = exports.TextStyle = exports.Style = exports.DEFAULT_STROKE_DASHARRAY = exports.DEFAULT_STROKE_WIDTH = exports.StyleBase = void 0;\r\nvar color_1 = __webpack_require__(22);\r\nvar Svg_1 = __webpack_require__(111);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar StyleBase = /** @class */ (function () {\r\n function StyleBase() {\r\n this.createDefaultProperties();\r\n }\r\n StyleBase.prototype.clone = function () {\r\n var _this = this;\r\n var style = this.createInstance();\r\n this.forEach(function (propertyName) { style[propertyName] = _this[propertyName]; });\r\n return style;\r\n };\r\n StyleBase.prototype.forEach = function (callback) {\r\n for (var propertyName in this)\r\n if (Object.prototype.hasOwnProperty.call(this, propertyName))\r\n callback(propertyName);\r\n };\r\n Object.defineProperty(StyleBase.prototype, \"strokeWidthPx\", {\r\n get: function () {\r\n return 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StyleBase.prototype, \"strokeWidth\", {\r\n get: function () {\r\n return unit_converter_1.UnitConverter.pixelsToTwips(this.strokeWidthPx);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StyleBase.prototype, \"strokeOffset\", {\r\n get: function () {\r\n return 0.5;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n StyleBase.prototype.toHash = function () {\r\n var obj = this.toObject();\r\n return !obj ? \"\" : Object.keys(obj).map(function (k) { return k + \"|\" + obj[k]; }).join(\"\");\r\n };\r\n StyleBase.prototype.toObject = function () {\r\n var _this = this;\r\n var result = {};\r\n var modified = false;\r\n var defaultStyle = this.getDefaultInstance();\r\n this.forEach(function (key) {\r\n if (_this[key] !== defaultStyle[key]) {\r\n result[key] = _this[key];\r\n modified = true;\r\n }\r\n });\r\n return modified ? result : null;\r\n };\r\n StyleBase.prototype.fromObject = function (obj) {\r\n for (var key in obj)\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var value = Svg_1.isColorProperty(key) ? color_1.ColorUtils.stringToHash(obj[key]) : obj[key];\r\n this[key] = value;\r\n }\r\n };\r\n return StyleBase;\r\n}());\r\nexports.StyleBase = StyleBase;\r\nexports.DEFAULT_STROKE_WIDTH = 2;\r\nexports.DEFAULT_STROKE_DASHARRAY = \"\";\r\nvar Style = /** @class */ (function (_super) {\r\n __extends(Style, _super);\r\n function Style() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Style.prototype.createInstance = function () {\r\n return new Style();\r\n };\r\n Style.prototype.createDefaultProperties = function () {\r\n // Default values must be the same with css\r\n this[\"fill\"] = \"#ffffff\";\r\n this[\"stroke\"] = \"#000000\";\r\n this[\"stroke-width\"] = exports.DEFAULT_STROKE_WIDTH.toString();\r\n this[\"stroke-dasharray\"] = exports.DEFAULT_STROKE_DASHARRAY;\r\n };\r\n Style.prototype.getDefaultInstance = function () {\r\n return Style.defaultInstance;\r\n };\r\n Style.prototype.isDefaultStrokeDashArray = function () {\r\n return this[\"stroke-dasharray\"] === exports.DEFAULT_STROKE_DASHARRAY;\r\n };\r\n Style.prototype.resetStrokeDashArray = function () {\r\n this[\"stroke-dasharray\"] = exports.DEFAULT_STROKE_DASHARRAY;\r\n };\r\n Object.defineProperty(Style.prototype, \"strokeWidthPx\", {\r\n get: function () {\r\n return parseInt(this[\"stroke-width\"]);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Style.defaultInstance = new Style();\r\n return Style;\r\n}(StyleBase));\r\nexports.Style = Style;\r\nvar TextStyle = /** @class */ (function (_super) {\r\n __extends(TextStyle, _super);\r\n function TextStyle() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TextStyle.prototype.createInstance = function () {\r\n return new TextStyle();\r\n };\r\n TextStyle.prototype.createDefaultProperties = function () {\r\n // Default values must be the same with css\r\n this[\"fill\"] = \"#000000\";\r\n this[\"font-family\"] = \"Arial\";\r\n this[\"font-size\"] = \"10pt\";\r\n this[\"font-weight\"] = \"\";\r\n this[\"font-style\"] = \"\";\r\n this[\"text-decoration\"] = \"\";\r\n this[\"text-anchor\"] = \"middle\";\r\n };\r\n TextStyle.prototype.getDefaultInstance = function () {\r\n return TextStyle.defaultInstance;\r\n };\r\n TextStyle.prototype.getAlignment = function () {\r\n switch (this[\"text-anchor\"]) {\r\n case \"left\":\r\n return TextAlignment.Left;\r\n case \"right\":\r\n return TextAlignment.Right;\r\n default:\r\n return TextAlignment.Center;\r\n }\r\n };\r\n TextStyle.defaultInstance = new TextStyle();\r\n return TextStyle;\r\n}(StyleBase));\r\nexports.TextStyle = TextStyle;\r\nvar TextAlignment;\r\n(function (TextAlignment) {\r\n TextAlignment[TextAlignment[\"Left\"] = 0] = \"Left\";\r\n TextAlignment[TextAlignment[\"Right\"] = 1] = \"Right\";\r\n TextAlignment[TextAlignment[\"Center\"] = 2] = \"Center\";\r\n})(TextAlignment = exports.TextAlignment || (exports.TextAlignment = {}));\r\nvar StrokeStyle = /** @class */ (function (_super) {\r\n __extends(StrokeStyle, _super);\r\n function StrokeStyle(strokeWidthPx, strokeOffset) {\r\n var _this = _super.call(this) || this;\r\n _this._strokeWidthPx = strokeWidthPx;\r\n _this._strokeOffset = strokeOffset;\r\n return _this;\r\n }\r\n StrokeStyle.prototype.createInstance = function () {\r\n return new StrokeStyle();\r\n };\r\n StrokeStyle.prototype.createDefaultProperties = function () {\r\n };\r\n StrokeStyle.prototype.getDefaultInstance = function () {\r\n return TextStyle.defaultInstance;\r\n };\r\n Object.defineProperty(StrokeStyle.prototype, \"strokeWidthPx\", {\r\n get: function () {\r\n return this._strokeWidthPx || 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StrokeStyle.prototype, \"strokeOffset\", {\r\n get: function () {\r\n return this._strokeOffset || 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n StrokeStyle.default1pxInstance = new StrokeStyle(1, 0.5);\r\n StrokeStyle.default1pxNegativeOffsetInstance = new StrokeStyle(1, -0.5);\r\n StrokeStyle.default2pxInstance = new StrokeStyle(2);\r\n return StrokeStyle;\r\n}(Style));\r\nexports.StrokeStyle = StrokeStyle;\r\nvar EmptyStyle = /** @class */ (function (_super) {\r\n __extends(EmptyStyle, _super);\r\n function EmptyStyle(styles) {\r\n var _this = _super.call(this) || this;\r\n if (styles)\r\n Object.keys(styles).forEach(function (k) { return _this[k] = styles[k]; });\r\n return _this;\r\n }\r\n EmptyStyle.prototype.createInstance = function () {\r\n return new EmptyStyle();\r\n };\r\n EmptyStyle.prototype.createDefaultProperties = function () {\r\n };\r\n EmptyStyle.prototype.getDefaultInstance = function () {\r\n return TextStyle.defaultInstance;\r\n };\r\n EmptyStyle.defaultInstance = new EmptyStyle();\r\n return EmptyStyle;\r\n}(Style));\r\nexports.EmptyStyle = EmptyStyle;\r\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorProperties = exports.DEFAULT_CONNECTOR_ENDLINEENDING = exports.DEFAULT_CONNECTOR_STARTLINEENDING = exports.DEFAULT_CONNECTOR_LINEOPTION = exports.ConnectorLineEnding = exports.ConnectorLineOption = void 0;\r\nvar ConnectorLineOption;\r\n(function (ConnectorLineOption) {\r\n ConnectorLineOption[ConnectorLineOption[\"Straight\"] = 0] = \"Straight\";\r\n ConnectorLineOption[ConnectorLineOption[\"Orthogonal\"] = 1] = \"Orthogonal\";\r\n})(ConnectorLineOption = exports.ConnectorLineOption || (exports.ConnectorLineOption = {}));\r\nvar ConnectorLineEnding;\r\n(function (ConnectorLineEnding) {\r\n ConnectorLineEnding[ConnectorLineEnding[\"None\"] = 0] = \"None\";\r\n ConnectorLineEnding[ConnectorLineEnding[\"Arrow\"] = 1] = \"Arrow\";\r\n ConnectorLineEnding[ConnectorLineEnding[\"OutlinedTriangle\"] = 2] = \"OutlinedTriangle\";\r\n ConnectorLineEnding[ConnectorLineEnding[\"FilledTriangle\"] = 3] = \"FilledTriangle\";\r\n})(ConnectorLineEnding = exports.ConnectorLineEnding || (exports.ConnectorLineEnding = {}));\r\nexports.DEFAULT_CONNECTOR_LINEOPTION = ConnectorLineOption.Orthogonal;\r\nexports.DEFAULT_CONNECTOR_STARTLINEENDING = ConnectorLineEnding.None;\r\nexports.DEFAULT_CONNECTOR_ENDLINEENDING = ConnectorLineEnding.Arrow;\r\nvar ConnectorProperties = /** @class */ (function () {\r\n function ConnectorProperties() {\r\n this.lineOption = exports.DEFAULT_CONNECTOR_LINEOPTION;\r\n this.startLineEnding = exports.DEFAULT_CONNECTOR_STARTLINEENDING;\r\n this.endLineEnding = exports.DEFAULT_CONNECTOR_ENDLINEENDING;\r\n }\r\n ConnectorProperties.prototype.clone = function () {\r\n var clone = new ConnectorProperties();\r\n clone.lineOption = this.lineOption;\r\n clone.startLineEnding = this.startLineEnding;\r\n clone.endLineEnding = this.endLineEnding;\r\n return clone;\r\n };\r\n ConnectorProperties.prototype.forEach = function (callback) {\r\n for (var propertyName in this)\r\n if (Object.prototype.hasOwnProperty.call(this, propertyName))\r\n callback(propertyName);\r\n };\r\n ConnectorProperties.prototype.toObject = function () {\r\n var result = {};\r\n var modified = false;\r\n if (this.lineOption !== exports.DEFAULT_CONNECTOR_LINEOPTION) {\r\n result[\"lineOption\"] = this.lineOption;\r\n modified = true;\r\n }\r\n if (this.startLineEnding !== exports.DEFAULT_CONNECTOR_STARTLINEENDING) {\r\n result[\"startLineEnding\"] = this.startLineEnding;\r\n modified = true;\r\n }\r\n if (this.endLineEnding !== exports.DEFAULT_CONNECTOR_ENDLINEENDING) {\r\n result[\"endLineEnding\"] = this.endLineEnding;\r\n modified = true;\r\n }\r\n return modified ? result : null;\r\n };\r\n ConnectorProperties.prototype.fromObject = function (obj) {\r\n if (typeof obj[\"lineOption\"] === \"number\")\r\n this.lineOption = obj[\"lineOption\"];\r\n if (typeof obj[\"startLineEnding\"] === \"number\")\r\n this.startLineEnding = obj[\"startLineEnding\"];\r\n if (typeof obj[\"endLineEnding\"] === \"number\")\r\n this.endLineEnding = obj[\"endLineEnding\"];\r\n };\r\n return ConnectorProperties;\r\n}());\r\nexports.ConnectorProperties = ConnectorProperties;\r\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerDraggingState = void 0;\r\nvar MouseHandlerStateBase_1 = __webpack_require__(39);\r\nvar Event_1 = __webpack_require__(11);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar MouseHandlerDraggingState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerDraggingState, _super);\r\n function MouseHandlerDraggingState(handler, history) {\r\n var _this = _super.call(this, handler) || this;\r\n _this.history = history;\r\n return _this;\r\n }\r\n MouseHandlerDraggingState.prototype.canApplyChangesOnMouseMove = function (initPosition, position) {\r\n return !initPosition || !position ||\r\n Math.abs(initPosition.x - position.x) > MouseHandlerDraggingState.dragStartLimit ||\r\n Math.abs(initPosition.y - position.y) > MouseHandlerDraggingState.dragStartLimit;\r\n };\r\n MouseHandlerDraggingState.prototype.onAfterApplyChanges = function () {\r\n if (!this.modified)\r\n this.handler.raiseDragStart(this.getDraggingElementKeys());\r\n this.modified = true;\r\n this.mouseDownPoint = undefined;\r\n };\r\n MouseHandlerDraggingState.prototype.onMouseDown = function (evt) {\r\n this.mouseDownPoint = evt.modelPoint.clone();\r\n };\r\n MouseHandlerDraggingState.prototype.onMouseMove = function (evt) {\r\n this.mouseMoveEvent = evt;\r\n if (evt.button !== Event_1.MouseButton.Left) {\r\n this.cancelChanges();\r\n this.handler.switchToDefaultState();\r\n }\r\n else if (evt.button === Event_1.MouseButton.Left && this.canApplyChangesOnMouseMove(this.mouseDownPoint, evt.modelPoint)) {\r\n this.onApplyChanges(evt);\r\n this.onAfterApplyChanges();\r\n }\r\n };\r\n MouseHandlerDraggingState.prototype.onKeyDown = function (evt) {\r\n if (this.mouseMoveEvent && (evt.keyCode === 16 || evt.keyCode === 17 || evt.keyCode === 18)) // Shift, Ctrl, Alt\r\n this.performMouseMoveEvent(evt.modifiers);\r\n };\r\n MouseHandlerDraggingState.prototype.onKeyUp = function (evt) {\r\n if (this.mouseMoveEvent && (evt.keyCode === 16 || evt.keyCode === 17 || evt.keyCode === 18)) // Shift, Ctrl, Alt\r\n this.performMouseMoveEvent(evt.modifiers);\r\n };\r\n MouseHandlerDraggingState.prototype.onMouseUp = function (evt) {\r\n this.mouseDownPoint = undefined;\r\n this.mouseMoveEvent = undefined;\r\n this.handler.switchToDefaultState();\r\n };\r\n MouseHandlerDraggingState.prototype.performMouseMoveEvent = function (modifiers) {\r\n this.mouseMoveEvent.modifiers = modifiers;\r\n this.onMouseMove(this.mouseMoveEvent);\r\n };\r\n MouseHandlerDraggingState.prototype.start = function () {\r\n this.handler.beginStorePermissions();\r\n this.history.beginTransaction();\r\n };\r\n MouseHandlerDraggingState.prototype.finish = function () {\r\n this.checkStoredPermissionsOnFinish();\r\n if (this.modified) {\r\n this.onFinishWithChanges();\r\n this.modified = false;\r\n this.history.endTransaction();\r\n this.handler.raiseDragEnd(this.getDraggingElementKeys());\r\n }\r\n else\r\n this.history.endTransaction();\r\n this.handler.endStorePermissions();\r\n this.handler.clearInteractingItems();\r\n };\r\n MouseHandlerDraggingState.prototype.checkStoredPermissionsOnFinish = function () {\r\n if (!this.handler.isStoredPermissionsGranted()) {\r\n this.cancelChanges();\r\n this.modified = false;\r\n }\r\n };\r\n MouseHandlerDraggingState.prototype.onFinishWithChanges = function () { };\r\n MouseHandlerDraggingState.prototype.cancelChanges = function () {\r\n this.handler.lockPermissions();\r\n this.history.undoTransaction();\r\n this.handler.unlockPermissions();\r\n if (this.modified)\r\n this.handler.raiseDragEnd(this.getDraggingElementKeys());\r\n this.modified = false;\r\n };\r\n MouseHandlerDraggingState.prototype.getSnappedPoint = function (evt, point) {\r\n return this.handler.getSnappedPointOnDragPoint(evt, point);\r\n };\r\n MouseHandlerDraggingState.dragStartLimit = unit_converter_1.UnitConverter.pixelsToTwips(4);\r\n return MouseHandlerDraggingState;\r\n}(MouseHandlerStateBase_1.MouseHandlerCancellableState));\r\nexports.MouseHandlerDraggingState = MouseHandlerDraggingState;\r\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar list_1 = __webpack_require__(82);\r\nvar MathUtils = (function () {\r\n function MathUtils() {\r\n }\r\n MathUtils.round = function (value, digits) {\r\n if (digits === void 0) { digits = 0; }\r\n var factor = MathUtils.powFactor[digits];\r\n return Math.round(value * factor) / factor;\r\n };\r\n MathUtils.numberCloseTo = function (num, to, accuracy) {\r\n if (accuracy === void 0) { accuracy = 0.00001; }\r\n return Math.abs(num - to) < accuracy;\r\n };\r\n MathUtils.restrictValue = function (val, minVal, maxVal) {\r\n if (maxVal < minVal)\r\n maxVal = minVal;\r\n if (val > maxVal)\r\n return maxVal;\r\n else if (val < minVal)\r\n return minVal;\r\n return val;\r\n };\r\n MathUtils.getRandomInt = function (min, max) {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n };\r\n MathUtils.generateGuid = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = Math.random() * 16 | 0;\r\n var v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n };\r\n MathUtils.powFactor = list_1.ListUtils.initByCallback(20, function (ind) { return Math.pow(10, ind); });\r\n MathUtils.somePrimes = [1009, 1013,\r\n 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069,\r\n 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151,\r\n 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223,\r\n 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291,\r\n 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373,\r\n 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451,\r\n 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511,\r\n 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583,\r\n 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657,\r\n 1663, 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733,\r\n 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811,\r\n 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889,\r\n 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987,\r\n 1993, 1997, 1999, 2003];\r\n return MathUtils;\r\n}());\r\nexports.MathUtils = MathUtils;\r\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar math_1 = __webpack_require__(33);\r\nvar metrics_1 = __webpack_require__(83);\r\nvar point_1 = __webpack_require__(1);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar Segment = (function () {\r\n function Segment(startPoint, endPoint) {\r\n this.startPoint = startPoint;\r\n this.endPoint = endPoint;\r\n }\r\n Object.defineProperty(Segment.prototype, \"length\", {\r\n get: function () {\r\n return metrics_1.Metrics.euclideanDistance(this.startPoint, this.endPoint);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Segment.prototype, \"xLength\", {\r\n get: function () {\r\n return Math.abs(this.endPoint.x - this.startPoint.x);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Segment.prototype, \"yLength\", {\r\n get: function () {\r\n return Math.abs(this.endPoint.y - this.startPoint.y);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Segment.prototype, \"center\", {\r\n get: function () {\r\n return new point_1.Point(this.startPoint.x + (this.endPoint.x - this.startPoint.x) / 2, this.startPoint.y + (this.endPoint.y - this.startPoint.y) / 2);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Segment.prototype.isIntersected = function (segment) {\r\n return this.startPoint.equals(segment.startPoint) || this.endPoint.equals(segment.startPoint) ||\r\n this.startPoint.equals(segment.endPoint) || this.endPoint.equals(segment.endPoint) ||\r\n (this.intersectCore(segment) && segment.intersectCore(this));\r\n };\r\n Segment.prototype.containsPoint = function (point, accuracy) {\r\n if (accuracy === void 0) { accuracy = 0.0000001; }\r\n return this.startPoint.equals(point) || this.endPoint.equals(point) ||\r\n math_1.MathUtils.numberCloseTo(this.length, metrics_1.Metrics.euclideanDistance(this.startPoint, point) + metrics_1.Metrics.euclideanDistance(this.endPoint, point), accuracy);\r\n };\r\n Segment.prototype.isIntersectedByRect = function (rect) {\r\n if (rectangle_1.Rectangle.containsPoint(rect, this.startPoint) || rectangle_1.Rectangle.containsPoint(rect, this.endPoint))\r\n return true;\r\n var left = rect.x;\r\n var right = rect.x + rect.width;\r\n var top = rect.y;\r\n var bottom = rect.y + rect.height;\r\n return this.isIntersected(new Segment(new point_1.Point(left, top), new point_1.Point(left, bottom))) ||\r\n this.isIntersected(new Segment(new point_1.Point(right, top), new point_1.Point(right, bottom))) ||\r\n this.isIntersected(new Segment(new point_1.Point(left, top), new point_1.Point(right, top))) ||\r\n this.isIntersected(new Segment(new point_1.Point(left, bottom), new point_1.Point(right, bottom)));\r\n };\r\n Segment.prototype.intersectCore = function (segment) {\r\n if (this.startPoint.x === this.endPoint.x) {\r\n if (this.startPoint.x - segment.endPoint.x !== 0)\r\n return (this.startPoint.x - segment.startPoint.x) / (this.startPoint.x - segment.endPoint.x) <= 0;\r\n if (segment.endPoint.y - this.endPoint.y !== 0)\r\n return (segment.endPoint.y - this.startPoint.y) / (segment.endPoint.y - this.endPoint.y) <= 0;\r\n }\r\n if (this.startPoint.y === this.endPoint.y) {\r\n if (this.startPoint.y - segment.endPoint.y !== 0)\r\n return (this.startPoint.y - segment.startPoint.y) / (this.startPoint.y - segment.endPoint.y) <= 0;\r\n if (segment.endPoint.x - this.endPoint.x !== 0)\r\n return (segment.endPoint.x - this.startPoint.x) / (segment.endPoint.x - this.endPoint.x) <= 0;\r\n }\r\n var tg = (this.endPoint.y - this.startPoint.y) / (this.endPoint.x - this.startPoint.x);\r\n var y1 = this.startPoint.y + (segment.startPoint.x - this.startPoint.x) * tg;\r\n var y2 = this.startPoint.y + (segment.endPoint.x - this.startPoint.x) * tg;\r\n var dy1 = segment.startPoint.y - y1;\r\n var dy2 = segment.endPoint.y - y2;\r\n if (dy1 === 0 && dy2 === 0) {\r\n return (this.startPoint.y - y1) / (this.endPoint.y - y1) <= 0 ||\r\n (this.startPoint.y - y2) / (this.endPoint.y - y2) <= 0;\r\n }\r\n return dy1 === 0 || dy2 === 0 || dy1 / dy2 < 0;\r\n };\r\n return Segment;\r\n}());\r\nexports.Segment = Segment;\r\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DiagramLocalizationService = void 0;\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar Enums_1 = __webpack_require__(46);\r\nvar DiagramLocalizationService = /** @class */ (function () {\r\n function DiagramLocalizationService() {\r\n }\r\n DiagramLocalizationService.unitItems = {};\r\n DiagramLocalizationService.formatUnit = function (value) { return value.toString(); };\r\n DiagramLocalizationService.shapeTexts = {};\r\n return DiagramLocalizationService;\r\n}());\r\nexports.DiagramLocalizationService = DiagramLocalizationService;\r\nDiagramLocalizationService.unitItems[Enums_1.DiagramUnit.In] = \"in\";\r\nDiagramLocalizationService.unitItems[Enums_1.DiagramUnit.Cm] = \"cm\";\r\nDiagramLocalizationService.unitItems[Enums_1.DiagramUnit.Px] = \"px\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Text] = \"Text\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Rectangle] = \"Rectangle\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Ellipse] = \"Ellipse\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Cross] = \"Cross\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Triangle] = \"Triangle\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Diamond] = \"Diamond\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Heart] = \"Heart\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Pentagon] = \"Pentagon\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Hexagon] = \"Hexagon\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Octagon] = \"Octagon\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Star] = \"Star\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.ArrowLeft] = \"Left Arrow\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.ArrowUp] = \"Up Arrow\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.ArrowRight] = \"Right Arrow\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.ArrowDown] = \"Down Arrow\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.ArrowUpDown] = \"Up Down Arrow\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.ArrowLeftRight] = \"Left Right Arrow\";\r\n// Flowchart\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Process] = \"Process\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Decision] = \"Decision\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Terminator] = \"Terminator\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.PredefinedProcess] = \"Predefined Process\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Document] = \"Document\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.MultipleDocuments] = \"Multiple Documents\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.ManualInput] = \"Manual Input\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Preparation] = \"Preparation\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Data] = \"Data\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Database] = \"Database\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.HardDisk] = \"Hard Disk\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.InternalStorage] = \"Internal Storage\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.PaperTape] = \"Paper Tape\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.ManualOperation] = \"Manual Operation\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Delay] = \"Delay\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.StoredData] = \"Stored Data\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Display] = \"Display\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Merge] = \"Merge\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Connector] = \"Connector\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Or] = \"Or\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.SummingJunction] = \"Summing Junction\";\r\n// Containers\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Container] = \"Container\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.VerticalContainer] = \"Vertical Container\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.HorizontalContainer] = \"Horizontal Container\";\r\n// Shapes with images\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Card] = \"Person's Name\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.CardWithImageOnLeft] = \"Card with Image on the Left\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.CardWithImageOnTop] = \"Card with Image on the Top\";\r\nDiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.CardWithImageOnRight] = \"Card with Image on the Right\";\r\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ShapeParameters = exports.ShapeParameter = void 0;\r\nvar ShapeParameter = /** @class */ (function () {\r\n function ShapeParameter(key, value) {\r\n this.key = key;\r\n this.value = value;\r\n }\r\n return ShapeParameter;\r\n}());\r\nexports.ShapeParameter = ShapeParameter;\r\nvar ShapeParameters = /** @class */ (function () {\r\n function ShapeParameters() {\r\n this.items = {};\r\n }\r\n ShapeParameters.prototype.add = function (parameter) {\r\n this.items[parameter.key] = parameter;\r\n };\r\n ShapeParameters.prototype.addRange = function (parameters) {\r\n for (var i = 0; i < parameters.length; i++)\r\n this.add(parameters[i]);\r\n };\r\n ShapeParameters.prototype.get = function (key) {\r\n return this.items[key];\r\n };\r\n ShapeParameters.prototype.forEach = function (callback) {\r\n for (var key in this.items)\r\n if (Object.prototype.hasOwnProperty.call(this.items, key))\r\n callback(this.items[key]);\r\n };\r\n ShapeParameters.prototype.clone = function () {\r\n var result = new ShapeParameters();\r\n this.forEach(function (p) { result.add(new ShapeParameter(p.key, p.value)); });\r\n return result;\r\n };\r\n ShapeParameters.prototype.toObject = function () {\r\n var result = {};\r\n var modified = false;\r\n this.forEach(function (p) {\r\n result[p.key] = { \"value\": p.value };\r\n modified = true;\r\n });\r\n return modified ? result : null;\r\n };\r\n ShapeParameters.prototype.fromObject = function (obj) {\r\n this.forEach(function (p) {\r\n var paramObj = obj[p.key];\r\n if (paramObj)\r\n if (typeof paramObj[\"value\"] === \"number\")\r\n p.value = paramObj[\"value\"];\r\n });\r\n };\r\n return ShapeParameters;\r\n}());\r\nexports.ShapeParameters = ShapeParameters;\r\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectionMode = exports.PositionInfo = exports.Edge = void 0;\r\nvar Edge = /** @class */ (function () {\r\n function Edge(key, from, to, weight) {\r\n if (weight === void 0) { weight = 1; }\r\n this.weight = weight;\r\n this.key = key;\r\n this.from = from;\r\n this.to = to;\r\n }\r\n Edge.prototype.getHashKey = function () {\r\n return this.from + \"_\" + this.to;\r\n };\r\n Edge.prototype.reverse = function () {\r\n return new Edge(this.key, this.to, this.from, this.weight);\r\n };\r\n return Edge;\r\n}());\r\nexports.Edge = Edge;\r\nvar PositionInfo = /** @class */ (function () {\r\n function PositionInfo(item, position) {\r\n this.item = item;\r\n this.position = position;\r\n }\r\n return PositionInfo;\r\n}());\r\nexports.PositionInfo = PositionInfo;\r\nvar ConnectionMode;\r\n(function (ConnectionMode) {\r\n ConnectionMode[ConnectionMode[\"Outgoing\"] = 1] = \"Outgoing\";\r\n ConnectionMode[ConnectionMode[\"Incoming\"] = 2] = \"Incoming\";\r\n ConnectionMode[ConnectionMode[\"OutgoingAndIncoming\"] = 3] = \"OutgoingAndIncoming\";\r\n})(ConnectionMode = exports.ConnectionMode || (exports.ConnectionMode = {}));\r\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GroupPrimitive = void 0;\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar Primitive_1 = __webpack_require__(24);\r\nvar GroupPrimitive = /** @class */ (function (_super) {\r\n __extends(GroupPrimitive, _super);\r\n function GroupPrimitive(children, className, zIndex, clipPathId, onApplyProperties, onBeforeDispose) {\r\n var _this = _super.call(this, null, className, clipPathId, onApplyProperties) || this;\r\n _this.zIndex = zIndex;\r\n _this.onBeforeDispose = onBeforeDispose;\r\n _this.children = children;\r\n return _this;\r\n }\r\n GroupPrimitive.prototype.createMainElement = function () {\r\n return document.createElementNS(RenderHelper_1.svgNS, \"g\");\r\n };\r\n GroupPrimitive.prototype.applyElementProperties = function (element, measurer) {\r\n if (this.zIndex || this.zIndex === 0)\r\n element.style.setProperty(\"z-index\", this.zIndex.toString());\r\n _super.prototype.applyElementProperties.call(this, element, measurer);\r\n };\r\n GroupPrimitive.prototype.dispose = function () {\r\n if (this.onBeforeDispose)\r\n this.onBeforeDispose();\r\n _super.prototype.dispose.call(this);\r\n };\r\n return GroupPrimitive;\r\n}(Primitive_1.SvgPrimitive));\r\nexports.GroupPrimitive = GroupPrimitive;\r\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerCancellableState = exports.MouseHandlerStateBase = void 0;\r\nvar key_1 = __webpack_require__(25);\r\nvar MouseHandlerStateBase = /** @class */ (function () {\r\n function MouseHandlerStateBase(handler) {\r\n this.handler = handler;\r\n }\r\n MouseHandlerStateBase.prototype.start = function () { };\r\n MouseHandlerStateBase.prototype.finish = function () { };\r\n MouseHandlerStateBase.prototype.onMouseClick = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onMouseDblClick = function (_evt) {\r\n this.handler.switchToDefaultState();\r\n };\r\n MouseHandlerStateBase.prototype.onMouseDown = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onMouseUp = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onMouseMove = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onMouseWheel = function (_evt) { return false; };\r\n MouseHandlerStateBase.prototype.onDragStart = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onDragEnd = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onShortcut = function (_shortcutCode) { return false; };\r\n MouseHandlerStateBase.prototype.onKeyDown = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onKeyUp = function (_evt) { };\r\n MouseHandlerStateBase.prototype.onConnectionPointsShow = function (key, points) { };\r\n MouseHandlerStateBase.prototype.onConnectionTargetShow = function (key, info) { };\r\n return MouseHandlerStateBase;\r\n}());\r\nexports.MouseHandlerStateBase = MouseHandlerStateBase;\r\nvar MouseHandlerCancellableState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerCancellableState, _super);\r\n function MouseHandlerCancellableState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerCancellableState.prototype.onShortcut = function (code) {\r\n if (code === key_1.KeyCode.Esc) {\r\n this.cancelChanges();\r\n this.handler.switchToDefaultState();\r\n return true;\r\n }\r\n return false;\r\n };\r\n return MouseHandlerCancellableState;\r\n}(MouseHandlerStateBase));\r\nexports.MouseHandlerCancellableState = MouseHandlerCancellableState;\r\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SearchUtils = (function () {\r\n function SearchUtils() {\r\n }\r\n SearchUtils.binaryIndexOf = function (array, comparer, minIndex, maxIndex) {\r\n if (minIndex === void 0) { minIndex = 0; }\r\n if (maxIndex === void 0) { maxIndex = -2; }\r\n var findFromZeroPosition = minIndex === 0;\r\n if (maxIndex === -2)\r\n maxIndex = array.length - 1;\r\n while (minIndex <= maxIndex) {\r\n var currentIndex = (minIndex + ((maxIndex - minIndex) >> 1));\r\n var compare = comparer(array[currentIndex]);\r\n if (compare < 0)\r\n minIndex = currentIndex + 1;\r\n else if (compare > 0)\r\n maxIndex = currentIndex - 1;\r\n else\r\n return currentIndex;\r\n }\r\n return findFromZeroPosition ? ~minIndex : -1;\r\n };\r\n SearchUtils.normedBinaryIndexOf = function (array, comparer, minIndex, maxIndex) {\r\n if (minIndex === void 0) { minIndex = 0; }\r\n if (maxIndex === void 0) { maxIndex = -2; }\r\n var index = SearchUtils.binaryIndexOf(array, comparer, minIndex, maxIndex);\r\n return SearchUtils.binaryIndexNormalizator(index);\r\n };\r\n SearchUtils.binaryIndexNormalizator = function (index) {\r\n return index < 0 ? ~index - 1 : index;\r\n };\r\n SearchUtils.normedInterpolationIndexOf = function (array, getValue, toFind, lowIndex, highIndex) {\r\n if (lowIndex === void 0) { lowIndex = 0; }\r\n if (highIndex === void 0) { highIndex = -2; }\r\n if (highIndex === -2)\r\n highIndex = array.length - 1;\r\n var firstObject = array[Math.min(lowIndex, highIndex)];\r\n if (firstObject === undefined || toFind < getValue(firstObject))\r\n return -1;\r\n var lowValue = getValue(array[lowIndex]);\r\n var highValue = getValue(array[highIndex]);\r\n while (true) {\r\n if (toFind > lowValue && toFind < highValue) {\r\n var midIndex = lowIndex + Math.floor(((toFind - lowValue) * (highIndex - lowIndex)) / (highValue - lowValue));\r\n var midValue = getValue(array[midIndex]);\r\n if (toFind > midValue) {\r\n lowIndex = midIndex + 1;\r\n lowValue = getValue(array[lowIndex]);\r\n if (toFind < lowValue)\r\n return midIndex;\r\n }\r\n else if (toFind < midValue) {\r\n highIndex = midIndex - 1;\r\n highValue = getValue(array[highIndex]);\r\n }\r\n else\r\n return midIndex;\r\n }\r\n else\r\n return toFind === lowValue ? lowIndex : highIndex;\r\n }\r\n };\r\n return SearchUtils;\r\n}());\r\nexports.SearchUtils = SearchUtils;\r\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CanvasManagerBase = exports.PAGE_BG_TEXTFLOOR_FILTER_ID = void 0;\r\nvar TextFilterPrimitive_1 = __webpack_require__(172);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nexports.PAGE_BG_TEXTFLOOR_FILTER_ID = \"page-text-flood\";\r\nvar CanvasManagerBase = /** @class */ (function () {\r\n function CanvasManagerBase(actualZoom, dom) {\r\n this.elements = {};\r\n this.actualZoom = actualZoom;\r\n this.dom = dom;\r\n }\r\n CanvasManagerBase.prototype.createAndChangePrimitivesElements = function (primitives, parent) {\r\n var _this = this;\r\n primitives.forEach(function (primitive) {\r\n _this.createAndChangePrimitiveElement(primitive, parent);\r\n });\r\n };\r\n CanvasManagerBase.prototype.createPrimitiveElement = function (primitive, parent, sibling) {\r\n return this.dom.createElement(primitive, parent, sibling);\r\n };\r\n CanvasManagerBase.prototype.createAndChangePrimitiveElement = function (primitive, parent, sibling) {\r\n var element = this.createPrimitiveElement(primitive, parent, sibling);\r\n this.dom.changeByPrimitive(element, primitive);\r\n return element;\r\n };\r\n CanvasManagerBase.prototype.changePrimitiveElement = function (primitive, element) {\r\n this.dom.changeByPrimitive(element, primitive);\r\n };\r\n CanvasManagerBase.prototype.getOrCreateElement = function (key, primitive, parent, sibling) {\r\n var element = (key && this.elements[key]) || (this.elements[key] = this.createPrimitiveElement(primitive, parent, sibling));\r\n this.changePrimitiveElement(primitive, element);\r\n return element;\r\n };\r\n CanvasManagerBase.prototype.createTextFloodFilter = function (key, parent, pageColor) {\r\n this.getOrCreateElement(key, new TextFilterPrimitive_1.TextFloodFilterPrimitive(exports.PAGE_BG_TEXTFLOOR_FILTER_ID, pageColor), parent);\r\n };\r\n CanvasManagerBase.prototype.getAbsoluteSize = function (modelSize) {\r\n return modelSize\r\n .clone().applyConverter(unit_converter_1.UnitConverter.twipsToPixelsF)\r\n .clone().multiply(this.actualZoom, this.actualZoom);\r\n };\r\n return CanvasManagerBase;\r\n}());\r\nexports.CanvasManagerBase = CanvasManagerBase;\r\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TextOwner = void 0;\r\nvar TextOwner;\r\n(function (TextOwner) {\r\n TextOwner[TextOwner[\"Shape\"] = 0] = \"Shape\";\r\n TextOwner[TextOwner[\"Connector\"] = 1] = \"Connector\";\r\n TextOwner[TextOwner[\"ExtensionLine\"] = 2] = \"ExtensionLine\";\r\n TextOwner[TextOwner[\"Resize\"] = 3] = \"Resize\";\r\n})(TextOwner = exports.TextOwner || (exports.TextOwner = {}));\r\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Data = exports.SetAbsoluteY = exports.SetAbsoluteX = void 0;\r\nvar dom_1 = __webpack_require__(26);\r\nvar common_1 = __webpack_require__(48);\r\nfunction IsNumber(str) {\r\n return !isNaN(parseFloat(str)) && isFinite(str);\r\n}\r\nfunction SetAbsoluteX(element, x) {\r\n element.style.left = prepareClientPosForElement(x, element, true) + \"px\";\r\n}\r\nexports.SetAbsoluteX = SetAbsoluteX;\r\nfunction SetAbsoluteY(element, y) {\r\n element.style.top = prepareClientPosForElement(y, element, false) + \"px\";\r\n}\r\nexports.SetAbsoluteY = SetAbsoluteY;\r\nfunction prepareClientPosForElement(pos, element, isX) {\r\n pos -= getPositionElementOffset(element, isX);\r\n return pos;\r\n}\r\nfunction getPositionElementOffset(element, isX) {\r\n var div = createElementMock(element);\r\n if (div.style.position === \"static\")\r\n div.style.position = \"absolute\";\r\n element.parentNode.appendChild(div);\r\n var realPos = isX ? dom_1.DomUtils.getAbsolutePositionX(div) : dom_1.DomUtils.getAbsolutePositionY(div);\r\n element.parentNode.removeChild(div);\r\n return Math.round(realPos);\r\n}\r\nfunction createElementMock(element) {\r\n var div = document.createElement(\"DIV\");\r\n div.style.top = \"0px\";\r\n div.style.left = \"0px\";\r\n div.style.visibility = \"hidden\";\r\n div.style.position = dom_1.DomUtils.getCurrentStyle(element).position;\r\n return div;\r\n}\r\nvar Data = /** @class */ (function () {\r\n function Data() {\r\n }\r\n Data.ArrayInsert = function (array, element, position) {\r\n if (0 <= position && position < array.length) {\r\n for (var i = array.length; i > position; i--)\r\n array[i] = array[i - 1];\r\n array[position] = element;\r\n }\r\n else\r\n array.push(element);\r\n };\r\n Data.ArrayRemove = function (array, element) {\r\n var index = Data.ArrayIndexOf(array, element);\r\n if (index > -1)\r\n Data.ArrayRemoveAt(array, index);\r\n };\r\n Data.ArrayRemoveAt = function (array, index) {\r\n if (index >= 0 && index < array.length) {\r\n for (var i = index; i < array.length - 1; i++)\r\n array[i] = array[i + 1];\r\n array.pop();\r\n }\r\n };\r\n Data.ArrayClear = function (array) {\r\n while (array.length > 0)\r\n array.pop();\r\n };\r\n Data.ArrayIndexOf = function (array, element, comparer) {\r\n if (!comparer)\r\n for (var i = 0; i < array.length; i++) {\r\n if (array[i] === element)\r\n return i;\r\n }\r\n else\r\n for (var i = 0; i < array.length; i++)\r\n if (comparer(array[i], element))\r\n return i;\r\n return -1;\r\n };\r\n Data.ArrayContains = function (array, element) {\r\n return Data.ArrayIndexOf(array, element) >= 0;\r\n };\r\n Data.ArrayEqual = function (array1, array2) {\r\n var count1 = array1.length;\r\n var count2 = array2.length;\r\n if (count1 !== count2)\r\n return false;\r\n for (var i = 0; i < count1; i++)\r\n if (array1[i] !== array2[i])\r\n return false;\r\n return true;\r\n };\r\n Data.ArraySame = function (array1, array2) {\r\n if (array1.length !== array2.length)\r\n return false;\r\n return array1.every(function (elem) { return Data.ArrayContains(array2, elem); });\r\n };\r\n Data.ArrayGetIntegerEdgeValues = function (array) {\r\n var arrayToSort = Data.CollectionToArray(array);\r\n Data.ArrayIntegerAscendingSort(arrayToSort);\r\n return {\r\n start: arrayToSort[0],\r\n end: arrayToSort[arrayToSort.length - 1]\r\n };\r\n };\r\n Data.ArrayIntegerAscendingSort = function (array) {\r\n Data.ArrayIntegerSort(array, false);\r\n };\r\n Data.ArrayIntegerSort = function (array, desc) {\r\n array.sort(function (i1, i2) {\r\n var res = 0;\r\n if (i1 > i2)\r\n res = 1;\r\n else if (i1 < i2)\r\n res = -1;\r\n if (desc)\r\n res *= -1;\r\n return res;\r\n });\r\n };\r\n Data.CollectionsUnionToArray = function (firstCollection, secondCollection) {\r\n var result = [];\r\n var firstCollectionLength = firstCollection.length;\r\n var secondCollectionLength = secondCollection.length;\r\n for (var i = 0; i < firstCollectionLength + secondCollectionLength; i++)\r\n if (i < firstCollectionLength)\r\n result.push(firstCollection[i]);\r\n else\r\n result.push(secondCollection[i - firstCollectionLength]);\r\n return result;\r\n };\r\n Data.CollectionToArray = function (collection) {\r\n var array = [];\r\n for (var i = 0; i < collection.length; i++)\r\n array.push(collection[i]);\r\n return array;\r\n };\r\n Data.CreateHashTableFromArray = function (array) {\r\n var hash = [];\r\n for (var i = 0; i < array.length; i++)\r\n hash[array[i]] = 1;\r\n return hash;\r\n };\r\n Data.CreateIndexHashTableFromArray = function (array) {\r\n var hash = [];\r\n for (var i = 0; i < array.length; i++)\r\n hash[array[i]] = i;\r\n return hash;\r\n };\r\n Data.ArrayToHash = function (array, getKeyFunc, getValueFunc) {\r\n if (!(array instanceof Array))\r\n return {};\r\n return array.reduce(function (map, element, index) {\r\n var key = getKeyFunc(element, index);\r\n var value = getValueFunc(element, index);\r\n map[key] = value;\r\n return map;\r\n }, {});\r\n };\r\n Data.Sum = function (array, getValueFunc) {\r\n if (!(array instanceof Array))\r\n return 0;\r\n return array.reduce(function (prevValue, item) {\r\n var value = getValueFunc ? getValueFunc(item) : item;\r\n if (!IsNumber(value))\r\n value = 0;\r\n return prevValue + value;\r\n }, 0);\r\n };\r\n Data.Min = function (array, getValueFunc) { return Data.CalculateArrayMinMax(array, getValueFunc, false); };\r\n Data.Max = function (array, getValueFunc) { return Data.CalculateArrayMinMax(array, getValueFunc, true); };\r\n Data.NearestLeftBinarySearchComparer = function (array, index, value) {\r\n var arrayElement = array[index];\r\n var leftPoint = arrayElement < value;\r\n var lastLeftPoint = leftPoint && index === array.length - 1;\r\n var nearestLeftPoint = lastLeftPoint || (leftPoint && array[index + 1] >= value);\r\n if (nearestLeftPoint)\r\n return 0;\r\n else\r\n return arrayElement < value ? -1 : 1;\r\n };\r\n Data.ArrayBinarySearch = function (array, value, binarySearchComparer, startIndex, length) {\r\n if (!binarySearchComparer)\r\n binarySearchComparer = Data.defaultBinarySearchComparer;\r\n if (!common_1.isDefined(startIndex))\r\n startIndex = 0;\r\n if (!common_1.isDefined(length))\r\n length = array.length - startIndex;\r\n var endIndex = (startIndex + length) - 1;\r\n while (startIndex <= endIndex) {\r\n var middle = (startIndex + ((endIndex - startIndex) >> 1));\r\n var compareResult = binarySearchComparer(array, middle, value);\r\n if (compareResult === 0)\r\n return middle;\r\n if (compareResult < 0)\r\n startIndex = middle + 1;\r\n else\r\n endIndex = middle - 1;\r\n }\r\n return -(startIndex + 1);\r\n };\r\n Data.ArrayFlatten = function (arrayOfArrays) {\r\n var result = [];\r\n arrayOfArrays.forEach(function (arr) {\r\n result = result.concat(arr);\r\n });\r\n return result;\r\n };\r\n Data.GetDistinctArray = function (array) {\r\n var resultArray = [];\r\n for (var i = 0; i < array.length; i++) {\r\n var currentEntry = array[i];\r\n if (Data.ArrayIndexOf(resultArray, currentEntry) === -1)\r\n resultArray.push(currentEntry);\r\n }\r\n return resultArray;\r\n };\r\n Data.ForEach = function (arr, callback) {\r\n if (Array.prototype.forEach)\r\n Array.prototype.forEach.call(arr, callback);\r\n else\r\n for (var i = 0, len = arr.length; i < len; i++)\r\n callback(arr[i], i, arr);\r\n };\r\n Data.MergeHashTables = function (target, object) {\r\n if (!object || typeof (object) === \"string\")\r\n return target;\r\n if (!target)\r\n target = {};\r\n for (var key in object)\r\n if (key && !(key in target))\r\n target[key] = object[key];\r\n return target;\r\n };\r\n Data.Range = function (count, start) {\r\n count = parseInt(count) || 0;\r\n start = parseInt(start) || 0;\r\n if (count < 0)\r\n count = 0;\r\n if (start < 0)\r\n start = 0;\r\n var result = Array(count);\r\n return result.map(function (_val, i) { return start + i; });\r\n };\r\n Data.CalculateArrayMinMax = function (array, getValueFunc, isMax) {\r\n if (!(array instanceof Array))\r\n return 0;\r\n var startValue = isMax ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY;\r\n return array.reduce(function (prevValue, item) {\r\n var value = getValueFunc ? getValueFunc(item) : item;\r\n if (!IsNumber(value))\r\n value = startValue;\r\n var func = isMax ? Math.max : Math.min;\r\n return func(value, prevValue);\r\n }, startValue);\r\n };\r\n Data.byRange = function (value, min, max) {\r\n return Math.min(Math.max(value, min), max);\r\n };\r\n Data.defaultBinarySearchComparer = function (array, index, value) {\r\n var arrayElement = array[index];\r\n if (arrayElement === value)\r\n return 0;\r\n else\r\n return arrayElement < value ? -1 : 1;\r\n };\r\n Data.cssTextToObject = function (cssText) {\r\n if (!cssText)\r\n return {};\r\n cssText = cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g, \"\").replace(/\\s+/g, \" \");\r\n return cssText.split(\";\").reduce(function (acc, val) {\r\n if (val) {\r\n var matches = /\\s*([^:]+?)\\s*:\\s*([^;]*)\\s*$/.exec(val);\r\n if (matches) {\r\n var name_1 = matches[1], value = matches[2];\r\n name_1 && value && (acc[name_1.trim()] = value.trim());\r\n }\r\n return acc;\r\n }\r\n return acc;\r\n }, {});\r\n };\r\n Data.objectToCssText = function (obj) {\r\n if (!obj)\r\n return \"\";\r\n return Object.keys(obj).reduce(function (acc, key) {\r\n var name = key.trim();\r\n var value = obj[key];\r\n if (name && value)\r\n acc.push(name + \": \" + value.toString().trim());\r\n return acc;\r\n }, []).join(\"; \");\r\n };\r\n return Data;\r\n}());\r\nexports.Data = Data;\r\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectionPoint = void 0;\r\nvar point_1 = __webpack_require__(1);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ConnectionPoint = /** @class */ (function (_super) {\r\n __extends(ConnectionPoint, _super);\r\n function ConnectionPoint(x, y, side) {\r\n if (side === void 0) { side = DiagramItem_1.ConnectionPointSide.Undefined; }\r\n var _this = _super.call(this, x, y) || this;\r\n _this.side = side;\r\n return _this;\r\n }\r\n // todo delete that\r\n ConnectionPoint.prototype.offset = function (offsetX, offsetY) {\r\n _super.prototype.offset.call(this, offsetX, offsetY);\r\n this.side = DiagramItem_1.ConnectionPointSide.Undefined;\r\n return this;\r\n };\r\n // todo delete that\r\n ConnectionPoint.prototype.multiply = function (multiplierX, multiplierY) {\r\n _super.prototype.multiply.call(this, multiplierX, multiplierY);\r\n this.side = DiagramItem_1.ConnectionPointSide.Undefined;\r\n return this;\r\n };\r\n ConnectionPoint.prototype.clone = function () { return new ConnectionPoint(this.x, this.y, this.side); };\r\n ConnectionPoint.prototype.toPoint = function () { return new point_1.Point(this.x, this.y); };\r\n return ConnectionPoint;\r\n}(point_1.Point));\r\nexports.ConnectionPoint = ConnectionPoint;\r\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ImageCache = exports.CacheImageInfo = void 0;\r\nvar base64_1 = __webpack_require__(84);\r\nvar ImageInfo_1 = __webpack_require__(49);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar CacheImageInfo = /** @class */ (function () {\r\n function CacheImageInfo(base64, actualId, imageUrl, referenceInfo, isLoaded) {\r\n this._base64 = base64 !== undefined ? base64_1.Base64Utils.normalizeToDataUrl(base64, \"image/png\") : undefined;\r\n this.actualId = actualId;\r\n this._referenceInfo = referenceInfo;\r\n this._isLoaded = isLoaded !== undefined ? isLoaded : false;\r\n this.imageUrl = imageUrl;\r\n }\r\n Object.defineProperty(CacheImageInfo.prototype, \"isLoaded\", {\r\n get: function () { return this._referenceInfo ? this._referenceInfo._isLoaded : this._isLoaded; },\r\n set: function (val) { this._isLoaded = val; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CacheImageInfo.prototype, \"base64\", {\r\n get: function () { return this._base64; },\r\n set: function (val) { this._base64 = base64_1.Base64Utils.normalizeToDataUrl(val, \"image/png\"); },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CacheImageInfo.prototype, \"referenceInfo\", {\r\n get: function () { return this._referenceInfo; },\r\n set: function (val) {\r\n this._referenceInfo = val;\r\n this._base64 = undefined;\r\n this._isLoaded = undefined;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CacheImageInfo.prototype, \"isLoading\", {\r\n get: function () { return this._referenceInfo ? this.referenceInfo._isLoading : this._isLoading; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CacheImageInfo.prototype.startLoading = function () {\r\n if (this._referenceInfo)\r\n this._referenceInfo.startLoading();\r\n else\r\n this._isLoading = true;\r\n };\r\n CacheImageInfo.prototype.finalizeLoading = function () {\r\n if (this._referenceInfo)\r\n this._referenceInfo.finalizeLoading();\r\n else\r\n this._isLoading = false;\r\n };\r\n return CacheImageInfo;\r\n}());\r\nexports.CacheImageInfo = CacheImageInfo;\r\nvar ImageCache = /** @class */ (function () {\r\n function ImageCache() {\r\n this.emptyImageId = 0;\r\n this.lastActualId = 0;\r\n this.onReadyStateChanged = new Utils_1.EventDispatcher();\r\n this.cache = [];\r\n this.nonLoadedImages = [];\r\n var emptyImage = this.createUnloadedInfoByBase64(ImageInfo_1.ImageInfo.transparentOnePixelImage);\r\n emptyImage.isLoaded = true;\r\n }\r\n ImageCache.prototype.reset = function () {\r\n this.cache.splice(1);\r\n this.nonLoadedImages = [];\r\n this.lastActualId = 1;\r\n };\r\n Object.defineProperty(ImageCache.prototype, \"emptyImage\", {\r\n get: function () { return this.cache[this.emptyImageId]; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ImageCache.prototype.getImageData = function (id) {\r\n return this.cache[id];\r\n };\r\n ImageCache.prototype.createUnloadedInfoByUrl = function (imageUrl) {\r\n var info = this.findInfoByUrl(imageUrl);\r\n if (info)\r\n return info;\r\n return this.registerImageData(new CacheImageInfo(undefined, this.getNextActualId(), imageUrl));\r\n };\r\n ImageCache.prototype.createUnloadedInfoByBase64 = function (base64) {\r\n var info = this.findInfoByBase64(base64);\r\n if (info)\r\n return info;\r\n return this.registerImageData(new CacheImageInfo(base64, this.getNextActualId()));\r\n };\r\n ImageCache.prototype.createUnloadedInfoByShapeImageInfo = function (imageInfo) {\r\n var data = imageInfo.exportUrl;\r\n return base64_1.Base64Utils.checkPrependDataUrl(data) ?\r\n this.createUnloadedInfoByBase64(data) :\r\n this.createUnloadedInfoByUrl(data);\r\n };\r\n ImageCache.prototype.registerImageData = function (data) {\r\n var existingData = this.cache[data.actualId];\r\n if (!existingData)\r\n existingData = data;\r\n if (data.actualId !== undefined)\r\n this.cache[data.actualId] = existingData;\r\n if (data.actualId !== 0) {\r\n this.nonLoadedImages.push(data);\r\n if (this.nonLoadedImages.length === 1)\r\n this.raiseReadyStateChanged(false);\r\n }\r\n return existingData;\r\n };\r\n ImageCache.prototype.loadAllImages = function (loader) {\r\n var _this = this;\r\n this.cache.forEach(function (cacheInfo) {\r\n if (_this.emptyImageId !== cacheInfo.actualId && !cacheInfo.isLoaded && !cacheInfo.isLoading)\r\n loader.load(cacheInfo);\r\n });\r\n };\r\n ImageCache.prototype.finalizeLoading = function (existingInfo, loadedInfo) {\r\n existingInfo.finalizeLoading();\r\n existingInfo.isLoaded = true;\r\n var imageInfoIndex = this.nonLoadedImages.indexOf(existingInfo);\r\n this.nonLoadedImages.splice(imageInfoIndex, 1);\r\n if (this.nonLoadedImages.length === 0)\r\n this.raiseReadyStateChanged(true);\r\n if (existingInfo.referenceInfo)\r\n return;\r\n if (loadedInfo.base64) {\r\n var base64_2 = base64_1.Base64Utils.normalizeToDataUrl(loadedInfo.base64, \"image/png\");\r\n this.cache.forEach(function (cacheElem) {\r\n var isReference = cacheElem.base64 === base64_2 && cacheElem !== existingInfo && cacheElem.isLoaded;\r\n if (isReference)\r\n existingInfo.referenceInfo = cacheElem.referenceInfo ? cacheElem.referenceInfo : cacheElem;\r\n return isReference;\r\n });\r\n existingInfo.base64 = base64_2;\r\n }\r\n };\r\n ImageCache.prototype.hasNonLoadedImages = function () {\r\n return this.nonLoadedImages.length !== 0;\r\n };\r\n ImageCache.prototype.getNextActualId = function () {\r\n return this.lastActualId++;\r\n };\r\n ImageCache.prototype.findInfoByBase64 = function (base64) {\r\n base64 = base64_1.Base64Utils.normalizeToDataUrl(base64, \"image/png\");\r\n return this.findInfoCore(function (cacheImageInfo) { return cacheImageInfo.base64 === base64; });\r\n };\r\n ImageCache.prototype.findInfoByUrl = function (imageUrl) {\r\n return this.findInfoCore(function (cacheImageInfo) { return cacheImageInfo.imageUrl === imageUrl; });\r\n };\r\n ImageCache.prototype.findInfoCore = function (callback) {\r\n var cacheInfo;\r\n this.cache.forEach(function (item) {\r\n if (callback(item))\r\n cacheInfo = item;\r\n });\r\n return cacheInfo;\r\n };\r\n ImageCache.prototype.raiseReadyStateChanged = function (ready) {\r\n this.onReadyStateChanged.raise1(function (l) { return l.notifyImageCacheReadyStateChanged(ready); });\r\n };\r\n ImageCache.instance = new ImageCache();\r\n return ImageCache;\r\n}());\r\nexports.ImageCache = ImageCache;\r\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PageOrientation = exports.DiagramUnit = void 0;\r\nvar DiagramUnit;\r\n(function (DiagramUnit) {\r\n DiagramUnit[DiagramUnit[\"In\"] = 0] = \"In\";\r\n DiagramUnit[DiagramUnit[\"Cm\"] = 1] = \"Cm\";\r\n DiagramUnit[DiagramUnit[\"Px\"] = 2] = \"Px\";\r\n})(DiagramUnit = exports.DiagramUnit || (exports.DiagramUnit = {}));\r\nvar PageOrientation;\r\n(function (PageOrientation) {\r\n PageOrientation[PageOrientation[\"Portrait\"] = 0] = \"Portrait\";\r\n PageOrientation[PageOrientation[\"Landscape\"] = 1] = \"Landscape\";\r\n})(PageOrientation = exports.PageOrientation || (exports.PageOrientation = {}));\r\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SetConnectionPointIndexHistoryItem = exports.AddConnectionHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar AddConnectionHistoryItem = /** @class */ (function (_super) {\r\n __extends(AddConnectionHistoryItem, _super);\r\n function AddConnectionHistoryItem(connector, item, connectionPointIndex, position) {\r\n var _this = _super.call(this) || this;\r\n _this.connectorKey = connector.key;\r\n _this.itemKey = item.key;\r\n _this.connectionPointIndex = connectionPointIndex;\r\n _this.position = position;\r\n return _this;\r\n }\r\n AddConnectionHistoryItem.prototype.redo = function (manipulator) {\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n var item = manipulator.model.findItem(this.itemKey);\r\n manipulator.addConnection(connector, item, this.connectionPointIndex, this.position);\r\n };\r\n AddConnectionHistoryItem.prototype.undo = function (manipulator) {\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n manipulator.deleteConnection(connector, this.position);\r\n };\r\n return AddConnectionHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.AddConnectionHistoryItem = AddConnectionHistoryItem;\r\nvar SetConnectionPointIndexHistoryItem = /** @class */ (function (_super) {\r\n __extends(SetConnectionPointIndexHistoryItem, _super);\r\n function SetConnectionPointIndexHistoryItem(connector, connectionPointIndex, position) {\r\n var _this = _super.call(this) || this;\r\n _this.connectorKey = connector.key;\r\n _this.connectionPointIndex = connectionPointIndex;\r\n _this.position = position;\r\n return _this;\r\n }\r\n SetConnectionPointIndexHistoryItem.prototype.redo = function (manipulator) {\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n this.oldConnectionPointIndex = this.position === Connector_1.ConnectorPosition.Begin ? connector.beginConnectionPointIndex : connector.endConnectionPointIndex;\r\n manipulator.setConnectionPointIndex(connector, this.connectionPointIndex, this.position);\r\n };\r\n SetConnectionPointIndexHistoryItem.prototype.undo = function (manipulator) {\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n manipulator.setConnectionPointIndex(connector, this.oldConnectionPointIndex, this.position);\r\n };\r\n return SetConnectionPointIndexHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.SetConnectionPointIndexHistoryItem = SetConnectionPointIndexHistoryItem;\r\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar string_1 = __webpack_require__(58);\r\nfunction isDefined(value) {\r\n return value !== undefined && value !== null;\r\n}\r\nexports.isDefined = isDefined;\r\nfunction boolToInt(value) {\r\n return value ? 1 : 0;\r\n}\r\nexports.boolToInt = boolToInt;\r\nfunction boolToString(value) {\r\n return value ? '1' : '0';\r\n}\r\nexports.boolToString = boolToString;\r\nfunction isNumber(obj) {\r\n return typeof obj === 'number';\r\n}\r\nexports.isNumber = isNumber;\r\nfunction isString(obj) {\r\n return typeof obj === 'string';\r\n}\r\nexports.isString = isString;\r\nfunction isNonNullString(str) {\r\n return !!str;\r\n}\r\nexports.isNonNullString = isNonNullString;\r\nfunction isEven(num) {\r\n return (num % 2) !== 0;\r\n}\r\nexports.isEven = isEven;\r\nfunction isOdd(num) {\r\n return (num % 2) === 0;\r\n}\r\nexports.isOdd = isOdd;\r\nfunction numberToStringBin(num, minLength) {\r\n if (minLength === void 0) { minLength = 0; }\r\n return string_1.StringUtils.padLeft(num.toString(2), minLength, '0');\r\n}\r\nexports.numberToStringBin = numberToStringBin;\r\nfunction numberToStringHex(num, minLength) {\r\n if (minLength === void 0) { minLength = 0; }\r\n return string_1.StringUtils.padLeft(num.toString(16), minLength, '0');\r\n}\r\nexports.numberToStringHex = numberToStringHex;\r\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ImageInfo = void 0;\r\nvar base64_1 = __webpack_require__(84);\r\nvar ImageInfo = /** @class */ (function () {\r\n function ImageInfo(imageUrlOrBase64) {\r\n this.url = undefined;\r\n this.base64 = undefined;\r\n if (imageUrlOrBase64)\r\n if (base64_1.Base64Utils.checkPrependDataUrl(imageUrlOrBase64))\r\n this.base64 = imageUrlOrBase64;\r\n else\r\n this.url = imageUrlOrBase64;\r\n this.loadFailed = false;\r\n }\r\n ImageInfo.prototype.clone = function () {\r\n var result = new ImageInfo();\r\n result.url = this.url;\r\n result.base64 = this.base64;\r\n return result;\r\n };\r\n Object.defineProperty(ImageInfo.prototype, \"isEmpty\", {\r\n get: function () { return this.url === undefined && this.base64 === undefined; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ImageInfo.prototype, \"unableToLoad\", {\r\n get: function () { return this.loadFailed; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ImageInfo.prototype, \"renderUrl\", {\r\n get: function () { return this.base64 || \"\"; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ImageInfo.prototype, \"exportUrl\", {\r\n get: function () { return this.base64 ? this.base64 : this.url; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ImageInfo.prototype, \"actualUrl\", {\r\n get: function () { return this.url ? this.url : this.base64; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ImageInfo, \"transparentOnePixelImage\", {\r\n get: function () { return this.transparentWhiteImage1_1; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ImageInfo.prototype.loadBase64Content = function (base64Content) {\r\n this.base64 = base64_1.Base64Utils.normalizeToDataUrl(base64Content, \"image/png\");\r\n };\r\n ImageInfo.prototype.setUnableToLoadFlag = function () {\r\n this.loadFailed = true;\r\n };\r\n ImageInfo.transparentWhiteImage1_1 = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAANSURBVBhXY/j///9/AAn7A/0FQ0XKAAAAAElFTkSuQmCC\";\r\n return ImageInfo;\r\n}());\r\nexports.ImageInfo = ImageInfo;\r\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorPointsOrthogonalSideCalculatorBase = void 0;\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar ConnectorPointsOrthogonalSideCalculatorBase = /** @class */ (function () {\r\n function ConnectorPointsOrthogonalSideCalculatorBase(parent) {\r\n this.parent = parent;\r\n }\r\n Object.defineProperty(ConnectorPointsOrthogonalSideCalculatorBase.prototype, \"connector\", {\r\n get: function () { return this.parent.connector; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ConnectorPointsOrthogonalSideCalculatorBase.prototype, \"beginRect\", {\r\n get: function () { return this.parent.beginRect; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ConnectorPointsOrthogonalSideCalculatorBase.prototype, \"endRect\", {\r\n get: function () { return this.parent.endRect; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ConnectorPointsOrthogonalSideCalculatorBase.prototype.getBeginOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n originPoint = this.getCorrectOriginPoint(originPoint, originRect);\r\n if (targetSide !== DiagramItem_1.ConnectionPointSide.Undefined) {\r\n if (this.isBeginEndSame())\r\n return this.getSameShapeOffsetPoints(targetSide, originPoint, targetPoint, originRect);\r\n else if (this.isBeginEndOverlappedPoints(originPoint, targetPoint))\r\n return this.getOverlappedPointsOffsetPoints(targetSide, originPoint, targetPoint, originRect);\r\n else if (this.isBeginEndOverlapped())\r\n return this.getBeginOverlappedShapeOffsetPoints(targetSide, originPoint, targetPoint, originRect);\r\n }\r\n else if (this.isOriginRectContainsTargetPoint(originRect, targetPoint))\r\n return this.getOverlappedPointsOffsetPoints(targetSide, originPoint, targetPoint, originRect);\r\n if (this.isOnSidePoint(originPoint, targetPoint))\r\n return this.getBeginOnSideOffsetPoints(targetSide, originPoint, targetPoint, originRect);\r\n return this.getBeginOffSideOffsetPoints(targetSide, originPoint, targetPoint, originRect);\r\n };\r\n ConnectorPointsOrthogonalSideCalculatorBase.prototype.getEndOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n originPoint = this.getCorrectOriginPoint(originPoint, originRect);\r\n if (targetSide !== DiagramItem_1.ConnectionPointSide.Undefined) {\r\n if (this.isBeginEndSame())\r\n return this.getSameShapeOffsetPoints(targetSide, originPoint, targetPoint, originRect);\r\n else if (this.isBeginEndOverlappedPoints(targetPoint, originPoint))\r\n return this.getOverlappedPointsOffsetPoints(targetSide, originPoint, targetPoint, originRect);\r\n else if (this.isBeginEndOverlapped())\r\n return this.getEndOverlappedShapeOffsetPoints(targetSide, originPoint, targetPoint, originRect);\r\n }\r\n else if (this.isOriginRectContainsTargetPoint(originRect, targetPoint))\r\n return this.getOverlappedPointsOffsetPoints(targetSide, originPoint, targetPoint, originRect);\r\n if (this.isOnSidePoint(originPoint, targetPoint))\r\n return this.getEndOnSideOffsetPoints(targetSide, originPoint, targetPoint, originRect);\r\n return this.getEndOffSideOffsetPoints(targetSide, originPoint, targetPoint, originRect);\r\n };\r\n ConnectorPointsOrthogonalSideCalculatorBase.prototype.getSide = function (originPoint, targetPoint) {\r\n var diffX = Math.abs(targetPoint.x - originPoint.x);\r\n var diffY = Math.abs(targetPoint.y - originPoint.y);\r\n if (diffX > diffY)\r\n if (targetPoint.x > originPoint.x)\r\n return DiagramItem_1.ConnectionPointSide.East;\r\n else\r\n return DiagramItem_1.ConnectionPointSide.West;\r\n else if (targetPoint.y > originPoint.y)\r\n return DiagramItem_1.ConnectionPointSide.South;\r\n else\r\n return DiagramItem_1.ConnectionPointSide.North;\r\n };\r\n ConnectorPointsOrthogonalSideCalculatorBase.prototype.getSideCalculator = function (originPoint, targetPoint) {\r\n return this.parent.getSideCalculator(this.getSide(originPoint, targetPoint));\r\n };\r\n ConnectorPointsOrthogonalSideCalculatorBase.prototype.getMinOffset = function () {\r\n return Connector_1.Connector.minOffset;\r\n };\r\n ConnectorPointsOrthogonalSideCalculatorBase.prototype.isBeginEndSame = function () {\r\n return this.connector.beginItem === this.connector.endItem;\r\n };\r\n ConnectorPointsOrthogonalSideCalculatorBase.prototype.isBeginEndOverlapped = function () {\r\n return this.beginRect && this.endRect && rectangle_1.Rectangle.areIntersected(this.beginRect, this.endRect);\r\n };\r\n ConnectorPointsOrthogonalSideCalculatorBase.prototype.isBeginEndOverlappedX = function () {\r\n return this.beginRect && this.endRect && !!rectangle_1.Rectangle.getHorizIntersection(this.beginRect, this.endRect);\r\n };\r\n ConnectorPointsOrthogonalSideCalculatorBase.prototype.isBeginEndOverlappedY = function () {\r\n return this.beginRect && this.endRect && !!rectangle_1.Rectangle.getVertIntersection(this.beginRect, this.endRect);\r\n };\r\n ConnectorPointsOrthogonalSideCalculatorBase.prototype.isBeginEndOverlappedPoints = function (beginPoint, endPoint) {\r\n return this.beginRect && this.endRect && (this.beginRect.containsPoint(endPoint) || this.endRect.containsPoint(beginPoint));\r\n };\r\n ConnectorPointsOrthogonalSideCalculatorBase.prototype.isOriginRectContainsTargetPoint = function (originRect, targetPoint) {\r\n return originRect && originRect.containsPoint(targetPoint);\r\n };\r\n return ConnectorPointsOrthogonalSideCalculatorBase;\r\n}());\r\nexports.ConnectorPointsOrthogonalSideCalculatorBase = ConnectorPointsOrthogonalSideCalculatorBase;\r\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AddShapeHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar AddShapeHistoryItem = /** @class */ (function (_super) {\r\n __extends(AddShapeHistoryItem, _super);\r\n function AddShapeHistoryItem(shapeDescription, position, text, dataKey) {\r\n var _this = _super.call(this) || this;\r\n _this.shapeDescription = shapeDescription;\r\n _this.position = position;\r\n _this.text = text;\r\n _this.dataKey = dataKey;\r\n return _this;\r\n }\r\n AddShapeHistoryItem.prototype.redo = function (manipulator) {\r\n var shape = new Shape_1.Shape(this.shapeDescription, this.position);\r\n if (typeof this.text === \"string\")\r\n shape.text = this.text;\r\n if (this.dataKey !== undefined)\r\n shape.dataKey = this.dataKey;\r\n manipulator.addShape(shape, this.shapeKey);\r\n this.shapeKey = shape.key;\r\n };\r\n AddShapeHistoryItem.prototype.undo = function (manipulator) {\r\n manipulator.deleteShape(manipulator.model.findShape(this.shapeKey), true);\r\n };\r\n return AddShapeHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.AddShapeHistoryItem = AddShapeHistoryItem;\r\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EllipsePrimitive = void 0;\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar Primitive_1 = __webpack_require__(24);\r\nvar EllipsePrimitive = /** @class */ (function (_super) {\r\n __extends(EllipsePrimitive, _super);\r\n function EllipsePrimitive(cx, cy, rx, ry, style, className, onApplyProperties) {\r\n var _this = _super.call(this, style, className, undefined, onApplyProperties) || this;\r\n _this.cx = cx;\r\n _this.cy = cy;\r\n _this.rx = rx;\r\n _this.ry = ry;\r\n return _this;\r\n }\r\n EllipsePrimitive.prototype.createMainElement = function () {\r\n return document.createElementNS(RenderHelper_1.svgNS, \"ellipse\");\r\n };\r\n EllipsePrimitive.prototype.applyElementProperties = function (element, measurer) {\r\n this.setUnitAttribute(element, \"cx\", this.cx);\r\n this.setUnitAttribute(element, \"cy\", this.cy);\r\n this.setUnitAttribute(element, \"rx\", this.rx);\r\n this.setUnitAttribute(element, \"ry\", this.ry);\r\n this.setPositionCorrectionAttribute(element);\r\n _super.prototype.applyElementProperties.call(this, element, measurer);\r\n };\r\n return EllipsePrimitive;\r\n}(Primitive_1.SvgPrimitive));\r\nexports.EllipsePrimitive = EllipsePrimitive;\r\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ClipPathPrimitive = void 0;\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar Primitive_1 = __webpack_require__(24);\r\nvar ClipPathPrimitive = /** @class */ (function (_super) {\r\n __extends(ClipPathPrimitive, _super);\r\n function ClipPathPrimitive(id, children) {\r\n var _this = _super.call(this) || this;\r\n _this.id = id;\r\n _this.children = children;\r\n return _this;\r\n }\r\n ClipPathPrimitive.prototype.createMainElement = function () {\r\n var element = document.createElementNS(RenderHelper_1.svgNS, \"clipPath\");\r\n element.setAttribute(\"id\", this.id);\r\n return element;\r\n };\r\n ClipPathPrimitive.prototype.applyElementProperties = function (element, measurer) {\r\n if (this.id)\r\n element.setAttribute(\"id\", this.id);\r\n _super.prototype.applyElementProperties.call(this, element, measurer);\r\n };\r\n return ClipPathPrimitive;\r\n}(Primitive_1.SvgPrimitive));\r\nexports.ClipPathPrimitive = ClipPathPrimitive;\r\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ExportImportCommandBase = void 0;\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar ExportImportCommandBase = /** @class */ (function (_super) {\r\n __extends(ExportImportCommandBase, _super);\r\n function ExportImportCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ExportImportCommandBase.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n return ExportImportCommandBase;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ExportImportCommandBase = ExportImportCommandBase;\r\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__extends\", function() { return __extends; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__assign\", function() { return __assign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__rest\", function() { return __rest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__decorate\", function() { return __decorate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__param\", function() { return __param; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__metadata\", function() { return __metadata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__awaiter\", function() { return __awaiter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__generator\", function() { return __generator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__createBinding\", function() { return __createBinding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__exportStar\", function() { return __exportStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__values\", function() { return __values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__read\", function() { return __read; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spread\", function() { return __spread; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__spreadArrays\", function() { return __spreadArrays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__await\", function() { return __await; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncGenerator\", function() { return __asyncGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncDelegator\", function() { return __asyncDelegator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__asyncValues\", function() { return __asyncValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__makeTemplateObject\", function() { return __makeTemplateObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importStar\", function() { return __importStar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__importDefault\", function() { return __importDefault; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldGet\", function() { return __classPrivateFieldGet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__classPrivateFieldSet\", function() { return __classPrivateFieldSet; });\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nfunction __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Vector = (function () {\r\n function Vector(x, y) {\r\n if (x === void 0) { x = 0; }\r\n if (y === void 0) { y = 0; }\r\n this.x = x;\r\n this.y = y;\r\n }\r\n Object.defineProperty(Vector.prototype, \"length\", {\r\n get: function () {\r\n return Math.sqrt(this.x * this.x + this.y * this.y);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Vector.fromPoints = function (begin, end) {\r\n return new Vector(end.x - begin.x, end.y - begin.y);\r\n };\r\n Vector.fromSegment = function (segment) {\r\n return new Vector(segment.endPoint.x - segment.startPoint.x, segment.endPoint.y - segment.startPoint.y);\r\n };\r\n Vector.prototype.normalize = function () {\r\n var length = this.length;\r\n if (length !== 0) {\r\n this.x /= length;\r\n this.y /= length;\r\n }\r\n return this;\r\n };\r\n Vector.prototype.negative = function () {\r\n this.x *= -1;\r\n this.y *= -1;\r\n return this;\r\n };\r\n Object.defineProperty(Vector, \"axisX\", {\r\n get: function () {\r\n return new Vector(1, 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Vector, \"axisY\", {\r\n get: function () {\r\n return new Vector(0, 1);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Vector.angleBetween = function (a, b) {\r\n var cosFi = Vector.scalarProduct(a, b) / (a.length * b.length);\r\n return Math.acos(cosFi);\r\n };\r\n Vector.scalarProduct = function (a, b) {\r\n return a.x * b.x + a.y * b.y;\r\n };\r\n return Vector;\r\n}());\r\nexports.Vector = Vector;\r\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Diagnostics = void 0;\r\nvar LoggerDisplayMode;\r\n(function (LoggerDisplayMode) {\r\n LoggerDisplayMode[LoggerDisplayMode[\"Disabled\"] = 0] = \"Disabled\";\r\n LoggerDisplayMode[LoggerDisplayMode[\"Console\"] = 1] = \"Console\";\r\n LoggerDisplayMode[LoggerDisplayMode[\"Document\"] = 2] = \"Document\";\r\n})(LoggerDisplayMode || (LoggerDisplayMode = {}));\r\nvar Diagnostics = /** @class */ (function () {\r\n function Diagnostics() {\r\n }\r\n Diagnostics.beginAverage = function (groupName) {\r\n if (!this.enableLogsAndTimers)\r\n return;\r\n this.lastAverageGroupName = groupName;\r\n };\r\n Diagnostics.endAverage = function () {\r\n if (!this.enableLogsAndTimers)\r\n return;\r\n this.lastAverageGroupName = null;\r\n };\r\n Diagnostics.tryLogAverage = function (groupName) {\r\n var _this = this;\r\n if (this.lastAverageGroupName === groupName)\r\n return;\r\n var sameGroupTimers = Object.keys(this.timers)\r\n .map(function (t) { return _this.timers[t]; })\r\n .filter(function (t) { return t.groupName === groupName; });\r\n if (!sameGroupTimers.filter(function (t) { return !t.endTime; }).length) {\r\n var average = sameGroupTimers.reduce(function (acc, t) { return acc + (t.endTime - t.startTime); }, 0) / sameGroupTimers.length;\r\n this.log(\"average: \" + average);\r\n }\r\n };\r\n Diagnostics.timer = function (message) {\r\n if (!this.enableLogsAndTimers)\r\n return;\r\n this.lastCreatedTimer = {\r\n message: message,\r\n startTime: performance.now(),\r\n groupName: this.lastAverageGroupName\r\n };\r\n };\r\n Diagnostics.endTimer = function () {\r\n var _this = this;\r\n if (!this.enableLogsAndTimers)\r\n return;\r\n var timer = this.lastCreatedTimer;\r\n var timeoutID = setTimeout(function () {\r\n timer.endTime = performance.now();\r\n _this.showMessage(\"timer \\\"\" + timer.message + \"\\\": \" + (timer.endTime - timer.startTime));\r\n timer.groupName && _this.tryLogAverage(timer.groupName);\r\n }, 0);\r\n this.timers[timeoutID] = timer;\r\n this.lastCreatedTimer = null;\r\n };\r\n Diagnostics.logPerfInfo = function () {\r\n var nodesCount = document.querySelector(\".dxdi-control > svg\").querySelectorAll(\"*\").length;\r\n var memory = performance[\"memory\"];\r\n this.log(\"nodes: \" + nodesCount.toLocaleString() + (memory ? \" memory: \" : \"\") + (memory ? memory[\"usedJSHeapSize\"].toLocaleString() : \"\"));\r\n };\r\n Diagnostics.log = function (message) {\r\n this.showMessage(message);\r\n };\r\n Diagnostics.showMessage = function (message) {\r\n switch (Diagnostics.mode) {\r\n case LoggerDisplayMode.Console:\r\n // eslint-disable-next-line no-console\r\n console.log(message);\r\n break;\r\n case LoggerDisplayMode.Document: {\r\n var existText = this.getElement().value;\r\n if (this.lastMessage === message) {\r\n var lastLineLength = existText.indexOf(\"\\r\\n\");\r\n if (lastLineLength < 0)\r\n lastLineLength = existText.indexOf(\"\\n\");\r\n var lastLine = existText.substr(0, lastLineLength);\r\n var regex = /( \\()([0-9]+)(\\))$/;\r\n if (regex.test(lastLine))\r\n lastLine = lastLine.replace(/( \\()([0-9]+)(\\))$/, function (str, before, val, after) { return before + (++val) + after; });\r\n else\r\n lastLine += \" (1)\";\r\n this.getElement().value = lastLine + existText.substr(lastLineLength);\r\n }\r\n else {\r\n this.getElement().value = message + \"\\r\\n\" + existText;\r\n this.lastMessage = message;\r\n }\r\n }\r\n }\r\n };\r\n Diagnostics.getElement = function () {\r\n var _this = this;\r\n if (!this.el) {\r\n this.el = document.createElement(\"textarea\");\r\n this.el.style.top = \"0px\";\r\n this.el.style.right = \"0px\";\r\n this.el.style.position = \"fixed\";\r\n this.el.style.background = \"transparent\";\r\n this.el.style.fontSize = \"11px\";\r\n this.el.style.fontFamily = \"monospace\";\r\n this.el.style.overflow = \"auto\";\r\n this.el.style.width = \"400px\";\r\n document.body.appendChild(this.el);\r\n var clr = document.createElement(\"button\");\r\n clr.innerHTML = \"x\";\r\n clr.addEventListener(\"click\", function () { _this.el.value = \"\"; _this.lastMessage = \"\"; });\r\n clr.style.top = \"0px\";\r\n clr.style.right = \"400px\";\r\n clr.style.position = \"fixed\";\r\n clr.style.opacity = \"0.1\";\r\n document.body.appendChild(clr);\r\n }\r\n return this.el;\r\n };\r\n Diagnostics.mode = LoggerDisplayMode.Document;\r\n Diagnostics.optimizeUsingRAF = true;\r\n Diagnostics.optimizeLayers = true;\r\n Diagnostics.timers = {};\r\n Diagnostics.enableLogsAndTimers = false;\r\n return Diagnostics;\r\n}());\r\nexports.Diagnostics = Diagnostics;\r\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar StringUtils = (function () {\r\n function StringUtils() {\r\n }\r\n StringUtils.isAlpha = function (ch) {\r\n return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z');\r\n };\r\n StringUtils.isDigit = function (ch) {\r\n return ch >= '0' && ch <= '9';\r\n };\r\n StringUtils.stringHashCode = function (str) {\r\n var hash = 0;\r\n if (str.length === 0)\r\n return hash;\r\n var strLen = str.length;\r\n for (var i = 0; i < strLen; i++) {\r\n hash = ((hash << 5) - hash) + str.charCodeAt(i);\r\n hash |= 0;\r\n }\r\n return hash;\r\n };\r\n StringUtils.endsAt = function (str, template) {\r\n var strInd = str.length - 1;\r\n var tmplInd = template.length - 1;\r\n var strStartInd = strInd - tmplInd;\r\n if (strStartInd < 0)\r\n return false;\r\n for (; strInd >= strStartInd; strInd--, tmplInd--) {\r\n if (str[strInd] !== template[tmplInd])\r\n return false;\r\n }\r\n return true;\r\n };\r\n StringUtils.startsAt = function (str, template) {\r\n return str.substr(0, template.length) === template;\r\n };\r\n StringUtils.stringInLowerCase = function (str) {\r\n return str.toLowerCase() === str;\r\n };\r\n StringUtils.stringInUpperCase = function (str) {\r\n return str.toUpperCase() === str;\r\n };\r\n StringUtils.atLeastOneSymbolInUpperCase = function (str) {\r\n for (var i = 0, char = void 0; char = str[i]; i++) {\r\n if (StringUtils.stringInUpperCase(char) && !StringUtils.stringInLowerCase(char))\r\n return true;\r\n }\r\n return false;\r\n };\r\n StringUtils.getSymbolFromEnd = function (text, posFromEnd) {\r\n return text[text.length - posFromEnd];\r\n };\r\n StringUtils.trim = function (str, trimChars) {\r\n if (trimChars === undefined)\r\n return StringUtils.trimInternal(str, true, true);\r\n else {\r\n var joinedChars = trimChars.join('');\r\n return str.replace(new RegExp(\"(^[\" + joinedChars + \"]*)|([\" + joinedChars + \"]*$)\", 'g'), '');\r\n }\r\n };\r\n StringUtils.trimStart = function (str, trimChars) {\r\n if (trimChars === undefined)\r\n return StringUtils.trimInternal(str, true, false);\r\n else {\r\n var joinedChars = trimChars.join('');\r\n return str.replace(new RegExp(\"^[\" + joinedChars + \"]*\", 'g'), '');\r\n }\r\n };\r\n StringUtils.trimEnd = function (str, trimChars) {\r\n if (trimChars === undefined)\r\n return StringUtils.trimInternal(str, false, true);\r\n else {\r\n var joinedChars = trimChars.join('');\r\n return str.replace(new RegExp(\"[\" + joinedChars + \"]*$\", 'g'), '');\r\n }\r\n };\r\n StringUtils.getDecimalSeparator = function () {\r\n return (1.1).toLocaleString().substr(1, 1);\r\n };\r\n StringUtils.repeat = function (str, count) {\r\n return new Array(count <= 0 ? 0 : count + 1).join(str);\r\n };\r\n StringUtils.isNullOrEmpty = function (str) {\r\n return !str || !str.length;\r\n };\r\n StringUtils.padLeft = function (str, totalWidth, paddingChar) {\r\n return StringUtils.repeat(paddingChar, Math.max(0, totalWidth - str.length)) + str;\r\n };\r\n StringUtils.trimInternal = function (source, trimStart, trimEnd) {\r\n var len = source.length;\r\n if (!len)\r\n return source;\r\n if (len < 0xBABA1) {\r\n var result = source;\r\n if (trimStart)\r\n result = result.replace(/^\\s+/, '');\r\n if (trimEnd)\r\n result = result.replace(/\\s+$/, '');\r\n return result;\r\n }\r\n else {\r\n var start = 0;\r\n if (trimEnd) {\r\n while (len > 0 && /\\s/.test(source[len - 1]))\r\n len--;\r\n }\r\n if (trimStart && len > 0) {\r\n while (start < len && /\\s/.test(source[start]))\r\n start++;\r\n }\r\n return source.substring(start, len);\r\n }\r\n };\r\n return StringUtils;\r\n}());\r\nexports.StringUtils = StringUtils;\r\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DiagramModel = void 0;\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar size_1 = __webpack_require__(2);\r\nvar point_1 = __webpack_require__(1);\r\nvar ImageCache_1 = __webpack_require__(45);\r\nvar color_1 = __webpack_require__(22);\r\nvar Enums_1 = __webpack_require__(46);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar DiagramModel = /** @class */ (function () {\r\n function DiagramModel(pageSize) {\r\n if (pageSize === void 0) { pageSize = new size_1.Size(8391, 11906); }\r\n this.items = [];\r\n this.itemIndexByKey = {};\r\n this.keyCounter = 0;\r\n this.pageSize = new size_1.Size(8391, 11906);\r\n this.pageLandscape = false;\r\n this.pageColor = DiagramModel.defaultPageColor;\r\n this.units = Enums_1.DiagramUnit.In;\r\n this.snapStartPoint = new point_1.Point(0, 0);\r\n this.pageSize = pageSize;\r\n this.size = this.pageSize.clone();\r\n this.rectangle = rectangle_1.Rectangle.fromGeometry(new point_1.Point(0, 0), new size_1.Size(0, 0));\r\n this.initializeKeyCounter();\r\n }\r\n Object.defineProperty(DiagramModel.prototype, \"pageWidth\", {\r\n get: function () {\r\n return this.pageLandscape ? this.pageSize.height : this.pageSize.width;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiagramModel.prototype, \"pageHeight\", {\r\n get: function () {\r\n return this.pageLandscape ? this.pageSize.width : this.pageSize.height;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DiagramModel.prototype.getRectangle = function (forceUpdate) {\r\n if (forceUpdate)\r\n this.rectangle = ModelUtils_1.ModelUtils.createRectangle(this.items);\r\n return this.rectangle;\r\n };\r\n DiagramModel.prototype.pushItem = function (item) {\r\n var index = this.items.push(item);\r\n this.itemIndexByKey[item.key] = index - 1;\r\n if (item instanceof Shape_1.Shape && !item.image.isEmpty)\r\n this.cacheShapeImage(item);\r\n };\r\n DiagramModel.prototype.removeItem = function (item) {\r\n var index = this.getItemIndex(item);\r\n delete this.itemIndexByKey[item.key];\r\n this.items.splice(index, 1);\r\n this.updateIndicesHash(index);\r\n };\r\n DiagramModel.prototype.updateIndicesHash = function (startIndex) {\r\n for (var i = startIndex; i < this.items.length; i++)\r\n this.itemIndexByKey[this.items[i].key] = i;\r\n };\r\n DiagramModel.prototype.getItemIndex = function (item) {\r\n return this.itemIndexByKey[item.key];\r\n };\r\n DiagramModel.prototype.findShape = function (key) {\r\n var shape = this.findItem(key);\r\n return shape instanceof Shape_1.Shape ? shape : undefined;\r\n };\r\n DiagramModel.prototype.findShapesCore = function (callback) {\r\n var shapes = [];\r\n this.items.forEach(function (item) {\r\n if (item instanceof Shape_1.Shape)\r\n if (callback(item)) {\r\n shapes.push(item);\r\n return;\r\n }\r\n });\r\n return shapes;\r\n };\r\n DiagramModel.prototype.findShapeCore = function (callback) {\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n if (item instanceof Shape_1.Shape)\r\n if (callback(item))\r\n return item;\r\n }\r\n };\r\n DiagramModel.prototype.findShapeAtPosition = function (position) {\r\n return this.findShapeCore(function (shape) { return shape.position.equals(position); });\r\n };\r\n DiagramModel.prototype.findShapeByDataKey = function (key) {\r\n return this.findShapeCore(function (shape) { return shape.dataKey === key; });\r\n };\r\n DiagramModel.prototype.findShapesByImageUrl = function (imageUrl) {\r\n return this.findShapesCore(function (shape) { return shape.image.url === imageUrl; });\r\n };\r\n DiagramModel.prototype.findShapesByDescription = function (description) {\r\n return this.findShapesCore(function (shape) { return shape.description.key === description.key; });\r\n };\r\n DiagramModel.prototype.cacheShapeImage = function (shape) {\r\n var cacheImageInfo = ImageCache_1.ImageCache.instance.createUnloadedInfoByShapeImageInfo(shape.image);\r\n if (cacheImageInfo.isLoaded)\r\n shape.image.loadBase64Content(cacheImageInfo.base64);\r\n };\r\n DiagramModel.prototype.loadAllImages = function (imageLoader) {\r\n ImageCache_1.ImageCache.instance.loadAllImages(imageLoader);\r\n };\r\n DiagramModel.prototype.findContainer = function (key) {\r\n var shape = this.findShape(key);\r\n return shape && shape.enableChildren ? shape : undefined;\r\n };\r\n DiagramModel.prototype.findNearestContainer = function (key) {\r\n var shape = this.findShape(key);\r\n if (shape)\r\n return shape.enableChildren ? shape : shape.container;\r\n else\r\n return undefined;\r\n };\r\n DiagramModel.prototype.getChildren = function (container) {\r\n var _this = this;\r\n return container.children.map(function (child) { return _this.findItem(child.key); }).filter(function (item) { return item; });\r\n };\r\n DiagramModel.prototype.findChild = function (container, key, recursive) {\r\n var _this = this;\r\n if (recursive === void 0) { recursive = true; }\r\n var result;\r\n container.children.forEach(function (child) {\r\n if (result)\r\n return;\r\n if (child.key === key) {\r\n result = child;\r\n return;\r\n }\r\n if (recursive && child instanceof Shape_1.Shape) {\r\n result = _this.findChild(child, key, recursive);\r\n if (result)\r\n return;\r\n }\r\n });\r\n return result;\r\n };\r\n DiagramModel.prototype.findItemContainerCore = function (item, callback) {\r\n var container = item.container;\r\n while (container) {\r\n if (!callback || callback(container))\r\n break;\r\n container = container.container;\r\n }\r\n return container;\r\n };\r\n DiagramModel.prototype.findItemContainer = function (item) {\r\n return this.findItemContainerCore(item);\r\n };\r\n DiagramModel.prototype.findItemCollapsedContainer = function (item) {\r\n return this.findItemContainerCore(item, function (c) { return !c.expanded; });\r\n };\r\n DiagramModel.prototype.findItemTopCollapsedContainer = function (item) {\r\n var container = item.container;\r\n var collapsedContainer;\r\n while (container) {\r\n if (!container.expanded)\r\n collapsedContainer = container;\r\n container = container.container;\r\n }\r\n return collapsedContainer;\r\n };\r\n DiagramModel.prototype.isContainerItem = function (container, item) {\r\n return this.findItemContainerCore(item, function (c) { return c.key === container.key; }) !== undefined;\r\n };\r\n DiagramModel.prototype.findConnector = function (key) {\r\n var connector = this.findItem(key);\r\n return connector instanceof Connector_1.Connector ? connector : undefined;\r\n };\r\n DiagramModel.prototype.findConnectorCore = function (callback) {\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n if (item instanceof Connector_1.Connector)\r\n if (callback(item))\r\n return item;\r\n }\r\n };\r\n DiagramModel.prototype.findConnectorAtPoints = function (points) {\r\n return this.findConnectorCore(function (connector) { return Utils_1.GeometryUtils.arePointsEqual(connector.points, points); });\r\n };\r\n DiagramModel.prototype.findConnectorByDataKey = function (key) {\r\n return this.findConnectorCore(function (connector) { return connector.dataKey === key; });\r\n };\r\n DiagramModel.prototype.findConnectorByBeginEndDataKeys = function (beginDataKey, endDataKey) {\r\n return this.findConnectorCore(function (connector) { return (connector.beginItem && connector.beginItem.dataKey === beginDataKey) &&\r\n (connector.endItem && connector.endItem.dataKey === endDataKey); });\r\n };\r\n DiagramModel.prototype.findConnectorsCore = function (callback) {\r\n var result = [];\r\n this.items.forEach(function (item) {\r\n if (item instanceof Connector_1.Connector)\r\n if (callback(item)) {\r\n result.push(item);\r\n return;\r\n }\r\n });\r\n return result;\r\n };\r\n DiagramModel.prototype.findConnectorsWithoutBeginItem = function () {\r\n return this.findConnectorsCore(function (connector) { return !connector.beginItem; });\r\n };\r\n DiagramModel.prototype.findConnectorsWithoutEndItem = function () {\r\n return this.findConnectorsCore(function (connector) { return !connector.endItem; });\r\n };\r\n DiagramModel.prototype.findItem = function (key) {\r\n return this.items[this.itemIndexByKey[key]];\r\n };\r\n DiagramModel.prototype.findItemByDataKey = function (key) {\r\n return this.findItemCore(function (item) { return item.dataKey === key; });\r\n };\r\n DiagramModel.prototype.findItemCore = function (callback) {\r\n for (var i = 0; i < this.items.length; i++)\r\n if (callback(this.items[i]))\r\n return this.items[i];\r\n };\r\n DiagramModel.isIntersectedItems = function (item1, item2) {\r\n var result = false;\r\n if (item1 instanceof Shape_1.Shape)\r\n result = item2.intersectedByRect(item1.rectangle);\r\n else if (item1 instanceof Connector_1.Connector)\r\n item1.getSegments().forEach(function (s1) {\r\n if (item2 instanceof Shape_1.Shape)\r\n result = result || s1.isIntersectedByRect(item2.rectangle);\r\n else if (item2 instanceof Connector_1.Connector)\r\n item2.getSegments().forEach(function (s2) {\r\n result = result || s1.isIntersected(s2);\r\n });\r\n });\r\n return result;\r\n };\r\n DiagramModel.prototype.getIntersectItems = function (item) {\r\n var result = [];\r\n this.items.forEach(function (i) {\r\n if (i.container !== item.container)\r\n return;\r\n if (item !== i && (!(i instanceof Connector_1.Connector) || item.attachedConnectors.indexOf(i) === -1) &&\r\n DiagramModel.isIntersectedItems(i, item))\r\n result.push(i);\r\n });\r\n return result;\r\n };\r\n DiagramModel.prototype.getIntersectItemsMinZIndex = function (item) {\r\n var items = this.getIntersectItems(item);\r\n return items.map(function (i) { return i.zIndex; }).reduce(function (prev, cur) { return Math.min(prev, cur); }, Number.MAX_VALUE);\r\n };\r\n DiagramModel.prototype.getIntersectItemsMaxZIndex = function (item) {\r\n var items = this.getIntersectItems(item);\r\n return items.map(function (i) { return i.zIndex; }).reduce(function (prev, cur) { return Math.max(prev, cur); }, -Number.MAX_VALUE);\r\n };\r\n DiagramModel.prototype.iterateItems = function (callback) {\r\n this.items.forEach(callback);\r\n };\r\n DiagramModel.prototype.getNextKey = function () {\r\n return (this.keyCounter++).toString();\r\n };\r\n DiagramModel.prototype.initializeKeyCounter = function () {\r\n this.keyCounter = this.items.reduce(function (prev, cur) {\r\n var num = parseInt(cur.key);\r\n return Math.max(prev, isNaN(num) ? 0 : num + 1);\r\n }, this.items.length);\r\n };\r\n DiagramModel.defaultPageColor = color_1.ColorUtils.LIGHT_COLOR;\r\n return DiagramModel;\r\n}());\r\nexports.DiagramModel = DiagramModel;\r\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TextPrimitive270degRenderHelper = exports.TextPrimitive180degRenderHelper = exports.TextPrimitive90degRenderHelper = exports.TextPrimitiveRenderHelper = exports.TextPrimitive = exports.TextAngle = void 0;\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar Primitive_1 = __webpack_require__(24);\r\nvar Utils_1 = __webpack_require__(18);\r\nvar TextUtils_1 = __webpack_require__(61);\r\nvar TextAngle;\r\n(function (TextAngle) {\r\n TextAngle[TextAngle[\"Angle0deg\"] = 0] = \"Angle0deg\";\r\n TextAngle[TextAngle[\"Angle90deg\"] = 90] = \"Angle90deg\";\r\n TextAngle[TextAngle[\"Angle180deg\"] = 180] = \"Angle180deg\";\r\n TextAngle[TextAngle[\"Angle270deg\"] = 270] = \"Angle270deg\";\r\n})(TextAngle = exports.TextAngle || (exports.TextAngle = {}));\r\nvar TextPrimitive = /** @class */ (function (_super) {\r\n __extends(TextPrimitive, _super);\r\n function TextPrimitive(x, y, text, owner, textWidth, textHeight, textSpacing, style, reverseTextAhchor, clipPathId, filterId, angle, onApplyProperties) {\r\n var _this = _super.call(this, style, \"\", clipPathId, onApplyProperties) || this;\r\n _this.x = x;\r\n _this.y = y;\r\n _this.text = text;\r\n _this.owner = owner;\r\n _this.textWidth = textWidth;\r\n _this.textHeight = textHeight;\r\n _this.textSpacing = textSpacing;\r\n _this.reverseTextAhchor = reverseTextAhchor;\r\n _this.angle = angle;\r\n _this.filterId = filterId;\r\n _this.textSegmens = TextUtils_1.textToParagraphs(_this.text);\r\n _this.renderHelper = _this.createRenderHelper();\r\n if (_this.textWidth !== undefined && _this.textWidth !== undefined) {\r\n _this.x = _this.renderHelper.getTextX(_this.x);\r\n _this.y = _this.renderHelper.getTextY(_this.y);\r\n }\r\n return _this;\r\n }\r\n TextPrimitive.prototype.createMainElement = function () {\r\n return document.createElementNS(RenderHelper_1.svgNS, \"text\");\r\n };\r\n TextPrimitive.prototype.applyElementProperties = function (element, measurer) {\r\n this.setUnitAttribute(element, \"x\", this.x);\r\n this.setUnitAttribute(element, \"y\", this.y);\r\n if (this.filterId)\r\n element.setAttribute(\"filter\", Utils_1.RenderUtils.getUrlPathById(this.filterId));\r\n _super.prototype.applyElementProperties.call(this, element, measurer);\r\n if (element.getAttribute(\"appliedText\") !== this.text || element.getAttribute(\"appliedSize\") !== (this.fitToSize && this.fitToSize.toString())) {\r\n this.createTSpanElements(element, measurer);\r\n element.setAttribute(\"appliedText\", this.text);\r\n element.setAttribute(\"appliedSize\", (this.fitToSize && this.fitToSize.toString()));\r\n }\r\n else\r\n this.prepareTSpanElements(element);\r\n this.renderHelper.prepareMainElement(element, this.x, this.y);\r\n };\r\n TextPrimitive.prototype.createTSpanElements = function (element, measurer) {\r\n var _this = this;\r\n Utils_1.RenderUtils.removeContent(element);\r\n this.textSegmens.forEach(function (txt, index) {\r\n if (!txt && _this.textSegmens.length > 1) {\r\n var span = _this.createTSpanElement(element);\r\n span.textContent = \" \";\r\n }\r\n else if (_this.fitToSize) {\r\n var words_1 = TextUtils_1.textToWords(txt);\r\n var lines = TextUtils_1.wordsByLines(unit_converter_1.UnitConverter.twipsToPixels(_this.fitToSize), words_1, function () { return measurer.measureWords(words_1, _this.style, _this.owner); });\r\n lines.forEach(function (line) {\r\n var span = _this.createTSpanElement(element);\r\n span.textContent = line;\r\n });\r\n if (!lines.length) {\r\n var span = _this.createTSpanElement(element);\r\n span.textContent = \" \";\r\n }\r\n }\r\n else {\r\n var tSpan = _this.createTSpanElement(element);\r\n tSpan.textContent = txt;\r\n }\r\n });\r\n var firstTSpan = element.firstChild;\r\n if (firstTSpan)\r\n this.prepareFirstTSpanElement(firstTSpan, element.childNodes.length);\r\n };\r\n TextPrimitive.prototype.createTSpanElement = function (parent) {\r\n var tSpan = document.createElementNS(RenderHelper_1.svgNS, \"tspan\");\r\n parent.appendChild(tSpan);\r\n this.prepareTSpanElement(tSpan);\r\n return tSpan;\r\n };\r\n TextPrimitive.prototype.prepareTSpanElements = function (element) {\r\n for (var i = 0; i < element.childNodes.length; i++) {\r\n var tSpan = element.childNodes[i];\r\n this.prepareTSpanElement(tSpan);\r\n }\r\n var firstTSpan = element.firstChild;\r\n if (firstTSpan)\r\n this.prepareFirstTSpanElement(firstTSpan, element.childNodes.length);\r\n };\r\n TextPrimitive.prototype.prepareTSpanElement = function (tSpan) {\r\n this.renderHelper.prepareTSpanElement(tSpan, this.x, this.y);\r\n };\r\n TextPrimitive.prototype.prepareFirstTSpanElement = function (tSpan, lineCount) {\r\n this.renderHelper.prepareFirstTSpanElement(tSpan, lineCount);\r\n };\r\n TextPrimitive.prototype.applyElementStyleProperties = function (element) {\r\n this.applyElementStylePropertiesCore(element, this.reverseTextAhchor);\r\n };\r\n Object.defineProperty(TextPrimitive.prototype, \"fitToSize\", {\r\n get: function () { return this.renderHelper.fitToSize; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TextPrimitive.prototype.createRenderHelper = function () {\r\n switch (this.angle) {\r\n case TextAngle.Angle90deg:\r\n return new TextPrimitive90degRenderHelper(this);\r\n case TextAngle.Angle180deg:\r\n return new TextPrimitive180degRenderHelper(this);\r\n case TextAngle.Angle270deg:\r\n return new TextPrimitive270degRenderHelper(this);\r\n default:\r\n return new TextPrimitiveRenderHelper(this);\r\n }\r\n };\r\n TextPrimitive.baselineCorrection = 0.35;\r\n return TextPrimitive;\r\n}(Primitive_1.SvgPrimitive));\r\nexports.TextPrimitive = TextPrimitive;\r\nvar TextPrimitiveRenderHelper = /** @class */ (function () {\r\n function TextPrimitiveRenderHelper(primitive) {\r\n this.primitive = primitive;\r\n }\r\n Object.defineProperty(TextPrimitiveRenderHelper.prototype, \"textWidth\", {\r\n get: function () { return this.primitive.textWidth; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextPrimitiveRenderHelper.prototype, \"textHeight\", {\r\n get: function () { return this.primitive.textHeight; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextPrimitiveRenderHelper.prototype, \"fitToSize\", {\r\n get: function () { return this.textWidth; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextPrimitiveRenderHelper.prototype, \"textAnchor\", {\r\n get: function () { return this.primitive.style[\"text-anchor\"]; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextPrimitiveRenderHelper.prototype, \"textSpacing\", {\r\n get: function () { return this.primitive.textSpacing; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextPrimitiveRenderHelper.prototype, \"angle\", {\r\n get: function () { return undefined; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextPrimitiveRenderHelper.prototype, \"needRotation\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TextPrimitiveRenderHelper.prototype.prepareMainElement = function (element, x, y) {\r\n if (this.needRotation)\r\n element.setAttribute(\"transform\", \"rotate(\" + this.angle + \", \" +\r\n unit_converter_1.UnitConverter.twipsToPixels(x) + \", \" + unit_converter_1.UnitConverter.twipsToPixels(y) + \")\");\r\n };\r\n TextPrimitiveRenderHelper.prototype.prepareTSpanElement = function (tSpan, x, y) {\r\n this.primitive.setUnitAttribute(tSpan, \"x\", x);\r\n tSpan.setAttribute(\"dy\", TextUtils_1.LINE_HEIGHT + \"em\");\r\n };\r\n TextPrimitiveRenderHelper.prototype.prepareFirstTSpanElement = function (tSpan, lineCount) {\r\n var dy = -((lineCount - 1) / 2) + TextPrimitive.baselineCorrection;\r\n tSpan.setAttribute(\"dy\", dy.toFixed(2) + \"em\");\r\n };\r\n TextPrimitiveRenderHelper.prototype.getTextX = function (x) {\r\n if (!this.textAnchor || this.textAnchor === \"middle\")\r\n return x + this.textWidth / 2;\r\n else if (this.textAnchor === \"end\")\r\n return x + this.textWidth - this.textSpacing;\r\n else if (this.textAnchor === \"start\")\r\n return x + this.textSpacing;\r\n return x;\r\n };\r\n TextPrimitiveRenderHelper.prototype.getTextY = function (y) {\r\n return y + this.textHeight / 2;\r\n };\r\n TextPrimitiveRenderHelper.prototype.setUnitAttribute = function (element, key, value) {\r\n this.primitive.setUnitAttribute(element, key, value);\r\n };\r\n return TextPrimitiveRenderHelper;\r\n}());\r\nexports.TextPrimitiveRenderHelper = TextPrimitiveRenderHelper;\r\nvar TextPrimitive90degRenderHelper = /** @class */ (function (_super) {\r\n __extends(TextPrimitive90degRenderHelper, _super);\r\n function TextPrimitive90degRenderHelper(primitive) {\r\n return _super.call(this, primitive) || this;\r\n }\r\n Object.defineProperty(TextPrimitive90degRenderHelper.prototype, \"fitToSize\", {\r\n get: function () { return this.textHeight; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextPrimitive90degRenderHelper.prototype, \"angle\", {\r\n get: function () { return 90; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextPrimitive90degRenderHelper.prototype, \"needRotation\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TextPrimitive90degRenderHelper.prototype.getTextX = function (x) {\r\n return x + this.textWidth / 2;\r\n };\r\n TextPrimitive90degRenderHelper.prototype.getTextY = function (y) {\r\n if (!this.textAnchor || this.textAnchor === \"middle\")\r\n return y + this.textHeight / 2;\r\n else if (this.textAnchor === \"end\")\r\n return y + this.textHeight - this.textSpacing;\r\n else if (this.textAnchor === \"start\")\r\n return y + this.textSpacing;\r\n return y;\r\n };\r\n return TextPrimitive90degRenderHelper;\r\n}(TextPrimitiveRenderHelper));\r\nexports.TextPrimitive90degRenderHelper = TextPrimitive90degRenderHelper;\r\nvar TextPrimitive180degRenderHelper = /** @class */ (function (_super) {\r\n __extends(TextPrimitive180degRenderHelper, _super);\r\n function TextPrimitive180degRenderHelper(primitive) {\r\n return _super.call(this, primitive) || this;\r\n }\r\n Object.defineProperty(TextPrimitive180degRenderHelper.prototype, \"angle\", {\r\n get: function () { return 180; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextPrimitive180degRenderHelper.prototype, \"needRotation\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TextPrimitive180degRenderHelper.prototype.getTextX = function (x) {\r\n if (!this.textAnchor || this.textAnchor === \"middle\")\r\n return x + this.textWidth / 2;\r\n else if (this.textAnchor === \"start\")\r\n return x + this.textWidth - this.textSpacing;\r\n else if (this.textAnchor === \"end\")\r\n return x + this.textSpacing;\r\n return x;\r\n };\r\n return TextPrimitive180degRenderHelper;\r\n}(TextPrimitiveRenderHelper));\r\nexports.TextPrimitive180degRenderHelper = TextPrimitive180degRenderHelper;\r\nvar TextPrimitive270degRenderHelper = /** @class */ (function (_super) {\r\n __extends(TextPrimitive270degRenderHelper, _super);\r\n function TextPrimitive270degRenderHelper(primitive) {\r\n return _super.call(this, primitive) || this;\r\n }\r\n Object.defineProperty(TextPrimitive270degRenderHelper.prototype, \"angle\", {\r\n get: function () { return 270; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TextPrimitive270degRenderHelper.prototype.getTextY = function (y) {\r\n if (!this.textAnchor || this.textAnchor === \"middle\")\r\n return y + this.textHeight / 2;\r\n else if (this.textAnchor === \"start\")\r\n return y + this.textHeight - this.textSpacing;\r\n else if (this.textAnchor === \"end\")\r\n return y + this.textSpacing;\r\n return y;\r\n };\r\n return TextPrimitive270degRenderHelper;\r\n}(TextPrimitive90degRenderHelper));\r\nexports.TextPrimitive270degRenderHelper = TextPrimitive270degRenderHelper;\r\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getLineHeight = exports.getTextHeight = exports.getTextLineSize = exports.getOptimalTextRectangle = exports.TEXTRECT_RATIO_EPS = exports.textToParagraphs = exports.textToWords = exports.wordsByLines = exports.LINE_HEIGHT = void 0;\r\nvar Utils_1 = __webpack_require__(3);\r\nvar size_1 = __webpack_require__(2);\r\nvar Data_1 = __webpack_require__(43);\r\nvar WHITESPACES = /\\s/gm;\r\nexports.LINE_HEIGHT = 1.05;\r\nfunction wordsByLines(absLineWidth, words, measureWords) {\r\n if (words.length === 1)\r\n return words;\r\n var measuredWords = measureWords();\r\n var spaceWidth = measuredWords.words[\" \"].width;\r\n var result = [];\r\n var lastLineWidth = 0;\r\n var lastLineIndex = -1;\r\n for (var i = 0; i < words.length; i++) {\r\n var word = words[i];\r\n var wordWidth = measuredWords.words[word].width;\r\n if (lastLineIndex === -1 || lastLineWidth + spaceWidth + wordWidth > absLineWidth) {\r\n lastLineIndex = result.push(word) - 1;\r\n lastLineWidth = wordWidth;\r\n }\r\n else {\r\n lastLineWidth += spaceWidth + wordWidth;\r\n result[lastLineIndex] += \" \" + word;\r\n }\r\n }\r\n return result;\r\n}\r\nexports.wordsByLines = wordsByLines;\r\nfunction textToWords(text) {\r\n return text.split(WHITESPACES).filter(function (t) { return t.length; });\r\n}\r\nexports.textToWords = textToWords;\r\nfunction textToParagraphs(text) {\r\n return text.split(\"\\n\");\r\n}\r\nexports.textToParagraphs = textToParagraphs;\r\nexports.TEXTRECT_RATIO_EPS = 1.2;\r\nvar TEXTRECT_WIDTH_DIFF_EPS = 1;\r\nfunction getOptimalTextRectangle(text, style, owner, measurer, initialSize, keepRatio, minWidth, maxWidth, minHeight, maxHeight) {\r\n if (minWidth === void 0) { minWidth = 0; }\r\n if (maxWidth === void 0) { maxWidth = Number.MAX_SAFE_INTEGER || Number.MAX_VALUE; }\r\n if (minHeight === void 0) { minHeight = 0; }\r\n if (maxHeight === void 0) { maxHeight = Number.MAX_SAFE_INTEGER || Number.MAX_VALUE; }\r\n if (!text)\r\n return new size_1.Size(Data_1.Data.byRange(initialSize.width, minWidth, maxWidth), Data_1.Data.byRange(initialSize.height, minHeight, maxHeight));\r\n if (minWidth > maxWidth || minHeight > maxHeight)\r\n throw new Error(\"Min size cannot exceed max size\");\r\n if (minWidth === maxWidth && minHeight === maxHeight)\r\n return new size_1.Size(minWidth, minHeight);\r\n var measureResult = measurer.measureWords(text, style, owner);\r\n var paragraphs = textToParagraphs(text);\r\n var maxWordWidth = Object.keys(measureResult.words).reduce(function (acc, word) { return Math.max(acc, measureResult.words[word].width); }, 0);\r\n var xRange = new Utils_1.Range(Data_1.Data.byRange(Math.max(initialSize.width, maxWordWidth), minWidth, maxWidth), maxWidth);\r\n var yRange = new Utils_1.Range(Data_1.Data.byRange(initialSize.height, minHeight, maxHeight), maxHeight);\r\n if (maxWordWidth <= initialSize.width && getTextHeight(paragraphs, initialSize.width, measureResult, false) <= initialSize.height && xRange.includes(initialSize.width) && yRange.includes(initialSize.height))\r\n return initialSize;\r\n var ratio = initialSize.width / initialSize.height;\r\n return getOptimalTextRectangleCore(paragraphs, measureResult, ratio, xRange, yRange, keepRatio);\r\n}\r\nexports.getOptimalTextRectangle = getOptimalTextRectangle;\r\nfunction getOptimalTextRectangleCore(paragraphs, measureResult, initRatio, xRange, yRange, incHeightToRatio) {\r\n var _a;\r\n var maxParagraphWidth = paragraphs.reduce(function (acc, val) { return Math.max(acc, getTextLineSize(val, measureResult).width); }, 0);\r\n var size = new size_1.Size(0, 0);\r\n var newSize = new size_1.Size(0, 0);\r\n var newFitToHeight;\r\n var deltaWidth = 0;\r\n var error = 0;\r\n for (var attempt = 0; attempt < 5; attempt++) {\r\n if (attempt === 0)\r\n newSize.width = calcByFit(maxParagraphWidth, xRange)[0];\r\n else if (Math.abs(deltaWidth) > TEXTRECT_WIDTH_DIFF_EPS)\r\n newSize.width = calcByFit(size.width + deltaWidth, xRange)[0];\r\n else\r\n break;\r\n _a = calcHeight(paragraphs, newSize.width, measureResult, yRange), newSize.height = _a[0], newFitToHeight = _a[1];\r\n if (attempt === 0) {\r\n size = newSize.clone();\r\n error = (size.width / size.height) / initRatio;\r\n }\r\n if (attempt === 0 && !newFitToHeight)\r\n break;\r\n var newRatio = (newSize.width / newSize.height);\r\n var newError = newRatio / initRatio;\r\n if (attempt === 0)\r\n deltaWidth = (newSize.width / newError - newSize.width) / 2;\r\n else if (!newFitToHeight)\r\n deltaWidth /= 2;\r\n else if (!compareRatio(initRatio, newRatio, exports.TEXTRECT_RATIO_EPS)) {\r\n size = newSize.clone();\r\n error = newError;\r\n break;\r\n }\r\n else if (compareRatio(error, newError, 1) < 0) {\r\n size = newSize.clone();\r\n error = newError;\r\n deltaWidth = (newSize.width / newError - newSize.width) / 2;\r\n if (newError < 1)\r\n deltaWidth /= 2;\r\n }\r\n else\r\n break;\r\n }\r\n if (incHeightToRatio)\r\n size.height = Data_1.Data.byRange(size.width / initRatio, size.height, yRange.to);\r\n return size;\r\n}\r\nfunction compareRatio(a, b, eps) {\r\n var an = a < 1 ? 1 / a : a;\r\n var bn = b < 1 ? 1 / b : b;\r\n var e = an / bn;\r\n var en = e < 1 ? 1 / e : e;\r\n return en <= eps ? 0 : bn > an ? 1 : -1;\r\n}\r\nfunction calcHeight(paragraphs, width, measureResult, yRange) {\r\n var height = getTextHeight(paragraphs, width, measureResult, false);\r\n return calcByFit(height, yRange);\r\n}\r\nfunction calcByFit(value, range) {\r\n return [\r\n Data_1.Data.byRange(value, range.from, range.to),\r\n value <= range.to\r\n ];\r\n}\r\nfunction getTextLineSize(text, measureResult) {\r\n var words = textToWords(text);\r\n return words.reduce(function (acc, word, index) {\r\n var wordSize = measureResult.words[word];\r\n acc.width += wordSize.width;\r\n acc.height = Math.max(acc.height, wordSize.height);\r\n if (index > 0)\r\n acc.width += measureResult.words[\" \"].width;\r\n return acc;\r\n }, new size_1.Size(0, 0));\r\n}\r\nexports.getTextLineSize = getTextLineSize;\r\nfunction getTextHeight(textOrParagraphs, width, measureResult, emptyTextAsSingleLine) {\r\n var paragraphs = Array.isArray(textOrParagraphs) ? textOrParagraphs : textToParagraphs(textOrParagraphs);\r\n if (emptyTextAsSingleLine && (!paragraphs.length || (paragraphs.length === 1 && !paragraphs[0].length)))\r\n return getLineHeight(measureResult);\r\n return paragraphs.reduce(function (acc, line) { return acc + wordsByLines(width, textToWords(line), function () { return measureResult; }).length; }, 0) * getLineHeight(measureResult);\r\n}\r\nexports.getTextHeight = getTextHeight;\r\nfunction getLineHeight(measureResult) {\r\n return measureResult.fontSize * exports.LINE_HEIGHT;\r\n}\r\nexports.getLineHeight = getLineHeight;\r\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RightAngleConnectorRoutingMathOperations = void 0;\r\nvar point_1 = __webpack_require__(1);\r\nvar vector_1 = __webpack_require__(56);\r\nvar segment_1 = __webpack_require__(34);\r\nvar line_equation_1 = __webpack_require__(185);\r\nvar math_1 = __webpack_require__(33);\r\nvar AStarMetrics_1 = __webpack_require__(113);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar RightAngleConnectorRoutingMathOperations = /** @class */ (function () {\r\n function RightAngleConnectorRoutingMathOperations() {\r\n }\r\n RightAngleConnectorRoutingMathOperations.createSegments = function (points) {\r\n var result = [];\r\n for (var i = 1; i < points.length; i++)\r\n result.push(new segment_1.Segment(points[i - 1], points[i]));\r\n return result;\r\n };\r\n RightAngleConnectorRoutingMathOperations.createUnionSegments = function (segments, shouldCreateSegment) {\r\n var result = [];\r\n var startRenderPoint = segments[0].startPoint;\r\n var endRenderPoint = segments[0].endPoint;\r\n for (var i = 1; i < segments.length; i++) {\r\n var currentSegment = segments[i];\r\n if (shouldCreateSegment(endRenderPoint, currentSegment.startPoint)) {\r\n result.push(new segment_1.Segment(startRenderPoint.clone(), endRenderPoint.clone()));\r\n startRenderPoint = currentSegment.startPoint;\r\n }\r\n endRenderPoint = currentSegment.endPoint;\r\n }\r\n result.push(new segment_1.Segment(startRenderPoint, endRenderPoint));\r\n return result;\r\n };\r\n RightAngleConnectorRoutingMathOperations.unionPoints = function (points) {\r\n var index = 0;\r\n while (index < points.length - 2)\r\n if (this.isCorner(points[index], points[index + 1], points[index + 2]))\r\n index++;\r\n else {\r\n points.splice(index + 1, 1);\r\n index = Math.max(0, index - 1);\r\n }\r\n };\r\n RightAngleConnectorRoutingMathOperations.isCorner = function (p1, p2, p3) {\r\n return !math_1.MathUtils.numberCloseTo(this.createAngle(p1, p2, p3), 0);\r\n };\r\n RightAngleConnectorRoutingMathOperations.createAngle = function (p1, p2, p3) {\r\n var vector1 = vector_1.Vector.fromPoints(p2, p3);\r\n var vector2 = vector_1.Vector.fromPoints(p1, p2);\r\n var atan = Math.atan2(vector1.x * vector2.y - vector2.x * vector1.y, vector1.x * vector2.x + vector1.y * vector2.y);\r\n return atan >= 0 ? atan : 2 * Math.PI + atan;\r\n };\r\n RightAngleConnectorRoutingMathOperations.getTurnDirection = function (angle) {\r\n if (math_1.MathUtils.numberCloseTo(angle, 0))\r\n return AStarMetrics_1.RightAngleTurnDirection.Straight;\r\n if (math_1.MathUtils.numberCloseTo(angle, Math.PI))\r\n return AStarMetrics_1.RightAngleTurnDirection.Backwards;\r\n return angle < Math.PI ? AStarMetrics_1.RightAngleTurnDirection.Left : AStarMetrics_1.RightAngleTurnDirection.Right;\r\n };\r\n RightAngleConnectorRoutingMathOperations.createRectanlePolygonalChain = function (rect) {\r\n var result = [];\r\n var topLeft = new point_1.Point(rect.x, rect.y);\r\n var topRight = new point_1.Point(rect.right, rect.y);\r\n var bottomRight = new point_1.Point(rect.right, rect.bottom);\r\n var bottomLeft = new point_1.Point(rect.x, rect.bottom);\r\n result.push(new segment_1.Segment(topLeft, topRight));\r\n result.push(new segment_1.Segment(topRight, bottomRight));\r\n result.push(new segment_1.Segment(bottomRight, bottomLeft));\r\n result.push(new segment_1.Segment(bottomLeft, topLeft));\r\n return result;\r\n };\r\n RightAngleConnectorRoutingMathOperations.isLineIntersected = function (line, segment, excludeBeginPoint, excludeEndPoint) {\r\n var intersection = line_equation_1.LineEquation.fromPoints(segment.startPoint, segment.endPoint).getIntersection(line);\r\n if (!intersection || !segment.containsPoint(intersection))\r\n return false;\r\n if (excludeBeginPoint)\r\n return !segment.startPoint.equals(intersection);\r\n if (excludeEndPoint)\r\n return !segment.endPoint.equals(intersection);\r\n return true;\r\n };\r\n RightAngleConnectorRoutingMathOperations.isSegmentNormal = function (segment, isHorizontal) {\r\n return isHorizontal ? segment.startPoint.y === segment.endPoint.y : segment.startPoint.x === segment.endPoint.x;\r\n };\r\n RightAngleConnectorRoutingMathOperations.isConnectionRectanleLineIntersected = function (rect, segment, side, excludeBeginPoint, excludeEndPoint, createPoint) {\r\n switch (side) {\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n return this.isLineIntersected(line_equation_1.LineEquation.fromPoints(createPoint(rect.x, rect.y), createPoint(rect.right, rect.y)), segment, excludeBeginPoint, excludeEndPoint);\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n return this.isLineIntersected(line_equation_1.LineEquation.fromPoints(createPoint(rect.right, rect.bottom), createPoint(rect.x, rect.bottom)), segment, excludeBeginPoint, excludeEndPoint);\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n return this.isLineIntersected(line_equation_1.LineEquation.fromPoints(createPoint(rect.x, rect.y), createPoint(rect.x, rect.bottom)), segment, excludeBeginPoint, excludeEndPoint);\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n return this.isLineIntersected(line_equation_1.LineEquation.fromPoints(createPoint(rect.right, rect.y), createPoint(rect.right, rect.bottom)), segment, excludeBeginPoint, excludeEndPoint);\r\n default:\r\n return false;\r\n }\r\n };\r\n RightAngleConnectorRoutingMathOperations.isRectangleCut = function (segments, rect) {\r\n if (!rect)\r\n return false;\r\n var rectanlePolygonalChain = this.createRectanlePolygonalChain(rect);\r\n var hasSegmentIn = false;\r\n var hasSegmentOut = false;\r\n var _loop_1 = function (i) {\r\n if (hasSegmentIn && hasSegmentOut)\r\n return { value: true };\r\n var segment = segments[i];\r\n if (segment.isIntersectedByRect(rect)) {\r\n var startPoint_1 = segment.startPoint;\r\n var endPoint_1 = segment.endPoint;\r\n var currentContainsStart = rect.containsPoint(startPoint_1);\r\n var currentContainsEnd = rect.containsPoint(endPoint_1);\r\n if (!currentContainsStart && !currentContainsEnd)\r\n return { value: true };\r\n if (currentContainsStart && !currentContainsEnd) {\r\n var rectLinesContainsStart_1 = rectanlePolygonalChain.filter(function (s) { return s.containsPoint(startPoint_1); });\r\n if (rectLinesContainsStart_1.length > 0) {\r\n var otherRectSegments = rectanlePolygonalChain.filter(function (s) {\r\n if (rectLinesContainsStart_1.length === 1)\r\n return !s.containsPoint(rectLinesContainsStart_1[0].startPoint) && !s.containsPoint(rectLinesContainsStart_1[0].endPoint);\r\n return s !== rectLinesContainsStart_1[0] && s !== rectLinesContainsStart_1[1];\r\n });\r\n if (otherRectSegments.some(function (s) { return segment.isIntersected(s); }) && !hasSegmentIn)\r\n hasSegmentIn = true;\r\n }\r\n if (!hasSegmentOut)\r\n hasSegmentOut = true;\r\n return \"continue\";\r\n }\r\n if (!currentContainsStart && currentContainsEnd) {\r\n if (!hasSegmentIn) {\r\n hasSegmentIn = true;\r\n if (hasSegmentOut)\r\n hasSegmentOut = false;\r\n }\r\n var rectLinesContainsEnd_1 = rectanlePolygonalChain.filter(function (s) { return s.containsPoint(endPoint_1); });\r\n if (rectLinesContainsEnd_1.length > 0) {\r\n var otherRectSegments = rectanlePolygonalChain.filter(function (s) {\r\n if (rectLinesContainsEnd_1.length === 1)\r\n return !s.containsPoint(rectLinesContainsEnd_1[0].startPoint) && !s.containsPoint(rectLinesContainsEnd_1[0].endPoint);\r\n return s !== rectLinesContainsEnd_1[0] && s !== rectLinesContainsEnd_1[1];\r\n });\r\n if (otherRectSegments.some(function (s) { return segment.isIntersected(s); }) && !hasSegmentOut)\r\n hasSegmentOut = true;\r\n }\r\n return \"continue\";\r\n }\r\n var rectLinesContainsStart = rectanlePolygonalChain.filter(function (s) { return s.containsPoint(startPoint_1); });\r\n var rectLinesContainsEnd = rectanlePolygonalChain.filter(function (s) { return s.containsPoint(endPoint_1); });\r\n if (rectLinesContainsStart.length === 2 && rectLinesContainsEnd.length === 2)\r\n return { value: true };\r\n if (rectLinesContainsStart.length === 1 && rectLinesContainsEnd.length === 1 &&\r\n rectLinesContainsStart[0] !== rectLinesContainsEnd[0])\r\n return { value: true };\r\n if (!hasSegmentOut && rectLinesContainsEnd.length === 1 && !rectLinesContainsStart.length)\r\n hasSegmentOut = true;\r\n if (!hasSegmentIn && rectLinesContainsStart.length === 1 && !rectLinesContainsEnd.length) {\r\n hasSegmentIn = true;\r\n if (hasSegmentOut)\r\n hasSegmentOut = false;\r\n }\r\n }\r\n };\r\n for (var i = 0; i < segments.length; i++) {\r\n var state_1 = _loop_1(i);\r\n if (typeof state_1 === \"object\")\r\n return state_1.value;\r\n }\r\n return hasSegmentIn && hasSegmentOut;\r\n };\r\n RightAngleConnectorRoutingMathOperations.createBeginConnectionSegment = function (beginConnectionSide, beginPoint, offset, createPoint) {\r\n switch (beginConnectionSide) {\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n return new segment_1.Segment(beginPoint, createPoint(beginPoint.x, beginPoint.y - offset));\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n return new segment_1.Segment(beginPoint, createPoint(beginPoint.x, beginPoint.y + offset));\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n return new segment_1.Segment(beginPoint, createPoint(beginPoint.x - offset, beginPoint.y));\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n return new segment_1.Segment(beginPoint, createPoint(beginPoint.x + offset, beginPoint.y));\r\n default:\r\n return beginPoint;\r\n }\r\n };\r\n RightAngleConnectorRoutingMathOperations.createEndConnectionSegment = function (endConnectionSide, endPoint, offset, createPoint) {\r\n switch (endConnectionSide) {\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n return new segment_1.Segment(createPoint(endPoint.x, endPoint.y - offset), endPoint);\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n return new segment_1.Segment(createPoint(endPoint.x, endPoint.y + offset), endPoint);\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n return new segment_1.Segment(createPoint(endPoint.x - offset, endPoint.y), endPoint);\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n return new segment_1.Segment(createPoint(endPoint.x + offset, endPoint.y), endPoint);\r\n default:\r\n return endPoint;\r\n }\r\n };\r\n RightAngleConnectorRoutingMathOperations.removeOrSkipUnnecessaryPoints = function (points) {\r\n Utils_1.GeometryUtils.removeUnnecessaryLinePoints(points, function (pt, index) {\r\n if (pt.pointIndex === -1) {\r\n points.splice(index, 1);\r\n return true;\r\n }\r\n else {\r\n pt.skipped = true;\r\n return false;\r\n }\r\n }, function (pt) {\r\n return pt !== undefined && !pt.skipped;\r\n });\r\n };\r\n RightAngleConnectorRoutingMathOperations.skipUnnecessaryPoints = function (renderPoints) {\r\n var skippedRenderPoints = renderPoints.map(function (p) { return p.clone(); });\r\n this.removeOrSkipUnnecessaryPoints(skippedRenderPoints);\r\n renderPoints.forEach(function (p) { return p.skipped = skippedRenderPoints.some(function (sp) { return sp.equals(p) && sp.skipped; }); });\r\n renderPoints[0].skipped = false;\r\n renderPoints[renderPoints.length - 1].skipped = false;\r\n };\r\n return RightAngleConnectorRoutingMathOperations;\r\n}());\r\nexports.RightAngleConnectorRoutingMathOperations = RightAngleConnectorRoutingMathOperations;\r\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AddConnectorHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar AddConnectorHistoryItem = /** @class */ (function (_super) {\r\n __extends(AddConnectorHistoryItem, _super);\r\n function AddConnectorHistoryItem(points, dataKey, renderPointsContext) {\r\n var _this = _super.call(this) || this;\r\n _this.points = points;\r\n _this.dataKey = dataKey;\r\n _this.renderPointsContext = renderPointsContext;\r\n return _this;\r\n }\r\n AddConnectorHistoryItem.prototype.redo = function (manipulator) {\r\n var connector = new Connector_1.Connector(this.points);\r\n if (this.dataKey !== undefined)\r\n connector.dataKey = this.dataKey;\r\n if (this.renderPointsContext !== undefined)\r\n connector.replaceRenderPoints(this.renderPointsContext);\r\n manipulator.addConnector(connector, this.connectorKey);\r\n this.connectorKey = connector.key;\r\n };\r\n AddConnectorHistoryItem.prototype.undo = function (manipulator) {\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n manipulator.deleteConnector(connector);\r\n };\r\n return AddConnectorHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.AddConnectorHistoryItem = AddConnectorHistoryItem;\r\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DeleteConnectionHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar DeleteConnectionHistoryItem = /** @class */ (function (_super) {\r\n __extends(DeleteConnectionHistoryItem, _super);\r\n function DeleteConnectionHistoryItem(connector, position) {\r\n var _this = _super.call(this) || this;\r\n _this.connectorKey = connector.key;\r\n _this.position = position;\r\n _this.itemKey = connector.getExtremeItem(_this.position).key;\r\n return _this;\r\n }\r\n DeleteConnectionHistoryItem.prototype.redo = function (manipulator) {\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n this.oldConnectionPointIndex = this.position === Connector_1.ConnectorPosition.Begin ? connector.beginConnectionPointIndex : connector.endConnectionPointIndex;\r\n manipulator.deleteConnection(connector, this.position);\r\n };\r\n DeleteConnectionHistoryItem.prototype.undo = function (manipulator) {\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n var item = manipulator.model.findItem(this.itemKey);\r\n manipulator.addConnection(connector, item, this.oldConnectionPointIndex, this.position);\r\n };\r\n return DeleteConnectionHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.DeleteConnectionHistoryItem = DeleteConnectionHistoryItem;\r\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SetSelectionHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar SetSelectionHistoryItem = /** @class */ (function (_super) {\r\n __extends(SetSelectionHistoryItem, _super);\r\n function SetSelectionHistoryItem(selection, selectedKeys, forceChange) {\r\n var _this = _super.call(this) || this;\r\n _this.selectedKeys = selectedKeys;\r\n _this.selection = selection;\r\n _this.forceChange = forceChange;\r\n return _this;\r\n }\r\n SetSelectionHistoryItem.prototype.redo = function () {\r\n this.oldSelection = this.selection.getKeys().slice(0);\r\n this.selection.set(this.selectedKeys, this.forceChange);\r\n };\r\n SetSelectionHistoryItem.prototype.undo = function () {\r\n this.selection.set(this.oldSelection, this.forceChange);\r\n };\r\n return SetSelectionHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.SetSelectionHistoryItem = SetSelectionHistoryItem;\r\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeConnectorTextHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ChangeConnectorTextHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangeConnectorTextHistoryItem, _super);\r\n function ChangeConnectorTextHistoryItem(connector, position, text) {\r\n var _this = _super.call(this) || this;\r\n _this.connectorKey = connector.key;\r\n _this.text = text;\r\n _this.position = position;\r\n return _this;\r\n }\r\n ChangeConnectorTextHistoryItem.prototype.redo = function (manipulator) {\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n this.oldText = connector.getText(this.position);\r\n manipulator.changeConnectorText(connector, this.text, this.position);\r\n };\r\n ChangeConnectorTextHistoryItem.prototype.undo = function (manipulator) {\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n manipulator.changeConnectorText(connector, this.oldText, this.position);\r\n };\r\n return ChangeConnectorTextHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ChangeConnectorTextHistoryItem = ChangeConnectorTextHistoryItem;\r\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeStyleTextHistoryItem = void 0;\r\nvar ChangeStyleHistoryItemBase_1 = __webpack_require__(119);\r\nvar ChangeStyleTextHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangeStyleTextHistoryItem, _super);\r\n function ChangeStyleTextHistoryItem(itemKey, styleProperty, styleValue) {\r\n return _super.call(this, itemKey, styleProperty, styleValue) || this;\r\n }\r\n ChangeStyleTextHistoryItem.prototype.redo = function (manipulator) {\r\n var item = manipulator.model.findItem(this.itemKey);\r\n this.oldStyleValue = item.styleText[this.styleProperty];\r\n manipulator.changeStyleText(item, this.styleProperty, this.styleValue);\r\n };\r\n ChangeStyleTextHistoryItem.prototype.undo = function (manipulator) {\r\n var item = manipulator.model.findItem(this.itemKey);\r\n manipulator.changeStyleText(item, this.styleProperty, this.oldStyleValue);\r\n };\r\n return ChangeStyleTextHistoryItem;\r\n}(ChangeStyleHistoryItemBase_1.ChangeStyleHistoryItemBase));\r\nexports.ChangeStyleTextHistoryItem = ChangeStyleTextHistoryItem;\r\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GraphIterator = exports.FastGraph = exports.Graph = void 0;\r\nvar Structures_1 = __webpack_require__(37);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar search_1 = __webpack_require__(40);\r\nvar ListUtils_1 = __webpack_require__(90);\r\nvar GraphBase = /** @class */ (function () {\r\n function GraphBase(nodes, edges) {\r\n this.nodeMap = {};\r\n this.edgeMap = {};\r\n this.nodes = [];\r\n this.edges = [];\r\n this.onInit();\r\n nodes.forEach(this.addNode.bind(this));\r\n edges.forEach(this.addEdge.bind(this));\r\n }\r\n Object.defineProperty(GraphBase.prototype, \"items\", {\r\n get: function () {\r\n return this.nodes.map(this.getNode.bind(this));\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n GraphBase.prototype.onInit = function () { };\r\n GraphBase.prototype.addEdge = function (edge) {\r\n this.edgeMap[edge.key] = edge;\r\n this.edges.push(edge);\r\n };\r\n GraphBase.prototype.addNode = function (node) {\r\n this.nodeMap[node.key] = node;\r\n this.nodes.push(node.key);\r\n };\r\n GraphBase.prototype.getNode = function (key) {\r\n return this.nodeMap[key];\r\n };\r\n GraphBase.prototype.getEdge = function (key) {\r\n return this.edgeMap[key];\r\n };\r\n GraphBase.prototype.isEmpty = function () {\r\n return !this.nodes.length && !this.edges.length;\r\n };\r\n GraphBase.prototype.getAdjacentEdges = function (nodeKey, connectionMode) {\r\n if (connectionMode === void 0) { connectionMode = Structures_1.ConnectionMode.OutgoingAndIncoming; }\r\n return this.edges.filter(function (e) {\r\n return connectionMode & Structures_1.ConnectionMode.Incoming && e.to === nodeKey ||\r\n connectionMode & Structures_1.ConnectionMode.Outgoing && e.from === nodeKey;\r\n });\r\n };\r\n return GraphBase;\r\n}());\r\nvar Graph = /** @class */ (function (_super) {\r\n __extends(Graph, _super);\r\n function Graph() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Graph.prototype.cast = function (castNode, castEdge) {\r\n var _this = this;\r\n var newNodes = this.nodes.map(function (nk) { return castNode(_this.getNode(nk)); });\r\n var newEdges = this.edges.map(function (e) { return castEdge ? castEdge(e) : e; });\r\n return new Graph(newNodes, newEdges);\r\n };\r\n Graph.prototype.getConnectedComponents = function () {\r\n var iterator = this.createIterator(Structures_1.ConnectionMode.OutgoingAndIncoming);\r\n iterator.visitEachEdgeOnce = true;\r\n var components = [];\r\n var _loop_1 = function (i) {\r\n var nodes = [];\r\n var edges = [];\r\n iterator.onNode = function (n) { return nodes.push(n); };\r\n iterator.onEdge = function (e) { return edges.push(e); };\r\n iterator.iterate(this_1.nodes[i]);\r\n if (nodes.length)\r\n components.push(new Graph(nodes, edges));\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < this.nodes.length; i++) {\r\n _loop_1(i);\r\n }\r\n return components;\r\n };\r\n Graph.prototype.createIterator = function (connectionMode) {\r\n var iterator = new GraphIterator(this, connectionMode);\r\n iterator.comparer = function (a, b) { return a.weight - b.weight; };\r\n return iterator;\r\n };\r\n Graph.prototype.getSpanningGraph = function (rootKey, connectionMode, edgeWeightFunc) {\r\n var _this = this;\r\n if (edgeWeightFunc === void 0) { edgeWeightFunc = undefined; }\r\n if (!this.nodes.length)\r\n return new Graph([], []);\r\n if (!edgeWeightFunc)\r\n edgeWeightFunc = function (e) { return e.weight; };\r\n var sortedAdjacentEdges = [];\r\n var spanningTreeNodesSet = new ListUtils_1.HashSet();\r\n var spanningTreeEdgesSet = new ListUtils_1.HashSet([], function (e) { return e.getHashKey(); });\r\n this.addNodeToSpanningGraph(rootKey, connectionMode, sortedAdjacentEdges, spanningTreeNodesSet, spanningTreeEdgesSet, edgeWeightFunc);\r\n while (sortedAdjacentEdges.length && spanningTreeNodesSet.length !== this.nodes.length) {\r\n var minWeighedEdge = sortedAdjacentEdges.shift();\r\n spanningTreeEdgesSet.tryPush(minWeighedEdge);\r\n var node = spanningTreeNodesSet.contains(minWeighedEdge.from) ? minWeighedEdge.to : minWeighedEdge.from;\r\n this.addNodeToSpanningGraph(node, connectionMode, sortedAdjacentEdges, spanningTreeNodesSet, spanningTreeEdgesSet, edgeWeightFunc);\r\n sortedAdjacentEdges = sortedAdjacentEdges.filter(function (e) { return !spanningTreeNodesSet.contains(e.from) || !spanningTreeNodesSet.contains(e.to); });\r\n }\r\n return new Graph(spanningTreeNodesSet.list().map(function (nk) { return _this.getNode(nk); }), spanningTreeEdgesSet.list());\r\n };\r\n Graph.prototype.addNodeToSpanningGraph = function (nodeKey, connectionMode, adjacentEdges, spanningTreeNodesSet, spanningTreeEdgesSet, edgeWeightFunc) {\r\n spanningTreeNodesSet.tryPush(nodeKey);\r\n this.getAdjacentEdges(nodeKey, connectionMode)\r\n .filter(function (e) { return !spanningTreeEdgesSet.contains(e); })\r\n .forEach(function (e) {\r\n var weight = edgeWeightFunc(e);\r\n var pos = search_1.SearchUtils.binaryIndexOf(adjacentEdges, function (a) { return a.weight - weight; });\r\n pos = pos < 0 ? ~pos : pos;\r\n while (pos < adjacentEdges.length && edgeWeightFunc(adjacentEdges[pos]) === weight)\r\n pos++;\r\n adjacentEdges.splice(pos, 0, new Structures_1.Edge(e.key, e.from, e.to, weight));\r\n });\r\n };\r\n Graph.create = function (shapes, connectors) {\r\n var nodes = shapes;\r\n var edges = connectors\r\n .filter(function (i) { return i.beginItem && i.endItem instanceof Shape_1.Shape && i.endItem && i.endItem instanceof Shape_1.Shape && i.beginItem !== i.endItem; }) // TBD: ShapeItem?\r\n .map(function (i) { return new Structures_1.Edge(i.key, i.beginItem && i.beginItem.key, i.endItem && i.endItem.key); });\r\n return new Graph(nodes, edges);\r\n };\r\n return Graph;\r\n}(GraphBase));\r\nexports.Graph = Graph;\r\nvar FastGraph = /** @class */ (function (_super) {\r\n __extends(FastGraph, _super);\r\n function FastGraph() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n FastGraph.prototype.onInit = function () {\r\n this.parentToChildren = {};\r\n this.childToParents = {};\r\n };\r\n FastGraph.prototype.addEdge = function (edge) {\r\n _super.prototype.addEdge.call(this, edge);\r\n (this.parentToChildren[edge.from] || (this.parentToChildren[edge.from] = [])).push(edge.to);\r\n (this.childToParents[edge.to] || (this.childToParents[edge.to] = [])).push(edge.from);\r\n };\r\n FastGraph.prototype.getChildren = function (parent) {\r\n return this.parentToChildren[parent] || [];\r\n };\r\n FastGraph.prototype.getParents = function (child) {\r\n return this.childToParents[child] || [];\r\n };\r\n FastGraph.prototype.createIterator = function (connectionMode) {\r\n return new GraphIterator(this, connectionMode);\r\n };\r\n return FastGraph;\r\n}(GraphBase));\r\nexports.FastGraph = FastGraph;\r\nvar GraphIterator = /** @class */ (function () {\r\n function GraphIterator(graph, connectionMode) {\r\n if (connectionMode === void 0) { connectionMode = Structures_1.ConnectionMode.OutgoingAndIncoming; }\r\n this.graph = graph;\r\n this.connectionMode = connectionMode;\r\n this.visitEachEdgeOnce = true;\r\n this.visitEachNodeOnce = true;\r\n this.visitedNodes = {};\r\n this.visitedEdges = {};\r\n }\r\n GraphIterator.prototype.iterate = function (nodeKey) {\r\n if (!this.visitEachNodeOnce && !this.visitEachEdgeOnce && !this.skipNode)\r\n throw \"skipNode or visitEachNodeOnce or visitEachEdgeOnce must be set to avoid SOF\";\r\n this.iterateCore(nodeKey);\r\n };\r\n GraphIterator.prototype.iterateCore = function (nodeKey) {\r\n var _this = this;\r\n var node = this.graph.getNode(nodeKey);\r\n if (!node || (this.skipNode && this.skipNode(node)) || (this.visitEachNodeOnce && this.isNodeVisited(nodeKey)))\r\n return;\r\n this.visitedNodes[nodeKey] = true;\r\n this.onNode && this.onNode(node);\r\n var edges = this.graph.getAdjacentEdges(nodeKey, this.connectionMode);\r\n if (this.skipEdge)\r\n edges = edges.filter(function (e) { return !_this.skipEdge(e); });\r\n if (this.connectionMode & Structures_1.ConnectionMode.Outgoing) {\r\n var outgoing = edges.filter(function (e) { return e.from === nodeKey; });\r\n if (this.comparer)\r\n outgoing.sort(this.comparer);\r\n outgoing.forEach(function (e) {\r\n if (_this.visitEachEdgeOnce && _this.visitedEdges[e.key])\r\n return;\r\n _this.visitedEdges[e.key] = true;\r\n _this.onEdge && _this.onEdge(e, true);\r\n _this.iterateCore(e.to);\r\n _this.onAfterEdge && _this.onAfterEdge(e, true);\r\n });\r\n }\r\n this.onAllEdges && this.onAllEdges(node, true);\r\n if (this.connectionMode & Structures_1.ConnectionMode.Incoming) {\r\n var incoming = edges.filter(function (e) { return e.to === nodeKey; });\r\n if (this.comparer)\r\n incoming.sort(this.comparer);\r\n incoming.forEach(function (e) {\r\n if (_this.visitEachEdgeOnce && _this.visitedEdges[e.key])\r\n return;\r\n _this.visitedEdges[e.key] = true;\r\n _this.onEdge && _this.onEdge(e, false);\r\n _this.iterateCore(e.from);\r\n _this.onAfterEdge && _this.onAfterEdge(e, false);\r\n });\r\n }\r\n this.onAllEdges && this.onAllEdges(node, false);\r\n };\r\n GraphIterator.prototype.isNodeVisited = function (nodeKey) {\r\n return !!this.visitedNodes[nodeKey];\r\n };\r\n GraphIterator.prototype.isEdgeVisited = function (edgeKey) {\r\n return !!this.visitedEdges[edgeKey];\r\n };\r\n return GraphIterator;\r\n}());\r\nexports.GraphIterator = GraphIterator;\r\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Margin = exports.EdgeLayout = exports.NodeLayout = exports.NodeInfo = void 0;\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar NodeInfo = /** @class */ (function () {\r\n function NodeInfo(key, margin, size, connectionPoints) {\r\n if (connectionPoints === void 0) { connectionPoints = []; }\r\n this.key = key;\r\n this.margin = margin;\r\n this.size = size;\r\n this.connectionPoints = connectionPoints;\r\n }\r\n return NodeInfo;\r\n}());\r\nexports.NodeInfo = NodeInfo;\r\nvar NodeLayout = /** @class */ (function () {\r\n function NodeLayout(info, position) {\r\n this.info = info;\r\n this.position = position;\r\n }\r\n Object.defineProperty(NodeLayout.prototype, \"key\", {\r\n get: function () { return this.info.key; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(NodeLayout.prototype, \"rectangle\", {\r\n get: function () {\r\n return rectangle_1.Rectangle.fromGeometry(this.position, this.info.size);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return NodeLayout;\r\n}());\r\nexports.NodeLayout = NodeLayout;\r\nvar EdgeLayout = /** @class */ (function () {\r\n function EdgeLayout(key, beginIndex, endIndex) {\r\n this.key = key;\r\n this.beginIndex = beginIndex;\r\n this.endIndex = endIndex;\r\n }\r\n return EdgeLayout;\r\n}());\r\nexports.EdgeLayout = EdgeLayout;\r\nvar Margin = /** @class */ (function () {\r\n function Margin(top, right, bottom, left) {\r\n if (right === void 0) { right = top; }\r\n if (bottom === void 0) { bottom = top; }\r\n if (left === void 0) { left = top; }\r\n this.top = top;\r\n this.right = right;\r\n this.bottom = bottom;\r\n this.left = left;\r\n }\r\n Margin.empty = function () {\r\n return new Margin(0);\r\n };\r\n return Margin;\r\n}());\r\nexports.Margin = Margin;\r\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EllipseShapeDescription = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar size_1 = __webpack_require__(2);\r\nvar EllipsePrimitive_1 = __webpack_require__(52);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar EllipseShapeDescription = /** @class */ (function (_super) {\r\n __extends(EllipseShapeDescription, _super);\r\n function EllipseShapeDescription(hasDefaultText) {\r\n return _super.call(this, new size_1.Size(ShapeDescription_1.ShapeDefaultDimension, ShapeDescription_1.ShapeDefaultDimension * 0.75), hasDefaultText) || this;\r\n }\r\n Object.defineProperty(EllipseShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Ellipse; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(EllipseShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n EllipseShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var textSize = Utils_1.GeometryUtils.getMaxRectangleEnscribedInEllipse(shape.size);\r\n return rectangle_1.Rectangle.fromGeometry(shape.position.clone().offset((shape.size.width - textSize.width) / 2, (shape.size.height - textSize.height) / 2), textSize);\r\n };\r\n EllipseShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n return Utils_1.GeometryUtils.getEllipseByEnscribedRectangle(textSize);\r\n };\r\n EllipseShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var width = rect.width, height = rect.height;\r\n var _a = rect.center, cx = _a.x, cy = _a.y;\r\n return [\r\n new EllipsePrimitive_1.EllipsePrimitive(cx, cy, width / 2, height / 2, shape.style),\r\n ];\r\n };\r\n return EllipseShapeDescription;\r\n}(ShapeDescription_1.ShapeDescription));\r\nexports.EllipseShapeDescription = EllipseShapeDescription;\r\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Exporter = void 0;\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar Exporter = /** @class */ (function () {\r\n function Exporter() {\r\n }\r\n Exporter.prototype.export = function (model) {\r\n var obj = {\r\n page: {},\r\n connectors: [],\r\n shapes: []\r\n };\r\n obj.page = {\r\n \"width\": model.size.width,\r\n \"height\": model.size.height,\r\n \"pageColor\": model.pageColor,\r\n \"pageWidth\": model.pageSize.width,\r\n \"pageHeight\": model.pageSize.height,\r\n \"pageLandscape\": model.pageLandscape\r\n };\r\n this.exportItemsCore(model.items, obj);\r\n return JSON.stringify(obj);\r\n };\r\n Exporter.prototype.exportItems = function (items) {\r\n var obj = {\r\n connectors: [],\r\n shapes: []\r\n };\r\n this.exportItemsCore(items, obj);\r\n return JSON.stringify(obj);\r\n };\r\n Exporter.prototype.exportItemsCore = function (items, obj) {\r\n var _this = this;\r\n items.forEach(function (item) {\r\n if (item instanceof Shape_1.Shape)\r\n obj.shapes.push(_this.exportShape(item));\r\n else if (item instanceof Connector_1.Connector) {\r\n var connectorObj = _this.exportConnector(item);\r\n if (item.beginItem) {\r\n connectorObj[\"beginItemKey\"] = item.beginItem.key;\r\n connectorObj[\"beginConnectionPointIndex\"] = item.beginConnectionPointIndex;\r\n }\r\n if (item.endItem) {\r\n connectorObj[\"endItemKey\"] = item.endItem.key;\r\n connectorObj[\"endConnectionPointIndex\"] = item.endConnectionPointIndex;\r\n }\r\n obj.connectors.push(connectorObj);\r\n }\r\n });\r\n };\r\n Exporter.prototype.exportItem = function (item) {\r\n return {\r\n \"key\": item.key,\r\n \"dataKey\": item.dataKey,\r\n \"customData\": Utils_1.ObjectUtils.cloneObject(item.customData),\r\n \"locked\": item.locked,\r\n \"zIndex\": item.zIndex\r\n };\r\n };\r\n Exporter.prototype.exportShape = function (shape) {\r\n var result = this.exportItem(shape);\r\n result[\"type\"] = shape.description.key;\r\n result[\"text\"] = shape.text;\r\n if (!shape.image.isEmpty)\r\n result[\"imageUrl\"] = shape.image.exportUrl;\r\n result[\"x\"] = shape.position.x;\r\n result[\"y\"] = shape.position.y;\r\n result[\"width\"] = shape.size.width;\r\n result[\"height\"] = shape.size.height;\r\n var paramsObj = shape.parameters.toObject();\r\n if (paramsObj)\r\n result[\"parameters\"] = paramsObj;\r\n var styleObj = shape.style.toObject();\r\n if (styleObj)\r\n result[\"style\"] = styleObj;\r\n var styleTextObj = shape.styleText.toObject();\r\n if (styleTextObj)\r\n result[\"styleText\"] = styleTextObj;\r\n if (shape.children.length)\r\n result[\"childKeys\"] = shape.children.map(function (child) { return child.key; });\r\n if (!shape.expanded)\r\n result[\"expanded\"] = false;\r\n if (shape.expandedSize) {\r\n result[\"expandedWidth\"] = shape.expandedSize.width;\r\n result[\"expandedHeight\"] = shape.expandedSize.height;\r\n }\r\n return result;\r\n };\r\n Exporter.prototype.exportConnector = function (connector) {\r\n var result = this.exportItem(connector);\r\n result[\"points\"] = connector.points.map(function (p) { return { \"x\": p.x, \"y\": p.y }; });\r\n var textObj = connector.texts.toObject();\r\n if (textObj)\r\n result[\"texts\"] = textObj;\r\n var propsObj = connector.properties.toObject();\r\n if (propsObj)\r\n result[\"properties\"] = propsObj;\r\n var styleObj = connector.style.toObject();\r\n if (styleObj)\r\n result[\"style\"] = styleObj;\r\n var styleTextObj = connector.styleText.toObject();\r\n if (styleTextObj)\r\n result[\"styleText\"] = styleTextObj;\r\n return result;\r\n };\r\n // Images\r\n Exporter.prototype.exportSvg = function (modelSize, pageColor, exportManager, callback) {\r\n exportManager.exportSvgImage(modelSize, pageColor, callback);\r\n };\r\n Exporter.prototype.exportPng = function (modelSize, pageColor, exportManager, callback) {\r\n exportManager.exportPngImage(modelSize, pageColor, callback);\r\n };\r\n Exporter.prototype.exportJpg = function (modelSize, pageColor, exportManager, callback) {\r\n exportManager.exportJpgImage(modelSize, pageColor, callback);\r\n };\r\n return Exporter;\r\n}());\r\nexports.Exporter = Exporter;\r\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ToggleStyleTextPropertyCommand = void 0;\r\nvar StylePropertyCommandBase_1 = __webpack_require__(135);\r\nvar ChangeStyleTextHistoryItem_1 = __webpack_require__(67);\r\nvar Style_1 = __webpack_require__(30);\r\nvar ToggleStyleTextPropertyCommand = /** @class */ (function (_super) {\r\n __extends(ToggleStyleTextPropertyCommand, _super);\r\n function ToggleStyleTextPropertyCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToggleStyleTextPropertyCommand.prototype.getValue = function () {\r\n var value = this.control.selection.inputPosition.getCurrentTextStylePropertyValue(this.getStyleProperty());\r\n return value === this.getStylePropertyValue();\r\n };\r\n ToggleStyleTextPropertyCommand.prototype.executeCore = function (state) {\r\n var _this = this;\r\n this.control.history.beginTransaction();\r\n var styleProperty = this.getStyleProperty();\r\n var styleValue = state.value ? Style_1.TextStyle.defaultInstance[styleProperty] : this.getStylePropertyValue();\r\n var items = this.control.selection.getSelectedItems();\r\n items.forEach(function (item) {\r\n _this.control.history.addAndRedo(new ChangeStyleTextHistoryItem_1.ChangeStyleTextHistoryItem(item.key, styleProperty, styleValue));\r\n });\r\n this.control.selection.inputPosition.setTextStylePropertyValue(this.getStyleProperty(), styleValue);\r\n this.control.history.endTransaction();\r\n return true;\r\n };\r\n ToggleStyleTextPropertyCommand.prototype.getStyleObj = function (item) {\r\n return item.styleText;\r\n };\r\n ToggleStyleTextPropertyCommand.prototype.getDefaultStyleObj = function () {\r\n return new Style_1.TextStyle();\r\n };\r\n return ToggleStyleTextPropertyCommand;\r\n}(StylePropertyCommandBase_1.StylePropertyCommandBase));\r\nexports.ToggleStyleTextPropertyCommand = ToggleStyleTextPropertyCommand;\r\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeStylePropertyCommand = void 0;\r\nvar ChangeStylePropertyCommandBase_1 = __webpack_require__(136);\r\nvar ChangeStyleHistoryItem_1 = __webpack_require__(89);\r\nvar Style_1 = __webpack_require__(30);\r\nvar ChangeStylePropertyCommand = /** @class */ (function (_super) {\r\n __extends(ChangeStylePropertyCommand, _super);\r\n function ChangeStylePropertyCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeStylePropertyCommand.prototype.getValue = function () {\r\n return this.control.selection.inputPosition.getCurrentStylePropertyValue(this.getStyleProperty());\r\n };\r\n ChangeStylePropertyCommand.prototype.getStyleObj = function (item) {\r\n return item.style;\r\n };\r\n ChangeStylePropertyCommand.prototype.getDefaultStyleObj = function () {\r\n return new Style_1.Style();\r\n };\r\n ChangeStylePropertyCommand.prototype.createHistoryItem = function (item, styleProperty, styleValue) {\r\n return new ChangeStyleHistoryItem_1.ChangeStyleHistoryItem(item.key, styleProperty, styleValue);\r\n };\r\n ChangeStylePropertyCommand.prototype.updateInputPosition = function (value) {\r\n this.control.selection.inputPosition.setStylePropertyValue(this.getStyleProperty(), value);\r\n };\r\n return ChangeStylePropertyCommand;\r\n}(ChangeStylePropertyCommandBase_1.ChangeStylePropertyCommandBase));\r\nexports.ChangeStylePropertyCommand = ChangeStylePropertyCommand;\r\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AutoLayoutCommandBase = void 0;\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar ScrollIntoViewHistoryItem_1 = __webpack_require__(252);\r\nvar AutoLayoutCommandBase = /** @class */ (function (_super) {\r\n __extends(AutoLayoutCommandBase, _super);\r\n function AutoLayoutCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n AutoLayoutCommandBase.prototype.executeCore = function (state, parameter) {\r\n var _this = this;\r\n this.control.history.beginTransaction();\r\n var shapes = this.getAffectedShapes();\r\n var connectors = this.getAffectedConnectors();\r\n var settings = this.createLayoutSettings();\r\n var graphInfo = ModelUtils_1.ModelUtils.getGraphInfoByItems(this.control.model, shapes, connectors, false);\r\n if (graphInfo.length) {\r\n var rectangle_2;\r\n var model_1 = this.control.model;\r\n var commonRect = Utils_1.GeometryUtils.getCommonRectangle(Utils_1.Utils.flatten(graphInfo.map(function (g) { return g.graph.items.map(function (i) { return model_1.findItem(i.key); }); }))\r\n .concat(graphInfo.map(function (g) { return g.container; }))\r\n .filter(function (i) { return i; })\r\n .map(function (i) { return i.rectangle; }));\r\n this.control.history.addAndRedo(new ScrollIntoViewHistoryItem_1.ScrollIntoViewOnUndoHistoryItem(this.control.view, commonRect));\r\n graphInfo.forEach(function (info) {\r\n var layout = _this.createLayout(settings, info.graph);\r\n var nonGraphItems = ModelUtils_1.ModelUtils.getNonGraphItems(_this.control.model, info.container, layout.nodeToLayout, shapes, connectors);\r\n var layoutRect = ModelUtils_1.ModelUtils.applyLayout(_this.control.history, _this.control.model, info.container, info.graph, layout, nonGraphItems, settings, _this.control.settings.snapToGrid, _this.control.settings.gridSize, false);\r\n rectangle_2 = rectangle_2 && rectangle_1.Rectangle.union(rectangle_2, layoutRect) || layoutRect;\r\n });\r\n ModelUtils_1.ModelUtils.tryUpdateModelRectangle(this.control.history);\r\n this.control.history.addAndRedo(new ScrollIntoViewHistoryItem_1.ScrollIntoViewOnRedoHistoryItem(this.control.view, rectangle_2));\r\n }\r\n this.control.history.endTransaction();\r\n return true;\r\n };\r\n AutoLayoutCommandBase.prototype.getAffectedShapes = function () {\r\n return this.control.selection.isEmpty() ?\r\n this.control.model.items.filter((function (i) { return i instanceof Shape_1.Shape && !i.locked; })) :\r\n this.control.selection.getSelectedShapes(false, true);\r\n };\r\n AutoLayoutCommandBase.prototype.getAffectedConnectors = function () {\r\n return this.control.selection.isEmpty() ?\r\n this.control.model.items.filter((function (i) { return i instanceof Connector_1.Connector && !i.locked; })) :\r\n this.control.selection.getSelectedConnectors(false, true);\r\n };\r\n return AutoLayoutCommandBase;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.AutoLayoutCommandBase = AutoLayoutCommandBase;\r\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangePagePropertyCommand = void 0;\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar ChangePagePropertyCommand = /** @class */ (function (_super) {\r\n __extends(ChangePagePropertyCommand, _super);\r\n function ChangePagePropertyCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangePagePropertyCommand.prototype.executeCore = function (state, parameter) {\r\n var _this = this;\r\n this.control.history.beginTransaction();\r\n var items = this.createHistoryItems(parameter);\r\n items.forEach(function (item) { _this.control.history.addAndRedo(item); });\r\n ModelUtils_1.ModelUtils.tryUpdateModelRectangle(this.control.history);\r\n this.control.history.endTransaction();\r\n return true;\r\n };\r\n ChangePagePropertyCommand.prototype.getItems = function () {\r\n return null;\r\n };\r\n return ChangePagePropertyCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ChangePagePropertyCommand = ChangePagePropertyCommand;\r\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CanvasItemsManager = exports.CONNECTOR_CAN_MOVE = exports.NOT_VALID_CSSCLASS = void 0;\r\nvar ModelChange_1 = __webpack_require__(99);\r\nvar Event_1 = __webpack_require__(11);\r\nvar GroupPrimitive_1 = __webpack_require__(38);\r\nvar Utils_1 = __webpack_require__(18);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar dom_1 = __webpack_require__(26);\r\nvar CanvasManager_1 = __webpack_require__(141);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nexports.NOT_VALID_CSSCLASS = \"not-valid\";\r\nexports.CONNECTOR_CAN_MOVE = \"can-move\";\r\nvar CanvasItemsManager = /** @class */ (function (_super) {\r\n __extends(CanvasItemsManager, _super);\r\n function CanvasItemsManager(viewElement, zoomLevel, dom) {\r\n var _this = _super.call(this, zoomLevel, dom) || this;\r\n _this.itemSelectorGroupContainers = {};\r\n _this.itemSelectorElements = {};\r\n _this.itemGroupContainers = {};\r\n _this.itemElements = {};\r\n _this.itemChildElements = {};\r\n _this.primitives = {};\r\n _this.selectorPrimitives = {};\r\n _this.selectedItems = {};\r\n _this.initializeContainerElements(viewElement);\r\n return _this;\r\n }\r\n CanvasItemsManager.prototype.initializeContainerElements = function (view) {\r\n this.itemSelectorsContainer = this.createAndChangePrimitiveElement(new GroupPrimitive_1.GroupPrimitive([], null), view);\r\n this.itemsContainer = this.createAndChangePrimitiveElement(new GroupPrimitive_1.GroupPrimitive([], null), view);\r\n };\r\n CanvasItemsManager.prototype.clear = function () {\r\n this.primitives = {};\r\n this.selectorPrimitives = {};\r\n Utils_1.RenderUtils.removeContent(this.itemSelectorsContainer);\r\n Utils_1.RenderUtils.removeContent(this.itemsContainer);\r\n this.itemSelectorGroupContainers = {};\r\n this.itemSelectorElements = {};\r\n this.itemGroupContainers = {};\r\n this.itemElements = {};\r\n this.itemChildElements = {};\r\n this.selectedItems = {};\r\n };\r\n CanvasItemsManager.prototype.applyChange = function (change) {\r\n var item = change.item;\r\n var itemParent = this.getItemParent(item.zIndex, item.container && item.container.key);\r\n if (!itemParent)\r\n return false;\r\n if (item instanceof Shape_1.Shape)\r\n this.applyShapeChange(item, change.type, change.isValid);\r\n else if (item instanceof Connector_1.Connector)\r\n this.applyConnectorChange(item, change.type, change.isValid);\r\n return true;\r\n };\r\n // Notifications\r\n CanvasItemsManager.prototype.setPointerEventsNone = function (element, value) {\r\n var style = element.style;\r\n if (style !== undefined && style.pointerEvents !== undefined)\r\n style.pointerEvents = value ? \"none\" : \"\";\r\n var childNodes = element.childNodes;\r\n for (var i = 0; i < childNodes.length; i++)\r\n this.setPointerEventsNone(childNodes[i], value);\r\n };\r\n CanvasItemsManager.prototype.notifyDragStart = function (itemKeys) {\r\n var _this = this;\r\n itemKeys.forEach(function (itemKey) {\r\n if (_this.itemElements[itemKey])\r\n _this.setPointerEventsNone(_this.itemElements[itemKey], true);\r\n if (_this.itemChildElements[itemKey])\r\n _this.setPointerEventsNone(_this.itemChildElements[itemKey], true);\r\n if (_this.itemSelectorElements[itemKey])\r\n _this.setPointerEventsNone(_this.itemSelectorElements[itemKey], true);\r\n });\r\n };\r\n CanvasItemsManager.prototype.notifyDragEnd = function (itemKeys) {\r\n var _this = this;\r\n itemKeys.forEach(function (itemKey) {\r\n if (_this.itemElements[itemKey])\r\n _this.setPointerEventsNone(_this.itemElements[itemKey], false);\r\n if (_this.itemChildElements[itemKey])\r\n _this.setPointerEventsNone(_this.itemChildElements[itemKey], false);\r\n if (_this.itemSelectorElements[itemKey])\r\n _this.setPointerEventsNone(_this.itemSelectorElements[itemKey], false);\r\n });\r\n };\r\n CanvasItemsManager.prototype.notifyDragScrollStart = function () { };\r\n CanvasItemsManager.prototype.notifyDragScrollEnd = function () { };\r\n CanvasItemsManager.prototype.notifyTextInputStart = function (item, text, position, size) {\r\n var element = this.itemElements[item.key];\r\n dom_1.DomUtils.addClassName(element, \"text-input\");\r\n };\r\n CanvasItemsManager.prototype.notifyTextInputEnd = function (item) {\r\n var element = this.itemElements[item.key];\r\n dom_1.DomUtils.removeClassName(element, \"text-input\");\r\n };\r\n CanvasItemsManager.prototype.notifyTextInputPermissionsCheck = function (item, allowed) {\r\n var element = this.itemElements[item.key];\r\n if (allowed)\r\n dom_1.DomUtils.removeClassName(element, exports.NOT_VALID_CSSCLASS);\r\n else\r\n dom_1.DomUtils.addClassName(element, exports.NOT_VALID_CSSCLASS);\r\n };\r\n CanvasItemsManager.prototype.notifyActualZoomChanged = function (actualZoom) {\r\n var scale = \"scale(\" + actualZoom + \")\";\r\n this.dom.changeByFunc(this.itemsContainer, function (e) { return e.setAttribute(\"transform\", scale); });\r\n this.dom.changeByFunc(this.itemSelectorsContainer, function (e) { return e.setAttribute(\"transform\", scale); });\r\n this.actualZoom = actualZoom;\r\n };\r\n CanvasItemsManager.prototype.notifyViewAdjusted = function (canvasOffset) { };\r\n // Primitives\r\n CanvasItemsManager.prototype.invalidatePrimitives = function (item) {\r\n if (this.primitives[item.key]) {\r\n this.primitives[item.key].forEach(function (primitive) {\r\n primitive.dispose();\r\n });\r\n delete this.primitives[item.key];\r\n }\r\n if (this.selectorPrimitives[item.key]) {\r\n this.selectorPrimitives[item.key].forEach(function (primitive) {\r\n primitive.dispose();\r\n });\r\n delete this.selectorPrimitives[item.key];\r\n }\r\n };\r\n CanvasItemsManager.prototype.getPrimitives = function (item) {\r\n if (!this.primitives[item.key])\r\n this.primitives[item.key] = item.createPrimitives();\r\n return this.primitives[item.key];\r\n };\r\n CanvasItemsManager.prototype.getSelectorPrimitives = function (item) {\r\n if (!this.selectorPrimitives[item.key])\r\n this.selectorPrimitives[item.key] = item.createSelectorPrimitives();\r\n return this.selectorPrimitives[item.key];\r\n };\r\n // Drawing\r\n CanvasItemsManager.prototype.getShapeSelectorClassName = function (shape) {\r\n var className = \"shape\";\r\n if (shape.enableChildren)\r\n className += \" container\";\r\n if (shape.isLocked)\r\n className += \" locked\";\r\n return className;\r\n };\r\n CanvasItemsManager.prototype.getShapeClassName = function (shape, isValid) {\r\n var selectorClassName = this.getShapeSelectorClassName(shape);\r\n return isValid ? selectorClassName : selectorClassName + \" \" + exports.NOT_VALID_CSSCLASS;\r\n };\r\n CanvasItemsManager.prototype.applyShapeChange = function (shape, type, isValid) {\r\n var key = shape.key;\r\n var containerKey = shape.container && shape.container.key;\r\n var itemSelectorParent = this.getItemSelectorGroupContainer(shape.zIndex, containerKey);\r\n var itemParent = this.getItemGroupContainer(shape.zIndex, containerKey);\r\n var itemClassName = this.getShapeClassName(shape, isValid);\r\n switch (type) {\r\n case ModelChange_1.ItemChangeType.Create:\r\n this.itemSelectorElements[key] = this.createItemElements(key, this.getSelectorPrimitives(shape), itemSelectorParent, this.getShapeSelectorClassName(shape), Event_1.MouseEventElementType.Shape);\r\n this.itemElements[key] = this.createItemElements(key, this.getPrimitives(shape), itemParent, itemClassName, Event_1.MouseEventElementType.Shape);\r\n if (shape.enableChildren) {\r\n this.itemChildElements[key] = this.createItemElements(key, [], itemParent, \"container-children\", Event_1.MouseEventElementType.Undefined);\r\n this.changeItemChildrenVisibility(this.itemChildElements[key], shape.expanded);\r\n }\r\n break;\r\n case ModelChange_1.ItemChangeType.Remove:\r\n this.removeItemCustomContent(this.itemSelectorElements[key], this.getSelectorPrimitives(shape));\r\n this.removeItemCustomContent(this.itemElements[key], this.getPrimitives(shape));\r\n this.invalidatePrimitives(shape);\r\n this.removeItemElements(this.itemSelectorElements[key]);\r\n delete this.itemSelectorElements[key];\r\n this.removeItemElements(this.itemElements[key]);\r\n delete this.itemElements[key];\r\n if (this.itemChildElements[key]) {\r\n this.removeItemElements(this.itemChildElements[key]);\r\n delete this.itemChildElements[key];\r\n delete this.itemGroupContainers[key];\r\n delete this.itemSelectorGroupContainers[key];\r\n }\r\n break;\r\n case ModelChange_1.ItemChangeType.UpdateStructure:\r\n case ModelChange_1.ItemChangeType.UpdateProperties:\r\n case ModelChange_1.ItemChangeType.Update:\r\n if (type !== ModelChange_1.ItemChangeType.Update) {\r\n if (type === ModelChange_1.ItemChangeType.UpdateStructure) {\r\n this.removeItemCustomContent(this.itemSelectorElements[key], this.getSelectorPrimitives(shape));\r\n this.removeItemCustomContent(this.itemElements[key], this.getPrimitives(shape));\r\n }\r\n this.invalidatePrimitives(shape);\r\n }\r\n this.changeItemElements(this.getSelectorPrimitives(shape), this.itemSelectorElements[key], type === ModelChange_1.ItemChangeType.UpdateStructure);\r\n this.changeItemElements(this.getPrimitives(shape), this.itemElements[key], type === ModelChange_1.ItemChangeType.UpdateStructure);\r\n this.changeItemClassName(this.itemElements[key], itemClassName);\r\n if (this.itemChildElements[key])\r\n this.changeItemChildrenVisibility(this.itemChildElements[key], shape.expanded);\r\n if (itemSelectorParent !== (this.itemSelectorElements[key] && this.itemSelectorElements[key].parentNode))\r\n this.moveItemElements(itemSelectorParent, this.itemSelectorElements[key]);\r\n if (itemParent !== (this.itemElements[key] && this.itemElements[key].parentNode))\r\n this.moveItemElements(itemParent, this.itemElements[key]);\r\n if (this.itemChildElements[key] && (itemParent !== this.itemChildElements[key].parentNode))\r\n this.moveItemElements(itemParent, this.itemChildElements[key]);\r\n break;\r\n case ModelChange_1.ItemChangeType.UpdateClassName:\r\n this.changeItemClassName(this.itemElements[key], itemClassName);\r\n }\r\n };\r\n CanvasItemsManager.prototype.getConnectorSelectorClassName = function (connector) {\r\n return \"connector\";\r\n };\r\n CanvasItemsManager.prototype.getConnectorClassName = function (connector, isValid) {\r\n var selectorClassName = this.getConnectorSelectorClassName(connector);\r\n var selectorMoveClassName = ModelUtils_1.ModelUtils.canMoveConnector(this.selectedItems, connector) ? selectorClassName + \" \" + exports.CONNECTOR_CAN_MOVE : selectorClassName;\r\n return isValid ? selectorMoveClassName : selectorMoveClassName + \" \" + exports.NOT_VALID_CSSCLASS;\r\n };\r\n CanvasItemsManager.prototype.applyConnectorChange = function (connector, type, isValid) {\r\n var key = connector.key;\r\n var containerKey = connector.container && connector.container.key;\r\n var itemSelectorParent = this.getItemSelectorGroupContainer(connector.zIndex, containerKey);\r\n var itemParent = this.getItemGroupContainer(connector.zIndex, containerKey);\r\n var className = this.getConnectorClassName(connector, isValid);\r\n switch (type) {\r\n case ModelChange_1.ItemChangeType.Create:\r\n this.itemSelectorElements[key] = this.createItemElements(key, this.getSelectorPrimitives(connector), itemSelectorParent, this.getConnectorSelectorClassName(connector), Event_1.MouseEventElementType.Connector);\r\n this.itemElements[key] = this.createItemElements(key, this.getPrimitives(connector), itemParent, className, Event_1.MouseEventElementType.Connector);\r\n break;\r\n case ModelChange_1.ItemChangeType.Remove:\r\n this.removeItemCustomContent(this.itemSelectorElements[key], this.getSelectorPrimitives(connector));\r\n this.removeItemCustomContent(this.itemElements[key], this.getPrimitives(connector));\r\n this.invalidatePrimitives(connector);\r\n this.removeItemElements(this.itemSelectorElements[key]);\r\n delete this.itemSelectorElements[key];\r\n this.removeItemElements(this.itemElements[key]);\r\n delete this.itemElements[key];\r\n break;\r\n case ModelChange_1.ItemChangeType.UpdateStructure:\r\n case ModelChange_1.ItemChangeType.UpdateProperties:\r\n case ModelChange_1.ItemChangeType.Update:\r\n if (type !== ModelChange_1.ItemChangeType.Update) {\r\n if (type === ModelChange_1.ItemChangeType.UpdateStructure) {\r\n this.removeItemCustomContent(this.itemSelectorElements[key], this.getSelectorPrimitives(connector));\r\n this.removeItemCustomContent(this.itemElements[key], this.getPrimitives(connector));\r\n }\r\n this.invalidatePrimitives(connector);\r\n }\r\n this.changeItemElements(this.getSelectorPrimitives(connector), this.itemSelectorElements[key], type === ModelChange_1.ItemChangeType.UpdateStructure);\r\n this.changeItemClassName(this.itemSelectorElements[key], this.getConnectorSelectorClassName(connector));\r\n this.changeItemElements(this.getPrimitives(connector), this.itemElements[key], type === ModelChange_1.ItemChangeType.UpdateStructure);\r\n this.changeItemClassName(this.itemElements[key], className);\r\n if (itemSelectorParent !== (this.itemSelectorElements[key] && this.itemSelectorElements[key].parentNode))\r\n this.moveItemElements(itemSelectorParent, this.itemSelectorElements[key]);\r\n if (itemParent !== (this.itemElements[key] && this.itemElements[key].parentNode))\r\n this.moveItemElements(itemParent, this.itemElements[key]);\r\n break;\r\n case ModelChange_1.ItemChangeType.UpdateClassName:\r\n this.changeItemClassName(this.itemSelectorElements[key], this.getConnectorSelectorClassName(connector));\r\n this.changeItemClassName(this.itemElements[key], className);\r\n }\r\n };\r\n CanvasItemsManager.prototype.createItemElements = function (key, primitives, parent, className, type) {\r\n var gEl = this.createAndChangePrimitiveElement(new GroupPrimitive_1.GroupPrimitive([], className, undefined, undefined, function (e) { return Utils_1.RenderUtils.setElementEventData(e, type, key); }), parent);\r\n this.createAndChangePrimitivesElements(primitives, gEl);\r\n return gEl;\r\n };\r\n CanvasItemsManager.prototype.changeItemElements = function (primitives, element, updateStructure) {\r\n if (updateStructure || primitives.length !== element.childNodes.length) {\r\n Utils_1.RenderUtils.removeContent(element);\r\n this.createAndChangePrimitivesElements(primitives, element);\r\n }\r\n else\r\n this.dom.changeChildrenByPrimitives(primitives, element);\r\n };\r\n CanvasItemsManager.prototype.changeItemClassName = function (element, className) {\r\n if (className && element)\r\n this.changePrimitiveElement(new GroupPrimitive_1.GroupPrimitive([], className), element);\r\n };\r\n CanvasItemsManager.prototype.removeItemElements = function (element) {\r\n if (element && element.parentNode)\r\n element.parentNode.removeChild(element);\r\n };\r\n CanvasItemsManager.prototype.removeItemCustomContent = function (element, primitives) {\r\n if (element && primitives && primitives.length === element.childNodes.length)\r\n primitives.forEach(function (primitive, index) {\r\n primitive.destroyCustomContent(element.childNodes[index]);\r\n });\r\n };\r\n CanvasItemsManager.prototype.moveItemElements = function (parent, element, sibling) {\r\n if (element && parent)\r\n if (sibling)\r\n parent.insertBefore(element, sibling);\r\n else\r\n parent.appendChild(element);\r\n };\r\n CanvasItemsManager.prototype.changeItemChildrenVisibility = function (element, expanded) {\r\n element.style.display = expanded ? \"\" : \"none\";\r\n };\r\n CanvasItemsManager.prototype.getItemGroupContainerKey = function (zIndex, parentContainerKey) {\r\n return parentContainerKey !== undefined ? zIndex + \"_\" + parentContainerKey : zIndex.toString();\r\n };\r\n CanvasItemsManager.prototype.getItemGroupContainer = function (zIndex, parentContainerKey) {\r\n var parent = parentContainerKey !== undefined ? this.getItemParent(zIndex, parentContainerKey) : this.itemsContainer;\r\n var key = parentContainerKey || \"Main\";\r\n if (this.itemGroupContainers[key] === undefined || this.itemGroupContainers[key][zIndex] === undefined) {\r\n if (this.itemGroupContainers[key] === undefined)\r\n this.itemGroupContainers[key] = [];\r\n this.itemGroupContainers[key][zIndex] = this.createAndChangePrimitiveElement(new GroupPrimitive_1.GroupPrimitive([], null, zIndex), parent, this.itemGroupContainers[key][zIndex + 1]);\r\n }\r\n return this.itemGroupContainers[key][zIndex];\r\n };\r\n CanvasItemsManager.prototype.getItemSelectorGroupContainer = function (zIndex, parentContainerKey) {\r\n var parent = parentContainerKey !== undefined ? this.getItemSelectorParent(zIndex, parentContainerKey) : this.itemSelectorsContainer;\r\n var key = parentContainerKey || \"Main\";\r\n if (this.itemSelectorGroupContainers[key] === undefined || this.itemSelectorGroupContainers[key][zIndex] === undefined) {\r\n if (this.itemSelectorGroupContainers[key] === undefined)\r\n this.itemSelectorGroupContainers[key] = [];\r\n this.itemSelectorGroupContainers[key][zIndex] = this.createAndChangePrimitiveElement(new GroupPrimitive_1.GroupPrimitive([], null, zIndex), parent, this.itemSelectorGroupContainers[key][zIndex + 1]);\r\n }\r\n return this.itemSelectorGroupContainers[key][zIndex];\r\n };\r\n CanvasItemsManager.prototype.getItemParent = function (zIndex, parentContainerKey) {\r\n return parentContainerKey !== undefined ?\r\n this.itemChildElements[parentContainerKey] :\r\n this.getItemGroupContainer(zIndex);\r\n };\r\n CanvasItemsManager.prototype.getItemSelectorParent = function (zIndex, parentContainerKey) {\r\n return parentContainerKey !== undefined ?\r\n this.itemChildElements[parentContainerKey] :\r\n this.getItemSelectorGroupContainer(zIndex);\r\n };\r\n CanvasItemsManager.prototype.notifySelectionChanged = function (selection) {\r\n var _this = this;\r\n var newSelectedItems = ModelUtils_1.ModelUtils.createSelectedItems(selection);\r\n var itemsToUpdate = [];\r\n this.populateItems(itemsToUpdate, newSelectedItems, this.selectedItems);\r\n this.populateItems(itemsToUpdate, this.selectedItems, newSelectedItems);\r\n this.selectedItems = newSelectedItems;\r\n itemsToUpdate.forEach(function (item) {\r\n if (item instanceof Connector_1.Connector)\r\n _this.applyConnectorChange(item, ModelChange_1.ItemChangeType.UpdateClassName, true);\r\n });\r\n };\r\n CanvasItemsManager.prototype.populateItems = function (target, sourceSet, checkSet) {\r\n Object.keys(sourceSet).forEach(function (key) {\r\n if (!checkSet[key])\r\n target.push(sourceSet[key]);\r\n });\r\n };\r\n return CanvasItemsManager;\r\n}(CanvasManager_1.CanvasManager));\r\nexports.CanvasItemsManager = CanvasItemsManager;\r\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TextMeasurer = void 0;\r\nvar size_1 = __webpack_require__(2);\r\nvar Utils_1 = __webpack_require__(18);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar ITextMeasurer_1 = __webpack_require__(42);\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar TextUtils_1 = __webpack_require__(61);\r\nvar TextMeasurer = /** @class */ (function () {\r\n function TextMeasurer(parent) {\r\n this.cache = {};\r\n this.fontSizeCache = {};\r\n this.containers = {};\r\n this.parent = parent;\r\n this.createNodes();\r\n }\r\n TextMeasurer.prototype.measureWords = function (text, style, owner) {\r\n var _this = this;\r\n var result = { words: {}, fontSize: -1 };\r\n var words = typeof text === \"string\" ? this.splitToWords(text, false) : text.reduce(function (acc, t) { return acc.concat(_this.splitToWords(t, false)); }, []);\r\n words.push(\" \");\r\n var styleHashKey = this.getStyleHash(style, owner);\r\n var measureElements = this.tryLoadWordsToMeasurer(words, style, styleHashKey, owner, undefined, undefined, undefined, undefined, result);\r\n if (measureElements) {\r\n var container = this.containers[owner];\r\n this.putElementsInDOM(container, measureElements);\r\n this.beforeMeasureInDOM();\r\n this.measureElementsInDOM(measureElements, result);\r\n this.afterMeasureInDOM();\r\n }\r\n return result;\r\n };\r\n TextMeasurer.prototype.measureTextLine = function (textLine, style, owner) {\r\n var results = this.measureWords(textLine, style, owner);\r\n return TextUtils_1.getTextLineSize(textLine, results);\r\n };\r\n TextMeasurer.prototype.onNewModel = function (items, dom) {\r\n var _this = this;\r\n dom.changeByFunc(null, function () { return _this.onNewModelCore(items); });\r\n };\r\n TextMeasurer.prototype.onNewModelCore = function (items) {\r\n var shapes = items.filter(function (i) { return i instanceof Shape_1.Shape; });\r\n var connectors = items.filter(function (i) { return i instanceof Connector_1.Connector; });\r\n var shapeElements = this.tryLoadShapeTexts(shapes);\r\n var connectorElements = this.tryLoadConnectorTexts(connectors);\r\n if (shapeElements || connectorElements) {\r\n shapeElements && this.putElementsInDOM(this.containers[ITextMeasurer_1.TextOwner.Shape], shapeElements);\r\n connectorElements && this.putElementsInDOM(this.containers[ITextMeasurer_1.TextOwner.Connector], connectorElements);\r\n this.beforeMeasureInDOM();\r\n shapeElements && this.measureElementsInDOM(shapeElements);\r\n connectorElements && this.measureElementsInDOM(connectorElements);\r\n this.afterMeasureInDOM();\r\n }\r\n };\r\n TextMeasurer.prototype.replaceParent = function (parent) {\r\n if (this.parent !== parent) {\r\n if (this.mainElement.parentNode)\r\n parent.appendChild(this.mainElement);\r\n this.parent = parent;\r\n }\r\n };\r\n TextMeasurer.prototype.clean = function () {\r\n Utils_1.RenderUtils.removeElement(this.mainElement);\r\n };\r\n TextMeasurer.prototype.tryLoadShapeTexts = function (shapes) {\r\n var _this = this;\r\n var newSet = {};\r\n var elements = [];\r\n var hashes = [];\r\n var styleHashes = [];\r\n shapes.forEach(function (s) {\r\n var styleHashKey = _this.getStyleHash(s.styleText, ITextMeasurer_1.TextOwner.Shape);\r\n _this.tryLoadWordsToMeasurer(_this.splitToWords(s.text, true), s.styleText, styleHashKey, ITextMeasurer_1.TextOwner.Shape, newSet, elements, hashes, styleHashes);\r\n });\r\n return elements.length ? { elements: elements, hashes: hashes, styleHashes: styleHashes } : null;\r\n };\r\n TextMeasurer.prototype.tryLoadConnectorTexts = function (connectors) {\r\n var _this = this;\r\n var newSet = {};\r\n var elements = [];\r\n var hashes = [];\r\n var styleHashes = [];\r\n connectors.forEach(function (c) {\r\n var words = c.texts.map(function (t) { return t.value; }).reduce(function (acc, text) { return acc.concat(_this.splitToWords(text, false)); }, []);\r\n if (words.length) {\r\n words.push(\" \");\r\n var styleHashKey = _this.getStyleHash(c.styleText, ITextMeasurer_1.TextOwner.Connector);\r\n _this.tryLoadWordsToMeasurer(words, c.styleText, styleHashKey, ITextMeasurer_1.TextOwner.Connector, newSet, elements, hashes, styleHashes);\r\n }\r\n });\r\n return elements.length ? { elements: elements, hashes: hashes, styleHashes: styleHashes } : null;\r\n };\r\n TextMeasurer.prototype.tryLoadWordsToMeasurer = function (words, style, styleHashKey, textOwner, newSet, elementsToMeasure, hashesToMeasure, styleHashesToMeasure, result) {\r\n var _this = this;\r\n var newWords = [];\r\n elementsToMeasure = elementsToMeasure || [];\r\n hashesToMeasure = hashesToMeasure || [];\r\n styleHashesToMeasure = styleHashesToMeasure || [];\r\n newSet = newSet || {};\r\n words.forEach(function (t) { return _this.tryLoadWordToMeasurer(t, style, styleHashKey, textOwner, newSet, elementsToMeasure, hashesToMeasure, styleHashesToMeasure, newWords, result); });\r\n return elementsToMeasure.length ? { elements: elementsToMeasure, hashes: hashesToMeasure, styleHashes: styleHashesToMeasure, newWords: newWords } : null;\r\n };\r\n TextMeasurer.prototype.putElementsInDOM = function (container, measureElements) {\r\n container.parentNode && container.parentNode.removeChild(container);\r\n while (container.firstChild)\r\n container.removeChild(container.firstChild);\r\n measureElements.elements.forEach(function (el) { return container.appendChild(el); });\r\n this.svgElement.appendChild(container);\r\n };\r\n TextMeasurer.prototype.measureElementsInDOM = function (measureElements, result) {\r\n var hashes = measureElements.hashes;\r\n var elements = measureElements.elements;\r\n var words = measureElements.newWords;\r\n var count = hashes.length;\r\n for (var i = 0; i < count; i++) {\r\n var size = this.getDomElementSize(elements[i]);\r\n if (size) {\r\n if (!size.isEmpty())\r\n this.cache[hashes[i]] = size;\r\n if (result)\r\n result.words[words[i]] = size;\r\n }\r\n var styleHashKey = measureElements.styleHashes[i];\r\n if (this.fontSizeCache[styleHashKey] === undefined)\r\n this.fontSizeCache[styleHashKey] = this.getDomFontSize(elements[i]);\r\n if (result && result.fontSize < 0)\r\n result.fontSize = this.fontSizeCache[styleHashKey];\r\n }\r\n };\r\n TextMeasurer.prototype.beforeMeasureInDOM = function () {\r\n this.parent.appendChild(this.mainElement);\r\n };\r\n TextMeasurer.prototype.afterMeasureInDOM = function () {\r\n this.mainElement.parentNode && this.mainElement.parentNode.removeChild(this.mainElement);\r\n };\r\n TextMeasurer.prototype.tryLoadWordToMeasurer = function (word, style, styleHashKey, owner, newSet, elementsToMeasure, hashesToMeasure, styleHashesToMeasure, newWords, result) {\r\n var hash = this.getHash(word, style, owner);\r\n var cachedSize = this.cache[hash];\r\n if (!cachedSize && !newSet[hash]) {\r\n newSet[hash] = true;\r\n hashesToMeasure.push(hash);\r\n elementsToMeasure.push(this.createElement(word, style));\r\n styleHashesToMeasure.push(styleHashKey);\r\n newWords.push(word);\r\n }\r\n else if (cachedSize && result) {\r\n result.words[word] = cachedSize;\r\n result.fontSize = this.fontSizeCache[styleHashKey];\r\n }\r\n };\r\n TextMeasurer.prototype.getHash = function (text, style, owner) {\r\n return owner + \"|\" + (style && style.toHash()) + \"|\" + text;\r\n };\r\n TextMeasurer.prototype.getStyleHash = function (style, owner) {\r\n return this.getHash(\" \", style, owner);\r\n };\r\n TextMeasurer.prototype.createElement = function (text, style) {\r\n var element = document.createElementNS(RenderHelper_1.svgNS, \"text\");\r\n if (text === \" \")\r\n element.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\r\n element.textContent = text;\r\n style && Utils_1.RenderUtils.applyStyleToElement(style, element);\r\n return element;\r\n };\r\n TextMeasurer.prototype.splitToWords = function (text, includeWhitespace) {\r\n var words = TextUtils_1.textToWords(text);\r\n includeWhitespace && words.push(\" \");\r\n return words;\r\n };\r\n TextMeasurer.prototype.getDomFontSize = function (textEl) {\r\n return parseFloat(window.getComputedStyle(textEl).fontSize);\r\n };\r\n TextMeasurer.prototype.getDomElementSize = function (textEl) {\r\n var bBox;\r\n try {\r\n bBox = textEl.getBBox();\r\n }\r\n catch (_a) { } // TODO make measure in another way because of FF error\r\n return bBox ? new size_1.Size(bBox.width, bBox.height) : new size_1.Size(0, 0);\r\n };\r\n TextMeasurer.prototype.createNodes = function () {\r\n this.mainElement = RenderHelper_1.RenderHelper.createMainElement(undefined, true);\r\n this.svgElement = RenderHelper_1.RenderHelper.createSvgElement(this.mainElement, false);\r\n this.createContainer(ITextMeasurer_1.TextOwner.Shape, \"shape\");\r\n this.createContainer(ITextMeasurer_1.TextOwner.Connector, \"connector\");\r\n this.createContainer(ITextMeasurer_1.TextOwner.ExtensionLine, \"extension-line\");\r\n this.createContainer(ITextMeasurer_1.TextOwner.Resize, \"resize-info\");\r\n };\r\n TextMeasurer.prototype.createContainer = function (owner, className) {\r\n var element = document.createElementNS(RenderHelper_1.svgNS, \"g\");\r\n element.setAttribute(\"class\", className);\r\n this.containers[owner] = element;\r\n };\r\n return TextMeasurer;\r\n}());\r\nexports.TextMeasurer = TextMeasurer;\r\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EdgeOnLayer = exports.NodeOnLayer = exports.SugiyamaNodesOrderer = exports.SugiyamaLayerDistributor = exports.SugiyamaLayoutBuilder = void 0;\r\nvar BaseBuilder_1 = __webpack_require__(140);\r\nvar Graph_1 = __webpack_require__(68);\r\nvar NodeLayout_1 = __webpack_require__(69);\r\nvar Structures_1 = __webpack_require__(37);\r\nvar ListUtils_1 = __webpack_require__(90);\r\nvar search_1 = __webpack_require__(40);\r\nvar point_1 = __webpack_require__(1);\r\nvar LayoutSettings_1 = __webpack_require__(20);\r\nvar GraphLayout_1 = __webpack_require__(139);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar CycleRemover_1 = __webpack_require__(271);\r\nvar SugiyamaLayoutBuilder = /** @class */ (function (_super) {\r\n __extends(SugiyamaLayoutBuilder, _super);\r\n function SugiyamaLayoutBuilder() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SugiyamaLayoutBuilder.prototype.build = function () {\r\n var _this = this;\r\n var offset = 0;\r\n var layout = new GraphLayout_1.GraphLayout();\r\n var nodeOrderer = new SugiyamaNodesOrderer();\r\n this.graph.getConnectedComponents()\r\n .forEach(function (component) {\r\n var acyclicGraphInfo = CycleRemover_1.CycleRemover.removeCycles(component);\r\n var layers = SugiyamaLayerDistributor.getLayers(acyclicGraphInfo.graph);\r\n var orderedGraph = nodeOrderer.orderNodes(acyclicGraphInfo.graph, layers);\r\n var removedEdges = Object.keys(acyclicGraphInfo.removedEdges).map(function (ek) { return component.getEdge(ek); });\r\n var coordinatedGraph = nodeOrderer.assignAbsCoordinates(orderedGraph);\r\n var componentLayout = _this.createInfoGraphLayout(coordinatedGraph, acyclicGraphInfo.reversedEdges, removedEdges);\r\n layout.extend(_this.setComponentOffset(componentLayout, offset));\r\n offset += _this.getComponentOffset(componentLayout);\r\n });\r\n return layout;\r\n };\r\n // Order Nodes\r\n SugiyamaLayoutBuilder.prototype.createInfoGraphLayout = function (coordinatedGraph, reversedEdges, removedEdges) {\r\n var _this = this;\r\n var currentPosition = new point_1.Point(0, 0);\r\n var items = coordinatedGraph.items;\r\n var sortedLayers = new ListUtils_1.HashSet(items.map(function (n) { return n.layer; }).sort(function (a, b) { return a - b; }));\r\n var absOffsetInfo = this.getAbsOffsetInfo(coordinatedGraph.items);\r\n var positions = {};\r\n var totalDepth = 0;\r\n var leftEdge = Number.MAX_SAFE_INTEGER || Number.MAX_VALUE;\r\n var rightEdge = Number.MIN_SAFE_INTEGER || Number.MAX_VALUE;\r\n var _loop_1 = function (i) {\r\n var layer = sortedLayers.item(i);\r\n var maxDepthLayer = 0;\r\n items\r\n .filter(function (n) { return n.layer === layer; })\r\n .sort(function (a, b) { return a.position - b.position; })\r\n .forEach(function (n) {\r\n var depthNodeSize = _this.getDepthNodeSize(n);\r\n var directionOffset = _this.chooseDirectionValue(0, depthNodeSize);\r\n var absPosition = _this.getAbsPosition(n.position, _this.getBreadthNodeSize(n), absOffsetInfo);\r\n currentPosition = _this.setBreadth(currentPosition, absPosition);\r\n var nodePosition = _this.setDepthOffset(currentPosition, -directionOffset);\r\n positions[n.key] = nodePosition;\r\n if (n.isDummy)\r\n return;\r\n var breadth = _this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Horizontal ? nodePosition.y : nodePosition.x;\r\n leftEdge = Math.min(leftEdge, breadth);\r\n rightEdge = Math.max(rightEdge, breadth + _this.getBreadthNodeSize(n));\r\n maxDepthLayer = Math.max(maxDepthLayer, _this.getDepthNodeSize(n));\r\n });\r\n totalDepth += maxDepthLayer;\r\n currentPosition = this_1.setBreadth(currentPosition, 0);\r\n currentPosition = this_1.setDepthOffset(currentPosition, this_1.getDirectionValue(maxDepthLayer + this_1.settings.layerSpacing));\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < sortedLayers.length; i++) {\r\n _loop_1(i);\r\n }\r\n totalDepth += (sortedLayers.length - 1) * this.settings.layerSpacing;\r\n var layout = new GraphLayout_1.GraphLayout();\r\n this.createNodesLayout(coordinatedGraph, layout, leftEdge, totalDepth, positions);\r\n this.createEdgesLayout(coordinatedGraph, layout, reversedEdges, removedEdges);\r\n return layout;\r\n // this.getDummyEdgesRoutes(infoGraph);\r\n };\r\n SugiyamaLayoutBuilder.prototype.createNodesLayout = function (infoGraph, layout, leftEdge, totalDepth, positions) {\r\n var _this = this;\r\n var offset = this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Vertical ?\r\n new point_1.Point(-leftEdge, this.chooseDirectionValue(0, totalDepth)) :\r\n new point_1.Point(this.chooseDirectionValue(0, totalDepth), -leftEdge);\r\n infoGraph.items.forEach(function (n) {\r\n if (!n.isDummy) {\r\n var node = _this.graph.getNode(n.key);\r\n layout.addNode(new NodeLayout_1.NodeLayout(node, positions[n.key].clone().offset(offset.x, offset.y)));\r\n }\r\n });\r\n };\r\n SugiyamaLayoutBuilder.prototype.createEdgesLayout = function (infoGraph, layout, reversedEdges, removedEdges) {\r\n var DIRECT = this.getDirectEdgeLayout();\r\n var TOP_TO_BOTTOM = this.getDiffLevelEdgeLayout(true);\r\n var BOTTOM_TO_TOP = this.getDiffLevelEdgeLayout(false);\r\n var TOP_TO_TOP = this.getSameLevelEdgeLayout(true);\r\n var BOTTOM_TO_BOTTOM = this.getSameLevelEdgeLayout(false);\r\n var occupied = {};\r\n infoGraph.edges\r\n .filter(function (e) { return !e.isDummy; })\r\n .concat(removedEdges.map(function (e) { return new EdgeOnLayer(e.key, false, e.from, e.to); }))\r\n .sort(function (a, b) {\r\n return (infoGraph.getNode(a.originFrom).layer - infoGraph.getNode(b.originFrom).layer) ||\r\n (infoGraph.getNode(a.to).layer - infoGraph.getNode(b.to).layer);\r\n })\r\n .forEach(function (e) {\r\n var isReversed = reversedEdges[e.key];\r\n var from = infoGraph.getNode(isReversed ? e.to : e.originFrom);\r\n var to = infoGraph.getNode(isReversed ? e.originFrom : e.to);\r\n if (to.layer - from.layer === 1)\r\n layout.addEdge(new NodeLayout_1.EdgeLayout(e.key, DIRECT.from, DIRECT.to));\r\n else {\r\n var candidates_1 = [];\r\n if (to.position - from.position >= 1) {\r\n candidates_1.push(TOP_TO_BOTTOM);\r\n candidates_1.push({ from: DIRECT.from, to: TOP_TO_BOTTOM.to });\r\n candidates_1.push({ from: TOP_TO_BOTTOM.from, to: DIRECT.to });\r\n }\r\n else if (to.position - from.position <= -1) {\r\n candidates_1.push(BOTTOM_TO_TOP);\r\n candidates_1.push({ from: DIRECT.from, to: BOTTOM_TO_TOP.to });\r\n candidates_1.push({ from: BOTTOM_TO_TOP.from, to: DIRECT.to });\r\n }\r\n else {\r\n var oneliner = from.position === to.position && to.position === 0 ? [TOP_TO_TOP, BOTTOM_TO_BOTTOM] : [BOTTOM_TO_BOTTOM, TOP_TO_TOP];\r\n oneliner.forEach(function (c) { return candidates_1.push(c); });\r\n oneliner.forEach(function (c) {\r\n candidates_1.push({ from: c.from, to: DIRECT.to });\r\n candidates_1.push({ from: DIRECT.from, to: c.to });\r\n });\r\n }\r\n candidates_1.push(DIRECT);\r\n for (var i = 0, candidate = void 0; candidate = candidates_1[i]; i++) {\r\n var fromKey = from.key + \"_\" + candidate.from;\r\n var toKey = to.key + \"_\" + candidate.to;\r\n if (occupied[fromKey] !== Connector_1.ConnectorPosition.End && occupied[toKey] !== Connector_1.ConnectorPosition.Begin) {\r\n layout.addEdge(new NodeLayout_1.EdgeLayout(e.key, candidate.from, candidate.to));\r\n occupied[fromKey] = Connector_1.ConnectorPosition.Begin;\r\n occupied[toKey] = Connector_1.ConnectorPosition.End;\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n };\r\n SugiyamaLayoutBuilder.prototype.getDirectEdgeLayout = function () {\r\n if (this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Horizontal)\r\n return this.settings.direction === LayoutSettings_1.LogicalDirectionKind.Forward ? { from: 1, to: 3 } : { from: 3, to: 1 };\r\n return this.settings.direction === LayoutSettings_1.LogicalDirectionKind.Forward ? { from: 2, to: 0 } : { from: 0, to: 2 };\r\n };\r\n SugiyamaLayoutBuilder.prototype.getDiffLevelEdgeLayout = function (topToBottom) {\r\n if (this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Horizontal)\r\n return topToBottom ? { from: 2, to: 0 } : { from: 0, to: 2 };\r\n return topToBottom ? { from: 3, to: 1 } : { from: 1, to: 3 };\r\n };\r\n SugiyamaLayoutBuilder.prototype.getSameLevelEdgeLayout = function (topToBottom) {\r\n if (this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Horizontal)\r\n return topToBottom ? { from: 0, to: 0 } : { from: 2, to: 2 };\r\n return topToBottom ? { from: 3, to: 3 } : { from: 1, to: 1 };\r\n };\r\n SugiyamaLayoutBuilder.prototype.getAbsOffsetInfo = function (nodesInfos) {\r\n var _this = this;\r\n var absOffsetMatrix = {};\r\n var addCell = function (n, intAbsCoord) {\r\n if (absOffsetMatrix[intAbsCoord] === undefined)\r\n absOffsetMatrix[intAbsCoord] = _this.getBreadthNodeSize(n);\r\n absOffsetMatrix[intAbsCoord] = Math.max(absOffsetMatrix[intAbsCoord], _this.getBreadthNodeSize(n));\r\n };\r\n nodesInfos.forEach(function (n) {\r\n var intAbsCoord = trunc(n.position);\r\n addCell(n, intAbsCoord);\r\n if (absOffsetMatrix[intAbsCoord] % 1 !== 0)\r\n addCell(n, intAbsCoord + 1);\r\n });\r\n var absOffsetInfo = {};\r\n var leftOffset = 0;\r\n Object.keys(absOffsetMatrix).sort(function (a, b) { return parseFloat(a) - parseFloat(b); }).forEach(function (coord) {\r\n absOffsetInfo[coord] = { leftOffset: leftOffset, width: absOffsetMatrix[coord] };\r\n leftOffset += absOffsetMatrix[coord] + _this.settings.columnSpacing;\r\n });\r\n return absOffsetInfo;\r\n };\r\n SugiyamaLayoutBuilder.prototype.setBreadth = function (position, breadthPosition) {\r\n if (this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Vertical)\r\n return new point_1.Point(breadthPosition, position.y);\r\n return new point_1.Point(position.x, breadthPosition);\r\n };\r\n SugiyamaLayoutBuilder.prototype.setDepthOffset = function (position, offset) {\r\n if (this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Horizontal)\r\n return new point_1.Point(position.x + offset, position.y);\r\n return new point_1.Point(position.x, position.y + offset);\r\n };\r\n SugiyamaLayoutBuilder.prototype.getAbsPosition = function (absCoordinate, itemSize, absoluteOffsetInfo) {\r\n var intAbsCoord = trunc(absCoordinate);\r\n var absLeftOffset = absoluteOffsetInfo[intAbsCoord].leftOffset;\r\n var cellWidth = absoluteOffsetInfo[intAbsCoord].width;\r\n if (absCoordinate % 1 === 0)\r\n return absLeftOffset + (cellWidth - itemSize) / 2;\r\n return absLeftOffset + cellWidth - (itemSize - this.settings.columnSpacing) / 2;\r\n };\r\n SugiyamaLayoutBuilder.prototype.getBreadthNodeSize = function (node) {\r\n return node.isDummy ? 0 : this.getBreadthNodeSizeCore(this.graph.getNode(node.key));\r\n };\r\n SugiyamaLayoutBuilder.prototype.getDepthNodeSize = function (node) {\r\n return node.isDummy ? 0 : this.getDepthNodeSizeCore(this.graph.getNode(node.key));\r\n };\r\n return SugiyamaLayoutBuilder;\r\n}(BaseBuilder_1.LayoutBuilder));\r\nexports.SugiyamaLayoutBuilder = SugiyamaLayoutBuilder;\r\nvar SugiyamaLayerDistributor = /** @class */ (function () {\r\n function SugiyamaLayerDistributor() {\r\n }\r\n SugiyamaLayerDistributor.getLayers = function (acyclicGraph) {\r\n var feasibleTree = this.getFeasibleTree(acyclicGraph);\r\n return this.calcNodesLayers(feasibleTree);\r\n };\r\n SugiyamaLayerDistributor.getFeasibleTree = function (graph) {\r\n var layers = this.initLayerAssignment(graph);\r\n return graph.getSpanningGraph(graph.nodes[0], Structures_1.ConnectionMode.OutgoingAndIncoming, function (e) { return layers[e.to] - layers[e.from]; });\r\n };\r\n SugiyamaLayerDistributor.initLayerAssignment = function (graph) {\r\n var layers = {};\r\n var currentLayer = 0;\r\n var actualAssignedNodes = {};\r\n var assigningNodes = graph.nodes.filter(function (n) { return !graph.getAdjacentEdges(n, Structures_1.ConnectionMode.Incoming).length; });\r\n var _loop_2 = function () {\r\n assigningNodes.forEach(function (n) {\r\n layers[n] = currentLayer;\r\n actualAssignedNodes[n] = true;\r\n });\r\n Object.keys(actualAssignedNodes).forEach(function (n) {\r\n if (graph.getAdjacentEdges(n, Structures_1.ConnectionMode.Outgoing).filter(function (e) { return layers[e.to] === undefined; }).length === 0)\r\n delete actualAssignedNodes[n];\r\n });\r\n var assigningNodesSet = {};\r\n Object.keys(actualAssignedNodes).forEach(function (n) {\r\n graph.getAdjacentEdges(n, Structures_1.ConnectionMode.Outgoing)\r\n .map(function (e) { return e.to; })\r\n .filter(function (n) { return layers[n] === undefined && graph.getAdjacentEdges(n, Structures_1.ConnectionMode.Incoming).reduce(function (acc, e) { return acc && layers[e.from] !== undefined; }, true); })\r\n .forEach(function (n) { return assigningNodesSet[n] = true; });\r\n });\r\n assigningNodes = Object.keys(assigningNodesSet);\r\n currentLayer++;\r\n };\r\n while (assigningNodes.length) {\r\n _loop_2();\r\n }\r\n return layers;\r\n };\r\n SugiyamaLayerDistributor.calcNodesLayers = function (graph) {\r\n var layers = {};\r\n var minLayer = Number.MAX_SAFE_INTEGER || Number.MAX_VALUE;\r\n var currentLevel = 0;\r\n var iterator = graph.createIterator(Structures_1.ConnectionMode.OutgoingAndIncoming);\r\n iterator.visitEachEdgeOnce = false;\r\n iterator.onNode = function (n) {\r\n layers[n.key] = currentLevel;\r\n minLayer = Math.min(minLayer, currentLevel);\r\n };\r\n iterator.skipNode = function (n) { return layers[n.key] !== undefined; };\r\n iterator.skipEdge = function (e) { return layers[e.from] !== undefined && layers[e.to] !== undefined; };\r\n iterator.onEdge = function (e, out) {\r\n if (out)\r\n currentLevel = layers[e.from] + 1;\r\n else\r\n currentLevel = layers[e.to] - 1;\r\n };\r\n iterator.iterate(graph.nodes[0]);\r\n for (var key in layers) {\r\n if (!Object.prototype.hasOwnProperty.call(layers, key))\r\n continue;\r\n layers[key] -= minLayer;\r\n }\r\n return layers;\r\n };\r\n return SugiyamaLayerDistributor;\r\n}());\r\nexports.SugiyamaLayerDistributor = SugiyamaLayerDistributor;\r\nvar SugiyamaNodesOrderer = /** @class */ (function () {\r\n function SugiyamaNodesOrderer() {\r\n this.idCounter = -10000;\r\n }\r\n SugiyamaNodesOrderer.prototype.orderNodes = function (graph, layers) {\r\n var maxIteration = 14; // magic number - http://www.graphviz.org/Documentation/TSE93.pdf PAGE (14)\r\n var currentIteration = 1;\r\n var graphInfo = this.initGraphInfo(graph, layers);\r\n var nodeInfos = graphInfo.items;\r\n var orderInfo = this.initOrder(nodeInfos);\r\n var bestNodesPositions = this.getNodeToPositionMap(nodeInfos);\r\n var bestCrossCount = this.getCrossCount(orderInfo, graphInfo);\r\n var isParentToChildren = true;\r\n while (currentIteration < maxIteration && bestCrossCount !== 0) {\r\n orderInfo = this.getNodesOrder(orderInfo, graphInfo, isParentToChildren);\r\n var crossCount = this.getCrossCount(orderInfo, graphInfo);\r\n if (crossCount < bestCrossCount) {\r\n bestNodesPositions = this.getNodeToPositionMap(graphInfo.items);\r\n bestCrossCount = crossCount;\r\n }\r\n isParentToChildren = !isParentToChildren;\r\n currentIteration++;\r\n }\r\n // transpose() procedure doesn`t implement.\r\n // http://www.graphviz.org/Documentation/TSE93.pdf PAGE(16)\r\n graphInfo.items.forEach(function (n) { return n.position = bestNodesPositions[n.key]; });\r\n return graphInfo;\r\n };\r\n SugiyamaNodesOrderer.prototype.getNodesOrder = function (current, graph, isParentToChildren) {\r\n var _this = this;\r\n var order = {};\r\n var _loop_3 = function (layer) {\r\n if (!Object.prototype.hasOwnProperty.call(current, layer))\r\n return \"continue\";\r\n var nodePositions = {};\r\n var nodeKeys = [];\r\n current[layer].forEach(function (ni) {\r\n var adjacentNodesPositions = (isParentToChildren ? graph.getChildren(ni.key) : graph.getParents(ni.key))\r\n .map(function (nk) { return graph.getNode(nk).position; });\r\n nodeKeys.push(ni.key);\r\n nodePositions[ni.key] = _this.getNodePosition(adjacentNodesPositions);\r\n });\r\n order[layer] = this_2.sortNodes(nodeKeys, nodePositions, graph);\r\n };\r\n var this_2 = this;\r\n for (var layer in current) {\r\n _loop_3(layer);\r\n }\r\n return order;\r\n };\r\n SugiyamaNodesOrderer.prototype.sortNodes = function (nodeKeys, nodePositions, graph) {\r\n return nodeKeys\r\n .sort(function (a, b) { return nodePositions[a] - nodePositions[b]; })\r\n .map(function (nk, index) {\r\n var node = graph.getNode(nk);\r\n node.position = index;\r\n return node;\r\n });\r\n };\r\n SugiyamaNodesOrderer.prototype.getNodePosition = function (adjacentNodesPositions) {\r\n adjacentNodesPositions = adjacentNodesPositions.sort(function (a, b) { return a - b; });\r\n if (!adjacentNodesPositions.length)\r\n return 0;\r\n var medianIndex = Math.floor(adjacentNodesPositions.length / 2);\r\n if (adjacentNodesPositions.length === 2 || adjacentNodesPositions.length % 2 === 1)\r\n return adjacentNodesPositions[medianIndex];\r\n var leftMedianPosition = adjacentNodesPositions[medianIndex - 1] - adjacentNodesPositions[0];\r\n var rightMedianPosition = adjacentNodesPositions[adjacentNodesPositions.length - 1] - adjacentNodesPositions[medianIndex];\r\n return Math.floor((adjacentNodesPositions[medianIndex - 1] * rightMedianPosition + adjacentNodesPositions[medianIndex] * leftMedianPosition) /\r\n (leftMedianPosition + rightMedianPosition));\r\n };\r\n SugiyamaNodesOrderer.prototype.initOrder = function (nodeInfos) {\r\n var result = {};\r\n nodeInfos.forEach(function (ni) { return (result[ni.layer] || (result[ni.layer] = [])).push(ni); });\r\n return result;\r\n };\r\n SugiyamaNodesOrderer.prototype.getCrossCount = function (orderInfo, graph) {\r\n var count = 0;\r\n var _loop_4 = function (layer) {\r\n if (!Object.prototype.hasOwnProperty.call(orderInfo, layer))\r\n return \"continue\";\r\n var viewedAdjacentNodesPositions = [];\r\n orderInfo[layer].forEach(function (n) {\r\n var positions = graph.getChildren(n.key).map(function (c) { return graph.getNode(c).position; });\r\n positions.forEach(function (p) {\r\n count += viewedAdjacentNodesPositions.filter(function (vp) { return p < vp; }).length;\r\n });\r\n viewedAdjacentNodesPositions = viewedAdjacentNodesPositions.concat(positions);\r\n });\r\n };\r\n for (var layer in orderInfo) {\r\n _loop_4(layer);\r\n }\r\n return count;\r\n };\r\n SugiyamaNodesOrderer.prototype.initGraphInfo = function (graph, layers) {\r\n var _this = this;\r\n var countNodesOnLayer = {};\r\n var nodesInfoMap = {};\r\n var nodeInfos = [];\r\n var edgeInfos = [];\r\n graph.nodes.forEach(function (n) {\r\n var layer = layers[n];\r\n if (countNodesOnLayer[layer] === undefined)\r\n countNodesOnLayer[layer] = 0;\r\n var info = new NodeOnLayer(n, false, layer, countNodesOnLayer[layer]++);\r\n nodesInfoMap[n] = info;\r\n nodeInfos.push(info);\r\n });\r\n graph.edges.forEach(function (e) {\r\n var span = layers[e.to] - layers[e.from];\r\n if (span > 1) {\r\n var prevNodeInfo = nodesInfoMap[e.from];\r\n for (var delta = 1; delta < span; delta++) {\r\n var dNodeInfo = new NodeOnLayer(_this.createDummyID(), true, layers[e.from] + delta, countNodesOnLayer[layers[e.from] + delta]++);\r\n edgeInfos.push(new EdgeOnLayer(_this.createDummyID(), true, prevNodeInfo.key, dNodeInfo.key));\r\n nodeInfos.push(dNodeInfo);\r\n prevNodeInfo = dNodeInfo;\r\n }\r\n edgeInfos.push(new EdgeOnLayer(e.key, false, prevNodeInfo.key, nodesInfoMap[e.to].key, nodesInfoMap[e.from].key));\r\n }\r\n else\r\n edgeInfos.push(new EdgeOnLayer(e.key, false, nodesInfoMap[e.from].key, nodesInfoMap[e.to].key));\r\n });\r\n return new Graph_1.FastGraph(nodeInfos, edgeInfos);\r\n };\r\n SugiyamaNodesOrderer.prototype.createDummyID = function () {\r\n return \"dummy_\" + --this.idCounter;\r\n };\r\n SugiyamaNodesOrderer.prototype.getNodeToPositionMap = function (nodeInfos) {\r\n return nodeInfos.reduce(function (acc, ni) {\r\n acc[ni.key] = ni.position;\r\n return acc;\r\n }, {});\r\n };\r\n // absolute positioning\r\n SugiyamaNodesOrderer.prototype.assignAbsCoordinates = function (graph) {\r\n var absCoordinates = this.getAbsCoodinate(graph);\r\n return new Graph_1.FastGraph(graph.items.map(function (n) { return new NodeOnLayer(n.key, n.isDummy, n.layer, absCoordinates[n.key]); }), graph.edges.slice(0));\r\n };\r\n SugiyamaNodesOrderer.prototype.getAbsCoodinate = function (graph) {\r\n var _this = this;\r\n var orderInfo = graph.items.reduce(function (acc, n) {\r\n acc[n.layer] = acc[n.layer] || [];\r\n var pos = search_1.SearchUtils.binaryIndexOf(acc[n.layer], function (ni) { return ni.position - n.position; });\r\n acc[n.layer].splice(pos < 0 ? ~pos : pos, 0, n);\r\n return acc;\r\n }, {});\r\n var medianPositions = [MedianAlignmentMode.TopLeft, MedianAlignmentMode.TopRight, MedianAlignmentMode.BottomLeft, MedianAlignmentMode.BottomRight]\r\n .map(function (alignment) { return _this.getPositionByMedian(graph, alignment, orderInfo); });\r\n var nodeToPosition = {};\r\n graph.items.forEach(function (n) {\r\n var posList = medianPositions.map(function (positions) { return positions[n.key]; }).sort(function (a, b) { return a - b; });\r\n nodeToPosition[n.key] = (posList[1] + posList[2]) / 2;\r\n });\r\n return nodeToPosition;\r\n };\r\n SugiyamaNodesOrderer.prototype.getPositionByMedian = function (graph, alignment, orderInfo) {\r\n var nodeInfos = graph.items;\r\n var positions = this.getNodeToPositionMap(nodeInfos);\r\n var medians = this.getMedians(graph, nodeInfos, alignment);\r\n medians = this.resolveMedianConflicts(graph, orderInfo, medians, alignment);\r\n this.getSortedBlocks(graph, nodeInfos, medians, alignment)\r\n .forEach(function (block) {\r\n var maxPos = block.reduce(function (acc, n) { return positions[n.key] > acc ? positions[n.key] : acc; }, -2);\r\n block.forEach(function (n) {\r\n var delta = maxPos - positions[n.key];\r\n if (delta > 0)\r\n orderInfo[n.layer]\r\n .filter(function (ln) { return ln.position > n.position; })\r\n .forEach(function (ln) { return positions[ln.key] += delta; });\r\n positions[n.key] = maxPos;\r\n });\r\n });\r\n return positions;\r\n };\r\n SugiyamaNodesOrderer.prototype.getSortedBlocks = function (graph, nodeInfos, medians, alignment) {\r\n var blocks = [];\r\n var isBottom = alignment === MedianAlignmentMode.BottomLeft || alignment === MedianAlignmentMode.BottomRight;\r\n var allNodesInfo = new ListUtils_1.HashSet(nodeInfos.slice(0).sort(function (a, b) { return isBottom ? (a.layer - b.layer) : (b.layer - a.layer); }), function (n) { return n.key; });\r\n while (allNodesInfo.length) {\r\n var firstNode = allNodesInfo.item(0);\r\n var block = this.getBlock(graph, firstNode, medians, alignment);\r\n blocks.push(block);\r\n block.forEach(function (n) { return allNodesInfo.remove(n); });\r\n }\r\n blocks.sort(function (x, y) {\r\n var xMinNodeInfo = x.reduce(function (min, n) { return n.position < min.position ? n : min; }, x[0]);\r\n var yOnMinXLayer = y.filter(function (n) { return n.layer === xMinNodeInfo.layer; })[0];\r\n if (yOnMinXLayer)\r\n return xMinNodeInfo.position > yOnMinXLayer.position ? 1 : -1;\r\n var yMinNodeInfo = y.reduce(function (min, n) { return n.position < min.position ? n : min; }, y[0]);\r\n var xOnMinYLayer = x.filter(function (n) { return n.layer === yMinNodeInfo.layer; })[0];\r\n if (xOnMinYLayer)\r\n return xOnMinYLayer.position > yMinNodeInfo.position ? 1 : -1;\r\n return xMinNodeInfo.layer > yMinNodeInfo.layer ? 1 : -1;\r\n });\r\n return blocks;\r\n };\r\n SugiyamaNodesOrderer.prototype.getBlock = function (graph, root, medians, alignment) {\r\n var block = [];\r\n var median = null;\r\n do {\r\n if (median)\r\n root = alignment === MedianAlignmentMode.TopLeft || alignment === MedianAlignmentMode.TopRight ? graph.getNode(median.from) : graph.getNode(median.to);\r\n block.push(root);\r\n median = medians[root.key];\r\n } while (median);\r\n return block;\r\n };\r\n SugiyamaNodesOrderer.prototype.resolveMedianConflicts = function (graph, layers, medians, alignment) {\r\n var _this = this;\r\n var filteredMedians = {};\r\n var _loop_5 = function (layer) {\r\n if (!Object.prototype.hasOwnProperty.call(layers, layer))\r\n return \"continue\";\r\n var minPos;\r\n var maxPos;\r\n var nodeInfos = layers[layer];\r\n if (alignment === MedianAlignmentMode.TopRight || alignment === MedianAlignmentMode.BottomRight)\r\n nodeInfos = nodeInfos.slice(0).sort(function (a, b) { return b.position - a.position; }); // sorted descending\r\n nodeInfos.forEach(function (n) {\r\n var median = medians[n.key];\r\n if (!median)\r\n filteredMedians[n.key] = null;\r\n else {\r\n var medianItemKey = alignment === MedianAlignmentMode.TopLeft || alignment === MedianAlignmentMode.TopRight ? median.from : median.to;\r\n var medianPosition = graph.getNode(medianItemKey).position;\r\n if (_this.checkMedianConfict(minPos, maxPos, medianPosition, alignment))\r\n filteredMedians[n.key] = null;\r\n else {\r\n minPos = minPos === undefined ? medianPosition : Math.min(minPos, medianPosition);\r\n maxPos = maxPos === undefined ? medianPosition : Math.max(maxPos, medianPosition);\r\n filteredMedians[n.key] = median;\r\n }\r\n }\r\n });\r\n };\r\n for (var layer in layers) {\r\n _loop_5(layer);\r\n }\r\n return filteredMedians;\r\n };\r\n SugiyamaNodesOrderer.prototype.checkMedianConfict = function (min, max, medianPosition, alignment) {\r\n if (min === undefined || max === undefined)\r\n return false;\r\n if (alignment === MedianAlignmentMode.TopLeft || alignment === MedianAlignmentMode.BottomLeft)\r\n return max >= medianPosition;\r\n return min <= medianPosition;\r\n };\r\n SugiyamaNodesOrderer.prototype.getMedians = function (graph, nodeInfos, alignment) {\r\n var _this = this;\r\n var medians = {};\r\n nodeInfos.forEach(function (n) {\r\n var actualAdjacentEdges = _this.getActualAdjacentEdges(graph, n, alignment);\r\n var medianPosition = _this.getMedianPosition(actualAdjacentEdges.length, alignment);\r\n medians[n.key] = actualAdjacentEdges[medianPosition];\r\n });\r\n return medians;\r\n };\r\n SugiyamaNodesOrderer.prototype.getMedianPosition = function (length, alignment) {\r\n if (length === 0)\r\n return -1;\r\n if (length % 2 !== 0)\r\n return Math.floor(length / 2);\r\n if (alignment === MedianAlignmentMode.TopLeft || alignment === MedianAlignmentMode.BottomLeft)\r\n return Math.floor(length / 2) - 1;\r\n if (alignment === MedianAlignmentMode.TopRight || alignment === MedianAlignmentMode.BottomRight)\r\n return Math.floor(length / 2);\r\n throw new Error(\"Invalid Operation\");\r\n };\r\n SugiyamaNodesOrderer.prototype.getActualAdjacentEdges = function (graph, node, alignment) {\r\n if (alignment === MedianAlignmentMode.TopLeft || alignment === MedianAlignmentMode.TopRight)\r\n return graph.getAdjacentEdges(node.key, Structures_1.ConnectionMode.Incoming).sort(function (a, b) { return graph.getNode(a.from).position - graph.getNode(b.from).position; });\r\n return graph.getAdjacentEdges(node.key, Structures_1.ConnectionMode.Outgoing).sort(function (a, b) { return graph.getNode(a.to).position - graph.getNode(b.to).position; });\r\n };\r\n return SugiyamaNodesOrderer;\r\n}());\r\nexports.SugiyamaNodesOrderer = SugiyamaNodesOrderer;\r\nvar NodeOnLayer = /** @class */ (function () {\r\n function NodeOnLayer(key, isDummy, layer, position) {\r\n this.key = key;\r\n this.isDummy = isDummy;\r\n this.layer = layer;\r\n this.position = position;\r\n }\r\n NodeOnLayer.prototype.getHashCode = function () {\r\n return this.key.toString();\r\n };\r\n return NodeOnLayer;\r\n}());\r\nexports.NodeOnLayer = NodeOnLayer;\r\nvar EdgeOnLayer = /** @class */ (function () {\r\n function EdgeOnLayer(key, isDummy, from, to, originFrom) {\r\n this.key = key;\r\n this.isDummy = isDummy;\r\n this.from = from;\r\n this.to = to;\r\n this._originFrom = originFrom;\r\n }\r\n EdgeOnLayer.prototype.getHashCode = function () {\r\n return this.from + \"-\" + this.to;\r\n };\r\n Object.defineProperty(EdgeOnLayer.prototype, \"originFrom\", {\r\n get: function () {\r\n return this._originFrom !== undefined ? this._originFrom : this.from;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return EdgeOnLayer;\r\n}());\r\nexports.EdgeOnLayer = EdgeOnLayer;\r\nvar MedianAlignmentMode;\r\n(function (MedianAlignmentMode) {\r\n MedianAlignmentMode[MedianAlignmentMode[\"TopLeft\"] = 0] = \"TopLeft\";\r\n MedianAlignmentMode[MedianAlignmentMode[\"TopRight\"] = 1] = \"TopRight\";\r\n MedianAlignmentMode[MedianAlignmentMode[\"BottomLeft\"] = 2] = \"BottomLeft\";\r\n MedianAlignmentMode[MedianAlignmentMode[\"BottomRight\"] = 3] = \"BottomRight\";\r\n})(MedianAlignmentMode || (MedianAlignmentMode = {}));\r\nfunction trunc(val) {\r\n if (Math.trunc)\r\n return Math.trunc(val);\r\n if (!isFinite(val))\r\n return val;\r\n return (val - val % 1) || (val < 0 ? -0 : val === 0 ? val : 0);\r\n}\r\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BatchUpdatableObject = (function () {\r\n function BatchUpdatableObject() {\r\n this.suspendUpdateCount = 0;\r\n this.occurredEvents = 0;\r\n }\r\n BatchUpdatableObject.prototype.beginUpdate = function () {\r\n if (this.suspendUpdateCount === 0)\r\n this.onUpdateLocked();\r\n if (this.suspendUpdateCount < 0)\r\n this.suspendUpdateCount--;\r\n else\r\n this.suspendUpdateCount++;\r\n };\r\n BatchUpdatableObject.prototype.endUpdate = function () {\r\n if (this.suspendUpdateCount < 0)\r\n this.suspendUpdateCount++;\r\n else if (this.suspendUpdateCount > 0)\r\n this.suspendUpdateCount--;\r\n if (!this.isUpdateLocked()) {\r\n var occurredEvents = this.occurredEvents;\r\n this.occurredEvents = 0;\r\n this.onUpdateUnlocked(occurredEvents);\r\n }\r\n };\r\n BatchUpdatableObject.prototype.suspendUpdate = function () {\r\n if (this.suspendUpdateCount > 0) {\r\n this.suspendUpdateCount *= -1;\r\n var occurredEvents = this.occurredEvents;\r\n this.occurredEvents = 0;\r\n this.onUpdateUnlocked(occurredEvents);\r\n }\r\n };\r\n BatchUpdatableObject.prototype.continueUpdate = function () {\r\n if (this.suspendUpdateCount < 0)\r\n this.suspendUpdateCount *= -1;\r\n };\r\n BatchUpdatableObject.prototype.isUpdateLocked = function () {\r\n return this.suspendUpdateCount > 0;\r\n };\r\n BatchUpdatableObject.prototype.onUpdateLocked = function () { };\r\n BatchUpdatableObject.prototype.registerOccurredEvent = function (eventMask) {\r\n this.occurredEvents |= eventMask;\r\n };\r\n BatchUpdatableObject.prototype.resetOccurredEvents = function () {\r\n this.occurredEvents = 0;\r\n };\r\n BatchUpdatableObject.prototype.isLocked = function () {\r\n return this.suspendUpdateCount !== 0;\r\n };\r\n return BatchUpdatableObject;\r\n}());\r\nexports.BatchUpdatableObject = BatchUpdatableObject;\r\nvar EmptyBatchUpdatableObject = (function () {\r\n function EmptyBatchUpdatableObject() {\r\n }\r\n EmptyBatchUpdatableObject.prototype.beginUpdate = function () { };\r\n EmptyBatchUpdatableObject.prototype.endUpdate = function () { };\r\n return EmptyBatchUpdatableObject;\r\n}());\r\nexports.EmptyBatchUpdatableObject = EmptyBatchUpdatableObject;\r\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar browser_1 = __webpack_require__(17);\r\nvar common_1 = __webpack_require__(48);\r\nvar dom_1 = __webpack_require__(26);\r\nvar touch_1 = __webpack_require__(105);\r\nvar EvtUtils = (function () {\r\n function EvtUtils() {\r\n }\r\n EvtUtils.preventEvent = function (evt) {\r\n if (evt.preventDefault)\r\n evt.preventDefault();\r\n else\r\n evt.returnValue = false;\r\n };\r\n EvtUtils.getEventSource = function (evt) {\r\n if (!common_1.isDefined(evt))\r\n return null;\r\n return evt.srcElement ? evt.srcElement : evt.target;\r\n };\r\n EvtUtils.getEventSourceByPosition = function (evt) {\r\n if (!common_1.isDefined(evt))\r\n return null;\r\n if (document.elementFromPoint && EvtUtils.getEventX(evt) !== undefined && EvtUtils.getEventY(evt) !== undefined)\r\n return document.elementFromPoint(EvtUtils.getEventX(evt), EvtUtils.getEventY(evt));\r\n return evt.srcElement ? evt.srcElement : evt.target;\r\n };\r\n EvtUtils.getMouseWheelEventName = function () {\r\n if (browser_1.Browser.Safari)\r\n return 'mousewheel';\r\n if (browser_1.Browser.NetscapeFamily && browser_1.Browser.MajorVersion < 17)\r\n return 'DOMMouseScroll';\r\n return 'wheel';\r\n };\r\n EvtUtils.isLeftButtonPressed = function (evt) {\r\n if (touch_1.TouchUtils.isTouchEvent(evt))\r\n return true;\r\n evt = (browser_1.Browser.IE && common_1.isDefined(event)) ? event : evt;\r\n if (!evt)\r\n return false;\r\n if (browser_1.Browser.IE && browser_1.Browser.Version < 11) {\r\n if (browser_1.Browser.MSTouchUI)\r\n return true;\r\n return evt.button % 2 === 1;\r\n }\r\n else if (browser_1.Browser.WebKitFamily) {\r\n if (evt.type === 'pointermove')\r\n return evt.buttons === 1;\r\n return evt.which === 1;\r\n }\r\n else if (browser_1.Browser.NetscapeFamily || browser_1.Browser.Edge || (browser_1.Browser.IE && browser_1.Browser.Version >= 11)) {\r\n if (evt.type === touch_1.TouchUtils.touchMouseMoveEventName)\r\n return evt.buttons === 1;\r\n return evt.which === 1;\r\n }\r\n else if (browser_1.Browser.Opera)\r\n return evt.button === 0;\r\n return true;\r\n };\r\n EvtUtils.preventEventAndBubble = function (evt) {\r\n EvtUtils.preventEvent(evt);\r\n if (evt.stopPropagation)\r\n evt.stopPropagation();\r\n evt.cancelBubble = true;\r\n };\r\n EvtUtils.clientEventRequiresDocScrollCorrection = function () {\r\n var isSafariVerLess3 = browser_1.Browser.Safari && browser_1.Browser.Version < 3;\r\n var isMacOSMobileVerLess51 = browser_1.Browser.MacOSMobilePlatform && browser_1.Browser.Version < 5.1;\r\n return browser_1.Browser.AndroidDefaultBrowser || browser_1.Browser.AndroidChromeBrowser || !(isSafariVerLess3 || isMacOSMobileVerLess51);\r\n };\r\n EvtUtils.getEventX = function (evt) {\r\n if (touch_1.TouchUtils.isTouchEvent(evt))\r\n return touch_1.TouchUtils.getEventX(evt);\r\n return evt.clientX + (EvtUtils.clientEventRequiresDocScrollCorrection() ? dom_1.DomUtils.getDocumentScrollLeft() : 0);\r\n };\r\n EvtUtils.getEventY = function (evt) {\r\n if (touch_1.TouchUtils.isTouchEvent(evt))\r\n return touch_1.TouchUtils.getEventY(evt);\r\n return evt.clientY + (EvtUtils.clientEventRequiresDocScrollCorrection() ? dom_1.DomUtils.getDocumentScrollTop() : 0);\r\n };\r\n EvtUtils.cancelBubble = function (evt) {\r\n evt.cancelBubble = true;\r\n };\r\n EvtUtils.getWheelDelta = function (evt) {\r\n var ret;\r\n if (browser_1.Browser.NetscapeFamily && browser_1.Browser.MajorVersion < 17)\r\n ret = -evt.detail;\r\n else if (browser_1.Browser.Safari)\r\n ret = evt.wheelDelta;\r\n else\r\n ret = -evt.deltaY;\r\n if (browser_1.Browser.Opera && browser_1.Browser.Version < 9)\r\n ret = -ret;\r\n return ret;\r\n };\r\n return EvtUtils;\r\n}());\r\nexports.EvtUtils = EvtUtils;\r\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CommandManager = exports.DiagramCommand = void 0;\r\nvar DeleteCommand_1 = __webpack_require__(162);\r\nvar UndoCommand_1 = __webpack_require__(200);\r\nvar RedoCommand_1 = __webpack_require__(201);\r\nvar ImportCommand_1 = __webpack_require__(202);\r\nvar ExportCommand_1 = __webpack_require__(239);\r\nvar ToggleFontBoldCommand_1 = __webpack_require__(240);\r\nvar ToggleFontItalicCommand_1 = __webpack_require__(241);\r\nvar ToggleFontUnderlineCommand_1 = __webpack_require__(242);\r\nvar ChangeFontNameCommand_1 = __webpack_require__(243);\r\nvar ChangeFontSizeCommand_1 = __webpack_require__(244);\r\nvar ChangeFontColorCommand_1 = __webpack_require__(245);\r\nvar ChangeFillColorCommand_1 = __webpack_require__(246);\r\nvar ChangeStrokeColorCommand_1 = __webpack_require__(247);\r\nvar ChangeTextAlignCommand_1 = __webpack_require__(248);\r\nvar ChangeConnectorLineEndingCommand_1 = __webpack_require__(249);\r\nvar ChangeConnectorLineOptionCommand_1 = __webpack_require__(250);\r\nvar SelectAllCommand_1 = __webpack_require__(251);\r\nvar key_1 = __webpack_require__(25);\r\nvar AutoLayoutTreeVerticalCommand_1 = __webpack_require__(138);\r\nvar ChangeSnapToGridCommand_1 = __webpack_require__(254);\r\nvar ChangeGridSizeCommand_1 = __webpack_require__(255);\r\nvar ChangePageLandscapeCommand_1 = __webpack_require__(256);\r\nvar ChangePageSizeCommand_1 = __webpack_require__(258);\r\nvar ExportPngCommand_1 = __webpack_require__(260);\r\nvar ExportSvgCommand_1 = __webpack_require__(262);\r\nvar ExportJpgCommand_1 = __webpack_require__(263);\r\nvar CopySelectionCommand_1 = __webpack_require__(264);\r\nvar CutSelectionCommand_1 = __webpack_require__(265);\r\nvar PasteSelectionCommand_1 = __webpack_require__(266);\r\nvar ImportBPMNCommand_1 = __webpack_require__(269);\r\nvar SendToBackCommand_1 = __webpack_require__(272);\r\nvar BringToFrontCommand_1 = __webpack_require__(273);\r\nvar AutoLayoutLayeredHorizontalCommand_1 = __webpack_require__(143);\r\nvar MoveCommands_1 = __webpack_require__(274);\r\nvar ChangeZoomLevelCommand_1 = __webpack_require__(275);\r\nvar BindDocumentCommand_1 = __webpack_require__(276);\r\nvar UnbindDocumentCommand_1 = __webpack_require__(277);\r\nvar AutoLayoutTreeHorizontalCommand_1 = __webpack_require__(144);\r\nvar AutoLayoutLayeredVerticalCommand_1 = __webpack_require__(145);\r\nvar LockCommand_1 = __webpack_require__(278);\r\nvar UnlockCommand_1 = __webpack_require__(279);\r\nvar CloneCommand_1 = __webpack_require__(280);\r\nvar ChangeUnitsCommand_1 = __webpack_require__(281);\r\nvar ChangePageColorCommand_1 = __webpack_require__(283);\r\nvar ChangeShowGridCommand_1 = __webpack_require__(285);\r\nvar ToggleFullscreenCommand_1 = __webpack_require__(286);\r\nvar ToggleSimpleViewCommand_1 = __webpack_require__(287);\r\nvar ToggleReadOnlyCommand_1 = __webpack_require__(288);\r\nvar EditShapeImageCommand_1 = __webpack_require__(289);\r\nvar PasteSelectionInPosition_1 = __webpack_require__(290);\r\nvar ImportXMLCommand_1 = __webpack_require__(291);\r\nvar InsertShapeImageCommand_1 = __webpack_require__(293);\r\nvar DeleteShapeImageCommand_1 = __webpack_require__(294);\r\nvar ChangeStrokeStyleCommand_1 = __webpack_require__(295);\r\nvar ChangeStrokeWidthCommand_1 = __webpack_require__(296);\r\nvar AutoLayoutTreeVerticalBottomToTopCommand_1 = __webpack_require__(297);\r\nvar AutoLayoutTreeHorizontalRightToLeftCommand_1 = __webpack_require__(298);\r\nvar AutoLayoutLayeredVerticalBottomToTopCommand_1 = __webpack_require__(299);\r\nvar AutoLayoutLayeredHorizontalRightToLeftCommand_1 = __webpack_require__(300);\r\nvar ChangeConnectorRoutingModeCommand_1 = __webpack_require__(301);\r\nvar DiagramCommand;\r\n(function (DiagramCommand) {\r\n DiagramCommand[DiagramCommand[\"Undo\"] = 0] = \"Undo\";\r\n DiagramCommand[DiagramCommand[\"Redo\"] = 1] = \"Redo\";\r\n DiagramCommand[DiagramCommand[\"Cut\"] = 2] = \"Cut\";\r\n DiagramCommand[DiagramCommand[\"Copy\"] = 3] = \"Copy\";\r\n DiagramCommand[DiagramCommand[\"Paste\"] = 4] = \"Paste\";\r\n DiagramCommand[DiagramCommand[\"PasteInPosition\"] = 5] = \"PasteInPosition\";\r\n DiagramCommand[DiagramCommand[\"SelectAll\"] = 6] = \"SelectAll\";\r\n DiagramCommand[DiagramCommand[\"Delete\"] = 7] = \"Delete\";\r\n DiagramCommand[DiagramCommand[\"Import\"] = 8] = \"Import\";\r\n DiagramCommand[DiagramCommand[\"ImportBPMN\"] = 9] = \"ImportBPMN\";\r\n DiagramCommand[DiagramCommand[\"Export\"] = 10] = \"Export\";\r\n DiagramCommand[DiagramCommand[\"ExportSvg\"] = 11] = \"ExportSvg\";\r\n DiagramCommand[DiagramCommand[\"ExportPng\"] = 12] = \"ExportPng\";\r\n DiagramCommand[DiagramCommand[\"ExportJpg\"] = 13] = \"ExportJpg\";\r\n DiagramCommand[DiagramCommand[\"BindDocument\"] = 14] = \"BindDocument\";\r\n DiagramCommand[DiagramCommand[\"UnbindDocument\"] = 15] = \"UnbindDocument\";\r\n DiagramCommand[DiagramCommand[\"Bold\"] = 16] = \"Bold\";\r\n DiagramCommand[DiagramCommand[\"Italic\"] = 17] = \"Italic\";\r\n DiagramCommand[DiagramCommand[\"Underline\"] = 18] = \"Underline\";\r\n DiagramCommand[DiagramCommand[\"FontName\"] = 19] = \"FontName\";\r\n DiagramCommand[DiagramCommand[\"FontSize\"] = 20] = \"FontSize\";\r\n DiagramCommand[DiagramCommand[\"FontColor\"] = 21] = \"FontColor\";\r\n DiagramCommand[DiagramCommand[\"FillColor\"] = 22] = \"FillColor\";\r\n DiagramCommand[DiagramCommand[\"StrokeColor\"] = 23] = \"StrokeColor\";\r\n DiagramCommand[DiagramCommand[\"TextLeftAlign\"] = 24] = \"TextLeftAlign\";\r\n DiagramCommand[DiagramCommand[\"TextCenterAlign\"] = 25] = \"TextCenterAlign\";\r\n DiagramCommand[DiagramCommand[\"TextRightAlign\"] = 26] = \"TextRightAlign\";\r\n DiagramCommand[DiagramCommand[\"ConnectorLineOption\"] = 27] = \"ConnectorLineOption\";\r\n DiagramCommand[DiagramCommand[\"ConnectorStartLineEnding\"] = 28] = \"ConnectorStartLineEnding\";\r\n DiagramCommand[DiagramCommand[\"ConnectorEndLineEnding\"] = 29] = \"ConnectorEndLineEnding\";\r\n DiagramCommand[DiagramCommand[\"BringToFront\"] = 30] = \"BringToFront\";\r\n DiagramCommand[DiagramCommand[\"SendToBack\"] = 31] = \"SendToBack\";\r\n DiagramCommand[DiagramCommand[\"MoveLeft\"] = 32] = \"MoveLeft\";\r\n DiagramCommand[DiagramCommand[\"MoveStepLeft\"] = 33] = \"MoveStepLeft\";\r\n DiagramCommand[DiagramCommand[\"MoveRight\"] = 34] = \"MoveRight\";\r\n DiagramCommand[DiagramCommand[\"MoveStepRight\"] = 35] = \"MoveStepRight\";\r\n DiagramCommand[DiagramCommand[\"MoveUp\"] = 36] = \"MoveUp\";\r\n DiagramCommand[DiagramCommand[\"MoveStepUp\"] = 37] = \"MoveStepUp\";\r\n DiagramCommand[DiagramCommand[\"MoveDown\"] = 38] = \"MoveDown\";\r\n DiagramCommand[DiagramCommand[\"MoveStepDown\"] = 39] = \"MoveStepDown\";\r\n DiagramCommand[DiagramCommand[\"CloneLeft\"] = 40] = \"CloneLeft\";\r\n DiagramCommand[DiagramCommand[\"CloneRight\"] = 41] = \"CloneRight\";\r\n DiagramCommand[DiagramCommand[\"CloneUp\"] = 42] = \"CloneUp\";\r\n DiagramCommand[DiagramCommand[\"CloneDown\"] = 43] = \"CloneDown\";\r\n DiagramCommand[DiagramCommand[\"AutoLayoutTree\"] = 44] = \"AutoLayoutTree\";\r\n DiagramCommand[DiagramCommand[\"AutoLayoutFlow\"] = 45] = \"AutoLayoutFlow\";\r\n DiagramCommand[DiagramCommand[\"AutoLayoutTreeVertical\"] = 46] = \"AutoLayoutTreeVertical\";\r\n DiagramCommand[DiagramCommand[\"AutoLayoutTreeHorizontal\"] = 47] = \"AutoLayoutTreeHorizontal\";\r\n DiagramCommand[DiagramCommand[\"AutoLayoutLayeredVertical\"] = 48] = \"AutoLayoutLayeredVertical\";\r\n DiagramCommand[DiagramCommand[\"AutoLayoutLayeredHorizontal\"] = 49] = \"AutoLayoutLayeredHorizontal\";\r\n DiagramCommand[DiagramCommand[\"Lock\"] = 50] = \"Lock\";\r\n DiagramCommand[DiagramCommand[\"Unlock\"] = 51] = \"Unlock\";\r\n DiagramCommand[DiagramCommand[\"Units\"] = 52] = \"Units\";\r\n DiagramCommand[DiagramCommand[\"ViewUnits\"] = 53] = \"ViewUnits\";\r\n DiagramCommand[DiagramCommand[\"PageSize\"] = 54] = \"PageSize\";\r\n DiagramCommand[DiagramCommand[\"PageLandscape\"] = 55] = \"PageLandscape\";\r\n DiagramCommand[DiagramCommand[\"PageColor\"] = 56] = \"PageColor\";\r\n DiagramCommand[DiagramCommand[\"GridSize\"] = 57] = \"GridSize\";\r\n DiagramCommand[DiagramCommand[\"ShowGrid\"] = 58] = \"ShowGrid\";\r\n DiagramCommand[DiagramCommand[\"SnapToGrid\"] = 59] = \"SnapToGrid\";\r\n DiagramCommand[DiagramCommand[\"ZoomLevel\"] = 60] = \"ZoomLevel\";\r\n DiagramCommand[DiagramCommand[\"Fullscreen\"] = 61] = \"Fullscreen\";\r\n DiagramCommand[DiagramCommand[\"ToggleSimpleView\"] = 62] = \"ToggleSimpleView\";\r\n DiagramCommand[DiagramCommand[\"ToggleReadOnly\"] = 63] = \"ToggleReadOnly\";\r\n DiagramCommand[DiagramCommand[\"EditShapeImage\"] = 64] = \"EditShapeImage\";\r\n DiagramCommand[DiagramCommand[\"FitToScreen\"] = 65] = \"FitToScreen\";\r\n DiagramCommand[DiagramCommand[\"SwitchAutoZoom\"] = 66] = \"SwitchAutoZoom\";\r\n DiagramCommand[DiagramCommand[\"ToggleAutoZoom\"] = 67] = \"ToggleAutoZoom\";\r\n DiagramCommand[DiagramCommand[\"FitToWidth\"] = 68] = \"FitToWidth\";\r\n DiagramCommand[DiagramCommand[\"ZoomLevelItems\"] = 69] = \"ZoomLevelItems\";\r\n DiagramCommand[DiagramCommand[\"GridSizeItems\"] = 70] = \"GridSizeItems\";\r\n DiagramCommand[DiagramCommand[\"PageSizeItems\"] = 71] = \"PageSizeItems\";\r\n DiagramCommand[DiagramCommand[\"ImportXML\"] = 72] = \"ImportXML\";\r\n DiagramCommand[DiagramCommand[\"InsertShapeImage\"] = 73] = \"InsertShapeImage\";\r\n DiagramCommand[DiagramCommand[\"DeleteShapeImage\"] = 74] = \"DeleteShapeImage\";\r\n DiagramCommand[DiagramCommand[\"StrokeStyle\"] = 75] = \"StrokeStyle\";\r\n DiagramCommand[DiagramCommand[\"StrokeWidth\"] = 76] = \"StrokeWidth\";\r\n DiagramCommand[DiagramCommand[\"AutoLayoutTreeVerticalBottomToTop\"] = 77] = \"AutoLayoutTreeVerticalBottomToTop\";\r\n DiagramCommand[DiagramCommand[\"AutoLayoutTreeHorizontalRightToLeft\"] = 78] = \"AutoLayoutTreeHorizontalRightToLeft\";\r\n DiagramCommand[DiagramCommand[\"AutoLayoutLayeredVerticalBottomToTop\"] = 79] = \"AutoLayoutLayeredVerticalBottomToTop\";\r\n DiagramCommand[DiagramCommand[\"AutoLayoutLayeredHorizontalRightToLeft\"] = 80] = \"AutoLayoutLayeredHorizontalRightToLeft\";\r\n DiagramCommand[DiagramCommand[\"Zoom25\"] = 81] = \"Zoom25\";\r\n DiagramCommand[DiagramCommand[\"Zoom50\"] = 82] = \"Zoom50\";\r\n DiagramCommand[DiagramCommand[\"Zoom75\"] = 83] = \"Zoom75\";\r\n DiagramCommand[DiagramCommand[\"Zoom100\"] = 84] = \"Zoom100\";\r\n DiagramCommand[DiagramCommand[\"Zoom125\"] = 85] = \"Zoom125\";\r\n DiagramCommand[DiagramCommand[\"Zoom150\"] = 86] = \"Zoom150\";\r\n DiagramCommand[DiagramCommand[\"Zoom200\"] = 87] = \"Zoom200\";\r\n DiagramCommand[DiagramCommand[\"AutoZoomToContent\"] = 88] = \"AutoZoomToContent\";\r\n DiagramCommand[DiagramCommand[\"AutoZoomToWidth\"] = 89] = \"AutoZoomToWidth\";\r\n DiagramCommand[DiagramCommand[\"ZoomLevelInPercentage\"] = 90] = \"ZoomLevelInPercentage\";\r\n DiagramCommand[DiagramCommand[\"ConnectorRoutingMode\"] = 91] = \"ConnectorRoutingMode\";\r\n})(DiagramCommand = exports.DiagramCommand || (exports.DiagramCommand = {}));\r\nvar CommandManager = /** @class */ (function () {\r\n function CommandManager(control) {\r\n this.commands = {};\r\n this.shortcutsToCommand = {};\r\n this.lastCommandsChain = [];\r\n this.executingCommandsChain = [];\r\n this.executingCommandCounter = 0;\r\n this.isPublicApiCall = false;\r\n this.createCommand(control, DiagramCommand.Undo, UndoCommand_1.UndoCommand, key_1.ModifierKey.Ctrl | key_1.KeyCode.Key_z, key_1.ModifierKey.Meta | key_1.KeyCode.Key_z);\r\n this.createCommand(control, DiagramCommand.Redo, RedoCommand_1.RedoCommand, key_1.ModifierKey.Ctrl | key_1.KeyCode.Key_y, key_1.ModifierKey.Ctrl | key_1.ModifierKey.Shift | key_1.KeyCode.Key_z, key_1.ModifierKey.Meta | key_1.ModifierKey.Shift | key_1.KeyCode.Key_z);\r\n this.createCommand(control, DiagramCommand.Cut, CutSelectionCommand_1.CutSelectionCommand, key_1.KeyCode.Key_x | key_1.ModifierKey.Ctrl, key_1.KeyCode.Key_x | key_1.ModifierKey.Meta, key_1.KeyCode.Delete | key_1.ModifierKey.Shift);\r\n this.createCommand(control, DiagramCommand.Copy, CopySelectionCommand_1.CopySelectionCommand, key_1.KeyCode.Key_c | key_1.ModifierKey.Ctrl, key_1.KeyCode.Key_c | key_1.ModifierKey.Meta, key_1.KeyCode.Insert | key_1.ModifierKey.Ctrl);\r\n this.createCommand(control, DiagramCommand.Paste, PasteSelectionCommand_1.PasteSelectionCommand);\r\n this.createCommand(control, DiagramCommand.PasteInPosition, PasteSelectionInPosition_1.PasteSelectionInPositionCommand);\r\n this.createCommand(control, DiagramCommand.SelectAll, SelectAllCommand_1.SelectAllCommand, key_1.KeyCode.Key_a | key_1.ModifierKey.Ctrl, key_1.KeyCode.Key_a | key_1.ModifierKey.Meta);\r\n this.createCommand(control, DiagramCommand.Delete, DeleteCommand_1.DeleteCommand, key_1.KeyCode.Delete, key_1.KeyCode.Backspace);\r\n this.createCommand(control, DiagramCommand.Import, ImportCommand_1.ImportCommand);\r\n this.createCommand(control, DiagramCommand.ImportBPMN, ImportBPMNCommand_1.ImportBPMNCommand);\r\n this.createCommand(control, DiagramCommand.ImportXML, ImportXMLCommand_1.ImportXMLCommand);\r\n this.createCommand(control, DiagramCommand.Export, ExportCommand_1.ExportCommand);\r\n this.createCommand(control, DiagramCommand.ExportSvg, ExportSvgCommand_1.ExportSvgCommand);\r\n this.createCommand(control, DiagramCommand.ExportPng, ExportPngCommand_1.ExportPngCommand);\r\n this.createCommand(control, DiagramCommand.ExportJpg, ExportJpgCommand_1.ExportJpgCommand);\r\n this.createCommand(control, DiagramCommand.BindDocument, BindDocumentCommand_1.BindDocumentCommand);\r\n this.createCommand(control, DiagramCommand.UnbindDocument, UnbindDocumentCommand_1.UnbindDocumentCommand);\r\n this.createCommand(control, DiagramCommand.Bold, ToggleFontBoldCommand_1.ToggleFontBoldCommand, key_1.ModifierKey.Ctrl | key_1.KeyCode.Key_b, key_1.ModifierKey.Meta | key_1.KeyCode.Key_b);\r\n this.createCommand(control, DiagramCommand.Italic, ToggleFontItalicCommand_1.ToggleFontItalicCommand, key_1.ModifierKey.Ctrl | key_1.KeyCode.Key_i, key_1.ModifierKey.Meta | key_1.KeyCode.Key_i);\r\n this.createCommand(control, DiagramCommand.Underline, ToggleFontUnderlineCommand_1.ToggleFontUnderlineCommand, key_1.ModifierKey.Ctrl | key_1.KeyCode.Key_u, key_1.ModifierKey.Meta | key_1.KeyCode.Key_u);\r\n this.createCommand(control, DiagramCommand.FontName, ChangeFontNameCommand_1.ChangeFontNameCommand);\r\n this.createCommand(control, DiagramCommand.FontSize, ChangeFontSizeCommand_1.ChangeFontSizeCommand);\r\n this.createCommand(control, DiagramCommand.FontColor, ChangeFontColorCommand_1.ChangeFontColorCommand);\r\n this.createCommand(control, DiagramCommand.FillColor, ChangeFillColorCommand_1.ChangeFillColorCommand);\r\n this.createCommand(control, DiagramCommand.StrokeColor, ChangeStrokeColorCommand_1.ChangeStrokeColorCommand);\r\n this.createCommand(control, DiagramCommand.StrokeStyle, ChangeStrokeStyleCommand_1.ChangeStrokeStyleCommand);\r\n this.createCommand(control, DiagramCommand.StrokeWidth, ChangeStrokeWidthCommand_1.ChangeStrokeWidthCommand);\r\n this.createCommand(control, DiagramCommand.TextLeftAlign, ChangeTextAlignCommand_1.TextLeftAlignCommand);\r\n this.createCommand(control, DiagramCommand.TextCenterAlign, ChangeTextAlignCommand_1.TextCenterAlignCommand);\r\n this.createCommand(control, DiagramCommand.TextRightAlign, ChangeTextAlignCommand_1.TextRightAlignCommand);\r\n this.createCommand(control, DiagramCommand.ConnectorLineOption, ChangeConnectorLineOptionCommand_1.ChangeConnectorLineOptionCommand);\r\n this.createCommand(control, DiagramCommand.ConnectorStartLineEnding, ChangeConnectorLineEndingCommand_1.ChangeConnectorStartLineEndingCommand);\r\n this.createCommand(control, DiagramCommand.ConnectorEndLineEnding, ChangeConnectorLineEndingCommand_1.ChangeConnectorEndLineEndingCommand);\r\n this.createCommand(control, DiagramCommand.BringToFront, BringToFrontCommand_1.BringToFrontCommand);\r\n this.createCommand(control, DiagramCommand.SendToBack, SendToBackCommand_1.SendToBackCommand);\r\n this.createCommand(control, DiagramCommand.MoveLeft, MoveCommands_1.MoveLeftCommand, key_1.ModifierKey.Ctrl | key_1.KeyCode.Left, key_1.ModifierKey.Ctrl | key_1.ModifierKey.Shift | key_1.KeyCode.Left);\r\n this.createCommand(control, DiagramCommand.MoveRight, MoveCommands_1.MoveRightCommand, key_1.ModifierKey.Ctrl | key_1.KeyCode.Right, key_1.ModifierKey.Ctrl | key_1.ModifierKey.Shift | key_1.KeyCode.Right);\r\n this.createCommand(control, DiagramCommand.MoveUp, MoveCommands_1.MoveUpCommand, key_1.ModifierKey.Ctrl | key_1.KeyCode.Up, key_1.ModifierKey.Ctrl | key_1.ModifierKey.Shift | key_1.KeyCode.Up);\r\n this.createCommand(control, DiagramCommand.MoveDown, MoveCommands_1.MoveDownCommand, key_1.ModifierKey.Ctrl | key_1.KeyCode.Down, key_1.ModifierKey.Ctrl | key_1.ModifierKey.Shift | key_1.KeyCode.Down);\r\n this.createCommand(control, DiagramCommand.MoveStepLeft, MoveCommands_1.MoveStepLeftCommand, key_1.KeyCode.Left, key_1.ModifierKey.Shift | key_1.KeyCode.Left);\r\n this.createCommand(control, DiagramCommand.MoveStepRight, MoveCommands_1.MoveStepRightCommand, key_1.KeyCode.Right, key_1.ModifierKey.Shift | key_1.KeyCode.Right);\r\n this.createCommand(control, DiagramCommand.MoveStepUp, MoveCommands_1.MoveStepUpCommand, key_1.KeyCode.Up, key_1.ModifierKey.Shift | key_1.KeyCode.Up);\r\n this.createCommand(control, DiagramCommand.MoveStepDown, MoveCommands_1.MoveStepDownCommand, key_1.KeyCode.Down, key_1.ModifierKey.Shift | key_1.KeyCode.Down);\r\n this.createCommand(control, DiagramCommand.CloneLeft, CloneCommand_1.CloneLeftCommand, key_1.ModifierKey.Alt | key_1.KeyCode.Left, key_1.ModifierKey.Alt | key_1.ModifierKey.Shift | key_1.KeyCode.Left);\r\n this.createCommand(control, DiagramCommand.CloneRight, CloneCommand_1.CloneRightCommand, key_1.ModifierKey.Alt | key_1.KeyCode.Right, key_1.ModifierKey.Alt | key_1.ModifierKey.Shift | key_1.KeyCode.Right);\r\n this.createCommand(control, DiagramCommand.CloneUp, CloneCommand_1.CloneUpCommand, key_1.ModifierKey.Alt | key_1.KeyCode.Up, key_1.ModifierKey.Alt | key_1.ModifierKey.Shift | key_1.KeyCode.Up);\r\n this.createCommand(control, DiagramCommand.CloneDown, CloneCommand_1.CloneDownCommand, key_1.ModifierKey.Alt | key_1.KeyCode.Down, key_1.ModifierKey.Alt | key_1.ModifierKey.Shift | key_1.KeyCode.Down);\r\n this.createCommand(control, DiagramCommand.Lock, LockCommand_1.LockCommand);\r\n this.createCommand(control, DiagramCommand.Unlock, UnlockCommand_1.UnLockCommand);\r\n this.createCommand(control, DiagramCommand.AutoLayoutTree, AutoLayoutTreeVerticalCommand_1.AutoLayoutTreeVerticalCommand); // TODO: remove after, need for BC\r\n this.createCommand(control, DiagramCommand.AutoLayoutFlow, AutoLayoutLayeredHorizontalCommand_1.AutoLayoutLayeredHorizontalCommand); // TODO: remove after, need for BC\r\n this.createCommand(control, DiagramCommand.Units, ChangeUnitsCommand_1.ChangeUnitsCommand);\r\n this.createCommand(control, DiagramCommand.ViewUnits, ChangeUnitsCommand_1.ChangeViewUnitsCommand);\r\n this.createCommand(control, DiagramCommand.PageSize, ChangePageSizeCommand_1.ChangePageSizeCommand);\r\n this.createCommand(control, DiagramCommand.PageLandscape, ChangePageLandscapeCommand_1.ChangePageLandscapeCommand);\r\n this.createCommand(control, DiagramCommand.PageColor, ChangePageColorCommand_1.ChangePageColorCommand);\r\n this.createCommand(control, DiagramCommand.GridSize, ChangeGridSizeCommand_1.ChangeGridSizeCommand);\r\n this.createCommand(control, DiagramCommand.ShowGrid, ChangeShowGridCommand_1.ChangeShowGridCommand);\r\n this.createCommand(control, DiagramCommand.SnapToGrid, ChangeSnapToGridCommand_1.ChangeSnapToGridCommand);\r\n this.createCommand(control, DiagramCommand.ZoomLevel, ChangeZoomLevelCommand_1.ChangeZoomLevelCommand);\r\n this.createCommand(control, DiagramCommand.ZoomLevelInPercentage, ChangeZoomLevelCommand_1.ChangeZoomLevelInPercentageCommand);\r\n this.createCommand(control, DiagramCommand.AutoLayoutTreeVertical, AutoLayoutTreeVerticalCommand_1.AutoLayoutTreeVerticalCommand);\r\n this.createCommand(control, DiagramCommand.AutoLayoutTreeVerticalBottomToTop, AutoLayoutTreeVerticalBottomToTopCommand_1.AutoLayoutTreeVerticalBottomToTopCommand);\r\n this.createCommand(control, DiagramCommand.AutoLayoutTreeHorizontal, AutoLayoutTreeHorizontalCommand_1.AutoLayoutTreeHorizontalCommand);\r\n this.createCommand(control, DiagramCommand.AutoLayoutTreeHorizontalRightToLeft, AutoLayoutTreeHorizontalRightToLeftCommand_1.AutoLayoutTreeHorizontalRightToLeftCommand);\r\n this.createCommand(control, DiagramCommand.AutoLayoutLayeredVertical, AutoLayoutLayeredVerticalCommand_1.AutoLayoutLayeredVerticalCommand);\r\n this.createCommand(control, DiagramCommand.AutoLayoutLayeredVerticalBottomToTop, AutoLayoutLayeredVerticalBottomToTopCommand_1.AutoLayoutLayeredVerticalBottomToTopCommand);\r\n this.createCommand(control, DiagramCommand.AutoLayoutLayeredHorizontal, AutoLayoutLayeredHorizontalCommand_1.AutoLayoutLayeredHorizontalCommand);\r\n this.createCommand(control, DiagramCommand.AutoLayoutLayeredHorizontalRightToLeft, AutoLayoutLayeredHorizontalRightToLeftCommand_1.AutoLayoutLayeredHorizontalRightToLeftCommand);\r\n this.createCommand(control, DiagramCommand.Fullscreen, ToggleFullscreenCommand_1.ToggleFullscreenCommand, key_1.KeyCode.F11);\r\n this.createCommand(control, DiagramCommand.ToggleSimpleView, ToggleSimpleViewCommand_1.ToggleSimpleViewCommand);\r\n this.createCommand(control, DiagramCommand.ToggleReadOnly, ToggleReadOnlyCommand_1.ToggleReadOnlyCommand);\r\n this.createCommand(control, DiagramCommand.InsertShapeImage, InsertShapeImageCommand_1.InsertShapeImageCommand);\r\n this.createCommand(control, DiagramCommand.EditShapeImage, EditShapeImageCommand_1.EditShapeImageCommand);\r\n this.createCommand(control, DiagramCommand.DeleteShapeImage, DeleteShapeImageCommand_1.DeleteShapeImageCommand);\r\n this.createCommand(control, DiagramCommand.FitToScreen, ChangeZoomLevelCommand_1.FitToScreenCommand);\r\n this.createCommand(control, DiagramCommand.FitToWidth, ChangeZoomLevelCommand_1.FitToWidthCommand);\r\n this.createCommand(control, DiagramCommand.SwitchAutoZoom, ChangeZoomLevelCommand_1.SwitchAutoZoomCommand);\r\n this.createCommand(control, DiagramCommand.ToggleAutoZoom, ChangeZoomLevelCommand_1.ToggleAutoZoomCommand);\r\n this.createCommand(control, DiagramCommand.ZoomLevelItems, ChangeZoomLevelCommand_1.ChangeZoomLevelItemsCommand);\r\n this.createCommand(control, DiagramCommand.GridSizeItems, ChangeGridSizeCommand_1.ChangeGridSizeItemsCommand);\r\n this.createCommand(control, DiagramCommand.PageSizeItems, ChangePageSizeCommand_1.ChangePageSizeItemsCommand);\r\n this.createCommand(control, DiagramCommand.Zoom25, ChangeZoomLevelCommand_1.ChangeZoomLevelTo25Command);\r\n this.createCommand(control, DiagramCommand.Zoom50, ChangeZoomLevelCommand_1.ChangeZoomLevelTo50Command);\r\n this.createCommand(control, DiagramCommand.Zoom75, ChangeZoomLevelCommand_1.ChangeZoomLevelTo75Command);\r\n this.createCommand(control, DiagramCommand.Zoom100, ChangeZoomLevelCommand_1.ChangeZoomLevelTo100Command);\r\n this.createCommand(control, DiagramCommand.Zoom125, ChangeZoomLevelCommand_1.ChangeZoomLevelTo125Command);\r\n this.createCommand(control, DiagramCommand.Zoom150, ChangeZoomLevelCommand_1.ChangeZoomLevelTo150Command);\r\n this.createCommand(control, DiagramCommand.Zoom200, ChangeZoomLevelCommand_1.ChangeZoomLevelTo200Command);\r\n this.createCommand(control, DiagramCommand.AutoZoomToContent, ChangeZoomLevelCommand_1.ToggleAutoZoomToContentCommand);\r\n this.createCommand(control, DiagramCommand.AutoZoomToWidth, ChangeZoomLevelCommand_1.ToggleAutoZoomToWidthCommand);\r\n this.createCommand(control, DiagramCommand.ConnectorRoutingMode, ChangeConnectorRoutingModeCommand_1.ChangeConnectorRoutingModeCommand);\r\n }\r\n CommandManager.prototype.getCommand = function (key) {\r\n return this.commands[key];\r\n };\r\n CommandManager.prototype.beforeExecuting = function (command) {\r\n this.executingCommandsChain.push(command);\r\n this.executingCommandCounter++;\r\n };\r\n CommandManager.prototype.afterExecuting = function () {\r\n this.executingCommandCounter--;\r\n if (this.executingCommandCounter === 0) {\r\n this.lastCommandsChain = this.executingCommandsChain;\r\n this.executingCommandsChain = [];\r\n }\r\n };\r\n CommandManager.prototype.processShortcut = function (code) {\r\n var command = this.shortcutsToCommand[code];\r\n if (command)\r\n return command.execute();\r\n return false;\r\n };\r\n CommandManager.prototype.processPaste = function (clipboardData) {\r\n var command = this.getCommand(DiagramCommand.Paste);\r\n if (command && command.isEnabled())\r\n command.execute(clipboardData);\r\n return true;\r\n };\r\n // ISelectionChangesListener\r\n CommandManager.prototype.notifySelectionChanged = function (_selection) {\r\n this.lastCommandsChain = [];\r\n };\r\n CommandManager.prototype.notifyScrollPositionChanged = function () { };\r\n CommandManager.prototype.createCommand = function (control, commandId, commandType) {\r\n var shortcuts = [];\r\n for (var _i = 3; _i < arguments.length; _i++) {\r\n shortcuts[_i - 3] = arguments[_i];\r\n }\r\n this.commands[commandId] = new commandType(control);\r\n for (var i = 0; i < shortcuts.length; i++) {\r\n var shortcut = shortcuts[i];\r\n if (typeof shortcut === \"number\")\r\n this.shortcutsToCommand[shortcut] = this.commands[commandId];\r\n }\r\n };\r\n return CommandManager;\r\n}());\r\nexports.CommandManager = CommandManager;\r\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar min_max_1 = __webpack_require__(165);\r\nvar comparers_1 = __webpack_require__(166);\r\nvar ListUtils = (function () {\r\n function ListUtils() {\r\n }\r\n ListUtils.remove = function (list, element) {\r\n var index = list.indexOf(element, 0);\r\n if (index >= 0)\r\n list.splice(index, 1);\r\n };\r\n ListUtils.removeBy = function (list, callback) {\r\n var len = list.length;\r\n for (var index = 0; index < len; index++) {\r\n if (callback(list[index], index))\r\n return list.splice(index, 1)[0];\r\n }\r\n return null;\r\n };\r\n ListUtils.shallowCopy = function (list) {\r\n return list.slice();\r\n };\r\n ListUtils.deepCopy = function (list) {\r\n return ListUtils.map(list, function (val) { return val.clone(); });\r\n };\r\n ListUtils.initByValue = function (numElements, initValue) {\r\n var result = [];\r\n for (; numElements > 0; numElements--)\r\n result.push(initValue);\r\n return result;\r\n };\r\n ListUtils.initByCallback = function (numElements, initCallback) {\r\n var result = [];\r\n for (var index = 0; index < numElements; index++)\r\n result.push(initCallback(index));\r\n return result;\r\n };\r\n ListUtils.forEachOnInterval = function (interval, callback) {\r\n var end = interval.end;\r\n for (var index = interval.start; index < end; index++)\r\n callback(index);\r\n };\r\n ListUtils.reverseForEachOnInterval = function (interval, callback) {\r\n var start = interval.start;\r\n for (var index = interval.end - 1; index >= start; index--)\r\n callback(index);\r\n };\r\n ListUtils.reducedMap = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var result = [];\r\n for (var index = startIndex; index < endIndex; index++) {\r\n var newItem = callback(list[index], index);\r\n if (newItem !== null)\r\n result.push(newItem);\r\n }\r\n return result;\r\n };\r\n ListUtils.filter = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var result = [];\r\n for (var index = startIndex; index < endIndex; index++) {\r\n var item = list[index];\r\n if (callback(item, index))\r\n result.push(item);\r\n }\r\n return result;\r\n };\r\n ListUtils.map = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var result = [];\r\n for (var index = startIndex; index < endIndex; index++)\r\n result.push(callback(list[index], index));\r\n return result;\r\n };\r\n ListUtils.indexBy = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n for (var ind = startIndex; ind < endIndex; ind++) {\r\n if (callback(list[ind], ind))\r\n return ind;\r\n }\r\n return -1;\r\n };\r\n ListUtils.reverseIndexBy = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n for (var ind = startIndex; ind >= endIndex; ind--) {\r\n if (callback(list[ind], ind))\r\n return ind;\r\n }\r\n return -1;\r\n };\r\n ListUtils.elementBy = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var ind = ListUtils.indexBy(list, callback, startIndex, endIndex);\r\n return ind < 0 ? null : list[ind];\r\n };\r\n ListUtils.reverseElementBy = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n var ind = ListUtils.reverseIndexBy(list, callback, startIndex, endIndex);\r\n return ind < 0 ? null : list[ind];\r\n };\r\n ListUtils.last = function (list) {\r\n return list[list.length - 1];\r\n };\r\n ListUtils.setLast = function (list, newVal) {\r\n return list[list.length - 1] = newVal;\r\n };\r\n ListUtils.incLast = function (list) {\r\n return ++list[list.length - 1];\r\n };\r\n ListUtils.decLast = function (list) {\r\n return --list[list.length - 1];\r\n };\r\n ListUtils.equals = function (a, b) {\r\n return a.length === b.length && ListUtils.allOf2(a, b, function (a, b) { return a.equals(b); });\r\n };\r\n ListUtils.equalsByReference = function (a, b) {\r\n var aLen = a.length;\r\n var bLen = a.length;\r\n if (aLen !== bLen)\r\n return false;\r\n for (var i = 0; i < aLen; i++) {\r\n if (a[i] !== b[i])\r\n return false;\r\n }\r\n return true;\r\n };\r\n ListUtils.unique = function (list, cmp, equal, finalizeObj) {\r\n if (equal === void 0) { equal = cmp; }\r\n if (finalizeObj === void 0) { finalizeObj = function () { }; }\r\n var len = list.length;\r\n if (len === 0)\r\n return [];\r\n list = list.sort(cmp);\r\n var prevValue = list[0];\r\n var result = ListUtils.reducedMap(list, function (v) {\r\n if (equal(prevValue, v) !== 0) {\r\n prevValue = v;\r\n return v;\r\n }\r\n finalizeObj(v);\r\n return null;\r\n }, 1, len);\r\n result.unshift(list[0]);\r\n return result;\r\n };\r\n ListUtils.uniqueNumber = function (list) {\r\n list = list.sort(comparers_1.Comparers.number);\r\n var prevValue = Number.NaN;\r\n for (var i = list.length - 1; i >= 0; i--) {\r\n if (prevValue === list[i])\r\n list.splice(i, 1);\r\n else\r\n prevValue = list[i];\r\n }\r\n return list;\r\n };\r\n ListUtils.forEach = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n for (var index = startIndex; index < endIndex; index++)\r\n callback(list[index], index);\r\n };\r\n ListUtils.forEach2 = function (listA, listB, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = listA.length; }\r\n for (var index = startIndex; index < endIndex; index++)\r\n callback(listA[index], listB[index], index);\r\n };\r\n ListUtils.reverseForEach = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n for (var index = startIndex; index >= endIndex; index--)\r\n callback(list[index], index);\r\n };\r\n ListUtils.reverseIndexOf = function (list, element, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n for (var index = startIndex; index >= endIndex; index--) {\r\n if (list[index] === element)\r\n return index;\r\n }\r\n return -1;\r\n };\r\n ListUtils.accumulate = function (list, initAccValue, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var acc = initAccValue;\r\n for (var ind = startIndex; ind < endIndex; ind++)\r\n acc = callback(acc, list[ind], ind);\r\n return acc;\r\n };\r\n ListUtils.accumulateNumber = function (list, callback, initAccValue, startIndex, endIndex) {\r\n if (initAccValue === void 0) { initAccValue = 0; }\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var acc = initAccValue;\r\n for (var ind = startIndex; ind < endIndex; ind++)\r\n acc += callback(list[ind], ind, acc);\r\n return acc;\r\n };\r\n ListUtils.anyOf = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n for (var index = startIndex; index < endIndex; index++) {\r\n if (callback(list[index], index))\r\n return true;\r\n }\r\n return false;\r\n };\r\n ListUtils.unsafeAnyOf = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n for (var index = startIndex; index < endIndex; index++) {\r\n var currResult = callback(list[index], index);\r\n if (currResult)\r\n return currResult;\r\n }\r\n return null;\r\n };\r\n ListUtils.reverseAnyOf = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n for (var index = startIndex; index >= endIndex; index--) {\r\n if (callback(list[index], index))\r\n return true;\r\n }\r\n return false;\r\n };\r\n ListUtils.unsafeReverseAnyOf = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = list.length - 1; }\r\n if (endIndex === void 0) { endIndex = 0; }\r\n for (var index = startIndex; index >= endIndex; index--) {\r\n var currResult = callback(list[index], index);\r\n if (currResult)\r\n return currResult;\r\n }\r\n return null;\r\n };\r\n ListUtils.anyOf2 = function (listA, listB, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = listA.length; }\r\n for (var index = startIndex; index < endIndex; index++) {\r\n if (callback(listA[index], listB[index], index))\r\n return true;\r\n }\r\n return false;\r\n };\r\n ListUtils.allOf = function (list, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n for (var index = startIndex; index < endIndex; index++) {\r\n if (!callback(list[index], index))\r\n return false;\r\n }\r\n return true;\r\n };\r\n ListUtils.allOf2 = function (listA, listB, callback, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = listA.length; }\r\n for (var index = startIndex; index < endIndex; index++) {\r\n if (!callback(listA[index], listB[index], index))\r\n return false;\r\n }\r\n return true;\r\n };\r\n ListUtils.allOfOnInterval = function (interval, callback) {\r\n var endIndex = interval.end;\r\n for (var index = interval.start; index < endIndex; index++) {\r\n if (!callback(index))\r\n return false;\r\n }\r\n return true;\r\n };\r\n ListUtils.addListOnTail = function (resultList, addedList) {\r\n for (var i = 0, elem = void 0; elem = addedList[i]; i++)\r\n resultList.push(elem);\r\n return resultList;\r\n };\r\n ListUtils.joinLists = function (converter) {\r\n var lists = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n lists[_i - 1] = arguments[_i];\r\n }\r\n return ListUtils.accumulate(lists, [], function (accList, list) {\r\n ListUtils.addListOnTail(accList, converter(list));\r\n return accList;\r\n });\r\n };\r\n ListUtils.push = function (list, element) {\r\n list.push(element);\r\n return list;\r\n };\r\n ListUtils.countIf = function (list, callback) {\r\n return ListUtils.accumulateNumber(list, function (elem, ind) { return callback(elem, ind) ? 1 : 0; });\r\n };\r\n ListUtils.clear = function (list) {\r\n list.splice(0);\r\n };\r\n ListUtils.merge = function (list, cmp, shouldMerge, merge, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n list = list.slice(startIndex, endIndex);\r\n if (endIndex - startIndex < 2)\r\n return list;\r\n list = list.sort(cmp);\r\n var prevObj = list[startIndex];\r\n var result = [prevObj];\r\n for (var ind = startIndex + 1; ind < endIndex; ind++) {\r\n var obj = list[ind];\r\n if (shouldMerge(prevObj, obj))\r\n merge(prevObj, obj);\r\n else {\r\n prevObj = obj;\r\n result.push(prevObj);\r\n }\r\n }\r\n return result;\r\n };\r\n ListUtils.min = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var res = ListUtils.minExtended(list, getValue, startIndex, endIndex);\r\n return res ? res.minElement : null;\r\n };\r\n ListUtils.max = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var res = ListUtils.maxExtended(list, getValue, startIndex, endIndex);\r\n return res ? res.maxElement : null;\r\n };\r\n ListUtils.minMax = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n var res = ListUtils.minMaxExtended(list, getValue, startIndex, endIndex);\r\n return res ? new min_max_1.MinMax(res.minElement, res.maxElement) : null;\r\n };\r\n ListUtils.minExtended = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var minElement = list[startIndex];\r\n var minValue = getValue(minElement);\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n var elemValue = getValue(elem);\r\n if (elemValue < minValue) {\r\n minValue = elemValue;\r\n minElement = elem;\r\n }\r\n }\r\n return new min_max_1.ExtendedMin(minElement, minValue);\r\n };\r\n ListUtils.maxExtended = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var maxElement = list[startIndex];\r\n var maxValue = getValue(maxElement);\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n var elemValue = getValue(elem);\r\n if (elemValue > maxValue) {\r\n maxValue = elemValue;\r\n maxElement = elem;\r\n }\r\n }\r\n return new min_max_1.ExtendedMax(maxElement, maxValue);\r\n };\r\n ListUtils.minMaxExtended = function (list, getValue, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var minElement = list[startIndex];\r\n var maxElement = minElement;\r\n var minValue = getValue(minElement);\r\n var maxValue = minValue;\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n var elemValue = getValue(elem);\r\n if (elemValue < minValue) {\r\n minValue = elemValue;\r\n minElement = elem;\r\n }\r\n else if (elemValue > maxValue) {\r\n maxValue = elemValue;\r\n maxElement = elem;\r\n }\r\n }\r\n return new min_max_1.ExtendedMinMax(minElement, minValue, maxElement, maxValue);\r\n };\r\n ListUtils.minByCmp = function (list, cmp, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var found = list[startIndex];\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n if (cmp(elem, found) < 0)\r\n found = elem;\r\n }\r\n return found;\r\n };\r\n ListUtils.maxByCmp = function (list, cmp, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var found = list[startIndex];\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n if (cmp(elem, found) > 0)\r\n found = elem;\r\n }\r\n return found;\r\n };\r\n ListUtils.minMaxByCmp = function (list, cmp, startIndex, endIndex) {\r\n if (startIndex === void 0) { startIndex = 0; }\r\n if (endIndex === void 0) { endIndex = list.length; }\r\n if (list.length === 0)\r\n return null;\r\n var min = list[startIndex];\r\n var max = min;\r\n for (var index = startIndex + 1; index < endIndex; index++) {\r\n var elem = list[index];\r\n var res = cmp(elem, min);\r\n if (res > 0)\r\n max = elem;\r\n else if (res < 0)\r\n min = elem;\r\n }\r\n return new min_max_1.MinMax(min, max);\r\n };\r\n return ListUtils;\r\n}());\r\nexports.ListUtils = ListUtils;\r\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Metrics = (function () {\r\n function Metrics() {\r\n }\r\n Metrics.euclideanDistance = function (a, b) {\r\n var xDist = a.x - b.x;\r\n var yDist = a.y - b.y;\r\n return Math.sqrt(xDist * xDist + yDist * yDist);\r\n };\r\n Metrics.manhattanDistance = function (a, b) {\r\n return Math.abs(a.x - b.x) + Math.abs(a.y - b.y);\r\n };\r\n return Metrics;\r\n}());\r\nexports.Metrics = Metrics;\r\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar file_1 = __webpack_require__(176);\r\nvar mime_type_1 = __webpack_require__(177);\r\nvar Base64Utils = (function () {\r\n function Base64Utils() {\r\n }\r\n Base64Utils.normalizeToDataUrl = function (base64, mimeType) {\r\n if (!Base64Utils.checkPrependDataUrl(base64))\r\n base64 = Base64Utils.prependByDataUrl(base64, mimeType);\r\n return base64;\r\n };\r\n Base64Utils.prependByDataUrl = function (base64, mimeType) {\r\n return \"data:\" + mimeType + \";base64,\" + base64;\r\n };\r\n Base64Utils.checkPrependDataUrl = function (base64) {\r\n return Base64Utils.dataUrl.test(base64);\r\n };\r\n Base64Utils.deleteDataUrlPrefix = function (base64DataUrl) {\r\n return base64DataUrl.replace(Base64Utils.dataUrl, '');\r\n };\r\n Base64Utils.getUint8Array = function (base64) {\r\n base64 = atob(base64);\r\n var n = base64.length;\r\n var arr = new Uint8Array(n);\r\n while (n--)\r\n arr[n] = base64.charCodeAt(n);\r\n return arr;\r\n };\r\n Base64Utils.fromArrayBuffer = function (buffer) {\r\n var binary = [];\r\n var bytes = new Uint8Array(buffer);\r\n var len = bytes.byteLength;\r\n for (var i = 0; i < len; i++)\r\n binary.push(String.fromCharCode(bytes[i]));\r\n return window.btoa(binary.join(''));\r\n };\r\n Base64Utils.getFileFromBase64 = function (base64, fileName, options) {\r\n if (fileName === void 0) { fileName = ''; }\r\n var data = Base64Utils.getUint8Array(base64);\r\n return file_1.FileUtils.createFile([data], fileName, options);\r\n };\r\n Base64Utils.getMimeTypeAsString = function (base64) {\r\n var match = base64.match(Base64Utils.dataUrl);\r\n return match ? match[1] : null;\r\n };\r\n Base64Utils.getKnownMimeType = function (base64) {\r\n var match = base64.match(Base64Utils.dataUrl);\r\n return match ? mime_type_1.MimeTypeUtils.stringTypeToType(match[1]) : mime_type_1.DxMimeType.Unknown;\r\n };\r\n Base64Utils.fromBlobAsArrayBuffer = function (blob, callback) {\r\n var reader = new FileReader();\r\n reader.onloadend = function () { return callback(Base64Utils.fromArrayBuffer(reader.result)); };\r\n reader.readAsArrayBuffer(blob);\r\n };\r\n Base64Utils.fromBlobAsDataUrl = function (blob, callback) {\r\n var reader = new FileReader();\r\n reader.onloadend = function () { return callback(reader.result); };\r\n reader.readAsDataURL(blob);\r\n };\r\n Base64Utils.dataUrl = /^data:(.*?)(;(.*?))??(;base64)?,/;\r\n return Base64Utils;\r\n}());\r\nexports.Base64Utils = Base64Utils;\r\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NativeConnector = exports.NativeShape = exports.NativeItem = void 0;\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar NativeItem = /** @class */ (function () {\r\n function NativeItem(id, key) {\r\n this.id = id;\r\n this.key = key;\r\n this.unitsApplied = false;\r\n }\r\n NativeItem.prototype.applyUnits = function (units) {\r\n if (!this.unitsApplied && units !== undefined) {\r\n this.applyUnitsCore(units);\r\n this.unitsApplied = true;\r\n }\r\n };\r\n return NativeItem;\r\n}());\r\nexports.NativeItem = NativeItem;\r\nvar NativeShape = /** @class */ (function (_super) {\r\n __extends(NativeShape, _super);\r\n function NativeShape() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n NativeShape.prototype.applyUnitsCore = function (units) {\r\n this.position.x = ModelUtils_1.ModelUtils.getlUnitValue(units, this.position.x);\r\n this.position.y = ModelUtils_1.ModelUtils.getlUnitValue(units, this.position.y);\r\n this.size.width = ModelUtils_1.ModelUtils.getlUnitValue(units, this.size.width);\r\n this.size.height = ModelUtils_1.ModelUtils.getlUnitValue(units, this.size.height);\r\n };\r\n return NativeShape;\r\n}(NativeItem));\r\nexports.NativeShape = NativeShape;\r\nvar NativeConnector = /** @class */ (function (_super) {\r\n __extends(NativeConnector, _super);\r\n function NativeConnector() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n NativeConnector.prototype.applyUnitsCore = function (units) {\r\n this.points.forEach(function (pt) {\r\n pt.x = ModelUtils_1.ModelUtils.getlUnitValue(units, pt.x);\r\n pt.y = ModelUtils_1.ModelUtils.getlUnitValue(units, pt.y);\r\n });\r\n };\r\n return NativeConnector;\r\n}(NativeItem));\r\nexports.NativeConnector = NativeConnector;\r\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorRenderPointsContext = void 0;\r\nvar ConnectorRenderPointsContext = /** @class */ (function () {\r\n function ConnectorRenderPointsContext(renderPoints, lockCreateRenderPoints, actualRoutingMode) {\r\n this.renderPoints = renderPoints;\r\n this.lockCreateRenderPoints = lockCreateRenderPoints;\r\n this.actualRoutingMode = actualRoutingMode;\r\n }\r\n return ConnectorRenderPointsContext;\r\n}());\r\nexports.ConnectorRenderPointsContext = ConnectorRenderPointsContext;\r\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Offsets = (function () {\r\n function Offsets(left, right, top, bottom) {\r\n this.left = left;\r\n this.right = right;\r\n this.top = top;\r\n this.bottom = bottom;\r\n }\r\n Offsets.empty = function () {\r\n return new Offsets(0, 0, 0, 0);\r\n };\r\n Object.defineProperty(Offsets.prototype, \"horizontal\", {\r\n get: function () {\r\n return this.left + this.right;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Offsets.prototype, \"vertical\", {\r\n get: function () {\r\n return this.top + this.bottom;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Offsets.fromNumber = function (offset) {\r\n return new Offsets(offset, offset, offset, offset);\r\n };\r\n Offsets.fromOffsets = function (offsets) {\r\n return new Offsets(offsets.left, offsets.right, offsets.top, offsets.bottom);\r\n };\r\n Offsets.fromSide = function (horizontal, vertical) {\r\n return new Offsets(horizontal, horizontal, vertical, vertical);\r\n };\r\n Offsets.prototype.normalize = function () {\r\n this.left = Math.max(0, this.left);\r\n this.right = Math.max(0, this.right);\r\n this.top = Math.max(0, this.top);\r\n this.bottom = Math.max(0, this.bottom);\r\n return this;\r\n };\r\n Offsets.prototype.toString = function () {\r\n return JSON.stringify(this);\r\n };\r\n Offsets.prototype.isEmpty = function () {\r\n return this.left === 0 && this.right === 0 && this.top === 0 && this.bottom === 0;\r\n };\r\n Offsets.prototype.offset = function (offset) {\r\n this.left += offset.left;\r\n this.right += offset.right;\r\n this.top += offset.top;\r\n this.bottom += offset.bottom;\r\n return this;\r\n };\r\n Offsets.prototype.multiply = function (multLeft, multRight, multTop, multBottom) {\r\n switch (arguments.length) {\r\n case 1: {\r\n this.left *= multLeft;\r\n this.right *= multLeft;\r\n this.top *= multLeft;\r\n this.bottom *= multLeft;\r\n return this;\r\n }\r\n case 2: {\r\n this.left *= multLeft;\r\n this.right *= multLeft;\r\n this.top *= multRight;\r\n this.bottom *= multRight;\r\n return this;\r\n }\r\n case 4: {\r\n this.left *= multLeft;\r\n this.right *= multRight;\r\n this.top *= multTop;\r\n this.bottom *= multBottom;\r\n return this;\r\n }\r\n }\r\n return this;\r\n };\r\n Offsets.prototype.clone = function () {\r\n return new Offsets(this.left, this.right, this.top, this.bottom);\r\n };\r\n Offsets.prototype.copyFrom = function (obj) {\r\n this.left = obj.left;\r\n this.right = obj.right;\r\n this.top = obj.top;\r\n this.bottom = obj.bottom;\r\n };\r\n Offsets.prototype.equals = function (obj) {\r\n return this.top === obj.top &&\r\n this.bottom === obj.bottom &&\r\n this.right === obj.right &&\r\n this.left === obj.left;\r\n };\r\n Offsets.prototype.applyConverter = function (converter) {\r\n this.left = converter(this.left);\r\n this.right = converter(this.right);\r\n this.top = converter(this.top);\r\n this.bottom = converter(this.bottom);\r\n return this;\r\n };\r\n return Offsets;\r\n}());\r\nexports.Offsets = Offsets;\r\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeConnectorPropertyHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ChangeConnectorPropertyHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangeConnectorPropertyHistoryItem, _super);\r\n function ChangeConnectorPropertyHistoryItem(connectorKey, propertyName, value) {\r\n var _this = _super.call(this) || this;\r\n _this.connectorKey = connectorKey;\r\n _this.propertyName = propertyName;\r\n _this.value = value;\r\n return _this;\r\n }\r\n ChangeConnectorPropertyHistoryItem.prototype.redo = function (manipulator) {\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n this.oldValue = connector.properties[this.propertyName];\r\n manipulator.changeConnectorProperty(connector, this.propertyName, this.value);\r\n };\r\n ChangeConnectorPropertyHistoryItem.prototype.undo = function (manipulator) {\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n manipulator.changeConnectorProperty(connector, this.propertyName, this.oldValue);\r\n };\r\n return ChangeConnectorPropertyHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ChangeConnectorPropertyHistoryItem = ChangeConnectorPropertyHistoryItem;\r\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeStyleHistoryItem = void 0;\r\nvar ChangeStyleHistoryItemBase_1 = __webpack_require__(119);\r\nvar ChangeStyleHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangeStyleHistoryItem, _super);\r\n function ChangeStyleHistoryItem(itemKey, styleProperty, styleValue) {\r\n return _super.call(this, itemKey, styleProperty, styleValue) || this;\r\n }\r\n ChangeStyleHistoryItem.prototype.redo = function (manipulator) {\r\n var item = manipulator.model.findItem(this.itemKey);\r\n this.oldStyleValue = item.style[this.styleProperty];\r\n manipulator.changeStyle(item, this.styleProperty, this.styleValue);\r\n };\r\n ChangeStyleHistoryItem.prototype.undo = function (manipulator) {\r\n var item = manipulator.model.findItem(this.itemKey);\r\n manipulator.changeStyle(item, this.styleProperty, this.oldStyleValue);\r\n };\r\n return ChangeStyleHistoryItem;\r\n}(ChangeStyleHistoryItemBase_1.ChangeStyleHistoryItemBase));\r\nexports.ChangeStyleHistoryItem = ChangeStyleHistoryItem;\r\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HashSet = void 0;\r\nvar HashSet = /** @class */ (function () {\r\n function HashSet(list, getHashCode) {\r\n var _this = this;\r\n if (list === void 0) { list = []; }\r\n if (getHashCode === void 0) { getHashCode = function (item) { return item.toString(); }; }\r\n this.items = [];\r\n this.map = {};\r\n this.getHashCode = getHashCode;\r\n list.forEach(function (i) { return _this.tryPush(i); });\r\n }\r\n HashSet.prototype.tryPush = function (item) {\r\n var code = this.getHashCode(item);\r\n if (this.map[code] === undefined) {\r\n this.map[code] = this.items.push(item) - 1;\r\n return true;\r\n }\r\n return false;\r\n };\r\n HashSet.prototype.contains = function (item) {\r\n return this.map[this.getHashCode(item)] !== undefined;\r\n };\r\n HashSet.prototype.forEach = function (callback) {\r\n this.items.forEach(callback);\r\n };\r\n HashSet.prototype.filter = function (predicate) {\r\n return this.items.filter(predicate);\r\n };\r\n HashSet.prototype.list = function () {\r\n return this.items.slice(0);\r\n };\r\n HashSet.prototype.item = function (index) {\r\n return this.items[index];\r\n };\r\n HashSet.prototype.first = function () {\r\n return this.items[0];\r\n };\r\n HashSet.prototype.remove = function (item) {\r\n var code = this.getHashCode(item);\r\n var index = this.map[code];\r\n if (typeof index === \"number\") {\r\n delete this.map[code];\r\n this.items.splice(index, 1);\r\n for (var i = index; i < this.items.length; i++)\r\n this.map[this.getHashCode(this.items[i])]--;\r\n }\r\n else\r\n throw \"Item not found\";\r\n };\r\n Object.defineProperty(HashSet.prototype, \"length\", {\r\n get: function () { return this.items.length; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return HashSet;\r\n}());\r\nexports.HashSet = HashSet;\r\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ShapeDescriptionManager = void 0;\r\nvar ProcessShapeDescription_1 = __webpack_require__(203);\r\nvar DecisionShapeDescription_1 = __webpack_require__(204);\r\nvar ManualInputShapeDescription_1 = __webpack_require__(205);\r\nvar DataShapeDescription_1 = __webpack_require__(206);\r\nvar TerminatorShapeDescription_1 = __webpack_require__(207);\r\nvar PredefinedProcessShapeDescription_1 = __webpack_require__(208);\r\nvar ArrowUpDownShapeDescription_1 = __webpack_require__(209);\r\nvar ArrowRightShapeDescription_1 = __webpack_require__(210);\r\nvar ArrowUpShapeDescription_1 = __webpack_require__(211);\r\nvar CrossShapeDescription_1 = __webpack_require__(212);\r\nvar DiamondShapeDescription_1 = __webpack_require__(121);\r\nvar EllipseShapeDescription_1 = __webpack_require__(70);\r\nvar HeartShapeDescription_1 = __webpack_require__(213);\r\nvar RectangleShapeDescription_1 = __webpack_require__(19);\r\nvar TextShapeDescription_1 = __webpack_require__(122);\r\nvar PentagonShapeDescription_1 = __webpack_require__(123);\r\nvar HexagonShapeDescription_1 = __webpack_require__(124);\r\nvar OctagonShapeDescription_1 = __webpack_require__(214);\r\nvar StarShapeDescription_1 = __webpack_require__(215);\r\nvar ArrowDownShapeDescription_1 = __webpack_require__(216);\r\nvar ArrowLeftRightShapeDescription_1 = __webpack_require__(217);\r\nvar ArrowLeftShapeDescription_1 = __webpack_require__(218);\r\nvar TriangleShapeDescription_1 = __webpack_require__(125);\r\nvar DocumentShapeDescription_1 = __webpack_require__(126);\r\nvar MultipleDocumentsShapeDescription_1 = __webpack_require__(219);\r\nvar PreparationShapeDescription_1 = __webpack_require__(220);\r\nvar HardDiskShapeDescription_1 = __webpack_require__(221);\r\nvar DatabaseShapeDescription_1 = __webpack_require__(222);\r\nvar InternalStorageShapeDescription_1 = __webpack_require__(223);\r\nvar PaperTapeShapeDescription_1 = __webpack_require__(224);\r\nvar ManualOperationShapeDescription_1 = __webpack_require__(225);\r\nvar DelayShapeDescription_1 = __webpack_require__(226);\r\nvar StoredDataShapeDescription_1 = __webpack_require__(227);\r\nvar MergeShapeDescription_1 = __webpack_require__(228);\r\nvar DisplayShapeDescription_1 = __webpack_require__(229);\r\nvar OrShapeDescription_1 = __webpack_require__(230);\r\nvar SummingJunctionShapeDescription_1 = __webpack_require__(231);\r\nvar CustomShapeDescription_1 = __webpack_require__(127);\r\nvar VerticalContainerDescription_1 = __webpack_require__(233);\r\nvar HorizontalContainerDescription_1 = __webpack_require__(234);\r\nvar CardWithImageOnTopDescription_1 = __webpack_require__(235);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar ConnectorShapeDescription_1 = __webpack_require__(237);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar CardWithHorizontalImageDescription_1 = __webpack_require__(238);\r\nvar ShapeDescriptionManager = /** @class */ (function () {\r\n function ShapeDescriptionManager() {\r\n this.descriptions = {};\r\n this.descriptionTypes = {};\r\n this.descriptionCategories = {};\r\n this.onShapeDecriptionChanged = new Utils_1.EventDispatcher();\r\n this.register(new TextShapeDescription_1.TextShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new RectangleShapeDescription_1.RectangleShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new EllipseShapeDescription_1.EllipseShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new CrossShapeDescription_1.CrossShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new TriangleShapeDescription_1.TriangleShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new DiamondShapeDescription_1.DiamondShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new HeartShapeDescription_1.HeartShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new PentagonShapeDescription_1.PentagonShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new HexagonShapeDescription_1.HexagonShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new OctagonShapeDescription_1.OctagonShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new StarShapeDescription_1.StarShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new ArrowUpShapeDescription_1.ArrowUpShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new ArrowDownShapeDescription_1.ArrowDownShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new ArrowLeftShapeDescription_1.ArrowLeftShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new ArrowRightShapeDescription_1.ArrowRightShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new ArrowUpDownShapeDescription_1.ArrowUpDownShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new ArrowLeftRightShapeDescription_1.ArrowLeftRightShapeDescription(), ShapeTypes_1.ShapeCategories.General);\r\n this.register(new ProcessShapeDescription_1.ProcessShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new DecisionShapeDescription_1.DecisionShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new TerminatorShapeDescription_1.TerminatorShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new PredefinedProcessShapeDescription_1.PredefinedProcessShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new DocumentShapeDescription_1.DocumentShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new MultipleDocumentsShapeDescription_1.MultipleDocumentsShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new ManualInputShapeDescription_1.ManualInputShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new PreparationShapeDescription_1.PreparationShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new DataShapeDescription_1.DataShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new DatabaseShapeDescription_1.DatabaseShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new HardDiskShapeDescription_1.HardDiskShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new InternalStorageShapeDescription_1.InternalStorageShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new PaperTapeShapeDescription_1.PaperTapeShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new ManualOperationShapeDescription_1.ManualOperationShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new DelayShapeDescription_1.DelayShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new StoredDataShapeDescription_1.StoredDataShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new DisplayShapeDescription_1.DisplayShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new MergeShapeDescription_1.MergeShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new ConnectorShapeDescription_1.ConnectorShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new OrShapeDescription_1.OrShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new SummingJunctionShapeDescription_1.SummingJunctionShapeDescription(), ShapeTypes_1.ShapeCategories.Flowchart);\r\n this.register(new CardWithHorizontalImageDescription_1.CardWithImageOnLeftDescription(), ShapeTypes_1.ShapeCategories.OrgChart);\r\n this.register(new CardWithHorizontalImageDescription_1.CardWithImageOnRightDescription(), ShapeTypes_1.ShapeCategories.OrgChart);\r\n this.register(new CardWithImageOnTopDescription_1.CardWithImageOnTopDescription(), ShapeTypes_1.ShapeCategories.OrgChart);\r\n this.register(new VerticalContainerDescription_1.VerticalContainerDescription(), ShapeTypes_1.ShapeCategories.Containers);\r\n this.register(new HorizontalContainerDescription_1.HorizontalContainerDescription(), ShapeTypes_1.ShapeCategories.Containers);\r\n }\r\n Object.defineProperty(ShapeDescriptionManager, \"default\", {\r\n get: function () {\r\n return ShapeDescriptionManager.defaultInstance;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ShapeDescriptionManager, \"defaultContainer\", {\r\n get: function () {\r\n return ShapeDescriptionManager.defaultContainerInstance;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ShapeDescriptionManager.prototype.get = function (type) {\r\n return this.descriptions[type];\r\n };\r\n ShapeDescriptionManager.prototype.getTypesByCategory = function (category) {\r\n return this.descriptionTypes[category] || [];\r\n };\r\n ShapeDescriptionManager.prototype.getCategoryByType = function (type) {\r\n return this.descriptionCategories[type];\r\n };\r\n ShapeDescriptionManager.prototype.getCategoryByDescription = function (description) {\r\n return this.getCategoryByType(description.key);\r\n };\r\n ShapeDescriptionManager.prototype.register = function (description, category, type) {\r\n if (type === void 0) { type = description.key; }\r\n if (this.descriptions[type] !== undefined)\r\n throw Error(\"Description key is duplicated\");\r\n this.descriptions[type] = description;\r\n if (!this.descriptionTypes[category])\r\n this.descriptionTypes[category] = [];\r\n this.descriptionTypes[category].push(type);\r\n this.descriptionCategories[type] = category;\r\n description.onChanged.add(this);\r\n };\r\n ShapeDescriptionManager.prototype.registerCustomShape = function (shape) {\r\n if (shape.type === undefined)\r\n throw Error(\"Custom shape type is not defined\");\r\n if (this.descriptions[shape.type] !== undefined)\r\n throw Error(\"Custom shape type is duplicated\");\r\n var baseDescription = shape.baseType && this.descriptions[shape.baseType];\r\n if (shape.minWidth > shape.maxWidth)\r\n shape.maxWidth = shape.minWidth;\r\n if (shape.minHeight > shape.maxHeight)\r\n shape.maxHeight = shape.minHeight;\r\n this.register(new CustomShapeDescription_1.CustomShapeDescription(shape, baseDescription), shape.category || ShapeTypes_1.ShapeCategories.Custom);\r\n };\r\n ShapeDescriptionManager.prototype.unregisterCustomShape = function (shapeType) {\r\n var description = this.descriptions[shapeType];\r\n if (description instanceof CustomShapeDescription_1.CustomShapeDescription) {\r\n description.onChanged.remove(this);\r\n var category = this.descriptionCategories[shapeType];\r\n delete this.descriptions[shapeType];\r\n delete this.descriptionCategories[shapeType];\r\n var index = this.descriptionTypes[category].indexOf(shapeType);\r\n this.descriptionTypes[category].splice(index, 1);\r\n if (this.descriptionTypes[category].length === 0)\r\n delete this.descriptionTypes[category];\r\n }\r\n };\r\n ShapeDescriptionManager.prototype.notifyShapeDescriptionChanged = function (description) {\r\n this.onShapeDecriptionChanged.raise1(function (l) { return l.notifyShapeDescriptionChanged(description); });\r\n };\r\n ShapeDescriptionManager.defaultInstance = new RectangleShapeDescription_1.RectangleShapeDescription();\r\n ShapeDescriptionManager.defaultContainerInstance = new VerticalContainerDescription_1.VerticalContainerDescription();\r\n return ShapeDescriptionManager;\r\n}());\r\nexports.ShapeDescriptionManager = ShapeDescriptionManager;\r\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ArrowVerticalShapeDescription = exports.ArrowVerticalLineWidthParameterName = exports.ArrowVerticalTriangleHeightParameterName = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar size_1 = __webpack_require__(2);\r\nvar ShapeParameters_1 = __webpack_require__(36);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nexports.ArrowVerticalTriangleHeightParameterName = \"th\";\r\nexports.ArrowVerticalLineWidthParameterName = \"lw\";\r\nvar ArrowVerticalShapeDescription = /** @class */ (function (_super) {\r\n __extends(ArrowVerticalShapeDescription, _super);\r\n function ArrowVerticalShapeDescription() {\r\n return _super.call(this, new size_1.Size(ShapeDescription_1.ShapeDefaultDimension * 0.375, ShapeDescription_1.ShapeDefaultDimension)) || this;\r\n }\r\n Object.defineProperty(ArrowVerticalShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ArrowVerticalShapeDescription.prototype.createParameters = function (parameters) {\r\n parameters.addRange([\r\n new ShapeParameters_1.ShapeParameter(exports.ArrowVerticalTriangleHeightParameterName, Math.sqrt(Math.pow(this.defaultSize.width, 2) - Math.pow(this.defaultSize.width / 2, 2))),\r\n new ShapeParameters_1.ShapeParameter(exports.ArrowVerticalLineWidthParameterName, this.defaultSize.width / 3)\r\n ]);\r\n };\r\n ArrowVerticalShapeDescription.prototype.normalizeParameters = function (shape, parameters) {\r\n this.changeParameterValue(parameters, exports.ArrowVerticalTriangleHeightParameterName, function (p) { return Math.max(0, Math.min(shape.size.height, p.value)); });\r\n this.changeParameterValue(parameters, exports.ArrowVerticalLineWidthParameterName, function (p) { return Math.max(0, Math.min(shape.size.width, p.value)); });\r\n };\r\n ArrowVerticalShapeDescription.prototype.processConnectionPoint = function (shape, point) {\r\n var delta = (shape.size.width - shape.parameters.get(exports.ArrowVerticalLineWidthParameterName).value) / 2;\r\n var side = shape.getConnectionPointSide(point);\r\n if (side === DiagramItem_1.ConnectionPointSide.East)\r\n point.x -= delta;\r\n else if (side === DiagramItem_1.ConnectionPointSide.West)\r\n point.x += delta;\r\n };\r\n ArrowVerticalShapeDescription.prototype.getTextRectangle = function (shape) {\r\n return shape.rectangle.clone().inflate(-ShapeDescription_1.ShapeTextPadding, -ShapeDescription_1.ShapeTextPadding);\r\n };\r\n ArrowVerticalShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n return textSize.clone().offset(ShapeDescription_1.ShapeTextPadding * 2, ShapeDescription_1.ShapeTextPadding * 2);\r\n };\r\n return ArrowVerticalShapeDescription;\r\n}(ShapeDescription_1.ShapeDescription));\r\nexports.ArrowVerticalShapeDescription = ArrowVerticalShapeDescription;\r\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ArrowHorizontalShapeDescription = exports.ArrowVerticalLineHeightParameterName = exports.ArrowVerticalTriangleWidthParameterName = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar size_1 = __webpack_require__(2);\r\nvar ShapeParameters_1 = __webpack_require__(36);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nexports.ArrowVerticalTriangleWidthParameterName = \"tw\";\r\nexports.ArrowVerticalLineHeightParameterName = \"lh\";\r\nvar ArrowHorizontalShapeDescription = /** @class */ (function (_super) {\r\n __extends(ArrowHorizontalShapeDescription, _super);\r\n function ArrowHorizontalShapeDescription() {\r\n return _super.call(this, new size_1.Size(ShapeDescription_1.ShapeDefaultDimension, ShapeDescription_1.ShapeDefaultDimension * 0.375)) || this;\r\n }\r\n Object.defineProperty(ArrowHorizontalShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ArrowHorizontalShapeDescription.prototype.createParameters = function (parameters) {\r\n parameters.addRange([\r\n new ShapeParameters_1.ShapeParameter(exports.ArrowVerticalTriangleWidthParameterName, Math.sqrt(Math.pow(this.defaultSize.height, 2) - Math.pow(this.defaultSize.height / 2, 2))),\r\n new ShapeParameters_1.ShapeParameter(exports.ArrowVerticalLineHeightParameterName, this.defaultSize.height / 3)\r\n ]);\r\n };\r\n ArrowHorizontalShapeDescription.prototype.normalizeParameters = function (shape, parameters) {\r\n this.changeParameterValue(parameters, exports.ArrowVerticalTriangleWidthParameterName, function (p) { return Math.max(0, Math.min(shape.size.width, p.value)); });\r\n this.changeParameterValue(parameters, exports.ArrowVerticalLineHeightParameterName, function (p) { return Math.max(0, Math.min(shape.size.height, p.value)); });\r\n };\r\n ArrowHorizontalShapeDescription.prototype.processConnectionPoint = function (shape, point) {\r\n var delta = (shape.size.height - shape.parameters.get(exports.ArrowVerticalLineHeightParameterName).value) / 2;\r\n var side = shape.getConnectionPointSide(point);\r\n if (side === DiagramItem_1.ConnectionPointSide.North)\r\n point.y += delta;\r\n else if (side === DiagramItem_1.ConnectionPointSide.South)\r\n point.y -= delta;\r\n };\r\n ArrowHorizontalShapeDescription.prototype.getTextRectangle = function (shape) {\r\n return shape.rectangle.clone().inflate(-ShapeDescription_1.ShapeTextPadding, -ShapeDescription_1.ShapeTextPadding);\r\n };\r\n ArrowHorizontalShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n return textSize.clone().offset(ShapeDescription_1.ShapeTextPadding * 2, ShapeDescription_1.ShapeTextPadding * 2);\r\n };\r\n return ArrowHorizontalShapeDescription;\r\n}(ShapeDescription_1.ShapeDescription));\r\nexports.ArrowHorizontalShapeDescription = ArrowHorizontalShapeDescription;\r\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PolygonShapeDescription = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar PolygonShapeDescription = /** @class */ (function (_super) {\r\n __extends(PolygonShapeDescription, _super);\r\n function PolygonShapeDescription(hasDefaultText) {\r\n var _this = _super.call(this, undefined, hasDefaultText) || this;\r\n _this.defaultSize.height = _this.calculateHeight(ShapeDescription_1.ShapeDefaultDimension);\r\n return _this;\r\n }\r\n Object.defineProperty(PolygonShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PolygonShapeDescription.prototype, \"angle\", {\r\n get: function () {\r\n return Math.PI * (this.angleCount - 2) / this.angleCount;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return PolygonShapeDescription;\r\n}(ShapeDescription_1.ShapeDescription));\r\nexports.PolygonShapeDescription = PolygonShapeDescription;\r\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ImportUtils = void 0;\r\nvar ImportUtils = /** @class */ (function () {\r\n function ImportUtils() {\r\n }\r\n ImportUtils.parseJSON = function (json) {\r\n if (!json || json === \"\")\r\n return {};\r\n try {\r\n return JSON.parse(json);\r\n }\r\n catch (_a) {\r\n return {};\r\n }\r\n };\r\n ImportUtils.createDocument = function (xml) {\r\n var parser = new DOMParser();\r\n return parser.parseFromString(xml, \"application/xml\");\r\n };\r\n return ImportUtils;\r\n}());\r\nexports.ImportUtils = ImportUtils;\r\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeStyleTextPropertyCommand = void 0;\r\nvar ChangeStylePropertyCommandBase_1 = __webpack_require__(136);\r\nvar ChangeStyleTextHistoryItem_1 = __webpack_require__(67);\r\nvar Style_1 = __webpack_require__(30);\r\nvar ChangeStyleTextPropertyCommand = /** @class */ (function (_super) {\r\n __extends(ChangeStyleTextPropertyCommand, _super);\r\n function ChangeStyleTextPropertyCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeStyleTextPropertyCommand.prototype.getValue = function () {\r\n return this.control.selection.inputPosition.getCurrentTextStylePropertyValue(this.getStyleProperty());\r\n };\r\n ChangeStyleTextPropertyCommand.prototype.getStyleObj = function (item) {\r\n return item.styleText;\r\n };\r\n ChangeStyleTextPropertyCommand.prototype.getDefaultStyleObj = function () {\r\n return new Style_1.TextStyle();\r\n };\r\n ChangeStyleTextPropertyCommand.prototype.createHistoryItem = function (item, styleProperty, styleValue) {\r\n return new ChangeStyleTextHistoryItem_1.ChangeStyleTextHistoryItem(item.key, styleProperty, styleValue);\r\n };\r\n ChangeStyleTextPropertyCommand.prototype.updateInputPosition = function (value) {\r\n this.control.selection.inputPosition.setTextStylePropertyValue(this.getStyleProperty(), value);\r\n };\r\n return ChangeStyleTextPropertyCommand;\r\n}(ChangeStylePropertyCommandBase_1.ChangeStylePropertyCommandBase));\r\nexports.ChangeStyleTextPropertyCommand = ChangeStyleTextPropertyCommand;\r\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TreeLayoutBuilder = void 0;\r\nvar GraphLayout_1 = __webpack_require__(139);\r\nvar Tree_1 = __webpack_require__(253);\r\nvar NodeLayout_1 = __webpack_require__(69);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar point_1 = __webpack_require__(1);\r\nvar BaseBuilder_1 = __webpack_require__(140);\r\nvar Structures_1 = __webpack_require__(37);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar LayoutSettings_1 = __webpack_require__(20);\r\nvar TreeLayoutBuilder = /** @class */ (function (_super) {\r\n __extends(TreeLayoutBuilder, _super);\r\n function TreeLayoutBuilder() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.nodeToLevel = {};\r\n _this.levelDepthSize = {};\r\n return _this;\r\n }\r\n TreeLayoutBuilder.prototype.build = function () {\r\n var _this = this;\r\n var layout = new GraphLayout_1.GraphLayout();\r\n var offset = 0;\r\n this.graph.getConnectedComponents().forEach(function (c) {\r\n var tree = Tree_1.Tree.createSpanningTree(c);\r\n var componentLayout = _this.processTree(tree);\r\n layout.extend(_this.setComponentOffset(componentLayout, offset));\r\n offset += _this.getComponentOffset(componentLayout);\r\n });\r\n return layout;\r\n };\r\n TreeLayoutBuilder.prototype.preProcessTree = function (tree, parents, level) {\r\n var _this = this;\r\n parents = parents.filter(function (p) { return (_this.nodeToLevel[p.key] === undefined ? (_this.nodeToLevel[p.key] = level) : -1) >= 0; });\r\n if (parents.length) {\r\n var maxDepthSize = this.getMaxDepthSize(parents);\r\n this.levelDepthSize[level] = maxDepthSize;\r\n this.preProcessTree(tree, [].concat.apply([], parents.map(function (p) { return tree.getChildren(p); })), level + 1);\r\n }\r\n };\r\n TreeLayoutBuilder.prototype.loadNodes = function (tree, layout, parent) {\r\n if (!parent)\r\n return [layout.addNode(new NodeLayout_1.NodeLayout(tree.root, point_1.Point.zero()))];\r\n return tree.getChildren(parent.info).map(function (child) {\r\n return !layout.hasNode(child.key) ? layout.addNode(new NodeLayout_1.NodeLayout(child, point_1.Point.zero())) : undefined;\r\n }).filter(function (nl) { return nl; });\r\n };\r\n TreeLayoutBuilder.prototype.processTree = function (tree) {\r\n var _this = this;\r\n var layout = new GraphLayout_1.GraphLayout();\r\n this.preProcessTree(tree, [tree.root], 0);\r\n this.processLevel(tree, layout, 0, new Utils_1.Range(0), 0);\r\n if (this.settings.direction === LayoutSettings_1.LogicalDirectionKind.Backward) {\r\n var levelDepths = Object.keys(this.levelDepthSize).map(function (l) { return _this.levelDepthSize[l]; });\r\n var mostDepthPos_1 = levelDepths.reduce(function (acc, v) { return acc + v; }, 0) + (levelDepths.length - 1) * this.settings.layerSpacing;\r\n layout.forEachNode(function (n) { return _this.setDepthPos(n, _this.getDepthPos(n) + mostDepthPos_1); });\r\n }\r\n return layout;\r\n };\r\n TreeLayoutBuilder.prototype.processLevel = function (tree, layout, depthPos, breadthParentRange, level, parent) {\r\n var _this = this;\r\n var nodes = this.addNodes(tree, layout, level, parent);\r\n var parentEdges = parent ? this.graph.getAdjacentEdges(parent.key, Structures_1.ConnectionMode.Outgoing) : [];\r\n var maxDepthSize = this.getDirectionValue(this.levelDepthSize[level]);\r\n var layerSpacing = this.getDirectionValue(this.settings.layerSpacing);\r\n var prevRange;\r\n nodes.forEach(function (node) {\r\n var range = Utils_1.Range.fromLength(prevRange ? (prevRange.to + _this.settings.columnSpacing) : breadthParentRange.from, _this.getBreadthNodeSizeCore(node.info));\r\n node.position = _this.getNodePosition(range.from, depthPos, maxDepthSize).clone().offset(node.info.margin.left, node.info.margin.top);\r\n _this.processLevel(tree, layout, depthPos + maxDepthSize + layerSpacing, range, level + 1, node);\r\n _this.updateEdgeConnections(layout, parentEdges, node);\r\n breadthParentRange.extend(range);\r\n prevRange = range;\r\n });\r\n if (parent && nodes.length) {\r\n var lastChild = nodes[nodes.length - 1];\r\n var childRange = new Utils_1.Range(this.getBreadthPos(nodes[0]), this.getBreadthPos(lastChild) + this.getBreadthNodeSizeCore(lastChild.info, true));\r\n this.alignParent(parent, childRange, breadthParentRange);\r\n }\r\n };\r\n TreeLayoutBuilder.prototype.addNodes = function (tree, layout, level, parent) {\r\n var _this = this;\r\n if (level === 0)\r\n return [layout.addNode(new NodeLayout_1.NodeLayout(tree.root, point_1.Point.zero()))];\r\n return tree.getChildren(parent.info)\r\n .reduce(function (acc, n) {\r\n if (_this.nodeToLevel[n.key] === level && !layout.hasNode(n.key))\r\n acc.push(layout.addNode(new NodeLayout_1.NodeLayout(n, point_1.Point.zero())));\r\n return acc;\r\n }, []);\r\n };\r\n TreeLayoutBuilder.prototype.getMaxDepthSize = function (nodes) {\r\n var _this = this;\r\n return nodes.reduce(function (acc, node) { return Math.max(acc, _this.getDepthNodeSizeCore(node)); }, 0); // make it negative\r\n // return this.settings.direction === LogicalDirectionKind.Forward ? maxSide : -maxSide;\r\n };\r\n TreeLayoutBuilder.prototype.getNodePosition = function (breadthPos, depthPos, maxDepthSide) {\r\n if (this.settings.direction === LayoutSettings_1.LogicalDirectionKind.Forward)\r\n return this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Vertical ? new point_1.Point(breadthPos, depthPos) : new point_1.Point(depthPos, breadthPos);\r\n return this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Vertical ? new point_1.Point(breadthPos, depthPos + maxDepthSide) : new point_1.Point(depthPos + maxDepthSide, breadthPos);\r\n };\r\n TreeLayoutBuilder.prototype.updateEdgeConnections = function (layout, edges, node) {\r\n var _this = this;\r\n edges.filter(function (e) { return e.to === node.key; }).forEach(function (e) {\r\n var beginIndex = _this.getBeginEdgeIndex();\r\n var endIndex = _this.getEndEdgeIndex();\r\n layout.addEdge(new NodeLayout_1.EdgeLayout(e.key, beginIndex, endIndex));\r\n });\r\n };\r\n TreeLayoutBuilder.prototype.getBeginEdgeIndex = function () {\r\n if (this.settings.direction === LayoutSettings_1.LogicalDirectionKind.Forward)\r\n return this.isVertical() ? DiagramItem_1.ConnectionPointSide.South : DiagramItem_1.ConnectionPointSide.East;\r\n return this.isVertical() ? DiagramItem_1.ConnectionPointSide.North : DiagramItem_1.ConnectionPointSide.West;\r\n };\r\n TreeLayoutBuilder.prototype.getEndEdgeIndex = function () {\r\n if (this.settings.direction === LayoutSettings_1.LogicalDirectionKind.Forward)\r\n return this.isVertical() ? DiagramItem_1.ConnectionPointSide.North : DiagramItem_1.ConnectionPointSide.West;\r\n return this.isVertical() ? DiagramItem_1.ConnectionPointSide.South : DiagramItem_1.ConnectionPointSide.East;\r\n };\r\n TreeLayoutBuilder.prototype.alignParent = function (parent, childRange, availableRange) {\r\n if (this.settings.alignment === LayoutSettings_1.Alignment.Center) {\r\n var alignedPosition = childRange.from + childRange.length / 2 - this.getBreadthNodeSizeCore(parent.info, true) / 2;\r\n if (this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Vertical) {\r\n parent.position.x = Math.max(availableRange.from + parent.info.margin.left, alignedPosition);\r\n parent.position.x = Math.min(availableRange.to - parent.info.size.width - parent.info.margin.right, parent.position.x);\r\n }\r\n else {\r\n parent.position.y = Math.max(availableRange.from + parent.info.margin.top, alignedPosition);\r\n parent.position.y = Math.min(availableRange.to - parent.info.size.height - parent.info.margin.bottom, parent.position.y);\r\n }\r\n }\r\n };\r\n TreeLayoutBuilder.prototype.getDepthPos = function (node) {\r\n return this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Vertical ? node.position.y : node.position.x;\r\n };\r\n TreeLayoutBuilder.prototype.getBreadthPos = function (node) {\r\n return this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Vertical ? node.position.x : node.position.y;\r\n };\r\n TreeLayoutBuilder.prototype.setDepthPos = function (node, pos) {\r\n if (this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Vertical)\r\n node.position.y = pos;\r\n else\r\n node.position.x = pos;\r\n };\r\n TreeLayoutBuilder.prototype.isVertical = function () {\r\n return this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Vertical;\r\n };\r\n return TreeLayoutBuilder;\r\n}(BaseBuilder_1.LayoutBuilder));\r\nexports.TreeLayoutBuilder = TreeLayoutBuilder;\r\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ExportImageCommand = void 0;\r\nvar CanvasItemsManager_1 = __webpack_require__(76);\r\nvar CanvasExportManager_1 = __webpack_require__(261);\r\nvar ExportImportCommandBase_1 = __webpack_require__(54);\r\nvar Exporter_1 = __webpack_require__(71);\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar TextMeasurer_1 = __webpack_require__(77);\r\nvar DOMManipulator_1 = __webpack_require__(100);\r\nvar ImageCache_1 = __webpack_require__(45);\r\nvar ExportImageCommand = /** @class */ (function (_super) {\r\n __extends(ExportImageCommand, _super);\r\n function ExportImageCommand(control) {\r\n var _this = _super.call(this, control) || this;\r\n _this.exporter = new Exporter_1.Exporter();\r\n return _this;\r\n }\r\n ExportImageCommand.prototype.isEnabled = function () {\r\n return !ImageCache_1.ImageCache.instance.hasNonLoadedImages();\r\n };\r\n ExportImageCommand.prototype.executeCore = function (state, parameter) {\r\n var _this = this;\r\n try {\r\n var exportManager = this.getExportManager();\r\n var exportFunc = this.getExportFunc();\r\n exportFunc(this.control.model.size.clone(), this.control.model.pageColor, exportManager, function (url) {\r\n parameter(url, _this.getExtension());\r\n _this.tryDispose();\r\n });\r\n }\r\n catch (e) {\r\n this.tryDispose();\r\n throw e;\r\n }\r\n return true;\r\n };\r\n ExportImageCommand.prototype.getExportManager = function () {\r\n var measurer = this.getOrCreateMeasurer();\r\n var itemsManager = (this.control.render && this.control.render.items) || this.createItemsManager(measurer);\r\n return this.exportManager || (this.exportManager = new CanvasExportManager_1.CanvasExportManager(itemsManager.itemsContainer, measurer));\r\n };\r\n ExportImageCommand.prototype.createItemsManager = function (measurer) {\r\n this.svgElement = RenderHelper_1.RenderHelper.createSvgElement(document.body, true);\r\n var canvasManager = new CanvasItemsManager_1.CanvasItemsManager(this.svgElement, 1, new DOMManipulator_1.ExportDOMManipulator(measurer));\r\n this.control.modelManipulator.onModelChanged.add(canvasManager);\r\n this.control.modelManipulator.commitItemsCreateChanges();\r\n return canvasManager;\r\n };\r\n ExportImageCommand.prototype.tryDispose = function () {\r\n if (this.svgElement) {\r\n document.body.removeChild(this.svgElement);\r\n delete this.svgElement;\r\n }\r\n if (this.tempMeasurer) {\r\n this.tempMeasurer.clean();\r\n this.tempMeasurer = undefined;\r\n }\r\n this.exportManager = undefined;\r\n };\r\n ExportImageCommand.prototype.getOrCreateMeasurer = function () {\r\n return this.control.measurer || (this.tempMeasurer = new TextMeasurer_1.TextMeasurer(document.body));\r\n };\r\n return ExportImageCommand;\r\n}(ExportImportCommandBase_1.ExportImportCommandBase));\r\nexports.ExportImageCommand = ExportImageCommand;\r\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ItemChange = exports.ItemChangeType = void 0;\r\nvar ItemChangeType;\r\n(function (ItemChangeType) {\r\n ItemChangeType[ItemChangeType[\"Create\"] = 0] = \"Create\";\r\n ItemChangeType[ItemChangeType[\"UpdateProperties\"] = 1] = \"UpdateProperties\";\r\n ItemChangeType[ItemChangeType[\"UpdateStructure\"] = 2] = \"UpdateStructure\";\r\n ItemChangeType[ItemChangeType[\"Update\"] = 3] = \"Update\";\r\n ItemChangeType[ItemChangeType[\"Remove\"] = 4] = \"Remove\";\r\n ItemChangeType[ItemChangeType[\"UpdateClassName\"] = 5] = \"UpdateClassName\";\r\n})(ItemChangeType = exports.ItemChangeType || (exports.ItemChangeType = {}));\r\nvar ItemChange = /** @class */ (function () {\r\n function ItemChange(item, type, isValid) {\r\n if (isValid === void 0) { isValid = true; }\r\n this.item = item;\r\n this.type = type;\r\n this.isValid = isValid;\r\n }\r\n Object.defineProperty(ItemChange.prototype, \"key\", {\r\n get: function () { return this.item.key; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return ItemChange;\r\n}());\r\nexports.ItemChange = ItemChange;\r\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ExportDOMManipulator = exports.DOMManipulator = void 0;\r\nvar Diagnostics_1 = __webpack_require__(57);\r\nvar RAF_CHANGES_LIMIT = 2000;\r\nvar DOMManipulator = /** @class */ (function () {\r\n function DOMManipulator(measurer) {\r\n this.measurer = measurer;\r\n this.queue = [];\r\n }\r\n DOMManipulator.prototype.createElement = function (primitive, parent, sibling) {\r\n return primitive.createElement(function (el) {\r\n if (parent != null)\r\n if (sibling !== undefined)\r\n parent.insertBefore(el, sibling);\r\n else\r\n parent.appendChild(el);\r\n });\r\n };\r\n DOMManipulator.prototype.changeChildrenByPrimitives = function (primitives, parent) {\r\n var _this = this;\r\n primitives.forEach(function (primitive, index) {\r\n var element = parent.childNodes[index];\r\n _this.changeByPrimitive(element, primitive);\r\n });\r\n };\r\n DOMManipulator.prototype.changeByFunc = function (element, func) {\r\n this.doChange(element, func);\r\n };\r\n DOMManipulator.prototype.changeByPrimitive = function (element, primitive) {\r\n this.doChange(element, primitive);\r\n };\r\n DOMManipulator.prototype.cancelAnimation = function () {\r\n if (this.rafId !== undefined) {\r\n cancelAnimationFrame(this.rafId);\r\n this.queue = [];\r\n }\r\n };\r\n DOMManipulator.prototype.doChange = function (element, action) {\r\n if (Diagnostics_1.Diagnostics.optimizeUsingRAF) {\r\n this.queue.push([element, action]);\r\n this.requestAnimation();\r\n }\r\n else\r\n this.doChangeSync(element, action);\r\n };\r\n DOMManipulator.prototype.doChangeSync = function (element, action) {\r\n if (typeof action === \"function\")\r\n action(element);\r\n else\r\n action.applyElementProperties(element, this.measurer);\r\n };\r\n DOMManipulator.prototype.requestAnimation = function () {\r\n var _this = this;\r\n if (!this.rafRequested) {\r\n this.rafRequested = true;\r\n var func_1 = function () {\r\n _this.queue.splice(0, RAF_CHANGES_LIMIT).forEach(function (t) { return _this.doChangeSync(t[0], t[1]); });\r\n if (_this.queue.length)\r\n _this.rafId = requestAnimationFrame(func_1);\r\n else {\r\n _this.rafRequested = false;\r\n _this.rafId = undefined;\r\n }\r\n };\r\n this.rafId = requestAnimationFrame(func_1);\r\n }\r\n };\r\n return DOMManipulator;\r\n}());\r\nexports.DOMManipulator = DOMManipulator;\r\nvar ExportDOMManipulator = /** @class */ (function (_super) {\r\n __extends(ExportDOMManipulator, _super);\r\n function ExportDOMManipulator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ExportDOMManipulator.prototype.doChange = function (element, action) {\r\n this.doChangeSync(element, action);\r\n };\r\n return ExportDOMManipulator;\r\n}(DOMManipulator));\r\nexports.ExportDOMManipulator = ExportDOMManipulator;\r\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ClipboardCommand = void 0;\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar ClipboardCommand = /** @class */ (function (_super) {\r\n __extends(ClipboardCommand, _super);\r\n function ClipboardCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ClipboardCommand.prototype.setClipboardData = function (data) {\r\n if (this.control.render)\r\n this.control.render.input.setClipboardData(data);\r\n ClipboardCommand.clipboardData = data;\r\n };\r\n ClipboardCommand.prototype.getClipboardData = function (callback) {\r\n if (this.control.render && this.isPasteSupportedByBrowser())\r\n this.control.render.input.getClipboardData(callback);\r\n else\r\n callback(ClipboardCommand.clipboardData);\r\n };\r\n ClipboardCommand.prototype.isPasteSupportedByBrowser = function () {\r\n return this.control.render && this.control.render.input.isPasteSupportedByBrowser();\r\n };\r\n return ClipboardCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ClipboardCommand = ClipboardCommand;\r\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeZindexHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ChangeZindexHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangeZindexHistoryItem, _super);\r\n function ChangeZindexHistoryItem(item, zIndex) {\r\n var _this = _super.call(this) || this;\r\n _this.itemKey = item.key;\r\n _this.zIndex = zIndex;\r\n return _this;\r\n }\r\n ChangeZindexHistoryItem.prototype.redo = function (manipulator) {\r\n var item = manipulator.model.findItem(this.itemKey);\r\n this.oldZIndex = item.zIndex;\r\n manipulator.changeZIndex(item, this.zIndex);\r\n };\r\n ChangeZindexHistoryItem.prototype.undo = function (manipulator) {\r\n var item = manipulator.model.findItem(this.itemKey);\r\n manipulator.changeZIndex(item, this.oldZIndex);\r\n };\r\n return ChangeZindexHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ChangeZindexHistoryItem = ChangeZindexHistoryItem;\r\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataLayoutParameters = exports.DataLayoutType = void 0;\r\nvar LayoutSettings_1 = __webpack_require__(20);\r\nvar WideTree_1 = __webpack_require__(97);\r\nvar Sugiyama_1 = __webpack_require__(78);\r\nvar DataLayoutType;\r\n(function (DataLayoutType) {\r\n DataLayoutType[DataLayoutType[\"Tree\"] = 0] = \"Tree\";\r\n DataLayoutType[DataLayoutType[\"Sugiyama\"] = 1] = \"Sugiyama\";\r\n})(DataLayoutType = exports.DataLayoutType || (exports.DataLayoutType = {}));\r\nvar DataLayoutParameters = /** @class */ (function () {\r\n function DataLayoutParameters(sizeSettings, parameter) {\r\n this.sizeSettings = sizeSettings;\r\n if (parameter) {\r\n if (parameter.type !== undefined) {\r\n this.layoutType = parameter.type;\r\n this.layoutSettings = this.layoutType === DataLayoutType.Sugiyama ? new LayoutSettings_1.LayoutSettings() : new LayoutSettings_1.TreeLayoutSettings();\r\n }\r\n if (parameter.orientation !== undefined)\r\n this.layoutSettings.orientation = parameter.orientation;\r\n this.skipPointIndices = parameter.skipPointIndices;\r\n this.autoSizeEnabled = parameter.autoSizeEnabled;\r\n }\r\n }\r\n Object.defineProperty(DataLayoutParameters.prototype, \"needAutoLayout\", {\r\n get: function () { return this.layoutType !== undefined; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DataLayoutParameters.prototype.getLayoutBuilder = function (graph) {\r\n return (this.layoutType === DataLayoutType.Tree) ?\r\n new WideTree_1.TreeLayoutBuilder(this.layoutSettings, graph) :\r\n new Sugiyama_1.SugiyamaLayoutBuilder(this.layoutSettings, graph);\r\n };\r\n return DataLayoutParameters;\r\n}());\r\nexports.DataLayoutParameters = DataLayoutParameters;\r\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EditShapeImageCommandBase = void 0;\r\nvar ChangeShapeImageHistoryItem_1 = __webpack_require__(147);\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar EditShapeImageCommandBase = /** @class */ (function (_super) {\r\n __extends(EditShapeImageCommandBase, _super);\r\n function EditShapeImageCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n EditShapeImageCommandBase.prototype.isEnabled = function () {\r\n var selectedShape = this.getSelectedShape();\r\n return _super.prototype.isEnabled.call(this) && !!selectedShape && !selectedShape.locked && selectedShape.enableImage && selectedShape.allowEditImage;\r\n };\r\n EditShapeImageCommandBase.prototype.getValue = function () {\r\n var selectedShape = this.getSelectedShape();\r\n var imageUrl = (selectedShape) ? selectedShape.image.exportUrl : undefined;\r\n return imageUrl;\r\n };\r\n EditShapeImageCommandBase.prototype.getSelectedShape = function () {\r\n var selectedShapes = this.control.selection.getSelectedShapes(true);\r\n return (selectedShapes.length === 1) ? selectedShapes[0] : undefined;\r\n };\r\n EditShapeImageCommandBase.prototype.executeCore = function (state, parameter) {\r\n this.control.history.beginTransaction();\r\n var selectedUnlockedShapes = this.control.selection.getSelectedShapes(false);\r\n this.control.history.addAndRedo(new ChangeShapeImageHistoryItem_1.ChangeShapeImageHistoryItem(selectedUnlockedShapes[0], parameter));\r\n this.control.history.endTransaction();\r\n return true;\r\n };\r\n return EditShapeImageCommandBase;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.EditShapeImageCommandBase = EditShapeImageCommandBase;\r\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar browser_1 = __webpack_require__(17);\r\nvar common_1 = __webpack_require__(48);\r\nvar TouchUtils = (function () {\r\n function TouchUtils() {\r\n }\r\n TouchUtils.onEventAttachingToDocument = function (eventName, func) {\r\n if (browser_1.Browser.MacOSMobilePlatform && TouchUtils.isTouchEventName(eventName)) {\r\n if (!TouchUtils.documentTouchHandlers[eventName])\r\n TouchUtils.documentTouchHandlers[eventName] = [];\r\n TouchUtils.documentTouchHandlers[eventName].push(func);\r\n return TouchUtils.documentEventAttachingAllowed;\r\n }\r\n return true;\r\n };\r\n TouchUtils.isTouchEventName = function (eventName) {\r\n return browser_1.Browser.WebKitTouchUI && (eventName.indexOf('touch') > -1 || eventName.indexOf('gesture') > -1);\r\n };\r\n TouchUtils.isTouchEvent = function (evt) {\r\n return browser_1.Browser.WebKitTouchUI && common_1.isDefined(evt.changedTouches);\r\n };\r\n TouchUtils.getEventX = function (evt) {\r\n return browser_1.Browser.IE ? evt.pageX : evt.changedTouches[0].pageX;\r\n };\r\n TouchUtils.getEventY = function (evt) {\r\n return browser_1.Browser.IE ? evt.pageY : evt.changedTouches[0].pageY;\r\n };\r\n TouchUtils.touchMouseDownEventName = browser_1.Browser.WebKitTouchUI ? 'touchstart' : (browser_1.Browser.Edge && browser_1.Browser.MSTouchUI && window.PointerEvent ? 'pointerdown' : 'mousedown');\r\n TouchUtils.touchMouseUpEventName = browser_1.Browser.WebKitTouchUI ? 'touchend' : (browser_1.Browser.Edge && browser_1.Browser.MSTouchUI && window.PointerEvent ? 'pointerup' : 'mouseup');\r\n TouchUtils.touchMouseMoveEventName = browser_1.Browser.WebKitTouchUI ? 'touchmove' : (browser_1.Browser.Edge && browser_1.Browser.MSTouchUI && window.PointerEvent ? 'pointermove' : 'mousemove');\r\n TouchUtils.msTouchDraggableClassName = 'dxMSTouchDraggable';\r\n TouchUtils.documentTouchHandlers = {};\r\n TouchUtils.documentEventAttachingAllowed = true;\r\n return TouchUtils;\r\n}());\r\nexports.TouchUtils = TouchUtils;\r\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DiagramModelOperation = exports.Diagnostics = exports.RenderHelper = exports.DiagramLocalizationService = exports.NativeConnector = exports.NativeShape = exports.ShapeType = exports.ColorUtils = exports.PageOrientation = exports.ConnectorPosition = exports.ConnectorLineOption = exports.ConnectorLineEnding = exports.AutoZoomMode = exports.Browser = exports.UnitConverter = exports.EventDispatcher = exports.DataLayoutOrientation = exports.DataLayoutType = exports.ShapeCategories = exports.ShapeTypes = exports.DiagramUnit = exports.default = exports.DiagramControl = exports.DiagramCommand = exports.Point = exports.Size = void 0;\r\nvar CommandManager_1 = __webpack_require__(81);\r\nObject.defineProperty(exports, \"DiagramCommand\", { enumerable: true, get: function () { return CommandManager_1.DiagramCommand; } });\r\nvar Diagram_1 = __webpack_require__(302);\r\nObject.defineProperty(exports, \"DiagramControl\", { enumerable: true, get: function () { return Diagram_1.DiagramControl; } });\r\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return Diagram_1.DiagramControl; } });\r\nvar size_1 = __webpack_require__(2);\r\nObject.defineProperty(exports, \"Size\", { enumerable: true, get: function () { return size_1.Size; } });\r\nvar point_1 = __webpack_require__(1);\r\nObject.defineProperty(exports, \"Point\", { enumerable: true, get: function () { return point_1.Point; } });\r\nvar Utils_1 = __webpack_require__(3);\r\nObject.defineProperty(exports, \"EventDispatcher\", { enumerable: true, get: function () { return Utils_1.EventDispatcher; } });\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nObject.defineProperty(exports, \"ShapeTypes\", { enumerable: true, get: function () { return ShapeTypes_1.ShapeTypes; } });\r\nObject.defineProperty(exports, \"ShapeCategories\", { enumerable: true, get: function () { return ShapeTypes_1.ShapeCategories; } });\r\nObject.defineProperty(exports, \"ShapeType\", { enumerable: true, get: function () { return ShapeTypes_1.ShapeType; } });\r\nvar unit_converter_1 = __webpack_require__(12);\r\nObject.defineProperty(exports, \"UnitConverter\", { enumerable: true, get: function () { return unit_converter_1.UnitConverter; } });\r\nvar browser_1 = __webpack_require__(17);\r\nObject.defineProperty(exports, \"Browser\", { enumerable: true, get: function () { return browser_1.Browser; } });\r\nvar Settings_1 = __webpack_require__(27);\r\nObject.defineProperty(exports, \"AutoZoomMode\", { enumerable: true, get: function () { return Settings_1.AutoZoomMode; } });\r\nvar DataLayoutParameters_1 = __webpack_require__(103);\r\nObject.defineProperty(exports, \"DataLayoutType\", { enumerable: true, get: function () { return DataLayoutParameters_1.DataLayoutType; } });\r\nvar LayoutSettings_1 = __webpack_require__(20);\r\nObject.defineProperty(exports, \"DataLayoutOrientation\", { enumerable: true, get: function () { return LayoutSettings_1.DataLayoutOrientation; } });\r\n__webpack_require__(382);\r\nvar ConnectorProperties_1 = __webpack_require__(31);\r\nObject.defineProperty(exports, \"ConnectorLineEnding\", { enumerable: true, get: function () { return ConnectorProperties_1.ConnectorLineEnding; } });\r\nObject.defineProperty(exports, \"ConnectorLineOption\", { enumerable: true, get: function () { return ConnectorProperties_1.ConnectorLineOption; } });\r\nvar color_1 = __webpack_require__(22);\r\nObject.defineProperty(exports, \"ColorUtils\", { enumerable: true, get: function () { return color_1.ColorUtils; } });\r\nvar Diagnostics_1 = __webpack_require__(57);\r\nObject.defineProperty(exports, \"Diagnostics\", { enumerable: true, get: function () { return Diagnostics_1.Diagnostics; } });\r\nvar NativeItem_1 = __webpack_require__(85);\r\nObject.defineProperty(exports, \"NativeShape\", { enumerable: true, get: function () { return NativeItem_1.NativeShape; } });\r\nObject.defineProperty(exports, \"NativeConnector\", { enumerable: true, get: function () { return NativeItem_1.NativeConnector; } });\r\nvar LocalizationService_1 = __webpack_require__(35);\r\nObject.defineProperty(exports, \"DiagramLocalizationService\", { enumerable: true, get: function () { return LocalizationService_1.DiagramLocalizationService; } });\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nObject.defineProperty(exports, \"RenderHelper\", { enumerable: true, get: function () { return RenderHelper_1.RenderHelper; } });\r\nvar Enums_1 = __webpack_require__(46);\r\nObject.defineProperty(exports, \"DiagramUnit\", { enumerable: true, get: function () { return Enums_1.DiagramUnit; } });\r\nObject.defineProperty(exports, \"PageOrientation\", { enumerable: true, get: function () { return Enums_1.PageOrientation; } });\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nObject.defineProperty(exports, \"DiagramModelOperation\", { enumerable: true, get: function () { return ModelOperationSettings_1.DiagramModelOperation; } });\r\nvar Connector_1 = __webpack_require__(7);\r\nObject.defineProperty(exports, \"ConnectorPosition\", { enumerable: true, get: function () { return Connector_1.ConnectorPosition; } });\r\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(55);\r\nvar mutable_1 = __webpack_require__(167);\r\nvar FixedInterval = (function (_super) {\r\n tslib_1.__extends(FixedInterval, _super);\r\n function FixedInterval(start, length) {\r\n var _this = _super.call(this) || this;\r\n _this.start = start;\r\n _this.length = length;\r\n return _this;\r\n }\r\n Object.defineProperty(FixedInterval.prototype, \"end\", {\r\n get: function () {\r\n return this.start + this.length;\r\n },\r\n set: function (newEnd) {\r\n this.length = newEnd - this.start;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(FixedInterval.prototype, \"center\", {\r\n get: function () {\r\n return this.start + this.length / 2;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n FixedInterval.prototype.copyFrom = function (obj) {\r\n this.start = obj.start;\r\n this.length = obj.length;\r\n };\r\n FixedInterval.prototype.equals = function (obj) {\r\n return obj && this.start === obj.start && this.length === obj.length;\r\n };\r\n FixedInterval.prototype.clone = function () {\r\n return new FixedInterval(this.start, this.length);\r\n };\r\n FixedInterval.prototype.makeByStartEnd = function (start, end) {\r\n return new FixedInterval(start, end - start);\r\n };\r\n FixedInterval.prototype.makeByStartLength = function (start, length) {\r\n return new FixedInterval(start, length);\r\n };\r\n FixedInterval.prototype.makeByLengthEnd = function (length, end) {\r\n return new FixedInterval(end - length, length);\r\n };\r\n FixedInterval.fromPositions = function (start, end) {\r\n return new FixedInterval(start, end - start);\r\n };\r\n FixedInterval.makeByConstInterval = function (interval) {\r\n return new FixedInterval(interval.start, interval.length);\r\n };\r\n FixedInterval.prototype.expand = function (interval) {\r\n var end = Math.max(interval.end, this.end);\r\n this.start = Math.min(interval.start, this.start);\r\n this.end = end;\r\n return this;\r\n };\r\n return FixedInterval;\r\n}(mutable_1.MutableInterval));\r\nexports.FixedInterval = FixedInterval;\r\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SparseIntervalsIterator = (function () {\r\n function SparseIntervalsIterator(sparseIntervals) {\r\n this.sparseIntervals = sparseIntervals;\r\n this.intervalIndex = -1;\r\n }\r\n Object.defineProperty(SparseIntervalsIterator.prototype, \"isStarted\", {\r\n get: function () {\r\n return !!this.curr;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n SparseIntervalsIterator.prototype.moveNext = function () {\r\n if (this.curr && this.posInInterval + 1 < this.curr.length) {\r\n this.posInInterval++;\r\n this.index++;\r\n this.initObject();\r\n return true;\r\n }\r\n if (this.intervalIndex + 1 < this.sparseIntervals.numIntervals) {\r\n this.intervalIndex++;\r\n this.curr = this.sparseIntervals.getInterval(this.intervalIndex);\r\n if (!this.curr.length)\r\n return this.moveNext();\r\n this.posInInterval = 0;\r\n this.index = this.curr.start;\r\n this.initObject();\r\n return true;\r\n }\r\n return false;\r\n };\r\n SparseIntervalsIterator.prototype.movePrev = function () {\r\n if (this.curr && this.posInInterval - 1 >= this.curr.start) {\r\n this.posInInterval--;\r\n this.index--;\r\n this.initObject();\r\n return true;\r\n }\r\n if (!this.isStarted)\r\n this.intervalIndex = this.sparseIntervals.numIntervals;\r\n if (this.intervalIndex - 1 >= 0) {\r\n this.intervalIndex--;\r\n this.curr = this.sparseIntervals.getInterval(this.intervalIndex);\r\n this.posInInterval = Math.max(this.curr.length - 1, this.curr.start);\r\n this.index = this.curr.start;\r\n this.initObject();\r\n return true;\r\n }\r\n return false;\r\n };\r\n SparseIntervalsIterator.prototype.initObject = function () { };\r\n return SparseIntervalsIterator;\r\n}());\r\nexports.SparseIntervalsIterator = SparseIntervalsIterator;\r\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FilterPrimitive = void 0;\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar Primitive_1 = __webpack_require__(24);\r\nvar FilterPrimitive = /** @class */ (function (_super) {\r\n __extends(FilterPrimitive, _super);\r\n function FilterPrimitive(id, x, y, width, height) {\r\n var _this = _super.call(this) || this;\r\n _this.id = id;\r\n _this.x = x;\r\n _this.y = y;\r\n _this.width = width;\r\n _this.height = height;\r\n return _this;\r\n }\r\n FilterPrimitive.prototype.createMainElement = function () {\r\n var element = document.createElementNS(RenderHelper_1.svgNS, \"filter\");\r\n element.setAttribute(\"id\", this.id);\r\n return element;\r\n };\r\n FilterPrimitive.prototype.applyElementProperties = function (element, measurer) {\r\n if (this.id)\r\n element.setAttribute(\"id\", this.id);\r\n this.setUnitAttribute(element, \"x\", this.x);\r\n this.setUnitAttribute(element, \"y\", this.y);\r\n this.setUnitAttribute(element, \"width\", this.width);\r\n this.setUnitAttribute(element, \"height\", this.height);\r\n this.setPositionCorrectionAttribute(element);\r\n _super.prototype.applyElementProperties.call(this, element, measurer);\r\n };\r\n return FilterPrimitive;\r\n}(Primitive_1.SvgPrimitive));\r\nexports.FilterPrimitive = FilterPrimitive;\r\n\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PrimitiveObject = void 0;\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar PrimitiveObject = /** @class */ (function () {\r\n function PrimitiveObject(style) {\r\n this.style = style;\r\n }\r\n Object.defineProperty(PrimitiveObject.prototype, \"strokeWidthPx\", {\r\n get: function () {\r\n return this.style ? this.style.strokeWidthPx : 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PrimitiveObject.prototype, \"strokeOffset\", {\r\n get: function () {\r\n return this.style ? this.style.strokeOffset : 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n PrimitiveObject.prototype.getUnitVaue = function (value) {\r\n return typeof value === \"number\" ? unit_converter_1.UnitConverter.twipsToPixels(value).toString() : value;\r\n };\r\n PrimitiveObject.prototype.setUnitAttribute = function (element, key, value) {\r\n if (value === undefined || value === null)\r\n return;\r\n element.setAttribute(key, this.getUnitVaue(value));\r\n };\r\n PrimitiveObject.prototype.setPositionCorrectionAttribute = function (element) {\r\n var transformAttr = this.strokeWidthPx % 2 === 1 ? \"translate(\" + this.strokeOffset + \", \" + this.strokeOffset + \")\" : \"\";\r\n element.setAttribute(\"transform\", transformAttr);\r\n };\r\n return PrimitiveObject;\r\n}());\r\nexports.PrimitiveObject = PrimitiveObject;\r\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.isColorProperty = void 0;\r\nvar COLOR_PROPERTIES = { \"stroke\": true, \"fill\": true };\r\nfunction isColorProperty(propName) {\r\n return COLOR_PROPERTIES[propName];\r\n}\r\nexports.isColorProperty = isColorProperty;\r\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorPointsCalculatorBase = void 0;\r\nvar ConnectorPointsCalculatorBase = /** @class */ (function () {\r\n function ConnectorPointsCalculatorBase(connector) {\r\n this.connector = connector;\r\n }\r\n return ConnectorPointsCalculatorBase;\r\n}());\r\nexports.ConnectorPointsCalculatorBase = ConnectorPointsCalculatorBase;\r\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IntersectedShapeZone = exports.AStarMetrics = exports.IntersectedShapesMetrics = exports.TurnDirectionMetrics = exports.IntersectedShapeMetrics = exports.RightAngleTurnDirection = void 0;\r\nvar point_1 = __webpack_require__(1);\r\nvar metrics_1 = __webpack_require__(83);\r\nvar RightAngleTurnDirection;\r\n(function (RightAngleTurnDirection) {\r\n RightAngleTurnDirection[RightAngleTurnDirection[\"Straight\"] = 0] = \"Straight\";\r\n RightAngleTurnDirection[RightAngleTurnDirection[\"Left\"] = 1] = \"Left\";\r\n RightAngleTurnDirection[RightAngleTurnDirection[\"Right\"] = 2] = \"Right\";\r\n RightAngleTurnDirection[RightAngleTurnDirection[\"Backwards\"] = 3] = \"Backwards\";\r\n})(RightAngleTurnDirection = exports.RightAngleTurnDirection || (exports.RightAngleTurnDirection = {}));\r\nvar IntersectedShapeMetrics = /** @class */ (function () {\r\n function IntersectedShapeMetrics(description, shapeMargin) {\r\n this.description = description;\r\n this.shapeMargin = shapeMargin;\r\n }\r\n IntersectedShapeMetrics.prototype.penalty = function (oldValue, distance, position, item) {\r\n var rectangle = item.rectangle;\r\n if (rectangle.containsPoint(position))\r\n return oldValue + this.description.shape * distance;\r\n var relativePenalty = this.createRelativeMarginPenalty(position, rectangle, this.shapeMargin);\r\n if (relativePenalty > 0)\r\n return oldValue + this.description.margin * relativePenalty * distance;\r\n return oldValue;\r\n };\r\n IntersectedShapeMetrics.prototype.createRelativeMarginPenalty = function (point, rectangle, margin) {\r\n var isTopPosition = this.isTopPosition(point, rectangle, margin);\r\n var isLeftPosition = this.isLeftPosition(point, rectangle, margin);\r\n var isBottomPosition = this.isBottomPosition(point, rectangle, margin);\r\n var isRightPosition = this.isRightPosition(point, rectangle, margin);\r\n if (isTopPosition) {\r\n if (isLeftPosition) {\r\n var extendedRectangle = rectangle.clone().inflate(margin);\r\n var extendedTopLeft = extendedRectangle.createPosition();\r\n var rectangleTopLeft = rectangle.createPosition();\r\n var topLeftDistance = metrics_1.Metrics.euclideanDistance(rectangleTopLeft, extendedTopLeft);\r\n var currentDistance = metrics_1.Metrics.euclideanDistance(rectangleTopLeft, point);\r\n return 1 - currentDistance / topLeftDistance;\r\n }\r\n if (isRightPosition) {\r\n var extendedRectangle = rectangle.clone().inflate(margin);\r\n var extendedTopRight = new point_1.Point(extendedRectangle.right, extendedRectangle.y);\r\n var rectangleTopRight = new point_1.Point(rectangle.right, rectangle.y);\r\n var topRightDistance = metrics_1.Metrics.euclideanDistance(rectangleTopRight, extendedTopRight);\r\n var currentDistance = metrics_1.Metrics.euclideanDistance(rectangleTopRight, point);\r\n return 1 - currentDistance / topRightDistance;\r\n }\r\n return 1 - (rectangle.y - point.y) / margin;\r\n }\r\n if (isBottomPosition) {\r\n if (isLeftPosition) {\r\n var extendedRectangle = rectangle.clone().inflate(margin);\r\n var extendedBottomLeft = new point_1.Point(extendedRectangle.x, extendedRectangle.bottom);\r\n var rectangleBottomLeft = new point_1.Point(rectangle.x, rectangle.bottom);\r\n var bottomLeftDistance = metrics_1.Metrics.euclideanDistance(rectangleBottomLeft, extendedBottomLeft);\r\n var currentDistance = metrics_1.Metrics.euclideanDistance(rectangleBottomLeft, point);\r\n return 1 - currentDistance / bottomLeftDistance;\r\n }\r\n if (isRightPosition) {\r\n var extendedRectangle = rectangle.clone().inflate(margin);\r\n var extendedBottomRight = new point_1.Point(extendedRectangle.right, extendedRectangle.bottom);\r\n var rectangleBottomRight = new point_1.Point(rectangle.right, rectangle.bottom);\r\n var bottomRightDistance = metrics_1.Metrics.euclideanDistance(rectangleBottomRight, extendedBottomRight);\r\n var currentDistance = metrics_1.Metrics.euclideanDistance(rectangleBottomRight, point);\r\n return 1 - currentDistance / bottomRightDistance;\r\n }\r\n return 1 - (point.y - rectangle.bottom) / margin;\r\n }\r\n if (isLeftPosition)\r\n return 1 - (rectangle.x - point.x) / margin;\r\n if (isRightPosition)\r\n return 1 - (point.x - rectangle.right) / margin;\r\n return 0;\r\n };\r\n IntersectedShapeMetrics.prototype.isTopPosition = function (point, rectangle, margin) {\r\n return point.x > rectangle.x - margin && point.x < rectangle.right + margin &&\r\n point.y > rectangle.y - margin && point.y < rectangle.y;\r\n };\r\n IntersectedShapeMetrics.prototype.isBottomPosition = function (point, rectangle, margin) {\r\n return point.x > rectangle.x - margin && point.x < rectangle.right + margin &&\r\n point.y > rectangle.bottom && point.y < rectangle.bottom + margin;\r\n };\r\n IntersectedShapeMetrics.prototype.isLeftPosition = function (point, rectangle, margin) {\r\n return point.x > rectangle.x - margin && point.x < rectangle.x &&\r\n point.y > rectangle.y - margin && point.y < rectangle.bottom + margin;\r\n };\r\n IntersectedShapeMetrics.prototype.isRightPosition = function (point, rectangle, margin) {\r\n return point.x > rectangle.right && point.x < rectangle.right + margin &&\r\n point.y > rectangle.y - margin && point.y < rectangle.bottom + margin;\r\n };\r\n return IntersectedShapeMetrics;\r\n}());\r\nexports.IntersectedShapeMetrics = IntersectedShapeMetrics;\r\nvar TurnDirectionMetrics = /** @class */ (function () {\r\n function TurnDirectionMetrics(description) {\r\n this.description = description;\r\n }\r\n TurnDirectionMetrics.prototype.penalty = function (oldValue, turnDirection) {\r\n switch (turnDirection) {\r\n case RightAngleTurnDirection.Backwards: return oldValue * this.description.turnBack;\r\n case RightAngleTurnDirection.Left: return oldValue * this.description.turnLeft;\r\n case RightAngleTurnDirection.Right: return oldValue * this.description.turnRight;\r\n }\r\n return oldValue;\r\n };\r\n return TurnDirectionMetrics;\r\n}());\r\nexports.TurnDirectionMetrics = TurnDirectionMetrics;\r\nvar IntersectedShapesMetrics = /** @class */ (function () {\r\n function IntersectedShapesMetrics(shapeMetrics) {\r\n this.shapeMetrics = shapeMetrics;\r\n }\r\n IntersectedShapesMetrics.prototype.penalty = function (oldValue, distance, position, intersectedItems) {\r\n var _this = this;\r\n if (!intersectedItems || !intersectedItems.length)\r\n return oldValue;\r\n var result = oldValue;\r\n intersectedItems.forEach(function (item) { return result = _this.shapeMetrics.penalty(result, distance, position, item); });\r\n return result;\r\n };\r\n return IntersectedShapesMetrics;\r\n}());\r\nexports.IntersectedShapesMetrics = IntersectedShapesMetrics;\r\nvar AStarMetrics = /** @class */ (function () {\r\n function AStarMetrics(turnDirectionMetrics, shapesMetrics) {\r\n this.turnDirectionMetrics = turnDirectionMetrics;\r\n this.shapesMetrics = shapesMetrics;\r\n }\r\n AStarMetrics.prototype.distance = function (point1, point2) {\r\n return metrics_1.Metrics.manhattanDistance(point1, point2);\r\n };\r\n AStarMetrics.prototype.penalty = function (distance, position, turnDirection, intersectedItems) {\r\n var result = distance;\r\n result = this.shapesMetrics.penalty(result, distance, position, intersectedItems);\r\n result = this.turnDirectionMetrics.penalty(result, turnDirection);\r\n return result;\r\n };\r\n return AStarMetrics;\r\n}());\r\nexports.AStarMetrics = AStarMetrics;\r\nvar IntersectedShapeZone;\r\n(function (IntersectedShapeZone) {\r\n IntersectedShapeZone[IntersectedShapeZone[\"None\"] = 0] = \"None\";\r\n IntersectedShapeZone[IntersectedShapeZone[\"Shape\"] = 1] = \"Shape\";\r\n IntersectedShapeZone[IntersectedShapeZone[\"Margin\"] = 2] = \"Margin\";\r\n})(IntersectedShapeZone = exports.IntersectedShapeZone || (exports.IntersectedShapeZone = {}));\r\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeShapeParametersHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ChangeShapeParametersHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangeShapeParametersHistoryItem, _super);\r\n function ChangeShapeParametersHistoryItem(shapeKey, parameters) {\r\n var _this = _super.call(this) || this;\r\n _this.shapeKey = shapeKey;\r\n _this.parameters = parameters;\r\n return _this;\r\n }\r\n ChangeShapeParametersHistoryItem.prototype.redo = function (manipulator) {\r\n var shape = manipulator.model.findShape(this.shapeKey);\r\n this.oldParameters = shape.parameters.clone();\r\n manipulator.changeShapeParameters(shape, this.parameters);\r\n };\r\n ChangeShapeParametersHistoryItem.prototype.undo = function (manipulator) {\r\n var shape = manipulator.model.findShape(this.shapeKey);\r\n manipulator.changeShapeParameters(shape, this.oldParameters);\r\n };\r\n return ChangeShapeParametersHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ChangeShapeParametersHistoryItem = ChangeShapeParametersHistoryItem;\r\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DeleteConnectorHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar DeleteConnectorHistoryItem = /** @class */ (function (_super) {\r\n __extends(DeleteConnectorHistoryItem, _super);\r\n function DeleteConnectorHistoryItem(connectorKey) {\r\n var _this = _super.call(this) || this;\r\n _this.connectorKey = connectorKey;\r\n return _this;\r\n }\r\n DeleteConnectorHistoryItem.prototype.redo = function (manipulator) {\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n this.connector = connector.clone();\r\n manipulator.deleteConnector(connector);\r\n };\r\n DeleteConnectorHistoryItem.prototype.undo = function (manipulator) {\r\n manipulator.addConnector(this.connector, this.connector.key);\r\n };\r\n return DeleteConnectorHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.DeleteConnectorHistoryItem = DeleteConnectorHistoryItem;\r\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DeleteShapeHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar DeleteShapeHistoryItem = /** @class */ (function (_super) {\r\n __extends(DeleteShapeHistoryItem, _super);\r\n function DeleteShapeHistoryItem(shapeKey, allowed) {\r\n if (allowed === void 0) { allowed = true; }\r\n var _this = _super.call(this) || this;\r\n _this.shapeKey = shapeKey;\r\n _this.allowed = allowed;\r\n return _this;\r\n }\r\n DeleteShapeHistoryItem.prototype.redo = function (manipulator) {\r\n var shape = manipulator.model.findShape(this.shapeKey);\r\n this.shape = shape.clone();\r\n manipulator.deleteShape(shape, this.allowed);\r\n };\r\n DeleteShapeHistoryItem.prototype.undo = function (manipulator) {\r\n manipulator.addShape(this.shape, this.shape.key);\r\n };\r\n return DeleteShapeHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.DeleteShapeHistoryItem = DeleteShapeHistoryItem;\r\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResizeShapeHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ResizeShapeHistoryItem = /** @class */ (function (_super) {\r\n __extends(ResizeShapeHistoryItem, _super);\r\n function ResizeShapeHistoryItem(shapeKey, position, size) {\r\n var _this = _super.call(this) || this;\r\n _this.shapeKey = shapeKey;\r\n _this.position = position;\r\n _this.size = size;\r\n return _this;\r\n }\r\n ResizeShapeHistoryItem.prototype.redo = function (manipulator) {\r\n var shape = manipulator.model.findShape(this.shapeKey);\r\n this.oldPosition = shape.position.clone();\r\n this.oldSize = shape.size.clone();\r\n manipulator.resizeShape(shape, this.position, this.size);\r\n };\r\n ResizeShapeHistoryItem.prototype.undo = function (manipulator) {\r\n var shape = manipulator.model.findShape(this.shapeKey);\r\n manipulator.resizeShape(shape, this.oldPosition, this.oldSize);\r\n };\r\n return ResizeShapeHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ResizeShapeHistoryItem = ResizeShapeHistoryItem;\r\n\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeLockedHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ChangeLockedHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangeLockedHistoryItem, _super);\r\n function ChangeLockedHistoryItem(item, locked) {\r\n var _this = _super.call(this) || this;\r\n _this.itemKey = item.key;\r\n _this.locked = locked;\r\n return _this;\r\n }\r\n ChangeLockedHistoryItem.prototype.redo = function (manipulator) {\r\n var item = manipulator.model.findItem(this.itemKey);\r\n this.oldLocked = item.locked;\r\n manipulator.changeLocked(item, this.locked);\r\n };\r\n ChangeLockedHistoryItem.prototype.undo = function (manipulator) {\r\n var item = manipulator.model.findItem(this.itemKey);\r\n manipulator.changeLocked(item, this.oldLocked);\r\n };\r\n return ChangeLockedHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ChangeLockedHistoryItem = ChangeLockedHistoryItem;\r\n\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeStyleHistoryItemBase = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ChangeStyleHistoryItemBase = /** @class */ (function (_super) {\r\n __extends(ChangeStyleHistoryItemBase, _super);\r\n function ChangeStyleHistoryItemBase(itemKey, styleProperty, styleValue) {\r\n var _this = _super.call(this) || this;\r\n _this.itemKey = itemKey;\r\n _this.styleProperty = styleProperty;\r\n _this.styleValue = styleValue;\r\n return _this;\r\n }\r\n ChangeStyleHistoryItemBase.prototype.redo = function (manipulator) {\r\n var item = manipulator.model.findItem(this.itemKey);\r\n this.oldStyleValue = item.style[this.styleProperty];\r\n manipulator.changeStyle(item, this.styleProperty, this.styleValue);\r\n };\r\n ChangeStyleHistoryItemBase.prototype.undo = function (manipulator) {\r\n var item = manipulator.model.findItem(this.itemKey);\r\n manipulator.changeStyle(item, this.styleProperty, this.oldStyleValue);\r\n };\r\n return ChangeStyleHistoryItemBase;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ChangeStyleHistoryItemBase = ChangeStyleHistoryItemBase;\r\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Importer = void 0;\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar size_1 = __webpack_require__(2);\r\nvar point_1 = __webpack_require__(1);\r\nvar ShapeDescriptionManager_1 = __webpack_require__(91);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar ImageInfo_1 = __webpack_require__(49);\r\nvar ImporterBase_1 = __webpack_require__(134);\r\nvar ImportUtils_1 = __webpack_require__(95);\r\nvar color_1 = __webpack_require__(22);\r\nvar Importer = /** @class */ (function (_super) {\r\n __extends(Importer, _super);\r\n function Importer(shapeDescriptionManager, json) {\r\n var _this = _super.call(this, shapeDescriptionManager) || this;\r\n _this.obj = ImportUtils_1.ImportUtils.parseJSON(json);\r\n return _this;\r\n }\r\n Importer.prototype.getObject = function () {\r\n return this.obj;\r\n };\r\n Importer.prototype.getPageObject = function (obj) {\r\n return obj[\"page\"];\r\n };\r\n Importer.prototype.getShapeObjects = function (obj) {\r\n return obj[\"shapes\"];\r\n };\r\n Importer.prototype.getConnectorObjects = function (obj) {\r\n return obj[\"connectors\"];\r\n };\r\n Importer.prototype.importPageSettings = function (model, pageObj) {\r\n if (!pageObj)\r\n return;\r\n this.assert(pageObj[\"width\"], \"number\");\r\n this.assert(pageObj[\"height\"], \"number\");\r\n if (typeof pageObj[\"width\"] === \"number\")\r\n model.size.width = pageObj[\"width\"];\r\n if (typeof pageObj[\"height\"] === \"number\")\r\n model.size.height = pageObj[\"height\"];\r\n if (typeof pageObj[\"pageColor\"] === \"number\")\r\n model.pageColor = pageObj[\"pageColor\"];\r\n else if (typeof pageObj[\"pageColor\"] === \"string\")\r\n model.pageColor = color_1.ColorUtils.fromString(pageObj[\"pageColor\"]);\r\n if (typeof pageObj[\"pageWidth\"] === \"number\")\r\n model.pageSize.width = pageObj[\"pageWidth\"];\r\n if (typeof pageObj[\"pageHeight\"] === \"number\")\r\n model.pageSize.height = pageObj[\"pageHeight\"];\r\n if (typeof pageObj[\"pageLandscape\"] === \"boolean\")\r\n model.pageLandscape = pageObj[\"pageLandscape\"];\r\n };\r\n Importer.prototype.importShape = function (shapeObj) {\r\n this.assert(shapeObj[\"key\"], \"string\");\r\n this.assert(shapeObj[\"x\"], \"number\");\r\n this.assert(shapeObj[\"y\"], \"number\");\r\n this.assert(shapeObj[\"type\"], \"string\");\r\n var shapeType = shapeObj[\"type\"];\r\n var description = this.shapeDescriptionManager.get(shapeType);\r\n var position = new point_1.Point(shapeObj[\"x\"], shapeObj[\"y\"]);\r\n var shape = new Shape_1.Shape(description || ShapeDescriptionManager_1.ShapeDescriptionManager.default, position);\r\n shape.key = shapeObj[\"key\"];\r\n if (typeof shapeObj[\"dataKey\"] === \"string\" || typeof shapeObj[\"dataKey\"] === \"number\")\r\n shape.dataKey = shapeObj[\"dataKey\"];\r\n if (typeof shapeObj[\"customData\"] === \"object\")\r\n shape.customData = Utils_1.ObjectUtils.cloneObject(shapeObj[\"customData\"]);\r\n if (typeof shapeObj[\"locked\"] === \"boolean\")\r\n shape.locked = shapeObj[\"locked\"];\r\n if (typeof shapeObj[\"width\"] === \"number\")\r\n shape.size.width = shapeObj[\"width\"];\r\n if (typeof shapeObj[\"height\"] === \"number\")\r\n shape.size.height = shapeObj[\"height\"];\r\n if (typeof shapeObj[\"text\"] === \"string\")\r\n shape.text = shapeObj[\"text\"];\r\n if (typeof shapeObj[\"imageUrl\"] === \"string\")\r\n shape.image = new ImageInfo_1.ImageInfo(shapeObj[\"imageUrl\"]);\r\n if (shapeObj[\"parameters\"]) {\r\n shape.parameters.fromObject(shapeObj[\"parameters\"]);\r\n shape.description.normalizeParameters(shape, shape.parameters);\r\n }\r\n if (shapeObj[\"style\"])\r\n shape.style.fromObject(shapeObj[\"style\"]);\r\n if (shapeObj[\"styleText\"])\r\n shape.styleText.fromObject(shapeObj[\"styleText\"]);\r\n if (typeof shapeObj[\"zIndex\"] === \"number\")\r\n shape.zIndex = shapeObj[\"zIndex\"];\r\n if (Array.isArray(shapeObj[\"childKeys\"]))\r\n shape[\"childKeys\"] = shapeObj[\"childKeys\"].slice();\r\n if (typeof shapeObj[\"expanded\"] === \"boolean\")\r\n shape.expanded = shapeObj[\"expanded\"];\r\n if (typeof shapeObj[\"expandedWidth\"] === \"number\" && typeof shapeObj[\"expandedHeight\"] === \"number\")\r\n shape.expandedSize = new size_1.Size(shapeObj[\"expandedWidth\"], shapeObj[\"expandedHeight\"]);\r\n return shape;\r\n };\r\n Importer.prototype.importShapeChildren = function (shapeObj, shape) {\r\n return [];\r\n };\r\n Importer.prototype.importConnector = function (connectorObj) {\r\n var _this = this;\r\n this.assert(connectorObj[\"key\"], \"string\");\r\n if (!Array.isArray(connectorObj[\"points\"]))\r\n throw Error(\"Invalid Format\");\r\n var points = connectorObj[\"points\"].map(function (pt) {\r\n _this.assert(pt[\"x\"], \"number\");\r\n _this.assert(pt[\"y\"], \"number\");\r\n return new point_1.Point(pt[\"x\"], pt[\"y\"]);\r\n });\r\n var connector = new Connector_1.Connector(points);\r\n connector.key = connectorObj[\"key\"];\r\n if (typeof connectorObj[\"dataKey\"] === \"string\" || typeof connectorObj[\"dataKey\"] === \"number\")\r\n connector.dataKey = connectorObj[\"dataKey\"];\r\n if (typeof connectorObj[\"customData\"] === \"object\")\r\n connector.customData = Utils_1.ObjectUtils.cloneObject(connectorObj[\"customData\"]);\r\n if (typeof connectorObj[\"locked\"] === \"boolean\")\r\n connector.locked = connectorObj[\"locked\"];\r\n connector.endConnectionPointIndex = typeof connectorObj[\"endConnectionPointIndex\"] === \"number\" ? connectorObj[\"endConnectionPointIndex\"] : -1;\r\n connector.beginConnectionPointIndex = typeof connectorObj[\"beginConnectionPointIndex\"] === \"number\" ? connectorObj[\"beginConnectionPointIndex\"] : -1;\r\n if (connectorObj[\"endItemKey\"] !== undefined)\r\n this.assert(connectorObj[\"endItemKey\"], \"string\");\r\n if (connectorObj[\"beginItemKey\"] !== undefined)\r\n this.assert(connectorObj[\"beginItemKey\"], \"string\");\r\n connector[\"endItemKey\"] = connectorObj[\"endItemKey\"];\r\n connector[\"beginItemKey\"] = connectorObj[\"beginItemKey\"];\r\n if (connectorObj[\"texts\"])\r\n connector.texts.fromObject(connectorObj[\"texts\"]);\r\n if (connectorObj[\"properties\"])\r\n connector.properties.fromObject(connectorObj[\"properties\"]);\r\n if (connectorObj[\"style\"])\r\n connector.style.fromObject(connectorObj[\"style\"]);\r\n if (connectorObj[\"styleText\"])\r\n connector.styleText.fromObject(connectorObj[\"styleText\"]);\r\n if (typeof connectorObj[\"zIndex\"] === \"number\")\r\n connector.zIndex = connectorObj[\"zIndex\"];\r\n return connector;\r\n };\r\n return Importer;\r\n}(ImporterBase_1.ImporterBase));\r\nexports.Importer = Importer;\r\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DiamondShapeDescription = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar DiamondShapeDescription = /** @class */ (function (_super) {\r\n __extends(DiamondShapeDescription, _super);\r\n function DiamondShapeDescription(defaultSize, hasDefaultText) {\r\n if (defaultSize === void 0) { defaultSize = ShapeDescription_1.ShapeDefaultSize.clone(); }\r\n return _super.call(this, defaultSize, hasDefaultText) || this;\r\n }\r\n Object.defineProperty(DiamondShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Diamond; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DiamondShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DiamondShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom;\r\n var _a = rect.center, cx = _a.x, cy = _a.y;\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(cx, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, cy),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(cx, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, cy),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n DiamondShapeDescription.prototype.getTextRectangle = function (shape) {\r\n return shape.rectangle.clone().inflate(-shape.size.width / 4, -shape.size.height / 4);\r\n };\r\n DiamondShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n return textSize.clone().multiply(2, 2);\r\n };\r\n return DiamondShapeDescription;\r\n}(ShapeDescription_1.ShapeDescription));\r\nexports.DiamondShapeDescription = DiamondShapeDescription;\r\n\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TextShapeDescription = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar size_1 = __webpack_require__(2);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar ClipPathPrimitive_1 = __webpack_require__(53);\r\nvar RectaglePrimitive_1 = __webpack_require__(21);\r\nvar Utils_1 = __webpack_require__(18);\r\nvar TextShapeDescription = /** @class */ (function (_super) {\r\n __extends(TextShapeDescription, _super);\r\n function TextShapeDescription() {\r\n var _this = _super.call(this, new size_1.Size(ShapeDescription_1.ShapeDefaultDimension, ShapeDescription_1.ShapeDefaultDimension * 0.5), true) || this;\r\n _this.textClipPathId = Utils_1.RenderUtils.generateSvgElementId(\"clipRect\");\r\n return _this;\r\n }\r\n Object.defineProperty(TextShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Text; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TextShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TextShapeDescription.prototype.createShapePrimitives = function (shape, forToolbox) {\r\n if (forToolbox) {\r\n var _a = shape.rectangle, left = _a.x, top_1 = _a.y, width = _a.width, height = _a.height;\r\n return [\r\n new ClipPathPrimitive_1.ClipPathPrimitive(this.getTextClipPathId(forToolbox), [\r\n new RectaglePrimitive_1.RectanglePrimitive(left, top_1, width, height)\r\n ])\r\n ];\r\n }\r\n return [];\r\n };\r\n TextShapeDescription.prototype.getTextClipPathId = function (forToolbox) {\r\n return forToolbox ? this.textClipPathId : undefined;\r\n };\r\n TextShapeDescription.prototype.getSizeByTextRectangle = function (textSize) {\r\n return textSize;\r\n };\r\n TextShapeDescription.prototype.getSizeByText = function (textSize, shape) {\r\n return textSize.clone();\r\n };\r\n TextShapeDescription.prototype.getTextRectangle = function (shape) {\r\n return shape.rectangle;\r\n };\r\n return TextShapeDescription;\r\n}(ShapeDescription_1.ShapeDescription));\r\nexports.TextShapeDescription = TextShapeDescription;\r\n\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PentagonShapeDescription = void 0;\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PolygonShapeDescription_1 = __webpack_require__(94);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar PentagonShapeDescription = /** @class */ (function (_super) {\r\n __extends(PentagonShapeDescription, _super);\r\n function PentagonShapeDescription(hasDefaultText) {\r\n var _this = _super.call(this, hasDefaultText) || this;\r\n _this.defaultRatio = _this.defaultSize.height / _this.defaultSize.width;\r\n return _this;\r\n }\r\n Object.defineProperty(PentagonShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Pentagon; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PentagonShapeDescription.prototype, \"angleCount\", {\r\n get: function () { return 5; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n PentagonShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width, height = rect.height;\r\n var cx = rect.center.x;\r\n var ratio = height / width / this.defaultRatio;\r\n var angle = Math.PI - this.angle;\r\n var py = width / 2 * Math.tan(angle / 2) * ratio;\r\n var y = top + py;\r\n var px = (height - py) / Math.tan(angle) / ratio;\r\n var x1 = left + px;\r\n var x2 = right - px;\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(cx, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, y),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x2, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x1, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, y),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n PentagonShapeDescription.prototype.processConnectionPoint = function (shape, point) {\r\n var side = shape.getConnectionPointSide(point);\r\n if (side === DiagramItem_1.ConnectionPointSide.East || side === DiagramItem_1.ConnectionPointSide.West) {\r\n var rect = shape.rectangle;\r\n var top_1 = rect.y, width = rect.width, height = rect.height;\r\n var ratio = height / width / this.defaultRatio;\r\n var angle = Math.PI - this.angle;\r\n var py = width / 2 * Math.tan(angle / 2) * ratio;\r\n var y = top_1 + py;\r\n if (side === DiagramItem_1.ConnectionPointSide.East)\r\n point.y = y;\r\n else if (side === DiagramItem_1.ConnectionPointSide.West)\r\n point.y = y;\r\n }\r\n };\r\n PentagonShapeDescription.prototype.calculateHeight = function (width) {\r\n var angle = Math.PI - this.angle;\r\n var h1 = width / 2 * Math.tan(angle / 2);\r\n var side = width / 2 / Math.cos(angle / 2);\r\n var h2 = side * Math.sin(angle);\r\n return h1 + h2;\r\n };\r\n PentagonShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var textSize = Utils_1.GeometryUtils.getMaxRectangleEnscribedInEllipse(shape.size);\r\n return rectangle_1.Rectangle.fromGeometry(shape.position.clone().offset((shape.size.width - textSize.width) / 2, (shape.size.height - textSize.height) / 2), textSize);\r\n };\r\n PentagonShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n return Utils_1.GeometryUtils.getEllipseByEnscribedRectangle(textSize);\r\n };\r\n return PentagonShapeDescription;\r\n}(PolygonShapeDescription_1.PolygonShapeDescription));\r\nexports.PentagonShapeDescription = PentagonShapeDescription;\r\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HexagonShapeDescription = void 0;\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PolygonShapeDescription_1 = __webpack_require__(94);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar HexagonShapeDescription = /** @class */ (function (_super) {\r\n __extends(HexagonShapeDescription, _super);\r\n function HexagonShapeDescription() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(HexagonShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Hexagon; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(HexagonShapeDescription.prototype, \"angleCount\", {\r\n get: function () { return 6; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n HexagonShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width;\r\n var cy = rect.center.y;\r\n var angle = Math.PI - this.angle;\r\n var sideX = width / (1 + 2 * Math.cos(angle));\r\n var x1 = left + (width - sideX) / 2;\r\n var x2 = x1 + sideX;\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(x1, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x2, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, cy),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x2, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x1, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, cy),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n HexagonShapeDescription.prototype.calculateHeight = function (width) {\r\n var angle = Math.PI - this.angle;\r\n var sideX = width / (1 + 2 * Math.cos(angle));\r\n return 2 * sideX * Math.sin(angle);\r\n };\r\n HexagonShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var textSize = Utils_1.GeometryUtils.getMaxRectangleEnscribedInEllipse(shape.size);\r\n return rectangle_1.Rectangle.fromGeometry(shape.position.clone().offset((shape.size.width - textSize.width) / 2, (shape.size.height - textSize.height) / 2), textSize);\r\n };\r\n HexagonShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n return Utils_1.GeometryUtils.getEllipseByEnscribedRectangle(textSize);\r\n };\r\n return HexagonShapeDescription;\r\n}(PolygonShapeDescription_1.PolygonShapeDescription));\r\nexports.HexagonShapeDescription = HexagonShapeDescription;\r\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TriangleShapeDescription = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar ConnectionPoint_1 = __webpack_require__(44);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar size_1 = __webpack_require__(2);\r\nvar TriangleShapeDescription = /** @class */ (function (_super) {\r\n __extends(TriangleShapeDescription, _super);\r\n function TriangleShapeDescription(hasDefaultText) {\r\n var _this = _super.call(this, undefined, hasDefaultText) || this;\r\n _this.defaultSize.height = _this.calculateHeight(ShapeDescription_1.ShapeDefaultDimension);\r\n return _this;\r\n }\r\n Object.defineProperty(TriangleShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Triangle; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TriangleShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TriangleShapeDescription.prototype.createConnectionPoints = function () {\r\n return [\r\n new ConnectionPoint_1.ConnectionPoint(0.5, 0, DiagramItem_1.ConnectionPointSide.North),\r\n new ConnectionPoint_1.ConnectionPoint(0.75, 0.5, DiagramItem_1.ConnectionPointSide.East),\r\n new ConnectionPoint_1.ConnectionPoint(0.5, 1, DiagramItem_1.ConnectionPointSide.South),\r\n new ConnectionPoint_1.ConnectionPoint(0.25, 0.5, DiagramItem_1.ConnectionPointSide.West)\r\n ];\r\n };\r\n TriangleShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom;\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(rect.center.x, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, bottom),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n TriangleShapeDescription.prototype.calculateHeight = function (width) {\r\n return Math.sqrt(Math.pow(width, 2) - Math.pow(width / 2, 2));\r\n };\r\n TriangleShapeDescription.prototype.getTextRectangle = function (shape) {\r\n return new rectangle_1.Rectangle(shape.position.x + shape.size.width / 4, shape.position.y + shape.size.height / 2, shape.size.width / 2, shape.size.height / 2 - ShapeDescription_1.ShapeTextPadding)\r\n .nonNegativeSize();\r\n };\r\n TriangleShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n return new size_1.Size(textSize.width * 2, textSize.height * 2 + ShapeDescription_1.ShapeTextPadding);\r\n };\r\n return TriangleShapeDescription;\r\n}(ShapeDescription_1.ShapeDescription));\r\nexports.TriangleShapeDescription = TriangleShapeDescription;\r\n\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DocumentShapeDescription = void 0;\r\nvar RectangleShapeDescription_1 = __webpack_require__(19);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar DocumentShapeDescription = /** @class */ (function (_super) {\r\n __extends(DocumentShapeDescription, _super);\r\n function DocumentShapeDescription() {\r\n return _super.call(this, undefined, true) || this;\r\n }\r\n Object.defineProperty(DocumentShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Document; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DocumentShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DocumentShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n return this.createDocumentPrimitives(shape.rectangle, shape.style);\r\n };\r\n DocumentShapeDescription.prototype.createDocumentPrimitives = function (rect, style) {\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width, height = rect.height;\r\n var cx = rect.center.x;\r\n var dy = height * DocumentShapeDescription.curveOffsetRatio;\r\n var primitives = [];\r\n return primitives.concat([\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(left, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, bottom),\r\n new PathPrimitive_1.PathPrimitiveQuadraticCurveToCommand(right - width * 0.25, bottom - 2 * dy, cx, bottom - dy),\r\n new PathPrimitive_1.PathPrimitiveQuadraticCurveToCommand(left + width * 0.25, bottom + dy, left, bottom - dy),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], style)\r\n ]);\r\n };\r\n DocumentShapeDescription.prototype.processConnectionPoint = function (shape, point) {\r\n var side = shape.getConnectionPointSide(point);\r\n if (side === DiagramItem_1.ConnectionPointSide.South)\r\n point.y -= shape.size.height * DocumentShapeDescription.curveOffsetRatio;\r\n };\r\n DocumentShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var rect = shape.rectangle;\r\n return rect.clone().resize(0, -rect.height * DocumentShapeDescription.curveOffsetRatio);\r\n };\r\n DocumentShapeDescription.curveOffsetRatio = 0.1;\r\n return DocumentShapeDescription;\r\n}(RectangleShapeDescription_1.RectangleShapeDescription));\r\nexports.DocumentShapeDescription = DocumentShapeDescription;\r\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CustomShapeDescription = void 0;\r\nvar ImagePrimitive_1 = __webpack_require__(128);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar size_1 = __webpack_require__(2);\r\nvar point_1 = __webpack_require__(1);\r\nvar ConnectionPoint_1 = __webpack_require__(44);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ShapeWithImageDescription_1 = __webpack_require__(129);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar ImageInfo_1 = __webpack_require__(49);\r\nvar ImageCache_1 = __webpack_require__(45);\r\nvar ImageLoader_1 = __webpack_require__(131);\r\nvar SvgElementPrimitive_1 = __webpack_require__(232);\r\nvar CustomShapeDescription = /** @class */ (function (_super) {\r\n __extends(CustomShapeDescription, _super);\r\n function CustomShapeDescription(properties, baseDescription) {\r\n var _this = _super.call(this, new size_1.Size(properties.defaultWidth || baseDescription && baseDescription.defaultSize.width || ShapeDescription_1.ShapeDefaultDimension, properties.defaultHeight || baseDescription && baseDescription.defaultSize.height || ShapeDescription_1.ShapeDefaultDimension)) || this;\r\n _this.properties = properties;\r\n _this.baseDescription = baseDescription;\r\n _this.imageLoader = new ImageLoader_1.ImageLoader(_this.updateSvgImage.bind(_this));\r\n _this.defaultText = properties.defaultText !== undefined ? properties.defaultText : baseDescription && baseDescription.getDefaultText();\r\n _this.defaultImageUrl = properties.defaultImageUrl || baseDescription && baseDescription.getDefaultImageUrl();\r\n _this.title = properties.title || baseDescription && baseDescription.getTitle() || _this.defaultText || \"\";\r\n _this.connectionPoints = _this.createConnectionPoints();\r\n if (properties.svgUrl) {\r\n _this.svgImage = new ImageInfo_1.ImageInfo(properties.svgUrl);\r\n var cachedImage = ImageCache_1.ImageCache.instance.createUnloadedInfoByShapeImageInfo(_this.svgImage);\r\n _this.imageLoader.load(cachedImage);\r\n }\r\n if (properties.svgToolboxUrl) {\r\n _this.svgToolboxImage = new ImageInfo_1.ImageInfo(properties.svgToolboxUrl);\r\n var cachedImage = ImageCache_1.ImageCache.instance.createUnloadedInfoByShapeImageInfo(_this.svgToolboxImage);\r\n _this.imageLoader.load(cachedImage);\r\n }\r\n return _this;\r\n }\r\n Object.defineProperty(CustomShapeDescription.prototype, \"key\", {\r\n get: function () { return this.properties.type; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CustomShapeDescription.prototype, \"allowEditText\", {\r\n get: function () { return this.properties.allowEditText !== false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CustomShapeDescription.prototype, \"allowEditImage\", {\r\n get: function () { return this.baseDescription ? this.baseDescription.allowEditImage : this.properties.allowEditImage === true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CustomShapeDescription.prototype, \"enableChildren\", {\r\n get: function () { return this.baseDescription && this.baseDescription.enableChildren; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CustomShapeDescription.prototype, \"hasTemplate\", {\r\n get: function () { return !!this.properties.createTemplate; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CustomShapeDescription.prototype, \"minWidth\", {\r\n get: function () { return this.properties.minWidth || this.baseDescription && this.baseDescription.minWidth; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CustomShapeDescription.prototype, \"minHeight\", {\r\n get: function () { return this.properties.minHeight || this.baseDescription && this.baseDescription.minHeight; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CustomShapeDescription.prototype, \"maxWidth\", {\r\n get: function () { return this.properties.maxWidth || this.baseDescription && this.baseDescription.maxWidth; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CustomShapeDescription.prototype, \"maxHeight\", {\r\n get: function () { return this.properties.maxHeight || this.baseDescription && this.baseDescription.maxHeight; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CustomShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return this.properties.keepRatioOnAutoSize; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CustomShapeDescription.prototype, \"toolboxSize\", {\r\n get: function () {\r\n if (this.properties.toolboxWidthToHeightRatio)\r\n return new size_1.Size(this.defaultSize.width, this.defaultSize.width / this.properties.toolboxWidthToHeightRatio);\r\n return this.defaultSize;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CustomShapeDescription.prototype.getTextAngle = function () {\r\n return (this.baseDescription && this.baseDescription.getTextAngle()) || _super.prototype.getTextAngle.call(this);\r\n };\r\n CustomShapeDescription.prototype.getTitle = function () {\r\n return this.title !== undefined ? this.title : _super.prototype.getTitle.call(this);\r\n };\r\n CustomShapeDescription.prototype.getDefaultText = function () {\r\n return this.defaultText !== undefined ? this.defaultText : _super.prototype.getDefaultText.call(this);\r\n };\r\n CustomShapeDescription.prototype.getDefaultImageUrl = function () {\r\n return this.defaultImageUrl !== undefined ? this.defaultImageUrl : _super.prototype.getDefaultImageUrl.call(this);\r\n };\r\n CustomShapeDescription.prototype.allowResizeHorizontally = function (shape) {\r\n if (this.properties.allowResize === false)\r\n return false;\r\n if (this.baseDescription)\r\n return this.baseDescription.allowResizeHorizontally(shape);\r\n return _super.prototype.allowResizeHorizontally.call(this, shape);\r\n };\r\n CustomShapeDescription.prototype.allowResizeVertically = function (shape) {\r\n if (this.properties.allowResize === false)\r\n return false;\r\n if (this.baseDescription)\r\n return this.baseDescription.allowResizeVertically(shape);\r\n return _super.prototype.allowResizeVertically.call(this, shape);\r\n };\r\n CustomShapeDescription.prototype.createConnectionPoints = function () {\r\n if (this.properties && this.properties.connectionPoints && this.properties.connectionPoints.length)\r\n return this.properties.connectionPoints.map(function (ptObj) {\r\n if (ptObj && typeof ptObj[\"x\"] === \"number\" && typeof ptObj[\"y\"] === \"number\") {\r\n var side = typeof ptObj[\"side\"] === \"number\" ? ptObj[\"side\"] : DiagramItem_1.ConnectionPointSide.Undefined;\r\n return new ConnectionPoint_1.ConnectionPoint(ptObj[\"x\"], ptObj[\"y\"], side);\r\n }\r\n }).filter(function (pt) { return pt; });\r\n return _super.prototype.createConnectionPoints.call(this);\r\n };\r\n CustomShapeDescription.prototype.createImagePrimitives = function (shape, forToolbox) {\r\n if (this.baseDescription)\r\n return this.baseDescription.createImagePrimitives(shape, forToolbox);\r\n return _super.prototype.createImagePrimitives.call(this, shape, forToolbox);\r\n };\r\n CustomShapeDescription.prototype.createShapePrimitives = function (shape, forToolbox) {\r\n var primitives = [];\r\n var _a = shape.rectangle, left = _a.x, top = _a.y, width = _a.width, height = _a.height;\r\n if (this.baseDescription)\r\n primitives = this.baseDescription.createShapePrimitives(shape, forToolbox);\r\n else {\r\n var svgImage = forToolbox && this.svgToolboxImage ? this.svgToolboxImage : this.svgImage;\r\n if (svgImage) {\r\n var svgLeft = left + (this.properties.svgLeft && !forToolbox ? this.properties.svgLeft * width : 0);\r\n var svgTop = top + (this.properties.svgTop && !forToolbox ? this.properties.svgTop * height : 0);\r\n var svgWidth = this.properties.svgWidth && !forToolbox ? this.properties.svgWidth * width : width;\r\n var svgHeight = this.properties.svgHeight && !forToolbox ? this.properties.svgHeight * height : height;\r\n primitives = primitives.concat([\r\n new ImagePrimitive_1.ImagePrimitive(svgLeft, svgTop, svgWidth, svgHeight, svgImage.exportUrl)\r\n ]);\r\n }\r\n }\r\n var createTemplate = forToolbox && this.properties.createToolboxTemplate || this.properties.createTemplate;\r\n if (createTemplate) {\r\n var templateLeft = left + (this.properties.templateLeft && !forToolbox ? this.properties.templateLeft * width : 0);\r\n var templateTop = top + (this.properties.templateTop && !forToolbox ? this.properties.templateTop * height : 0);\r\n var templateWidth = this.properties.templateWidth && !forToolbox ? this.properties.templateWidth * width : width;\r\n var templateHeight = this.properties.templateHeight && !forToolbox ? this.properties.templateHeight * height : height;\r\n var nativeShape = this.properties.apiController ? this.properties.apiController.createNativeShape(shape) : shape.toNative();\r\n primitives = primitives.concat([\r\n new SvgElementPrimitive_1.SvgElementPrimitive(templateLeft, templateTop, templateWidth, templateHeight, createTemplate, this.properties.destroyTemplate, nativeShape)\r\n ]);\r\n }\r\n return primitives;\r\n };\r\n CustomShapeDescription.prototype.createParameters = function (parameters) {\r\n if (this.baseDescription)\r\n return this.baseDescription.createParameters(parameters);\r\n else\r\n return _super.prototype.createParameters.call(this, parameters);\r\n };\r\n CustomShapeDescription.prototype.normalizeParameters = function (shape, parameters) {\r\n if (this.baseDescription)\r\n this.baseDescription.normalizeParameters(shape, parameters);\r\n else\r\n _super.prototype.normalizeParameters.call(this, shape, parameters);\r\n };\r\n CustomShapeDescription.prototype.modifyParameters = function (shape, parameters, deltaX, deltaY) {\r\n if (this.baseDescription)\r\n this.baseDescription.modifyParameters(shape, parameters, deltaX, deltaY);\r\n else\r\n _super.prototype.modifyParameters.call(this, shape, parameters, deltaX, deltaY);\r\n };\r\n CustomShapeDescription.prototype.getParameterPoints = function (shape) {\r\n if (this.baseDescription)\r\n return this.baseDescription.getParameterPoints(shape);\r\n else\r\n return _super.prototype.getParameterPoints.call(this, shape);\r\n };\r\n CustomShapeDescription.prototype.getTextRectangle = function (shape) {\r\n if (this.baseDescription)\r\n return this.baseDescription.getTextRectangle(shape);\r\n else {\r\n var _a = shape.rectangle, left = _a.x, top_1 = _a.y, width = _a.width, height = _a.height;\r\n return new rectangle_1.Rectangle(left + (this.properties.textLeft ? this.properties.textLeft * width : 0), top_1 + (this.properties.textTop ? this.properties.textTop * height : 0), this.properties.textWidth ? this.properties.textWidth * width : width, this.properties.textHeight ? this.properties.textHeight * height : height);\r\n }\r\n };\r\n CustomShapeDescription.prototype.getSizeByText = function (textSize, shape) {\r\n if (this.baseDescription)\r\n return this.baseDescription.getSizeByText(textSize, shape);\r\n else\r\n return new size_1.Size(textSize.width / this.properties.textWidth, textSize.height / this.properties.textHeight);\r\n };\r\n CustomShapeDescription.prototype.getImageSize = function (shapeSize, includeMargins, forToolbox) {\r\n if (this.baseDescription) {\r\n if (this.baseDescription instanceof ShapeWithImageDescription_1.ShapeWithImageDescription)\r\n return this.baseDescription.getImageSize(shapeSize, includeMargins, forToolbox);\r\n return size_1.Size.empty();\r\n }\r\n return new size_1.Size(this.properties.imageWidth ? this.properties.imageWidth * shapeSize.width : shapeSize.width, this.properties.imageHeight ? this.properties.imageHeight * shapeSize.height : shapeSize.height)\r\n .nonNegativeSize();\r\n };\r\n CustomShapeDescription.prototype.getImagePlacementRectangle = function (rect, forToolbox) {\r\n if (this.baseDescription) {\r\n if (this.baseDescription instanceof ShapeWithImageDescription_1.ShapeWithImageDescription)\r\n return this.baseDescription.getImagePlacementRectangle(rect, forToolbox);\r\n return rectangle_1.Rectangle.fromGeometry(point_1.Point.zero(), size_1.Size.empty());\r\n }\r\n var left = rect.x, top = rect.y, width = rect.width, height = rect.height;\r\n return new rectangle_1.Rectangle(left + (this.properties.imageLeft && !forToolbox ? this.properties.imageLeft * width : 0), top + (this.properties.imageTop && !forToolbox ? this.properties.imageTop * height : 0), this.properties.imageWidth && !forToolbox ? this.properties.imageWidth * width : width, this.properties.imageHeight && !forToolbox ? this.properties.imageHeight * height : height);\r\n };\r\n CustomShapeDescription.prototype.updateSvgImage = function (cacheImageInfo) {\r\n var isToolboxImage = cacheImageInfo.imageUrl && cacheImageInfo.imageUrl === this.properties.svgToolboxUrl;\r\n var svgImage = isToolboxImage ? this.svgToolboxImage : this.svgImage;\r\n if (cacheImageInfo.base64)\r\n svgImage.loadBase64Content(cacheImageInfo.base64);\r\n else\r\n svgImage.setUnableToLoadFlag();\r\n if (!isToolboxImage)\r\n this.raiseShapeDescriptionChanged(this);\r\n };\r\n return CustomShapeDescription;\r\n}(ShapeWithImageDescription_1.ShapeWithImageDescription));\r\nexports.CustomShapeDescription = CustomShapeDescription;\r\n\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ImagePrimitive = void 0;\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar Primitive_1 = __webpack_require__(24);\r\nvar ImagePrimitive = /** @class */ (function (_super) {\r\n __extends(ImagePrimitive, _super);\r\n function ImagePrimitive(x, y, width, height, url, preserveAspectRatio, style, className) {\r\n if (preserveAspectRatio === void 0) { preserveAspectRatio = \"none\"; }\r\n var _this = _super.call(this, style, className) || this;\r\n _this.x = x;\r\n _this.y = y;\r\n _this.width = width;\r\n _this.height = height;\r\n _this.url = url;\r\n _this.preserveAspectRatio = preserveAspectRatio;\r\n return _this;\r\n }\r\n ImagePrimitive.prototype.createMainElement = function () {\r\n return document.createElementNS(RenderHelper_1.svgNS, \"image\");\r\n };\r\n ImagePrimitive.prototype.applyElementProperties = function (element, measurer) {\r\n this.setUnitAttribute(element, \"x\", this.x);\r\n this.setUnitAttribute(element, \"y\", this.y);\r\n this.setUnitAttribute(element, \"width\", this.width);\r\n this.setUnitAttribute(element, \"height\", this.height);\r\n this.setPositionCorrectionAttribute(element);\r\n element.setAttribute(\"href\", this.url);\r\n element.setAttribute(\"preserveAspectRatio\", this.preserveAspectRatio);\r\n _super.prototype.applyElementProperties.call(this, element, measurer);\r\n };\r\n return ImagePrimitive;\r\n}(Primitive_1.SvgPrimitive));\r\nexports.ImagePrimitive = ImagePrimitive;\r\n\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ShapeWithImageDescription = exports.SHAPE_IMAGE_CLASSNAMES = exports.ShapeDefaultSize = exports.ShapeDefaultDimension = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar size_1 = __webpack_require__(2);\r\nvar point_1 = __webpack_require__(1);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar ImagePrimitive_1 = __webpack_require__(128);\r\nvar RectaglePrimitive_1 = __webpack_require__(21);\r\nvar GroupPrimitive_1 = __webpack_require__(38);\r\nvar Utils_1 = __webpack_require__(18);\r\nvar ClipPathPrimitive_1 = __webpack_require__(53);\r\nvar ShapeImageIndicator_1 = __webpack_require__(130);\r\nexports.ShapeDefaultDimension = 1440;\r\nexports.ShapeDefaultSize = new size_1.Size(exports.ShapeDefaultDimension, exports.ShapeDefaultDimension);\r\nexports.SHAPE_IMAGE_CLASSNAMES = {\r\n IMAGE: \"dxdi-image\",\r\n IMAGE_PLACEHOLDER: \"dxdi-image-placeholder\",\r\n LOADING_INDICATOR: \"dxdi-spinner\",\r\n USER_PIC: \"dxdi-user\",\r\n WARNING_MARK: \"dxdi-warning\"\r\n};\r\nvar ShapeWithImageDescription = /** @class */ (function (_super) {\r\n __extends(ShapeWithImageDescription, _super);\r\n function ShapeWithImageDescription(defaultSize, hasDefaultText) {\r\n if (defaultSize === void 0) { defaultSize = exports.ShapeDefaultSize.clone(); }\r\n var _this = _super.call(this, defaultSize, hasDefaultText) || this;\r\n _this.hasDefaultText = hasDefaultText;\r\n _this.defaultIconSize = 480;\r\n return _this;\r\n }\r\n Object.defineProperty(ShapeWithImageDescription.prototype, \"enableImage\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ShapeWithImageDescription.prototype.getImageMargin = function (forToolbox) {\r\n return forToolbox ? unit_converter_1.UnitConverter.pixelsToTwips(2) : unit_converter_1.UnitConverter.pixelsToTwips(3);\r\n };\r\n ShapeWithImageDescription.prototype.createImagePrimitives = function (shape, forToolbox) {\r\n if (!this.enableImage)\r\n return [];\r\n var rect = this.getImagePlacementRectangle(shape.rectangle, forToolbox);\r\n if (forToolbox)\r\n return this.createImagePlaceholder(rect);\r\n var imagePrimitives = [];\r\n if (shape.image.isEmpty || shape.image.unableToLoad)\r\n imagePrimitives = imagePrimitives.concat(this.createEmptyImagePrimitives(rect, shape.image.unableToLoad));\r\n else if (shape.image.renderUrl === \"\")\r\n imagePrimitives = imagePrimitives.concat(this.createLoadingImagePrimitives(rect));\r\n else\r\n imagePrimitives = imagePrimitives.concat(this.createLoadedImagePrimitives(rect, shape.image.renderUrl));\r\n if (shape.image.renderUrl === \"\") {\r\n var clipPathId = Utils_1.RenderUtils.generateSvgElementId(\"clipImage\");\r\n return [].concat([\r\n new GroupPrimitive_1.GroupPrimitive(imagePrimitives, exports.SHAPE_IMAGE_CLASSNAMES.IMAGE, undefined, clipPathId),\r\n new ClipPathPrimitive_1.ClipPathPrimitive(clipPathId, [new RectaglePrimitive_1.RectanglePrimitive(rect.x, rect.y, rect.width, rect.height)])\r\n ]);\r\n }\r\n else\r\n return imagePrimitives;\r\n };\r\n ShapeWithImageDescription.prototype.createImagePlaceholder = function (rect) {\r\n return [];\r\n };\r\n ShapeWithImageDescription.prototype.createLoadedImagePrimitives = function (rect, imageUrl) {\r\n return [\r\n new ImagePrimitive_1.ImagePrimitive(rect.x, rect.y, rect.width, rect.height, imageUrl, ShapeWithImageDescription.imageScalingRule, undefined, exports.SHAPE_IMAGE_CLASSNAMES.IMAGE)\r\n ];\r\n };\r\n ShapeWithImageDescription.prototype.createLoadingImagePrimitives = function (rect) {\r\n var loadingRect = this.getIconPlacementRectangle(rect);\r\n return [\r\n ShapeImageIndicator_1.ShapeImageIndicator.createLoadingIndicatorPrimitives(loadingRect.x, loadingRect.y, this.defaultIconSize, unit_converter_1.UnitConverter.pixelsToTwips(5), exports.SHAPE_IMAGE_CLASSNAMES.LOADING_INDICATOR)\r\n ];\r\n };\r\n ShapeWithImageDescription.prototype.createEmptyImagePrimitives = function (rect, showWarning) {\r\n var loadingRect = this.getIconPlacementRectangle(rect);\r\n var primitives = [];\r\n primitives = primitives.concat(this.createEmptyImagePrimitive(loadingRect));\r\n if (showWarning)\r\n primitives = primitives.concat(this.createWarningPrimitive(loadingRect));\r\n return primitives;\r\n };\r\n ShapeWithImageDescription.prototype.createEmptyImagePrimitive = function (rect) {\r\n return new GroupPrimitive_1.GroupPrimitive([]);\r\n };\r\n ShapeWithImageDescription.prototype.createWarningPrimitive = function (rect) {\r\n return new GroupPrimitive_1.GroupPrimitive([]);\r\n };\r\n ShapeWithImageDescription.prototype.getIconPlacementRectangle = function (rect) {\r\n var iconRect = rectangle_1.Rectangle.fromGeometry(new point_1.Point(rect.x, rect.y), new size_1.Size(this.defaultIconSize, this.defaultIconSize));\r\n if (iconRect.width < rect.width)\r\n iconRect.x = rect.x + (rect.width - iconRect.width) / 2;\r\n if (iconRect.height < rect.height)\r\n iconRect.y = rect.y + (rect.height - iconRect.height) / 2;\r\n return iconRect;\r\n };\r\n ShapeWithImageDescription.imageScalingRule = \"xMidYMid meet\";\r\n return ShapeWithImageDescription;\r\n}(ShapeDescription_1.ShapeDescription));\r\nexports.ShapeWithImageDescription = ShapeWithImageDescription;\r\n\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ShapeImageIndicator = void 0;\r\nvar EllipsePrimitive_1 = __webpack_require__(52);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar GroupPrimitive_1 = __webpack_require__(38);\r\nvar browser_1 = __webpack_require__(17);\r\nvar RectaglePrimitive_1 = __webpack_require__(21);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar ShapeImageIndicator = /** @class */ (function () {\r\n function ShapeImageIndicator(x, y, size, borderThickness, className) {\r\n this.x = x;\r\n this.y = y;\r\n this.size = size;\r\n this.borderThickness = borderThickness;\r\n this.className = className;\r\n this.animationStarted = false;\r\n }\r\n ShapeImageIndicator.createLoadingIndicatorPrimitives = function (x, y, r, borderThickness, className) {\r\n var indicator = new ShapeImageIndicator(x, y, r, borderThickness, className);\r\n return indicator.createLoadingIndicatorPrimitive();\r\n };\r\n ShapeImageIndicator.createUserIconPrimitives = function (x, y, r, borderThickness, className) {\r\n var indicator = new ShapeImageIndicator(x, y, r, borderThickness, className);\r\n return indicator.createUserIconPrimitive();\r\n };\r\n ShapeImageIndicator.createWarningIconPrimitives = function (x, y, size, className) {\r\n var indicator = new ShapeImageIndicator(x, y, size, undefined, className);\r\n return indicator.createWarningIconPrimitive();\r\n };\r\n ShapeImageIndicator.prototype.rotate = function (element, centerX, centerY, timestamp) {\r\n if (!this.animationStarted)\r\n return;\r\n var angle = (Math.round(timestamp) % 1080) / 3;\r\n var transformAttributeValue = \"rotate(\" + angle + \" \" + centerX + \" \" + centerY + \")\";\r\n element.setAttribute(\"transform\", transformAttributeValue);\r\n this.animationRequestId = requestAnimationFrame(function (timestamp) {\r\n this.rotate(element, centerX, centerY, timestamp);\r\n }.bind(this));\r\n };\r\n ShapeImageIndicator.prototype.onApplyLoadingIndicatorElementProperties = function (element) {\r\n var _a = [unit_converter_1.UnitConverter.twipsToPixelsF(this.x + this.size / 2), unit_converter_1.UnitConverter.twipsToPixelsF(this.y + this.size / 2)], centerX = _a[0], centerY = _a[1];\r\n if (browser_1.Browser.IE) {\r\n this.animationRequestId = requestAnimationFrame(function (timestamp) {\r\n this.rotate(element, centerX, centerY, timestamp);\r\n }.bind(this));\r\n this.animationStarted = true;\r\n }\r\n else\r\n element.style.setProperty(\"transform-origin\", centerX + \"px \" + centerY + \"px\");\r\n };\r\n ShapeImageIndicator.prototype.center = function () {\r\n return [unit_converter_1.UnitConverter.twipsToPixelsF(this.x + this.size / 2), unit_converter_1.UnitConverter.twipsToPixelsF(this.y + this.size / 2)];\r\n };\r\n ShapeImageIndicator.prototype.createLoadingIndicatorPrimitive = function () {\r\n var _a = this.center(), centerX = _a[0], centerY = _a[1];\r\n var radius = unit_converter_1.UnitConverter.twipsToPixelsF(this.size / 2 - this.borderThickness / 2);\r\n return new GroupPrimitive_1.GroupPrimitive([\r\n new EllipsePrimitive_1.EllipsePrimitive(centerX + \"\", centerY + \"\", radius + \"\", radius + \"\"),\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand((centerX + radius) + \"\", centerY + \"\"),\r\n new PathPrimitive_1.PathPrimitiveArcToCommand(radius + \"\", radius + \"\", 0, false, false, centerX + \"\", (centerY - radius) + \"\")\r\n ])\r\n ], this.className, undefined, undefined, this.onApplyLoadingIndicatorElementProperties.bind(this), this.onBeforeDispose.bind(this));\r\n };\r\n ShapeImageIndicator.prototype.createUserIconPrimitive = function () {\r\n var _a = this.center(), centerX = _a[0], centerY = _a[1];\r\n var radius = unit_converter_1.UnitConverter.twipsToPixelsF(this.size / 2 - this.borderThickness / 2);\r\n var sizeInPixels = unit_converter_1.UnitConverter.twipsToPixelsF(this.size);\r\n return new GroupPrimitive_1.GroupPrimitive([\r\n new EllipsePrimitive_1.EllipsePrimitive(centerX + \"\", centerY + \"\", radius + \"\", radius + \"\", undefined, \"dxdi-background\"),\r\n new EllipsePrimitive_1.EllipsePrimitive(centerX + \"\", centerY - sizeInPixels / 8 + \"\", sizeInPixels / 8 + \"\", sizeInPixels / 8 + \"\"),\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(centerX + \"\", centerY + sizeInPixels / 16 + \"\"),\r\n new PathPrimitive_1.PathPrimitiveCubicCurveToCommand(centerX + 0.1375 * sizeInPixels + \"\", centerY + sizeInPixels / 16 + \"\", centerX + sizeInPixels / 4 + \"\", centerY\r\n + 0.11875 * sizeInPixels + \"\", centerX + sizeInPixels / 4 + \"\", centerY + 0.1875 * sizeInPixels + \"\"),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(centerX + sizeInPixels / 4 + \"\", centerY + sizeInPixels / 4 + \"\"),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(centerX - sizeInPixels / 4 + \"\", centerY + sizeInPixels / 4 + \"\"),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(centerX - sizeInPixels / 4 + \"\", centerY + 0.1875 * sizeInPixels + \"\"),\r\n new PathPrimitive_1.PathPrimitiveCubicCurveToCommand(centerX - sizeInPixels / 4 + \"\", centerY + 0.11875 * sizeInPixels + \"\", centerX - 0.1375 * sizeInPixels + \"\", centerY\r\n + sizeInPixels / 16 + \"\", centerX + \"\", centerY + sizeInPixels / 16 + \"\"),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ])\r\n ], this.className);\r\n };\r\n ShapeImageIndicator.prototype.createWarningIconPrimitive = function () {\r\n var _a = this.center(), centerX = _a[0], centerY = _a[1];\r\n var radius = unit_converter_1.UnitConverter.twipsToPixelsF(this.size / 2) - 1;\r\n var exclamationLineWidth = unit_converter_1.UnitConverter.twipsToPixelsF(this.size / 8);\r\n return new GroupPrimitive_1.GroupPrimitive([\r\n new EllipsePrimitive_1.EllipsePrimitive(centerX + \"\", centerY + \"\", radius + \"\", radius + \"\"),\r\n new RectaglePrimitive_1.RectanglePrimitive(centerX - exclamationLineWidth / 2 + 0.5 + \"\", centerY + radius - unit_converter_1.UnitConverter.twipsToPixelsF(this.size / 4) + \"\", exclamationLineWidth + \"\", exclamationLineWidth + \"\"),\r\n new RectaglePrimitive_1.RectanglePrimitive(centerX - exclamationLineWidth / 2 + 0.5 + \"\", centerY - radius + unit_converter_1.UnitConverter.twipsToPixelsF(this.size / 4) - exclamationLineWidth + \"\", exclamationLineWidth + \"\", radius + \"\")\r\n ], this.className);\r\n };\r\n ShapeImageIndicator.prototype.onBeforeDispose = function () {\r\n if (this.animationRequestId)\r\n cancelAnimationFrame(this.animationRequestId);\r\n this.animationStarted = false;\r\n };\r\n return ShapeImageIndicator;\r\n}());\r\nexports.ShapeImageIndicator = ShapeImageIndicator;\r\n\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ImageLoader = void 0;\r\nvar ImageCache_1 = __webpack_require__(45);\r\nvar ImageLoader = /** @class */ (function () {\r\n function ImageLoader(loadedCallback) {\r\n this.loadedCallback = loadedCallback;\r\n }\r\n ImageLoader.prototype.load = function (data) {\r\n if (data.isLoaded)\r\n this.loadedCallback(data);\r\n else if (!data.isLoading)\r\n this.loadInner(data);\r\n };\r\n ImageLoader.prototype.loadInner = function (data) {\r\n var _this = this;\r\n if (data.imageUrl)\r\n this.loadPictureByUrl(data, function () { return _this.finalizeLoading(data, data); });\r\n else if (data.base64)\r\n this.loadPictureByBase64(data, function () { return _this.finalizeLoading(data, data); });\r\n return data;\r\n };\r\n ImageLoader.prototype.finalizeLoading = function (loadedData, existingInfo) {\r\n if (!existingInfo)\r\n existingInfo = ImageCache_1.ImageCache.instance.getImageData(loadedData.actualId);\r\n if (!existingInfo.isLoaded)\r\n ImageCache_1.ImageCache.instance.finalizeLoading(existingInfo, loadedData);\r\n this.loadedCallback(existingInfo);\r\n };\r\n ImageLoader.prototype.loadPictureByBase64 = function (data, imageLoaded) {\r\n var img = new Image();\r\n img.onload = function () {\r\n imageLoaded(data);\r\n };\r\n img.src = data.base64;\r\n };\r\n ImageLoader.prototype.loadPictureByUrl = function (data, imageLoaded) {\r\n var _this = this;\r\n var xhr = new XMLHttpRequest();\r\n try {\r\n xhr.onload = function () {\r\n var reader = new FileReader();\r\n reader.onloadend = function () {\r\n data.base64 = reader.result;\r\n _this.loadPictureByBase64(data, function (data) { return imageLoaded(data); });\r\n };\r\n reader.readAsDataURL(xhr.response);\r\n };\r\n // Access to XMLHttpRequest at 'https://url.jpg' from origin 'http://myurl' has been blocked by CORS policy:\r\n // No 'Access-Control-Allow-Origin' header is present on the requested resource.\r\n xhr.onerror = function ( /* this: XMLHttpRequest*/) { return imageLoaded(data); };\r\n xhr.onloadend = function () {\r\n if (xhr.status === 404)\r\n imageLoaded(data);\r\n };\r\n xhr.open(\"GET\", data.imageUrl, true);\r\n xhr.responseType = \"blob\";\r\n data.startLoading();\r\n xhr.send();\r\n }\r\n catch (_a) { }\r\n };\r\n return ImageLoader;\r\n}());\r\nexports.ImageLoader = ImageLoader;\r\n\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ContainerDescription = exports.CONTAINER_EXPAND_BUTTON_SIGN_RATIO = exports.CONTAINER_EXPAND_BUTTON_RECT_RATIO = exports.CONTAINER_HEADER_TOOLBOX_SIZE_RATIO = exports.CONTAINER_HEADER_SIZE = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar size_1 = __webpack_require__(2);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar RectaglePrimitive_1 = __webpack_require__(21);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar Utils_1 = __webpack_require__(18);\r\nvar Event_1 = __webpack_require__(11);\r\nvar GroupPrimitive_1 = __webpack_require__(38);\r\nvar ConnectionPoint_1 = __webpack_require__(44);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar LocalizationService_1 = __webpack_require__(35);\r\nexports.CONTAINER_HEADER_SIZE = 360;\r\nexports.CONTAINER_HEADER_TOOLBOX_SIZE_RATIO = 0.2;\r\nexports.CONTAINER_EXPAND_BUTTON_RECT_RATIO = 0.5;\r\nexports.CONTAINER_EXPAND_BUTTON_SIGN_RATIO = 0.3;\r\nvar ContainerDescription = /** @class */ (function (_super) {\r\n __extends(ContainerDescription, _super);\r\n function ContainerDescription(defaultSize) {\r\n if (defaultSize === void 0) { defaultSize = new size_1.Size(ShapeDescription_1.ShapeDefaultDimension * 2, ShapeDescription_1.ShapeDefaultDimension * 1.5); }\r\n return _super.call(this, defaultSize, true) || this;\r\n }\r\n Object.defineProperty(ContainerDescription.prototype, \"enableChildren\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ContainerDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ContainerDescription.prototype.getDefaultText = function () {\r\n return LocalizationService_1.DiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Container];\r\n };\r\n ContainerDescription.prototype.createConnectionPoints = function () {\r\n return [\r\n new ConnectionPoint_1.ConnectionPoint(0.25, 0, DiagramItem_1.ConnectionPointSide.North),\r\n new ConnectionPoint_1.ConnectionPoint(0.5, 0, DiagramItem_1.ConnectionPointSide.North),\r\n new ConnectionPoint_1.ConnectionPoint(0.75, 0, DiagramItem_1.ConnectionPointSide.North),\r\n new ConnectionPoint_1.ConnectionPoint(1, 0.25, DiagramItem_1.ConnectionPointSide.East),\r\n new ConnectionPoint_1.ConnectionPoint(1, 0.5, DiagramItem_1.ConnectionPointSide.East),\r\n new ConnectionPoint_1.ConnectionPoint(1, 0.75, DiagramItem_1.ConnectionPointSide.East),\r\n new ConnectionPoint_1.ConnectionPoint(0.75, 1, DiagramItem_1.ConnectionPointSide.South),\r\n new ConnectionPoint_1.ConnectionPoint(0.5, 1, DiagramItem_1.ConnectionPointSide.South),\r\n new ConnectionPoint_1.ConnectionPoint(0.25, 1, DiagramItem_1.ConnectionPointSide.South),\r\n new ConnectionPoint_1.ConnectionPoint(0, 0.75, DiagramItem_1.ConnectionPointSide.West),\r\n new ConnectionPoint_1.ConnectionPoint(0, 0.5, DiagramItem_1.ConnectionPointSide.West),\r\n new ConnectionPoint_1.ConnectionPoint(0, 0.25, DiagramItem_1.ConnectionPointSide.West)\r\n ];\r\n };\r\n ContainerDescription.prototype.getConnectionPointIndexForItem = function (item, connectionPointIndex) {\r\n var shapeConnectionPoints = item && item.getConnectionPoints();\r\n if (shapeConnectionPoints.length === 4)\r\n return connectionPointIndex * 3 + 1;\r\n return connectionPointIndex;\r\n };\r\n ContainerDescription.prototype.getConnectionPointIndexForSide = function (side) {\r\n return side * 3 + 1;\r\n };\r\n ContainerDescription.prototype.createShapePrimitives = function (shape, forToolbox) {\r\n var _a = shape.rectangle, left = _a.x, top = _a.y, width = _a.width, height = _a.height;\r\n var primitives = [];\r\n if (shape.expanded)\r\n primitives = primitives.concat([\r\n new RectaglePrimitive_1.RectanglePrimitive(left, top, width, height, shape.style)\r\n ]);\r\n return primitives.concat(this.createHeaderPrimitives(shape, forToolbox));\r\n };\r\n ContainerDescription.prototype.createExpandButtonPrimitives = function (shape, rect) {\r\n var commands = [\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(rect.x + rect.width * ((1 - exports.CONTAINER_EXPAND_BUTTON_SIGN_RATIO) / 2), rect.center.y),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(rect.x + rect.width * ((1 - exports.CONTAINER_EXPAND_BUTTON_SIGN_RATIO) / 2 + exports.CONTAINER_EXPAND_BUTTON_SIGN_RATIO), rect.center.y)\r\n ];\r\n if (!shape.expanded)\r\n commands = commands.concat([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(rect.center.x, rect.y + rect.height * ((1 - exports.CONTAINER_EXPAND_BUTTON_SIGN_RATIO) / 2)),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(rect.center.x, rect.y + rect.height * ((1 - exports.CONTAINER_EXPAND_BUTTON_SIGN_RATIO) / 2 + exports.CONTAINER_EXPAND_BUTTON_SIGN_RATIO)),\r\n ]);\r\n var buttonRect = rect.clone().inflate(-rect.width * (1 - exports.CONTAINER_EXPAND_BUTTON_RECT_RATIO) / 2, -rect.height * (1 - exports.CONTAINER_EXPAND_BUTTON_RECT_RATIO) / 2);\r\n return [\r\n new GroupPrimitive_1.GroupPrimitive([\r\n new RectaglePrimitive_1.RectanglePrimitive(buttonRect.x, buttonRect.y, buttonRect.width, buttonRect.height, shape.style),\r\n new PathPrimitive_1.PathPrimitive(commands, shape.style)\r\n ], \"shape-expand-btn\", null, null, function (el) {\r\n Utils_1.RenderUtils.setElementEventData(el, Event_1.MouseEventElementType.ShapeExpandButton, shape.key);\r\n })\r\n ];\r\n };\r\n return ContainerDescription;\r\n}(ShapeDescription_1.ShapeDescription));\r\nexports.ContainerDescription = ContainerDescription;\r\n\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CardBaseDescription = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar size_1 = __webpack_require__(2);\r\nvar ShapeWithImageDescription_1 = __webpack_require__(129);\r\nvar RoundedRectanglePrimitive_1 = __webpack_require__(236);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar GroupPrimitive_1 = __webpack_require__(38);\r\nvar ShapeImageIndicator_1 = __webpack_require__(130);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar LocalizationService_1 = __webpack_require__(35);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar point_1 = __webpack_require__(1);\r\nvar CardBaseDescription = /** @class */ (function (_super) {\r\n __extends(CardBaseDescription, _super);\r\n function CardBaseDescription(defaultSize) {\r\n if (defaultSize === void 0) { defaultSize = new size_1.Size(ShapeDescription_1.ShapeDefaultDimension, 26 / 46 * ShapeDescription_1.ShapeDefaultDimension); }\r\n return _super.call(this, defaultSize, true) || this;\r\n }\r\n Object.defineProperty(CardBaseDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CardBaseDescription.prototype.getDefaultText = function () {\r\n return LocalizationService_1.DiagramLocalizationService.shapeTexts[ShapeTypes_1.ShapeTypes.Card];\r\n };\r\n CardBaseDescription.prototype.createShapePrimitives = function (shape, forToolbox) {\r\n var _a = shape.rectangle, left = _a.x, top = _a.y, width = _a.width, height = _a.height;\r\n return [\r\n new RoundedRectanglePrimitive_1.RoundedRectanglePrimitive(left, top, width, height, (forToolbox) ? 30 : 60, (forToolbox) ? 30 : 60, shape.style)\r\n ];\r\n };\r\n CardBaseDescription.prototype.createImagePlaceholder = function (rect) {\r\n return [\r\n new RoundedRectanglePrimitive_1.RoundedRectanglePrimitive(rect.x, rect.y, rect.width, rect.height, unit_converter_1.UnitConverter.pixelsToTwips(2), unit_converter_1.UnitConverter.pixelsToTwips(2), undefined, ShapeWithImageDescription_1.SHAPE_IMAGE_CLASSNAMES.IMAGE_PLACEHOLDER)\r\n ];\r\n };\r\n CardBaseDescription.prototype.createEmptyImagePrimitive = function (rect) {\r\n return ShapeImageIndicator_1.ShapeImageIndicator.createUserIconPrimitives(rect.x, rect.y, this.defaultIconSize, unit_converter_1.UnitConverter.pixelsToTwips(1), ShapeWithImageDescription_1.SHAPE_IMAGE_CLASSNAMES.USER_PIC);\r\n };\r\n CardBaseDescription.prototype.createWarningPrimitive = function (rect) {\r\n return ShapeImageIndicator_1.ShapeImageIndicator.createWarningIconPrimitives(rect.x + this.defaultIconSize / 2, rect.y + this.defaultIconSize / 2, this.defaultIconSize / 2, ShapeWithImageDescription_1.SHAPE_IMAGE_CLASSNAMES.WARNING_MARK);\r\n };\r\n CardBaseDescription.prototype.getTextRectangle = function (shape) {\r\n var rect = shape.rectangle;\r\n var textRectangle = rect.clone().inflate(-ShapeDescription_1.ShapeTextPadding, -ShapeDescription_1.ShapeTextPadding);\r\n var imgBlockSize = this.getImageSize(rect.createSize(), true);\r\n if (this.isTextAfterImage)\r\n textRectangle.moveRectangle(this.isHorizontal ? imgBlockSize.width : 0, this.isHorizontal ? 0 : imgBlockSize.height);\r\n textRectangle.resize(this.isHorizontal ? -imgBlockSize.width : 0, this.isHorizontal ? 0 : -imgBlockSize.height);\r\n return textRectangle.nonNegativeSize();\r\n };\r\n CardBaseDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n var size = textSize.clone().offset(ShapeDescription_1.ShapeTextPadding * 2, ShapeDescription_1.ShapeTextPadding * 2);\r\n var imgBlockSize = this.getImageSizeByTextBlockSize(size);\r\n if (this.isHorizontal)\r\n size.width += imgBlockSize.width;\r\n else\r\n size.height += imgBlockSize.height;\r\n return size;\r\n };\r\n CardBaseDescription.prototype.createTextPrimitives = function (shape, forToolbox) {\r\n if (forToolbox)\r\n return this.createGraphicalTextRepresentation(shape.rectangle);\r\n else\r\n return _super.prototype.createTextPrimitives.call(this, shape, forToolbox);\r\n };\r\n CardBaseDescription.prototype.createGraphicalTextRepresentation = function (rect) {\r\n var textRect = new rectangle_1.Rectangle(0, 0, 0, 0);\r\n var imgBlockSize = this.getImageSize(rect.createSize(), true, true);\r\n if (this.isHorizontal) {\r\n var horizontalShift = this.isTextAfterImage ? rect.width / 2 - unit_converter_1.UnitConverter.pixelsToTwips(2) : 0;\r\n textRect.x = rect.x + horizontalShift + unit_converter_1.UnitConverter.pixelsToTwips(4);\r\n textRect.y = rect.y + unit_converter_1.UnitConverter.pixelsToTwips(5);\r\n textRect.width = imgBlockSize.width - unit_converter_1.UnitConverter.pixelsToTwips(4);\r\n textRect.height = rect.height - unit_converter_1.UnitConverter.pixelsToTwips(6);\r\n }\r\n else {\r\n var verticalShift = this.isTextAfterImage ? rect.height / 2 - unit_converter_1.UnitConverter.pixelsToTwips(2) : 0;\r\n textRect.x = rect.x + rect.width / 4;\r\n textRect.y = rect.y + verticalShift + unit_converter_1.UnitConverter.pixelsToTwips(4);\r\n textRect.width = rect.width / 2;\r\n textRect.height = imgBlockSize.height - unit_converter_1.UnitConverter.pixelsToTwips(2);\r\n }\r\n return this.createTextRepresentationPrimitives(textRect);\r\n };\r\n CardBaseDescription.prototype.getImagePlacementRectangle = function (rect, forToolbox) {\r\n var imageSize = this.getImageSize(rect.createSize(), false, forToolbox);\r\n var imageRectangle = rectangle_1.Rectangle.fromGeometry(new point_1.Point(rect.x, rect.y), imageSize);\r\n var imgBlockSize = this.getImageSize(rect.createSize(), true, forToolbox);\r\n if (this.isHorizontal && this.isTextAfterImage)\r\n imageRectangle.x += this.getImageMargin(forToolbox);\r\n else if (this.isHorizontal)\r\n imageRectangle.x = rect.right - imgBlockSize.width - this.getImageMargin(forToolbox);\r\n if (!this.isHorizontal && !this.isTextAfterImage)\r\n imageRectangle.y = rect.bottom - imgBlockSize.height - this.getImageMargin(forToolbox);\r\n else\r\n imageRectangle.y += this.getImageMargin(forToolbox);\r\n if (!this.isHorizontal)\r\n imageRectangle.x += (rect.width - imageRectangle.width) / 2;\r\n return imageRectangle;\r\n };\r\n CardBaseDescription.prototype.createTextRepresentationPrimitives = function (rect) {\r\n var lineHeight = unit_converter_1.UnitConverter.pixelsToTwips(unit_converter_1.UnitConverter.twipsToPixels(rect.height / 3));\r\n return [\r\n new GroupPrimitive_1.GroupPrimitive([\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(rect.x, rect.y),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(rect.x + rect.width, rect.y)\r\n ]),\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(rect.x, rect.y + lineHeight),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(rect.x + rect.width, rect.y + lineHeight)\r\n ]),\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(rect.x, rect.y + lineHeight * 2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(rect.x + rect.width * 0.66, rect.y + lineHeight * 2)\r\n ])\r\n ], \"dxdi-shape-text\")\r\n ];\r\n };\r\n return CardBaseDescription;\r\n}(ShapeWithImageDescription_1.ShapeWithImageDescription));\r\nexports.CardBaseDescription = CardBaseDescription;\r\n\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ImporterBase = void 0;\r\nvar Model_1 = __webpack_require__(59);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar ImporterBase = /** @class */ (function () {\r\n function ImporterBase(shapeDescriptionManager) {\r\n this.shapeDescriptionManager = shapeDescriptionManager;\r\n }\r\n ImporterBase.prototype.import = function () {\r\n var model = new Model_1.DiagramModel();\r\n var obj = this.getObject();\r\n this.importPageSettings(model, this.getPageObject(obj));\r\n var shapes = this.importShapes(this.getShapeObjects(obj));\r\n for (var i = 0; i < shapes.length; i++) {\r\n var shape = shapes[i];\r\n if (model.findItem(shape.key))\r\n throw Error(\"Item key is duplicated\");\r\n model.pushItem(shape);\r\n }\r\n var connectors = this.importConnectors(this.getConnectorObjects(obj));\r\n for (var i = 0; i < connectors.length; i++) {\r\n var connector = connectors[i];\r\n connector.endItem = model.findItem(connector[\"endItemKey\"]) || undefined;\r\n delete connector[\"endItemKey\"];\r\n connector.beginItem = model.findItem(connector[\"beginItemKey\"]) || undefined;\r\n delete connector[\"beginItemKey\"];\r\n if (model.findItem(connector.key))\r\n throw Error(\"Item key is duplicated\");\r\n model.pushItem(connector);\r\n this.updateConnections(connector);\r\n }\r\n this.updateChildren(model.items, function (key) { return model.findItem(key); });\r\n return model;\r\n };\r\n ImporterBase.prototype.importItems = function (model) {\r\n var result = [];\r\n var obj = this.getObject();\r\n var itemHash = {};\r\n var shapes = this.importShapes(this.getShapeObjects(obj));\r\n var key;\r\n for (var i = 0; i < shapes.length; i++) {\r\n var shape = shapes[i];\r\n var oldKey = shape.key;\r\n key = model.getNextKey();\r\n shape.key = key;\r\n itemHash[oldKey] = shape;\r\n if (shape.dataKey !== undefined)\r\n shape.dataKey = undefined;\r\n result.push(shape);\r\n }\r\n var connectors = this.importConnectors(this.getConnectorObjects(obj));\r\n for (var i = 0; i < connectors.length; i++) {\r\n var connector = connectors[i];\r\n var oldKey = connector.key;\r\n key = model.getNextKey();\r\n connector.key = key;\r\n itemHash[oldKey] = connector;\r\n if (connector.dataKey !== undefined)\r\n connector.dataKey = undefined;\r\n var endItemKey = connector[\"endItemKey\"];\r\n connector.endItem = itemHash[endItemKey];\r\n delete connector[\"endItemKey\"];\r\n var beginItemKey = connector[\"beginItemKey\"];\r\n connector.beginItem = itemHash[beginItemKey];\r\n delete connector[\"beginItemKey\"];\r\n result.push(connector);\r\n this.updateConnections(connector);\r\n }\r\n this.updateChildren(result, function (key) { return itemHash[key]; });\r\n return result;\r\n };\r\n ImporterBase.prototype.importItemsData = function (model) {\r\n var obj = this.getObject();\r\n var shapes = this.importShapes(this.getShapeObjects(obj));\r\n var shapeDataKeys = {};\r\n for (var i = 0; i < shapes.length; i++) {\r\n var srcShape = shapes[i];\r\n var destShape = void 0;\r\n if (srcShape.dataKey !== undefined)\r\n destShape = model.findShapeByDataKey(srcShape.dataKey);\r\n if (destShape) {\r\n destShape.dataKey = srcShape.dataKey;\r\n shapeDataKeys[srcShape.key] = srcShape.dataKey;\r\n destShape.locked = srcShape.locked;\r\n destShape.position = srcShape.position.clone();\r\n destShape.expanded = srcShape.expanded;\r\n if (srcShape.expandedSize)\r\n destShape.expandedSize = srcShape.expandedSize.clone();\r\n destShape.size = srcShape.size.clone();\r\n destShape.parameters = srcShape.parameters.clone();\r\n destShape.style = srcShape.style.clone();\r\n destShape.styleText = srcShape.styleText.clone();\r\n destShape.zIndex = srcShape.zIndex;\r\n destShape.text = srcShape.text;\r\n destShape.description = srcShape.description;\r\n destShape.image = srcShape.image.clone();\r\n }\r\n }\r\n var connectors = this.importConnectors(this.getConnectorObjects(obj));\r\n for (var i = 0; i < connectors.length; i++) {\r\n var srcConnector = connectors[i];\r\n var destConnector = void 0;\r\n if (srcConnector.dataKey !== undefined)\r\n destConnector = model.findConnectorByDataKey(srcConnector.dataKey);\r\n if (!destConnector)\r\n destConnector = model.findConnectorByBeginEndDataKeys(shapeDataKeys[srcConnector[\"beginItemKey\"]], shapeDataKeys[srcConnector[\"endItemKey\"]]);\r\n if (destConnector) {\r\n destConnector.dataKey = srcConnector.dataKey;\r\n destConnector.locked = srcConnector.locked;\r\n destConnector.points = srcConnector.points.slice();\r\n destConnector.properties = srcConnector.properties.clone();\r\n destConnector.style = srcConnector.style.clone();\r\n destConnector.endConnectionPointIndex = srcConnector.endConnectionPointIndex;\r\n destConnector.beginConnectionPointIndex = srcConnector.beginConnectionPointIndex;\r\n destConnector.texts = srcConnector.texts.clone();\r\n destConnector.styleText = srcConnector.styleText.clone();\r\n destConnector.zIndex = srcConnector.zIndex;\r\n }\r\n }\r\n };\r\n ImporterBase.prototype.importShapes = function (shapeObjs) {\r\n var result = [];\r\n if (!shapeObjs)\r\n return result;\r\n if (!Array.isArray(shapeObjs))\r\n throw Error(\"Invalid Format\");\r\n for (var i = 0; i < shapeObjs.length; i++) {\r\n var shapeObj = shapeObjs[i];\r\n var shape = this.importShape(shapeObj);\r\n result.push(shape);\r\n result = result.concat(this.importShapeChildren(shapeObj, shape));\r\n }\r\n return result;\r\n };\r\n ImporterBase.prototype.importConnectors = function (connectorObjs) {\r\n var result = [];\r\n if (!connectorObjs)\r\n return result;\r\n if (!Array.isArray(connectorObjs))\r\n throw Error(\"Invalid Format\");\r\n for (var i = 0; i < connectorObjs.length; i++) {\r\n var shapeObj = connectorObjs[i];\r\n result.push(this.importConnector(shapeObj));\r\n }\r\n return result;\r\n };\r\n ImporterBase.prototype.updateChildren = function (items, findItem) {\r\n items.forEach(function (item) {\r\n if (item instanceof Shape_1.Shape && item[\"childKeys\"]) {\r\n item[\"childKeys\"].forEach(function (childKey) {\r\n var child = findItem(childKey);\r\n if (child) {\r\n item.children.push(child);\r\n child.container = item;\r\n }\r\n });\r\n delete item[\"childKeys\"];\r\n }\r\n });\r\n };\r\n ImporterBase.prototype.updateConnections = function (connector) {\r\n if (connector.endItem)\r\n if (connector.endItem instanceof Shape_1.Shape) {\r\n connector.endItem.attachedConnectors.push(connector);\r\n connector.points[connector.points.length - 1] = connector.endItem.getConnectionPointPosition(connector.endConnectionPointIndex, connector.points[connector.points.length - 2]);\r\n }\r\n else {\r\n connector.endItem = undefined;\r\n connector.endConnectionPointIndex = -1;\r\n }\r\n if (connector.beginItem)\r\n if (connector.beginItem instanceof Shape_1.Shape) {\r\n connector.beginItem.attachedConnectors.push(connector);\r\n connector.points[0] = connector.beginItem.getConnectionPointPosition(connector.beginConnectionPointIndex, connector.points[1]);\r\n }\r\n else {\r\n connector.beginItem = undefined;\r\n connector.beginConnectionPointIndex = -1;\r\n }\r\n };\r\n ImporterBase.prototype.assert = function (value, type) {\r\n if (value === undefined)\r\n throw Error(\"Invalid Format\");\r\n if (type !== undefined && typeof value !== type)\r\n throw Error(\"Invalid Format\");\r\n };\r\n return ImporterBase;\r\n}());\r\nexports.ImporterBase = ImporterBase;\r\n\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StylePropertyCommandBase = void 0;\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar StylePropertyCommandBase = /** @class */ (function (_super) {\r\n __extends(StylePropertyCommandBase, _super);\r\n function StylePropertyCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n StylePropertyCommandBase.prototype.lockInputPositionUpdating = function () {\r\n return true;\r\n };\r\n return StylePropertyCommandBase;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.StylePropertyCommandBase = StylePropertyCommandBase;\r\n\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeStylePropertyCommandBase = void 0;\r\nvar StylePropertyCommandBase_1 = __webpack_require__(135);\r\nvar ChangeStylePropertyCommandBase = /** @class */ (function (_super) {\r\n __extends(ChangeStylePropertyCommandBase, _super);\r\n function ChangeStylePropertyCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeStylePropertyCommandBase.prototype.executeCore = function (state, parameter) {\r\n var _this = this;\r\n this.control.history.beginTransaction();\r\n var items = this.control.selection.getSelectedItems();\r\n parameter = this.processParameter(parameter);\r\n items.forEach(function (item) {\r\n var styleProperty = _this.getStyleProperty();\r\n _this.control.history.addAndRedo(_this.createHistoryItem(item, styleProperty, parameter));\r\n });\r\n this.updateInputPosition(parameter);\r\n this.control.history.endTransaction();\r\n return true;\r\n };\r\n ChangeStylePropertyCommandBase.prototype.getDefaultValue = function () {\r\n return this.getDefaultStyleObj()[this.getStyleProperty()];\r\n };\r\n ChangeStylePropertyCommandBase.prototype.processParameter = function (parameter) {\r\n return parameter;\r\n };\r\n return ChangeStylePropertyCommandBase;\r\n}(StylePropertyCommandBase_1.StylePropertyCommandBase));\r\nexports.ChangeStylePropertyCommandBase = ChangeStylePropertyCommandBase;\r\n\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeConnectorPropertyCommand = void 0;\r\nvar ChangeConnectorPropertyHistoryItem_1 = __webpack_require__(88);\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar ChangeConnectorPropertyCommand = /** @class */ (function (_super) {\r\n __extends(ChangeConnectorPropertyCommand, _super);\r\n function ChangeConnectorPropertyCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeConnectorPropertyCommand.prototype.getValue = function () {\r\n return this.control.selection.inputPosition.getCurrentConnectorPropertyValue(this.getPropertyName());\r\n };\r\n ChangeConnectorPropertyCommand.prototype.getDefaultValue = function () {\r\n return this.getPropertyDefaultValue();\r\n };\r\n ChangeConnectorPropertyCommand.prototype.executeCore = function (state, parameter) {\r\n var _this = this;\r\n this.control.history.beginTransaction();\r\n var connectors = this.control.selection.getSelectedConnectors();\r\n connectors.forEach(function (connector) {\r\n var propertyName = _this.getPropertyName();\r\n _this.control.history.addAndRedo(new ChangeConnectorPropertyHistoryItem_1.ChangeConnectorPropertyHistoryItem(connector.key, propertyName, parameter));\r\n });\r\n this.control.selection.inputPosition.setConnectorPropertyValue(this.getPropertyName(), parameter);\r\n this.control.history.endTransaction();\r\n return true;\r\n };\r\n ChangeConnectorPropertyCommand.prototype.lockInputPositionUpdating = function () {\r\n return true;\r\n };\r\n return ChangeConnectorPropertyCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ChangeConnectorPropertyCommand = ChangeConnectorPropertyCommand;\r\n\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AutoLayoutTreeVerticalCommand = void 0;\r\nvar AutoLayoutCommandBase_1 = __webpack_require__(74);\r\nvar WideTree_1 = __webpack_require__(97);\r\nvar LayoutSettings_1 = __webpack_require__(20);\r\nvar AutoLayoutTreeVerticalCommand = /** @class */ (function (_super) {\r\n __extends(AutoLayoutTreeVerticalCommand, _super);\r\n function AutoLayoutTreeVerticalCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n AutoLayoutTreeVerticalCommand.prototype.createLayoutSettings = function () {\r\n var gridSize = this.control.settings.snapToGrid ? this.control.settings.gridSize : undefined;\r\n var settings = new LayoutSettings_1.TreeLayoutSettings(gridSize);\r\n settings.orientation = LayoutSettings_1.DataLayoutOrientation.Vertical;\r\n return settings;\r\n };\r\n AutoLayoutTreeVerticalCommand.prototype.createLayout = function (settings, graph) {\r\n return new WideTree_1.TreeLayoutBuilder(settings, graph).build();\r\n };\r\n return AutoLayoutTreeVerticalCommand;\r\n}(AutoLayoutCommandBase_1.AutoLayoutCommandBase));\r\nexports.AutoLayoutTreeVerticalCommand = AutoLayoutTreeVerticalCommand;\r\n\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GraphLayout = void 0;\r\nvar Utils_1 = __webpack_require__(3);\r\nvar NodeLayout_1 = __webpack_require__(69);\r\nvar GraphLayout = /** @class */ (function () {\r\n function GraphLayout() {\r\n this.nodeKeys = [];\r\n this.nodeToLayout = {};\r\n this.edgeToPosition = {};\r\n }\r\n GraphLayout.prototype.forEachNode = function (callback) {\r\n var _this = this;\r\n this.nodeKeys.forEach(function (nk) { return callback(_this.nodeToLayout[nk], nk); });\r\n };\r\n GraphLayout.prototype.reduce = function (callback, initValue) {\r\n var _this = this;\r\n return this.nodeKeys.reduce(function (acc, key, index) { return callback(acc, _this.nodeToLayout[key], index); }, initValue);\r\n };\r\n GraphLayout.prototype.addNode = function (nodeLayout) {\r\n if (this.nodeToLayout[nodeLayout.key])\r\n throw Error(\"Node layout is already registered\");\r\n this.nodeKeys.push(nodeLayout.key);\r\n this.nodeToLayout[nodeLayout.key] = nodeLayout;\r\n return nodeLayout;\r\n };\r\n GraphLayout.prototype.hasNode = function (key) {\r\n return !!this.nodeToLayout[key];\r\n };\r\n GraphLayout.prototype.addEdge = function (edgeLayout) {\r\n if (this.edgeToPosition[edgeLayout.key])\r\n throw Error(\"Edge layout is already registered\");\r\n this.edgeToPosition[edgeLayout.key] = edgeLayout;\r\n };\r\n GraphLayout.prototype.getRectangle = function (includeMargins) {\r\n var _this = this;\r\n return Utils_1.GeometryUtils.getCommonRectangle(this.nodeKeys.map(function (nk) { return _this.nodeToLayout[nk].rectangle; }));\r\n };\r\n GraphLayout.prototype.offsetNodes = function (deltaX, deltaY) {\r\n var _this = this;\r\n if (deltaX === void 0) { deltaX = 0; }\r\n if (deltaY === void 0) { deltaY = 0; }\r\n var layout = new GraphLayout();\r\n this.nodeKeys.forEach(function (nk) {\r\n var nl = _this.nodeToLayout[nk];\r\n layout.addNode(new NodeLayout_1.NodeLayout(nl.info, nl.position.clone().offset(deltaX, deltaY)));\r\n });\r\n layout.copyEdges(this);\r\n return layout;\r\n };\r\n GraphLayout.prototype.extend = function (layout) {\r\n var _this = this;\r\n layout.forEachNode(function (nl) { return _this.addNode(nl); });\r\n this.copyEdges(layout);\r\n };\r\n GraphLayout.prototype.copyEdges = function (source) {\r\n var _this = this;\r\n Object.keys(source.edgeToPosition).forEach(function (e) {\r\n var edge = source.edgeToPosition[e];\r\n _this.addEdge(new NodeLayout_1.EdgeLayout(edge.key, edge.beginIndex, edge.endIndex));\r\n });\r\n };\r\n return GraphLayout;\r\n}());\r\nexports.GraphLayout = GraphLayout;\r\n\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LayoutBuilder = void 0;\r\nvar LayoutSettings_1 = __webpack_require__(20);\r\nvar LayoutBuilder = /** @class */ (function () {\r\n function LayoutBuilder(settings, graph) {\r\n this.settings = settings;\r\n this.graph = graph;\r\n }\r\n LayoutBuilder.prototype.getBreadthNodeSizeCore = function (node, excludeMargins) {\r\n var size = this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Vertical ? node.size.width : node.size.height;\r\n if (!excludeMargins)\r\n size += this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Vertical ? (node.margin.left + node.margin.right) : (node.margin.top + node.margin.bottom);\r\n return size;\r\n };\r\n LayoutBuilder.prototype.getDepthNodeSizeCore = function (node) {\r\n return this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Horizontal ?\r\n (node.size.width + node.margin.left + node.margin.right) :\r\n (node.size.height + node.margin.top + node.margin.bottom);\r\n };\r\n LayoutBuilder.prototype.chooseDirectionValue = function (near, far) {\r\n return this.settings.direction === LayoutSettings_1.LogicalDirectionKind.Forward ? near : far;\r\n };\r\n LayoutBuilder.prototype.getDirectionValue = function (value) {\r\n return this.settings.direction === LayoutSettings_1.LogicalDirectionKind.Forward ? value : -value;\r\n };\r\n LayoutBuilder.prototype.getComponentOffset = function (graphLayout) {\r\n var rect = graphLayout.getRectangle(true);\r\n var offset = this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Vertical ? rect.width : rect.height;\r\n return offset + this.settings.componentSpacing;\r\n };\r\n LayoutBuilder.prototype.setComponentOffset = function (graphLayout, offset) {\r\n return this.settings.orientation === LayoutSettings_1.DataLayoutOrientation.Vertical ?\r\n graphLayout.offsetNodes(offset) :\r\n graphLayout.offsetNodes(0, offset);\r\n };\r\n return LayoutBuilder;\r\n}());\r\nexports.LayoutBuilder = LayoutBuilder;\r\n\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CanvasManager = void 0;\r\nvar ModelChange_1 = __webpack_require__(99);\r\nvar CanvasManagerBase_1 = __webpack_require__(41);\r\nvar CanvasManager = /** @class */ (function (_super) {\r\n __extends(CanvasManager, _super);\r\n function CanvasManager() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.pendingChanges = {};\r\n _this.pendingRemoveChanges = {};\r\n _this.updatesLock = 0;\r\n return _this;\r\n }\r\n CanvasManager.prototype.beginUpdate = function () {\r\n this.updatesLock++;\r\n };\r\n CanvasManager.prototype.endUpdate = function () {\r\n this.updatesLock--;\r\n if (this.updatesLock === 0)\r\n this.applyPendingChanges();\r\n };\r\n CanvasManager.prototype.getPendingChanges = function () {\r\n var _this = this;\r\n return Object.keys(this.pendingChanges).map(function (key) { return _this.pendingChanges[key]; });\r\n };\r\n CanvasManager.prototype.getPendingRemoveChanges = function () {\r\n var _this = this;\r\n return Object.keys(this.pendingRemoveChanges).map(function (key) { return _this.pendingRemoveChanges[key]; });\r\n };\r\n CanvasManager.prototype.applyPendingChanges = function () {\r\n var removeChanges = this.getPendingRemoveChanges();\r\n if (removeChanges.length) {\r\n this.applyChangesCore(removeChanges);\r\n this.pendingRemoveChanges = {};\r\n }\r\n var changes = this.getPendingChanges();\r\n if (changes.length) {\r\n this.applyChangesCore(changes);\r\n this.pendingChanges = {};\r\n }\r\n };\r\n CanvasManager.prototype.applyChangesCore = function (changes) {\r\n var _this = this;\r\n var changesToReapply = [];\r\n changes.forEach(function (change) {\r\n if (!_this.applyChange(change))\r\n changesToReapply.push(change);\r\n });\r\n if (changesToReapply.length && changesToReapply.length !== changes.length)\r\n this.applyChangesCore(changesToReapply);\r\n };\r\n CanvasManager.prototype.postponeChanges = function (changes) {\r\n var _this = this;\r\n changes.forEach(function (change) {\r\n if (change.type === ModelChange_1.ItemChangeType.Remove) {\r\n _this.pendingRemoveChanges[change.key] = change;\r\n delete _this.pendingChanges[change.key];\r\n }\r\n else if (!_this.pendingChanges[change.key]) {\r\n if (_this.pendingRemoveChanges[change.key] && change.type !== ModelChange_1.ItemChangeType.Create)\r\n throw new Error(\"Incorrect model changes sequence.\");\r\n _this.pendingChanges[change.key] = change;\r\n }\r\n else if (change.type === ModelChange_1.ItemChangeType.Create)\r\n _this.pendingChanges[change.key] = change;\r\n else if (change.type === ModelChange_1.ItemChangeType.UpdateStructure) {\r\n if (_this.pendingChanges[change.key].type === ModelChange_1.ItemChangeType.UpdateProperties)\r\n _this.pendingChanges[change.key] = change;\r\n }\r\n else if (change.type === ModelChange_1.ItemChangeType.UpdateProperties)\r\n if (_this.pendingChanges[change.key].type === ModelChange_1.ItemChangeType.Update)\r\n _this.pendingChanges[change.key] = change;\r\n });\r\n };\r\n // Notifications\r\n CanvasManager.prototype.notifyModelChanged = function (changes) {\r\n if (this.updatesLock === 0)\r\n this.applyChangesCore(changes);\r\n else\r\n this.postponeChanges(changes);\r\n };\r\n CanvasManager.prototype.notifyPageColorChanged = function (color) { };\r\n CanvasManager.prototype.notifyPageSizeChanged = function (pageSize, pageLandscape) { };\r\n return CanvasManager;\r\n}(CanvasManagerBase_1.CanvasManagerBase));\r\nexports.CanvasManager = CanvasManager;\r\n\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PasteSelectionCommandBase = void 0;\r\nvar ClipboardCommand_1 = __webpack_require__(101);\r\nvar Importer_1 = __webpack_require__(120);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar ImportShapeHistoryItem_1 = __webpack_require__(267);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar ImportConnectorHistoryItem_1 = __webpack_require__(268);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar SetSelectionHistoryItem_1 = __webpack_require__(65);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar PasteSelectionCommandBase = /** @class */ (function (_super) {\r\n __extends(PasteSelectionCommandBase, _super);\r\n function PasteSelectionCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PasteSelectionCommandBase.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && (this.isPasteSupportedByBrowser() || ClipboardCommand_1.ClipboardCommand.clipboardData !== undefined);\r\n };\r\n PasteSelectionCommandBase.prototype.isVisible = function () {\r\n return this.isPasteSupportedByBrowser() || ClipboardCommand_1.ClipboardCommand.clipboardData !== undefined;\r\n };\r\n PasteSelectionCommandBase.prototype.parseClipboardData = function (data) {\r\n var items = [];\r\n var importer = new Importer_1.Importer(this.control.shapeDescriptionManager, data);\r\n items = importer.importItems(this.control.model);\r\n if (this.control.contextMenuPosition)\r\n this.calculateSelectionOffset(items, this.control.contextMenuPosition);\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item instanceof Shape_1.Shape)\r\n item.position = this.getShapeNewPosition(item.position);\r\n else if (item instanceof Connector_1.Connector)\r\n this.changeConnectorPoints(item);\r\n }\r\n return items;\r\n };\r\n PasteSelectionCommandBase.prototype.executeCore = function (state, parameter) {\r\n var _this = this;\r\n var ret = true;\r\n if (parameter)\r\n this.performPaste(parameter);\r\n else\r\n this.getClipboardData(function (data) {\r\n ret = _this.execute(data); // may be async\r\n });\r\n return ret;\r\n };\r\n PasteSelectionCommandBase.prototype.addItemForSortingRecursive = function (itemsHashtable, item) {\r\n if (itemsHashtable[item.key])\r\n return itemsHashtable[item.key];\r\n if (item instanceof Connector_1.Connector) {\r\n if (item.endItem)\r\n itemsHashtable[item.key] = this.addItemForSortingRecursive(itemsHashtable, item.endItem) - 0.5;\r\n else if (item.beginItem)\r\n itemsHashtable[item.key] = this.addItemForSortingRecursive(itemsHashtable, item.beginItem) + 0.5;\r\n else\r\n itemsHashtable[item.key] = -1;\r\n return itemsHashtable[item.key];\r\n }\r\n if (item.attachedConnectors.length === 0)\r\n return itemsHashtable[item.key] = 0;\r\n else\r\n for (var i = 0; i < item.attachedConnectors.length; i++) {\r\n var beginItem = item.attachedConnectors[i].beginItem;\r\n if (item.attachedConnectors[i].endItem === item && beginItem && beginItem !== item.attachedConnectors[i].endItem)\r\n return itemsHashtable[item.key] = this.addItemForSortingRecursive(itemsHashtable, beginItem) + 1;\r\n else\r\n return itemsHashtable[item.key] = 0; // no parent\r\n }\r\n };\r\n PasteSelectionCommandBase.prototype.getSortedPasteItems = function (items) {\r\n var sortedItems = [];\r\n var connectors = [];\r\n var itemsHashtable = {};\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item instanceof Shape_1.Shape)\r\n sortedItems.push(item);\r\n else if (item instanceof Connector_1.Connector) {\r\n connectors.push(item);\r\n this.addItemForSortingRecursive(itemsHashtable, item);\r\n }\r\n }\r\n connectors.sort(function (a, b) { return itemsHashtable[b.key] - itemsHashtable[a.key]; });\r\n return sortedItems.concat(connectors);\r\n };\r\n PasteSelectionCommandBase.prototype.performPaste = function (data) {\r\n this.control.beginUpdateCanvas();\r\n this.control.history.beginTransaction();\r\n var ids = [];\r\n var items = this.parseClipboardData(data);\r\n items = this.getSortedPasteItems(items);\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item instanceof Shape_1.Shape)\r\n this.control.history.addAndRedo(new ImportShapeHistoryItem_1.ImportShapeHistoryItem(item));\r\n else if (item instanceof Connector_1.Connector)\r\n this.control.history.addAndRedo(new ImportConnectorHistoryItem_1.ImportConnectorHistoryItem(item));\r\n var containerKey = item.container && item.container.key;\r\n if (!containerKey || ids.indexOf(containerKey) === -1)\r\n ids.push(item.key);\r\n }\r\n ModelUtils_1.ModelUtils.tryUpdateModelRectangle(this.control.history);\r\n this.control.history.addAndRedo(new SetSelectionHistoryItem_1.SetSelectionHistoryItem(this.control.selection, ids));\r\n this.control.history.endTransaction();\r\n this.control.endUpdateCanvas();\r\n this.control.barManager.updateItemsState();\r\n };\r\n PasteSelectionCommandBase.prototype.calculateSelectionOffset = function (items, position) { };\r\n Object.defineProperty(PasteSelectionCommandBase.prototype, \"isPermissionsRequired\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n PasteSelectionCommandBase.getShapeNewPosition = function (model, position) {\r\n while (model.findShapeAtPosition(position))\r\n position = position.clone().offset(PasteSelectionCommandBase.positionOffset, PasteSelectionCommandBase.positionOffset);\r\n return position;\r\n };\r\n PasteSelectionCommandBase.changeConnectorPoints = function (model, connector) {\r\n while (model.findConnectorAtPoints(connector.points))\r\n connector.points.forEach(function (pt) {\r\n pt.x += PasteSelectionCommandBase.positionOffset;\r\n pt.y += PasteSelectionCommandBase.positionOffset;\r\n });\r\n };\r\n PasteSelectionCommandBase.positionOffset = unit_converter_1.UnitConverter.pixelsToTwips(10);\r\n return PasteSelectionCommandBase;\r\n}(ClipboardCommand_1.ClipboardCommand));\r\nexports.PasteSelectionCommandBase = PasteSelectionCommandBase;\r\n\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AutoLayoutLayeredHorizontalCommand = void 0;\r\nvar AutoLayoutCommandBase_1 = __webpack_require__(74);\r\nvar Sugiyama_1 = __webpack_require__(78);\r\nvar LayoutSettings_1 = __webpack_require__(20);\r\nvar AutoLayoutLayeredHorizontalCommand = /** @class */ (function (_super) {\r\n __extends(AutoLayoutLayeredHorizontalCommand, _super);\r\n function AutoLayoutLayeredHorizontalCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n AutoLayoutLayeredHorizontalCommand.prototype.createLayoutSettings = function () {\r\n var settings = new LayoutSettings_1.LayoutSettings();\r\n settings.orientation = LayoutSettings_1.DataLayoutOrientation.Horizontal;\r\n return settings;\r\n };\r\n AutoLayoutLayeredHorizontalCommand.prototype.createLayout = function (settings, graph) {\r\n return new Sugiyama_1.SugiyamaLayoutBuilder(settings, graph).build();\r\n };\r\n return AutoLayoutLayeredHorizontalCommand;\r\n}(AutoLayoutCommandBase_1.AutoLayoutCommandBase));\r\nexports.AutoLayoutLayeredHorizontalCommand = AutoLayoutLayeredHorizontalCommand;\r\n\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AutoLayoutTreeHorizontalCommand = void 0;\r\nvar AutoLayoutCommandBase_1 = __webpack_require__(74);\r\nvar WideTree_1 = __webpack_require__(97);\r\nvar LayoutSettings_1 = __webpack_require__(20);\r\nvar AutoLayoutTreeHorizontalCommand = /** @class */ (function (_super) {\r\n __extends(AutoLayoutTreeHorizontalCommand, _super);\r\n function AutoLayoutTreeHorizontalCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n AutoLayoutTreeHorizontalCommand.prototype.createLayoutSettings = function () {\r\n var gridSize = this.control.settings.snapToGrid ? this.control.settings.gridSize : undefined;\r\n var settings = new LayoutSettings_1.TreeLayoutSettings(gridSize);\r\n settings.orientation = LayoutSettings_1.DataLayoutOrientation.Horizontal;\r\n return settings;\r\n };\r\n AutoLayoutTreeHorizontalCommand.prototype.createLayout = function (settings, graph) {\r\n return new WideTree_1.TreeLayoutBuilder(settings, graph).build();\r\n };\r\n return AutoLayoutTreeHorizontalCommand;\r\n}(AutoLayoutCommandBase_1.AutoLayoutCommandBase));\r\nexports.AutoLayoutTreeHorizontalCommand = AutoLayoutTreeHorizontalCommand;\r\n\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AutoLayoutLayeredVerticalCommand = void 0;\r\nvar AutoLayoutCommandBase_1 = __webpack_require__(74);\r\nvar Sugiyama_1 = __webpack_require__(78);\r\nvar LayoutSettings_1 = __webpack_require__(20);\r\nvar AutoLayoutLayeredVerticalCommand = /** @class */ (function (_super) {\r\n __extends(AutoLayoutLayeredVerticalCommand, _super);\r\n function AutoLayoutLayeredVerticalCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n AutoLayoutLayeredVerticalCommand.prototype.createLayoutSettings = function () {\r\n var settings = new LayoutSettings_1.LayoutSettings();\r\n settings.orientation = LayoutSettings_1.DataLayoutOrientation.Vertical;\r\n return settings;\r\n };\r\n AutoLayoutLayeredVerticalCommand.prototype.createLayout = function (settings, graph) {\r\n return new Sugiyama_1.SugiyamaLayoutBuilder(settings, graph).build();\r\n };\r\n return AutoLayoutLayeredVerticalCommand;\r\n}(AutoLayoutCommandBase_1.AutoLayoutCommandBase));\r\nexports.AutoLayoutLayeredVerticalCommand = AutoLayoutLayeredVerticalCommand;\r\n\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeLockedCommand = void 0;\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar ChangeLockedCommand = /** @class */ (function (_super) {\r\n __extends(ChangeLockedCommand, _super);\r\n function ChangeLockedCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeLockedCommand.prototype.isEnabled = function () {\r\n var _this = this;\r\n var items = this.control.selection.getSelectedItems(true);\r\n var enabled = false;\r\n items.forEach(function (item) { if (item.locked !== _this.getLockState())\r\n enabled = true; });\r\n return _super.prototype.isEnabled.call(this) && enabled;\r\n };\r\n ChangeLockedCommand.prototype.executeCore = function (state, parameter) {\r\n ModelUtils_1.ModelUtils.changeSelectionLocked(this.control.history, this.control.model, this.control.selection, this.getLockState());\r\n return true;\r\n };\r\n return ChangeLockedCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ChangeLockedCommand = ChangeLockedCommand;\r\n\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeShapeImageHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ImageInfo_1 = __webpack_require__(49);\r\nvar ChangeShapeImageHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangeShapeImageHistoryItem, _super);\r\n function ChangeShapeImageHistoryItem(item, imageUrl) {\r\n var _this = _super.call(this) || this;\r\n _this.shapeKey = item.key;\r\n _this.imageUrl = imageUrl;\r\n return _this;\r\n }\r\n ChangeShapeImageHistoryItem.prototype.redo = function (manipulator) {\r\n var item = manipulator.model.findShape(this.shapeKey);\r\n this.oldImage = item.image;\r\n manipulator.changeShapeImage(item, new ImageInfo_1.ImageInfo(this.imageUrl));\r\n };\r\n ChangeShapeImageHistoryItem.prototype.undo = function (manipulator) {\r\n var item = manipulator.model.findShape(this.shapeKey);\r\n manipulator.changeShapeImage(item, this.oldImage);\r\n };\r\n return ChangeShapeImageHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ChangeShapeImageHistoryItem = ChangeShapeImageHistoryItem;\r\n\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerDefaultState = void 0;\r\nvar Event_1 = __webpack_require__(11);\r\nvar MouseHandlerMoveConnectorPointState_1 = __webpack_require__(306);\r\nvar MouseHandlerResizeShapeState_1 = __webpack_require__(307);\r\nvar MouseHandlerMoveConnectorSideState_1 = __webpack_require__(308);\r\nvar MouseHandlerDragParameterPointState_1 = __webpack_require__(309);\r\nvar MouseHandlerCreateConnectorState_1 = __webpack_require__(310);\r\nvar MouseHandlerMoveConnectorOrthogonalSideState_1 = __webpack_require__(311);\r\nvar MouseHandlerToolboxDraggingState_1 = __webpack_require__(312);\r\nvar MouseHandlerMoveConnectorTextState_1 = __webpack_require__(313);\r\nvar MouseHandlerDefaultStateBase_1 = __webpack_require__(150);\r\nvar MouseHandlerMoveShapeState_1 = __webpack_require__(319);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar MouseHandlerMoveConnectorState_1 = __webpack_require__(320);\r\nvar MouseHandlerDefaultState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerDefaultState, _super);\r\n function MouseHandlerDefaultState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerDefaultState.prototype.finish = function () {\r\n this.visualizerManager.resetConnectionPoints();\r\n _super.prototype.finish.call(this);\r\n };\r\n MouseHandlerDefaultState.prototype.onMouseDownCore = function (evt) {\r\n if (this.handler.canScrollPage(evt))\r\n this.startScrolling(evt);\r\n else if (evt.button === Event_1.MouseButton.Left && evt.source.type === Event_1.MouseEventElementType.ConnectorText) {\r\n this.handler.changeSingleSelection(evt.source.key);\r\n this.handler.switchState(new MouseHandlerMoveConnectorTextState_1.MouseHandlerMoveConnectorTextState(this.handler, this.history, this.model));\r\n }\r\n else if (evt.button === Event_1.MouseButton.Left && evt.source.type === Event_1.MouseEventElementType.ShapeResizeBox)\r\n this.handler.switchState(new MouseHandlerResizeShapeState_1.MouseHandlerResizeShapeState(this.handler, this.history, this.model, this.selection, this.visualizerManager, this.settings));\r\n else if (evt.button === Event_1.MouseButton.Left && evt.source.type === Event_1.MouseEventElementType.ShapeParameterBox)\r\n this.handler.switchState(new MouseHandlerDragParameterPointState_1.MouseHandlerDragParameterPointState(this.handler, this.history, this.model));\r\n else if (evt.button === Event_1.MouseButton.Left && evt.source.type === Event_1.MouseEventElementType.ConnectorPoint)\r\n this.handler.switchState(new MouseHandlerMoveConnectorPointState_1.MouseHandlerMoveConnectorPointState(this.handler, this.history, this.model, this.visualizerManager));\r\n else if (evt.button === Event_1.MouseButton.Left && evt.source.type === Event_1.MouseEventElementType.ConnectorSide)\r\n this.handler.switchState(new MouseHandlerMoveConnectorSideState_1.MouseHandlerMoveConnectorSideState(this.handler, this.history, this.model));\r\n else if (evt.button === Event_1.MouseButton.Left && evt.source.type === Event_1.MouseEventElementType.ConnectorOrthogonalSide)\r\n this.handler.switchState(new MouseHandlerMoveConnectorOrthogonalSideState_1.MouseHandlerMoveConnectorOrthogonalSideState(this.handler, this.history, this.model));\r\n else if (evt.button === Event_1.MouseButton.Left && evt.source.type === Event_1.MouseEventElementType.ShapeConnectionPoint)\r\n this.handler.switchState(new MouseHandlerCreateConnectorState_1.MouseHandlerCreateConnectorState(this.handler, this.history, this.model, this.visualizerManager, this.shapeDescriptionManager, this.selection));\r\n else\r\n _super.prototype.onMouseDownCore.call(this, evt);\r\n };\r\n MouseHandlerDefaultState.prototype.onDragDiagramItemOnMouseDown = function (evt) {\r\n if (!this.handler.canAddDiagramItemToSelection(evt))\r\n _super.prototype.onDragDiagramItemOnMouseDown.call(this, evt);\r\n else if (evt.source.type === Event_1.MouseEventElementType.Shape)\r\n this.handler.switchState(new MouseHandlerMoveShapeState_1.MouseHandlerMoveShapeState(this.handler, this.history, this.model, this.selection, this.visualizerManager));\r\n else if (evt.source.type === Event_1.MouseEventElementType.Connector)\r\n this.handler.switchState(new MouseHandlerMoveConnectorState_1.MouseHandlerMoveConnectorState(this.handler, this.history, this.model, this.selection, this.visualizerManager));\r\n };\r\n MouseHandlerDefaultState.prototype.onDragStart = function (evt) {\r\n this.handler.switchState(new MouseHandlerToolboxDraggingState_1.MouseHandlerBeforeToolboxDraggingState(this.handler, this.history, this.model, this.selection, this.visualizerManager, this.shapeDescriptionManager));\r\n this.handler.state.onDragStart(evt);\r\n };\r\n MouseHandlerDefaultState.prototype.onMouseMoveCore = function (evt) {\r\n this.updateConnectionsOnMouseMove(evt);\r\n _super.prototype.onMouseMoveCore.call(this, evt);\r\n };\r\n MouseHandlerDefaultState.prototype.onMouseUp = function (evt) {\r\n if (this.handler.canRemoveDiagramItemToSelection(evt))\r\n this.handler.removeDiagramItemFromSelection(evt.button, evt.source.key);\r\n else\r\n _super.prototype.onMouseUp.call(this, evt);\r\n };\r\n MouseHandlerDefaultState.prototype.updateConnectionsOnMouseMove = function (evt) {\r\n var item = this.model.findItem(evt.source.key);\r\n this.visualizerManager.updateConnections(item, evt.source.type, evt.source.value);\r\n };\r\n MouseHandlerDefaultState.prototype.canDragObjectOnMouseDown = function (key) {\r\n return true;\r\n };\r\n MouseHandlerDefaultState.prototype.canExpandContainerOnMouseDown = function (key) {\r\n return true;\r\n };\r\n MouseHandlerDefaultState.prototype.canClearSelectionOnMouseDown = function () {\r\n return false;\r\n };\r\n MouseHandlerDefaultState.prototype.processOnMouseMoveAfterLimit = function (evt) {\r\n this.startSelection(evt);\r\n };\r\n MouseHandlerDefaultState.prototype.canSelectOnMouseUp = function (key) {\r\n return false;\r\n };\r\n MouseHandlerDefaultState.prototype.canClearSelectionOnMouseUp = function () {\r\n return true;\r\n };\r\n MouseHandlerDefaultState.prototype.onConnectionPointsShow = function (key, points) {\r\n var _this = this;\r\n var shape = this.model.findShape(key);\r\n if (shape)\r\n points.forEach(function (point, index) {\r\n point.allowed = _this.handler.canPerformChangeConnectionOnUpdateUI(undefined, { item: shape, position: Connector_1.ConnectorPosition.Begin, connectionPointIndex: index });\r\n });\r\n };\r\n return MouseHandlerDefaultState;\r\n}(MouseHandlerDefaultStateBase_1.MouseHandlerDefaultStateBase));\r\nexports.MouseHandlerDefaultState = MouseHandlerDefaultState;\r\n\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerMoveConnectorPointStateBase = void 0;\r\nvar Connector_1 = __webpack_require__(7);\r\nvar Event_1 = __webpack_require__(11);\r\nvar MouseHandlerDraggingState_1 = __webpack_require__(32);\r\nvar DeleteConnectionHistoryItem_1 = __webpack_require__(64);\r\nvar AddConnectionHistoryItem_1 = __webpack_require__(47);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar MouseHandlerMoveConnectorPointStateBase = /** @class */ (function (_super) {\r\n __extends(MouseHandlerMoveConnectorPointStateBase, _super);\r\n function MouseHandlerMoveConnectorPointStateBase(handler, history, model, visualizerManager) {\r\n var _this = _super.call(this, handler, history) || this;\r\n _this.model = model;\r\n _this.visualizerManager = visualizerManager;\r\n return _this;\r\n }\r\n MouseHandlerMoveConnectorPointStateBase.prototype.finish = function () {\r\n this.visualizerManager.resetConnectionTarget();\r\n this.visualizerManager.resetConnectionPoints();\r\n _super.prototype.finish.call(this);\r\n };\r\n MouseHandlerMoveConnectorPointStateBase.prototype.onMouseDown = function (evt) {\r\n _super.prototype.onMouseDown.call(this, evt);\r\n if (this.connector)\r\n this.handler.addInteractingItem(this.connector);\r\n };\r\n MouseHandlerMoveConnectorPointStateBase.prototype.onMouseMove = function (evt) {\r\n _super.prototype.onMouseMove.call(this, evt);\r\n if (!this.allowAttachToObjects(evt, false, false)) {\r\n this.visualizerManager.resetConnectionTarget();\r\n this.visualizerManager.resetConnectionPoints();\r\n }\r\n else if (this.connector) {\r\n var item = this.connector.getExtremeItem(this.pointPosition);\r\n this.visualizerManager.setConnectionTarget(item, evt.source.type);\r\n var pointIndex = this.connector.getExtremeConnectionPointIndex(this.pointPosition);\r\n if (!item && this.oppositeConnectionPointIndex !== -1 || !this.allowAttachToObjects(evt, true, false))\r\n item = this.model.findItem(evt.source.key);\r\n this.visualizerManager.setConnectionPoints(item, evt.source.type, pointIndex, true);\r\n }\r\n };\r\n MouseHandlerMoveConnectorPointStateBase.prototype.onApplyChanges = function (evt) {\r\n var point = this.getSnappedPoint(evt, evt.modelPoint);\r\n if (this.pointPosition !== undefined) {\r\n if (this.oppositePointPosition === undefined) {\r\n this.oppositePointPosition = this.getOppositePointPosition();\r\n this.oppositeItem = this.connector.getExtremeItem(this.oppositePointPosition);\r\n this.oppositeConnectionPointIndex = this.connector.getExtremeConnectionPointIndex(this.oppositePointPosition);\r\n }\r\n this.targetItem = this.model.findItem(evt.source.key);\r\n var item = this.allowAttachToObjects(evt, true, true) ? this.targetItem : undefined;\r\n var connectionPointIndex = -1;\r\n if (evt.source.type === Event_1.MouseEventElementType.ShapeConnectionPoint)\r\n connectionPointIndex = parseInt(evt.source.value);\r\n if (item && (evt.source.type === Event_1.MouseEventElementType.Shape || evt.source.type === Event_1.MouseEventElementType.ShapeConnectionPoint) &&\r\n (this.connector.getExtremeItem(this.oppositePointPosition) !== item ||\r\n (connectionPointIndex !== -1 && this.oppositeConnectionPointIndex !== -1 &&\r\n connectionPointIndex !== this.oppositeConnectionPointIndex))) {\r\n if (this.connector.getExtremeItem(this.pointPosition) !== item ||\r\n this.connector.getExtremeConnectionPointIndex(this.pointPosition) !== connectionPointIndex) {\r\n if (this.connector.getExtremeItem(this.pointPosition))\r\n this.history.addAndRedo(new DeleteConnectionHistoryItem_1.DeleteConnectionHistoryItem(this.connector, this.pointPosition));\r\n this.history.addAndRedo(new AddConnectionHistoryItem_1.AddConnectionHistoryItem(this.connector, item, connectionPointIndex, this.pointPosition));\r\n if (this.oppositeItem)\r\n this.updateOppositeItemConnectionPointIndex(connectionPointIndex);\r\n }\r\n point = item.getConnectionPointPosition(connectionPointIndex, this.connector.points[this.pointIndex + (this.pointPosition === Connector_1.ConnectorPosition.End ? -1 : 1)]);\r\n this.visualizerManager.setConnectionPointIndex(connectionPointIndex);\r\n }\r\n else if (this.connector.getExtremeItem(this.pointPosition)) {\r\n this.history.addAndRedo(new DeleteConnectionHistoryItem_1.DeleteConnectionHistoryItem(this.connector, this.pointPosition));\r\n if (this.oppositeItem)\r\n this.updateOppositeItemConnectionPointIndex(this.oppositeConnectionPointIndex);\r\n }\r\n }\r\n ModelUtils_1.ModelUtils.moveConnectorPoint(this.history, this.connector, this.pointIndex, point);\r\n ModelUtils_1.ModelUtils.updateConnectorAttachedPoints(this.history, this.model, this.connector);\r\n this.handler.tryUpdateModelSize();\r\n };\r\n MouseHandlerMoveConnectorPointStateBase.prototype.updateOppositeItemConnectionPointIndex = function (connectionPointIndex) {\r\n var pointIndex = connectionPointIndex === -1 ? -1 : this.oppositeConnectionPointIndex;\r\n if (pointIndex !== this.connector.getExtremeConnectionPointIndex(this.oppositePointPosition)) {\r\n this.history.addAndRedo(new DeleteConnectionHistoryItem_1.DeleteConnectionHistoryItem(this.connector, this.oppositePointPosition));\r\n this.history.addAndRedo(new AddConnectionHistoryItem_1.AddConnectionHistoryItem(this.connector, this.oppositeItem, pointIndex, this.oppositePointPosition));\r\n }\r\n };\r\n MouseHandlerMoveConnectorPointStateBase.prototype.onFinishWithChanges = function () {\r\n ModelUtils_1.ModelUtils.updateConnectorContainer(this.history, this.model, this.connector);\r\n ModelUtils_1.ModelUtils.deleteConnectorUnnecessaryPoints(this.history, this.connector);\r\n };\r\n MouseHandlerMoveConnectorPointStateBase.prototype.getDraggingElementKeys = function () {\r\n return this.connector ? [this.connector.key] : [];\r\n };\r\n MouseHandlerMoveConnectorPointStateBase.prototype.getOppositePointPosition = function () {\r\n return this.pointPosition === Connector_1.ConnectorPosition.Begin ? Connector_1.ConnectorPosition.End : Connector_1.ConnectorPosition.Begin;\r\n };\r\n MouseHandlerMoveConnectorPointStateBase.prototype.allowAttachToObjects = function (evt, checkContainers, checkOppositeItem) {\r\n if (this.handler.canMultipleSelection(evt))\r\n return false;\r\n var connector = this.connector;\r\n if (connector && evt.source.type === Event_1.MouseEventElementType.Shape) {\r\n var targetItem_1 = this.model.findItem(evt.source.key);\r\n if (checkContainers && this.model.findItemContainerCore(connector, function (c) { return c === targetItem_1; }))\r\n return false;\r\n if (checkContainers && this.oppositeItem && this.model.findItemContainerCore(this.oppositeItem, function (c) { return c === targetItem_1; }))\r\n return false;\r\n if (checkOppositeItem && this.oppositeItem === targetItem_1 && this.oppositeConnectionPointIndex === -1)\r\n return false;\r\n }\r\n return true;\r\n };\r\n MouseHandlerMoveConnectorPointStateBase.prototype.onConnectionPointsShow = function (key, points) {\r\n var _this = this;\r\n if (this.connector && this.pointPosition !== undefined && (this.connector.endItem && this.connector.endItem.key === key || this.connector.beginItem && this.connector.beginItem.key === key)) {\r\n var position_1 = this.connector.beginItem && this.connector.beginItem.key === key ? Connector_1.ConnectorPosition.Begin : Connector_1.ConnectorPosition.End;\r\n points.forEach(function (point, index) {\r\n point.allowed = _this.handler.canPerformChangeConnectionOnUpdateUI(_this.connector, { item: _this.connector.getExtremeItem(position_1), position: position_1, connectionPointIndex: index });\r\n });\r\n }\r\n };\r\n MouseHandlerMoveConnectorPointStateBase.prototype.onConnectionTargetShow = function (key, info) {\r\n if (this.connector && this.pointPosition !== undefined && (this.connector.endItem && this.connector.endItem.key === key || this.connector.beginItem && this.connector.beginItem.key === key)) {\r\n var position = this.connector.beginItem && this.connector.beginItem.key === key ? Connector_1.ConnectorPosition.Begin : Connector_1.ConnectorPosition.End;\r\n info.allowed = this.handler.canPerformChangeConnectionOnUpdateUI(this.connector, { item: this.connector.getExtremeItem(position), position: position, connectionPointIndex: -1 });\r\n }\r\n };\r\n return MouseHandlerMoveConnectorPointStateBase;\r\n}(MouseHandlerDraggingState_1.MouseHandlerDraggingState));\r\nexports.MouseHandlerMoveConnectorPointStateBase = MouseHandlerMoveConnectorPointStateBase;\r\n\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerDefaultStateBase = void 0;\r\nvar MouseHandlerStateBase_1 = __webpack_require__(39);\r\nvar Event_1 = __webpack_require__(11);\r\nvar MouseHandlerToggleShapeExpandedState_1 = __webpack_require__(315);\r\nvar MouseHandlerSelectionState_1 = __webpack_require__(317);\r\nvar MouseHandlerZoomOnWheelState_1 = __webpack_require__(318);\r\nvar MouseHandlerScrollingState_1 = __webpack_require__(151);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar MouseHandlerDefaultStateBase = /** @class */ (function (_super) {\r\n __extends(MouseHandlerDefaultStateBase, _super);\r\n function MouseHandlerDefaultStateBase(handler, history, selection, model, view, visualizerManager, shapeDescriptionManager, settings) {\r\n var _this = _super.call(this, handler) || this;\r\n _this.history = history;\r\n _this.selection = selection;\r\n _this.model = model;\r\n _this.view = view;\r\n _this.visualizerManager = visualizerManager;\r\n _this.shapeDescriptionManager = shapeDescriptionManager;\r\n _this.settings = settings;\r\n return _this;\r\n }\r\n MouseHandlerDefaultStateBase.prototype.onKeyDown = function (evt) {\r\n this.handler.onStartScrollPageByKeyboard(evt);\r\n };\r\n MouseHandlerDefaultStateBase.prototype.onKeyUp = function (evt) {\r\n this.handler.onFinishScrollPageByKeyboard(evt);\r\n };\r\n MouseHandlerDefaultStateBase.prototype.onMouseDown = function (evt) {\r\n if (!this.handler.canFinishTextEditing())\r\n return;\r\n this.onMouseDownCore(evt);\r\n if (this.handler.state !== this)\r\n this.handler.state.onMouseDown(evt);\r\n };\r\n MouseHandlerDefaultStateBase.prototype.onMouseDownCore = function (evt) {\r\n if (this.handler.canScrollPage(evt))\r\n this.startScrolling(evt);\r\n else if (this.hasDiagramItem(evt) && this.canDragObjectOnMouseDown(evt.source.key))\r\n this.onDragDiagramItemOnMouseDown(evt);\r\n else if (evt.button === Event_1.MouseButton.Left && evt.source.type === Event_1.MouseEventElementType.ShapeExpandButton && this.canExpandContainerOnMouseDown(evt.source.key))\r\n this.onShapeExpandBtnMouseDown(evt);\r\n else {\r\n if (!this.hasDiagramItem(evt) && this.canClearSelectionOnMouseDown())\r\n this.clearSelection();\r\n this.startPoint = evt.modelPoint;\r\n }\r\n };\r\n MouseHandlerDefaultStateBase.prototype.onDragDiagramItemOnMouseDown = function (evt) {\r\n this.replaceSelection(evt);\r\n };\r\n MouseHandlerDefaultStateBase.prototype.onMouseMove = function (evt) {\r\n this.onMouseMoveCore(evt);\r\n if (this.handler.state !== this) {\r\n this.handler.state.onMouseDown(this.handler.mouseDownEvent);\r\n this.handler.state.onMouseMove(evt);\r\n }\r\n };\r\n MouseHandlerDefaultStateBase.prototype.onMouseMoveCore = function (evt) {\r\n if (this.startPoint &&\r\n (Math.abs(this.startPoint.x - evt.modelPoint.x) > MouseHandlerDefaultStateBase.startLimit ||\r\n Math.abs(this.startPoint.y - evt.modelPoint.y) > MouseHandlerDefaultStateBase.startLimit)) {\r\n this.processOnMouseMoveAfterLimit(evt);\r\n this.startPoint = undefined;\r\n }\r\n };\r\n MouseHandlerDefaultStateBase.prototype.onMouseUp = function (evt) {\r\n this.onMouseUpCore(evt);\r\n if (this.handler.state !== this)\r\n this.handler.state.onMouseUp(evt);\r\n };\r\n MouseHandlerDefaultStateBase.prototype.onMouseUpCore = function (evt) {\r\n if (evt.source.type === Event_1.MouseEventElementType.Shape && this.canSelectOnMouseUp(evt.source.key))\r\n this.replaceSelection(evt);\r\n else if (evt.source.type === Event_1.MouseEventElementType.Connector && this.canSelectOnMouseUp(evt.source.key))\r\n this.replaceSelection(evt);\r\n else if (evt.source.type === Event_1.MouseEventElementType.ShapeExpandButton && this.canSelectOnMouseUp(evt.source.key))\r\n this.replaceSelection(evt);\r\n else if (this.startPoint && this.canClearSelectionOnMouseUp())\r\n this.clearSelection();\r\n this.startPoint = undefined;\r\n };\r\n MouseHandlerDefaultStateBase.prototype.onMouseWheel = function (evt) {\r\n if (this.handler.canStartZoomOnWheel(evt)) {\r\n this.handler.switchState(new MouseHandlerZoomOnWheelState_1.MouseHandlerZoomOnWheelState(this.handler, this.settings, this.view));\r\n this.handler.state.onMouseWheel(evt);\r\n return true;\r\n }\r\n return false;\r\n };\r\n MouseHandlerDefaultStateBase.prototype.onLongTouch = function (evt) {\r\n this.replaceMultipleSelection(evt.source.key);\r\n };\r\n MouseHandlerDefaultStateBase.prototype.finish = function () {\r\n this.startPoint = undefined;\r\n };\r\n MouseHandlerDefaultStateBase.prototype.startSelection = function (evt) {\r\n if (evt.button === Event_1.MouseButton.Left)\r\n this.handler.switchState(new MouseHandlerSelectionState_1.MouseHandlerSelectionState(this.handler, this.selection, this.visualizerManager));\r\n };\r\n MouseHandlerDefaultStateBase.prototype.startScrolling = function (evt) {\r\n if (evt.button === Event_1.MouseButton.Left) {\r\n this.handler.raiseDragScrollStart();\r\n this.handler.switchState(new MouseHandlerScrollingState_1.MouseHandlerScrollingState(this.handler, this.view, this.selection));\r\n }\r\n };\r\n MouseHandlerDefaultStateBase.prototype.inSelection = function (key) {\r\n return this.selection.hasKey(key);\r\n };\r\n MouseHandlerDefaultStateBase.prototype.hasDiagramItem = function (evt) {\r\n return evt.source.type === Event_1.MouseEventElementType.Shape ||\r\n evt.source.type === Event_1.MouseEventElementType.Connector;\r\n };\r\n MouseHandlerDefaultStateBase.prototype.onShapeExpandBtnMouseDown = function (evt) {\r\n this.handler.addDiagramItemToSelection(evt);\r\n this.handler.switchState(new MouseHandlerToggleShapeExpandedState_1.MouseHandlerToggleShapeExpandedState(this.handler, this.history, this.model, this.selection));\r\n };\r\n MouseHandlerDefaultStateBase.prototype.replaceSelection = function (evt) {\r\n if (this.handler.canMultipleSelection(evt))\r\n this.replaceMultipleSelection(evt.source.key);\r\n else\r\n this.handler.changeSingleSelection(evt.source.key);\r\n };\r\n MouseHandlerDefaultStateBase.prototype.replaceMultipleSelection = function (key) {\r\n if (this.selection.hasKey(key))\r\n this.selection.remove(key);\r\n else\r\n this.selection.add(key);\r\n };\r\n MouseHandlerDefaultStateBase.prototype.clearSelection = function () {\r\n this.selection.set([]);\r\n };\r\n MouseHandlerDefaultStateBase.startLimit = unit_converter_1.UnitConverter.pixelsToTwips(1);\r\n return MouseHandlerDefaultStateBase;\r\n}(MouseHandlerStateBase_1.MouseHandlerStateBase));\r\nexports.MouseHandlerDefaultStateBase = MouseHandlerDefaultStateBase;\r\n\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerScrollingState = void 0;\r\nvar MouseHandlerStateBase_1 = __webpack_require__(39);\r\nvar Event_1 = __webpack_require__(11);\r\nvar point_1 = __webpack_require__(1);\r\nvar MouseHandlerScrollingState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerScrollingState, _super);\r\n function MouseHandlerScrollingState(handler, view, selection) {\r\n var _this = _super.call(this, handler) || this;\r\n _this.view = view;\r\n _this.selection = selection;\r\n _this.lastOffset = new point_1.Point(0, 0);\r\n return _this;\r\n }\r\n MouseHandlerScrollingState.prototype.onKeyUp = function (evt) {\r\n this.handler.onFinishScrollPageByKeyboard(evt);\r\n };\r\n MouseHandlerScrollingState.prototype.onMouseDown = function (evt) {\r\n evt.preventDefault = true;\r\n this.startPoint = this.getPointByEvent(evt);\r\n };\r\n MouseHandlerScrollingState.prototype.onMouseMove = function (evt) {\r\n if (evt.button !== Event_1.MouseButton.Left) {\r\n this.handler.onFinishScrollPageByMouse(evt);\r\n return;\r\n }\r\n var prevPoint = this.currentPoint || this.startPoint;\r\n evt.preventDefault = true;\r\n var point = this.getPointByEvent(evt);\r\n var actualOffset = this.view.scrollBy(new point_1.Point(point.x - prevPoint.x, point.y - prevPoint.y));\r\n this.lastOffset = this.lastOffset.clone().offset(actualOffset.x, actualOffset.y);\r\n this.currentPoint = point;\r\n };\r\n MouseHandlerScrollingState.prototype.onMouseUp = function (evt) {\r\n if (evt.button === Event_1.MouseButton.Left)\r\n this.handler.onFinishScrollPageByMouse(evt);\r\n this.handler.switchToDefaultState();\r\n };\r\n MouseHandlerScrollingState.prototype.cancelChanges = function () {\r\n if (this.currentPoint)\r\n this.view.scrollBy(this.lastOffset.clone().multiply(-1, -1));\r\n };\r\n MouseHandlerScrollingState.prototype.finish = function () {\r\n if (!this.currentPoint || !this.startPoint || this.currentPoint.equals(this.startPoint))\r\n this.selection.set([]);\r\n _super.prototype.finish.call(this);\r\n };\r\n MouseHandlerScrollingState.prototype.getPointByEvent = function (evt) {\r\n return evt.offsetPoint;\r\n };\r\n return MouseHandlerScrollingState;\r\n}(MouseHandlerStateBase_1.MouseHandlerCancellableState));\r\nexports.MouseHandlerScrollingState = MouseHandlerScrollingState;\r\n\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerDragDiagramItemStateBase = exports.DraggingConnector = void 0;\r\nvar vector_1 = __webpack_require__(56);\r\nvar ChangeConnectorPointsHistoryItem_1 = __webpack_require__(153);\r\nvar ConnectorRenderPoint_1 = __webpack_require__(28);\r\nvar ConnectorRenderPointsContext_1 = __webpack_require__(86);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar Event_1 = __webpack_require__(11);\r\nvar MouseHandlerDraggingState_1 = __webpack_require__(32);\r\nvar DraggingConnector = /** @class */ (function () {\r\n function DraggingConnector(connector) {\r\n this.connector = connector;\r\n this.startPoints = connector.points.map(function (x) { return x.clone(); });\r\n this.startRenderContext = connector.createRenderPointsContext();\r\n }\r\n return DraggingConnector;\r\n}());\r\nexports.DraggingConnector = DraggingConnector;\r\nvar DraggingShape = /** @class */ (function () {\r\n function DraggingShape(shape) {\r\n this.shape = shape;\r\n this.startPosition = shape.position.clone();\r\n }\r\n return DraggingShape;\r\n}());\r\nvar MouseHandlerDragDiagramItemStateBase = /** @class */ (function (_super) {\r\n __extends(MouseHandlerDragDiagramItemStateBase, _super);\r\n function MouseHandlerDragDiagramItemStateBase(handler, history, model, selection, visualizerManager) {\r\n var _this = _super.call(this, handler, history) || this;\r\n _this.model = model;\r\n _this.selection = selection;\r\n _this.visualizerManager = visualizerManager;\r\n _this.startScrollLeft = 0;\r\n _this.startScrollTop = 0;\r\n return _this;\r\n }\r\n MouseHandlerDragDiagramItemStateBase.prototype.finish = function () {\r\n this.visualizerManager.resetExtensionLines();\r\n this.visualizerManager.resetContainerTarget();\r\n this.visualizerManager.resetConnectionTarget();\r\n this.visualizerManager.resetConnectionPoints();\r\n _super.prototype.finish.call(this);\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.onMouseDown = function (evt) {\r\n var _this = this;\r\n this.handler.addDiagramItemToSelection(evt);\r\n this.shouldClone = this.handler.canCopySelectedItems(evt);\r\n this.startPoint = evt.modelPoint;\r\n this.initDrag();\r\n this.lockInitDrag = false;\r\n if (!this.shouldClone)\r\n this.draggingShapes.forEach(function (draggingShape) { return _this.handler.addInteractingItem(draggingShape.shape, ModelOperationSettings_1.DiagramModelOperation.MoveShape); });\r\n _super.prototype.onMouseDown.call(this, evt);\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.onMouseMove = function (evt) {\r\n this.mouseMoveEvent = evt;\r\n if (evt.button !== Event_1.MouseButton.Left) {\r\n this.cancelChanges();\r\n this.handler.switchToDefaultState();\r\n }\r\n if (!this.canApplyChangesOnMouseMove(this.startPoint, evt.modelPoint))\r\n return;\r\n if (this.handler.canCopySelectedItems(evt))\r\n if (!this.lockInitDrag) {\r\n this.cancelChanges();\r\n this.shouldClone = true;\r\n this.copySelection();\r\n this.initDrag();\r\n this.lockInitDrag = true;\r\n }\r\n this.onApplyChanges(evt);\r\n this.onAfterApplyChanges();\r\n this.updateContainers(evt);\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.updateContainers = function (evt) {\r\n this.visualizerManager.setExtensionLines(this.selection.getSelectedShapes(false, true));\r\n var container = ModelUtils_1.ModelUtils.findContainerByEventKey(this.model, this.selection, evt.source.key);\r\n if (container && this.allowInsertToContainer(evt, container))\r\n this.visualizerManager.setContainerTarget(container, evt.source.type);\r\n else\r\n this.visualizerManager.resetContainerTarget();\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.onMouseUp = function (evt) {\r\n _super.prototype.onMouseUp.call(this, evt);\r\n this.handler.removeDiagramItemFromSelection(evt.button, evt.source.key);\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.onApplyChanges = function (evt) {\r\n var _this = this;\r\n this.calculateFixedPosition(evt);\r\n if (this.draggingShapes.length) {\r\n this.draggingShapes.forEach(function (ds) { return _this.moveShape(ds, evt); });\r\n var firstDraggingShape = this.draggingShapes[0];\r\n var offset_1 = vector_1.Vector.fromPoints(firstDraggingShape.startPosition.clone(), firstDraggingShape.shape.position.clone());\r\n if (offset_1.x || offset_1.y)\r\n this.draggingConnectors.forEach(function (dc) { return _this.moveConnectorCore(dc.connector, dc.startPoints, dc.startRenderContext, offset_1); });\r\n }\r\n else\r\n this.draggingConnectors.forEach(function (x) { return _this.moveConnector(x, evt); });\r\n var container = ModelUtils_1.ModelUtils.findContainerByEventKey(this.model, this.selection, evt.source.key);\r\n if (container && this.allowInsertToContainer(evt, container))\r\n ModelUtils_1.ModelUtils.insertSelectionToContainer(this.history, this.model, this.selection, container);\r\n else\r\n ModelUtils_1.ModelUtils.removeSelectionFromContainer(this.history, this.model, this.selection);\r\n this.handler.tryUpdateModelSize(function (offsetLeft, offsetTop) {\r\n _this.modelConnectorsWithoutBeginItemInfo.forEach(function (pi) {\r\n pi.point.x += offsetLeft;\r\n pi.point.y += offsetTop;\r\n });\r\n _this.modelConnectorsWithoutEndItemInfo.forEach(function (pi) {\r\n pi.point.x += offsetLeft;\r\n pi.point.y += offsetTop;\r\n });\r\n });\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.getDraggingElementKeys = function () {\r\n return this.draggingShapes.map(function (x) { return x.shape.key; }).concat(this.draggingConnectors.map(function (x) { return x.connector.key; }));\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.getSnappedPoint = function (evt, point) {\r\n return this.handler.getSnappedPointOnDragDiagramItem(evt, point, this.fixedX, this.fixedY, this.startPoint);\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.initDrag = function () {\r\n this.selectedItems = ModelUtils_1.ModelUtils.createSelectedItems(this.selection);\r\n this.initDraggingShapes();\r\n if (!this.areValidDraggingShapes) {\r\n this.handler.switchToDefaultState();\r\n return;\r\n }\r\n this.initDraggingConnectors();\r\n if (!this.areValidDraggingConnectors) {\r\n this.handler.switchToDefaultState();\r\n return;\r\n }\r\n this.modelConnectorsWithoutBeginItemInfo = this.createModelConnectorsWithoutBeginItemInfo();\r\n this.modelConnectorsWithoutEndItemInfo = this.createModelConnectorsWithoutEndItemInfo();\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.initDraggingShapes = function () {\r\n this.draggingShapes = this.selection.getSelectedShapes(false, true).map(function (s) { return new DraggingShape(s); });\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.initDraggingConnectors = function () {\r\n var _this = this;\r\n this.draggingConnectors = [];\r\n this.draggingConnectorsIndexByKey = {};\r\n this.selection.getSelectedConnectors(false, true).forEach(function (c) { return _this.registerConnector(c); });\r\n if (this.shouldClone)\r\n return;\r\n this.draggingShapes.forEach(function (x) {\r\n var attachedConnectors = x.shape.attachedConnectors;\r\n if (attachedConnectors)\r\n attachedConnectors.forEach(function (c) {\r\n if (!_this.containsDraggingConnectorByKey(c.key))\r\n _this.registerConnector(c);\r\n });\r\n });\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.copySelection = function () {\r\n var _this = this;\r\n ModelUtils_1.ModelUtils.cloneSelectionToOffset(this.history, this.model, function (key) {\r\n var item = _this.model.findItem(key);\r\n if (item)\r\n _this.handler.addInteractingItem(item, ModelOperationSettings_1.DiagramModelOperation.AddShape);\r\n }, this.selection, 0, 0);\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.calculateFixedPosition = function (evt) {\r\n this.fixedX = false;\r\n this.fixedY = false;\r\n if (this.handler.canCalculateFixedPosition(evt)) {\r\n var dx = Math.abs(this.startPoint.x - evt.modelPoint.x);\r\n var dy = Math.abs(this.startPoint.y - evt.modelPoint.y);\r\n if (dx < dy)\r\n this.fixedX = true;\r\n else\r\n this.fixedY = true;\r\n }\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.containsDraggingConnectorByKey = function (key) {\r\n return this.draggingConnectorsIndexByKey[key] !== undefined;\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.allowInsertToContainer = function (evt, container) {\r\n if (this.handler.canMultipleSelection(evt))\r\n return false;\r\n return container && container.expanded && ModelUtils_1.ModelUtils.canInsertSelectionToContainer(this.model, this.selection, container);\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.registerConnector = function (connector) {\r\n this.draggingConnectorsIndexByKey[connector.key] = this.draggingConnectors.push(new DraggingConnector(connector)) - 1;\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.createModelConnectorsWithoutBeginItemInfo = function () {\r\n var _this = this;\r\n var connectors = this.model.findConnectorsCore(function (c) { return !c.beginItem && !_this.containsDraggingConnectorByKey(c.key); });\r\n return connectors.map(function (c) {\r\n return {\r\n connector: c,\r\n point: c.points[0].clone()\r\n };\r\n });\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.createModelConnectorsWithoutEndItemInfo = function () {\r\n var _this = this;\r\n var connectors = this.model.findConnectorsCore(function (c) { return !c.endItem && !_this.containsDraggingConnectorByKey(c.key); });\r\n return connectors.map(function (c) {\r\n return {\r\n connector: c,\r\n point: c.points[c.points.length - 1].clone()\r\n };\r\n });\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.moveConnector = function (dc, evt) {\r\n var startPoints = dc.startPoints;\r\n var offset = vector_1.Vector.fromPoints(startPoints[0].clone(), this.getSnappedPoint(evt, startPoints[0]).clone());\r\n if (offset.x || offset.y)\r\n this.moveConnectorCore(dc.connector, startPoints, dc.startRenderContext, offset);\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.moveConnectorCore = function (connector, startPoints, startRenderContext, offset) {\r\n if (this.shouldClone || ModelUtils_1.ModelUtils.canMoveConnector(this.selectedItems, connector))\r\n this.offsetConnector(connector, startPoints, startRenderContext, offset);\r\n else\r\n this.changeConnector(connector);\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.moveShape = function (ds, evt) {\r\n var _this = this;\r\n var shape = ds.shape;\r\n var position = this.getSnappedPoint(evt, ds.startPosition);\r\n ModelUtils_1.ModelUtils.setShapePosition(this.history, this.model, shape, position);\r\n ModelUtils_1.ModelUtils.updateMovingShapeConnections(this.history, shape, this.modelConnectorsWithoutBeginItemInfo, this.modelConnectorsWithoutEndItemInfo, function () {\r\n _this.visualizerManager.resetConnectionTarget();\r\n _this.visualizerManager.resetConnectionPoints();\r\n }, function (shape, connectionPointIndex) {\r\n _this.visualizerManager.setConnectionTarget(shape, Event_1.MouseEventElementType.Shape);\r\n _this.visualizerManager.setConnectionPoints(shape, Event_1.MouseEventElementType.Shape, connectionPointIndex, true);\r\n }, function (connector) { return _this.handler.addInteractingItem(connector); });\r\n if (!this.draggingConnectors.filter(function (dc) { return !!_this.selectedItems[dc.connector.key]; }).length)\r\n ModelUtils_1.ModelUtils.updateShapeAttachedConnectors(this.history, this.model, shape);\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.offsetConnector = function (connector, startPoints, startRenderContext, offset) {\r\n var _this = this;\r\n var newPoints = startPoints.map(function (p) { return _this.offsetPoint(p, offset); });\r\n if (!newPoints[0].equals(connector.points[0]))\r\n this.history.addAndRedo(new ChangeConnectorPointsHistoryItem_1.ChangeConnectorPointsHistoryItem(connector.key, newPoints, this.offsetRenderContext(startRenderContext, offset)));\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.offsetRenderContext = function (context, offset) {\r\n var _this = this;\r\n if (context === undefined)\r\n return undefined;\r\n return new ConnectorRenderPointsContext_1.ConnectorRenderPointsContext(context.renderPoints.map(function (p) {\r\n var newPoint = _this.offsetPoint(p, offset);\r\n return new ConnectorRenderPoint_1.ConnectorRenderPoint(newPoint.x, newPoint.y, p.pointIndex, p.skipped);\r\n }), true, context.actualRoutingMode);\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.offsetPoint = function (point, offset) {\r\n var pointOffset = vector_1.Vector.fromPoints(point, this.startPoint);\r\n return this.startPoint.clone().offset(offset.x - pointOffset.x, offset.y - pointOffset.y);\r\n };\r\n MouseHandlerDragDiagramItemStateBase.prototype.changeConnector = function (connector) {\r\n ModelUtils_1.ModelUtils.removeConnectorIntermediatePoints(this.history, connector);\r\n ModelUtils_1.ModelUtils.updateConnectorAttachedPoints(this.history, this.model, connector);\r\n };\r\n return MouseHandlerDragDiagramItemStateBase;\r\n}(MouseHandlerDraggingState_1.MouseHandlerDraggingState));\r\nexports.MouseHandlerDragDiagramItemStateBase = MouseHandlerDragDiagramItemStateBase;\r\n\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ReplaceConnectorPointsHistoryItem = exports.ChangeConnectorPointsHistoryItem = exports.UpdateConnectorPointsHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar UpdateConnectorPointsHistoryItem = /** @class */ (function (_super) {\r\n __extends(UpdateConnectorPointsHistoryItem, _super);\r\n function UpdateConnectorPointsHistoryItem(connectorKey, newPoints) {\r\n var _this = _super.call(this) || this;\r\n _this.connectorKey = connectorKey;\r\n _this.newPoints = newPoints;\r\n return _this;\r\n }\r\n UpdateConnectorPointsHistoryItem.prototype.redo = function (manipulator) {\r\n var _this = this;\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n this.oldRenderContext = connector.createRenderPointsContext();\r\n this.oldPoints = connector.points.map(function (p) { return p.clone(); });\r\n manipulator.changeConnectorPoints(connector, function (connector) {\r\n connector.points = _this.newPoints;\r\n _this.updateRenderPoints(connector);\r\n });\r\n };\r\n UpdateConnectorPointsHistoryItem.prototype.undo = function (manipulator) {\r\n var _this = this;\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n manipulator.changeConnectorPoints(connector, function (connector) {\r\n connector.points = _this.oldPoints;\r\n connector.replaceRenderPoints(_this.oldRenderContext);\r\n });\r\n };\r\n return UpdateConnectorPointsHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.UpdateConnectorPointsHistoryItem = UpdateConnectorPointsHistoryItem;\r\nvar ChangeConnectorPointsHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangeConnectorPointsHistoryItem, _super);\r\n function ChangeConnectorPointsHistoryItem(connectorKey, newPoints, newRenderContext) {\r\n var _this = _super.call(this, connectorKey, newPoints) || this;\r\n _this.connectorKey = connectorKey;\r\n _this.newPoints = newPoints;\r\n _this.newRenderContext = newRenderContext;\r\n return _this;\r\n }\r\n ChangeConnectorPointsHistoryItem.prototype.updateRenderPoints = function (connector) {\r\n connector.replaceRenderPoints(this.newRenderContext);\r\n };\r\n return ChangeConnectorPointsHistoryItem;\r\n}(UpdateConnectorPointsHistoryItem));\r\nexports.ChangeConnectorPointsHistoryItem = ChangeConnectorPointsHistoryItem;\r\nvar ReplaceConnectorPointsHistoryItem = /** @class */ (function (_super) {\r\n __extends(ReplaceConnectorPointsHistoryItem, _super);\r\n function ReplaceConnectorPointsHistoryItem(connectorKey, newPoints) {\r\n var _this = _super.call(this, connectorKey, newPoints) || this;\r\n _this.connectorKey = connectorKey;\r\n _this.newPoints = newPoints;\r\n return _this;\r\n }\r\n ReplaceConnectorPointsHistoryItem.prototype.updateRenderPoints = function (connector) {\r\n connector.clearRenderPoints();\r\n };\r\n return ReplaceConnectorPointsHistoryItem;\r\n}(UpdateConnectorPointsHistoryItem));\r\nexports.ReplaceConnectorPointsHistoryItem = ReplaceConnectorPointsHistoryItem;\r\n\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerDefaultReadOnlyState = void 0;\r\nvar MouseHandlerDefaultStateBase_1 = __webpack_require__(150);\r\nvar MouseHandlerDefaultReadOnlyState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerDefaultReadOnlyState, _super);\r\n function MouseHandlerDefaultReadOnlyState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerDefaultReadOnlyState.prototype.canDragObjectOnMouseDown = function (key) {\r\n return false;\r\n };\r\n MouseHandlerDefaultReadOnlyState.prototype.canExpandContainerOnMouseDown = function (key) {\r\n return false;\r\n };\r\n MouseHandlerDefaultReadOnlyState.prototype.canClearSelectionOnMouseDown = function () {\r\n return false;\r\n };\r\n MouseHandlerDefaultReadOnlyState.prototype.processOnMouseMoveAfterLimit = function (evt) {\r\n this.startSelection(evt);\r\n };\r\n MouseHandlerDefaultReadOnlyState.prototype.canSelectOnMouseUp = function (key) {\r\n return true;\r\n };\r\n MouseHandlerDefaultReadOnlyState.prototype.canClearSelectionOnMouseUp = function () {\r\n return true;\r\n };\r\n MouseHandlerDefaultReadOnlyState.prototype.updateConnectionsOnMouseMove = function (evt) {\r\n };\r\n return MouseHandlerDefaultReadOnlyState;\r\n}(MouseHandlerDefaultStateBase_1.MouseHandlerDefaultStateBase));\r\nexports.MouseHandlerDefaultReadOnlyState = MouseHandlerDefaultReadOnlyState;\r\n\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeShapeTextHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ChangeShapeTextHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangeShapeTextHistoryItem, _super);\r\n function ChangeShapeTextHistoryItem(item, text) {\r\n var _this = _super.call(this) || this;\r\n _this.shapeKey = item.key;\r\n _this.text = text;\r\n return _this;\r\n }\r\n ChangeShapeTextHistoryItem.prototype.redo = function (manipulator) {\r\n var item = manipulator.model.findShape(this.shapeKey);\r\n this.oldText = item.text;\r\n manipulator.changeShapeText(item, this.text);\r\n };\r\n ChangeShapeTextHistoryItem.prototype.undo = function (manipulator) {\r\n var item = manipulator.model.findShape(this.shapeKey);\r\n manipulator.changeShapeText(item, this.oldText);\r\n };\r\n return ChangeShapeTextHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ChangeShapeTextHistoryItem = ChangeShapeTextHistoryItem;\r\n\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ContextMenuHandler = void 0;\r\nvar Utils_1 = __webpack_require__(3);\r\nvar Event_1 = __webpack_require__(11);\r\nvar key_1 = __webpack_require__(25);\r\nvar batch_updatable_1 = __webpack_require__(79);\r\nvar browser_1 = __webpack_require__(17);\r\nvar ContextMenuHandler = /** @class */ (function (_super) {\r\n __extends(ContextMenuHandler, _super);\r\n function ContextMenuHandler() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.contextMenuVisible = false;\r\n _this.textInputStarted = false;\r\n _this.canHideContextMenu = true;\r\n _this.onVisibilityChanged = new Utils_1.EventDispatcher();\r\n return _this;\r\n }\r\n ContextMenuHandler.prototype.onMouseDown = function (evt) {\r\n if (evt.button === Event_1.MouseButton.Left && evt.source.type !== Event_1.MouseEventElementType.Undefined)\r\n this.hideContextMenu();\r\n };\r\n ContextMenuHandler.prototype.onMouseUp = function (evt) {\r\n if (!browser_1.Browser.MacOSPlatform || browser_1.Browser.MacOSPlatform && this.canHideContextMenu)\r\n this.hideContextMenu();\r\n this.canHideContextMenu = true;\r\n };\r\n ContextMenuHandler.prototype.onContextMenu = function (evt) {\r\n // on Mac OS event sequence is mousedown - contextmenu - mouseup\r\n // on Windows - mousedown - mouseup - contextmenu\r\n // Thats why context menu immediately closes on Mac OS after showing\r\n if (browser_1.Browser.MacOSPlatform)\r\n this.canHideContextMenu = false;\r\n this.showContextMenu(evt.eventPoint, evt.modelPoint);\r\n };\r\n ContextMenuHandler.prototype.onFocus = function (evt) { };\r\n ContextMenuHandler.prototype.onBlur = function (evt) { };\r\n ContextMenuHandler.prototype.onTextInputFocus = function (evt) { };\r\n ContextMenuHandler.prototype.onTextInputBlur = function (evt) { };\r\n ContextMenuHandler.prototype.onLongTouch = function (evt) { };\r\n ContextMenuHandler.prototype.onKeyDown = function (evt) {\r\n if (evt.keyCode === key_1.KeyCode.Esc)\r\n this.hideContextMenu();\r\n };\r\n ContextMenuHandler.prototype.onShortcut = function (evt) {\r\n this.hideContextMenu();\r\n };\r\n ContextMenuHandler.prototype.showContextMenu = function (eventPoint, modelPoint) {\r\n if (this.textInputStarted)\r\n return;\r\n this.onVisibilityChanged.raise1(function (l) { return l.notifyShowContextMenu(eventPoint, modelPoint); });\r\n this.contextMenuVisible = true;\r\n };\r\n ContextMenuHandler.prototype.hideContextMenu = function () {\r\n if (this.contextMenuVisible) {\r\n this.onVisibilityChanged.raise1(function (l) { return l.notifyHideContextMenu(); });\r\n this.contextMenuVisible = false;\r\n }\r\n };\r\n ContextMenuHandler.prototype.notifyDragStart = function (itemKeys) { };\r\n ContextMenuHandler.prototype.notifyDragEnd = function (itemKeys) { };\r\n ContextMenuHandler.prototype.notifyDragScrollStart = function () { };\r\n ContextMenuHandler.prototype.notifyDragScrollEnd = function () { };\r\n ContextMenuHandler.prototype.notifyShowContextToolbox = function (modelPoint, getPositionToInsertShapeTo, side, category, callback) { };\r\n ContextMenuHandler.prototype.notifyHideContextToolbox = function () { };\r\n ContextMenuHandler.prototype.notifyTextInputStart = function (item, text, position, size) {\r\n this.textInputStarted = true;\r\n };\r\n ContextMenuHandler.prototype.notifyTextInputEnd = function (item) {\r\n this.textInputStarted = false;\r\n };\r\n ContextMenuHandler.prototype.notifyTextInputPermissionsCheck = function (item, allowed) { };\r\n ContextMenuHandler.prototype.onUpdateUnlocked = function (occurredEvents) { };\r\n return ContextMenuHandler;\r\n}(batch_updatable_1.BatchUpdatableObject));\r\nexports.ContextMenuHandler = ContextMenuHandler;\r\n\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.VisualizerManager = void 0;\r\nvar ConnectionTargetVisualizer_1 = __webpack_require__(326);\r\nvar ContainerTargetVisualizer_1 = __webpack_require__(327);\r\nvar ExtensionLinesVisualizer_1 = __webpack_require__(159);\r\nvar Event_1 = __webpack_require__(11);\r\nvar ConnectionPointsVisualizer_1 = __webpack_require__(328);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar segment_1 = __webpack_require__(34);\r\nvar point_1 = __webpack_require__(1);\r\nvar CanvasSelectionManager_1 = __webpack_require__(160);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar ResizeInfoVisualizer_1 = __webpack_require__(329);\r\nvar SelectionRectVisualizer_1 = __webpack_require__(330);\r\nvar batch_updatable_1 = __webpack_require__(79);\r\nvar LocalizationService_1 = __webpack_require__(35);\r\nvar VisualizerManager = /** @class */ (function (_super) {\r\n __extends(VisualizerManager, _super);\r\n function VisualizerManager(selection, model, eventManager, settings, readOnly) {\r\n if (readOnly === void 0) { readOnly = settings.readOnly; }\r\n var _this = _super.call(this) || this;\r\n _this.selection = selection;\r\n _this.model = model;\r\n _this.eventManager = eventManager;\r\n _this.settings = settings;\r\n _this.readOnly = readOnly;\r\n _this.onVisualizersUpdate = new Utils_1.EventDispatcher();\r\n _this.connectionPointsVisualizer = new ConnectionPointsVisualizer_1.ConnectionPointsVisualizer(_this.onVisualizersUpdate);\r\n _this.connectionPointsVisualizer = new ConnectionPointsVisualizer_1.ConnectionPointsVisualizer(_this.onVisualizersUpdate);\r\n _this.connectionTargetVisualizer = new ConnectionTargetVisualizer_1.ConnectionTargetVisualizer(_this.onVisualizersUpdate);\r\n _this.containerTargetVisualizer = new ContainerTargetVisualizer_1.ContainerTargetVisualizer(_this.onVisualizersUpdate);\r\n _this.extensionLinesVisualizer = new ExtensionLinesVisualizer_1.ExtensionLinesVisualizer(_this.onVisualizersUpdate);\r\n _this.resizeInfoVisualizer = new ResizeInfoVisualizer_1.ResizeInfoVisualizer(_this.onVisualizersUpdate);\r\n _this.selectionRectangleVisualizer = new SelectionRectVisualizer_1.SelectionRectVisualizer(_this.onVisualizersUpdate);\r\n return _this;\r\n }\r\n VisualizerManager.prototype.initialize = function (model) {\r\n this.model = model;\r\n };\r\n VisualizerManager.prototype.onMouseDown = function (evt) {\r\n };\r\n VisualizerManager.prototype.onMouseUp = function (evt) {\r\n };\r\n VisualizerManager.prototype.onMouseEnter = function (evt) {\r\n };\r\n VisualizerManager.prototype.onMouseLeave = function (evt) {\r\n this.resetConnectionPoints();\r\n this.resetConnectionTarget();\r\n this.resetExtensionLines();\r\n this.resetContainerTarget();\r\n this.resetResizeInfo();\r\n this.resetSelectionRectangle();\r\n };\r\n VisualizerManager.prototype.onBlur = function (evt) {\r\n };\r\n VisualizerManager.prototype.onFocus = function (evt) {\r\n };\r\n VisualizerManager.prototype.updateConnections = function (item, type, value) {\r\n var pointIndex = -1;\r\n if (value && type === Event_1.MouseEventElementType.ShapeConnectionPoint)\r\n pointIndex = parseInt(value);\r\n var preventShowOutside = item && ((!item.allowResizeHorizontally && !item.allowResizeVertically) || item.isLocked);\r\n this.setConnectionPoints(item, type, pointIndex, preventShowOutside);\r\n };\r\n VisualizerManager.prototype.setConnectionPoints = function (item, type, pointIndex, preventShowOutside) {\r\n if (!this.eventManager.isFocused())\r\n return;\r\n if (item && (type === Event_1.MouseEventElementType.Shape || type === Event_1.MouseEventElementType.ShapeResizeBox ||\r\n type === Event_1.MouseEventElementType.ShapeConnectionPoint) && item !== undefined) {\r\n var key = item.key;\r\n var isSelected = this.selection.hasKey(key);\r\n var points = item.getConnectionPoints();\r\n this.connectionPointsVisualizer.setPoints(key, points.map(function (pt) { return new ConnectionPointsVisualizer_1.ConnectionPointInfo(pt, item.getConnectionPointSide(pt)); }), pointIndex, isSelected && !preventShowOutside && item.rectangle);\r\n }\r\n else\r\n this.connectionPointsVisualizer.reset();\r\n };\r\n VisualizerManager.prototype.setConnectionPointIndex = function (index) {\r\n this.connectionPointsVisualizer.setPointIndex(index);\r\n };\r\n VisualizerManager.prototype.updateConnectionPoints = function () {\r\n var item = this.model.findItem(this.connectionPointsVisualizer.getKey());\r\n if (item !== undefined)\r\n this.connectionPointsVisualizer.update();\r\n else\r\n this.connectionPointsVisualizer.reset();\r\n };\r\n VisualizerManager.prototype.resetConnectionPoints = function () {\r\n this.connectionPointsVisualizer.reset();\r\n };\r\n VisualizerManager.prototype.setConnectionTarget = function (item, type) {\r\n if (item && (type === Event_1.MouseEventElementType.Shape ||\r\n type === Event_1.MouseEventElementType.ShapeConnectionPoint))\r\n this.connectionTargetVisualizer.setTargetRect(item.key, item.rectangle, item.strokeWidth);\r\n else\r\n this.connectionTargetVisualizer.reset();\r\n };\r\n VisualizerManager.prototype.resetConnectionTarget = function () {\r\n this.connectionTargetVisualizer.reset();\r\n };\r\n VisualizerManager.prototype.setContainerTarget = function (item, type) {\r\n if (item && !item.isLocked && (type === Event_1.MouseEventElementType.Shape) && item.enableChildren)\r\n this.containerTargetVisualizer.setTargetRect(item.key, item.rectangle, item.strokeWidth);\r\n else\r\n this.containerTargetVisualizer.reset();\r\n };\r\n VisualizerManager.prototype.resetContainerTarget = function () {\r\n this.containerTargetVisualizer.reset();\r\n };\r\n VisualizerManager.prototype.setExtensionLines = function (items) {\r\n var _this = this;\r\n if (!this.eventManager.isFocused())\r\n return;\r\n this.extensionLinesVisualizer.reset();\r\n var rect = ModelUtils_1.ModelUtils.createRectangle(items.filter(function (item) { return item; }));\r\n this.addPageExtensionLines(rect);\r\n this.model.items.forEach(function (item) {\r\n if (items.indexOf(item) > -1)\r\n return;\r\n if (item instanceof Shape_1.Shape)\r\n _this.addShapeExtensionLines(item, rect);\r\n });\r\n };\r\n VisualizerManager.prototype.addPageExtensionLines = function (rect) {\r\n var horPages = Math.round(this.model.size.width / this.model.pageWidth);\r\n var verPages = Math.round(this.model.size.height / this.model.pageHeight);\r\n for (var i = 0; i < horPages; i++)\r\n for (var j = 0; j < verPages; j++) {\r\n var center = new point_1.Point(i * this.model.pageWidth + this.model.pageWidth / 2, j * this.model.pageHeight + this.model.pageHeight / 2);\r\n if (Math.abs(rect.center.x - center.x) < this.settings.gridSize / 2) {\r\n var segment = new segment_1.Segment(new point_1.Point(rect.center.x, 0), new point_1.Point(rect.center.x, this.model.size.height));\r\n this.extensionLinesVisualizer.addSegment(ExtensionLinesVisualizer_1.ExtensionLineType.HorizontalCenterToPageCenter, segment, \"\");\r\n }\r\n if (Math.abs(rect.center.y - center.y) < this.settings.gridSize / 2) {\r\n var segment = new segment_1.Segment(new point_1.Point(0, rect.center.y), new point_1.Point(this.model.size.width, rect.center.y));\r\n this.extensionLinesVisualizer.addSegment(ExtensionLinesVisualizer_1.ExtensionLineType.VerticalCenterToPageCenter, segment, \"\");\r\n }\r\n if (Math.abs(rect.x - center.x) < this.settings.gridSize / 2) {\r\n var segment = new segment_1.Segment(new point_1.Point(rect.x, 0), new point_1.Point(rect.x, this.model.size.height));\r\n this.extensionLinesVisualizer.addSegment(ExtensionLinesVisualizer_1.ExtensionLineType.LeftToPageCenter, segment, \"\");\r\n }\r\n if (Math.abs(rect.y - center.y) < this.settings.gridSize / 2) {\r\n var segment = new segment_1.Segment(new point_1.Point(0, rect.y), new point_1.Point(this.model.size.width, rect.y));\r\n this.extensionLinesVisualizer.addSegment(ExtensionLinesVisualizer_1.ExtensionLineType.TopToPageCenter, segment, \"\");\r\n }\r\n if (Math.abs(rect.right - center.x) < this.settings.gridSize / 2) {\r\n var segment = new segment_1.Segment(new point_1.Point(rect.right, 0), new point_1.Point(rect.right, this.model.size.height));\r\n this.extensionLinesVisualizer.addSegment(ExtensionLinesVisualizer_1.ExtensionLineType.RightToPageCenter, segment, \"\");\r\n }\r\n if (Math.abs(rect.bottom - center.y) < this.settings.gridSize / 2) {\r\n var segment = new segment_1.Segment(new point_1.Point(0, rect.bottom), new point_1.Point(this.model.size.width, rect.bottom));\r\n this.extensionLinesVisualizer.addSegment(ExtensionLinesVisualizer_1.ExtensionLineType.BottomToPageCenter, segment, \"\");\r\n }\r\n }\r\n };\r\n VisualizerManager.prototype.addShapeExtensionLines = function (shape, rect) {\r\n var sRect = shape.rectangle;\r\n var lwCor = shape.strokeWidth - CanvasSelectionManager_1.CanvasSelectionManager.extensionLineWidth;\r\n var showDistance = true;\r\n var x1nc;\r\n var y1nc;\r\n var x2nc;\r\n var y2nc;\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (rect.right < sRect.x) {\r\n x1nc = rect.right;\r\n x2nc = sRect.x;\r\n x1 = x1nc + lwCor + CanvasSelectionManager_1.CanvasSelectionManager.extensionLineOffset;\r\n x2 = x2nc - CanvasSelectionManager_1.CanvasSelectionManager.extensionLineOffset;\r\n }\r\n else if (rect.x > sRect.right) {\r\n x1nc = rect.x;\r\n x2nc = sRect.right;\r\n x1 = x1nc - CanvasSelectionManager_1.CanvasSelectionManager.extensionLineOffset;\r\n x2 = x2nc + lwCor + CanvasSelectionManager_1.CanvasSelectionManager.extensionLineOffset;\r\n }\r\n if (rect.bottom < sRect.y) {\r\n y1nc = rect.bottom;\r\n y2nc = sRect.y;\r\n y1 = y1nc + lwCor + CanvasSelectionManager_1.CanvasSelectionManager.extensionLineOffset;\r\n y2 = y2nc - CanvasSelectionManager_1.CanvasSelectionManager.extensionLineOffset;\r\n }\r\n else if (rect.y > sRect.bottom) {\r\n y1nc = rect.y;\r\n y2nc = sRect.bottom;\r\n y1 = y1nc - CanvasSelectionManager_1.CanvasSelectionManager.extensionLineOffset;\r\n y2 = y2nc + lwCor + CanvasSelectionManager_1.CanvasSelectionManager.extensionLineOffset;\r\n }\r\n if (x1 !== undefined && x2 !== undefined) {\r\n var distanceText = this.getViewUnitText(Math.abs(x1nc - x2nc));\r\n if (rect.center.y === sRect.center.y) {\r\n var segment = new segment_1.Segment(new point_1.Point(x1, rect.center.y), new point_1.Point(x2, sRect.center.y));\r\n this.extensionLinesVisualizer.addSegment(x1 > x2 ? ExtensionLinesVisualizer_1.ExtensionLineType.VerticalCenterAfter : ExtensionLinesVisualizer_1.ExtensionLineType.VerticalCenterBefore, segment, showDistance ? distanceText : \"\");\r\n showDistance = false;\r\n }\r\n if (rect.y === sRect.y) {\r\n var segment = new segment_1.Segment(new point_1.Point(x1, rect.y), new point_1.Point(x2, sRect.y));\r\n this.extensionLinesVisualizer.addSegment(x1 > x2 ? ExtensionLinesVisualizer_1.ExtensionLineType.TopToTopAfter : ExtensionLinesVisualizer_1.ExtensionLineType.TopToTopBefore, segment, showDistance ? distanceText : \"\");\r\n }\r\n if (rect.bottom === sRect.bottom) {\r\n var segment = new segment_1.Segment(new point_1.Point(x1, rect.bottom + lwCor), new point_1.Point(x2, sRect.bottom + lwCor));\r\n this.extensionLinesVisualizer.addSegment(x1 > x2 ? ExtensionLinesVisualizer_1.ExtensionLineType.BottomToBottomAfter : ExtensionLinesVisualizer_1.ExtensionLineType.BottomToBottomBefore, segment, showDistance ? distanceText : \"\");\r\n }\r\n if (rect.y === sRect.bottom) {\r\n var segment = new segment_1.Segment(new point_1.Point(x1, rect.y), new point_1.Point(x2, sRect.bottom + lwCor));\r\n this.extensionLinesVisualizer.addSegment(x1 > x2 ? ExtensionLinesVisualizer_1.ExtensionLineType.TopToBottomAfter : ExtensionLinesVisualizer_1.ExtensionLineType.TopToBottomBefore, segment, showDistance ? distanceText : \"\");\r\n }\r\n if (rect.bottom === sRect.y) {\r\n var segment = new segment_1.Segment(new point_1.Point(x1, rect.bottom + lwCor), new point_1.Point(x2, sRect.y));\r\n this.extensionLinesVisualizer.addSegment(x1 > x2 ? ExtensionLinesVisualizer_1.ExtensionLineType.BottomToTopAfter : ExtensionLinesVisualizer_1.ExtensionLineType.BottomToTopBefore, segment, showDistance ? distanceText : \"\");\r\n }\r\n }\r\n if (y1 !== undefined && y2 !== undefined) {\r\n var distanceText = this.getViewUnitText(Math.abs(y1nc - y2nc));\r\n if (rect.center.x === sRect.center.x) {\r\n var segment = new segment_1.Segment(new point_1.Point(rect.center.x, y1), new point_1.Point(sRect.center.x, y2));\r\n this.extensionLinesVisualizer.addSegment(y1 > y2 ? ExtensionLinesVisualizer_1.ExtensionLineType.HorizontalCenterBelow : ExtensionLinesVisualizer_1.ExtensionLineType.HorizontalCenterAbove, segment, showDistance ? distanceText : \"\");\r\n showDistance = false;\r\n }\r\n if (rect.x === sRect.x) {\r\n var segment = new segment_1.Segment(new point_1.Point(rect.x, y1), new point_1.Point(sRect.x, y2));\r\n this.extensionLinesVisualizer.addSegment(y1 > y2 ? ExtensionLinesVisualizer_1.ExtensionLineType.LeftToLeftBelow : ExtensionLinesVisualizer_1.ExtensionLineType.LeftToLeftAbove, segment, showDistance ? distanceText : \"\");\r\n }\r\n if (rect.right === sRect.right) {\r\n var segment = new segment_1.Segment(new point_1.Point(rect.right + lwCor, y1), new point_1.Point(sRect.right + lwCor, y2));\r\n this.extensionLinesVisualizer.addSegment(y1 > y2 ? ExtensionLinesVisualizer_1.ExtensionLineType.RightToRightBelow : ExtensionLinesVisualizer_1.ExtensionLineType.RightToRightAbove, segment, showDistance ? distanceText : \"\");\r\n }\r\n if (rect.x === sRect.right) {\r\n var segment = new segment_1.Segment(new point_1.Point(rect.x, y1), new point_1.Point(sRect.right + lwCor, y2));\r\n this.extensionLinesVisualizer.addSegment(y1 > y2 ? ExtensionLinesVisualizer_1.ExtensionLineType.LeftToRightBelow : ExtensionLinesVisualizer_1.ExtensionLineType.LeftToRightAbove, segment, showDistance ? distanceText : \"\");\r\n }\r\n if (rect.right === sRect.x) {\r\n var segment = new segment_1.Segment(new point_1.Point(rect.right + lwCor, y1), new point_1.Point(sRect.x, y2));\r\n this.extensionLinesVisualizer.addSegment(y1 > y2 ? ExtensionLinesVisualizer_1.ExtensionLineType.RightToLeftBelow : ExtensionLinesVisualizer_1.ExtensionLineType.RightToLeftAbove, segment, showDistance ? distanceText : \"\");\r\n }\r\n }\r\n };\r\n VisualizerManager.prototype.resetExtensionLines = function () {\r\n this.extensionLinesVisualizer.reset();\r\n };\r\n VisualizerManager.prototype.setResizeInfo = function (items) {\r\n var rect = ModelUtils_1.ModelUtils.createRectangle(items);\r\n var point = new point_1.Point(rect.center.x, rect.bottom + CanvasSelectionManager_1.CanvasSelectionManager.resizeInfoOffset);\r\n var text = this.getViewUnitText(rect.width) + \" x \" + this.getViewUnitText(rect.height);\r\n this.resizeInfoVisualizer.set(point, text);\r\n };\r\n VisualizerManager.prototype.resetResizeInfo = function () {\r\n this.resizeInfoVisualizer.reset();\r\n };\r\n VisualizerManager.prototype.setSelectionRectangle = function (rect) {\r\n this.selectionRectangleVisualizer.setRectangle(rect);\r\n };\r\n VisualizerManager.prototype.resetSelectionRectangle = function () {\r\n this.selectionRectangleVisualizer.reset();\r\n };\r\n // utils\r\n VisualizerManager.prototype.getViewUnitText = function (value) {\r\n return ModelUtils_1.ModelUtils.getUnitText(this.settings.viewUnits, LocalizationService_1.DiagramLocalizationService.unitItems, LocalizationService_1.DiagramLocalizationService.formatUnit, value);\r\n };\r\n VisualizerManager.prototype.notifyReadOnlyChanged = function (readOnly) {\r\n this.readOnly = readOnly;\r\n if (this.readOnly) {\r\n this.resetConnectionPoints();\r\n this.resetConnectionTarget();\r\n this.resetExtensionLines();\r\n this.resetContainerTarget();\r\n this.resetResizeInfo();\r\n this.resetSelectionRectangle();\r\n }\r\n };\r\n VisualizerManager.prototype.notifyDragStart = function (itemKeys) { };\r\n VisualizerManager.prototype.notifyDragEnd = function (itemKeys) { };\r\n VisualizerManager.prototype.notifyDragScrollStart = function () { };\r\n VisualizerManager.prototype.notifyDragScrollEnd = function () { };\r\n VisualizerManager.prototype.onUpdateUnlocked = function (occurredEvents) { };\r\n return VisualizerManager;\r\n}(batch_updatable_1.BatchUpdatableObject));\r\nexports.VisualizerManager = VisualizerManager;\r\n\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TargetVisualizerBase = void 0;\r\nvar TargetVisualizerBase = /** @class */ (function () {\r\n function TargetVisualizerBase(dispatcher) {\r\n this.dispatcher = dispatcher;\r\n }\r\n TargetVisualizerBase.prototype.getKey = function () {\r\n return this.key;\r\n };\r\n TargetVisualizerBase.prototype.setTargetRect = function (key, targetRect, targetStrokeWidth) {\r\n if (this.key !== key) {\r\n this.key = key;\r\n this.targetRect = targetRect;\r\n this.targetStrokeWidth = targetStrokeWidth;\r\n this.raiseShow();\r\n }\r\n };\r\n TargetVisualizerBase.prototype.reset = function () {\r\n if (this.key !== \"-1\") {\r\n this.key = \"-1\";\r\n this.targetRect = undefined;\r\n this.targetStrokeWidth = 0;\r\n this.raiseHide();\r\n }\r\n };\r\n return TargetVisualizerBase;\r\n}());\r\nexports.TargetVisualizerBase = TargetVisualizerBase;\r\n\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ExtensionLinesVisualizer = exports.ExtensionLine = exports.ExtensionLineType = void 0;\r\nvar ExtensionLineType;\r\n(function (ExtensionLineType) {\r\n ExtensionLineType[ExtensionLineType[\"LeftToLeftAbove\"] = 0] = \"LeftToLeftAbove\";\r\n ExtensionLineType[ExtensionLineType[\"LeftToLeftBelow\"] = 1] = \"LeftToLeftBelow\";\r\n ExtensionLineType[ExtensionLineType[\"RightToRightAbove\"] = 2] = \"RightToRightAbove\";\r\n ExtensionLineType[ExtensionLineType[\"RightToRightBelow\"] = 3] = \"RightToRightBelow\";\r\n ExtensionLineType[ExtensionLineType[\"LeftToRightAbove\"] = 4] = \"LeftToRightAbove\";\r\n ExtensionLineType[ExtensionLineType[\"LeftToRightBelow\"] = 5] = \"LeftToRightBelow\";\r\n ExtensionLineType[ExtensionLineType[\"RightToLeftAbove\"] = 6] = \"RightToLeftAbove\";\r\n ExtensionLineType[ExtensionLineType[\"RightToLeftBelow\"] = 7] = \"RightToLeftBelow\";\r\n ExtensionLineType[ExtensionLineType[\"TopToTopBefore\"] = 8] = \"TopToTopBefore\";\r\n ExtensionLineType[ExtensionLineType[\"TopToTopAfter\"] = 9] = \"TopToTopAfter\";\r\n ExtensionLineType[ExtensionLineType[\"BottomToBottomBefore\"] = 10] = \"BottomToBottomBefore\";\r\n ExtensionLineType[ExtensionLineType[\"BottomToBottomAfter\"] = 11] = \"BottomToBottomAfter\";\r\n ExtensionLineType[ExtensionLineType[\"TopToBottomBefore\"] = 12] = \"TopToBottomBefore\";\r\n ExtensionLineType[ExtensionLineType[\"TopToBottomAfter\"] = 13] = \"TopToBottomAfter\";\r\n ExtensionLineType[ExtensionLineType[\"BottomToTopBefore\"] = 14] = \"BottomToTopBefore\";\r\n ExtensionLineType[ExtensionLineType[\"BottomToTopAfter\"] = 15] = \"BottomToTopAfter\";\r\n ExtensionLineType[ExtensionLineType[\"HorizontalCenterAbove\"] = 16] = \"HorizontalCenterAbove\";\r\n ExtensionLineType[ExtensionLineType[\"HorizontalCenterBelow\"] = 17] = \"HorizontalCenterBelow\";\r\n ExtensionLineType[ExtensionLineType[\"VerticalCenterBefore\"] = 18] = \"VerticalCenterBefore\";\r\n ExtensionLineType[ExtensionLineType[\"VerticalCenterAfter\"] = 19] = \"VerticalCenterAfter\";\r\n ExtensionLineType[ExtensionLineType[\"VerticalCenterToPageCenter\"] = 20] = \"VerticalCenterToPageCenter\";\r\n ExtensionLineType[ExtensionLineType[\"HorizontalCenterToPageCenter\"] = 21] = \"HorizontalCenterToPageCenter\";\r\n ExtensionLineType[ExtensionLineType[\"LeftToPageCenter\"] = 22] = \"LeftToPageCenter\";\r\n ExtensionLineType[ExtensionLineType[\"RightToPageCenter\"] = 23] = \"RightToPageCenter\";\r\n ExtensionLineType[ExtensionLineType[\"TopToPageCenter\"] = 24] = \"TopToPageCenter\";\r\n ExtensionLineType[ExtensionLineType[\"BottomToPageCenter\"] = 25] = \"BottomToPageCenter\";\r\n})(ExtensionLineType = exports.ExtensionLineType || (exports.ExtensionLineType = {}));\r\nvar ExtensionLine = /** @class */ (function () {\r\n function ExtensionLine(type, segment, text) {\r\n this.type = type;\r\n this.segment = segment;\r\n this.text = text;\r\n }\r\n return ExtensionLine;\r\n}());\r\nexports.ExtensionLine = ExtensionLine;\r\nvar ExtensionLinesVisualizer = /** @class */ (function () {\r\n function ExtensionLinesVisualizer(dispatcher) {\r\n this.dispatcher = dispatcher;\r\n this.lines = [];\r\n this.lineIndexByType = {};\r\n }\r\n ExtensionLinesVisualizer.prototype.addSegment = function (type, segment, text) {\r\n var curIndex = this.lineIndexByType[type];\r\n if (curIndex === undefined) {\r\n var line = new ExtensionLine(type, segment, text);\r\n var index = this.lines.push(line);\r\n this.lineIndexByType[line.type] = index - 1;\r\n this.raiseShow();\r\n }\r\n else if (segment.length < this.lines[curIndex].segment.length) {\r\n var line = new ExtensionLine(type, segment, text);\r\n this.lines.splice(curIndex, 1, line);\r\n this.raiseShow();\r\n }\r\n };\r\n ExtensionLinesVisualizer.prototype.update = function () {\r\n this.raiseShow();\r\n };\r\n ExtensionLinesVisualizer.prototype.reset = function () {\r\n if (this.lines.length) {\r\n this.lines = [];\r\n this.lineIndexByType = {};\r\n this.raiseHide();\r\n }\r\n };\r\n ExtensionLinesVisualizer.prototype.raiseShow = function () {\r\n var _this = this;\r\n this.dispatcher.raise1(function (l) { return l.notifyExtensionLinesShow(_this.lines); });\r\n };\r\n ExtensionLinesVisualizer.prototype.raiseHide = function () {\r\n this.dispatcher.raise1(function (l) { return l.notifyExtensionLinesHide(); });\r\n };\r\n return ExtensionLinesVisualizer;\r\n}());\r\nexports.ExtensionLinesVisualizer = ExtensionLinesVisualizer;\r\n\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CanvasSelectionManager = exports.ACTIVE_SELECTION_CSSCLASS = exports.SELECTION_ELEMENT_CLASSNAMES = void 0;\r\nvar CanvasManagerBase_1 = __webpack_require__(41);\r\nvar GroupPrimitive_1 = __webpack_require__(38);\r\nvar Utils_1 = __webpack_require__(18);\r\nvar Event_1 = __webpack_require__(11);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar Utils_2 = __webpack_require__(3);\r\nvar point_1 = __webpack_require__(1);\r\nvar ExtensionLinesVisualizer_1 = __webpack_require__(159);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar ConnectorProperties_1 = __webpack_require__(31);\r\nvar RectaglePrimitive_1 = __webpack_require__(21);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar TextPrimitive_1 = __webpack_require__(60);\r\nvar EllipsePrimitive_1 = __webpack_require__(52);\r\nvar Style_1 = __webpack_require__(30);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar ITextMeasurer_1 = __webpack_require__(42);\r\nvar browser_1 = __webpack_require__(17);\r\nvar dom_1 = __webpack_require__(26);\r\nvar CanvasItemsManager_1 = __webpack_require__(76);\r\nvar CanvasManager_1 = __webpack_require__(141);\r\nvar metrics_1 = __webpack_require__(83);\r\nvar MULTIPLE_SELECTION_KEY = \"-1\";\r\nexports.SELECTION_ELEMENT_CLASSNAMES = {\r\n SELECTION_RECTANGLE: \"selection-rect\",\r\n CONNECTION_POINT: \"connection-point\",\r\n ACTIVE: \"active\",\r\n CONTAINER_TARGET: \"container-target\",\r\n CONNECTION_TARGET: \"connection-target\",\r\n EXTENSION_LINE: \"extension-line\",\r\n CONNECTION_MARK: \"connection-mark\",\r\n SELECTION_MARK: \"selection-mark\",\r\n LOCKED_SELECTION_MARK: \"locked-selection-mark\",\r\n ITEMS_SELECTION_RECT: \"items-selection-rect\",\r\n CONNECTOR_MULTI_SELECTION: \"connector-multi-selection\",\r\n CONNECTOR_SELECTION: \"connector-selection\",\r\n CONNECTOR_POINT_MARK: \"connector-point-mark\",\r\n CONNECTOR_SELECTION_MASK: \"connector-selection-mask\",\r\n CONNECTOR_SIDE_MARK: \"connector-side-mark\",\r\n ITEM_SELECTION_RECT: \"item-selection-rect\",\r\n ITEM_MULTI_SELECTION: \"item-multi-selection-rect\"\r\n};\r\nexports.ACTIVE_SELECTION_CSSCLASS = \"dxdi-active-selection\";\r\nvar CanvasSelectionManager = /** @class */ (function (_super) {\r\n __extends(CanvasSelectionManager, _super);\r\n function CanvasSelectionManager(parent, zoomLevel, readOnly, dom) {\r\n var _this = _super.call(this, zoomLevel, dom) || this;\r\n _this.readOnly = readOnly;\r\n _this.connectionPointElements = [];\r\n _this.extensionLineElements = [];\r\n _this.selectionMap = {};\r\n _this.parentContainer = parent;\r\n _this.initializeContainerElements(parent);\r\n return _this;\r\n }\r\n CanvasSelectionManager.prototype.initializeContainerElements = function (parent) {\r\n this.itemSelectionContainer = this.createAndChangePrimitiveElement(new GroupPrimitive_1.GroupPrimitive([], null), parent);\r\n this.visualizersContainer = this.createAndChangePrimitiveElement(new GroupPrimitive_1.GroupPrimitive([], null), parent);\r\n this.selectionMarksContainer = this.createAndChangePrimitiveElement(new GroupPrimitive_1.GroupPrimitive([], null), parent);\r\n };\r\n CanvasSelectionManager.prototype.clear = function () {\r\n Utils_1.RenderUtils.removeContent(this.itemSelectionContainer);\r\n Utils_1.RenderUtils.removeContent(this.selectionMarksContainer);\r\n Utils_1.RenderUtils.removeContent(this.visualizersContainer);\r\n this.selectionRectElement = undefined;\r\n this.resizeInfoElement = undefined;\r\n this.connectionPointElements = [];\r\n this.connectionTargetElement = undefined;\r\n this.containerTargetElement = undefined;\r\n this.extensionLineElements = [];\r\n this.selectionMap = {};\r\n };\r\n CanvasSelectionManager.prototype.showSelectionRect = function (rect) {\r\n dom_1.DomUtils.addClassName(this.parentContainer, exports.ACTIVE_SELECTION_CSSCLASS);\r\n var primitive = new RectaglePrimitive_1.RectanglePrimitive(rect.x, rect.y, rect.width, rect.height, Style_1.StrokeStyle.default1pxInstance, exports.SELECTION_ELEMENT_CLASSNAMES.SELECTION_RECTANGLE);\r\n var rectEl = this.getSelectionRectElement(primitive);\r\n this.changePrimitiveElement(primitive, rectEl);\r\n };\r\n CanvasSelectionManager.prototype.hideSelectionRect = function () {\r\n dom_1.DomUtils.removeClassName(this.parentContainer, exports.ACTIVE_SELECTION_CSSCLASS);\r\n if (this.selectionRectElement !== undefined)\r\n this.dom.changeByFunc(this.selectionRectElement, function (e) { return e.style.display = \"none\"; });\r\n };\r\n CanvasSelectionManager.prototype.getSelectionRectElement = function (primitive) {\r\n if (this.selectionRectElement !== undefined)\r\n this.dom.changeByFunc(this.selectionRectElement, function (e) { return e.style.display = \"\"; });\r\n else\r\n this.selectionRectElement = this.createPrimitiveElement(primitive, this.visualizersContainer);\r\n return this.selectionRectElement;\r\n };\r\n CanvasSelectionManager.prototype.showResizeInfo = function (point, text) {\r\n var rectPrimitive = new RectaglePrimitive_1.RectanglePrimitive(point.x, point.y, 0, 0, Style_1.StrokeStyle.default1pxInstance);\r\n var primitive = new GroupPrimitive_1.GroupPrimitive([\r\n rectPrimitive,\r\n new TextPrimitive_1.TextPrimitive(point.x, point.y, text, ITextMeasurer_1.TextOwner.Resize)\r\n ], \"resize-info\");\r\n var groupEl = this.getResizeInfoElement(primitive);\r\n this.changePrimitiveElement(primitive, groupEl);\r\n var textSize = this.dom.measurer.measureTextLine(text, null, ITextMeasurer_1.TextOwner.Resize).applyConverter(unit_converter_1.UnitConverter.pixelsToTwips);\r\n rectPrimitive.width = textSize.width + CanvasSelectionManager.resizeInfoTextOffset * 2;\r\n rectPrimitive.height = textSize.height + CanvasSelectionManager.resizeInfoTextOffset * 2;\r\n rectPrimitive.x = point.x - textSize.width / 2 - CanvasSelectionManager.resizeInfoTextOffset;\r\n rectPrimitive.y = point.y - textSize.height / 2 - CanvasSelectionManager.resizeInfoTextOffset;\r\n this.changePrimitiveElement(primitive, groupEl);\r\n };\r\n CanvasSelectionManager.prototype.hideResizeInfo = function () {\r\n if (this.resizeInfoElement !== undefined)\r\n this.dom.changeByFunc(this.resizeInfoElement, function (e) { return e.style.display = \"none\"; });\r\n };\r\n CanvasSelectionManager.prototype.getResizeInfoElement = function (primitive) {\r\n if (this.resizeInfoElement !== undefined)\r\n this.dom.changeByFunc(this.resizeInfoElement, function (e) { return e.style.display = \"\"; });\r\n else\r\n this.resizeInfoElement = this.createPrimitiveElement(primitive, this.visualizersContainer);\r\n return this.resizeInfoElement;\r\n };\r\n CanvasSelectionManager.prototype.getConnectionPointClassName = function (active, allowed) {\r\n var className = exports.SELECTION_ELEMENT_CLASSNAMES.CONNECTION_POINT;\r\n if (active)\r\n className += \" \" + exports.SELECTION_ELEMENT_CLASSNAMES.ACTIVE;\r\n if (!allowed)\r\n className += \" \" + CanvasItemsManager_1.NOT_VALID_CSSCLASS;\r\n return className;\r\n };\r\n CanvasSelectionManager.prototype.showConnectionPoint = function (index, point, key, value, active, allowed) {\r\n this.showConnectionPointCore(index * 2, point.x, point.y, CanvasSelectionManager.connectionPointLargeSize, CanvasSelectionManager.connectionPointLargeSize, Event_1.MouseEventElementType.ShapeConnectionPoint, key, value, exports.SELECTION_ELEMENT_CLASSNAMES.CONNECTION_POINT + \" selector\" + (!allowed ? \" \" + CanvasItemsManager_1.NOT_VALID_CSSCLASS : \"\"));\r\n this.showConnectionPointCore(index * 2 + 1, point.x, point.y, CanvasSelectionManager.connectionPointSmallSize, CanvasSelectionManager.connectionPointSmallSize, Event_1.MouseEventElementType.ShapeConnectionPoint, key, value, this.getConnectionPointClassName(active, allowed));\r\n };\r\n CanvasSelectionManager.prototype.showConnectionPointCore = function (index, cx, cy, rx, ry, type, key, value, className) {\r\n var primitive = new EllipsePrimitive_1.EllipsePrimitive(cx, cy, rx, ry, null, className, function (e) { return Utils_1.RenderUtils.setElementEventData(e, type, key, value); });\r\n var ellEl = this.getConnectionPointElement(primitive, index);\r\n this.changePrimitiveElement(primitive, ellEl);\r\n };\r\n CanvasSelectionManager.prototype.hideConnectionPoints = function () {\r\n for (var i = 0; i < this.connectionPointElements.length; i++)\r\n this.dom.changeByFunc(this.connectionPointElements[i], function (e) { return e.style.display = \"none\"; });\r\n };\r\n CanvasSelectionManager.prototype.getConnectionPointElement = function (primitive, index) {\r\n var ellEl = this.connectionPointElements[index];\r\n if (ellEl !== undefined)\r\n this.dom.changeByFunc(ellEl, function (e) { return e.style.display = \"\"; });\r\n else {\r\n ellEl = this.createPrimitiveElement(primitive, this.visualizersContainer);\r\n this.connectionPointElements[index] = ellEl;\r\n }\r\n return ellEl;\r\n };\r\n CanvasSelectionManager.prototype.showContainerTarget = function (index, targetRect) {\r\n var primitive = new RectaglePrimitive_1.RectanglePrimitive(targetRect.x, targetRect.y, targetRect.width, targetRect.height, null, exports.SELECTION_ELEMENT_CLASSNAMES.CONTAINER_TARGET);\r\n var rectEl = this.getContainerTargetElement(primitive);\r\n this.changePrimitiveElement(primitive, rectEl);\r\n };\r\n CanvasSelectionManager.prototype.hideContainerTarget = function () {\r\n if (this.containerTargetElement)\r\n this.dom.changeByFunc(this.containerTargetElement, function (e) { return e.style.display = \"none\"; });\r\n };\r\n CanvasSelectionManager.prototype.getContainerTargetElement = function (primitive) {\r\n if (this.containerTargetElement !== undefined)\r\n this.dom.changeByFunc(this.containerTargetElement, function (e) { return e.style.display = \"\"; });\r\n else\r\n this.containerTargetElement = this.createPrimitiveElement(primitive, this.itemSelectionContainer);\r\n return this.containerTargetElement;\r\n };\r\n CanvasSelectionManager.prototype.showConnectionTarget = function (index, targetRect) {\r\n var primitive = new RectaglePrimitive_1.RectanglePrimitive(targetRect.x, targetRect.y, targetRect.width, targetRect.height, null, exports.SELECTION_ELEMENT_CLASSNAMES.CONNECTION_TARGET);\r\n var rectEl = this.getConnectionTargetElement(primitive);\r\n this.changePrimitiveElement(primitive, rectEl);\r\n };\r\n CanvasSelectionManager.prototype.hideConnectionTarget = function () {\r\n if (this.connectionTargetElement)\r\n this.dom.changeByFunc(this.connectionTargetElement, function (e) { return e.style.display = \"none\"; });\r\n };\r\n CanvasSelectionManager.prototype.getConnectionTargetElement = function (primitive) {\r\n if (this.connectionTargetElement !== undefined)\r\n this.dom.changeByFunc(this.connectionTargetElement, function (e) { return e.style.display = \"\"; });\r\n else\r\n this.connectionTargetElement = this.createPrimitiveElement(primitive, this.itemSelectionContainer);\r\n return this.connectionTargetElement;\r\n };\r\n CanvasSelectionManager.prototype.showExtensionLine = function (index, type, startPoint, endPoint, text) {\r\n var className = exports.SELECTION_ELEMENT_CLASSNAMES.EXTENSION_LINE;\r\n if (type === ExtensionLinesVisualizer_1.ExtensionLineType.VerticalCenterAfter || type === ExtensionLinesVisualizer_1.ExtensionLineType.VerticalCenterBefore ||\r\n type === ExtensionLinesVisualizer_1.ExtensionLineType.HorizontalCenterAbove || type === ExtensionLinesVisualizer_1.ExtensionLineType.HorizontalCenterBelow)\r\n className += \" center\";\r\n if (type === ExtensionLinesVisualizer_1.ExtensionLineType.VerticalCenterToPageCenter || type === ExtensionLinesVisualizer_1.ExtensionLineType.HorizontalCenterToPageCenter ||\r\n type === ExtensionLinesVisualizer_1.ExtensionLineType.LeftToPageCenter || type === ExtensionLinesVisualizer_1.ExtensionLineType.RightToPageCenter ||\r\n type === ExtensionLinesVisualizer_1.ExtensionLineType.TopToPageCenter || type === ExtensionLinesVisualizer_1.ExtensionLineType.BottomToPageCenter)\r\n className += \" page\";\r\n var x1_1 = 0;\r\n var y1_1 = 0;\r\n var x1_2 = 0;\r\n var y1_2 = 0;\r\n var x2_1 = 0;\r\n var y2_1 = 0;\r\n var x2_2 = 0;\r\n var y2_2 = 0;\r\n if (startPoint.y === endPoint.y) {\r\n x1_1 = startPoint.x - CanvasSelectionManager.extensionLineWidth;\r\n y1_1 = startPoint.y - CanvasSelectionManager.extensionLineEndingSize;\r\n x1_2 = startPoint.x - CanvasSelectionManager.extensionLineWidth;\r\n y1_2 = startPoint.y + CanvasSelectionManager.extensionLineEndingSize;\r\n x2_1 = endPoint.x - CanvasSelectionManager.extensionLineWidth;\r\n y2_1 = startPoint.y - CanvasSelectionManager.extensionLineEndingSize;\r\n x2_2 = endPoint.x - CanvasSelectionManager.extensionLineWidth;\r\n y2_2 = startPoint.y + CanvasSelectionManager.extensionLineEndingSize;\r\n }\r\n else if (startPoint.x === endPoint.x) {\r\n x1_1 = startPoint.x - CanvasSelectionManager.extensionLineEndingSize;\r\n y1_1 = startPoint.y - CanvasSelectionManager.extensionLineWidth;\r\n x1_2 = startPoint.x + CanvasSelectionManager.extensionLineEndingSize;\r\n y1_2 = startPoint.y - CanvasSelectionManager.extensionLineWidth;\r\n x2_1 = startPoint.x - CanvasSelectionManager.extensionLineEndingSize;\r\n y2_1 = endPoint.y - CanvasSelectionManager.extensionLineWidth;\r\n x2_2 = startPoint.x + CanvasSelectionManager.extensionLineEndingSize;\r\n y2_2 = endPoint.y - CanvasSelectionManager.extensionLineWidth;\r\n }\r\n var sizeLineXCorr = 0;\r\n var sizeLineYCorr = 0;\r\n if (type === ExtensionLinesVisualizer_1.ExtensionLineType.RightToRightAbove || type === ExtensionLinesVisualizer_1.ExtensionLineType.RightToRightBelow)\r\n sizeLineXCorr -= CanvasSelectionManager.extensionLineWidth;\r\n if (type === ExtensionLinesVisualizer_1.ExtensionLineType.BottomToBottomAfter || type === ExtensionLinesVisualizer_1.ExtensionLineType.BottomToBottomBefore)\r\n sizeLineYCorr -= CanvasSelectionManager.extensionLineWidth;\r\n var children = [\r\n new PathPrimitive_1.PathPrimitive([\r\n PathPrimitive_1.PathPrimitiveMoveToCommand.fromPoint(startPoint.clone().offset(sizeLineXCorr, sizeLineYCorr)),\r\n PathPrimitive_1.PathPrimitiveLineToCommand.fromPoint(endPoint.clone().offset(sizeLineXCorr, sizeLineYCorr))\r\n ], Style_1.StrokeStyle.default1pxInstance, \"size-line\"),\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(x1_1, y1_1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x1_2, y1_2),\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(x2_1, y2_1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x2_2, y2_2)\r\n ], Style_1.StrokeStyle.default1pxInstance),\r\n new TextPrimitive_1.TextPrimitive((endPoint.x + startPoint.x) / 2, (endPoint.y + startPoint.y) / 2, text, ITextMeasurer_1.TextOwner.ExtensionLine, undefined, undefined, undefined, null, undefined, null, CanvasManagerBase_1.PAGE_BG_TEXTFLOOR_FILTER_ID)\r\n ];\r\n var primitive = new GroupPrimitive_1.GroupPrimitive(children, className);\r\n var ellEl = this.getExtensionLineElement(primitive, index);\r\n this.changePrimitiveElement(primitive, ellEl);\r\n };\r\n CanvasSelectionManager.prototype.hideExtensionLines = function () {\r\n for (var i = 0; i < this.extensionLineElements.length; i++)\r\n if (this.extensionLineElements[i])\r\n this.dom.changeByFunc(this.extensionLineElements[i], function (e) { return e.style.display = \"none\"; });\r\n };\r\n CanvasSelectionManager.prototype.getExtensionLineElement = function (primitive, index) {\r\n var ellEl = this.extensionLineElements[index];\r\n if (ellEl !== undefined)\r\n this.dom.changeByFunc(ellEl, function (e) { return e.style.display = \"\"; });\r\n else {\r\n ellEl = this.createPrimitiveElement(primitive, this.visualizersContainer);\r\n this.extensionLineElements[index] = (ellEl);\r\n }\r\n return ellEl;\r\n };\r\n CanvasSelectionManager.prototype.getOrCreateShapeSelection = function (shape, usedItems) {\r\n var element = this.selectionMap[shape.key];\r\n if (!element) {\r\n element = new ShapeSelectionElement(this.itemSelectionContainer, this.selectionMarksContainer, this.actualZoom, this.readOnly, this.dom, shape.key, shape.isLocked, shape.rectangle, shape.style, shape.allowResizeHorizontally, shape.allowResizeVertically, shape.description.getParameterPoints(shape));\r\n this.selectionMap[shape.key] = element;\r\n }\r\n usedItems && (usedItems[shape.key] = true);\r\n return element;\r\n };\r\n CanvasSelectionManager.prototype.getOrCreateConnectorSelection = function (connector, usedItems) {\r\n var element = this.selectionMap[connector.key];\r\n var points = connector.getRenderPoints();\r\n if (!element) {\r\n element = new ConnectorSelectionElement(this.itemSelectionContainer, this.selectionMarksContainer, this.actualZoom, this.readOnly, this.dom, connector.key, connector.isLocked, connector.rectangle, points, connector.style, connector.styleText, connector.enableText, connector.texts.map(function (t) {\r\n var textInfo = Utils_2.GeometryUtils.getPathPointByPosition(points, t.position);\r\n return {\r\n text: connector.getText(t.position),\r\n point: textInfo[0],\r\n pointIndex: textInfo[1],\r\n pos: t.position\r\n };\r\n }).sort(function (a, b) { return a.pos - b.pos; }), connector.points, connector.properties.lineOption);\r\n this.selectionMap[connector.key] = element;\r\n }\r\n usedItems && (usedItems[connector.key] = true);\r\n return element;\r\n };\r\n CanvasSelectionManager.prototype.getOrCreateMultipleSelection = function (usedItems) {\r\n var element = this.selectionMap[MULTIPLE_SELECTION_KEY];\r\n if (!element) {\r\n element = new MultipleSelectionElement(this.itemSelectionContainer, this.selectionMarksContainer, this.actualZoom, this.readOnly, this.dom);\r\n this.selectionMap[MULTIPLE_SELECTION_KEY] = element;\r\n }\r\n usedItems[MULTIPLE_SELECTION_KEY] = true;\r\n return element;\r\n };\r\n CanvasSelectionManager.prototype.getMultipleSelection = function () {\r\n return this.selectionMap[MULTIPLE_SELECTION_KEY];\r\n };\r\n CanvasSelectionManager.prototype.updateShapeSelection = function (shape, multipleSelection) {\r\n if (shape.key in this.selectionMap) {\r\n this.getOrCreateShapeSelection(shape).onModelChanged(shape.isLocked, shape.rectangle, shape.style, shape.allowResizeHorizontally, shape.allowResizeVertically, shape.description.getParameterPoints(shape));\r\n multipleSelection && multipleSelection.onModelItemChanged(shape.key, shape.rectangle);\r\n }\r\n };\r\n CanvasSelectionManager.prototype.updateConnectorSelection = function (connector, multipleSelection) {\r\n if (connector.key in this.selectionMap) {\r\n var renderPoints_1 = connector.getRenderPoints();\r\n this.getOrCreateConnectorSelection(connector)\r\n .onModelChanged(connector.isLocked, connector.rectangle, renderPoints_1, connector.style, connector.styleText, connector.enableText, connector.texts.map(function (t) {\r\n var textPos = Utils_2.GeometryUtils.getPathPointByPosition(renderPoints_1, t.position);\r\n return {\r\n text: connector.getText(t.position),\r\n pointIndex: textPos[1],\r\n pos: t.position,\r\n point: textPos[0]\r\n };\r\n }).sort(function (a, b) { return a.pos - b.pos; }), connector.points, connector.properties.lineOption);\r\n multipleSelection && multipleSelection.onModelItemChanged(connector.key, connector.rectangle);\r\n }\r\n };\r\n CanvasSelectionManager.prototype.hideOutdatedSelection = function (updated) {\r\n var _this = this;\r\n Object.keys(this.selectionMap)\r\n .filter(function (k) { return !updated[k]; })\r\n .forEach(function (k) {\r\n _this.selectionMap[k].destroy();\r\n delete _this.selectionMap[k];\r\n });\r\n };\r\n CanvasSelectionManager.prototype.selectionCanBeDrawn = function (item) {\r\n return !item.container || (item.container.expanded && this.selectionCanBeDrawn(item.container));\r\n };\r\n CanvasSelectionManager.prototype.notifySelectionChanged = function (selection) {\r\n var _this = this;\r\n var items = selection.getSelectedItems(true).filter(function (item) { return _this.selectionCanBeDrawn(item); });\r\n var changedItems = {};\r\n var isMultipleSelection = items.length > 1;\r\n var shapes = selection.getSelectedShapes(true).filter(function (shape) { return _this.selectionCanBeDrawn(shape); });\r\n var connectors = selection.getSelectedConnectors(true).filter(function (connector) { return _this.selectionCanBeDrawn(connector); });\r\n shapes.forEach(function (shape) { return _this.getOrCreateShapeSelection(shape, changedItems).onSelectionChanged(isMultipleSelection); });\r\n connectors.forEach(function (connector) { return _this.getOrCreateConnectorSelection(connector, changedItems).onSelectionChanged(isMultipleSelection); });\r\n if (isMultipleSelection) {\r\n var strokeWidth = items.length > 0 ? items[0].strokeWidth : 0;\r\n var rectangles_1 = {};\r\n items.filter(function (i) { return !i.isLocked; }).forEach(function (item) { return rectangles_1[item.key] = item.rectangle; });\r\n this.getOrCreateMultipleSelection(changedItems).onSelectionChanged(!!shapes.filter(function (i) { return !i.isLocked; }).length, strokeWidth, rectangles_1);\r\n }\r\n this.hideOutdatedSelection(changedItems);\r\n };\r\n CanvasSelectionManager.prototype.applyChangesCore = function (changes) {\r\n _super.prototype.applyChangesCore.call(this, changes);\r\n var multipleSelection = this.getMultipleSelection();\r\n multipleSelection && multipleSelection.onModelChanged();\r\n };\r\n CanvasSelectionManager.prototype.applyChange = function (change) {\r\n var multipleSelection = this.getMultipleSelection();\r\n if (change.item instanceof Shape_1.Shape)\r\n this.updateShapeSelection(change.item, multipleSelection);\r\n else if (change.item instanceof Connector_1.Connector)\r\n this.updateConnectorSelection(change.item, multipleSelection);\r\n };\r\n CanvasSelectionManager.prototype.notifyPageColorChanged = function (color) { };\r\n CanvasSelectionManager.prototype.notifyPageSizeChanged = function (pageSize, pageLandscape) { };\r\n CanvasSelectionManager.prototype.notifyActualZoomChanged = function (actualZoom) {\r\n var _this = this;\r\n Object.keys(this.selectionMap).forEach(function (k) { return _this.selectionMap[k].notifyZoomChanged(actualZoom); });\r\n this.actualZoom = actualZoom;\r\n };\r\n CanvasSelectionManager.prototype.notifyViewAdjusted = function (canvasOffset) { };\r\n CanvasSelectionManager.prototype.notifyReadOnlyChanged = function (readOnly) {\r\n var _this = this;\r\n this.readOnly = readOnly;\r\n Object.keys(this.selectionMap).forEach(function (k) { return _this.selectionMap[k].notifyReadOnlyChanged(readOnly); });\r\n };\r\n CanvasSelectionManager.prototype.notifySelectionRectShow = function (rect) {\r\n this.showSelectionRect(rect.clone().multiply(this.actualZoom, this.actualZoom));\r\n };\r\n CanvasSelectionManager.prototype.notifySelectionRectHide = function () {\r\n this.hideSelectionRect();\r\n };\r\n CanvasSelectionManager.prototype.notifyResizeInfoShow = function (point, text) {\r\n this.showResizeInfo(point.clone().multiply(this.actualZoom, this.actualZoom), text);\r\n };\r\n CanvasSelectionManager.prototype.notifyResizeInfoHide = function () {\r\n this.hideResizeInfo();\r\n };\r\n CanvasSelectionManager.prototype.notifyConnectionPointsShow = function (key, points, activePointIndex, outsideRectangle) {\r\n var _this = this;\r\n this.hideConnectionPoints();\r\n points.forEach(function (p, index) {\r\n var point = p.point.clone().multiply(_this.actualZoom, _this.actualZoom);\r\n if (outsideRectangle)\r\n switch (p.side) {\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n point.y = outsideRectangle.y * _this.actualZoom - CanvasSelectionManager.connectionPointShift;\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n point.y = outsideRectangle.bottom * _this.actualZoom + CanvasSelectionManager.connectionPointShift;\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n point.x = outsideRectangle.x * _this.actualZoom - CanvasSelectionManager.connectionPointShift;\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n point.x = outsideRectangle.right * _this.actualZoom + CanvasSelectionManager.connectionPointShift;\r\n break;\r\n }\r\n _this.showConnectionPoint(index, point, key, index, index === activePointIndex, p.allowed);\r\n });\r\n };\r\n CanvasSelectionManager.prototype.notifyConnectionPointsHide = function () {\r\n this.hideConnectionPoints();\r\n };\r\n CanvasSelectionManager.prototype.notifyConnectionTargetShow = function (key, info) {\r\n if (!info.allowed)\r\n return;\r\n var rect = CanvasSelectionManager.correctSelectionRect(info.rect.clone().multiply(this.actualZoom, this.actualZoom), info.strokeWidth, CanvasSelectionManager.connectionTargetBorderWidth, this.actualZoom, 0);\r\n this.showConnectionTarget(0, rect);\r\n };\r\n CanvasSelectionManager.prototype.notifyConnectionTargetHide = function () {\r\n this.hideConnectionTarget();\r\n };\r\n CanvasSelectionManager.prototype.notifyContainerTargetShow = function (key, info) {\r\n var rect = CanvasSelectionManager.correctSelectionRect(info.rect.clone().multiply(this.actualZoom, this.actualZoom), info.strokeWidth, CanvasSelectionManager.connectionTargetBorderWidth, this.actualZoom, 0);\r\n this.showContainerTarget(0, rect);\r\n };\r\n CanvasSelectionManager.prototype.notifyContainerTargetHide = function () {\r\n this.hideContainerTarget();\r\n };\r\n CanvasSelectionManager.prototype.notifyExtensionLinesShow = function (lines) {\r\n var _this = this;\r\n this.hideExtensionLines();\r\n lines.forEach(function (line, index) {\r\n _this.showExtensionLine(index, line.type, line.segment.startPoint.clone().multiply(_this.actualZoom, _this.actualZoom), line.segment.endPoint.clone().multiply(_this.actualZoom, _this.actualZoom), line.text);\r\n });\r\n };\r\n CanvasSelectionManager.prototype.notifyExtensionLinesHide = function () {\r\n this.hideExtensionLines();\r\n };\r\n CanvasSelectionManager.prototype.notifyDragStart = function (itemKeys) {\r\n this.dom.changeByFunc(this.selectionMarksContainer, function (e) { return e.style.display = \"none\"; });\r\n };\r\n CanvasSelectionManager.prototype.notifyDragEnd = function (itemKeys) {\r\n this.dom.changeByFunc(this.selectionMarksContainer, function (e) { return e.style.display = \"\"; });\r\n };\r\n CanvasSelectionManager.prototype.notifyDragScrollStart = function () { };\r\n CanvasSelectionManager.prototype.notifyDragScrollEnd = function () { };\r\n CanvasSelectionManager.prototype.notifyTextInputStart = function (item, text, position, size) {\r\n this.dom.changeByFunc(this.visualizersContainer, function (e) { return e.style.display = \"none\"; });\r\n };\r\n CanvasSelectionManager.prototype.notifyTextInputEnd = function (item) {\r\n this.dom.changeByFunc(this.visualizersContainer, function (e) { return e.style.display = \"\"; });\r\n };\r\n CanvasSelectionManager.prototype.notifyTextInputPermissionsCheck = function (item, allowed) { };\r\n CanvasSelectionManager.correctSelectionRect = function (rect, targetLineWidth, selectionLineWidth, zoomLevel, outsideOffset) {\r\n if (outsideOffset === void 0) { outsideOffset = CanvasSelectionManager.selectionOffset; }\r\n var evenOddWidth = unit_converter_1.UnitConverter.twipsToPixels(targetLineWidth) % 2 !== unit_converter_1.UnitConverter.twipsToPixels(selectionLineWidth) % 2;\r\n var corr = Math.ceil(targetLineWidth / 2 * zoomLevel);\r\n rect = rect.clone().inflate(corr, corr);\r\n var lwCorr = Math.floor(selectionLineWidth / 2);\r\n rect.x -= lwCorr;\r\n rect.y -= lwCorr;\r\n rect.width += selectionLineWidth;\r\n rect.height += selectionLineWidth;\r\n if (evenOddWidth) {\r\n var correction = CanvasSelectionManager.evenOddSelectionCorrection * (unit_converter_1.UnitConverter.twipsToPixels(selectionLineWidth) % 2 === 1 ? -1 : 1);\r\n rect = rect.clone().moveRectangle(correction, correction);\r\n }\r\n return rect.clone().inflate(outsideOffset, outsideOffset);\r\n };\r\n CanvasSelectionManager.selectionMarkSize = unit_converter_1.UnitConverter.pixelsToTwips(10);\r\n CanvasSelectionManager.lockedSelectionMarkSize = unit_converter_1.UnitConverter.pixelsToTwips(8);\r\n CanvasSelectionManager.selectionOffset = unit_converter_1.UnitConverter.pixelsToTwips(2);\r\n CanvasSelectionManager.selectionRectLineWidth = unit_converter_1.UnitConverter.pixelsToTwips(1);\r\n CanvasSelectionManager.multiSelectionRectLineWidth = unit_converter_1.UnitConverter.pixelsToTwips(1);\r\n CanvasSelectionManager.connectionPointSmallSize = unit_converter_1.UnitConverter.pixelsToTwips(5);\r\n CanvasSelectionManager.connectionPointLargeSize = unit_converter_1.UnitConverter.pixelsToTwips(12);\r\n CanvasSelectionManager.connectionPointShift = unit_converter_1.UnitConverter.pixelsToTwips(16);\r\n CanvasSelectionManager.connectionTargetBorderWidth = unit_converter_1.UnitConverter.pixelsToTwips(2);\r\n CanvasSelectionManager.geomertyMarkSize = unit_converter_1.UnitConverter.pixelsToTwips(8);\r\n CanvasSelectionManager.connectorPointMarkSize = unit_converter_1.UnitConverter.pixelsToTwips(6);\r\n CanvasSelectionManager.connectorSideMarkSize = unit_converter_1.UnitConverter.pixelsToTwips(6);\r\n CanvasSelectionManager.extensionLineWidth = unit_converter_1.UnitConverter.pixelsToTwips(1);\r\n CanvasSelectionManager.extensionLineOffset = unit_converter_1.UnitConverter.pixelsToTwips(1);\r\n CanvasSelectionManager.extensionLineEndingSize = unit_converter_1.UnitConverter.pixelsToTwips(6);\r\n CanvasSelectionManager.resizeInfoOffset = unit_converter_1.UnitConverter.pixelsToTwips(16);\r\n CanvasSelectionManager.resizeInfoTextOffset = unit_converter_1.UnitConverter.pixelsToTwips(2);\r\n CanvasSelectionManager.resizeInfoLineWidth = unit_converter_1.UnitConverter.pixelsToTwips(1);\r\n CanvasSelectionManager.evenOddSelectionCorrection = unit_converter_1.UnitConverter.pixelsToTwips(1);\r\n return CanvasSelectionManager;\r\n}(CanvasManager_1.CanvasManager));\r\nexports.CanvasSelectionManager = CanvasSelectionManager;\r\nvar CanvasElement = /** @class */ (function () {\r\n function CanvasElement(rectsContainer, marksContainer, key, zoomLevel, readOnly, dom) {\r\n this.rectsContainer = rectsContainer;\r\n this.marksContainer = marksContainer;\r\n this.key = key;\r\n this.zoomLevel = zoomLevel;\r\n this.readOnly = readOnly;\r\n this.dom = dom;\r\n this.elements = {};\r\n this.updatedElements = {};\r\n }\r\n CanvasElement.prototype.notifyZoomChanged = function (zoom) {\r\n if (this.zoomLevel !== zoom) {\r\n this.zoomLevel = zoom;\r\n this.redraw();\r\n }\r\n };\r\n CanvasElement.prototype.notifyReadOnlyChanged = function (readOnly) {\r\n this.readOnly = readOnly;\r\n this.redraw();\r\n };\r\n CanvasElement.prototype.destroy = function () {\r\n var _this = this;\r\n Object.keys(this.elements)\r\n .forEach(function (key) {\r\n _this.elements[key].parentNode.removeChild(_this.elements[key]);\r\n delete _this.elements[key];\r\n });\r\n };\r\n CanvasElement.prototype.redraw = function () {\r\n var _this = this;\r\n this.updatedElements = {};\r\n this.redrawCore();\r\n Object.keys(this.elements)\r\n .filter(function (key) { return !_this.updatedElements[key]; })\r\n .forEach(function (key) {\r\n _this.elements[key].parentNode.removeChild(_this.elements[key]);\r\n delete _this.elements[key];\r\n });\r\n this.updatedElements = {};\r\n };\r\n CanvasElement.prototype.drawSelectionMarks = function (rect, allowResizeHorizontally, allowResizeVertically) {\r\n if (this.readOnly)\r\n return;\r\n var hasEWMarks = allowResizeHorizontally && rect.height > CanvasSelectionManager.selectionMarkSize * 3;\r\n var hasNSMarks = allowResizeVertically && rect.width > CanvasSelectionManager.selectionMarkSize * 3;\r\n var hasCornerMarks = allowResizeHorizontally || allowResizeVertically;\r\n if (hasCornerMarks)\r\n this.drawSelectionMark(0, new point_1.Point(rect.x, rect.y), CanvasSelectionManager.selectionMarkSize, Event_1.MouseEventElementType.ShapeResizeBox, Event_1.ResizeEventSource.ResizeBox_NW, exports.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK);\r\n if (hasNSMarks && !browser_1.Browser.TouchUI)\r\n this.drawSelectionMark(1, new point_1.Point(rect.x + rect.width / 2, rect.y), CanvasSelectionManager.selectionMarkSize, Event_1.MouseEventElementType.ShapeResizeBox, Event_1.ResizeEventSource.ResizeBox_N, exports.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK);\r\n if (hasCornerMarks)\r\n this.drawSelectionMark(2, new point_1.Point(rect.right, rect.y), CanvasSelectionManager.selectionMarkSize, Event_1.MouseEventElementType.ShapeResizeBox, Event_1.ResizeEventSource.ResizeBox_NE, exports.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK);\r\n if (hasEWMarks && !browser_1.Browser.TouchUI)\r\n this.drawSelectionMark(3, new point_1.Point(rect.right, rect.y + rect.height / 2), CanvasSelectionManager.selectionMarkSize, Event_1.MouseEventElementType.ShapeResizeBox, Event_1.ResizeEventSource.ResizeBox_E, exports.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK);\r\n if (hasCornerMarks)\r\n this.drawSelectionMark(4, new point_1.Point(rect.right, rect.bottom), CanvasSelectionManager.selectionMarkSize, Event_1.MouseEventElementType.ShapeResizeBox, Event_1.ResizeEventSource.ResizeBox_SE, exports.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK);\r\n if (hasNSMarks && !browser_1.Browser.TouchUI)\r\n this.drawSelectionMark(5, new point_1.Point(rect.x + rect.width / 2, rect.bottom), CanvasSelectionManager.selectionMarkSize, Event_1.MouseEventElementType.ShapeResizeBox, Event_1.ResizeEventSource.ResizeBox_S, exports.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK);\r\n if (hasCornerMarks)\r\n this.drawSelectionMark(6, new point_1.Point(rect.x, rect.bottom), CanvasSelectionManager.selectionMarkSize, Event_1.MouseEventElementType.ShapeResizeBox, Event_1.ResizeEventSource.ResizeBox_SW, exports.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK);\r\n if (hasEWMarks && !browser_1.Browser.TouchUI)\r\n this.drawSelectionMark(7, new point_1.Point(rect.x, rect.y + rect.height / 2), CanvasSelectionManager.selectionMarkSize, Event_1.MouseEventElementType.ShapeResizeBox, Event_1.ResizeEventSource.ResizeBox_W, exports.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK);\r\n };\r\n CanvasElement.prototype.drawSelectionMark = function (index, point, size, type, value, className) {\r\n var _this = this;\r\n this.getOrCreateElement(\"SM\" + index, new RectaglePrimitive_1.RectanglePrimitive(point.x - size / 2, point.y - size / 2, size, size, null, className, undefined, function (el) {\r\n Utils_1.RenderUtils.setElementEventData(el, type, _this.key, value);\r\n }), this.marksContainer);\r\n };\r\n CanvasElement.prototype.drawSelectionRect = function (rectangle, type, className) {\r\n var primitive = new RectaglePrimitive_1.RectanglePrimitive(rectangle.x, rectangle.y, rectangle.width, rectangle.height, Style_1.StrokeStyle.default1pxInstance, className, undefined, function (el) {\r\n Utils_1.RenderUtils.setElementEventData(el, type, \"-1\", -1);\r\n });\r\n this.getOrCreateElement(\"shapeSelection\", primitive, this.rectsContainer);\r\n };\r\n CanvasElement.prototype.getOrCreateElement = function (cacheKey, primitive, container) {\r\n var element = this.elements[cacheKey];\r\n if (!element) {\r\n element = primitive.createElement(function (el) { return container.appendChild(el); });\r\n this.elements[cacheKey] = element;\r\n }\r\n this.updatedElements[cacheKey] = true;\r\n this.dom.changeByPrimitive(element, primitive);\r\n return element;\r\n };\r\n return CanvasElement;\r\n}());\r\nvar ItemSelectionElement = /** @class */ (function (_super) {\r\n __extends(ItemSelectionElement, _super);\r\n function ItemSelectionElement(rectsContainer, marksContainer, key, zoomLevel, readOnly, dom, isLocked, rectangle) {\r\n var _this = _super.call(this, rectsContainer, marksContainer, key, zoomLevel, readOnly, dom) || this;\r\n _this.isLocked = isLocked;\r\n _this.rectangle = rectangle;\r\n return _this;\r\n }\r\n ItemSelectionElement.prototype.onSelectionChanged = function (isMultipleSelection) {\r\n if (this.isMultipleSelection !== isMultipleSelection) {\r\n this.isMultipleSelection = isMultipleSelection;\r\n this.redraw();\r\n }\r\n };\r\n ItemSelectionElement.prototype.isLockedRender = function () {\r\n return this.isLocked && !this.readOnly;\r\n };\r\n ItemSelectionElement.prototype.drawLockedSelectionMark = function (index, point, size, className) {\r\n var primitive = new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(point.x - size / 2, point.y - size / 2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(point.x + size / 2, point.y + size / 2),\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(point.x + size / 2, point.y - size / 2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(point.x - size / 2, point.y + size / 2)\r\n ], null, className);\r\n this.getOrCreateElement(\"LSM\" + index, primitive, this.marksContainer);\r\n };\r\n return ItemSelectionElement;\r\n}(CanvasElement));\r\nvar MultipleSelectionElement = /** @class */ (function (_super) {\r\n __extends(MultipleSelectionElement, _super);\r\n function MultipleSelectionElement(rectsContainer, marksContainer, zoomLevel, readOnly, dom) {\r\n var _this = _super.call(this, rectsContainer, marksContainer, \"-1\", zoomLevel, readOnly, dom) || this;\r\n _this.rectangles = {};\r\n return _this;\r\n }\r\n MultipleSelectionElement.prototype.onModelItemChanged = function (key, rectangle) {\r\n if (key in this.rectangles)\r\n this.rectangles[key] = rectangle;\r\n };\r\n MultipleSelectionElement.prototype.onModelChanged = function () {\r\n this.redraw();\r\n };\r\n MultipleSelectionElement.prototype.onSelectionChanged = function (needDrawSelectionMarks, strokeWidth, rectangles) {\r\n this.needDrawSelectionMarks = needDrawSelectionMarks;\r\n this.strokeWidth = strokeWidth;\r\n this.rectangles = rectangles;\r\n this.redraw();\r\n };\r\n MultipleSelectionElement.prototype.redrawCore = function () {\r\n var _this = this;\r\n var rectKeys = Object.keys(this.rectangles);\r\n if (!rectKeys.length)\r\n return;\r\n var rect = Utils_2.GeometryUtils.getCommonRectangle(rectKeys.map(function (key) { return _this.rectangles[key]; })).clone().multiply(this.zoomLevel, this.zoomLevel);\r\n var selRect = CanvasSelectionManager.correctSelectionRect(rect, this.strokeWidth, CanvasSelectionManager.selectionRectLineWidth, this.zoomLevel);\r\n this.drawSelectionRect(selRect, Event_1.MouseEventElementType.SelectionRect, exports.SELECTION_ELEMENT_CLASSNAMES.ITEMS_SELECTION_RECT);\r\n if (this.needDrawSelectionMarks)\r\n this.drawSelectionMarks(rect, true, true);\r\n };\r\n return MultipleSelectionElement;\r\n}(CanvasElement));\r\nvar ShapeSelectionElement = /** @class */ (function (_super) {\r\n __extends(ShapeSelectionElement, _super);\r\n function ShapeSelectionElement(rectsContainer, marksContainer, zoomLevel, readOnly, dom, key, isLocked, rectangle, style, allowResizeHorizontally, allowResizeVertically, shapeParameterPoints) {\r\n var _this = _super.call(this, rectsContainer, marksContainer, key, zoomLevel, readOnly, dom, isLocked, rectangle) || this;\r\n _this.style = style;\r\n _this.allowResizeHorizontally = allowResizeHorizontally;\r\n _this.allowResizeVertically = allowResizeVertically;\r\n _this.shapeParameterPoints = shapeParameterPoints;\r\n return _this;\r\n }\r\n ShapeSelectionElement.prototype.onModelChanged = function (isLocked, rectangle, style, allowResizeHorizontally, allowResizeVertically, shapeParameterPoints) {\r\n this.isLocked = isLocked;\r\n this.rectangle = rectangle;\r\n this.style = style;\r\n this.allowResizeHorizontally = allowResizeHorizontally;\r\n this.allowResizeVertically = allowResizeVertically;\r\n this.shapeParameterPoints = shapeParameterPoints;\r\n this.redraw();\r\n };\r\n ShapeSelectionElement.prototype.redrawCore = function () {\r\n var rect = this.rectangle.clone().multiply(this.zoomLevel, this.zoomLevel);\r\n if (this.isLockedRender())\r\n this.drawLockedSelection(rect);\r\n else\r\n this.drawUnlockedSelection(rect);\r\n };\r\n ShapeSelectionElement.prototype.drawLockedSelection = function (rect) {\r\n this.drawLockedSelectionMark(0, new point_1.Point(rect.x, rect.y), CanvasSelectionManager.lockedSelectionMarkSize, exports.SELECTION_ELEMENT_CLASSNAMES.LOCKED_SELECTION_MARK);\r\n this.drawLockedSelectionMark(1, new point_1.Point(rect.right, rect.y), CanvasSelectionManager.lockedSelectionMarkSize, exports.SELECTION_ELEMENT_CLASSNAMES.LOCKED_SELECTION_MARK);\r\n this.drawLockedSelectionMark(2, new point_1.Point(rect.right, rect.bottom), CanvasSelectionManager.lockedSelectionMarkSize, exports.SELECTION_ELEMENT_CLASSNAMES.LOCKED_SELECTION_MARK);\r\n this.drawLockedSelectionMark(3, new point_1.Point(rect.x, rect.bottom), CanvasSelectionManager.lockedSelectionMarkSize, exports.SELECTION_ELEMENT_CLASSNAMES.LOCKED_SELECTION_MARK);\r\n };\r\n ShapeSelectionElement.prototype.drawUnlockedSelection = function (rect) {\r\n var selRect = CanvasSelectionManager.correctSelectionRect(rect, this.style.strokeWidth, CanvasSelectionManager.selectionRectLineWidth, this.zoomLevel);\r\n this.drawSelectionRect(selRect, Event_1.MouseEventElementType.SelectionRect, this.isMultipleSelection ? exports.SELECTION_ELEMENT_CLASSNAMES.ITEM_MULTI_SELECTION : exports.SELECTION_ELEMENT_CLASSNAMES.ITEM_SELECTION_RECT);\r\n if (!this.isMultipleSelection)\r\n this.drawSelectionMarks(rect, this.allowResizeHorizontally, this.allowResizeVertically);\r\n this.drawShapeParameterPoints();\r\n };\r\n ShapeSelectionElement.prototype.drawShapeParameterPoints = function () {\r\n var _this = this;\r\n if (this.readOnly)\r\n return;\r\n this.shapeParameterPoints.forEach(function (pp, index) {\r\n var point = pp.point.clone().multiply(_this.zoomLevel, _this.zoomLevel);\r\n _this.drawShapeParameterPoint(point, index, pp.key);\r\n });\r\n };\r\n ShapeSelectionElement.prototype.drawShapeParameterPoint = function (point, index, pointKey) {\r\n var _this = this;\r\n var size = CanvasSelectionManager.geomertyMarkSize;\r\n var primitive = new RectaglePrimitive_1.RectanglePrimitive(point.x - size / 2, point.y - size / 2, size, size, null, \"geometry-mark\", undefined, function (el) {\r\n Utils_1.RenderUtils.setElementEventData(el, Event_1.MouseEventElementType.ShapeParameterBox, _this.key, pointKey);\r\n });\r\n this.getOrCreateElement(\"pp\" + index.toString(), primitive, this.marksContainer);\r\n };\r\n return ShapeSelectionElement;\r\n}(ItemSelectionElement));\r\nvar ConnectorSelectionElement = /** @class */ (function (_super) {\r\n __extends(ConnectorSelectionElement, _super);\r\n function ConnectorSelectionElement(rectsContainer, marksContainer, zoomLevel, readOnly, dom, key, isLocked, rectangle, renderPoints, style, styleText, enableText, texts, points, lineType) {\r\n var _this = _super.call(this, rectsContainer, marksContainer, key, zoomLevel, readOnly, dom, isLocked, rectangle) || this;\r\n _this.renderPoints = renderPoints;\r\n _this.style = style;\r\n _this.styleText = styleText;\r\n _this.enableText = enableText;\r\n _this.texts = texts;\r\n _this.points = points;\r\n _this.lineType = lineType;\r\n return _this;\r\n }\r\n ConnectorSelectionElement.prototype.onModelChanged = function (isLocked, rectangle, renderPoints, style, styleText, enableText, texts, points, lineType) {\r\n this.isLocked = isLocked;\r\n this.rectangle = rectangle;\r\n this.renderPoints = renderPoints;\r\n this.style = style;\r\n this.styleText = styleText;\r\n this.enableText = enableText;\r\n this.texts = texts;\r\n this.points = points;\r\n this.lineType = lineType;\r\n this.redraw();\r\n };\r\n ConnectorSelectionElement.prototype.redrawCore = function () {\r\n if (this.isLockedRender())\r\n this.drawLockedSelection();\r\n else\r\n this.drawUnlockedSelection();\r\n };\r\n ConnectorSelectionElement.prototype.drawLockedSelection = function () {\r\n var _this = this;\r\n this.renderPoints.forEach(function (pt, index) {\r\n _this.drawLockedSelectionMark(index, pt, CanvasSelectionManager.lockedSelectionMarkSize, exports.SELECTION_ELEMENT_CLASSNAMES.LOCKED_SELECTION_MARK);\r\n });\r\n };\r\n ConnectorSelectionElement.prototype.drawUnlockedSelection = function () {\r\n this.drawConnectorSelection(this.isMultipleSelection ? exports.SELECTION_ELEMENT_CLASSNAMES.CONNECTOR_MULTI_SELECTION : exports.SELECTION_ELEMENT_CLASSNAMES.CONNECTOR_SELECTION);\r\n if (!this.isMultipleSelection && !this.readOnly)\r\n this.drawConnectorSelectionMarks();\r\n };\r\n ConnectorSelectionElement.prototype.drawConnectorSelection = function (className) {\r\n var _a;\r\n var texts = this.texts;\r\n var textIndex = 0;\r\n var txtAlign = this.styleText.getAlignment();\r\n var commands = [];\r\n var commandsWB = [];\r\n var points = this.renderPoints;\r\n var zoomLevel = this.zoomLevel;\r\n var prevPt = points[0];\r\n var offset;\r\n var r;\r\n var nextOffset;\r\n var nextR;\r\n for (var i = 1, pt = void 0; pt = points[i]; i++) {\r\n var nextPt = points[i + 1];\r\n if (offset === undefined) {\r\n r = metrics_1.Metrics.euclideanDistance(prevPt, pt);\r\n if (r === 0)\r\n continue;\r\n offset = this.getSelectionOffsetPoints(prevPt, pt, r);\r\n }\r\n if (nextPt) {\r\n nextR = metrics_1.Metrics.euclideanDistance(pt, nextPt);\r\n if (nextR === 0)\r\n continue;\r\n nextOffset = this.getSelectionOffsetPoints(pt, nextPt, nextR);\r\n }\r\n var offsetX = offset.x;\r\n var offsetY = offset.y;\r\n var offsetXNegative = -offset.x;\r\n var offsetYNegative = -offset.y;\r\n var nextOffsetX = nextOffset && nextOffset.x;\r\n var nextOffsetY = nextOffset && nextOffset.y;\r\n var nextOffsetXNegative = nextOffset && -nextOffset.x;\r\n var nextOffsetYNegative = nextOffset && -nextOffset.y;\r\n if (this.style.strokeWidthPx % 2 === 0) {\r\n if (offsetXNegative > 0)\r\n offsetXNegative -= CanvasSelectionManager.evenOddSelectionCorrection;\r\n else if (offsetX > 0)\r\n offsetX -= CanvasSelectionManager.evenOddSelectionCorrection;\r\n if (offsetYNegative > 0)\r\n offsetYNegative -= CanvasSelectionManager.evenOddSelectionCorrection;\r\n else if (offsetY > 0)\r\n offsetY -= CanvasSelectionManager.evenOddSelectionCorrection;\r\n if (nextOffsetXNegative > 0)\r\n nextOffsetXNegative -= CanvasSelectionManager.evenOddSelectionCorrection;\r\n else if (nextOffsetX > 0)\r\n nextOffsetX -= CanvasSelectionManager.evenOddSelectionCorrection;\r\n if (nextOffsetYNegative > 0)\r\n nextOffsetYNegative -= CanvasSelectionManager.evenOddSelectionCorrection;\r\n else if (nextOffsetY > 0)\r\n nextOffsetY -= CanvasSelectionManager.evenOddSelectionCorrection;\r\n }\r\n while (texts[textIndex] && texts[textIndex].pointIndex <= i) {\r\n var text = texts[textIndex];\r\n var cos = (pt.x - prevPt.x) / r;\r\n var sin = (pt.y - prevPt.y) / r;\r\n var textPts = this.getTextStartEndPoints(sin, cos, text.point, text.text, txtAlign);\r\n if (texts[textIndex].pointIndex < i) {\r\n prevPt = textPts[1];\r\n commands.push(PathPrimitive_1.PathPrimitiveMoveToCommand.fromPoint(prevPt.clone().offset(offsetX, offsetY).multiply(zoomLevel, zoomLevel)));\r\n commandsWB.push(PathPrimitive_1.PathPrimitiveLineToCommand.fromPoint(prevPt.clone().offset(offsetXNegative, offsetYNegative).multiply(zoomLevel, zoomLevel)));\r\n }\r\n else {\r\n if (!commands.length) {\r\n commands.push(PathPrimitive_1.PathPrimitiveMoveToCommand.fromPoint(prevPt.clone().offset(offsetX, offsetY).multiply(zoomLevel, zoomLevel)));\r\n commandsWB.push(PathPrimitive_1.PathPrimitiveLineToCommand.fromPoint(prevPt.clone().offset(offsetXNegative, offsetYNegative).multiply(zoomLevel, zoomLevel)));\r\n }\r\n commands.push(PathPrimitive_1.PathPrimitiveLineToCommand.fromPoint(textPts[0].clone().offset(offsetX, offsetY).multiply(zoomLevel, zoomLevel)));\r\n commands.push(PathPrimitive_1.PathPrimitiveMoveToCommand.fromPoint(textPts[1].clone().offset(offsetX, offsetY).multiply(zoomLevel, zoomLevel)));\r\n commandsWB.push(PathPrimitive_1.PathPrimitiveMoveToCommand.fromPoint(textPts[0].clone().offset(offsetXNegative, offsetYNegative).multiply(zoomLevel, zoomLevel)));\r\n commandsWB.push(PathPrimitive_1.PathPrimitiveLineToCommand.fromPoint(textPts[1].clone().offset(offsetXNegative, offsetYNegative).multiply(zoomLevel, zoomLevel)));\r\n prevPt = textPts[1];\r\n }\r\n textIndex++;\r\n }\r\n if (!commands.length) {\r\n commands.push(PathPrimitive_1.PathPrimitiveMoveToCommand.fromPoint(prevPt.clone().offset(offsetX, offsetY).multiply(zoomLevel, zoomLevel)));\r\n commandsWB.push(PathPrimitive_1.PathPrimitiveLineToCommand.fromPoint(prevPt.clone().offset(offsetXNegative, offsetYNegative).multiply(zoomLevel, zoomLevel)));\r\n }\r\n if (nextPt) {\r\n var a1 = pt.y - prevPt.y;\r\n var b1 = prevPt.x - pt.x;\r\n var c1 = a1 * (prevPt.x + offsetX) + b1 * (prevPt.y + offsetY);\r\n var c1wb = a1 * (prevPt.x + offsetXNegative) + b1 * (prevPt.y + offsetYNegative);\r\n var a2 = nextPt.y - pt.y;\r\n var b2 = pt.x - nextPt.x;\r\n var c2 = a2 * (pt.x + nextOffsetX) + b2 * (pt.y + nextOffsetY);\r\n var c2wb = a2 * (pt.x + nextOffsetXNegative) + b2 * (pt.y + nextOffsetYNegative);\r\n var det = a1 * b2 - a2 * b1;\r\n if (det !== 0) {\r\n commands.push(new PathPrimitive_1.PathPrimitiveLineToCommand(zoomLevel * (b2 * c1 - b1 * c2) / det, zoomLevel * (a1 * c2 - a2 * c1) / det));\r\n commandsWB.push(new PathPrimitive_1.PathPrimitiveLineToCommand(zoomLevel * (b2 * c1wb - b1 * c2wb) / det, zoomLevel * (a1 * c2wb - a2 * c1wb) / det));\r\n }\r\n _a = [nextOffset, nextR], offset = _a[0], r = _a[1];\r\n }\r\n else {\r\n commands.push(PathPrimitive_1.PathPrimitiveLineToCommand.fromPoint(pt.clone().offset(offsetX, offsetY).multiply(zoomLevel, zoomLevel)));\r\n commandsWB.push(PathPrimitive_1.PathPrimitiveMoveToCommand.fromPoint(pt.clone().offset(offsetXNegative, offsetYNegative).multiply(zoomLevel, zoomLevel)));\r\n }\r\n prevPt = pt;\r\n }\r\n var primitive = new PathPrimitive_1.PathPrimitive(commands.concat(commandsWB.reverse()), Style_1.StrokeStyle.default1pxInstance, className);\r\n this.getOrCreateElement(\"CS\", primitive, this.rectsContainer);\r\n };\r\n ConnectorSelectionElement.prototype.getSelectionOffset = function () {\r\n return CanvasSelectionManager.selectionOffset + unit_converter_1.UnitConverter.pixelsToTwips(Math.round(this.style.strokeWidthPx / 2) + (this.style.strokeWidthPx + 1) % 2);\r\n };\r\n ConnectorSelectionElement.prototype.getSelectionOffsetPoints = function (pt1, pt2, r) {\r\n return new point_1.Point(this.getSelectionOffset() / r * (pt1.y - pt2.y), this.getSelectionOffset() / r * (pt2.x - pt1.x));\r\n };\r\n ConnectorSelectionElement.prototype.getTextStartEndPoints = function (sin, cos, center, text, align) {\r\n var size = this.dom.measurer.measureTextLine(text, this.styleText, ITextMeasurer_1.TextOwner.Connector)\r\n .applyConverter(unit_converter_1.UnitConverter.pixelsToTwips)\r\n .clone().offset(this.getSelectionOffset(), this.getSelectionOffset()).nonNegativeSize();\r\n var width = size.width * cos + size.height * sin;\r\n switch (align) {\r\n case Style_1.TextAlignment.Left:\r\n return [center, new point_1.Point(center.x + cos * width, center.y + sin * width)];\r\n case Style_1.TextAlignment.Right:\r\n return [new point_1.Point(center.x - cos * width, center.y - sin * width), center];\r\n default:\r\n return [new point_1.Point(center.x - 0.5 * cos * width, center.y - 0.5 * sin * width), new point_1.Point(center.x + 0.5 * cos * width, center.y + 0.5 * sin * width)];\r\n }\r\n };\r\n ConnectorSelectionElement.prototype.drawConnectorSelectionMarks = function () {\r\n var _this = this;\r\n var pointsCount = this.points.length - 1;\r\n this.points.forEach(function (pt, index) {\r\n var isEdgePoint = index === 0 || index === pointsCount;\r\n var className = isEdgePoint ? exports.SELECTION_ELEMENT_CLASSNAMES.SELECTION_MARK : exports.SELECTION_ELEMENT_CLASSNAMES.CONNECTOR_POINT_MARK;\r\n var markSize = isEdgePoint ? CanvasSelectionManager.selectionMarkSize : CanvasSelectionManager.connectorPointMarkSize;\r\n if (isEdgePoint || _this.lineType === ConnectorProperties_1.ConnectorLineOption.Straight)\r\n _this.drawSelectionMark(index, pt.clone().multiply(_this.zoomLevel, _this.zoomLevel), markSize, Event_1.MouseEventElementType.ConnectorPoint, index, className);\r\n else\r\n _this.drawSelectionMark(index, pt.clone().multiply(_this.zoomLevel, _this.zoomLevel), markSize, Event_1.MouseEventElementType.Undefined, -1, className + \" disabled\");\r\n });\r\n this.drawConnectorSideMarks();\r\n };\r\n ConnectorSelectionElement.prototype.drawConnectorSideMarks = function () {\r\n var _this = this;\r\n var type = (this.lineType === ConnectorProperties_1.ConnectorLineOption.Straight) ?\r\n Event_1.MouseEventElementType.ConnectorSide : Event_1.MouseEventElementType.ConnectorOrthogonalSide;\r\n var prevPt;\r\n var prevPtIndex;\r\n this.renderPoints.filter(function (rp) { return !rp.skipped; }).forEach(function (pt, index) {\r\n if (pt.skipped)\r\n return;\r\n if (prevPt !== undefined)\r\n if (_this.canDrawConnectorSideMark(pt, prevPt)) {\r\n var classNameSuffix = _this.lineType === ConnectorProperties_1.ConnectorLineOption.Orthogonal ?\r\n (pt.x - prevPt.x === 0 ? \"vertical\" : \"horizontal\") : \"\";\r\n _this.drawSelectionMark(_this.points.length + index - 1, new point_1.Point(prevPt.x + (pt.x - prevPt.x) / 2, prevPt.y + (pt.y - prevPt.y) / 2).clone().multiply(_this.zoomLevel, _this.zoomLevel), CanvasSelectionManager.connectorSideMarkSize, type, prevPtIndex + \"_\" + index, exports.SELECTION_ELEMENT_CLASSNAMES.CONNECTOR_SIDE_MARK + \" \" + classNameSuffix);\r\n }\r\n prevPt = pt;\r\n prevPtIndex = index;\r\n });\r\n };\r\n ConnectorSelectionElement.prototype.canDrawConnectorSideMark = function (point1, point2) {\r\n if (this.lineType === ConnectorProperties_1.ConnectorLineOption.Straight) {\r\n var minSize = CanvasSelectionManager.selectionMarkSize + CanvasSelectionManager.connectorSideMarkSize;\r\n return Utils_2.GeometryUtils.getDistance(point1, point2) > minSize;\r\n }\r\n if (this.lineType === ConnectorProperties_1.ConnectorLineOption.Orthogonal)\r\n return ((point1.x - point2.x === 0 || Math.abs(point1.x - point2.x) > Connector_1.Connector.minOffset) &&\r\n (point1.y - point2.y === 0 || Math.abs(point1.y - point2.y) > Connector_1.Connector.minOffset));\r\n return false;\r\n };\r\n return ConnectorSelectionElement;\r\n}(ItemSelectionElement));\r\n\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DiagramDraggingEvent = exports.ToolboxDraggingObject = exports.Toolbox = void 0;\r\nvar Utils_1 = __webpack_require__(3);\r\nvar point_1 = __webpack_require__(1);\r\nvar evt_1 = __webpack_require__(80);\r\nvar Data_1 = __webpack_require__(43);\r\nvar dom_1 = __webpack_require__(26);\r\nvar touch_1 = __webpack_require__(105);\r\nvar browser_1 = __webpack_require__(17);\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar CanvasItemsManager_1 = __webpack_require__(76);\r\nvar TOOLBOX_CSSCLASS = \"dxdi-toolbox\";\r\nvar DRAG_CAPTURED_CSSCLASS = \"dxdi-tb-drag-captured\";\r\nvar TOUCH_DRAGTIMEOUT_MS = 800;\r\nvar Toolbox = /** @class */ (function () {\r\n function Toolbox(parent, readOnly, allowDragging, shapeDescriptionManager, shapeTypes, getAllowedShapeTypes) {\r\n this.readOnly = readOnly;\r\n this.allowDragging = allowDragging;\r\n this.shapeDescriptionManager = shapeDescriptionManager;\r\n this.shapeTypes = shapeTypes;\r\n this.getAllowedShapeTypes = getAllowedShapeTypes;\r\n this.dragPrepareTimeout = -1;\r\n this.dragState = DragState.None;\r\n this.emulateDragEvents = browser_1.Browser.WebKitTouchUI || browser_1.Browser.AndroidMobilePlatform;\r\n this.onDragOperation = new Utils_1.EventDispatcher();\r\n this.onClickOperation = new Utils_1.EventDispatcher();\r\n if (!parent)\r\n return;\r\n this.mainElement = this.createMainElement(parent);\r\n this.attachHandlers(this.mainElement);\r\n }\r\n Toolbox.prototype.clean = function (removeElement) {\r\n this.detachHandlers(this.mainElement);\r\n if (removeElement)\r\n removeElement(this.mainElement);\r\n };\r\n Toolbox.prototype.createMainElement = function (parent) {\r\n var element = document.createElement(\"div\");\r\n element.setAttribute(\"class\", TOOLBOX_CSSCLASS);\r\n element.draggable = true;\r\n if (this.emulateDragEvents)\r\n element.tabIndex = 0;\r\n parent.appendChild(element);\r\n return element;\r\n };\r\n Toolbox.prototype.attachHandlers = function (element) {\r\n this.onElementMouseDownHandler = this.onElementMouseDown.bind(this);\r\n this.onElementMouseUpHandler = this.onElementMouseUp.bind(this);\r\n this.onMouseDownHandler = this.onMouseDown.bind(this);\r\n this.onMouseMoveHandler = this.onMouseMove.bind(this);\r\n this.onMouseUpHandler = this.onMouseUp.bind(this);\r\n this.onDragStartHandler = this.onDragStart.bind(this);\r\n this.onTouchMoveHandler = this.onTouchMove.bind(this);\r\n if (this.emulateDragEvents)\r\n this.onSelectionChangeHandler = this.onSelectionChange.bind(this);\r\n if (!this.emulateDragEvents)\r\n RenderHelper_1.RenderHelper.addEventListener(element, \"dragstart\", this.onDragStartHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(element, \"touchmove\", this.onTouchMoveHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(element, touch_1.TouchUtils.touchMouseDownEventName, this.onElementMouseDownHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(element, touch_1.TouchUtils.touchMouseUpEventName, this.onElementMouseUpHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(element, touch_1.TouchUtils.touchMouseDownEventName, this.onMouseDownHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(document, touch_1.TouchUtils.touchMouseMoveEventName, this.onMouseMoveHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(document, touch_1.TouchUtils.touchMouseUpEventName, this.onMouseUpHandler);\r\n if (this.emulateDragEvents)\r\n RenderHelper_1.RenderHelper.addEventListener(document, \"selectionchange\", this.onSelectionChangeHandler);\r\n };\r\n Toolbox.prototype.detachHandlers = function (element) {\r\n if (!this.emulateDragEvents)\r\n RenderHelper_1.RenderHelper.removeEventListener(element, \"dragstart\", this.onDragStartHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(element, \"touchmove\", this.onTouchMoveHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(element, touch_1.TouchUtils.touchMouseDownEventName, this.onElementMouseDownHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(element, touch_1.TouchUtils.touchMouseUpEventName, this.onElementMouseUpHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(element, touch_1.TouchUtils.touchMouseDownEventName, this.onMouseDownHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(document, touch_1.TouchUtils.touchMouseMoveEventName, this.onMouseMoveHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(document, touch_1.TouchUtils.touchMouseUpEventName, this.onMouseUpHandler);\r\n if (this.emulateDragEvents)\r\n RenderHelper_1.RenderHelper.removeEventListener(document, \"selectionchange\", this.onSelectionChangeHandler);\r\n };\r\n Toolbox.prototype.render = function (filter) {\r\n if (this.mainElement.childNodes)\r\n this.mainElement.innerHTML = \"\";\r\n var shapeTypes = this.shapeTypes;\r\n shapeTypes = this.getAllowedShapeTypes ? this.getAllowedShapeTypes(shapeTypes) : shapeTypes;\r\n shapeTypes = filter ? shapeTypes.filter(filter) : shapeTypes;\r\n if (shapeTypes.length)\r\n this.createElements(this.mainElement, shapeTypes);\r\n return !!shapeTypes.length;\r\n };\r\n Toolbox.prototype.createDraggingObject = function (shapeType) {\r\n var evt = new DiagramDraggingEvent();\r\n evt.data = shapeType;\r\n evt.onFinishDragging = this.resetDragState.bind(this);\r\n evt.onCaptured = this.capture.bind(this);\r\n return new ToolboxDraggingObject(evt);\r\n };\r\n Toolbox.prototype.getDragShapeType = function (element) {\r\n while (element && !dom_1.DomUtils.hasClassName(element, TOOLBOX_CSSCLASS)) {\r\n if (element.getAttribute && element.getAttribute(\"data-tb-type\"))\r\n return element.getAttribute(\"data-tb-type\");\r\n element = element.parentNode;\r\n }\r\n return undefined;\r\n };\r\n Toolbox.prototype.onElementMouseDown = function (evt) {\r\n this.mouseDownShapeType = this.getDragShapeType(evt_1.EvtUtils.getEventSource(evt));\r\n };\r\n Toolbox.prototype.onElementMouseUp = function (evt) {\r\n var shapeType = this.getDragShapeType(evt_1.EvtUtils.getEventSource(evt));\r\n if (shapeType && shapeType === this.mouseDownShapeType)\r\n this.onClickOperation.raise(\"notifyToolboxClick\", shapeType);\r\n this.mouseDownShapeType = undefined;\r\n };\r\n Toolbox.prototype.onMouseDown = function (evt) {\r\n this.setDragState(DragState.Prepare, evt);\r\n };\r\n Toolbox.prototype.onDragStart = function (evt) {\r\n this.setDragState(DragState.Start, evt);\r\n evt.preventDefault();\r\n };\r\n Toolbox.prototype.onTouchMove = function (evt) {\r\n if (this.draggingObject)\r\n evt.preventDefault();\r\n };\r\n Toolbox.prototype.onSelectionChange = function () {\r\n // this.setDragState(DragState.Start, null);\r\n };\r\n Toolbox.prototype.onMouseMove = function (evt) {\r\n this.setDragState(evt_1.EvtUtils.isLeftButtonPressed(evt) ? DragState.Dragging : DragState.None, evt);\r\n };\r\n Toolbox.prototype.onMouseUp = function (evt) {\r\n this.setDragState(DragState.None, evt);\r\n };\r\n Toolbox.prototype.updateDraggingElementPosition = function (evtX, evtY) {\r\n var element = this.draggingObject.element;\r\n var xPos = evtX - element.offsetWidth / 2;\r\n var yPos = evtY - element.offsetHeight / 2;\r\n Data_1.SetAbsoluteX(element, xPos);\r\n Data_1.SetAbsoluteY(element, yPos);\r\n };\r\n Toolbox.prototype.setDragState = function (newState, evt) {\r\n if (this.readOnly || !this.allowDragging)\r\n return;\r\n if (newState === DragState.None && newState === this.dragState)\r\n return;\r\n if (this.dragPrepareTimeout > -1) {\r\n clearTimeout(this.dragPrepareTimeout);\r\n this.dragPrepareTimeout = -1;\r\n }\r\n if (newState - this.dragState > 1 || newState !== DragState.None && newState < this.dragState)\r\n return;\r\n this.dragState = newState;\r\n switch (newState) {\r\n case DragState.Prepare:\r\n if (!this.prepareDragging(evt))\r\n this.setDragState(DragState.None, evt);\r\n if (this.emulateDragEvents)\r\n this.dragPrepareTimeout = setTimeout(this.onDragPrepareTimeout.bind(this), TOUCH_DRAGTIMEOUT_MS);\r\n break;\r\n case DragState.Start:\r\n dom_1.DomUtils.addClassName(document.body, \"dxdi-dragging\");\r\n this.startDragging();\r\n break;\r\n case DragState.Dragging:\r\n this.doDragging(evt);\r\n break;\r\n case DragState.None:\r\n this.finishDragging();\r\n break;\r\n }\r\n };\r\n Toolbox.prototype.resetDragState = function (evt) {\r\n this.setDragState(DragState.None, evt);\r\n };\r\n Toolbox.prototype.onDragPrepareTimeout = function () {\r\n this.dragPrepareTimeout = -1;\r\n if (this.dragState === DragState.Prepare)\r\n this.setDragState(DragState.Start, null);\r\n };\r\n Toolbox.prototype.prepareDragging = function (evt) {\r\n this.dragStartPoint = new point_1.Point(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.getEventY(evt));\r\n this.dragStartShapeType = this.getDragShapeType(evt_1.EvtUtils.getEventSource(evt));\r\n if (this.emulateDragEvents)\r\n this.mainElement.focus();\r\n return !!this.dragStartShapeType;\r\n };\r\n Toolbox.prototype.startDragging = function () {\r\n this.draggingObject = this.createDraggingObject(this.dragStartShapeType);\r\n if (this.dragStartShapeType) {\r\n this.raiseDragStart();\r\n this.draggingObject.element = this.createDraggingElement(this.draggingObject);\r\n if (this.draggingObject.captured !== undefined)\r\n this.capture(this.draggingObject.captured, true);\r\n this.updateDraggingElementPosition(this.dragStartPoint.x, this.dragStartPoint.y);\r\n }\r\n else\r\n dom_1.DomUtils.addClassName(document.body, CanvasItemsManager_1.NOT_VALID_CSSCLASS);\r\n };\r\n Toolbox.prototype.doDragging = function (evt) {\r\n if (this.draggingObject.element)\r\n this.updateDraggingElementPosition(evt_1.EvtUtils.getEventX(evt), evt_1.EvtUtils.getEventY(evt));\r\n };\r\n Toolbox.prototype.finishDragging = function () {\r\n if (this.draggingObject) {\r\n this.raiseDragEnd();\r\n var element = this.draggingObject.element;\r\n if (element)\r\n element.parentNode.removeChild(element);\r\n delete this.draggingObject;\r\n }\r\n this.dragStartPoint = undefined;\r\n this.dragStartShapeType = undefined;\r\n dom_1.DomUtils.removeClassName(document.body, CanvasItemsManager_1.NOT_VALID_CSSCLASS);\r\n setTimeout(function () { return dom_1.DomUtils.removeClassName(document.body, \"dxdi-dragging\"); }, 500); // prevent selection on dragend\r\n };\r\n Toolbox.prototype.capture = function (captured, forced) {\r\n if (this.draggingObject && (this.draggingObject.captured !== captured || forced)) {\r\n this.draggingObject.captured = captured;\r\n if (this.draggingObject.element)\r\n dom_1.DomUtils.toggleClassName(this.draggingObject.element, DRAG_CAPTURED_CSSCLASS, captured);\r\n }\r\n };\r\n Toolbox.prototype.raiseDragStart = function () {\r\n this.onDragOperation.raise(\"notifyToolboxDragStart\");\r\n };\r\n Toolbox.prototype.raiseDragEnd = function () {\r\n this.onDragOperation.raise(\"notifyToolboxDragEnd\");\r\n };\r\n Toolbox.prototype.notifyReadOnlyChanged = function (readOnly) {\r\n this.readOnly = readOnly;\r\n };\r\n return Toolbox;\r\n}());\r\nexports.Toolbox = Toolbox;\r\nvar DragState;\r\n(function (DragState) {\r\n DragState[DragState[\"None\"] = -1] = \"None\";\r\n DragState[DragState[\"Prepare\"] = 0] = \"Prepare\";\r\n DragState[DragState[\"Start\"] = 1] = \"Start\";\r\n DragState[DragState[\"Dragging\"] = 2] = \"Dragging\";\r\n})(DragState || (DragState = {}));\r\nvar ToolboxDraggingObject = /** @class */ (function () {\r\n function ToolboxDraggingObject(evt) {\r\n this.evt = evt;\r\n }\r\n return ToolboxDraggingObject;\r\n}());\r\nexports.ToolboxDraggingObject = ToolboxDraggingObject;\r\nvar DiagramDraggingEvent = /** @class */ (function () {\r\n function DiagramDraggingEvent() {\r\n }\r\n return DiagramDraggingEvent;\r\n}());\r\nexports.DiagramDraggingEvent = DiagramDraggingEvent;\r\n\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DeleteCommand = void 0;\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar DeleteCommand = /** @class */ (function (_super) {\r\n __extends(DeleteCommand, _super);\r\n function DeleteCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DeleteCommand.prototype.isEnabled = function () {\r\n var items = this.control.selection.getSelectedItems();\r\n return _super.prototype.isEnabled.call(this) && items.length && (items.length > 1 || this.permissionsProvider.canDeleteItems(items));\r\n };\r\n DeleteCommand.prototype.executeCore = function (state) {\r\n this.permissionsProvider.beginDeleteItems(this.control.selection.getSelectedItems());\r\n ModelUtils_1.ModelUtils.deleteSelection(this.control.history, this.control.model, this.control.selection);\r\n this.permissionsProvider.endDeleteItems();\r\n return true;\r\n };\r\n Object.defineProperty(DeleteCommand.prototype, \"isPermissionsRequired\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return DeleteCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.DeleteCommand = DeleteCommand;\r\n\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Flag = (function () {\r\n function Flag(initValue) {\r\n if (initValue === void 0) { initValue = 0; }\r\n this.value = initValue;\r\n }\r\n Flag.prototype.get = function (enumVal) {\r\n return (this.value & enumVal) === enumVal;\r\n };\r\n Flag.prototype.set = function (enumVal, newValue) {\r\n var currVal = (this.value & enumVal) === enumVal;\r\n if (currVal !== newValue) {\r\n if (newValue)\r\n this.value |= enumVal;\r\n else\r\n this.value ^= enumVal;\r\n }\r\n return this;\r\n };\r\n Flag.prototype.add = function (value) {\r\n this.value |= value;\r\n };\r\n Flag.prototype.anyOf = function () {\r\n var flags = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n flags[_i] = arguments[_i];\r\n }\r\n for (var _a = 0, flags_1 = flags; _a < flags_1.length; _a++) {\r\n var flag = flags_1[_a];\r\n if ((this.value & flag) === flag)\r\n return true;\r\n }\r\n return false;\r\n };\r\n Flag.prototype.getValue = function () {\r\n return this.value;\r\n };\r\n Flag.prototype.clone = function () {\r\n return new Flag(this.value);\r\n };\r\n return Flag;\r\n}());\r\nexports.Flag = Flag;\r\n\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar list_1 = __webpack_require__(82);\r\nvar search_1 = __webpack_require__(40);\r\nvar fixed_1 = __webpack_require__(107);\r\nvar collector_1 = __webpack_require__(169);\r\nvar IntervalAlgorithms = (function () {\r\n function IntervalAlgorithms() {\r\n }\r\n IntervalAlgorithms.oneConstainsOtherArraysOfInterval = function (mergedIntervalsA, intervalsB) {\r\n var shouldBeContais = list_1.ListUtils.deepCopy(intervalsB);\r\n var currenInterval = shouldBeContais.pop();\r\n while (currenInterval) {\r\n if (!list_1.ListUtils.unsafeAnyOf(mergedIntervalsA, function (mergedInterval) { return mergedInterval.containsInterval(currenInterval); }))\r\n return false;\r\n currenInterval = shouldBeContais.pop();\r\n }\r\n return true;\r\n };\r\n IntervalAlgorithms.getIntersection = function (intervalA, intervalB) {\r\n return IntervalAlgorithms.getIntersectionTemplate(intervalA, intervalB, intervalA);\r\n };\r\n IntervalAlgorithms.getIntersectionTemplate = function (intervalA, intervalB, template) {\r\n var start = Math.max(intervalA.start, intervalB.start);\r\n var end = Math.min(intervalA.end, intervalB.end);\r\n if (start > end)\r\n return null;\r\n return template.makeByStartEnd(start, end);\r\n };\r\n IntervalAlgorithms.getIntersectionNonNullLength = function (intervalA, intervalB) {\r\n return IntervalAlgorithms.getIntersectionNonNullLengthTemplate(intervalA, intervalB, intervalA);\r\n };\r\n IntervalAlgorithms.getIntersectionNonNullLengthTemplate = function (intervalA, intervalB, template) {\r\n var inters = IntervalAlgorithms.getIntersectionTemplate(intervalA, intervalB, template);\r\n return inters && inters.length ? inters : null;\r\n };\r\n IntervalAlgorithms.getIntersectionsTwoArraysOfInterval = function (intervalsA, intervalsB) {\r\n return IntervalAlgorithms.getIntersectionsTwoArraysOfIntervalTemplate(intervalsA, intervalsB, intervalsA[0]);\r\n };\r\n IntervalAlgorithms.getIntersectionsTwoArraysOfIntervalTemplate = function (intervalsA, intervalsB, template) {\r\n var result = [];\r\n var lengthIntervalsA = intervalsA.length;\r\n var lengthIntervalsB = intervalsB.length;\r\n var intervalsAIndex = 0;\r\n var intervalsBIndex = 0;\r\n var currAInterval = intervalsA[intervalsAIndex];\r\n var currBInterval = intervalsB[intervalsBIndex];\r\n var currResultInterval = null;\r\n while (intervalsAIndex < lengthIntervalsA && intervalsBIndex < lengthIntervalsB) {\r\n var intersection = IntervalAlgorithms.getIntersectionTemplate(currAInterval, currBInterval, template);\r\n if (intersection) {\r\n if (currResultInterval && currResultInterval.end === intersection.start)\r\n currResultInterval.length += intersection.length;\r\n else {\r\n currResultInterval = intersection;\r\n result.push(currResultInterval);\r\n }\r\n }\r\n if (currAInterval.end < currBInterval.end) {\r\n intervalsAIndex++;\r\n currAInterval = intervalsA[intervalsAIndex];\r\n }\r\n else {\r\n intervalsBIndex++;\r\n currBInterval = intervalsB[intervalsBIndex];\r\n }\r\n }\r\n return result;\r\n };\r\n IntervalAlgorithms.getAffectedObjects = function (objects, intervals, getFirstIndex, conflictResolver) {\r\n if (getFirstIndex === void 0) { getFirstIndex = function (start) {\r\n return search_1.SearchUtils.normedInterpolationIndexOf(objects, function (obj) { return obj.interval.start; }, start);\r\n }; }\r\n if (conflictResolver === void 0) { conflictResolver = function (objectInterval, touchingIntervalLength, touchPoint) {\r\n return objectInterval.start === touchPoint && touchingIntervalLength === 0;\r\n }; }\r\n return IntervalAlgorithms.getAffectedObjectsTemplate(objects, intervals, intervals[0], getFirstIndex, conflictResolver);\r\n };\r\n IntervalAlgorithms.getAffectedObjectsTemplate = function (objects, intervals, template, getFirstIndex, conflictResolver) {\r\n if (getFirstIndex === void 0) { getFirstIndex = function (start) {\r\n return search_1.SearchUtils.normedInterpolationIndexOf(objects, function (obj) { return obj.interval.start; }, start);\r\n }; }\r\n if (conflictResolver === void 0) { conflictResolver = function (objectInterval, touchingIntervalLength, touchPoint) {\r\n return objectInterval.start === touchPoint && touchingIntervalLength === 0;\r\n }; }\r\n var collector = new collector_1.SparseIntervalsCollector(template);\r\n for (var _i = 0, intervals_1 = intervals; _i < intervals_1.length; _i++) {\r\n var interval = intervals_1[_i];\r\n var ind = Math.max(0, getFirstIndex(interval.start, objects));\r\n for (var obj = void 0; obj = objects[ind]; ind++) {\r\n var objInterval = obj.interval;\r\n if (objInterval.start > interval.end)\r\n break;\r\n var intersection = IntervalAlgorithms.getIntersectionTemplate(objInterval, interval, template);\r\n if (intersection && (intersection.length || conflictResolver(objInterval, interval.length, intersection.start)))\r\n collector.add(ind);\r\n }\r\n }\r\n return collector.getIntervals();\r\n };\r\n IntervalAlgorithms.handleAffectedObjects = function (objects, intervals, callback, getFirstIndex) {\r\n if (getFirstIndex === void 0) { getFirstIndex = function (start) {\r\n return search_1.SearchUtils.normedInterpolationIndexOf(objects, function (obj) { return obj.interval.start; }, start);\r\n }; }\r\n var template = new fixed_1.FixedInterval(0, 0);\r\n for (var _i = 0, intervals_2 = intervals; _i < intervals_2.length; _i++) {\r\n var interval = intervals_2[_i];\r\n var ind = Math.max(0, getFirstIndex(interval.start, objects));\r\n for (var obj = void 0; obj = objects[ind]; ind++) {\r\n var objInterval = obj.interval;\r\n if (objInterval.start > interval.end)\r\n break;\r\n var intersection = IntervalAlgorithms.getIntersectionTemplate(objInterval, interval, template);\r\n if (intersection)\r\n callback(obj, ind, interval, intersection);\r\n }\r\n }\r\n };\r\n IntervalAlgorithms.getMergedIntervals = function (intervals, needSort) {\r\n return IntervalAlgorithms.getMergedIntervalsTemplate(intervals, needSort, intervals[0]);\r\n };\r\n IntervalAlgorithms.getMergedIntervalsTemplate = function (intervals, needSort, template) {\r\n if (intervals.length < 2)\r\n return intervals.length > 0 ? [template.makeByStartLength(intervals[0].start, intervals[0].length)] : [];\r\n var sortedIntervals = needSort ?\r\n [].concat(intervals).sort(function (a, b) { return a.start - b.start; }) :\r\n intervals;\r\n var result = [];\r\n for (var i = 0, interval = void 0; interval = sortedIntervals[i];) {\r\n var minBound = interval.start;\r\n var maxBound = interval.end;\r\n for (++i; (interval = sortedIntervals[i]) !== undefined && (interval.start <= maxBound); i++) {\r\n if (interval.end > maxBound)\r\n maxBound = interval.end;\r\n }\r\n result.push(template.makeByStartEnd(minBound, maxBound));\r\n }\r\n return result;\r\n };\r\n IntervalAlgorithms.reflectIntervals = function (intervals, bounds) {\r\n return IntervalAlgorithms.reflectIntervalsTemplate(intervals, bounds, bounds);\r\n };\r\n IntervalAlgorithms.reflectIntervalsTemplate = function (intervals, bounds, template) {\r\n if (!intervals.length)\r\n return [template.makeByStartLength(bounds.start, bounds.length)];\r\n var lastIntervalEnd = list_1.ListUtils.last(intervals).end;\r\n var result = list_1.ListUtils.reducedMap(intervals, function (curr, i) {\r\n return IntervalAlgorithms.getIntersectionNonNullLengthTemplate(template.makeByStartEnd(intervals[i - 1].end, curr.start), bounds, template);\r\n }, 1);\r\n if (bounds.start < intervals[0].start)\r\n result.unshift(template.makeByStartEnd(bounds.start, intervals[0].start));\r\n if (bounds.end > lastIntervalEnd)\r\n result.push(template.makeByStartEnd(lastIntervalEnd, bounds.end));\r\n return result;\r\n };\r\n IntervalAlgorithms.reflectionOfPointOnInterval = function (value, valInterval, targetInterval) {\r\n return (value - valInterval.start) / valInterval.length * targetInterval.length + targetInterval.start;\r\n };\r\n return IntervalAlgorithms;\r\n}());\r\nexports.IntervalAlgorithms = IntervalAlgorithms;\r\n\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(55);\r\nvar MinMax = (function () {\r\n function MinMax(minElement, maxElement) {\r\n this.minElement = minElement;\r\n this.maxElement = maxElement;\r\n }\r\n return MinMax;\r\n}());\r\nexports.MinMax = MinMax;\r\nvar MinMaxNumber = (function (_super) {\r\n tslib_1.__extends(MinMaxNumber, _super);\r\n function MinMaxNumber() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(MinMaxNumber.prototype, \"length\", {\r\n get: function () {\r\n return this.maxElement - this.minElement;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return MinMaxNumber;\r\n}(MinMax));\r\nexports.MinMaxNumber = MinMaxNumber;\r\nvar ExtendedMin = (function () {\r\n function ExtendedMin(minElement, minValue) {\r\n this.minElement = minElement;\r\n this.minValue = minValue;\r\n }\r\n return ExtendedMin;\r\n}());\r\nexports.ExtendedMin = ExtendedMin;\r\nvar ExtendedMax = (function () {\r\n function ExtendedMax(maxElement, maxValue) {\r\n this.maxElement = maxElement;\r\n this.maxValue = maxValue;\r\n }\r\n return ExtendedMax;\r\n}());\r\nexports.ExtendedMax = ExtendedMax;\r\nvar ExtendedMinMax = (function (_super) {\r\n tslib_1.__extends(ExtendedMinMax, _super);\r\n function ExtendedMinMax(minElement, minValue, maxElement, maxValue) {\r\n var _this = _super.call(this, minElement, maxElement) || this;\r\n _this.minValue = minValue;\r\n _this.maxValue = maxValue;\r\n return _this;\r\n }\r\n return ExtendedMinMax;\r\n}(MinMax));\r\nexports.ExtendedMinMax = ExtendedMinMax;\r\n\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Comparers = (function () {\r\n function Comparers() {\r\n }\r\n Comparers.number = function (a, b) {\r\n return a - b;\r\n };\r\n Comparers.string = function (a, b) {\r\n return ((a === b) ? 0 : ((a > b) ? 1 : -1));\r\n };\r\n Comparers.stringIgnoreCase = function (a, b) {\r\n a = a.toLowerCase();\r\n b = b.toLowerCase();\r\n return ((a === b) ? 0 : ((a > b) ? 1 : -1));\r\n };\r\n return Comparers;\r\n}());\r\nexports.Comparers = Comparers;\r\nvar Equals = (function () {\r\n function Equals() {\r\n }\r\n Equals.simpleType = function (a, b) {\r\n return a === b;\r\n };\r\n Equals.object = function (a, b) {\r\n return a && b && (a === b || a.equals(b));\r\n };\r\n return Equals;\r\n}());\r\nexports.Equals = Equals;\r\n\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(55);\r\nvar const_1 = __webpack_require__(168);\r\nvar MutableInterval = (function (_super) {\r\n tslib_1.__extends(MutableInterval, _super);\r\n function MutableInterval() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MutableInterval.prototype.normalizeLength = function () {\r\n if (this.length < 0)\r\n this.length = 0;\r\n return this;\r\n };\r\n return MutableInterval;\r\n}(const_1.ConstInterval));\r\nexports.MutableInterval = MutableInterval;\r\n\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ConstInterval = (function () {\r\n function ConstInterval() {\r\n }\r\n Object.defineProperty(ConstInterval.prototype, \"center\", {\r\n get: function () {\r\n return this.start + (this.length / 2);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ConstInterval.prototype.isNormalized = function () {\r\n return this.end >= this.start;\r\n };\r\n ConstInterval.prototype.isCollapsed = function () {\r\n return this.length === 0;\r\n };\r\n ConstInterval.prototype.equals = function (obj) {\r\n return this.start === obj.start && this.end === obj.end;\r\n };\r\n ConstInterval.isCollapsed = function (intervals) {\r\n return !intervals[1] && intervals[0].isCollapsed();\r\n };\r\n ConstInterval.prototype.containsInterval = function (interval) {\r\n return this.start <= interval.start && this.end >= interval.end;\r\n };\r\n ConstInterval.prototype.containsIntervalWithoutEnd = function (interval) {\r\n return this.start <= interval.start && this.end > interval.end;\r\n };\r\n ConstInterval.prototype.contains = function (pos) {\r\n return this.start <= pos && pos < this.end;\r\n };\r\n ConstInterval.prototype.containsWithIntervalEnd = function (val) {\r\n return this.start <= val && val <= this.end;\r\n };\r\n ConstInterval.prototype.containsWithoutIntervalEndAndStart = function (pos) {\r\n return this.start < pos && pos < this.end;\r\n };\r\n return ConstInterval;\r\n}());\r\nexports.ConstInterval = ConstInterval;\r\n\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar intervals_1 = __webpack_require__(170);\r\nvar SparseIntervalsCollector = (function () {\r\n function SparseIntervalsCollector(template) {\r\n this.intervals = [];\r\n this.template = template;\r\n }\r\n SparseIntervalsCollector.prototype.add = function (index) {\r\n if (this.curr && this.curr.end === index) {\r\n this.curr.length++;\r\n return;\r\n }\r\n this.curr = this.template.makeByStartLength(index, 1);\r\n this.intervals.push(this.curr);\r\n };\r\n SparseIntervalsCollector.prototype.getIntervals = function () {\r\n return new intervals_1.SparseIntervals(this.intervals);\r\n };\r\n return SparseIntervalsCollector;\r\n}());\r\nexports.SparseIntervalsCollector = SparseIntervalsCollector;\r\n\n\n/***/ }),\n/* 170 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar iterator_1 = __webpack_require__(108);\r\nvar objects_iterator_1 = __webpack_require__(171);\r\nvar SparseIntervals = (function () {\r\n function SparseIntervals(list) {\r\n if (list === void 0) { list = []; }\r\n this.list = list;\r\n this._count = 0;\r\n this._numIntervals = 0;\r\n for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {\r\n var curr = list_1[_i];\r\n this._count += curr.length;\r\n this._numIntervals++;\r\n }\r\n }\r\n Object.defineProperty(SparseIntervals.prototype, \"count\", {\r\n get: function () {\r\n return this._count;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(SparseIntervals.prototype, \"numIntervals\", {\r\n get: function () {\r\n return this._numIntervals;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n SparseIntervals.prototype.getInterval = function (index) {\r\n return this.list[index];\r\n };\r\n SparseIntervals.prototype.getNativeIterator = function () {\r\n return new iterator_1.SparseIntervalsIterator(this);\r\n };\r\n SparseIntervals.prototype.getObjectsIterator = function (objects) {\r\n return new objects_iterator_1.SparseObjectsIterator(this, objects);\r\n };\r\n return SparseIntervals;\r\n}());\r\nexports.SparseIntervals = SparseIntervals;\r\n\n\n/***/ }),\n/* 171 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(55);\r\nvar iterator_1 = __webpack_require__(108);\r\nvar SparseObjectsIterator = (function (_super) {\r\n tslib_1.__extends(SparseObjectsIterator, _super);\r\n function SparseObjectsIterator(sparseIntervals, objects) {\r\n var _this = _super.call(this, sparseIntervals) || this;\r\n _this.objects = objects;\r\n return _this;\r\n }\r\n SparseObjectsIterator.prototype.initObject = function () {\r\n this.obj = this.objects[this.index];\r\n };\r\n return SparseObjectsIterator;\r\n}(iterator_1.SparseIntervalsIterator));\r\nexports.SparseObjectsIterator = SparseObjectsIterator;\r\n\n\n/***/ }),\n/* 172 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TextFloodFilterPrimitive = exports.TextFilterPrimitive = void 0;\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar FilterPrimitive_1 = __webpack_require__(109);\r\nvar Model_1 = __webpack_require__(59);\r\nvar color_1 = __webpack_require__(22);\r\nvar TextFilterPrimitive = /** @class */ (function (_super) {\r\n __extends(TextFilterPrimitive, _super);\r\n function TextFilterPrimitive(id, x, y, width, height) {\r\n if (x === void 0) { x = \"-0.05\"; }\r\n if (y === void 0) { y = \"-0.05\"; }\r\n if (width === void 0) { width = \"1.1\"; }\r\n if (height === void 0) { height = \"1.1\"; }\r\n var _this = _super.call(this, id, x, y, width, height) || this;\r\n _this.id = id;\r\n _this.x = x;\r\n _this.y = y;\r\n _this.width = width;\r\n _this.height = height;\r\n return _this;\r\n }\r\n TextFilterPrimitive.prototype.createChildElements = function (parent) {\r\n var feFlood = document.createElementNS(RenderHelper_1.svgNS, \"feFlood\");\r\n parent.appendChild(feFlood);\r\n var feComposite = document.createElementNS(RenderHelper_1.svgNS, \"feComposite\");\r\n feComposite.setAttribute(\"in\", \"SourceGraphic\");\r\n feComposite.setAttribute(\"operator\", \"atop\");\r\n parent.appendChild(feComposite);\r\n };\r\n return TextFilterPrimitive;\r\n}(FilterPrimitive_1.FilterPrimitive));\r\nexports.TextFilterPrimitive = TextFilterPrimitive;\r\nvar TextFloodFilterPrimitive = /** @class */ (function (_super) {\r\n __extends(TextFloodFilterPrimitive, _super);\r\n function TextFloodFilterPrimitive(id, floodColor, x, y, width, height) {\r\n if (x === void 0) { x = \"-0.05\"; }\r\n if (y === void 0) { y = \"-0.05\"; }\r\n if (width === void 0) { width = \"1.1\"; }\r\n if (height === void 0) { height = \"1.1\"; }\r\n var _this = _super.call(this, id, x, y, width, height) || this;\r\n _this.id = id;\r\n _this.floodColor = floodColor;\r\n _this.x = x;\r\n _this.y = y;\r\n _this.width = width;\r\n _this.height = height;\r\n return _this;\r\n }\r\n TextFloodFilterPrimitive.prototype.applyChildrenProperties = function (element) {\r\n for (var child = void 0, i = 0; child = element.childNodes[i]; i++)\r\n if (child.nodeName && child.nodeName.toUpperCase() === \"FEFLOOD\") {\r\n this.prepareFEFloodNode(child);\r\n break;\r\n }\r\n };\r\n TextFloodFilterPrimitive.prototype.prepareFEFloodNode = function (node) {\r\n var colorHash = color_1.ColorUtils.colorToHash(this.floodColor);\r\n node.setAttribute(\"flood-color\", colorHash);\r\n node.setAttribute(\"class\", \"text-filter-flood\");\r\n if (this.floodColor !== Model_1.DiagramModel.defaultPageColor)\r\n node.style.setProperty(\"flood-color\", colorHash);\r\n else\r\n node.style.setProperty(\"flood-color\", \"\");\r\n };\r\n return TextFloodFilterPrimitive;\r\n}(TextFilterPrimitive));\r\nexports.TextFloodFilterPrimitive = TextFloodFilterPrimitive;\r\n\n\n/***/ }),\n/* 173 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EncodeUtils = (function () {\r\n function EncodeUtils() {\r\n }\r\n EncodeUtils.encodeHtml = function (text) {\r\n return text\r\n .replace(/&/g, '&')\r\n .replace(//g, '>');\r\n };\r\n EncodeUtils.decodeHtml = function (text) {\r\n return text\r\n .replace(/&/g, '&')\r\n .replace(/</g, '<')\r\n .replace(/>/g, '>');\r\n };\r\n EncodeUtils.prepareTextForRequest = function (text) {\r\n return text\r\n .replace(/%/g, '%25')\r\n .replace(/&/g, '%26amp;')\r\n .replace(/\\+/g, '%2B')\r\n .replace(//g, '%26gt;')\r\n .replace(/\"/g, '%26quot;');\r\n };\r\n EncodeUtils.prepareTextForCallBackRequest = function (text) {\r\n return text\r\n .replace(/&/g, '&')\r\n .replace(//g, '>')\r\n .replace(/\"/g, '"');\r\n };\r\n EncodeUtils.decodeViaTextArea = function (html) {\r\n var textArea = document.createElement('TEXTAREA');\r\n textArea.innerHTML = html;\r\n return textArea.value;\r\n };\r\n return EncodeUtils;\r\n}());\r\nexports.EncodeUtils = EncodeUtils;\r\n\n\n/***/ }),\n/* 174 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(175).polyfill();\n\n\n/***/ }),\n/* 175 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n\n\n\nfunction assign(target, firstSource) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n}\n\nfunction polyfill() {\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: assign\n });\n }\n}\n\nmodule.exports = {\n assign: assign,\n polyfill: polyfill\n};\n\n\n/***/ }),\n/* 176 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar browser_1 = __webpack_require__(17);\r\nvar base64_1 = __webpack_require__(84);\r\nvar common_1 = __webpack_require__(48);\r\nvar FileUtils = (function () {\r\n function FileUtils() {\r\n }\r\n FileUtils.loadJavascriptFile = function (srcUri, callback) {\r\n var _a;\r\n var headElem = document.getElementsByTagName('head')[0];\r\n if (!headElem) {\r\n headElem = document.createElement('head');\r\n var bodyElem = document.getElementsByTagName('body')[0];\r\n (_a = bodyElem.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(headElem, bodyElem);\r\n }\r\n var scriptElem = document.createElement('script');\r\n scriptElem.onload = callback;\r\n scriptElem.src = srcUri;\r\n headElem.appendChild(scriptElem);\r\n return { htmlScriptElement: scriptElem };\r\n };\r\n FileUtils.startDownloadFileLocal = function (content, fileName) {\r\n if (content instanceof ArrayBuffer)\r\n content = base64_1.Base64Utils.fromArrayBuffer(content);\r\n if (common_1.isString(content))\r\n content = base64_1.Base64Utils.getFileFromBase64(content);\r\n if (window.navigator.msSaveOrOpenBlob)\r\n window.navigator.msSaveOrOpenBlob(content, fileName);\r\n else {\r\n var a_1 = document.createElement('a');\r\n var url_1 = URL.createObjectURL(content);\r\n a_1.href = url_1;\r\n a_1.download = fileName;\r\n document.body.appendChild(a_1);\r\n a_1.click();\r\n setTimeout(function () {\r\n document.body.removeChild(a_1);\r\n window.URL.revokeObjectURL(url_1);\r\n }, 0);\r\n }\r\n };\r\n FileUtils.createFile = function (fileBits, fileName, options) {\r\n var _a;\r\n if (browser_1.Browser.IE || browser_1.Browser.Edge && browser_1.Browser.MajorVersion < 86) {\r\n var blob = new Blob(fileBits, options);\r\n blob['lastModifiedDate'] = (_a = options === null || options === void 0 ? void 0 : options.lastModified) !== null && _a !== void 0 ? _a : Date.now();\r\n blob['name'] = fileName;\r\n return blob;\r\n }\r\n else\r\n return new File(fileBits, fileName, options);\r\n };\r\n FileUtils.isFile = function (file) {\r\n if (browser_1.Browser.IE || browser_1.Browser.Edge && browser_1.Browser.MajorVersion < 86)\r\n return (file instanceof File) || (file instanceof Blob && common_1.isDefined(file.name));\r\n else\r\n return file instanceof File;\r\n };\r\n return FileUtils;\r\n}());\r\nexports.FileUtils = FileUtils;\r\n\n\n/***/ }),\n/* 177 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar _a, _b, _c;\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OpenXmlMimeType = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\r\nexports.RtfMimeType = 'application/rtf';\r\nexports.PlainTextMimeType = 'text/plain';\r\nexports.DocmMimeType = 'application/vnd.ms-word.document.macroEnabled.12';\r\nexports.ImagePngMimeType = 'image/png';\r\nexports.ImageGifMimeType = 'image/gif';\r\nexports.ImageJpegMimeType = 'image/jpeg';\r\nexports.ImagePjpegMimeType = 'image/pjpeg';\r\nexports.ImageSvgMimeType = 'image/svg+xml';\r\nexports.ImageTiffMimeType = 'image/tiff';\r\nexports.ImageIcoMimeType = 'image/vnd.microsoft.icon';\r\nexports.ImageWbmpMimeType = 'image/vnd.wap.wbmp';\r\nexports.ImageWebpMimeType = 'image/webp';\r\nvar DxMimeType;\r\n(function (DxMimeType) {\r\n DxMimeType[DxMimeType[\"Unknown\"] = 0] = \"Unknown\";\r\n DxMimeType[DxMimeType[\"OpenXml\"] = 1] = \"OpenXml\";\r\n DxMimeType[DxMimeType[\"Rtf\"] = 2] = \"Rtf\";\r\n DxMimeType[DxMimeType[\"PlainText\"] = 3] = \"PlainText\";\r\n DxMimeType[DxMimeType[\"Docm\"] = 4] = \"Docm\";\r\n DxMimeType[DxMimeType[\"Png\"] = 5] = \"Png\";\r\n DxMimeType[DxMimeType[\"Gif\"] = 6] = \"Gif\";\r\n DxMimeType[DxMimeType[\"Jpeg\"] = 7] = \"Jpeg\";\r\n DxMimeType[DxMimeType[\"Pjpeg\"] = 8] = \"Pjpeg\";\r\n DxMimeType[DxMimeType[\"Svg\"] = 9] = \"Svg\";\r\n DxMimeType[DxMimeType[\"Tiff\"] = 10] = \"Tiff\";\r\n DxMimeType[DxMimeType[\"Ico\"] = 11] = \"Ico\";\r\n DxMimeType[DxMimeType[\"Wbmp\"] = 12] = \"Wbmp\";\r\n DxMimeType[DxMimeType[\"Webp\"] = 13] = \"Webp\";\r\n})(DxMimeType = exports.DxMimeType || (exports.DxMimeType = {}));\r\nvar MimeTypeUtils = (function () {\r\n function MimeTypeUtils() {\r\n }\r\n MimeTypeUtils.stringTypeToExtension = function (mimeTypeAsStr) {\r\n var mimeType = MimeTypeUtils.stringTypeToTypeMap[mimeTypeAsStr];\r\n return mimeType === undefined ? '' : MimeTypeUtils.typeToExtensionMap[mimeType];\r\n };\r\n MimeTypeUtils.typeToExtension = function (mimeType) {\r\n var ext = MimeTypeUtils.typeToExtensionMap[mimeType];\r\n return ext !== null && ext !== void 0 ? ext : '';\r\n };\r\n MimeTypeUtils.extensionToType = function (extension) {\r\n extension = extension.toLowerCase();\r\n if (extension[0] !== '.')\r\n extension += '.';\r\n var mimeType = MimeTypeUtils.extensionToTypeMap[extension];\r\n return mimeType !== null && mimeType !== void 0 ? mimeType : DxMimeType.Unknown;\r\n };\r\n MimeTypeUtils.typeToStringType = function (mimeType) {\r\n var str = MimeTypeUtils.typeToStringTypeMap[mimeType];\r\n return str !== null && str !== void 0 ? str : '';\r\n };\r\n MimeTypeUtils.stringTypeToType = function (mimeTypeAsStr) {\r\n var mimeType = MimeTypeUtils.stringTypeToTypeMap[mimeTypeAsStr];\r\n return mimeType === undefined ? DxMimeType.Unknown : mimeType;\r\n };\r\n MimeTypeUtils.stringTypeToTypeMap = (_a = {},\r\n _a[exports.OpenXmlMimeType] = DxMimeType.OpenXml,\r\n _a[exports.RtfMimeType] = DxMimeType.Rtf,\r\n _a[exports.PlainTextMimeType] = DxMimeType.PlainText,\r\n _a[exports.DocmMimeType] = DxMimeType.Docm,\r\n _a[exports.ImagePngMimeType] = DxMimeType.Png,\r\n _a[exports.ImageGifMimeType] = DxMimeType.Gif,\r\n _a[exports.ImageJpegMimeType] = DxMimeType.Jpeg,\r\n _a[exports.ImagePjpegMimeType] = DxMimeType.Pjpeg,\r\n _a[exports.ImageSvgMimeType] = DxMimeType.Svg,\r\n _a[exports.ImageTiffMimeType] = DxMimeType.Tiff,\r\n _a[exports.ImageIcoMimeType] = DxMimeType.Ico,\r\n _a[exports.ImageWbmpMimeType] = DxMimeType.Wbmp,\r\n _a[exports.ImageWebpMimeType] = DxMimeType.Webp,\r\n _a);\r\n MimeTypeUtils.typeToStringTypeMap = (_b = {},\r\n _b[DxMimeType.Unknown] = undefined,\r\n _b[DxMimeType.OpenXml] = exports.OpenXmlMimeType,\r\n _b[DxMimeType.Rtf] = exports.RtfMimeType,\r\n _b[DxMimeType.PlainText] = exports.PlainTextMimeType,\r\n _b[DxMimeType.Docm] = exports.DocmMimeType,\r\n _b[DxMimeType.Png] = exports.ImagePngMimeType,\r\n _b[DxMimeType.Gif] = exports.ImageGifMimeType,\r\n _b[DxMimeType.Jpeg] = exports.ImageJpegMimeType,\r\n _b[DxMimeType.Pjpeg] = exports.ImagePjpegMimeType,\r\n _b[DxMimeType.Svg] = exports.ImageSvgMimeType,\r\n _b[DxMimeType.Tiff] = exports.ImageTiffMimeType,\r\n _b[DxMimeType.Ico] = exports.ImageIcoMimeType,\r\n _b[DxMimeType.Wbmp] = exports.ImageWbmpMimeType,\r\n _b[DxMimeType.Webp] = exports.ImageWebpMimeType,\r\n _b);\r\n MimeTypeUtils.typeToExtensionMap = (_c = {},\r\n _c[DxMimeType.Unknown] = undefined,\r\n _c[DxMimeType.OpenXml] = '.docx',\r\n _c[DxMimeType.Rtf] = '.rtf',\r\n _c[DxMimeType.PlainText] = '.txt',\r\n _c[DxMimeType.Docm] = '.docm',\r\n _c[DxMimeType.Png] = '.png',\r\n _c[DxMimeType.Gif] = '.gif',\r\n _c[DxMimeType.Jpeg] = '.jpeg',\r\n _c[DxMimeType.Pjpeg] = '.pjpeg',\r\n _c[DxMimeType.Svg] = '.svg',\r\n _c[DxMimeType.Tiff] = '.tiff',\r\n _c[DxMimeType.Ico] = '.ico',\r\n _c[DxMimeType.Wbmp] = '.wbmp',\r\n _c[DxMimeType.Webp] = '.webp',\r\n _c);\r\n MimeTypeUtils.extensionToTypeMap = {\r\n '.docx': DxMimeType.OpenXml,\r\n '.rtf': DxMimeType.Rtf,\r\n '.txt': DxMimeType.PlainText,\r\n '.docm': DxMimeType.Docm,\r\n '.png': DxMimeType.Png,\r\n '.gif': DxMimeType.Gif,\r\n '.jpeg': DxMimeType.Jpeg,\r\n '.pjpeg': DxMimeType.Pjpeg,\r\n '.svg': DxMimeType.Svg,\r\n '.tiff': DxMimeType.Tiff,\r\n '.ico': DxMimeType.Ico,\r\n '.wbmp': DxMimeType.Wbmp,\r\n '.webp': DxMimeType.Webp,\r\n };\r\n return MimeTypeUtils;\r\n}());\r\nexports.MimeTypeUtils = MimeTypeUtils;\r\n\n\n/***/ }),\n/* 178 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorPointsCalculator = void 0;\r\nvar ConnectorPointsCalculatorBase_1 = __webpack_require__(112);\r\nvar ConnectorRenderPoint_1 = __webpack_require__(28);\r\nvar ConnectorPointsCalculator = /** @class */ (function (_super) {\r\n __extends(ConnectorPointsCalculator, _super);\r\n function ConnectorPointsCalculator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ConnectorPointsCalculator.prototype.getPoints = function () {\r\n return this.connector.points.map(function (pt, index) { return new ConnectorRenderPoint_1.ConnectorRenderPoint(pt.x, pt.y, index); });\r\n };\r\n return ConnectorPointsCalculator;\r\n}(ConnectorPointsCalculatorBase_1.ConnectorPointsCalculatorBase));\r\nexports.ConnectorPointsCalculator = ConnectorPointsCalculator;\r\n\n\n/***/ }),\n/* 179 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorPointsOrthogonalCalculator = void 0;\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ConnectorPointsCalculatorBase_1 = __webpack_require__(112);\r\nvar ConnectorPointsOrthogonalUndefinedSideCalculator_1 = __webpack_require__(180);\r\nvar ConnectorPointsOrthogonalSouthSideCalculator_1 = __webpack_require__(181);\r\nvar ConnectorPointsOrthogonalNorthSideCalculator_1 = __webpack_require__(182);\r\nvar ConnectorPointsOrthogonalEastSideCalculator_1 = __webpack_require__(183);\r\nvar ConnectorPointsOrthogonalWestSideCalculator_1 = __webpack_require__(184);\r\nvar ConnectorRenderPoint_1 = __webpack_require__(28);\r\nvar RightAngleConnectorRoutingMathOperations_1 = __webpack_require__(62);\r\nvar ConnectorPointsOrthogonalCalculator = /** @class */ (function (_super) {\r\n __extends(ConnectorPointsOrthogonalCalculator, _super);\r\n function ConnectorPointsOrthogonalCalculator(connector) {\r\n var _this = _super.call(this, connector) || this;\r\n _this.sideCalculators = {};\r\n _this.sideCalculators[DiagramItem_1.ConnectionPointSide.Undefined] = new ConnectorPointsOrthogonalUndefinedSideCalculator_1.ConnectorPointsOrthogonalUndefinedSideCalculator(_this);\r\n _this.sideCalculators[DiagramItem_1.ConnectionPointSide.South] = new ConnectorPointsOrthogonalSouthSideCalculator_1.ConnectorPointsOrthogonalSouthSideCalculator(_this);\r\n _this.sideCalculators[DiagramItem_1.ConnectionPointSide.North] = new ConnectorPointsOrthogonalNorthSideCalculator_1.ConnectorPointsOrthogonalNorthSideCalculator(_this);\r\n _this.sideCalculators[DiagramItem_1.ConnectionPointSide.East] = new ConnectorPointsOrthogonalEastSideCalculator_1.ConnectorPointsOrthogonalEastSideCalculator(_this);\r\n _this.sideCalculators[DiagramItem_1.ConnectionPointSide.West] = new ConnectorPointsOrthogonalWestSideCalculator_1.ConnectorPointsOrthogonalWestSideCalculator(_this);\r\n return _this;\r\n }\r\n Object.defineProperty(ConnectorPointsOrthogonalCalculator.prototype, \"beginRect\", {\r\n get: function () { return this.connector.beginItem ? this.connector.beginItem.rectangle : undefined; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ConnectorPointsOrthogonalCalculator.prototype, \"endRect\", {\r\n get: function () { return this.connector.endItem ? this.connector.endItem.rectangle : undefined; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ConnectorPointsOrthogonalCalculator.prototype.getPoints = function () {\r\n var points = this.connector.points.map(function (pt, index) { return new ConnectorRenderPoint_1.ConnectorRenderPoint(pt.x, pt.y, index); });\r\n RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.removeOrSkipUnnecessaryPoints(points);\r\n var beginIndex = 0;\r\n var endIndex = points.length - 1;\r\n var beginSide = this.getPointSide(points, 0);\r\n var beginNextSide = this.getPointSide(points, 1);\r\n var endSide = this.getPointSide(points, points.length - 1);\r\n var endPrevSide = this.getPointSide(points, points.length - 1 - 1);\r\n var beginSideCalculator = this.getSideCalculator(beginSide);\r\n var endSideCalculator = this.getSideCalculator(endSide);\r\n var originRect = this.beginRect;\r\n var originPoint = beginSideCalculator.getCorrectOriginPoint(points[beginIndex], originRect);\r\n var targetPoint = points[beginIndex + 1];\r\n if (points.length === 2 && beginSideCalculator.isOnSidePoint(originPoint, targetPoint) &&\r\n beginSideCalculator.isDirectConnectionAllowed(beginNextSide, originPoint, targetPoint)) {\r\n var directConnectionPoints = beginSideCalculator.getDirectConnectionPoints(originPoint, targetPoint);\r\n directConnectionPoints.forEach(function (pt) {\r\n points.splice(beginIndex + 1, 0, pt);\r\n beginIndex++;\r\n endIndex++;\r\n });\r\n }\r\n else {\r\n var bOffsetPoints = beginSideCalculator.getBeginOffsetPoints(beginNextSide, points[beginIndex], points[beginIndex + 1], this.beginRect);\r\n bOffsetPoints.forEach(function (pt) {\r\n points.splice(beginIndex + 1, 0, pt);\r\n });\r\n beginIndex += bOffsetPoints.length;\r\n endIndex += bOffsetPoints.length;\r\n var eOffsetPoints = endSideCalculator.getEndOffsetPoints(endPrevSide, points[endIndex], points[endIndex - 1], this.endRect);\r\n eOffsetPoints.forEach(function (pt, index) {\r\n points.splice(endIndex + index, 0, pt);\r\n });\r\n this.addMiddlePoints(points, beginIndex, endIndex);\r\n }\r\n RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.removeOrSkipUnnecessaryPoints(points);\r\n return points;\r\n };\r\n ConnectorPointsOrthogonalCalculator.prototype.getSideCalculator = function (side) {\r\n return this.sideCalculators[side];\r\n };\r\n ConnectorPointsOrthogonalCalculator.prototype.getPointSide = function (points, index) {\r\n if (index === 0 && this.connector.beginItem) {\r\n var connectionPointIndex = this.connector.beginConnectionPointIndex;\r\n return this.connector.beginItem.getConnectionPointSideByIndex(connectionPointIndex, points[1]);\r\n }\r\n if (index === points.length - 1 && this.connector.endItem) {\r\n var connectionPointIndex = this.connector.endConnectionPointIndex;\r\n return this.connector.endItem.getConnectionPointSideByIndex(connectionPointIndex, points[points.length - 2]);\r\n }\r\n return DiagramItem_1.ConnectionPointSide.Undefined;\r\n };\r\n ConnectorPointsOrthogonalCalculator.prototype.addMiddlePoints = function (points, beginIndex, endIndex) {\r\n for (var index = beginIndex; index < endIndex; index++) {\r\n var nextIndex = index + 1;\r\n var middlePoint = this.getMiddlePoint(points[index], points[index - 1], index - 1 === 0, points[nextIndex], points[nextIndex + 1], nextIndex + 1 === points.length - 1);\r\n if (middlePoint !== undefined) {\r\n points.splice(index + 1, 0, middlePoint);\r\n index++;\r\n endIndex++;\r\n }\r\n }\r\n };\r\n ConnectorPointsOrthogonalCalculator.prototype.getMiddlePoints = function (point1, point2) {\r\n if (point1.x === point2.x || point1.y === point2.y)\r\n return [];\r\n return [\r\n new ConnectorRenderPoint_1.ConnectorRenderPoint(point1.x, point2.y),\r\n new ConnectorRenderPoint_1.ConnectorRenderPoint(point2.x, point1.y)\r\n ];\r\n };\r\n ConnectorPointsOrthogonalCalculator.prototype.getMiddlePoint = function (point1, directionPoint1, nextToBegin, point2, directionPoint2, nextToEnd) {\r\n var _this = this;\r\n var point;\r\n var points = this.getMiddlePoints(point1, point2);\r\n points.forEach(function (pt) {\r\n var rect1 = _this.createPointsRect(point1, pt);\r\n var rect2 = _this.createPointsRect(pt, point2);\r\n var itemRect1 = _this.connector.beginItem ? _this.connector.beginItem.rectangle : undefined;\r\n var itemRect2 = _this.connector.endItem ? _this.connector.endItem.rectangle : undefined;\r\n if (itemRect1)\r\n if (rectangle_1.Rectangle.areIntersected(itemRect1, rect1) || rectangle_1.Rectangle.areIntersected(itemRect1, rect2))\r\n return;\r\n if (itemRect2)\r\n if (rectangle_1.Rectangle.areIntersected(itemRect2, rect1) || rectangle_1.Rectangle.areIntersected(itemRect2, rect2))\r\n return;\r\n if ((!_this.isReturnPoint(pt, point1, directionPoint1) || _this.isIntermediatePoints(point1, directionPoint1)) &&\r\n (!_this.isReturnPoint(pt, point2, directionPoint2) || _this.isIntermediatePoints(point2, directionPoint2)))\r\n if (point === undefined)\r\n point = pt;\r\n else if (_this.isPriorMiddlePoint(pt, point1, directionPoint1, point2, directionPoint2))\r\n point = pt;\r\n });\r\n if (point === undefined && points.length > 0)\r\n point = points[0];\r\n return point;\r\n };\r\n ConnectorPointsOrthogonalCalculator.prototype.createPointsRect = function (point1, point2) {\r\n var result = rectangle_1.Rectangle.fromPoints(point1, point2);\r\n if (result.width > 0)\r\n result = result.clone().inflate(-1, 0);\r\n if (result.height > 0)\r\n result = result.clone().inflate(0, -1);\r\n return result;\r\n };\r\n ConnectorPointsOrthogonalCalculator.prototype.isPriorMiddlePoint = function (point, point1, directionPoint1, point2, directionPoint2) {\r\n if (directionPoint1)\r\n if (point.x === directionPoint1.x || point.y === directionPoint1.y)\r\n return true;\r\n if (directionPoint2)\r\n if (point.x === directionPoint2.x || point.y === directionPoint2.y)\r\n return true;\r\n return false;\r\n };\r\n ConnectorPointsOrthogonalCalculator.prototype.isReturnPoint = function (point, point1, point2) {\r\n if (point1 !== undefined && point2 !== undefined) {\r\n if (point.x === point2.x)\r\n if (point1.y < point.y && point.y < point2.y || point1.y > point.y && point.y > point2.y)\r\n return true;\r\n if (point.y === point2.y)\r\n if (point1.x < point.x && point.x < point2.x || point1.x > point.x && point.x > point2.x)\r\n return true;\r\n }\r\n return false;\r\n };\r\n ConnectorPointsOrthogonalCalculator.prototype.isIntermediatePoints = function (point1, point2) {\r\n return 0 < point1.pointIndex && point1.pointIndex < this.connector.points.length - 1 &&\r\n 0 < point2.pointIndex && point2.pointIndex < this.connector.points.length - 1;\r\n };\r\n return ConnectorPointsOrthogonalCalculator;\r\n}(ConnectorPointsCalculatorBase_1.ConnectorPointsCalculatorBase));\r\nexports.ConnectorPointsOrthogonalCalculator = ConnectorPointsOrthogonalCalculator;\r\n\n\n/***/ }),\n/* 180 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorPointsOrthogonalUndefinedSideCalculator = void 0;\r\nvar ConnectorPointsOrthogonalSideCalculatorBase_1 = __webpack_require__(50);\r\nvar ConnectorRenderPoint_1 = __webpack_require__(28);\r\nvar ConnectorPointsOrthogonalUndefinedSideCalculator = /** @class */ (function (_super) {\r\n __extends(ConnectorPointsOrthogonalUndefinedSideCalculator, _super);\r\n function ConnectorPointsOrthogonalUndefinedSideCalculator(parent) {\r\n return _super.call(this, parent) || this;\r\n }\r\n ConnectorPointsOrthogonalUndefinedSideCalculator.prototype.getCorrectOriginPoint = function (originPoint, originRect) {\r\n return originPoint;\r\n };\r\n ConnectorPointsOrthogonalUndefinedSideCalculator.prototype.getSameShapeOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [];\r\n };\r\n ConnectorPointsOrthogonalUndefinedSideCalculator.prototype.getOverlappedPointsOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [];\r\n };\r\n ConnectorPointsOrthogonalUndefinedSideCalculator.prototype.getBeginOverlappedShapeOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [];\r\n };\r\n ConnectorPointsOrthogonalUndefinedSideCalculator.prototype.getEndOverlappedShapeOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [];\r\n };\r\n ConnectorPointsOrthogonalUndefinedSideCalculator.prototype.getBeginOnSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [];\r\n };\r\n ConnectorPointsOrthogonalUndefinedSideCalculator.prototype.getEndOnSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [];\r\n };\r\n ConnectorPointsOrthogonalUndefinedSideCalculator.prototype.getBeginOffSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [];\r\n };\r\n ConnectorPointsOrthogonalUndefinedSideCalculator.prototype.getEndOffSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [];\r\n };\r\n ConnectorPointsOrthogonalUndefinedSideCalculator.prototype.isOnSidePoint = function (originPoint, targetPoint) {\r\n return true;\r\n };\r\n ConnectorPointsOrthogonalUndefinedSideCalculator.prototype.isDirectConnectionAllowed = function (targetSide, originPoint, targetPoint) {\r\n var calculator = this.getSideCalculator(originPoint, targetPoint);\r\n if (calculator !== undefined)\r\n return calculator.isDirectConnectionAllowed(targetSide, originPoint, targetPoint);\r\n return true;\r\n };\r\n ConnectorPointsOrthogonalUndefinedSideCalculator.prototype.getDirectConnectionPoints = function (originPoint, targetPoint) {\r\n var diffX = Math.abs(targetPoint.x - originPoint.x);\r\n var diffY = Math.abs(targetPoint.y - originPoint.y);\r\n if (diffX > diffY) {\r\n var minX = Math.min(originPoint.x, targetPoint.x);\r\n var cx = minX + diffX / 2;\r\n return [\r\n new ConnectorRenderPoint_1.ConnectorRenderPoint(cx, originPoint.y),\r\n new ConnectorRenderPoint_1.ConnectorRenderPoint(cx, targetPoint.y)\r\n ];\r\n }\r\n else {\r\n var minY = Math.min(originPoint.y, targetPoint.y);\r\n var cy = minY + diffY / 2;\r\n return [\r\n new ConnectorRenderPoint_1.ConnectorRenderPoint(originPoint.x, cy),\r\n new ConnectorRenderPoint_1.ConnectorRenderPoint(targetPoint.x, cy)\r\n ];\r\n }\r\n };\r\n return ConnectorPointsOrthogonalUndefinedSideCalculator;\r\n}(ConnectorPointsOrthogonalSideCalculatorBase_1.ConnectorPointsOrthogonalSideCalculatorBase));\r\nexports.ConnectorPointsOrthogonalUndefinedSideCalculator = ConnectorPointsOrthogonalUndefinedSideCalculator;\r\n\n\n/***/ }),\n/* 181 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorPointsOrthogonalSouthSideCalculator = void 0;\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ConnectorPointsOrthogonalSideCalculatorBase_1 = __webpack_require__(50);\r\nvar ConnectorRenderPoint_1 = __webpack_require__(28);\r\nvar ConnectorPointsOrthogonalSouthSideCalculator = /** @class */ (function (_super) {\r\n __extends(ConnectorPointsOrthogonalSouthSideCalculator, _super);\r\n function ConnectorPointsOrthogonalSouthSideCalculator(parent) {\r\n return _super.call(this, parent) || this;\r\n }\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.getCorrectOriginPoint = function (originPoint, originRect) {\r\n if (originPoint.y < originRect.bottom)\r\n originPoint = originPoint.clone().offset(0, originRect.bottom - originPoint.y);\r\n return originPoint;\r\n };\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.getSameShapeOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n return [originPoint.clone().offset(0, this.getMinOffset())];\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset());\r\n }\r\n };\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.getOverlappedPointsOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n return [originPoint.clone().offset(0, this.getMinOffset())];\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n return [originPoint.clone().offset(0, -this.getMinOffset())];\r\n }\r\n return [];\r\n };\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.getBeginOverlappedShapeOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n if (originPoint.y < targetPoint.y)\r\n if (originPoint.x > targetPoint.x)\r\n return [];\r\n else\r\n return [originPoint.clone().offset(0, this.getMinOffset())];\r\n if (originPoint.y > this.endRect.bottom)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), false);\r\n return [originPoint.clone().offset(0, this.getMinOffset())];\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n if (originPoint.y < targetPoint.y)\r\n if (originPoint.x < targetPoint.x)\r\n return [];\r\n else\r\n return [originPoint.clone().offset(0, this.getMinOffset())];\r\n if (originPoint.y > this.endRect.bottom)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), true);\r\n return [originPoint.clone().offset(0, this.getMinOffset())];\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n return [originPoint.clone().offset(0, this.getMinOffset())];\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), originPoint.x < targetPoint.x);\r\n }\r\n };\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.getEndOverlappedShapeOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n if (targetPoint.y < originPoint.y)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), false);\r\n if (originPoint.x < targetPoint.x)\r\n return [originPoint.clone().offset(0, this.getMinOffset())];\r\n return [];\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n if (targetPoint.y < originPoint.y)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), true);\r\n if (originPoint.x > targetPoint.x)\r\n return [originPoint.clone().offset(0, this.getMinOffset())];\r\n return [];\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n return [originPoint.clone().offset(0, this.getMinOffset())];\r\n case DiagramItem_1.ConnectionPointSide.North: {\r\n var offset = this.getMinOffset();\r\n if (this.beginRect.bottom > originPoint.y)\r\n offset += this.beginRect.bottom - originPoint.y;\r\n return [originPoint.clone().offset(0, offset)];\r\n }\r\n }\r\n };\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.getBeginOnSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [originPoint.clone().offset(0, this.getScaleableOffsetY(originPoint, targetPoint, false))];\r\n };\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.getEndOnSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [originPoint.clone().offset(0, this.getScaleableOffsetY(originPoint, targetPoint, true))];\r\n };\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.getBeginOffSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n if (this.isBeginEndOverlappedX())\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false, false);\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n if (this.isBeginEndOverlappedX())\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false, true);\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n if (this.isBeginEndOverlappedX())\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false);\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.Undefined:\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false);\r\n }\r\n return [originPoint.clone().offset(0, this.getScaleableOffsetY(originPoint, targetPoint, false))];\r\n };\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.getEndOffSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n if (targetSide === DiagramItem_1.ConnectionPointSide.Undefined)\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, true);\r\n else if (this.isBeginEndOverlappedX()) {\r\n var direction = this.beginRect.center.x > this.endRect.center.x;\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, true, direction);\r\n }\r\n return [originPoint.clone().offset(0, this.getScaleableOffsetY(originPoint, targetPoint, true))];\r\n };\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.getAsideOffsetPoints = function (originPoint, targetPoint, originRect, offset, asideOffset, direction) {\r\n var points = [];\r\n if (originRect !== undefined) {\r\n if (direction === undefined)\r\n direction = targetPoint.x < originPoint.x;\r\n if (direction)\r\n points.push(originPoint.clone().offset(-(originPoint.x - originRect.x + asideOffset), offset));\r\n else\r\n points.push(originPoint.clone().offset((originRect.right - originPoint.x + asideOffset), offset));\r\n }\r\n points.push(originPoint.clone().offset(0, offset));\r\n return points;\r\n };\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.getScaleableAsideOffsetPoints = function (originPoint, targetPoint, originRect, isEnd, direction) {\r\n var offset = this.getScaleableOffsetY(originPoint, targetPoint, isEnd);\r\n var asideOffset = this.getScaleableOffsetX(originPoint, targetPoint, isEnd);\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, offset, asideOffset, direction);\r\n };\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.getScaleableOffsetX = function (originPoint, targetPoint, isEnd) {\r\n if (this.beginRect && this.endRect)\r\n if (!isEnd && !this.isBeginEndOverlappedX()) {\r\n var distance = void 0;\r\n if (targetPoint.x < originPoint.x)\r\n distance = this.beginRect.x - this.endRect.right;\r\n else\r\n distance = this.endRect.x - this.beginRect.right;\r\n if (distance < this.getMinOffset() * 2)\r\n return distance / 2;\r\n }\r\n return this.getMinOffset();\r\n };\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.getScaleableOffsetY = function (originPoint, targetPoint, isEnd) {\r\n if (this.beginRect && this.endRect) {\r\n var distance = isEnd ? this.beginRect.y - originPoint.y : this.endRect.y - originPoint.y;\r\n if (distance > 0 && distance < this.getMinOffset() * 2)\r\n return distance / 2;\r\n }\r\n return this.getMinOffset();\r\n };\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.isOnSidePoint = function (originPoint, targetPoint) {\r\n return targetPoint.y > originPoint.y;\r\n };\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.isDirectConnectionAllowed = function (targetSide, originPoint, targetPoint) {\r\n return targetSide === DiagramItem_1.ConnectionPointSide.North || targetSide === DiagramItem_1.ConnectionPointSide.Undefined;\r\n };\r\n ConnectorPointsOrthogonalSouthSideCalculator.prototype.getDirectConnectionPoints = function (originPoint, targetPoint) {\r\n var cy = originPoint.y + (targetPoint.y - originPoint.y) / 2;\r\n return [\r\n new ConnectorRenderPoint_1.ConnectorRenderPoint(originPoint.x, cy),\r\n new ConnectorRenderPoint_1.ConnectorRenderPoint(targetPoint.x, cy)\r\n ];\r\n };\r\n return ConnectorPointsOrthogonalSouthSideCalculator;\r\n}(ConnectorPointsOrthogonalSideCalculatorBase_1.ConnectorPointsOrthogonalSideCalculatorBase));\r\nexports.ConnectorPointsOrthogonalSouthSideCalculator = ConnectorPointsOrthogonalSouthSideCalculator;\r\n\n\n/***/ }),\n/* 182 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorPointsOrthogonalNorthSideCalculator = void 0;\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ConnectorPointsOrthogonalSideCalculatorBase_1 = __webpack_require__(50);\r\nvar ConnectorRenderPoint_1 = __webpack_require__(28);\r\nvar ConnectorPointsOrthogonalNorthSideCalculator = /** @class */ (function (_super) {\r\n __extends(ConnectorPointsOrthogonalNorthSideCalculator, _super);\r\n function ConnectorPointsOrthogonalNorthSideCalculator(parent) {\r\n return _super.call(this, parent) || this;\r\n }\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.getCorrectOriginPoint = function (originPoint, originRect) {\r\n if (originPoint.y > originRect.y)\r\n originPoint = originPoint.clone().offset(0, originRect.y - originPoint.y);\r\n return originPoint;\r\n };\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.getSameShapeOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n return [originPoint.clone().offset(0, -this.getMinOffset())];\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset());\r\n }\r\n };\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.getOverlappedPointsOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n return [originPoint.clone().offset(0, this.getMinOffset())];\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n return [originPoint.clone().offset(0, -this.getMinOffset())];\r\n }\r\n return [];\r\n };\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.getBeginOverlappedShapeOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n if (originPoint.y > targetPoint.y)\r\n if (originPoint.x > targetPoint.x)\r\n return [];\r\n else\r\n return [originPoint.clone().offset(0, -this.getMinOffset())];\r\n if (originPoint.y < this.endRect.y)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), false);\r\n return [originPoint.clone().offset(0, -this.getMinOffset())];\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n if (originPoint.y > targetPoint.y)\r\n if (originPoint.x < targetPoint.x)\r\n return [];\r\n else\r\n return [originPoint.clone().offset(0, -this.getMinOffset())];\r\n if (originPoint.y < this.endRect.y)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), true);\r\n return [originPoint.clone().offset(0, -this.getMinOffset())];\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n return [originPoint.clone().offset(0, -this.getMinOffset())];\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), originPoint.x < targetPoint.x);\r\n }\r\n };\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.getEndOverlappedShapeOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n if (targetPoint.y > originPoint.y)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), false);\r\n if (originPoint.x < targetPoint.x)\r\n return [originPoint.clone().offset(0, -this.getMinOffset())];\r\n return [];\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n if (targetPoint.y > originPoint.y)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), true);\r\n if (originPoint.x > targetPoint.x)\r\n return [originPoint.clone().offset(0, -this.getMinOffset())];\r\n return [];\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n return [originPoint.clone().offset(0, -this.getMinOffset())];\r\n case DiagramItem_1.ConnectionPointSide.South: {\r\n var offset = -this.getMinOffset();\r\n if (this.beginRect.y < originPoint.y)\r\n offset -= originPoint.y - this.beginRect.y;\r\n return [originPoint.clone().offset(0, offset)];\r\n }\r\n }\r\n };\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.getBeginOnSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [originPoint.clone().offset(0, -this.getScaleableOffsetY(originPoint, targetPoint, false))];\r\n };\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.getEndOnSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [originPoint.clone().offset(0, -this.getScaleableOffsetY(originPoint, targetPoint, true))];\r\n };\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.getBeginOffSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n if (this.isBeginEndOverlappedX())\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false, false);\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n if (this.isBeginEndOverlappedX())\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false, true);\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n if (this.isBeginEndOverlappedX())\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false);\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.Undefined:\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false);\r\n }\r\n return [originPoint.clone().offset(0, -this.getScaleableOffsetY(originPoint, targetPoint, false))];\r\n };\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.getEndOffSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n if (targetSide === DiagramItem_1.ConnectionPointSide.Undefined)\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, true);\r\n else if (this.isBeginEndOverlappedX()) {\r\n var direction = this.beginRect.center.x > this.endRect.center.x;\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, true, direction);\r\n }\r\n return [originPoint.clone().offset(0, -this.getScaleableOffsetY(originPoint, targetPoint, true))];\r\n };\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.getAsideOffsetPoints = function (originPoint, targetPoint, originRect, offset, asideOffset, direction) {\r\n var points = [];\r\n if (originRect !== undefined) {\r\n if (direction === undefined)\r\n direction = targetPoint.x < originPoint.x;\r\n if (direction)\r\n points.push(originPoint.clone().offset(-(originPoint.x - originRect.x + asideOffset), -offset));\r\n else\r\n points.push(originPoint.clone().offset((originRect.right - originPoint.x + asideOffset), -offset));\r\n }\r\n points.push(originPoint.clone().offset(0, -offset));\r\n return points;\r\n };\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.getScaleableAsideOffsetPoints = function (originPoint, targetPoint, originRect, isEnd, direction) {\r\n var offset = this.getScaleableOffsetY(originPoint, targetPoint, isEnd);\r\n var asideOffset = this.getScaleableOffsetX(originPoint, targetPoint, isEnd);\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, offset, asideOffset, direction);\r\n };\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.getScaleableOffsetX = function (originPoint, targetPoint, isEnd) {\r\n if (this.beginRect && this.endRect)\r\n if (!isEnd && !this.isBeginEndOverlappedX()) {\r\n var distance = void 0;\r\n if (targetPoint.x < originPoint.x)\r\n distance = this.beginRect.x - this.endRect.right;\r\n else\r\n distance = this.endRect.x - this.beginRect.right;\r\n if (distance < this.getMinOffset() * 2)\r\n return distance / 2;\r\n }\r\n return this.getMinOffset();\r\n };\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.getScaleableOffsetY = function (originPoint, targetPoint, isEnd) {\r\n if (this.beginRect && this.endRect) {\r\n var distance = isEnd ? originPoint.y - this.beginRect.bottom : originPoint.y - this.endRect.bottom;\r\n if (distance > 0 && distance < this.getMinOffset() * 2)\r\n return distance / 2;\r\n }\r\n return this.getMinOffset();\r\n };\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.isOnSidePoint = function (originPoint, targetPoint) {\r\n return targetPoint.y < originPoint.y;\r\n };\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.isDirectConnectionAllowed = function (targetSide, originPoint, targetPoint) {\r\n return targetSide === DiagramItem_1.ConnectionPointSide.South || targetSide === DiagramItem_1.ConnectionPointSide.Undefined;\r\n };\r\n ConnectorPointsOrthogonalNorthSideCalculator.prototype.getDirectConnectionPoints = function (originPoint, targetPoint) {\r\n var cy = targetPoint.y + (originPoint.y - targetPoint.y) / 2;\r\n return [\r\n new ConnectorRenderPoint_1.ConnectorRenderPoint(originPoint.x, cy),\r\n new ConnectorRenderPoint_1.ConnectorRenderPoint(targetPoint.x, cy)\r\n ];\r\n };\r\n return ConnectorPointsOrthogonalNorthSideCalculator;\r\n}(ConnectorPointsOrthogonalSideCalculatorBase_1.ConnectorPointsOrthogonalSideCalculatorBase));\r\nexports.ConnectorPointsOrthogonalNorthSideCalculator = ConnectorPointsOrthogonalNorthSideCalculator;\r\n\n\n/***/ }),\n/* 183 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorPointsOrthogonalEastSideCalculator = void 0;\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ConnectorPointsOrthogonalSideCalculatorBase_1 = __webpack_require__(50);\r\nvar ConnectorRenderPoint_1 = __webpack_require__(28);\r\nvar ConnectorPointsOrthogonalEastSideCalculator = /** @class */ (function (_super) {\r\n __extends(ConnectorPointsOrthogonalEastSideCalculator, _super);\r\n function ConnectorPointsOrthogonalEastSideCalculator(parent) {\r\n return _super.call(this, parent) || this;\r\n }\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.getCorrectOriginPoint = function (originPoint, originRect) {\r\n if (originPoint.x < originRect.right)\r\n originPoint = originPoint.clone().offset(originRect.right - originPoint.x, 0);\r\n return originPoint;\r\n };\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.getSameShapeOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n return [originPoint.clone().offset(this.getMinOffset(), 0)];\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset());\r\n }\r\n };\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.getOverlappedPointsOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n return [originPoint.clone().offset(this.getMinOffset(), 0)];\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n return [originPoint.clone().offset(-this.getMinOffset(), 0)];\r\n }\r\n return [];\r\n };\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.getBeginOverlappedShapeOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n if (originPoint.x < targetPoint.x)\r\n if (originPoint.y < targetPoint.y)\r\n return [];\r\n else\r\n return [originPoint.clone().offset(this.getMinOffset(), 0)];\r\n if (originPoint.x > this.endRect.right)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), true);\r\n return [originPoint.clone().offset(this.getMinOffset(), 0)];\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n if (originPoint.x < targetPoint.x)\r\n if (originPoint.y > targetPoint.y)\r\n return [];\r\n else\r\n return [originPoint.clone().offset(this.getMinOffset(), 0)];\r\n if (originPoint.x > this.endRect.right)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), false);\r\n return [originPoint.clone().offset(this.getMinOffset(), 0)];\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n return [originPoint.clone().offset(this.getMinOffset(), 0)];\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), originPoint.y < targetPoint.y);\r\n }\r\n };\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.getEndOverlappedShapeOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n return [originPoint.clone().offset(this.getMinOffset(), 0)];\r\n case DiagramItem_1.ConnectionPointSide.West: {\r\n var offset = this.getMinOffset();\r\n if (this.beginRect.right > originPoint.x)\r\n offset += this.beginRect.right - originPoint.x;\r\n return [originPoint.clone().offset(offset, 0)];\r\n }\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n if (targetPoint.x < originPoint.x)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), true);\r\n if (originPoint.y > targetPoint.y)\r\n return [originPoint.clone().offset(this.getMinOffset(), 0)];\r\n return [];\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n if (targetPoint.x < originPoint.x)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), false);\r\n if (originPoint.y < targetPoint.y)\r\n return [originPoint.clone().offset(this.getMinOffset(), 0)];\r\n return [];\r\n }\r\n };\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.getBeginOnSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [originPoint.clone().offset(this.getScaleableOffsetX(originPoint, targetPoint, false), 0)];\r\n };\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.getEndOnSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [originPoint.clone().offset(this.getScaleableOffsetX(originPoint, targetPoint, true), 0)];\r\n };\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.getBeginOffSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n if (this.isBeginEndOverlappedY())\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false, false);\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n if (this.isBeginEndOverlappedY())\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false, true);\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n if (this.isBeginEndOverlappedY())\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false);\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.Undefined:\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false);\r\n }\r\n return [originPoint.clone().offset(this.getScaleableOffsetX(originPoint, targetPoint, false), 0)];\r\n };\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.getEndOffSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n if (targetSide === DiagramItem_1.ConnectionPointSide.Undefined)\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, true);\r\n else if (this.isBeginEndOverlappedY()) {\r\n var direction = this.beginRect.center.y > this.endRect.center.y;\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, true, direction);\r\n }\r\n return [originPoint.clone().offset(this.getScaleableOffsetX(originPoint, targetPoint, true), 0)];\r\n };\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.getAsideOffsetPoints = function (originPoint, targetPoint, originRect, offset, asideOffset, direction) {\r\n var points = [];\r\n if (originRect !== undefined) {\r\n if (direction === undefined)\r\n direction = targetPoint.y < originPoint.y;\r\n if (direction)\r\n points.push(originPoint.clone().offset(offset, -(originPoint.y - originRect.y + asideOffset)));\r\n else\r\n points.push(originPoint.clone().offset(offset, (originRect.bottom - originPoint.y + asideOffset)));\r\n }\r\n points.push(originPoint.clone().offset(offset, 0));\r\n return points;\r\n };\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.getScaleableAsideOffsetPoints = function (originPoint, targetPoint, originRect, isEnd, direction) {\r\n var offset = this.getScaleableOffsetX(originPoint, targetPoint, isEnd);\r\n var asideOffset = this.getScaleableOffsetY(originPoint, targetPoint, isEnd);\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, offset, asideOffset, direction);\r\n };\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.getScaleableOffsetX = function (originPoint, targetPoint, isEnd) {\r\n if (this.beginRect && this.endRect) {\r\n var distance = isEnd ? this.beginRect.x - originPoint.x : this.endRect.x - originPoint.x;\r\n if (distance > 0 && distance < this.getMinOffset() * 2)\r\n return distance / 2;\r\n }\r\n return this.getMinOffset();\r\n };\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.getScaleableOffsetY = function (originPoint, targetPoint, isEnd) {\r\n if (this.beginRect && this.endRect)\r\n if (!isEnd && !this.isBeginEndOverlappedY()) {\r\n var distance = void 0;\r\n if (targetPoint.y < originPoint.y)\r\n distance = this.beginRect.y - this.endRect.bottom;\r\n else\r\n distance = this.endRect.y - this.beginRect.bottom;\r\n if (distance < this.getMinOffset() * 2)\r\n return distance / 2;\r\n }\r\n return this.getMinOffset();\r\n };\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.isOnSidePoint = function (originPoint, targetPoint) {\r\n return targetPoint.x > originPoint.x;\r\n };\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.isDirectConnectionAllowed = function (targetSide, originPoint, targetPoint) {\r\n return targetSide === DiagramItem_1.ConnectionPointSide.West || targetSide === DiagramItem_1.ConnectionPointSide.Undefined;\r\n };\r\n ConnectorPointsOrthogonalEastSideCalculator.prototype.getDirectConnectionPoints = function (originPoint, targetPoint) {\r\n var cx = originPoint.x + (targetPoint.x - originPoint.x) / 2;\r\n return [\r\n new ConnectorRenderPoint_1.ConnectorRenderPoint(cx, originPoint.y),\r\n new ConnectorRenderPoint_1.ConnectorRenderPoint(cx, targetPoint.y)\r\n ];\r\n };\r\n return ConnectorPointsOrthogonalEastSideCalculator;\r\n}(ConnectorPointsOrthogonalSideCalculatorBase_1.ConnectorPointsOrthogonalSideCalculatorBase));\r\nexports.ConnectorPointsOrthogonalEastSideCalculator = ConnectorPointsOrthogonalEastSideCalculator;\r\n\n\n/***/ }),\n/* 184 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorPointsOrthogonalWestSideCalculator = void 0;\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ConnectorPointsOrthogonalSideCalculatorBase_1 = __webpack_require__(50);\r\nvar ConnectorRenderPoint_1 = __webpack_require__(28);\r\nvar ConnectorPointsOrthogonalWestSideCalculator = /** @class */ (function (_super) {\r\n __extends(ConnectorPointsOrthogonalWestSideCalculator, _super);\r\n function ConnectorPointsOrthogonalWestSideCalculator(parent) {\r\n return _super.call(this, parent) || this;\r\n }\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.getCorrectOriginPoint = function (originPoint, originRect) {\r\n if (originPoint.x > originRect.x)\r\n originPoint = originPoint.clone().offset(originRect.x - originPoint.x, 0);\r\n return originPoint;\r\n };\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.getSameShapeOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n return [originPoint.clone().offset(-this.getMinOffset(), 0)];\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset());\r\n }\r\n };\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.getOverlappedPointsOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n return [originPoint.clone().offset(this.getMinOffset(), 0)];\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n return [originPoint.clone().offset(-this.getMinOffset(), 0)];\r\n }\r\n return [];\r\n };\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.getBeginOverlappedShapeOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n if (originPoint.x > targetPoint.x)\r\n if (originPoint.y < targetPoint.y)\r\n return [];\r\n else\r\n return [originPoint.clone().offset(-this.getMinOffset(), 0)];\r\n if (originPoint.x < this.endRect.x)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), true);\r\n return [originPoint.clone().offset(-this.getMinOffset(), 0)];\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n if (originPoint.x > targetPoint.x)\r\n if (originPoint.y > targetPoint.y)\r\n return [];\r\n else\r\n return [originPoint.clone().offset(-this.getMinOffset(), 0)];\r\n if (originPoint.x < this.endRect.x)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), false);\r\n return [originPoint.clone().offset(-this.getMinOffset(), 0)];\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n return [originPoint.clone().offset(-this.getMinOffset(), 0)];\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), originPoint.y < targetPoint.y);\r\n }\r\n };\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.getEndOverlappedShapeOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.East: {\r\n var offset = -this.getMinOffset();\r\n if (this.beginRect.x < originPoint.x)\r\n offset -= originPoint.x - this.beginRect.x;\r\n return [originPoint.clone().offset(offset, 0)];\r\n }\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n return [originPoint.clone().offset(-this.getMinOffset(), 0)];\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n if (targetPoint.x > originPoint.x)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), true);\r\n if (originPoint.y > targetPoint.y)\r\n return [originPoint.clone().offset(-this.getMinOffset(), 0)];\r\n return [];\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n if (targetPoint.x > originPoint.x)\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, this.getMinOffset(), this.getMinOffset(), false);\r\n if (originPoint.y < targetPoint.y)\r\n return [originPoint.clone().offset(-this.getMinOffset(), 0)];\r\n return [];\r\n }\r\n };\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.getBeginOnSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [originPoint.clone().offset(-this.getScaleableOffsetX(originPoint, false), 0)];\r\n };\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.getEndOnSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n return [originPoint.clone().offset(-this.getScaleableOffsetX(originPoint, true), 0)];\r\n };\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.getBeginOffSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n switch (targetSide) {\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n if (this.isBeginEndOverlappedY())\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false, false);\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n if (this.isBeginEndOverlappedY())\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false, true);\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n if (this.isBeginEndOverlappedY())\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false);\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.Undefined:\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, false);\r\n }\r\n return [originPoint.clone().offset(-this.getScaleableOffsetX(originPoint, false), 0)];\r\n };\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.getEndOffSideOffsetPoints = function (targetSide, originPoint, targetPoint, originRect) {\r\n if (targetSide === DiagramItem_1.ConnectionPointSide.Undefined)\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, true);\r\n else if (this.isBeginEndOverlappedY()) {\r\n var direction = this.beginRect.center.y > this.endRect.center.y;\r\n return this.getScaleableAsideOffsetPoints(originPoint, targetPoint, originRect, true, direction);\r\n }\r\n return [originPoint.clone().offset(-this.getScaleableOffsetX(originPoint, true), 0)];\r\n };\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.getAsideOffsetPoints = function (originPoint, targetPoint, originRect, offset, asideOffset, direction) {\r\n var points = [];\r\n if (originRect !== undefined) {\r\n if (direction === undefined)\r\n direction = targetPoint.y < originPoint.y;\r\n if (direction)\r\n points.push(originPoint.clone().offset(-offset, -(originPoint.y - originRect.y + asideOffset)));\r\n else\r\n points.push(originPoint.clone().offset(-offset, (originRect.bottom - originPoint.y + asideOffset)));\r\n }\r\n points.push(originPoint.clone().offset(-offset, 0));\r\n return points;\r\n };\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.getScaleableAsideOffsetPoints = function (originPoint, targetPoint, originRect, isEnd, direction) {\r\n var offset = this.getScaleableOffsetX(originPoint, isEnd);\r\n var asideOffset = this.getScaleableOffsetY(originPoint, targetPoint, isEnd);\r\n return this.getAsideOffsetPoints(originPoint, targetPoint, originRect, offset, asideOffset, direction);\r\n };\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.getScaleableOffsetX = function (originPoint, isEnd) {\r\n if (this.beginRect && this.endRect) {\r\n var distance = isEnd ? originPoint.x - this.beginRect.right : originPoint.x - this.endRect.right;\r\n if (distance > 0 && distance < this.getMinOffset() * 2)\r\n return distance / 2;\r\n }\r\n return this.getMinOffset();\r\n };\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.getScaleableOffsetY = function (originPoint, targetPoint, isEnd) {\r\n if (this.beginRect && this.endRect)\r\n if (!isEnd && !this.isBeginEndOverlappedY()) {\r\n var distance = void 0;\r\n if (targetPoint.y < originPoint.y)\r\n distance = this.beginRect.y - this.endRect.bottom;\r\n else\r\n distance = this.endRect.y - this.beginRect.bottom;\r\n if (distance < this.getMinOffset() * 2)\r\n return distance / 2;\r\n }\r\n return this.getMinOffset();\r\n };\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.isOnSidePoint = function (originPoint, targetPoint) {\r\n return targetPoint.x < originPoint.x;\r\n };\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.isDirectConnectionAllowed = function (targetSide, originPoint, targetPoint) {\r\n return targetSide === DiagramItem_1.ConnectionPointSide.East || targetSide === DiagramItem_1.ConnectionPointSide.Undefined;\r\n };\r\n ConnectorPointsOrthogonalWestSideCalculator.prototype.getDirectConnectionPoints = function (originPoint, targetPoint) {\r\n var cx = targetPoint.x + (originPoint.x - targetPoint.x) / 2;\r\n return [\r\n new ConnectorRenderPoint_1.ConnectorRenderPoint(cx, originPoint.y),\r\n new ConnectorRenderPoint_1.ConnectorRenderPoint(cx, targetPoint.y)\r\n ];\r\n };\r\n return ConnectorPointsOrthogonalWestSideCalculator;\r\n}(ConnectorPointsOrthogonalSideCalculatorBase_1.ConnectorPointsOrthogonalSideCalculatorBase));\r\nexports.ConnectorPointsOrthogonalWestSideCalculator = ConnectorPointsOrthogonalWestSideCalculator;\r\n\n\n/***/ }),\n/* 185 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar math_1 = __webpack_require__(33);\r\nvar point_1 = __webpack_require__(1);\r\nvar LineEquation = (function () {\r\n function LineEquation(aParam, bParam, cParam) {\r\n this.aParam = aParam;\r\n this.bParam = bParam;\r\n this.cParam = cParam;\r\n }\r\n LineEquation.prototype.equals = function (obj) {\r\n return this.aParam === obj.aParam &&\r\n this.bParam === obj.bParam &&\r\n this.cParam === obj.cParam;\r\n };\r\n LineEquation.prototype.getIntersection = function (equation) {\r\n return LineEquation.getIntersection(this, equation);\r\n };\r\n LineEquation.fromPoints = function (pointA, pointB) {\r\n return new LineEquation(pointB.y - pointA.y, pointA.x - pointB.x, pointB.x * pointA.y - pointA.x * pointB.y);\r\n };\r\n LineEquation.getIntersection = function (a, b) {\r\n var A1 = a.aParam;\r\n var B1 = a.bParam;\r\n var C1 = a.cParam;\r\n var A2 = b.aParam;\r\n var B2 = b.bParam;\r\n var C2 = b.cParam;\r\n var v = A2 * B1 - A1 * B2;\r\n if (math_1.MathUtils.numberCloseTo(v, 0))\r\n return null;\r\n if (A1 === 0) {\r\n var x = (B2 * C1 - C2 * B1) / (B1 * A2);\r\n return new point_1.Point(x, -C1 / B1);\r\n }\r\n var y = (C2 * A1 - C1 * A2) / v;\r\n return new point_1.Point((-B1 * y - C1) / A1, y);\r\n };\r\n LineEquation.equals = function (a, b) {\r\n return a.aParam === b.bParam &&\r\n a.bParam === b.bParam &&\r\n a.cParam === b.cParam;\r\n };\r\n return LineEquation;\r\n}());\r\nexports.LineEquation = LineEquation;\r\n\n\n/***/ }),\n/* 186 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorLineEndingFilledTriangleStrategy = exports.ConnectorLineEndingOutlinedTriangleStrategy = exports.ConnectorLineEndingArrowStrategy = exports.ConnectorLineEndingNoneStrategy = exports.ConnectorLineEndingStrategy = void 0;\r\nvar Utils_1 = __webpack_require__(3);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ConnectorLineEndingStrategy = /** @class */ (function () {\r\n function ConnectorLineEndingStrategy(style) {\r\n this.style = style;\r\n }\r\n ConnectorLineEndingStrategy.prototype.hasCommands = function () {\r\n return true;\r\n };\r\n ConnectorLineEndingStrategy.prototype.needCreateSeparatePrimitive = function () {\r\n return false;\r\n };\r\n ConnectorLineEndingStrategy.prototype.createPrimitive = function () {\r\n return new PathPrimitive_1.PathPrimitive([], this.getStyle(), this.getCssClass());\r\n };\r\n ConnectorLineEndingStrategy.prototype.createCommands = function (point, directionPoint) {\r\n return [];\r\n };\r\n ConnectorLineEndingStrategy.prototype.getStyle = function () {\r\n var style = this.style.clone();\r\n style.resetStrokeDashArray();\r\n return style;\r\n };\r\n ConnectorLineEndingStrategy.prototype.getCssClass = function () {\r\n return undefined;\r\n };\r\n return ConnectorLineEndingStrategy;\r\n}());\r\nexports.ConnectorLineEndingStrategy = ConnectorLineEndingStrategy;\r\nvar ConnectorLineEndingNoneStrategy = /** @class */ (function (_super) {\r\n __extends(ConnectorLineEndingNoneStrategy, _super);\r\n function ConnectorLineEndingNoneStrategy() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ConnectorLineEndingNoneStrategy.prototype.hasCommands = function () {\r\n return false;\r\n };\r\n return ConnectorLineEndingNoneStrategy;\r\n}(ConnectorLineEndingStrategy));\r\nexports.ConnectorLineEndingNoneStrategy = ConnectorLineEndingNoneStrategy;\r\nvar ConnectorLineEndingArrowStrategy = /** @class */ (function (_super) {\r\n __extends(ConnectorLineEndingArrowStrategy, _super);\r\n function ConnectorLineEndingArrowStrategy() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(ConnectorLineEndingArrowStrategy.prototype, \"arrowHeight\", {\r\n get: function () { return this.style.strokeWidth * 6; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ConnectorLineEndingArrowStrategy.prototype, \"arrowWidth\", {\r\n get: function () { return this.style.strokeWidth * 2; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ConnectorLineEndingArrowStrategy.prototype.needCreateSeparatePrimitive = function () {\r\n return !this.style.isDefaultStrokeDashArray();\r\n };\r\n ConnectorLineEndingArrowStrategy.prototype.createCommands = function (point, directionPoint) {\r\n var arrowPoints = this.getArrowPoints(point, directionPoint);\r\n var commands = [\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(arrowPoints.point1.x, arrowPoints.point1.y),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(point.x, point.y),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(arrowPoints.point2.x, arrowPoints.point2.y)\r\n ];\r\n if (!this.style.isDefaultStrokeDashArray())\r\n commands = commands.concat([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(point.x, point.y),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(arrowPoints.point3.x, arrowPoints.point3.y)\r\n ]);\r\n return commands;\r\n };\r\n ConnectorLineEndingArrowStrategy.prototype.getArrowPoints = function (point, directionPoint) {\r\n var arrowHeight = this.arrowHeight;\r\n if (point.x === directionPoint.x) {\r\n var distance = Math.abs(point.y - directionPoint.y);\r\n if (distance < arrowHeight)\r\n arrowHeight = distance;\r\n }\r\n if (point.y === directionPoint.y) {\r\n var distance = Math.abs(point.x - directionPoint.x);\r\n if (distance < arrowHeight)\r\n arrowHeight = distance;\r\n }\r\n return Utils_1.GeometryUtils.getArrowPoints(point, directionPoint, arrowHeight, this.arrowWidth);\r\n };\r\n return ConnectorLineEndingArrowStrategy;\r\n}(ConnectorLineEndingStrategy));\r\nexports.ConnectorLineEndingArrowStrategy = ConnectorLineEndingArrowStrategy;\r\nvar ConnectorLineEndingOutlinedTriangleStrategy = /** @class */ (function (_super) {\r\n __extends(ConnectorLineEndingOutlinedTriangleStrategy, _super);\r\n function ConnectorLineEndingOutlinedTriangleStrategy() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ConnectorLineEndingOutlinedTriangleStrategy.prototype.needCreateSeparatePrimitive = function () {\r\n return true;\r\n };\r\n ConnectorLineEndingOutlinedTriangleStrategy.prototype.createCommands = function (point, directionPoint) {\r\n var arrowPoints = this.getArrowPoints(point, directionPoint);\r\n return [\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(arrowPoints.point1.x, arrowPoints.point1.y),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(point.x, point.y),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(arrowPoints.point2.x, arrowPoints.point2.y),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ];\r\n };\r\n ConnectorLineEndingOutlinedTriangleStrategy.prototype.getCssClass = function () {\r\n return \"outlined-line-ending\";\r\n };\r\n return ConnectorLineEndingOutlinedTriangleStrategy;\r\n}(ConnectorLineEndingArrowStrategy));\r\nexports.ConnectorLineEndingOutlinedTriangleStrategy = ConnectorLineEndingOutlinedTriangleStrategy;\r\nvar ConnectorLineEndingFilledTriangleStrategy = /** @class */ (function (_super) {\r\n __extends(ConnectorLineEndingFilledTriangleStrategy, _super);\r\n function ConnectorLineEndingFilledTriangleStrategy() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ConnectorLineEndingFilledTriangleStrategy.prototype.getStyle = function () {\r\n var style = _super.prototype.getStyle.call(this);\r\n style[\"fill\"] = style[\"stroke\"];\r\n return style;\r\n };\r\n ConnectorLineEndingFilledTriangleStrategy.prototype.getCssClass = function () {\r\n return \"filled-line-ending\";\r\n };\r\n return ConnectorLineEndingFilledTriangleStrategy;\r\n}(ConnectorLineEndingOutlinedTriangleStrategy));\r\nexports.ConnectorLineEndingFilledTriangleStrategy = ConnectorLineEndingFilledTriangleStrategy;\r\n\n\n/***/ }),\n/* 187 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorTexts = exports.ConnectorText = void 0;\r\nvar ConnectorText = /** @class */ (function () {\r\n function ConnectorText(position, value) {\r\n this.position = position;\r\n this.value = value;\r\n }\r\n return ConnectorText;\r\n}());\r\nexports.ConnectorText = ConnectorText;\r\nvar ConnectorTexts = /** @class */ (function () {\r\n function ConnectorTexts() {\r\n this.items = {};\r\n }\r\n ConnectorTexts.prototype.get = function (position) {\r\n return this.items[position];\r\n };\r\n ConnectorTexts.prototype.set = function (position, text) {\r\n this.items[position] = text;\r\n };\r\n ConnectorTexts.prototype.remove = function (position) {\r\n delete this.items[position];\r\n };\r\n ConnectorTexts.prototype.map = function (callback) {\r\n var list = [];\r\n this.forEach(function (t) { return list.push(callback(t)); });\r\n return list;\r\n };\r\n ConnectorTexts.prototype.forEach = function (callback) {\r\n for (var key in this.items)\r\n if (Object.prototype.hasOwnProperty.call(this.items, key))\r\n callback(this.items[key]);\r\n };\r\n ConnectorTexts.prototype.count = function () {\r\n return Object.keys(this.items).length;\r\n };\r\n ConnectorTexts.prototype.clone = function () {\r\n var result = new ConnectorTexts();\r\n this.forEach(function (t) { result.set(t.position, new ConnectorText(t.position, t.value)); });\r\n return result;\r\n };\r\n ConnectorTexts.prototype.toObject = function () {\r\n var result = {};\r\n var modified = false;\r\n this.forEach(function (t) {\r\n result[t.position] = t.value;\r\n modified = true;\r\n });\r\n return modified ? result : null;\r\n };\r\n ConnectorTexts.prototype.fromObject = function (obj) {\r\n for (var key in obj)\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var position = parseFloat(key);\r\n if (!isNaN(position) && typeof obj[key] === \"string\")\r\n this.set(position, new ConnectorText(position, obj[key]));\r\n }\r\n };\r\n return ConnectorTexts;\r\n}());\r\nexports.ConnectorTexts = ConnectorTexts;\r\n\n\n/***/ }),\n/* 188 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AddConnectorPointHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar AddConnectorPointHistoryItem = /** @class */ (function (_super) {\r\n __extends(AddConnectorPointHistoryItem, _super);\r\n function AddConnectorPointHistoryItem(connectorKey, pointIndex, point) {\r\n var _this = _super.call(this) || this;\r\n _this.connectorKey = connectorKey;\r\n _this.pointIndex = pointIndex;\r\n _this.point = point;\r\n return _this;\r\n }\r\n AddConnectorPointHistoryItem.prototype.redo = function (manipulator) {\r\n var _this = this;\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n this.renderContext = connector.createRenderPointsContext();\r\n manipulator.addDeleteConnectorPoint(connector, function (connector) {\r\n connector.addPoint(_this.pointIndex, _this.point);\r\n connector.onAddPoint(_this.pointIndex, _this.point);\r\n });\r\n };\r\n AddConnectorPointHistoryItem.prototype.undo = function (manipulator) {\r\n var _this = this;\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n manipulator.addDeleteConnectorPoint(connector, function (connector) {\r\n connector.deletePoint(_this.pointIndex);\r\n connector.replaceRenderPoints(_this.renderContext);\r\n });\r\n };\r\n return AddConnectorPointHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.AddConnectorPointHistoryItem = AddConnectorPointHistoryItem;\r\n\n\n/***/ }),\n/* 189 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DeleteConnectorUnnecessaryPointsHistoryItem = exports.DeleteConnectorPointHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar DeleteConnectorPointHistoryItem = /** @class */ (function (_super) {\r\n __extends(DeleteConnectorPointHistoryItem, _super);\r\n function DeleteConnectorPointHistoryItem(connectorKey, pointIndex) {\r\n var _this = _super.call(this) || this;\r\n _this.connectorKey = connectorKey;\r\n _this.pointIndex = pointIndex;\r\n return _this;\r\n }\r\n DeleteConnectorPointHistoryItem.prototype.redo = function (manipulator) {\r\n var _this = this;\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n this.oldRenderContext = connector.createRenderPointsContext();\r\n this.oldPoint = connector.points[this.pointIndex].clone();\r\n manipulator.addDeleteConnectorPoint(connector, function (connector) {\r\n connector.deletePoint(_this.pointIndex);\r\n connector.onDeletePoint(_this.pointIndex);\r\n });\r\n };\r\n DeleteConnectorPointHistoryItem.prototype.undo = function (manipulator) {\r\n var _this = this;\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n manipulator.addDeleteConnectorPoint(connector, function (connector) {\r\n connector.addPoint(_this.pointIndex, _this.oldPoint);\r\n connector.replaceRenderPoints(_this.oldRenderContext);\r\n });\r\n };\r\n return DeleteConnectorPointHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.DeleteConnectorPointHistoryItem = DeleteConnectorPointHistoryItem;\r\nvar DeleteConnectorUnnecessaryPointsHistoryItem = /** @class */ (function (_super) {\r\n __extends(DeleteConnectorUnnecessaryPointsHistoryItem, _super);\r\n function DeleteConnectorUnnecessaryPointsHistoryItem(connectorKey, unnecessaryPoints, validateRenderPoints) {\r\n var _this = _super.call(this) || this;\r\n _this.connectorKey = connectorKey;\r\n _this.unnecessaryPoints = unnecessaryPoints;\r\n _this.validateRenderPoints = validateRenderPoints;\r\n return _this;\r\n }\r\n DeleteConnectorUnnecessaryPointsHistoryItem.prototype.redo = function (manipulator) {\r\n var _this = this;\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n this.oldRenderContext = connector.createRenderPointsContext();\r\n this.oldPoints = connector.points.map(function (p) { return p.clone(); });\r\n manipulator.changeConnectorPoints(connector, function (connector) {\r\n connector.points = ModelUtils_1.ModelUtils.createNecessaryPoints(_this.oldPoints, _this.unnecessaryPoints);\r\n if (_this.validateRenderPoints)\r\n connector.onDeleteUnnecessaryPoints(_this.unnecessaryPoints);\r\n else\r\n connector.invalidateRenderPoints();\r\n });\r\n };\r\n DeleteConnectorUnnecessaryPointsHistoryItem.prototype.undo = function (manipulator) {\r\n var _this = this;\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n manipulator.changeConnectorPoints(connector, function (connector) {\r\n connector.points = _this.oldPoints;\r\n if (_this.validateRenderPoints)\r\n connector.replaceRenderPoints(_this.oldRenderContext);\r\n else\r\n connector.invalidateRenderPoints();\r\n });\r\n };\r\n return DeleteConnectorUnnecessaryPointsHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.DeleteConnectorUnnecessaryPointsHistoryItem = DeleteConnectorUnnecessaryPointsHistoryItem;\r\n\n\n/***/ }),\n/* 190 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.InsertToContainerHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar InsertToContainerHistoryItem = /** @class */ (function (_super) {\r\n __extends(InsertToContainerHistoryItem, _super);\r\n function InsertToContainerHistoryItem(item, container) {\r\n var _this = _super.call(this) || this;\r\n _this.containerKey = container.key;\r\n _this.itemKey = item.key;\r\n return _this;\r\n }\r\n InsertToContainerHistoryItem.prototype.redo = function (manipulator) {\r\n var item = manipulator.model.findItem(this.itemKey);\r\n var container = manipulator.model.findShape(this.containerKey);\r\n manipulator.insertToContainer(item, container);\r\n };\r\n InsertToContainerHistoryItem.prototype.undo = function (manipulator) {\r\n var item = manipulator.model.findItem(this.itemKey);\r\n manipulator.removeFromContainer(item);\r\n };\r\n return InsertToContainerHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.InsertToContainerHistoryItem = InsertToContainerHistoryItem;\r\n\n\n/***/ }),\n/* 191 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MoveConnectorPointHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar MoveConnectorPointHistoryItem = /** @class */ (function (_super) {\r\n __extends(MoveConnectorPointHistoryItem, _super);\r\n function MoveConnectorPointHistoryItem(connectorKey, pointIndex, newPoint) {\r\n var _this = _super.call(this) || this;\r\n _this.connectorKey = connectorKey;\r\n _this.pointIndex = pointIndex;\r\n _this.newPoint = newPoint.clone();\r\n return _this;\r\n }\r\n MoveConnectorPointHistoryItem.prototype.redo = function (manipulator) {\r\n var _this = this;\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n this.oldPoint = connector.points[this.pointIndex].clone();\r\n this.renderContext = connector.createRenderPointsContext();\r\n manipulator.moveConnectorPoint(connector, this.pointIndex, function (connector) {\r\n connector.movePoint(_this.pointIndex, _this.newPoint);\r\n connector.onMovePoint(_this.pointIndex, _this.newPoint);\r\n });\r\n };\r\n MoveConnectorPointHistoryItem.prototype.undo = function (manipulator) {\r\n var _this = this;\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n manipulator.moveConnectorPoint(connector, this.pointIndex, function (connector) {\r\n connector.movePoint(_this.pointIndex, _this.oldPoint);\r\n connector.replaceRenderPoints(_this.renderContext);\r\n });\r\n };\r\n return MoveConnectorPointHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.MoveConnectorPointHistoryItem = MoveConnectorPointHistoryItem;\r\n\n\n/***/ }),\n/* 192 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MoveShapeHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar MoveShapeHistoryItem = /** @class */ (function (_super) {\r\n __extends(MoveShapeHistoryItem, _super);\r\n function MoveShapeHistoryItem(shapeKey, position) {\r\n var _this = _super.call(this) || this;\r\n _this.shapeKey = shapeKey;\r\n _this.position = position;\r\n return _this;\r\n }\r\n MoveShapeHistoryItem.prototype.redo = function (manipulator) {\r\n var shape = manipulator.model.findShape(this.shapeKey);\r\n this.oldPosition = shape.position.clone();\r\n manipulator.moveShape(shape, this.position);\r\n };\r\n MoveShapeHistoryItem.prototype.undo = function (manipulator) {\r\n var shape = manipulator.model.findShape(this.shapeKey);\r\n manipulator.moveShape(shape, this.oldPosition);\r\n };\r\n return MoveShapeHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.MoveShapeHistoryItem = MoveShapeHistoryItem;\r\n\n\n/***/ }),\n/* 193 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RemoveFromContainerHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar RemoveFromContainerHistoryItem = /** @class */ (function (_super) {\r\n __extends(RemoveFromContainerHistoryItem, _super);\r\n function RemoveFromContainerHistoryItem(item) {\r\n var _this = _super.call(this) || this;\r\n _this.itemKey = item.key;\r\n return _this;\r\n }\r\n RemoveFromContainerHistoryItem.prototype.redo = function (manipulator) {\r\n var item = manipulator.model.findItem(this.itemKey);\r\n this.containerKey = item.container && item.container.key;\r\n manipulator.removeFromContainer(item);\r\n };\r\n RemoveFromContainerHistoryItem.prototype.undo = function (manipulator) {\r\n var container = manipulator.model.findContainer(this.containerKey);\r\n var item = manipulator.model.findItem(this.itemKey);\r\n manipulator.insertToContainer(item, container);\r\n };\r\n return RemoveFromContainerHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.RemoveFromContainerHistoryItem = RemoveFromContainerHistoryItem;\r\n\n\n/***/ }),\n/* 194 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelResizeHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar offsets_1 = __webpack_require__(87);\r\nvar size_1 = __webpack_require__(2);\r\nvar ModelResizeHistoryItem = /** @class */ (function (_super) {\r\n __extends(ModelResizeHistoryItem, _super);\r\n function ModelResizeHistoryItem(offset) {\r\n var _this = _super.call(this) || this;\r\n _this.offset = offset;\r\n return _this;\r\n }\r\n ModelResizeHistoryItem.prototype.redo = function (manipulator) {\r\n this.oldSize = manipulator.model.size.clone();\r\n this.backOffset = new offsets_1.Offsets(-this.offset.left, -this.offset.right, -this.offset.top, -this.offset.bottom);\r\n var newWidth = Math.max(this.oldSize.width + this.offset.left + this.offset.right, manipulator.model.pageWidth);\r\n var newHeight = Math.max(this.oldSize.height + this.offset.top + this.offset.bottom, manipulator.model.pageHeight);\r\n manipulator.changeModelSize(new size_1.Size(newWidth, newHeight), this.offset);\r\n };\r\n ModelResizeHistoryItem.prototype.undo = function (manipulator) {\r\n manipulator.changeModelSize(this.oldSize, this.backOffset);\r\n };\r\n return ModelResizeHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ModelResizeHistoryItem = ModelResizeHistoryItem;\r\n\n\n/***/ }),\n/* 195 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UpdatePositionsOnPageResizeHistoryItem = void 0;\r\nvar Connector_1 = __webpack_require__(7);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar UpdatePositionsOnPageResizeHistoryItem = /** @class */ (function (_super) {\r\n __extends(UpdatePositionsOnPageResizeHistoryItem, _super);\r\n function UpdatePositionsOnPageResizeHistoryItem(offset) {\r\n var _this = _super.call(this) || this;\r\n _this.offset = offset;\r\n return _this;\r\n }\r\n UpdatePositionsOnPageResizeHistoryItem.prototype.redo = function (manipulator) {\r\n var _this = this;\r\n manipulator.model.iterateItems(function (item) {\r\n if (item instanceof Shape_1.Shape)\r\n manipulator.moveShape(item, _this.applyOffset(item.position, _this.offset.x, _this.offset.y));\r\n if (item instanceof Connector_1.Connector)\r\n manipulator.changeConnectorPoints(item, function (i) { return i.updatePointsOnPageResize(_this.offset.x, _this.offset.y); });\r\n });\r\n };\r\n UpdatePositionsOnPageResizeHistoryItem.prototype.undo = function (manipulator) {\r\n var _this = this;\r\n manipulator.model.iterateItems(function (item) {\r\n if (item instanceof Shape_1.Shape)\r\n manipulator.moveShape(item, _this.applyOffset(item.position, -_this.offset.x, -_this.offset.y));\r\n if (item instanceof Connector_1.Connector)\r\n manipulator.changeConnectorPoints(item, function (i) { return i.updatePointsOnPageResize(-_this.offset.x, -_this.offset.y); });\r\n });\r\n };\r\n UpdatePositionsOnPageResizeHistoryItem.prototype.applyOffset = function (point, offsetX, offsetY) {\r\n return point.clone().offset(offsetX, offsetY);\r\n };\r\n return UpdatePositionsOnPageResizeHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.UpdatePositionsOnPageResizeHistoryItem = UpdatePositionsOnPageResizeHistoryItem;\r\n\n\n/***/ }),\n/* 196 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GraphInfo = void 0;\r\nvar LayoutUtils_1 = __webpack_require__(197);\r\nvar GraphInfo = /** @class */ (function () {\r\n function GraphInfo(container, sourceGraph) {\r\n this.container = container;\r\n this.sourceGraph = sourceGraph;\r\n }\r\n Object.defineProperty(GraphInfo.prototype, \"graph\", {\r\n get: function () {\r\n return this._graph || (this._graph = this.getNodeInfoGraph());\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(GraphInfo.prototype, \"level\", {\r\n get: function () {\r\n return this._level !== undefined ? this._level : (this._level = this.getLevel());\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n GraphInfo.prototype.getNodeInfoGraph = function () {\r\n return this.sourceGraph.cast(LayoutUtils_1.LayoutUtils.shapeToLayout);\r\n };\r\n GraphInfo.prototype.getLevel = function () {\r\n var level = 0;\r\n if (this.container)\r\n level = this.getContainerLevel(this.container);\r\n return level;\r\n };\r\n GraphInfo.prototype.getContainerLevel = function (container) {\r\n var level = 1;\r\n var parentContainer = container.container;\r\n if (parentContainer)\r\n level += this.getContainerLevel(parentContainer);\r\n return level;\r\n };\r\n return GraphInfo;\r\n}());\r\nexports.GraphInfo = GraphInfo;\r\n\n\n/***/ }),\n/* 197 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LayoutUtils = void 0;\r\nvar NodeLayout_1 = __webpack_require__(69);\r\nvar LayoutUtils = /** @class */ (function () {\r\n function LayoutUtils() {\r\n }\r\n LayoutUtils.shapeToLayout = function (shape) {\r\n var margin = new NodeLayout_1.Margin(0);\r\n var shapeRect = shape.rectangle;\r\n shape.attachedConnectors.filter(function (c) { return !c.beginItem || !c.endItem; }).forEach(function (c) {\r\n var connRect = c.rectangle;\r\n margin.left = Math.max(margin.left, shapeRect.x - connRect.x);\r\n margin.right = Math.max(margin.right, connRect.right - shapeRect.right);\r\n margin.top = Math.max(margin.top, shapeRect.y - connRect.y);\r\n margin.bottom = Math.max(margin.bottom, connRect.bottom - shapeRect.bottom);\r\n });\r\n var layout = new NodeLayout_1.NodeInfo(shape.key, margin, shape.size.clone());\r\n layout.connectionPoints = shape.description.getConnectionPoints();\r\n return layout;\r\n };\r\n return LayoutUtils;\r\n}());\r\nexports.LayoutUtils = LayoutUtils;\r\n\n\n/***/ }),\n/* 198 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CommandBase = void 0;\r\nvar CommandBase = /** @class */ (function () {\r\n function CommandBase(control) {\r\n this.control = control;\r\n }\r\n CommandBase.prototype.execute = function (parameter) {\r\n if (this.isPermissionsRequired)\r\n this.permissionsProvider.lockPermissions();\r\n var state = this.getState();\r\n if (this.isPermissionsRequired)\r\n this.permissionsProvider.unlockPermissions();\r\n if (!state.enabled)\r\n return false;\r\n this.control.beginUpdate();\r\n var executed = false;\r\n if (this.isPermissionsRequired)\r\n executed = this.executeWithPermissions(state, parameter);\r\n else\r\n executed = this.executeCore(state, parameter);\r\n this.control.endUpdate();\r\n if (executed)\r\n this.updateControlState();\r\n return executed;\r\n };\r\n CommandBase.prototype.executeWithPermissions = function (state, parameter) {\r\n var executed = false;\r\n this.permissionsProvider.beginStorePermissions();\r\n this.control.history.beginTransaction();\r\n executed = this.executeCore(state, parameter);\r\n if (!this.permissionsProvider.isStoredPermissionsGranted()) {\r\n this.permissionsProvider.lockPermissions();\r\n this.control.history.undoTransaction();\r\n this.permissionsProvider.unlockPermissions();\r\n executed = false;\r\n }\r\n this.control.history.endTransaction();\r\n this.permissionsProvider.endStorePermissions();\r\n return executed;\r\n };\r\n CommandBase.prototype.updateControlState = function () {\r\n if (!this.lockInputPositionUpdating())\r\n this.control.selection.inputPosition.reset();\r\n if (!this.lockUIUpdating())\r\n this.control.barManager.updateItemsState();\r\n };\r\n Object.defineProperty(CommandBase.prototype, \"permissionsProvider\", {\r\n get: function () { return this.control && this.control.permissionsProvider; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CommandBase.prototype, \"isPermissionsRequired\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CommandBase.prototype.lockUIUpdating = function () {\r\n return false;\r\n };\r\n CommandBase.prototype.lockInputPositionUpdating = function () {\r\n return false;\r\n };\r\n return CommandBase;\r\n}());\r\nexports.CommandBase = CommandBase;\r\n\n\n/***/ }),\n/* 199 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SimpleCommandState = void 0;\r\nvar SimpleCommandState = /** @class */ (function () {\r\n function SimpleCommandState(enabled, value, defaultValue, items, visible) {\r\n this.visible = true;\r\n this.denyUpdateValue = false;\r\n this.enabled = enabled;\r\n this.value = value;\r\n this.items = items;\r\n this.visible = visible;\r\n this.defaultValue = defaultValue;\r\n }\r\n return SimpleCommandState;\r\n}());\r\nexports.SimpleCommandState = SimpleCommandState;\r\n\n\n/***/ }),\n/* 200 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UndoCommand = void 0;\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar UndoCommand = /** @class */ (function (_super) {\r\n __extends(UndoCommand, _super);\r\n function UndoCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n UndoCommand.prototype.executeCore = function (state) {\r\n this.control.beginUpdateCanvas();\r\n this.permissionsProvider.lockPermissions();\r\n this.control.history.undo();\r\n this.permissionsProvider.unlockPermissions();\r\n this.control.endUpdateCanvas();\r\n return true;\r\n };\r\n UndoCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.history.canUndo();\r\n };\r\n return UndoCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.UndoCommand = UndoCommand;\r\n\n\n/***/ }),\n/* 201 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RedoCommand = void 0;\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar RedoCommand = /** @class */ (function (_super) {\r\n __extends(RedoCommand, _super);\r\n function RedoCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RedoCommand.prototype.executeCore = function (state) {\r\n this.control.beginUpdateCanvas();\r\n this.permissionsProvider.lockPermissions();\r\n this.control.history.redo();\r\n this.permissionsProvider.unlockPermissions();\r\n this.control.endUpdateCanvas();\r\n return true;\r\n };\r\n RedoCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && this.control.history.canRedo();\r\n };\r\n return RedoCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.RedoCommand = RedoCommand;\r\n\n\n/***/ }),\n/* 202 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ImportCommand = void 0;\r\nvar Importer_1 = __webpack_require__(120);\r\nvar ExportImportCommandBase_1 = __webpack_require__(54);\r\nvar ImportCommand = /** @class */ (function (_super) {\r\n __extends(ImportCommand, _super);\r\n function ImportCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ImportCommand.prototype.executeCore = function (state, parameter) {\r\n this.permissionsProvider.lockPermissions();\r\n var data = parameter[\"data\"] ? parameter[\"data\"] : parameter;\r\n var importer = new Importer_1.Importer(this.control.shapeDescriptionManager, data);\r\n if (parameter[\"keepExistingItems\"] === true) {\r\n importer.importItemsData(this.control.model);\r\n this.control.importItemsData();\r\n }\r\n else {\r\n var model = importer.import();\r\n this.control.importModel(model);\r\n }\r\n this.permissionsProvider.unlockPermissions();\r\n return true;\r\n };\r\n return ImportCommand;\r\n}(ExportImportCommandBase_1.ExportImportCommandBase));\r\nexports.ImportCommand = ImportCommand;\r\n\n\n/***/ }),\n/* 203 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ProcessShapeDescription = void 0;\r\nvar RectangleShapeDescription_1 = __webpack_require__(19);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar ProcessShapeDescription = /** @class */ (function (_super) {\r\n __extends(ProcessShapeDescription, _super);\r\n function ProcessShapeDescription() {\r\n return _super.call(this, undefined, true) || this;\r\n }\r\n Object.defineProperty(ProcessShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Process; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ProcessShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return ProcessShapeDescription;\r\n}(RectangleShapeDescription_1.RectangleShapeDescription));\r\nexports.ProcessShapeDescription = ProcessShapeDescription;\r\n\n\n/***/ }),\n/* 204 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DecisionShapeDescription = void 0;\r\nvar DiamondShapeDescription_1 = __webpack_require__(121);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar size_1 = __webpack_require__(2);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar DecisionShapeDescription = /** @class */ (function (_super) {\r\n __extends(DecisionShapeDescription, _super);\r\n function DecisionShapeDescription() {\r\n return _super.call(this, new size_1.Size(ShapeDescription_1.ShapeDefaultDimension, ShapeDescription_1.ShapeDefaultDimension * 0.75), true) || this;\r\n }\r\n Object.defineProperty(DecisionShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Decision; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return DecisionShapeDescription;\r\n}(DiamondShapeDescription_1.DiamondShapeDescription));\r\nexports.DecisionShapeDescription = DecisionShapeDescription;\r\n\n\n/***/ }),\n/* 205 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ManualInputShapeDescription = void 0;\r\nvar RectangleShapeDescription_1 = __webpack_require__(19);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar ManualInputShapeDescription = /** @class */ (function (_super) {\r\n __extends(ManualInputShapeDescription, _super);\r\n function ManualInputShapeDescription() {\r\n return _super.call(this, undefined, true) || this;\r\n }\r\n Object.defineProperty(ManualInputShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.ManualInput; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ManualInputShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ManualInputShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var _a = shape.rectangle, left = _a.x, top = _a.y, right = _a.right, bottom = _a.bottom, height = _a.height;\r\n var y1 = top + height * ManualInputShapeDescription.slopeHeightRatio;\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(left, y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, bottom),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n ManualInputShapeDescription.prototype.processConnectionPoint = function (shape, point) {\r\n var side = shape.getConnectionPointSide(point);\r\n if (side === DiagramItem_1.ConnectionPointSide.North)\r\n point.y += ManualInputShapeDescription.slopeHeightRatio / 2 * shape.size.height;\r\n };\r\n ManualInputShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var yOffset = shape.size.height * ManualInputShapeDescription.slopeHeightRatio;\r\n return shape.rectangle.clone()\r\n .moveRectangle(ShapeDescription_1.ShapeTextPadding, yOffset)\r\n .resize(-ShapeDescription_1.ShapeTextPadding * 2, -yOffset - ShapeDescription_1.ShapeTextPadding)\r\n .nonNegativeSize();\r\n };\r\n ManualInputShapeDescription.slopeHeightRatio = 0.1;\r\n return ManualInputShapeDescription;\r\n}(RectangleShapeDescription_1.RectangleShapeDescription));\r\nexports.ManualInputShapeDescription = ManualInputShapeDescription;\r\n\n\n/***/ }),\n/* 206 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataShapeDescription = void 0;\r\nvar RectangleShapeDescription_1 = __webpack_require__(19);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar DataShapeDescription = /** @class */ (function (_super) {\r\n __extends(DataShapeDescription, _super);\r\n function DataShapeDescription() {\r\n return _super.call(this, undefined, true) || this;\r\n }\r\n Object.defineProperty(DataShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Data; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DataShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DataShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var _a = shape.rectangle, left = _a.x, top = _a.y, right = _a.right, bottom = _a.bottom, width = _a.width, height = _a.height;\r\n var px = Math.min(Math.max(0, height / Math.tan(DataShapeDescription.slopeAngle)), width);\r\n var x1 = left + px;\r\n var x2 = right - px;\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(x1, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x2, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, bottom),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n DataShapeDescription.prototype.processConnectionPoint = function (shape, point) {\r\n var offset = shape.size.height / Math.tan(DataShapeDescription.slopeAngle);\r\n var side = shape.getConnectionPointSide(point);\r\n if (side === DiagramItem_1.ConnectionPointSide.East)\r\n point.x -= offset / 2;\r\n else if (side === DiagramItem_1.ConnectionPointSide.West)\r\n point.x += offset / 2;\r\n };\r\n DataShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var px = Math.min(Math.max(0, shape.size.height / Math.tan(DataShapeDescription.slopeAngle)), shape.size.width);\r\n return shape.rectangle.clone().moveRectangle(px, ShapeDescription_1.ShapeTextPadding).resize(-px * 2, -ShapeDescription_1.ShapeTextPadding * 2);\r\n };\r\n DataShapeDescription.slopeAngle = 81 * Math.PI / 180;\r\n return DataShapeDescription;\r\n}(RectangleShapeDescription_1.RectangleShapeDescription));\r\nexports.DataShapeDescription = DataShapeDescription;\r\n\n\n/***/ }),\n/* 207 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TerminatorShapeDescription = void 0;\r\nvar RectangleShapeDescription_1 = __webpack_require__(19);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar size_1 = __webpack_require__(2);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar TerminatorShapeDescription = /** @class */ (function (_super) {\r\n __extends(TerminatorShapeDescription, _super);\r\n function TerminatorShapeDescription() {\r\n return _super.call(this, new size_1.Size(ShapeDescription_1.ShapeDefaultDimension, ShapeDescription_1.ShapeDefaultDimension * 0.5), true) || this;\r\n }\r\n Object.defineProperty(TerminatorShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Terminator; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TerminatorShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n TerminatorShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width;\r\n var cy = rect.center.y;\r\n var x1 = left + width * TerminatorShapeDescription.curveWidthRatio;\r\n var x2 = left + width * (1 - TerminatorShapeDescription.curveWidthRatio);\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(x1, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x2, top),\r\n new PathPrimitive_1.PathPrimitiveQuadraticCurveToCommand(right, top, right, cy),\r\n new PathPrimitive_1.PathPrimitiveQuadraticCurveToCommand(right, bottom, x2, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x1, bottom),\r\n new PathPrimitive_1.PathPrimitiveQuadraticCurveToCommand(left, bottom, left, cy),\r\n new PathPrimitive_1.PathPrimitiveQuadraticCurveToCommand(left, top, x1, top),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n TerminatorShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var textSize = Utils_1.GeometryUtils.getMaxRectangleEnscribedInEllipse(shape.size);\r\n return rectangle_1.Rectangle.fromGeometry(shape.position.clone().offset((shape.size.width - textSize.width) / 2, (shape.size.height - textSize.height) / 2), textSize);\r\n };\r\n TerminatorShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n return Utils_1.GeometryUtils.getEllipseByEnscribedRectangle(textSize);\r\n };\r\n TerminatorShapeDescription.curveWidthRatio = 0.3;\r\n return TerminatorShapeDescription;\r\n}(RectangleShapeDescription_1.RectangleShapeDescription));\r\nexports.TerminatorShapeDescription = TerminatorShapeDescription;\r\n\n\n/***/ }),\n/* 208 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PredefinedProcessShapeDescription = exports.PredefinedProcessEdgeParameterName = void 0;\r\nvar RectangleShapeDescription_1 = __webpack_require__(19);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar ShapeParameters_1 = __webpack_require__(36);\r\nvar ShapeParameterPoint_1 = __webpack_require__(29);\r\nvar point_1 = __webpack_require__(1);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nexports.PredefinedProcessEdgeParameterName = \"e\";\r\nvar PredefinedProcessShapeDescription = /** @class */ (function (_super) {\r\n __extends(PredefinedProcessShapeDescription, _super);\r\n function PredefinedProcessShapeDescription() {\r\n return _super.call(this, undefined, true) || this;\r\n }\r\n Object.defineProperty(PredefinedProcessShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.PredefinedProcess; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PredefinedProcessShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n PredefinedProcessShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom;\r\n var x1 = left + shape.parameters.get(exports.PredefinedProcessEdgeParameterName).value;\r\n var x2 = right - shape.parameters.get(exports.PredefinedProcessEdgeParameterName).value;\r\n var primitives = _super.prototype.createShapePrimitives.call(this, shape);\r\n return primitives.concat([\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(x1, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x1, bottom),\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(x2, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x2, bottom)\r\n ], shape.style)\r\n ]);\r\n };\r\n PredefinedProcessShapeDescription.prototype.createParameters = function (parameters) {\r\n parameters.add(new ShapeParameters_1.ShapeParameter(exports.PredefinedProcessEdgeParameterName, this.defaultSize.width * 0.1));\r\n };\r\n PredefinedProcessShapeDescription.prototype.normalizeParameters = function (shape, parameters) {\r\n this.changeParameterValue(parameters, exports.PredefinedProcessEdgeParameterName, function (p) { return Math.max(PredefinedProcessShapeDescription.minEdge, Math.min(shape.size.width * 0.3, p.value)); });\r\n };\r\n PredefinedProcessShapeDescription.prototype.modifyParameters = function (shape, parameters, deltaX, deltaY) {\r\n this.changeParameterValue(parameters, exports.PredefinedProcessEdgeParameterName, function (p) { return p.value + deltaX; });\r\n this.normalizeParameters(shape, parameters);\r\n };\r\n PredefinedProcessShapeDescription.prototype.getParameterPoints = function (shape) {\r\n return [\r\n new ShapeParameterPoint_1.ShapeParameterPoint(\"c\", new point_1.Point(shape.normalizeX(shape.position.x + shape.parameters.get(exports.PredefinedProcessEdgeParameterName).value), shape.position.y))\r\n ];\r\n };\r\n PredefinedProcessShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var rect = shape.rectangle;\r\n var dx = shape.parameters.get(exports.PredefinedProcessEdgeParameterName).value;\r\n return rect.clone().resize(-2 * dx, 0).clone().moveRectangle(dx, 0);\r\n };\r\n PredefinedProcessShapeDescription.minEdge = 72;\r\n return PredefinedProcessShapeDescription;\r\n}(RectangleShapeDescription_1.RectangleShapeDescription));\r\nexports.PredefinedProcessShapeDescription = PredefinedProcessShapeDescription;\r\n\n\n/***/ }),\n/* 209 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ArrowUpDownShapeDescription = void 0;\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ShapeParameterPoint_1 = __webpack_require__(29);\r\nvar point_1 = __webpack_require__(1);\r\nvar ArrowVerticalShapeDescription_1 = __webpack_require__(92);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar ArrowUpDownShapeDescription = /** @class */ (function (_super) {\r\n __extends(ArrowUpDownShapeDescription, _super);\r\n function ArrowUpDownShapeDescription() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(ArrowUpDownShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.ArrowUpDown; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ArrowUpDownShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width;\r\n var cx = rect.center.x;\r\n var p1dx = (width - shape.parameters.get(ArrowVerticalShapeDescription_1.ArrowVerticalLineWidthParameterName).value) / 2;\r\n var p0dy = shape.parameters.get(ArrowVerticalShapeDescription_1.ArrowVerticalTriangleHeightParameterName).value;\r\n var p1x1 = shape.normalizeX(left + p1dx);\r\n var p0y1 = shape.normalizeY(top + p0dy);\r\n var p1x2 = shape.normalizeX(right - p1dx);\r\n var p0y2 = shape.normalizeY(bottom - p0dy);\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(cx, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, p0y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p1x2, p0y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p1x2, p0y2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, p0y2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(cx, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, p0y2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p1x1, p0y2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p1x1, p0y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, p0y1),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n ArrowUpDownShapeDescription.prototype.normalizeParameters = function (shape, parameters) {\r\n this.changeParameterValue(parameters, ArrowVerticalShapeDescription_1.ArrowVerticalTriangleHeightParameterName, function (p) { return Math.max(0, Math.min(shape.size.height / 2 - 2 * shape.strokeWidth, p.value)); });\r\n this.changeParameterValue(parameters, ArrowVerticalShapeDescription_1.ArrowVerticalLineWidthParameterName, function (p) { return Math.max(0, Math.min(shape.size.width, p.value)); });\r\n };\r\n ArrowUpDownShapeDescription.prototype.modifyParameters = function (shape, parameters, deltaX, deltaY) {\r\n this.changeParameterValue(parameters, ArrowVerticalShapeDescription_1.ArrowVerticalTriangleHeightParameterName, function (p) { return p.value + deltaY; });\r\n this.changeParameterValue(parameters, ArrowVerticalShapeDescription_1.ArrowVerticalLineWidthParameterName, function (p) { return p.value - deltaX * 2; });\r\n this.normalizeParameters(shape, parameters);\r\n };\r\n ArrowUpDownShapeDescription.prototype.getParameterPoints = function (shape) {\r\n return [\r\n new ShapeParameterPoint_1.ShapeParameterPoint(\"c\", new point_1.Point(shape.normalizeX(shape.position.x + (shape.size.width - shape.parameters.get(ArrowVerticalShapeDescription_1.ArrowVerticalLineWidthParameterName).value) / 2), shape.normalizeY(shape.position.y + shape.parameters.get(ArrowVerticalShapeDescription_1.ArrowVerticalTriangleHeightParameterName).value)))\r\n ];\r\n };\r\n return ArrowUpDownShapeDescription;\r\n}(ArrowVerticalShapeDescription_1.ArrowVerticalShapeDescription));\r\nexports.ArrowUpDownShapeDescription = ArrowUpDownShapeDescription;\r\n\n\n/***/ }),\n/* 210 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ArrowRightShapeDescription = void 0;\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ArrowHorizontalShapeDescription_1 = __webpack_require__(93);\r\nvar ShapeParameterPoint_1 = __webpack_require__(29);\r\nvar point_1 = __webpack_require__(1);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ArrowRightShapeDescription = /** @class */ (function (_super) {\r\n __extends(ArrowRightShapeDescription, _super);\r\n function ArrowRightShapeDescription() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(ArrowRightShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.ArrowRight; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ArrowRightShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width, height = rect.height;\r\n var cy = rect.center.y;\r\n var p0dx = width - shape.parameters.get(ArrowHorizontalShapeDescription_1.ArrowVerticalTriangleWidthParameterName).value;\r\n var p1dy = (height - shape.parameters.get(ArrowHorizontalShapeDescription_1.ArrowVerticalLineHeightParameterName).value) / 2;\r\n var p0x1 = shape.normalizeX(left + p0dx);\r\n var p1y1 = shape.normalizeY(top + p1dy);\r\n var p1y2 = shape.normalizeY(bottom - p1dy);\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(left, p1y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, p1y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, cy),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, p1y2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, p1y2),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n ArrowRightShapeDescription.prototype.modifyParameters = function (shape, parameters, deltaX, deltaY) {\r\n this.changeParameterValue(parameters, ArrowHorizontalShapeDescription_1.ArrowVerticalTriangleWidthParameterName, function (p) { return p.value - deltaX; });\r\n this.changeParameterValue(parameters, ArrowHorizontalShapeDescription_1.ArrowVerticalLineHeightParameterName, function (p) { return p.value - deltaY * 2; });\r\n this.normalizeParameters(shape, parameters);\r\n };\r\n ArrowRightShapeDescription.prototype.getParameterPoints = function (shape) {\r\n return [\r\n new ShapeParameterPoint_1.ShapeParameterPoint(\"c\", new point_1.Point(shape.normalizeX(shape.position.x + shape.size.width - shape.parameters.get(ArrowHorizontalShapeDescription_1.ArrowVerticalTriangleWidthParameterName).value), shape.normalizeY(shape.position.y + (shape.size.height - shape.parameters.get(ArrowHorizontalShapeDescription_1.ArrowVerticalLineHeightParameterName).value) / 2)))\r\n ];\r\n };\r\n ArrowRightShapeDescription.prototype.processConnectionPoint = function (shape, point) {\r\n var triangleWidth = shape.parameters.get(ArrowHorizontalShapeDescription_1.ArrowVerticalTriangleWidthParameterName).value;\r\n if (point.x > shape.position.x + shape.size.width - triangleWidth) {\r\n var tg = shape.size.height / 2 / triangleWidth;\r\n var delta = (point.x - (shape.position.x + shape.size.width - triangleWidth)) * tg;\r\n var side = shape.getConnectionPointSide(point);\r\n if (side === DiagramItem_1.ConnectionPointSide.North)\r\n point.y += delta;\r\n else if (side === DiagramItem_1.ConnectionPointSide.South)\r\n point.y -= delta;\r\n }\r\n else\r\n _super.prototype.processConnectionPoint.call(this, shape, point);\r\n };\r\n return ArrowRightShapeDescription;\r\n}(ArrowHorizontalShapeDescription_1.ArrowHorizontalShapeDescription));\r\nexports.ArrowRightShapeDescription = ArrowRightShapeDescription;\r\n\n\n/***/ }),\n/* 211 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ArrowUpShapeDescription = void 0;\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ShapeParameterPoint_1 = __webpack_require__(29);\r\nvar point_1 = __webpack_require__(1);\r\nvar ArrowVerticalShapeDescription_1 = __webpack_require__(92);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ArrowUpShapeDescription = /** @class */ (function (_super) {\r\n __extends(ArrowUpShapeDescription, _super);\r\n function ArrowUpShapeDescription() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(ArrowUpShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.ArrowUp; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ArrowUpShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width;\r\n var cx = rect.center.x;\r\n var p1dx = (width - shape.parameters.get(ArrowVerticalShapeDescription_1.ArrowVerticalLineWidthParameterName).value) / 2;\r\n var p0dy = shape.parameters.get(ArrowVerticalShapeDescription_1.ArrowVerticalTriangleHeightParameterName).value;\r\n var p1x1 = shape.normalizeX(left + p1dx);\r\n var p0y1 = shape.normalizeY(top + p0dy);\r\n var p1x2 = shape.normalizeX(right - p1dx);\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(cx, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, p0y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p1x2, p0y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p1x2, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p1x1, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p1x1, p0y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, p0y1),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n ArrowUpShapeDescription.prototype.modifyParameters = function (shape, parameters, deltaX, deltaY) {\r\n this.changeParameterValue(parameters, ArrowVerticalShapeDescription_1.ArrowVerticalTriangleHeightParameterName, function (p) { return p.value + deltaY; });\r\n this.changeParameterValue(parameters, ArrowVerticalShapeDescription_1.ArrowVerticalLineWidthParameterName, function (p) { return p.value - deltaX * 2; });\r\n this.normalizeParameters(shape, parameters);\r\n };\r\n ArrowUpShapeDescription.prototype.getParameterPoints = function (shape) {\r\n return [\r\n new ShapeParameterPoint_1.ShapeParameterPoint(\"c\", new point_1.Point(shape.normalizeX(shape.position.x + (shape.size.width - shape.parameters.get(ArrowVerticalShapeDescription_1.ArrowVerticalLineWidthParameterName).value) / 2), shape.normalizeY(shape.position.y + shape.parameters.get(ArrowVerticalShapeDescription_1.ArrowVerticalTriangleHeightParameterName).value)))\r\n ];\r\n };\r\n ArrowUpShapeDescription.prototype.processConnectionPoint = function (shape, point) {\r\n var triangleHeight = shape.parameters.get(ArrowVerticalShapeDescription_1.ArrowVerticalTriangleHeightParameterName).value;\r\n if (point.y < shape.position.y + triangleHeight) {\r\n var tg = shape.size.width / 2 / triangleHeight;\r\n var delta = (shape.position.y + triangleHeight - point.y) * tg;\r\n var side = shape.getConnectionPointSide(point);\r\n if (side === DiagramItem_1.ConnectionPointSide.East)\r\n point.x -= delta;\r\n else if (side === DiagramItem_1.ConnectionPointSide.West)\r\n point.x += delta;\r\n }\r\n else\r\n _super.prototype.processConnectionPoint.call(this, shape, point);\r\n };\r\n return ArrowUpShapeDescription;\r\n}(ArrowVerticalShapeDescription_1.ArrowVerticalShapeDescription));\r\nexports.ArrowUpShapeDescription = ArrowUpShapeDescription;\r\n\n\n/***/ }),\n/* 212 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CrossShapeDescription = exports.CrossVerticalWidthParameterName = exports.CrossHorizontalWidthParameterName = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar point_1 = __webpack_require__(1);\r\nvar ShapeParameters_1 = __webpack_require__(36);\r\nvar ShapeParameterPoint_1 = __webpack_require__(29);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nexports.CrossHorizontalWidthParameterName = \"chw\";\r\nexports.CrossVerticalWidthParameterName = \"cvw\";\r\nvar CrossShapeDescription = /** @class */ (function (_super) {\r\n __extends(CrossShapeDescription, _super);\r\n function CrossShapeDescription() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(CrossShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Cross; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(CrossShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CrossShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width, height = rect.height;\r\n var p0dx = (width - shape.parameters.get(exports.CrossHorizontalWidthParameterName).value) / 2;\r\n var p1dy = (height - shape.parameters.get(exports.CrossVerticalWidthParameterName).value) / 2;\r\n var p0x1 = shape.normalizeX(left + p0dx);\r\n var p1y1 = shape.normalizeY(top + p1dy);\r\n var p0x2 = shape.normalizeX(right - p0dx);\r\n var p1y2 = shape.normalizeY(bottom - p1dy);\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(left, p1y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, p1y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x2, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x2, p1y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, p1y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, p1y2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x2, p1y2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x2, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, p1y2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, p1y2),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n CrossShapeDescription.prototype.createParameters = function (parameters) {\r\n parameters.addRange([\r\n new ShapeParameters_1.ShapeParameter(exports.CrossHorizontalWidthParameterName, this.defaultSize.width * 0.2),\r\n new ShapeParameters_1.ShapeParameter(exports.CrossVerticalWidthParameterName, this.defaultSize.height * 0.2)\r\n ]);\r\n };\r\n CrossShapeDescription.prototype.normalizeParameters = function (shape, parameters) {\r\n this.changeParameterValue(parameters, exports.CrossHorizontalWidthParameterName, function (p) { return Math.max(0, Math.min(shape.size.width, p.value)); });\r\n this.changeParameterValue(parameters, exports.CrossVerticalWidthParameterName, function (p) { return Math.max(0, Math.min(shape.size.height, p.value)); });\r\n };\r\n CrossShapeDescription.prototype.modifyParameters = function (shape, parameters, deltaX, deltaY) {\r\n this.changeParameterValue(parameters, exports.CrossHorizontalWidthParameterName, function (p) { return p.value - deltaX * 2; });\r\n this.changeParameterValue(parameters, exports.CrossVerticalWidthParameterName, function (p) { return p.value - deltaY * 2; });\r\n this.normalizeParameters(shape, parameters);\r\n };\r\n CrossShapeDescription.prototype.getParameterPoints = function (shape) {\r\n return [\r\n new ShapeParameterPoint_1.ShapeParameterPoint(\"c\", new point_1.Point(shape.normalizeX(shape.position.x + (shape.size.width - shape.parameters.get(exports.CrossHorizontalWidthParameterName).value) / 2), shape.normalizeY(shape.position.y + (shape.size.height - shape.parameters.get(exports.CrossVerticalWidthParameterName).value) / 2)))\r\n ];\r\n };\r\n CrossShapeDescription.prototype.getTextRectangle = function (shape) {\r\n return shape.rectangle.clone().inflate(-ShapeDescription_1.ShapeTextPadding, -ShapeDescription_1.ShapeTextPadding);\r\n };\r\n CrossShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n return textSize.clone().offset(ShapeDescription_1.ShapeTextPadding * 2, ShapeDescription_1.ShapeTextPadding * 2);\r\n };\r\n return CrossShapeDescription;\r\n}(ShapeDescription_1.ShapeDescription));\r\nexports.CrossShapeDescription = CrossShapeDescription;\r\n\n\n/***/ }),\n/* 213 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HeartShapeDescription = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar ConnectionPoint_1 = __webpack_require__(44);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar HeartShapeDescription = /** @class */ (function (_super) {\r\n __extends(HeartShapeDescription, _super);\r\n function HeartShapeDescription() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(HeartShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Heart; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(HeartShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n HeartShapeDescription.prototype.createConnectionPoints = function () {\r\n return [\r\n new ConnectionPoint_1.ConnectionPoint(0.5, 0.15, DiagramItem_1.ConnectionPointSide.North),\r\n new ConnectionPoint_1.ConnectionPoint(1, 0.25, DiagramItem_1.ConnectionPointSide.East),\r\n new ConnectionPoint_1.ConnectionPoint(0.5, 1, DiagramItem_1.ConnectionPointSide.South),\r\n new ConnectionPoint_1.ConnectionPoint(0, 0.25, DiagramItem_1.ConnectionPointSide.West)\r\n ];\r\n };\r\n HeartShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width, height = rect.height;\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(right - width * 0.25, top),\r\n new PathPrimitive_1.PathPrimitiveCubicCurveToCommand(right - width * 0.15, top, right, top + height * 0.1, right, top + height * 0.25),\r\n new PathPrimitive_1.PathPrimitiveCubicCurveToCommand(right, top + height * 0.3, right - width * 0.02, top + height * 0.35, right - width * 0.05, top + height * 0.4),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(rect.center.x, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left + width * 0.05, top + height * 0.4),\r\n new PathPrimitive_1.PathPrimitiveCubicCurveToCommand(left + width * 0.02, top + height * 0.35, left, top + height * 0.3, left, top + height * 0.25),\r\n new PathPrimitive_1.PathPrimitiveCubicCurveToCommand(left, top + height * 0.1, left + width * 0.15, top, left + width * 0.25, top),\r\n new PathPrimitive_1.PathPrimitiveCubicCurveToCommand(left + width * 0.3, top, left + width * 0.45, top + height * 0.03, left + width * 0.5, top + height * 0.15),\r\n new PathPrimitive_1.PathPrimitiveCubicCurveToCommand(right - width * 0.45, top + height * 0.03, right - width * 0.3, top, right - width * 0.25, top),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n HeartShapeDescription.prototype.getTextRectangle = function (shape) {\r\n return shape.rectangle.clone().inflate(-ShapeDescription_1.ShapeTextPadding, -ShapeDescription_1.ShapeTextPadding);\r\n };\r\n HeartShapeDescription.prototype.getSizeByText = function (_textSize, shape) {\r\n return shape.size.clone().offset(ShapeDescription_1.ShapeTextPadding * 2, ShapeDescription_1.ShapeTextPadding * 2);\r\n };\r\n return HeartShapeDescription;\r\n}(ShapeDescription_1.ShapeDescription));\r\nexports.HeartShapeDescription = HeartShapeDescription;\r\n\n\n/***/ }),\n/* 214 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OctagonShapeDescription = void 0;\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PolygonShapeDescription_1 = __webpack_require__(94);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar OctagonShapeDescription = /** @class */ (function (_super) {\r\n __extends(OctagonShapeDescription, _super);\r\n function OctagonShapeDescription() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(OctagonShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Octagon; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OctagonShapeDescription.prototype, \"angleCount\", {\r\n get: function () { return 8; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n OctagonShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width, height = rect.height;\r\n var angle = Math.PI - this.angle;\r\n var sideX = width / (1 + 2 * Math.cos(angle));\r\n var sideY = height / (1 + 2 * Math.cos(angle));\r\n var x1 = left + (width - sideX) / 2;\r\n var x2 = x1 + sideX;\r\n var y1 = top + (height - sideY) / 2;\r\n var y2 = y1 + sideY;\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(x1, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x2, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, y2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x2, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x1, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, y2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, y1),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n OctagonShapeDescription.prototype.calculateHeight = function (width) {\r\n return width;\r\n };\r\n OctagonShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var textSize = Utils_1.GeometryUtils.getMaxRectangleEnscribedInEllipse(shape.size);\r\n return rectangle_1.Rectangle.fromGeometry(shape.position.clone().offset((shape.size.width - textSize.width) / 2, (shape.size.height - textSize.height) / 2), textSize);\r\n };\r\n OctagonShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n return Utils_1.GeometryUtils.getEllipseByEnscribedRectangle(textSize);\r\n };\r\n return OctagonShapeDescription;\r\n}(PolygonShapeDescription_1.PolygonShapeDescription));\r\nexports.OctagonShapeDescription = OctagonShapeDescription;\r\n\n\n/***/ }),\n/* 215 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StarShapeDescription = exports.StarConvexParameterName = void 0;\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PentagonShapeDescription_1 = __webpack_require__(123);\r\nvar ShapeParameters_1 = __webpack_require__(36);\r\nvar ShapeParameterPoint_1 = __webpack_require__(29);\r\nvar point_1 = __webpack_require__(1);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nexports.StarConvexParameterName = \"sc\";\r\nvar StarShapeDescription = /** @class */ (function (_super) {\r\n __extends(StarShapeDescription, _super);\r\n function StarShapeDescription() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(StarShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Star; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n StarShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, width = rect.width, height = rect.height;\r\n var bottom = this.getActualBottom(top, rect.bottom, width, height);\r\n var cx = rect.center.x;\r\n var cy = top + (bottom - top) / 2;\r\n var ratio = height / width;\r\n var angle = Math.PI - this.angle;\r\n var py = width / 2 * Math.tan(angle / 2) * ratio;\r\n var y = top + py;\r\n var px = (height - py) / Math.tan(angle) / ratio;\r\n var x1 = left + px;\r\n var x2 = right - px;\r\n var pDistance = shape.parameters.get(exports.StarConvexParameterName).value;\r\n var distance = this.getInnerPointDistance(cx, cx, right, cy, top, y);\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(cx, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(this.getInnerPointPos(cx, cx, right, pDistance, distance), this.getInnerPointPos(cy, top, y, pDistance, distance)),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, y),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(this.getInnerPointPos(cx, right, x2, pDistance, distance), this.getInnerPointPos(cy, y, bottom, pDistance, distance)),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x2, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(this.getInnerPointPos(cx, x2, x1, pDistance, distance), this.getInnerPointPos(cy, bottom, bottom, pDistance, distance)),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x1, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(this.getInnerPointPos(cx, x1, left, pDistance, distance), this.getInnerPointPos(cy, bottom, y, pDistance, distance)),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, y),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(this.getInnerPointPos(cx, left, cx, pDistance, distance), this.getInnerPointPos(cy, y, top, pDistance, distance)),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n StarShapeDescription.prototype.createParameters = function (parameters) {\r\n parameters.addRange([\r\n new ShapeParameters_1.ShapeParameter(exports.StarConvexParameterName, 300)\r\n ]);\r\n };\r\n StarShapeDescription.prototype.normalizeParameters = function (shape, parameters) {\r\n var rect = shape.rectangle;\r\n var top = rect.y, right = rect.right, width = rect.width, height = rect.height;\r\n var bottom = this.getActualBottom(top, rect.bottom, width, height);\r\n var cx = rect.center.x;\r\n var cy = top + (bottom - top) / 2;\r\n var ratio = height / width;\r\n var angle = Math.PI - this.angle;\r\n var py = width / 2 * Math.tan(angle / 2) * ratio;\r\n var y = top + py;\r\n var distance = this.getInnerPointDistance(cx, cx, right, cy, top, y);\r\n this.changeParameterValue(parameters, exports.StarConvexParameterName, function (p) { return Math.max(0, Math.min(distance, p.value)); });\r\n };\r\n StarShapeDescription.prototype.modifyParameters = function (shape, parameters, deltaX, deltaY) {\r\n var distance = Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\r\n if (deltaX < 0 || deltaY > 0)\r\n distance = -distance;\r\n this.changeParameterValue(parameters, exports.StarConvexParameterName, function (p) { return p.value + distance; });\r\n this.normalizeParameters(shape, parameters);\r\n };\r\n StarShapeDescription.prototype.getParameterPoints = function (shape) {\r\n var rect = shape.rectangle;\r\n var top = rect.y, right = rect.right, width = rect.width, height = rect.height;\r\n var bottom = this.getActualBottom(top, rect.bottom, width, height);\r\n var cx = rect.center.x;\r\n var cy = top + (bottom - top) / 2;\r\n var ratio = height / width;\r\n var angle = Math.PI - this.angle;\r\n var py = width / 2 * Math.tan(angle / 2) * ratio;\r\n var y = top + py;\r\n var pDistance = shape.parameters.get(exports.StarConvexParameterName).value;\r\n var distance = this.getInnerPointDistance(cx, cx, right, cy, top, y);\r\n var innerPointX = this.getInnerPointPos(cx, cx, right, pDistance, distance);\r\n var innerPointY = this.getInnerPointPos(cy, top, y, pDistance, distance);\r\n return [\r\n new ShapeParameterPoint_1.ShapeParameterPoint(\"c\", new point_1.Point(innerPointX, innerPointY))\r\n ];\r\n };\r\n StarShapeDescription.prototype.processConnectionPoint = function (shape, point) {\r\n _super.prototype.processConnectionPoint.call(this, shape, point);\r\n var side = shape.getConnectionPointSide(point);\r\n if (side === DiagramItem_1.ConnectionPointSide.South) {\r\n var rect = shape.rectangle;\r\n var top_1 = rect.y, right = rect.right, width = rect.width, height = rect.height;\r\n var bottom = this.getActualBottom(top_1, rect.bottom, width, height);\r\n var cx = rect.center.x;\r\n var cy = top_1 + (bottom - top_1) / 2;\r\n var ratio = height / width;\r\n var angle = Math.PI - this.angle;\r\n var py = width / 2 * Math.tan(angle / 2) * ratio;\r\n var y = top_1 + py;\r\n var pDistance = shape.parameters.get(exports.StarConvexParameterName).value;\r\n var distance = this.getInnerPointDistance(cx, cx, right, cy, top_1, y);\r\n point.y = this.getInnerPointPos(cy, bottom, bottom, pDistance, distance);\r\n }\r\n };\r\n StarShapeDescription.prototype.getInnerPointDistanceByAxis = function (center, edge1, edge2) {\r\n var edgeX = Math.min(edge1, edge2) + Math.abs(edge1 - edge2) / 2;\r\n return edgeX - center;\r\n };\r\n StarShapeDescription.prototype.getInnerPointPos = function (center, edge1, edge2, pDistance, distance) {\r\n var ratio = Math.min(1, pDistance / distance);\r\n return center + this.getInnerPointDistanceByAxis(center, edge1, edge2) * ratio;\r\n };\r\n StarShapeDescription.prototype.getInnerPointDistance = function (centerX, edgeX1, edgeX2, centerY, edgeY1, edgeY2) {\r\n var disX = this.getInnerPointDistanceByAxis(centerX, edgeX1, edgeX2);\r\n var disY = this.getInnerPointDistanceByAxis(centerY, edgeY1, edgeY2);\r\n return Math.sqrt(Math.pow(disX, 2) + Math.pow(disY, 2));\r\n };\r\n StarShapeDescription.prototype.getActualBottom = function (top, bottom, width, height) {\r\n var result = top + _super.prototype.calculateHeight.call(this, width) * height / width;\r\n return result < bottom ? result : bottom;\r\n };\r\n StarShapeDescription.prototype.calculateHeight = function (width) {\r\n return width;\r\n };\r\n return StarShapeDescription;\r\n}(PentagonShapeDescription_1.PentagonShapeDescription));\r\nexports.StarShapeDescription = StarShapeDescription;\r\n\n\n/***/ }),\n/* 216 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ArrowDownShapeDescription = void 0;\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ShapeParameterPoint_1 = __webpack_require__(29);\r\nvar point_1 = __webpack_require__(1);\r\nvar ArrowVerticalShapeDescription_1 = __webpack_require__(92);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ArrowDownShapeDescription = /** @class */ (function (_super) {\r\n __extends(ArrowDownShapeDescription, _super);\r\n function ArrowDownShapeDescription() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(ArrowDownShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.ArrowDown; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ArrowDownShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width, height = rect.height;\r\n var cx = rect.center.x;\r\n var p1dx = (width - shape.parameters.get(ArrowVerticalShapeDescription_1.ArrowVerticalLineWidthParameterName).value) / 2;\r\n var p0dy = height - shape.parameters.get(ArrowVerticalShapeDescription_1.ArrowVerticalTriangleHeightParameterName).value;\r\n var p1x1 = shape.normalizeX(left + p1dx);\r\n var p0y1 = shape.normalizeY(top + p0dy);\r\n var p1x2 = shape.normalizeX(right - p1dx);\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(p1x1, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p1x2, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p1x2, p0y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, p0y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(cx, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, p0y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p1x1, p0y1),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n ArrowDownShapeDescription.prototype.modifyParameters = function (shape, parameters, deltaX, deltaY) {\r\n this.changeParameterValue(parameters, ArrowVerticalShapeDescription_1.ArrowVerticalTriangleHeightParameterName, function (p) { return p.value - deltaY; });\r\n this.changeParameterValue(parameters, ArrowVerticalShapeDescription_1.ArrowVerticalLineWidthParameterName, function (p) { return p.value - deltaX * 2; });\r\n this.normalizeParameters(shape, parameters);\r\n };\r\n ArrowDownShapeDescription.prototype.getParameterPoints = function (shape) {\r\n return [\r\n new ShapeParameterPoint_1.ShapeParameterPoint(\"c\", new point_1.Point(shape.normalizeX(shape.position.x + (shape.size.width - shape.parameters.get(ArrowVerticalShapeDescription_1.ArrowVerticalLineWidthParameterName).value) / 2), shape.normalizeY(shape.position.y + shape.size.height - shape.parameters.get(ArrowVerticalShapeDescription_1.ArrowVerticalTriangleHeightParameterName).value)))\r\n ];\r\n };\r\n ArrowDownShapeDescription.prototype.processConnectionPoint = function (shape, point) {\r\n var triangleHeight = shape.parameters.get(ArrowVerticalShapeDescription_1.ArrowVerticalTriangleHeightParameterName).value;\r\n if (point.y > shape.position.y + shape.size.height - triangleHeight) {\r\n var tg = shape.size.width / 2 / triangleHeight;\r\n var delta = (point.y - (shape.position.y + shape.size.height - triangleHeight)) * tg;\r\n var side = shape.getConnectionPointSide(point);\r\n if (side === DiagramItem_1.ConnectionPointSide.East)\r\n point.x -= delta;\r\n else if (side === DiagramItem_1.ConnectionPointSide.West)\r\n point.x += delta;\r\n }\r\n else\r\n _super.prototype.processConnectionPoint.call(this, shape, point);\r\n };\r\n return ArrowDownShapeDescription;\r\n}(ArrowVerticalShapeDescription_1.ArrowVerticalShapeDescription));\r\nexports.ArrowDownShapeDescription = ArrowDownShapeDescription;\r\n\n\n/***/ }),\n/* 217 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ArrowLeftRightShapeDescription = void 0;\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ArrowHorizontalShapeDescription_1 = __webpack_require__(93);\r\nvar ShapeParameterPoint_1 = __webpack_require__(29);\r\nvar point_1 = __webpack_require__(1);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar ArrowLeftRightShapeDescription = /** @class */ (function (_super) {\r\n __extends(ArrowLeftRightShapeDescription, _super);\r\n function ArrowLeftRightShapeDescription() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(ArrowLeftRightShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.ArrowLeftRight; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ArrowLeftRightShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, height = rect.height;\r\n var cy = rect.center.y;\r\n var p0dx = shape.parameters.get(ArrowHorizontalShapeDescription_1.ArrowVerticalTriangleWidthParameterName).value;\r\n var p1dy = (height - shape.parameters.get(ArrowHorizontalShapeDescription_1.ArrowVerticalLineHeightParameterName).value) / 2;\r\n var p0x1 = shape.normalizeX(left + p0dx);\r\n var p1y1 = shape.normalizeY(top + p1dy);\r\n var p0x2 = shape.normalizeX(right - p0dx);\r\n var p1y2 = shape.normalizeY(bottom - p1dy);\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(left, cy),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, p1y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x2, p1y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x2, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, cy),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x2, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x2, p1y2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, p1y2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, bottom),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n ArrowLeftRightShapeDescription.prototype.normalizeParameters = function (shape, parameters) {\r\n this.changeParameterValue(parameters, ArrowHorizontalShapeDescription_1.ArrowVerticalTriangleWidthParameterName, function (p) { return Math.max(0, Math.min(shape.size.width / 2 - 2 * shape.strokeWidth, p.value)); });\r\n this.changeParameterValue(parameters, ArrowHorizontalShapeDescription_1.ArrowVerticalLineHeightParameterName, function (p) { return Math.max(0, Math.min(shape.size.height, p.value)); });\r\n };\r\n ArrowLeftRightShapeDescription.prototype.modifyParameters = function (shape, parameters, deltaX, deltaY) {\r\n this.changeParameterValue(parameters, ArrowHorizontalShapeDescription_1.ArrowVerticalTriangleWidthParameterName, function (p) { return p.value + deltaX; });\r\n this.changeParameterValue(parameters, ArrowHorizontalShapeDescription_1.ArrowVerticalLineHeightParameterName, function (p) { return p.value - deltaY * 2; });\r\n this.normalizeParameters(shape, parameters);\r\n };\r\n ArrowLeftRightShapeDescription.prototype.getParameterPoints = function (shape) {\r\n return [\r\n new ShapeParameterPoint_1.ShapeParameterPoint(\"c\", new point_1.Point(shape.normalizeX(shape.position.x + shape.parameters.get(ArrowHorizontalShapeDescription_1.ArrowVerticalTriangleWidthParameterName).value), shape.normalizeY(shape.position.y + (shape.size.height - shape.parameters.get(ArrowHorizontalShapeDescription_1.ArrowVerticalLineHeightParameterName).value) / 2)))\r\n ];\r\n };\r\n return ArrowLeftRightShapeDescription;\r\n}(ArrowHorizontalShapeDescription_1.ArrowHorizontalShapeDescription));\r\nexports.ArrowLeftRightShapeDescription = ArrowLeftRightShapeDescription;\r\n\n\n/***/ }),\n/* 218 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ArrowLeftShapeDescription = void 0;\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ArrowHorizontalShapeDescription_1 = __webpack_require__(93);\r\nvar ShapeParameterPoint_1 = __webpack_require__(29);\r\nvar point_1 = __webpack_require__(1);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ArrowLeftShapeDescription = /** @class */ (function (_super) {\r\n __extends(ArrowLeftShapeDescription, _super);\r\n function ArrowLeftShapeDescription() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(ArrowLeftShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.ArrowLeft; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ArrowLeftShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, height = rect.height;\r\n var cy = rect.center.y;\r\n var p0dx = shape.parameters.get(ArrowHorizontalShapeDescription_1.ArrowVerticalTriangleWidthParameterName).value;\r\n var p1dy = (height - shape.parameters.get(ArrowHorizontalShapeDescription_1.ArrowVerticalLineHeightParameterName).value) / 2;\r\n var p0x1 = shape.normalizeX(left + p0dx);\r\n var p1y1 = shape.normalizeY(top + p1dy);\r\n var p1y2 = shape.normalizeY(bottom - p1dy);\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(left, cy),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, p1y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, p1y1),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, p1y2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, p1y2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(p0x1, bottom),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n ArrowLeftShapeDescription.prototype.modifyParameters = function (shape, parameters, deltaX, deltaY) {\r\n this.changeParameterValue(parameters, ArrowHorizontalShapeDescription_1.ArrowVerticalTriangleWidthParameterName, function (p) { return p.value + deltaX; });\r\n this.changeParameterValue(parameters, ArrowHorizontalShapeDescription_1.ArrowVerticalLineHeightParameterName, function (p) { return p.value - deltaY * 2; });\r\n this.normalizeParameters(shape, parameters);\r\n };\r\n ArrowLeftShapeDescription.prototype.getParameterPoints = function (shape) {\r\n return [\r\n new ShapeParameterPoint_1.ShapeParameterPoint(\"c\", new point_1.Point(shape.normalizeX(shape.position.x + shape.parameters.get(ArrowHorizontalShapeDescription_1.ArrowVerticalTriangleWidthParameterName).value), shape.normalizeY(shape.position.y + (shape.size.height - shape.parameters.get(ArrowHorizontalShapeDescription_1.ArrowVerticalLineHeightParameterName).value) / 2)))\r\n ];\r\n };\r\n ArrowLeftShapeDescription.prototype.processConnectionPoint = function (shape, point) {\r\n var triangleWidth = shape.parameters.get(ArrowHorizontalShapeDescription_1.ArrowVerticalTriangleWidthParameterName).value;\r\n if (point.x < shape.position.x + triangleWidth) {\r\n var tg = shape.size.height / 2 / triangleWidth;\r\n var delta = (shape.position.x + triangleWidth - point.x) * tg;\r\n var side = shape.getConnectionPointSide(point);\r\n if (side === DiagramItem_1.ConnectionPointSide.North)\r\n point.y += delta;\r\n else if (side === DiagramItem_1.ConnectionPointSide.South)\r\n point.y -= delta;\r\n }\r\n else\r\n _super.prototype.processConnectionPoint.call(this, shape, point);\r\n };\r\n return ArrowLeftShapeDescription;\r\n}(ArrowHorizontalShapeDescription_1.ArrowHorizontalShapeDescription));\r\nexports.ArrowLeftShapeDescription = ArrowLeftShapeDescription;\r\n\n\n/***/ }),\n/* 219 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MultipleDocumentsShapeDescription = void 0;\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar DocumentShapeDescription_1 = __webpack_require__(126);\r\nvar ClipPathPrimitive_1 = __webpack_require__(53);\r\nvar Utils_1 = __webpack_require__(18);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar size_1 = __webpack_require__(2);\r\nvar MultipleDocumentsShapeDescription = /** @class */ (function (_super) {\r\n __extends(MultipleDocumentsShapeDescription, _super);\r\n function MultipleDocumentsShapeDescription() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(MultipleDocumentsShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.MultipleDocuments; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(MultipleDocumentsShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n MultipleDocumentsShapeDescription.prototype.createShapePrimitives = function (shape, forToolbox) {\r\n var rect = shape.rectangle;\r\n var _a = shape.rectangle, width = _a.width, height = _a.height;\r\n var ratio = forToolbox ? MultipleDocumentsShapeDescription.documentsOffsetRatioForToolbox : MultipleDocumentsShapeDescription.documentsOffsetRatio;\r\n var documentOffsetX = Math.ceil(width * ratio);\r\n var documentOffsetY = Math.ceil(height * ratio);\r\n rect = rect.clone().inflate(-documentOffsetX, -documentOffsetY).clone().moveRectangle(-documentOffsetX, -documentOffsetY);\r\n var rect1 = rect.clone().moveRectangle(documentOffsetX, documentOffsetY);\r\n var rect2 = rect1.clone().moveRectangle(documentOffsetX, documentOffsetY);\r\n var clipPathId = Utils_1.RenderUtils.generateSvgElementId(\"clipRect\");\r\n var primitives = [];\r\n return primitives\r\n .concat(this.createDocumentPrimitives(rect, shape.style, clipPathId + \"1\", rect1))\r\n .concat(this.createDocumentPrimitives(rect1, shape.style, clipPathId + \"2\", rect2))\r\n .concat(this.createDocumentPrimitives(rect2, shape.style));\r\n };\r\n MultipleDocumentsShapeDescription.prototype.createDocumentPrimitives = function (rect, style, clipPathId, clipRect) {\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width, height = rect.height;\r\n var cx = rect.center.x;\r\n var dy = height * DocumentShapeDescription_1.DocumentShapeDescription.curveOffsetRatio;\r\n var primitives = [];\r\n primitives = primitives.concat([\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(left, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, bottom),\r\n new PathPrimitive_1.PathPrimitiveQuadraticCurveToCommand(right - width * 0.25, bottom - 2 * dy, cx, bottom - dy),\r\n new PathPrimitive_1.PathPrimitiveQuadraticCurveToCommand(left + width * 0.25, bottom + dy, left, bottom - dy),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], style, undefined, clipRect && clipPathId)\r\n ]);\r\n if (clipRect && clipPathId)\r\n primitives = primitives.concat([\r\n new ClipPathPrimitive_1.ClipPathPrimitive(clipPathId, [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(left - style.strokeWidth, top - style.strokeWidth),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right + style.strokeWidth, top - style.strokeWidth),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right + style.strokeWidth, clipRect.y),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(clipRect.x, clipRect.y),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(clipRect.x, bottom + style.strokeWidth),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left - style.strokeWidth, bottom + style.strokeWidth),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ])\r\n ])\r\n ]);\r\n return primitives;\r\n };\r\n MultipleDocumentsShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var rect = shape.rectangle;\r\n var documentOffsetX = rect.width * MultipleDocumentsShapeDescription.documentsOffsetRatio;\r\n var documentOffsetY = rect.height * MultipleDocumentsShapeDescription.documentsOffsetRatio;\r\n rect = rect.clone().inflate(-documentOffsetX, -documentOffsetY).clone().moveRectangle(-documentOffsetX, -documentOffsetY);\r\n var innerRect = rect.clone().moveRectangle(2 * documentOffsetX + ShapeDescription_1.ShapeTextPadding, 2 * documentOffsetY + ShapeDescription_1.ShapeTextPadding);\r\n return innerRect.clone().resize(-2 * ShapeDescription_1.ShapeTextPadding, -rect.height * DocumentShapeDescription_1.DocumentShapeDescription.curveOffsetRatio - 2 * ShapeDescription_1.ShapeTextPadding);\r\n };\r\n MultipleDocumentsShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n return new size_1.Size((textSize.width + 2 * ShapeDescription_1.ShapeTextPadding) / (1 - 2 * MultipleDocumentsShapeDescription.documentsOffsetRatio), (textSize.height + 2 * ShapeDescription_1.ShapeTextPadding) / ((1 - DocumentShapeDescription_1.DocumentShapeDescription.curveOffsetRatio) * (1 - MultipleDocumentsShapeDescription.documentsOffsetRatio)))\r\n .nonNegativeSize();\r\n };\r\n MultipleDocumentsShapeDescription.documentsOffsetRatio = 0.1;\r\n MultipleDocumentsShapeDescription.documentsOffsetRatioForToolbox = 0.16;\r\n return MultipleDocumentsShapeDescription;\r\n}(DocumentShapeDescription_1.DocumentShapeDescription));\r\nexports.MultipleDocumentsShapeDescription = MultipleDocumentsShapeDescription;\r\n\n\n/***/ }),\n/* 220 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PreparationShapeDescription = void 0;\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar size_1 = __webpack_require__(2);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar HexagonShapeDescription_1 = __webpack_require__(124);\r\nvar PreparationShapeDescription = /** @class */ (function (_super) {\r\n __extends(PreparationShapeDescription, _super);\r\n function PreparationShapeDescription() {\r\n var _this = _super.call(this, true) || this;\r\n _this.defaultSize = new size_1.Size(ShapeDescription_1.ShapeDefaultDimension, ShapeDescription_1.ShapeDefaultDimension * 0.75);\r\n return _this;\r\n }\r\n Object.defineProperty(PreparationShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Preparation; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return PreparationShapeDescription;\r\n}(HexagonShapeDescription_1.HexagonShapeDescription));\r\nexports.PreparationShapeDescription = PreparationShapeDescription;\r\n\n\n/***/ }),\n/* 221 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HardDiskShapeDescription = void 0;\r\nvar RectangleShapeDescription_1 = __webpack_require__(19);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar EllipsePrimitive_1 = __webpack_require__(52);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar size_1 = __webpack_require__(2);\r\nvar HardDiskShapeDescription = /** @class */ (function (_super) {\r\n __extends(HardDiskShapeDescription, _super);\r\n function HardDiskShapeDescription() {\r\n return _super.call(this, undefined, true) || this;\r\n }\r\n Object.defineProperty(HardDiskShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.HardDisk; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(HardDiskShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n HardDiskShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width;\r\n var cy = rect.center.y;\r\n var dx = width * HardDiskShapeDescription.arcWidthRatio;\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(right - dx / 2, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left + dx / 2, top),\r\n new PathPrimitive_1.PathPrimitiveArcToCommand(dx / 2, (bottom - top) / 2, 0, false, false, left + dx / 2, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right - dx / 2, bottom),\r\n ], shape.style),\r\n new EllipsePrimitive_1.EllipsePrimitive(right - dx / 2, cy, dx / 2, (bottom - top) / 2, shape.style)\r\n ];\r\n };\r\n HardDiskShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var rect = shape.rectangle;\r\n var dx = rect.width * HardDiskShapeDescription.arcWidthRatio * 1.5;\r\n return rect.clone()\r\n .resize(-dx - 2 * ShapeDescription_1.ShapeTextPadding, -2 * ShapeDescription_1.ShapeTextPadding)\r\n .moveRectangle(ShapeDescription_1.ShapeTextPadding, ShapeDescription_1.ShapeTextPadding)\r\n .nonNegativeSize();\r\n };\r\n HardDiskShapeDescription.prototype.getSizeByText = function (textSize, shape) {\r\n return new size_1.Size((textSize.width + ShapeDescription_1.ShapeTextPadding * 2) / (1 - 1.5 * HardDiskShapeDescription.arcWidthRatio), shape.size.height + ShapeDescription_1.ShapeTextPadding);\r\n };\r\n HardDiskShapeDescription.arcWidthRatio = 0.2;\r\n return HardDiskShapeDescription;\r\n}(RectangleShapeDescription_1.RectangleShapeDescription));\r\nexports.HardDiskShapeDescription = HardDiskShapeDescription;\r\n\n\n/***/ }),\n/* 222 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DatabaseShapeDescription = void 0;\r\nvar RectangleShapeDescription_1 = __webpack_require__(19);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar EllipsePrimitive_1 = __webpack_require__(52);\r\nvar DatabaseShapeDescription = /** @class */ (function (_super) {\r\n __extends(DatabaseShapeDescription, _super);\r\n function DatabaseShapeDescription() {\r\n var _this = _super.call(this, undefined, true) || this;\r\n _this.defaultSize.width = _this.defaultSize.height;\r\n return _this;\r\n }\r\n Object.defineProperty(DatabaseShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Database; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DatabaseShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DatabaseShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, height = rect.height;\r\n var cx = rect.center.x;\r\n var dy = height * DatabaseShapeDescription.arcWidthRatio;\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(right, top + dy / 2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, bottom - dy / 2),\r\n new PathPrimitive_1.PathPrimitiveArcToCommand((right - left) / 2, dy / 2, 0, false, true, left, bottom - dy / 2),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, top + dy / 2),\r\n ], shape.style),\r\n new EllipsePrimitive_1.EllipsePrimitive(cx, top + dy / 2, (right - left) / 2, dy / 2, shape.style)\r\n ];\r\n };\r\n DatabaseShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var rect = shape.rectangle;\r\n var dy = rect.height * DatabaseShapeDescription.arcWidthRatio;\r\n return rect.clone().resize(0, -dy).clone().moveRectangle(0, dy);\r\n };\r\n DatabaseShapeDescription.arcWidthRatio = 0.2;\r\n return DatabaseShapeDescription;\r\n}(RectangleShapeDescription_1.RectangleShapeDescription));\r\nexports.DatabaseShapeDescription = DatabaseShapeDescription;\r\n\n\n/***/ }),\n/* 223 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.InternalStorageShapeDescription = exports.InternalStorageVerticalEdgeParameterName = exports.InternalStorageHorizontalEdgeParameterName = void 0;\r\nvar RectangleShapeDescription_1 = __webpack_require__(19);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar ShapeParameters_1 = __webpack_require__(36);\r\nvar ShapeParameterPoint_1 = __webpack_require__(29);\r\nvar point_1 = __webpack_require__(1);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nexports.InternalStorageHorizontalEdgeParameterName = \"he\";\r\nexports.InternalStorageVerticalEdgeParameterName = \"ve\";\r\nvar InternalStorageShapeDescription = /** @class */ (function (_super) {\r\n __extends(InternalStorageShapeDescription, _super);\r\n function InternalStorageShapeDescription() {\r\n return _super.call(this, undefined, true) || this;\r\n }\r\n Object.defineProperty(InternalStorageShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.InternalStorage; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(InternalStorageShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n InternalStorageShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom;\r\n var x = left + shape.parameters.get(exports.InternalStorageHorizontalEdgeParameterName).value;\r\n var y = top + shape.parameters.get(exports.InternalStorageVerticalEdgeParameterName).value;\r\n var primitives = _super.prototype.createShapePrimitives.call(this, shape);\r\n return primitives.concat([\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(x, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x, bottom),\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(left, y),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, y)\r\n ], shape.style)\r\n ]);\r\n };\r\n InternalStorageShapeDescription.prototype.createParameters = function (parameters) {\r\n parameters.addRange([\r\n new ShapeParameters_1.ShapeParameter(exports.InternalStorageHorizontalEdgeParameterName, this.defaultSize.width * 0.1),\r\n new ShapeParameters_1.ShapeParameter(exports.InternalStorageVerticalEdgeParameterName, this.defaultSize.width * 0.1)\r\n ]);\r\n };\r\n InternalStorageShapeDescription.prototype.normalizeParameters = function (shape, parameters) {\r\n this.changeParameterValue(parameters, exports.InternalStorageHorizontalEdgeParameterName, function (p) { return Math.max(InternalStorageShapeDescription.minEdge, Math.min(shape.size.width * 0.3, p.value)); });\r\n this.changeParameterValue(parameters, exports.InternalStorageVerticalEdgeParameterName, function (p) { return Math.max(InternalStorageShapeDescription.minEdge, Math.min(shape.size.height * 0.3, p.value)); });\r\n };\r\n InternalStorageShapeDescription.prototype.modifyParameters = function (shape, parameters, deltaX, deltaY) {\r\n this.changeParameterValue(parameters, exports.InternalStorageHorizontalEdgeParameterName, function (p) { return p.value + deltaX; });\r\n this.changeParameterValue(parameters, exports.InternalStorageVerticalEdgeParameterName, function (p) { return p.value + deltaY; });\r\n this.normalizeParameters(shape, parameters);\r\n };\r\n InternalStorageShapeDescription.prototype.getParameterPoints = function (shape) {\r\n return [\r\n new ShapeParameterPoint_1.ShapeParameterPoint(\"c\", new point_1.Point(shape.normalizeX(shape.position.x + shape.parameters.get(exports.InternalStorageHorizontalEdgeParameterName).value), shape.normalizeY(shape.position.y + shape.parameters.get(exports.InternalStorageVerticalEdgeParameterName).value)))\r\n ];\r\n };\r\n InternalStorageShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var rect = shape.rectangle;\r\n var dx = shape.parameters.get(exports.InternalStorageHorizontalEdgeParameterName).value;\r\n return rect.clone().resize(-dx, 0).clone().moveRectangle(dx, 0);\r\n };\r\n InternalStorageShapeDescription.minEdge = 72;\r\n return InternalStorageShapeDescription;\r\n}(RectangleShapeDescription_1.RectangleShapeDescription));\r\nexports.InternalStorageShapeDescription = InternalStorageShapeDescription;\r\n\n\n/***/ }),\n/* 224 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PaperTapeShapeDescription = void 0;\r\nvar RectangleShapeDescription_1 = __webpack_require__(19);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar size_1 = __webpack_require__(2);\r\nvar PaperTapeShapeDescription = /** @class */ (function (_super) {\r\n __extends(PaperTapeShapeDescription, _super);\r\n function PaperTapeShapeDescription() {\r\n return _super.call(this, undefined, true) || this;\r\n }\r\n Object.defineProperty(PaperTapeShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.PaperTape; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(PaperTapeShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n PaperTapeShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n return this.createDocumentPrimitives(shape.rectangle, shape.style);\r\n };\r\n PaperTapeShapeDescription.prototype.createDocumentPrimitives = function (rect, style) {\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width, height = rect.height;\r\n var cx = rect.center.x;\r\n var dy = height * PaperTapeShapeDescription.curveOffsetRatio;\r\n var primitives = [];\r\n return primitives.concat([\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(left, top),\r\n new PathPrimitive_1.PathPrimitiveQuadraticCurveToCommand(left + width * 0.25, top + 2 * dy, cx, top + dy),\r\n new PathPrimitive_1.PathPrimitiveQuadraticCurveToCommand(right - width * 0.25, top - dy, right, top + dy),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, bottom),\r\n new PathPrimitive_1.PathPrimitiveQuadraticCurveToCommand(right - width * 0.25, bottom - 2 * dy, cx, bottom - dy),\r\n new PathPrimitive_1.PathPrimitiveQuadraticCurveToCommand(left + width * 0.25, bottom + dy, left, bottom - dy),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], style)\r\n ]);\r\n };\r\n PaperTapeShapeDescription.prototype.processConnectionPoint = function (shape, point) {\r\n var side = shape.getConnectionPointSide(point);\r\n if (side === DiagramItem_1.ConnectionPointSide.North)\r\n point.y += shape.size.height * PaperTapeShapeDescription.curveOffsetRatio;\r\n if (side === DiagramItem_1.ConnectionPointSide.South)\r\n point.y -= shape.size.height * PaperTapeShapeDescription.curveOffsetRatio;\r\n };\r\n PaperTapeShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var rect = shape.rectangle;\r\n return rect.clone().inflate(ShapeDescription_1.ShapeTextPadding, -rect.height * PaperTapeShapeDescription.curveOffsetRatio);\r\n };\r\n PaperTapeShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n return new size_1.Size(textSize.width + ShapeDescription_1.ShapeTextPadding * 2, textSize.height / (1 - 2 * PaperTapeShapeDescription.curveOffsetRatio));\r\n };\r\n PaperTapeShapeDescription.curveOffsetRatio = 0.1;\r\n return PaperTapeShapeDescription;\r\n}(RectangleShapeDescription_1.RectangleShapeDescription));\r\nexports.PaperTapeShapeDescription = PaperTapeShapeDescription;\r\n\n\n/***/ }),\n/* 225 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ManualOperationShapeDescription = void 0;\r\nvar RectangleShapeDescription_1 = __webpack_require__(19);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar ManualOperationShapeDescription = /** @class */ (function (_super) {\r\n __extends(ManualOperationShapeDescription, _super);\r\n function ManualOperationShapeDescription() {\r\n return _super.call(this, undefined, true) || this;\r\n }\r\n Object.defineProperty(ManualOperationShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.ManualOperation; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ManualOperationShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ManualOperationShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var _a = shape.rectangle, left = _a.x, top = _a.y, right = _a.right, bottom = _a.bottom, width = _a.width, height = _a.height;\r\n var px = Math.min(Math.max(0, height / Math.tan(ManualOperationShapeDescription.slopeAngle)), width);\r\n var cx = rect.center.x;\r\n var x1 = Math.min(left + px, cx);\r\n var x2 = Math.max(right - px, cx);\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(left, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x2, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(x1, bottom),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n ManualOperationShapeDescription.prototype.processConnectionPoint = function (shape, point) {\r\n var offset = shape.size.height / Math.tan(ManualOperationShapeDescription.slopeAngle);\r\n var side = shape.getConnectionPointSide(point);\r\n if (side === DiagramItem_1.ConnectionPointSide.East)\r\n point.x -= offset / 2;\r\n else if (side === DiagramItem_1.ConnectionPointSide.West)\r\n point.x += offset / 2;\r\n };\r\n ManualOperationShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var px = Math.min(Math.max(0, shape.size.height / Math.tan(ManualOperationShapeDescription.slopeAngle)), shape.size.width);\r\n return shape.rectangle.clone()\r\n .moveRectangle(px, ShapeDescription_1.ShapeTextPadding)\r\n .resize(-px * 2, -ShapeDescription_1.ShapeTextPadding * 2)\r\n .nonNegativeSize();\r\n };\r\n ManualOperationShapeDescription.slopeAngle = 81 * Math.PI / 180;\r\n return ManualOperationShapeDescription;\r\n}(RectangleShapeDescription_1.RectangleShapeDescription));\r\nexports.ManualOperationShapeDescription = ManualOperationShapeDescription;\r\n\n\n/***/ }),\n/* 226 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DelayShapeDescription = void 0;\r\nvar RectangleShapeDescription_1 = __webpack_require__(19);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar size_1 = __webpack_require__(2);\r\nvar DelayShapeDescription = /** @class */ (function (_super) {\r\n __extends(DelayShapeDescription, _super);\r\n function DelayShapeDescription() {\r\n var _this = _super.call(this, undefined, true) || this;\r\n _this.defaultSize.width = _this.defaultSize.height;\r\n return _this;\r\n }\r\n Object.defineProperty(DelayShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Delay; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DelayShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DelayShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom;\r\n var cx = rect.center.x;\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(left, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(cx, top),\r\n new PathPrimitive_1.PathPrimitiveArcToCommand((right - left) / 2, (bottom - top) / 2, 0, false, true, cx, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, bottom),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n DelayShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var maxRectInEllipse = Utils_1.GeometryUtils.getMaxRectangleEnscribedInEllipse(shape.size);\r\n return shape.rectangle.clone().moveRectangle(ShapeDescription_1.ShapeTextPadding, ShapeDescription_1.ShapeTextPadding)\r\n .setSize({\r\n width: maxRectInEllipse.width / 2 + shape.size.width / 2 - ShapeDescription_1.ShapeTextPadding,\r\n height: maxRectInEllipse.height / 2 + shape.size.height / 2 - ShapeDescription_1.ShapeTextPadding\r\n }).nonNegativeSize();\r\n };\r\n DelayShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n var rectByEllipse = Utils_1.GeometryUtils.getEllipseByEnscribedRectangle(textSize);\r\n return new size_1.Size(rectByEllipse.width / 2 + textSize.width / 2 + ShapeDescription_1.ShapeTextPadding, rectByEllipse.height / 2 + textSize.height / 2 + ShapeDescription_1.ShapeTextPadding);\r\n };\r\n DelayShapeDescription.arcWidthRatio = 0.2;\r\n return DelayShapeDescription;\r\n}(RectangleShapeDescription_1.RectangleShapeDescription));\r\nexports.DelayShapeDescription = DelayShapeDescription;\r\n\n\n/***/ }),\n/* 227 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StoredDataShapeDescription = void 0;\r\nvar RectangleShapeDescription_1 = __webpack_require__(19);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar size_1 = __webpack_require__(2);\r\nvar StoredDataShapeDescription = /** @class */ (function (_super) {\r\n __extends(StoredDataShapeDescription, _super);\r\n function StoredDataShapeDescription() {\r\n return _super.call(this, undefined, true) || this;\r\n }\r\n Object.defineProperty(StoredDataShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.StoredData; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(StoredDataShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n StoredDataShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width;\r\n var dx = width * StoredDataShapeDescription.arcWidthRatio;\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(right, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left + dx / 2, top),\r\n new PathPrimitive_1.PathPrimitiveArcToCommand(dx / 2, (bottom - top) / 2, 0, false, false, left + dx / 2, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, bottom),\r\n new PathPrimitive_1.PathPrimitiveArcToCommand(dx / 2, (bottom - top) / 2, 0, false, true, right, top)\r\n ], shape.style)\r\n ];\r\n };\r\n StoredDataShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var rect = shape.rectangle;\r\n var dx = rect.width * StoredDataShapeDescription.arcWidthRatio / 2;\r\n return rect.clone()\r\n .resize(-dx - 2 * ShapeDescription_1.ShapeTextPadding, -2 * ShapeDescription_1.ShapeTextPadding)\r\n .moveRectangle(ShapeDescription_1.ShapeTextPadding, ShapeDescription_1.ShapeTextPadding)\r\n .nonNegativeSize();\r\n };\r\n StoredDataShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n return new size_1.Size((textSize.width + 2 * ShapeDescription_1.ShapeTextPadding) / (1 - StoredDataShapeDescription.arcWidthRatio / 2), textSize.height + 2 * ShapeDescription_1.ShapeTextPadding);\r\n };\r\n StoredDataShapeDescription.arcWidthRatio = 0.2;\r\n return StoredDataShapeDescription;\r\n}(RectangleShapeDescription_1.RectangleShapeDescription));\r\nexports.StoredDataShapeDescription = StoredDataShapeDescription;\r\n\n\n/***/ }),\n/* 228 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MergeShapeDescription = void 0;\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar TriangleShapeDescription_1 = __webpack_require__(125);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar size_1 = __webpack_require__(2);\r\nvar MergeShapeDescription = /** @class */ (function (_super) {\r\n __extends(MergeShapeDescription, _super);\r\n function MergeShapeDescription() {\r\n return _super.call(this, true) || this;\r\n }\r\n Object.defineProperty(MergeShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Merge; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n MergeShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom;\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(left, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(rect.center.x, bottom),\r\n new PathPrimitive_1.PathPrimitiveClosePathCommand()\r\n ], shape.style)\r\n ];\r\n };\r\n MergeShapeDescription.prototype.calculateHeight = function (width) {\r\n return width * 0.75;\r\n };\r\n MergeShapeDescription.prototype.getTextRectangle = function (shape) {\r\n return rectangle_1.Rectangle.fromGeometry(shape.position.clone().offset(shape.size.width / 4, ShapeDescription_1.ShapeTextPadding), new size_1.Size(shape.size.width / 2, shape.size.height / 2 - ShapeDescription_1.ShapeTextPadding));\r\n };\r\n MergeShapeDescription.prototype.getSizeByText = function (textSize, _shape) {\r\n return new size_1.Size(textSize.width * 2, (textSize.height + ShapeDescription_1.ShapeTextPadding) * 2);\r\n };\r\n return MergeShapeDescription;\r\n}(TriangleShapeDescription_1.TriangleShapeDescription));\r\nexports.MergeShapeDescription = MergeShapeDescription;\r\n\n\n/***/ }),\n/* 229 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DisplayShapeDescription = void 0;\r\nvar RectangleShapeDescription_1 = __webpack_require__(19);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar DisplayShapeDescription = /** @class */ (function (_super) {\r\n __extends(DisplayShapeDescription, _super);\r\n function DisplayShapeDescription() {\r\n return _super.call(this, undefined, true) || this;\r\n }\r\n Object.defineProperty(DisplayShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Display; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DisplayShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DisplayShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom, width = rect.width;\r\n var cy = rect.center.y;\r\n var dx = width * DisplayShapeDescription.arcWidthRatio;\r\n return [\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(right - dx / 2, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left + dx / 2, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left, cy),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(left + dx / 2, bottom),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right - dx / 2, bottom),\r\n new PathPrimitive_1.PathPrimitiveArcToCommand(dx / 2, (bottom - top) / 2, 0, false, false, right - dx / 2, top)\r\n ], shape.style),\r\n ];\r\n };\r\n DisplayShapeDescription.prototype.getTextRectangle = function (shape) {\r\n var dx = shape.size.width * DisplayShapeDescription.arcWidthRatio;\r\n return shape.rectangle\r\n .clone()\r\n .moveRectangle(dx / 2, ShapeDescription_1.ShapeTextPadding)\r\n .resize(-dx, -ShapeDescription_1.ShapeTextPadding * 2)\r\n .nonNegativeSize();\r\n };\r\n DisplayShapeDescription.arcWidthRatio = 0.2;\r\n return DisplayShapeDescription;\r\n}(RectangleShapeDescription_1.RectangleShapeDescription));\r\nexports.DisplayShapeDescription = DisplayShapeDescription;\r\n\n\n/***/ }),\n/* 230 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OrShapeDescription = void 0;\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar size_1 = __webpack_require__(2);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar EllipseShapeDescription_1 = __webpack_require__(70);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar OrShapeDescription = /** @class */ (function (_super) {\r\n __extends(OrShapeDescription, _super);\r\n function OrShapeDescription() {\r\n var _this = _super.call(this, true) || this;\r\n _this.defaultSize = new size_1.Size(ShapeDescription_1.ShapeDefaultDimension * 0.5, ShapeDescription_1.ShapeDefaultDimension * 0.5);\r\n return _this;\r\n }\r\n Object.defineProperty(OrShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Or; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OrShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(OrShapeDescription.prototype, \"enableText\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n OrShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, right = rect.right, bottom = rect.bottom;\r\n var _a = rect.center, cx = _a.x, cy = _a.y;\r\n var primitives = [];\r\n return primitives\r\n .concat(_super.prototype.createShapePrimitives.call(this, shape))\r\n .concat([\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(cx, top),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(cx, bottom),\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(left, cy),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(right, cy)\r\n ], shape.style)\r\n ]);\r\n };\r\n return OrShapeDescription;\r\n}(EllipseShapeDescription_1.EllipseShapeDescription));\r\nexports.OrShapeDescription = OrShapeDescription;\r\n\n\n/***/ }),\n/* 231 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SummingJunctionShapeDescription = void 0;\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar size_1 = __webpack_require__(2);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar EllipseShapeDescription_1 = __webpack_require__(70);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar SummingJunctionShapeDescription = /** @class */ (function (_super) {\r\n __extends(SummingJunctionShapeDescription, _super);\r\n function SummingJunctionShapeDescription() {\r\n var _this = _super.call(this, true) || this;\r\n _this.defaultSize = new size_1.Size(ShapeDescription_1.ShapeDefaultDimension * 0.5, ShapeDescription_1.ShapeDefaultDimension * 0.5);\r\n return _this;\r\n }\r\n Object.defineProperty(SummingJunctionShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.SummingJunction; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SummingJunctionShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(SummingJunctionShapeDescription.prototype, \"enableText\", {\r\n get: function () { return false; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SummingJunctionShapeDescription.prototype.createShapePrimitives = function (shape) {\r\n var rect = shape.rectangle;\r\n var width = rect.width, height = rect.height;\r\n var _a = rect.center, cx = _a.x, cy = _a.y;\r\n var rx = width / 2;\r\n var ry = height / 2;\r\n var angle = Math.atan(ry / rx);\r\n var ex = 1 / Math.sqrt(1 / Math.pow(rx, 2) + Math.pow(Math.tan(angle), 2) / Math.pow(ry, 2));\r\n var ey = ex * Math.tan(angle);\r\n var primitives = [];\r\n return primitives\r\n .concat(_super.prototype.createShapePrimitives.call(this, shape))\r\n .concat([\r\n new PathPrimitive_1.PathPrimitive([\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(cx - ex, cy - ey),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(cx + ex, cy + ey),\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(cx - ex, cy + ey),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(cx + ex, cy - ey)\r\n ], shape.style)\r\n ]);\r\n };\r\n return SummingJunctionShapeDescription;\r\n}(EllipseShapeDescription_1.EllipseShapeDescription));\r\nexports.SummingJunctionShapeDescription = SummingJunctionShapeDescription;\r\n\n\n/***/ }),\n/* 232 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SvgElementPrimitive = void 0;\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar Primitive_1 = __webpack_require__(24);\r\nvar SvgElementPrimitive = /** @class */ (function (_super) {\r\n __extends(SvgElementPrimitive, _super);\r\n function SvgElementPrimitive(x, y, width, height, createContent, destroyContent, data, className, onApplyProperties) {\r\n var _this = _super.call(this, null, className, undefined, onApplyProperties) || this;\r\n _this.x = x;\r\n _this.y = y;\r\n _this.width = width;\r\n _this.height = height;\r\n _this.createContent = createContent;\r\n _this.destroyContent = destroyContent;\r\n _this.data = data;\r\n return _this;\r\n }\r\n SvgElementPrimitive.prototype.createMainElement = function () {\r\n return document.createElementNS(RenderHelper_1.svgNS, \"svg\");\r\n };\r\n SvgElementPrimitive.prototype.applyElementProperties = function (element, measurer) {\r\n this.setUnitAttribute(element, \"x\", this.x);\r\n this.setUnitAttribute(element, \"y\", this.y);\r\n this.setUnitAttribute(element, \"width\", this.width);\r\n this.setUnitAttribute(element, \"height\", this.height);\r\n this.setPositionCorrectionAttribute(element);\r\n _super.prototype.applyElementProperties.call(this, element, measurer);\r\n };\r\n SvgElementPrimitive.prototype.createCustomContent = function (parent) {\r\n if (this.createContent)\r\n this.createContent(parent, this.data);\r\n };\r\n SvgElementPrimitive.prototype.destroyCustomContent = function (parent) {\r\n if (this.destroyContent)\r\n this.destroyContent(parent);\r\n };\r\n return SvgElementPrimitive;\r\n}(Primitive_1.SvgPrimitive));\r\nexports.SvgElementPrimitive = SvgElementPrimitive;\r\n\n\n/***/ }),\n/* 233 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.VerticalContainerDescription = void 0;\r\nvar point_1 = __webpack_require__(1);\r\nvar size_1 = __webpack_require__(2);\r\nvar RectaglePrimitive_1 = __webpack_require__(21);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar ContainerDescription_1 = __webpack_require__(132);\r\nvar VerticalContainerDescription = /** @class */ (function (_super) {\r\n __extends(VerticalContainerDescription, _super);\r\n function VerticalContainerDescription() {\r\n return _super.call(this, new size_1.Size(ShapeDescription_1.ShapeDefaultDimension * 2, ShapeDescription_1.ShapeDefaultDimension * 1.5)) || this;\r\n }\r\n Object.defineProperty(VerticalContainerDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.VerticalContainer; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n VerticalContainerDescription.prototype.getExpandedSize = function (shape) {\r\n return new size_1.Size(shape.size.width, shape.expandedSize.height);\r\n };\r\n VerticalContainerDescription.prototype.getCollapsedSize = function (shape) {\r\n return new size_1.Size(shape.size.width, ContainerDescription_1.CONTAINER_HEADER_SIZE + 2 * shape.strokeWidth);\r\n };\r\n VerticalContainerDescription.prototype.allowResizeVertically = function (shape) {\r\n return shape.expanded;\r\n };\r\n VerticalContainerDescription.prototype.createHeaderPrimitives = function (shape, forToolbox) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, width = rect.width;\r\n var headerSize = this.getHeaderSize(shape, forToolbox);\r\n var primitives = [];\r\n primitives = primitives.concat([\r\n new RectaglePrimitive_1.RectanglePrimitive(left, top, width, headerSize, shape.style)\r\n ]);\r\n if (!forToolbox)\r\n primitives = primitives.concat(this.createExpandButtonPrimitives(shape, new rectangle_1.Rectangle(left, top, headerSize, headerSize)));\r\n return primitives;\r\n };\r\n VerticalContainerDescription.prototype.getClientRectangle = function (shape) {\r\n var rect = shape.rectangle;\r\n var headerSize = this.getHeaderSize(shape);\r\n return rectangle_1.Rectangle.fromGeometry(new point_1.Point(rect.x, rect.y + headerSize), new size_1.Size(rect.width, rect.height - headerSize));\r\n };\r\n VerticalContainerDescription.prototype.getTextRectangle = function (shape) {\r\n var rect = shape.rectangle;\r\n var headerSize = this.getHeaderSize(shape);\r\n return rectangle_1.Rectangle.fromGeometry(new point_1.Point(rect.x + headerSize, rect.y), new size_1.Size(rect.width - headerSize, headerSize));\r\n };\r\n VerticalContainerDescription.prototype.getSizeByText = function (textSize, shape) {\r\n var headerSize = this.getHeaderSize(shape);\r\n return new size_1.Size(Math.max(shape.size.width, textSize.width + headerSize), shape.size.height);\r\n };\r\n VerticalContainerDescription.prototype.getHeaderSize = function (shape, forToolbox) {\r\n var rect = shape.rectangle;\r\n return forToolbox ? rect.height * ContainerDescription_1.CONTAINER_HEADER_TOOLBOX_SIZE_RATIO : (ContainerDescription_1.CONTAINER_HEADER_SIZE + 2 * shape.strokeWidth);\r\n };\r\n return VerticalContainerDescription;\r\n}(ContainerDescription_1.ContainerDescription));\r\nexports.VerticalContainerDescription = VerticalContainerDescription;\r\n\n\n/***/ }),\n/* 234 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.HorizontalContainerDescription = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar size_1 = __webpack_require__(2);\r\nvar point_1 = __webpack_require__(1);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar ContainerDescription_1 = __webpack_require__(132);\r\nvar RectaglePrimitive_1 = __webpack_require__(21);\r\nvar TextPrimitive_1 = __webpack_require__(60);\r\nvar HorizontalContainerDescription = /** @class */ (function (_super) {\r\n __extends(HorizontalContainerDescription, _super);\r\n function HorizontalContainerDescription() {\r\n return _super.call(this, new size_1.Size(ShapeDescription_1.ShapeDefaultDimension * 2, ShapeDescription_1.ShapeDefaultDimension * 1.5)) || this;\r\n }\r\n Object.defineProperty(HorizontalContainerDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.HorizontalContainer; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n HorizontalContainerDescription.prototype.getExpandedSize = function (shape) {\r\n return new size_1.Size(shape.expandedSize.width, shape.size.height);\r\n };\r\n HorizontalContainerDescription.prototype.getCollapsedSize = function (shape) {\r\n return new size_1.Size(ContainerDescription_1.CONTAINER_HEADER_SIZE + 2 * shape.strokeWidth, shape.size.height);\r\n };\r\n HorizontalContainerDescription.prototype.allowResizeHorizontally = function (shape) {\r\n return shape.expanded;\r\n };\r\n HorizontalContainerDescription.prototype.createHeaderPrimitives = function (shape, forToolbox) {\r\n var rect = shape.rectangle;\r\n var left = rect.x, top = rect.y, height = rect.height;\r\n var headerSize = this.getHeaderSize(shape, forToolbox);\r\n var primitives = [];\r\n primitives = primitives.concat([\r\n new RectaglePrimitive_1.RectanglePrimitive(left, top, headerSize, height, shape.style)\r\n ]);\r\n if (!forToolbox)\r\n primitives = primitives.concat(this.createExpandButtonPrimitives(shape, new rectangle_1.Rectangle(left, top, headerSize, headerSize)));\r\n return primitives;\r\n };\r\n HorizontalContainerDescription.prototype.getClientRectangle = function (shape) {\r\n var rect = shape.rectangle;\r\n var headerSize = this.getHeaderSize(shape);\r\n return rectangle_1.Rectangle.fromGeometry(new point_1.Point(rect.x + headerSize, rect.y), new size_1.Size(rect.width - headerSize, rect.height));\r\n };\r\n HorizontalContainerDescription.prototype.getTextRectangle = function (shape) {\r\n var rect = shape.rectangle;\r\n var headerSize = this.getHeaderSize(shape);\r\n return rectangle_1.Rectangle.fromGeometry(new point_1.Point(rect.x, rect.y + headerSize), new size_1.Size(headerSize, rect.height - headerSize))\r\n .nonNegativeSize();\r\n };\r\n HorizontalContainerDescription.prototype.getSizeByText = function (textSize, shape) {\r\n var headerSize = this.getHeaderSize(shape);\r\n return new size_1.Size(shape.size.width, Math.max(shape.size.height, Math.max(textSize.width + headerSize, shape.size.height)));\r\n };\r\n HorizontalContainerDescription.prototype.getTextEditRectangle = function (shape) {\r\n var rect = this.getTextRectangle(shape);\r\n return rectangle_1.Rectangle.fromGeometry(new point_1.Point(rect.x, rect.y + rect.height), new size_1.Size(rect.height, rect.width));\r\n };\r\n HorizontalContainerDescription.prototype.getTextAngle = function () {\r\n return TextPrimitive_1.TextAngle.Angle270deg;\r\n };\r\n HorizontalContainerDescription.prototype.getHeaderSize = function (shape, forToolbox) {\r\n var rect = shape.rectangle;\r\n return forToolbox ? rect.height * ContainerDescription_1.CONTAINER_HEADER_TOOLBOX_SIZE_RATIO : (ContainerDescription_1.CONTAINER_HEADER_SIZE + 2 * shape.strokeWidth);\r\n };\r\n return HorizontalContainerDescription;\r\n}(ContainerDescription_1.ContainerDescription));\r\nexports.HorizontalContainerDescription = HorizontalContainerDescription;\r\n\n\n/***/ }),\n/* 235 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CardWithImageOnTopDescription = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar size_1 = __webpack_require__(2);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar CardBaseDescription_1 = __webpack_require__(133);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar CardWithImageOnTopDescription = /** @class */ (function (_super) {\r\n __extends(CardWithImageOnTopDescription, _super);\r\n function CardWithImageOnTopDescription() {\r\n var _this = _super.call(this, new size_1.Size(32 / 40 * ShapeDescription_1.ShapeDefaultDimension, ShapeDescription_1.ShapeDefaultDimension)) || this;\r\n _this.isTextAfterImage = true;\r\n _this.isHorizontal = false;\r\n return _this;\r\n }\r\n Object.defineProperty(CardWithImageOnTopDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.CardWithImageOnTop; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CardWithImageOnTopDescription.prototype.getImageSize = function (shapeSize, includeMargins, forToolbox) {\r\n var w = shapeSize.width / 2;\r\n if (unit_converter_1.UnitConverter.twipsToPixels(w) % 2 === 1)\r\n w -= unit_converter_1.UnitConverter.pixelsToTwips(1);\r\n var imageSize = Math.max(0, shapeSize.height - (includeMargins ? 0 : 2 * this.getImageMargin(forToolbox)));\r\n imageSize = Math.min(w, imageSize);\r\n return new size_1.Size(imageSize, imageSize);\r\n };\r\n CardWithImageOnTopDescription.prototype.getImageSizeByTextBlockSize = function (textBlockSize) {\r\n return this.getImageSize(new size_1.Size(textBlockSize.width, Number.MAX_VALUE), true);\r\n };\r\n return CardWithImageOnTopDescription;\r\n}(CardBaseDescription_1.CardBaseDescription));\r\nexports.CardWithImageOnTopDescription = CardWithImageOnTopDescription;\r\n\n\n/***/ }),\n/* 236 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RoundedRectanglePrimitive = void 0;\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar RectaglePrimitive_1 = __webpack_require__(21);\r\nvar RoundedRectanglePrimitive = /** @class */ (function (_super) {\r\n __extends(RoundedRectanglePrimitive, _super);\r\n function RoundedRectanglePrimitive(x, y, width, height, rx, ry, style, className, clipPathId, onApplyProperties) {\r\n if (rx === void 0) { rx = 0; }\r\n if (ry === void 0) { ry = 0; }\r\n var _this = _super.call(this, x, y, width, height, style, className, clipPathId, onApplyProperties) || this;\r\n _this.x = x;\r\n _this.y = y;\r\n _this.width = width;\r\n _this.height = height;\r\n _this.rx = rx;\r\n _this.ry = ry;\r\n return _this;\r\n }\r\n RoundedRectanglePrimitive.prototype.createMainElement = function () {\r\n return document.createElementNS(RenderHelper_1.svgNS, \"rect\");\r\n };\r\n RoundedRectanglePrimitive.prototype.applyElementProperties = function (element, measurer) {\r\n this.setUnitAttribute(element, \"rx\", this.rx);\r\n this.setUnitAttribute(element, \"ry\", this.ry);\r\n _super.prototype.applyElementProperties.call(this, element, measurer);\r\n };\r\n return RoundedRectanglePrimitive;\r\n}(RectaglePrimitive_1.RectanglePrimitive));\r\nexports.RoundedRectanglePrimitive = RoundedRectanglePrimitive;\r\n\n\n/***/ }),\n/* 237 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorShapeDescription = void 0;\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar size_1 = __webpack_require__(2);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar EllipseShapeDescription_1 = __webpack_require__(70);\r\nvar ConnectorShapeDescription = /** @class */ (function (_super) {\r\n __extends(ConnectorShapeDescription, _super);\r\n function ConnectorShapeDescription() {\r\n var _this = _super.call(this, false) || this;\r\n _this.defaultSize = new size_1.Size(ShapeDescription_1.ShapeDefaultDimension * 0.5, ShapeDescription_1.ShapeDefaultDimension * 0.5);\r\n return _this;\r\n }\r\n Object.defineProperty(ConnectorShapeDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.Connector; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ConnectorShapeDescription.prototype, \"keepRatioOnAutoSize\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return ConnectorShapeDescription;\r\n}(EllipseShapeDescription_1.EllipseShapeDescription));\r\nexports.ConnectorShapeDescription = ConnectorShapeDescription;\r\n\n\n/***/ }),\n/* 238 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CardWithImageOnRightDescription = exports.CardWithImageOnLeftDescription = void 0;\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar CardBaseDescription_1 = __webpack_require__(133);\r\nvar size_1 = __webpack_require__(2);\r\nvar CardWithHorizontalImageDescription = /** @class */ (function (_super) {\r\n __extends(CardWithHorizontalImageDescription, _super);\r\n function CardWithHorizontalImageDescription() {\r\n var _this = _super.call(this, new size_1.Size(1.5 * ShapeDescription_1.ShapeDefaultDimension, 0.5 * ShapeDescription_1.ShapeDefaultDimension)) || this;\r\n _this.isHorizontal = true;\r\n return _this;\r\n }\r\n CardWithHorizontalImageDescription.prototype.getToolboxHeightToWidthRatio = function (_width, _height) {\r\n return 26 / 46;\r\n };\r\n CardWithHorizontalImageDescription.prototype.getImageSize = function (shapeSize, includeMargins, forToolbox) {\r\n var imageSize = Math.min(shapeSize.height, shapeSize.width);\r\n if (!includeMargins)\r\n imageSize = Math.max(0, imageSize - 2 * this.getImageMargin(forToolbox));\r\n return new size_1.Size(imageSize, imageSize);\r\n };\r\n CardWithHorizontalImageDescription.prototype.getImageSizeByTextBlockSize = function (textBlockSize) {\r\n return this.getImageSize(new size_1.Size(Number.MAX_VALUE, textBlockSize.height), true);\r\n };\r\n return CardWithHorizontalImageDescription;\r\n}(CardBaseDescription_1.CardBaseDescription));\r\nvar CardWithImageOnLeftDescription = /** @class */ (function (_super) {\r\n __extends(CardWithImageOnLeftDescription, _super);\r\n function CardWithImageOnLeftDescription() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.isTextAfterImage = true;\r\n return _this;\r\n }\r\n Object.defineProperty(CardWithImageOnLeftDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.CardWithImageOnLeft; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return CardWithImageOnLeftDescription;\r\n}(CardWithHorizontalImageDescription));\r\nexports.CardWithImageOnLeftDescription = CardWithImageOnLeftDescription;\r\nvar CardWithImageOnRightDescription = /** @class */ (function (_super) {\r\n __extends(CardWithImageOnRightDescription, _super);\r\n function CardWithImageOnRightDescription() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.isTextAfterImage = false;\r\n return _this;\r\n }\r\n Object.defineProperty(CardWithImageOnRightDescription.prototype, \"key\", {\r\n get: function () { return ShapeTypes_1.ShapeTypes.CardWithImageOnRight; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return CardWithImageOnRightDescription;\r\n}(CardWithHorizontalImageDescription));\r\nexports.CardWithImageOnRightDescription = CardWithImageOnRightDescription;\r\n\n\n/***/ }),\n/* 239 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ExportCommand = void 0;\r\nvar Exporter_1 = __webpack_require__(71);\r\nvar ExportImportCommandBase_1 = __webpack_require__(54);\r\nvar ExportCommand = /** @class */ (function (_super) {\r\n __extends(ExportCommand, _super);\r\n function ExportCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ExportCommand.prototype.executeCore = function (state, parameter) {\r\n var exporter = new Exporter_1.Exporter();\r\n var data = exporter.export(this.control.model);\r\n parameter(data);\r\n return true;\r\n };\r\n return ExportCommand;\r\n}(ExportImportCommandBase_1.ExportImportCommandBase));\r\nexports.ExportCommand = ExportCommand;\r\n\n\n/***/ }),\n/* 240 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ToggleFontBoldCommand = void 0;\r\nvar ToggleStyleTextPropertyCommand_1 = __webpack_require__(72);\r\nvar ToggleFontBoldCommand = /** @class */ (function (_super) {\r\n __extends(ToggleFontBoldCommand, _super);\r\n function ToggleFontBoldCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToggleFontBoldCommand.prototype.getStyleProperty = function () {\r\n return \"font-weight\";\r\n };\r\n ToggleFontBoldCommand.prototype.getStylePropertyValue = function () {\r\n return \"bold\";\r\n };\r\n return ToggleFontBoldCommand;\r\n}(ToggleStyleTextPropertyCommand_1.ToggleStyleTextPropertyCommand));\r\nexports.ToggleFontBoldCommand = ToggleFontBoldCommand;\r\n\n\n/***/ }),\n/* 241 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ToggleFontItalicCommand = void 0;\r\nvar ToggleStyleTextPropertyCommand_1 = __webpack_require__(72);\r\nvar ToggleFontItalicCommand = /** @class */ (function (_super) {\r\n __extends(ToggleFontItalicCommand, _super);\r\n function ToggleFontItalicCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToggleFontItalicCommand.prototype.getStyleProperty = function () {\r\n return \"font-style\";\r\n };\r\n ToggleFontItalicCommand.prototype.getStylePropertyValue = function () {\r\n return \"italic\";\r\n };\r\n return ToggleFontItalicCommand;\r\n}(ToggleStyleTextPropertyCommand_1.ToggleStyleTextPropertyCommand));\r\nexports.ToggleFontItalicCommand = ToggleFontItalicCommand;\r\n\n\n/***/ }),\n/* 242 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ToggleFontUnderlineCommand = void 0;\r\nvar ToggleStyleTextPropertyCommand_1 = __webpack_require__(72);\r\nvar ToggleFontUnderlineCommand = /** @class */ (function (_super) {\r\n __extends(ToggleFontUnderlineCommand, _super);\r\n function ToggleFontUnderlineCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToggleFontUnderlineCommand.prototype.getStyleProperty = function () {\r\n return \"text-decoration\";\r\n };\r\n ToggleFontUnderlineCommand.prototype.getStylePropertyValue = function () {\r\n return \"underline\";\r\n };\r\n return ToggleFontUnderlineCommand;\r\n}(ToggleStyleTextPropertyCommand_1.ToggleStyleTextPropertyCommand));\r\nexports.ToggleFontUnderlineCommand = ToggleFontUnderlineCommand;\r\n\n\n/***/ }),\n/* 243 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeFontNameCommand = void 0;\r\nvar ChangeStyleTextPropertyCommand_1 = __webpack_require__(96);\r\nvar ChangeFontNameCommand = /** @class */ (function (_super) {\r\n __extends(ChangeFontNameCommand, _super);\r\n function ChangeFontNameCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeFontNameCommand.prototype.getStyleProperty = function () {\r\n return \"font-family\";\r\n };\r\n return ChangeFontNameCommand;\r\n}(ChangeStyleTextPropertyCommand_1.ChangeStyleTextPropertyCommand));\r\nexports.ChangeFontNameCommand = ChangeFontNameCommand;\r\n\n\n/***/ }),\n/* 244 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeFontSizeCommand = void 0;\r\nvar ChangeStyleTextPropertyCommand_1 = __webpack_require__(96);\r\nvar ChangeFontSizeCommand = /** @class */ (function (_super) {\r\n __extends(ChangeFontSizeCommand, _super);\r\n function ChangeFontSizeCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeFontSizeCommand.prototype.getStyleProperty = function () {\r\n return \"font-size\";\r\n };\r\n return ChangeFontSizeCommand;\r\n}(ChangeStyleTextPropertyCommand_1.ChangeStyleTextPropertyCommand));\r\nexports.ChangeFontSizeCommand = ChangeFontSizeCommand;\r\n\n\n/***/ }),\n/* 245 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeFontColorCommand = void 0;\r\nvar ChangeStyleTextPropertyCommand_1 = __webpack_require__(96);\r\nvar color_1 = __webpack_require__(22);\r\nvar ChangeFontColorCommand = /** @class */ (function (_super) {\r\n __extends(ChangeFontColorCommand, _super);\r\n function ChangeFontColorCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeFontColorCommand.prototype.processParameter = function (parameter) {\r\n return color_1.ColorUtils.stringToHash(parameter);\r\n };\r\n ChangeFontColorCommand.prototype.getStyleProperty = function () {\r\n return \"fill\";\r\n };\r\n return ChangeFontColorCommand;\r\n}(ChangeStyleTextPropertyCommand_1.ChangeStyleTextPropertyCommand));\r\nexports.ChangeFontColorCommand = ChangeFontColorCommand;\r\n\n\n/***/ }),\n/* 246 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeFillColorCommand = void 0;\r\nvar ChangeStylePropertyCommand_1 = __webpack_require__(73);\r\nvar color_1 = __webpack_require__(22);\r\nvar ChangeFillColorCommand = /** @class */ (function (_super) {\r\n __extends(ChangeFillColorCommand, _super);\r\n function ChangeFillColorCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeFillColorCommand.prototype.processParameter = function (parameter) {\r\n return color_1.ColorUtils.stringToHash(parameter);\r\n };\r\n ChangeFillColorCommand.prototype.getStyleProperty = function () {\r\n return \"fill\";\r\n };\r\n return ChangeFillColorCommand;\r\n}(ChangeStylePropertyCommand_1.ChangeStylePropertyCommand));\r\nexports.ChangeFillColorCommand = ChangeFillColorCommand;\r\n\n\n/***/ }),\n/* 247 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeStrokeColorCommand = void 0;\r\nvar ChangeStylePropertyCommand_1 = __webpack_require__(73);\r\nvar color_1 = __webpack_require__(22);\r\nvar ChangeStrokeColorCommand = /** @class */ (function (_super) {\r\n __extends(ChangeStrokeColorCommand, _super);\r\n function ChangeStrokeColorCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeStrokeColorCommand.prototype.processParameter = function (parameter) {\r\n return color_1.ColorUtils.stringToHash(parameter);\r\n };\r\n ChangeStrokeColorCommand.prototype.getStyleProperty = function () {\r\n return \"stroke\";\r\n };\r\n return ChangeStrokeColorCommand;\r\n}(ChangeStylePropertyCommand_1.ChangeStylePropertyCommand));\r\nexports.ChangeStrokeColorCommand = ChangeStrokeColorCommand;\r\n\n\n/***/ }),\n/* 248 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TextRightAlignCommand = exports.TextCenterAlignCommand = exports.TextLeftAlignCommand = exports.ChangeTextAlignCommand = void 0;\r\nvar ToggleStyleTextPropertyCommand_1 = __webpack_require__(72);\r\nvar ChangeTextAlignCommand = /** @class */ (function (_super) {\r\n __extends(ChangeTextAlignCommand, _super);\r\n function ChangeTextAlignCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeTextAlignCommand.prototype.getStyleProperty = function () {\r\n return \"text-anchor\";\r\n };\r\n return ChangeTextAlignCommand;\r\n}(ToggleStyleTextPropertyCommand_1.ToggleStyleTextPropertyCommand));\r\nexports.ChangeTextAlignCommand = ChangeTextAlignCommand;\r\nvar TextLeftAlignCommand = /** @class */ (function (_super) {\r\n __extends(TextLeftAlignCommand, _super);\r\n function TextLeftAlignCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TextLeftAlignCommand.prototype.getStylePropertyValue = function () {\r\n return \"start\";\r\n };\r\n return TextLeftAlignCommand;\r\n}(ChangeTextAlignCommand));\r\nexports.TextLeftAlignCommand = TextLeftAlignCommand;\r\nvar TextCenterAlignCommand = /** @class */ (function (_super) {\r\n __extends(TextCenterAlignCommand, _super);\r\n function TextCenterAlignCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TextCenterAlignCommand.prototype.getStylePropertyValue = function () {\r\n return \"middle\";\r\n };\r\n return TextCenterAlignCommand;\r\n}(ChangeTextAlignCommand));\r\nexports.TextCenterAlignCommand = TextCenterAlignCommand;\r\nvar TextRightAlignCommand = /** @class */ (function (_super) {\r\n __extends(TextRightAlignCommand, _super);\r\n function TextRightAlignCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TextRightAlignCommand.prototype.getStylePropertyValue = function () {\r\n return \"end\";\r\n };\r\n return TextRightAlignCommand;\r\n}(ChangeTextAlignCommand));\r\nexports.TextRightAlignCommand = TextRightAlignCommand;\r\n\n\n/***/ }),\n/* 249 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeConnectorEndLineEndingCommand = exports.ChangeConnectorStartLineEndingCommand = void 0;\r\nvar ChangeConnectorPropertyCommand_1 = __webpack_require__(137);\r\nvar ConnectorProperties_1 = __webpack_require__(31);\r\nvar ChangeConnectorStartLineEndingCommand = /** @class */ (function (_super) {\r\n __extends(ChangeConnectorStartLineEndingCommand, _super);\r\n function ChangeConnectorStartLineEndingCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeConnectorStartLineEndingCommand.prototype.getPropertyName = function () {\r\n return \"startLineEnding\";\r\n };\r\n ChangeConnectorStartLineEndingCommand.prototype.getPropertyDefaultValue = function () {\r\n return ConnectorProperties_1.ConnectorLineEnding.None;\r\n };\r\n return ChangeConnectorStartLineEndingCommand;\r\n}(ChangeConnectorPropertyCommand_1.ChangeConnectorPropertyCommand));\r\nexports.ChangeConnectorStartLineEndingCommand = ChangeConnectorStartLineEndingCommand;\r\nvar ChangeConnectorEndLineEndingCommand = /** @class */ (function (_super) {\r\n __extends(ChangeConnectorEndLineEndingCommand, _super);\r\n function ChangeConnectorEndLineEndingCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeConnectorEndLineEndingCommand.prototype.getPropertyName = function () {\r\n return \"endLineEnding\";\r\n };\r\n ChangeConnectorEndLineEndingCommand.prototype.getPropertyDefaultValue = function () {\r\n return ConnectorProperties_1.ConnectorLineEnding.Arrow;\r\n };\r\n return ChangeConnectorEndLineEndingCommand;\r\n}(ChangeConnectorPropertyCommand_1.ChangeConnectorPropertyCommand));\r\nexports.ChangeConnectorEndLineEndingCommand = ChangeConnectorEndLineEndingCommand;\r\n\n\n/***/ }),\n/* 250 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeConnectorLineOptionCommand = void 0;\r\nvar ChangeConnectorPropertyCommand_1 = __webpack_require__(137);\r\nvar ConnectorProperties_1 = __webpack_require__(31);\r\nvar ChangeConnectorLineOptionCommand = /** @class */ (function (_super) {\r\n __extends(ChangeConnectorLineOptionCommand, _super);\r\n function ChangeConnectorLineOptionCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeConnectorLineOptionCommand.prototype.getPropertyName = function () {\r\n return \"lineOption\";\r\n };\r\n ChangeConnectorLineOptionCommand.prototype.getPropertyDefaultValue = function () {\r\n return ConnectorProperties_1.ConnectorLineOption.Straight;\r\n };\r\n return ChangeConnectorLineOptionCommand;\r\n}(ChangeConnectorPropertyCommand_1.ChangeConnectorPropertyCommand));\r\nexports.ChangeConnectorLineOptionCommand = ChangeConnectorLineOptionCommand;\r\n\n\n/***/ }),\n/* 251 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SelectAllCommand = void 0;\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar SelectAllCommand = /** @class */ (function (_super) {\r\n __extends(SelectAllCommand, _super);\r\n function SelectAllCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SelectAllCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n SelectAllCommand.prototype.executeCore = function (state, parameter) {\r\n var itemKeys = [];\r\n this.control.model.iterateItems(function (i) { return itemKeys.push(i.key); });\r\n this.control.selection.set(itemKeys);\r\n return true;\r\n };\r\n return SelectAllCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.SelectAllCommand = SelectAllCommand;\r\n\n\n/***/ }),\n/* 252 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ScrollIntoViewOnUndoHistoryItem = exports.ScrollIntoViewOnRedoHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ScrollIntoViewOnRedoHistoryItem = /** @class */ (function (_super) {\r\n __extends(ScrollIntoViewOnRedoHistoryItem, _super);\r\n function ScrollIntoViewOnRedoHistoryItem(view, rectangle) {\r\n var _this = _super.call(this) || this;\r\n _this.view = view;\r\n _this.rectangle = rectangle;\r\n _this.view = view;\r\n _this.rectangle = rectangle.clone();\r\n return _this;\r\n }\r\n ScrollIntoViewOnRedoHistoryItem.prototype.redo = function (manipulator) {\r\n this.view.scrollIntoView(this.rectangle);\r\n };\r\n ScrollIntoViewOnRedoHistoryItem.prototype.undo = function (manipulator) { };\r\n return ScrollIntoViewOnRedoHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ScrollIntoViewOnRedoHistoryItem = ScrollIntoViewOnRedoHistoryItem;\r\nvar ScrollIntoViewOnUndoHistoryItem = /** @class */ (function (_super) {\r\n __extends(ScrollIntoViewOnUndoHistoryItem, _super);\r\n function ScrollIntoViewOnUndoHistoryItem(view, rectangle) {\r\n var _this = _super.call(this) || this;\r\n _this.view = view;\r\n _this.rectangle = rectangle;\r\n _this.view = view;\r\n _this.rectangle = rectangle.clone();\r\n return _this;\r\n }\r\n ScrollIntoViewOnUndoHistoryItem.prototype.redo = function (manipulator) { };\r\n ScrollIntoViewOnUndoHistoryItem.prototype.undo = function (manipulator) {\r\n this.view.scrollIntoView(this.rectangle);\r\n };\r\n return ScrollIntoViewOnUndoHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ScrollIntoViewOnUndoHistoryItem = ScrollIntoViewOnUndoHistoryItem;\r\n\n\n/***/ }),\n/* 253 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Tree = void 0;\r\nvar Structures_1 = __webpack_require__(37);\r\nvar Tree = /** @class */ (function () {\r\n function Tree(root, parentToChildren) {\r\n var _this = this;\r\n this.childToParent = {};\r\n this.root = root;\r\n this.parentToChildren = parentToChildren;\r\n var _loop_1 = function (key) {\r\n if (!Object.prototype.hasOwnProperty.call(parentToChildren, key))\r\n return \"continue\";\r\n parentToChildren[key].forEach(function (c) { return _this.childToParent[c.key] = key; });\r\n };\r\n for (var key in parentToChildren) {\r\n _loop_1(key);\r\n }\r\n }\r\n Tree.prototype.getChildren = function (node) {\r\n return node && this.parentToChildren[node.key] ? this.parentToChildren[node.key] : [];\r\n };\r\n Tree.prototype.hasChildren = function (node) {\r\n return this.parentToChildren[node.key] && this.parentToChildren[node.key].length > 0;\r\n };\r\n Tree.prototype.iterate = function (callback) {\r\n this.iterateCore(this.root, 0, callback);\r\n };\r\n Tree.createSpanningTree = function (component) {\r\n var rootKey = Tree.findRoot(component);\r\n var iterator = component.createIterator(Structures_1.ConnectionMode.Outgoing);\r\n var parentToChildren = {};\r\n iterator.skipEdge = (function (e) { return e.to === undefined || iterator.isNodeVisited(e.to); });\r\n iterator.onNode = function (n) { return parentToChildren[n.key] = []; };\r\n iterator.onEdge = function (e) {\r\n var node = component.getNode(e.to);\r\n node && parentToChildren[e.from].push(node);\r\n };\r\n iterator.iterate(rootKey);\r\n return new Tree(component.getNode(rootKey), parentToChildren);\r\n };\r\n Tree.prototype.iterateCore = function (node, level, callback) {\r\n var _this = this;\r\n callback(node, level);\r\n this.getChildren(node).forEach(function (n) { return _this.iterateCore(n, level + 1, callback); });\r\n };\r\n Tree.findRoot = function (component) {\r\n return component.nodes.reduce(function (aggregator, cur) {\r\n var edges = component.getAdjacentEdges(cur);\r\n var inc = edges.filter(function (l) { return l.to === cur; }).length;\r\n var out = edges.filter(function (l) { return l.from === cur; }).length;\r\n if (aggregator.candidate === undefined || (inc === 0 && aggregator.inc > 0) || (aggregator.inc !== 0 && aggregator.out - aggregator.inc < out - inc)) {\r\n aggregator.candidate = cur;\r\n aggregator.inc = inc;\r\n aggregator.out = out;\r\n }\r\n return aggregator;\r\n }, { inc: -1, out: -1, candidate: undefined }).candidate;\r\n };\r\n return Tree;\r\n}());\r\nexports.Tree = Tree;\r\n\n\n/***/ }),\n/* 254 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeSnapToGridCommand = void 0;\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar ChangeSnapToGridCommand = /** @class */ (function (_super) {\r\n __extends(ChangeSnapToGridCommand, _super);\r\n function ChangeSnapToGridCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeSnapToGridCommand.prototype.executeCore = function (state, parameter) {\r\n var newValue = parameter === undefined ? !this.control.settings.snapToGrid : !!parameter;\r\n if (this.control.settings.snapToGrid !== newValue) {\r\n this.control.settings.snapToGrid = newValue;\r\n return true;\r\n }\r\n return false;\r\n };\r\n ChangeSnapToGridCommand.prototype.getValue = function () {\r\n return this.control.settings.snapToGrid;\r\n };\r\n return ChangeSnapToGridCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ChangeSnapToGridCommand = ChangeSnapToGridCommand;\r\n\n\n/***/ }),\n/* 255 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeGridSizeItemsCommand = exports.ChangeGridSizeCommand = void 0;\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar ChangeGridSizeCommand = /** @class */ (function (_super) {\r\n __extends(ChangeGridSizeCommand, _super);\r\n function ChangeGridSizeCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeGridSizeCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n ChangeGridSizeCommand.prototype.getValue = function () {\r\n return this.getModelUnit(this.control.settings.gridSize);\r\n };\r\n ChangeGridSizeCommand.prototype.executeCore = function (state, parameter) {\r\n this.control.settings.gridSize = this.getModelUnitTwipsValue(parameter);\r\n return true;\r\n };\r\n ChangeGridSizeCommand.prototype.getItems = function () {\r\n var _this = this;\r\n return this.control.settings.gridSizeItems.map(function (s) {\r\n return { value: _this.getModelUnit(s), text: _this.getViewUnitText(s) };\r\n });\r\n };\r\n return ChangeGridSizeCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ChangeGridSizeCommand = ChangeGridSizeCommand;\r\nvar ChangeGridSizeItemsCommand = /** @class */ (function (_super) {\r\n __extends(ChangeGridSizeItemsCommand, _super);\r\n function ChangeGridSizeItemsCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeGridSizeItemsCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n ChangeGridSizeItemsCommand.prototype.getValue = function () {\r\n var _this = this;\r\n return this.control.settings.gridSizeItems.map(function (s) { return _this.getModelUnit(s); });\r\n };\r\n ChangeGridSizeItemsCommand.prototype.executeCore = function (state, parameter) {\r\n var _this = this;\r\n this.control.settings.gridSizeItems = parameter.map(function (s) { return _this.getModelUnitTwipsValue(s); });\r\n return true;\r\n };\r\n return ChangeGridSizeItemsCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ChangeGridSizeItemsCommand = ChangeGridSizeItemsCommand;\r\n\n\n/***/ }),\n/* 256 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangePageLandscapeCommand = void 0;\r\nvar ChangePagePropertyCommand_1 = __webpack_require__(75);\r\nvar ChangePageLandscapeHistoryItem_1 = __webpack_require__(257);\r\nvar ChangePageLandscapeCommand = /** @class */ (function (_super) {\r\n __extends(ChangePageLandscapeCommand, _super);\r\n function ChangePageLandscapeCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangePageLandscapeCommand.prototype.getValue = function () {\r\n return this.control.model.pageLandscape;\r\n };\r\n ChangePageLandscapeCommand.prototype.createHistoryItems = function (parameter) {\r\n return [new ChangePageLandscapeHistoryItem_1.ChangePageLandscapeHistoryItem(parameter)];\r\n };\r\n return ChangePageLandscapeCommand;\r\n}(ChangePagePropertyCommand_1.ChangePagePropertyCommand));\r\nexports.ChangePageLandscapeCommand = ChangePageLandscapeCommand;\r\n\n\n/***/ }),\n/* 257 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangePageLandscapeHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ChangePageLandscapeHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangePageLandscapeHistoryItem, _super);\r\n function ChangePageLandscapeHistoryItem(value) {\r\n var _this = _super.call(this) || this;\r\n _this.value = value;\r\n return _this;\r\n }\r\n ChangePageLandscapeHistoryItem.prototype.redo = function (manipulator) {\r\n this.oldValue = manipulator.model.pageLandscape;\r\n manipulator.changePageLandscape(this.value);\r\n };\r\n ChangePageLandscapeHistoryItem.prototype.undo = function (manipulator) {\r\n manipulator.changePageLandscape(this.oldValue);\r\n };\r\n return ChangePageLandscapeHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ChangePageLandscapeHistoryItem = ChangePageLandscapeHistoryItem;\r\n\n\n/***/ }),\n/* 258 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangePageSizeItemsCommand = exports.ChangePageSizeCommand = void 0;\r\nvar ChangePagePropertyCommand_1 = __webpack_require__(75);\r\nvar size_1 = __webpack_require__(2);\r\nvar ChangePageSizeHistoryItem_1 = __webpack_require__(259);\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar ChangePageSizeCommand = /** @class */ (function (_super) {\r\n __extends(ChangePageSizeCommand, _super);\r\n function ChangePageSizeCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangePageSizeCommand.prototype.getValue = function () {\r\n return this.getModelUnitSize(this.control.model.pageSize);\r\n };\r\n ChangePageSizeCommand.prototype.createHistoryItems = function (parameter) {\r\n return [new ChangePageSizeHistoryItem_1.ChangePageSizeHistoryItem(new size_1.Size(this.getModelUnitTwipsValue(parameter.width), this.getModelUnitTwipsValue(parameter.height)))];\r\n };\r\n ChangePageSizeCommand.prototype.getItems = function () {\r\n var _this = this;\r\n return this.control.settings.pageSizeItems.map(function (i) {\r\n return {\r\n value: _this.getModelUnitSize(i.size),\r\n text: i.text.replace(\"{width}\", _this.getViewUnitText(i.size.width)).replace(\"{height}\", _this.getViewUnitText(i.size.height))\r\n };\r\n });\r\n };\r\n ChangePageSizeCommand.prototype.getModelUnitSize = function (size) {\r\n return new size_1.Size(this.getModelUnit(size.width), this.getModelUnit(size.height));\r\n };\r\n return ChangePageSizeCommand;\r\n}(ChangePagePropertyCommand_1.ChangePagePropertyCommand));\r\nexports.ChangePageSizeCommand = ChangePageSizeCommand;\r\nvar ChangePageSizeItemsCommand = /** @class */ (function (_super) {\r\n __extends(ChangePageSizeItemsCommand, _super);\r\n function ChangePageSizeItemsCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangePageSizeItemsCommand.prototype.isEnabled = function () {\r\n return true;\r\n };\r\n ChangePageSizeItemsCommand.prototype.getValue = function () {\r\n var _this = this;\r\n return this.control.settings.pageSizeItems.map(function (i) {\r\n return {\r\n size: new size_1.Size(_this.getModelUnit(i.width), _this.getModelUnit(i.height)),\r\n text: i.text\r\n };\r\n });\r\n };\r\n ChangePageSizeItemsCommand.prototype.executeCore = function (state, parameter) {\r\n var _this = this;\r\n this.control.settings.pageSizeItems = parameter.map(function (i) {\r\n return {\r\n size: new size_1.Size(_this.getModelUnitTwipsValue(i.width), _this.getModelUnitTwipsValue(i.height)),\r\n text: i.text\r\n };\r\n });\r\n return true;\r\n };\r\n return ChangePageSizeItemsCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ChangePageSizeItemsCommand = ChangePageSizeItemsCommand;\r\n\n\n/***/ }),\n/* 259 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangePageSizeHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ChangePageSizeHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangePageSizeHistoryItem, _super);\r\n function ChangePageSizeHistoryItem(size) {\r\n var _this = _super.call(this) || this;\r\n _this.size = size;\r\n return _this;\r\n }\r\n ChangePageSizeHistoryItem.prototype.redo = function (manipulator) {\r\n this.oldSize = manipulator.model.pageSize;\r\n manipulator.changePageSize(this.size);\r\n };\r\n ChangePageSizeHistoryItem.prototype.undo = function (manipulator) {\r\n manipulator.changePageSize(this.oldSize);\r\n };\r\n return ChangePageSizeHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ChangePageSizeHistoryItem = ChangePageSizeHistoryItem;\r\n\n\n/***/ }),\n/* 260 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ExportPngCommand = void 0;\r\nvar ExportImageCommand_1 = __webpack_require__(98);\r\nvar ExportPngCommand = /** @class */ (function (_super) {\r\n __extends(ExportPngCommand, _super);\r\n function ExportPngCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ExportPngCommand.prototype.getExtension = function () { return \"png\"; };\r\n ExportPngCommand.prototype.getExportFunc = function () {\r\n return this.exporter.exportPng;\r\n };\r\n return ExportPngCommand;\r\n}(ExportImageCommand_1.ExportImageCommand));\r\nexports.ExportPngCommand = ExportPngCommand;\r\n\n\n/***/ }),\n/* 261 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CanvasExportManager = void 0;\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar browser_1 = __webpack_require__(17);\r\nvar Utils_1 = __webpack_require__(18);\r\nvar CanvasManagerBase_1 = __webpack_require__(41);\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar DOMManipulator_1 = __webpack_require__(100);\r\nvar color_1 = __webpack_require__(22);\r\nvar EXPORT_IMAGE_QUALITY = 1;\r\nvar CanvasExportManager = /** @class */ (function (_super) {\r\n __extends(CanvasExportManager, _super);\r\n function CanvasExportManager(itemsContainer, measurer) {\r\n var _this = _super.call(this, 1, new DOMManipulator_1.ExportDOMManipulator(measurer)) || this;\r\n _this.itemsContainer = itemsContainer;\r\n return _this;\r\n }\r\n CanvasExportManager.prototype.getSvgImage = function (modelSize, pageColor, exportAsInline, exportForBinaryImage) {\r\n var svgEl = RenderHelper_1.RenderHelper.createSvgElement(undefined, true);\r\n var modelAbsSize = modelSize.clone().applyConverter(unit_converter_1.UnitConverter.twipsToPixelsF).clone().applyConverter(Math.ceil);\r\n Utils_1.RenderUtils.updateSvgElementSize(svgEl, modelAbsSize.width, modelAbsSize.height, true);\r\n svgEl.style.backgroundColor = color_1.ColorUtils.colorToHash(pageColor);\r\n this.createTextFloodFilter(undefined, svgEl, pageColor);\r\n var exportCssRules = !exportAsInline && !browser_1.Browser.IE && this.getExportCssRules();\r\n if (exportCssRules) {\r\n var style = document.createElementNS(RenderHelper_1.svgNS, \"style\");\r\n style.innerHTML = exportCssRules;\r\n svgEl.appendChild(style);\r\n }\r\n if (exportForBinaryImage) { // Only for IE11, fix for canvg.Canvg\r\n var bk = document.createElementNS(RenderHelper_1.svgNS, \"rect\");\r\n bk.setAttributeNS(null, \"x\", \"0\");\r\n bk.setAttributeNS(null, \"y\", \"0\");\r\n bk.setAttributeNS(null, \"height\", modelAbsSize.height.toString());\r\n bk.setAttributeNS(null, \"width\", modelAbsSize.width.toString());\r\n bk.setAttributeNS(null, \"fill\", svgEl.style.backgroundColor);\r\n svgEl.appendChild(bk);\r\n }\r\n for (var i = 0; i < this.itemsContainer.childNodes.length; i++) {\r\n var node = this.itemsContainer.childNodes[i].cloneNode(true);\r\n if (!exportCssRules)\r\n this.inlineStyle(node, this.itemsContainer.childNodes[i]);\r\n svgEl.appendChild(node);\r\n }\r\n return svgEl;\r\n };\r\n CanvasExportManager.prototype.getSvgImageUrl = function (modelSize, pageColor, exportAsInline) {\r\n var svgEl = this.getSvgImage(modelSize, pageColor, exportAsInline, false);\r\n return this.getSvgBase64String(svgEl);\r\n };\r\n CanvasExportManager.prototype.getSvgString = function (svgElement) {\r\n return new XMLSerializer().serializeToString(svgElement);\r\n };\r\n CanvasExportManager.prototype.getSvgBase64String = function (svgElement) {\r\n var xml = this.getSvgString(svgElement);\r\n return CanvasExportManager.base64Start + this.getBase64EncodeUnicode(xml);\r\n };\r\n CanvasExportManager.prototype.getBase64EncodeUnicode = function (s) {\r\n return btoa(encodeURIComponent(s).replace(/%([0-9A-F]{2})/g, function (match, p1) { return String.fromCharCode(parseInt(\"0x\" + p1, 16)); }));\r\n };\r\n CanvasExportManager.prototype.getExportCssRules = function () {\r\n for (var i = 0; i < document.styleSheets.length; i++) {\r\n var rules = this.getRules(document.styleSheets[i]);\r\n if (rules) {\r\n var cssText = \"\";\r\n for (var j = 0; j < rules.length; j++) {\r\n var rule = rules[j];\r\n var selectorText = this.isCSSStyleRule(rule) ? rule.selectorText : null;\r\n if (selectorText && this.checkSelector(selectorText))\r\n cssText += rule.cssText + \"\\n\";\r\n }\r\n if (cssText.length > 0)\r\n return \"\\n\" + cssText;\r\n }\r\n }\r\n };\r\n CanvasExportManager.prototype.checkSelector = function (selectorText) {\r\n for (var i = 0; i < CanvasExportManager.exportStyleRules.length; i++)\r\n if (selectorText.indexOf(CanvasExportManager.exportStyleRules[i]) === 0)\r\n return true;\r\n return false;\r\n };\r\n CanvasExportManager.prototype.getRules = function (styleSheet) {\r\n try {\r\n return this.isCSSStyleSheet(styleSheet) ? styleSheet.rules || styleSheet.cssRules : null;\r\n }\r\n catch (_a) { } // Catch access dinied exception\r\n };\r\n CanvasExportManager.prototype.isCSSStyleSheet = function (stylesheet) {\r\n return stylesheet.rules !== undefined;\r\n };\r\n CanvasExportManager.prototype.isCSSStyleRule = function (rule) {\r\n return rule.selectorText !== undefined;\r\n };\r\n CanvasExportManager.prototype.inlineStyle = function (destNode, srcNode) {\r\n for (var i = 0; i < destNode.childNodes.length; i++) {\r\n var child = destNode.childNodes[i];\r\n if (!child.tagName)\r\n continue;\r\n if (child.tagName === \"g\")\r\n this.inlineStyle(child, srcNode.childNodes[i]);\r\n else if (child.style) {\r\n var style = window.getComputedStyle(srcNode.childNodes[i]);\r\n if (style !== undefined)\r\n for (var index = 0; index < CanvasExportManager.exportStyleAttributes.length; index++) {\r\n var styleProperty = CanvasExportManager.exportStyleAttributes[index];\r\n child.style.setProperty(styleProperty, style.getPropertyValue(styleProperty));\r\n }\r\n this.inlineStyle(child, srcNode.childNodes[i]);\r\n }\r\n }\r\n };\r\n CanvasExportManager.prototype.exportSvgImage = function (modelSize, pageColor, callback) {\r\n callback(this.getSvgImageUrl(modelSize, pageColor, true));\r\n };\r\n CanvasExportManager.prototype.exportBinaryImage = function (modelSize, pageColor, mimeType, callback) {\r\n var modelAbsSize = this.getAbsoluteSize(modelSize).clone().applyConverter(Math.ceil);\r\n var canvasEl = document.createElement(\"canvas\");\r\n canvasEl.width = modelAbsSize.width;\r\n canvasEl.height = modelAbsSize.height;\r\n var ctx = canvasEl.getContext(\"2d\");\r\n ctx.fillStyle = color_1.ColorUtils.colorToHash(pageColor);\r\n ctx.fillRect(0, 0, modelAbsSize.width, modelAbsSize.height);\r\n if (browser_1.Browser.IE && typeof canvg === \"object\")\r\n this.exportBinaryImageCanvgAsync(modelSize, pageColor, canvasEl, ctx, mimeType).then(function (dataUrl) { return callback(dataUrl); });\r\n else if (browser_1.Browser.IE && typeof canvg === \"function\")\r\n this.exportBinaryImageCanvgOld(modelSize, pageColor, canvasEl, ctx, mimeType, callback);\r\n else {\r\n var imgEl_1 = new Image();\r\n imgEl_1.width = modelAbsSize.width;\r\n imgEl_1.height = modelAbsSize.height;\r\n imgEl_1.setAttribute(\"crossOrigin\", \"anonymous\");\r\n imgEl_1.onload = function () {\r\n ctx.drawImage(imgEl_1, 0, 0);\r\n callback(canvasEl.toDataURL(mimeType, EXPORT_IMAGE_QUALITY));\r\n };\r\n imgEl_1.src = this.getSvgImageUrl(modelSize, pageColor, true);\r\n }\r\n };\r\n CanvasExportManager.prototype.exportBinaryImageCanvgOld = function (modelSize, pageColor, canvasEl, ctx, mimeType, callback) {\r\n var svgEl = this.getSvgImage(modelSize, pageColor, true, false);\r\n var svgStr = this.getSvgString(svgEl);\r\n ctx[\"drawSvg\"](svgStr, 0, 0, null, null, {\r\n renderCallback: function () {\r\n callback(canvasEl.toDataURL(mimeType, EXPORT_IMAGE_QUALITY));\r\n }\r\n });\r\n };\r\n CanvasExportManager.prototype.exportBinaryImageCanvgAsync = function (modelSize, pageColor, canvas, ctx, mimeType) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var svgEl, svgStr, v;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n svgEl = this.getSvgImage(modelSize, pageColor, true, true);\r\n svgStr = this.getSvgString(svgEl);\r\n v = canvg.Canvg.fromString(ctx, svgStr);\r\n return [4 /*yield*/, v.render()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, canvas.toDataURL(mimeType, EXPORT_IMAGE_QUALITY)];\r\n }\r\n });\r\n });\r\n };\r\n CanvasExportManager.prototype.exportPngImage = function (modelSize, pageColor, callback) {\r\n this.exportBinaryImage(modelSize, pageColor, \"image/png\", callback);\r\n };\r\n CanvasExportManager.prototype.exportJpgImage = function (modelSize, pageColor, callback) {\r\n this.exportBinaryImage(modelSize, pageColor, \"image/jpeg\", callback);\r\n };\r\n CanvasExportManager.prototype.notifyModelChanged = function (changes) { };\r\n CanvasExportManager.prototype.notifyPageColorChanged = function (color) { };\r\n CanvasExportManager.prototype.notifyPageSizeChanged = function (pageSize, pageLandscape) { };\r\n CanvasExportManager.base64Start = \"data:image/svg+xml;base64,\";\r\n CanvasExportManager.exportStyleRules = [\r\n \".dxdi-canvas .shape \", \".dxdi-canvas .connector \", \".dxdi-canvas text\", \".dxdi-canvas.export\"\r\n ];\r\n CanvasExportManager.exportStyleAttributes = [\r\n \"fill\", \"stroke\", \"stroke-width\", \"stroke-linejoin\",\r\n \"font-family\", \"font-size\", \"font-weight\", \"font-style\", \"text-decoration\", \"text-anchor\"\r\n ];\r\n return CanvasExportManager;\r\n}(CanvasManagerBase_1.CanvasManagerBase));\r\nexports.CanvasExportManager = CanvasExportManager;\r\n\n\n/***/ }),\n/* 262 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ExportSvgCommand = void 0;\r\nvar ExportImageCommand_1 = __webpack_require__(98);\r\nvar ExportSvgCommand = /** @class */ (function (_super) {\r\n __extends(ExportSvgCommand, _super);\r\n function ExportSvgCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ExportSvgCommand.prototype.getExtension = function () { return \"svg\"; };\r\n ExportSvgCommand.prototype.getExportFunc = function () {\r\n return this.exporter.exportSvg;\r\n };\r\n return ExportSvgCommand;\r\n}(ExportImageCommand_1.ExportImageCommand));\r\nexports.ExportSvgCommand = ExportSvgCommand;\r\n\n\n/***/ }),\n/* 263 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ExportJpgCommand = void 0;\r\nvar ExportImageCommand_1 = __webpack_require__(98);\r\nvar ExportJpgCommand = /** @class */ (function (_super) {\r\n __extends(ExportJpgCommand, _super);\r\n function ExportJpgCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ExportJpgCommand.prototype.getExtension = function () { return \"jpg\"; };\r\n ExportJpgCommand.prototype.getExportFunc = function () {\r\n return this.exporter.exportJpg;\r\n };\r\n return ExportJpgCommand;\r\n}(ExportImageCommand_1.ExportImageCommand));\r\nexports.ExportJpgCommand = ExportJpgCommand;\r\n\n\n/***/ }),\n/* 264 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CopySelectionCommand = void 0;\r\nvar Exporter_1 = __webpack_require__(71);\r\nvar ClipboardCommand_1 = __webpack_require__(101);\r\nvar CopySelectionCommand = /** @class */ (function (_super) {\r\n __extends(CopySelectionCommand, _super);\r\n function CopySelectionCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CopySelectionCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && !this.control.selection.isEmpty(true);\r\n };\r\n CopySelectionCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n CopySelectionCommand.prototype.executeCore = function (state) {\r\n var exporter = new Exporter_1.Exporter();\r\n var data = exporter.exportItems(this.control.selection.getSelectedItems(true, true));\r\n this.setClipboardData(data);\r\n return true;\r\n };\r\n return CopySelectionCommand;\r\n}(ClipboardCommand_1.ClipboardCommand));\r\nexports.CopySelectionCommand = CopySelectionCommand;\r\n\n\n/***/ }),\n/* 265 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CutSelectionCommand = void 0;\r\nvar Exporter_1 = __webpack_require__(71);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar ClipboardCommand_1 = __webpack_require__(101);\r\nvar CutSelectionCommand = /** @class */ (function (_super) {\r\n __extends(CutSelectionCommand, _super);\r\n function CutSelectionCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CutSelectionCommand.prototype.isEnabled = function () {\r\n var items = this.control.selection.getSelectedItems();\r\n return _super.prototype.isEnabled.call(this) && items.length && (items.length > 1 || this.permissionsProvider.canDeleteItems(items));\r\n };\r\n CutSelectionCommand.prototype.executeCore = function (state) {\r\n var exporter = new Exporter_1.Exporter();\r\n var items = this.control.selection.getSelectedItems(true, true);\r\n var data = exporter.exportItems(items);\r\n this.permissionsProvider.beginDeleteItems(items);\r\n this.setClipboardData(data);\r\n ModelUtils_1.ModelUtils.deleteSelection(this.control.history, this.control.model, this.control.selection);\r\n this.permissionsProvider.endDeleteItems();\r\n return true;\r\n };\r\n Object.defineProperty(CutSelectionCommand.prototype, \"isPermissionsRequired\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return CutSelectionCommand;\r\n}(ClipboardCommand_1.ClipboardCommand));\r\nexports.CutSelectionCommand = CutSelectionCommand;\r\n\n\n/***/ }),\n/* 266 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PasteSelectionCommand = void 0;\r\nvar PasteSelectoinCommandBase_1 = __webpack_require__(142);\r\nvar PasteSelectionCommand = /** @class */ (function (_super) {\r\n __extends(PasteSelectionCommand, _super);\r\n function PasteSelectionCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PasteSelectionCommand.prototype.getShapeNewPosition = function (position) {\r\n return PasteSelectoinCommandBase_1.PasteSelectionCommandBase.getShapeNewPosition(this.control.model, position);\r\n };\r\n PasteSelectionCommand.prototype.changeConnectorPoints = function (connector) {\r\n PasteSelectoinCommandBase_1.PasteSelectionCommandBase.changeConnectorPoints(this.control.model, connector);\r\n };\r\n return PasteSelectionCommand;\r\n}(PasteSelectoinCommandBase_1.PasteSelectionCommandBase));\r\nexports.PasteSelectionCommand = PasteSelectionCommand;\r\n\n\n/***/ }),\n/* 267 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ImportShapeHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ImportShapeHistoryItem = /** @class */ (function (_super) {\r\n __extends(ImportShapeHistoryItem, _super);\r\n function ImportShapeHistoryItem(shape) {\r\n var _this = _super.call(this) || this;\r\n _this.shape = shape;\r\n return _this;\r\n }\r\n ImportShapeHistoryItem.prototype.redo = function (manipulator) {\r\n this.shapeKey = this.shape.key;\r\n manipulator.insertShape(this.shape);\r\n };\r\n ImportShapeHistoryItem.prototype.undo = function (manipulator) {\r\n manipulator.removeShape(manipulator.model.findShape(this.shapeKey), true);\r\n };\r\n return ImportShapeHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ImportShapeHistoryItem = ImportShapeHistoryItem;\r\n\n\n/***/ }),\n/* 268 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ImportConnectorHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ImportConnectorHistoryItem = /** @class */ (function (_super) {\r\n __extends(ImportConnectorHistoryItem, _super);\r\n function ImportConnectorHistoryItem(connector) {\r\n var _this = _super.call(this) || this;\r\n _this.connector = connector;\r\n return _this;\r\n }\r\n ImportConnectorHistoryItem.prototype.redo = function (manipulator) {\r\n this.connectorKey = this.connector.key;\r\n manipulator.insertConnector(this.connector);\r\n };\r\n ImportConnectorHistoryItem.prototype.undo = function (manipulator) {\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n manipulator.removeConnector(connector);\r\n };\r\n return ImportConnectorHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ImportConnectorHistoryItem = ImportConnectorHistoryItem;\r\n\n\n/***/ }),\n/* 269 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ImportBPMNCommand = void 0;\r\nvar BPMNImporter_1 = __webpack_require__(270);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar AddShapeHistoryItem_1 = __webpack_require__(51);\r\nvar point_1 = __webpack_require__(1);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar AddConnectorHistoryItem_1 = __webpack_require__(63);\r\nvar AddConnectionHistoryItem_1 = __webpack_require__(47);\r\nvar Sugiyama_1 = __webpack_require__(78);\r\nvar LayoutSettings_1 = __webpack_require__(20);\r\nvar ExportImportCommandBase_1 = __webpack_require__(54);\r\nvar ImportBPMNCommand = /** @class */ (function (_super) {\r\n __extends(ImportBPMNCommand, _super);\r\n function ImportBPMNCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ImportBPMNCommand.prototype.executeCore = function (state, parameter) {\r\n var importer = new BPMNImporter_1.BPMNImporter(parameter);\r\n var graph = importer.import();\r\n this.updateModel(graph);\r\n return true;\r\n };\r\n ImportBPMNCommand.prototype.updateModel = function (graph) {\r\n var _this = this;\r\n var externalKeyToModelKey = {};\r\n var shapes = [];\r\n var connectors = [];\r\n this.control.history.beginTransaction();\r\n graph.items.forEach(function (node) {\r\n var insert = new AddShapeHistoryItem_1.AddShapeHistoryItem(_this.getShapeDescription(node.type), new point_1.Point(0, 0), node.text, node.key);\r\n _this.control.history.addAndRedo(insert);\r\n externalKeyToModelKey[node.key] = insert.shapeKey;\r\n var shape = _this.control.model.findShape(insert.shapeKey);\r\n shapes.push(shape);\r\n });\r\n graph.edges.forEach(function (edge) {\r\n var from = _this.control.model.findShape(externalKeyToModelKey[edge.from]);\r\n var to = _this.control.model.findShape(externalKeyToModelKey[edge.to]);\r\n var insert = new AddConnectorHistoryItem_1.AddConnectorHistoryItem([from.getConnectionPointPosition(0), to.getConnectionPointPosition(0)]);\r\n _this.control.history.addAndRedo(insert);\r\n var connector = _this.control.model.findConnector(insert.connectorKey);\r\n _this.control.history.addAndRedo(new AddConnectionHistoryItem_1.AddConnectionHistoryItem(connector, from, 0, Connector_1.ConnectorPosition.Begin));\r\n _this.control.history.addAndRedo(new AddConnectionHistoryItem_1.AddConnectionHistoryItem(connector, to, 0, Connector_1.ConnectorPosition.End));\r\n connectors.push(connector);\r\n });\r\n var settings = new LayoutSettings_1.LayoutSettings();\r\n var graphInfo = ModelUtils_1.ModelUtils.getGraphInfoByItems(this.control.model, shapes, connectors);\r\n graphInfo.forEach(function (info) {\r\n var layout = new Sugiyama_1.SugiyamaLayoutBuilder(settings, info.graph).build();\r\n var nonGraphItems = ModelUtils_1.ModelUtils.getNonGraphItems(_this.control.model, info.container, layout.nodeToLayout, shapes, connectors);\r\n ModelUtils_1.ModelUtils.applyLayout(_this.control.history, _this.control.model, undefined, info.graph, layout, nonGraphItems, settings, _this.control.settings.snapToGrid, _this.control.settings.gridSize, false);\r\n });\r\n ModelUtils_1.ModelUtils.tryUpdateModelRectangle(this.control.history);\r\n this.control.history.endTransaction();\r\n };\r\n ImportBPMNCommand.prototype.getShapeDescription = function (shapeType) {\r\n return this.control.shapeDescriptionManager.get(shapeType);\r\n };\r\n return ImportBPMNCommand;\r\n}(ExportImportCommandBase_1.ExportImportCommandBase));\r\nexports.ImportBPMNCommand = ImportBPMNCommand;\r\n\n\n/***/ }),\n/* 270 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BPMNNode = exports.BPMNImporter = void 0;\r\nvar Graph_1 = __webpack_require__(68);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar Structures_1 = __webpack_require__(37);\r\nvar ImportUtils_1 = __webpack_require__(95);\r\nvar BPMNImporter = /** @class */ (function () {\r\n function BPMNImporter(xml) {\r\n this.doc = ImportUtils_1.ImportUtils.createDocument(xml);\r\n this.graph = new Graph_1.Graph([], []);\r\n }\r\n BPMNImporter.prototype.import = function () {\r\n for (var child = void 0, i = 0; child = this.doc.children[i]; i++)\r\n if (child.nodeName.toUpperCase() === \"DEFINITIONS\")\r\n this.onDefinitionsElement(child);\r\n this.validate();\r\n return this.graph;\r\n };\r\n BPMNImporter.prototype.validate = function () {\r\n var nodesMap = {};\r\n this.graph.nodes.forEach(function (n) { return nodesMap[n] = true; });\r\n for (var i = 0, edge = void 0; edge = this.graph.edges[i]; i++)\r\n if (!nodesMap[edge.from] || !nodesMap[edge.to]) {\r\n this.graph.edges.splice(i, 1);\r\n i--;\r\n }\r\n };\r\n BPMNImporter.prototype.onDefinitionsElement = function (element) {\r\n this.dataSourceKey = element.getAttribute(\"id\");\r\n for (var child = void 0, i = 0; child = element.children[i]; i++)\r\n if (child.nodeName.toUpperCase() === \"PROCESS\")\r\n this.onProcessElement(child);\r\n };\r\n BPMNImporter.prototype.onProcessElement = function (element) {\r\n for (var child = void 0, i = 0; child = element.children[i]; i++)\r\n switch (child.nodeName.toUpperCase()) {\r\n case \"STARTEVENT\":\r\n this.onStartEventElement(child);\r\n break;\r\n case \"SEQUENCEFLOW\":\r\n this.onSequenceFlowElement(child);\r\n break;\r\n case \"SCRIPTTASK\":\r\n this.onScriptTaskElement(child);\r\n break;\r\n case \"USERTASK\":\r\n this.onUserTaskElement(child);\r\n break;\r\n case \"SERVICETASK\":\r\n this.onServiceTaskElement(child);\r\n break;\r\n case \"SENDTASK\":\r\n this.onSendTaskElement(child);\r\n break;\r\n case \"EXCLUSIVEGATEWAY\":\r\n this.onExclusiveGateway(child);\r\n break;\r\n case \"ENDEVENT\":\r\n this.onEndEventGateway(child);\r\n break;\r\n }\r\n };\r\n BPMNImporter.prototype.onStartEventElement = function (element) {\r\n var node = this.createNode(element);\r\n node.type = ShapeTypes_1.ShapeTypes.Ellipse;\r\n node.text = element.getAttribute(\"name\");\r\n this.graph.addNode(node);\r\n };\r\n BPMNImporter.prototype.onSequenceFlowElement = function (element) {\r\n var fromKey = element.getAttribute(\"sourceRef\");\r\n var toKey = element.getAttribute(\"targetRef\");\r\n var edge = this.createEdge(element, fromKey, toKey);\r\n if (element.hasAttribute(\"name\"))\r\n edge.text = element.getAttribute(\"name\");\r\n this.graph.addEdge(edge);\r\n };\r\n BPMNImporter.prototype.onScriptTaskElement = function (element) {\r\n var node = this.createNode(element);\r\n node.text = element.getAttribute(\"name\");\r\n this.graph.addNode(node);\r\n };\r\n BPMNImporter.prototype.onUserTaskElement = function (element) {\r\n var node = this.createNode(element);\r\n node.text = element.getAttribute(\"name\");\r\n this.graph.addNode(node);\r\n };\r\n BPMNImporter.prototype.onServiceTaskElement = function (element) {\r\n var node = this.createNode(element);\r\n node.text = element.getAttribute(\"name\");\r\n this.graph.addNode(node);\r\n };\r\n BPMNImporter.prototype.onSendTaskElement = function (element) {\r\n var node = this.createNode(element);\r\n node.text = element.getAttribute(\"name\");\r\n this.graph.addNode(node);\r\n };\r\n BPMNImporter.prototype.onExclusiveGateway = function (element) {\r\n var node = this.createNode(element);\r\n node.text = element.getAttribute(\"name\");\r\n node.type = ShapeTypes_1.ShapeTypes.Decision;\r\n this.graph.addNode(node);\r\n };\r\n BPMNImporter.prototype.onEndEventGateway = function (element) {\r\n var node = this.createNode(element);\r\n node.text = element.getAttribute(\"name\");\r\n node.type = ShapeTypes_1.ShapeTypes.Ellipse;\r\n this.graph.addNode(node);\r\n };\r\n BPMNImporter.prototype.createNode = function (element) {\r\n return new BPMNNode(this.dataSourceKey, element.getAttribute(\"id\"));\r\n };\r\n BPMNImporter.prototype.createEdge = function (element, fromKey, toKey) {\r\n return new BPMNEdge(this.dataSourceKey, element.getAttribute(\"id\"), fromKey, toKey);\r\n };\r\n return BPMNImporter;\r\n}());\r\nexports.BPMNImporter = BPMNImporter;\r\nvar BPMNNode = /** @class */ (function () {\r\n function BPMNNode(sourceKey, key) {\r\n this.sourceKey = sourceKey;\r\n this.key = key;\r\n this.type = ShapeTypes_1.ShapeTypes.Rectangle;\r\n }\r\n return BPMNNode;\r\n}());\r\nexports.BPMNNode = BPMNNode;\r\nvar BPMNEdge = /** @class */ (function (_super) {\r\n __extends(BPMNEdge, _super);\r\n function BPMNEdge(sourceKey, key, fromKey, toKey) {\r\n var _this = _super.call(this, key, fromKey, toKey) || this;\r\n _this.sourceKey = sourceKey;\r\n return _this;\r\n }\r\n return BPMNEdge;\r\n}(Structures_1.Edge));\r\n\n\n/***/ }),\n/* 271 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CycleRemover = void 0;\r\nvar Graph_1 = __webpack_require__(68);\r\nvar Structures_1 = __webpack_require__(37);\r\nvar ListUtils_1 = __webpack_require__(90);\r\nvar CycleRemover = /** @class */ (function () {\r\n function CycleRemover() {\r\n }\r\n CycleRemover.removeCycles = function (graph) {\r\n var feedbackSet = this.getFeedbackSet(graph);\r\n return this.reverseEdges(graph, feedbackSet);\r\n };\r\n CycleRemover.getFeedbackSet = function (graph) {\r\n var _this = this;\r\n var feedbackSet = {};\r\n var nonTrivialStronglyConnectedComponents = this.getNonTrivialStronglyConnectedComponents(graph);\r\n while (nonTrivialStronglyConnectedComponents.length) {\r\n nonTrivialStronglyConnectedComponents.forEach(function (g) {\r\n var maxCyclicEdges = _this.getMaxCyclicEdges(g);\r\n maxCyclicEdges.forEach(function (e) { return delete feedbackSet[e.reverse().getHashKey()]; });\r\n maxCyclicEdges.forEach(function (e) { return feedbackSet[e.getHashKey()] = true; });\r\n });\r\n nonTrivialStronglyConnectedComponents = this.getNonTrivialStronglyConnectedComponents(this.reverseEdges(graph, feedbackSet).graph);\r\n }\r\n return feedbackSet;\r\n };\r\n CycleRemover.getMaxCyclicEdges = function (graph) {\r\n var black = {};\r\n var gray = {};\r\n var edgeCycleCount = {};\r\n var visitedEdges = [];\r\n var cycles = [];\r\n var iterator = graph.createIterator(Structures_1.ConnectionMode.Outgoing);\r\n iterator.visitEachEdgeOnce = false;\r\n iterator.onNode = function (n) {\r\n gray[n.key] = true;\r\n };\r\n iterator.skipNode = function (n) {\r\n if (gray[n.key]) {\r\n var cycle = [];\r\n for (var i = 0; i < visitedEdges.length; i++) {\r\n var e = visitedEdges[i];\r\n if (edgeCycleCount[e.key] === undefined)\r\n edgeCycleCount[e.key] = 0;\r\n edgeCycleCount[e.key]++;\r\n cycle.push(e);\r\n if (e.from === n.key)\r\n break;\r\n }\r\n cycles.push(cycle);\r\n }\r\n return gray[n.key] || black[n.key];\r\n };\r\n iterator.skipEdge = function (e) { return false; };\r\n iterator.onEdge = function (e) {\r\n visitedEdges.splice(0, 0, e);\r\n };\r\n iterator.onAfterEdge = function (e) {\r\n visitedEdges.splice(0, 1);\r\n };\r\n iterator.onAllEdges = function (e) {\r\n black[e.key] = true;\r\n gray[e.key] = false;\r\n };\r\n iterator.iterate(graph.nodes[0]);\r\n var edgeSet = new ListUtils_1.HashSet([], function (e) { return e.key; });\r\n cycles.forEach(function (c) {\r\n edgeSet.tryPush(c.reduce(function (max, curr) { return edgeCycleCount[curr.key] > edgeCycleCount[max.key] ? curr : max; }, c[0]));\r\n });\r\n return edgeSet.list();\r\n };\r\n CycleRemover.reverseEdges = function (graph, feedbackSet) {\r\n var edges = new ListUtils_1.HashSet([], function (e) { return e.getHashKey(); });\r\n var reversedEdges = {};\r\n var removedEdges = {};\r\n graph.edges.forEach(function (e) {\r\n if (feedbackSet[e.getHashKey()]) {\r\n e = e.reverse();\r\n reversedEdges[e.key] = true;\r\n }\r\n if (!edges.tryPush(e)) {\r\n removedEdges[e.key] = true;\r\n delete reversedEdges[e.key];\r\n }\r\n });\r\n return {\r\n graph: new Graph_1.Graph(graph.nodes.map(function (n) { return graph.getNode(n); }), edges.list()),\r\n reversedEdges: reversedEdges,\r\n removedEdges: removedEdges\r\n };\r\n };\r\n CycleRemover.getNonTrivialStronglyConnectedComponents = function (graph) {\r\n return this.getStronglyConnectedComponents(graph).filter(function (g) { return g.edges.length; });\r\n };\r\n CycleRemover.getStronglyConnectedComponents = function (graph) {\r\n var _this = this;\r\n // Tarjan algorithm\r\n // https://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm\r\n var nodesStack = [];\r\n var index = 0;\r\n var lowIndex = {};\r\n var lowLink = {};\r\n var onStack = {};\r\n var components = [];\r\n var visitedNodes = {};\r\n for (var i = 0; i < graph.nodes.length; i++) {\r\n var nodeKey = graph.nodes[i];\r\n var iterator = graph.createIterator(Structures_1.ConnectionMode.Outgoing);\r\n iterator.visitEachEdgeOnce = false;\r\n iterator.visitEachNodeOnce = false;\r\n iterator.onNode = function (n) {\r\n visitedNodes[n.key] = true;\r\n nodesStack.push(n);\r\n onStack[n.key] = true;\r\n lowLink[n.key] = index;\r\n lowIndex[n.key] = index;\r\n index++;\r\n };\r\n iterator.skipNode = function (n) { return visitedNodes[n.key]; };\r\n iterator.skipEdge = function (e) {\r\n var isVisited = visitedNodes[e.to];\r\n if (isVisited && onStack[e.to])\r\n lowLink[e.from] = Math.min(lowLink[e.from], lowIndex[e.to]);\r\n return isVisited;\r\n };\r\n iterator.onAfterEdge = function (e) {\r\n lowLink[e.from] = Math.min(lowLink[e.from], lowLink[e.to]);\r\n };\r\n iterator.onAllEdges = function (n, outgoing) {\r\n if (outgoing && lowLink[n.key] === lowIndex[n.key])\r\n components.push(_this.getStronglyConnectedComponent(graph, n, nodesStack, onStack));\r\n };\r\n iterator.iterate(nodeKey);\r\n }\r\n return components;\r\n };\r\n CycleRemover.getStronglyConnectedComponent = function (graph, root, nodesStack, onStack) {\r\n var itemsMap = {};\r\n var nodes = [];\r\n var edges = [];\r\n var topStackNode;\r\n do {\r\n topStackNode = nodesStack.pop();\r\n if (!itemsMap[topStackNode.key])\r\n nodes.push(topStackNode);\r\n itemsMap[topStackNode.key] = true;\r\n onStack[topStackNode.key] = false;\r\n } while (topStackNode !== root);\r\n nodes.forEach(function (n) {\r\n var aEdges = graph.getAdjacentEdges(n.key, Structures_1.ConnectionMode.Outgoing);\r\n edges = edges.concat(aEdges.filter(function (e) { return !itemsMap[e.key] && itemsMap[e.to]; }));\r\n aEdges.forEach(function (e) { return itemsMap[e.key] = true; });\r\n });\r\n return new Graph_1.Graph(nodes, edges);\r\n };\r\n return CycleRemover;\r\n}());\r\nexports.CycleRemover = CycleRemover;\r\n\n\n/***/ }),\n/* 272 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SendToBackCommand = void 0;\r\nvar ChangeZindexHistoryItem_1 = __webpack_require__(102);\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar SendToBackCommand = /** @class */ (function (_super) {\r\n __extends(SendToBackCommand, _super);\r\n function SendToBackCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SendToBackCommand.prototype.isEnabled = function () {\r\n var items = this.control.selection.getSelectedItems();\r\n return _super.prototype.isEnabled.call(this) && items.length > 0 && this.needSendToBack(items);\r\n };\r\n SendToBackCommand.prototype.executeCore = function (state, parameter) {\r\n var _this = this;\r\n this.control.history.beginTransaction();\r\n var items = this.control.selection.getSelectedItems();\r\n items.forEach(function (item) {\r\n var newZIndex = _this.control.model.getIntersectItemsMinZIndex(item) - 1;\r\n _this.control.history.addAndRedo(new ChangeZindexHistoryItem_1.ChangeZindexHistoryItem(item, newZIndex));\r\n });\r\n this.control.history.endTransaction();\r\n return true;\r\n };\r\n SendToBackCommand.prototype.needSendToBack = function (items) {\r\n var _this = this;\r\n var _loop_1 = function (i) {\r\n var zIndex = this_1.control.model.getIntersectItemsMinZIndex(items[i]);\r\n if (zIndex < items[i].zIndex)\r\n return { value: true };\r\n if (zIndex === items[i].zIndex) {\r\n var result_1 = false;\r\n var sameZIndexItems = this_1.control.model.getIntersectItems(items[i]).filter(function (item) { return item.zIndex === items[i].zIndex; });\r\n sameZIndexItems.forEach(function (item) {\r\n if (_this.control.model.getItemIndex(item) < _this.control.model.getItemIndex(items[i])) {\r\n result_1 = true;\r\n return;\r\n }\r\n });\r\n return { value: result_1 };\r\n }\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < items.length; i++) {\r\n var state_1 = _loop_1(i);\r\n if (typeof state_1 === \"object\")\r\n return state_1.value;\r\n }\r\n return false;\r\n };\r\n return SendToBackCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.SendToBackCommand = SendToBackCommand;\r\n\n\n/***/ }),\n/* 273 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BringToFrontCommand = void 0;\r\nvar ChangeZindexHistoryItem_1 = __webpack_require__(102);\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar BringToFrontCommand = /** @class */ (function (_super) {\r\n __extends(BringToFrontCommand, _super);\r\n function BringToFrontCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n BringToFrontCommand.prototype.isEnabled = function () {\r\n var items = this.control.selection.getSelectedItems();\r\n return _super.prototype.isEnabled.call(this) && items.length > 0 && this.needBringToFront(items);\r\n };\r\n BringToFrontCommand.prototype.executeCore = function (state, parameter) {\r\n var _this = this;\r\n this.control.history.beginTransaction();\r\n var items = this.control.selection.getSelectedItems();\r\n items.forEach(function (item) {\r\n var newZIndex = _this.control.model.getIntersectItemsMaxZIndex(item) + 1;\r\n _this.control.history.addAndRedo(new ChangeZindexHistoryItem_1.ChangeZindexHistoryItem(item, newZIndex));\r\n });\r\n this.control.history.endTransaction();\r\n return true;\r\n };\r\n BringToFrontCommand.prototype.needBringToFront = function (items) {\r\n var _this = this;\r\n var _loop_1 = function (i) {\r\n var zIndex = this_1.control.model.getIntersectItemsMaxZIndex(items[i]);\r\n if (zIndex > items[i].zIndex)\r\n return { value: true };\r\n if (zIndex === items[i].zIndex) {\r\n var result_1 = false;\r\n var sameZIndexItems = this_1.control.model.getIntersectItems(items[i]).filter(function (item) { return item.zIndex === items[i].zIndex; });\r\n sameZIndexItems.forEach(function (item) {\r\n if (_this.control.model.getItemIndex(item) > _this.control.model.getItemIndex(items[i])) {\r\n result_1 = true;\r\n return;\r\n }\r\n });\r\n return { value: result_1 };\r\n }\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < items.length; i++) {\r\n var state_1 = _loop_1(i);\r\n if (typeof state_1 === \"object\")\r\n return state_1.value;\r\n }\r\n return false;\r\n };\r\n return BringToFrontCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.BringToFrontCommand = BringToFrontCommand;\r\n\n\n/***/ }),\n/* 274 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MoveStepDownCommand = exports.MoveDownCommand = exports.MoveStepUpCommand = exports.MoveUpCommand = exports.MoveStepRightCommand = exports.MoveRightCommand = exports.MoveStepLeftCommand = exports.MoveLeftCommand = exports.MoveCommand = void 0;\r\nvar point_1 = __webpack_require__(1);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar MoveCommand = /** @class */ (function (_super) {\r\n __extends(MoveCommand, _super);\r\n function MoveCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MoveCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && !this.control.selection.isEmpty();\r\n };\r\n MoveCommand.prototype.executeCore = function (state, parameter) {\r\n var _this = this;\r\n this.control.history.beginTransaction();\r\n var selection = this.control.selection;\r\n selection.getSelectedShapes().forEach(function (shape) {\r\n var pos = _this.getPosition(shape.position);\r\n ModelUtils_1.ModelUtils.setShapePosition(_this.control.history, _this.control.model, shape, pos);\r\n ModelUtils_1.ModelUtils.updateShapeAttachedConnectors(_this.control.history, _this.control.model, shape);\r\n });\r\n var selectedItems = ModelUtils_1.ModelUtils.createSelectedItems(selection);\r\n selection.getSelectedConnectors().forEach(function (connector) {\r\n if (ModelUtils_1.ModelUtils.canMoveConnector(selectedItems, connector)) {\r\n var startPtIndex = connector.beginItem ? 1 : 0;\r\n var endPtIndex = connector.endItem ? (connector.points.length - 2) : (connector.points.length - 1);\r\n for (var i = startPtIndex; i <= endPtIndex; i++) {\r\n var pos = _this.getPosition(connector.points[i]);\r\n ModelUtils_1.ModelUtils.moveConnectorPoint(_this.control.history, connector, i, pos);\r\n }\r\n }\r\n });\r\n ModelUtils_1.ModelUtils.tryUpdateModelRectangle(this.control.history);\r\n this.control.history.endTransaction();\r\n return true;\r\n };\r\n return MoveCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.MoveCommand = MoveCommand;\r\nvar MoveLeftCommand = /** @class */ (function (_super) {\r\n __extends(MoveLeftCommand, _super);\r\n function MoveLeftCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MoveLeftCommand.prototype.getPosition = function (position) {\r\n return position.clone().offset(-unit_converter_1.UnitConverter.pixelsToTwips(1), 0);\r\n };\r\n return MoveLeftCommand;\r\n}(MoveCommand));\r\nexports.MoveLeftCommand = MoveLeftCommand;\r\nvar MoveStepLeftCommand = /** @class */ (function (_super) {\r\n __extends(MoveStepLeftCommand, _super);\r\n function MoveStepLeftCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MoveStepLeftCommand.prototype.getPosition = function (position) {\r\n if (this.control.settings.snapToGrid)\r\n return new point_1.Point(ModelUtils_1.ModelUtils.getSnappedPos(this.control.model, this.control.settings.gridSize, position.x - (this.control.settings.gridSize / 2 + 2), true), position.y);\r\n else\r\n return position.clone().offset(-this.control.settings.gridSize, 0);\r\n };\r\n return MoveStepLeftCommand;\r\n}(MoveCommand));\r\nexports.MoveStepLeftCommand = MoveStepLeftCommand;\r\nvar MoveRightCommand = /** @class */ (function (_super) {\r\n __extends(MoveRightCommand, _super);\r\n function MoveRightCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MoveRightCommand.prototype.getPosition = function (position) {\r\n return position.clone().offset(unit_converter_1.UnitConverter.pixelsToTwips(1), 0);\r\n };\r\n return MoveRightCommand;\r\n}(MoveCommand));\r\nexports.MoveRightCommand = MoveRightCommand;\r\nvar MoveStepRightCommand = /** @class */ (function (_super) {\r\n __extends(MoveStepRightCommand, _super);\r\n function MoveStepRightCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MoveStepRightCommand.prototype.getPosition = function (position) {\r\n if (this.control.settings.snapToGrid)\r\n return new point_1.Point(ModelUtils_1.ModelUtils.getSnappedPos(this.control.model, this.control.settings.gridSize, position.x + (this.control.settings.gridSize / 2 + 2), true), position.y);\r\n else\r\n return position.clone().offset(this.control.settings.gridSize, 0);\r\n };\r\n return MoveStepRightCommand;\r\n}(MoveCommand));\r\nexports.MoveStepRightCommand = MoveStepRightCommand;\r\nvar MoveUpCommand = /** @class */ (function (_super) {\r\n __extends(MoveUpCommand, _super);\r\n function MoveUpCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MoveUpCommand.prototype.getPosition = function (position) {\r\n return position.clone().offset(0, -unit_converter_1.UnitConverter.pixelsToTwips(1));\r\n };\r\n return MoveUpCommand;\r\n}(MoveCommand));\r\nexports.MoveUpCommand = MoveUpCommand;\r\nvar MoveStepUpCommand = /** @class */ (function (_super) {\r\n __extends(MoveStepUpCommand, _super);\r\n function MoveStepUpCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MoveStepUpCommand.prototype.getPosition = function (position) {\r\n if (this.control.settings.snapToGrid)\r\n return new point_1.Point(position.x, ModelUtils_1.ModelUtils.getSnappedPos(this.control.model, this.control.settings.gridSize, position.y - (this.control.settings.gridSize / 2 + 2), false));\r\n else\r\n return position.clone().offset(0, -this.control.settings.gridSize);\r\n };\r\n return MoveStepUpCommand;\r\n}(MoveCommand));\r\nexports.MoveStepUpCommand = MoveStepUpCommand;\r\nvar MoveDownCommand = /** @class */ (function (_super) {\r\n __extends(MoveDownCommand, _super);\r\n function MoveDownCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MoveDownCommand.prototype.getPosition = function (position) {\r\n return position.clone().offset(0, unit_converter_1.UnitConverter.pixelsToTwips(1));\r\n };\r\n return MoveDownCommand;\r\n}(MoveCommand));\r\nexports.MoveDownCommand = MoveDownCommand;\r\nvar MoveStepDownCommand = /** @class */ (function (_super) {\r\n __extends(MoveStepDownCommand, _super);\r\n function MoveStepDownCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MoveStepDownCommand.prototype.getPosition = function (position) {\r\n if (this.control.settings.snapToGrid)\r\n return new point_1.Point(position.x, ModelUtils_1.ModelUtils.getSnappedPos(this.control.model, this.control.settings.gridSize, position.y + (this.control.settings.gridSize / 2 + 2), false));\r\n else\r\n return position.clone().offset(0, this.control.settings.gridSize);\r\n };\r\n return MoveStepDownCommand;\r\n}(MoveCommand));\r\nexports.MoveStepDownCommand = MoveStepDownCommand;\r\n\n\n/***/ }),\n/* 275 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ToggleAutoZoomCommand = exports.ToggleAutoZoomToWidthCommand = exports.ToggleAutoZoomToContentCommand = exports.SwitchAutoZoomCommand = exports.FitToWidthCommand = exports.FitToScreenCommand = exports.ChangeZoomLevelItemsCommand = exports.ChangeZoomLevelTo200Command = exports.ChangeZoomLevelTo150Command = exports.ChangeZoomLevelTo125Command = exports.ChangeZoomLevelTo100Command = exports.ChangeZoomLevelTo75Command = exports.ChangeZoomLevelTo50Command = exports.ChangeZoomLevelTo25Command = exports.ChangeZoomLevelInPercentageCommand = exports.ChangeZoomLevelCommand = void 0;\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar Settings_1 = __webpack_require__(27);\r\nvar ChangeZoomLevelCommand = /** @class */ (function (_super) {\r\n __extends(ChangeZoomLevelCommand, _super);\r\n function ChangeZoomLevelCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeZoomLevelCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n ChangeZoomLevelCommand.prototype.getValue = function () {\r\n return this.control.view.getZoom();\r\n };\r\n ChangeZoomLevelCommand.prototype.executeCore = function (state, parameter) {\r\n this.control.settings.zoomLevel = parameter;\r\n this.control.settings.autoZoom = Settings_1.AutoZoomMode.Disabled;\r\n this.control.updateLayout(true);\r\n return true;\r\n };\r\n ChangeZoomLevelCommand.prototype.getItems = function () {\r\n return this.control.settings.zoomLevelItems.map(function (l) {\r\n return { value: l, text: l * 100 + \"%\" };\r\n });\r\n };\r\n return ChangeZoomLevelCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ChangeZoomLevelCommand = ChangeZoomLevelCommand;\r\nvar ChangeZoomLevelInPercentageCommand = /** @class */ (function (_super) {\r\n __extends(ChangeZoomLevelInPercentageCommand, _super);\r\n function ChangeZoomLevelInPercentageCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeZoomLevelInPercentageCommand.prototype.executeCore = function (state, parameter) {\r\n return _super.prototype.executeCore.call(this, state, parameter / 100);\r\n };\r\n ChangeZoomLevelInPercentageCommand.prototype.getValue = function () {\r\n return this.control.view.getZoom() * 100;\r\n };\r\n return ChangeZoomLevelInPercentageCommand;\r\n}(ChangeZoomLevelCommand));\r\nexports.ChangeZoomLevelInPercentageCommand = ChangeZoomLevelInPercentageCommand;\r\nvar ChangeZoomLevelExactlyCommand = /** @class */ (function (_super) {\r\n __extends(ChangeZoomLevelExactlyCommand, _super);\r\n function ChangeZoomLevelExactlyCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeZoomLevelExactlyCommand.prototype.getValue = function () {\r\n return this.control.view.getZoom() === this.exactValue;\r\n };\r\n ChangeZoomLevelExactlyCommand.prototype.executeCore = function (state, parameter) {\r\n _super.prototype.executeCore.call(this, state, this.exactValue);\r\n return true;\r\n };\r\n ChangeZoomLevelExactlyCommand.prototype.getItems = function () {\r\n return undefined;\r\n };\r\n return ChangeZoomLevelExactlyCommand;\r\n}(ChangeZoomLevelCommand));\r\nvar ChangeZoomLevelTo25Command = /** @class */ (function (_super) {\r\n __extends(ChangeZoomLevelTo25Command, _super);\r\n function ChangeZoomLevelTo25Command() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.exactValue = 0.25;\r\n return _this;\r\n }\r\n return ChangeZoomLevelTo25Command;\r\n}(ChangeZoomLevelExactlyCommand));\r\nexports.ChangeZoomLevelTo25Command = ChangeZoomLevelTo25Command;\r\nvar ChangeZoomLevelTo50Command = /** @class */ (function (_super) {\r\n __extends(ChangeZoomLevelTo50Command, _super);\r\n function ChangeZoomLevelTo50Command() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.exactValue = 0.5;\r\n return _this;\r\n }\r\n return ChangeZoomLevelTo50Command;\r\n}(ChangeZoomLevelExactlyCommand));\r\nexports.ChangeZoomLevelTo50Command = ChangeZoomLevelTo50Command;\r\nvar ChangeZoomLevelTo75Command = /** @class */ (function (_super) {\r\n __extends(ChangeZoomLevelTo75Command, _super);\r\n function ChangeZoomLevelTo75Command() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.exactValue = 0.75;\r\n return _this;\r\n }\r\n return ChangeZoomLevelTo75Command;\r\n}(ChangeZoomLevelExactlyCommand));\r\nexports.ChangeZoomLevelTo75Command = ChangeZoomLevelTo75Command;\r\nvar ChangeZoomLevelTo100Command = /** @class */ (function (_super) {\r\n __extends(ChangeZoomLevelTo100Command, _super);\r\n function ChangeZoomLevelTo100Command() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.exactValue = 1;\r\n return _this;\r\n }\r\n return ChangeZoomLevelTo100Command;\r\n}(ChangeZoomLevelExactlyCommand));\r\nexports.ChangeZoomLevelTo100Command = ChangeZoomLevelTo100Command;\r\nvar ChangeZoomLevelTo125Command = /** @class */ (function (_super) {\r\n __extends(ChangeZoomLevelTo125Command, _super);\r\n function ChangeZoomLevelTo125Command() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.exactValue = 1.25;\r\n return _this;\r\n }\r\n return ChangeZoomLevelTo125Command;\r\n}(ChangeZoomLevelExactlyCommand));\r\nexports.ChangeZoomLevelTo125Command = ChangeZoomLevelTo125Command;\r\nvar ChangeZoomLevelTo150Command = /** @class */ (function (_super) {\r\n __extends(ChangeZoomLevelTo150Command, _super);\r\n function ChangeZoomLevelTo150Command() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.exactValue = 1.5;\r\n return _this;\r\n }\r\n return ChangeZoomLevelTo150Command;\r\n}(ChangeZoomLevelExactlyCommand));\r\nexports.ChangeZoomLevelTo150Command = ChangeZoomLevelTo150Command;\r\nvar ChangeZoomLevelTo200Command = /** @class */ (function (_super) {\r\n __extends(ChangeZoomLevelTo200Command, _super);\r\n function ChangeZoomLevelTo200Command() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.exactValue = 2;\r\n return _this;\r\n }\r\n return ChangeZoomLevelTo200Command;\r\n}(ChangeZoomLevelExactlyCommand));\r\nexports.ChangeZoomLevelTo200Command = ChangeZoomLevelTo200Command;\r\nvar ChangeZoomLevelItemsCommand = /** @class */ (function (_super) {\r\n __extends(ChangeZoomLevelItemsCommand, _super);\r\n function ChangeZoomLevelItemsCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeZoomLevelItemsCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n ChangeZoomLevelItemsCommand.prototype.getValue = function () {\r\n return this.control.settings.zoomLevelItems;\r\n };\r\n ChangeZoomLevelItemsCommand.prototype.executeCore = function (state, parameter) {\r\n this.control.settings.zoomLevelItems = parameter;\r\n return true;\r\n };\r\n return ChangeZoomLevelItemsCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ChangeZoomLevelItemsCommand = ChangeZoomLevelItemsCommand;\r\nvar FitZoomCommandBase = /** @class */ (function (_super) {\r\n __extends(FitZoomCommandBase, _super);\r\n function FitZoomCommandBase() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n FitZoomCommandBase.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && !!this.control.render;\r\n };\r\n FitZoomCommandBase.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n FitZoomCommandBase.prototype.executeCore = function (state) {\r\n var zoomLevel = this.getZoomLevel();\r\n this.control.settings.zoomLevel = zoomLevel;\r\n this.control.settings.autoZoom = Settings_1.AutoZoomMode.Disabled;\r\n this.control.updateLayout(true);\r\n return true;\r\n };\r\n return FitZoomCommandBase;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nvar FitToScreenCommand = /** @class */ (function (_super) {\r\n __extends(FitToScreenCommand, _super);\r\n function FitToScreenCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n FitToScreenCommand.prototype.getZoomLevel = function () {\r\n return this.control.render.view.getActualAutoZoomLevel(Settings_1.AutoZoomMode.FitContent);\r\n };\r\n return FitToScreenCommand;\r\n}(FitZoomCommandBase));\r\nexports.FitToScreenCommand = FitToScreenCommand;\r\nvar FitToWidthCommand = /** @class */ (function (_super) {\r\n __extends(FitToWidthCommand, _super);\r\n function FitToWidthCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n FitToWidthCommand.prototype.getZoomLevel = function () {\r\n return this.control.render.view.getActualAutoZoomLevel(Settings_1.AutoZoomMode.FitToWidth);\r\n };\r\n return FitToWidthCommand;\r\n}(FitZoomCommandBase));\r\nexports.FitToWidthCommand = FitToWidthCommand;\r\nvar SwitchAutoZoomCommand = /** @class */ (function (_super) {\r\n __extends(SwitchAutoZoomCommand, _super);\r\n function SwitchAutoZoomCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SwitchAutoZoomCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n SwitchAutoZoomCommand.prototype.getValue = function () {\r\n return this.control.settings.autoZoom;\r\n };\r\n SwitchAutoZoomCommand.prototype.executeCore = function (state, value) {\r\n value = parseInt(value);\r\n if (this.control.settings.autoZoom === value)\r\n return false;\r\n if (value === Settings_1.AutoZoomMode.Disabled)\r\n this.control.settings.zoomLevel = this.control.view.getZoom();\r\n this.control.settings.autoZoom = value;\r\n this.control.updateLayout(true);\r\n return true;\r\n };\r\n return SwitchAutoZoomCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.SwitchAutoZoomCommand = SwitchAutoZoomCommand;\r\nvar ToggleAutoZoomToContentCommand = /** @class */ (function (_super) {\r\n __extends(ToggleAutoZoomToContentCommand, _super);\r\n function ToggleAutoZoomToContentCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToggleAutoZoomToContentCommand.prototype.getValue = function () {\r\n return this.control.settings.autoZoom === Settings_1.AutoZoomMode.FitContent;\r\n };\r\n ToggleAutoZoomToContentCommand.prototype.executeCore = function (state, value) {\r\n return _super.prototype.executeCore.call(this, state, Settings_1.AutoZoomMode.FitContent);\r\n };\r\n return ToggleAutoZoomToContentCommand;\r\n}(SwitchAutoZoomCommand));\r\nexports.ToggleAutoZoomToContentCommand = ToggleAutoZoomToContentCommand;\r\nvar ToggleAutoZoomToWidthCommand = /** @class */ (function (_super) {\r\n __extends(ToggleAutoZoomToWidthCommand, _super);\r\n function ToggleAutoZoomToWidthCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToggleAutoZoomToWidthCommand.prototype.getValue = function () {\r\n return this.control.settings.autoZoom === Settings_1.AutoZoomMode.FitToWidth;\r\n };\r\n ToggleAutoZoomToWidthCommand.prototype.executeCore = function (state, value) {\r\n return _super.prototype.executeCore.call(this, state, Settings_1.AutoZoomMode.FitToWidth);\r\n };\r\n return ToggleAutoZoomToWidthCommand;\r\n}(SwitchAutoZoomCommand));\r\nexports.ToggleAutoZoomToWidthCommand = ToggleAutoZoomToWidthCommand;\r\nvar ToggleAutoZoomCommand = /** @class */ (function (_super) {\r\n __extends(ToggleAutoZoomCommand, _super);\r\n function ToggleAutoZoomCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToggleAutoZoomCommand.prototype.isEnabled = function () {\r\n return _super.prototype.isEnabled.call(this) && !!this.control.render;\r\n };\r\n ToggleAutoZoomCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n ToggleAutoZoomCommand.prototype.getValue = function () {\r\n return this.control.settings.autoZoom;\r\n };\r\n ToggleAutoZoomCommand.prototype.executeCore = function (state, value) {\r\n var newValue;\r\n if (value === undefined)\r\n newValue = this.control.settings.autoZoom === Settings_1.AutoZoomMode.Disabled ? Settings_1.AutoZoomMode.FitContent : Settings_1.AutoZoomMode.Disabled;\r\n else\r\n newValue = value ? Settings_1.AutoZoomMode.FitContent : Settings_1.AutoZoomMode.Disabled;\r\n if (this.control.settings.autoZoom === newValue)\r\n return false;\r\n if (!newValue)\r\n this.control.settings.zoomLevel = this.control.view.getZoom();\r\n this.control.settings.autoZoom = newValue;\r\n this.control.updateLayout(true);\r\n return true;\r\n };\r\n return ToggleAutoZoomCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ToggleAutoZoomCommand = ToggleAutoZoomCommand;\r\n\n\n/***/ }),\n/* 276 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BindDocumentCommand = void 0;\r\nvar DataLayoutParameters_1 = __webpack_require__(103);\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar BindDocumentCommand = /** @class */ (function (_super) {\r\n __extends(BindDocumentCommand, _super);\r\n function BindDocumentCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n BindDocumentCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n BindDocumentCommand.prototype.executeCore = function (state, parameter) {\r\n if (!parameter || !Array.isArray(parameter.nodeDataSource))\r\n throw Error(\"Format exception\");\r\n this.performImportData(parameter);\r\n this.control.updateLayout(true);\r\n return true;\r\n };\r\n BindDocumentCommand.prototype.performImportData = function (parameter) {\r\n var dataSource = this.control.createDocumentDataSource(parameter.nodeDataSource, parameter.edgeDataSource, parameter.dataParameters, parameter.nodeDataImporter, parameter.edgeDataImporter);\r\n this.control.beginUpdateCanvas();\r\n this.permissionsProvider.lockPermissions();\r\n var layoutParameters = new DataLayoutParameters_1.DataLayoutParameters(this.control.settings, parameter.layoutParameters);\r\n dataSource.createModelItems(this.control.history, this.control.model, this.control.shapeDescriptionManager, this.control.selection, layoutParameters, this.control.settings.snapToGrid, this.control.settings.gridSize, this.control.measurer);\r\n this.permissionsProvider.unlockPermissions();\r\n this.control.endUpdateCanvas();\r\n };\r\n return BindDocumentCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.BindDocumentCommand = BindDocumentCommand;\r\n\n\n/***/ }),\n/* 277 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UnbindDocumentCommand = void 0;\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar UnbindDocumentCommand = /** @class */ (function (_super) {\r\n __extends(UnbindDocumentCommand, _super);\r\n function UnbindDocumentCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n UnbindDocumentCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n UnbindDocumentCommand.prototype.executeCore = function (state) {\r\n this.permissionsProvider.lockPermissions();\r\n this.control.deleteDocumentDataSource();\r\n ModelUtils_1.ModelUtils.deleteAllItems(this.control.history, this.control.model, this.control.selection);\r\n this.control.history.clear();\r\n this.permissionsProvider.unlockPermissions();\r\n return true;\r\n };\r\n return UnbindDocumentCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.UnbindDocumentCommand = UnbindDocumentCommand;\r\n\n\n/***/ }),\n/* 278 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LockCommand = void 0;\r\nvar ChangeLockedCommand_1 = __webpack_require__(146);\r\nvar LockCommand = /** @class */ (function (_super) {\r\n __extends(LockCommand, _super);\r\n function LockCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n LockCommand.prototype.getLockState = function () {\r\n return true;\r\n };\r\n return LockCommand;\r\n}(ChangeLockedCommand_1.ChangeLockedCommand));\r\nexports.LockCommand = LockCommand;\r\n\n\n/***/ }),\n/* 279 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UnLockCommand = void 0;\r\nvar ChangeLockedCommand_1 = __webpack_require__(146);\r\nvar UnLockCommand = /** @class */ (function (_super) {\r\n __extends(UnLockCommand, _super);\r\n function UnLockCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n UnLockCommand.prototype.getLockState = function () {\r\n return false;\r\n };\r\n return UnLockCommand;\r\n}(ChangeLockedCommand_1.ChangeLockedCommand));\r\nexports.UnLockCommand = UnLockCommand;\r\n\n\n/***/ }),\n/* 280 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CloneDownCommand = exports.CloneUpCommand = exports.CloneRightCommand = exports.CloneLeftCommand = exports.CloneCommand = void 0;\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar CloneCommand = /** @class */ (function (_super) {\r\n __extends(CloneCommand, _super);\r\n function CloneCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CloneCommand.prototype.isEnabled = function () {\r\n var items = this.control.selection.getSelectedItems();\r\n return _super.prototype.isEnabled.call(this) && items.length && items.length > 0 && this.permissionsProvider.canAddItems(items);\r\n };\r\n CloneCommand.prototype.executeCore = function (state, parameter) {\r\n var selectionRect = ModelUtils_1.ModelUtils.createRectangle(this.control.selection.getSelectedItems());\r\n ModelUtils_1.ModelUtils.cloneSelectionToOffset(this.control.history, this.control.model, undefined, this.control.selection, this.getOffsetX(selectionRect), this.getOffsetY(selectionRect));\r\n return true;\r\n };\r\n Object.defineProperty(CloneCommand.prototype, \"isPermissionsRequired\", {\r\n get: function () { return true; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CloneCommand.prototype.getOffsetX = function (selectionRect) {\r\n return 0;\r\n };\r\n CloneCommand.prototype.getOffsetY = function (selectionRect) {\r\n return 0;\r\n };\r\n return CloneCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.CloneCommand = CloneCommand;\r\nvar CloneLeftCommand = /** @class */ (function (_super) {\r\n __extends(CloneLeftCommand, _super);\r\n function CloneLeftCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CloneLeftCommand.prototype.getOffsetX = function (selectionRect) {\r\n return -selectionRect.width;\r\n };\r\n return CloneLeftCommand;\r\n}(CloneCommand));\r\nexports.CloneLeftCommand = CloneLeftCommand;\r\nvar CloneRightCommand = /** @class */ (function (_super) {\r\n __extends(CloneRightCommand, _super);\r\n function CloneRightCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CloneRightCommand.prototype.getOffsetX = function (selectionRect) {\r\n return selectionRect.width;\r\n };\r\n return CloneRightCommand;\r\n}(CloneCommand));\r\nexports.CloneRightCommand = CloneRightCommand;\r\nvar CloneUpCommand = /** @class */ (function (_super) {\r\n __extends(CloneUpCommand, _super);\r\n function CloneUpCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CloneUpCommand.prototype.getOffsetY = function (selectionRect) {\r\n return -selectionRect.height;\r\n };\r\n return CloneUpCommand;\r\n}(CloneCommand));\r\nexports.CloneUpCommand = CloneUpCommand;\r\nvar CloneDownCommand = /** @class */ (function (_super) {\r\n __extends(CloneDownCommand, _super);\r\n function CloneDownCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CloneDownCommand.prototype.getOffsetY = function (selectionRect) {\r\n return selectionRect.height;\r\n };\r\n return CloneDownCommand;\r\n}(CloneCommand));\r\nexports.CloneDownCommand = CloneDownCommand;\r\n\n\n/***/ }),\n/* 281 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeViewUnitsCommand = exports.ChangeUnitsCommand = void 0;\r\nvar ChangePagePropertyCommand_1 = __webpack_require__(75);\r\nvar ChangeUnitsHistoryItem_1 = __webpack_require__(282);\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar LocalizationService_1 = __webpack_require__(35);\r\nvar ChangeUnitsCommand = /** @class */ (function (_super) {\r\n __extends(ChangeUnitsCommand, _super);\r\n function ChangeUnitsCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeUnitsCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n ChangeUnitsCommand.prototype.getValue = function () {\r\n return this.control.model.units;\r\n };\r\n ChangeUnitsCommand.prototype.createHistoryItems = function (parameter) {\r\n return [new ChangeUnitsHistoryItem_1.ChangeUnitsHistoryItem(parameter)];\r\n };\r\n ChangeUnitsCommand.prototype.getItems = function () {\r\n return Object.keys(LocalizationService_1.DiagramLocalizationService.unitItems).map(function (key) {\r\n return { value: parseInt(key), text: LocalizationService_1.DiagramLocalizationService.unitItems[key] };\r\n });\r\n };\r\n return ChangeUnitsCommand;\r\n}(ChangePagePropertyCommand_1.ChangePagePropertyCommand));\r\nexports.ChangeUnitsCommand = ChangeUnitsCommand;\r\nvar ChangeViewUnitsCommand = /** @class */ (function (_super) {\r\n __extends(ChangeViewUnitsCommand, _super);\r\n function ChangeViewUnitsCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeViewUnitsCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n ChangeViewUnitsCommand.prototype.getValue = function () {\r\n return this.control.settings.viewUnits;\r\n };\r\n ChangeViewUnitsCommand.prototype.executeCore = function (state, parameter) {\r\n this.control.settings.viewUnits = parameter;\r\n return true;\r\n };\r\n ChangeViewUnitsCommand.prototype.getItems = function () {\r\n return Object.keys(LocalizationService_1.DiagramLocalizationService.unitItems).map(function (key) {\r\n return { value: parseInt(key), text: LocalizationService_1.DiagramLocalizationService.unitItems[key] };\r\n });\r\n };\r\n return ChangeViewUnitsCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ChangeViewUnitsCommand = ChangeViewUnitsCommand;\r\n\n\n/***/ }),\n/* 282 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeUnitsHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ChangeUnitsHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangeUnitsHistoryItem, _super);\r\n function ChangeUnitsHistoryItem(units) {\r\n var _this = _super.call(this) || this;\r\n _this.units = units;\r\n return _this;\r\n }\r\n ChangeUnitsHistoryItem.prototype.redo = function (manipulator) {\r\n this.oldUnits = manipulator.model.units;\r\n manipulator.model.units = this.units;\r\n };\r\n ChangeUnitsHistoryItem.prototype.undo = function (manipulator) {\r\n manipulator.model.units = this.oldUnits;\r\n };\r\n return ChangeUnitsHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ChangeUnitsHistoryItem = ChangeUnitsHistoryItem;\r\n\n\n/***/ }),\n/* 283 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangePageColorCommand = void 0;\r\nvar ChangePagePropertyCommand_1 = __webpack_require__(75);\r\nvar ChangePageColorHistoryItem_1 = __webpack_require__(284);\r\nvar Model_1 = __webpack_require__(59);\r\nvar color_1 = __webpack_require__(22);\r\nvar ChangePageColorCommand = /** @class */ (function (_super) {\r\n __extends(ChangePageColorCommand, _super);\r\n function ChangePageColorCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangePageColorCommand.prototype.getValue = function () {\r\n return color_1.ColorUtils.colorToHash(this.control.model.pageColor);\r\n };\r\n ChangePageColorCommand.prototype.getDefaultValue = function () {\r\n return color_1.ColorUtils.colorToHash(Model_1.DiagramModel.defaultPageColor);\r\n };\r\n ChangePageColorCommand.prototype.createHistoryItems = function (parameter) {\r\n return [new ChangePageColorHistoryItem_1.ChangePageColorHistoryItem(color_1.ColorUtils.fromString(parameter))];\r\n };\r\n return ChangePageColorCommand;\r\n}(ChangePagePropertyCommand_1.ChangePagePropertyCommand));\r\nexports.ChangePageColorCommand = ChangePageColorCommand;\r\n\n\n/***/ }),\n/* 284 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangePageColorHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ChangePageColorHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangePageColorHistoryItem, _super);\r\n function ChangePageColorHistoryItem(value) {\r\n var _this = _super.call(this) || this;\r\n _this.value = value;\r\n return _this;\r\n }\r\n ChangePageColorHistoryItem.prototype.redo = function (manipulator) {\r\n this.oldValue = manipulator.model.pageColor;\r\n manipulator.changePageColor(this.value);\r\n };\r\n ChangePageColorHistoryItem.prototype.undo = function (manipulator) {\r\n manipulator.changePageColor(this.oldValue);\r\n };\r\n return ChangePageColorHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ChangePageColorHistoryItem = ChangePageColorHistoryItem;\r\n\n\n/***/ }),\n/* 285 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeShowGridCommand = void 0;\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar ChangeShowGridCommand = /** @class */ (function (_super) {\r\n __extends(ChangeShowGridCommand, _super);\r\n function ChangeShowGridCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeShowGridCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n ChangeShowGridCommand.prototype.executeCore = function (state, parameter) {\r\n var newValue = parameter === undefined ? !this.control.settings.showGrid : !!parameter;\r\n if (this.control.settings.showGrid !== newValue) {\r\n this.control.settings.showGrid = newValue;\r\n return true;\r\n }\r\n return false;\r\n };\r\n ChangeShowGridCommand.prototype.getValue = function () {\r\n return this.control.settings.showGrid;\r\n };\r\n return ChangeShowGridCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ChangeShowGridCommand = ChangeShowGridCommand;\r\n\n\n/***/ }),\n/* 286 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ToggleFullscreenCommand = void 0;\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar ToggleFullscreenCommand = /** @class */ (function (_super) {\r\n __extends(ToggleFullscreenCommand, _super);\r\n function ToggleFullscreenCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToggleFullscreenCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n ToggleFullscreenCommand.prototype.getValue = function () {\r\n return this.control.settings.fullscreen;\r\n };\r\n ToggleFullscreenCommand.prototype.executeCore = function (state, parameter) {\r\n var newValue = typeof parameter === \"boolean\" ? parameter : !state.value;\r\n if (this.control.settings.fullscreen !== newValue) {\r\n this.control.settings.fullscreen = !state.value;\r\n this.control.notifyToggleFullscreen(this.control.settings.fullscreen);\r\n }\r\n return true;\r\n };\r\n return ToggleFullscreenCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ToggleFullscreenCommand = ToggleFullscreenCommand;\r\n\n\n/***/ }),\n/* 287 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ToggleSimpleViewCommand = void 0;\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar ToggleSimpleViewCommand = /** @class */ (function (_super) {\r\n __extends(ToggleSimpleViewCommand, _super);\r\n function ToggleSimpleViewCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToggleSimpleViewCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n ToggleSimpleViewCommand.prototype.getValue = function () {\r\n return this.control.settings.simpleView;\r\n };\r\n ToggleSimpleViewCommand.prototype.executeCore = function (state, parameter) {\r\n if (typeof parameter === \"boolean\")\r\n this.control.settings.simpleView = parameter;\r\n else if (parameter === undefined)\r\n this.control.settings.simpleView = !state.value;\r\n this.control.updateLayout(true);\r\n return true;\r\n };\r\n return ToggleSimpleViewCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ToggleSimpleViewCommand = ToggleSimpleViewCommand;\r\n\n\n/***/ }),\n/* 288 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ToggleReadOnlyCommand = void 0;\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar ToggleReadOnlyCommand = /** @class */ (function (_super) {\r\n __extends(ToggleReadOnlyCommand, _super);\r\n function ToggleReadOnlyCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToggleReadOnlyCommand.prototype.isEnabledInReadOnlyMode = function () {\r\n return true;\r\n };\r\n ToggleReadOnlyCommand.prototype.getValue = function () {\r\n return this.control.settings.readOnly;\r\n };\r\n ToggleReadOnlyCommand.prototype.executeCore = function (state, parameter) {\r\n if (typeof parameter === \"boolean\")\r\n this.control.settings.readOnly = parameter;\r\n else if (parameter === undefined)\r\n this.control.settings.readOnly = !state.value;\r\n return true;\r\n };\r\n return ToggleReadOnlyCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ToggleReadOnlyCommand = ToggleReadOnlyCommand;\r\n\n\n/***/ }),\n/* 289 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EditShapeImageCommand = void 0;\r\nvar EditShapeImageCommandBase_1 = __webpack_require__(104);\r\nvar EditShapeImageCommand = /** @class */ (function (_super) {\r\n __extends(EditShapeImageCommand, _super);\r\n function EditShapeImageCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n EditShapeImageCommand.prototype.isEnabled = function () {\r\n var selectedShape = this.getSelectedShape();\r\n return _super.prototype.isEnabled.call(this) && !selectedShape.image.isEmpty;\r\n };\r\n return EditShapeImageCommand;\r\n}(EditShapeImageCommandBase_1.EditShapeImageCommandBase));\r\nexports.EditShapeImageCommand = EditShapeImageCommand;\r\n\n\n/***/ }),\n/* 290 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PasteSelectionInPositionCommand = void 0;\r\nvar PasteSelectoinCommandBase_1 = __webpack_require__(142);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar PasteSelectionInPositionCommand = /** @class */ (function (_super) {\r\n __extends(PasteSelectionInPositionCommand, _super);\r\n function PasteSelectionInPositionCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PasteSelectionInPositionCommand.prototype.calculateSelectionOffset = function (items, position) {\r\n var selectionPos = items.reduce(function (min, i) {\r\n return {\r\n x: Math.min(min.x, i instanceof Shape_1.Shape ? i.position.x : i instanceof Connector_1.Connector ? i.getMinX() : Number.MAX_VALUE),\r\n y: Math.min(min.y, i instanceof Shape_1.Shape ? i.position.y : i instanceof Connector_1.Connector ? i.getMinY() : Number.MAX_VALUE)\r\n };\r\n }, {\r\n x: Number.MAX_VALUE,\r\n y: Number.MAX_VALUE\r\n });\r\n var newSelectionPos = this.control.render.getModelPointByEventPoint(position.x, position.y);\r\n this.offsetX = newSelectionPos.x - selectionPos.x;\r\n this.offsetY = newSelectionPos.y - selectionPos.y;\r\n };\r\n PasteSelectionInPositionCommand.prototype.getShapeNewPosition = function (position) {\r\n var newPosition = position.clone().offset(this.offsetX, this.offsetY);\r\n return PasteSelectoinCommandBase_1.PasteSelectionCommandBase.getShapeNewPosition(this.control.model, newPosition);\r\n };\r\n PasteSelectionInPositionCommand.prototype.changeConnectorPoints = function (connector) {\r\n var _this = this;\r\n connector.points.forEach(function (pt) {\r\n pt.x += _this.offsetX;\r\n pt.y += _this.offsetY;\r\n });\r\n PasteSelectoinCommandBase_1.PasteSelectionCommandBase.changeConnectorPoints(this.control.model, connector);\r\n };\r\n return PasteSelectionInPositionCommand;\r\n}(PasteSelectoinCommandBase_1.PasteSelectionCommandBase));\r\nexports.PasteSelectionInPositionCommand = PasteSelectionInPositionCommand;\r\n\n\n/***/ }),\n/* 291 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ImportXMLCommand = void 0;\r\nvar XMLImporter_1 = __webpack_require__(292);\r\nvar ExportImportCommandBase_1 = __webpack_require__(54);\r\nvar ImportXMLCommand = /** @class */ (function (_super) {\r\n __extends(ImportXMLCommand, _super);\r\n function ImportXMLCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ImportXMLCommand.prototype.executeCore = function (state, parameter) {\r\n var importer = new XMLImporter_1.XmlImporter(this.control.shapeDescriptionManager, parameter);\r\n var model = importer.import();\r\n this.control.importModel(model);\r\n return true;\r\n };\r\n return ImportXMLCommand;\r\n}(ExportImportCommandBase_1.ExportImportCommandBase));\r\nexports.ImportXMLCommand = ImportXMLCommand;\r\n\n\n/***/ }),\n/* 292 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XmlImporter = void 0;\r\nvar Connector_1 = __webpack_require__(7);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar ImporterBase_1 = __webpack_require__(134);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar ShapeDescriptionManager_1 = __webpack_require__(91);\r\nvar size_1 = __webpack_require__(2);\r\nvar point_1 = __webpack_require__(1);\r\nvar ImportUtils_1 = __webpack_require__(95);\r\nvar color_1 = __webpack_require__(22);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar XmlImporter = /** @class */ (function (_super) {\r\n __extends(XmlImporter, _super);\r\n function XmlImporter(shapeDescriptionManager, xml) {\r\n var _this = _super.call(this, shapeDescriptionManager) || this;\r\n _this.doc = ImportUtils_1.ImportUtils.createDocument(xml);\r\n return _this;\r\n }\r\n XmlImporter.prototype.getObject = function () {\r\n return this.doc;\r\n };\r\n XmlImporter.prototype.getPageObject = function (obj) {\r\n var pageElements = this.doc.querySelectorAll(\"[ItemKind='DiagramRoot']\");\r\n return pageElements && pageElements[0];\r\n };\r\n XmlImporter.prototype.getShapeObjects = function (obj) {\r\n var shapeObjs = [];\r\n this.doc.querySelectorAll(\"[ItemKind='DiagramRoot'] > Children > [ItemKind='DiagramShape']\").forEach(function (obj) { shapeObjs.push(obj); });\r\n this.doc.querySelectorAll(\"[ItemKind='DiagramRoot'] > Children > [ItemKind='DiagramContainer']\").forEach(function (obj) { shapeObjs.push(obj); });\r\n return shapeObjs;\r\n };\r\n XmlImporter.prototype.getConnectorObjects = function (obj) {\r\n var connectorObjs = [];\r\n this.doc.querySelectorAll(\"[ItemKind='DiagramRoot'] > Children > [ItemKind='DiagramConnector']\").forEach(function (obj) { connectorObjs.push(obj); });\r\n return connectorObjs;\r\n };\r\n XmlImporter.prototype.importPageSettings = function (model, pageObj) {\r\n if (!pageObj)\r\n return;\r\n var pageSizeAttr = pageObj.getAttribute(\"PageSize\");\r\n var pageSize = this.getSize(pageSizeAttr);\r\n if (pageSize) {\r\n model.size = pageSize.clone();\r\n model.pageSize = pageSize.clone();\r\n }\r\n };\r\n XmlImporter.prototype.importShape = function (shapeObj) {\r\n var positionAttr = shapeObj.getAttribute(\"Position\");\r\n var position = this.getPoint(positionAttr);\r\n var shapeAttr = shapeObj.getAttribute(\"Shape\");\r\n var shapeType = this.getShapeType(shapeAttr);\r\n var description = this.shapeDescriptionManager.get(shapeType);\r\n var shape = new Shape_1.Shape(description || ShapeDescriptionManager_1.ShapeDescriptionManager.default, position);\r\n shape.key = this.getItemKey(shapeObj);\r\n var sizeAttr = shapeObj.getAttribute(\"Size\");\r\n var size = this.getSize(sizeAttr);\r\n if (size)\r\n shape.size = size;\r\n var contentAttr = shapeObj.getAttribute(\"Content\");\r\n if (typeof contentAttr === \"string\")\r\n shape.text = contentAttr;\r\n else {\r\n var headerAttr = shapeObj.getAttribute(\"Header\");\r\n if (typeof headerAttr === \"string\")\r\n shape.text = headerAttr;\r\n }\r\n this.importStyle(shapeObj, shape);\r\n return shape;\r\n };\r\n XmlImporter.prototype.importShapeChildren = function (shapeObj, shape) {\r\n var childShapeObjs = [];\r\n shapeObj.setAttribute(\"dxDiagram\", \"\");\r\n this.doc.querySelectorAll(\"[dxDiagram] > Children > [ItemKind='DiagramShape']\").forEach(function (obj) { childShapeObjs.push(obj); });\r\n this.doc.querySelectorAll(\"[dxDiagram] > Children > [ItemKind='DiagramContainer']\").forEach(function (obj) { childShapeObjs.push(obj); });\r\n shapeObj.removeAttribute(\"dxDiagram\");\r\n var result = [];\r\n if (!childShapeObjs)\r\n return result;\r\n for (var i = 0; i < childShapeObjs.length; i++) {\r\n var childShapeObj = childShapeObjs[i];\r\n var childShape = this.importShape(childShapeObj);\r\n childShape.key = shape.key + \",\" + childShape.key;\r\n var rect = shape.clientRectangle;\r\n childShape.position = childShape.position.clone().offset(rect.x, rect.y);\r\n if (!shape[\"childKeys\"])\r\n shape[\"childKeys\"] = [];\r\n shape[\"childKeys\"].push(childShape.key);\r\n result.push(childShape);\r\n result = result.concat(this.importShapeChildren(childShapeObj, childShape));\r\n }\r\n return result;\r\n };\r\n XmlImporter.prototype.importConnector = function (connectorObj) {\r\n var _this = this;\r\n var points = [];\r\n var beginPointAttr = connectorObj.getAttribute(\"BeginPoint\");\r\n var beginPoint = this.getPoint(beginPointAttr);\r\n if (beginPoint)\r\n points.push(beginPoint);\r\n var pointsAttr = connectorObj.getAttribute(\"Points\");\r\n pointsAttr.split(\" \").forEach(function (pointAttr) {\r\n var point = _this.getPoint(pointAttr);\r\n if (point)\r\n points.push(point);\r\n });\r\n var endPointAttr = connectorObj.getAttribute(\"EndPoint\");\r\n var endPoint = this.getPoint(endPointAttr);\r\n if (endPoint)\r\n points.push(endPoint);\r\n var connector = new Connector_1.Connector(points);\r\n connector.key = this.getItemKey(connectorObj);\r\n var endItemPointIndexAttr = connectorObj.getAttribute(\"EndItemPointIndex\");\r\n var endItemPointIndex = parseInt(endItemPointIndexAttr);\r\n connector.endConnectionPointIndex = !isNaN(endItemPointIndex) ? endItemPointIndex : -1;\r\n var beginItemPointIndexAttr = connectorObj.getAttribute(\"BeginItemPointIndex\");\r\n var beginItemPointIndex = parseInt(beginItemPointIndexAttr);\r\n connector.beginConnectionPointIndex = !isNaN(beginItemPointIndex) ? beginItemPointIndex : -1;\r\n var endItemAttr = connectorObj.getAttribute(\"EndItem\");\r\n if (endItemAttr !== undefined)\r\n this.assert(endItemAttr, \"string\");\r\n var beginItemAttr = connectorObj.getAttribute(\"BeginItem\");\r\n if (beginItemAttr !== undefined)\r\n this.assert(beginItemAttr, \"string\");\r\n connector[\"endItemKey\"] = endItemAttr;\r\n connector[\"beginItemKey\"] = beginItemAttr;\r\n var contentAttr = connectorObj.getAttribute(\"Content\");\r\n if (typeof contentAttr === \"string\")\r\n connector.setText(contentAttr);\r\n this.importStyle(connectorObj, connector);\r\n return connector;\r\n };\r\n XmlImporter.prototype.importStyle = function (obj, item) {\r\n var backgroundAttr = obj.getAttribute(\"Background\");\r\n if (typeof backgroundAttr === \"string\")\r\n item.style[\"fill\"] = this.getColor(backgroundAttr);\r\n var strokeAttr = obj.getAttribute(\"Stroke\");\r\n if (typeof strokeAttr === \"string\")\r\n item.style[\"stroke\"] = this.getColor(strokeAttr);\r\n var foregroundAttr = obj.getAttribute(\"Foreground\");\r\n if (typeof foregroundAttr === \"string\")\r\n item.styleText[\"fill\"] = this.getColor(foregroundAttr);\r\n var fontFamilyAttr = obj.getAttribute(\"FontFamily\");\r\n if (typeof fontFamilyAttr === \"string\")\r\n item.styleText[\"font-family\"] = fontFamilyAttr;\r\n var fontSizeAttr = obj.getAttribute(\"FontSize\");\r\n if (typeof fontSizeAttr === \"string\")\r\n item.styleText[\"font-size\"] = fontSizeAttr;\r\n var fontWeightAttr = obj.getAttribute(\"FontWeight\");\r\n if (fontWeightAttr === \"Bold\")\r\n item.styleText[\"font-weight\"] = \"bold\";\r\n var fontStyleAttr = obj.getAttribute(\"FontStyle\");\r\n if (fontStyleAttr === \"Italic\")\r\n item.styleText[\"font-style\"] = \"italic\";\r\n var textDecorationsAttr = obj.getAttribute(\"TextDecorations\");\r\n if (textDecorationsAttr === \"Underline\")\r\n item.styleText[\"text-decoration\"] = \"underline\";\r\n var textAlignmentAttr = obj.getAttribute(\"TextAlignment\");\r\n if (textAlignmentAttr === \"Left\")\r\n item.styleText[\"text-anchor\"] = \"start\";\r\n else if (textAlignmentAttr === \"Right\")\r\n item.styleText[\"text-anchor\"] = \"end\";\r\n else if (textAlignmentAttr === \"Center\")\r\n item.styleText[\"text-anchor\"] = \"middle\";\r\n };\r\n XmlImporter.prototype.getShapeType = function (shapeAttr) {\r\n if (XmlImporter.shapeTypes[shapeAttr])\r\n return XmlImporter.shapeTypes[shapeAttr];\r\n if (shapeAttr && shapeAttr.toLowerCase().indexOf(\"container\") > -1)\r\n return ShapeTypes_1.ShapeTypes.VerticalContainer;\r\n return ShapeTypes_1.ShapeTypes.Rectangle;\r\n };\r\n XmlImporter.prototype.getItemKey = function (obj) {\r\n return (parseInt(obj.tagName.replace(\"Item\", \"\")) - 1).toString();\r\n };\r\n XmlImporter.prototype.getNumbers = function (s) {\r\n var parts = s.split(\",\");\r\n return parts && parts.length ? parts.map(function (part) { return +part; }) : [];\r\n };\r\n XmlImporter.prototype.getSize = function (attrValue) {\r\n if (attrValue) {\r\n var numbers = this.getNumbers(attrValue);\r\n if (numbers.length >= 2) {\r\n this.assert(numbers[0], \"number\");\r\n this.assert(numbers[1], \"number\");\r\n return new size_1.Size(unit_converter_1.UnitConverter.pixelsToTwips(numbers[0]), unit_converter_1.UnitConverter.pixelsToTwips(numbers[1]));\r\n }\r\n }\r\n };\r\n XmlImporter.prototype.getPoint = function (attrValue) {\r\n if (attrValue) {\r\n var numbers = this.getNumbers(attrValue);\r\n if (numbers.length >= 2) {\r\n this.assert(numbers[0], \"number\");\r\n this.assert(numbers[1], \"number\");\r\n return new point_1.Point(unit_converter_1.UnitConverter.pixelsToTwips(numbers[0]), unit_converter_1.UnitConverter.pixelsToTwips(numbers[1]));\r\n }\r\n }\r\n };\r\n XmlImporter.prototype.getColor = function (attrValue) {\r\n attrValue = attrValue.charAt(0) === \"#\" ? attrValue.substr(1) : attrValue;\r\n var color = parseInt(attrValue, 16);\r\n return !isNaN(color) ? color_1.ColorUtils.colorToHash(color) : undefined;\r\n };\r\n XmlImporter.shapeTypes = {\r\n \"BasicShapes.Rectangle\": ShapeTypes_1.ShapeTypes.Rectangle,\r\n \"BasicShapes.Ellipse\": ShapeTypes_1.ShapeTypes.Ellipse,\r\n \"BasicShapes.Triangle\": ShapeTypes_1.ShapeTypes.Triangle,\r\n \"BasicShapes.Pentagon\": ShapeTypes_1.ShapeTypes.Pentagon,\r\n \"BasicShapes.Hexagon\": ShapeTypes_1.ShapeTypes.Hexagon,\r\n \"BasicShapes.Octagon\": ShapeTypes_1.ShapeTypes.Octagon,\r\n \"BasicShapes.Diamond\": ShapeTypes_1.ShapeTypes.Diamond,\r\n \"BasicShapes.Cross\": ShapeTypes_1.ShapeTypes.Cross,\r\n \"BasicShapes.Star5\": ShapeTypes_1.ShapeTypes.Star,\r\n \"BasicFlowchartShapes.StartEnd\": ShapeTypes_1.ShapeTypes.Terminator,\r\n \"BasicFlowchartShapes.Data\": ShapeTypes_1.ShapeTypes.Data,\r\n \"BasicFlowchartShapes.Database\": ShapeTypes_1.ShapeTypes.Database,\r\n \"BasicFlowchartShapes.ExternalData\": ShapeTypes_1.ShapeTypes.StoredData,\r\n \"BasicFlowchartShapes.Process\": ShapeTypes_1.ShapeTypes.Process,\r\n \"BasicFlowchartShapes.Decision\": ShapeTypes_1.ShapeTypes.Decision,\r\n \"BasicFlowchartShapes.Subprocess\": ShapeTypes_1.ShapeTypes.PredefinedProcess,\r\n \"BasicFlowchartShapes.Document\": ShapeTypes_1.ShapeTypes.Document,\r\n \"BasicFlowchartShapes.Custom1\": ShapeTypes_1.ShapeTypes.ManualInput,\r\n \"BasicFlowchartShapes.Custom2\": ShapeTypes_1.ShapeTypes.ManualOperation,\r\n \"ArrowShapes.SimpleArrow\": ShapeTypes_1.ShapeTypes.ArrowLeft,\r\n \"ArrowShapes.SimpleDoubleArrow\": ShapeTypes_1.ShapeTypes.ArrowLeftRight\r\n };\r\n return XmlImporter;\r\n}(ImporterBase_1.ImporterBase));\r\nexports.XmlImporter = XmlImporter;\r\n\n\n/***/ }),\n/* 293 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.InsertShapeImageCommand = void 0;\r\nvar EditShapeImageCommandBase_1 = __webpack_require__(104);\r\nvar InsertShapeImageCommand = /** @class */ (function (_super) {\r\n __extends(InsertShapeImageCommand, _super);\r\n function InsertShapeImageCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n InsertShapeImageCommand.prototype.isEnabled = function () {\r\n var selectedShape = this.getSelectedShape();\r\n return _super.prototype.isEnabled.call(this) && selectedShape.image.isEmpty;\r\n };\r\n return InsertShapeImageCommand;\r\n}(EditShapeImageCommandBase_1.EditShapeImageCommandBase));\r\nexports.InsertShapeImageCommand = InsertShapeImageCommand;\r\n\n\n/***/ }),\n/* 294 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DeleteShapeImageCommand = void 0;\r\nvar EditShapeImageCommandBase_1 = __webpack_require__(104);\r\nvar DeleteShapeImageCommand = /** @class */ (function (_super) {\r\n __extends(DeleteShapeImageCommand, _super);\r\n function DeleteShapeImageCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DeleteShapeImageCommand.prototype.isEnabled = function () {\r\n var selectedShape = this.getSelectedShape();\r\n return _super.prototype.isEnabled.call(this) && !selectedShape.image.isEmpty;\r\n };\r\n DeleteShapeImageCommand.prototype.executeCore = function (state, parameter) {\r\n return _super.prototype.executeCore.call(this, state, undefined);\r\n };\r\n return DeleteShapeImageCommand;\r\n}(EditShapeImageCommandBase_1.EditShapeImageCommandBase));\r\nexports.DeleteShapeImageCommand = DeleteShapeImageCommand;\r\n\n\n/***/ }),\n/* 295 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeStrokeStyleCommand = void 0;\r\nvar ChangeStylePropertyCommand_1 = __webpack_require__(73);\r\nvar ChangeStrokeStyleCommand = /** @class */ (function (_super) {\r\n __extends(ChangeStrokeStyleCommand, _super);\r\n function ChangeStrokeStyleCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeStrokeStyleCommand.prototype.getStyleProperty = function () {\r\n return \"stroke-dasharray\";\r\n };\r\n return ChangeStrokeStyleCommand;\r\n}(ChangeStylePropertyCommand_1.ChangeStylePropertyCommand));\r\nexports.ChangeStrokeStyleCommand = ChangeStrokeStyleCommand;\r\n\n\n/***/ }),\n/* 296 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeStrokeWidthCommand = void 0;\r\nvar ChangeStylePropertyCommand_1 = __webpack_require__(73);\r\nvar ChangeStrokeWidthCommand = /** @class */ (function (_super) {\r\n __extends(ChangeStrokeWidthCommand, _super);\r\n function ChangeStrokeWidthCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeStrokeWidthCommand.prototype.getStyleProperty = function () {\r\n return \"stroke-width\";\r\n };\r\n return ChangeStrokeWidthCommand;\r\n}(ChangeStylePropertyCommand_1.ChangeStylePropertyCommand));\r\nexports.ChangeStrokeWidthCommand = ChangeStrokeWidthCommand;\r\n\n\n/***/ }),\n/* 297 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AutoLayoutTreeVerticalBottomToTopCommand = void 0;\r\nvar LayoutSettings_1 = __webpack_require__(20);\r\nvar AutoLayoutTreeVerticalCommand_1 = __webpack_require__(138);\r\nvar AutoLayoutTreeVerticalBottomToTopCommand = /** @class */ (function (_super) {\r\n __extends(AutoLayoutTreeVerticalBottomToTopCommand, _super);\r\n function AutoLayoutTreeVerticalBottomToTopCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n AutoLayoutTreeVerticalBottomToTopCommand.prototype.createLayoutSettings = function () {\r\n var settings = _super.prototype.createLayoutSettings.call(this);\r\n settings.direction = LayoutSettings_1.LogicalDirectionKind.Backward;\r\n return settings;\r\n };\r\n return AutoLayoutTreeVerticalBottomToTopCommand;\r\n}(AutoLayoutTreeVerticalCommand_1.AutoLayoutTreeVerticalCommand));\r\nexports.AutoLayoutTreeVerticalBottomToTopCommand = AutoLayoutTreeVerticalBottomToTopCommand;\r\n\n\n/***/ }),\n/* 298 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AutoLayoutTreeHorizontalRightToLeftCommand = void 0;\r\nvar LayoutSettings_1 = __webpack_require__(20);\r\nvar AutoLayoutTreeHorizontalCommand_1 = __webpack_require__(144);\r\nvar AutoLayoutTreeHorizontalRightToLeftCommand = /** @class */ (function (_super) {\r\n __extends(AutoLayoutTreeHorizontalRightToLeftCommand, _super);\r\n function AutoLayoutTreeHorizontalRightToLeftCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n AutoLayoutTreeHorizontalRightToLeftCommand.prototype.createLayoutSettings = function () {\r\n var settings = _super.prototype.createLayoutSettings.call(this);\r\n settings.direction = LayoutSettings_1.LogicalDirectionKind.Backward;\r\n return settings;\r\n };\r\n return AutoLayoutTreeHorizontalRightToLeftCommand;\r\n}(AutoLayoutTreeHorizontalCommand_1.AutoLayoutTreeHorizontalCommand));\r\nexports.AutoLayoutTreeHorizontalRightToLeftCommand = AutoLayoutTreeHorizontalRightToLeftCommand;\r\n\n\n/***/ }),\n/* 299 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AutoLayoutLayeredVerticalBottomToTopCommand = void 0;\r\nvar LayoutSettings_1 = __webpack_require__(20);\r\nvar AutoLayoutLayeredVerticalCommand_1 = __webpack_require__(145);\r\nvar AutoLayoutLayeredVerticalBottomToTopCommand = /** @class */ (function (_super) {\r\n __extends(AutoLayoutLayeredVerticalBottomToTopCommand, _super);\r\n function AutoLayoutLayeredVerticalBottomToTopCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n AutoLayoutLayeredVerticalBottomToTopCommand.prototype.createLayoutSettings = function () {\r\n var settings = _super.prototype.createLayoutSettings.call(this);\r\n settings.direction = LayoutSettings_1.LogicalDirectionKind.Backward;\r\n return settings;\r\n };\r\n return AutoLayoutLayeredVerticalBottomToTopCommand;\r\n}(AutoLayoutLayeredVerticalCommand_1.AutoLayoutLayeredVerticalCommand));\r\nexports.AutoLayoutLayeredVerticalBottomToTopCommand = AutoLayoutLayeredVerticalBottomToTopCommand;\r\n\n\n/***/ }),\n/* 300 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AutoLayoutLayeredHorizontalRightToLeftCommand = void 0;\r\nvar LayoutSettings_1 = __webpack_require__(20);\r\nvar AutoLayoutLayeredHorizontalCommand_1 = __webpack_require__(143);\r\nvar AutoLayoutLayeredHorizontalRightToLeftCommand = /** @class */ (function (_super) {\r\n __extends(AutoLayoutLayeredHorizontalRightToLeftCommand, _super);\r\n function AutoLayoutLayeredHorizontalRightToLeftCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n AutoLayoutLayeredHorizontalRightToLeftCommand.prototype.createLayoutSettings = function () {\r\n var settings = _super.prototype.createLayoutSettings.call(this);\r\n settings.direction = LayoutSettings_1.LogicalDirectionKind.Backward;\r\n return settings;\r\n };\r\n return AutoLayoutLayeredHorizontalRightToLeftCommand;\r\n}(AutoLayoutLayeredHorizontalCommand_1.AutoLayoutLayeredHorizontalCommand));\r\nexports.AutoLayoutLayeredHorizontalRightToLeftCommand = AutoLayoutLayeredHorizontalRightToLeftCommand;\r\n\n\n/***/ }),\n/* 301 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeConnectorRoutingModeCommand = void 0;\r\nvar SimpleCommandBase_1 = __webpack_require__(10);\r\nvar Settings_1 = __webpack_require__(27);\r\nvar ChangeConnectorRoutingModeCommand = /** @class */ (function (_super) {\r\n __extends(ChangeConnectorRoutingModeCommand, _super);\r\n function ChangeConnectorRoutingModeCommand() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ChangeConnectorRoutingModeCommand.prototype.getValue = function () {\r\n return this.control.settings.connectorRoutingMode;\r\n };\r\n ChangeConnectorRoutingModeCommand.prototype.executeCore = function (state, parameter) {\r\n var mode = parameter !== undefined ? parameter : Settings_1.ConnectorRoutingMode.None;\r\n this.control.settings.connectorRoutingMode = mode;\r\n return true;\r\n };\r\n return ChangeConnectorRoutingModeCommand;\r\n}(SimpleCommandBase_1.SimpleCommandBase));\r\nexports.ChangeConnectorRoutingModeCommand = ChangeConnectorRoutingModeCommand;\r\n\n\n/***/ }),\n/* 302 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DiagramControl = void 0;\r\nvar point_1 = __webpack_require__(1);\r\nvar ModelManipulator_1 = __webpack_require__(303);\r\nvar CommandManager_1 = __webpack_require__(81);\r\nvar EventManager_1 = __webpack_require__(304);\r\nvar Model_1 = __webpack_require__(59);\r\nvar Selection_1 = __webpack_require__(333);\r\nvar History_1 = __webpack_require__(336);\r\nvar BarManager_1 = __webpack_require__(337);\r\nvar RenderManager_1 = __webpack_require__(338);\r\nvar ShapeDescriptionManager_1 = __webpack_require__(91);\r\nvar DocumentDataSource_1 = __webpack_require__(346);\r\nvar Settings_1 = __webpack_require__(27);\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar ViewController_1 = __webpack_require__(351);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar ToolboxManager_1 = __webpack_require__(352);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar ApiController_1 = __webpack_require__(355);\r\nvar ImageCache_1 = __webpack_require__(45);\r\nvar PermissionsProvider_1 = __webpack_require__(356);\r\nvar ConnectorRoutingModel_1 = __webpack_require__(370);\r\nvar TextMeasurer_1 = __webpack_require__(77);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar DataLayoutParameters_1 = __webpack_require__(103);\r\nvar ReloadContentParameters_1 = __webpack_require__(381);\r\nvar Utils_2 = __webpack_require__(18);\r\nvar DiagramControl = /** @class */ (function () {\r\n function DiagramControl() {\r\n this.updateLockCount = 0;\r\n this.shouldUpdateItemsByModel = false;\r\n this.reloadContentNeeded = false;\r\n this.reloadContentParameters = new ReloadContentParameters_1.ReloadContentParameters();\r\n this.reloadContentByExternalChangesParameters = new ReloadContentParameters_1.ReloadContentParameters();\r\n this.settings = new Settings_1.DiagramSettings();\r\n this.shapeDescriptionManager = new ShapeDescriptionManager_1.ShapeDescriptionManager();\r\n this.shapeDescriptionManager.onShapeDecriptionChanged.add(this);\r\n this.model = new Model_1.DiagramModel();\r\n this.selection = new Selection_1.Selection(this.model);\r\n this.onNativeAction = new Utils_1.EventDispatcher();\r\n this.apiController = new ApiController_1.ApiController(this.onNativeAction, this.selection, this.model);\r\n this.permissionsProvider = new PermissionsProvider_1.PermissionsProvider(this.apiController);\r\n this.permissionsProvider.onRequestOperation.add(this);\r\n this.routingModel = new ConnectorRoutingModel_1.ConnectorRoutingModel();\r\n this.modelManipulator = new ModelManipulator_1.ModelManipulator(this.model, this.routingModel, this.permissionsProvider);\r\n this.modelManipulator.onModelChanged.add(this.permissionsProvider);\r\n this.history = new History_1.History(this.modelManipulator);\r\n this.barManager = new BarManager_1.BarManager(this);\r\n this.view = new ViewController_1.ViewController(this.settings, this.barManager);\r\n this.commandManager = new CommandManager_1.CommandManager(this);\r\n this.eventManager = new EventManager_1.EventManager(this);\r\n this.settings.onReadOnlyChanged.add(this.eventManager.mouseHandler);\r\n this.settings.onReadOnlyChanged.add(this.eventManager.visualizersManager);\r\n this.selection.onChanged.add(this.barManager);\r\n this.selection.onChanged.add(this.apiController);\r\n this.selection.onChanged.add(this.permissionsProvider);\r\n this.modelManipulator.commitItemsCreateChanges();\r\n this.history.onChanged.add(this);\r\n this.toolboxManager = new ToolboxManager_1.ToolboxManager(this.shapeDescriptionManager);\r\n this.settings.onConnectorRoutingModeChanged.add(this.routingModel);\r\n ImageCache_1.ImageCache.instance.onReadyStateChanged.add(this);\r\n }\r\n Object.defineProperty(DiagramControl.prototype, \"operationSettings\", {\r\n get: function () {\r\n return this.permissionsProvider.operationSettings;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DiagramControl.prototype.cleanMarkup = function (removeElement) {\r\n removeElement = removeElement || (function (element) { Utils_2.RenderUtils.removeElement(element); });\r\n this.toolboxManager.clean(removeElement);\r\n this.barManager.clean();\r\n if (this.render) {\r\n this.settings.onZoomChanged.remove(this.render.view);\r\n this.settings.onViewChanged.remove(this.render.page);\r\n this.settings.onViewChanged.remove(this.render.view);\r\n this.settings.onReadOnlyChanged.remove(this.render);\r\n this.settings.onReadOnlyChanged.remove(this.render.selection);\r\n this.eventManager.onTextInputOperation.remove(this.render.input);\r\n this.eventManager.onTextInputOperation.remove(this.render.items);\r\n this.eventManager.onTextInputOperation.remove(this.render.selection);\r\n this.eventManager.onMouseOperation.remove(this.render.items);\r\n this.eventManager.onMouseOperation.remove(this.render.selection);\r\n this.eventManager.onMouseOperation.remove(this.render.view);\r\n this.eventManager.onMouseOperation.remove(this.render);\r\n this.eventManager.onVisualizersUpdate.remove(this.render.selection);\r\n this.modelManipulator.onModelSizeChanged.remove(this.render.view);\r\n this.modelManipulator.onModelSizeChanged.remove(this.render.page);\r\n this.modelManipulator.onModelChanged.remove(this.render.items);\r\n this.modelManipulator.onModelChanged.remove(this.render.page);\r\n this.modelManipulator.onModelChanged.remove(this.render.selection);\r\n this.selection.onChanged.remove(this.render.selection);\r\n this.selection.onChanged.remove(this.render.items);\r\n this.render.clean(removeElement);\r\n this.render = undefined;\r\n }\r\n };\r\n DiagramControl.prototype.createDocument = function (parent, scrollView) {\r\n if (!this.measurer)\r\n this.initMeasurer(parent);\r\n if (this.render)\r\n this.render.replaceParent(parent, scrollView);\r\n else {\r\n this.render = new RenderManager_1.RenderManager(parent, this.eventManager, this.measurer, {\r\n pageColor: this.model.pageColor,\r\n modelSize: this.model.size,\r\n pageLandscape: this.model.pageLandscape,\r\n pageSize: this.model.pageSize,\r\n simpleView: this.settings.simpleView,\r\n readOnly: this.settings.readOnly,\r\n gridSize: this.settings.gridSize,\r\n gridVisible: this.settings.showGrid,\r\n zoomLevel: this.settings.zoomLevel,\r\n autoZoom: this.settings.autoZoom,\r\n rectangle: this.model.getRectangle(true)\r\n }, scrollView);\r\n this.settings.onZoomChanged.add(this.render.view);\r\n this.settings.onViewChanged.add(this.render.page);\r\n this.settings.onViewChanged.add(this.render.view);\r\n this.settings.onReadOnlyChanged.add(this.render);\r\n this.settings.onReadOnlyChanged.add(this.render.selection);\r\n this.eventManager.onTextInputOperation.add(this.render.input);\r\n this.eventManager.onTextInputOperation.add(this.render.items);\r\n this.eventManager.onTextInputOperation.add(this.render.selection);\r\n this.eventManager.onTextInputOperation.add(this);\r\n this.eventManager.onMouseOperation.add(this.render.items);\r\n this.eventManager.onMouseOperation.add(this.render.selection);\r\n this.eventManager.onMouseOperation.add(this.render.view);\r\n this.eventManager.onMouseOperation.add(this.render);\r\n this.eventManager.onVisualizersUpdate.add(this.render.selection);\r\n this.modelManipulator.onModelSizeChanged.add(this.render.view);\r\n this.modelManipulator.onModelSizeChanged.add(this.render.page);\r\n this.modelManipulator.onModelChanged.add(this.render.items);\r\n this.modelManipulator.onModelChanged.add(this.render.page);\r\n this.modelManipulator.onModelChanged.add(this.render.selection);\r\n this.selection.onChanged.add(this.render.selection);\r\n this.selection.onChanged.add(this.render.items);\r\n this.render.update(false);\r\n this.render.onNewModel(this.model.items);\r\n this.modelManipulator.commitItemsCreateChanges();\r\n this.view.initialize(this.render.view);\r\n this.selection.raiseSelectionChanged();\r\n }\r\n };\r\n DiagramControl.prototype.createToolbox = function (parent, renderAsText, shapes, options) {\r\n var toolbox = this.toolboxManager.create(parent, this.settings.readOnly, true, renderAsText, shapes, this.getToolboxAllowedShapeTypes.bind(this), options);\r\n this.settings.onReadOnlyChanged.add(toolbox);\r\n toolbox.onDragOperation.add(this);\r\n toolbox.onDragOperation.add(this.apiController);\r\n this.eventManager.registerToolbox(toolbox);\r\n };\r\n DiagramControl.prototype.createContextToolbox = function (parent, renderAsText, shapes, options, onClick) {\r\n if (this.contextToolbox)\r\n this.cleanContextToolbox(parent);\r\n this.contextToolbox = this.toolboxManager.create(parent, this.settings.readOnly, false, renderAsText, shapes, this.getToolboxAllowedShapeTypes.bind(this), options);\r\n this.contextToolbox.onClickOperation.add(this);\r\n this.contextToolboxOnClick = onClick;\r\n };\r\n DiagramControl.prototype.getToolboxAllowedShapeTypes = function (shapeTypes) {\r\n var _this = this;\r\n var allowedShapeTypes = [];\r\n this.permissionsProvider.beginUpdateUI();\r\n shapeTypes.forEach(function (shapeType) {\r\n if (_this.permissionsProvider.canAddShapeFromToolbox(shapeType))\r\n allowedShapeTypes.push(shapeType);\r\n });\r\n this.permissionsProvider.endUpdateUI();\r\n return allowedShapeTypes;\r\n };\r\n DiagramControl.prototype.cleanContextToolbox = function (parent) {\r\n if (this.contextToolbox) {\r\n this.toolboxManager.clean(undefined, this.contextToolbox);\r\n this.contextToolbox = undefined;\r\n }\r\n };\r\n DiagramControl.prototype.refreshToolbox = function (toolboxes) {\r\n this.permissionsProvider.clearCache(ModelOperationSettings_1.DiagramModelOperation.AddShapeFromToolbox);\r\n this.toolboxManager.refresh(toolboxes);\r\n };\r\n DiagramControl.prototype.applyToolboxFilter = function (shapeSubstring, toolboxes) {\r\n return this.toolboxManager.applyFilter(shapeSubstring, toolboxes);\r\n };\r\n DiagramControl.prototype.notifyToolboxClick = function (shapeType) {\r\n if (this.contextToolboxOnClick)\r\n this.contextToolboxOnClick(shapeType);\r\n };\r\n DiagramControl.prototype.initMeasurer = function (parent) {\r\n this.measurer = new TextMeasurer_1.TextMeasurer(parent);\r\n };\r\n DiagramControl.prototype.updateLayout = function (resetScroll) {\r\n if (resetScroll === void 0) { resetScroll = false; }\r\n this.render && this.render.update(!resetScroll);\r\n };\r\n DiagramControl.prototype.captureFocus = function () {\r\n this.render && this.render.input.captureFocus();\r\n };\r\n DiagramControl.prototype.isFocused = function () {\r\n return !this.render || this.render.input.isFocused();\r\n };\r\n DiagramControl.prototype.registerBar = function (bar) {\r\n this.barManager.registerBar(bar);\r\n };\r\n DiagramControl.prototype.updateBarItemsState = function (bar, queryCommands) {\r\n this.barManager.updateBarItemsState(bar, queryCommands);\r\n };\r\n DiagramControl.prototype.getCommand = function (key) {\r\n return this.commandManager.getCommand(key);\r\n };\r\n DiagramControl.prototype.getNativeItemByKey = function (key) {\r\n var item = this.model.findItem(key);\r\n return item && this.apiController.createNativeItem(item);\r\n };\r\n DiagramControl.prototype.getNativeItemByDataKey = function (dataKey) {\r\n var item = this.model.findItemByDataKey(dataKey);\r\n return item && this.apiController.createNativeItem(item);\r\n };\r\n DiagramControl.prototype.setInitialStyleProperties = function (style) {\r\n this.selection.inputPosition.setInitialStyleProperties(style);\r\n };\r\n DiagramControl.prototype.setInitialTextStyleProperties = function (style) {\r\n this.selection.inputPosition.setInitialTextStyleProperties(style);\r\n };\r\n DiagramControl.prototype.setInitialConnectorProperties = function (properties) {\r\n this.selection.inputPosition.setInitialConnectorProperties(properties);\r\n };\r\n DiagramControl.prototype.addCustomShapes = function (shapes) {\r\n var _this = this;\r\n shapes.forEach(function (shape) {\r\n shape.apiController = _this.apiController;\r\n if (shape.defaultWidth)\r\n shape.defaultWidth = ModelUtils_1.ModelUtils.getTwipsValue(_this.model.units, shape.defaultWidth);\r\n if (shape.defaultHeight)\r\n shape.defaultHeight = ModelUtils_1.ModelUtils.getTwipsValue(_this.model.units, shape.defaultHeight);\r\n if (shape.minWidth)\r\n shape.minWidth = ModelUtils_1.ModelUtils.getTwipsValue(_this.model.units, shape.minWidth);\r\n if (shape.minHeight)\r\n shape.minHeight = ModelUtils_1.ModelUtils.getTwipsValue(_this.model.units, shape.minHeight);\r\n if (shape.maxWidth)\r\n shape.maxWidth = ModelUtils_1.ModelUtils.getTwipsValue(_this.model.units, shape.maxWidth);\r\n if (shape.maxHeight)\r\n shape.maxHeight = ModelUtils_1.ModelUtils.getTwipsValue(_this.model.units, shape.maxHeight);\r\n _this.shapeDescriptionManager.registerCustomShape(shape);\r\n });\r\n };\r\n DiagramControl.prototype.removeCustomShapes = function (shapeTypes) {\r\n var _this = this;\r\n shapeTypes.forEach(function (shapeType) {\r\n _this.shapeDescriptionManager.unregisterCustomShape(shapeType);\r\n });\r\n };\r\n DiagramControl.prototype.importModel = function (model) {\r\n this.model = model;\r\n this.model.initializeKeyCounter();\r\n this.apiController.model = model;\r\n this.onImportData();\r\n };\r\n DiagramControl.prototype.importItemsData = function () {\r\n this.model.iterateItems(function (item) {\r\n if (item instanceof Connector_1.Connector)\r\n item.invalidateRenderPoints();\r\n });\r\n this.onImportData();\r\n };\r\n DiagramControl.prototype.onImportData = function () {\r\n if (this.render) {\r\n this.render.clear();\r\n this.render.onNewModel(this.model.items);\r\n }\r\n this.permissionsProvider.clearCache();\r\n this.selection.initialize(this.model);\r\n this.modelManipulator.initialize(this.model, this.routingModel);\r\n this.history.clear();\r\n this.eventManager.initialize();\r\n this.modelManipulator.commitPageChanges();\r\n this.modelManipulator.commitItemsCreateChanges();\r\n this.notifyHistoryChanged();\r\n };\r\n DiagramControl.prototype.createDocumentDataSource = function (nodeDataSource, edgeDataSource, parameters, nodeDataImporter, edgeDataImporter) {\r\n this.documentDataSource = new DocumentDataSource_1.DocumentDataSource(this, nodeDataSource, edgeDataSource, parameters, nodeDataImporter, edgeDataImporter);\r\n this.apiController.setDataSource(this.documentDataSource);\r\n return this.documentDataSource;\r\n };\r\n DiagramControl.prototype.deleteDocumentDataSource = function () {\r\n this.apiController.setDataSource(null);\r\n delete this.documentDataSource;\r\n };\r\n DiagramControl.prototype.applyShapeSizeSettings = function (settings) {\r\n this.settings.applyShapeSizeSettings(settings, this.model.units);\r\n };\r\n DiagramControl.prototype.applyOperationSettings = function (settings) {\r\n this.permissionsProvider.operationSettings.applySettings(settings);\r\n };\r\n DiagramControl.prototype.beginUpdateCanvas = function () {\r\n if (this.render) {\r\n this.render.items.beginUpdate();\r\n this.render.selection.beginUpdate();\r\n }\r\n };\r\n DiagramControl.prototype.endUpdateCanvas = function () {\r\n if (this.render) {\r\n this.render.items.endUpdate();\r\n this.render.selection.endUpdate();\r\n }\r\n };\r\n DiagramControl.prototype.beginUpdate = function () {\r\n this.barManager.beginUpdate();\r\n this.apiController.beginUpdate();\r\n this.eventManager.beginUpdate();\r\n };\r\n DiagramControl.prototype.endUpdate = function () {\r\n this.barManager.endUpdate();\r\n this.apiController.endUpdate();\r\n this.eventManager.endUpdate();\r\n };\r\n // IDataChangesListener\r\n DiagramControl.prototype.notifyEdgeInserted = function (data, callback, errorCallback) {\r\n if (this.onEdgeInserted)\r\n this.onEdgeInserted(data, callback, errorCallback);\r\n else\r\n callback(data);\r\n };\r\n DiagramControl.prototype.notifyEdgeUpdated = function (key, data, callback, errorCallback) {\r\n if (this.onEdgeUpdated)\r\n this.onEdgeUpdated(key, data, callback, errorCallback);\r\n else\r\n callback(key, data);\r\n };\r\n DiagramControl.prototype.notifyEdgeRemoved = function (key, data, callback, errorCallback) {\r\n if (this.onEdgeUpdated)\r\n this.onEdgeRemoved(key, data, callback, errorCallback);\r\n else\r\n callback(key, data);\r\n };\r\n DiagramControl.prototype.notifyNodeInserted = function (data, callback, errorCallback) {\r\n if (this.onNodeInserted)\r\n this.onNodeInserted(data, callback, errorCallback);\r\n else\r\n callback(data);\r\n };\r\n DiagramControl.prototype.notifyNodeUpdated = function (key, data, callback, errorCallback) {\r\n if (this.onNodeUpdated)\r\n this.onNodeUpdated(key, data, callback, errorCallback);\r\n else\r\n callback(key, data);\r\n };\r\n DiagramControl.prototype.notifyNodeRemoved = function (key, data, callback, errorCallback) {\r\n if (this.onNodeRemoved)\r\n this.onNodeRemoved(key, data, callback, errorCallback);\r\n else\r\n callback(key, data);\r\n };\r\n DiagramControl.prototype.reloadContent = function (dataKey, getData, layoutParameters, isExternalChanges) {\r\n if (!this.documentDataSource)\r\n return;\r\n if (this.isChangesLocked())\r\n this.reloadContentNeeded = true;\r\n var addNewHistoryItem = isExternalChanges === true || (isExternalChanges === undefined && !this.reloadContentNeeded);\r\n var reloadContentParameters = addNewHistoryItem ? this.reloadContentByExternalChangesParameters : this.reloadContentParameters;\r\n reloadContentParameters.add(dataKey, getData, layoutParameters);\r\n if (!this.isChangesLocked()) {\r\n this.reloadContentCore(reloadContentParameters, addNewHistoryItem);\r\n this.barManager.updateItemsState();\r\n }\r\n };\r\n DiagramControl.prototype.reloadContentCore = function (parameters, addNewHistoryItem) {\r\n var _this = this;\r\n var data = parameters.getData && parameters.getData();\r\n var changes = this.documentDataSource.refetchData(data && data.nodeDataSource, data && data.edgeDataSource);\r\n this.beginUpdateCanvas();\r\n this.permissionsProvider.lockPermissions();\r\n this.documentDataSource.updateModelItems(this.history, this.model, this.shapeDescriptionManager, this.selection, new DataLayoutParameters_1.DataLayoutParameters(this.settings, parameters.layoutParameters), addNewHistoryItem, parameters.dataKeys, function (item) {\r\n _this.modelManipulator.commitItemUpdateChanges(item);\r\n }, changes, this.settings.snapToGrid, this.settings.gridSize, this.measurer);\r\n this.permissionsProvider.unlockPermissions();\r\n this.endUpdateCanvas();\r\n parameters.clear();\r\n };\r\n DiagramControl.prototype.notifyHistoryChanged = function () {\r\n if (this.documentDataSource) {\r\n this.shouldUpdateItemsByModel = true;\r\n if (!this.settings.readOnly)\r\n this.notifyDataChanges();\r\n }\r\n else\r\n this.raiseOnChanged();\r\n };\r\n DiagramControl.prototype.notifyToolboxDragStart = function () {\r\n if (this.onToolboxDragStart)\r\n this.onToolboxDragStart();\r\n };\r\n DiagramControl.prototype.notifyToolboxDragEnd = function () {\r\n if (this.onToolboxDragEnd)\r\n this.onToolboxDragEnd();\r\n };\r\n DiagramControl.prototype.notifyTextInputStart = function (item, text, position, size) {\r\n if (this.onTextInputStart)\r\n this.onTextInputStart();\r\n };\r\n DiagramControl.prototype.notifyTextInputEnd = function (item) {\r\n if (this.onTextInputEnd)\r\n this.onTextInputEnd();\r\n };\r\n DiagramControl.prototype.notifyTextInputPermissionsCheck = function (item, allowed) { };\r\n DiagramControl.prototype.notifyToggleFullscreen = function (value) {\r\n if (this.onToggleFullscreen)\r\n this.onToggleFullscreen(value);\r\n };\r\n DiagramControl.prototype.notifyShowContextMenu = function (eventPoint, modelPoint) {\r\n if (this.onShowContextMenu && this.render) {\r\n var selection = void 0;\r\n var selectedItems = this.selection.getSelectedItems(true);\r\n if (selectedItems.length > 0) {\r\n var rect = ModelUtils_1.ModelUtils.createRectangle(this.selection.getSelectedItems(true));\r\n var pos = this.render.getEventPointByModelPoint(rect.createPosition());\r\n var size = this.render.view.getAbsoluteSize(rect.createSize());\r\n selection = { x: pos.x, y: pos.y, width: size.width, height: size.height };\r\n }\r\n if (eventPoint) {\r\n this.contextMenuPosition = new point_1.Point(eventPoint.x, eventPoint.y);\r\n this.onShowContextMenu(eventPoint.x, eventPoint.y, selection);\r\n }\r\n else if (modelPoint) {\r\n var point = this.render.getEventPointByModelPoint(modelPoint);\r\n this.contextMenuPosition = point.clone();\r\n this.onShowContextMenu(point.x, point.y, selection);\r\n }\r\n }\r\n };\r\n DiagramControl.prototype.notifyHideContextMenu = function () {\r\n if (this.onHideContextMenu && this.render)\r\n this.onHideContextMenu();\r\n };\r\n DiagramControl.prototype.notifyShowContextToolbox = function (modelPoint, getPositionToInsertShapeTo, side, category, callback) {\r\n if (this.onShowContextToolbox && this.render) {\r\n var point = this.render.getEventPointByModelPoint(modelPoint);\r\n this.onShowContextToolbox(point.x, point.y, side, category, callback);\r\n }\r\n };\r\n DiagramControl.prototype.notifyHideContextToolbox = function () {\r\n if (this.onHideContextToolbox && this.render)\r\n this.onHideContextToolbox();\r\n };\r\n DiagramControl.prototype.notifyShapeDescriptionChanged = function (description) {\r\n this.modelManipulator.updateShapeDescription(description);\r\n };\r\n DiagramControl.prototype.notifyImageCacheReadyStateChanged = function (ready) {\r\n this.barManager.updateItemsState();\r\n };\r\n DiagramControl.prototype.notifyRequestOperation = function (operation, args) {\r\n if (this.requestOperationByDataSource(operation, args))\r\n return;\r\n if (this.onRequestOperation)\r\n this.onRequestOperation(operation, args);\r\n };\r\n DiagramControl.prototype.requestOperationByDataSource = function (operation, args) {\r\n if (!(this.documentDataSource && (this.documentDataSource.IsNodeParentIdMode() || this.documentDataSource.IsNodeItemsMode())))\r\n return false;\r\n if (operation === ModelOperationSettings_1.DiagramModelOperation.ChangeConnection) {\r\n var e = args;\r\n var shape = e.shape && this.model.findItem(e.shape.id);\r\n var connector = e.connector && this.model.findItem(e.connector.id);\r\n if (!(shape && connector))\r\n return;\r\n // shape can have only one incoming connection\r\n if (e.position === Connector_1.ConnectorPosition.End)\r\n for (var i = 0; i < shape.attachedConnectors.length; i++) {\r\n var attachedConnector = shape.attachedConnectors[i];\r\n if (attachedConnector !== connector && attachedConnector.endItem && attachedConnector.endItem === shape) {\r\n e.allowed = false;\r\n break;\r\n }\r\n }\r\n // circular reference is not allowed\r\n if (e.allowed && connector.beginItem && connector.endItem && this.isShapeParent(connector.endItem, connector.beginItem))\r\n e.allowed = false;\r\n }\r\n return !args.allowed;\r\n };\r\n DiagramControl.prototype.isShapeParent = function (parentShape, shape) {\r\n if (parentShape === shape)\r\n return true;\r\n for (var i = 0; i < parentShape.attachedConnectors.length; i++) {\r\n var attachedConnector = parentShape.attachedConnectors[i];\r\n if (attachedConnector.beginItem === parentShape && attachedConnector.endItem) {\r\n var childShape = attachedConnector.endItem;\r\n if (childShape === shape || this.isShapeParent(childShape, shape))\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n DiagramControl.prototype.isChangesLocked = function () {\r\n return this.updateLockCount > 0;\r\n };\r\n DiagramControl.prototype.beginChangesNotification = function () {\r\n if (!this.isChangesLocked())\r\n if (this.changesLockChanged)\r\n this.changesLockChanged(true);\r\n this.updateLockCount++;\r\n };\r\n DiagramControl.prototype.endChangesNotification = function (preventNotifyReloadContent) {\r\n var _this = this;\r\n this.updateLockCount--;\r\n if (!this.isChangesLocked()) {\r\n this.changesLockChanged(false);\r\n if (!preventNotifyReloadContent)\r\n setTimeout(function () {\r\n _this.notifyReloadContent();\r\n _this.notifyDataChanges();\r\n }, 0);\r\n }\r\n };\r\n DiagramControl.prototype.changesLockChanged = function (locked) {\r\n if (locked)\r\n this.lockedReadOnly = this.settings.readOnly;\r\n else\r\n locked = this.lockedReadOnly;\r\n this.commandManager.getCommand(CommandManager_1.DiagramCommand.ToggleReadOnly).execute(locked);\r\n };\r\n DiagramControl.prototype.notifyDataChanges = function () {\r\n if (this.isChangesLocked())\r\n return;\r\n if (this.shouldUpdateItemsByModel) {\r\n this.documentDataSource.updateItemsByModel(this.model);\r\n this.shouldUpdateItemsByModel = false;\r\n }\r\n this.raiseOnChanged();\r\n };\r\n DiagramControl.prototype.notifyReloadContent = function () {\r\n if (this.reloadContentNeeded) {\r\n if (!this.reloadContentParameters.empty)\r\n this.reloadContentCore(this.reloadContentParameters, false);\r\n if (!this.reloadContentByExternalChangesParameters.empty)\r\n this.reloadContentCore(this.reloadContentByExternalChangesParameters, true);\r\n this.reloadContentNeeded = false;\r\n }\r\n };\r\n DiagramControl.prototype.raiseOnChanged = function () {\r\n if (this.onChanged)\r\n this.onChanged();\r\n };\r\n return DiagramControl;\r\n}());\r\nexports.DiagramControl = DiagramControl;\r\n\n\n/***/ }),\n/* 303 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelManipulator = void 0;\r\nvar offsets_1 = __webpack_require__(87);\r\nvar size_1 = __webpack_require__(2);\r\nvar Diagnostics_1 = __webpack_require__(57);\r\nvar ImageCache_1 = __webpack_require__(45);\r\nvar ImageLoader_1 = __webpack_require__(131);\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar ModelChange_1 = __webpack_require__(99);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar ModelManipulator = /** @class */ (function () {\r\n function ModelManipulator(model, routingModel, permissionsProvider) {\r\n this.onModelChanged = new Utils_1.EventDispatcher();\r\n this.onModelSizeChanged = new Utils_1.EventDispatcher();\r\n this.initializeCore(model, routingModel);\r\n this.permissionsProvider = permissionsProvider;\r\n this.imageLoader = new ImageLoader_1.ImageLoader(this.updateShapeImage.bind(this));\r\n }\r\n ModelManipulator.prototype.initialize = function (model, routingModel) {\r\n this.initializeCore(model, routingModel);\r\n this.model.loadAllImages(this.imageLoader);\r\n this.updateModelSize();\r\n };\r\n ModelManipulator.prototype.initializeCore = function (model, routingModel) {\r\n this.model = model;\r\n this.routingModel = routingModel;\r\n if (this.routingModel)\r\n this.routingModel.initialize(model);\r\n };\r\n ModelManipulator.prototype.commitPageChanges = function () {\r\n this.raisePageSizeChanged(this.model.pageSize.clone(), this.model.pageLandscape);\r\n this.raiseModelSizeChanged(this.model.size.clone());\r\n this.raisePageColorChanged(this.model.pageColor);\r\n this.raiseModelRectangleChanged(ModelUtils_1.ModelUtils.createRectangle(this.model.items));\r\n };\r\n ModelManipulator.prototype.commitItemsCreateChanges = function () {\r\n Diagnostics_1.Diagnostics.timer(\"new model: model changes\");\r\n this.commitItemsChangesCore(ModelChange_1.ItemChangeType.Create, this.model.items);\r\n Diagnostics_1.Diagnostics.endTimer();\r\n };\r\n ModelManipulator.prototype.commitItemUpdateChanges = function (item) {\r\n this.commitItemsChangesCore(ModelChange_1.ItemChangeType.UpdateStructure, [item]);\r\n };\r\n ModelManipulator.prototype.commitItemsChangesCore = function (changeType, items) {\r\n var changes = [];\r\n items.forEach(function (item) {\r\n changes.push(new ModelChange_1.ItemChange(item, changeType));\r\n });\r\n if (changes.length)\r\n this.raiseModelChanged(changes);\r\n };\r\n // Items\r\n ModelManipulator.prototype.insertToContainer = function (item, container) {\r\n if (item.container && container && item.container.key !== container.key)\r\n throw Error(\"To insert an item to a container it's necessary to remove it from the current container.\");\r\n if (container) {\r\n container.children.push(item);\r\n item.container = container;\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(item, ModelChange_1.ItemChangeType.Update)]);\r\n }\r\n };\r\n ModelManipulator.prototype.removeFromContainer = function (item) {\r\n if (item.container) {\r\n var index = item.container.children.indexOf(item);\r\n item.container.children.splice(index, 1);\r\n item.container = undefined;\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(item, ModelChange_1.ItemChangeType.Update)]);\r\n }\r\n };\r\n ModelManipulator.prototype.changeStyle = function (item, styleProperty, styleValue) {\r\n this.changeStyleCore(item, item.style, styleProperty, styleValue);\r\n };\r\n ModelManipulator.prototype.changeStyleText = function (item, styleProperty, styleValue) {\r\n this.changeStyleCore(item, item.styleText, styleProperty, styleValue);\r\n };\r\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\n ModelManipulator.prototype.changeStyleCore = function (item, styleObj, styleProperty, styleValue) {\r\n if (styleValue !== undefined)\r\n styleObj[styleProperty] = styleValue;\r\n else\r\n delete styleObj[styleProperty];\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(item, ModelChange_1.ItemChangeType.UpdateProperties)]);\r\n };\r\n ModelManipulator.prototype.changeZIndex = function (item, zIndex) {\r\n item.zIndex = zIndex;\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(item, ModelChange_1.ItemChangeType.Update)]);\r\n };\r\n ModelManipulator.prototype.changeLocked = function (item, locked) {\r\n item.locked = locked;\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(item, ModelChange_1.ItemChangeType.UpdateClassName)]);\r\n };\r\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\n ModelManipulator.prototype.changeCustomData = function (item, data) {\r\n item.customData = Utils_1.ObjectUtils.cloneObject(data);\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(item, ModelChange_1.ItemChangeType.UpdateStructure)]);\r\n };\r\n ModelManipulator.prototype.addShape = function (shape, key) {\r\n if (shape.attachedConnectors.length)\r\n throw Error(\"A creating shape should not contain existing connectors.\");\r\n shape.key = key !== undefined ? key : this.model.getNextKey();\r\n return this.insertShape(shape);\r\n };\r\n ModelManipulator.prototype.insertShape = function (shape) {\r\n this.model.pushItem(shape);\r\n var allowed = this.permissionsProvider.canAddItems([shape]);\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(shape, ModelChange_1.ItemChangeType.Create, allowed)]);\r\n this.model.loadAllImages(this.imageLoader);\r\n return shape;\r\n };\r\n ModelManipulator.prototype.resizeShape = function (shape, position, size) {\r\n shape.position = position;\r\n shape.size = size;\r\n var allowed = this.permissionsProvider.isStoredPermissionsGranted();\r\n var resizeInteractingItem = this.getInteractingItem(shape, ModelOperationSettings_1.DiagramModelOperation.ResizeShape);\r\n if (resizeInteractingItem) {\r\n var oldSize = resizeInteractingItem.size.clone();\r\n var size_2 = shape.size.clone();\r\n if (!size_2.equals(oldSize))\r\n allowed = this.permissionsProvider.canResizeShapes([{ shape: shape, size: size_2, oldSize: oldSize }]);\r\n }\r\n var moveInteractingItem = this.getInteractingItem(shape, ModelOperationSettings_1.DiagramModelOperation.MoveShape);\r\n if (moveInteractingItem) {\r\n var oldPosition = moveInteractingItem.position.clone();\r\n var position_1 = shape.position.clone();\r\n if (!position_1.equals(oldPosition))\r\n allowed = this.permissionsProvider.canMoveShapes([{ shape: shape, position: position_1, oldPosition: oldPosition }]);\r\n }\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(shape, ModelChange_1.ItemChangeType.UpdateProperties, allowed)]);\r\n };\r\n ModelManipulator.prototype.moveShape = function (shape, position) {\r\n shape.position = position;\r\n var allowed = this.permissionsProvider.isStoredPermissionsGranted();\r\n var addInteractingItem = this.getInteractingItem(shape, ModelOperationSettings_1.DiagramModelOperation.AddShape);\r\n if (addInteractingItem)\r\n allowed = this.permissionsProvider.canAddItems([shape]);\r\n var moveInteractingItem = this.getInteractingItem(shape, ModelOperationSettings_1.DiagramModelOperation.MoveShape);\r\n if (moveInteractingItem) {\r\n var oldPosition = moveInteractingItem.position.clone();\r\n var position_2 = shape.position.clone();\r\n if (!position_2.equals(oldPosition))\r\n allowed = this.permissionsProvider.canMoveShapes([{ shape: shape, position: position_2, oldPosition: oldPosition }]);\r\n }\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(shape, ModelChange_1.ItemChangeType.UpdateProperties, allowed)]);\r\n };\r\n ModelManipulator.prototype.changeShapeParameters = function (shape, parameters) {\r\n shape.parameters.forEach(function (p) {\r\n var parameter = parameters.get(p.key);\r\n if (parameter)\r\n p.value = parameter.value;\r\n });\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(shape, ModelChange_1.ItemChangeType.UpdateProperties)]);\r\n };\r\n ModelManipulator.prototype.changeShapeText = function (shape, text) {\r\n shape.text = text;\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(shape, ModelChange_1.ItemChangeType.UpdateStructure)]);\r\n };\r\n ModelManipulator.prototype.changeShapeImage = function (shape, image) {\r\n shape.image = image;\r\n var cachedImage = ImageCache_1.ImageCache.instance.createUnloadedInfoByShapeImageInfo(image);\r\n this.imageLoader.load(cachedImage);\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(shape, ModelChange_1.ItemChangeType.UpdateStructure)]);\r\n };\r\n ModelManipulator.prototype.changeShapeExpanded = function (shape, expanded) {\r\n shape.expanded = expanded;\r\n shape.toggleExpandedSize();\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(shape, ModelChange_1.ItemChangeType.UpdateStructure)]);\r\n };\r\n ModelManipulator.prototype.deleteShape = function (shape, allowed) {\r\n if (shape.attachedConnectors.length)\r\n throw Error(\"A removing shape should not contain existing connectors.\");\r\n this.removeShape(shape, allowed);\r\n };\r\n ModelManipulator.prototype.removeShape = function (shape, allowed) {\r\n this.model.removeItem(shape);\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(shape, ModelChange_1.ItemChangeType.Remove, allowed)]);\r\n };\r\n ModelManipulator.prototype.updateShapeImage = function (cacheImageInfo) {\r\n if (!cacheImageInfo.imageUrl)\r\n return;\r\n var shapes = this.model.findShapesByImageUrl(cacheImageInfo.imageUrl);\r\n shapes.forEach(function (shape) {\r\n if (cacheImageInfo.base64)\r\n shape.image.loadBase64Content(cacheImageInfo.base64);\r\n else\r\n shape.image.setUnableToLoadFlag();\r\n });\r\n this.commitItemsChangesCore(ModelChange_1.ItemChangeType.UpdateStructure, shapes);\r\n };\r\n ModelManipulator.prototype.updateShapeDescription = function (description) {\r\n var shapes = this.model.findShapesByDescription(description);\r\n this.commitItemsChangesCore(ModelChange_1.ItemChangeType.UpdateProperties, shapes);\r\n };\r\n // Connectors\r\n ModelManipulator.prototype.addConnector = function (connector, key) {\r\n if (connector.beginItem || connector.endItem)\r\n throw Error(\"Creating connector should not contain begin/end items\");\r\n connector.key = key !== undefined ? key : this.model.getNextKey();\r\n return this.insertConnector(connector);\r\n };\r\n ModelManipulator.prototype.insertConnector = function (connector) {\r\n this.model.pushItem(connector);\r\n connector.routingStrategy = this.routingModel.createStrategy(connector.properties.lineOption);\r\n connector.invalidateRenderPoints();\r\n var allowed = this.permissionsProvider.canAddItems([connector]);\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(connector, ModelChange_1.ItemChangeType.Create, allowed)]);\r\n return connector;\r\n };\r\n ModelManipulator.prototype.deleteConnector = function (connector) {\r\n if (connector.beginItem || connector.endItem)\r\n throw Error(\"Creating connector should not contain begin/end items\");\r\n this.removeConnector(connector);\r\n };\r\n ModelManipulator.prototype.removeConnector = function (connector) {\r\n this.model.removeItem(connector);\r\n var allowed = this.permissionsProvider.canDeleteItems([connector]);\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(connector, ModelChange_1.ItemChangeType.Remove, allowed)]);\r\n };\r\n ModelManipulator.prototype.addDeleteConnectorPoint = function (connector, callBack) {\r\n var oldConnectorPoints = this.getConnectorInteractingPoints(connector);\r\n callBack(connector);\r\n this.addDeleteConnectorPointCore(connector, oldConnectorPoints);\r\n };\r\n ModelManipulator.prototype.moveConnectorPoint = function (connector, pointIndex, callBack) {\r\n callBack(connector);\r\n this.moveConnectorPointCore(connector, pointIndex);\r\n };\r\n ModelManipulator.prototype.changeConnectorPoints = function (connector, callBack) {\r\n var _this = this;\r\n callBack(connector);\r\n connector.points.forEach(function (_, i) { return _this.moveConnectorPointCore(connector, i); });\r\n };\r\n ModelManipulator.prototype.moveConnectorPointCore = function (connector, pointIndex) {\r\n var interactingItem = this.getInteractingItem(connector);\r\n var allowed = this.permissionsProvider.isStoredPermissionsGranted();\r\n if (interactingItem) {\r\n var changeConnectionPoints = (0 < pointIndex && pointIndex < connector.points.length - 1);\r\n changeConnectionPoints = changeConnectionPoints || (pointIndex === 0 && !connector.beginItem);\r\n changeConnectionPoints = changeConnectionPoints || (pointIndex === connector.points.length - 1 && !connector.endItem);\r\n if (changeConnectionPoints) {\r\n var oldConnectorPoints = interactingItem.points.map(function (p) { return p.clone(); });\r\n var newConnectorPoints = connector.points.map(function (p) { return p.clone(); });\r\n if (!Utils_1.GeometryUtils.arePointsEqual(oldConnectorPoints, newConnectorPoints))\r\n allowed = this.permissionsProvider.canChangeConnectorPoints(connector, oldConnectorPoints, newConnectorPoints);\r\n }\r\n }\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(connector, ModelChange_1.ItemChangeType.UpdateProperties, allowed)]);\r\n };\r\n ModelManipulator.prototype.getConnectorInteractingPoints = function (connector) {\r\n var interactingItem = this.getInteractingItem(connector);\r\n return interactingItem ? interactingItem.points.map(function (p) { return p.clone(); }) : connector.points.map(function (p) { return p.clone(); });\r\n };\r\n ModelManipulator.prototype.addDeleteConnectorPointCore = function (connector, oldConnectorPoints) {\r\n var allowed = this.permissionsProvider.isStoredPermissionsGranted();\r\n var newConnectorPoints = connector.points.map(function (p) { return p.clone(); });\r\n if (!Utils_1.GeometryUtils.arePointsEqual(oldConnectorPoints, newConnectorPoints))\r\n allowed = this.permissionsProvider.canChangeConnectorPoints(connector, oldConnectorPoints, newConnectorPoints);\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(connector, ModelChange_1.ItemChangeType.UpdateProperties, allowed)]);\r\n };\r\n ModelManipulator.prototype.addConnection = function (connector, item, connectionPointIndex, position) {\r\n var existingItem = connector.getExtremeItem(position);\r\n var existingConnectionPointIndex = connector.getExtremeConnectionPointIndex(position);\r\n if (existingItem === item && existingConnectionPointIndex === connectionPointIndex)\r\n return;\r\n else if (existingItem)\r\n throw Error(\"Connector is already connected\");\r\n item.attachedConnectors.push(connector);\r\n if (position === Connector_1.ConnectorPosition.Begin) {\r\n connector.beginItem = item;\r\n connector.beginConnectionPointIndex = connectionPointIndex;\r\n }\r\n else {\r\n connector.endItem = item;\r\n connector.endConnectionPointIndex = connectionPointIndex;\r\n }\r\n connector.invalidateRenderPoints();\r\n var allowed = this.permissionsProvider.canChangeConnection(connector, item, undefined, position, connectionPointIndex);\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(connector, ModelChange_1.ItemChangeType.UpdateProperties, allowed)]);\r\n };\r\n ModelManipulator.prototype.setConnectionPointIndex = function (connector, connectionPointIndex, position) {\r\n if (!connector.getExtremeItem(position))\r\n throw Error(\"Connection should be connected\");\r\n if (position === Connector_1.ConnectorPosition.Begin)\r\n connector.beginConnectionPointIndex = connectionPointIndex;\r\n else\r\n connector.endConnectionPointIndex = connectionPointIndex;\r\n connector.invalidateRenderPoints();\r\n var item = connector.getExtremeItem(position);\r\n var allowed = this.permissionsProvider.canChangeConnection(connector, item, item, position, connectionPointIndex);\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(connector, ModelChange_1.ItemChangeType.UpdateProperties, allowed)]);\r\n };\r\n ModelManipulator.prototype.deleteConnection = function (connector, position) {\r\n var item = connector.getExtremeItem(position);\r\n if (!item)\r\n return;\r\n item.attachedConnectors.splice(item.attachedConnectors.indexOf(connector), 1);\r\n if (position === Connector_1.ConnectorPosition.Begin) {\r\n connector.beginItem = null;\r\n connector.beginConnectionPointIndex = -1;\r\n }\r\n else {\r\n connector.endItem = null;\r\n connector.endConnectionPointIndex = -1;\r\n }\r\n connector.invalidateRenderPoints();\r\n var allowed = this.permissionsProvider.canChangeConnection(connector, undefined, item, position, -1);\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(connector, ModelChange_1.ItemChangeType.UpdateProperties, allowed)]);\r\n };\r\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\n ModelManipulator.prototype.changeConnectorProperty = function (connector, propertyName, value) {\r\n connector.properties[propertyName] = value;\r\n if (this.routingModel && propertyName === \"lineOption\")\r\n connector.routingStrategy = this.routingModel.createStrategy(connector.properties.lineOption);\r\n connector.invalidateRenderPoints();\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(connector, ModelChange_1.ItemChangeType.UpdateProperties)]);\r\n };\r\n ModelManipulator.prototype.changeConnectorText = function (connector, text, position) {\r\n connector.setText(text, position);\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(connector, ModelChange_1.ItemChangeType.UpdateStructure)]);\r\n };\r\n ModelManipulator.prototype.changeConnectorTextPosition = function (connector, position, newPosition) {\r\n var text = connector.getText(position);\r\n connector.setText(null, position);\r\n connector.setText(text, newPosition);\r\n this.raiseModelChanged([new ModelChange_1.ItemChange(connector, ModelChange_1.ItemChangeType.UpdateProperties)]);\r\n };\r\n // Model\r\n ModelManipulator.prototype.changeModelSize = function (size, offset) {\r\n this.model.size.width = size.width;\r\n this.model.size.height = size.height;\r\n this.raiseModelSizeChanged(this.model.size.clone(), offset);\r\n if (offset.left || offset.top) {\r\n this.model.snapStartPoint = this.model.snapStartPoint.clone().offset(offset.left, offset.top);\r\n this.raiseSnapPointChange(this.model.snapStartPoint);\r\n }\r\n };\r\n ModelManipulator.prototype.changePageSize = function (value) {\r\n if (!this.model.pageSize.equals(value)) {\r\n this.model.pageSize = value;\r\n this.model.size = new size_1.Size(this.model.pageWidth, this.model.pageHeight);\r\n this.raiseModelSizeChanged(this.model.size.clone());\r\n this.raisePageSizeChanged(this.model.pageSize, this.model.pageLandscape);\r\n }\r\n };\r\n ModelManipulator.prototype.changePageLandscape = function (value) {\r\n if (this.model.pageLandscape !== value) {\r\n this.model.pageLandscape = value;\r\n if (this.model.pageSize.width !== this.model.pageSize.height) {\r\n this.model.size = new size_1.Size(this.model.pageWidth, this.model.pageHeight);\r\n this.raiseModelSizeChanged(this.model.size.clone());\r\n this.raisePageSizeChanged(this.model.pageSize, this.model.pageLandscape);\r\n }\r\n }\r\n };\r\n ModelManipulator.prototype.changePageColor = function (value) {\r\n if (this.model.pageColor !== value) {\r\n this.model.pageColor = value;\r\n this.raisePageColorChanged(value);\r\n }\r\n };\r\n ModelManipulator.prototype.updateModelSize = function () {\r\n var offset = this.getModelSizeUpdateOffset();\r\n if (!offset.isEmpty()) {\r\n var newWidth = Math.max(this.model.size.width + offset.left + offset.right, this.model.pageWidth);\r\n var newHeight = Math.max(this.model.size.height + offset.top + offset.bottom, this.model.pageHeight);\r\n this.model.size = new size_1.Size(newWidth, newHeight);\r\n }\r\n };\r\n ModelManipulator.prototype.getModelSizeUpdateOffset = function () {\r\n var oldRectangle = this.model.getRectangle(false);\r\n var newRectangle = this.model.getRectangle(true);\r\n if (!newRectangle.equals(oldRectangle))\r\n this.raiseModelRectangleChanged(newRectangle);\r\n return this.createModelRectangleOffset(newRectangle);\r\n };\r\n ModelManipulator.prototype.createModelRectangleOffset = function (rectangle) {\r\n var pageWidth = this.model.pageWidth;\r\n var pageHeight = this.model.pageHeight;\r\n var size = this.model.size;\r\n return new offsets_1.Offsets(-Math.floor(rectangle.x / pageWidth) * pageWidth, -Math.floor((size.width - rectangle.right) / pageWidth) * pageWidth, -Math.floor(rectangle.y / pageHeight) * this.model.pageHeight, -Math.floor((size.height - rectangle.bottom) / pageHeight) * pageHeight);\r\n };\r\n ModelManipulator.prototype.raiseModelChanged = function (changes) {\r\n this.onModelChanged.raise1(function (l) { return l.notifyModelChanged(changes); });\r\n };\r\n ModelManipulator.prototype.raisePageColorChanged = function (color) {\r\n this.onModelChanged.raise1(function (l) { return l.notifyPageColorChanged(color); });\r\n };\r\n ModelManipulator.prototype.raisePageSizeChanged = function (pageSize, pageLandscape) {\r\n this.onModelChanged.raise1(function (l) { return l.notifyPageSizeChanged(pageSize, pageLandscape); });\r\n };\r\n ModelManipulator.prototype.raiseModelSizeChanged = function (size, offset) {\r\n this.onModelSizeChanged.raise1(function (l) { return l.notifyModelSizeChanged(size, offset); });\r\n };\r\n ModelManipulator.prototype.raiseModelRectangleChanged = function (rectangle) {\r\n this.onModelSizeChanged.raise1(function (l) { return l.notifyModelRectangleChanged(rectangle); });\r\n };\r\n ModelManipulator.prototype.raiseSnapPointChange = function (point) {\r\n this.onModelSizeChanged.raise1(function (l) { return l.notifySnapPointPositionChanged(point); });\r\n };\r\n ModelManipulator.prototype.getInteractingItem = function (item, operation) {\r\n return this.permissionsProvider.getInteractingItem(item, operation);\r\n };\r\n return ModelManipulator;\r\n}());\r\nexports.ModelManipulator = ModelManipulator;\r\n\n\n/***/ }),\n/* 304 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EventManager = void 0;\r\nvar MouseHandler_1 = __webpack_require__(305);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar TextInputHandler_1 = __webpack_require__(324);\r\nvar ContextMenuHandler_1 = __webpack_require__(156);\r\nvar ContextMenuTouchHandler_1 = __webpack_require__(325);\r\nvar VisualizersManager_1 = __webpack_require__(157);\r\nvar VisualizersTouchManager_1 = __webpack_require__(331);\r\nvar ContextToolboxHandler_1 = __webpack_require__(332);\r\nvar browser_1 = __webpack_require__(17);\r\nvar key_1 = __webpack_require__(25);\r\nvar EventManager = /** @class */ (function () {\r\n function EventManager(control) {\r\n this.onMouseOperation = new Utils_1.EventDispatcher();\r\n this.onTextInputOperation = new Utils_1.EventDispatcher();\r\n this.toolboxes = [];\r\n this.control = control;\r\n this.visualizersManager = browser_1.Browser.TouchUI ?\r\n new VisualizersTouchManager_1.VisualizerTouchManager(control.selection, control.model, this, control.settings) :\r\n new VisualizersManager_1.VisualizerManager(control.selection, control.model, this, control.settings);\r\n this.onMouseOperation.add(this.visualizersManager);\r\n this.contextMenuHandler = browser_1.Browser.TouchUI ?\r\n new ContextMenuTouchHandler_1.ContextMenuTouchHandler(control.selection) :\r\n new ContextMenuHandler_1.ContextMenuHandler();\r\n this.contextMenuHandler.onVisibilityChanged.add(control);\r\n this.onMouseOperation.add(this.contextMenuHandler);\r\n this.onTextInputOperation.add(this.contextMenuHandler);\r\n this.contextToolboxHandler = new ContextToolboxHandler_1.ContextToolboxHandler();\r\n this.contextToolboxHandler.onVisibilityChanged.add(control);\r\n this.contextToolboxHandler.onVisibilityChanged.add(this.contextMenuHandler);\r\n this.mouseHandler = new MouseHandler_1.MouseHandler(control.history, control.selection, control.model, this, control.settings.readOnly, control.view, this.visualizersManager, this.contextToolboxHandler, control.shapeDescriptionManager, control.settings, control.permissionsProvider);\r\n this.textInputHandler = new TextInputHandler_1.TextInputHandler(control);\r\n this.visualizersManager.onVisualizersUpdate.add(this.mouseHandler);\r\n }\r\n Object.defineProperty(EventManager.prototype, \"onVisualizersUpdate\", {\r\n get: function () {\r\n return this.visualizersManager.onVisualizersUpdate;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n EventManager.prototype.registerToolbox = function (toolbox) {\r\n this.toolboxes.push(toolbox);\r\n };\r\n EventManager.prototype.initialize = function () {\r\n this.visualizersManager.initialize(this.control.model);\r\n this.mouseHandler.initialize(this.control.model);\r\n };\r\n EventManager.prototype.beginUpdate = function (lockUpdateCanvas) {\r\n this.contextMenuHandler.beginUpdate();\r\n this.visualizersManager.beginUpdate();\r\n };\r\n EventManager.prototype.endUpdate = function () {\r\n this.contextMenuHandler.endUpdate();\r\n this.visualizersManager.endUpdate();\r\n };\r\n EventManager.prototype.onMouseDown = function (evt) {\r\n this.mouseHandler.onMouseDown(evt);\r\n this.contextMenuHandler.onMouseDown(evt);\r\n this.visualizersManager.onMouseDown(evt);\r\n this.contextToolboxHandler.onMouseDown(evt);\r\n };\r\n EventManager.prototype.onMouseMove = function (evt) {\r\n this.processDragging(evt);\r\n this.mouseHandler.onMouseMove(evt);\r\n };\r\n EventManager.prototype.onMouseUp = function (evt) {\r\n this.contextToolboxHandler.onMouseUp(evt);\r\n this.mouseHandler.onMouseUp(evt);\r\n this.contextMenuHandler.onMouseUp(evt);\r\n this.visualizersManager.onMouseUp(evt);\r\n this.processDragging(evt);\r\n };\r\n EventManager.prototype.onMouseEnter = function (evt) {\r\n this.visualizersManager.onMouseEnter(evt);\r\n };\r\n EventManager.prototype.onMouseLeave = function (evt) {\r\n this.visualizersManager.onMouseLeave(evt);\r\n };\r\n EventManager.prototype.onDblClick = function (evt) {\r\n this.mouseHandler.onMouseDblClick(evt);\r\n this.textInputHandler.onDblClick(evt);\r\n this.control.apiController.notifyDblClick(evt);\r\n };\r\n EventManager.prototype.onClick = function (evt) {\r\n this.mouseHandler.onMouseClick(evt);\r\n this.control.apiController.notifyClick(evt);\r\n };\r\n EventManager.prototype.onContextMenu = function (evt) {\r\n this.contextMenuHandler.onContextMenu(evt);\r\n };\r\n EventManager.prototype.onLongTouch = function (evt) {\r\n this.mouseHandler.onLongTouch(evt);\r\n this.contextMenuHandler.onLongTouch(evt);\r\n };\r\n EventManager.prototype.onBlur = function (evt) {\r\n this.contextMenuHandler.onBlur(evt);\r\n this.contextToolboxHandler.onBlur(evt);\r\n this.visualizersManager.onBlur(evt);\r\n };\r\n EventManager.prototype.onFocus = function (evt) {\r\n this.contextMenuHandler.onFocus(evt);\r\n this.contextToolboxHandler.onFocus(evt);\r\n this.visualizersManager.onFocus(evt);\r\n };\r\n EventManager.prototype.onKeyDown = function (evt) {\r\n var scCode = evt.getShortcutCode();\r\n if (this.onShortcut(scCode)) {\r\n this.visualizersManager.updateConnectionPoints();\r\n this.contextMenuHandler.onShortcut(evt);\r\n this.contextToolboxHandler.onShortcut(evt);\r\n evt.preventDefault = true;\r\n }\r\n else if (this.isShortcutForFocusInput(scCode))\r\n evt.preventDefault = true;\r\n this.contextMenuHandler.onKeyDown(evt);\r\n this.contextToolboxHandler.onKeyDown(evt);\r\n this.mouseHandler.onKeyDown(evt);\r\n };\r\n EventManager.prototype.onKeyUp = function (evt) {\r\n this.mouseHandler.onKeyUp(evt);\r\n };\r\n EventManager.prototype.onTextInputBlur = function (evt) {\r\n this.textInputHandler.onBlur(evt);\r\n this.contextMenuHandler.onTextInputBlur(evt);\r\n };\r\n EventManager.prototype.onTextInputFocus = function (evt) {\r\n this.textInputHandler.onFocus(evt);\r\n this.contextMenuHandler.onTextInputFocus(evt);\r\n };\r\n EventManager.prototype.onTextInputKeyDown = function (evt) {\r\n this.textInputHandler.onKeyDown(evt);\r\n };\r\n EventManager.prototype.onShortcut = function (code) {\r\n if (this.control.commandManager.processShortcut(code))\r\n return true;\r\n if (this.mouseHandler.onShortcut(code))\r\n return true;\r\n };\r\n EventManager.prototype.isShortcutForFocusInput = function (code) {\r\n return code === key_1.KeyCode.Delete || code === (key_1.KeyCode.Delete | key_1.ModifierKey.Ctrl) || code === (key_1.KeyCode.Delete | key_1.ModifierKey.Meta) ||\r\n (code === key_1.KeyCode.Backspace) || code === (key_1.KeyCode.Backspace | key_1.ModifierKey.Ctrl) || code === (key_1.KeyCode.Backspace | key_1.ModifierKey.Shift) || code === (key_1.KeyCode.Backspace | key_1.ModifierKey.Meta) ||\r\n code === key_1.KeyCode.Home || code === key_1.KeyCode.End ||\r\n code === key_1.KeyCode.Up || code === (key_1.KeyCode.Up | key_1.ModifierKey.Ctrl) || code === (key_1.KeyCode.Up | key_1.ModifierKey.Meta) ||\r\n code === key_1.KeyCode.Down || code === (key_1.KeyCode.Down | key_1.ModifierKey.Ctrl) || code === (key_1.KeyCode.Down | key_1.ModifierKey.Meta) ||\r\n code === key_1.KeyCode.Left || code === (key_1.KeyCode.Left | key_1.ModifierKey.Ctrl) || code === (key_1.KeyCode.Left | key_1.ModifierKey.Meta) ||\r\n code === key_1.KeyCode.Right || code === (key_1.KeyCode.Right | key_1.ModifierKey.Ctrl) || code === (key_1.KeyCode.Right | key_1.ModifierKey.Meta);\r\n };\r\n EventManager.prototype.onPaste = function (evt) {\r\n if (!this.textInputHandler.isTextInputActive() && this.control.commandManager.processPaste(evt.clipboardData)) {\r\n this.visualizersManager.updateConnectionPoints();\r\n evt.preventDefault = true;\r\n }\r\n };\r\n EventManager.prototype.onMouseWheel = function (evt) {\r\n if (this.mouseHandler.onWheel(evt))\r\n evt.preventDefault = true;\r\n };\r\n EventManager.prototype.isFocused = function () {\r\n return this.control.isFocused();\r\n };\r\n EventManager.prototype.processDragging = function (evt) {\r\n var draggingEvt = this.getDraggingEvent();\r\n if (draggingEvt && !this.draggingEvent) {\r\n this.draggingEvent = draggingEvt;\r\n this.mouseHandler.onDragStart(this.draggingEvent);\r\n this.control.captureFocus();\r\n }\r\n else if (!draggingEvt && this.draggingEvent) {\r\n delete this.draggingEvent;\r\n this.mouseHandler.onDragEnd(evt);\r\n }\r\n };\r\n EventManager.prototype.getDraggingEvent = function () {\r\n return this.toolboxes\r\n .filter(function (t) { return t.draggingObject; })\r\n .map(function (t) { return t.draggingObject.evt; })[0];\r\n };\r\n EventManager.prototype.onDocumentDragStart = function (itemKeys) {\r\n this.control.beginUpdate();\r\n this.control.captureFocus();\r\n this.onMouseOperation.raise(\"notifyDragStart\", itemKeys);\r\n };\r\n EventManager.prototype.onDocumentDragEnd = function (itemKeys) {\r\n this.onMouseOperation.raise(\"notifyDragEnd\", itemKeys);\r\n this.control.endUpdate();\r\n this.control.barManager.updateItemsState();\r\n };\r\n EventManager.prototype.onDocumentDragScrollStart = function () {\r\n this.onMouseOperation.raise1(function (l) { return l.notifyDragScrollStart(); });\r\n };\r\n EventManager.prototype.onDocumentDragScrollEnd = function () {\r\n this.onMouseOperation.raise1(function (l) { return l.notifyDragScrollEnd(); });\r\n };\r\n EventManager.prototype.onDocumentClick = function (itemKeys) {\r\n this.control.beginUpdate();\r\n this.control.endUpdate();\r\n this.control.barManager.updateItemsState();\r\n };\r\n EventManager.prototype.raiseTextInputStart = function (item, text, position, size) {\r\n this.onTextInputOperation.raise(\"notifyTextInputStart\", item, text, position, size);\r\n };\r\n EventManager.prototype.raiseTextInputEnd = function (item) {\r\n this.onTextInputOperation.raise(\"notifyTextInputEnd\", item);\r\n };\r\n EventManager.prototype.raiseTextInputPermissionsCheck = function (item, allowed) {\r\n this.onTextInputOperation.raise(\"notifyTextInputPermissionsCheck\", item, allowed);\r\n };\r\n EventManager.prototype.canFinishTextEditing = function () {\r\n return this.textInputHandler.canFinishTextEditing();\r\n };\r\n return EventManager;\r\n}());\r\nexports.EventManager = EventManager;\r\n\n\n/***/ }),\n/* 305 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandler = void 0;\r\nvar MouseHandlerDefaultState_1 = __webpack_require__(148);\r\nvar Event_1 = __webpack_require__(11);\r\nvar point_1 = __webpack_require__(1);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar MouseHandlerDefaultReadOnlyTouchState_1 = __webpack_require__(321);\r\nvar MouseHandlerDefaultReadOnlyState_1 = __webpack_require__(154);\r\nvar MouseHandlerDefaultTouchState_1 = __webpack_require__(322);\r\nvar browser_1 = __webpack_require__(17);\r\nvar key_1 = __webpack_require__(25);\r\nvar MouseHandler = /** @class */ (function () {\r\n function MouseHandler(history, selection, model, eventManager, readOnly, view, visualizerManager, contextToolboxHandler, shapeDescriptionManager, settings, permissionsProvider) {\r\n this.history = history;\r\n this.selection = selection;\r\n this.model = model;\r\n this.eventManager = eventManager;\r\n this.readOnly = readOnly;\r\n this.view = view;\r\n this.visualizerManager = visualizerManager;\r\n this.contextToolboxHandler = contextToolboxHandler;\r\n this.shapeDescriptionManager = shapeDescriptionManager;\r\n this.settings = settings;\r\n this.permissionsProvider = permissionsProvider;\r\n this.finishStateLock = 0;\r\n this.initialize(model);\r\n }\r\n MouseHandler.prototype.initialize = function (model) {\r\n this.model = model;\r\n this.allowMultipleSelection = true;\r\n this.allowCopyDiagramItems = true;\r\n this.allowSnapToCellOnDragDiagramItem = true;\r\n this.allowSnapToCellOnDragPoint = true;\r\n this.allowSnapToCellOnResizeShape = true;\r\n this.allowFixedDrag = true;\r\n this.allowZoomOnWheel = true;\r\n this.allowScrollPage = true;\r\n this.shouldScrollPage = false;\r\n this.copyDiagramItemsByCtrlAndShift = false;\r\n this.startScrollingPageByCtrl = false;\r\n this.initializeDefaultState();\r\n };\r\n MouseHandler.prototype.initializeDefaultState = function () {\r\n this.defaultState = this.readOnly ?\r\n (browser_1.Browser.TouchUI ?\r\n new MouseHandlerDefaultReadOnlyTouchState_1.MouseHandlerDefaultReadOnlyTouchState(this, this.history, this.selection, this.model, this.view, this.visualizerManager, this.shapeDescriptionManager, this.settings) :\r\n new MouseHandlerDefaultReadOnlyState_1.MouseHandlerDefaultReadOnlyState(this, this.history, this.selection, this.model, this.view, this.visualizerManager, this.shapeDescriptionManager, this.settings)) :\r\n (browser_1.Browser.TouchUI ?\r\n new MouseHandlerDefaultTouchState_1.MouseHandlerDefaultTouchState(this, this.history, this.selection, this.model, this.view, this.visualizerManager, this.shapeDescriptionManager, this.settings) :\r\n new MouseHandlerDefaultState_1.MouseHandlerDefaultState(this, this.history, this.selection, this.model, this.view, this.visualizerManager, this.shapeDescriptionManager, this.settings));\r\n this.switchToDefaultState();\r\n };\r\n MouseHandler.prototype.onMouseDown = function (evt) {\r\n this.mouseDownEvent = evt;\r\n this.state.onMouseDown(evt);\r\n };\r\n MouseHandler.prototype.onMouseMove = function (evt) {\r\n this.state.onMouseMove(evt);\r\n };\r\n MouseHandler.prototype.onMouseUp = function (evt) {\r\n this.state.onMouseUp(evt);\r\n };\r\n MouseHandler.prototype.onMouseDblClick = function (evt) {\r\n this.state.onMouseDblClick(evt);\r\n };\r\n MouseHandler.prototype.onMouseClick = function (evt) {\r\n this.state.onMouseClick(evt);\r\n };\r\n MouseHandler.prototype.onLongTouch = function (evt) {\r\n if (!evt.touches || evt.touches.length > 1)\r\n return;\r\n var key = evt.source.key;\r\n if (key === undefined)\r\n this.selection.clear();\r\n else if (this.selection.hasKey(key))\r\n this.selection.remove(key);\r\n else\r\n this.selection.add(key);\r\n };\r\n MouseHandler.prototype.onShortcut = function (code) {\r\n return this.state.onShortcut(code);\r\n };\r\n MouseHandler.prototype.onWheel = function (evt) {\r\n return this.state.onMouseWheel(evt);\r\n };\r\n MouseHandler.prototype.onDragStart = function (evt) {\r\n this.state.onDragStart(evt);\r\n };\r\n MouseHandler.prototype.onDragEnd = function (evt) {\r\n this.state.onDragEnd(evt);\r\n };\r\n MouseHandler.prototype.onKeyDown = function (evt) {\r\n this.state.onKeyDown(evt);\r\n };\r\n MouseHandler.prototype.onKeyUp = function (evt) {\r\n this.state.onKeyUp(evt);\r\n };\r\n MouseHandler.prototype.showContextToolbox = function (modelPoint, getPositionToInsertShapeTo, side, category, applyCallback, cancelCallback) {\r\n this.contextToolboxHandler.showContextToolbox(modelPoint, getPositionToInsertShapeTo, side, category, applyCallback, cancelCallback);\r\n };\r\n MouseHandler.prototype.hideContextToolbox = function (applyed) {\r\n this.contextToolboxHandler.hideContextToolbox(applyed);\r\n };\r\n MouseHandler.prototype.canScrollPage = function (evt) {\r\n if (this.startScrollingPageByCtrl) {\r\n if (!this.hasCtrlModifier(evt.modifiers))\r\n return false;\r\n if (!this.copyDiagramItemsByCtrlAndShift)\r\n return true;\r\n return evt.source.type !== Event_1.MouseEventElementType.Shape && evt.source.type !== Event_1.MouseEventElementType.Connector;\r\n }\r\n return this.allowScrollPage && this.shouldScrollPage;\r\n };\r\n MouseHandler.prototype.canMultipleSelection = function (evt) {\r\n return this.allowMultipleSelection && this.hasCtrlOrShiftModifier(evt.modifiers);\r\n };\r\n MouseHandler.prototype.canCopySelectedItems = function (evt) {\r\n if (!this.allowCopyDiagramItems)\r\n return false;\r\n return this.copyDiagramItemsByCtrlAndShift ? this.hasCtrlAndShiftModifier(evt.modifiers) : this.hasAltModifier(evt.modifiers);\r\n };\r\n MouseHandler.prototype.canCalculateFixedPosition = function (evt) {\r\n if (!this.allowFixedDrag || !this.hasShiftModifier(evt.modifiers))\r\n return false;\r\n if (this.copyDiagramItemsByCtrlAndShift && this.hasCtrlModifier(evt.modifiers))\r\n return false;\r\n return true;\r\n };\r\n MouseHandler.prototype.canStartZoomOnWheel = function (evt) {\r\n return this.allowZoomOnWheel && this.hasCtrlModifier(evt.modifiers);\r\n };\r\n MouseHandler.prototype.canFinishZoomOnWheel = function (evt) {\r\n return this.allowZoomOnWheel && !this.hasCtrlModifier(evt.modifiers);\r\n };\r\n MouseHandler.prototype.onStartScrollPageByKeyboard = function (evt) {\r\n if (this.canStartScrollingPageByKeyboard(evt)) {\r\n this.raiseDragScrollStart();\r\n this.shouldScrollPage = true;\r\n }\r\n };\r\n MouseHandler.prototype.onFinishScrollPageByKeyboard = function (evt) {\r\n if (this.canEndScrollingPageByKeyboard(evt))\r\n this.finishScrollingPage();\r\n };\r\n MouseHandler.prototype.onFinishScrollPageByMouse = function (evt) {\r\n if (this.canEndScrollingPage(evt))\r\n this.finishScrollingPage();\r\n };\r\n MouseHandler.prototype.finishScrollingPage = function () {\r\n this.shouldScrollPage = false;\r\n this.raiseDragScrollEnd();\r\n this.switchToDefaultState();\r\n };\r\n // utils\r\n MouseHandler.prototype.hasCtrlOrShiftModifier = function (key) {\r\n return this.hasCtrlModifier(key) || this.hasShiftModifier(key);\r\n };\r\n MouseHandler.prototype.hasCtrlAndShiftModifier = function (key) {\r\n return this.hasCtrlModifier(key) && this.hasShiftModifier(key);\r\n };\r\n MouseHandler.prototype.hasCtrlModifier = function (key) {\r\n return (key & key_1.ModifierKey.Ctrl) > 0;\r\n };\r\n MouseHandler.prototype.hasAltModifier = function (key) {\r\n return (key & key_1.ModifierKey.Alt) > 0;\r\n };\r\n MouseHandler.prototype.hasShiftModifier = function (key) {\r\n return (key & key_1.ModifierKey.Shift) > 0;\r\n };\r\n MouseHandler.prototype.canStartScrollingPageByKeyboard = function (evt) {\r\n return !this.startScrollingPageByCtrl && !this.shouldScrollPage && evt.keyCode === key_1.KeyCode.Space;\r\n };\r\n MouseHandler.prototype.canEndScrollingPageByKeyboard = function (evt) {\r\n return !this.startScrollingPageByCtrl && evt.keyCode === key_1.KeyCode.Space;\r\n };\r\n MouseHandler.prototype.canEndScrollingPage = function (evt) {\r\n return this.startScrollingPageByCtrl ? this.hasCtrlModifier(evt.modifiers) : true;\r\n };\r\n MouseHandler.prototype.getSnappedPointOnDragDiagramItem = function (evt, basePoint, fixedX, fixedY, startPoint) {\r\n var snapToCell = this.getSnapToCellOnDragDiagramItem(evt);\r\n return new point_1.Point(this.getSnappedPos(this.getFixedXPosition(evt, basePoint, fixedX, startPoint), true, snapToCell), this.getSnappedPos(this.getFixedYPosition(evt, basePoint, fixedY, startPoint), false, snapToCell));\r\n };\r\n MouseHandler.prototype.getSnappedPointOnDragPoint = function (evt, point, additionalSnappedPoint) {\r\n var snapToCell = this.getSnapToCellOnDragPoint(evt);\r\n var x = this.getSnappedPos(point.x, true, snapToCell);\r\n var y = this.getSnappedPos(point.y, false, snapToCell);\r\n if (additionalSnappedPoint === undefined)\r\n return new point_1.Point(x, y);\r\n else if (Math.pow(point.x - x, 2) + Math.pow(point.y - y, 2) < Math.pow(point.x - additionalSnappedPoint.x, 2) + Math.pow(point.y - additionalSnappedPoint.y, 2))\r\n return new point_1.Point(x, y);\r\n else\r\n return additionalSnappedPoint;\r\n };\r\n MouseHandler.prototype.getSnappedOffsetOnDragPoint = function (evt, startPoint) {\r\n var snapToCell = this.getSnapToCellOnDragPoint(evt);\r\n return new point_1.Point(this.getSnappedPos(evt.modelPoint.x - startPoint.x, true, snapToCell), this.getSnappedPos(evt.modelPoint.y - startPoint.y, false, snapToCell));\r\n };\r\n MouseHandler.prototype.lockAspectRatioOnShapeResize = function (evt) {\r\n return this.hasShiftModifier(evt.modifiers);\r\n };\r\n MouseHandler.prototype.getSnappedPositionOnResizeShape = function (evt, pos, isHorizontal) {\r\n if (!this.getSnapToCellOnResizeShape(evt))\r\n return pos;\r\n return ModelUtils_1.ModelUtils.getSnappedPos(this.model, this.settings.gridSize, pos, isHorizontal);\r\n };\r\n MouseHandler.prototype.getSnappedPos = function (pos, isHorizontal, snapToCell) {\r\n return snapToCell ? ModelUtils_1.ModelUtils.getSnappedPos(this.model, this.settings.gridSize, pos, isHorizontal) : pos;\r\n };\r\n MouseHandler.prototype.getFixedXPosition = function (evt, basePoint, fixedX, startPoint) {\r\n return fixedX ? basePoint.x : basePoint.x + evt.modelPoint.x - startPoint.x;\r\n };\r\n MouseHandler.prototype.getFixedYPosition = function (evt, basePoint, fixedY, startPoint) {\r\n return fixedY ? basePoint.y : basePoint.y + evt.modelPoint.y - startPoint.y;\r\n };\r\n MouseHandler.prototype.getSnapToCellOnDragDiagramItem = function (evt) {\r\n return this.allowSnapToCellOnDragDiagramItem &&\r\n this.settings.snapToGrid &&\r\n !this.hasCtrlModifier(evt.modifiers);\r\n };\r\n MouseHandler.prototype.getSnapToCellOnDragPoint = function (evt) {\r\n return this.allowSnapToCellOnDragPoint &&\r\n this.settings.snapToGrid &&\r\n !this.hasCtrlModifier(evt.modifiers);\r\n };\r\n MouseHandler.prototype.getSnapToCellOnResizeShape = function (evt) {\r\n return this.allowSnapToCellOnResizeShape &&\r\n this.settings.snapToGrid &&\r\n !this.hasCtrlModifier(evt.modifiers);\r\n };\r\n MouseHandler.prototype.tryUpdateModelSize = function (processPoints) {\r\n this.lockPermissions();\r\n ModelUtils_1.ModelUtils.tryUpdateModelRectangle(this.history, processPoints);\r\n this.unlockPermissions();\r\n };\r\n MouseHandler.prototype.canAddDiagramItemToSelection = function (evt) {\r\n return evt.source.key && (evt.button === Event_1.MouseButton.Left || evt.button === Event_1.MouseButton.Right);\r\n };\r\n MouseHandler.prototype.addDiagramItemToSelection = function (evt) {\r\n this.pressedDiagramItemKey = evt.source.key;\r\n this.pressedDiagramItemInSelection = this.selection.hasKey(this.pressedDiagramItemKey);\r\n if (this.canMultipleSelection(evt))\r\n this.selection.add(evt.source.key);\r\n else\r\n this.changeSingleSelection(evt.source.key);\r\n };\r\n MouseHandler.prototype.canRemoveDiagramItemToSelection = function (evt) {\r\n return this.pressedDiagramItemKey &&\r\n evt.source.key &&\r\n this.pressedDiagramItemKey === evt.source.key &&\r\n (evt.button === Event_1.MouseButton.Left || evt.button === Event_1.MouseButton.Right);\r\n };\r\n MouseHandler.prototype.removeDiagramItemFromSelection = function (button, sourceKey) {\r\n if (this.pressedDiagramItemInSelection && this.selection.getKeys().length > 1 && button === Event_1.MouseButton.Left)\r\n this.selection.remove(sourceKey);\r\n };\r\n MouseHandler.prototype.changeSingleSelection = function (key) {\r\n if (!this.selection.hasKey(key))\r\n this.selection.set([key]);\r\n };\r\n MouseHandler.prototype.raiseDragStart = function (keys) {\r\n this.eventManager.onDocumentDragStart(keys);\r\n };\r\n MouseHandler.prototype.raiseDragEnd = function (keys) {\r\n this.eventManager.onDocumentDragEnd(keys);\r\n };\r\n MouseHandler.prototype.raiseDragScrollStart = function () {\r\n this.eventManager.onDocumentDragScrollStart();\r\n };\r\n MouseHandler.prototype.raiseDragScrollEnd = function () {\r\n this.eventManager.onDocumentDragScrollEnd();\r\n };\r\n MouseHandler.prototype.raiseClick = function (keys) {\r\n this.eventManager.onDocumentClick(keys);\r\n };\r\n MouseHandler.prototype.beginStorePermissions = function () {\r\n this.permissionsProvider.beginStorePermissions();\r\n };\r\n MouseHandler.prototype.endStorePermissions = function () {\r\n this.permissionsProvider.endStorePermissions();\r\n };\r\n MouseHandler.prototype.isStoredPermissionsGranted = function () {\r\n return this.permissionsProvider.isStoredPermissionsGranted();\r\n };\r\n MouseHandler.prototype.lockPermissions = function () {\r\n this.permissionsProvider.lockPermissions();\r\n };\r\n MouseHandler.prototype.unlockPermissions = function () {\r\n this.permissionsProvider.unlockPermissions();\r\n };\r\n MouseHandler.prototype.canPerformChangeConnection = function (connector, operationParams) {\r\n var allowed = true;\r\n if (connector)\r\n allowed = this.permissionsProvider.canChangeConnection(connector, operationParams.item, operationParams.oldItem, operationParams.position, operationParams.connectionPointIndex);\r\n else if (operationParams.item)\r\n allowed = this.permissionsProvider.canChangeConnection(undefined, operationParams.item, operationParams.oldItem, operationParams.position, operationParams.connectionPointIndex);\r\n return allowed;\r\n };\r\n MouseHandler.prototype.canPerformChangeConnectionOnUpdateUI = function (connector, operationParams) {\r\n this.permissionsProvider.beginUpdateUI();\r\n var allowed = this.canPerformChangeConnection(connector, operationParams);\r\n this.permissionsProvider.endUpdateUI();\r\n return allowed;\r\n };\r\n MouseHandler.prototype.canFinishTextEditing = function () {\r\n return this.eventManager.canFinishTextEditing();\r\n };\r\n MouseHandler.prototype.restartState = function () {\r\n if (this.state && !this.finishStateLock) {\r\n this.finishStateLock++;\r\n this.state.finish();\r\n this.finishStateLock--;\r\n }\r\n this.state.start();\r\n };\r\n // switch state\r\n MouseHandler.prototype.switchToDefaultState = function () {\r\n this.switchState(this.defaultState);\r\n };\r\n MouseHandler.prototype.switchState = function (state) {\r\n this.newState = state;\r\n if (this.state && !this.finishStateLock) {\r\n this.finishStateLock++;\r\n this.state.finish();\r\n this.finishStateLock--;\r\n }\r\n if (this.newState) {\r\n this.state = this.newState;\r\n this.state.start();\r\n this.newState = undefined;\r\n }\r\n };\r\n MouseHandler.prototype.addInteractingItem = function (item, operation) {\r\n this.permissionsProvider.addInteractingItem(item, operation);\r\n };\r\n MouseHandler.prototype.clearInteractingItems = function () {\r\n this.permissionsProvider.clearInteractingItems();\r\n };\r\n MouseHandler.prototype.notifyReadOnlyChanged = function (readOnly) {\r\n this.readOnly = readOnly;\r\n this.initializeDefaultState();\r\n };\r\n MouseHandler.prototype.notifySelectionRectShow = function (rect) { };\r\n MouseHandler.prototype.notifySelectionRectHide = function () { };\r\n MouseHandler.prototype.notifyResizeInfoShow = function (point, text) { };\r\n MouseHandler.prototype.notifyResizeInfoHide = function () { };\r\n MouseHandler.prototype.notifyConnectionPointsShow = function (key, points, activePointIndex, outsideRectangle) {\r\n this.state.onConnectionPointsShow(key, points);\r\n };\r\n MouseHandler.prototype.notifyConnectionPointsHide = function () { };\r\n MouseHandler.prototype.notifyConnectionTargetShow = function (key, info) {\r\n this.state.onConnectionTargetShow(key, info);\r\n };\r\n MouseHandler.prototype.notifyConnectionTargetHide = function () { };\r\n MouseHandler.prototype.notifyContainerTargetShow = function (key, info) { };\r\n MouseHandler.prototype.notifyContainerTargetHide = function () { };\r\n MouseHandler.prototype.notifyExtensionLinesShow = function (lines) { };\r\n MouseHandler.prototype.notifyExtensionLinesHide = function () { };\r\n return MouseHandler;\r\n}());\r\nexports.MouseHandler = MouseHandler;\r\n\n\n/***/ }),\n/* 306 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerMoveConnectorPointState = void 0;\r\nvar MouseHandlerMoveConnectorPointStateBase_1 = __webpack_require__(149);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar point_1 = __webpack_require__(1);\r\nvar ConnectorProperties_1 = __webpack_require__(31);\r\nvar MouseHandlerMoveConnectorPointState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerMoveConnectorPointState, _super);\r\n function MouseHandlerMoveConnectorPointState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerMoveConnectorPointState.prototype.onMouseDown = function (evt) {\r\n this.connector = this.model.findConnector(evt.source.key);\r\n this.pointIndex = parseInt(evt.source.value);\r\n if (this.pointIndex === 0)\r\n this.pointPosition = Connector_1.ConnectorPosition.Begin;\r\n else if (this.pointIndex === this.connector.points.length - 1)\r\n this.pointPosition = Connector_1.ConnectorPosition.End;\r\n this.handler.addInteractingItem(this.connector);\r\n _super.prototype.onMouseDown.call(this, evt);\r\n };\r\n MouseHandlerMoveConnectorPointState.prototype.onApplyChanges = function (evt) {\r\n if (this.connector.properties.lineOption !== ConnectorProperties_1.ConnectorLineOption.Orthogonal ||\r\n this.pointIndex === 0 || this.pointIndex === this.connector.points.length - 1)\r\n _super.prototype.onApplyChanges.call(this, evt);\r\n };\r\n MouseHandlerMoveConnectorPointState.prototype.onFinishWithChanges = function () {\r\n _super.prototype.onFinishWithChanges.call(this);\r\n ModelUtils_1.ModelUtils.deleteConnectorUnnecessaryPoints(this.history, this.connector);\r\n };\r\n MouseHandlerMoveConnectorPointState.prototype.getSnappedPoint = function (evt, point) {\r\n var points = this.connector.points;\r\n var index = this.pointIndex;\r\n if (0 < index && index < points.length - 1) {\r\n var tg = (points[index + 1].y - points[index - 1].y) / (points[index + 1].x - points[index - 1].x);\r\n var x = point.x;\r\n var y = points[index + 1].y - (points[index + 1].x - x) * tg;\r\n return this.handler.getSnappedPointOnDragPoint(evt, point, new point_1.Point(x, y));\r\n }\r\n return this.handler.getSnappedPointOnDragPoint(evt, point);\r\n };\r\n return MouseHandlerMoveConnectorPointState;\r\n}(MouseHandlerMoveConnectorPointStateBase_1.MouseHandlerMoveConnectorPointStateBase));\r\nexports.MouseHandlerMoveConnectorPointState = MouseHandlerMoveConnectorPointState;\r\n\n\n/***/ }),\n/* 307 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerResizeShapeState = void 0;\r\nvar size_1 = __webpack_require__(2);\r\nvar point_1 = __webpack_require__(1);\r\nvar Event_1 = __webpack_require__(11);\r\nvar MouseHandlerDraggingState_1 = __webpack_require__(32);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar ShapeDescription_1 = __webpack_require__(8);\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar MouseHandlerResizeShapeState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerResizeShapeState, _super);\r\n function MouseHandlerResizeShapeState(handler, history, model, selection, visualizerManager, settings) {\r\n var _this = _super.call(this, handler, history) || this;\r\n _this.model = model;\r\n _this.selection = selection;\r\n _this.visualizerManager = visualizerManager;\r\n _this.settings = settings;\r\n _this.startScrollLeft = 0;\r\n _this.startScrollTop = 0;\r\n _this.rotation = 0;\r\n return _this;\r\n }\r\n MouseHandlerResizeShapeState.prototype.finish = function () {\r\n this.visualizerManager.resetResizeInfo();\r\n this.visualizerManager.resetExtensionLines();\r\n _super.prototype.finish.call(this);\r\n };\r\n MouseHandlerResizeShapeState.prototype.onMouseDown = function (evt) {\r\n var _this = this;\r\n var source = parseInt(evt.source.value);\r\n this.resizeEventSource = source;\r\n this.startPoint = evt.modelPoint;\r\n this.lockH = source === Event_1.ResizeEventSource.ResizeBox_S || source === Event_1.ResizeEventSource.ResizeBox_N;\r\n this.lockV = source === Event_1.ResizeEventSource.ResizeBox_E || source === Event_1.ResizeEventSource.ResizeBox_W;\r\n this.sideH = source === Event_1.ResizeEventSource.ResizeBox_E || source === Event_1.ResizeEventSource.ResizeBox_NE || source === Event_1.ResizeEventSource.ResizeBox_SE;\r\n this.sideV = source === Event_1.ResizeEventSource.ResizeBox_SE || source === Event_1.ResizeEventSource.ResizeBox_S || source === Event_1.ResizeEventSource.ResizeBox_SW;\r\n this.shapes = this.selection.getSelectedShapes();\r\n if (this.shapes.length === 0) {\r\n this.handler.switchToDefaultState();\r\n return;\r\n }\r\n this.shapes.forEach(function (shape) {\r\n _this.handler.addInteractingItem(shape, ModelOperationSettings_1.DiagramModelOperation.ResizeShape);\r\n _this.handler.addInteractingItem(shape, ModelOperationSettings_1.DiagramModelOperation.MoveShape);\r\n });\r\n this.connectors = this.selection.getSelectedConnectors();\r\n this.startRectangle = ModelUtils_1.ModelUtils.createRectangle(this.shapes);\r\n this.startShapeSizes = this.shapes.map(function (shape) { return shape.size.clone(); });\r\n this.startShapePositions = this.shapes.map(function (shape) { return shape.position.clone(); });\r\n this.startConnectorPoints = this.connectors.map(function (c) { return c.points.map(function (p) { return p.clone(); }); });\r\n _super.prototype.onMouseDown.call(this, evt);\r\n };\r\n MouseHandlerResizeShapeState.prototype.onMouseMove = function (evt) {\r\n _super.prototype.onMouseMove.call(this, evt);\r\n var shapes = this.selection.getSelectedShapes();\r\n this.visualizerManager.setExtensionLines(shapes);\r\n };\r\n MouseHandlerResizeShapeState.prototype.onApplyChanges = function (evt) {\r\n var _this = this;\r\n var rectangle = ModelUtils_1.ModelUtils.createRectangle(this.shapes);\r\n var minWidth = this.shapes.length === 1 ? this.shapes[0].getMinWidth(this.settings.shapeMinWidth) : ShapeDescription_1.ShapeMinDimension;\r\n var minHeight = this.shapes.length === 1 ? this.shapes[0].getMinHeight(this.settings.shapeMinHeight) : ShapeDescription_1.ShapeMinDimension;\r\n var maxWidth = this.shapes.length === 1 ? this.shapes[0].getMaxWidth(this.settings.shapeMaxWidth) : undefined;\r\n var maxHeight = this.shapes.length === 1 ? this.shapes[0].getMaxHeight(this.settings.shapeMaxHeight) : undefined;\r\n var size = this.getSize(evt, rectangle.createPosition(), this.startRectangle.createSize(), minWidth, minHeight, maxWidth, maxHeight, this.handler.lockAspectRatioOnShapeResize(evt));\r\n var pos = this.getPosition(evt, size, this.startRectangle.createSize(), this.startRectangle.createPosition());\r\n var ratioX = size.width / this.startRectangle.width;\r\n var ratioY = size.height / this.startRectangle.height;\r\n this.shapes.forEach(function (shape, index) {\r\n var shapeWidth = _this.startShapeSizes[index].width * (shape.allowResizeHorizontally ? ratioX : 1);\r\n shapeWidth = _this.getNormalizedSize(shapeWidth, shape.getMinWidth(_this.settings.shapeMinWidth), shape.getMaxWidth(_this.settings.shapeMaxWidth));\r\n var shapeHeight = _this.startShapeSizes[index].height * (shape.allowResizeVertically ? ratioY : 1);\r\n shapeHeight = _this.getNormalizedSize(shapeHeight, shape.getMinHeight(_this.settings.shapeMinHeight), shape.getMaxHeight(_this.settings.shapeMaxHeight));\r\n var shapeLeft = shape.allowResizeHorizontally ? (pos.x + (_this.startShapePositions[index].x - _this.startRectangle.x) * ratioX) : _this.startShapePositions[index].x;\r\n var shapeTop = shape.allowResizeVertically ? (pos.y + (_this.startShapePositions[index].y - _this.startRectangle.y) * ratioY) : _this.startShapePositions[index].y;\r\n ModelUtils_1.ModelUtils.setShapeSize(_this.history, _this.model, shape, new point_1.Point(shapeLeft, shapeTop), new size_1.Size(shapeWidth, shapeHeight));\r\n });\r\n this.connectors.forEach(function (connector, index) {\r\n var startPtIndex = connector.beginItem ? 1 : 0;\r\n var endPtIndex = connector.endItem ? (connector.points.length - 2) : (connector.points.length - 1);\r\n for (var i = startPtIndex; i <= endPtIndex; i++) {\r\n var connectorPtPos = new point_1.Point(pos.x + (_this.startConnectorPoints[index][i].x - _this.startRectangle.x) * ratioX, pos.y + (_this.startConnectorPoints[index][i].y - _this.startRectangle.y) * ratioY);\r\n ModelUtils_1.ModelUtils.moveConnectorPoint(_this.history, connector, i, connectorPtPos);\r\n }\r\n });\r\n var shapes = this.selection.getSelectedShapes(false, true);\r\n shapes.forEach(function (shape) {\r\n ModelUtils_1.ModelUtils.updateShapeAttachedConnectors(_this.history, _this.model, shape);\r\n });\r\n this.tryUpdateModelSize();\r\n this.visualizerManager.setResizeInfo(this.shapes);\r\n };\r\n MouseHandlerResizeShapeState.prototype.tryUpdateModelSize = function () {\r\n var _this = this;\r\n this.handler.tryUpdateModelSize(function (offsetLeft, offsetTop) {\r\n _this.startShapePositions.forEach(function (pt) {\r\n pt.x += offsetLeft;\r\n pt.y += offsetTop;\r\n });\r\n _this.startConnectorPoints.forEach(function (connector) {\r\n connector.forEach(function (pt) {\r\n pt.x += offsetLeft;\r\n pt.y += offsetTop;\r\n });\r\n });\r\n _this.startRectangle.x += offsetLeft;\r\n _this.startRectangle.y += offsetTop;\r\n _this.startPoint.x += offsetLeft;\r\n _this.startPoint.y += offsetTop;\r\n });\r\n };\r\n MouseHandlerResizeShapeState.prototype.getDraggingElementKeys = function () {\r\n return this.shapes.map(function (shape) { return shape.key; });\r\n };\r\n MouseHandlerResizeShapeState.prototype.getNormalizedSize = function (value, minValue, maxValue) {\r\n if (minValue !== undefined)\r\n value = Math.max(value, minValue);\r\n if (maxValue !== undefined)\r\n value = Math.min(value, maxValue);\r\n return value;\r\n };\r\n MouseHandlerResizeShapeState.prototype.getSize = function (evt, position, startSize, minWidth, minHeight, maxWidth, maxHeight, lockAspectRatio) {\r\n var absDeltaX = evt.modelPoint.x - (this.startScrollLeft - evt.scrollX) - this.startPoint.x;\r\n var absDeltaY = evt.modelPoint.y - (this.startScrollTop - evt.scrollY) - this.startPoint.y;\r\n var deltaX = absDeltaX * Math.cos(this.rotation) - (-absDeltaY) * Math.sin(this.rotation);\r\n var deltaY = -(absDeltaX * Math.sin(this.rotation) + (-absDeltaY) * Math.cos(this.rotation));\r\n var newWidth;\r\n var newHeight;\r\n deltaY = !this.sideV && deltaY > 0 ? Math.min(startSize.height + 1, deltaY) : deltaY;\r\n deltaX = !this.sideH && deltaX > 0 ? Math.min(startSize.width + 1, deltaX) : deltaX;\r\n if (!this.lockH && !this.lockV && lockAspectRatio)\r\n if (Math.abs(deltaX) > Math.abs(deltaY)) {\r\n newWidth = this.getNormalizedSize(this.sideH ? (startSize.width + deltaX) : (startSize.width - deltaX), minWidth, maxWidth);\r\n newHeight = startSize.height * (newWidth / startSize.width);\r\n }\r\n else {\r\n newHeight = this.getNormalizedSize(this.sideV ? (startSize.height + deltaY) : (startSize.height - deltaY), minHeight, maxHeight);\r\n newWidth = startSize.width * (newHeight / startSize.height);\r\n }\r\n else {\r\n deltaX = this.lockH ? 0 : deltaX;\r\n deltaY = this.lockV ? 0 : deltaY;\r\n newWidth = this.getNormalizedSize(this.sideH ? (startSize.width + deltaX) : (startSize.width - deltaX), minWidth, maxWidth);\r\n newHeight = this.getNormalizedSize(this.sideV ? (startSize.height + deltaY) : (startSize.height - deltaY), minHeight, maxHeight);\r\n }\r\n if (!this.lockH)\r\n newWidth = this.getSnappedPosition(evt, position.x + newWidth, true) - position.x;\r\n if (!this.lockV)\r\n newHeight = this.getSnappedPosition(evt, position.y + newHeight, false) - position.y;\r\n return new size_1.Size(newWidth, newHeight);\r\n };\r\n MouseHandlerResizeShapeState.prototype.getPosition = function (evt, size, startSize, startPosition) {\r\n var x = startPosition.x;\r\n var y = startPosition.y;\r\n if (this.resizeEventSource === Event_1.ResizeEventSource.ResizeBox_N ||\r\n this.resizeEventSource === Event_1.ResizeEventSource.ResizeBox_NE ||\r\n this.resizeEventSource === Event_1.ResizeEventSource.ResizeBox_NW) {\r\n y += startSize.height - size.height;\r\n var snappedY = this.getSnappedPosition(evt, y, false);\r\n size.height += y - snappedY;\r\n y = snappedY;\r\n }\r\n if (this.resizeEventSource === Event_1.ResizeEventSource.ResizeBox_W ||\r\n this.resizeEventSource === Event_1.ResizeEventSource.ResizeBox_NW ||\r\n this.resizeEventSource === Event_1.ResizeEventSource.ResizeBox_SW) {\r\n x += startSize.width - size.width;\r\n var snappedX = this.getSnappedPosition(evt, x, true);\r\n size.width += x - snappedX;\r\n x = snappedX;\r\n }\r\n return new point_1.Point(x, y);\r\n };\r\n MouseHandlerResizeShapeState.prototype.getSnappedPosition = function (evt, pos, isHorizontal) {\r\n return this.handler.getSnappedPositionOnResizeShape(evt, pos, isHorizontal);\r\n };\r\n return MouseHandlerResizeShapeState;\r\n}(MouseHandlerDraggingState_1.MouseHandlerDraggingState));\r\nexports.MouseHandlerResizeShapeState = MouseHandlerResizeShapeState;\r\n\n\n/***/ }),\n/* 308 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerMoveConnectorSideState = void 0;\r\nvar MouseHandlerDraggingState_1 = __webpack_require__(32);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar MouseHandlerMoveConnectorSideState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerMoveConnectorSideState, _super);\r\n function MouseHandlerMoveConnectorSideState(handler, history, model) {\r\n var _this = _super.call(this, handler, history) || this;\r\n _this.model = model;\r\n return _this;\r\n }\r\n MouseHandlerMoveConnectorSideState.prototype.onMouseDown = function (evt) {\r\n this.startPoint = evt.modelPoint;\r\n this.connectorKey = evt.source.key;\r\n this.pointIndex = parseInt(evt.source.value) + 1;\r\n _super.prototype.onMouseDown.call(this, evt);\r\n };\r\n MouseHandlerMoveConnectorSideState.prototype.onApplyChanges = function (evt) {\r\n var point = this.getSnappedPoint(evt, evt.modelPoint);\r\n var connector = this.model.findConnector(this.connectorKey);\r\n if (!this.pointCreated) {\r\n this.handler.addInteractingItem(connector);\r\n ModelUtils_1.ModelUtils.addConnectorPoint(this.history, this.connectorKey, this.pointIndex, point.clone());\r\n this.pointCreated = true;\r\n }\r\n else\r\n ModelUtils_1.ModelUtils.moveConnectorPoint(this.history, connector, this.pointIndex, point);\r\n this.handler.tryUpdateModelSize();\r\n };\r\n MouseHandlerMoveConnectorSideState.prototype.onFinishWithChanges = function () {\r\n ModelUtils_1.ModelUtils.deleteConnectorUnnecessaryPoints(this.history, this.model.findConnector(this.connectorKey));\r\n };\r\n MouseHandlerMoveConnectorSideState.prototype.getDraggingElementKeys = function () {\r\n return [this.connectorKey];\r\n };\r\n return MouseHandlerMoveConnectorSideState;\r\n}(MouseHandlerDraggingState_1.MouseHandlerDraggingState));\r\nexports.MouseHandlerMoveConnectorSideState = MouseHandlerMoveConnectorSideState;\r\n\n\n/***/ }),\n/* 309 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerDragParameterPointState = void 0;\r\nvar MouseHandlerDraggingState_1 = __webpack_require__(32);\r\nvar ChangeShapeParametersHistoryItem_1 = __webpack_require__(114);\r\nvar MouseHandlerDragParameterPointState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerDragParameterPointState, _super);\r\n function MouseHandlerDragParameterPointState(handler, history, model) {\r\n var _this = _super.call(this, handler, history) || this;\r\n _this.model = model;\r\n _this.startScrollLeft = 0;\r\n _this.startScrollTop = 0;\r\n return _this;\r\n }\r\n MouseHandlerDragParameterPointState.prototype.onMouseDown = function (evt) {\r\n this.startPoint = evt.modelPoint;\r\n this.shape = this.model.findShape(evt.source.key);\r\n this.parameterPointKey = evt.source.value;\r\n this.startParameters = this.shape.parameters.clone();\r\n _super.prototype.onMouseDown.call(this, evt);\r\n };\r\n MouseHandlerDragParameterPointState.prototype.onApplyChanges = function (evt) {\r\n var offset = this.handler.getSnappedOffsetOnDragPoint(evt, this.startPoint);\r\n var parameters = this.startParameters.clone();\r\n this.shape.description.modifyParameters(this.shape, parameters, offset.x, offset.y);\r\n this.history.addAndRedo(new ChangeShapeParametersHistoryItem_1.ChangeShapeParametersHistoryItem(this.shape.key, parameters));\r\n };\r\n MouseHandlerDragParameterPointState.prototype.getDraggingElementKeys = function () {\r\n return [this.shape.key];\r\n };\r\n return MouseHandlerDragParameterPointState;\r\n}(MouseHandlerDraggingState_1.MouseHandlerDraggingState));\r\nexports.MouseHandlerDragParameterPointState = MouseHandlerDragParameterPointState;\r\n\n\n/***/ }),\n/* 310 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerCreateConnectorState = void 0;\r\nvar Connector_1 = __webpack_require__(7);\r\nvar AddConnectionHistoryItem_1 = __webpack_require__(47);\r\nvar AddConnectorHistoryItem_1 = __webpack_require__(63);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar MouseHandlerMoveConnectorPointStateBase_1 = __webpack_require__(149);\r\nvar SetSelectionHistoryItem_1 = __webpack_require__(65);\r\nvar AddShapeHistoryItem_1 = __webpack_require__(51);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar DeleteConnectionHistoryItem_1 = __webpack_require__(64);\r\nvar DeleteConnectorHistoryItem_1 = __webpack_require__(115);\r\nvar MouseHandlerCreateConnectorState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerCreateConnectorState, _super);\r\n function MouseHandlerCreateConnectorState(handler, history, model, visualizerManager, shapeDescriptionManager, selection, connectionPointIndex) {\r\n var _this = _super.call(this, handler, history, model, visualizerManager) || this;\r\n _this.shapeDescriptionManager = shapeDescriptionManager;\r\n _this.selection = selection;\r\n _this.connectionPointIndex = connectionPointIndex;\r\n return _this;\r\n }\r\n MouseHandlerCreateConnectorState.prototype.onMouseDown = function (evt) {\r\n if (this.connectionPointIndex === undefined)\r\n this.connectionPointIndex = parseInt(evt.source.value);\r\n this.connectedItem = this.model.findItem(evt.source.key);\r\n this.pointIndex = 1;\r\n this.pointPosition = Connector_1.ConnectorPosition.End;\r\n _super.prototype.onMouseDown.call(this, evt);\r\n };\r\n MouseHandlerCreateConnectorState.prototype.onMouseUp = function (evt) {\r\n if (this.connector && !this.connector.endItem)\r\n this.createNewShapeAtConnectorEnd(evt);\r\n _super.prototype.onMouseUp.call(this, evt);\r\n };\r\n MouseHandlerCreateConnectorState.prototype.onApplyChanges = function (evt) {\r\n var point = this.getSnappedPoint(evt, evt.modelPoint);\r\n if (!this.connector) {\r\n var historyItem = new AddConnectorHistoryItem_1.AddConnectorHistoryItem([this.connectedItem.getConnectionPointPosition(this.connectionPointIndex, point), point]);\r\n this.history.addAndRedo(historyItem);\r\n this.connector = this.model.findConnector(historyItem.connectorKey);\r\n this.handler.addInteractingItem(this.connector);\r\n this.history.addAndRedo(new AddConnectionHistoryItem_1.AddConnectionHistoryItem(this.connector, this.connectedItem, this.connectionPointIndex, Connector_1.ConnectorPosition.Begin));\r\n ModelUtils_1.ModelUtils.updateNewConnectorProperties(this.history, this.selection, this.connector.key);\r\n }\r\n else\r\n _super.prototype.onApplyChanges.call(this, evt);\r\n };\r\n MouseHandlerCreateConnectorState.prototype.checkStoredPermissionsOnFinish = function () {\r\n if (this.connector && this.connector.endItem)\r\n _super.prototype.checkStoredPermissionsOnFinish.call(this);\r\n };\r\n MouseHandlerCreateConnectorState.prototype.onFinishWithChanges = function () {\r\n _super.prototype.onFinishWithChanges.call(this);\r\n this.history.addAndRedo(new SetSelectionHistoryItem_1.SetSelectionHistoryItem(this.selection, [this.connector.key]));\r\n };\r\n MouseHandlerCreateConnectorState.prototype.createNewShapeAtConnectorEnd = function (evt) {\r\n var _this = this;\r\n var beginShape = this.connector && this.connector.beginItem;\r\n if (!beginShape)\r\n return;\r\n var side = this.getNewShapeSide(this.connector);\r\n var point = this.getSnappedPoint(evt, evt.modelPoint);\r\n var category = this.shapeDescriptionManager.getCategoryByDescription(beginShape.description);\r\n var getPositionToInsertShapeTo = function (shape) {\r\n var clonedShape = shape.clone();\r\n clonedShape.position = point.clone();\r\n var position = _this.getNewShapePosition(clonedShape, side);\r\n return _this.handler.getSnappedPointOnDragPoint(evt, position);\r\n };\r\n this.handler.showContextToolbox(point, getPositionToInsertShapeTo, side, category, function (shapeType) {\r\n if (!shapeType)\r\n return;\r\n _this.handler.beginStorePermissions();\r\n _this.history.beginTransaction();\r\n var historyItem = new AddShapeHistoryItem_1.AddShapeHistoryItem(_this.shapeDescriptionManager.get(shapeType), point);\r\n _this.history.addAndRedo(historyItem);\r\n var shape = _this.model.findShape(historyItem.shapeKey);\r\n var container = _this.targetItem && _this.model.findNearestContainer(_this.targetItem.key);\r\n if (container)\r\n ModelUtils_1.ModelUtils.insertToContainer(_this.history, _this.model, shape, container);\r\n var newPosition = _this.getNewShapePosition(shape, side);\r\n ModelUtils_1.ModelUtils.setShapePosition(_this.history, _this.model, shape, _this.getSnappedPoint(evt, newPosition));\r\n ModelUtils_1.ModelUtils.updateNewShapeProperties(_this.history, _this.selection, shape.key);\r\n _this.history.addAndRedo(new AddConnectionHistoryItem_1.AddConnectionHistoryItem(_this.connector, shape, shape.getConnectionPointIndexForSide(side), Connector_1.ConnectorPosition.End));\r\n if (container)\r\n ModelUtils_1.ModelUtils.updateConnectorContainer(_this.history, _this.model, _this.connector);\r\n ModelUtils_1.ModelUtils.updateShapeAttachedConnectors(_this.history, _this.model, shape);\r\n if (!_this.handler.isStoredPermissionsGranted()) {\r\n _this.handler.lockPermissions();\r\n _this.history.undoTransaction();\r\n _this.handler.unlockPermissions();\r\n _this.checkNewConnectorPermissions();\r\n }\r\n else {\r\n _this.handler.tryUpdateModelSize();\r\n _this.history.addAndRedo(new SetSelectionHistoryItem_1.SetSelectionHistoryItem(_this.selection, [shape.key]));\r\n }\r\n _this.history.endTransaction();\r\n _this.handler.endStorePermissions();\r\n _this.handler.hideContextToolbox(true);\r\n }, function () {\r\n _this.checkNewConnectorPermissions();\r\n });\r\n };\r\n MouseHandlerCreateConnectorState.prototype.checkNewConnectorPermissions = function () {\r\n if (this.connector && !this.handler.canPerformChangeConnection(this.connector, { position: Connector_1.ConnectorPosition.End, connectionPointIndex: -1 })) {\r\n this.handler.lockPermissions();\r\n this.history.beginTransaction();\r\n this.history.addAndRedo(new SetSelectionHistoryItem_1.SetSelectionHistoryItem(this.selection, []));\r\n if (this.connector.beginItem)\r\n this.history.addAndRedo(new DeleteConnectionHistoryItem_1.DeleteConnectionHistoryItem(this.connector, Connector_1.ConnectorPosition.Begin));\r\n if (this.connector.endItem)\r\n this.history.addAndRedo(new DeleteConnectionHistoryItem_1.DeleteConnectionHistoryItem(this.connector, Connector_1.ConnectorPosition.End));\r\n this.history.addAndRedo(new DeleteConnectorHistoryItem_1.DeleteConnectorHistoryItem(this.connector.key));\r\n this.history.endTransaction();\r\n this.handler.unlockPermissions();\r\n }\r\n };\r\n MouseHandlerCreateConnectorState.prototype.getNewShapePosition = function (shape, side) {\r\n switch (side) {\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n return shape.position.clone().offset(-shape.size.width / 2, 0);\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n return shape.position.clone().offset(-shape.size.width / 2, -shape.size.height);\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n return shape.position.clone().offset(-shape.size.width, -shape.size.height / 2);\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n return shape.position.clone().offset(0, -shape.size.height / 2);\r\n }\r\n };\r\n MouseHandlerCreateConnectorState.prototype.getNewShapeSide = function (connector) {\r\n var renderPoints = connector.getRenderPoints();\r\n return MouseHandlerCreateConnectorState.getNewShapeSideByConnectorPoints(renderPoints[renderPoints.length - 1], renderPoints[renderPoints.length - 2]);\r\n };\r\n MouseHandlerCreateConnectorState.prototype.getSourceItem = function () {\r\n return this.connectedItem;\r\n };\r\n MouseHandlerCreateConnectorState.getNewShapeSideByConnectorPoints = function (point, directionPoint) {\r\n if (point.x === directionPoint.x)\r\n if (point.y > directionPoint.y)\r\n return DiagramItem_1.ConnectionPointSide.North;\r\n else\r\n return DiagramItem_1.ConnectionPointSide.South;\r\n else if (point.x > directionPoint.x)\r\n if (point.y === directionPoint.y)\r\n return DiagramItem_1.ConnectionPointSide.West;\r\n else if (point.y > directionPoint.y)\r\n if (Math.abs(point.x - directionPoint.x) > Math.abs(point.y - directionPoint.y))\r\n return DiagramItem_1.ConnectionPointSide.West;\r\n else\r\n return DiagramItem_1.ConnectionPointSide.North;\r\n else if (Math.abs(point.x - directionPoint.x) > Math.abs(point.y - directionPoint.y))\r\n return DiagramItem_1.ConnectionPointSide.West;\r\n else\r\n return DiagramItem_1.ConnectionPointSide.South;\r\n else if (point.y === directionPoint.y)\r\n return DiagramItem_1.ConnectionPointSide.East;\r\n else if (point.y > directionPoint.y)\r\n if (Math.abs(point.x - directionPoint.x) > Math.abs(point.y - directionPoint.y))\r\n return DiagramItem_1.ConnectionPointSide.East;\r\n else\r\n return DiagramItem_1.ConnectionPointSide.North;\r\n else if (Math.abs(point.x - directionPoint.x) > Math.abs(point.y - directionPoint.y))\r\n return DiagramItem_1.ConnectionPointSide.East;\r\n else\r\n return DiagramItem_1.ConnectionPointSide.South;\r\n };\r\n return MouseHandlerCreateConnectorState;\r\n}(MouseHandlerMoveConnectorPointStateBase_1.MouseHandlerMoveConnectorPointStateBase));\r\nexports.MouseHandlerCreateConnectorState = MouseHandlerCreateConnectorState;\r\n\n\n/***/ }),\n/* 311 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerMoveConnectorOrthogonalSideState = void 0;\r\nvar point_1 = __webpack_require__(1);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar MouseHandlerDraggingState_1 = __webpack_require__(32);\r\nvar MouseHandlerMoveConnectorOrthogonalSideState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerMoveConnectorOrthogonalSideState, _super);\r\n function MouseHandlerMoveConnectorOrthogonalSideState(handler, history, model) {\r\n var _this = _super.call(this, handler, history) || this;\r\n _this.model = model;\r\n return _this;\r\n }\r\n MouseHandlerMoveConnectorOrthogonalSideState.prototype.onMouseDown = function (evt) {\r\n this.startPoint = evt.modelPoint;\r\n this.connector = this.model.findConnector(evt.source.key);\r\n this.handler.addInteractingItem(this.connector);\r\n var renderPointIndexes = evt.source.value.split(\"_\");\r\n var renderPointIndex1 = parseInt(renderPointIndexes[0]);\r\n var renderPointIndex2 = parseInt(renderPointIndexes[1]);\r\n var points = this.connector.getRenderPoints(true);\r\n this.renderPoint1 = points[renderPointIndex1].clone();\r\n this.renderPoint2 = points[renderPointIndex2].clone();\r\n this.isVerticalOrientation = this.renderPoint1.x === this.renderPoint2.x;\r\n if (this.renderPoint1.pointIndex !== -1) {\r\n this.pointIndex1 = this.renderPoint1.pointIndex;\r\n if (this.pointIndex1 === 0) {\r\n this.pointIndex1++;\r\n this.correctEdgePoint(this.renderPoint1, this.renderPoint2, this.connector.beginItem, this.connector.beginConnectionPointIndex);\r\n }\r\n else\r\n this.point1 = this.connector.points[this.pointIndex1].clone();\r\n }\r\n else\r\n this.pointIndex1 = this.findPointIndex(points, renderPointIndex1, false) + 1;\r\n if (this.renderPoint2.pointIndex !== -1) {\r\n this.pointIndex2 = this.renderPoint2.pointIndex;\r\n if (this.pointIndex2 === this.connector.points.length - 1)\r\n this.correctEdgePoint(this.renderPoint2, this.renderPoint1, this.connector.endItem, this.connector.endConnectionPointIndex);\r\n else\r\n this.point2 = this.connector.points[this.pointIndex2].clone();\r\n }\r\n else\r\n this.pointIndex2 = this.findPointIndex(points, renderPointIndex2, true);\r\n _super.prototype.onMouseDown.call(this, evt);\r\n };\r\n MouseHandlerMoveConnectorOrthogonalSideState.prototype.onApplyChanges = function (evt) {\r\n var _this = this;\r\n if (!this.pointCreated) {\r\n var createdPoint1_1;\r\n var createdPoint2_1;\r\n if (this.point1 === undefined) {\r\n this.point1 = new point_1.Point(this.renderPoint1.x, this.renderPoint1.y);\r\n ModelUtils_1.ModelUtils.addConnectorPoint(this.history, this.connector.key, this.pointIndex1, this.point1.clone());\r\n createdPoint1_1 = this.point1.clone();\r\n this.pointIndex2++;\r\n }\r\n if (this.point2 === undefined) {\r\n this.point2 = new point_1.Point(this.renderPoint2.x, this.renderPoint2.y);\r\n ModelUtils_1.ModelUtils.addConnectorPoint(this.history, this.connector.key, this.pointIndex2, this.point2.clone());\r\n createdPoint2_1 = this.point2.clone();\r\n }\r\n var unnecessaryPoints = ModelUtils_1.ModelUtils.createUnnecessaryPoints(this.connector.points, this.connector.skippedRenderPoints, function (p) { return (!createdPoint1_1 || !p.equals(createdPoint1_1)) && (!createdPoint2_1 || !p.equals(createdPoint2_1)); });\r\n Object.keys(unnecessaryPoints).forEach(function (key) {\r\n var pointIndex = parseInt(key);\r\n if (pointIndex < _this.pointIndex1)\r\n _this.pointIndex1--;\r\n if (pointIndex < _this.pointIndex2)\r\n _this.pointIndex2--;\r\n });\r\n this.pointCreated = true;\r\n }\r\n var point = this.getSnappedPoint(evt, evt.modelPoint);\r\n if (this.isVerticalOrientation) {\r\n this.point1.x = point.x;\r\n this.point2.x = point.x;\r\n }\r\n else {\r\n this.point1.y = point.y;\r\n this.point2.y = point.y;\r\n }\r\n ModelUtils_1.ModelUtils.moveConnectorPoint(this.history, this.connector, this.pointIndex1, this.point1.clone());\r\n ModelUtils_1.ModelUtils.moveConnectorPoint(this.history, this.connector, this.pointIndex2, this.point2.clone());\r\n this.handler.tryUpdateModelSize();\r\n };\r\n MouseHandlerMoveConnectorOrthogonalSideState.prototype.onFinishWithChanges = function () {\r\n ModelUtils_1.ModelUtils.deleteConnectorUnnecessaryPoints(this.history, this.connector, true);\r\n };\r\n MouseHandlerMoveConnectorOrthogonalSideState.prototype.findPointIndex = function (points, index, direction) {\r\n var point;\r\n while (point = points[index]) {\r\n if (point.pointIndex !== -1)\r\n return point.pointIndex;\r\n index += direction ? 1 : -1;\r\n }\r\n };\r\n MouseHandlerMoveConnectorOrthogonalSideState.prototype.correctEdgePoint = function (point, directionPoint, item, connectionPointIndex) {\r\n var offset = 0;\r\n if (item) {\r\n var side = item.getConnectionPointSideByIndex(connectionPointIndex);\r\n var rect = item.rectangle;\r\n offset = Connector_1.Connector.minOffset;\r\n switch (side) {\r\n case DiagramItem_1.ConnectionPointSide.South:\r\n offset += rect.bottom - point.y;\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.North:\r\n offset += point.y - rect.y;\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.East:\r\n offset += rect.right - point.x;\r\n break;\r\n case DiagramItem_1.ConnectionPointSide.West:\r\n offset += point.x - rect.x;\r\n break;\r\n }\r\n }\r\n if (this.isVerticalOrientation)\r\n if (point.y > directionPoint.y)\r\n point.y -= Math.min(offset, point.y - directionPoint.y);\r\n else\r\n point.y += Math.min(offset, directionPoint.y - point.y);\r\n else if (point.x > directionPoint.x)\r\n point.x -= Math.min(offset, point.x - directionPoint.x);\r\n else\r\n point.x += Math.min(offset, directionPoint.x - point.x);\r\n };\r\n MouseHandlerMoveConnectorOrthogonalSideState.prototype.getDraggingElementKeys = function () {\r\n return [this.connector.key];\r\n };\r\n return MouseHandlerMoveConnectorOrthogonalSideState;\r\n}(MouseHandlerDraggingState_1.MouseHandlerDraggingState));\r\nexports.MouseHandlerMoveConnectorOrthogonalSideState = MouseHandlerMoveConnectorOrthogonalSideState;\r\n\n\n/***/ }),\n/* 312 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerToolboxDraggingState = exports.MouseHandlerBeforeToolboxDraggingState = void 0;\r\nvar Event_1 = __webpack_require__(11);\r\nvar point_1 = __webpack_require__(1);\r\nvar AddShapeHistoryItem_1 = __webpack_require__(51);\r\nvar SetSelectionHistoryItem_1 = __webpack_require__(65);\r\nvar MouseHandlerDraggingState_1 = __webpack_require__(32);\r\nvar DeleteShapeHistoryItem_1 = __webpack_require__(116);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar MouseHandlerStateBase_1 = __webpack_require__(39);\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar NON_DOCUMENT_TIMER = 500;\r\nvar LOCK_UPDATEPAGESIZE_TIMER = 300;\r\nvar MouseHandlerBeforeToolboxDraggingState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerBeforeToolboxDraggingState, _super);\r\n function MouseHandlerBeforeToolboxDraggingState(handler, history, model, selection, visualizerManager, shapeDescriptionManager) {\r\n var _this = _super.call(this, handler) || this;\r\n _this.history = history;\r\n _this.model = model;\r\n _this.selection = selection;\r\n _this.visualizerManager = visualizerManager;\r\n _this.shapeDescriptionManager = shapeDescriptionManager;\r\n _this.isModelEmpty = model.items.length === 0;\r\n return _this;\r\n }\r\n MouseHandlerBeforeToolboxDraggingState.prototype.cancelChanges = function () {\r\n this.tryRemoveTimer();\r\n };\r\n MouseHandlerBeforeToolboxDraggingState.prototype.onDragStart = function (evt) {\r\n this.dragging = evt;\r\n };\r\n MouseHandlerBeforeToolboxDraggingState.prototype.onDragEnd = function (evt) {\r\n this.cancelChanges();\r\n this.handler.switchToDefaultState();\r\n };\r\n MouseHandlerBeforeToolboxDraggingState.prototype.onMouseMove = function (evt) {\r\n var _this = this;\r\n if (evt.source.type > Event_1.MouseEventElementType.Background) {\r\n this.tryRemoveTimer();\r\n this.switchToDraggingState(evt, false);\r\n }\r\n else if (evt.source.type === Event_1.MouseEventElementType.Background && !this.isModelEmpty) {\r\n this.savedEvt = evt;\r\n if (this.nonPageAreaTimer === undefined)\r\n this.nonPageAreaTimer = setTimeout(function () { return _this.switchToDraggingState(_this.savedEvt, true); }, NON_DOCUMENT_TIMER);\r\n }\r\n else if (this.nonPageAreaTimer !== undefined)\r\n this.tryRemoveTimer();\r\n };\r\n MouseHandlerBeforeToolboxDraggingState.prototype.switchToDraggingState = function (evt, skipLockUpdatePageSize) {\r\n this.handler.switchState(new MouseHandlerToolboxDraggingState(this.handler, this.history, this.model, this.selection, this.visualizerManager, this.shapeDescriptionManager, skipLockUpdatePageSize));\r\n this.handler.state.onDragStart(this.dragging);\r\n this.handler.state.onMouseMove(evt);\r\n };\r\n MouseHandlerBeforeToolboxDraggingState.prototype.tryRemoveTimer = function () {\r\n if (this.nonPageAreaTimer !== undefined) {\r\n clearTimeout(this.nonPageAreaTimer);\r\n delete this.nonPageAreaTimer;\r\n }\r\n };\r\n MouseHandlerBeforeToolboxDraggingState.prototype.finish = function () {\r\n this.tryRemoveTimer();\r\n };\r\n return MouseHandlerBeforeToolboxDraggingState;\r\n}(MouseHandlerStateBase_1.MouseHandlerCancellableState));\r\nexports.MouseHandlerBeforeToolboxDraggingState = MouseHandlerBeforeToolboxDraggingState;\r\nvar MouseHandlerToolboxDraggingState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerToolboxDraggingState, _super);\r\n function MouseHandlerToolboxDraggingState(handler, history, model, selection, visualizerManager, shapeDescriptionManager, skipLockUpdatePageSize) {\r\n var _this = _super.call(this, handler, history) || this;\r\n _this.model = model;\r\n _this.selection = selection;\r\n _this.visualizerManager = visualizerManager;\r\n _this.shapeDescriptionManager = shapeDescriptionManager;\r\n if (!skipLockUpdatePageSize)\r\n _this.updatePageSizeTimer = setTimeout(function () {\r\n _this.processAndRemoveUpdatePageSizeTimer();\r\n }, LOCK_UPDATEPAGESIZE_TIMER);\r\n return _this;\r\n }\r\n MouseHandlerToolboxDraggingState.prototype.cancelChanges = function () {\r\n this.tryRemoveUpdatePageSizeTimer();\r\n _super.prototype.cancelChanges.call(this);\r\n };\r\n MouseHandlerToolboxDraggingState.prototype.tryRemoveUpdatePageSizeTimer = function () {\r\n if (this.updatePageSizeTimer !== undefined) {\r\n clearTimeout(this.updatePageSizeTimer);\r\n delete this.updatePageSizeTimer;\r\n }\r\n };\r\n MouseHandlerToolboxDraggingState.prototype.processAndRemoveUpdatePageSizeTimer = function () {\r\n if (this.updatePageSizeTimer !== undefined) {\r\n this.handler.tryUpdateModelSize();\r\n delete this.updatePageSizeTimer;\r\n }\r\n };\r\n MouseHandlerToolboxDraggingState.prototype.onMouseMove = function (evt) {\r\n _super.prototype.onMouseMove.call(this, evt);\r\n var shape = this.model.findShape(this.shapeKey);\r\n if (shape) {\r\n this.visualizerManager.setExtensionLines([shape]);\r\n var container = ModelUtils_1.ModelUtils.findContainerByEventKey(this.model, this.selection, evt.source.key);\r\n if (container && this.allowInsertToContainer(evt, shape, container))\r\n this.visualizerManager.setContainerTarget(container, evt.source.type);\r\n else\r\n this.visualizerManager.resetContainerTarget();\r\n }\r\n };\r\n MouseHandlerToolboxDraggingState.prototype.getDraggingElementKeys = function () {\r\n return this.shapeKey === undefined ? [] : [this.shapeKey];\r\n };\r\n MouseHandlerToolboxDraggingState.prototype.onApplyChanges = function (evt) {\r\n var _this = this;\r\n if (evt.source.type === Event_1.MouseEventElementType.Undefined) {\r\n this.dragging.onCaptured(false);\r\n if (this.shapeKey !== undefined && !this.deleteHistoryItem) {\r\n var shape = this.model.findShape(this.shapeKey);\r\n ModelUtils_1.ModelUtils.detachConnectors(this.history, shape);\r\n ModelUtils_1.ModelUtils.removeFromContainer(this.history, this.model, shape);\r\n this.deleteHistoryItem = new DeleteShapeHistoryItem_1.DeleteShapeHistoryItem(this.shapeKey, true);\r\n this.history.addAndRedo(this.deleteHistoryItem);\r\n }\r\n }\r\n else {\r\n this.dragging.onCaptured(true);\r\n if (this.shapeKey === undefined) {\r\n this.startPoint = evt.modelPoint;\r\n this.shapeKey = this.insertToolboxItem(evt);\r\n var shape_1 = this.model.findShape(this.shapeKey);\r\n if (shape_1)\r\n this.handler.addInteractingItem(shape_1, ModelOperationSettings_1.DiagramModelOperation.AddShape);\r\n }\r\n if (this.deleteHistoryItem) {\r\n this.history.undoTransactionTo(this.deleteHistoryItem);\r\n delete this.deleteHistoryItem;\r\n }\r\n var pos = this.getPosition(evt, this.startShapePosition);\r\n var shape = this.model.findShape(this.shapeKey);\r\n ModelUtils_1.ModelUtils.setShapePosition(this.history, this.model, shape, pos);\r\n ModelUtils_1.ModelUtils.updateMovingShapeConnections(this.history, shape, this.connectorsWithoutBeginItemInfo, this.connectorsWithoutEndItemInfo, function () {\r\n _this.visualizerManager.resetConnectionTarget();\r\n _this.visualizerManager.resetConnectionPoints();\r\n }, function (shape, connectionPointIndex) {\r\n _this.visualizerManager.setConnectionTarget(shape, Event_1.MouseEventElementType.Shape);\r\n _this.visualizerManager.setConnectionPoints(shape, Event_1.MouseEventElementType.Shape, connectionPointIndex, true);\r\n }, function (connector) { return _this.handler.addInteractingItem(connector); });\r\n ModelUtils_1.ModelUtils.updateShapeAttachedConnectors(this.history, this.model, shape);\r\n var container = ModelUtils_1.ModelUtils.findContainerByEventKey(this.model, this.selection, evt.source.key);\r\n if (shape && container && this.allowInsertToContainer(evt, shape, container))\r\n ModelUtils_1.ModelUtils.insertToContainer(this.history, this.model, shape, container);\r\n else\r\n ModelUtils_1.ModelUtils.removeFromContainer(this.history, this.model, shape);\r\n if (this.updatePageSizeTimer === undefined)\r\n this.handler.tryUpdateModelSize(function (offsetLeft, offsetTop) {\r\n _this.connectorsWithoutBeginItemInfo.forEach(function (pi) {\r\n pi.point.x += offsetLeft;\r\n pi.point.y += offsetTop;\r\n });\r\n _this.connectorsWithoutEndItemInfo.forEach(function (pi) {\r\n pi.point.x += offsetLeft;\r\n pi.point.y += offsetTop;\r\n });\r\n });\r\n }\r\n };\r\n MouseHandlerToolboxDraggingState.prototype.onFinishWithChanges = function () {\r\n if (!this.deleteHistoryItem)\r\n this.history.addAndRedo(new SetSelectionHistoryItem_1.SetSelectionHistoryItem(this.selection, [this.shapeKey]));\r\n };\r\n MouseHandlerToolboxDraggingState.prototype.onDragStart = function (evt) {\r\n this.dragging = evt;\r\n this.connectorsWithoutBeginItemInfo = ModelUtils_1.ModelUtils.getConnectorsWithoutBeginItemInfo(this.model);\r\n this.connectorsWithoutEndItemInfo = ModelUtils_1.ModelUtils.getConnectorsWithoutEndItemInfo(this.model);\r\n };\r\n MouseHandlerToolboxDraggingState.prototype.onDragEnd = function (evt) {\r\n if (this.shapeKey !== undefined && evt.source.type === Event_1.MouseEventElementType.Undefined)\r\n this.cancelChanges();\r\n this.handler.switchToDefaultState();\r\n };\r\n MouseHandlerToolboxDraggingState.prototype.finish = function () {\r\n this.visualizerManager.resetExtensionLines();\r\n this.visualizerManager.resetContainerTarget();\r\n this.visualizerManager.resetConnectionTarget();\r\n this.visualizerManager.resetConnectionPoints();\r\n this.processAndRemoveUpdatePageSizeTimer();\r\n this.dragging.onFinishDragging();\r\n _super.prototype.finish.call(this);\r\n };\r\n MouseHandlerToolboxDraggingState.prototype.insertToolboxItem = function (evt) {\r\n var description = this.shapeDescriptionManager.get(this.dragging.data);\r\n this.startShapePosition = this.getSnappedPoint(evt, new point_1.Point(evt.modelPoint.x - description.defaultSize.width / 2, evt.modelPoint.y - description.defaultSize.height / 2));\r\n var historyItem = new AddShapeHistoryItem_1.AddShapeHistoryItem(description, this.startShapePosition);\r\n this.history.addAndRedo(historyItem);\r\n ModelUtils_1.ModelUtils.updateNewShapeProperties(this.history, this.selection, historyItem.shapeKey);\r\n return historyItem.shapeKey;\r\n };\r\n MouseHandlerToolboxDraggingState.prototype.allowInsertToContainer = function (evt, item, container) {\r\n if (this.handler.canMultipleSelection(evt))\r\n return false;\r\n return container && container.expanded && ModelUtils_1.ModelUtils.canInsertToContainer(this.model, item, container);\r\n };\r\n MouseHandlerToolboxDraggingState.prototype.getPosition = function (evt, basePoint) {\r\n return this.getSnappedPoint(evt, new point_1.Point(basePoint.x + evt.modelPoint.x - this.startPoint.x, basePoint.y + evt.modelPoint.y - this.startPoint.y));\r\n };\r\n return MouseHandlerToolboxDraggingState;\r\n}(MouseHandlerDraggingState_1.MouseHandlerDraggingState));\r\nexports.MouseHandlerToolboxDraggingState = MouseHandlerToolboxDraggingState;\r\n\n\n/***/ }),\n/* 313 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerMoveConnectorTextState = void 0;\r\nvar MouseHandlerDraggingState_1 = __webpack_require__(32);\r\nvar ChangeConnectorTextPositionHistoryItem_1 = __webpack_require__(314);\r\nvar ChangeConnectorTextHistoryItem_1 = __webpack_require__(66);\r\nvar MouseHandlerMoveConnectorTextState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerMoveConnectorTextState, _super);\r\n function MouseHandlerMoveConnectorTextState(handler, history, model) {\r\n var _this = _super.call(this, handler, history) || this;\r\n _this.model = model;\r\n return _this;\r\n }\r\n MouseHandlerMoveConnectorTextState.prototype.onMouseDown = function (evt) {\r\n this.connector = this.model.findConnector(evt.source.key);\r\n this.position = parseFloat(evt.source.value);\r\n this.text = this.connector.getText(this.position);\r\n this.savedText = \"\";\r\n _super.prototype.onMouseDown.call(this, evt);\r\n };\r\n MouseHandlerMoveConnectorTextState.prototype.onApplyChanges = function (evt) {\r\n var newPosition = this.connector.getTextPositionByPoint(evt.modelPoint);\r\n if (newPosition !== this.position) {\r\n var text = this.connector.getText(newPosition);\r\n if (text !== \"\" && text !== this.text) {\r\n this.history.addAndRedo(new ChangeConnectorTextHistoryItem_1.ChangeConnectorTextHistoryItem(this.connector, newPosition, \"\"));\r\n this.savedText = text;\r\n }\r\n this.history.addAndRedo(new ChangeConnectorTextPositionHistoryItem_1.ChangeConnectorTextPositionHistoryItem(this.connector, this.position, newPosition));\r\n if (this.savedText !== \"\" && this.savedText !== text) {\r\n this.history.addAndRedo(new ChangeConnectorTextHistoryItem_1.ChangeConnectorTextHistoryItem(this.connector, this.position, this.savedText));\r\n this.savedText = \"\";\r\n }\r\n this.position = newPosition;\r\n }\r\n };\r\n MouseHandlerMoveConnectorTextState.prototype.getDraggingElementKeys = function () {\r\n return [this.connector.key];\r\n };\r\n return MouseHandlerMoveConnectorTextState;\r\n}(MouseHandlerDraggingState_1.MouseHandlerDraggingState));\r\nexports.MouseHandlerMoveConnectorTextState = MouseHandlerMoveConnectorTextState;\r\n\n\n/***/ }),\n/* 314 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeConnectorTextPositionHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ChangeConnectorTextPositionHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangeConnectorTextPositionHistoryItem, _super);\r\n function ChangeConnectorTextPositionHistoryItem(connector, position, newPosition) {\r\n var _this = _super.call(this) || this;\r\n _this.connectorKey = connector.key;\r\n _this.position = position;\r\n _this.newPosition = newPosition;\r\n return _this;\r\n }\r\n ChangeConnectorTextPositionHistoryItem.prototype.redo = function (manipulator) {\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n manipulator.changeConnectorTextPosition(connector, this.position, this.newPosition);\r\n };\r\n ChangeConnectorTextPositionHistoryItem.prototype.undo = function (manipulator) {\r\n var connector = manipulator.model.findConnector(this.connectorKey);\r\n manipulator.changeConnectorTextPosition(connector, this.newPosition, this.position);\r\n };\r\n return ChangeConnectorTextPositionHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ChangeConnectorTextPositionHistoryItem = ChangeConnectorTextPositionHistoryItem;\r\n\n\n/***/ }),\n/* 315 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerToggleShapeExpandedState = void 0;\r\nvar MouseHandlerStateBase_1 = __webpack_require__(39);\r\nvar ToggleShapeExpandedHistoryItem_1 = __webpack_require__(316);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar MouseHandlerToggleShapeExpandedState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerToggleShapeExpandedState, _super);\r\n function MouseHandlerToggleShapeExpandedState(handler, history, model, selection) {\r\n var _this = _super.call(this, handler) || this;\r\n _this.history = history;\r\n _this.model = model;\r\n _this.selection = selection;\r\n return _this;\r\n }\r\n MouseHandlerToggleShapeExpandedState.prototype.onMouseUp = function (evt) {\r\n var shape = this.model.findShape(evt.source.key);\r\n if (shape && !shape.isLocked) {\r\n this.history.beginTransaction();\r\n this.history.addAndRedo(new ToggleShapeExpandedHistoryItem_1.ToggleShapeExpandedHistoryItem(shape));\r\n ModelUtils_1.ModelUtils.updateShapeAttachedConnectors(this.history, this.model, shape);\r\n ModelUtils_1.ModelUtils.updateContainerConnectorsAttachedPoints(this.history, this.model, shape);\r\n ModelUtils_1.ModelUtils.updateSelection(this.history, this.selection);\r\n this.handler.tryUpdateModelSize();\r\n this.history.endTransaction();\r\n this.handler.raiseClick([shape.key]);\r\n }\r\n this.handler.switchToDefaultState();\r\n };\r\n return MouseHandlerToggleShapeExpandedState;\r\n}(MouseHandlerStateBase_1.MouseHandlerStateBase));\r\nexports.MouseHandlerToggleShapeExpandedState = MouseHandlerToggleShapeExpandedState;\r\n\n\n/***/ }),\n/* 316 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ToggleShapeExpandedHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar ToggleShapeExpandedHistoryItem = /** @class */ (function (_super) {\r\n __extends(ToggleShapeExpandedHistoryItem, _super);\r\n function ToggleShapeExpandedHistoryItem(shape) {\r\n var _this = _super.call(this) || this;\r\n _this.shapeKey = shape.key;\r\n _this.expanded = shape.expanded;\r\n return _this;\r\n }\r\n ToggleShapeExpandedHistoryItem.prototype.redo = function (manipulator) {\r\n var shape = manipulator.model.findShape(this.shapeKey);\r\n manipulator.changeShapeExpanded(shape, !this.expanded);\r\n };\r\n ToggleShapeExpandedHistoryItem.prototype.undo = function (manipulator) {\r\n var shape = manipulator.model.findShape(this.shapeKey);\r\n manipulator.changeShapeExpanded(shape, this.expanded);\r\n };\r\n return ToggleShapeExpandedHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ToggleShapeExpandedHistoryItem = ToggleShapeExpandedHistoryItem;\r\n\n\n/***/ }),\n/* 317 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerSelectionState = void 0;\r\nvar Event_1 = __webpack_require__(11);\r\nvar rectangle_1 = __webpack_require__(13);\r\nvar MouseHandlerStateBase_1 = __webpack_require__(39);\r\nvar MouseHandlerSelectionState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerSelectionState, _super);\r\n function MouseHandlerSelectionState(handler, selection, visualizerManager) {\r\n var _this = _super.call(this, handler) || this;\r\n _this.selection = selection;\r\n _this.visualizerManager = visualizerManager;\r\n return _this;\r\n }\r\n MouseHandlerSelectionState.prototype.finish = function () {\r\n this.handler.raiseDragEnd([]);\r\n this.visualizerManager.resetSelectionRectangle();\r\n _super.prototype.finish.call(this);\r\n };\r\n MouseHandlerSelectionState.prototype.cancelChanges = function () {\r\n };\r\n MouseHandlerSelectionState.prototype.onMouseDown = function (evt) {\r\n this.startPoint = evt.modelPoint;\r\n this.handler.raiseDragStart([]);\r\n };\r\n MouseHandlerSelectionState.prototype.onMouseMove = function (evt) {\r\n if (evt.button !== Event_1.MouseButton.Left)\r\n this.handler.switchToDefaultState();\r\n else {\r\n this.rectangle = rectangle_1.Rectangle.fromPoints(this.startPoint, evt.modelPoint);\r\n this.visualizerManager.setSelectionRectangle(this.rectangle);\r\n }\r\n };\r\n MouseHandlerSelectionState.prototype.onMouseUp = function (evt) {\r\n if (this.rectangle !== undefined)\r\n this.selection.selectRect(this.rectangle);\r\n else\r\n this.selection.set([]);\r\n this.rectangle = undefined;\r\n this.handler.switchToDefaultState();\r\n };\r\n return MouseHandlerSelectionState;\r\n}(MouseHandlerStateBase_1.MouseHandlerCancellableState));\r\nexports.MouseHandlerSelectionState = MouseHandlerSelectionState;\r\n\n\n/***/ }),\n/* 318 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerZoomOnWheelState = void 0;\r\nvar MouseHandlerStateBase_1 = __webpack_require__(39);\r\nvar Event_1 = __webpack_require__(11);\r\nvar Settings_1 = __webpack_require__(27);\r\nvar MouseHandlerZoomOnWheelState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerZoomOnWheelState, _super);\r\n function MouseHandlerZoomOnWheelState(handler, settings, view) {\r\n var _this = _super.call(this, handler) || this;\r\n _this.settings = settings;\r\n _this.view = view;\r\n return _this;\r\n }\r\n MouseHandlerZoomOnWheelState.prototype.onMouseWheel = function (evt) {\r\n if (!this.trySwitchToDefault(evt)) {\r\n this.settings.zoomLevel = this.view.getNextStepZoom(evt.deltaY < 0);\r\n if (evt.source.type === Event_1.MouseEventElementType.Background)\r\n this.view.resetScroll();\r\n else {\r\n this.view.scrollTo(evt.modelPoint, evt.offsetPoint);\r\n this.view.normalize();\r\n }\r\n evt.preventDefault = true;\r\n return true;\r\n }\r\n else\r\n return this.handler.state.onMouseWheel(evt);\r\n };\r\n MouseHandlerZoomOnWheelState.prototype.onMouseUp = function (evt) {\r\n this.handler.switchToDefaultState();\r\n this.handler.state.onMouseUp(evt);\r\n };\r\n MouseHandlerZoomOnWheelState.prototype.onMouseDown = function (evt) {\r\n this.handler.switchToDefaultState();\r\n this.handler.state.onMouseDown(evt);\r\n };\r\n MouseHandlerZoomOnWheelState.prototype.onMouseMove = function (evt) {\r\n this.trySwitchToDefault(evt) && this.handler.state.onMouseMove(evt);\r\n };\r\n MouseHandlerZoomOnWheelState.prototype.trySwitchToDefault = function (evt) {\r\n if (this.handler.canFinishZoomOnWheel(evt)) {\r\n this.handler.switchToDefaultState();\r\n return true;\r\n }\r\n return false;\r\n };\r\n MouseHandlerZoomOnWheelState.prototype.start = function () {\r\n _super.prototype.start.call(this);\r\n this.settings.zoomLevel = this.view.getZoom();\r\n this.settings.autoZoom = Settings_1.AutoZoomMode.Disabled;\r\n };\r\n return MouseHandlerZoomOnWheelState;\r\n}(MouseHandlerStateBase_1.MouseHandlerStateBase));\r\nexports.MouseHandlerZoomOnWheelState = MouseHandlerZoomOnWheelState;\r\n\n\n/***/ }),\n/* 319 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerMoveShapeState = void 0;\r\nvar MouseHandlerDragDiagramItemStateBase_1 = __webpack_require__(152);\r\nvar MouseHandlerMoveShapeState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerMoveShapeState, _super);\r\n function MouseHandlerMoveShapeState(handler, history, model, selection, visualizerManager) {\r\n var _this = _super.call(this, handler, history, model, selection, visualizerManager) || this;\r\n _this.model = model;\r\n _this.selection = selection;\r\n _this.visualizerManager = visualizerManager;\r\n return _this;\r\n }\r\n Object.defineProperty(MouseHandlerMoveShapeState.prototype, \"areValidDraggingShapes\", {\r\n get: function () {\r\n return this.shouldClone || this.draggingShapes.length > 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(MouseHandlerMoveShapeState.prototype, \"areValidDraggingConnectors\", {\r\n get: function () {\r\n return true;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return MouseHandlerMoveShapeState;\r\n}(MouseHandlerDragDiagramItemStateBase_1.MouseHandlerDragDiagramItemStateBase));\r\nexports.MouseHandlerMoveShapeState = MouseHandlerMoveShapeState;\r\n\n\n/***/ }),\n/* 320 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerMoveConnectorState = void 0;\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar MouseHandlerDragDiagramItemStateBase_1 = __webpack_require__(152);\r\nvar MouseHandlerMoveConnectorState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerMoveConnectorState, _super);\r\n function MouseHandlerMoveConnectorState(handler, history, model, selection, visualizerManager) {\r\n var _this = _super.call(this, handler, history, model, selection, visualizerManager) || this;\r\n _this.model = model;\r\n _this.selection = selection;\r\n _this.visualizerManager = visualizerManager;\r\n return _this;\r\n }\r\n Object.defineProperty(MouseHandlerMoveConnectorState.prototype, \"areValidDraggingShapes\", {\r\n get: function () {\r\n return true;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(MouseHandlerMoveConnectorState.prototype, \"areValidDraggingConnectors\", {\r\n get: function () {\r\n var _this = this;\r\n if (this.shouldClone)\r\n return this.draggingShapes.length > 0 || this.draggingConnectors.length > 0;\r\n if (!this.draggingConnectors.length)\r\n return false;\r\n if (!this.draggingShapes.length)\r\n return !this.draggingConnectors.some(function (x) { return !ModelUtils_1.ModelUtils.canMoveConnector(_this.selectedItems, x.connector); });\r\n return ModelUtils_1.ModelUtils.canMoveConnector(this.selectedItems, this.draggingConnectors[this.draggingConnectorsIndexByKey[this.handler.mouseDownEvent.source.key]].connector);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return MouseHandlerMoveConnectorState;\r\n}(MouseHandlerDragDiagramItemStateBase_1.MouseHandlerDragDiagramItemStateBase));\r\nexports.MouseHandlerMoveConnectorState = MouseHandlerMoveConnectorState;\r\n\n\n/***/ }),\n/* 321 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerDefaultReadOnlyTouchState = void 0;\r\nvar MouseHandlerDefaultReadOnlyState_1 = __webpack_require__(154);\r\nvar MouseHandlerDefaultReadOnlyTouchState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerDefaultReadOnlyTouchState, _super);\r\n function MouseHandlerDefaultReadOnlyTouchState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerDefaultReadOnlyTouchState.prototype.canDragObjectOnMouseDown = function (key) {\r\n return false;\r\n };\r\n MouseHandlerDefaultReadOnlyTouchState.prototype.canExpandContainerOnMouseDown = function (key) {\r\n return false;\r\n };\r\n MouseHandlerDefaultReadOnlyTouchState.prototype.canClearSelectionOnMouseDown = function () {\r\n return true;\r\n };\r\n MouseHandlerDefaultReadOnlyTouchState.prototype.processOnMouseMoveAfterLimit = function (evt) {\r\n this.startScrolling(evt);\r\n };\r\n MouseHandlerDefaultReadOnlyTouchState.prototype.canSelectOnMouseUp = function (key) {\r\n return !this.inSelection(key);\r\n };\r\n MouseHandlerDefaultReadOnlyTouchState.prototype.canClearSelectionOnMouseUp = function () {\r\n return false;\r\n };\r\n return MouseHandlerDefaultReadOnlyTouchState;\r\n}(MouseHandlerDefaultReadOnlyState_1.MouseHandlerDefaultReadOnlyState));\r\nexports.MouseHandlerDefaultReadOnlyTouchState = MouseHandlerDefaultReadOnlyTouchState;\r\n\n\n/***/ }),\n/* 322 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerDefaultTouchState = void 0;\r\nvar MouseHandlerDefaultState_1 = __webpack_require__(148);\r\nvar MouseHandlerZoomOnPinchState_1 = __webpack_require__(323);\r\nvar MouseHandlerDefaultTouchState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerDefaultTouchState, _super);\r\n function MouseHandlerDefaultTouchState() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MouseHandlerDefaultTouchState.prototype.updateConnectionsOnMouseMove = function (evt) {\r\n };\r\n MouseHandlerDefaultTouchState.prototype.canDragObjectOnMouseDown = function (key) {\r\n return this.inSelection(key);\r\n };\r\n MouseHandlerDefaultTouchState.prototype.canExpandContainerOnMouseDown = function (key) {\r\n return true;\r\n };\r\n MouseHandlerDefaultTouchState.prototype.canClearSelectionOnMouseDown = function () {\r\n return true;\r\n };\r\n MouseHandlerDefaultTouchState.prototype.processOnMouseMoveAfterLimit = function (evt) {\r\n if (evt.touches.length > 1)\r\n this.startZooming(evt);\r\n else\r\n this.startScrolling(evt);\r\n };\r\n MouseHandlerDefaultTouchState.prototype.startZooming = function (evt) {\r\n this.handler.switchState(new MouseHandlerZoomOnPinchState_1.MouseHandlerZoomOnPinchState(this.handler, this.selection, this.settings, this.view));\r\n };\r\n MouseHandlerDefaultTouchState.prototype.canSelectOnMouseUp = function (key) {\r\n return !this.inSelection(key);\r\n };\r\n MouseHandlerDefaultTouchState.prototype.canClearSelectionOnMouseUp = function () {\r\n return false;\r\n };\r\n return MouseHandlerDefaultTouchState;\r\n}(MouseHandlerDefaultState_1.MouseHandlerDefaultState));\r\nexports.MouseHandlerDefaultTouchState = MouseHandlerDefaultTouchState;\r\n\n\n/***/ }),\n/* 323 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MouseHandlerZoomOnPinchState = void 0;\r\nvar Settings_1 = __webpack_require__(27);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar point_1 = __webpack_require__(1);\r\nvar MouseHandlerScrollingState_1 = __webpack_require__(151);\r\nvar PINCH_CHANGE_DISTANCE = 1;\r\nvar MouseHandlerZoomOnPinchState = /** @class */ (function (_super) {\r\n __extends(MouseHandlerZoomOnPinchState, _super);\r\n function MouseHandlerZoomOnPinchState(handler, selection, settings, view) {\r\n var _this = _super.call(this, handler, view, selection) || this;\r\n _this.selection = selection;\r\n _this.settings = settings;\r\n _this.view = view;\r\n return _this;\r\n }\r\n MouseHandlerZoomOnPinchState.prototype.onMouseDown = function (evt) {\r\n _super.prototype.onMouseDown.call(this, evt);\r\n if (evt.touches.length > 1) {\r\n this.startDistance = this.getTouchDistance(evt);\r\n this.startZoomLevel = this.settings.zoomLevel;\r\n this.prevDistance = this.startDistance;\r\n }\r\n };\r\n MouseHandlerZoomOnPinchState.prototype.onMouseMove = function (evt) {\r\n if (evt.touches.length > 1) {\r\n var distance = this.getTouchDistance(evt);\r\n if (Math.abs(this.prevDistance - distance) > PINCH_CHANGE_DISTANCE) {\r\n this.settings.zoomLevel = this.startZoomLevel * (distance / this.startDistance);\r\n this.view.scrollTo(this.getMiddleLayoutPoint(evt), this.getMiddleAbsPoint(evt));\r\n this.view.normalize();\r\n this.prevDistance = distance;\r\n }\r\n }\r\n _super.prototype.onMouseMove.call(this, evt);\r\n };\r\n MouseHandlerZoomOnPinchState.prototype.onMouseUp = function (evt) {\r\n if (evt.touches.length === 0)\r\n setTimeout(function () {\r\n this.handler.switchToDefaultState();\r\n }.bind(this), 1);\r\n };\r\n MouseHandlerZoomOnPinchState.prototype.start = function () {\r\n _super.prototype.start.call(this);\r\n this.settings.zoomLevel = this.view.getZoom();\r\n this.settings.autoZoom = Settings_1.AutoZoomMode.Disabled;\r\n };\r\n MouseHandlerZoomOnPinchState.prototype.getTouchDistance = function (evt) {\r\n var pt0 = new point_1.Point(evt.touches[0].offsetPoint.x, evt.touches[0].offsetPoint.y);\r\n var pt1 = new point_1.Point(evt.touches[1].offsetPoint.x, evt.touches[1].offsetPoint.y);\r\n return Utils_1.GeometryUtils.getDistance(pt0, pt1);\r\n };\r\n MouseHandlerZoomOnPinchState.prototype.getPointByEvent = function (evt) {\r\n return this.getMiddleAbsPoint(evt);\r\n };\r\n MouseHandlerZoomOnPinchState.prototype.getMiddleAbsPoint = function (evt) {\r\n if (evt.touches.length > 1)\r\n return MouseHandlerZoomOnPinchState.getMiddlePointByEvent(evt, function (touch) { return touch.offsetPoint; });\r\n return evt.offsetPoint;\r\n };\r\n MouseHandlerZoomOnPinchState.prototype.getMiddleLayoutPoint = function (evt) {\r\n if (evt.touches.length > 1)\r\n return MouseHandlerZoomOnPinchState.getMiddlePointByEvent(evt, function (touch) { return touch.modelPoint; });\r\n return evt.modelPoint;\r\n };\r\n MouseHandlerZoomOnPinchState.getMiddlePointByEvent = function (evt, getPoint) {\r\n if (evt.touches.length > 1)\r\n return new point_1.Point((getPoint(evt.touches[0]).x + getPoint(evt.touches[1]).x) / 2, (getPoint(evt.touches[0]).y + getPoint(evt.touches[1]).y) / 2);\r\n };\r\n return MouseHandlerZoomOnPinchState;\r\n}(MouseHandlerScrollingState_1.MouseHandlerScrollingState));\r\nexports.MouseHandlerZoomOnPinchState = MouseHandlerZoomOnPinchState;\r\n\n\n/***/ }),\n/* 324 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TextInputHandler = void 0;\r\nvar ChangeShapeTextHistoryItem_1 = __webpack_require__(155);\r\nvar Event_1 = __webpack_require__(11);\r\nvar key_1 = __webpack_require__(25);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar ChangeConnectorTextHistoryItem_1 = __webpack_require__(66);\r\nvar TextInputHandler = /** @class */ (function () {\r\n function TextInputHandler(control) {\r\n this.control = control;\r\n }\r\n TextInputHandler.prototype.startTextInput = function (item, position) {\r\n if (item.isLocked || !item.enableText || !item.allowEditText || this.control.settings.readOnly || !this.canFinishTextEditing())\r\n return;\r\n this.control.beginUpdate();\r\n this.textInputItem = item;\r\n var allowed = true;\r\n if (this.textInputItem instanceof Shape_1.Shape) {\r\n var textRect = this.textInputItem.textEditRectangle;\r\n allowed = this.control.permissionsProvider.canChangeShapeText(this.textInputItem);\r\n if (allowed)\r\n this.control.eventManager.raiseTextInputStart(this.textInputItem, this.textInputItem.text, textRect.createPosition(), textRect.createSize());\r\n }\r\n else if (this.textInputItem instanceof Connector_1.Connector) {\r\n this.textInputPosition = position;\r\n allowed = this.control.permissionsProvider.canChangeConnectorText(this.textInputItem, this.textInputPosition);\r\n if (allowed)\r\n this.control.eventManager.raiseTextInputStart(this.textInputItem, this.textInputItem.getText(this.textInputPosition), this.textInputItem.getTextPoint(this.textInputPosition));\r\n }\r\n if (!allowed) {\r\n delete this.textInputItem;\r\n this.control.endUpdate();\r\n }\r\n };\r\n TextInputHandler.prototype.endTextInput = function () {\r\n var textInputItem = this.textInputItem;\r\n delete this.textInputItem;\r\n this.control.eventManager.raiseTextInputEnd(textInputItem);\r\n this.control.endUpdate();\r\n this.control.barManager.updateItemsState();\r\n };\r\n TextInputHandler.prototype.raiseTextInputPermissionsCheck = function (allowed) {\r\n this.control.eventManager.raiseTextInputPermissionsCheck(this.textInputItem, allowed);\r\n };\r\n TextInputHandler.prototype.applyTextInput = function (text) {\r\n if (!this.canFinishTextEditing(text))\r\n return;\r\n var textInputItem = this.textInputItem;\r\n var textInputPosition = this.textInputPosition;\r\n // call this first to be able measure text on changes\r\n this.endTextInput();\r\n if (textInputItem instanceof Shape_1.Shape) {\r\n if (textInputItem.text !== text)\r\n this.control.history.addAndRedo(new ChangeShapeTextHistoryItem_1.ChangeShapeTextHistoryItem(textInputItem, text));\r\n }\r\n else if (textInputItem instanceof Connector_1.Connector)\r\n if (textInputItem.getText(textInputPosition) !== text)\r\n this.control.history.addAndRedo(new ChangeConnectorTextHistoryItem_1.ChangeConnectorTextHistoryItem(textInputItem, textInputPosition, text));\r\n };\r\n TextInputHandler.prototype.canFinishTextEditing = function (text) {\r\n var allowed = true;\r\n if (this.isTextInputActive()) {\r\n var newText = text || this.getTextInputElementValue();\r\n if (this.textInputItem instanceof Shape_1.Shape)\r\n allowed = this.control.permissionsProvider.canApplyShapeTextChange(this.textInputItem, newText);\r\n else if (this.textInputItem instanceof Connector_1.Connector)\r\n allowed = this.control.permissionsProvider.canApplyConnectorTextChange(this.textInputItem, this.textInputPosition, newText);\r\n this.raiseTextInputPermissionsCheck(allowed);\r\n }\r\n return allowed;\r\n };\r\n TextInputHandler.prototype.getTextInputElementValue = function () {\r\n if (this.control.render)\r\n return this.control.render.input.getTextInputElementValue();\r\n return \"\";\r\n };\r\n TextInputHandler.prototype.cancelTextInput = function () {\r\n this.raiseTextInputPermissionsCheck(true);\r\n this.endTextInput();\r\n };\r\n TextInputHandler.prototype.isTextInputActive = function () {\r\n return this.textInputItem !== undefined;\r\n };\r\n TextInputHandler.prototype.processDblClick = function (evt) {\r\n if (evt.source.type === Event_1.MouseEventElementType.Shape) {\r\n var shape = this.control.model.findShape(evt.source.key);\r\n this.startTextInput(shape);\r\n }\r\n else if (evt.source.type === Event_1.MouseEventElementType.Connector) {\r\n var connector = this.control.model.findConnector(evt.source.key);\r\n var position = connector.getTextPositionByPoint(evt.modelPoint);\r\n this.startTextInput(connector, position);\r\n }\r\n else if (evt.source.type === Event_1.MouseEventElementType.ConnectorText) {\r\n var connector = this.control.model.findConnector(evt.source.key);\r\n var position = parseFloat(evt.source.value);\r\n this.startTextInput(connector, position);\r\n }\r\n };\r\n TextInputHandler.prototype.onDblClick = function (evt) {\r\n this.processDblClick(evt);\r\n };\r\n TextInputHandler.prototype.onKeyDown = function (evt) {\r\n if (!this.isTextInputActive())\r\n return;\r\n if (evt.keyCode === 13 && this.hasCtrlModifier(evt.modifiers)) {\r\n evt.preventDefault = true;\r\n this.applyTextInput(evt.inputText);\r\n }\r\n if (evt.keyCode === 27)\r\n this.cancelTextInput();\r\n };\r\n TextInputHandler.prototype.onBlur = function (evt) {\r\n if (this.isTextInputActive())\r\n this.applyTextInput(evt.inputText);\r\n };\r\n TextInputHandler.prototype.onFocus = function (evt) {\r\n };\r\n TextInputHandler.prototype.hasCtrlModifier = function (key) {\r\n return (key & key_1.ModifierKey.Ctrl) > 0;\r\n };\r\n return TextInputHandler;\r\n}());\r\nexports.TextInputHandler = TextInputHandler;\r\n\n\n/***/ }),\n/* 325 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ContextMenuTouchHandler = void 0;\r\nvar Event_1 = __webpack_require__(11);\r\nvar ContextMenuHandler_1 = __webpack_require__(156);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar SELECTION_CHANGED_EVENT = 1;\r\nvar ContextMenuTouchHandler = /** @class */ (function (_super) {\r\n __extends(ContextMenuTouchHandler, _super);\r\n function ContextMenuTouchHandler(selection) {\r\n var _this = _super.call(this) || this;\r\n _this.selection = selection;\r\n _this.contextToolboxVisible = false;\r\n _this.selection.onChanged.add(_this);\r\n return _this;\r\n }\r\n ContextMenuTouchHandler.prototype.onMouseDown = function (evt) {\r\n if (evt.source.key === undefined)\r\n this.hideContextMenu();\r\n };\r\n ContextMenuTouchHandler.prototype.onMouseUp = function (evt) {\r\n };\r\n ContextMenuTouchHandler.prototype.onFocus = function (evt) {\r\n var _this = this;\r\n setTimeout(function () { _this.showContextMenuAtSelection(); }, 1);\r\n };\r\n ContextMenuTouchHandler.prototype.onBlur = function (evt) {\r\n var _this = this;\r\n setTimeout(function () { _this.hideContextMenu(); }, 1);\r\n };\r\n ContextMenuTouchHandler.prototype.onTextInputFocus = function (evt) {\r\n var _this = this;\r\n setTimeout(function () { _this.hideContextMenu(); }, 1);\r\n };\r\n ContextMenuTouchHandler.prototype.onTextInputBlur = function (evt) {\r\n var _this = this;\r\n setTimeout(function () { _this.showContextMenuAtSelection(); }, 1);\r\n };\r\n ContextMenuTouchHandler.prototype.onLongTouch = function (evt) {\r\n if (evt.source.type === Event_1.MouseEventElementType.Document)\r\n this.showContextMenuAtEmptySelection(evt.modelPoint);\r\n };\r\n ContextMenuTouchHandler.prototype.onKeyDown = function (evt) {\r\n };\r\n ContextMenuTouchHandler.prototype.onShortcut = function (evt) {\r\n };\r\n ContextMenuTouchHandler.prototype.getSelectedItems = function () {\r\n return this.selection.getSelectedItems(true);\r\n };\r\n ContextMenuTouchHandler.prototype.showContextMenuAtSelection = function () {\r\n if (this.contextToolboxVisible)\r\n return;\r\n var items = this.getSelectedItems();\r\n if (items.length !== 0)\r\n this.showContextMenu(undefined, ModelUtils_1.ModelUtils.createRectangle(items).createPosition());\r\n };\r\n ContextMenuTouchHandler.prototype.showContextMenuAtEmptySelection = function (point) {\r\n if (this.contextToolboxVisible)\r\n return;\r\n var items = this.getSelectedItems();\r\n if (items.length === 0)\r\n this.showContextMenu(undefined, point);\r\n };\r\n ContextMenuTouchHandler.prototype.notifyDragStart = function (itemKeys) {\r\n this.hideContextMenu();\r\n };\r\n ContextMenuTouchHandler.prototype.notifyDragEnd = function (itemKeys) {\r\n this.showContextMenuAtSelection();\r\n };\r\n ContextMenuTouchHandler.prototype.notifySelectionChanged = function (selection) {\r\n if (this.isUpdateLocked())\r\n this.registerOccurredEvent(SELECTION_CHANGED_EVENT);\r\n else\r\n this.raiseSelectionChanged();\r\n };\r\n ContextMenuTouchHandler.prototype.raiseSelectionChanged = function () {\r\n var items = this.getSelectedItems();\r\n if (items.length !== 0)\r\n this.showContextMenuAtSelection();\r\n else\r\n this.hideContextMenu();\r\n };\r\n ContextMenuTouchHandler.prototype.onUpdateUnlocked = function (occurredEvents) {\r\n if (occurredEvents & SELECTION_CHANGED_EVENT)\r\n this.raiseSelectionChanged();\r\n };\r\n ContextMenuTouchHandler.prototype.notifyShowContextToolbox = function (modelPoint, getPositionToInsertShapeTo, side, category, callback) {\r\n this.contextToolboxVisible = true;\r\n this.hideContextMenu();\r\n };\r\n ContextMenuTouchHandler.prototype.notifyHideContextToolbox = function () {\r\n this.contextToolboxVisible = false;\r\n this.showContextMenuAtSelection();\r\n };\r\n return ContextMenuTouchHandler;\r\n}(ContextMenuHandler_1.ContextMenuHandler));\r\nexports.ContextMenuTouchHandler = ContextMenuTouchHandler;\r\n\n\n/***/ }),\n/* 326 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectionTargetVisualizer = exports.ConnectionTargetInfo = void 0;\r\nvar TargetVisualizerBase_1 = __webpack_require__(158);\r\nvar ConnectionTargetInfo = /** @class */ (function () {\r\n function ConnectionTargetInfo(rect, strokeWidth) {\r\n this.rect = rect;\r\n this.strokeWidth = strokeWidth;\r\n this.allowed = true;\r\n }\r\n return ConnectionTargetInfo;\r\n}());\r\nexports.ConnectionTargetInfo = ConnectionTargetInfo;\r\nvar ConnectionTargetVisualizer = /** @class */ (function (_super) {\r\n __extends(ConnectionTargetVisualizer, _super);\r\n function ConnectionTargetVisualizer(dispatcher) {\r\n return _super.call(this, dispatcher) || this;\r\n }\r\n ConnectionTargetVisualizer.prototype.raiseShow = function () {\r\n var _this = this;\r\n var info = new ConnectionTargetInfo(this.targetRect, this.targetStrokeWidth);\r\n this.dispatcher.raise1(function (l) { return l.notifyConnectionTargetShow(_this.key, info); });\r\n };\r\n ConnectionTargetVisualizer.prototype.raiseHide = function () {\r\n this.dispatcher.raise1(function (l) { return l.notifyConnectionTargetHide(); });\r\n };\r\n return ConnectionTargetVisualizer;\r\n}(TargetVisualizerBase_1.TargetVisualizerBase));\r\nexports.ConnectionTargetVisualizer = ConnectionTargetVisualizer;\r\n\n\n/***/ }),\n/* 327 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ContainerTargetVisualizer = exports.ContainerTargetInfo = void 0;\r\nvar TargetVisualizerBase_1 = __webpack_require__(158);\r\nvar ContainerTargetInfo = /** @class */ (function () {\r\n function ContainerTargetInfo(rect, strokeWidth) {\r\n this.rect = rect;\r\n this.strokeWidth = strokeWidth;\r\n }\r\n return ContainerTargetInfo;\r\n}());\r\nexports.ContainerTargetInfo = ContainerTargetInfo;\r\nvar ContainerTargetVisualizer = /** @class */ (function (_super) {\r\n __extends(ContainerTargetVisualizer, _super);\r\n function ContainerTargetVisualizer(dispatcher) {\r\n return _super.call(this, dispatcher) || this;\r\n }\r\n ContainerTargetVisualizer.prototype.raiseShow = function () {\r\n var _this = this;\r\n var info = new ContainerTargetInfo(this.targetRect, this.targetStrokeWidth);\r\n this.dispatcher.raise1(function (l) { return l.notifyContainerTargetShow(_this.key, info); });\r\n };\r\n ContainerTargetVisualizer.prototype.raiseHide = function () {\r\n this.dispatcher.raise1(function (l) { return l.notifyContainerTargetHide(); });\r\n };\r\n return ContainerTargetVisualizer;\r\n}(TargetVisualizerBase_1.TargetVisualizerBase));\r\nexports.ContainerTargetVisualizer = ContainerTargetVisualizer;\r\n\n\n/***/ }),\n/* 328 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectionPointsVisualizer = exports.ConnectionPointInfo = void 0;\r\nvar ConnectionPointInfo = /** @class */ (function () {\r\n function ConnectionPointInfo(point, side) {\r\n this.point = point;\r\n this.side = side;\r\n this.allowed = true;\r\n }\r\n return ConnectionPointInfo;\r\n}());\r\nexports.ConnectionPointInfo = ConnectionPointInfo;\r\nvar ConnectionPointsVisualizer = /** @class */ (function () {\r\n function ConnectionPointsVisualizer(dispatcher) {\r\n this.dispatcher = dispatcher;\r\n }\r\n ConnectionPointsVisualizer.prototype.getKey = function () {\r\n return this.key;\r\n };\r\n ConnectionPointsVisualizer.prototype.setPoints = function (key, points, pointIndex, outsideRectangle) {\r\n if (this.key !== key || this.pointIndex !== pointIndex) {\r\n this.key = key;\r\n this.points = points;\r\n this.pointIndex = pointIndex;\r\n this.outsideRectangle = outsideRectangle;\r\n this.raiseShow();\r\n }\r\n };\r\n ConnectionPointsVisualizer.prototype.setPointIndex = function (pointIndex) {\r\n if (0 <= pointIndex && pointIndex < this.points.length && this.pointIndex !== pointIndex) {\r\n this.pointIndex = pointIndex;\r\n this.raiseShow();\r\n }\r\n };\r\n ConnectionPointsVisualizer.prototype.update = function () {\r\n this.raiseShow();\r\n };\r\n ConnectionPointsVisualizer.prototype.reset = function () {\r\n if (this.key !== \"-1\") {\r\n this.key = \"-1\";\r\n this.points = [];\r\n this.pointIndex = -1;\r\n this.outsideRectangle = undefined;\r\n this.raiseHide();\r\n }\r\n };\r\n ConnectionPointsVisualizer.prototype.raiseShow = function () {\r\n var _this = this;\r\n this.dispatcher.raise1(function (l) { return l.notifyConnectionPointsShow(_this.key, _this.points, _this.pointIndex, _this.outsideRectangle); });\r\n };\r\n ConnectionPointsVisualizer.prototype.raiseHide = function () {\r\n this.dispatcher.raise1(function (l) { return l.notifyConnectionPointsHide(); });\r\n };\r\n return ConnectionPointsVisualizer;\r\n}());\r\nexports.ConnectionPointsVisualizer = ConnectionPointsVisualizer;\r\n\n\n/***/ }),\n/* 329 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResizeInfoVisualizer = void 0;\r\nvar ResizeInfoVisualizer = /** @class */ (function () {\r\n function ResizeInfoVisualizer(dispatcher) {\r\n this.dispatcher = dispatcher;\r\n }\r\n ResizeInfoVisualizer.prototype.set = function (point, text) {\r\n this.point = point;\r\n this.text = text;\r\n this.raiseShow();\r\n };\r\n ResizeInfoVisualizer.prototype.reset = function () {\r\n if (this.point !== undefined) {\r\n this.point = undefined;\r\n this.text = undefined;\r\n this.raiseHide();\r\n }\r\n };\r\n ResizeInfoVisualizer.prototype.raiseShow = function () {\r\n var _this = this;\r\n this.dispatcher.raise1(function (l) { return l.notifyResizeInfoShow(_this.point, _this.text); });\r\n };\r\n ResizeInfoVisualizer.prototype.raiseHide = function () {\r\n this.dispatcher.raise1(function (l) { return l.notifyResizeInfoHide(); });\r\n };\r\n return ResizeInfoVisualizer;\r\n}());\r\nexports.ResizeInfoVisualizer = ResizeInfoVisualizer;\r\n\n\n/***/ }),\n/* 330 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SelectionRectVisualizer = void 0;\r\nvar SelectionRectVisualizer = /** @class */ (function () {\r\n function SelectionRectVisualizer(dispatcher) {\r\n this.dispatcher = dispatcher;\r\n }\r\n SelectionRectVisualizer.prototype.setRectangle = function (rect) {\r\n this.rect = rect;\r\n this.raiseShow();\r\n };\r\n SelectionRectVisualizer.prototype.reset = function () {\r\n this.rect = undefined;\r\n this.raiseHide();\r\n };\r\n SelectionRectVisualizer.prototype.raiseShow = function () {\r\n var _this = this;\r\n this.dispatcher.raise1(function (l) { return l.notifySelectionRectShow(_this.rect); });\r\n };\r\n SelectionRectVisualizer.prototype.raiseHide = function () {\r\n this.dispatcher.raise1(function (l) { return l.notifySelectionRectHide(); });\r\n };\r\n return SelectionRectVisualizer;\r\n}());\r\nexports.SelectionRectVisualizer = SelectionRectVisualizer;\r\n\n\n/***/ }),\n/* 331 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.VisualizerTouchManager = void 0;\r\nvar VisualizersManager_1 = __webpack_require__(157);\r\nvar Event_1 = __webpack_require__(11);\r\nvar SELECTION_CHANGED_EVENT = 1;\r\nvar VisualizerTouchManager = /** @class */ (function (_super) {\r\n __extends(VisualizerTouchManager, _super);\r\n function VisualizerTouchManager(selection, model, eventManager, settings, readOnly) {\r\n if (readOnly === void 0) { readOnly = settings.readOnly; }\r\n var _this = _super.call(this, selection, model, eventManager, settings, readOnly) || this;\r\n selection.onChanged.add(_this);\r\n return _this;\r\n }\r\n VisualizerTouchManager.prototype.onBlur = function (evt) {\r\n var _this = this;\r\n setTimeout(function () { _this.hideConnections(); }, 1);\r\n };\r\n VisualizerTouchManager.prototype.onFocus = function (evt) {\r\n var _this = this;\r\n setTimeout(function () { _this.showConnections(); }, 1);\r\n };\r\n VisualizerTouchManager.prototype.hideConnections = function () {\r\n if (this.readOnly)\r\n return;\r\n this.resetConnectionPoints();\r\n };\r\n VisualizerTouchManager.prototype.showConnections = function () {\r\n if (this.readOnly)\r\n return;\r\n if (this.needShowConnections()) {\r\n var shapes = this.selection.getSelectedShapes();\r\n if (shapes.length === 1)\r\n this.setConnectionPoints(shapes[0], Event_1.MouseEventElementType.ShapeConnectionPoint, -1, (!shapes[0].allowResizeHorizontally && !shapes[0].allowResizeVertically) || shapes[0].isLocked);\r\n }\r\n };\r\n VisualizerTouchManager.prototype.needShowConnections = function () {\r\n var items = this.selection.getSelectedItems();\r\n var shapes = this.selection.getSelectedShapes();\r\n return (items.length === 1 && shapes.length === 1);\r\n };\r\n VisualizerTouchManager.prototype.notifySelectionChanged = function (selection) {\r\n if (this.isUpdateLocked())\r\n this.registerOccurredEvent(SELECTION_CHANGED_EVENT);\r\n else\r\n this.raiseSelectionChanged();\r\n };\r\n VisualizerTouchManager.prototype.raiseSelectionChanged = function () {\r\n if (this.needShowConnections())\r\n this.showConnections();\r\n else\r\n this.hideConnections();\r\n };\r\n VisualizerTouchManager.prototype.onUpdateUnlocked = function (occurredEvents) {\r\n if (occurredEvents & SELECTION_CHANGED_EVENT)\r\n this.raiseSelectionChanged();\r\n };\r\n VisualizerTouchManager.prototype.notifyDragStart = function (itemKeys) {\r\n this.hideConnections();\r\n };\r\n VisualizerTouchManager.prototype.notifyDragEnd = function (itemKeys) {\r\n this.showConnections();\r\n };\r\n return VisualizerTouchManager;\r\n}(VisualizersManager_1.VisualizerManager));\r\nexports.VisualizerTouchManager = VisualizerTouchManager;\r\n\n\n/***/ }),\n/* 332 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ContextToolboxHandler = void 0;\r\nvar Event_1 = __webpack_require__(11);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar key_1 = __webpack_require__(25);\r\nvar browser_1 = __webpack_require__(17);\r\nvar ContextToolboxHandler = /** @class */ (function () {\r\n function ContextToolboxHandler() {\r\n this.contextToolboxVisible = false;\r\n this.onVisibilityChanged = new Utils_1.EventDispatcher();\r\n }\r\n ContextToolboxHandler.prototype.onMouseDown = function (evt) {\r\n if (evt.source.type !== Event_1.MouseEventElementType.Undefined)\r\n this.hideContextToolbox();\r\n };\r\n ContextToolboxHandler.prototype.onMouseUp = function (evt) {\r\n if (evt.source.type !== Event_1.MouseEventElementType.Undefined || !browser_1.Browser.TouchUI)\r\n this.hideContextToolbox();\r\n };\r\n ContextToolboxHandler.prototype.onFocus = function (evt) { };\r\n ContextToolboxHandler.prototype.onBlur = function (evt) { };\r\n ContextToolboxHandler.prototype.onKeyDown = function (evt) {\r\n if (evt.keyCode === key_1.KeyCode.Esc)\r\n this.hideContextToolbox();\r\n };\r\n ContextToolboxHandler.prototype.onShortcut = function (evt) {\r\n this.hideContextToolbox();\r\n };\r\n ContextToolboxHandler.prototype.showContextToolbox = function (modelPoint, getPositionToInsertShapeTo, side, category, applyCallback, cancelCallback) {\r\n this.onVisibilityChanged.raise1(function (l) { return l.notifyShowContextToolbox(modelPoint, getPositionToInsertShapeTo, side, category, applyCallback); });\r\n this.contextToolboxVisible = true;\r\n this.contextToolboxCancelCallback = cancelCallback;\r\n };\r\n ContextToolboxHandler.prototype.hideContextToolbox = function (applyed) {\r\n if (this.contextToolboxVisible) {\r\n this.onVisibilityChanged.raise1(function (l) { return l.notifyHideContextToolbox(); });\r\n if (this.contextToolboxCancelCallback) {\r\n if (!applyed)\r\n this.contextToolboxCancelCallback();\r\n this.contextToolboxCancelCallback = undefined;\r\n }\r\n this.contextToolboxVisible = false;\r\n }\r\n };\r\n return ContextToolboxHandler;\r\n}());\r\nexports.ContextToolboxHandler = ContextToolboxHandler;\r\n\n\n/***/ }),\n/* 333 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Selection = void 0;\r\nvar Utils_1 = __webpack_require__(3);\r\nvar InputPosition_1 = __webpack_require__(334);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar Data_1 = __webpack_require__(43);\r\nvar Selection = /** @class */ (function () {\r\n function Selection(model) {\r\n this.onChanged = new Utils_1.EventDispatcher();\r\n this.inputPosition = new InputPosition_1.InputPosition(this);\r\n this.onChanged.add(this.inputPosition);\r\n this.initialize(model);\r\n }\r\n Selection.prototype.initialize = function (model) {\r\n this.model = model;\r\n this.keys = [];\r\n this.inputPosition.initialize();\r\n };\r\n Selection.prototype.add = function (key) {\r\n if (this.keys.indexOf(key) < 0) { // binarySearch\r\n this.keys.push(key);\r\n this.raiseSelectionChanged();\r\n }\r\n };\r\n Selection.prototype.remove = function (key) {\r\n if (this.keys.indexOf(key) >= 0) { // binarySearch\r\n this.keys.splice(this.keys.indexOf(key), 1);\r\n this.raiseSelectionChanged();\r\n }\r\n };\r\n Selection.prototype.clear = function () {\r\n if (this.keys.length > 0) {\r\n this.keys = [];\r\n this.raiseSelectionChanged();\r\n }\r\n };\r\n Selection.prototype.set = function (keys, forceChange) {\r\n if (forceChange || !Data_1.Data.ArrayEqual(keys, this.keys)) {\r\n this.keys = keys;\r\n this.raiseSelectionChanged();\r\n }\r\n };\r\n Selection.prototype.getKeys = function () {\r\n return this.keys;\r\n };\r\n Selection.prototype.getKey = function (index) {\r\n return this.keys[index];\r\n };\r\n Selection.prototype.getSelectedItemsInsideContainers = function (items) {\r\n var _this = this;\r\n var result = items.slice();\r\n items.forEach(function (item) {\r\n if (item instanceof Shape_1.Shape) {\r\n var children = _this.getSelectedItemsInsideContainers(_this.model.getChildren(item));\r\n children.forEach(function (child) {\r\n if (result.indexOf(child) === -1 && !_this.hasKey(child.key))\r\n result.push(child);\r\n });\r\n }\r\n });\r\n return result;\r\n };\r\n Selection.prototype.getSelectedItemsCore = function (includeLocked) {\r\n var _this = this;\r\n return this.keys.map(function (key) { return _this.model.findItem(key); })\r\n .filter(function (conn) { return conn && (includeLocked || !conn.isLocked); });\r\n };\r\n Selection.prototype.getSelectedItems = function (includeLocked, includeInsideContainers) {\r\n if (includeInsideContainers)\r\n return this.getSelectedItemsInsideContainers(this.getSelectedItemsCore(includeLocked));\r\n return this.getSelectedItemsCore(includeLocked);\r\n };\r\n Selection.prototype.getSelectedShapes = function (includeLocked, includeInsideContainers) {\r\n var _this = this;\r\n if (includeInsideContainers) {\r\n var items = this.getSelectedItemsCore(includeLocked);\r\n return this.getSelectedItemsInsideContainers(items)\r\n .map(function (item) { return item instanceof Shape_1.Shape ? item : undefined; })\r\n .filter(function (shape) { return shape; });\r\n }\r\n else\r\n return this.keys.map(function (key) { return _this.model.findShape(key); })\r\n .filter(function (conn) { return conn && (includeLocked || !conn.isLocked); });\r\n };\r\n Selection.prototype.getSelectedConnectors = function (includeLocked, includeInsideContainers) {\r\n var _this = this;\r\n if (includeInsideContainers) {\r\n var items = this.keys.map(function (key) { return _this.model.findItem(key); });\r\n return this.getSelectedItemsInsideContainers(items)\r\n .map(function (item) { return item instanceof Connector_1.Connector ? item : undefined; })\r\n .filter(function (connector) { return connector; });\r\n }\r\n else\r\n return this.keys.map(function (key) { return _this.model.findConnector(key); })\r\n .filter(function (conn) { return conn && (includeLocked || !conn.isLocked); });\r\n };\r\n Selection.prototype.hasKey = function (key) {\r\n return this.keys.indexOf(key) >= 0;\r\n };\r\n Selection.prototype.isEmpty = function (includeLocked) {\r\n return !this.getSelectedItems(includeLocked).length;\r\n };\r\n Selection.prototype.selectRect = function (rect) {\r\n var keys = [];\r\n this.model.iterateItems(function (item) {\r\n if (item.intersectedByRect(rect))\r\n keys.push(item.key);\r\n });\r\n this.set(keys);\r\n };\r\n Selection.prototype.raiseSelectionChanged = function () {\r\n this.onChanged.raise(\"notifySelectionChanged\", this);\r\n };\r\n return Selection;\r\n}());\r\nexports.Selection = Selection;\r\n\n\n/***/ }),\n/* 334 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.InputPosition = void 0;\r\nvar InputPositionProperties_1 = __webpack_require__(335);\r\nvar Data_1 = __webpack_require__(43);\r\nvar InputPosition = /** @class */ (function () {\r\n function InputPosition(selection) {\r\n this.selection = selection;\r\n this.initialProperties = new InputPositionProperties_1.InputPositionProperties(this.selection);\r\n this.defaultProperties = new InputPositionProperties_1.InputPositionProperties(this.selection, this.initialProperties);\r\n this.currentProperties = new InputPositionProperties_1.InputPositionProperties(this.selection, this.defaultProperties);\r\n }\r\n InputPosition.prototype.initialize = function () {\r\n this.reset();\r\n this.defaultProperties.reset();\r\n };\r\n InputPosition.prototype.reset = function () {\r\n this.currentProperties.reset();\r\n };\r\n // Connectors\r\n InputPosition.prototype.getDefaultConnectorProperties = function () {\r\n return this.defaultProperties.getConnectorProperties();\r\n };\r\n InputPosition.prototype.getDefaultConnectorPropertyValue = function (propertyName) {\r\n return this.defaultProperties.getConnectorPropertyValue(propertyName);\r\n };\r\n InputPosition.prototype.getCurrentConnectorPropertyValue = function (propertyName) {\r\n return this.currentProperties.getConnectorPropertyValue(propertyName);\r\n };\r\n InputPosition.prototype.setConnectorPropertyValue = function (propertyName, value) {\r\n this.currentProperties.setConnectorPropertyValue(propertyName, value);\r\n if (this.selection.isEmpty(true))\r\n this.defaultProperties.setConnectorPropertyValue(propertyName, value);\r\n };\r\n InputPosition.prototype.setInitialConnectorProperties = function (properties) {\r\n this.defaultProperties.reset();\r\n this.currentProperties.reset();\r\n for (var propertyName in properties)\r\n if (Object.prototype.hasOwnProperty.call(properties, propertyName))\r\n this.initialProperties.setConnectorPropertyValue(propertyName, properties[propertyName]);\r\n };\r\n // Style\r\n InputPosition.prototype.getDefaultStyle = function () {\r\n return this.defaultProperties.getStyle();\r\n };\r\n InputPosition.prototype.getDefaultStylePropertyValue = function (propertyName) {\r\n return this.defaultProperties.getStylePropertyValue(propertyName);\r\n };\r\n InputPosition.prototype.getDefaultTextStyle = function () {\r\n return this.defaultProperties.getTextStyle();\r\n };\r\n InputPosition.prototype.getDefaultTextStylePropertyValue = function (propertyName) {\r\n return this.defaultProperties.getTextStylePropertyValue(propertyName);\r\n };\r\n InputPosition.prototype.getCurrentStylePropertyValue = function (propertyName) {\r\n return this.currentProperties.getStylePropertyValue(propertyName);\r\n };\r\n InputPosition.prototype.getCurrentTextStylePropertyValue = function (propertyName) {\r\n return this.currentProperties.getTextStylePropertyValue(propertyName);\r\n };\r\n InputPosition.prototype.setStylePropertyValue = function (propertyName, value) {\r\n this.currentProperties.setStylePropertyValue(propertyName, value);\r\n if (this.selection.isEmpty(true))\r\n this.defaultProperties.setStylePropertyValue(propertyName, value);\r\n };\r\n InputPosition.prototype.setTextStylePropertyValue = function (propertyName, value) {\r\n this.currentProperties.setTextStylePropertyValue(propertyName, value);\r\n if (this.selection.isEmpty(true))\r\n this.defaultProperties.setTextStylePropertyValue(propertyName, value);\r\n };\r\n InputPosition.prototype.setInitialStyleProperties = function (style) {\r\n this.defaultProperties.reset();\r\n this.currentProperties.reset();\r\n var styleObj = typeof style === \"string\" ? Data_1.Data.cssTextToObject(style) : style;\r\n for (var propertyName in styleObj)\r\n if (Object.prototype.hasOwnProperty.call(styleObj, propertyName))\r\n this.initialProperties.setStylePropertyValue(propertyName, styleObj[propertyName]);\r\n };\r\n InputPosition.prototype.setInitialTextStyleProperties = function (style) {\r\n this.defaultProperties.reset();\r\n this.currentProperties.reset();\r\n var styleObj = typeof style === \"string\" ? Data_1.Data.cssTextToObject(style) : style;\r\n for (var propertyName in styleObj)\r\n if (Object.prototype.hasOwnProperty.call(styleObj, propertyName))\r\n this.initialProperties.setTextStylePropertyValue(propertyName, styleObj[propertyName]);\r\n };\r\n InputPosition.prototype.notifySelectionChanged = function (selection) {\r\n this.reset();\r\n };\r\n return InputPosition;\r\n}());\r\nexports.InputPosition = InputPosition;\r\n\n\n/***/ }),\n/* 335 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.InputPositionProperties = void 0;\r\nvar ConnectorProperties_1 = __webpack_require__(31);\r\nvar Style_1 = __webpack_require__(30);\r\nvar InputPositionProperties = /** @class */ (function () {\r\n function InputPositionProperties(selection, baseProperties) {\r\n this.selection = selection;\r\n this.baseProperties = baseProperties;\r\n this.selection = selection;\r\n }\r\n InputPositionProperties.prototype.reset = function () {\r\n this.connectorProperties = null;\r\n this.style = null;\r\n this.textStyle = null;\r\n };\r\n InputPositionProperties.prototype.getConnectorProperties = function () {\r\n if (!this.connectorProperties) {\r\n this.connectorProperties = this.baseProperties ? this.baseProperties.getConnectorProperties().clone() : new ConnectorProperties_1.ConnectorProperties();\r\n this.updateConnectorProperties(this.connectorProperties);\r\n }\r\n return this.connectorProperties;\r\n };\r\n InputPositionProperties.prototype.getConnectorPropertyValue = function (propertyName) {\r\n return this.getConnectorProperties()[propertyName];\r\n };\r\n InputPositionProperties.prototype.setConnectorPropertyValue = function (propertyName, value) {\r\n this.getConnectorProperties()[propertyName] = value;\r\n };\r\n InputPositionProperties.prototype.getStyle = function () {\r\n if (!this.style) {\r\n this.style = this.baseProperties ? this.baseProperties.getStyle().clone() : new Style_1.Style();\r\n this.updateStyle(this.style, \"style\");\r\n }\r\n return this.style;\r\n };\r\n InputPositionProperties.prototype.getStylePropertyValue = function (propertyName) {\r\n return this.getStyle()[propertyName];\r\n };\r\n InputPositionProperties.prototype.setStylePropertyValue = function (propertyName, value) {\r\n this.getStyle()[propertyName] = value;\r\n };\r\n InputPositionProperties.prototype.getTextStyle = function () {\r\n if (!this.textStyle) {\r\n this.textStyle = this.baseProperties ? this.baseProperties.getTextStyle().clone() : new Style_1.TextStyle();\r\n this.updateStyle(this.textStyle, \"styleText\");\r\n }\r\n return this.textStyle;\r\n };\r\n InputPositionProperties.prototype.getTextStylePropertyValue = function (propertyName) {\r\n return this.getTextStyle()[propertyName];\r\n };\r\n InputPositionProperties.prototype.setTextStylePropertyValue = function (propertyName, value) {\r\n this.getTextStyle()[propertyName] = value;\r\n };\r\n InputPositionProperties.prototype.updateConnectorProperties = function (properties) {\r\n var _this = this;\r\n var connectors = this.selection.getSelectedConnectors(true);\r\n properties.forEach(function (propertyName) {\r\n _this.updatePropertyValue(properties, connectors, function (item) { return item[\"properties\"]; }, propertyName);\r\n });\r\n };\r\n InputPositionProperties.prototype.updateStyle = function (style, stylePropertyName) {\r\n var _this = this;\r\n var items = this.selection.getSelectedItems(true);\r\n style.forEach(function (propertyName) {\r\n _this.updatePropertyValue(style, items, function (item) { return item[stylePropertyName]; }, propertyName);\r\n });\r\n };\r\n InputPositionProperties.prototype.updatePropertyValue = function (destObj, items, getSrcObj, propertyName) {\r\n var value;\r\n var valueAssigned = false;\r\n items.forEach(function (item) {\r\n var obj = getSrcObj(item);\r\n var propertyValue = obj[propertyName];\r\n if (value === undefined && propertyValue !== undefined) {\r\n value = propertyValue;\r\n valueAssigned = true;\r\n }\r\n else if (valueAssigned && value !== propertyValue) {\r\n value = undefined;\r\n return;\r\n }\r\n });\r\n if (valueAssigned)\r\n destObj[propertyName] = value;\r\n };\r\n return InputPositionProperties;\r\n}());\r\nexports.InputPositionProperties = InputPositionProperties;\r\n\n\n/***/ }),\n/* 336 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.History = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar History = /** @class */ (function () {\r\n function History(modelManipulator) {\r\n this.historyItems = [];\r\n this.currentIndex = -1;\r\n this.incrementalId = -1;\r\n this.transactionLevel = -1;\r\n this.unmodifiedIndex = -1;\r\n // need for async actions\r\n this.currTransactionId = 0;\r\n this.onChanged = new Utils_1.EventDispatcher();\r\n this.modelManipulator = modelManipulator;\r\n }\r\n History.prototype.isModified = function () {\r\n if (this.unmodifiedIndex === this.currentIndex)\r\n return false;\r\n var startIndex = Math.min(this.unmodifiedIndex, this.currentIndex);\r\n var endIndex = Math.max(this.unmodifiedIndex, this.currentIndex);\r\n for (var i = startIndex + 1; i <= endIndex; i++)\r\n if (this.historyItems[i].changeModified())\r\n return true;\r\n return false;\r\n };\r\n History.prototype.undo = function () {\r\n if (!this.canUndo())\r\n return;\r\n this.historyItems[this.currentIndex].undo(this.modelManipulator);\r\n this.currentIndex--;\r\n this.raiseChanged();\r\n };\r\n History.prototype.redo = function () {\r\n if (!this.canRedo())\r\n return;\r\n if (this.startDataSyncItem) {\r\n this.startDataSyncItem.undo(this.modelManipulator);\r\n this.startDataSyncItem = undefined;\r\n }\r\n this.currentIndex++;\r\n this.historyItems[this.currentIndex].redo(this.modelManipulator);\r\n this.raiseChanged();\r\n };\r\n History.prototype.canUndo = function () {\r\n return this.currentIndex >= 0;\r\n };\r\n History.prototype.canRedo = function () {\r\n return this.currentIndex < this.historyItems.length - 1;\r\n };\r\n History.prototype.beginTransaction = function () {\r\n this.transactionLevel++;\r\n if (this.transactionLevel === 0)\r\n this.transaction = new HistoryItem_1.CompositionHistoryItem();\r\n var id = this.currTransactionId++;\r\n return id;\r\n };\r\n History.prototype.endTransaction = function (isDataSyncTransaction) {\r\n if (--this.transactionLevel >= 0)\r\n return;\r\n var transactionLength = this.transaction.historyItems.length;\r\n if (transactionLength > 0) {\r\n var historyItem = transactionLength > 1 ? this.transaction : this.transaction.historyItems.pop();\r\n if (isDataSyncTransaction)\r\n this.addDataSyncItem(historyItem);\r\n else\r\n this.addInternal(historyItem);\r\n }\r\n if (transactionLength > 0 && !isDataSyncTransaction)\r\n this.raiseChanged();\r\n delete this.transaction;\r\n };\r\n History.prototype.addAndRedo = function (historyItem) {\r\n this.add(historyItem);\r\n historyItem.redo(this.modelManipulator);\r\n this.raiseChanged();\r\n };\r\n History.prototype.add = function (historyItem) {\r\n if (this.transactionLevel >= 0)\r\n this.transaction.add(historyItem);\r\n else\r\n this.addInternal(historyItem);\r\n };\r\n History.prototype.addInternal = function (historyItem) {\r\n if (this.currentIndex < this.historyItems.length - 1) {\r\n this.historyItems.splice(this.currentIndex + 1);\r\n this.unmodifiedIndex = Math.min(this.unmodifiedIndex, this.currentIndex);\r\n }\r\n this.historyItems.push(historyItem);\r\n this.currentIndex++;\r\n this.deleteOldItems();\r\n };\r\n History.prototype.addDataSyncItem = function (historyItem) {\r\n var toHistoryItem = this.historyItems[this.currentIndex];\r\n if (toHistoryItem) {\r\n var compositionHistoryItem = void 0;\r\n if (toHistoryItem instanceof HistoryItem_1.CompositionHistoryItem)\r\n compositionHistoryItem = toHistoryItem;\r\n else {\r\n this.historyItems.splice(this.currentIndex, 1);\r\n compositionHistoryItem = new HistoryItem_1.CompositionHistoryItem();\r\n this.historyItems.push(compositionHistoryItem);\r\n compositionHistoryItem.historyItems.push(toHistoryItem);\r\n }\r\n compositionHistoryItem.dataSyncItems.push(historyItem);\r\n }\r\n else if (this.historyItems.length)\r\n this.startDataSyncItem = historyItem;\r\n };\r\n History.prototype.deleteOldItems = function () {\r\n var exceedItemsCount = this.historyItems.length - History.MAX_HISTORY_ITEM_COUNT;\r\n if (exceedItemsCount > 0 && this.currentIndex > exceedItemsCount) {\r\n this.historyItems.splice(0, exceedItemsCount);\r\n this.currentIndex -= exceedItemsCount;\r\n }\r\n };\r\n History.prototype.getNextId = function () {\r\n this.incrementalId++;\r\n return this.incrementalId;\r\n };\r\n History.prototype.clear = function () {\r\n this.currentIndex = -1;\r\n this.unmodifiedIndex = -1;\r\n this.incrementalId = -1;\r\n this.historyItems = [];\r\n delete this.transaction;\r\n this.transactionLevel = -1;\r\n };\r\n History.prototype.resetModified = function () {\r\n this.unmodifiedIndex = this.currentIndex;\r\n };\r\n History.prototype.getCurrentItemId = function () {\r\n if (this.currentIndex === -1)\r\n return -1;\r\n var currentItem = this.historyItems[this.currentIndex];\r\n if (currentItem.uniqueId === -1)\r\n currentItem.uniqueId = this.getNextId();\r\n return currentItem.uniqueId;\r\n };\r\n History.prototype.undoTransaction = function () {\r\n var items = this.transaction.historyItems;\r\n while (items.length)\r\n items.pop().undo(this.modelManipulator);\r\n };\r\n History.prototype.undoTransactionTo = function (item) {\r\n var items = this.transaction.historyItems;\r\n while (items.length) {\r\n var ti = items.pop();\r\n ti.undo(this.modelManipulator);\r\n if (ti === item)\r\n return;\r\n }\r\n };\r\n History.prototype.raiseChanged = function () {\r\n if (this.transactionLevel === -1)\r\n this.onChanged.raise(\"notifyHistoryChanged\");\r\n };\r\n History.MAX_HISTORY_ITEM_COUNT = 100;\r\n return History;\r\n}());\r\nexports.History = History;\r\n\n\n/***/ }),\n/* 337 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BarManager = void 0;\r\nvar batch_updatable_1 = __webpack_require__(79);\r\nvar BarManager = /** @class */ (function (_super) {\r\n __extends(BarManager, _super);\r\n function BarManager(control) {\r\n var _this = _super.call(this) || this;\r\n _this.bars = [];\r\n _this.control = control;\r\n return _this;\r\n }\r\n BarManager.prototype.clean = function () {\r\n var _this = this;\r\n this.bars.forEach(function (bar) { return bar.onChanged.remove(_this); });\r\n this.bars = [];\r\n };\r\n BarManager.prototype.registerBar = function (bar) {\r\n this.bars.push(bar);\r\n bar.onChanged.add(this);\r\n this.updateBarItemsState(bar);\r\n };\r\n BarManager.prototype.updateItemsState = function (queryCommands) {\r\n if (this.isUpdateLocked())\r\n return;\r\n for (var i = 0, bar = void 0; bar = this.bars[i]; i++)\r\n this.updateBarItemsState(bar, queryCommands);\r\n };\r\n BarManager.prototype.updateBarItemsState = function (bar, queryCommands) {\r\n if (this.isUpdateLocked())\r\n return;\r\n this.control.permissionsProvider.beginUpdateUI();\r\n if (bar.isVisible()) {\r\n var commandKeys = void 0;\r\n if (queryCommands) {\r\n var knownCommandKeys_1 = bar.getCommandKeys().reduce(function (hash, cmd) {\r\n hash[cmd] = true;\r\n return hash;\r\n }, {});\r\n commandKeys = queryCommands.filter(function (cmd) { return knownCommandKeys_1[cmd]; });\r\n }\r\n else\r\n commandKeys = bar.getCommandKeys();\r\n var length_1 = commandKeys.length;\r\n for (var j = 0; j < length_1; j++)\r\n this.updateBarItem(bar, commandKeys[j]);\r\n }\r\n this.control.permissionsProvider.endUpdateUI();\r\n };\r\n BarManager.prototype.updateBarItem = function (bar, commandKey) {\r\n var command = this.control.commandManager.getCommand(commandKey);\r\n if (command) {\r\n var commandState = command.getState();\r\n bar.setItemVisible(commandKey, commandState.visible);\r\n if (commandState.visible) {\r\n bar.setItemEnabled(commandKey, commandState.enabled);\r\n if (!commandState.denyUpdateValue) {\r\n var itemValue = this.getItemValue(commandState.value);\r\n if (commandState.items)\r\n bar.setItemSubItems(commandKey, commandState.items);\r\n bar.setItemValue(commandKey, itemValue, this.getDefaultItemValue(commandState.defaultValue));\r\n }\r\n }\r\n }\r\n };\r\n BarManager.prototype.setEnabled = function (enabled) {\r\n for (var i = 0, bar = void 0; bar = this.bars[i]; i++)\r\n bar.setEnabled(enabled);\r\n };\r\n BarManager.prototype.notifyBarCommandExecuted = function (commandID, parameter) {\r\n var executeResult = this.control.commandManager.getCommand(commandID).execute(parameter);\r\n if (!executeResult)\r\n this.updateItemsState([commandID]);\r\n };\r\n BarManager.prototype.notifyBarUpdateRequested = function () {\r\n this.updateItemsState();\r\n };\r\n // ISelectionChangesListener\r\n BarManager.prototype.notifySelectionChanged = function (_selection) {\r\n this.updateItemsState();\r\n };\r\n BarManager.prototype.onUpdateUnlocked = function (occurredEvents) { };\r\n BarManager.prototype.getItemValue = function (value) {\r\n return value;\r\n };\r\n BarManager.prototype.getDefaultItemValue = function (value) {\r\n return value;\r\n };\r\n return BarManager;\r\n}(batch_updatable_1.BatchUpdatableObject));\r\nexports.BarManager = BarManager;\r\n\n\n/***/ }),\n/* 338 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RenderManager = exports.DBL_CLICK_TIMEOUT = exports.LONG_TOUCH_TIMEOUT = void 0;\r\nvar Event_1 = __webpack_require__(11);\r\nvar evt_1 = __webpack_require__(80);\r\nvar dom_1 = __webpack_require__(26);\r\nvar point_1 = __webpack_require__(1);\r\nvar key_1 = __webpack_require__(25);\r\nvar browser_1 = __webpack_require__(17);\r\nvar Utils_1 = __webpack_require__(18);\r\nvar touch_1 = __webpack_require__(105);\r\nvar CanvasItemsManager_1 = __webpack_require__(76);\r\nvar ScrollView_1 = __webpack_require__(339);\r\nvar Settings_1 = __webpack_require__(27);\r\nvar InputManager_1 = __webpack_require__(340);\r\nvar CanvasPageManager_1 = __webpack_require__(341);\r\nvar CanvasViewManager_1 = __webpack_require__(343);\r\nvar CanvasSelectionManager_1 = __webpack_require__(160);\r\nvar AutoScrollController_1 = __webpack_require__(345);\r\nvar TextMeasurer_1 = __webpack_require__(77);\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar DOMManipulator_1 = __webpack_require__(100);\r\nvar READONLY_CSSCLASS = \"dxdi-read-only\";\r\nexports.LONG_TOUCH_TIMEOUT = 500;\r\nexports.DBL_CLICK_TIMEOUT = 500;\r\nvar RenderManager = /** @class */ (function () {\r\n function RenderManager(parent, events, measurer, settings, scrollView) {\r\n this.moveLocked = false;\r\n this.lockMouseMoveTimer = -1;\r\n this.lastClickElement = undefined;\r\n this.longTouchTimer = undefined;\r\n this.dblTouchTimer = undefined;\r\n var mainElement = RenderHelper_1.RenderHelper.createMainElement(parent);\r\n var svgElement = RenderHelper_1.RenderHelper.createSvgElement(mainElement);\r\n this.scroll = scrollView || new ScrollView_1.NativeScrollView(parent);\r\n this.measurer = measurer;\r\n this.dom = new DOMManipulator_1.DOMManipulator(this.measurer);\r\n this.view = new CanvasViewManager_1.CanvasViewManager(this.scroll, svgElement, settings.modelSize, settings.zoomLevel, settings.autoZoom, settings.simpleView, settings.rectangle, this.dom);\r\n this.input = new InputManager_1.InputManager(mainElement, this.view, events, this.measurer, settings.zoomLevel);\r\n this.items = new CanvasItemsManager_1.CanvasItemsManager(this.view.canvasElement, settings.zoomLevel, this.dom);\r\n this.page = new CanvasPageManager_1.CanvasPageManager(this.view.pageElement, settings, this.dom);\r\n this.selection = new CanvasSelectionManager_1.CanvasSelectionManager(this.view.canvasElement, settings.zoomLevel, settings.readOnly, this.dom);\r\n this.view.onViewChanged.add(this.page);\r\n this.view.onViewChanged.add(this.items);\r\n this.view.onViewChanged.add(this.selection);\r\n this.view.onViewChanged.add(this.input);\r\n this.autoScroll = new AutoScrollController_1.AutoScrollController(this.scroll, svgElement, this.view, this.dom);\r\n this.attachEvents(svgElement);\r\n this.mainElement = mainElement;\r\n this.svgElement = svgElement;\r\n this.events = events;\r\n this.notifyReadOnlyChanged(settings.readOnly);\r\n }\r\n RenderManager.prototype.clean = function (removeElement) {\r\n this.killLockMouseMoveTimer();\r\n this.clearLastMouseDownEvent();\r\n this.detachEvents(this.svgElement);\r\n this.scroll.detachEvents();\r\n this.input.detachEvents();\r\n this.dom.cancelAnimation();\r\n if (removeElement)\r\n removeElement(this.mainElement);\r\n };\r\n RenderManager.prototype.replaceParent = function (parent, scroll) {\r\n if (this.mainElement && this.mainElement.parentNode !== parent)\r\n parent.appendChild(this.mainElement);\r\n if (scroll && scroll !== this.scroll) {\r\n this.scroll && this.scroll.detachEvents();\r\n this.scroll = scroll;\r\n }\r\n if (this.measurer instanceof TextMeasurer_1.TextMeasurer)\r\n this.measurer.replaceParent(parent);\r\n };\r\n RenderManager.prototype.update = function (saveScrollPosition) {\r\n this.view.adjust({ horizontal: !saveScrollPosition, vertical: !saveScrollPosition });\r\n this.page.redraw();\r\n };\r\n RenderManager.prototype.onNewModel = function (items) {\r\n this.measurer.onNewModel(items, this.dom);\r\n };\r\n RenderManager.prototype.clear = function () {\r\n this.items.clear();\r\n this.selection.clear();\r\n };\r\n RenderManager.prototype.attachEvents = function (svgElement) {\r\n this.onMouseDownHandler = this.onMouseDown.bind(this);\r\n this.onMouseEnterHandler = this.onMouseEnter.bind(this);\r\n this.onMouseLeaveHandler = this.onMouseLeave.bind(this);\r\n this.onMouseWheelHandler = this.onMouseWheel.bind(this);\r\n this.onMouseDblClickHandler = this.onMouseDblClick.bind(this);\r\n this.onContextMenuHandler = this.onContextMenu.bind(this);\r\n this.onMouseMoveHandler = this.onMouseMove.bind(this);\r\n this.onMouseUpHandler = this.onMouseUp.bind(this);\r\n this.onWindowResizelHandler = this.onWindowResize.bind(this);\r\n this.onOrientationChangeHandler = this.onOrientationChange.bind(this);\r\n this.onMouseClickHandler = this.onMouseClick.bind(this);\r\n RenderHelper_1.RenderHelper.addEventListener(svgElement, touch_1.TouchUtils.touchMouseDownEventName, this.onMouseDownHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(svgElement, \"mouseenter\", this.onMouseEnterHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(svgElement, \"mouseleave\", this.onMouseLeaveHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(svgElement, \"wheel\", this.onMouseWheelHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(svgElement, \"dblclick\", this.onMouseDblClickHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(svgElement, \"click\", this.onMouseClickHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(svgElement, \"contextmenu\", this.onContextMenuHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(document, touch_1.TouchUtils.touchMouseMoveEventName, this.onMouseMoveHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(document, touch_1.TouchUtils.touchMouseUpEventName, this.onMouseUpHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(window, \"resize\", this.onWindowResizelHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(window, \"orientationchange\", this.onOrientationChangeHandler);\r\n this.input.mouseWheelHandler = this.onMouseWheelHandler;\r\n };\r\n RenderManager.prototype.detachEvents = function (svgElement) {\r\n RenderHelper_1.RenderHelper.removeEventListener(svgElement, touch_1.TouchUtils.touchMouseDownEventName, this.onMouseDownHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(svgElement, \"mouseenter\", this.onMouseEnterHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(svgElement, \"mouseleave\", this.onMouseLeaveHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(svgElement, \"wheel\", this.onMouseWheelHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(svgElement, \"dblclick\", this.onMouseDblClickHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(svgElement, \"contextmenu\", this.onContextMenuHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(svgElement, \"click\", this.onMouseClickHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(document, touch_1.TouchUtils.touchMouseMoveEventName, this.onMouseMoveHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(document, touch_1.TouchUtils.touchMouseUpEventName, this.onMouseUpHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(window, \"resize\", this.onWindowResizelHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(window, \"orientationchange\", this.onOrientationChangeHandler);\r\n };\r\n RenderManager.prototype.onMouseDown = function (evt) {\r\n var _this = this;\r\n this.lockMouseMove();\r\n this.input.lockFocus();\r\n this.autoScroll.onMouseDown(evt);\r\n this.lastDownMouseEvent = this.createDiagramMouseEvent(evt);\r\n Utils_1.raiseEvent(evt, this.lastDownMouseEvent, function (e) { return _this.events.onMouseDown(e); });\r\n if (this.events.canFinishTextEditing())\r\n this.input.captureFocus();\r\n if (browser_1.Browser.TouchUI)\r\n this.processTouchDown(evt);\r\n var srcElement = evt_1.EvtUtils.getEventSource(evt);\r\n var tagName = srcElement && srcElement.tagName;\r\n if (browser_1.Browser.TouchUI || tagName.toLowerCase() === \"img\" || tagName.toLowerCase() === \"image\") { // prevent dragging\r\n evt_1.EvtUtils.preventEventAndBubble(evt);\r\n return false;\r\n }\r\n };\r\n RenderManager.prototype.onMouseMove = function (evt) {\r\n var _this = this;\r\n if (this.moveLocked)\r\n return;\r\n this.autoScroll.onMouseMove(evt, function () { return _this.onMouseMoveCore(evt); });\r\n this.onMouseMoveCore(evt);\r\n browser_1.Browser.IE && this.lockMouseMove();\r\n if (browser_1.Browser.TouchUI)\r\n this.processTouchMove(evt);\r\n };\r\n RenderManager.prototype.onMouseMoveCore = function (evt) {\r\n var _this = this;\r\n Utils_1.raiseEvent(evt, this.createDiagramMouseEvent(evt, browser_1.Browser.TouchUI), function (e) { return _this.events.onMouseMove(e); });\r\n };\r\n RenderManager.prototype.onMouseUp = function (evt) {\r\n var _this = this;\r\n this.lockMouseMove();\r\n var mouseEvent = this.createDiagramMouseEvent(evt);\r\n Utils_1.raiseEvent(evt, mouseEvent, function (e) { return _this.events.onMouseUp(e); });\r\n this.autoScroll.onMouseUp(evt);\r\n if (mouseEvent.source.type !== Event_1.MouseEventElementType.Undefined)\r\n this.input.captureFocus();\r\n if (browser_1.Browser.TouchUI)\r\n this.processTouchUp(evt);\r\n };\r\n RenderManager.prototype.onMouseEnter = function (evt) {\r\n var _this = this;\r\n this.autoScroll.onMouseEnter(evt);\r\n Utils_1.raiseEvent(evt, this.createDiagramMouseEvent(evt), function (e) { return _this.events.onMouseEnter(e); });\r\n };\r\n RenderManager.prototype.onMouseLeave = function (evt) {\r\n var _this = this;\r\n Utils_1.raiseEvent(evt, this.createDiagramMouseEvent(evt), function (e) { return _this.events.onMouseLeave(e); });\r\n };\r\n RenderManager.prototype.onMouseDblClick = function (evt) {\r\n var _this = this;\r\n Utils_1.raiseEvent(evt, this.createDiagramMouseEvent(evt), function (e) { return _this.events.onDblClick(e); });\r\n };\r\n RenderManager.prototype.onMouseClick = function (evt) {\r\n var _this = this;\r\n Utils_1.raiseEvent(evt, this.createActualMouseClickEvent(evt), function (e) { return _this.events.onClick(e); });\r\n };\r\n RenderManager.prototype.createActualMouseClickEvent = function (evt) {\r\n if (!this.lastDownMouseEvent)\r\n return this.createDiagramMouseEvent(evt);\r\n return new Event_1.DiagramMouseEvent(this.lastDownMouseEvent.modifiers, this.lastDownMouseEvent.button, this.lastDownMouseEvent.offsetPoint.clone(), this.lastDownMouseEvent.modelPoint.clone(), this.lastDownMouseEvent.source, this.createDiagramMouseEventTouches(evt));\r\n };\r\n RenderManager.prototype.onContextMenu = function (evt) {\r\n var _this = this;\r\n Utils_1.raiseEvent(evt, this.createDiagramContextMenuEvent(evt), function (e) { return _this.events.onContextMenu(e); });\r\n this.input.captureFocus();\r\n return evt_1.EvtUtils.preventEventAndBubble(evt);\r\n };\r\n RenderManager.prototype.processTouchDown = function (evt) {\r\n var _this = this;\r\n this.touchDownPoint = this.getTouchPointFromEvent(evt);\r\n this.resetLongTouch();\r\n this.longTouchTimer = setTimeout(function () {\r\n Utils_1.raiseEvent(evt, _this.createDiagramMouseEvent(evt), function (e) { return _this.events.onLongTouch(e); });\r\n _this.resetLongTouch();\r\n _this.resetDblClick();\r\n }, exports.LONG_TOUCH_TIMEOUT);\r\n };\r\n RenderManager.prototype.processTouchMove = function (evt) {\r\n var currentTouchPoint = this.getTouchPointFromEvent(evt);\r\n if (this.touchDownPoint && currentTouchPoint && (Math.abs(this.touchDownPoint.x - currentTouchPoint.x) > RenderManager.touchPositionLimit ||\r\n Math.abs(this.touchDownPoint.y - currentTouchPoint.y) > RenderManager.touchPositionLimit)) {\r\n this.resetLongTouch();\r\n this.resetDblClick();\r\n }\r\n };\r\n RenderManager.prototype.getTouchPointFromEvent = function (evt) {\r\n var touchPosition;\r\n var touches = evt[\"touches\"];\r\n if (touches && touches.length > 0)\r\n touchPosition = new point_1.Point(touches[0].clientX, touches[0].clientY);\r\n return touchPosition;\r\n };\r\n RenderManager.prototype.processTouchUp = function (evt) {\r\n var _this = this;\r\n if (this.longTouchTimer !== undefined) {\r\n Utils_1.raiseEvent(evt, this.createDiagramMouseEvent(evt), function (e) { return _this.events.onClick(e); });\r\n var element = evt_1.EvtUtils.getEventSource(evt);\r\n if (this.dblTouchTimer !== undefined && this.lastClickElement === element) {\r\n Utils_1.raiseEvent(evt, this.createDiagramMouseEvent(evt), function (e) { return _this.events.onDblClick(e); });\r\n this.resetDblClick();\r\n }\r\n else {\r\n this.resetDblClick();\r\n this.dblTouchTimer = setTimeout(function () { return _this.dblTouchTimer = undefined; }, exports.DBL_CLICK_TIMEOUT);\r\n }\r\n this.lastClickElement = element;\r\n }\r\n this.resetLongTouch();\r\n this.touchDownPoint = undefined;\r\n };\r\n RenderManager.prototype.resetLongTouch = function () {\r\n if (this.longTouchTimer !== undefined)\r\n clearTimeout(this.longTouchTimer);\r\n this.longTouchTimer = undefined;\r\n };\r\n RenderManager.prototype.resetDblClick = function () {\r\n if (this.dblTouchTimer !== undefined)\r\n clearTimeout(this.dblTouchTimer);\r\n this.dblTouchTimer = undefined;\r\n };\r\n RenderManager.prototype.onOrientationChange = function () {\r\n var _this = this;\r\n setTimeout(function () { return _this.onWindowResize(); }, 100);\r\n };\r\n RenderManager.prototype.onWindowResize = function () {\r\n var resetTo = { horizontal: false, vertical: false };\r\n if (this.view.autoZoom !== Settings_1.AutoZoomMode.Disabled) {\r\n resetTo.horizontal = true;\r\n resetTo.vertical = true;\r\n }\r\n else {\r\n var oldFitInfo = this.view.checkFitToCanvas();\r\n var newFitInfo = this.view.checkFitToCanvas(this.scroll.getSize());\r\n resetTo = { horizontal: oldFitInfo.horizontal !== newFitInfo.horizontal || newFitInfo.horizontal, vertical: oldFitInfo.vertical !== newFitInfo.vertical || newFitInfo.vertical };\r\n }\r\n this.view.adjust(resetTo);\r\n };\r\n RenderManager.prototype.onMouseWheel = function (evt) {\r\n var _this = this;\r\n Utils_1.raiseEvent(evt, this.createDiagramWheelEvent(evt), function (e) { return _this.events.onMouseWheel(e); });\r\n };\r\n RenderManager.prototype.notifyModelSizeChanged = function (size, offset) {\r\n this.view.notifyModelSizeChanged(size, offset);\r\n };\r\n RenderManager.prototype.notifyModelRectangleChanged = function (rectangle) {\r\n this.view.notifyModelRectangleChanged(rectangle);\r\n };\r\n RenderManager.prototype.notifyReadOnlyChanged = function (readOnly) {\r\n dom_1.DomUtils.toggleClassName(this.mainElement, READONLY_CSSCLASS, readOnly);\r\n };\r\n RenderManager.prototype.notifyDragStart = function (itemKeys) { };\r\n RenderManager.prototype.notifyDragEnd = function (itemKeys) { };\r\n RenderManager.prototype.notifyDragScrollStart = function () {\r\n this.autoScroll.onDragScrollStart();\r\n };\r\n RenderManager.prototype.notifyDragScrollEnd = function () {\r\n this.autoScroll.onDragScrollEnd();\r\n };\r\n RenderManager.prototype.createDiagramMouseEvent = function (evt, findEventSourceByPosition) {\r\n var modifiers = key_1.KeyUtils.getKeyModifiers(evt);\r\n var button = isLeftButtonPressed(evt) ? Event_1.MouseButton.Left : Event_1.MouseButton.Right;\r\n var offsetPoint = this.getOffsetPointByEvent(evt);\r\n var modelPoint = this.getModelPoint(offsetPoint);\r\n var eventSource = this.getEventSource(evt, findEventSourceByPosition);\r\n var touches = this.createDiagramMouseEventTouches(evt);\r\n return new Event_1.DiagramMouseEvent(modifiers, button, offsetPoint, modelPoint, eventSource, touches);\r\n };\r\n RenderManager.prototype.createDiagramMouseEventTouches = function (evt) {\r\n var touches = [];\r\n if (evt[\"touches\"])\r\n for (var i = 0; i < evt[\"touches\"].length; i++) {\r\n var x = evt[\"touches\"][i].clientX;\r\n var y = evt[\"touches\"][i].clientY;\r\n var offsetPoint = this.getOffsetPointByEventPoint(x, y);\r\n var modelPoint = this.getModelPoint(offsetPoint);\r\n touches.push(new Event_1.DiagramMouseEventTouch(offsetPoint, modelPoint));\r\n }\r\n return touches;\r\n };\r\n RenderManager.prototype.createDiagramContextMenuEvent = function (evt) {\r\n var modifiers = key_1.KeyUtils.getKeyModifiers(evt);\r\n var eventPoint = new point_1.Point(evt.pageX, evt.pageY);\r\n var offsetPoint = this.getOffsetPointByEvent(evt);\r\n var modelPoint = this.getModelPoint(offsetPoint);\r\n return new Event_1.DiagramContextMenuEvent(modifiers, eventPoint, modelPoint);\r\n };\r\n RenderManager.prototype.createDiagramWheelEvent = function (evt) {\r\n var modifiers = key_1.KeyUtils.getKeyModifiers(evt);\r\n var offsetPoint = this.getOffsetPointByEvent(evt);\r\n var modelPoint = this.view.getModelPoint(offsetPoint);\r\n var eventSource = this.getEventSource(evt);\r\n var deltaX = evt.deltaX || (evt[\"originalEvent\"] && evt[\"originalEvent\"].deltaX);\r\n var deltaY = evt.deltaY || (evt[\"originalEvent\"] && evt[\"originalEvent\"].deltaY);\r\n return new Event_1.DiagramWheelEvent(modifiers, deltaX, deltaY, offsetPoint, modelPoint, eventSource);\r\n };\r\n RenderManager.prototype.getEventSource = function (evt, findByPosition) {\r\n var element = findByPosition ? evt_1.EvtUtils.getEventSourceByPosition(evt) : evt_1.EvtUtils.getEventSource(evt);\r\n if (this.isDiagramControl(element))\r\n while (element && !this.isDocumentContainer(element)) {\r\n var src_1 = Utils_1.RenderUtils.getElementEventData(element);\r\n if (src_1 !== undefined)\r\n return src_1;\r\n if (this.input.isTextInputElement(element))\r\n return new Event_1.MouseEventSource(Event_1.MouseEventElementType.Document);\r\n element = element.parentNode;\r\n }\r\n var src = new Event_1.MouseEventSource(Event_1.MouseEventElementType.Undefined);\r\n if (element && this.isDocumentContainer(element))\r\n src.type = Event_1.MouseEventElementType.Background;\r\n return src;\r\n };\r\n RenderManager.prototype.isDiagramControl = function (element) {\r\n while (element) {\r\n if (this.isDocumentContainer(element))\r\n return true;\r\n element = element.parentNode;\r\n }\r\n return false;\r\n };\r\n RenderManager.prototype.isDocumentContainer = function (element) {\r\n return element === this.mainElement;\r\n };\r\n RenderManager.prototype.lockMouseMove = function () {\r\n var _this = this;\r\n this.moveLocked = true;\r\n this.lockMouseMoveTimer = setTimeout(function () {\r\n _this.moveLocked = false;\r\n _this.lockMouseMoveTimer = -1;\r\n }, 10); // because chrome raises 2 events on click: buttonDown and move.\r\n };\r\n RenderManager.prototype.killLockMouseMoveTimer = function () {\r\n if (this.lockMouseMoveTimer !== -1) {\r\n clearTimeout(this.lockMouseMoveTimer);\r\n this.lockMouseMoveTimer = -1;\r\n }\r\n };\r\n RenderManager.prototype.clearLastMouseDownEvent = function () {\r\n this.lastDownMouseEvent = undefined;\r\n };\r\n RenderManager.prototype.getModelPoint = function (offsetPoint) {\r\n return this.view.getModelPoint(offsetPoint);\r\n };\r\n RenderManager.prototype.getOffsetPointByEvent = function (evt) {\r\n var clientX = evt_1.EvtUtils.getEventX(evt);\r\n var clientY = evt_1.EvtUtils.getEventY(evt);\r\n return this.getOffsetPointByEventPoint(clientX, clientY);\r\n };\r\n RenderManager.prototype.getOffsetPointByEventPoint = function (clientX, clientY) {\r\n var scrollContainer = this.scroll.getScrollContainer();\r\n var containerX = dom_1.DomUtils.getAbsolutePositionX(scrollContainer);\r\n var containerY = dom_1.DomUtils.getAbsolutePositionY(scrollContainer);\r\n return new point_1.Point(clientX - containerX, clientY - containerY);\r\n };\r\n RenderManager.prototype.getModelPointByEventPoint = function (clientX, clientY) {\r\n var offsetPoint = this.getOffsetPointByEventPoint(clientX, clientY);\r\n return this.view.getModelPoint(offsetPoint);\r\n };\r\n RenderManager.prototype.getEventPointByModelPoint = function (point) {\r\n var pos = this.view.getAbsolutePoint(point);\r\n var scrollContainer = this.scroll.getScrollContainer();\r\n return new point_1.Point(dom_1.DomUtils.getAbsolutePositionX(scrollContainer) + pos.x, dom_1.DomUtils.getAbsolutePositionY(scrollContainer) + pos.y);\r\n };\r\n RenderManager.touchPositionLimit = 4;\r\n return RenderManager;\r\n}());\r\nexports.RenderManager = RenderManager;\r\nfunction isLeftButtonPressed(evt) {\r\n return !browser_1.Browser.MSTouchUI ? evt_1.EvtUtils.isLeftButtonPressed(evt) : evt.button !== 2;\r\n}\r\n\n\n/***/ }),\n/* 339 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NativeScrollView = void 0;\r\nvar Utils_1 = __webpack_require__(3);\r\nvar size_1 = __webpack_require__(2);\r\nvar point_1 = __webpack_require__(1);\r\nvar dom_1 = __webpack_require__(26);\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar NativeScrollView = /** @class */ (function () {\r\n function NativeScrollView(mainElement) {\r\n this.onScroll = new Utils_1.EventDispatcher();\r\n this.scrollBarWidth = dom_1.DomUtils.getVerticalScrollBarWidth();\r\n this.mainElement = mainElement;\r\n this.attachEvents();\r\n }\r\n NativeScrollView.prototype.attachEvents = function () {\r\n var _this = this;\r\n this.onScrollHandler = function () { return _this.onScroll.raise1(function (l) { return l.notifyScrollChanged(function () { return _this.getScroll(); }); }); };\r\n RenderHelper_1.RenderHelper.addEventListener(this.mainElement, \"scroll\", this.onScrollHandler);\r\n };\r\n NativeScrollView.prototype.detachEvents = function () {\r\n RenderHelper_1.RenderHelper.removeEventListener(this.mainElement, \"scroll\", this.onScrollHandler);\r\n };\r\n NativeScrollView.prototype.getScrollContainer = function () {\r\n return this.mainElement;\r\n };\r\n NativeScrollView.prototype.setScroll = function (left, top) {\r\n var _this = this;\r\n this.mainElement.style.overflow = \"scroll\";\r\n this.mainElement.scrollLeft = left;\r\n this.mainElement.scrollTop = top;\r\n this.mainElement.style.overflow = \"\";\r\n this.onScroll.raise1(function (l) { return l.notifyScrollChanged(function () { return _this.getScroll(); }); });\r\n };\r\n NativeScrollView.prototype.offsetScroll = function (left, top) {\r\n var _this = this;\r\n if (left)\r\n this.mainElement.scrollLeft += left;\r\n if (top)\r\n this.mainElement.scrollTop += top;\r\n this.onScroll.raise1(function (l) { return l.notifyScrollChanged(function () { return _this.getScroll(); }); });\r\n };\r\n NativeScrollView.prototype.getScroll = function () {\r\n return new point_1.Point(this.mainElement.scrollLeft, this.mainElement.scrollTop);\r\n };\r\n NativeScrollView.prototype.getSize = function () {\r\n var boundingRect = this.mainElement.getBoundingClientRect();\r\n return new size_1.Size(Math.floor(boundingRect.width), Math.floor(boundingRect.height));\r\n };\r\n NativeScrollView.prototype.getScrollBarWidth = function () {\r\n return this.scrollBarWidth;\r\n };\r\n return NativeScrollView;\r\n}());\r\nexports.NativeScrollView = NativeScrollView;\r\n\n\n/***/ }),\n/* 340 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.InputManager = void 0;\r\nvar key_1 = __webpack_require__(25);\r\nvar dom_1 = __webpack_require__(26);\r\nvar Utils_1 = __webpack_require__(18);\r\nvar Event_1 = __webpack_require__(11);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar evt_1 = __webpack_require__(80);\r\nvar ITextMeasurer_1 = __webpack_require__(42);\r\nvar browser_1 = __webpack_require__(17);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar TextUtils_1 = __webpack_require__(61);\r\nvar TEXT_INPUT_CSSCLASS = \"dxdi-text-input\";\r\nvar InputManager = /** @class */ (function () {\r\n function InputManager(mainElement, layoutPointResolver, eventManager, textMeasurer, actualZoom) {\r\n this.mainElement = mainElement;\r\n this.layoutPointResolver = layoutPointResolver;\r\n this.eventManager = eventManager;\r\n this.textMeasurer = textMeasurer;\r\n this.actualZoom = actualZoom;\r\n this.focused = false;\r\n this.focusLocked = false;\r\n this.createInputElements(this.mainElement);\r\n }\r\n InputManager.prototype.detachEvents = function () {\r\n this.detachInputElementEvents();\r\n this.detachTextInputElementEvents();\r\n };\r\n InputManager.prototype.isFocused = function () {\r\n return this.focused;\r\n };\r\n InputManager.prototype.captureFocus = function (inputElement, selectAll) {\r\n var element = inputElement || this.inputElement;\r\n element.focus({\r\n preventScroll: true\r\n });\r\n if (selectAll && element.select)\r\n element.select();\r\n };\r\n InputManager.prototype.setClipboardData = function (data) {\r\n this.clipboardInputElement.value = data;\r\n this.clipboardInputElement.focus({\r\n preventScroll: true\r\n });\r\n this.clipboardInputElement.select();\r\n document.execCommand(\"copy\");\r\n this.captureFocus();\r\n };\r\n InputManager.prototype.getClipboardData = function (callback) {\r\n var _this = this;\r\n if (navigator && navigator[\"clipboard\"])\r\n navigator[\"clipboard\"].readText().then(function (clipText) {\r\n callback(clipText);\r\n _this.captureFocus();\r\n }).catch(function () {\r\n callback(\"\");\r\n _this.captureFocus();\r\n });\r\n else if (browser_1.Browser.IE) {\r\n this.clipboardInputElement.value = \"\";\r\n this.clipboardInputElement.focus({\r\n preventScroll: true\r\n });\r\n this.clipboardInputElement.select();\r\n document.execCommand(\"Paste\");\r\n callback(this.clipboardInputElement.value);\r\n this.captureFocus();\r\n }\r\n };\r\n InputManager.prototype.isPasteSupportedByBrowser = function () {\r\n return browser_1.Browser.IE || (browser_1.Browser.WebKitFamily && navigator && navigator[\"clipboard\"] !== undefined);\r\n };\r\n InputManager.prototype.createInputElements = function (parent) {\r\n this.createFocusInputElement(parent);\r\n this.createTextInputElement(parent);\r\n this.createClipboardInputElement(parent);\r\n this.attachInputElementEvents();\r\n };\r\n InputManager.prototype.setInputElementFocusHandlerMode = function () {\r\n this.textInputElementContainer.setAttribute(\"class\", \"dxdi-text-input-container\");\r\n this.captureFocus();\r\n };\r\n InputManager.prototype.setInputElementTextInputMode = function (text, position, size, style, className, textAngle) {\r\n this.textInputElementContainer.setAttribute(\"class\", \"dxdi-text-input-container \" + className);\r\n this.textInputElement.value = text;\r\n this.setTextInputElementBounds(position, size, textAngle);\r\n this.setTextInputElementStyle(style);\r\n this.updateTextInputPadding();\r\n this.captureFocus(this.textInputElement, true);\r\n };\r\n InputManager.prototype.setTextInputElementBounds = function (position, size, textAngle) {\r\n this.savedTextInputPosition = position;\r\n this.savedTextInputSize = size;\r\n this.savedTextInputAngle = textAngle;\r\n var abs = this.layoutPointResolver.getAbsolutePoint(position, true);\r\n this.textInputElementContainer.style.left = abs.x + \"px\";\r\n this.textInputElementContainer.style.top = abs.y + \"px\";\r\n this.textInputElementContainer.style.width = size && size.width + \"px\" || \"0px\";\r\n this.textInputElementContainer.style.height = size && size.height + \"px\" || \"0px\";\r\n var transforms = [];\r\n this.textInputElementContainer.style.transform = \"\";\r\n if (this.actualZoom !== 1)\r\n transforms.push(\"scale(\" + this.actualZoom + \")\");\r\n if (textAngle)\r\n transforms.push(\"rotate(\" + textAngle + \"deg)\");\r\n this.textInputElementContainer.style.transform = transforms.join(\" \");\r\n this.textInputElement.style.width = size && size.width + \"px\" || \"\";\r\n this.textInputElement.style.height = size && size.height + \"px\" || \"auto\";\r\n };\r\n InputManager.prototype.setTextInputElementStyle = function (style) {\r\n this.savedTextInputStyle = style;\r\n Utils_1.RenderUtils.applyStyleToElement(style, this.textInputElement);\r\n };\r\n InputManager.prototype.createFocusInputElement = function (parent) {\r\n this.inputElement = document.createElement(\"textarea\");\r\n this.inputElement.readOnly = browser_1.Browser.TouchUI; // prevent show keyboard on mobile devices, but the \"paste\" event isn't raised for some desktop browsers(IE)\r\n this.inputElement.setAttribute(\"class\", \"dxdi-focus-input\");\r\n parent.appendChild(this.inputElement);\r\n };\r\n InputManager.prototype.attachInputElementEvents = function () {\r\n this.onInputBlurHandler = this.onInputBlur.bind(this);\r\n this.onInputFocusHandler = this.onInputFocus.bind(this);\r\n this.onInputKeyDownHandler = this.onInputKeyDown.bind(this);\r\n this.onInputKeyPressHandler = this.onInputKeyPress.bind(this);\r\n this.onInputKeyUpHandler = this.onInputKeyUp.bind(this);\r\n this.onPasteHandler = this.onPaste.bind(this);\r\n RenderHelper_1.RenderHelper.addEventListener(this.inputElement, \"blur\", this.onInputBlurHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(this.inputElement, \"focus\", this.onInputFocusHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(this.inputElement, \"keydown\", this.onInputKeyDownHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(this.inputElement, \"keypress\", this.onInputKeyPressHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(this.inputElement, \"keyup\", this.onInputKeyUpHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(this.inputElement, \"paste\", this.onPasteHandler);\r\n };\r\n InputManager.prototype.detachInputElementEvents = function () {\r\n RenderHelper_1.RenderHelper.removeEventListener(this.inputElement, \"blur\", this.onInputBlurHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(this.inputElement, \"focus\", this.onInputFocusHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(this.inputElement, \"keydown\", this.onInputKeyDownHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(this.inputElement, \"keypress\", this.onInputKeyPressHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(this.inputElement, \"keyup\", this.onInputKeyUpHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(this.inputElement, \"paste\", this.onPasteHandler);\r\n };\r\n InputManager.prototype.createTextInputElement = function (parent) {\r\n this.textInputElementContainer = document.createElement(\"div\");\r\n this.textInputElementContainer.setAttribute(\"class\", \"dxdi-text-input-container\");\r\n parent.appendChild(this.textInputElementContainer);\r\n this.textInputElement = document.createElement(\"textarea\");\r\n this.textInputElement.setAttribute(\"class\", TEXT_INPUT_CSSCLASS);\r\n this.attachTextInputElementEvents();\r\n this.textInputElementContainer.appendChild(this.textInputElement);\r\n };\r\n InputManager.prototype.attachTextInputElementEvents = function () {\r\n this.onTextInputBlurHandler = this.onTextInputBlur.bind(this);\r\n this.onTextInputFocusHandler = this.onTextInputFocus.bind(this);\r\n this.onTextInputKeyDownHandler = this.onTextInputKeyDown.bind(this);\r\n this.onTextInputMouseWheelHandler = this.onTextInputMouseWheel.bind(this);\r\n this.onTextInputMouseUpHandler = this.onTextInputMouseUp.bind(this);\r\n this.onTextInputKeyUpHandler = this.onTextInputKeyUp.bind(this);\r\n this.onTextInputChangeHandler = this.onTextInputChange.bind(this);\r\n RenderHelper_1.RenderHelper.addEventListener(this.textInputElement, \"mousewheel\", this.onTextInputMouseWheelHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(this.textInputElement, \"mouseup\", this.onTextInputMouseUpHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(this.textInputElement, \"blur\", this.onTextInputBlurHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(this.textInputElement, \"focus\", this.onTextInputFocusHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(this.textInputElement, \"keydown\", this.onTextInputKeyDownHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(this.textInputElement, \"keyup\", this.onTextInputKeyUpHandler);\r\n RenderHelper_1.RenderHelper.addEventListener(this.textInputElement, \"change\", this.onTextInputChangeHandler);\r\n };\r\n InputManager.prototype.detachTextInputElementEvents = function () {\r\n RenderHelper_1.RenderHelper.removeEventListener(this.textInputElement, \"mousewheel\", this.onTextInputMouseWheelHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(this.textInputElement, \"mouseup\", this.onTextInputMouseUpHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(this.textInputElement, \"blur\", this.onTextInputBlurHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(this.textInputElement, \"focus\", this.onTextInputFocusHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(this.textInputElement, \"keydown\", this.onTextInputKeyDownHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(this.textInputElement, \"keyup\", this.onTextInputKeyUpHandler);\r\n RenderHelper_1.RenderHelper.removeEventListener(this.textInputElement, \"change\", this.onTextInputChangeHandler);\r\n };\r\n InputManager.prototype.createClipboardInputElement = function (parent) {\r\n this.clipboardInputElement = document.createElement(\"textarea\");\r\n this.clipboardInputElement.setAttribute(\"class\", \"dxdi-clipboard-input\");\r\n parent.appendChild(this.clipboardInputElement);\r\n };\r\n InputManager.prototype.blurControl = function () {\r\n if (!this.focusLocked) {\r\n this.focused = false;\r\n dom_1.DomUtils.removeClassName(this.mainElement, \"focused\");\r\n }\r\n };\r\n InputManager.prototype.focusControl = function () {\r\n this.focused = true;\r\n this.focusLocked = false;\r\n dom_1.DomUtils.addClassName(this.mainElement, \"focused\");\r\n };\r\n InputManager.prototype.updateTextInputPadding = function () {\r\n var text = this.textInputElement.value;\r\n if (!this.savedTextInputSize) {\r\n var measureResults = this.textMeasurer.measureWords(\" \", this.savedTextInputStyle, ITextMeasurer_1.TextOwner.Connector);\r\n var textHeight = TextUtils_1.getLineHeight(measureResults) * ((TextUtils_1.textToParagraphs(text).length || 1) + 1);\r\n this.textInputElement.style.height = Math.ceil(textHeight) + \"px\";\r\n }\r\n else {\r\n var measureResults = this.textMeasurer.measureWords(text, this.savedTextInputStyle, ITextMeasurer_1.TextOwner.Shape);\r\n var textHeight = TextUtils_1.getTextHeight(text, this.savedTextInputSize.width, measureResults, true);\r\n var top_1 = Math.max(0, (this.savedTextInputSize.height - textHeight) * 0.5);\r\n this.textInputElement.style.paddingTop = Math.ceil(top_1) + \"px\";\r\n this.textInputElement.style.height = Math.floor(this.savedTextInputSize.height) + \"px\";\r\n }\r\n };\r\n InputManager.prototype.onInputBlur = function (evt) {\r\n var _this = this;\r\n this.blurControl();\r\n Utils_1.raiseEvent(evt, this.getDiagramFocusEvent(evt), function (e) { return _this.eventManager.onBlur(e); });\r\n };\r\n InputManager.prototype.onInputFocus = function (evt) {\r\n var _this = this;\r\n this.focusControl();\r\n Utils_1.raiseEvent(evt, this.getDiagramFocusEvent(evt), function (e) { return _this.eventManager.onFocus(e); });\r\n };\r\n InputManager.prototype.onInputKeyDown = function (evt) {\r\n var _this = this;\r\n Utils_1.raiseEvent(evt, this.getDiagramKeyboardEvent(evt), function (e) { return _this.eventManager.onKeyDown(e); });\r\n };\r\n InputManager.prototype.onInputKeyPress = function (evt) {\r\n if (evt.preventDefault)\r\n evt.preventDefault(); // prevent page scroll because of hidden textarea\r\n };\r\n InputManager.prototype.onInputKeyUp = function (evt) {\r\n var _this = this;\r\n Utils_1.raiseEvent(evt, this.getDiagramKeyboardEvent(evt), function (e) { return _this.eventManager.onKeyUp(e); });\r\n };\r\n InputManager.prototype.onTextInputBlur = function (evt) {\r\n var _this = this;\r\n if (this.eventManager.canFinishTextEditing()) {\r\n this.blurControl();\r\n Utils_1.raiseEvent(evt, this.getDiagramFocusEvent(evt), function (e) { return _this.eventManager.onTextInputBlur(e); });\r\n }\r\n else {\r\n var srcElement = evt_1.EvtUtils.getEventSource(evt);\r\n if (document.activeElement !== srcElement) // It is always true in runtime. This condition is needed only for tests to run correctly in JSDOM\r\n srcElement.focus();\r\n }\r\n };\r\n InputManager.prototype.onTextInputFocus = function (evt) {\r\n var _this = this;\r\n this.focusControl();\r\n Utils_1.raiseEvent(evt, this.getDiagramFocusEvent(evt), function (e) { return _this.eventManager.onTextInputFocus(e); });\r\n };\r\n InputManager.prototype.onTextInputKeyDown = function (evt) {\r\n var _this = this;\r\n Utils_1.raiseEvent(evt, this.getDiagramKeyboardEvent(evt), function (e) { return _this.eventManager.onTextInputKeyDown(e); });\r\n };\r\n InputManager.prototype.onTextInputKeyUp = function (evt) {\r\n this.updateTextInputPadding();\r\n };\r\n InputManager.prototype.onTextInputChange = function (evt) {\r\n this.updateTextInputPadding();\r\n };\r\n InputManager.prototype.onPaste = function (evt) {\r\n var _this = this;\r\n Utils_1.raiseEvent(evt, this.getDiagramClipboardEvent(evt), function (e) { return _this.eventManager.onPaste(e); });\r\n };\r\n InputManager.prototype.onTextInputMouseWheel = function (evt) {\r\n this.mouseWheelHandler && this.mouseWheelHandler(evt);\r\n };\r\n InputManager.prototype.onTextInputMouseUp = function (evt) {\r\n if (evt.stopPropagation)\r\n evt.stopPropagation();\r\n evt_1.EvtUtils.cancelBubble(evt);\r\n };\r\n InputManager.prototype.getDiagramKeyboardEvent = function (evt) {\r\n return new Event_1.DiagramKeyboardEvent(key_1.KeyUtils.getKeyModifiers(evt), key_1.KeyUtils.getEventKeyCode(evt), this.textInputElement.value); // TODO: check it\r\n };\r\n InputManager.prototype.getTextInputElementValue = function () {\r\n return this.textInputElement.value;\r\n };\r\n InputManager.prototype.getDiagramFocusEvent = function (evt) {\r\n return new Event_1.DiagramFocusEvent(evt.target.value);\r\n };\r\n InputManager.prototype.getDiagramClipboardEvent = function (evt) {\r\n var clipboardData;\r\n var evtClipboardData = evt.clipboardData || (evt[\"originalEvent\"] && evt[\"originalEvent\"].clipboardData);\r\n if (evtClipboardData !== undefined)\r\n clipboardData = evtClipboardData.getData(\"text/plain\");\r\n else\r\n clipboardData = window[\"clipboardData\"].getData(\"Text\");\r\n return new Event_1.DiagramClipboardEvent(clipboardData);\r\n };\r\n InputManager.prototype.isTextInputElement = function (element) {\r\n return typeof element.className === \"string\" && element.className.indexOf(TEXT_INPUT_CSSCLASS) > -1;\r\n };\r\n InputManager.prototype.lockFocus = function () {\r\n var _this = this;\r\n this.focusLocked = true;\r\n setTimeout(function () { return _this.focusLocked = false; }, 10);\r\n };\r\n InputManager.prototype.notifyViewAdjusted = function (canvasOffset) { };\r\n InputManager.prototype.notifyActualZoomChanged = function (actualZoom) {\r\n this.actualZoom = actualZoom;\r\n if (this.savedTextInputPosition && this.savedTextInputSize)\r\n this.setTextInputElementBounds(this.savedTextInputPosition, this.savedTextInputSize, this.savedTextInputAngle);\r\n };\r\n InputManager.prototype.notifyTextInputStart = function (item, text, position, size) {\r\n var className = \"\";\r\n var textAngle;\r\n if (item instanceof Shape_1.Shape) {\r\n className = \"shape-text\";\r\n textAngle = item.textAngle;\r\n }\r\n else if (item instanceof Connector_1.Connector)\r\n className = \"connector-text\";\r\n size = size && size.clone().applyConverter(unit_converter_1.UnitConverter.twipsToPixels);\r\n this.setInputElementTextInputMode(text, position, size, item.styleText, className, textAngle);\r\n };\r\n InputManager.prototype.notifyTextInputEnd = function (item) {\r\n this.setInputElementFocusHandlerMode();\r\n };\r\n InputManager.prototype.notifyTextInputPermissionsCheck = function (item, allowed) { };\r\n return InputManager;\r\n}());\r\nexports.InputManager = InputManager;\r\n\n\n/***/ }),\n/* 341 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CanvasPageManager = void 0;\r\nvar Style_1 = __webpack_require__(30);\r\nvar RectaglePrimitive_1 = __webpack_require__(21);\r\nvar PathPrimitive_1 = __webpack_require__(4);\r\nvar PatternPrimitive_1 = __webpack_require__(342);\r\nvar ClipPathPrimitive_1 = __webpack_require__(53);\r\nvar CanvasManagerBase_1 = __webpack_require__(41);\r\nvar size_1 = __webpack_require__(2);\r\nvar point_1 = __webpack_require__(1);\r\nvar Utils_1 = __webpack_require__(18);\r\nvar color_1 = __webpack_require__(22);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar GRID_PAGES_LINEWIDTH = 2;\r\nvar CanvasPageManager = /** @class */ (function (_super) {\r\n __extends(CanvasPageManager, _super);\r\n function CanvasPageManager(parent, settings, dom) {\r\n var _this = _super.call(this, settings.zoomLevel, dom) || this;\r\n _this.snapPoint = new point_1.Point(0, 0);\r\n _this.gridPatternId = Utils_1.RenderUtils.generateSvgElementId(\"gridPattern\");\r\n _this.pagesGridPatternId = Utils_1.RenderUtils.generateSvgElementId(\"pagesGridPattern\");\r\n _this.pagesGridClipId = Utils_1.RenderUtils.generateSvgElementId(\"pagesGridClip\");\r\n _this.pageColor = settings.pageColor;\r\n _this.modelSize = settings.modelSize;\r\n _this.simpleView = settings.simpleView;\r\n _this.gridSize = settings.gridSize;\r\n _this.gridVisible = settings.gridVisible;\r\n _this.pageSize = settings.pageLandscape ? new size_1.Size(settings.pageSize.height, settings.pageSize.width) : settings.pageSize;\r\n _this.canvasViewOffset = new point_1.Point(0, 0);\r\n _this.initContainers(parent);\r\n return _this;\r\n }\r\n CanvasPageManager.prototype.initContainers = function (parent) {\r\n this.backgroundContainer = parent;\r\n };\r\n CanvasPageManager.prototype.redraw = function () {\r\n this.redrawPage(this.pageColor);\r\n this.redrawGrid();\r\n };\r\n CanvasPageManager.prototype.redrawPage = function (color) {\r\n var style = new Style_1.Style();\r\n style[\"fill\"] = color_1.ColorUtils.colorToHash(color);\r\n this.getOrCreateElement(\"page-bg\", new RectaglePrimitive_1.RectanglePrimitive(0, 0, \"100%\", \"100%\", style, \"page\"), this.backgroundContainer);\r\n this.createTextFloodFilter(\"page-bg-textflood-filter\", this.backgroundContainer, color);\r\n };\r\n CanvasPageManager.prototype.redrawGrid = function () {\r\n this.updateGridElements();\r\n this.updatePagesGridElements();\r\n };\r\n CanvasPageManager.prototype.getGridRectElement = function (primitive) {\r\n if (this.gridRectElement === undefined)\r\n this.gridRectElement = this.createPrimitiveElement(primitive, this.backgroundContainer);\r\n return this.gridRectElement;\r\n };\r\n CanvasPageManager.prototype.getGridPatternElement = function (primitive) {\r\n if (this.gridPatternElement === undefined)\r\n this.gridPatternElement = this.createPrimitiveElement(primitive, this.backgroundContainer);\r\n return this.gridPatternElement;\r\n };\r\n CanvasPageManager.prototype.updateGridElements = function () {\r\n var _this = this;\r\n var gridRectPrimitive = new RectaglePrimitive_1.RectanglePrimitive(\"0\", \"0\", \"100%\", \"100%\", null, \"grid\", null, function (element) {\r\n element.style.setProperty(\"fill\", Utils_1.RenderUtils.getUrlPathById(_this.gridPatternId));\r\n });\r\n var rectEl = this.getGridRectElement(gridRectPrimitive);\r\n if (!this.gridVisible)\r\n rectEl.style.display = \"none\";\r\n else {\r\n rectEl.style.display = \"\";\r\n this.changePrimitiveElement(gridRectPrimitive, rectEl);\r\n var absGridSize_1 = unit_converter_1.UnitConverter.twipsToPixelsF(this.gridSize) * this.actualZoom;\r\n var sizes = [0, 1, 2, 3, 4].map(function (i) { return Math.round(absGridSize_1 * i); });\r\n var outerPathCommands = [\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand(sizes[4].toString(), \"0\"),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(sizes[4].toString(), sizes[4].toString()),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(\"0\", sizes[4].toString())\r\n ];\r\n var innerPathCommands = [];\r\n for (var i = 1; i <= 3; i++) {\r\n innerPathCommands.push(new PathPrimitive_1.PathPrimitiveMoveToCommand(sizes[i].toString(), \"0\"));\r\n innerPathCommands.push(new PathPrimitive_1.PathPrimitiveLineToCommand(sizes[i].toString(), sizes[4].toString()));\r\n }\r\n for (var i = 1; i <= 3; i++) {\r\n innerPathCommands.push(new PathPrimitive_1.PathPrimitiveMoveToCommand(\"0\", sizes[i].toString()));\r\n innerPathCommands.push(new PathPrimitive_1.PathPrimitiveLineToCommand(sizes[4].toString(), sizes[i].toString()));\r\n }\r\n var commonSize = absGridSize_1 * 4;\r\n var canvasViewOffset = this.simpleView ? this.canvasViewOffset : point_1.Point.zero();\r\n var gridPatternPrimitive = new PatternPrimitive_1.PatternPrimitive(this.gridPatternId, [\r\n this.createGridPathPrimitive(outerPathCommands, \"grid-outer-line\"),\r\n this.createGridPathPrimitive(innerPathCommands, \"grid-inner-line\")\r\n ], this.createGridPatternPrimitivePosition(canvasViewOffset.x, this.snapPoint.x, commonSize), this.createGridPatternPrimitivePosition(canvasViewOffset.y, this.snapPoint.y, commonSize), commonSize.toString(), commonSize.toString());\r\n this.changePrimitiveElement(gridPatternPrimitive, this.getGridPatternElement(gridPatternPrimitive));\r\n }\r\n };\r\n CanvasPageManager.prototype.createGridPatternPrimitivePosition = function (offset, coord, commonSize) {\r\n return (((offset + coord * this.actualZoom) % commonSize - commonSize) % commonSize).toString();\r\n };\r\n CanvasPageManager.prototype.createGridPathPrimitive = function (commands, className) {\r\n return new PathPrimitive_1.PathPrimitive(commands, Style_1.StrokeStyle.default1pxNegativeOffsetInstance, className);\r\n };\r\n CanvasPageManager.prototype.getPagesGridRectElement = function (primitive) {\r\n return this.getOrCreateElement(\"grid-pages-rect\", primitive, this.backgroundContainer);\r\n };\r\n CanvasPageManager.prototype.getPagesGridClipPathElement = function (primitive) {\r\n if (this.pagesGridClipPathElement === undefined)\r\n this.pagesGridClipPathElement = this.createPrimitiveElement(primitive, this.backgroundContainer);\r\n return this.pagesGridClipPathElement;\r\n };\r\n CanvasPageManager.prototype.getPagesGridPatternElement = function (primitive) {\r\n if (this.pagesGridPatternElement === undefined)\r\n this.pagesGridPatternElement = this.createPrimitiveElement(primitive, this.backgroundContainer);\r\n return this.pagesGridPatternElement;\r\n };\r\n CanvasPageManager.prototype.updatePagesGridElements = function () {\r\n var _this = this;\r\n var pageAbsSize = this.getAbsoluteSize(this.pageSize);\r\n var rectPrimitive = new RectaglePrimitive_1.RectanglePrimitive(\"0\", \"0\", \"100%\", \"100%\", null, \"grid-page\", this.pagesGridClipId, function (element) {\r\n element.style.setProperty(\"fill\", Utils_1.RenderUtils.getUrlPathById(_this.pagesGridPatternId));\r\n element.style.setProperty(\"display\", _this.simpleView ? \"none\" : \"\");\r\n });\r\n this.getPagesGridRectElement(rectPrimitive);\r\n if (!this.simpleView) {\r\n var modelSize = this.modelSize.clone().multiply(this.actualZoom, this.actualZoom);\r\n var pageGridPathCommands = [\r\n new PathPrimitive_1.PathPrimitiveMoveToCommand((pageAbsSize.width - GRID_PAGES_LINEWIDTH / 2).toString(), \"0\"),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand((pageAbsSize.width - GRID_PAGES_LINEWIDTH / 2).toString(), (pageAbsSize.height - GRID_PAGES_LINEWIDTH / 2).toString()),\r\n new PathPrimitive_1.PathPrimitiveLineToCommand(\"0\", (pageAbsSize.height - GRID_PAGES_LINEWIDTH / 2).toString())\r\n ];\r\n var pagesGridPatternPrimitive = new PatternPrimitive_1.PatternPrimitive(this.pagesGridPatternId, [\r\n new PathPrimitive_1.PathPrimitive(pageGridPathCommands, null, \"pages-grid-line\")\r\n ], 0, 0, pageAbsSize.width.toString(), pageAbsSize.height.toString());\r\n this.changePrimitiveElement(pagesGridPatternPrimitive, this.getPagesGridPatternElement(pagesGridPatternPrimitive));\r\n var pagesGridClipPathPrimitive = new ClipPathPrimitive_1.ClipPathPrimitive(this.pagesGridClipId, [\r\n new RectaglePrimitive_1.RectanglePrimitive(0, 0, (unit_converter_1.UnitConverter.twipsToPixelsF(modelSize.width) - GRID_PAGES_LINEWIDTH * 2).toString(), (unit_converter_1.UnitConverter.twipsToPixelsF(modelSize.height) - GRID_PAGES_LINEWIDTH * 2).toString())\r\n ]);\r\n this.changePrimitiveElement(pagesGridClipPathPrimitive, this.getPagesGridClipPathElement(pagesGridClipPathPrimitive));\r\n }\r\n };\r\n CanvasPageManager.prototype.notifyModelSizeChanged = function (size, offset) {\r\n this.modelSize = size.clone();\r\n this.redraw();\r\n };\r\n CanvasPageManager.prototype.notifyModelRectangleChanged = function (rectangle) { };\r\n CanvasPageManager.prototype.notifySnapPointPositionChanged = function (point) {\r\n this.snapPoint = point.clone().applyConverter(unit_converter_1.UnitConverter.twipsToPixelsF);\r\n this.redrawGrid();\r\n };\r\n CanvasPageManager.prototype.notifyPageColorChanged = function (color) {\r\n this.pageColor = color;\r\n this.redrawPage(this.pageColor);\r\n };\r\n CanvasPageManager.prototype.notifyModelChanged = function (changes) { };\r\n CanvasPageManager.prototype.notifyPageSizeChanged = function (pageSize, pageLandscape) {\r\n this.pageSize = pageLandscape ? new size_1.Size(pageSize.height, pageSize.width) : pageSize.clone();\r\n this.redraw();\r\n };\r\n CanvasPageManager.prototype.notifyActualZoomChanged = function (actualZoom) {\r\n this.actualZoom = actualZoom;\r\n this.redraw();\r\n };\r\n CanvasPageManager.prototype.notifyViewAdjusted = function (canvasViewOffset) {\r\n if (!this.canvasViewOffset.equals(canvasViewOffset)) {\r\n this.canvasViewOffset = canvasViewOffset;\r\n if (this.simpleView)\r\n this.redraw();\r\n }\r\n };\r\n CanvasPageManager.prototype.notifyViewChanged = function (simpleView) {\r\n this.simpleView = simpleView;\r\n this.redraw();\r\n };\r\n CanvasPageManager.prototype.notifyGridChanged = function (showGrid, gridSize) {\r\n this.gridVisible = showGrid;\r\n this.gridSize = gridSize;\r\n this.redraw();\r\n };\r\n return CanvasPageManager;\r\n}(CanvasManagerBase_1.CanvasManagerBase));\r\nexports.CanvasPageManager = CanvasPageManager;\r\n\n\n/***/ }),\n/* 342 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PatternPrimitive = void 0;\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar Primitive_1 = __webpack_require__(24);\r\nvar PatternPrimitive = /** @class */ (function (_super) {\r\n __extends(PatternPrimitive, _super);\r\n function PatternPrimitive(id, children, x, y, width, height, style) {\r\n var _this = _super.call(this, style) || this;\r\n _this.id = id;\r\n _this.x = x;\r\n _this.y = y;\r\n _this.width = width;\r\n _this.height = height;\r\n _this.children = children;\r\n return _this;\r\n }\r\n PatternPrimitive.prototype.createMainElement = function () {\r\n var element = document.createElementNS(RenderHelper_1.svgNS, \"pattern\");\r\n element.setAttribute(\"patternUnits\", \"userSpaceOnUse\");\r\n element.setAttribute(\"id\", this.id);\r\n return element;\r\n };\r\n PatternPrimitive.prototype.applyElementProperties = function (element, measurer) {\r\n this.setUnitAttribute(element, \"x\", this.x);\r\n this.setUnitAttribute(element, \"y\", this.y);\r\n this.setUnitAttribute(element, \"width\", this.width);\r\n this.setUnitAttribute(element, \"height\", this.height);\r\n this.setPositionCorrectionAttribute(element);\r\n _super.prototype.applyElementProperties.call(this, element, measurer);\r\n };\r\n return PatternPrimitive;\r\n}(Primitive_1.SvgPrimitive));\r\nexports.PatternPrimitive = PatternPrimitive;\r\n\n\n/***/ }),\n/* 343 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CanvasViewManager = exports.CROP_OFFSET = exports.CANVAS_SCROLL_PADDING = exports.CANVAS_MIN_PADDING = void 0;\r\nvar CanvasManagerBase_1 = __webpack_require__(41);\r\nvar Settings_1 = __webpack_require__(27);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar offsets_1 = __webpack_require__(87);\r\nvar size_1 = __webpack_require__(2);\r\nvar point_1 = __webpack_require__(1);\r\nvar GroupPrimitive_1 = __webpack_require__(38);\r\nvar ClipPathPrimitive_1 = __webpack_require__(53);\r\nvar RectaglePrimitive_1 = __webpack_require__(21);\r\nvar Utils_2 = __webpack_require__(18);\r\nvar ShadowFilterPrimitive_1 = __webpack_require__(344);\r\nvar Style_1 = __webpack_require__(30);\r\nvar dom_1 = __webpack_require__(26);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nexports.CANVAS_MIN_PADDING = 8;\r\nexports.CANVAS_SCROLL_PADDING = 18;\r\nexports.CROP_OFFSET = 40;\r\nvar DRAG_SCROLL_CSSCLASS = \"dxdi-drag-scroll\";\r\nvar DRAG_ITEM_CSSCLASS = \"dxdi-drag-item\";\r\nvar CanvasViewManager = /** @class */ (function (_super) {\r\n __extends(CanvasViewManager, _super);\r\n function CanvasViewManager(scrollView, svgElement, modelSize, fixedZoomLevel, autoZoom, simpleView, rectangle, dom) {\r\n var _this = _super.call(this, fixedZoomLevel, dom) || this;\r\n _this.svgElement = svgElement;\r\n _this.paddings = new offsets_1.Offsets(0, 0, 0, 0);\r\n _this.scroll = new point_1.Point(0, 0);\r\n _this.crop = offsets_1.Offsets.empty();\r\n _this.lockAutoZoom = false;\r\n _this.autoScrollLocker = 0;\r\n _this.pageClipPathId = Utils_2.RenderUtils.generateSvgElementId(\"page-clip\");\r\n _this.pageShadowId = Utils_2.RenderUtils.generateSvgElementId(\"page-shadow\");\r\n _this.onViewChanged = new Utils_1.EventDispatcher();\r\n scrollView.onScroll.add(_this);\r\n modelSize = modelSize.clone().applyConverter(unit_converter_1.UnitConverter.twipsToPixelsF);\r\n _this.scrollView = scrollView;\r\n _this.modelSize = modelSize;\r\n _this.simpleView = simpleView;\r\n _this.fixedZoomLevel = fixedZoomLevel;\r\n _this.autoZoom = autoZoom;\r\n _this.crop = _this.rectangleToCrop(rectangle, modelSize);\r\n _this.updateElements(modelSize.clone().multiply(fixedZoomLevel, fixedZoomLevel), point_1.Point.zero(), simpleView); // TODO: remove?\r\n _this.getOrCreateElement(\"shadow\", new ShadowFilterPrimitive_1.ShadowFilterPrimitive(_this.pageShadowId), _this.svgElement);\r\n _this.containerSize = scrollView.getSize();\r\n return _this;\r\n }\r\n CanvasViewManager.prototype.adjust = function (resetPaddings) {\r\n var offset;\r\n if (!resetPaddings) {\r\n resetPaddings = { vertical: false, horizontal: false };\r\n offset = offsets_1.Offsets.empty();\r\n }\r\n this.containerSize = this.scrollView.getSize();\r\n this.adjustCore(this.modelSize, this.fixedZoomLevel, this.autoZoom, this.simpleView, this.crop, resetPaddings, this.containerSize, offset);\r\n this.tryNormalizePaddings();\r\n };\r\n CanvasViewManager.prototype.notifyModelSizeChanged = function (size, offset) {\r\n size = size.clone().applyConverter(unit_converter_1.UnitConverter.twipsToPixelsF);\r\n var resetPaddings = { horizontal: !offset, vertical: !offset };\r\n this.adjustCore(size, this.fixedZoomLevel, this.autoZoom, this.simpleView, this.crop, resetPaddings, this.containerSize, offset && offset.clone().applyConverter(unit_converter_1.UnitConverter.twipsToPixelsF));\r\n this.modelSize = size;\r\n };\r\n CanvasViewManager.prototype.notifyModelRectangleChanged = function (rectangle) {\r\n var crop = this.rectangleToCrop(rectangle, this.modelSize);\r\n if (!this.crop || !this.crop.equals(crop)) {\r\n if (this.simpleView)\r\n this.adjustCore(this.modelSize, this.fixedZoomLevel, this.autoZoom, this.simpleView, crop, { horizontal: false, vertical: false }, this.containerSize, offsets_1.Offsets.empty());\r\n this.crop = crop;\r\n }\r\n };\r\n CanvasViewManager.prototype.notifySnapPointPositionChanged = function (point) { };\r\n CanvasViewManager.prototype.notifyZoomChanged = function (fixedZoomLevel, autoZoom) {\r\n this.adjustCore(this.modelSize, fixedZoomLevel, autoZoom, this.simpleView, this.crop, {\r\n horizontal: false,\r\n vertical: false\r\n }, this.containerSize);\r\n this.fixedZoomLevel = fixedZoomLevel;\r\n this.autoZoom = autoZoom;\r\n };\r\n CanvasViewManager.prototype.notifyViewChanged = function (simpleView) {\r\n this.adjustCore(this.modelSize, this.fixedZoomLevel, this.autoZoom, simpleView, this.crop, { vertical: true, horizontal: true }, this.containerSize);\r\n this.simpleView = simpleView;\r\n };\r\n CanvasViewManager.prototype.notifyGridChanged = function (showGrid, gridSize) { };\r\n CanvasViewManager.prototype.notifyDragStart = function (itemKeys) {\r\n this.lockAutoZoom = true;\r\n dom_1.DomUtils.addClassName(this.svgElement, DRAG_ITEM_CSSCLASS);\r\n };\r\n CanvasViewManager.prototype.notifyDragEnd = function (itemKeys) {\r\n this.lockAutoZoom = false;\r\n dom_1.DomUtils.removeClassName(this.svgElement, DRAG_ITEM_CSSCLASS);\r\n if (this.autoZoom)\r\n this.adjust({ horizontal: true, vertical: true });\r\n };\r\n CanvasViewManager.prototype.notifyDragScrollStart = function () {\r\n dom_1.DomUtils.addClassName(this.svgElement, DRAG_SCROLL_CSSCLASS);\r\n };\r\n CanvasViewManager.prototype.notifyDragScrollEnd = function () {\r\n dom_1.DomUtils.removeClassName(this.svgElement, DRAG_SCROLL_CSSCLASS);\r\n };\r\n CanvasViewManager.prototype.notifyScrollChanged = function (getScroll) {\r\n this.scroll = getScroll();\r\n };\r\n CanvasViewManager.prototype.checkFitToCanvas = function (containerSize) {\r\n containerSize = containerSize || this.containerSize;\r\n var scrollSize = this.scrollView.getScrollBarWidth();\r\n containerSize = containerSize.clone().offset(-exports.CANVAS_MIN_PADDING * 2, -exports.CANVAS_MIN_PADDING * 2).nonNegativeSize();\r\n var modelAbsSize = this.getActualModelSizeWithoutZoom(this.modelSize, this.simpleView, this.crop).clone().multiply(this.actualZoom, this.actualZoom);\r\n var scrollbars = this.checkScrollBars(containerSize, scrollSize, modelAbsSize, offsets_1.Offsets.empty());\r\n containerSize = containerSize.clone().offset(scrollbars.vertical ? -scrollSize : 0, scrollbars.horizontal ? -scrollSize : 0).nonNegativeSize();\r\n return {\r\n vertical: containerSize.height >= modelAbsSize.height,\r\n horizontal: containerSize.width >= modelAbsSize.width\r\n };\r\n };\r\n CanvasViewManager.prototype.rectangleToCrop = function (rectangle, modelSize) {\r\n var absRectangle = rectangle.clone().applyConverter(unit_converter_1.UnitConverter.twipsToPixelsF);\r\n return new offsets_1.Offsets(this.correctCrop(absRectangle.x), this.correctCrop(modelSize.width - absRectangle.right), this.correctCrop(absRectangle.y), this.correctCrop(modelSize.height - absRectangle.bottom));\r\n };\r\n CanvasViewManager.prototype.correctCrop = function (newVal) {\r\n return exports.CROP_OFFSET * Math.floor(newVal / exports.CROP_OFFSET);\r\n };\r\n CanvasViewManager.prototype.setActualZoom = function (actualZoom) {\r\n if (this.actualZoom !== actualZoom) {\r\n this.actualZoom = actualZoom;\r\n this.onViewChanged.raise1(function (l) { return l.notifyActualZoomChanged(actualZoom); });\r\n }\r\n };\r\n CanvasViewManager.prototype.getActualAutoZoomLevel = function (autoZoom) {\r\n if (autoZoom === Settings_1.AutoZoomMode.Disabled)\r\n return this.actualZoom;\r\n var containerSize = this.containerSize;\r\n var scrollbarWidth = this.scrollView.getScrollBarWidth();\r\n var actualModelSizeWithoutZoom = this.getActualModelSizeWithoutZoom(this.modelSize, this.simpleView, this.crop);\r\n return this.getActualAutoZoom(containerSize, scrollbarWidth, actualModelSizeWithoutZoom, autoZoom);\r\n };\r\n CanvasViewManager.prototype.getActualZoom = function (containerSize, scrollbarWidth, actualModelSizeWithoutZoom, fixedZoom, autoZoom) {\r\n return this.lockAutoZoom ? this.actualZoom :\r\n autoZoom === Settings_1.AutoZoomMode.Disabled ? fixedZoom : this.getActualAutoZoom(containerSize, scrollbarWidth, actualModelSizeWithoutZoom, autoZoom);\r\n };\r\n CanvasViewManager.prototype.getActualAutoZoom = function (containerSize, scrollbarWidth, actualModelSizeWithoutZoom, autoZoom) {\r\n if (autoZoom === Settings_1.AutoZoomMode.FitContent)\r\n return Math.min((containerSize.width - exports.CANVAS_MIN_PADDING * 2) / actualModelSizeWithoutZoom.width, (containerSize.height - exports.CANVAS_MIN_PADDING * 2) / actualModelSizeWithoutZoom.height, 1);\r\n return Math.min((containerSize.width - exports.CANVAS_MIN_PADDING * 2 - scrollbarWidth) / actualModelSizeWithoutZoom.width, 1);\r\n };\r\n CanvasViewManager.prototype.tryNormalizePaddings = function () {\r\n var scrollbarWidth = this.scrollView.getScrollBarWidth();\r\n var actualModelSize = this.getActualModelSizeWithoutZoom(this.modelSize, this.simpleView, this.crop).clone().multiply(this.actualZoom, this.actualZoom);\r\n var translate = new point_1.Point(this.paddings.left, this.paddings.top);\r\n var currentTail = new size_1.Size(this.paddings.right, this.paddings.bottom);\r\n var tail = this.getTailSpace(translate, this.scroll, actualModelSize, this.containerSize, scrollbarWidth);\r\n if (!tail.equals(currentTail))\r\n this.applyChanges(new offsets_1.Offsets(translate.x, tail.width, translate.y, tail.height), actualModelSize, this.simpleView, this.crop.clone().multiply(this.actualZoom));\r\n };\r\n CanvasViewManager.prototype.scrollBy = function (offset) {\r\n var _a, _b, _c;\r\n var scroll = this.scroll;\r\n var containerSize = this.containerSize;\r\n var scrollbarWidth = this.scrollView.getScrollBarWidth();\r\n var actualModelSize = this.getActualModelSizeWithoutZoom(this.modelSize, this.simpleView, this.crop).clone().multiply(this.actualZoom, this.actualZoom);\r\n var scrollbars = this.checkScrollBars(containerSize, scrollbarWidth, actualModelSize, this.paddings);\r\n var translate = new point_1.Point(this.paddings.left, this.paddings.top);\r\n var tail = new size_1.Size(this.paddings.right, this.paddings.bottom);\r\n (_a = this.changeScrollByOffset(translate, scroll, tail, actualModelSize, offset, containerSize, scrollbars), scroll = _a.scroll, offset = _a.offset);\r\n (_b = this.changeTranslateByOffset(translate, tail, offset, scrollbars), translate = _b.translate, offset = _b.offset);\r\n (_c = this.cropHiddenHead(translate, scroll), translate = _c.translate, scroll = _c.scroll);\r\n tail = this.getTailSpace(translate, scroll, actualModelSize, containerSize, scrollbarWidth);\r\n this.applyChanges(new offsets_1.Offsets(translate.x, tail.width, translate.y, tail.height), actualModelSize, this.simpleView, this.crop.clone().multiply(this.actualZoom), scroll);\r\n return offset;\r\n };\r\n CanvasViewManager.prototype.changeScrollByOffset = function (curTranslate, curScroll, curTail, modelSize, curOffset, containerSize, scrollbars) {\r\n var scroll = curScroll.clone();\r\n var offset = curOffset.clone();\r\n if (curOffset.x && scrollbars.horizontal)\r\n scroll.x -= (offset.x = -this.getScrollDeltaByOffset(curOffset.x, curScroll.x, curTranslate.x + modelSize.width + curTail.width, containerSize.width, scrollbars.vertical));\r\n if (curOffset.y && scrollbars.vertical)\r\n scroll.y -= (offset.y = -this.getScrollDeltaByOffset(curOffset.y, curScroll.y, curTranslate.y + modelSize.height + curTail.height, containerSize.height, scrollbars.horizontal));\r\n return { scroll: scroll, offset: offset };\r\n };\r\n CanvasViewManager.prototype.changeTranslateByOffset = function (curTranslate, curTail, curOffset, scrollbars) {\r\n var translate = curTranslate.clone();\r\n var offset = curOffset.clone();\r\n if (curOffset.x && !scrollbars.horizontal)\r\n translate.x += (offset.x = this.getTranslateDeltaByOffset(curOffset.x, translate.x, curTail.width));\r\n if (curOffset.y && !scrollbars.vertical)\r\n translate.y += (offset.y = this.getTranslateDeltaByOffset(curOffset.y, translate.y, curTail.height));\r\n return { translate: translate, offset: offset };\r\n };\r\n CanvasViewManager.prototype.getScrollDeltaByOffset = function (offset, scroll, commonWidth, containerWidth, hasScrollbar) {\r\n if (offset > 0)\r\n return -Math.min(scroll, offset);\r\n var maxScroll = commonWidth - (containerWidth - (hasScrollbar ? this.scrollView.getScrollBarWidth() : 0));\r\n return Math.min(maxScroll - scroll, -offset);\r\n };\r\n CanvasViewManager.prototype.getTranslateDeltaByOffset = function (offset, headPadding, tailPadding) {\r\n if (!offset)\r\n return 0;\r\n return offset < 0 ?\r\n -Math.min(headPadding - exports.CANVAS_MIN_PADDING, -offset) :\r\n Math.min(tailPadding - exports.CANVAS_MIN_PADDING, offset);\r\n };\r\n CanvasViewManager.prototype.getActualModelSizeWithoutZoom = function (originModelSize, simpleView, crop) {\r\n return simpleView && crop ? originModelSize.clone().offset(-crop.horizontal, -crop.vertical).nonNegativeSize() : originModelSize;\r\n };\r\n CanvasViewManager.prototype.setScrollTo = function (modelPoint, offsetPoint) {\r\n var containerSize = this.containerSize;\r\n var shift = this.getVisibileAreaAbsShift();\r\n var absPoint = modelPoint\r\n .clone().applyConverter(unit_converter_1.UnitConverter.twipsToPixelsF)\r\n .clone().multiply(this.actualZoom, this.actualZoom)\r\n .clone().offset(shift.x, shift.y);\r\n var scroll = this.scroll;\r\n if (!offsetPoint) {\r\n if (absPoint.x < 0)\r\n scroll.x += absPoint.x - exports.CANVAS_MIN_PADDING;\r\n if (absPoint.y < 0)\r\n scroll.y += absPoint.y - exports.CANVAS_MIN_PADDING;\r\n if (absPoint.x > containerSize.width)\r\n scroll.x += (absPoint.x - containerSize.width + exports.CANVAS_MIN_PADDING);\r\n if (absPoint.y > containerSize.height)\r\n scroll.y += (absPoint.y - containerSize.height + exports.CANVAS_MIN_PADDING);\r\n }\r\n else {\r\n scroll.x += absPoint.x - offsetPoint.x;\r\n scroll.y += absPoint.y - offsetPoint.y;\r\n }\r\n this.setScroll(scroll);\r\n };\r\n CanvasViewManager.prototype.scrollIntoView = function (rectangle) {\r\n rectangle = rectangle\r\n .clone()\r\n .applyConverter(unit_converter_1.UnitConverter.twipsToPixelsF)\r\n .multiply(this.actualZoom, this.actualZoom)\r\n .moveRectangle(this.paddings.left, this.paddings.top);\r\n var scroll = this.scroll;\r\n var container = this.containerSize;\r\n if (rectangle.x >= scroll.x && rectangle.y >= scroll.y && rectangle.right <= scroll.x + container.width && rectangle.bottom <= scroll.y + container.height)\r\n return;\r\n var newScroll = scroll.clone();\r\n if (rectangle.x < scroll.x)\r\n newScroll.x = rectangle.x - exports.CANVAS_SCROLL_PADDING;\r\n else if (rectangle.right > scroll.x + container.width) // [..|..x|x.]\r\n newScroll.x = Math.min(rectangle.x - exports.CANVAS_SCROLL_PADDING, rectangle.right + exports.CANVAS_SCROLL_PADDING - container.width);\r\n if (rectangle.y < scroll.y)\r\n newScroll.y = rectangle.y - exports.CANVAS_SCROLL_PADDING;\r\n else\r\n newScroll.y = Math.min(rectangle.y - exports.CANVAS_SCROLL_PADDING, rectangle.bottom + exports.CANVAS_SCROLL_PADDING - container.height);\r\n this.setScroll(newScroll);\r\n };\r\n CanvasViewManager.prototype.setScroll = function (pt) {\r\n var _this = this;\r\n var modelAbsSize = this.modelSize.clone().multiply(this.actualZoom, this.actualZoom);\r\n pt.x = Math.max(0, Math.min(pt.x, modelAbsSize.width + this.paddings.horizontal - this.containerSize.width));\r\n pt.y = Math.max(0, Math.min(pt.y, modelAbsSize.height + this.paddings.vertical - this.containerSize.height));\r\n this.dom.changeByFunc(null, function () {\r\n _this.scrollView.setScroll(pt.x, pt.y);\r\n });\r\n this.scroll = pt.clone();\r\n };\r\n CanvasViewManager.prototype.updateElements = function (modelAbsSize, translate, simpleView) {\r\n this.updatePageElement(modelAbsSize, translate, simpleView);\r\n this.updateCanvasElement(translate);\r\n };\r\n CanvasViewManager.prototype.updateCanvasElement = function (translate) {\r\n this.canvasElement = this.getOrCreateElement(\"dxdi-main\", new GroupPrimitive_1.GroupPrimitive([], \"dxdi-main\", null, null, function (el) {\r\n el.setAttribute(\"transform\", \"translate(\" + Math.round(translate.x) + \", \" + Math.round(translate.y) + \")\");\r\n }), this.svgElement);\r\n };\r\n CanvasViewManager.prototype.updatePageElement = function (modelAbsSize, translate, simpleView) {\r\n if (!simpleView)\r\n this.getOrCreateElement(\"pageShadowRect\", new RectaglePrimitive_1.RectanglePrimitive(translate.x.toString(), translate.y.toString(), modelAbsSize.width.toString(), modelAbsSize.height.toString(), new Style_1.EmptyStyle({\r\n \"filter\": Utils_2.RenderUtils.getUrlPathById(this.pageShadowId)\r\n }), \"dxdi-page-shadow\"), this.svgElement);\r\n this.pageElement = this.getOrCreateElement(\"page\", new GroupPrimitive_1.GroupPrimitive([], \"dxdi-page\", null, !simpleView ? this.pageClipPathId : \"\", function (el) {\r\n el.setAttribute(\"transform\", \"translate(\" + (simpleView ? 0 : Math.round(translate.x)) + \", \" + (simpleView ? 0 : Math.round(translate.y)) + \")\");\r\n }), this.svgElement);\r\n this.getOrCreateElement(\"pageClip\", this.createPageClipPathPrimitive(modelAbsSize), this.svgElement);\r\n };\r\n CanvasViewManager.prototype.createPageClipPathPrimitive = function (modelAbsSize) {\r\n var children = [];\r\n children.push(new RectaglePrimitive_1.RectanglePrimitive(0, 0, modelAbsSize.width.toString(), modelAbsSize.height.toString()));\r\n return new ClipPathPrimitive_1.ClipPathPrimitive(this.pageClipPathId, children);\r\n };\r\n CanvasViewManager.prototype.adjustCore = function (newModelSize, fixedZoomLevel, autoZoom, simpleView, crop, resetPaddings, containerSize, offset) {\r\n var actualModelSizeWithoutZoom = this.getActualModelSizeWithoutZoom(newModelSize, simpleView, crop);\r\n if (!this.lockAutoZoom && (autoZoom || !offset || !this.modelSize)) {\r\n var scrollbarWidth = this.scrollView.getScrollBarWidth();\r\n var actualZoom = this.getActualZoom(containerSize, scrollbarWidth, actualModelSizeWithoutZoom, fixedZoomLevel, autoZoom);\r\n if (autoZoom && actualZoom === this.actualZoom && (!resetPaddings.horizontal || !resetPaddings.vertical))\r\n this.resizeView(actualModelSizeWithoutZoom, actualZoom, containerSize, simpleView, crop, offset || offsets_1.Offsets.empty());\r\n else {\r\n this.resetView(actualModelSizeWithoutZoom, actualZoom, containerSize, simpleView, crop, resetPaddings);\r\n this.setActualZoom(actualZoom);\r\n }\r\n }\r\n else\r\n this.resizeView(actualModelSizeWithoutZoom, this.actualZoom, containerSize, simpleView, crop, offset);\r\n };\r\n CanvasViewManager.prototype.resetView = function (actualModelSizeWithoutZoom, actualZoom, containerSize, simpleView, cropWithoutZoom, toReset) {\r\n var actualModelSize = actualModelSizeWithoutZoom.clone().multiply(actualZoom, actualZoom);\r\n var paddings = offsets_1.Offsets.fromNumber(exports.CANVAS_MIN_PADDING);\r\n toReset = toReset || { horizontal: true, vertical: true };\r\n if (!toReset.horizontal && this.paddings) {\r\n paddings.left = this.paddings.left;\r\n paddings.right = this.paddings.right;\r\n }\r\n if (!toReset.vertical && this.paddings) {\r\n paddings.top = this.paddings.top;\r\n paddings.bottom = this.paddings.bottom;\r\n }\r\n var scrollbars = this.checkScrollBars(containerSize, this.scrollView.getScrollBarWidth(), actualModelSize, paddings);\r\n var scrollBarWidth = this.scrollView.getScrollBarWidth();\r\n var scroll = (toReset.horizontal || toReset.vertical) ? this.scroll : undefined;\r\n if (toReset.horizontal) {\r\n var paddingsH = Math.max((containerSize.width - (scrollbars.vertical ? scrollBarWidth : 0) - actualModelSize.width) / 2, exports.CANVAS_MIN_PADDING);\r\n paddings.left = paddingsH;\r\n paddings.right = paddingsH;\r\n scroll.x = 0;\r\n }\r\n if (toReset.vertical) {\r\n var paddingsV = Math.max((containerSize.height - (scrollbars.horizontal ? scrollBarWidth : 0) - actualModelSize.height) / 2, exports.CANVAS_MIN_PADDING);\r\n paddings.top = paddingsV;\r\n paddings.bottom = paddingsV;\r\n scroll.y = 0;\r\n }\r\n this.applyChanges(paddings, actualModelSize, simpleView, cropWithoutZoom.clone().multiply(actualZoom), scroll);\r\n };\r\n CanvasViewManager.prototype.resizeView = function (actualModelSizeWithoutZoom, actualZoom, containerSize, simpleView, cropWithoutZoom, offset) {\r\n var _a, _b;\r\n var oldZoom = this.actualZoom;\r\n var oldCrop = this.simpleView && this.crop ? this.crop.clone().multiply(oldZoom) : offsets_1.Offsets.empty();\r\n var actualModelSize = actualModelSizeWithoutZoom.clone().multiply(actualZoom, actualZoom);\r\n offset = offset.clone().multiply(actualZoom);\r\n var newCrop = simpleView && cropWithoutZoom ? cropWithoutZoom.clone().multiply(actualZoom) : offsets_1.Offsets.empty();\r\n var translate = new point_1.Point(this.paddings.left, this.paddings.top);\r\n var scroll = this.scroll;\r\n (_a = this.applyOffset(translate, scroll, oldCrop, newCrop, offset), translate = _a.translate, scroll = _a.scroll);\r\n (_b = this.cropHiddenHead(translate, scroll), translate = _b.translate, scroll = _b.scroll);\r\n var tailSpace = this.getTailSpace(translate, scroll, actualModelSize, containerSize, this.scrollView.getScrollBarWidth());\r\n var newPaddings = new offsets_1.Offsets(translate.x, tailSpace.width, translate.y, tailSpace.height);\r\n this.applyChanges(newPaddings, actualModelSize, simpleView, newCrop, scroll);\r\n };\r\n CanvasViewManager.prototype.applyChanges = function (paddings, actualModelSize, simpleView, crop, scroll) {\r\n var _this = this;\r\n var translate = new point_1.Point(paddings.left, paddings.top);\r\n if (simpleView && crop)\r\n translate = translate.clone().offset(-crop.left, -crop.top);\r\n this.updateElements(actualModelSize, translate, simpleView);\r\n this.setSvgSize(actualModelSize.width + paddings.horizontal, actualModelSize.height + paddings.vertical);\r\n this.onViewChanged.raise1(function (l) { return l.notifyViewAdjusted(new point_1.Point(translate.x, translate.y)); });\r\n if (scroll) {\r\n this.lockAutoScroll();\r\n scroll && this.dom.changeByFunc(this.scrollView, function (s) {\r\n s.setScroll(scroll.x, scroll.y);\r\n _this.unlockAutoScroll();\r\n });\r\n this.scroll = scroll;\r\n }\r\n this.paddings = paddings;\r\n };\r\n CanvasViewManager.prototype.isAutoScrollLocked = function () {\r\n return this.autoScrollLocker !== 0;\r\n };\r\n CanvasViewManager.prototype.lockAutoScroll = function () {\r\n this.autoScrollLocker++;\r\n };\r\n CanvasViewManager.prototype.unlockAutoScroll = function () {\r\n this.autoScrollLocker--;\r\n };\r\n CanvasViewManager.prototype.applyOffset = function (curTranslate, curScroll, oldCrop, newCrop, modelOffset) {\r\n var translate = curTranslate.clone();\r\n var scroll = curScroll.clone();\r\n var offset = this.getActualOffset(oldCrop, newCrop, modelOffset);\r\n if (offset.left) {\r\n translate.x = Math.max(exports.CANVAS_MIN_PADDING, translate.x - offset.left);\r\n scroll.x += offset.left - (curTranslate.x - translate.x);\r\n }\r\n if (offset.top) {\r\n translate.y = Math.max(exports.CANVAS_MIN_PADDING, translate.y - offset.top);\r\n scroll.y += offset.top - (curTranslate.y - translate.y);\r\n }\r\n return { translate: translate, scroll: scroll };\r\n };\r\n CanvasViewManager.prototype.cropHiddenHead = function (curTranslate, curScroll) {\r\n var scroll = curScroll.clone();\r\n var translate = curTranslate.clone();\r\n if (scroll.x && translate.x > exports.CANVAS_MIN_PADDING) {\r\n var delta = translate.x - Math.max(exports.CANVAS_MIN_PADDING, translate.x - scroll.x);\r\n translate.x -= delta;\r\n scroll.x -= delta;\r\n }\r\n if (scroll.y && translate.y > exports.CANVAS_MIN_PADDING) {\r\n var delta = translate.y - Math.max(exports.CANVAS_MIN_PADDING, translate.y - scroll.y);\r\n translate.y -= delta;\r\n scroll.y -= delta;\r\n }\r\n return { translate: translate, scroll: scroll };\r\n };\r\n CanvasViewManager.prototype.getTailSpace = function (curTranslate, curScroll, newModelAbsSize, containerSize, scrollbarWidth) {\r\n var translate = curTranslate.clone();\r\n var scroll = curScroll.clone();\r\n var right = Math.max(containerSize.width + scroll.x - (translate.x + newModelAbsSize.width), exports.CANVAS_MIN_PADDING);\r\n var bottom = Math.max(containerSize.height + scroll.y - (translate.y + newModelAbsSize.height), exports.CANVAS_MIN_PADDING);\r\n var scrollbars = this.checkScrollBars(containerSize, scrollbarWidth, newModelAbsSize, new offsets_1.Offsets(translate.x, right, translate.y, bottom));\r\n if (scrollbars.vertical)\r\n right = Math.max(exports.CANVAS_MIN_PADDING, right - scrollbarWidth);\r\n if (scrollbars.horizontal)\r\n bottom = Math.max(exports.CANVAS_MIN_PADDING, bottom - scrollbarWidth);\r\n return new size_1.Size(right, bottom);\r\n };\r\n CanvasViewManager.prototype.getActualOffset = function (oldCrop, newCrop, docOffset) {\r\n return new offsets_1.Offsets(-(newCrop.left - oldCrop.left) + docOffset.left, -(newCrop.right - oldCrop.right) + docOffset.right, -(newCrop.top - oldCrop.top) + docOffset.top, -(newCrop.bottom - oldCrop.bottom) + docOffset.bottom);\r\n };\r\n CanvasViewManager.prototype.checkScrollBars = function (containerSize, scrollBarWidth, modelAbsSize, paddings) {\r\n var hasHorizontalScroll = containerSize.width < modelAbsSize.width + paddings.horizontal;\r\n var hasVerticalScroll = containerSize.height < modelAbsSize.height + paddings.vertical;\r\n if (hasHorizontalScroll && !hasVerticalScroll)\r\n hasVerticalScroll = containerSize.height - scrollBarWidth < modelAbsSize.height + paddings.vertical;\r\n if (hasVerticalScroll && !hasHorizontalScroll)\r\n hasHorizontalScroll = containerSize.width - scrollBarWidth < modelAbsSize.width + paddings.horizontal;\r\n return { horizontal: hasHorizontalScroll, vertical: hasVerticalScroll };\r\n };\r\n CanvasViewManager.prototype.setSvgSize = function (width, height) {\r\n if (width !== this.lastWidth || height !== this.lastHeight) {\r\n this.dom.changeByFunc(this.svgElement, function (e) { return Utils_2.RenderUtils.updateSvgElementSize(e, width, height); });\r\n this.lastWidth = width;\r\n this.lastHeight = height;\r\n }\r\n };\r\n CanvasViewManager.prototype.getVisibileAreaAbsShift = function (excludeScroll) {\r\n var scroll = this.scroll;\r\n var paddings = this.paddings.clone();\r\n var simpleView = this.simpleView;\r\n var cropLeft = simpleView && this.crop ? this.crop.left * this.actualZoom : 0;\r\n var cropTop = simpleView && this.crop ? this.crop.top * this.actualZoom : 0;\r\n return new point_1.Point(paddings.left - cropLeft - (excludeScroll ? 0 : scroll.x), paddings.top - cropTop - (excludeScroll ? 0 : scroll.y));\r\n };\r\n /* ILayoutPointResolver */\r\n CanvasViewManager.prototype.getModelPoint = function (absolutePoint, checkScrollArea) {\r\n var shift = this.getVisibileAreaAbsShift();\r\n var modelPoint = absolutePoint\r\n .clone().offset(-shift.x, -shift.y)\r\n .multiply(1 / this.actualZoom, 1 / this.actualZoom);\r\n if (checkScrollArea) {\r\n var scrollSize = this.containerSize;\r\n if (absolutePoint.x < 0 || absolutePoint.y < 0 || absolutePoint.x > scrollSize.width || absolutePoint.y > scrollSize.height)\r\n return null;\r\n if (modelPoint.x < 0 || modelPoint.y < 0)\r\n return null;\r\n if (modelPoint.x > this.modelSize.width || modelPoint.y > this.modelSize.height)\r\n return null;\r\n }\r\n return modelPoint.clone().applyConverter(unit_converter_1.UnitConverter.pixelsToTwips);\r\n };\r\n CanvasViewManager.prototype.getAbsolutePoint = function (modelPoint, excludeScroll, checkScrollArea) {\r\n var shift = this.getVisibileAreaAbsShift(excludeScroll);\r\n var absPoint = modelPoint\r\n .clone().multiply(this.actualZoom, this.actualZoom)\r\n .clone().applyConverter(unit_converter_1.UnitConverter.twipsToPixelsF)\r\n .clone().offset(shift.x, shift.y);\r\n if (checkScrollArea) {\r\n if (absPoint.x < 0 || absPoint.y < 0)\r\n return null;\r\n var scrollSize = this.containerSize;\r\n if (absPoint.x > scrollSize.width || absPoint.y > scrollSize.height)\r\n return null;\r\n }\r\n return absPoint;\r\n };\r\n return CanvasViewManager;\r\n}(CanvasManagerBase_1.CanvasManagerBase));\r\nexports.CanvasViewManager = CanvasViewManager;\r\n\n\n/***/ }),\n/* 344 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ShadowFilterPrimitive = void 0;\r\nvar FilterPrimitive_1 = __webpack_require__(109);\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar ShadowFilterPrimitive = /** @class */ (function (_super) {\r\n __extends(ShadowFilterPrimitive, _super);\r\n function ShadowFilterPrimitive() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ShadowFilterPrimitive.prototype.createChildElements = function (parent) {\r\n var feGaussianBlur = document.createElementNS(RenderHelper_1.svgNS, \"feGaussianBlur\");\r\n feGaussianBlur.setAttribute(\"in\", \"SourceGraphic\");\r\n feGaussianBlur.setAttribute(\"stdDeviation\", \"4.6\");\r\n parent.appendChild(feGaussianBlur);\r\n var feOffset = document.createElementNS(RenderHelper_1.svgNS, \"feOffset\");\r\n feOffset.setAttribute(\"dx\", \"0\");\r\n feOffset.setAttribute(\"dy\", \"0\");\r\n parent.appendChild(feOffset);\r\n var feMerge = document.createElementNS(RenderHelper_1.svgNS, \"feMerge\");\r\n parent.appendChild(feMerge);\r\n var feMergeNode1 = document.createElementNS(RenderHelper_1.svgNS, \"feMergeNode\");\r\n feMerge.appendChild(feMergeNode1);\r\n var feMergeNode2 = document.createElementNS(RenderHelper_1.svgNS, \"feMergeNode\");\r\n feMergeNode2.setAttribute(\"in\", \"SourceGraphic\");\r\n feMerge.appendChild(feMergeNode2);\r\n };\r\n return ShadowFilterPrimitive;\r\n}(FilterPrimitive_1.FilterPrimitive));\r\nexports.ShadowFilterPrimitive = ShadowFilterPrimitive;\r\n\n\n/***/ }),\n/* 345 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AutoScrollController = void 0;\r\nvar evt_1 = __webpack_require__(80);\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar dom_1 = __webpack_require__(26);\r\nvar size_1 = __webpack_require__(2);\r\nvar SCROLL_EDGE = 40;\r\nvar SCROLL_RATIO = 5;\r\nvar SCROLL_MAXOFFSET = 5;\r\nvar SCROLL_DELAY = 50;\r\nvar AutoScrollController = /** @class */ (function () {\r\n function AutoScrollController(scroll, svgElement, view, dom) {\r\n this.scroll = scroll;\r\n this.svgElement = svgElement;\r\n this.view = view;\r\n this.dom = dom;\r\n this.leftButtonPressed = false;\r\n this.scrollDragging = false;\r\n this.scrollTimer = -1;\r\n this.scrollBarWidth = dom_1.DomUtils.getVerticalScrollBarWidth();\r\n }\r\n AutoScrollController.prototype.onMouseMove = function (evt, raiseMouseMoveFunc) {\r\n this.clearScrollTimer();\r\n if (!evt_1.EvtUtils.isLeftButtonPressed(evt))\r\n this.leftButtonPressed = false;\r\n if (this.canAutoScroll())\r\n this.changeScrollPosition(evt, raiseMouseMoveFunc, false);\r\n };\r\n AutoScrollController.prototype.onMouseDown = function (evt) {\r\n this.leftButtonPressed = !!evt_1.EvtUtils.isLeftButtonPressed(evt);\r\n };\r\n AutoScrollController.prototype.onMouseUp = function (evt) {\r\n this.clearScrollTimer();\r\n this.leftButtonPressed = false;\r\n };\r\n AutoScrollController.prototype.onMouseEnter = function (evt) {\r\n var _this = this;\r\n if (evt_1.EvtUtils.isLeftButtonPressed(evt))\r\n setTimeout(function () {\r\n _this.leftButtonPressed = true;\r\n }, 500);\r\n };\r\n AutoScrollController.prototype.onDragScrollStart = function () {\r\n this.scrollDragging = true;\r\n };\r\n AutoScrollController.prototype.onDragScrollEnd = function () {\r\n this.scrollDragging = false;\r\n };\r\n AutoScrollController.prototype.canAutoScroll = function () {\r\n return this.leftButtonPressed && !this.scrollDragging;\r\n };\r\n AutoScrollController.prototype.changeScrollPosition = function (evt, raiseMouseMoveFunc, raiseMouseMove) {\r\n var _this = this;\r\n var changed = false;\r\n if (!this.view.isAutoScrollLocked()) {\r\n var scrollContainer = this.scroll.getScrollContainer();\r\n var x_1 = evt.pageX - dom_1.DomUtils.getAbsolutePositionX(scrollContainer);\r\n var y_1 = evt.pageY - dom_1.DomUtils.getAbsolutePositionY(scrollContainer);\r\n var size = this.scroll.getSize();\r\n var scrollSize = new size_1.Size(parseFloat(this.svgElement.style.width), parseFloat(this.svgElement.style.height));\r\n var width_1 = size.width;\r\n if (size.width < scrollSize.width)\r\n width_1 -= this.scrollBarWidth;\r\n var height_1 = size.height;\r\n if (size.height < scrollSize.height)\r\n height_1 -= this.scrollBarWidth;\r\n if (x_1 <= SCROLL_EDGE) {\r\n this.dom.changeByFunc(null, function () {\r\n if (!_this.view.isAutoScrollLocked())\r\n _this.scroll.offsetScroll(-_this.getScrollingOffset(x_1), 0);\r\n });\r\n changed = true;\r\n }\r\n else if (width_1 - SCROLL_EDGE <= x_1) {\r\n this.dom.changeByFunc(null, function () {\r\n if (!_this.view.isAutoScrollLocked())\r\n _this.scroll.offsetScroll(_this.getScrollingOffset(width_1 - x_1), 0);\r\n });\r\n changed = true;\r\n }\r\n if (y_1 <= SCROLL_EDGE) {\r\n this.dom.changeByFunc(null, function () {\r\n if (!_this.view.isAutoScrollLocked())\r\n _this.scroll.offsetScroll(0, -_this.getScrollingOffset(y_1));\r\n });\r\n changed = true;\r\n }\r\n else if (height_1 - SCROLL_EDGE <= y_1) {\r\n this.dom.changeByFunc(null, function () {\r\n if (!_this.view.isAutoScrollLocked())\r\n _this.scroll.offsetScroll(0, _this.getScrollingOffset(height_1 - y_1));\r\n });\r\n changed = true;\r\n }\r\n }\r\n if (changed || this.view.isAutoScrollLocked())\r\n this.scrollTimer = window.setTimeout(function () { return _this.changeScrollPosition(evt, raiseMouseMoveFunc, changed); }, SCROLL_DELAY);\r\n if (raiseMouseMove)\r\n raiseMouseMoveFunc();\r\n };\r\n AutoScrollController.prototype.clearScrollTimer = function () {\r\n if (this.scrollTimer > -1) {\r\n window.clearTimeout(this.scrollTimer);\r\n this.scrollTimer = -1;\r\n }\r\n };\r\n AutoScrollController.prototype.getScrollingOffset = function (edgeOffset) {\r\n var offset = Math.pow((SCROLL_EDGE - edgeOffset) / SCROLL_RATIO, 2);\r\n return Math.round(Math.min(offset, SCROLL_MAXOFFSET));\r\n };\r\n AutoScrollController.createMainElement = function (parent) {\r\n var element = document.createElement(\"div\");\r\n element.setAttribute(\"class\", \"dxdi-control\");\r\n parent.appendChild(element);\r\n return element;\r\n };\r\n AutoScrollController.createSvgElement = function (parent, forExport) {\r\n if (forExport === void 0) { forExport = false; }\r\n var svgElement = document.createElementNS(RenderHelper_1.svgNS, \"svg\");\r\n svgElement.className.baseVal = \"dxdi-canvas\" + (forExport ? \" export\" : \"\");\r\n parent.appendChild(svgElement);\r\n return svgElement;\r\n };\r\n return AutoScrollController;\r\n}());\r\nexports.AutoScrollController = AutoScrollController;\r\n\n\n/***/ }),\n/* 346 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DocumentDataSource = exports.UpdateNodeKeyRelatedObjectsStackAction = exports.UpdateNodeKeyRelatedObjectsStackItem = void 0;\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar DataSource_1 = __webpack_require__(347);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar Data_1 = __webpack_require__(43);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar list_1 = __webpack_require__(82);\r\nvar UpdateNodeKeyRelatedObjectsStackItem = /** @class */ (function () {\r\n function UpdateNodeKeyRelatedObjectsStackItem(shape, nodeObj) {\r\n this.shape = shape;\r\n this.nodeObj = nodeObj;\r\n }\r\n return UpdateNodeKeyRelatedObjectsStackItem;\r\n}());\r\nexports.UpdateNodeKeyRelatedObjectsStackItem = UpdateNodeKeyRelatedObjectsStackItem;\r\nvar UpdateNodeKeyRelatedObjectsStackAction = /** @class */ (function () {\r\n function UpdateNodeKeyRelatedObjectsStackAction(kind, nodeObj) {\r\n this.kind = kind;\r\n this.nodeObj = nodeObj;\r\n }\r\n return UpdateNodeKeyRelatedObjectsStackAction;\r\n}());\r\nexports.UpdateNodeKeyRelatedObjectsStackAction = UpdateNodeKeyRelatedObjectsStackAction;\r\nvar DocumentDataSource = /** @class */ (function (_super) {\r\n __extends(DocumentDataSource, _super);\r\n function DocumentDataSource(changesListener, nodeDataSource, edgeDataSource, parameters, nodeDataImporter, edgeDataImporter) {\r\n var _this = _super.call(this, \"Document\", nodeDataSource, edgeDataSource, parameters, nodeDataImporter, edgeDataImporter) || this;\r\n _this.changesListener = changesListener;\r\n _this.nodeInsertingLockCount = 0;\r\n _this.updateNodeKeyRelatedObjectsCount = 0;\r\n _this.updateNodeKeyRelatedObjectsStack = [];\r\n _this.updateNodeKeyRelatedObjectsStackActions = [];\r\n return _this;\r\n }\r\n DocumentDataSource.prototype.updateItemsByModel = function (model) {\r\n var _this = this;\r\n this.beginChangesNotification();\r\n this.deleteNodes(model);\r\n this.deleteEdges(model);\r\n model.items.forEach(function (item) {\r\n if (item instanceof Shape_1.Shape)\r\n _this.updateNode(model, item);\r\n if (item instanceof Connector_1.Connector)\r\n _this.updateEdge(model, item);\r\n });\r\n this.endChangesNotification(false);\r\n };\r\n DocumentDataSource.prototype.isItemObjectModified = function (item, itemObj, importer) {\r\n var modified = (importer.setLocked && itemObj.locked !== item.locked) ||\r\n (importer.setZIndex && itemObj.zIndex !== item.zIndex) ||\r\n (importer.setCustomData && !Utils_1.ObjectUtils.compareObjects(itemObj.customData, item.customData));\r\n if (!modified && importer.setStyle) {\r\n var defaultStyle_1 = item.style.getDefaultInstance();\r\n item.style.forEach(function (key) {\r\n if (item.style[key] !== defaultStyle_1[key] && item.style[key] !== (itemObj.style && itemObj.style[key]))\r\n modified = true;\r\n });\r\n }\r\n if (!modified && importer.setStyleText) {\r\n var defaultTextStyle_1 = item.styleText.getDefaultInstance();\r\n item.styleText.forEach(function (key) {\r\n if (item.styleText[key] !== defaultTextStyle_1[key] && item.styleText[key] !== (itemObj.styleText && itemObj.styleText[key]))\r\n modified = true;\r\n });\r\n }\r\n return modified;\r\n };\r\n DocumentDataSource.prototype.setDataObjectKeyRelatedProperty = function (method, dataObj, key, allowAutoGeneratedProperty) {\r\n if (allowAutoGeneratedProperty || this.autoGeneratedDataKeys[key] === undefined)\r\n method(dataObj, key);\r\n };\r\n DocumentDataSource.prototype.updateItemObjectProperties = function (itemObj, item, importer) {\r\n if (importer.setCustomData) {\r\n itemObj.customData = Utils_1.ObjectUtils.cloneObject(item.customData);\r\n if (itemObj.dataObj && itemObj.customData !== undefined)\r\n importer.setCustomData(itemObj.dataObj, item.customData);\r\n }\r\n if (importer.setLocked) {\r\n itemObj.locked = item.locked;\r\n if (itemObj.dataObj && itemObj.locked !== undefined)\r\n importer.setLocked(itemObj.dataObj, item.locked);\r\n }\r\n if (importer.setStyle) {\r\n var styleObj = item.style.toObject();\r\n itemObj.style = styleObj;\r\n if (itemObj.dataObj && itemObj.style !== undefined)\r\n importer.setStyle(itemObj.dataObj, Data_1.Data.objectToCssText(styleObj));\r\n }\r\n if (importer.setStyleText) {\r\n var styleTextObj = item.styleText.toObject();\r\n itemObj.styleText = styleTextObj;\r\n if (itemObj.dataObj && itemObj.styleText !== undefined)\r\n importer.setStyleText(itemObj.dataObj, Data_1.Data.objectToCssText(styleTextObj));\r\n }\r\n if (importer.setZIndex) {\r\n itemObj.zIndex = item.zIndex;\r\n if (itemObj.dataObj && itemObj.zIndex !== undefined)\r\n importer.setZIndex(itemObj.dataObj, item.zIndex);\r\n }\r\n };\r\n DocumentDataSource.prototype.deleteItems = function (dataSourceItems, findItem, getParentArray, callback) {\r\n var items = dataSourceItems.slice();\r\n items.forEach(function (item) {\r\n if (item.key !== undefined && item.key !== null && !findItem(item.key)) {\r\n var parentArray = getParentArray(item);\r\n var index = parentArray.indexOf(item.dataObj);\r\n parentArray.splice(index, 1);\r\n callback(item, index > -1);\r\n }\r\n });\r\n };\r\n // Nodes\r\n DocumentDataSource.prototype.updateNode = function (model, shape) {\r\n var _this = this;\r\n var nodeObj = this.findNode(shape.dataKey);\r\n if (!nodeObj) {\r\n var dataObj = {};\r\n nodeObj = this.addNodeInternal(dataObj, shape.description.key, shape.text);\r\n this.nodeDataSource.push(nodeObj.dataObj);\r\n this.setDataObjectKeyRelatedProperty(this.nodeDataImporter.setKey, dataObj, nodeObj.key, this.addInternalKeyOnInsert);\r\n this.updateNodeObjectProperties(shape, nodeObj, model.units);\r\n this.updateNodeObjectConnectedProperties(shape, nodeObj);\r\n this.updateNodeObjectKey(shape, nodeObj, nodeObj.dataObj);\r\n this.beginChangesNotification();\r\n this.beginNodeInserting();\r\n this.changesListener.notifyNodeInserted.call(this.changesListener, nodeObj.dataObj, function (data) {\r\n _this.updateNodeObjectKey(shape, nodeObj, data);\r\n _this.endNodeInserting();\r\n _this.endChangesNotification(false);\r\n }, function (error) {\r\n _this.endNodeInserting();\r\n _this.endChangesNotification(false);\r\n });\r\n }\r\n else if (this.isNodeObjectModified(shape, nodeObj, model.units)) {\r\n this.updateNodeObjectProperties(shape, nodeObj, model.units);\r\n this.updateNodeObjectConnectedProperties(shape, nodeObj);\r\n this.beginChangesNotification();\r\n this.changesListener.notifyNodeUpdated.call(this.changesListener, this.nodeDataImporter.getKey(nodeObj.dataObj || nodeObj.key), nodeObj.dataObj, function (key, data) {\r\n _this.endChangesNotification(false);\r\n }, function (error) {\r\n _this.endChangesNotification(false);\r\n });\r\n }\r\n else\r\n this.updateNodeObjectConnectedProperties(shape, nodeObj, this.changesListener);\r\n };\r\n DocumentDataSource.prototype.isNodeObjectModified = function (shape, nodeObj, units) {\r\n return this.isItemObjectModified(shape, nodeObj, this.nodeDataImporter) ||\r\n (nodeObj.type !== shape.description.key && !(nodeObj.type === undefined && shape.description.key === ShapeTypes_1.ShapeTypes.Rectangle)) ||\r\n !this.compareStrings(nodeObj.text, shape.text) ||\r\n (this.nodeDataImporter.setImage && nodeObj.image !== shape.image.actualUrl) ||\r\n (this.nodeDataImporter.setLeft && nodeObj.left !== ModelUtils_1.ModelUtils.getlUnitValue(units, shape.position.x)) ||\r\n (this.nodeDataImporter.setTop && nodeObj.top !== ModelUtils_1.ModelUtils.getlUnitValue(units, shape.position.y)) ||\r\n (this.nodeDataImporter.setWidth && nodeObj.width !== ModelUtils_1.ModelUtils.getlUnitValue(units, shape.size.width)) ||\r\n (this.nodeDataImporter.setHeight && nodeObj.height !== ModelUtils_1.ModelUtils.getlUnitValue(units, shape.size.height));\r\n };\r\n DocumentDataSource.prototype.updateNodeObjectProperties = function (shape, nodeObj, units) {\r\n this.updateItemObjectProperties(nodeObj, shape, this.nodeDataImporter);\r\n if (this.nodeDataImporter.setType) {\r\n nodeObj.type = shape.description.key;\r\n this.nodeDataImporter.setType(nodeObj.dataObj, shape.description.key);\r\n }\r\n if (this.nodeDataImporter.setText) {\r\n nodeObj.text = shape.text;\r\n this.nodeDataImporter.setText(nodeObj.dataObj, shape.text);\r\n }\r\n if (this.nodeDataImporter.setImage) {\r\n nodeObj.image = shape.image.actualUrl;\r\n this.nodeDataImporter.setImage(nodeObj.dataObj, shape.image.actualUrl);\r\n }\r\n if (this.nodeDataImporter.setLeft) {\r\n var left = ModelUtils_1.ModelUtils.getlUnitValue(units, shape.position.x);\r\n nodeObj.left = left;\r\n this.nodeDataImporter.setLeft(nodeObj.dataObj, left);\r\n }\r\n if (this.nodeDataImporter.setTop) {\r\n var top_1 = ModelUtils_1.ModelUtils.getlUnitValue(units, shape.position.y);\r\n nodeObj.top = top_1;\r\n this.nodeDataImporter.setTop(nodeObj.dataObj, top_1);\r\n }\r\n if (this.nodeDataImporter.setWidth) {\r\n var width = ModelUtils_1.ModelUtils.getlUnitValue(units, shape.size.width);\r\n nodeObj.width = width;\r\n this.nodeDataImporter.setWidth(nodeObj.dataObj, width);\r\n }\r\n if (this.nodeDataImporter.setHeight) {\r\n var height = ModelUtils_1.ModelUtils.getlUnitValue(units, shape.size.height);\r\n nodeObj.height = height;\r\n this.nodeDataImporter.setHeight(nodeObj.dataObj, height);\r\n }\r\n };\r\n DocumentDataSource.prototype.updateNodeObjectConnectedProperties = function (shape, nodeObj, changesListener) {\r\n if (this.useNodeParentId && this.nodeDataImporter.setParentKey !== undefined) {\r\n var parentKey = this.getParentItemKey(shape);\r\n var parentItem = this.findNode(parentKey);\r\n this.updateNodeObjectParentKey(nodeObj, parentItem, changesListener);\r\n }\r\n if (this.useNodeContainerId && this.nodeDataImporter.setContainerKey !== undefined) {\r\n var containerKey = this.getContainerShapeKey(shape);\r\n var containerItem = this.findNode(containerKey);\r\n this.updateNodeObjectContainerKey(nodeObj, containerItem, changesListener);\r\n }\r\n if (this.useNodeItems && this.nodeDataImporter.setItems !== undefined) {\r\n var parentKey = this.getParentItemKey(shape);\r\n var parentItem = this.findNode(parentKey);\r\n this.updateNodeObjectItems(nodeObj, parentItem, changesListener);\r\n }\r\n if (this.useNodeChildren && this.nodeDataImporter.setChildren !== undefined) {\r\n var containerKey = this.getContainerShapeKey(shape);\r\n var containerItem = this.findNode(containerKey);\r\n this.updateNodeObjectChildren(nodeObj, containerItem, changesListener);\r\n }\r\n };\r\n DocumentDataSource.prototype.IsNodeParentIdMode = function () {\r\n return (this.useNodeParentId && this.nodeDataImporter.setParentKey !== undefined);\r\n };\r\n DocumentDataSource.prototype.IsNodeItemsMode = function () {\r\n return (this.useNodeItems && this.nodeDataImporter.setItems !== undefined);\r\n };\r\n DocumentDataSource.prototype.updateNodeObjectParentKey = function (nodeObj, parentNodeObj, changesListener) {\r\n var parentKey = this.nodeDataImporter.getParentKey(nodeObj.dataObj);\r\n var newParentKey = parentNodeObj ? this.nodeDataImporter.getKey(parentNodeObj.dataObj) : undefined;\r\n if (parentKey !== newParentKey && !(this.isRootParentKey(parentKey) && this.isRootParentKey(newParentKey))) {\r\n this.setDataObjectKeyRelatedProperty(this.nodeDataImporter.setParentKey, nodeObj.dataObj, newParentKey, false);\r\n if (changesListener)\r\n if (this.isInUpdateNodeKeyRelatedObjects())\r\n this.addToUpdateNodeKeyRelatedObjectsStackAction(\"shape\", nodeObj);\r\n else\r\n this.updateNodeObjectContainerOrParentKeyInternal(nodeObj, changesListener);\r\n }\r\n };\r\n DocumentDataSource.prototype.updateNodeObjectParentKeyInternal = function (nodeObj, changesListener) {\r\n var _this = this;\r\n this.beginChangesNotification();\r\n changesListener.notifyNodeUpdated.call(changesListener, this.nodeDataImporter.getKey(nodeObj.dataObj) || nodeObj.key, nodeObj.dataObj, function (key, data) {\r\n _this.endChangesNotification(false);\r\n }, function (error) {\r\n _this.endChangesNotification(false);\r\n });\r\n };\r\n DocumentDataSource.prototype.updateNodeObjectContainerKey = function (nodeObj, containerNodeObj, changesListener) {\r\n var containerKey = this.nodeDataImporter.getContainerKey(nodeObj.dataObj);\r\n var newContainerKey = containerNodeObj ? this.nodeDataImporter.getKey(containerNodeObj.dataObj) : undefined;\r\n if (containerKey !== newContainerKey && !(this.isRootParentKey(containerKey) && this.isRootParentKey(newContainerKey))) {\r\n this.setDataObjectKeyRelatedProperty(this.nodeDataImporter.setContainerKey, nodeObj.dataObj, newContainerKey, false);\r\n if (changesListener)\r\n if (this.isInUpdateNodeKeyRelatedObjects())\r\n this.addToUpdateNodeKeyRelatedObjectsStackAction(\"shape\", nodeObj);\r\n else\r\n this.updateNodeObjectContainerOrParentKeyInternal(nodeObj, changesListener);\r\n }\r\n };\r\n DocumentDataSource.prototype.updateNodeObjectContainerOrParentKeyInternal = function (nodeObj, changesListener) {\r\n var _this = this;\r\n this.beginChangesNotification();\r\n changesListener.notifyNodeUpdated.call(changesListener, this.nodeDataImporter.getKey(nodeObj.dataObj) || nodeObj.key, nodeObj.dataObj, function (key, data) {\r\n _this.endChangesNotification(false);\r\n }, function (error) {\r\n _this.endChangesNotification(false);\r\n });\r\n };\r\n DocumentDataSource.prototype.isRootParentKey = function (key) {\r\n return key === undefined || key === null || !this.findNode(key);\r\n };\r\n DocumentDataSource.prototype.updateNodeObjectItems = function (nodeObj, parentNodeObj, changesListener) {\r\n var _this = this;\r\n if (parentNodeObj && nodeObj.parentDataObj !== parentNodeObj.dataObj ||\r\n !parentNodeObj && nodeObj.parentDataObj)\r\n if (!parentNodeObj || !this.checkNodeCyrcleItems(nodeObj.dataObj, parentNodeObj.dataObj)) {\r\n var oldItemsArray = nodeObj.parentDataObj ? this.nodeDataImporter.getItems(nodeObj.parentDataObj) : this.nodeDataSource;\r\n var index = oldItemsArray.indexOf(nodeObj.dataObj);\r\n oldItemsArray.splice(index, 1);\r\n var itemsArray = parentNodeObj ? this.nodeDataImporter.getItems(parentNodeObj.dataObj) : this.nodeDataSource;\r\n if (!itemsArray)\r\n this.nodeDataImporter.setItems(parentNodeObj.dataObj, [nodeObj.dataObj]);\r\n else\r\n itemsArray.push(nodeObj.dataObj);\r\n nodeObj.parentDataObj = parentNodeObj && parentNodeObj.dataObj;\r\n if (changesListener) {\r\n this.beginChangesNotification();\r\n changesListener.notifyNodeUpdated.call(changesListener, this.nodeDataImporter.getKey(nodeObj.dataObj) || nodeObj.key, nodeObj.dataObj, function (key, data) {\r\n _this.endChangesNotification(false);\r\n }, function (error) {\r\n _this.endChangesNotification(false);\r\n });\r\n }\r\n }\r\n };\r\n DocumentDataSource.prototype.updateNodeObjectChildren = function (nodeObj, containerNodeObj, changesListener) {\r\n var _this = this;\r\n if (containerNodeObj && nodeObj.containerDataObj !== containerNodeObj.dataObj ||\r\n !containerNodeObj && nodeObj.containerDataObj) {\r\n var oldChildrenArray = nodeObj.containerDataObj ? this.nodeDataImporter.getChildren(nodeObj.containerDataObj) : this.nodeDataSource;\r\n var index = oldChildrenArray.indexOf(nodeObj.dataObj);\r\n oldChildrenArray.splice(index, 1);\r\n var childrenArray = containerNodeObj ? this.nodeDataImporter.getChildren(containerNodeObj.dataObj) : this.nodeDataSource;\r\n if (!childrenArray)\r\n this.nodeDataImporter.setChildren(containerNodeObj.dataObj, [nodeObj.dataObj]);\r\n else\r\n childrenArray.push(nodeObj.dataObj);\r\n nodeObj.containerDataObj = containerNodeObj && containerNodeObj.dataObj;\r\n if (changesListener) {\r\n this.beginChangesNotification();\r\n changesListener.notifyNodeUpdated.call(changesListener, this.nodeDataImporter.getKey(nodeObj.dataObj) || nodeObj.key, nodeObj.dataObj, function (key, data) {\r\n _this.endChangesNotification(false);\r\n }, function (error) {\r\n _this.endChangesNotification(false);\r\n });\r\n }\r\n }\r\n };\r\n DocumentDataSource.prototype.checkNodeCyrcleItems = function (nodeDataObj, parentDataObjCandidate) {\r\n var _this = this;\r\n var result = false;\r\n var items = this.nodeDataImporter.getItems(nodeDataObj);\r\n if (items)\r\n items.forEach(function (childDataObj) {\r\n result = result || childDataObj === parentDataObjCandidate ||\r\n _this.checkNodeCyrcleItems(childDataObj, parentDataObjCandidate);\r\n });\r\n return result;\r\n };\r\n DocumentDataSource.prototype.updateNodeObjectKey = function (shape, nodeObj, dataObj) {\r\n var key = this.nodeDataImporter.getKey(dataObj);\r\n var dataKeyChanged = false;\r\n if (key !== undefined && key !== null && key !== nodeObj.key) {\r\n delete this.autoGeneratedDataKeys[nodeObj.key];\r\n nodeObj.key = key;\r\n dataKeyChanged = true;\r\n }\r\n shape.dataKey = nodeObj.key;\r\n if (nodeObj.dataObj !== dataObj) {\r\n var parentArray = this.getNodeArray(nodeObj);\r\n var index = parentArray.indexOf(nodeObj.dataObj);\r\n parentArray.splice(index, 1, dataObj);\r\n nodeObj.dataObj = dataObj;\r\n }\r\n if (dataKeyChanged)\r\n this.updateNodeKeyRelatedObjects(shape, nodeObj);\r\n };\r\n DocumentDataSource.prototype.updateNodeKeyRelatedObjects = function (shape, nodeObj) {\r\n var _this = this;\r\n if (this.isInNodeInserting()) {\r\n this.addToUpdateNodeKeyRelatedObjectsStack(shape, nodeObj);\r\n return;\r\n }\r\n if (this.useNodeParentId && this.nodeDataImporter.setParentKey !== undefined) {\r\n var childItems = this.getChildItems(shape);\r\n childItems.forEach(function (item) {\r\n var childNodeObj = _this.findNode(item.dataKey);\r\n if (childNodeObj)\r\n _this.updateNodeObjectParentKey(childNodeObj, nodeObj, _this.changesListener);\r\n });\r\n }\r\n if (this.useNodeContainerId && this.nodeDataImporter.setContainerKey !== undefined)\r\n shape.children.forEach(function (item) {\r\n var childNodeObj = item instanceof Shape_1.Shape ? _this.findNode(item.dataKey) : undefined;\r\n if (childNodeObj)\r\n _this.updateNodeObjectContainerKey(childNodeObj, nodeObj, _this.changesListener);\r\n });\r\n if (this.useEdgesArray())\r\n shape.attachedConnectors.forEach(function (connector) {\r\n var edgeObj = _this.findEdge(connector.dataKey);\r\n if (edgeObj) {\r\n if (shape === connector.beginItem)\r\n _this.updateEdgeObjectFromProperty(nodeObj, edgeObj, _this.changesListener);\r\n if (shape === connector.endItem)\r\n _this.updateEdgeObjectToProperty(nodeObj, edgeObj, _this.changesListener);\r\n }\r\n });\r\n };\r\n DocumentDataSource.prototype.deleteNodes = function (model) {\r\n var _this = this;\r\n this.deleteItems(this.nodes, function (key) { return model.findShapeByDataKey(key); }, function (item) { return _this.getNodeArray(item); }, function (item, dataModified) {\r\n var key = (item.dataObj && _this.nodeDataImporter.getKey(item.dataObj)) || item.key;\r\n var nodeObj = _this.findNode(key);\r\n if (nodeObj)\r\n _this.nodes.splice(_this.nodes.indexOf(nodeObj), 1);\r\n if (dataModified) {\r\n _this.beginChangesNotification();\r\n _this.changesListener.notifyNodeRemoved.call(_this.changesListener, key, item.dataObj, function (key, data) {\r\n _this.endChangesNotification(false);\r\n }, function (error) {\r\n _this.endChangesNotification(false);\r\n });\r\n }\r\n });\r\n };\r\n DocumentDataSource.prototype.getParentItem = function (shape) {\r\n for (var i = 0; i < shape.attachedConnectors.length; i++)\r\n if (shape.attachedConnectors[i].endItem === shape)\r\n return shape.attachedConnectors[i].beginItem;\r\n };\r\n DocumentDataSource.prototype.getParentItemKey = function (shape) {\r\n var parent = this.getParentItem(shape);\r\n return parent && parent.dataKey;\r\n };\r\n DocumentDataSource.prototype.getNodeArray = function (item) {\r\n var items;\r\n if (this.useNodeItems && item.parentDataObj)\r\n items = this.nodeDataImporter.getItems(item.parentDataObj);\r\n else if (item.containerDataObj)\r\n items = this.nodeDataImporter.getChildren(item.containerDataObj);\r\n return items || this.nodeDataSource;\r\n };\r\n DocumentDataSource.prototype.getContainerShapeKey = function (shape) {\r\n return shape.container && shape.container.dataKey;\r\n };\r\n DocumentDataSource.prototype.getChildItems = function (shape) {\r\n var items = [];\r\n for (var i = 0; i < shape.attachedConnectors.length; i++)\r\n if (shape.attachedConnectors[i].beginItem === shape)\r\n if (shape.attachedConnectors[i].endItem)\r\n items.push(shape.attachedConnectors[i].endItem);\r\n return items;\r\n };\r\n // Edges\r\n DocumentDataSource.prototype.updateEdge = function (model, connector) {\r\n var _this = this;\r\n var beginDataKey = connector.beginItem ? connector.beginItem.dataKey : undefined;\r\n var endDataKey = connector.endItem ? connector.endItem.dataKey : undefined;\r\n var edgeObj = this.findEdge(connector.dataKey);\r\n if (!edgeObj) {\r\n var dataObj = this.useEdgesArray() && this.canUpdateEdgeDataSource ? {} : undefined;\r\n edgeObj = this.addEdgeInternal(dataObj, beginDataKey, endDataKey);\r\n if (dataObj) {\r\n this.setDataObjectKeyRelatedProperty(this.edgeDataImporter.setKey, dataObj, edgeObj.key, this.addInternalKeyOnInsert);\r\n this.edgeDataSource.push(edgeObj.dataObj);\r\n }\r\n this.updateEdgeObjectProperties(connector, edgeObj, model.units);\r\n this.updateEdgeObjectKey(connector, edgeObj, edgeObj.dataObj);\r\n if (dataObj) {\r\n this.beginChangesNotification();\r\n this.beginNodeInserting();\r\n this.changesListener.notifyEdgeInserted.call(this.changesListener, edgeObj.dataObj, function (data) {\r\n _this.updateEdgeObjectKey(connector, edgeObj, data);\r\n _this.endNodeInserting();\r\n _this.endChangesNotification(false);\r\n }, function (error) {\r\n _this.endNodeInserting();\r\n _this.endChangesNotification(false);\r\n });\r\n }\r\n }\r\n else if (this.isEdgeObjectModified(connector, edgeObj, model.units)) {\r\n this.updateEdgeObjectProperties(connector, edgeObj, model.units);\r\n if (edgeObj.dataObj) {\r\n this.beginChangesNotification();\r\n this.changesListener.notifyEdgeUpdated.call(this.changesListener, this.edgeDataImporter.getKey(edgeObj.dataObj) || edgeObj.key, edgeObj.dataObj, function (key, data) {\r\n _this.endChangesNotification(false);\r\n }, function (error) {\r\n _this.endChangesNotification(false);\r\n });\r\n }\r\n }\r\n };\r\n DocumentDataSource.prototype.isEdgeObjectModified = function (connector, edgeObj, units) {\r\n return this.isItemObjectModified(connector, edgeObj, this.edgeDataImporter) ||\r\n (edgeObj.from !== null ? edgeObj.from : undefined) !== (connector.beginItem ? connector.beginItem.dataKey : undefined) ||\r\n (edgeObj.to === null ? undefined : edgeObj.to) !== (connector.endItem ? connector.endItem.dataKey : undefined) ||\r\n (this.edgeDataImporter.setFromPointIndex && edgeObj.fromPointIndex !== connector.beginConnectionPointIndex) ||\r\n (this.edgeDataImporter.setToPointIndex && edgeObj.toPointIndex !== connector.endConnectionPointIndex) ||\r\n (this.edgeDataImporter.setPoints && (!edgeObj.points ||\r\n !list_1.ListUtils.equalsByReference(edgeObj.points.map(function (ptObj) { return ptObj.x; }), connector.points.map(function (pt) { return ModelUtils_1.ModelUtils.getlUnitValue(units, pt.x); })) ||\r\n !list_1.ListUtils.equalsByReference(edgeObj.points.map(function (ptObj) { return ptObj.y; }), connector.points.map(function (pt) { return ModelUtils_1.ModelUtils.getlUnitValue(units, pt.y); })))) ||\r\n (this.edgeDataImporter.setText && !this.compareTexts(edgeObj, connector)) ||\r\n (this.edgeDataImporter.setLineOption && edgeObj.lineOption !== connector.properties.lineOption) ||\r\n (this.edgeDataImporter.setStartLineEnding && edgeObj.startLineEnding !== connector.properties.startLineEnding) ||\r\n (this.edgeDataImporter.setEndLineEnding && edgeObj.endLineEnding !== connector.properties.endLineEnding);\r\n };\r\n DocumentDataSource.prototype.updateEdgeObjectFromProperty = function (fromObj, edgeObj, changesListener) {\r\n edgeObj.from = fromObj && fromObj.key;\r\n if (edgeObj.dataObj) {\r\n var fromKey = fromObj && fromObj.dataObj && this.nodeDataImporter.getKey(fromObj.dataObj);\r\n this.setDataObjectKeyRelatedProperty(this.edgeDataImporter.setFrom, edgeObj.dataObj, fromKey, false);\r\n if (changesListener)\r\n if (this.isInUpdateNodeKeyRelatedObjects())\r\n this.addToUpdateNodeKeyRelatedObjectsStackAction(\"edge\", edgeObj);\r\n else\r\n this.updateEdgeObjectFromOrToPropertyInternal(edgeObj, changesListener);\r\n }\r\n };\r\n DocumentDataSource.prototype.updateEdgeObjectFromOrToPropertyInternal = function (edgeObj, changesListener) {\r\n var _this = this;\r\n this.beginChangesNotification();\r\n changesListener.notifyEdgeUpdated.call(changesListener, this.nodeDataImporter.getKey(edgeObj.dataObj) || edgeObj.key, edgeObj.dataObj, function (key, data) {\r\n _this.endChangesNotification(false);\r\n }, function (error) {\r\n _this.endChangesNotification(false);\r\n });\r\n };\r\n DocumentDataSource.prototype.updateEdgeObjectToProperty = function (toObj, edgeObj, changesListener) {\r\n edgeObj.to = toObj && toObj.key;\r\n if (edgeObj.dataObj) {\r\n var toKey = toObj && toObj.dataObj && this.nodeDataImporter.getKey(toObj.dataObj);\r\n this.setDataObjectKeyRelatedProperty(this.edgeDataImporter.setTo, edgeObj.dataObj, toKey, false);\r\n if (changesListener)\r\n if (this.isInUpdateNodeKeyRelatedObjects())\r\n this.addToUpdateNodeKeyRelatedObjectsStackAction(\"edge\", edgeObj);\r\n else\r\n this.updateEdgeObjectFromOrToPropertyInternal(edgeObj, changesListener);\r\n }\r\n };\r\n DocumentDataSource.prototype.updateEdgeObjectProperties = function (connector, edgeObj, units) {\r\n this.updateItemObjectProperties(edgeObj, connector, this.edgeDataImporter);\r\n if (this.edgeDataImporter.setFrom) {\r\n var fromObj = this.findNode(connector.beginItem && connector.beginItem.dataKey);\r\n this.updateEdgeObjectFromProperty(fromObj, edgeObj);\r\n }\r\n if (this.edgeDataImporter.setTo) {\r\n var toObj = this.findNode(connector.endItem && connector.endItem.dataKey);\r\n this.updateEdgeObjectToProperty(toObj, edgeObj);\r\n }\r\n if (this.edgeDataImporter.setFromPointIndex) {\r\n edgeObj.fromPointIndex = connector.beginConnectionPointIndex;\r\n if (edgeObj.dataObj)\r\n this.edgeDataImporter.setFromPointIndex(edgeObj.dataObj, connector.beginConnectionPointIndex);\r\n }\r\n if (this.edgeDataImporter.setToPointIndex) {\r\n edgeObj.toPointIndex = connector.endConnectionPointIndex;\r\n if (edgeObj.dataObj)\r\n this.edgeDataImporter.setToPointIndex(edgeObj.dataObj, connector.endConnectionPointIndex);\r\n }\r\n if (this.edgeDataImporter.setPoints) {\r\n var points = connector.points.map(function (pt) {\r\n return {\r\n x: ModelUtils_1.ModelUtils.getlUnitValue(units, pt.x),\r\n y: ModelUtils_1.ModelUtils.getlUnitValue(units, pt.y)\r\n };\r\n });\r\n edgeObj.points = points;\r\n if (edgeObj.dataObj)\r\n this.edgeDataImporter.setPoints(edgeObj.dataObj, points);\r\n }\r\n if (this.edgeDataImporter.setText) {\r\n var text = void 0;\r\n if (connector.getTextCount() === 1 && connector.getText())\r\n text = connector.getText();\r\n var texts_1 = {};\r\n connector.texts.forEach(function (text) {\r\n texts_1[text.position] = text.value;\r\n });\r\n edgeObj.texts = texts_1;\r\n if (edgeObj.dataObj) {\r\n var textVal = \"\";\r\n if (text)\r\n textVal = text;\r\n else if (texts_1 && Object.keys(texts_1).length)\r\n textVal = texts_1;\r\n this.edgeDataImporter.setText(edgeObj.dataObj, textVal);\r\n }\r\n }\r\n if (this.edgeDataImporter.setLineOption) {\r\n edgeObj.lineOption = connector.properties.lineOption;\r\n if (edgeObj.dataObj)\r\n this.edgeDataImporter.setLineOption(edgeObj.dataObj, connector.properties.lineOption);\r\n }\r\n if (this.edgeDataImporter.setStartLineEnding) {\r\n edgeObj.startLineEnding = connector.properties.startLineEnding;\r\n if (edgeObj.dataObj)\r\n this.edgeDataImporter.setStartLineEnding(edgeObj.dataObj, connector.properties.startLineEnding);\r\n }\r\n if (this.edgeDataImporter.setEndLineEnding) {\r\n edgeObj.endLineEnding = connector.properties.endLineEnding;\r\n if (edgeObj.dataObj)\r\n this.edgeDataImporter.setEndLineEnding(edgeObj.dataObj, connector.properties.endLineEnding);\r\n }\r\n };\r\n DocumentDataSource.prototype.updateEdgeObjectKey = function (connector, edgeObj, dataObj) {\r\n var key = dataObj && this.edgeDataImporter.getKey(dataObj);\r\n if (key !== undefined && key !== null && key !== edgeObj.key) {\r\n delete this.autoGeneratedDataKeys[edgeObj.key];\r\n edgeObj.key = key;\r\n }\r\n connector.dataKey = edgeObj.key;\r\n if (edgeObj.dataObj !== dataObj) {\r\n var parentArray = this.edgeDataSource;\r\n var index = parentArray.indexOf(edgeObj.dataObj);\r\n parentArray.splice(index, 1, dataObj);\r\n edgeObj.dataObj = dataObj;\r\n }\r\n };\r\n DocumentDataSource.prototype.deleteEdges = function (model) {\r\n var _this = this;\r\n this.deleteItems(this.edges, function (key) { return model.findConnectorByDataKey(key); }, function (item) { return _this.edgeDataSource; }, function (item, dataModified) {\r\n var key = (item.dataObj && _this.edgeDataImporter.getKey(item.dataObj)) || item.key;\r\n var edgeObj = _this.findEdge(key);\r\n if (edgeObj)\r\n _this.edges.splice(_this.edges.indexOf(edgeObj), 1);\r\n if (dataModified) {\r\n _this.beginChangesNotification();\r\n _this.changesListener.notifyEdgeRemoved.call(_this.changesListener, key, item.dataObj, function (key, data) {\r\n _this.endChangesNotification(false);\r\n }, function (error) {\r\n _this.endChangesNotification(false);\r\n });\r\n }\r\n });\r\n };\r\n DocumentDataSource.prototype.beginNodeInserting = function () {\r\n this.nodeInsertingLockCount++;\r\n };\r\n DocumentDataSource.prototype.endNodeInserting = function () {\r\n this.nodeInsertingLockCount--;\r\n if (this.nodeInsertingLockCount === 0)\r\n this.raiseNodeInsertingStack();\r\n };\r\n DocumentDataSource.prototype.isInNodeInserting = function () {\r\n return this.nodeInsertingLockCount > 0;\r\n };\r\n DocumentDataSource.prototype.addToUpdateNodeKeyRelatedObjectsStack = function (shape, nodeObj) {\r\n var item = new UpdateNodeKeyRelatedObjectsStackItem(shape, nodeObj);\r\n this.updateNodeKeyRelatedObjectsStack.push(item);\r\n };\r\n DocumentDataSource.prototype.raiseNodeInsertingStack = function () {\r\n this.beginUpdateNodeKeyRelatedObjects();\r\n while (this.updateNodeKeyRelatedObjectsStack.length > 0) {\r\n var item = this.updateNodeKeyRelatedObjectsStack[0];\r\n this.updateNodeKeyRelatedObjects(item.shape, item.nodeObj);\r\n this.updateNodeKeyRelatedObjectsStack.splice(0, 1);\r\n }\r\n this.endUpdateNodeKeyRelatedObjects();\r\n };\r\n DocumentDataSource.prototype.beginUpdateNodeKeyRelatedObjects = function () {\r\n this.updateNodeKeyRelatedObjectsCount++;\r\n };\r\n DocumentDataSource.prototype.endUpdateNodeKeyRelatedObjects = function () {\r\n this.updateNodeKeyRelatedObjectsCount--;\r\n if (this.updateNodeKeyRelatedObjectsCount === 0)\r\n this.raiseUpdateNodeKeyRelatedObjectsStack();\r\n };\r\n DocumentDataSource.prototype.isInUpdateNodeKeyRelatedObjects = function () {\r\n return this.updateNodeKeyRelatedObjectsCount > 0;\r\n };\r\n DocumentDataSource.prototype.addToUpdateNodeKeyRelatedObjectsStackAction = function (kind, nodeObj) {\r\n var item = new UpdateNodeKeyRelatedObjectsStackAction(kind, nodeObj);\r\n for (var i = 0; i < this.updateNodeKeyRelatedObjectsStackActions.length; i++)\r\n if ((this.updateNodeKeyRelatedObjectsStackActions[i].kind === kind) && (this.updateNodeKeyRelatedObjectsStackActions[i].nodeObj === nodeObj))\r\n return;\r\n this.updateNodeKeyRelatedObjectsStackActions.push(item);\r\n };\r\n DocumentDataSource.prototype.raiseUpdateNodeKeyRelatedObjectsStack = function () {\r\n while (this.updateNodeKeyRelatedObjectsStackActions.length > 0) {\r\n var item = this.updateNodeKeyRelatedObjectsStackActions[0];\r\n switch (item.kind) {\r\n case \"shape\":\r\n this.updateNodeObjectContainerOrParentKeyInternal(item.nodeObj, this.changesListener);\r\n break;\r\n case \"edge\":\r\n this.updateEdgeObjectFromOrToPropertyInternal(item.nodeObj, this.changesListener);\r\n break;\r\n }\r\n this.updateNodeKeyRelatedObjectsStackActions.splice(0, 1);\r\n }\r\n };\r\n DocumentDataSource.prototype.beginChangesNotification = function () {\r\n this.changesListener.beginChangesNotification();\r\n };\r\n DocumentDataSource.prototype.endChangesNotification = function (preventNotifyChanges) {\r\n this.changesListener.endChangesNotification(preventNotifyChanges);\r\n };\r\n return DocumentDataSource;\r\n}(DataSource_1.DataSource));\r\nexports.DocumentDataSource = DocumentDataSource;\r\n\n\n/***/ }),\n/* 347 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataSource = void 0;\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar point_1 = __webpack_require__(1);\r\nvar size_1 = __webpack_require__(2);\r\nvar AddConnectionHistoryItem_1 = __webpack_require__(47);\r\nvar AddConnectorHistoryItem_1 = __webpack_require__(63);\r\nvar AddShapeHistoryItem_1 = __webpack_require__(51);\r\nvar DeleteConnectionHistoryItem_1 = __webpack_require__(64);\r\nvar ResizeShapeHistoryItem_1 = __webpack_require__(117);\r\nvar ChangeConnectorPropertyHistoryItem_1 = __webpack_require__(88);\r\nvar ChangeConnectorTextHistoryItem_1 = __webpack_require__(66);\r\nvar ChangeCustomDataHistoryItem_1 = __webpack_require__(348);\r\nvar ChangeLockedHistoryItem_1 = __webpack_require__(118);\r\nvar ChangeShapeImageHistoryItem_1 = __webpack_require__(147);\r\nvar ChangeShapeTextHistoryItem_1 = __webpack_require__(155);\r\nvar ChangeZindexHistoryItem_1 = __webpack_require__(102);\r\nvar ChangeStyleHistoryItem_1 = __webpack_require__(89);\r\nvar ChangeStyleTextHistoryItem_1 = __webpack_require__(67);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar ShapeTypes_1 = __webpack_require__(0);\r\nvar ITextMeasurer_1 = __webpack_require__(42);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar color_1 = __webpack_require__(22);\r\nvar Data_1 = __webpack_require__(43);\r\nvar Svg_1 = __webpack_require__(111);\r\nvar TextUtils_1 = __webpack_require__(61);\r\nvar DataImporter_1 = __webpack_require__(349);\r\nvar DataSourceItems_1 = __webpack_require__(350);\r\nvar ChangeConnectorPointsHistoryItem_1 = __webpack_require__(153);\r\nvar DataSource = /** @class */ (function () {\r\n function DataSource(key, nodeDataSource, edgeDataSource, parameters, nodeDataImporter, edgeDataImporter) {\r\n this.key = key;\r\n this.nodes = [];\r\n this.edges = [];\r\n this.autoGeneratedDataKeys = {};\r\n this.addInternalKeyOnInsert = false;\r\n this.useNodeParentId = false;\r\n this.useNodeContainerId = false;\r\n this.useNodeChildren = false;\r\n this.useNodeItems = false;\r\n this.canUseAutoSize = false;\r\n this.canUpdateEdgeDataSource = false;\r\n this.containers = null;\r\n if (key === undefined || key === null)\r\n throw new Error(\"DataSource key must be specified\");\r\n this.key = key.toString();\r\n this.loadParameters(parameters || {});\r\n this.nodeDataImporter = this.createNodeDataImporter(nodeDataImporter);\r\n this.edgeDataImporter = this.createEdgeDataImporter(edgeDataImporter);\r\n this.nodeDataSource = nodeDataSource || [];\r\n this.edgeDataSource = edgeDataSource || [];\r\n this.canUpdateEdgeDataSource = !!edgeDataSource;\r\n this.fetchData();\r\n }\r\n DataSource.prototype.loadParameters = function (parameters) {\r\n this.addInternalKeyOnInsert = !!parameters.addInternalKeyOnInsert;\r\n };\r\n DataSource.prototype.isAutoGeneratedKey = function (dataKey) {\r\n return dataKey && !!this.autoGeneratedDataKeys[dataKey];\r\n };\r\n DataSource.prototype.createNodeDataImporter = function (source) {\r\n var result = new DataImporter_1.DataSourceNodeDataImporter();\r\n if (source)\r\n this.assignNodeDataImporterProperties(source, result);\r\n return result;\r\n };\r\n DataSource.prototype.createEdgeDataImporter = function (source) {\r\n var result = new DataImporter_1.DataSourceEdgeDataImporter();\r\n if (source)\r\n this.assignEdgeDataImporterProperties(source, result);\r\n return result;\r\n };\r\n DataSource.prototype.assignItemDataImporterProperties = function (source, importer) {\r\n if (source.getKey)\r\n importer.getKey = source.getKey;\r\n if (source.setKey)\r\n importer.setKey = source.setKey;\r\n if (source.getCustomData)\r\n importer.getCustomData = source.getCustomData;\r\n if (source.setCustomData)\r\n importer.setCustomData = source.setCustomData;\r\n if (source.getLocked)\r\n importer.getLocked = source.getLocked;\r\n if (source.setLocked)\r\n importer.setLocked = source.setLocked;\r\n if (source.getStyle)\r\n importer.getStyle = source.getStyle;\r\n if (source.setStyle)\r\n importer.setStyle = source.setStyle;\r\n if (source.getStyleText)\r\n importer.getStyleText = source.getStyleText;\r\n if (source.setStyleText)\r\n importer.setStyleText = source.setStyleText;\r\n if (source.getZIndex)\r\n importer.getZIndex = source.getZIndex;\r\n if (source.setZIndex)\r\n importer.setZIndex = source.setZIndex;\r\n };\r\n DataSource.prototype.assignNodeDataImporterProperties = function (source, importer) {\r\n this.assignItemDataImporterProperties(source, importer);\r\n if (source.getType)\r\n importer.getType = source.getType;\r\n if (source.setType)\r\n importer.setType = source.setType;\r\n if (source.getImage)\r\n importer.getImage = source.getImage;\r\n if (source.setImage)\r\n importer.setImage = source.setImage;\r\n if (source.getText)\r\n importer.getText = source.getText;\r\n if (source.setText)\r\n importer.setText = source.setText;\r\n if (source.getLeft)\r\n importer.getLeft = source.getLeft;\r\n if (source.setLeft)\r\n importer.setLeft = source.setLeft;\r\n if (source.getTop)\r\n importer.getTop = source.getTop;\r\n if (source.setTop)\r\n importer.setTop = source.setTop;\r\n if (source.getWidth)\r\n importer.getWidth = source.getWidth;\r\n if (source.setWidth)\r\n importer.setWidth = source.setWidth;\r\n if (source.getHeight)\r\n importer.getHeight = source.getHeight;\r\n if (source.setHeight)\r\n importer.setHeight = source.setHeight;\r\n if (source.getChildren)\r\n importer.getChildren = source.getChildren;\r\n if (source.setChildren)\r\n importer.setChildren = source.setChildren;\r\n if (source.getParentKey)\r\n importer.getParentKey = source.getParentKey;\r\n if (source.setParentKey)\r\n importer.setParentKey = source.setParentKey;\r\n if (source.getItems)\r\n importer.getItems = source.getItems;\r\n if (source.setItems)\r\n importer.setItems = source.setItems;\r\n if (source.getContainerKey)\r\n importer.getContainerKey = source.getContainerKey;\r\n if (source.setContainerKey)\r\n importer.setContainerKey = source.setContainerKey;\r\n };\r\n DataSource.prototype.assignEdgeDataImporterProperties = function (source, importer) {\r\n this.assignItemDataImporterProperties(source, importer);\r\n if (source.getFrom)\r\n importer.getFrom = source.getFrom;\r\n if (source.setFrom)\r\n importer.setFrom = source.setFrom;\r\n if (source.getFromPointIndex)\r\n importer.getFromPointIndex = source.getFromPointIndex;\r\n if (source.setFromPointIndex)\r\n importer.setFromPointIndex = source.setFromPointIndex;\r\n if (source.getTo)\r\n importer.getTo = source.getTo;\r\n if (source.setTo)\r\n importer.setTo = source.setTo;\r\n if (source.getToPointIndex)\r\n importer.getToPointIndex = source.getToPointIndex;\r\n if (source.setToPointIndex)\r\n importer.setToPointIndex = source.setToPointIndex;\r\n if (source.getPoints)\r\n importer.getPoints = source.getPoints;\r\n if (source.setPoints)\r\n importer.setPoints = source.setPoints;\r\n if (source.getText)\r\n importer.getText = source.getText;\r\n if (source.setText)\r\n importer.setText = source.setText;\r\n if (source.getLineOption)\r\n importer.getLineOption = source.getLineOption;\r\n if (source.setLineOption)\r\n importer.setLineOption = source.setLineOption;\r\n if (source.getStartLineEnding)\r\n importer.getStartLineEnding = source.getStartLineEnding;\r\n if (source.setStartLineEnding)\r\n importer.setStartLineEnding = source.setStartLineEnding;\r\n if (source.getEndLineEnding)\r\n importer.getEndLineEnding = source.getEndLineEnding;\r\n if (source.setEndLineEnding)\r\n importer.setEndLineEnding = source.setEndLineEnding;\r\n };\r\n DataSource.prototype.fetchData = function () {\r\n var _this = this;\r\n this.nodes = [];\r\n this.edges = [];\r\n this.autoGeneratedDataKeys = {};\r\n this.useNodeParentId = this.nodeDataImporter.getParentKey !== undefined;\r\n this.useNodeContainerId = this.nodeDataImporter.getContainerKey !== undefined;\r\n this.useNodeItems = this.nodeDataImporter.getItems !== undefined;\r\n this.useNodeChildren = this.nodeDataImporter.getChildren !== undefined;\r\n this.canUseAutoSize = this.nodeDataImporter.getWidth === undefined && this.nodeDataImporter.getText !== undefined;\r\n if (this.useEdgesArray() && this.useNodeParentId)\r\n throw new Error(\"You cannot use edges array and parentKey simultaneously.\");\r\n if (this.useEdgesArray() && this.useNodeItems)\r\n throw new Error(\"You cannot use edges array and items array simultaneously.\");\r\n if (this.useNodeParentId && this.useNodeItems)\r\n throw new Error(\"You cannot use parentKey and items array simultaneously.\");\r\n if (this.useNodeContainerId && this.useNodeChildren)\r\n throw new Error(\"You cannot use containerKey and children array simultaneously.\");\r\n this.nodeDataSource.forEach(function (nodeDataObj) {\r\n _this.addNode(nodeDataObj);\r\n });\r\n if (this.useEdgesArray())\r\n this.edgeDataSource.forEach(function (edgeDataObj) {\r\n _this.addEdge(edgeDataObj);\r\n });\r\n else\r\n this.nodes.forEach(function (node) {\r\n _this.addNodeEdgesByParentId(node);\r\n });\r\n };\r\n DataSource.prototype.isContainer = function (itemKey) {\r\n var _this = this;\r\n if (!this.containers && this.useNodeContainerId)\r\n this.containers = this.nodeDataSource\r\n .map(function (i) { return _this.nodeDataImporter.getContainerKey(i); })\r\n .filter(function (i) { return i !== undefined && i !== null; })\r\n .reduce(function (map, i) {\r\n map[i] = true;\r\n return map;\r\n }, {});\r\n return this.containers && this.containers[itemKey];\r\n };\r\n DataSource.prototype.refetchData = function (nodeDataSource, edgeDataSource) {\r\n var _this = this;\r\n this.nodeDataSource = nodeDataSource || this.nodeDataSource;\r\n this.edgeDataSource = edgeDataSource || this.edgeDataSource;\r\n var oldNodes = this.nodes.slice();\r\n var oldEdges = this.edges.slice();\r\n this.fetchData();\r\n var changedNodes = this.getItemChanges(oldNodes, this.nodes, function (item1, item2) {\r\n return (item1.key === item2.key) || (item1.dataObj === item2.dataObj);\r\n });\r\n var changedEdges = this.getItemChanges(oldEdges, this.edges, function (item1, item2) {\r\n if (_this.useNodeParentId || _this.useNodeItems)\r\n return (item1.key === item2.key) || (item1.from === item2.from && item1.to === item2.to);\r\n return (item1.key === item2.key) || (item1.dataObj === item2.dataObj);\r\n });\r\n return { nodes: changedNodes, edges: changedEdges };\r\n };\r\n DataSource.prototype.getItemChanges = function (oldItems, newItems, areEqual) {\r\n var _this = this;\r\n var remainedItems = oldItems.filter(function (item) { return _this.containsItem(newItems, item, areEqual); });\r\n var remainedNewItems = newItems.filter(function (item) { return _this.containsItem(oldItems, item, areEqual); });\r\n var removedItems = oldItems.filter(function (item) { return !_this.containsItem(newItems, item, areEqual); });\r\n var addedItems = newItems.filter(function (item) { return !_this.containsItem(oldItems, item, areEqual); });\r\n return {\r\n remained: remainedItems.map(function (item) { return item.key; }),\r\n remainedNew: remainedNewItems.map(function (item) { return item.key; }),\r\n removed: removedItems.map(function (item) { return item.key; }),\r\n added: addedItems.map(function (item) { return item.key; })\r\n };\r\n };\r\n DataSource.prototype.containsItem = function (items, item, areEqual) {\r\n var result = false;\r\n items.forEach(function (i) {\r\n if (!result && areEqual(i, item))\r\n result = true;\r\n });\r\n return result;\r\n };\r\n DataSource.prototype.useEdgesArray = function () {\r\n return Array.isArray(this.edgeDataSource) && (this.edgeDataSource.length || !(this.useNodeParentId || this.useNodeItems));\r\n };\r\n DataSource.prototype.addNode = function (nodeDataObj, parentNodeDataObj, containerKey, containerNodeDataObj) {\r\n var _this = this;\r\n var childNodeDataObjs = this.nodeDataImporter.getChildren && this.nodeDataImporter.getChildren(nodeDataObj);\r\n var hasChildren = childNodeDataObjs && Array.isArray(childNodeDataObjs) && childNodeDataObjs.length;\r\n var isContainer = hasChildren || this.isContainer(this.nodeDataImporter.getKey(nodeDataObj));\r\n var type = this.nodeDataImporter.getType && this.nodeDataImporter.getType(nodeDataObj) || (isContainer && ShapeTypes_1.ShapeTypes.VerticalContainer) || ShapeTypes_1.ShapeTypes.Rectangle;\r\n var text = this.nodeDataImporter.getText && (this.nodeDataImporter.getText(nodeDataObj) || \"\");\r\n var node = this.addNodeInternal(nodeDataObj, type, text, parentNodeDataObj, containerKey, containerNodeDataObj);\r\n this.assignNodeProperties(node, nodeDataObj);\r\n if (hasChildren)\r\n childNodeDataObjs.forEach(function (childNodeDataObj) {\r\n _this.addNode(childNodeDataObj, undefined, node.key, nodeDataObj);\r\n });\r\n if (this.useNodeItems) {\r\n var itemDataObjs = this.nodeDataImporter.getItems(nodeDataObj);\r\n if (Array.isArray(itemDataObjs) && itemDataObjs.length)\r\n itemDataObjs.forEach(function (itemDataObj) {\r\n var itemNode = _this.addNode(itemDataObj, nodeDataObj, containerKey, containerNodeDataObj);\r\n _this.addEdgeInternal(undefined, node.key, itemNode.key);\r\n });\r\n }\r\n return node;\r\n };\r\n DataSource.prototype.addNodeEdgesByParentId = function (node) {\r\n if (this.useNodeParentId) {\r\n var parentKey = this.nodeDataImporter.getParentKey(node.dataObj);\r\n if (parentKey !== undefined && parentKey !== null) {\r\n var parentNode = this.findNode(parentKey);\r\n if (parentNode)\r\n this.addEdgeInternal(undefined, this.getNodeKey(node.dataObj, this.nodeDataImporter.getParentKey), this.getNodeKey(node.dataObj, this.nodeDataImporter.getKey));\r\n }\r\n }\r\n };\r\n DataSource.prototype.addNodeInternal = function (nodeDataObj, type, text, parentNodeDataObj, containerKey, containerNodeDataObj) {\r\n var externalKey = this.nodeDataImporter.getKey(nodeDataObj);\r\n var key = (externalKey !== undefined && externalKey !== null) ? externalKey : ModelUtils_1.ModelUtils.getGuidItemKey();\r\n var node = new DataSourceItems_1.DataSourceNodeItem(this.key, key, nodeDataObj, type, text, parentNodeDataObj, containerKey, containerNodeDataObj);\r\n this.nodes.push(node);\r\n if (externalKey === undefined || externalKey === null) {\r\n externalKey = key;\r\n this.autoGeneratedDataKeys[key] = true;\r\n }\r\n return node;\r\n };\r\n DataSource.prototype.addEdge = function (edgeDataObj) {\r\n var edge = this.addEdgeInternal(edgeDataObj, this.getNodeKey(edgeDataObj, this.edgeDataImporter.getFrom), this.getNodeKey(edgeDataObj, this.edgeDataImporter.getTo));\r\n this.assignEdgeProperties(edge, edgeDataObj);\r\n return edge;\r\n };\r\n DataSource.prototype.addEdgeInternal = function (edgeDataObj, from, to) {\r\n var externalKey = edgeDataObj && this.edgeDataImporter.getKey(edgeDataObj);\r\n var key = (externalKey !== undefined && externalKey !== null) ? externalKey : ModelUtils_1.ModelUtils.getGuidItemKey();\r\n var edge = new DataSourceItems_1.DataSourceEdgeItem(this.key, key, edgeDataObj, from, to);\r\n this.edges.push(edge);\r\n if (externalKey === undefined || externalKey === null) {\r\n externalKey = key;\r\n this.autoGeneratedDataKeys[key] = true;\r\n }\r\n return edge;\r\n };\r\n DataSource.prototype.assignItemProperties = function (item, dataObj, importer) {\r\n if (importer.getCustomData)\r\n item.customData = Utils_1.ObjectUtils.cloneObject(importer.getCustomData(dataObj));\r\n if (importer.getLocked)\r\n item.locked = importer.getLocked(dataObj);\r\n if (importer.getStyle) {\r\n var style = importer.getStyle(dataObj);\r\n item.style = typeof style === \"string\" ? Data_1.Data.cssTextToObject(style) : style;\r\n }\r\n if (importer.getStyleText) {\r\n var style = importer.getStyleText(dataObj);\r\n item.styleText = typeof style === \"string\" ? Data_1.Data.cssTextToObject(style) : style;\r\n }\r\n if (importer.getZIndex)\r\n item.zIndex = importer.getZIndex(dataObj);\r\n };\r\n DataSource.prototype.assignNodeProperties = function (item, dataObj) {\r\n this.assignItemProperties(item, dataObj, this.nodeDataImporter);\r\n if (this.nodeDataImporter.getImage)\r\n item.image = this.nodeDataImporter.getImage(dataObj);\r\n if (this.nodeDataImporter.getLeft)\r\n item.left = this.nodeDataImporter.getLeft(dataObj);\r\n if (this.nodeDataImporter.getTop)\r\n item.top = this.nodeDataImporter.getTop(dataObj);\r\n if (this.nodeDataImporter.getWidth)\r\n item.width = this.nodeDataImporter.getWidth(dataObj);\r\n if (this.nodeDataImporter.getHeight)\r\n item.height = this.nodeDataImporter.getHeight(dataObj);\r\n if (this.nodeDataImporter.getContainerKey)\r\n item.containerKey = this.nodeDataImporter.getContainerKey(dataObj);\r\n };\r\n DataSource.prototype.assignEdgeProperties = function (item, dataObj) {\r\n this.assignItemProperties(item, dataObj, this.edgeDataImporter);\r\n if (this.edgeDataImporter.getFromPointIndex)\r\n item.fromPointIndex = this.edgeDataImporter.getFromPointIndex(dataObj);\r\n if (this.edgeDataImporter.getToPointIndex)\r\n item.toPointIndex = this.edgeDataImporter.getToPointIndex(dataObj);\r\n if (this.edgeDataImporter.getPoints)\r\n item.points = this.edgeDataImporter.getPoints(dataObj);\r\n if (this.edgeDataImporter.getText) {\r\n var texts = this.edgeDataImporter.getText(dataObj);\r\n item.texts = {};\r\n if (typeof texts === \"object\")\r\n for (var key in texts) {\r\n if (!Object.prototype.hasOwnProperty.call(texts, key))\r\n continue;\r\n var position = parseFloat(key);\r\n var text = texts[key];\r\n if (!isNaN(position) && typeof text === \"string\" && text !== \"\") {\r\n position = Math.min(1, Math.max(0, position));\r\n item.texts[position] = text;\r\n }\r\n }\r\n else if (typeof texts === \"string\" && texts !== \"\")\r\n item.texts[Connector_1.CONNECTOR_DEFAULT_TEXT_POSITION] = texts;\r\n }\r\n if (this.edgeDataImporter.getLineOption)\r\n item.lineOption = this.edgeDataImporter.getLineOption(dataObj);\r\n if (this.edgeDataImporter.getStartLineEnding)\r\n item.startLineEnding = this.edgeDataImporter.getStartLineEnding(dataObj);\r\n if (this.edgeDataImporter.getEndLineEnding)\r\n item.endLineEnding = this.edgeDataImporter.getEndLineEnding(dataObj);\r\n };\r\n DataSource.prototype.findNode = function (key) {\r\n return this.nodes.filter(function (i) { return key !== undefined && i.key === key; })[0];\r\n };\r\n DataSource.prototype.findEdge = function (key) {\r\n return this.edges.filter(function (i) { return key !== undefined && i.key === key; })[0];\r\n };\r\n DataSource.prototype.getNodeKey = function (nodeDataObj, getKey) {\r\n return getKey(nodeDataObj);\r\n };\r\n DataSource.prototype.createModelItems = function (history, model, shapeDescriptionManager, selection, layoutParameters, snapToGrid, gridSize, measurer) {\r\n var _this = this;\r\n this.beginChangesNotification();\r\n history.clear();\r\n history.beginTransaction();\r\n ModelUtils_1.ModelUtils.deleteAllItems(history, model, selection);\r\n model.initializeKeyCounter();\r\n var DEFAULT_STEP = 2000;\r\n var rowIndex = 0;\r\n var colIndex = 0;\r\n var externalToInnerMap = {};\r\n var shapes = [];\r\n var connectors = [];\r\n this.nodes.forEach(function (node) {\r\n var point = new point_1.Point(colIndex++ * DEFAULT_STEP, rowIndex * DEFAULT_STEP);\r\n var shape = _this.createShapeByNode(history, model, selection, shapeDescriptionManager, node, point, layoutParameters, snapToGrid, gridSize, measurer);\r\n if (node.key !== undefined)\r\n externalToInnerMap[node.key] = shape.key;\r\n if (colIndex > 4) {\r\n colIndex = 0;\r\n rowIndex++;\r\n }\r\n shapes.push(shape);\r\n });\r\n this.nodes.forEach(function (node) {\r\n if (node.containerKey !== undefined && node.containerKey !== null) {\r\n var shapeKey = externalToInnerMap[node.key];\r\n var shape = model.findShape(shapeKey);\r\n var containerShapeKey = externalToInnerMap[node.containerKey];\r\n var containerShape = model.findShape(containerShapeKey);\r\n if (containerShape)\r\n ModelUtils_1.ModelUtils.insertToContainer(history, model, shape, containerShape);\r\n }\r\n });\r\n this.edges.forEach(function (edge) {\r\n var toShape = model.findShape(externalToInnerMap[edge.to]);\r\n var fromShape = model.findShape(externalToInnerMap[edge.from]);\r\n var connector = _this.createConnectorByEdge(history, model, selection, edge, fromShape, toShape);\r\n if (connector) {\r\n connectors.push(connector);\r\n ModelUtils_1.ModelUtils.updateConnectorContainer(history, model, connector);\r\n }\r\n });\r\n if (layoutParameters.needAutoLayout)\r\n this.applyLayout(history, model, shapes, connectors, layoutParameters, snapToGrid, gridSize);\r\n ModelUtils_1.ModelUtils.tryUpdateModelRectangle(history);\r\n history.endTransaction(true);\r\n this.endChangesNotification(true);\r\n };\r\n DataSource.prototype.updateModelItems = function (history, model, shapeDescriptionManager, selection, layoutParameters, addNewHistoryItem, updateDataKeys, updateTemplateItem, changes, snapToGrid, gridSize, measurer) {\r\n var _this = this;\r\n this.beginChangesNotification();\r\n history.beginTransaction();\r\n var itemsToUpdate = [];\r\n var layoutShapes = [];\r\n var layoutConnectors = [];\r\n var shapesToRemove = changes.nodes.removed.map(function (key) { return model.findShapeByDataKey(key); }).filter(function (item) { return item; });\r\n shapesToRemove.forEach(function (shape) {\r\n shape.attachedConnectors.forEach(function (connector) {\r\n if (connector.beginItem && connector.beginItem !== shape)\r\n layoutShapes.push(connector.beginItem);\r\n if (connector.endItem && connector.endItem !== shape)\r\n layoutShapes.push(connector.endItem);\r\n });\r\n });\r\n ModelUtils_1.ModelUtils.deleteItems(history, model, selection, shapesToRemove, true);\r\n var connectorsToRemove = changes.edges.removed.map(function (key) { return model.findConnectorByDataKey(key); }).filter(function (item) { return item; });\r\n connectorsToRemove.forEach(function (connector) {\r\n if (connector.beginItem)\r\n layoutShapes.push(connector.beginItem);\r\n if (connector.endItem)\r\n layoutShapes.push(connector.endItem);\r\n });\r\n ModelUtils_1.ModelUtils.deleteItems(history, model, selection, connectorsToRemove, true);\r\n var nodeKeysToUpdate = updateDataKeys || [];\r\n nodeKeysToUpdate.forEach(function (dataKey) {\r\n if (changes.nodes.remained.indexOf(dataKey) === -1)\r\n return;\r\n var node = _this.findNode(dataKey);\r\n if (node) {\r\n var shape = model.findShapeByDataKey(dataKey);\r\n if (shape) {\r\n var position = shape.position.clone();\r\n _this.changeShapeByDataItem(history, model, shape, node, position);\r\n _this.changeItemByDataItem(history, shape, node);\r\n }\r\n else\r\n shape = _this.createShapeByNode(history, model, selection, shapeDescriptionManager, node, new point_1.Point(0, 0), layoutParameters, snapToGrid, gridSize, measurer);\r\n _this.updateShapeContainer(history, model, shape, node);\r\n layoutShapes.push(shape);\r\n itemsToUpdate.push(shape);\r\n }\r\n });\r\n changes.nodes.remained.forEach(function (dataKey, index) {\r\n var shape = model.findShapeByDataKey(dataKey);\r\n if (shape)\r\n shape.dataKey = changes.nodes.remainedNew[index];\r\n });\r\n changes.nodes.added.forEach(function (dataKey) {\r\n var node = _this.findNode(dataKey);\r\n var shape = _this.createShapeByNode(history, model, selection, shapeDescriptionManager, node, new point_1.Point(0, 0), layoutParameters, snapToGrid, gridSize, measurer);\r\n _this.updateShapeContainer(history, model, shape, node);\r\n layoutShapes.push(shape);\r\n });\r\n changes.edges.added.forEach(function (dataKey) {\r\n var edge = _this.findEdge(dataKey);\r\n var fromShape = model.findShapeByDataKey(edge.from);\r\n var toShape = model.findShapeByDataKey(edge.to);\r\n var connector = _this.createConnectorByEdge(history, model, selection, edge, fromShape, toShape);\r\n if (connector) {\r\n ModelUtils_1.ModelUtils.updateConnectorContainer(history, model, connector);\r\n layoutConnectors.push(connector);\r\n }\r\n });\r\n var edgeKeysToUpdate = updateDataKeys || [];\r\n changes.edges.remained.forEach(function (dataKey) {\r\n var edge = _this.findEdge(dataKey);\r\n if (edge && ((changes.nodes.added.indexOf(edge.from) !== -1) || (changes.nodes.added.indexOf(edge.to) !== -1)))\r\n edgeKeysToUpdate.push(dataKey);\r\n });\r\n edgeKeysToUpdate.forEach(function (dataKey) {\r\n if (changes.edges.remained.indexOf(dataKey) === -1)\r\n return;\r\n var edge = _this.findEdge(dataKey);\r\n if (edge) {\r\n var fromShape = model.findShapeByDataKey(edge.from);\r\n var toShape = model.findShapeByDataKey(edge.to);\r\n var connector = model.findConnectorByDataKey(dataKey);\r\n if (connector) {\r\n _this.changeConnectorPointsByDataItem(history, connector, _this.getConnectorPointsByEdge(model, edge, fromShape, toShape));\r\n _this.changeConnectorByDataItem(history, model, connector, fromShape, toShape, edge);\r\n _this.changeItemByDataItem(history, connector, edge);\r\n }\r\n else\r\n connector = _this.createConnectorByEdge(history, model, selection, edge, fromShape, toShape);\r\n if (connector) {\r\n ModelUtils_1.ModelUtils.updateConnectorContainer(history, model, connector);\r\n layoutConnectors.push(connector);\r\n itemsToUpdate.push(connector);\r\n }\r\n }\r\n });\r\n changes.edges.remained.forEach(function (dataKey, index) {\r\n var connector = model.findConnectorByDataKey(dataKey);\r\n if (connector)\r\n connector.dataKey = changes.edges.remainedNew[index];\r\n });\r\n if (itemsToUpdate.length && updateTemplateItem)\r\n itemsToUpdate.forEach(function (item) { item.hasTemplate && updateTemplateItem(item); });\r\n if (layoutParameters.needAutoLayout && (layoutShapes.length || layoutConnectors.length))\r\n this.applyLayout(history, model, layoutShapes, layoutConnectors, layoutParameters, snapToGrid, gridSize);\r\n ModelUtils_1.ModelUtils.tryUpdateModelRectangle(history);\r\n history.endTransaction(!addNewHistoryItem);\r\n this.endChangesNotification(false);\r\n };\r\n DataSource.prototype.applyShapeAutoSize = function (history, measurer, shapeSizeSettings, shape, snapToGrid, gridSize) {\r\n if (!shape.description.enableText)\r\n return;\r\n var shapeTextSize = shape.textRectangle.createSize();\r\n var shapeSize = shape.size;\r\n var textHorOffset = shapeTextSize.width - shapeSize.width;\r\n var textVerOffset = shapeTextSize.height - shapeSize.height;\r\n var maxWidth = shape.getMaxWidth(shapeSizeSettings.shapeMaxWidth);\r\n var maxHeight = shape.getMaxHeight(shapeSizeSettings.shapeMaxHeight);\r\n var sizeToPx = function (size, isHorizontal) { return typeof (size) === \"number\" ? unit_converter_1.UnitConverter.twipsToPixelsF(size + (isHorizontal ? textHorOffset : textVerOffset)) : undefined; };\r\n var newShapeTextSize = TextUtils_1.getOptimalTextRectangle(shape.text, shape.styleText, ITextMeasurer_1.TextOwner.Shape, measurer, shapeTextSize.clone().applyConverter(unit_converter_1.UnitConverter.twipsToPixelsF), shape.description.keepRatioOnAutoSize, sizeToPx(shape.getMinWidth(shapeSizeSettings.shapeMinWidth), true), sizeToPx(maxWidth, true), sizeToPx(shape.getMinHeight(shapeSizeSettings.shapeMinHeight), false), sizeToPx(maxHeight, false))\r\n .clone().applyConverter(unit_converter_1.UnitConverter.pixelsToTwips);\r\n if (!newShapeTextSize.equals(shapeTextSize)) {\r\n var shapeNewSize = shape.description.getSizeByText(newShapeTextSize, shape);\r\n if (snapToGrid && gridSize)\r\n shapeNewSize = new size_1.Size(Math.min(gridSize * Math.ceil(shapeNewSize.width / gridSize), maxWidth || Number.MAX_VALUE), Math.min(gridSize * Math.ceil(shapeNewSize.height / gridSize), maxHeight || Number.MAX_VALUE));\r\n history.addAndRedo(new ResizeShapeHistoryItem_1.ResizeShapeHistoryItem(shape.key, shape.position, shapeNewSize));\r\n }\r\n };\r\n DataSource.prototype.applyLayout = function (history, model, shapes, connectors, layoutParameters, snapToGrid, gridSize) {\r\n var graphInfo = ModelUtils_1.ModelUtils.getGraphInfoByItems(model, shapes, connectors);\r\n graphInfo.forEach(function (info) {\r\n var layout = layoutParameters.getLayoutBuilder(info.graph).build();\r\n var nonGraphItems = ModelUtils_1.ModelUtils.getNonGraphItems(model, info.container, layout.nodeToLayout, shapes, connectors);\r\n ModelUtils_1.ModelUtils.applyLayout(history, model, info.container, info.graph, layout, nonGraphItems, layoutParameters.layoutSettings, snapToGrid, gridSize, layoutParameters.skipPointIndices);\r\n });\r\n };\r\n DataSource.prototype.changeItemByDataItem = function (history, item, dataItem) {\r\n if (dataItem.customData !== undefined && !Utils_1.ObjectUtils.compareObjects(dataItem.customData, item.customData))\r\n history.addAndRedo(new ChangeCustomDataHistoryItem_1.ChangeCustomDataHistoryItem(item, dataItem.customData));\r\n if (dataItem.zIndex !== undefined && dataItem.zIndex !== item.zIndex)\r\n history.addAndRedo(new ChangeZindexHistoryItem_1.ChangeZindexHistoryItem(item, dataItem.zIndex));\r\n if (dataItem.style !== undefined)\r\n for (var key in dataItem.style) {\r\n if (!Object.prototype.hasOwnProperty.call(dataItem.style, key))\r\n continue;\r\n var value = Svg_1.isColorProperty(key) ? color_1.ColorUtils.stringToHash(dataItem.style[key]) : dataItem.style[key];\r\n if (value !== item.style[key])\r\n history.addAndRedo(new ChangeStyleHistoryItem_1.ChangeStyleHistoryItem(item.key, key, value));\r\n }\r\n if (dataItem.styleText !== undefined)\r\n for (var key in dataItem.styleText) {\r\n if (!Object.prototype.hasOwnProperty.call(dataItem.styleText, key))\r\n continue;\r\n var value = Svg_1.isColorProperty(key) ? color_1.ColorUtils.stringToHash(dataItem.styleText[key]) : dataItem.styleText[key];\r\n if (value !== item.styleText[key])\r\n history.addAndRedo(new ChangeStyleTextHistoryItem_1.ChangeStyleTextHistoryItem(item.key, key, value));\r\n }\r\n if (dataItem.locked !== undefined && dataItem.locked !== item.locked)\r\n history.addAndRedo(new ChangeLockedHistoryItem_1.ChangeLockedHistoryItem(item, dataItem.locked));\r\n };\r\n DataSource.prototype.createShapeByNode = function (history, model, selection, shapeDescriptionManager, node, point, layoutParameters, snapToGrid, gridSize, measurer) {\r\n var insert = new AddShapeHistoryItem_1.AddShapeHistoryItem(shapeDescriptionManager.get(node.type), point, \"\", node.key);\r\n history.addAndRedo(insert);\r\n var shape = model.findShape(insert.shapeKey);\r\n ModelUtils_1.ModelUtils.updateNewShapeProperties(history, selection, insert.shapeKey);\r\n this.changeShapeByDataItem(history, model, shape, node, point);\r\n this.changeItemByDataItem(history, shape, node);\r\n if (measurer && this.canUseAutoSize && layoutParameters.autoSizeEnabled)\r\n this.applyShapeAutoSize(history, measurer, layoutParameters.sizeSettings, shape, snapToGrid, gridSize);\r\n return shape;\r\n };\r\n DataSource.prototype.changeShapeByDataItem = function (history, model, shape, node, point) {\r\n if (node.left !== undefined)\r\n point.x = ModelUtils_1.ModelUtils.getTwipsValue(model.units, node.left);\r\n if (node.top !== undefined)\r\n point.y = ModelUtils_1.ModelUtils.getTwipsValue(model.units, node.top);\r\n ModelUtils_1.ModelUtils.setShapePosition(history, model, shape, point);\r\n ModelUtils_1.ModelUtils.updateShapeAttachedConnectors(history, model, shape);\r\n var size = shape.size.clone();\r\n if (node.width !== undefined)\r\n size.width = ModelUtils_1.ModelUtils.getTwipsValue(model.units, node.width);\r\n if (node.height !== undefined)\r\n size.height = ModelUtils_1.ModelUtils.getTwipsValue(model.units, node.height);\r\n ModelUtils_1.ModelUtils.setShapeSize(history, model, shape, point, size);\r\n if (node.text !== undefined && node.text !== shape.text)\r\n history.addAndRedo(new ChangeShapeTextHistoryItem_1.ChangeShapeTextHistoryItem(shape, node.text));\r\n if (node.image !== undefined && node.image !== shape.image.actualUrl)\r\n history.addAndRedo(new ChangeShapeImageHistoryItem_1.ChangeShapeImageHistoryItem(shape, node.image));\r\n };\r\n DataSource.prototype.updateShapeContainer = function (history, model, shape, node) {\r\n var containerShape = (node.containerKey !== undefined) ? model.findShapeByDataKey(node.containerKey) : undefined;\r\n if (containerShape !== shape.container)\r\n if (containerShape)\r\n ModelUtils_1.ModelUtils.insertToContainer(history, model, shape, containerShape);\r\n else\r\n ModelUtils_1.ModelUtils.removeFromContainer(history, model, shape);\r\n };\r\n DataSource.prototype.getConnectorPointsByEdge = function (model, edge, fromShape, toShape) {\r\n var result = [];\r\n var modelPoints = this.createModelPointFromDataSourceEdgeItemPoints(model.units, edge);\r\n if (!modelPoints || modelPoints.length <= 1) {\r\n if (!fromShape || !toShape)\r\n return undefined;\r\n result.push(fromShape.position.clone());\r\n result.push(toShape.position.clone());\r\n return result;\r\n }\r\n var lastIndex = modelPoints.length - 1;\r\n for (var i = 0; i <= lastIndex; i++) {\r\n var modelPoint = modelPoints[i];\r\n if (modelPoint !== null)\r\n result.push(modelPoint);\r\n else if (!fromShape && !toShape)\r\n return undefined;\r\n else if (i === 0 && fromShape)\r\n result.push(fromShape.position.clone());\r\n else if (i === lastIndex && toShape)\r\n result.push(toShape.position.clone());\r\n }\r\n return result;\r\n };\r\n DataSource.prototype.createModelPointFromDataSourceEdgeItemPoints = function (units, edge) {\r\n var _this = this;\r\n var result = [];\r\n if (!Array.isArray(edge.points))\r\n return undefined;\r\n edge.points.forEach(function (dep) { return result.push(_this.isValidDataSourceEdgeItemPoint(dep) ? _this.createModelPoint(units, dep) : null); });\r\n return result;\r\n };\r\n DataSource.prototype.createModelPoint = function (units, point) {\r\n return new point_1.Point(ModelUtils_1.ModelUtils.getTwipsValue(units, point.x), ModelUtils_1.ModelUtils.getTwipsValue(units, point.y));\r\n };\r\n DataSource.prototype.isValidDataSourceEdgeItemPoint = function (point) {\r\n return point !== undefined && point !== null &&\r\n point.x !== undefined && point.y !== undefined &&\r\n point.x !== null && point.y !== null;\r\n };\r\n DataSource.prototype.createConnectorByEdge = function (history, model, selection, edge, fromShape, toShape) {\r\n var connector;\r\n var dataKey = edge.key;\r\n var points = this.getConnectorPointsByEdge(model, edge, fromShape, toShape);\r\n if (points && points.length > 1) {\r\n var insert = new AddConnectorHistoryItem_1.AddConnectorHistoryItem(points, dataKey);\r\n history.addAndRedo(insert);\r\n connector = model.findConnector(insert.connectorKey);\r\n ModelUtils_1.ModelUtils.updateNewConnectorProperties(history, selection, insert.connectorKey);\r\n this.changeConnectorByDataItem(history, model, connector, fromShape, toShape, edge);\r\n this.changeItemByDataItem(history, connector, edge);\r\n }\r\n return connector;\r\n };\r\n DataSource.prototype.changeConnectorByDataItem = function (history, model, connector, fromShape, toShape, edge) {\r\n var fromPointIndex = edge.fromPointIndex !== undefined ? edge.fromPointIndex : connector.beginConnectionPointIndex;\r\n if (connector.beginItem !== fromShape || connector.beginConnectionPointIndex !== fromPointIndex) {\r\n if (connector.beginItem)\r\n history.addAndRedo(new DeleteConnectionHistoryItem_1.DeleteConnectionHistoryItem(connector, Connector_1.ConnectorPosition.Begin));\r\n if (fromShape)\r\n history.addAndRedo(new AddConnectionHistoryItem_1.AddConnectionHistoryItem(connector, fromShape, fromPointIndex, Connector_1.ConnectorPosition.Begin));\r\n }\r\n var toPointIndex = edge.toPointIndex !== undefined ? edge.toPointIndex : connector.endConnectionPointIndex;\r\n if (connector.endItem !== toShape || connector.endConnectionPointIndex !== toPointIndex) {\r\n if (connector.endItem)\r\n history.addAndRedo(new DeleteConnectionHistoryItem_1.DeleteConnectionHistoryItem(connector, Connector_1.ConnectorPosition.End));\r\n if (toShape)\r\n history.addAndRedo(new AddConnectionHistoryItem_1.AddConnectionHistoryItem(connector, toShape, toPointIndex, Connector_1.ConnectorPosition.End));\r\n }\r\n ModelUtils_1.ModelUtils.updateConnectorAttachedPoints(history, model, connector);\r\n if (edge.texts !== undefined && !this.compareTexts(edge, connector)) {\r\n connector.texts.forEach(function (text) {\r\n history.addAndRedo(new ChangeConnectorTextHistoryItem_1.ChangeConnectorTextHistoryItem(connector, text.position, undefined));\r\n });\r\n for (var key in edge.texts) {\r\n if (!Object.prototype.hasOwnProperty.call(edge.texts, key))\r\n continue;\r\n var position = parseFloat(key);\r\n history.addAndRedo(new ChangeConnectorTextHistoryItem_1.ChangeConnectorTextHistoryItem(connector, position, edge.texts[key]));\r\n }\r\n }\r\n if (edge.lineOption !== undefined && edge.lineOption !== connector.properties.lineOption)\r\n history.addAndRedo(new ChangeConnectorPropertyHistoryItem_1.ChangeConnectorPropertyHistoryItem(connector.key, \"lineOption\", edge.lineOption));\r\n if (edge.startLineEnding !== undefined && edge.startLineEnding !== connector.properties.startLineEnding)\r\n history.addAndRedo(new ChangeConnectorPropertyHistoryItem_1.ChangeConnectorPropertyHistoryItem(connector.key, \"startLineEnding\", edge.startLineEnding));\r\n if (edge.endLineEnding !== undefined && edge.endLineEnding !== connector.properties.endLineEnding)\r\n history.addAndRedo(new ChangeConnectorPropertyHistoryItem_1.ChangeConnectorPropertyHistoryItem(connector.key, \"endLineEnding\", edge.endLineEnding));\r\n };\r\n DataSource.prototype.changeConnectorPointsByDataItem = function (history, connector, newPoints) {\r\n if (newPoints && newPoints.length > 1 && newPoints.join(\",\") !== connector.points.join(\",\"))\r\n history.addAndRedo(new ChangeConnectorPointsHistoryItem_1.ReplaceConnectorPointsHistoryItem(connector.key, newPoints));\r\n };\r\n DataSource.prototype.compareTexts = function (edgeObj, connector) {\r\n var texts = edgeObj.texts || {};\r\n var result = Object.keys(texts).length === connector.getTextCount();\r\n if (result)\r\n for (var key in texts) {\r\n if (!Object.prototype.hasOwnProperty.call(texts, key))\r\n continue;\r\n var position = parseFloat(key);\r\n if (!this.compareStrings(connector.getText(position), texts[key]))\r\n result = false;\r\n }\r\n return result;\r\n };\r\n DataSource.prototype.compareStrings = function (str1, str2) {\r\n if (typeof str1 === \"string\" && typeof str2 === \"string\")\r\n return str1 === str2;\r\n return this.isEmptyString(str1) && this.isEmptyString(str2);\r\n };\r\n DataSource.prototype.isEmptyString = function (str) {\r\n return str === \"\" || str === null || str === undefined;\r\n };\r\n return DataSource;\r\n}());\r\nexports.DataSource = DataSource;\r\n\n\n/***/ }),\n/* 348 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeCustomDataHistoryItem = void 0;\r\nvar HistoryItem_1 = __webpack_require__(6);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar ChangeCustomDataHistoryItem = /** @class */ (function (_super) {\r\n __extends(ChangeCustomDataHistoryItem, _super);\r\n function ChangeCustomDataHistoryItem(item, customData) {\r\n var _this = _super.call(this) || this;\r\n _this.itemKey = item.key;\r\n _this.customData = Utils_1.ObjectUtils.cloneObject(customData);\r\n return _this;\r\n }\r\n ChangeCustomDataHistoryItem.prototype.redo = function (manipulator) {\r\n var item = manipulator.model.findItem(this.itemKey);\r\n this.oldCustomData = Utils_1.ObjectUtils.cloneObject(item.customData);\r\n manipulator.changeCustomData(item, this.customData);\r\n };\r\n ChangeCustomDataHistoryItem.prototype.undo = function (manipulator) {\r\n var item = manipulator.model.findItem(this.itemKey);\r\n manipulator.changeCustomData(item, this.oldCustomData);\r\n };\r\n return ChangeCustomDataHistoryItem;\r\n}(HistoryItem_1.HistoryItem));\r\nexports.ChangeCustomDataHistoryItem = ChangeCustomDataHistoryItem;\r\n\n\n/***/ }),\n/* 349 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataSourceEdgeDataImporter = exports.DataSourceNodeDataImporter = exports.DataSourceItemDataImporter = void 0;\r\nvar DataSourceItemDataImporter = /** @class */ (function () {\r\n function DataSourceItemDataImporter() {\r\n this.getKey = function (obj) { return obj[\"id\"]; };\r\n this.setKey = function (obj, value) { obj[\"id\"] = value; };\r\n this.getCustomData = undefined;\r\n this.setCustomData = undefined;\r\n this.getLocked = undefined;\r\n this.setLocked = undefined;\r\n this.getStyle = undefined;\r\n this.setStyle = undefined;\r\n this.getStyleText = undefined;\r\n this.setStyleText = undefined;\r\n this.getZIndex = undefined;\r\n this.setZIndex = undefined;\r\n }\r\n return DataSourceItemDataImporter;\r\n}());\r\nexports.DataSourceItemDataImporter = DataSourceItemDataImporter;\r\nvar DataSourceNodeDataImporter = /** @class */ (function (_super) {\r\n __extends(DataSourceNodeDataImporter, _super);\r\n function DataSourceNodeDataImporter() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.getType = undefined;\r\n _this.setType = undefined;\r\n _this.getText = undefined;\r\n _this.setText = undefined;\r\n _this.getImage = undefined;\r\n _this.setImage = undefined;\r\n _this.getLeft = undefined;\r\n _this.setLeft = undefined;\r\n _this.getTop = undefined;\r\n _this.setTop = undefined;\r\n _this.getWidth = undefined;\r\n _this.setWidth = undefined;\r\n _this.getHeight = undefined;\r\n _this.setHeight = undefined;\r\n _this.getChildren = undefined;\r\n _this.setChildren = undefined;\r\n _this.getParentKey = undefined;\r\n _this.setParentKey = undefined;\r\n _this.getItems = undefined;\r\n _this.setItems = undefined;\r\n _this.getContainerKey = undefined;\r\n _this.setContainerKey = undefined;\r\n return _this;\r\n }\r\n return DataSourceNodeDataImporter;\r\n}(DataSourceItemDataImporter));\r\nexports.DataSourceNodeDataImporter = DataSourceNodeDataImporter;\r\nvar DataSourceEdgeDataImporter = /** @class */ (function (_super) {\r\n __extends(DataSourceEdgeDataImporter, _super);\r\n function DataSourceEdgeDataImporter() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.getFrom = function (obj) { return obj[\"from\"]; };\r\n _this.setFrom = function (obj, value) { obj[\"from\"] = value; };\r\n _this.getFromPointIndex = undefined;\r\n _this.setFromPointIndex = undefined;\r\n _this.getTo = function (obj) { return obj[\"to\"]; };\r\n _this.setTo = function (obj, value) { obj[\"to\"] = value; };\r\n _this.getToPointIndex = undefined;\r\n _this.setToPointIndex = undefined;\r\n _this.getPoints = undefined;\r\n _this.setPoints = undefined;\r\n _this.getText = undefined;\r\n _this.setText = undefined;\r\n _this.getLineOption = undefined;\r\n _this.setLineOption = undefined;\r\n _this.getStartLineEnding = undefined;\r\n _this.setStartLineEnding = undefined;\r\n _this.getEndLineEnding = undefined;\r\n _this.setEndLineEnding = undefined;\r\n return _this;\r\n }\r\n return DataSourceEdgeDataImporter;\r\n}(DataSourceItemDataImporter));\r\nexports.DataSourceEdgeDataImporter = DataSourceEdgeDataImporter;\r\n\n\n/***/ }),\n/* 350 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataSourceEdgeItem = exports.DataSourceNodeItem = exports.DataSourceItem = void 0;\r\nvar Connector_1 = __webpack_require__(7);\r\nvar DataSourceItem = /** @class */ (function () {\r\n function DataSourceItem(sourceKey, key, dataObj) {\r\n this.sourceKey = sourceKey;\r\n this.key = key;\r\n this.dataObj = dataObj;\r\n }\r\n return DataSourceItem;\r\n}());\r\nexports.DataSourceItem = DataSourceItem;\r\nvar DataSourceNodeItem = /** @class */ (function (_super) {\r\n __extends(DataSourceNodeItem, _super);\r\n function DataSourceNodeItem(sourceKey, key, dataObj, type, text, parentDataObj, containerKey, containerDataObj) {\r\n var _this = _super.call(this, sourceKey, key, dataObj) || this;\r\n _this.type = type;\r\n _this.text = text;\r\n _this.parentDataObj = parentDataObj;\r\n _this.containerKey = containerKey;\r\n _this.containerDataObj = containerDataObj;\r\n return _this;\r\n }\r\n return DataSourceNodeItem;\r\n}(DataSourceItem));\r\nexports.DataSourceNodeItem = DataSourceNodeItem;\r\nvar DataSourceEdgeItem = /** @class */ (function (_super) {\r\n __extends(DataSourceEdgeItem, _super);\r\n function DataSourceEdgeItem(sourceKey, key, dataObj, from, to) {\r\n var _this = _super.call(this, sourceKey, key, dataObj) || this;\r\n _this.sourceKey = sourceKey;\r\n _this.from = from;\r\n _this.to = to;\r\n return _this;\r\n }\r\n Object.defineProperty(DataSourceEdgeItem.prototype, \"text\", {\r\n get: function () {\r\n return this.texts && this.texts[Connector_1.CONNECTOR_DEFAULT_TEXT_POSITION];\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return DataSourceEdgeItem;\r\n}(DataSourceItem));\r\nexports.DataSourceEdgeItem = DataSourceEdgeItem;\r\n\n\n/***/ }),\n/* 351 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ViewController = void 0;\r\nvar CommandManager_1 = __webpack_require__(81);\r\nvar LOG_MIN_ZOOM = Math.log(0.05);\r\nvar LOG_MAX_ZOOM = Math.log(3);\r\nvar ZOOM_STEPS = 40;\r\nvar ZERO_STEP = getStepByZoom(1);\r\nvar ZOOMLEVEL_COMMANDS = [CommandManager_1.DiagramCommand.ZoomLevel, CommandManager_1.DiagramCommand.ZoomLevelInPercentage, CommandManager_1.DiagramCommand.Zoom100, CommandManager_1.DiagramCommand.Zoom125, CommandManager_1.DiagramCommand.Zoom200, CommandManager_1.DiagramCommand.Zoom25, CommandManager_1.DiagramCommand.Zoom50, CommandManager_1.DiagramCommand.Zoom75];\r\nvar AUTOZOOM_COMMANDS = [CommandManager_1.DiagramCommand.SwitchAutoZoom, CommandManager_1.DiagramCommand.ToggleAutoZoom, CommandManager_1.DiagramCommand.AutoZoomToContent, CommandManager_1.DiagramCommand.AutoZoomToWidth];\r\nvar ViewController = /** @class */ (function () {\r\n function ViewController(settings, bars) {\r\n this.settings = settings;\r\n this.bars = bars;\r\n settings.onZoomChanged.add(this);\r\n this.autoZoom = settings.autoZoom;\r\n }\r\n ViewController.prototype.initialize = function (view) {\r\n this.view = view;\r\n this.view.onViewChanged.add(this);\r\n };\r\n ViewController.prototype.scrollTo = function (modelPoint, offsetPoint) {\r\n if (this.view)\r\n this.view.setScrollTo(modelPoint, offsetPoint);\r\n };\r\n ViewController.prototype.scrollBy = function (offset) {\r\n if (this.view && (offset.x !== 0 || offset.y !== 0))\r\n return this.view.scrollBy(offset);\r\n return offset;\r\n };\r\n ViewController.prototype.scrollIntoView = function (rectangle) {\r\n this.view && this.view.scrollIntoView(rectangle);\r\n };\r\n ViewController.prototype.normalize = function () {\r\n this.view.tryNormalizePaddings();\r\n };\r\n ViewController.prototype.getNextStepZoom = function (increase) {\r\n var currentZoomStep = this.getNearestCurrentZoomStep();\r\n var delta = increase ? 1 : -1;\r\n var step = Math.min(ZOOM_STEPS - 1, Math.max(0, currentZoomStep + delta));\r\n if (step !== ZERO_STEP) {\r\n var logZoom = LOG_MIN_ZOOM + (LOG_MAX_ZOOM - LOG_MIN_ZOOM) * step / (ZOOM_STEPS - 1);\r\n return Math.exp(logZoom);\r\n }\r\n return 1;\r\n };\r\n ViewController.prototype.getNearestCurrentZoomStep = function () {\r\n var zoom = this.getZoom();\r\n return getStepByZoom(zoom);\r\n };\r\n ViewController.prototype.getZoom = function () {\r\n return this.view ? this.view.actualZoom : this.settings.zoomLevel;\r\n };\r\n ViewController.prototype.resetScroll = function () {\r\n this.view.adjust({ horizontal: true, vertical: true });\r\n };\r\n ViewController.prototype.notifyViewAdjusted = function (canvasOffset) { };\r\n ViewController.prototype.notifyActualZoomChanged = function (actualZoom) {\r\n this.bars.updateItemsState(ZOOMLEVEL_COMMANDS);\r\n };\r\n ViewController.prototype.notifyZoomChanged = function (fixedZoomLevel, autoZoom) {\r\n if (this.autoZoom !== autoZoom) {\r\n this.autoZoom = autoZoom;\r\n this.bars.updateItemsState(AUTOZOOM_COMMANDS);\r\n }\r\n };\r\n return ViewController;\r\n}());\r\nexports.ViewController = ViewController;\r\nfunction getStepByZoom(zoom) {\r\n var logZoom = Math.log(zoom);\r\n return Math.round((logZoom - LOG_MIN_ZOOM) * (ZOOM_STEPS - 1) / (LOG_MAX_ZOOM - LOG_MIN_ZOOM));\r\n}\r\n\n\n/***/ }),\n/* 352 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ToolboxManager = void 0;\r\nvar TextToolbox_1 = __webpack_require__(353);\r\nvar IconToolbox_1 = __webpack_require__(354);\r\nvar TextMeasurer_1 = __webpack_require__(77);\r\nvar math_1 = __webpack_require__(33);\r\nvar ToolboxManager = /** @class */ (function () {\r\n function ToolboxManager(shapeDescriptionManager) {\r\n this.shapeDescriptionManager = shapeDescriptionManager;\r\n this.toolboxes = [];\r\n this.measurers = {};\r\n }\r\n ToolboxManager.prototype.create = function (parent, readOnly, allowDragging, renderAsText, shapes, getAllowedShapeTypes, options) {\r\n var shapeTypes = Array.isArray(shapes) ? shapes : this.shapeDescriptionManager.getTypesByCategory(shapes);\r\n var toolbox = renderAsText ?\r\n new TextToolbox_1.TextToolbox(parent, readOnly, allowDragging, this.shapeDescriptionManager, shapeTypes, getAllowedShapeTypes) :\r\n new IconToolbox_1.IconToolbox(parent, readOnly, allowDragging, this.shapeDescriptionManager, shapeTypes, getAllowedShapeTypes, options, this.getOrCreateMeasurer(parent));\r\n toolbox.render();\r\n this.toolboxes.push(toolbox);\r\n return toolbox;\r\n };\r\n ToolboxManager.prototype.clean = function (removeElement, toolbox) {\r\n if (toolbox) {\r\n toolbox.clean(removeElement);\r\n this.toolboxes.splice(this.toolboxes.indexOf(toolbox), 1);\r\n }\r\n else {\r\n for (var i = 0; i < this.toolboxes.length; i++)\r\n this.toolboxes[i].clean(removeElement);\r\n this.toolboxes = [];\r\n }\r\n };\r\n ToolboxManager.prototype.refresh = function (toolboxes) {\r\n this.toolboxes.forEach(function (toolbox, index) {\r\n if (!toolboxes || (Array.isArray(toolboxes) && toolboxes.indexOf(index) > -1) || index === toolboxes)\r\n toolbox.render();\r\n });\r\n };\r\n ToolboxManager.prototype.applyFilter = function (str, toolboxes) {\r\n var _this = this;\r\n return this.toolboxes.reduce(function (aggr, toolbox, index) {\r\n if (!toolboxes || (Array.isArray(toolboxes) && toolboxes.indexOf(index) > -1) || index === toolboxes)\r\n toolbox.render(function (shapeType) { return _this.searchFilter(shapeType, str, index); }) && aggr.push(index);\r\n return aggr;\r\n }, []);\r\n };\r\n ToolboxManager.prototype.searchFilter = function (shapeType, str, toolboxIndex, filteringToolboxes) {\r\n if (!str || (filteringToolboxes && filteringToolboxes.indexOf(toolboxIndex) === -1))\r\n return true;\r\n str = str.toLowerCase();\r\n var shapeDescription = this.shapeDescriptionManager.get(shapeType);\r\n return shapeDescription.getTitle().toLowerCase().indexOf(str) > -1 ||\r\n shapeDescription.getDefaultText().toLowerCase().indexOf(str) > -1;\r\n };\r\n ToolboxManager.prototype.getOrCreateMeasurer = function (parent) {\r\n var id = parent.getAttribute(\"data-dxdiMeasurerID\");\r\n if (!id || !this.measurers[id]) {\r\n id = math_1.MathUtils.generateGuid();\r\n this.measurers[id] = new TextMeasurer_1.TextMeasurer(parent);\r\n parent.setAttribute(\"data-dxdiMeasurerID\", id);\r\n }\r\n return this.measurers[id];\r\n };\r\n return ToolboxManager;\r\n}());\r\nexports.ToolboxManager = ToolboxManager;\r\n\n\n/***/ }),\n/* 353 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TextToolbox = void 0;\r\nvar Toolbox_1 = __webpack_require__(161);\r\nvar TextToolbox = /** @class */ (function (_super) {\r\n __extends(TextToolbox, _super);\r\n function TextToolbox(parent, readOnly, allowDragging, shapeDescriptionManager, shapeTypes, getAllowedShapeTypes) {\r\n return _super.call(this, parent, readOnly, allowDragging, shapeDescriptionManager, shapeTypes, getAllowedShapeTypes) || this;\r\n }\r\n TextToolbox.prototype.createElements = function (element, shapeTypes) {\r\n var _this = this;\r\n shapeTypes.forEach(function (shapeType) {\r\n var description = _this.shapeDescriptionManager.get(shapeType);\r\n var itemEl = document.createElement(\"div\");\r\n itemEl.setAttribute(\"class\", \"toolbox-text-item\");\r\n itemEl.setAttribute(\"data-tb-type\", shapeType);\r\n itemEl.innerHTML = description.getDefaultText() || description.getTitle();\r\n element.appendChild(itemEl);\r\n });\r\n };\r\n TextToolbox.prototype.createDraggingElement = function (draggingObject) {\r\n var element = document.createElement(\"DIV\");\r\n element.setAttribute(\"class\", \"dxdi-toolbox-drag-text-item\");\r\n var shapeDescription = this.shapeDescriptionManager.get(draggingObject.evt.data);\r\n element.innerHTML = shapeDescription.getDefaultText() || shapeDescription.getTitle();\r\n document.body.appendChild(element);\r\n return element;\r\n };\r\n return TextToolbox;\r\n}(Toolbox_1.Toolbox));\r\nexports.TextToolbox = TextToolbox;\r\n\n\n/***/ }),\n/* 354 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IconToolbox = void 0;\r\nvar Toolbox_1 = __webpack_require__(161);\r\nvar RenderHelper_1 = __webpack_require__(15);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar unit_converter_1 = __webpack_require__(12);\r\nvar point_1 = __webpack_require__(1);\r\nvar TextShapeDescription_1 = __webpack_require__(122);\r\nvar Style_1 = __webpack_require__(30);\r\nvar CustomShapeDescription_1 = __webpack_require__(127);\r\nvar RectaglePrimitive_1 = __webpack_require__(21);\r\nvar DEFAULT_SHAPE_ICON_SIZE = 32;\r\nvar SHRINK_TEXT_SHAPE_ICON_SIZE = 26;\r\nvar SHRINKED_TEXT = \"T\";\r\nvar IconToolbox = /** @class */ (function (_super) {\r\n __extends(IconToolbox, _super);\r\n function IconToolbox(parent, readonly, allowDragging, shapeDescriptionManager, shapeTypes, getAllowedShapeTypes, options, measurer) {\r\n var _this = _super.call(this, parent, readonly, allowDragging, shapeDescriptionManager, shapeTypes, getAllowedShapeTypes) || this;\r\n _this.options = options;\r\n _this.measurer = measurer;\r\n return _this;\r\n }\r\n IconToolbox.prototype.createElements = function (element, shapeTypes) {\r\n var svgElement = document.createElementNS(RenderHelper_1.svgNS, \"svg\");\r\n svgElement.className.baseVal = \"dxdi-canvas\";\r\n element.appendChild(svgElement);\r\n this.drawShapeIcons(svgElement, shapeTypes, this.options.toolboxWidth || svgElement.getBoundingClientRect().width);\r\n };\r\n IconToolbox.prototype.drawShapeIcons = function (parent, shapeTypes, svgWidth) {\r\n var _this = this;\r\n var lineWidth = Style_1.DEFAULT_STROKE_WIDTH;\r\n var targetWidth = svgWidth - 2 * lineWidth;\r\n var shapeIconSize = this.options.shapeIconSize;\r\n if (!shapeIconSize && this.options.shapeIconSpacing && this.options.shapeIconCountInRow)\r\n shapeIconSize = Math.floor((targetWidth - (this.options.shapeIconCountInRow - 1) * this.options.shapeIconSpacing) / this.options.shapeIconCountInRow);\r\n if (!shapeIconSize)\r\n shapeIconSize = DEFAULT_SHAPE_ICON_SIZE;\r\n shapeIconSize = Math.max(shapeIconSize, this.options.shapeIconSpacing / 2);\r\n var width = shapeIconSize;\r\n var iconCountInRow = this.options.shapeIconCountInRow;\r\n if (!iconCountInRow) {\r\n iconCountInRow = 1;\r\n while (width < targetWidth) {\r\n width += this.options.shapeIconSpacing + shapeIconSize;\r\n if (width < targetWidth)\r\n iconCountInRow++;\r\n }\r\n }\r\n var shapeIconSpacing = (iconCountInRow > 1) ? (targetWidth - shapeIconSize * iconCountInRow) / (iconCountInRow - 1) : 0;\r\n var xPos = lineWidth;\r\n var yPos = lineWidth;\r\n var size = unit_converter_1.UnitConverter.pixelsToTwips(shapeIconSize);\r\n shapeTypes.forEach(function (shapeType, index) {\r\n if (index > 0 && index % iconCountInRow === 0) {\r\n xPos = lineWidth;\r\n yPos += shapeIconSize + shapeIconSpacing;\r\n }\r\n var shapeDescription = _this.shapeDescriptionManager.get(shapeType);\r\n var shape = _this.createShape(shapeDescription, xPos, yPos, shapeIconSize < SHRINK_TEXT_SHAPE_ICON_SIZE);\r\n _this.updateShapeIconBounds(shape, shapeIconSize);\r\n var shapeEl = _this.drawShape(parent, shape);\r\n _this.drawSelector(shapeEl, unit_converter_1.UnitConverter.pixelsToTwips(xPos), unit_converter_1.UnitConverter.pixelsToTwips(yPos), size);\r\n xPos += shapeIconSize + shapeIconSpacing;\r\n });\r\n parent.style.height = yPos + shapeIconSize + lineWidth + \"px\";\r\n parent.style.width = svgWidth + \"px\";\r\n };\r\n IconToolbox.prototype.drawShape = function (parent, shape) {\r\n var _this = this;\r\n var primitives = shape.description.createPrimitives(shape, true);\r\n var gEl = document.createElementNS(RenderHelper_1.svgNS, \"g\");\r\n gEl.setAttribute(\"data-tb-type\", shape.description.key.toString());\r\n gEl.setAttribute(\"class\", \"toolbox-item\");\r\n gEl.setAttribute(\"title\", shape.description.getTitle());\r\n if (this.options.shapeIconAttributes)\r\n for (var key in this.options.shapeIconAttributes)\r\n if (Object.prototype.hasOwnProperty.call(this.options.shapeIconAttributes, key))\r\n gEl.setAttribute(key, this.options.shapeIconAttributes[key]);\r\n parent.appendChild(gEl);\r\n primitives.forEach(function (pr) {\r\n var el = pr.createElement(function (e) { return gEl.appendChild(e); });\r\n pr.applyElementProperties(el, _this.measurer);\r\n });\r\n return gEl;\r\n };\r\n IconToolbox.prototype.drawSelector = function (parent, x, y, size) {\r\n var _this = this;\r\n var selectorRect = new RectaglePrimitive_1.RectanglePrimitive(x, y, size, size, undefined, \"selector\");\r\n selectorRect.createElement(function (el) {\r\n selectorRect.applyElementProperties(el, _this.measurer);\r\n parent.appendChild(el);\r\n });\r\n };\r\n IconToolbox.prototype.createShape = function (shapeDescription, xPos, yPos, shrinkText) {\r\n var xPosT = unit_converter_1.UnitConverter.pixelsToTwips(xPos);\r\n var yPosT = unit_converter_1.UnitConverter.pixelsToTwips(yPos);\r\n var shape = new Shape_1.Shape(shapeDescription, new point_1.Point(xPosT, yPosT), true);\r\n if (this.needResetShapeText(shapeDescription))\r\n shape.text = \"\";\r\n else if (shrinkText)\r\n shape.text = SHRINKED_TEXT;\r\n return shape;\r\n };\r\n IconToolbox.prototype.needResetShapeText = function (shapeDescription) {\r\n if (shapeDescription instanceof TextShapeDescription_1.TextShapeDescription)\r\n return false;\r\n if (shapeDescription instanceof CustomShapeDescription_1.CustomShapeDescription && shapeDescription.baseDescription instanceof TextShapeDescription_1.TextShapeDescription)\r\n return false;\r\n return true;\r\n };\r\n IconToolbox.prototype.updateShapeIconBounds = function (shape, shapeIconSize) {\r\n var shapeSizeT = unit_converter_1.UnitConverter.pixelsToTwips(shapeIconSize);\r\n shape.size.height = shape.size.width * shape.getToolboxHeightToWidthRatio();\r\n if (shape.size.width > shape.size.height) {\r\n var ratio = shape.size.height / shape.size.width;\r\n shape.size.width = shapeSizeT;\r\n shape.size.height = shapeSizeT * ratio;\r\n shape.position.y = shape.position.y + (shapeSizeT - shape.size.height) / 2;\r\n shape.parameters.forEach(function (p) { p.value = p.value * shapeSizeT / shape.description.defaultSize.width; });\r\n }\r\n else if (shape.size.width < shape.size.height) {\r\n var ratio = shape.size.width / shape.size.height;\r\n shape.size.height = shapeSizeT;\r\n shape.size.width = shapeSizeT * ratio;\r\n shape.position.x = shape.position.x + (shapeSizeT - shape.size.width) / 2;\r\n shape.parameters.forEach(function (p) { p.value = p.value * shapeSizeT / shape.description.defaultSize.height; });\r\n }\r\n else {\r\n shape.size.width = shapeSizeT;\r\n shape.size.height = shapeSizeT;\r\n shape.parameters.forEach(function (p) { p.value = p.value * shapeSizeT / shape.description.defaultSize.width; });\r\n }\r\n };\r\n IconToolbox.prototype.createDraggingElement = function (draggingObject) {\r\n var element = document.createElement(\"DIV\");\r\n element.setAttribute(\"class\", \"dxdi-toolbox-drag-item\");\r\n document.body.appendChild(element);\r\n var svgElement = document.createElementNS(RenderHelper_1.svgNS, \"svg\");\r\n svgElement.className.baseVal = \"dxdi-canvas\";\r\n element.appendChild(svgElement);\r\n var shapeDescription = this.shapeDescriptionManager.get(draggingObject.evt.data);\r\n var shape = this.createShape(shapeDescription, Style_1.DEFAULT_STROKE_WIDTH, Style_1.DEFAULT_STROKE_WIDTH);\r\n this.drawShape(svgElement, shape);\r\n element.style.width = unit_converter_1.UnitConverter.twipsToPixels(shape.size.width) + 2 * Style_1.DEFAULT_STROKE_WIDTH + \"px\";\r\n element.style.height = unit_converter_1.UnitConverter.twipsToPixels(shape.size.height) + 2 * Style_1.DEFAULT_STROKE_WIDTH + \"px\";\r\n return element;\r\n };\r\n return IconToolbox;\r\n}(Toolbox_1.Toolbox));\r\nexports.IconToolbox = IconToolbox;\r\n\n\n/***/ }),\n/* 355 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ApiController = void 0;\r\nvar batch_updatable_1 = __webpack_require__(79);\r\nvar Event_1 = __webpack_require__(11);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar __1 = __webpack_require__(106);\r\nvar ApiController = /** @class */ (function (_super) {\r\n __extends(ApiController, _super);\r\n function ApiController(events, selection, model) {\r\n var _this = _super.call(this) || this;\r\n _this.events = events;\r\n _this.model = model;\r\n _this.selection = selection;\r\n return _this;\r\n }\r\n ApiController.prototype.notifySelectionChanged = function (selection) {\r\n if (this.isUpdateLocked())\r\n this.registerOccurredEvent(ApiControllerAction.SelectionChanged);\r\n else\r\n this.raiseSelectionChanged();\r\n };\r\n ApiController.prototype.notifyToolboxDragStart = function () {\r\n this.events.raise(\"notifyToolboxItemDragStart\");\r\n };\r\n ApiController.prototype.notifyToolboxDragEnd = function () {\r\n this.events.raise(\"notifyToolboxItemDragEnd\");\r\n };\r\n ApiController.prototype.notifyClick = function (evt) {\r\n var _this = this;\r\n this.tryRaiseUserAction(evt, function (i) { return _this.events.raise(\"notifyItemClick\", i); });\r\n };\r\n ApiController.prototype.notifyDblClick = function (evt) {\r\n var _this = this;\r\n this.tryRaiseUserAction(evt, function (i) { return _this.events.raise(\"notifyItemDblClick\", i); });\r\n };\r\n ApiController.prototype.createNativeItem = function (item) {\r\n return item && this.cleanupNativeItem(item.toNative(this.model.units));\r\n };\r\n ApiController.prototype.createNativeShape = function (shape) {\r\n return this.createNativeItem(shape);\r\n };\r\n ApiController.prototype.createNativeConnector = function (connector) {\r\n return this.createNativeItem(connector);\r\n };\r\n ApiController.prototype.convertUnit = function (value) {\r\n return ModelUtils_1.ModelUtils.getlUnitValue(this.model.units, value);\r\n };\r\n ApiController.prototype.convertPoint = function (point) {\r\n return new __1.Point(this.convertUnit(point.x), this.convertUnit(point.y));\r\n };\r\n ApiController.prototype.convertSize = function (size) {\r\n return new __1.Size(this.convertUnit(size.width), this.convertUnit(size.height));\r\n };\r\n ApiController.prototype.cleanupNativeItem = function (item) {\r\n var ds = this.dataSource;\r\n if (ds) {\r\n if (ds.isAutoGeneratedKey(item.fromKey))\r\n item.fromKey = undefined;\r\n if (ds.isAutoGeneratedKey(item.key))\r\n item.key = undefined;\r\n if (ds.isAutoGeneratedKey(item.toKey))\r\n item.toKey = undefined;\r\n }\r\n return item;\r\n };\r\n ApiController.prototype.setDataSource = function (dataSource) {\r\n this.dataSource = dataSource;\r\n };\r\n ApiController.prototype.tryRaiseUserAction = function (evt, callEvent) {\r\n var _this = this;\r\n if (this.isUserAction(evt)) {\r\n var item_1 = this.model.findItem(evt.source.key);\r\n item_1 && this.events.raise1(function (l) { return callEvent(_this.createNativeItem(item_1)); });\r\n }\r\n };\r\n ApiController.prototype.isUserAction = function (evt) {\r\n return evt.source && (evt.source.type === Event_1.MouseEventElementType.Shape ||\r\n evt.source.type === Event_1.MouseEventElementType.ShapeExpandButton ||\r\n evt.source.type === Event_1.MouseEventElementType.ShapeParameterBox ||\r\n evt.source.type === Event_1.MouseEventElementType.ShapeResizeBox ||\r\n evt.source.type === Event_1.MouseEventElementType.ShapeConnectionPoint ||\r\n evt.source.type === Event_1.MouseEventElementType.Connector ||\r\n evt.source.type === Event_1.MouseEventElementType.ConnectorPoint ||\r\n evt.source.type === Event_1.MouseEventElementType.ConnectorSide ||\r\n evt.source.type === Event_1.MouseEventElementType.ConnectorOrthogonalSide ||\r\n evt.source.type === Event_1.MouseEventElementType.ConnectorText);\r\n };\r\n ApiController.prototype.onUpdateUnlocked = function (occurredEvents) {\r\n if (occurredEvents & ApiControllerAction.SelectionChanged)\r\n this.raiseSelectionChanged();\r\n };\r\n ApiController.prototype.raiseSelectionChanged = function () {\r\n var _this = this;\r\n var items = this.selection.getKeys().map(function (key) { return _this.createNativeItem(_this.model.findItem(key)); });\r\n this.events.raise1(function (l) { return l.notifySelectionChanged(items); });\r\n };\r\n return ApiController;\r\n}(batch_updatable_1.BatchUpdatableObject));\r\nexports.ApiController = ApiController;\r\nvar ApiControllerAction;\r\n(function (ApiControllerAction) {\r\n ApiControllerAction[ApiControllerAction[\"SelectionChanged\"] = 1] = \"SelectionChanged\";\r\n})(ApiControllerAction || (ApiControllerAction = {}));\r\n\n\n/***/ }),\n/* 356 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PermissionsProvider = void 0;\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar AddShape_1 = __webpack_require__(357);\r\nvar DeleteShape_1 = __webpack_require__(358);\r\nvar DeleteConnector_1 = __webpack_require__(359);\r\nvar AddShapeFromToolbox_1 = __webpack_require__(360);\r\nvar ChangeConnection_1 = __webpack_require__(361);\r\nvar ChangeConnectorPoints_1 = __webpack_require__(362);\r\nvar BeforeChangeShapeText_1 = __webpack_require__(363);\r\nvar BeforeChangeConnectorText_1 = __webpack_require__(364);\r\nvar ChangeShapeText_1 = __webpack_require__(365);\r\nvar ChangeConnectorText_1 = __webpack_require__(366);\r\nvar PermissionsProviderStorage_1 = __webpack_require__(367);\r\nvar ResizeShape_1 = __webpack_require__(368);\r\nvar MoveShape_1 = __webpack_require__(369);\r\nvar PermissionsProvider = /** @class */ (function () {\r\n function PermissionsProvider(apiController) {\r\n this.onRequestOperation = new Utils_1.EventDispatcher();\r\n this.cache = [];\r\n this.permissionsLockCount = 0;\r\n this.requestDeleteItems = {};\r\n this.updateUICount = 0;\r\n this.apiController = apiController;\r\n this.operationSettings = new ModelOperationSettings_1.ModelOperationSettings();\r\n this.storage = new PermissionsProviderStorage_1.PermissionsProviderStorage();\r\n }\r\n PermissionsProvider.prototype.notifySelectionChanged = function (_selection) {\r\n this.clearCache();\r\n };\r\n PermissionsProvider.prototype.notifyModelChanged = function (changes) {\r\n this.clearCache();\r\n };\r\n PermissionsProvider.prototype.notifyPageColorChanged = function (color) { };\r\n PermissionsProvider.prototype.notifyPageSizeChanged = function (pageSize, pageLandscape) { };\r\n PermissionsProvider.prototype.clearCache = function (operation) {\r\n if (operation !== undefined)\r\n this.cache = this.cache.filter(function (entry) { return entry.operation !== operation; });\r\n else\r\n this.cache = [];\r\n };\r\n PermissionsProvider.prototype.canDeleteItems = function (items) {\r\n var _this = this;\r\n var allowed = true;\r\n items.forEach(function (item) {\r\n var entity;\r\n if (item instanceof Shape_1.Shape)\r\n entity = new DeleteShape_1.DeleteShapeRequestedEntity(_this.apiController, item);\r\n if (item instanceof Connector_1.Connector)\r\n entity = new DeleteConnector_1.DeleteConnectorRequestedEntity(_this.apiController, item);\r\n allowed = allowed && _this.requestOperation(entity);\r\n });\r\n return allowed;\r\n };\r\n PermissionsProvider.prototype.canAddItems = function (items) {\r\n var _this = this;\r\n var allowed = true;\r\n items.forEach(function (item) {\r\n if (item instanceof Shape_1.Shape)\r\n allowed = allowed && _this.requestOperation(new AddShape_1.AddShapeRequestedEntity(_this.apiController, item));\r\n if (item instanceof Connector_1.Connector) {\r\n allowed = allowed && _this.canChangeConnection(item, item.beginItem, undefined, Connector_1.ConnectorPosition.Begin, item.beginConnectionPointIndex);\r\n allowed = allowed && _this.canChangeConnection(item, item.endItem, undefined, Connector_1.ConnectorPosition.End, item.endConnectionPointIndex);\r\n }\r\n });\r\n return allowed;\r\n };\r\n PermissionsProvider.prototype.canAddShapeFromToolbox = function (itemType) {\r\n return this.requestOperation(new AddShapeFromToolbox_1.AddShapeFromToolboxRequestedEntity(this.apiController, itemType));\r\n };\r\n PermissionsProvider.prototype.canChangeConnection = function (connector, item, oldItem, position, connectionPointIndex) {\r\n if (connector && this.requestDeleteItems[connector.key])\r\n return true;\r\n if (item === undefined || item === null || item instanceof Shape_1.Shape)\r\n return this.requestOperation(new ChangeConnection_1.ChangeConnectionRequestedEntity(this.apiController, connector, item, oldItem, position, connectionPointIndex));\r\n return true;\r\n };\r\n PermissionsProvider.prototype.canChangeConnectorPoints = function (connector, oldPoints, points) {\r\n if (connector && this.requestDeleteItems[connector.key])\r\n return true;\r\n return this.requestOperation(new ChangeConnectorPoints_1.ChangeConnectorPointsRequestedEntity(this.apiController, connector, oldPoints, points));\r\n };\r\n PermissionsProvider.prototype.canChangeShapeText = function (shape) {\r\n return this.requestOperation(new BeforeChangeShapeText_1.BeforeChangeShapeTextRequestedEntity(this.apiController, shape));\r\n };\r\n PermissionsProvider.prototype.canChangeConnectorText = function (connector, position) {\r\n return this.requestOperation(new BeforeChangeConnectorText_1.BeforeChangeConnectorTextRequestedEntity(this.apiController, connector, position));\r\n };\r\n PermissionsProvider.prototype.canApplyShapeTextChange = function (shape, textToApply) {\r\n return this.requestOperation(new ChangeShapeText_1.ChangeShapeTextRequestedEntity(this.apiController, shape, textToApply));\r\n };\r\n PermissionsProvider.prototype.canApplyConnectorTextChange = function (connector, position, textToApply) {\r\n return this.requestOperation(new ChangeConnectorText_1.ChangeConnectorTextRequestedEntity(this.apiController, connector, position, textToApply));\r\n };\r\n PermissionsProvider.prototype.canResizeShapes = function (shapeInfo) {\r\n var _this = this;\r\n var allowed = true;\r\n shapeInfo.forEach(function (info) {\r\n allowed = allowed && _this.requestOperation(new ResizeShape_1.ResizeShapeRequestedEntity(_this.apiController, info.shape, info.oldSize, info.size));\r\n });\r\n return allowed;\r\n };\r\n PermissionsProvider.prototype.canMoveShapes = function (shapeInfo) {\r\n var _this = this;\r\n var allowed = true;\r\n shapeInfo.forEach(function (info) {\r\n allowed = allowed && _this.requestOperation(new MoveShape_1.MoveShapeRequestedEntity(_this.apiController, info.shape, info.oldPosition, info.position));\r\n });\r\n return allowed;\r\n };\r\n PermissionsProvider.prototype.requestOperation = function (entity) {\r\n var allowed = true;\r\n if (!this.permissionsLockCount) {\r\n var cachedEntity_1;\r\n if (this.updateUICount > 0)\r\n this.cache.forEach(function (item) {\r\n if (item.equals(entity)) {\r\n cachedEntity_1 = item;\r\n return;\r\n }\r\n });\r\n if (cachedEntity_1)\r\n allowed = cachedEntity_1.allowed;\r\n else {\r\n this.requestOperationCore(entity);\r\n if (this.updateUICount > 0)\r\n this.cache.push(entity);\r\n allowed = entity.allowed;\r\n }\r\n if (this.updateUICount === 0 && this.storage.needStorePermissions()) {\r\n this.storage.storePermission(entity.storageKey, allowed);\r\n return this.storage.isStoredPermissionsGranted();\r\n }\r\n }\r\n return allowed;\r\n };\r\n PermissionsProvider.prototype.requestOperationCore = function (entity) {\r\n entity.eventArgs.allowed = this.operationSettings[entity.settingsKey];\r\n entity.eventArgs.updateUI = this.updateUICount > 0;\r\n if (entity.allowed)\r\n this.onRequestOperation.raise(\"notifyRequestOperation\", entity.operation, entity.eventArgs);\r\n };\r\n PermissionsProvider.prototype.lockPermissions = function () {\r\n this.permissionsLockCount++;\r\n };\r\n PermissionsProvider.prototype.unlockPermissions = function () {\r\n this.permissionsLockCount--;\r\n };\r\n PermissionsProvider.prototype.beginDeleteItems = function (items) {\r\n var _this = this;\r\n items.forEach(function (item) { return _this.requestDeleteItems[item.key] = item; });\r\n };\r\n PermissionsProvider.prototype.endDeleteItems = function () {\r\n this.requestDeleteItems = {};\r\n };\r\n PermissionsProvider.prototype.beginUpdateUI = function () {\r\n this.updateUICount++;\r\n };\r\n PermissionsProvider.prototype.endUpdateUI = function () {\r\n this.updateUICount--;\r\n };\r\n PermissionsProvider.prototype.addInteractingItem = function (item, operation) {\r\n this.storage.addInteractingItem(item, operation);\r\n };\r\n PermissionsProvider.prototype.getInteractingItem = function (item, operation) {\r\n return this.storage.getInteractingItem(item, operation);\r\n };\r\n PermissionsProvider.prototype.getInteractingItemCount = function () {\r\n return this.storage.getInteractingItemCount();\r\n };\r\n PermissionsProvider.prototype.clearInteractingItems = function () {\r\n this.storage.clearInteractingItems();\r\n };\r\n PermissionsProvider.prototype.beginStorePermissions = function () {\r\n this.storage.beginStorePermissions();\r\n };\r\n PermissionsProvider.prototype.endStorePermissions = function () {\r\n this.storage.endStorePermissions();\r\n };\r\n PermissionsProvider.prototype.isStoredPermissionsGranted = function () {\r\n return this.permissionsLockCount > 0 || this.storage.isStoredPermissionsGranted();\r\n };\r\n return PermissionsProvider;\r\n}());\r\nexports.PermissionsProvider = PermissionsProvider;\r\n\n\n/***/ }),\n/* 357 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AddShapeEventArgs = exports.AddShapeRequestedEntity = void 0;\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar RequestedEntity_1 = __webpack_require__(23);\r\nvar AddShapeRequestedEntity = /** @class */ (function (_super) {\r\n __extends(AddShapeRequestedEntity, _super);\r\n function AddShapeRequestedEntity(apiController, shape) {\r\n var _this = _super.call(this, apiController) || this;\r\n _this.shape = shape;\r\n return _this;\r\n }\r\n Object.defineProperty(AddShapeRequestedEntity.prototype, \"operation\", {\r\n get: function () {\r\n return ModelOperationSettings_1.DiagramModelOperation.AddShape;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n AddShapeRequestedEntity.prototype.createEventArgs = function () {\r\n return new AddShapeEventArgs(this.apiController.createNativeShape(this.shape), this.apiController.convertPoint(this.shape.position));\r\n };\r\n Object.defineProperty(AddShapeRequestedEntity.prototype, \"settingsKey\", {\r\n get: function () {\r\n return \"addShape\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AddShapeRequestedEntity.prototype, \"storageKey\", {\r\n get: function () {\r\n return this.settingsKey + \"_\" + (this.shape && this.shape.key);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n AddShapeRequestedEntity.prototype.equals = function (other) {\r\n if (other instanceof AddShapeRequestedEntity)\r\n return this.shape === other.shape && this.shape.position.equals(other.shape.position);\r\n return false;\r\n };\r\n return AddShapeRequestedEntity;\r\n}(RequestedEntity_1.RequestedEntity));\r\nexports.AddShapeRequestedEntity = AddShapeRequestedEntity;\r\nvar AddShapeEventArgs = /** @class */ (function (_super) {\r\n __extends(AddShapeEventArgs, _super);\r\n function AddShapeEventArgs(shape, position) {\r\n var _this = _super.call(this) || this;\r\n _this.shape = shape;\r\n _this.position = position;\r\n return _this;\r\n }\r\n return AddShapeEventArgs;\r\n}(RequestedEntity_1.PermissionRequestEventArgs));\r\nexports.AddShapeEventArgs = AddShapeEventArgs;\r\n\n\n/***/ }),\n/* 358 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DeleteShapeEventArgs = exports.DeleteShapeRequestedEntity = void 0;\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar RequestedEntity_1 = __webpack_require__(23);\r\nvar DeleteShapeRequestedEntity = /** @class */ (function (_super) {\r\n __extends(DeleteShapeRequestedEntity, _super);\r\n function DeleteShapeRequestedEntity(apiController, shape) {\r\n var _this = _super.call(this, apiController) || this;\r\n _this.shape = shape;\r\n return _this;\r\n }\r\n Object.defineProperty(DeleteShapeRequestedEntity.prototype, \"operation\", {\r\n get: function () {\r\n return ModelOperationSettings_1.DiagramModelOperation.DeleteShape;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DeleteShapeRequestedEntity.prototype.createEventArgs = function () {\r\n return new DeleteShapeEventArgs(this.apiController.createNativeShape(this.shape));\r\n };\r\n Object.defineProperty(DeleteShapeRequestedEntity.prototype, \"settingsKey\", {\r\n get: function () {\r\n return \"deleteShape\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DeleteShapeRequestedEntity.prototype, \"storageKey\", {\r\n get: function () {\r\n return this.settingsKey + \"_\" + (this.shape && this.shape.key);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DeleteShapeRequestedEntity.prototype.equals = function (other) {\r\n if (other instanceof DeleteShapeRequestedEntity)\r\n return this.shape === other.shape;\r\n return false;\r\n };\r\n return DeleteShapeRequestedEntity;\r\n}(RequestedEntity_1.RequestedEntity));\r\nexports.DeleteShapeRequestedEntity = DeleteShapeRequestedEntity;\r\nvar DeleteShapeEventArgs = /** @class */ (function (_super) {\r\n __extends(DeleteShapeEventArgs, _super);\r\n function DeleteShapeEventArgs(shape) {\r\n var _this = _super.call(this) || this;\r\n _this.shape = shape;\r\n return _this;\r\n }\r\n return DeleteShapeEventArgs;\r\n}(RequestedEntity_1.PermissionRequestEventArgs));\r\nexports.DeleteShapeEventArgs = DeleteShapeEventArgs;\r\n\n\n/***/ }),\n/* 359 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DeleteConnectorEventArgs = exports.DeleteConnectorRequestedEntity = void 0;\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar RequestedEntity_1 = __webpack_require__(23);\r\nvar DeleteConnectorRequestedEntity = /** @class */ (function (_super) {\r\n __extends(DeleteConnectorRequestedEntity, _super);\r\n function DeleteConnectorRequestedEntity(apiController, connector) {\r\n var _this = _super.call(this, apiController) || this;\r\n _this.connector = connector;\r\n return _this;\r\n }\r\n Object.defineProperty(DeleteConnectorRequestedEntity.prototype, \"operation\", {\r\n get: function () {\r\n return ModelOperationSettings_1.DiagramModelOperation.DeleteConnector;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DeleteConnectorRequestedEntity.prototype.createEventArgs = function () {\r\n return new DeleteConnectorEventArgs(this.apiController.createNativeConnector(this.connector));\r\n };\r\n Object.defineProperty(DeleteConnectorRequestedEntity.prototype, \"settingsKey\", {\r\n get: function () {\r\n return \"deleteConnector\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(DeleteConnectorRequestedEntity.prototype, \"storageKey\", {\r\n get: function () {\r\n return this.settingsKey + \"_\" + (this.connector && this.connector.key);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n DeleteConnectorRequestedEntity.prototype.equals = function (other) {\r\n if (other instanceof DeleteConnectorRequestedEntity)\r\n return this.connector === other.connector;\r\n return false;\r\n };\r\n return DeleteConnectorRequestedEntity;\r\n}(RequestedEntity_1.RequestedEntity));\r\nexports.DeleteConnectorRequestedEntity = DeleteConnectorRequestedEntity;\r\nvar DeleteConnectorEventArgs = /** @class */ (function (_super) {\r\n __extends(DeleteConnectorEventArgs, _super);\r\n function DeleteConnectorEventArgs(connector) {\r\n var _this = _super.call(this) || this;\r\n _this.connector = connector;\r\n return _this;\r\n }\r\n return DeleteConnectorEventArgs;\r\n}(RequestedEntity_1.PermissionRequestEventArgs));\r\nexports.DeleteConnectorEventArgs = DeleteConnectorEventArgs;\r\n\n\n/***/ }),\n/* 360 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AddShapeFromToolboxEventArgs = exports.AddShapeFromToolboxRequestedEntity = void 0;\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar RequestedEntity_1 = __webpack_require__(23);\r\nvar AddShapeFromToolboxRequestedEntity = /** @class */ (function (_super) {\r\n __extends(AddShapeFromToolboxRequestedEntity, _super);\r\n function AddShapeFromToolboxRequestedEntity(apiController, shapeType) {\r\n var _this = _super.call(this, apiController) || this;\r\n _this.shapeType = shapeType;\r\n return _this;\r\n }\r\n Object.defineProperty(AddShapeFromToolboxRequestedEntity.prototype, \"operation\", {\r\n get: function () {\r\n return ModelOperationSettings_1.DiagramModelOperation.AddShapeFromToolbox;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n AddShapeFromToolboxRequestedEntity.prototype.createEventArgs = function () {\r\n return new AddShapeFromToolboxEventArgs(this.shapeType);\r\n };\r\n Object.defineProperty(AddShapeFromToolboxRequestedEntity.prototype, \"settingsKey\", {\r\n get: function () {\r\n return \"addShapeFromToolbox\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AddShapeFromToolboxRequestedEntity.prototype, \"storageKey\", {\r\n get: function () {\r\n return this.settingsKey + \"_\" + this.shapeType;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n AddShapeFromToolboxRequestedEntity.prototype.equals = function (other) {\r\n if (other instanceof AddShapeFromToolboxRequestedEntity)\r\n return this.shapeType === other.shapeType;\r\n return false;\r\n };\r\n return AddShapeFromToolboxRequestedEntity;\r\n}(RequestedEntity_1.RequestedEntity));\r\nexports.AddShapeFromToolboxRequestedEntity = AddShapeFromToolboxRequestedEntity;\r\nvar AddShapeFromToolboxEventArgs = /** @class */ (function (_super) {\r\n __extends(AddShapeFromToolboxEventArgs, _super);\r\n function AddShapeFromToolboxEventArgs(shapeType) {\r\n var _this = _super.call(this) || this;\r\n _this.shapeType = shapeType;\r\n return _this;\r\n }\r\n return AddShapeFromToolboxEventArgs;\r\n}(RequestedEntity_1.PermissionRequestEventArgs));\r\nexports.AddShapeFromToolboxEventArgs = AddShapeFromToolboxEventArgs;\r\n\n\n/***/ }),\n/* 361 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeConnectionEventArgs = exports.ChangeConnectionRequestedEntity = void 0;\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar RequestedEntity_1 = __webpack_require__(23);\r\nvar ChangeConnectionRequestedEntity = /** @class */ (function (_super) {\r\n __extends(ChangeConnectionRequestedEntity, _super);\r\n function ChangeConnectionRequestedEntity(apiController, connector, shape, oldShape, position, connectionPointIndex) {\r\n var _this = _super.call(this, apiController) || this;\r\n _this.connector = connector;\r\n _this.shape = shape;\r\n _this.oldShape = oldShape;\r\n _this.position = position;\r\n _this.connectionPointIndex = connectionPointIndex;\r\n return _this;\r\n }\r\n Object.defineProperty(ChangeConnectionRequestedEntity.prototype, \"operation\", {\r\n get: function () {\r\n return ModelOperationSettings_1.DiagramModelOperation.ChangeConnection;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ChangeConnectionRequestedEntity.prototype.createEventArgs = function () {\r\n return new ChangeConnectionEventArgs(this.apiController.createNativeConnector(this.connector), this.apiController.createNativeShape(this.shape), this.apiController.createNativeShape(this.oldShape), this.position, this.connectionPointIndex);\r\n };\r\n Object.defineProperty(ChangeConnectionRequestedEntity.prototype, \"settingsKey\", {\r\n get: function () {\r\n return \"changeConnection\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChangeConnectionRequestedEntity.prototype, \"storageKey\", {\r\n get: function () {\r\n return this.settingsKey + \"_\" + (this.connector && this.connector.key) + \"_\" + this.position;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ChangeConnectionRequestedEntity.prototype.equals = function (other) {\r\n if (other instanceof ChangeConnectionRequestedEntity) {\r\n var connectorsAreEqual = (!this.connector && !other.connector) || (this.connector && other.connector && this.connector === other.connector);\r\n var shapesAreEqual = (!this.shape && !other.shape) || (this.shape && other.shape && this.shape === other.shape);\r\n var oldShapesAreEqual = (!this.oldShape && !other.oldShape) || (this.oldShape && other.oldShape && this.oldShape === other.oldShape);\r\n return shapesAreEqual && oldShapesAreEqual && connectorsAreEqual && this.position === other.position && this.connectionPointIndex === other.connectionPointIndex;\r\n }\r\n return false;\r\n };\r\n return ChangeConnectionRequestedEntity;\r\n}(RequestedEntity_1.RequestedEntity));\r\nexports.ChangeConnectionRequestedEntity = ChangeConnectionRequestedEntity;\r\nvar ChangeConnectionEventArgs = /** @class */ (function (_super) {\r\n __extends(ChangeConnectionEventArgs, _super);\r\n function ChangeConnectionEventArgs(connector, shape, oldShape, position, connectionPointIndex) {\r\n var _this = _super.call(this) || this;\r\n _this.connector = connector;\r\n _this.shape = shape;\r\n _this.oldShape = oldShape;\r\n _this.position = position;\r\n _this.connectionPointIndex = connectionPointIndex;\r\n return _this;\r\n }\r\n return ChangeConnectionEventArgs;\r\n}(RequestedEntity_1.PermissionRequestEventArgs));\r\nexports.ChangeConnectionEventArgs = ChangeConnectionEventArgs;\r\n\n\n/***/ }),\n/* 362 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeConnectorPointsEventArgs = exports.ChangeConnectorPointsRequestedEntity = void 0;\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar RequestedEntity_1 = __webpack_require__(23);\r\nvar Utils_1 = __webpack_require__(3);\r\nvar ChangeConnectorPointsRequestedEntity = /** @class */ (function (_super) {\r\n __extends(ChangeConnectorPointsRequestedEntity, _super);\r\n function ChangeConnectorPointsRequestedEntity(apiController, connector, oldPoints, points) {\r\n var _this = _super.call(this, apiController) || this;\r\n _this.connector = connector;\r\n _this.oldPoints = oldPoints;\r\n _this.points = points;\r\n return _this;\r\n }\r\n Object.defineProperty(ChangeConnectorPointsRequestedEntity.prototype, \"operation\", {\r\n get: function () {\r\n return ModelOperationSettings_1.DiagramModelOperation.ChangeConnectorPoints;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ChangeConnectorPointsRequestedEntity.prototype.createEventArgs = function () {\r\n var _this = this;\r\n return new ChangeConnectorPointsEventArgs(this.apiController.createNativeConnector(this.connector), this.oldPoints.map(function (pt) { return _this.apiController.convertPoint(pt); }), this.points.map(function (pt) { return _this.apiController.convertPoint(pt); }));\r\n };\r\n Object.defineProperty(ChangeConnectorPointsRequestedEntity.prototype, \"settingsKey\", {\r\n get: function () {\r\n return \"changeConnectorPoints\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChangeConnectorPointsRequestedEntity.prototype, \"storageKey\", {\r\n get: function () {\r\n return this.settingsKey + \"_\" + (this.connector && this.connector.key);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ChangeConnectorPointsRequestedEntity.prototype.equals = function (other) {\r\n if (other instanceof ChangeConnectorPointsRequestedEntity)\r\n return this.connector === other.connector &&\r\n Utils_1.GeometryUtils.arePointsEqual(this.oldPoints, other.oldPoints) &&\r\n Utils_1.GeometryUtils.arePointsEqual(this.points, other.points);\r\n return false;\r\n };\r\n return ChangeConnectorPointsRequestedEntity;\r\n}(RequestedEntity_1.RequestedEntity));\r\nexports.ChangeConnectorPointsRequestedEntity = ChangeConnectorPointsRequestedEntity;\r\nvar ChangeConnectorPointsEventArgs = /** @class */ (function (_super) {\r\n __extends(ChangeConnectorPointsEventArgs, _super);\r\n function ChangeConnectorPointsEventArgs(connector, oldPoints, points) {\r\n var _this = _super.call(this) || this;\r\n _this.connector = connector;\r\n _this.oldPoints = oldPoints;\r\n _this.points = points;\r\n return _this;\r\n }\r\n return ChangeConnectorPointsEventArgs;\r\n}(RequestedEntity_1.PermissionRequestEventArgs));\r\nexports.ChangeConnectorPointsEventArgs = ChangeConnectorPointsEventArgs;\r\n\n\n/***/ }),\n/* 363 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BeforeChangeShapeTextEventArgs = exports.BeforeChangeShapeTextRequestedEntity = void 0;\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar RequestedEntity_1 = __webpack_require__(23);\r\nvar BeforeChangeShapeTextRequestedEntity = /** @class */ (function (_super) {\r\n __extends(BeforeChangeShapeTextRequestedEntity, _super);\r\n function BeforeChangeShapeTextRequestedEntity(apiController, shape) {\r\n var _this = _super.call(this, apiController) || this;\r\n _this.shape = shape;\r\n return _this;\r\n }\r\n Object.defineProperty(BeforeChangeShapeTextRequestedEntity.prototype, \"operation\", {\r\n get: function () {\r\n return ModelOperationSettings_1.DiagramModelOperation.BeforeChangeShapeText;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n BeforeChangeShapeTextRequestedEntity.prototype.createEventArgs = function () {\r\n return new BeforeChangeShapeTextEventArgs(this.apiController.createNativeShape(this.shape));\r\n };\r\n Object.defineProperty(BeforeChangeShapeTextRequestedEntity.prototype, \"settingsKey\", {\r\n get: function () {\r\n return \"changeShapeText\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BeforeChangeShapeTextRequestedEntity.prototype, \"storageKey\", {\r\n get: function () {\r\n return \"before\" + this.settingsKey + \"_\" + (this.shape && this.shape.key);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n BeforeChangeShapeTextRequestedEntity.prototype.equals = function (other) {\r\n if (other instanceof BeforeChangeShapeTextRequestedEntity)\r\n return this.shape === other.shape && this.shape.text === other.shape.text;\r\n return false;\r\n };\r\n return BeforeChangeShapeTextRequestedEntity;\r\n}(RequestedEntity_1.RequestedEntity));\r\nexports.BeforeChangeShapeTextRequestedEntity = BeforeChangeShapeTextRequestedEntity;\r\nvar BeforeChangeShapeTextEventArgs = /** @class */ (function (_super) {\r\n __extends(BeforeChangeShapeTextEventArgs, _super);\r\n function BeforeChangeShapeTextEventArgs(shape) {\r\n var _this = _super.call(this) || this;\r\n _this.shape = shape;\r\n return _this;\r\n }\r\n return BeforeChangeShapeTextEventArgs;\r\n}(RequestedEntity_1.PermissionRequestEventArgs));\r\nexports.BeforeChangeShapeTextEventArgs = BeforeChangeShapeTextEventArgs;\r\n\n\n/***/ }),\n/* 364 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BeforeChangeConnectorTextEventArgs = exports.BeforeChangeConnectorTextRequestedEntity = void 0;\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar RequestedEntity_1 = __webpack_require__(23);\r\nvar BeforeChangeConnectorTextRequestedEntity = /** @class */ (function (_super) {\r\n __extends(BeforeChangeConnectorTextRequestedEntity, _super);\r\n function BeforeChangeConnectorTextRequestedEntity(apiController, connector, position) {\r\n var _this = _super.call(this, apiController) || this;\r\n _this.connector = connector;\r\n _this.position = position;\r\n return _this;\r\n }\r\n Object.defineProperty(BeforeChangeConnectorTextRequestedEntity.prototype, \"operation\", {\r\n get: function () {\r\n return ModelOperationSettings_1.DiagramModelOperation.BeforeChangeConnectorText;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n BeforeChangeConnectorTextRequestedEntity.prototype.createEventArgs = function () {\r\n return new BeforeChangeConnectorTextEventArgs(this.apiController.createNativeConnector(this.connector), this.position, this.connector.texts.map(function (t) { return t; }).sort(function (a, b) { return a.position - b.position; }).indexOf(this.connector.texts.get(this.position)));\r\n };\r\n Object.defineProperty(BeforeChangeConnectorTextRequestedEntity.prototype, \"settingsKey\", {\r\n get: function () {\r\n return \"changeConnectorText\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(BeforeChangeConnectorTextRequestedEntity.prototype, \"storageKey\", {\r\n get: function () {\r\n return \"before\" + this.settingsKey + \"_\" + (this.connector && this.connector.key);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n BeforeChangeConnectorTextRequestedEntity.prototype.equals = function (other) {\r\n if (other instanceof BeforeChangeConnectorTextRequestedEntity)\r\n return this.connector === other.connector && this.position === other.position && this.connector.texts.get(this.position) === other.connector.texts.get(other.position);\r\n return false;\r\n };\r\n return BeforeChangeConnectorTextRequestedEntity;\r\n}(RequestedEntity_1.RequestedEntity));\r\nexports.BeforeChangeConnectorTextRequestedEntity = BeforeChangeConnectorTextRequestedEntity;\r\nvar BeforeChangeConnectorTextEventArgs = /** @class */ (function (_super) {\r\n __extends(BeforeChangeConnectorTextEventArgs, _super);\r\n function BeforeChangeConnectorTextEventArgs(connector, position, index) {\r\n var _this = _super.call(this) || this;\r\n _this.connector = connector;\r\n _this.position = position;\r\n _this.index = index;\r\n return _this;\r\n }\r\n return BeforeChangeConnectorTextEventArgs;\r\n}(RequestedEntity_1.PermissionRequestEventArgs));\r\nexports.BeforeChangeConnectorTextEventArgs = BeforeChangeConnectorTextEventArgs;\r\n\n\n/***/ }),\n/* 365 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeShapeTextEventArgs = exports.ChangeShapeTextRequestedEntity = void 0;\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar RequestedEntity_1 = __webpack_require__(23);\r\nvar ChangeShapeTextRequestedEntity = /** @class */ (function (_super) {\r\n __extends(ChangeShapeTextRequestedEntity, _super);\r\n function ChangeShapeTextRequestedEntity(apiController, shape, text) {\r\n var _this = _super.call(this, apiController) || this;\r\n _this.shape = shape;\r\n _this.text = text;\r\n return _this;\r\n }\r\n Object.defineProperty(ChangeShapeTextRequestedEntity.prototype, \"operation\", {\r\n get: function () {\r\n return ModelOperationSettings_1.DiagramModelOperation.ChangeShapeText;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ChangeShapeTextRequestedEntity.prototype.createEventArgs = function () {\r\n return new ChangeShapeTextEventArgs(this.apiController.createNativeShape(this.shape), this.text);\r\n };\r\n Object.defineProperty(ChangeShapeTextRequestedEntity.prototype, \"settingsKey\", {\r\n get: function () {\r\n return \"changeShapeText\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChangeShapeTextRequestedEntity.prototype, \"storageKey\", {\r\n get: function () {\r\n return this.settingsKey + \"_\" + (this.shape && this.shape.key);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ChangeShapeTextRequestedEntity.prototype.equals = function (other) {\r\n if (other instanceof ChangeShapeTextRequestedEntity)\r\n return this.shape === other.shape && this.text === other.text;\r\n return false;\r\n };\r\n return ChangeShapeTextRequestedEntity;\r\n}(RequestedEntity_1.RequestedEntity));\r\nexports.ChangeShapeTextRequestedEntity = ChangeShapeTextRequestedEntity;\r\nvar ChangeShapeTextEventArgs = /** @class */ (function (_super) {\r\n __extends(ChangeShapeTextEventArgs, _super);\r\n function ChangeShapeTextEventArgs(shape, text) {\r\n var _this = _super.call(this) || this;\r\n _this.shape = shape;\r\n _this.text = text;\r\n return _this;\r\n }\r\n return ChangeShapeTextEventArgs;\r\n}(RequestedEntity_1.PermissionRequestEventArgs));\r\nexports.ChangeShapeTextEventArgs = ChangeShapeTextEventArgs;\r\n\n\n/***/ }),\n/* 366 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChangeConnectorTextEventArgs = exports.ChangeConnectorTextRequestedEntity = void 0;\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar RequestedEntity_1 = __webpack_require__(23);\r\nvar ChangeConnectorTextRequestedEntity = /** @class */ (function (_super) {\r\n __extends(ChangeConnectorTextRequestedEntity, _super);\r\n function ChangeConnectorTextRequestedEntity(apiController, connector, position, text) {\r\n var _this = _super.call(this, apiController) || this;\r\n _this.connector = connector;\r\n _this.position = position;\r\n _this.text = text;\r\n return _this;\r\n }\r\n Object.defineProperty(ChangeConnectorTextRequestedEntity.prototype, \"operation\", {\r\n get: function () {\r\n return ModelOperationSettings_1.DiagramModelOperation.ChangeConnectorText;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ChangeConnectorTextRequestedEntity.prototype.createEventArgs = function () {\r\n return new ChangeConnectorTextEventArgs(this.apiController.createNativeConnector(this.connector), this.position, this.connector.texts.map(function (t) { return t; }).sort(function (a, b) { return a.position - b.position; }).indexOf(this.connector.texts.get(this.position)), this.text);\r\n };\r\n Object.defineProperty(ChangeConnectorTextRequestedEntity.prototype, \"settingsKey\", {\r\n get: function () {\r\n return \"changeConnectorText\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ChangeConnectorTextRequestedEntity.prototype, \"storageKey\", {\r\n get: function () {\r\n return this.settingsKey + \"_\" + (this.connector && this.connector.key);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ChangeConnectorTextRequestedEntity.prototype.equals = function (other) {\r\n if (other instanceof ChangeConnectorTextRequestedEntity)\r\n return this.connector === other.connector && this.position === other.position && this.text === other.text;\r\n return false;\r\n };\r\n return ChangeConnectorTextRequestedEntity;\r\n}(RequestedEntity_1.RequestedEntity));\r\nexports.ChangeConnectorTextRequestedEntity = ChangeConnectorTextRequestedEntity;\r\nvar ChangeConnectorTextEventArgs = /** @class */ (function (_super) {\r\n __extends(ChangeConnectorTextEventArgs, _super);\r\n function ChangeConnectorTextEventArgs(connector, position, index, text) {\r\n var _this = _super.call(this) || this;\r\n _this.connector = connector;\r\n _this.position = position;\r\n _this.index = index;\r\n _this.text = text;\r\n return _this;\r\n }\r\n return ChangeConnectorTextEventArgs;\r\n}(RequestedEntity_1.PermissionRequestEventArgs));\r\nexports.ChangeConnectorTextEventArgs = ChangeConnectorTextEventArgs;\r\n\n\n/***/ }),\n/* 367 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PermissionsProviderStorage = void 0;\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar PermissionsProviderStorage = /** @class */ (function () {\r\n function PermissionsProviderStorage() {\r\n this.interactingItems = {};\r\n this.storedPermissions = {};\r\n }\r\n PermissionsProviderStorage.prototype.addInteractingItem = function (item, operation) {\r\n var key = this.getInteractingItemKey(item, operation);\r\n if (this.interactingItems[key] === undefined && (item instanceof Shape_1.Shape || item instanceof Connector_1.Connector))\r\n this.interactingItems[key] = item.clone();\r\n };\r\n PermissionsProviderStorage.prototype.getInteractingItem = function (item, operation) {\r\n var key = this.getInteractingItemKey(item, operation);\r\n return this.interactingItems[key];\r\n };\r\n PermissionsProviderStorage.prototype.getInteractingItemCount = function () {\r\n return Object.keys(this.interactingItems).length;\r\n };\r\n PermissionsProviderStorage.prototype.clearInteractingItems = function () {\r\n this.interactingItems = {};\r\n };\r\n PermissionsProviderStorage.prototype.getInteractingItemKey = function (item, operation) {\r\n return item.key + (operation !== undefined ? \"_\" + operation.toString() : \"\");\r\n };\r\n PermissionsProviderStorage.prototype.needStorePermissions = function () {\r\n return this.storePermissions;\r\n };\r\n PermissionsProviderStorage.prototype.beginStorePermissions = function () {\r\n this.storePermissions = true;\r\n };\r\n PermissionsProviderStorage.prototype.endStorePermissions = function () {\r\n this.storePermissions = false;\r\n this.storedPermissions = {};\r\n };\r\n PermissionsProviderStorage.prototype.isStoredPermissionsGranted = function () {\r\n var keys = Object.keys(this.storedPermissions);\r\n var granted = true;\r\n for (var i = 0; i < keys.length; i++)\r\n granted = granted && this.storedPermissions[keys[i]];\r\n return granted;\r\n };\r\n PermissionsProviderStorage.prototype.storePermission = function (key, allowed) {\r\n this.storedPermissions[key] = allowed;\r\n };\r\n return PermissionsProviderStorage;\r\n}());\r\nexports.PermissionsProviderStorage = PermissionsProviderStorage;\r\n\n\n/***/ }),\n/* 368 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ResizeShapeEventArgs = exports.ResizeShapeRequestedEntity = void 0;\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar RequestedEntity_1 = __webpack_require__(23);\r\nvar ResizeShapeRequestedEntity = /** @class */ (function (_super) {\r\n __extends(ResizeShapeRequestedEntity, _super);\r\n function ResizeShapeRequestedEntity(apiController, shape, oldSize, size) {\r\n var _this = _super.call(this, apiController) || this;\r\n _this.shape = shape;\r\n _this.oldSize = oldSize;\r\n _this.size = size;\r\n return _this;\r\n }\r\n Object.defineProperty(ResizeShapeRequestedEntity.prototype, \"operation\", {\r\n get: function () {\r\n return ModelOperationSettings_1.DiagramModelOperation.ResizeShape;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ResizeShapeRequestedEntity.prototype.createEventArgs = function () {\r\n return new ResizeShapeEventArgs(this.apiController.createNativeShape(this.shape), this.apiController.convertSize(this.oldSize), this.apiController.convertSize(this.size));\r\n };\r\n Object.defineProperty(ResizeShapeRequestedEntity.prototype, \"settingsKey\", {\r\n get: function () {\r\n return \"resizeShape\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ResizeShapeRequestedEntity.prototype, \"storageKey\", {\r\n get: function () {\r\n return this.settingsKey + \"_\" + (this.shape && this.shape.key);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ResizeShapeRequestedEntity.prototype.equals = function (other) {\r\n if (other instanceof ResizeShapeRequestedEntity)\r\n return this.shape === other.shape && this.oldSize.equals(other.oldSize) && this.size.equals(other.size);\r\n return false;\r\n };\r\n return ResizeShapeRequestedEntity;\r\n}(RequestedEntity_1.RequestedEntity));\r\nexports.ResizeShapeRequestedEntity = ResizeShapeRequestedEntity;\r\nvar ResizeShapeEventArgs = /** @class */ (function (_super) {\r\n __extends(ResizeShapeEventArgs, _super);\r\n function ResizeShapeEventArgs(shape, oldSize, size) {\r\n var _this = _super.call(this) || this;\r\n _this.shape = shape;\r\n _this.oldSize = oldSize;\r\n _this.size = size;\r\n return _this;\r\n }\r\n return ResizeShapeEventArgs;\r\n}(RequestedEntity_1.PermissionRequestEventArgs));\r\nexports.ResizeShapeEventArgs = ResizeShapeEventArgs;\r\n\n\n/***/ }),\n/* 369 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MoveShapeEventArgs = exports.MoveShapeRequestedEntity = void 0;\r\nvar ModelOperationSettings_1 = __webpack_require__(16);\r\nvar RequestedEntity_1 = __webpack_require__(23);\r\nvar MoveShapeRequestedEntity = /** @class */ (function (_super) {\r\n __extends(MoveShapeRequestedEntity, _super);\r\n function MoveShapeRequestedEntity(apiController, shape, oldPosition, position) {\r\n var _this = _super.call(this, apiController) || this;\r\n _this.shape = shape;\r\n _this.oldPosition = oldPosition;\r\n _this.position = position;\r\n return _this;\r\n }\r\n Object.defineProperty(MoveShapeRequestedEntity.prototype, \"operation\", {\r\n get: function () {\r\n return ModelOperationSettings_1.DiagramModelOperation.MoveShape;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n MoveShapeRequestedEntity.prototype.createEventArgs = function () {\r\n return new MoveShapeEventArgs(this.apiController.createNativeShape(this.shape), this.apiController.convertPoint(this.oldPosition), this.apiController.convertPoint(this.position));\r\n };\r\n Object.defineProperty(MoveShapeRequestedEntity.prototype, \"settingsKey\", {\r\n get: function () {\r\n return \"moveShape\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(MoveShapeRequestedEntity.prototype, \"storageKey\", {\r\n get: function () {\r\n return this.settingsKey + \"_\" + (this.shape && this.shape.key);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n MoveShapeRequestedEntity.prototype.equals = function (other) {\r\n if (other instanceof MoveShapeRequestedEntity)\r\n return this.shape === other.shape && this.oldPosition.equals(other.oldPosition) && this.position.equals(other.position);\r\n return false;\r\n };\r\n return MoveShapeRequestedEntity;\r\n}(RequestedEntity_1.RequestedEntity));\r\nexports.MoveShapeRequestedEntity = MoveShapeRequestedEntity;\r\nvar MoveShapeEventArgs = /** @class */ (function (_super) {\r\n __extends(MoveShapeEventArgs, _super);\r\n function MoveShapeEventArgs(shape, oldPosition, position) {\r\n var _this = _super.call(this) || this;\r\n _this.shape = shape;\r\n _this.oldPosition = oldPosition;\r\n _this.position = position;\r\n return _this;\r\n }\r\n return MoveShapeEventArgs;\r\n}(RequestedEntity_1.PermissionRequestEventArgs));\r\nexports.MoveShapeEventArgs = MoveShapeEventArgs;\r\n\n\n/***/ }),\n/* 370 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorRoutingModel = exports.ConnectorRoutingPenaltyDescription = void 0;\r\nvar Settings_1 = __webpack_require__(27);\r\nvar Shape_1 = __webpack_require__(14);\r\nvar Connector_1 = __webpack_require__(7);\r\nvar ConnectorProperties_1 = __webpack_require__(31);\r\nvar RightAngleConnectorRoutingStrategy_1 = __webpack_require__(371);\r\nvar ConnectorRoutingPenaltyDescription = /** @class */ (function () {\r\n function ConnectorRoutingPenaltyDescription() {\r\n this.shape = 20.0;\r\n this.margin = 2.0;\r\n this.turnBack = 20.0;\r\n this.turnLeft = 3.1;\r\n this.turnRight = 3.0;\r\n }\r\n return ConnectorRoutingPenaltyDescription;\r\n}());\r\nexports.ConnectorRoutingPenaltyDescription = ConnectorRoutingPenaltyDescription;\r\nvar ConnectorRoutingModel = /** @class */ (function () {\r\n function ConnectorRoutingModel() {\r\n this.connectorRoutingMode = Settings_1.ConnectorRoutingMode.AllShapesOnly;\r\n this.shapeMargins = Connector_1.Connector.minOffset;\r\n this.shouldReverseConnections = true;\r\n this.shouldResizeConnections = true;\r\n this.penaltyDescription = new ConnectorRoutingPenaltyDescription();\r\n }\r\n ConnectorRoutingModel.prototype.initialize = function (model) {\r\n this.model = model;\r\n };\r\n ConnectorRoutingModel.prototype.createStrategy = function (option) {\r\n if (this.model !== undefined && this.connectorRoutingMode !== Settings_1.ConnectorRoutingMode.None && option === ConnectorProperties_1.ConnectorLineOption.Orthogonal)\r\n return new RightAngleConnectorRoutingStrategy_1.RightAngleConnectorRoutingStrategy(this);\r\n return undefined;\r\n };\r\n ConnectorRoutingModel.prototype.getItems = function (beginConnectorShape, endConnectorShape) {\r\n return this.getShapes(beginConnectorShape, endConnectorShape);\r\n };\r\n ConnectorRoutingModel.prototype.notifyConnectorRoutingModeChanged = function (connectorRoutingMode) {\r\n this.connectorRoutingMode = connectorRoutingMode;\r\n };\r\n ConnectorRoutingModel.prototype.getShapes = function (beginConnectorShape, endConnectorShape) {\r\n if (this.model === undefined || this.connectorRoutingMode === undefined || this.connectorRoutingMode === Settings_1.ConnectorRoutingMode.None)\r\n return [];\r\n if (this.connectorRoutingMode === Settings_1.ConnectorRoutingMode.AllShapesOnly)\r\n return this.model.items.filter(function (i) { return i instanceof Shape_1.Shape; });\r\n return this.getConnectorShapes(beginConnectorShape, endConnectorShape);\r\n };\r\n ConnectorRoutingModel.prototype.getConnectorShapes = function (beginConnectorShape, endConnectorShape) {\r\n var result = [];\r\n if (beginConnectorShape)\r\n result.push(beginConnectorShape);\r\n if (endConnectorShape && beginConnectorShape !== endConnectorShape)\r\n result.push(endConnectorShape);\r\n return result;\r\n };\r\n return ConnectorRoutingModel;\r\n}());\r\nexports.ConnectorRoutingModel = ConnectorRoutingModel;\r\n\n\n/***/ }),\n/* 371 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RightAngleConnectorRoutingStrategy = void 0;\r\nvar segment_1 = __webpack_require__(34);\r\nvar ConnectorRenderPoint_1 = __webpack_require__(28);\r\nvar RightAngleConnectorRoutingMathOperations_1 = __webpack_require__(62);\r\nvar RightAngleConnectorRoutingContext_1 = __webpack_require__(372);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar RightAngleConnectorRoutingStrategy = /** @class */ (function () {\r\n function RightAngleConnectorRoutingStrategy(model) {\r\n this.model = model;\r\n }\r\n RightAngleConnectorRoutingStrategy.prototype.createRenderPoints = function (points, supportRenderPoints, beginConnectionShape, endConnectionShape, beginConnectionPointIndex, endConnectionPointIndex, container) {\r\n if (supportRenderPoints.length > 1) {\r\n var context = new RightAngleConnectorRoutingContext_1.RightAngleConnectorRoutingContext(this.model, points, supportRenderPoints, beginConnectionShape, endConnectionShape, beginConnectionPointIndex, endConnectionPointIndex);\r\n context.initialize(container);\r\n if (context.shouldCreateRenderPoints)\r\n return this.createRenderPointsCore(context);\r\n }\r\n };\r\n RightAngleConnectorRoutingStrategy.prototype.clone = function () {\r\n return new RightAngleConnectorRoutingStrategy(this.model);\r\n };\r\n RightAngleConnectorRoutingStrategy.prototype.onAddPoint = function (points, pointIndex, point, oldRenderPoints) {\r\n var renderPoints = oldRenderPoints.map(function (p) { return new ConnectorRenderPoint_1.ConnectorRenderPoint(p.x, p.y, p.pointIndex); });\r\n var renderPointIndex = ModelUtils_1.ModelUtils.findFirstPointIndex(renderPoints, function (p) { return p.equals(point); });\r\n if (renderPointIndex === 0) {\r\n renderPoints.splice(1, 0, new ConnectorRenderPoint_1.ConnectorRenderPoint(point.x, point.y, pointIndex));\r\n return ModelUtils_1.ModelUtils.validateRenderPointIndexes(points, renderPoints, 2);\r\n }\r\n var lastRenderPointIndex = renderPoints.length - 1;\r\n if (renderPointIndex === lastRenderPointIndex) {\r\n renderPoints.splice(lastRenderPointIndex, 0, new ConnectorRenderPoint_1.ConnectorRenderPoint(point.x, point.y, pointIndex));\r\n renderPoints[lastRenderPointIndex + 1].pointIndex = pointIndex + 1;\r\n return renderPoints;\r\n }\r\n if (renderPointIndex > 0) {\r\n var oldRenderPoint = renderPoints[renderPointIndex];\r\n renderPoints[renderPointIndex] = new ConnectorRenderPoint_1.ConnectorRenderPoint(oldRenderPoint.x, oldRenderPoint.y, pointIndex, oldRenderPoint.skipped);\r\n return ModelUtils_1.ModelUtils.validateRenderPointIndexes(points, renderPoints, renderPointIndex + 1);\r\n }\r\n var firstSegment = new segment_1.Segment(renderPoints[0], renderPoints[1]);\r\n var newRenderPoint = new ConnectorRenderPoint_1.ConnectorRenderPoint(point.x, point.y);\r\n if (firstSegment.containsPoint(newRenderPoint)) {\r\n renderPoints.splice(1, 0, new ConnectorRenderPoint_1.ConnectorRenderPoint(newRenderPoint.x, newRenderPoint.y, -1));\r\n renderPoints.splice(2, 0, new ConnectorRenderPoint_1.ConnectorRenderPoint(newRenderPoint.x, newRenderPoint.y, pointIndex));\r\n return ModelUtils_1.ModelUtils.validateRenderPointIndexes(points, renderPoints, 3);\r\n }\r\n var lastSegment = new segment_1.Segment(renderPoints[lastRenderPointIndex - 1], renderPoints[lastRenderPointIndex]);\r\n if (lastSegment.containsPoint(newRenderPoint)) {\r\n renderPoints.splice(lastRenderPointIndex, 0, new ConnectorRenderPoint_1.ConnectorRenderPoint(newRenderPoint.x, newRenderPoint.y, pointIndex));\r\n renderPoints.splice(lastRenderPointIndex + 1, 0, new ConnectorRenderPoint_1.ConnectorRenderPoint(newRenderPoint.x, newRenderPoint.y, -1));\r\n renderPoints[lastRenderPointIndex + 2].pointIndex = pointIndex + 1;\r\n return renderPoints;\r\n }\r\n return oldRenderPoints;\r\n };\r\n RightAngleConnectorRoutingStrategy.prototype.onDeletePoint = function (points, pointIndex, oldRenderPoints) {\r\n var renderPoints = oldRenderPoints.map(function (p) { return new ConnectorRenderPoint_1.ConnectorRenderPoint(p.x, p.y, p.pointIndex); });\r\n var renderPointIndex = this.getRenderPointIndexByPointIndex(renderPoints, pointIndex);\r\n if (renderPointIndex === 1) {\r\n var previuosRenderPoint = renderPoints[0];\r\n var currentRenderPoint_1 = renderPoints[1];\r\n if (previuosRenderPoint.equals(currentRenderPoint_1)) {\r\n renderPoints.splice(1, 1);\r\n return ModelUtils_1.ModelUtils.validateRenderPointIndexes(points, renderPoints, 1);\r\n }\r\n renderPoints[1] = new ConnectorRenderPoint_1.ConnectorRenderPoint(currentRenderPoint_1.x, currentRenderPoint_1.y, -1, currentRenderPoint_1.skipped);\r\n return ModelUtils_1.ModelUtils.validateRenderPointIndexes(points, renderPoints, 2);\r\n }\r\n if (renderPointIndex === 2) {\r\n var previuosRenderPoint = renderPoints[1];\r\n var currentRenderPoint_2 = renderPoints[2];\r\n if (previuosRenderPoint.equals(currentRenderPoint_2)) {\r\n renderPoints.splice(1, 2);\r\n return ModelUtils_1.ModelUtils.validateRenderPointIndexes(points, renderPoints, 1);\r\n }\r\n renderPoints[2] = new ConnectorRenderPoint_1.ConnectorRenderPoint(currentRenderPoint_2.x, currentRenderPoint_2.y, -1, currentRenderPoint_2.skipped);\r\n return ModelUtils_1.ModelUtils.validateRenderPointIndexes(points, renderPoints, 3);\r\n }\r\n var lastRenderPointIndex = renderPoints.length - 1;\r\n if (renderPointIndex === lastRenderPointIndex - 1) {\r\n var currentRenderPoint_3 = renderPoints[lastRenderPointIndex - 1];\r\n var nextRenderPoint = renderPoints[lastRenderPointIndex];\r\n if (currentRenderPoint_3.equals(nextRenderPoint)) {\r\n renderPoints.splice(lastRenderPointIndex - 1, 1);\r\n return ModelUtils_1.ModelUtils.validateRenderPointIndexes(points, renderPoints, lastRenderPointIndex - 1);\r\n }\r\n renderPoints[lastRenderPointIndex - 1] = new ConnectorRenderPoint_1.ConnectorRenderPoint(currentRenderPoint_3.x, currentRenderPoint_3.y, -1, currentRenderPoint_3.skipped);\r\n return ModelUtils_1.ModelUtils.validateRenderPointIndexes(points, renderPoints, lastRenderPointIndex);\r\n }\r\n if (renderPointIndex === lastRenderPointIndex - 2) {\r\n var currentRenderPoint_4 = renderPoints[lastRenderPointIndex - 2];\r\n var nextRenderPoint = renderPoints[lastRenderPointIndex - 1];\r\n if (currentRenderPoint_4.equals(nextRenderPoint)) {\r\n renderPoints.splice(lastRenderPointIndex - 2, 2);\r\n return ModelUtils_1.ModelUtils.validateRenderPointIndexes(points, renderPoints, lastRenderPointIndex - 2);\r\n }\r\n renderPoints[lastRenderPointIndex - 2] = new ConnectorRenderPoint_1.ConnectorRenderPoint(currentRenderPoint_4.x, currentRenderPoint_4.y, -1, currentRenderPoint_4.skipped);\r\n return ModelUtils_1.ModelUtils.validateRenderPointIndexes(points, renderPoints, lastRenderPointIndex - 1);\r\n }\r\n var currentRenderPoint = renderPoints[renderPointIndex];\r\n renderPoints[renderPointIndex] = new ConnectorRenderPoint_1.ConnectorRenderPoint(currentRenderPoint.x, currentRenderPoint.y, -1, currentRenderPoint.skipped);\r\n return ModelUtils_1.ModelUtils.validateRenderPointIndexes(points, renderPoints, renderPointIndex + 1);\r\n };\r\n RightAngleConnectorRoutingStrategy.prototype.onMovePoint = function (points, pointIndex, point, oldRenderPoints) {\r\n if (pointIndex === 0 || pointIndex === points.length - 1)\r\n return oldRenderPoints;\r\n var renderPoints = oldRenderPoints.map(function (p) { return new ConnectorRenderPoint_1.ConnectorRenderPoint(p.x, p.y, p.pointIndex); });\r\n var renderPointIndex = this.getRenderPointIndexByPointIndex(renderPoints, pointIndex);\r\n if (renderPointIndex >= 0) {\r\n var oldRenderPoint = renderPoints[renderPointIndex];\r\n renderPoints[renderPointIndex] = new ConnectorRenderPoint_1.ConnectorRenderPoint(point.x, point.y, pointIndex, oldRenderPoint.skipped);\r\n }\r\n RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.skipUnnecessaryPoints(renderPoints);\r\n return renderPoints;\r\n };\r\n RightAngleConnectorRoutingStrategy.prototype.createRenderPointsCore = function (context) {\r\n var result = [];\r\n var currentIndex = -1;\r\n var currentRenderSegment;\r\n var currentStartCustomPointIndex = -1;\r\n context.setup();\r\n var renderSegments = context.renderSegments;\r\n var endPoint = renderSegments[renderSegments.length - 1].endPoint;\r\n var points = context.points;\r\n do {\r\n this.registerCustomPoints(result, points, currentStartCustomPointIndex + 2, renderSegments[currentIndex + 1].startPointIndex - 1);\r\n currentIndex++;\r\n currentRenderSegment = renderSegments[currentIndex];\r\n currentStartCustomPointIndex = currentRenderSegment.startPointIndex;\r\n this.registerRenderPoints(result, context.createRoutedPoints(currentRenderSegment.startInfo, currentRenderSegment.endInfo, currentRenderSegment.createProhibitedSegments()), currentStartCustomPointIndex);\r\n } while (!currentRenderSegment.endPoint.equals(endPoint));\r\n context.validateRenderPoints(result);\r\n return result;\r\n };\r\n RightAngleConnectorRoutingStrategy.prototype.getRenderPointIndexByPointIndex = function (points, index) {\r\n return ModelUtils_1.ModelUtils.findFirstPointIndex(points, function (p) { return p.pointIndex === index; });\r\n };\r\n RightAngleConnectorRoutingStrategy.prototype.registerRenderPoints = function (resultPath, routedPoints, beginPointIndex) {\r\n var _this = this;\r\n routedPoints.forEach(function (p, i) {\r\n var pointIndex = i === 0 ? beginPointIndex : (i === routedPoints.length - 1 ? beginPointIndex + 1 : -1);\r\n _this.registerPoint(resultPath, p, pointIndex);\r\n });\r\n };\r\n RightAngleConnectorRoutingStrategy.prototype.registerCustomPoints = function (resultPath, points, startIndex, endIndex) {\r\n for (var i = startIndex; i <= endIndex; i++)\r\n this.registerPoint(resultPath, points[i], i);\r\n };\r\n RightAngleConnectorRoutingStrategy.prototype.registerPoint = function (resultPath, point, pointIndex) {\r\n resultPath.push(new ConnectorRenderPoint_1.ConnectorRenderPoint(point.x, point.y, pointIndex));\r\n };\r\n return RightAngleConnectorRoutingStrategy;\r\n}());\r\nexports.RightAngleConnectorRoutingStrategy = RightAngleConnectorRoutingStrategy;\r\n\n\n/***/ }),\n/* 372 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RightAngleConnectorRoutingContext = exports.IntersectingItemsByPointsContext = exports.CuttingItemsContext = void 0;\r\nvar point_1 = __webpack_require__(1);\r\nvar segment_1 = __webpack_require__(34);\r\nvar DiagramItem_1 = __webpack_require__(9);\r\nvar RightAngleConnectorRoutingMathOperations_1 = __webpack_require__(62);\r\nvar ConnectorRenderSegment_1 = __webpack_require__(373);\r\nvar vector_1 = __webpack_require__(56);\r\nvar RoutingGrid_1 = __webpack_require__(375);\r\nvar ModelUtils_1 = __webpack_require__(5);\r\nvar AStarMetrics_1 = __webpack_require__(113);\r\nvar AStarContext_1 = __webpack_require__(376);\r\nvar AStarCalculator_1 = __webpack_require__(380);\r\nvar CuttingItemsContext = /** @class */ (function () {\r\n function CuttingItemsContext() {\r\n this.cuttingItemKeys = [];\r\n }\r\n Object.defineProperty(CuttingItemsContext.prototype, \"isEmpty\", {\r\n get: function () {\r\n return this.cuttingItemKeys.length === 0;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n CuttingItemsContext.prototype.registerShape = function (key, rect, segments) {\r\n if (RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.isRectangleCut(segments, rect)) {\r\n this.cuttingItemKeys.push(key);\r\n return true;\r\n }\r\n return false;\r\n };\r\n return CuttingItemsContext;\r\n}());\r\nexports.CuttingItemsContext = CuttingItemsContext;\r\nvar IntersectingItemsByPointsContext = /** @class */ (function () {\r\n function IntersectingItemsByPointsContext() {\r\n this.items = {};\r\n }\r\n IntersectingItemsByPointsContext.prototype.getOrAddItems = function (point, getItems) {\r\n if (point) {\r\n var key = point.toString();\r\n var item = this.items[key];\r\n if (item !== undefined)\r\n return item.items;\r\n if (getItems) {\r\n var items = getItems(point);\r\n this.items[key] = { point: point, items: items };\r\n return items;\r\n }\r\n }\r\n return undefined;\r\n };\r\n return IntersectingItemsByPointsContext;\r\n}());\r\nexports.IntersectingItemsByPointsContext = IntersectingItemsByPointsContext;\r\nvar RightAngleConnectorRoutingContext = /** @class */ (function () {\r\n function RightAngleConnectorRoutingContext(routingModel, points, supportRenderPoints, beginConnectionShape, endConnectionShape, beginConnectionPointIndex, endConnectionPointIndex) {\r\n this.routingModel = routingModel;\r\n this.points = points;\r\n this.supportRenderPoints = supportRenderPoints;\r\n this.beginConnectionShape = beginConnectionShape;\r\n this.endConnectionShape = endConnectionShape;\r\n this.beginConnectionSide = this.getConnectionSide(this.beginConnectionShape, beginConnectionPointIndex, this.beginPoint);\r\n this.endConnectionSide = this.getConnectionSide(this.endConnectionShape, endConnectionPointIndex, this.endPoint);\r\n this.ignorableItemKeys = {};\r\n this.cuttingShapesContext = new CuttingItemsContext();\r\n this.intersectedItemsByPointsContext = new IntersectingItemsByPointsContext();\r\n this.isInvalidRenderSegments = true;\r\n }\r\n Object.defineProperty(RightAngleConnectorRoutingContext.prototype, \"shapeMargins\", {\r\n get: function () {\r\n return this.routingModel.shapeMargins;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RightAngleConnectorRoutingContext.prototype, \"beginPoint\", {\r\n get: function () {\r\n return this.points[0];\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RightAngleConnectorRoutingContext.prototype, \"endPoint\", {\r\n get: function () {\r\n return this.points[this.points.length - 1];\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RightAngleConnectorRoutingContext.prototype, \"hasIntersecting\", {\r\n get: function () {\r\n return !this.cuttingShapesContext.isEmpty;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RightAngleConnectorRoutingContext.prototype, \"shouldCreateRenderPoints\", {\r\n get: function () {\r\n return this.isInvalidRenderSegments ||\r\n (!this.isSmallPath &&\r\n (this.hasIntersecting || this.isReversedStartConnection || this.isReversedEndConnection));\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RightAngleConnectorRoutingContext.prototype, \"beginPathPoint\", {\r\n get: function () {\r\n return this.beginConnectionSegment instanceof segment_1.Segment ? this.beginConnectionSegment.startPoint : this.beginConnectionSegment;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RightAngleConnectorRoutingContext.prototype, \"endPathPoint\", {\r\n get: function () {\r\n return this.endConnectionSegment instanceof segment_1.Segment ? this.endConnectionSegment.endPoint : this.endConnectionSegment;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RightAngleConnectorRoutingContext.prototype, \"isReversedStartConnection\", {\r\n get: function () {\r\n if (!this.beginConnectionShape || this.beginConnectionSide === DiagramItem_1.ConnectionPointSide.Undefined)\r\n return false;\r\n var beginConnectionSegment = this.beginConnectionSegment;\r\n return !(beginConnectionSegment instanceof point_1.Point) &&\r\n this.isReversedConnectionSegment(this.supportSegments[0], beginConnectionSegment);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(RightAngleConnectorRoutingContext.prototype, \"isReversedEndConnection\", {\r\n get: function () {\r\n if (!this.endConnectionShape || this.endConnectionSide === DiagramItem_1.ConnectionPointSide.Undefined)\r\n return false;\r\n var endConnectionSegment = this.endConnectionSegment;\r\n return !(endConnectionSegment instanceof point_1.Point) &&\r\n this.isReversedConnectionSegment(this.supportSegments[this.supportSegments.length - 1], endConnectionSegment);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n RightAngleConnectorRoutingContext.prototype.isReversedConnectionSegment = function (supportSegment, connectionSegment) {\r\n return vector_1.Vector.scalarProduct(vector_1.Vector.fromSegment(supportSegment), vector_1.Vector.fromPoints(connectionSegment.startPoint, connectionSegment.endPoint)) <= 0;\r\n };\r\n Object.defineProperty(RightAngleConnectorRoutingContext.prototype, \"isSmallPath\", {\r\n get: function () {\r\n var doubleMargins = 2 * this.routingModel.shapeMargins;\r\n return Math.abs(this.beginPathPoint.x - this.endPathPoint.x) < doubleMargins &&\r\n Math.abs(this.beginPathPoint.y - this.endPathPoint.y) < doubleMargins;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n RightAngleConnectorRoutingContext.prototype.initialize = function (container) {\r\n this.processContainers(container);\r\n this.processSupportSegments();\r\n this.processIntersection();\r\n this.processConnections();\r\n this.processRenderSegments();\r\n };\r\n RightAngleConnectorRoutingContext.prototype.setup = function () {\r\n this.processRoutingGrid();\r\n this.processRoutingMetrics();\r\n };\r\n RightAngleConnectorRoutingContext.prototype.createRoutedPoints = function (startInfo, targetInfo, prohibitedSegments) {\r\n var startPathPoint = startInfo instanceof point_1.Point ? startInfo : startInfo.endPoint;\r\n var targetPathPoint = targetInfo instanceof point_1.Point ? targetInfo : targetInfo.startPoint;\r\n var context = this.createAStarContext(startPathPoint, targetPathPoint, prohibitedSegments);\r\n AStarCalculator_1.AStarCalculator.calculate(context);\r\n var result = context.path;\r\n this.addConnectionRoutedPoints(result, startInfo, targetInfo);\r\n RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.unionPoints(result);\r\n return result;\r\n };\r\n RightAngleConnectorRoutingContext.prototype.getIntersectedItems = function (point, predicate) {\r\n var _this = this;\r\n return this.intersectedItemsByPointsContext.getOrAddItems(point, function (p) { return _this.routingModel\r\n .getItems(_this.beginConnectionShape, _this.endConnectionShape)\r\n .filter(function (s) { return !_this.isIgnorableItem(s) && predicate(p, s); }); });\r\n };\r\n RightAngleConnectorRoutingContext.prototype.validateRenderPoints = function (result) {\r\n if (this.isInvalidRenderSegments) {\r\n RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.unionPoints(result);\r\n ModelUtils_1.ModelUtils.validateRenderPointIndexes(this.points, result, 0);\r\n }\r\n RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.skipUnnecessaryPoints(result);\r\n };\r\n RightAngleConnectorRoutingContext.prototype.processContainers = function (container) {\r\n if (container)\r\n this.registerIgnorableShape(container);\r\n if (this.beginConnectionShape) {\r\n var beginShapeContainer = this.beginConnectionShape.container;\r\n if (beginShapeContainer)\r\n this.registerIgnorableShape(beginShapeContainer);\r\n }\r\n if (this.endConnectionShape) {\r\n var endShapeContainer = this.endConnectionShape.container;\r\n if (endShapeContainer)\r\n this.registerIgnorableShape(endShapeContainer);\r\n }\r\n };\r\n RightAngleConnectorRoutingContext.prototype.processSupportSegments = function () {\r\n this.supportSegments = this.createSupportSegments();\r\n };\r\n RightAngleConnectorRoutingContext.prototype.processIntersection = function () {\r\n var _this = this;\r\n var shapes = this.routingModel.getItems(this.beginConnectionShape, this.endConnectionShape);\r\n if (shapes)\r\n shapes.forEach(function (s) {\r\n var key = s.key;\r\n var rect = s.rectangle;\r\n if (!_this.cuttingShapesContext.registerShape(key, rect, _this.supportSegments)) {\r\n if ((!_this.isConnectedByStart(s) && rect.containsPoint(_this.beginPoint)) ||\r\n !_this.isConnectedByEnd(s) && rect.containsPoint(_this.endPoint))\r\n _this.registerIgnorableShape(s);\r\n }\r\n else if (_this.ignorableItemKeys[key] !== undefined)\r\n delete _this.ignorableItemKeys[key];\r\n });\r\n };\r\n RightAngleConnectorRoutingContext.prototype.processConnections = function () {\r\n var beginShapeContainsEndConnection = false;\r\n var endShapeContainsBeginConnection = false;\r\n if (this.beginConnectionShape !== this.endConnectionShape) {\r\n beginShapeContainsEndConnection = this.shapeContainsOtherConnection(this.beginConnectionShape, this.endConnectionShape, this.endPoint);\r\n endShapeContainsBeginConnection = this.shapeContainsOtherConnection(this.endConnectionShape, this.beginConnectionShape, this.beginPoint);\r\n if (beginShapeContainsEndConnection)\r\n this.registerIgnorableShape(this.beginConnectionShape);\r\n if (endShapeContainsBeginConnection)\r\n this.registerIgnorableShape(this.endConnectionShape);\r\n }\r\n var shapeMargins = this.routingModel.shapeMargins;\r\n this.beginConnectionSegment = this.createBeginConnectionSegment(shapeMargins, beginShapeContainsEndConnection);\r\n this.endConnectionSegment = this.createEndConnectionSegment(shapeMargins, endShapeContainsBeginConnection);\r\n };\r\n RightAngleConnectorRoutingContext.prototype.processRenderSegments = function () {\r\n this.isInvalidRenderSegments = false;\r\n this.renderSegments = this.createRenderSegments();\r\n for (var i = 0; i < this.renderSegments.length - 1; i++) {\r\n var renderSegment = this.renderSegments[i];\r\n var nextRenderSegment = this.renderSegments[i + 1];\r\n if (renderSegment.endPoint.equals(nextRenderSegment.startPoint)) {\r\n this.isInvalidRenderSegments = true;\r\n return;\r\n }\r\n }\r\n };\r\n RightAngleConnectorRoutingContext.prototype.createGridPoints = function () {\r\n var result = [];\r\n this.renderSegments.forEach(function (s) { return s.createGridPoints().forEach(function (p) { return result.push(p); }); });\r\n return result;\r\n };\r\n RightAngleConnectorRoutingContext.prototype.processRoutingGrid = function () {\r\n this.routingGrid = this.createGrid();\r\n };\r\n RightAngleConnectorRoutingContext.prototype.processRoutingMetrics = function () {\r\n this.metrics = this.createAStarMetrics();\r\n };\r\n RightAngleConnectorRoutingContext.prototype.createAStarMetrics = function () {\r\n return new AStarMetrics_1.AStarMetrics(new AStarMetrics_1.TurnDirectionMetrics(this.routingModel.penaltyDescription), new AStarMetrics_1.IntersectedShapesMetrics(new AStarMetrics_1.IntersectedShapeMetrics(this.routingModel.penaltyDescription, this.routingModel.shapeMargins)));\r\n };\r\n RightAngleConnectorRoutingContext.prototype.createAStarContext = function (start, target, prohibitedSegments) {\r\n return new AStarContext_1.AStarContext(this, start, target, prohibitedSegments, this.routingGrid, this.metrics);\r\n };\r\n RightAngleConnectorRoutingContext.prototype.addConnectionRoutedPoints = function (path, startInfo, targetInfo) {\r\n if (startInfo instanceof segment_1.Segment)\r\n path.splice(0, 0, startInfo.startPoint);\r\n if (targetInfo instanceof segment_1.Segment)\r\n path.push(targetInfo.endPoint);\r\n };\r\n RightAngleConnectorRoutingContext.prototype.createSupportSegments = function () {\r\n var _this = this;\r\n return this.supportRenderPoints.length <= 1 ? [] : RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.createSegments(this.supportRenderPoints).filter(function (s) { return !_this.isCustomSegment(s, _this.supportRenderPoints[0], _this.supportRenderPoints[_this.supportRenderPoints.length - 1]); });\r\n };\r\n RightAngleConnectorRoutingContext.prototype.isCustomSegment = function (segment, startSegmentsPoint, endSegmentsPoint) {\r\n var startRenderPoint = segment.startPoint;\r\n if (startRenderPoint.equals(startSegmentsPoint))\r\n return false;\r\n var endRenderPoint = segment.endPoint;\r\n if (endRenderPoint.equals(endSegmentsPoint))\r\n return false;\r\n return endRenderPoint.pointIndex - startRenderPoint.pointIndex === 1;\r\n };\r\n RightAngleConnectorRoutingContext.prototype.createRenderSegments = function () {\r\n var _this = this;\r\n var unionRoutingSegments = RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.createUnionSegments(this.supportSegments, function (ep, sp) { return _this.shouldCreateSegment(ep, sp); });\r\n var lastIndex = unionRoutingSegments.length - 1;\r\n return unionRoutingSegments.map(function (s, i) {\r\n return new ConnectorRenderSegment_1.ConnectorRenderSegment(i > 0 ? new point_1.Point(s.startPoint.x, s.startPoint.y) : _this.beginConnectionSegment, i < lastIndex ? new point_1.Point(s.endPoint.x, s.endPoint.y) : _this.endConnectionSegment, s.startPoint.pointIndex, _this.createPreviousCustomSegment(s.startPoint));\r\n });\r\n };\r\n RightAngleConnectorRoutingContext.prototype.createPreviousCustomSegment = function (startRoutingPoint) {\r\n var previuosPointIndex = startRoutingPoint.pointIndex - 1;\r\n return previuosPointIndex >= 0 ? new segment_1.Segment(this.points[previuosPointIndex].clone(), new point_1.Point(startRoutingPoint.x, startRoutingPoint.y)) : undefined;\r\n };\r\n RightAngleConnectorRoutingContext.prototype.shouldCreateSegment = function (prevEndPoint, startNextPoint) {\r\n return !prevEndPoint.equals(startNextPoint) || startNextPoint.pointIndex > 0;\r\n };\r\n RightAngleConnectorRoutingContext.prototype.isPathNormal = function (connectionSide) {\r\n if (connectionSide === DiagramItem_1.ConnectionPointSide.Undefined)\r\n return true;\r\n return RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.isSegmentNormal(new segment_1.Segment(this.beginPoint, this.endPoint), connectionSide === DiagramItem_1.ConnectionPointSide.East || connectionSide === DiagramItem_1.ConnectionPointSide.West);\r\n };\r\n RightAngleConnectorRoutingContext.prototype.registerIgnorableShape = function (shape) {\r\n this.ignorableItemKeys[shape.key] = true;\r\n };\r\n RightAngleConnectorRoutingContext.prototype.isConnectedByStart = function (shape) {\r\n return this.beginConnectionShape && this.beginConnectionShape.key === shape.key && this.beginConnectionSide !== DiagramItem_1.ConnectionPointSide.Undefined;\r\n };\r\n RightAngleConnectorRoutingContext.prototype.isConnectedByEnd = function (shape) {\r\n return this.endConnectionShape && this.endConnectionShape.key === shape.key && this.endConnectionSide !== DiagramItem_1.ConnectionPointSide.Undefined;\r\n };\r\n RightAngleConnectorRoutingContext.prototype.getConnectionSide = function (shape, index, point) {\r\n return shape ? shape.getConnectionPointSideByIndex(index, point) : DiagramItem_1.ConnectionPointSide.Undefined;\r\n };\r\n RightAngleConnectorRoutingContext.prototype.shapeContainsOtherConnection = function (targetShape, otherShape, otherPoint) {\r\n if (!targetShape)\r\n return false;\r\n var targetRectangle = targetShape.rectangle;\r\n return targetRectangle.containsPoint(otherPoint) &&\r\n (!otherShape || !otherShape.rectangle.equals(targetRectangle));\r\n };\r\n RightAngleConnectorRoutingContext.prototype.createBeginConnectionSegment = function (offset, beginShapeContainsEndConnection) {\r\n if (this.beginConnectionSide === DiagramItem_1.ConnectionPointSide.Undefined)\r\n return this.createBeginConnectionSegmentCore(offset);\r\n if (!beginShapeContainsEndConnection || !this.routingModel.shouldReverseConnections) {\r\n var segment = this.createBeginConnectionSegmentCore(offset);\r\n if (segment instanceof point_1.Point || !this.routingModel.shouldResizeConnections)\r\n return segment;\r\n var startPoint = segment.startPoint;\r\n var endPoint = segment.endPoint;\r\n var currentOffset = offset;\r\n while (this.hasIntersectedItemsByPoint(endPoint, startPoint, this.beginConnectionShape)) {\r\n currentOffset = currentOffset / 2;\r\n segment = this.createBeginConnectionSegmentCore(currentOffset);\r\n endPoint = segment.endPoint;\r\n }\r\n return segment;\r\n }\r\n if (!this.endConnectionShape)\r\n return this.createBeginConnectionSegmentCore(-offset);\r\n if (this.isPathNormal(this.endConnectionSide))\r\n return this.createBeginConnectionSegmentCore(-offset);\r\n var reversedSegment = this.createBeginConnectionSegmentCore(-2 * offset);\r\n if (this.isEndConnectionRectanleLineIntersected(reversedSegment, false, true))\r\n return this.createBeginConnectionSegmentCore(offset);\r\n return this.createBeginConnectionSegmentCore(-offset);\r\n };\r\n RightAngleConnectorRoutingContext.prototype.hasIntersectedItemsByPoint = function (point, secondPoint, connectionItem) {\r\n var intersectedItems = this.getIntersectedItems(point, function (p, s) { return s.rectangle.containsPoint(p) && !s.rectangle.containsPoint(secondPoint) && s.key !== connectionItem.key; });\r\n return intersectedItems !== undefined && intersectedItems.length > 0;\r\n };\r\n RightAngleConnectorRoutingContext.prototype.createEndConnectionSegment = function (offset, endShapeContainsBeginConnection) {\r\n if (this.endConnectionSide === DiagramItem_1.ConnectionPointSide.Undefined)\r\n return this.createEndConnectionSegmentCore(offset);\r\n if (!endShapeContainsBeginConnection || !this.routingModel.shouldReverseConnections) {\r\n var segment = this.createEndConnectionSegmentCore(offset);\r\n if (segment instanceof point_1.Point || !this.routingModel.shouldResizeConnections)\r\n return segment;\r\n var endPoint = segment.endPoint;\r\n var startPoint = segment.startPoint;\r\n var currentOffset = offset;\r\n while (this.hasIntersectedItemsByPoint(startPoint, endPoint, this.endConnectionShape)) {\r\n currentOffset = currentOffset / 2;\r\n segment = this.createEndConnectionSegmentCore(currentOffset);\r\n startPoint = segment.startPoint;\r\n }\r\n return segment;\r\n }\r\n if (!this.beginConnectionShape)\r\n return this.createEndConnectionSegmentCore(-offset);\r\n if (this.isPathNormal(this.beginConnectionSide))\r\n return this.createEndConnectionSegmentCore(-offset);\r\n var reversedSegment = this.createEndConnectionSegmentCore(-2 * offset);\r\n if (this.isBeginConnectionRectanleLineIntersected(reversedSegment, true, false))\r\n return this.createEndConnectionSegmentCore(offset);\r\n return this.createEndConnectionSegmentCore(-offset);\r\n };\r\n RightAngleConnectorRoutingContext.prototype.createBeginConnectionSegmentCore = function (offset) {\r\n return RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.createBeginConnectionSegment(this.beginConnectionSide, this.beginPoint, offset, function (x, y) { return new point_1.Point(x, y); });\r\n };\r\n RightAngleConnectorRoutingContext.prototype.createEndConnectionSegmentCore = function (offset) {\r\n return RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.createEndConnectionSegment(this.endConnectionSide, this.endPoint, offset, function (x, y) { return new point_1.Point(x, y); });\r\n };\r\n RightAngleConnectorRoutingContext.prototype.isBeginConnectionRectanleLineIntersected = function (segment, excludeBeginPoint, excludeEndPoint) {\r\n return RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.isConnectionRectanleLineIntersected(this.beginConnectionShape.rectangle, segment, this.beginConnectionSide, excludeBeginPoint, excludeEndPoint, function (x, y) { return new point_1.Point(x, y); });\r\n };\r\n RightAngleConnectorRoutingContext.prototype.isEndConnectionRectanleLineIntersected = function (segment, excludeBeginPoint, excludeEndPoint) {\r\n return RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.isConnectionRectanleLineIntersected(this.endConnectionShape.rectangle, segment, this.endConnectionSide, excludeBeginPoint, excludeEndPoint, function (x, y) { return new point_1.Point(x, y); });\r\n };\r\n RightAngleConnectorRoutingContext.prototype.isIgnorableItem = function (item) {\r\n return this.ignorableItemKeys[item.key] !== undefined;\r\n };\r\n RightAngleConnectorRoutingContext.prototype.createExtendedShapesBounds = function () {\r\n var _this = this;\r\n return this.routingModel.getItems(this.beginConnectionShape, this.endConnectionShape).map(function (i) { return i.rectangle.clone().inflate(_this.routingModel.shapeMargins); });\r\n };\r\n RightAngleConnectorRoutingContext.prototype.createGrid = function () {\r\n return RoutingGrid_1.RoutingGrid.create(this.createGridPoints(), this.createExtendedShapesBounds(), function (x, y) { return new point_1.Point(x, y); });\r\n };\r\n return RightAngleConnectorRoutingContext;\r\n}());\r\nexports.RightAngleConnectorRoutingContext = RightAngleConnectorRoutingContext;\r\n\n\n/***/ }),\n/* 373 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorRenderSegment = void 0;\r\nvar segment_1 = __webpack_require__(34);\r\nvar ConnectorProhibitedSegments_1 = __webpack_require__(374);\r\nvar ConnectorRenderSegment = /** @class */ (function () {\r\n function ConnectorRenderSegment(startInfo, endInfo, startPointIndex, previousCustomSegment) {\r\n this.startInfo = startInfo;\r\n this.endInfo = endInfo;\r\n this.startPointIndex = startPointIndex;\r\n this.previousCustomSegment = previousCustomSegment;\r\n }\r\n Object.defineProperty(ConnectorRenderSegment.prototype, \"startPathPoint\", {\r\n get: function () {\r\n return this.startInfo instanceof segment_1.Segment ? this.startInfo.endPoint : this.startInfo;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ConnectorRenderSegment.prototype, \"endPathPoint\", {\r\n get: function () {\r\n return this.endInfo instanceof segment_1.Segment ? this.endInfo.startPoint : this.endInfo;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ConnectorRenderSegment.prototype, \"startPoint\", {\r\n get: function () {\r\n return this.startInfo instanceof segment_1.Segment ? this.startInfo.startPoint : this.startInfo;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ConnectorRenderSegment.prototype, \"endPoint\", {\r\n get: function () {\r\n return this.endInfo instanceof segment_1.Segment ? this.endInfo.endPoint : this.endInfo;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n ConnectorRenderSegment.prototype.createGridPoints = function () {\r\n var result = [];\r\n if (this.endInfo instanceof segment_1.Segment) {\r\n result.push(this.endInfo.startPoint);\r\n result.push(this.endInfo.endPoint);\r\n }\r\n else\r\n result.push(this.endInfo);\r\n return result;\r\n };\r\n ConnectorRenderSegment.prototype.createProhibitedSegments = function () {\r\n if (this.startInfo instanceof segment_1.Segment) {\r\n var result = this.createProhibitedSegmentsCore(this.startInfo);\r\n if (this.endInfo instanceof segment_1.Segment) {\r\n result.addSegment(this.endInfo);\r\n result.addExludedPoint(this.endInfo.startPoint);\r\n }\r\n if (this.previousCustomSegment)\r\n result.addSegment(this.previousCustomSegment);\r\n return result;\r\n }\r\n if (this.endInfo instanceof segment_1.Segment) {\r\n var result = this.createProhibitedSegmentsCore(this.endInfo);\r\n result.addExludedPoint(this.endInfo.startPoint);\r\n if (this.previousCustomSegment)\r\n result.addSegment(this.previousCustomSegment);\r\n return result;\r\n }\r\n return this.previousCustomSegment ? this.createProhibitedSegmentsCore(this.previousCustomSegment) : undefined;\r\n };\r\n ConnectorRenderSegment.prototype.createProhibitedSegmentsCore = function (segment) {\r\n var result = new ConnectorProhibitedSegments_1.ConnectorProhibitedSegments();\r\n result.addSegment(segment);\r\n return result;\r\n };\r\n return ConnectorRenderSegment;\r\n}());\r\nexports.ConnectorRenderSegment = ConnectorRenderSegment;\r\n\n\n/***/ }),\n/* 374 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConnectorProhibitedSegments = void 0;\r\nvar ConnectorProhibitedSegments = /** @class */ (function () {\r\n function ConnectorProhibitedSegments() {\r\n this.segments = [];\r\n this.exludedPoints = {};\r\n }\r\n ConnectorProhibitedSegments.prototype.addSegment = function (segment) {\r\n this.segments.push(segment);\r\n };\r\n ConnectorProhibitedSegments.prototype.addExludedPoint = function (point) {\r\n this.exludedPoints[point.toString()] = point;\r\n };\r\n ConnectorProhibitedSegments.prototype.allowPoint = function (point) {\r\n if (this.exludedPoints[point.toString()] === undefined)\r\n for (var i = 0; i < this.segments.length; i++)\r\n if (this.segments[i].containsPoint(point))\r\n return false;\r\n return true;\r\n };\r\n return ConnectorProhibitedSegments;\r\n}());\r\nexports.ConnectorProhibitedSegments = ConnectorProhibitedSegments;\r\n\n\n/***/ }),\n/* 375 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RoutingGrid = void 0;\r\nvar search_1 = __webpack_require__(40);\r\nvar RoutingGrid = /** @class */ (function () {\r\n function RoutingGrid(verticalGridLines, horizontalGridLines, createPoint) {\r\n this.verticalGridLines = verticalGridLines;\r\n this.horizontalGridLines = horizontalGridLines;\r\n this.createPoint = createPoint;\r\n }\r\n RoutingGrid.create = function (points, boundsSet, createPoint) {\r\n var _this = this;\r\n var verticalLines = [];\r\n var horizontalLines = [];\r\n var varticalHashMap = {};\r\n var horizontalHashMap = {};\r\n boundsSet.forEach(function (x) {\r\n _this.addLine(x.x, verticalLines, varticalHashMap);\r\n _this.addLine(x.right, verticalLines, varticalHashMap);\r\n _this.addLine(x.y, horizontalLines, horizontalHashMap);\r\n _this.addLine(x.bottom, horizontalLines, horizontalHashMap);\r\n });\r\n points.forEach(function (p) {\r\n _this.addLine(p.x, verticalLines, varticalHashMap);\r\n _this.addLine(p.y, horizontalLines, horizontalHashMap);\r\n });\r\n verticalLines.sort(function (a, b) { return a - b; });\r\n horizontalLines.sort(function (a, b) { return a - b; });\r\n return new RoutingGrid(verticalLines, horizontalLines, createPoint);\r\n };\r\n RoutingGrid.addLine = function (line, lines, hashMap) {\r\n if (!hashMap[line]) {\r\n lines.push(line);\r\n hashMap[line] = true;\r\n }\r\n };\r\n RoutingGrid.prototype.getNeighborPoints = function (point) {\r\n var result = [];\r\n if (!this.horizontalGridLines || !this.horizontalGridLines.length ||\r\n !this.verticalGridLines || !this.verticalGridLines.length)\r\n return result;\r\n var verticalIndex = search_1.SearchUtils.binaryIndexOf(this.verticalGridLines, function (x) { return x - point.x; });\r\n if (verticalIndex < 0) {\r\n verticalIndex = ~verticalIndex;\r\n if (this.isValidArrayIndex(this.verticalGridLines, verticalIndex))\r\n result.push(this.createPoint(this.verticalGridLines[verticalIndex], point.y));\r\n }\r\n else if (this.isValidArrayIndex(this.verticalGridLines, verticalIndex + 1))\r\n result.push(this.createPoint(this.verticalGridLines[verticalIndex + 1], point.y));\r\n if (this.isValidArrayIndex(this.verticalGridLines, verticalIndex - 1))\r\n result.push(this.createPoint(this.verticalGridLines[verticalIndex - 1], point.y));\r\n var horizontalIndex = search_1.SearchUtils.binaryIndexOf(this.horizontalGridLines, function (y) { return y - point.y; });\r\n if (horizontalIndex < 0) {\r\n horizontalIndex = ~horizontalIndex;\r\n if (this.isValidArrayIndex(this.horizontalGridLines, horizontalIndex))\r\n result.push(this.createPoint(point.x, this.horizontalGridLines[horizontalIndex]));\r\n }\r\n else if (this.isValidArrayIndex(this.horizontalGridLines, horizontalIndex + 1))\r\n result.push(this.createPoint(point.x, this.horizontalGridLines[horizontalIndex + 1]));\r\n if (this.isValidArrayIndex(this.horizontalGridLines, horizontalIndex - 1))\r\n result.push(this.createPoint(point.x, this.horizontalGridLines[horizontalIndex - 1]));\r\n return result;\r\n };\r\n RoutingGrid.prototype.isValidArrayIndex = function (array, index) {\r\n return array && index >= 0 && index < array.length;\r\n };\r\n return RoutingGrid;\r\n}());\r\nexports.RoutingGrid = RoutingGrid;\r\n\n\n/***/ }),\n/* 376 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AStarContext = exports.AStarContextBase = void 0;\r\nvar SortedQueues_1 = __webpack_require__(377);\r\nvar UniqueAStarNodePositions_1 = __webpack_require__(378);\r\nvar AStarNode_1 = __webpack_require__(379);\r\nvar segment_1 = __webpack_require__(34);\r\nvar RightAngleConnectorRoutingMathOperations_1 = __webpack_require__(62);\r\nvar AStarContextBase = /** @class */ (function () {\r\n function AStarContextBase(startPosition, targetPosition, maxStepsCount) {\r\n this.startPosition = startPosition;\r\n this.targetPosition = targetPosition;\r\n this.maxStepsCount = maxStepsCount;\r\n this.prohibitedPoints = {};\r\n }\r\n Object.defineProperty(AStarContextBase.prototype, \"shouldStartContinue\", {\r\n get: function () {\r\n return this.updatableSet.count > 0 && this.stepsCount < this.maxStepsCount;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(AStarContextBase.prototype, \"shouldFinish\", {\r\n get: function () {\r\n return this.currentNode.position.equals(this.targetPosition);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n AStarContextBase.prototype.start = function () {\r\n this.generalSet = new SortedQueues_1.SortedQueues(function (x) { return x.key; });\r\n this.updatableSet = new UniqueAStarNodePositions_1.UniqueAStarNodePositions();\r\n var currentNode = new AStarNode_1.AStarNode(this.startPosition, this.getDistance(this.startPosition, this.targetPosition));\r\n this.currentNode = currentNode;\r\n this.generalSet.enqueue(currentNode);\r\n this.updatableSet.add(currentNode.position, currentNode);\r\n this.stepsCount = 0;\r\n this.openNode = undefined;\r\n };\r\n AStarContextBase.prototype.startContinue = function () {\r\n this.currentNode = this.generalSet.dequeueMin();\r\n };\r\n AStarContextBase.prototype.endContinue = function () {\r\n var _this = this;\r\n var currentPosition = this.currentNode.position;\r\n this.updatableSet.remove(currentPosition);\r\n this.addProhibitedPoint(currentPosition);\r\n this.getNeighborPoints(currentPosition).forEach(function (nextPosition) {\r\n var penalty = _this.getPenalty(_this.currentNode, nextPosition);\r\n var openNode = _this.updatableSet.getNode(nextPosition);\r\n if (openNode === undefined) {\r\n openNode = new AStarNode_1.AStarNode(nextPosition, _this.getDistance(nextPosition, _this.targetPosition));\r\n openNode.parent = _this.currentNode;\r\n openNode.penalty = penalty;\r\n _this.generalSet.enqueue(openNode);\r\n _this.updatableSet.add(nextPosition, openNode);\r\n }\r\n else if (openNode.penalty > penalty) {\r\n var generalSet = _this.generalSet;\r\n generalSet.remove(openNode);\r\n openNode.parent = _this.currentNode;\r\n openNode.penalty = penalty;\r\n generalSet.enqueue(openNode);\r\n }\r\n _this.openNode = openNode;\r\n });\r\n this.stepsCount++;\r\n };\r\n AStarContextBase.prototype.finishWithPath = function () {\r\n this.path = this.currentNode.getPath();\r\n };\r\n AStarContextBase.prototype.finishWithoutPath = function () {\r\n this.path = [];\r\n };\r\n return AStarContextBase;\r\n}());\r\nexports.AStarContextBase = AStarContextBase;\r\nvar AStarContext = /** @class */ (function (_super) {\r\n __extends(AStarContext, _super);\r\n function AStarContext(routingContext, startPosition, targetPosition, prohibitedSegments, grid, metrics) {\r\n var _this = _super.call(this, startPosition, targetPosition, 10000) || this;\r\n _this.routingContext = routingContext;\r\n _this.startPosition = startPosition;\r\n _this.targetPosition = targetPosition;\r\n _this.prohibitedSegments = prohibitedSegments;\r\n _this.grid = grid;\r\n _this.metrics = metrics;\r\n return _this;\r\n }\r\n AStarContext.prototype.addProhibitedPoint = function (point) {\r\n this.prohibitedPoints[point.toString()] = point;\r\n };\r\n AStarContext.prototype.getNeighborPoints = function (point) {\r\n var _this = this;\r\n return this.grid.getNeighborPoints(point).filter(function (p) { return _this.allowPoint(p); });\r\n };\r\n AStarContext.prototype.getDistance = function (startPoint, endPoint) {\r\n return this.metrics.distance(startPoint, endPoint);\r\n };\r\n AStarContext.prototype.getPenalty = function (node, nextPoint) {\r\n var parent = node.parent;\r\n var currentPosition = node.position;\r\n var turnDirection = this.getTurnDirection(parent ? this.createAngle(parent.position, currentPosition, nextPoint) : 0);\r\n var distance = this.getDistance(currentPosition, nextPoint);\r\n var middlePosition = new segment_1.Segment(currentPosition, nextPoint).center;\r\n return node.penalty + this.metrics.penalty(distance, middlePosition, turnDirection, this.getIntersectedItems(middlePosition));\r\n };\r\n AStarContext.prototype.allowPoint = function (p) {\r\n return this.prohibitedPoints[p.toString()] === undefined && (!this.prohibitedSegments || this.prohibitedSegments.allowPoint(p));\r\n };\r\n AStarContext.prototype.getTurnDirection = function (angle) {\r\n return RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.getTurnDirection(angle);\r\n };\r\n AStarContext.prototype.createAngle = function (p1, p2, p3) {\r\n return RightAngleConnectorRoutingMathOperations_1.RightAngleConnectorRoutingMathOperations.createAngle(p1, p2, p3);\r\n };\r\n AStarContext.prototype.getIntersectedItems = function (position) {\r\n var _this = this;\r\n var margin = this.routingContext.shapeMargins;\r\n return this.routingContext.getIntersectedItems(position, function (p, i) { return _this.hasIntersectedItem(p, i, margin); });\r\n };\r\n AStarContext.prototype.hasIntersectedItem = function (point, item, margin) {\r\n if (!this.isIntersectedWithExtendedRectangle(point, item, margin))\r\n return false;\r\n if (this.hasOneShapeConnection(item))\r\n return true;\r\n return !this.itemContainsConnectionPoints(item);\r\n };\r\n AStarContext.prototype.isIntersectedWithExtendedRectangle = function (point, item, margin) {\r\n return item.rectangle.clone().inflate(margin).containsPoint(point);\r\n };\r\n AStarContext.prototype.itemContainsConnectionPoints = function (item) {\r\n var rectangle = item.rectangle;\r\n return rectangle.containsPoint(this.routingContext.beginPoint) && rectangle.containsPoint(this.routingContext.endPoint);\r\n };\r\n AStarContext.prototype.hasOneShapeConnection = function (item) {\r\n var connectionPoints = item.getConnectionPoints();\r\n return this.isConnectionPoint(connectionPoints, this.routingContext.beginPoint) &&\r\n this.isConnectionPoint(connectionPoints, this.routingContext.endPoint);\r\n };\r\n AStarContext.prototype.isConnectionPoint = function (connectionPoints, point) {\r\n return connectionPoints.filter(function (p) { return p.equals(point); }).length > 0;\r\n };\r\n return AStarContext;\r\n}(AStarContextBase));\r\nexports.AStarContext = AStarContext;\r\n\n\n/***/ }),\n/* 377 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SortedQueues = void 0;\r\nvar search_1 = __webpack_require__(40);\r\nvar SortedQueues = /** @class */ (function () {\r\n function SortedQueues(getKey) {\r\n this.getKey = getKey;\r\n this._itemsArrays = {};\r\n this._sortedKeys = [];\r\n }\r\n Object.defineProperty(SortedQueues.prototype, \"sortedKeys\", {\r\n get: function () { return this._sortedKeys; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n SortedQueues.prototype.getQueue = function (key) {\r\n return this._itemsArrays[key];\r\n };\r\n SortedQueues.prototype.enqueue = function (item) {\r\n var key = this.getKey(item);\r\n if (this._itemsArrays[key] === undefined) {\r\n this._itemsArrays[key] = [item];\r\n this.addSortedKey(key);\r\n }\r\n else\r\n this._itemsArrays[key].push(item);\r\n };\r\n SortedQueues.prototype.remove = function (item) {\r\n var key = this.getKey(item);\r\n var itemsArray = this._itemsArrays[key];\r\n if (itemsArray !== undefined)\r\n if (!itemsArray.length)\r\n this.removeCore(key);\r\n else if (itemsArray[0] === item) {\r\n itemsArray.shift();\r\n if (!itemsArray.length)\r\n this.removeCore(key);\r\n }\r\n else\r\n this._itemsArrays[key] = itemsArray.filter(function (x) { return x !== item; });\r\n };\r\n SortedQueues.prototype.dequeueMin = function () {\r\n if (!this._sortedKeys.length)\r\n return undefined;\r\n var key = this._sortedKeys[0];\r\n var itemsArray = this._itemsArrays[key];\r\n var item = itemsArray.shift();\r\n if (!itemsArray.length)\r\n this.removeCore(key);\r\n return item;\r\n };\r\n SortedQueues.prototype.removeCore = function (key) {\r\n delete this._itemsArrays[key];\r\n this.removeSortedKey(key);\r\n };\r\n SortedQueues.prototype.removeSortedKey = function (key) {\r\n var sortedPointIndex = search_1.SearchUtils.binaryIndexOf(this._sortedKeys, function (x) { return x - key; });\r\n if (sortedPointIndex >= 0)\r\n this.sortedKeys.splice(sortedPointIndex, 1);\r\n };\r\n SortedQueues.prototype.addSortedKey = function (key) {\r\n var sortedPointIndex = search_1.SearchUtils.binaryIndexOf(this._sortedKeys, function (x) { return x - key; });\r\n if (sortedPointIndex < 0)\r\n this._sortedKeys.splice(-(sortedPointIndex + 1), 0, key);\r\n };\r\n return SortedQueues;\r\n}());\r\nexports.SortedQueues = SortedQueues;\r\n\n\n/***/ }),\n/* 378 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UniqueAStarNodePositions = void 0;\r\nvar UniqueAStarNodePositions = /** @class */ (function () {\r\n function UniqueAStarNodePositions(getKey) {\r\n if (getKey === void 0) { getKey = function (key) { return key.toString(); }; }\r\n this.getKey = getKey;\r\n this.items = {};\r\n }\r\n Object.defineProperty(UniqueAStarNodePositions.prototype, \"count\", {\r\n get: function () { return Object.keys(this.items).length; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n UniqueAStarNodePositions.prototype.getNode = function (position) {\r\n var item = this.items[this.getKey(position)];\r\n return item !== undefined ? item.node : undefined;\r\n };\r\n UniqueAStarNodePositions.prototype.add = function (position, node) {\r\n var key = this.getKey(position);\r\n if (this.items[key] === undefined)\r\n this.items[key] = { position: position, node: node };\r\n };\r\n UniqueAStarNodePositions.prototype.remove = function (position) {\r\n var key = this.getKey(position);\r\n if (this.items[key] !== undefined)\r\n delete this.items[key];\r\n };\r\n return UniqueAStarNodePositions;\r\n}());\r\nexports.UniqueAStarNodePositions = UniqueAStarNodePositions;\r\n\n\n/***/ }),\n/* 379 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AStarNode = void 0;\r\nvar AStarNode = /** @class */ (function () {\r\n function AStarNode(position, distance) {\r\n this.position = position;\r\n this.distance = distance;\r\n this.penalty = 0;\r\n }\r\n Object.defineProperty(AStarNode.prototype, \"key\", {\r\n get: function () { return this.distance + this.penalty; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n AStarNode.prototype.getPath = function () {\r\n var result = [];\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var currentNode = this;\r\n while (currentNode !== undefined) {\r\n result.splice(0, 0, currentNode.position);\r\n currentNode = currentNode.parent;\r\n }\r\n return result;\r\n };\r\n return AStarNode;\r\n}());\r\nexports.AStarNode = AStarNode;\r\n\n\n/***/ }),\n/* 380 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AStarCalculator = void 0;\r\nvar AStarCalculator = /** @class */ (function () {\r\n function AStarCalculator() {\r\n }\r\n AStarCalculator.calculate = function (context) {\r\n if (context) {\r\n var callBack = this.start(context);\r\n while (callBack)\r\n callBack = callBack(context);\r\n }\r\n };\r\n AStarCalculator.start = function (context) {\r\n context.start();\r\n return context.shouldStartContinue ? AStarCalculator.startContinue : AStarCalculator.finishWithPath;\r\n };\r\n AStarCalculator.startContinue = function (context) {\r\n context.startContinue();\r\n return context.shouldFinish ? AStarCalculator.finishWithPath : AStarCalculator.endContinue;\r\n };\r\n AStarCalculator.endContinue = function (context) {\r\n context.endContinue();\r\n return context.shouldStartContinue ? AStarCalculator.startContinue : AStarCalculator.finishWithoutPath;\r\n };\r\n AStarCalculator.finishWithPath = function (context) {\r\n context.finishWithPath();\r\n };\r\n AStarCalculator.finishWithoutPath = function (context) {\r\n context.finishWithoutPath();\r\n };\r\n return AStarCalculator;\r\n}());\r\nexports.AStarCalculator = AStarCalculator;\r\n\n\n/***/ }),\n/* 381 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ReloadContentParameters = void 0;\r\nvar ReloadContentParameters = /** @class */ (function () {\r\n function ReloadContentParameters() {\r\n this.isEmpty = true;\r\n }\r\n ReloadContentParameters.prototype.add = function (dataKey, getData, layoutParameters) {\r\n if (dataKey !== undefined) {\r\n if (this._dataKeys === undefined)\r\n this._dataKeys = [];\r\n if (Array.isArray(dataKey))\r\n this._dataKeys = this._dataKeys.concat(dataKey);\r\n else\r\n this._dataKeys.push(dataKey);\r\n }\r\n this._getData = this._getData || getData;\r\n this._layoutParameters = this._layoutParameters || layoutParameters;\r\n this.isEmpty = false;\r\n };\r\n ReloadContentParameters.prototype.clear = function () {\r\n this.isEmpty = true;\r\n this._dataKeys = undefined;\r\n this._getData = undefined;\r\n this._layoutParameters = undefined;\r\n };\r\n Object.defineProperty(ReloadContentParameters.prototype, \"empty\", {\r\n get: function () { return this.isEmpty; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReloadContentParameters.prototype, \"dataKeys\", {\r\n get: function () { return this._dataKeys; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReloadContentParameters.prototype, \"getData\", {\r\n get: function () { return this._getData; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReloadContentParameters.prototype, \"layoutParameters\", {\r\n get: function () { return this._layoutParameters; },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return ReloadContentParameters;\r\n}());\r\nexports.ReloadContentParameters = ReloadContentParameters;\r\n\n\n/***/ }),\n/* 382 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ })\n/******/ ]);\n});"],"sourceRoot":""}