orcasvn-react-diagrams 0.1.38 → 0.1.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js CHANGED
@@ -7331,13 +7331,13 @@ var getElementRotationInfo = function (element) {
7331
7331
  // //calculate a2 equal cos of rotation * width
7332
7332
  // const a2 = Math.abs(Math.cos(rotationInRadians) * rectWidth);
7333
7333
  // const a = a1 + a2;
7334
- // console.info(`a1: ${a1}, a2: ${a2}, a: ${a}`);
7334
+ // logger.info(`a1: ${a1}, a2: ${a2}, a: ${a}`);
7335
7335
  // //calculate b1 equal cos of rotation * height
7336
7336
  // const b1 = Math.abs(Math.cos(rotationInRadians) * rectHeight);
7337
7337
  // //calculate b2 equal sin of rotation * width
7338
7338
  // const b2 = Math.abs(Math.sin(rotationInRadians) * rectWidth);
7339
7339
  // const b = b1 + b2;
7340
- // console.info(`b1: ${b1}, b2: ${b2}, b: ${b}`);
7340
+ // logger.info(`b1: ${b1}, b2: ${b2}, b: ${b}`);
7341
7341
  // //const squareEdge = Math.max(rectWidth, rectHeight);
7342
7342
  // return {x, y};
7343
7343
  // return { x: x - (b - rectWidth) / 2, y: y - (a - rectHeight) / 2 };
@@ -7378,6 +7378,65 @@ function calculateAngleWithOx(pStart, pEnd) {
7378
7378
  return angleInDegrees;
7379
7379
  }
7380
7380
 
7381
+ var Logger = /** @class */ (function () {
7382
+ function Logger() {
7383
+ this.level = 'info';
7384
+ this.customLogger = null;
7385
+ }
7386
+ Logger.prototype.setLevel = function (level) {
7387
+ this.level = level;
7388
+ };
7389
+ Logger.prototype.setCustomLogger = function (logger) {
7390
+ this.customLogger = logger;
7391
+ };
7392
+ Logger.prototype.log = function (level, message) {
7393
+ var _a;
7394
+ var optionalParams = [];
7395
+ for (var _i = 2; _i < arguments.length; _i++) {
7396
+ optionalParams[_i - 2] = arguments[_i];
7397
+ }
7398
+ var levels = ['error', 'warn', 'info', 'debug'];
7399
+ if (this.level && levels.indexOf(level) <= levels.indexOf(this.level)) {
7400
+ if (this.customLogger) {
7401
+ this.customLogger.apply(this, __spreadArray([level, message], optionalParams, false));
7402
+ }
7403
+ else {
7404
+ console[level] ? (_a = console)[level].apply(_a, __spreadArray([message], optionalParams, false)) : console.log.apply(console, __spreadArray([message], optionalParams, false));
7405
+ }
7406
+ }
7407
+ };
7408
+ Logger.prototype.error = function (msg) {
7409
+ var optionalParams = [];
7410
+ for (var _i = 1; _i < arguments.length; _i++) {
7411
+ optionalParams[_i - 1] = arguments[_i];
7412
+ }
7413
+ this.log.apply(this, __spreadArray(['error', msg], optionalParams, false));
7414
+ };
7415
+ Logger.prototype.warn = function (msg) {
7416
+ var optionalParams = [];
7417
+ for (var _i = 1; _i < arguments.length; _i++) {
7418
+ optionalParams[_i - 1] = arguments[_i];
7419
+ }
7420
+ this.log.apply(this, __spreadArray(['warn', msg], optionalParams, false));
7421
+ };
7422
+ Logger.prototype.info = function (msg) {
7423
+ var optionalParams = [];
7424
+ for (var _i = 1; _i < arguments.length; _i++) {
7425
+ optionalParams[_i - 1] = arguments[_i];
7426
+ }
7427
+ this.log.apply(this, __spreadArray(['info', msg], optionalParams, false));
7428
+ };
7429
+ Logger.prototype.debug = function (msg) {
7430
+ var optionalParams = [];
7431
+ for (var _i = 1; _i < arguments.length; _i++) {
7432
+ optionalParams[_i - 1] = arguments[_i];
7433
+ }
7434
+ this.log.apply(this, __spreadArray(['debug', msg], optionalParams, false));
7435
+ };
7436
+ return Logger;
7437
+ }());
7438
+ var logger = new Logger();
7439
+
7381
7440
  /**
7382
7441
  * Check if position 1 is within the radius r of position 2
7383
7442
  * @returns boolean
@@ -7658,12 +7717,42 @@ var getFourVertexesOfBBoxFromElement = function (element) {
7658
7717
  //get absolute position of element
7659
7718
  var getAbsolutePosition = function (element) {
7660
7719
  var parentElement = element.parentElement;
7720
+ var elemenetPositionWithTopLeftAnchor = {
7721
+ x: element.position.x,
7722
+ y: element.position.y,
7723
+ };
7724
+ if (element.positionAnchor === exports.PositioningAnchor.Center) {
7725
+ elemenetPositionWithTopLeftAnchor.x -= element.size.width / 2;
7726
+ elemenetPositionWithTopLeftAnchor.y -= element.size.height / 2;
7727
+ }
7728
+ if (!parentElement) {
7729
+ return __assign({}, elemenetPositionWithTopLeftAnchor);
7730
+ }
7731
+ var absoluteParentElement = getAbsolutePosition(parentElement);
7732
+ var x = elemenetPositionWithTopLeftAnchor.x + absoluteParentElement.x;
7733
+ var y = elemenetPositionWithTopLeftAnchor.y + absoluteParentElement.y;
7734
+ return {
7735
+ x: x,
7736
+ y: y,
7737
+ };
7738
+ };
7739
+ //get absolute position of element
7740
+ var getAnchorAdjustedAbsolutePosition = function (element) {
7741
+ var parentElement = element.parentElement;
7742
+ var elemenetPositionWithTopLeftAnchor = {
7743
+ x: element.position.x,
7744
+ y: element.position.y,
7745
+ };
7746
+ if (element.positionAnchor === exports.PositioningAnchor.Center) {
7747
+ elemenetPositionWithTopLeftAnchor.x -= element.size.width / 2;
7748
+ elemenetPositionWithTopLeftAnchor.y -= element.size.height / 2;
7749
+ }
7661
7750
  if (!parentElement) {
7662
- return __assign({}, element.position);
7751
+ return __assign({}, elemenetPositionWithTopLeftAnchor);
7663
7752
  }
7664
7753
  var absoluteParentElement = getAbsolutePosition(parentElement);
7665
- var x = element.position.x + absoluteParentElement.x;
7666
- var y = element.position.y + absoluteParentElement.y;
7754
+ var x = elemenetPositionWithTopLeftAnchor.x + absoluteParentElement.x;
7755
+ var y = elemenetPositionWithTopLeftAnchor.y + absoluteParentElement.y;
7667
7756
  return {
7668
7757
  x: x,
7669
7758
  y: y,
@@ -7751,7 +7840,7 @@ var correctPortPositionInElement = function (elementRelativePosition, elementWid
7751
7840
  [c, d],
7752
7841
  [d, a]
7753
7842
  ];
7754
- console.info("Port's moveable areas parsed from svg ".concat(portSlideRailSVGClassName), moveableAreas);
7843
+ logger.info("Port's moveable areas parsed from svg ".concat(portSlideRailSVGClassName), moveableAreas);
7755
7844
  var newPosition_3 = normalizePortPositionOnMoveableAreas(moveableAreas, position);
7756
7845
  if (newPosition_3) {
7757
7846
  moveTo = newPosition_3;
@@ -8257,65 +8346,6 @@ var getRotatedSVGBBox = function (svgElement) {
8257
8346
  }
8258
8347
  };
8259
8348
 
8260
- var Logger = /** @class */ (function () {
8261
- function Logger() {
8262
- this.level = 'info';
8263
- this.customLogger = null;
8264
- }
8265
- Logger.prototype.setLevel = function (level) {
8266
- this.level = level;
8267
- };
8268
- Logger.prototype.setCustomLogger = function (logger) {
8269
- this.customLogger = logger;
8270
- };
8271
- Logger.prototype.log = function (level, message) {
8272
- var _a;
8273
- var optionalParams = [];
8274
- for (var _i = 2; _i < arguments.length; _i++) {
8275
- optionalParams[_i - 2] = arguments[_i];
8276
- }
8277
- var levels = ['error', 'warn', 'info', 'debug'];
8278
- if (this.level && levels.indexOf(level) <= levels.indexOf(this.level)) {
8279
- if (this.customLogger) {
8280
- this.customLogger.apply(this, __spreadArray([level, message], optionalParams, false));
8281
- }
8282
- else {
8283
- console[level] ? (_a = console)[level].apply(_a, __spreadArray([message], optionalParams, false)) : console.log.apply(console, __spreadArray([message], optionalParams, false));
8284
- }
8285
- }
8286
- };
8287
- Logger.prototype.error = function (msg) {
8288
- var optionalParams = [];
8289
- for (var _i = 1; _i < arguments.length; _i++) {
8290
- optionalParams[_i - 1] = arguments[_i];
8291
- }
8292
- this.log.apply(this, __spreadArray(['error', msg], optionalParams, false));
8293
- };
8294
- Logger.prototype.warn = function (msg) {
8295
- var optionalParams = [];
8296
- for (var _i = 1; _i < arguments.length; _i++) {
8297
- optionalParams[_i - 1] = arguments[_i];
8298
- }
8299
- this.log.apply(this, __spreadArray(['warn', msg], optionalParams, false));
8300
- };
8301
- Logger.prototype.info = function (msg) {
8302
- var optionalParams = [];
8303
- for (var _i = 1; _i < arguments.length; _i++) {
8304
- optionalParams[_i - 1] = arguments[_i];
8305
- }
8306
- this.log.apply(this, __spreadArray(['info', msg], optionalParams, false));
8307
- };
8308
- Logger.prototype.debug = function (msg) {
8309
- var optionalParams = [];
8310
- for (var _i = 1; _i < arguments.length; _i++) {
8311
- optionalParams[_i - 1] = arguments[_i];
8312
- }
8313
- this.log.apply(this, __spreadArray(['debug', msg], optionalParams, false));
8314
- };
8315
- return Logger;
8316
- }());
8317
- var logger = new Logger();
8318
-
8319
8349
  function configureLogger(_a) {
8320
8350
  var level = _a.level, customLogger = _a.customLogger;
8321
8351
  if (level !== undefined)
@@ -9042,14 +9072,21 @@ var automationAddPointsToLink = function (eleLink, elements, limitPoint) {
9042
9072
  return eleLink;
9043
9073
  };
9044
9074
 
9045
- function adjustElementPositionOnParentPortArea(element, toBeAdjustedRelativePosition) {
9075
+ function adjustElementPositionOnParentPortArea(element, toBeAdjustedPosition, isAbsolutePosition) {
9046
9076
  var _a;
9077
+ if (isAbsolutePosition === void 0) { isAbsolutePosition = false; }
9047
9078
  if (element.moveAsPortOnParent && element.parentElement) {
9048
9079
  var parentDOM = (_a = element.parentElementInTree) === null || _a === void 0 ? void 0 : _a.DOM;
9049
- var newRelativePosition = transformAbsPositionToElementRelativePosition(toBeAdjustedRelativePosition, element);
9080
+ var newRelativePosition = {
9081
+ x: toBeAdjustedPosition.x,
9082
+ y: toBeAdjustedPosition.y
9083
+ };
9084
+ if (isAbsolutePosition) {
9085
+ newRelativePosition = transformAbsPositionToElementRelativePosition(toBeAdjustedPosition, element);
9086
+ }
9050
9087
  return correctPortPositionInElement(newRelativePosition, element.size.width, element.size.height, element.parentElement.portMoveableAreas, element.parentElement.portSlideRailSVGClassName, parentDOM);
9051
9088
  }
9052
- return toBeAdjustedRelativePosition;
9089
+ return toBeAdjustedPosition;
9053
9090
  }
9054
9091
  function convertElementsToTree(elements) {
9055
9092
  //Find child elements in the child elements, that is possible child of element, then return element with child of it.
@@ -9603,10 +9640,10 @@ var Paper = function (props) {
9603
9640
  x: newX,
9604
9641
  y: newY
9605
9642
  };
9606
- console.info("Element ".concat(selectedElement.id, " is dragging to position ").concat(JSON.stringify(newPosition)));
9643
+ logger.info("Element ".concat(selectedElement.id, " is dragging to position ").concat(JSON.stringify(newPosition)));
9607
9644
  //Adjust position of element if it should move as a port on parent port area
9608
9645
  if (selectedElement.moveAsPortOnParent && selectedElement.parentElement) {
9609
- newPosition = adjustElementPositionOnParentPortArea(selectedElement, newPosition);
9646
+ newPosition = adjustElementPositionOnParentPortArea(selectedElement, newPosition, true);
9610
9647
  updateElementPosition(selectedElement, newPosition.x, newPosition.y, true);
9611
9648
  }
9612
9649
  else {
@@ -9614,7 +9651,7 @@ var Paper = function (props) {
9614
9651
  }
9615
9652
  //let newElementPosition = updateElementPosition(selectedElement, newPosition.x, newPosition.y, true)
9616
9653
  var indexSelectedElement = elements.findIndex(function (e) { return e.id === selectedElement.id; });
9617
- console.info("Element ".concat(selectedElement.id, " is moving to relative position ").concat(JSON.stringify(selectedElement.position)));
9654
+ logger.info("Element ".concat(selectedElement.id, " is moving to relative position ").concat(JSON.stringify(selectedElement.position)));
9618
9655
  //Set state to re-render UI with new position
9619
9656
  setElementsInTree(function (prev) { return __spreadArray([], prev, true); });
9620
9657
  if (props.onElementMoved) {
@@ -9798,16 +9835,16 @@ var Paper = function (props) {
9798
9835
  if (!link.targetElement || !link.targetPort)
9799
9836
  return null;
9800
9837
  return (React.createElement(ElementLink, { key: link.id, id: link.id, path: link.path, sourcePosition: {
9801
- x: getAbsolutePosition(link.sourceElement).x + link.sourcePort.position.x,
9802
- y: getAbsolutePosition(link.sourceElement).y + link.sourcePort.position.y
9838
+ x: getAnchorAdjustedAbsolutePosition(link.sourceElement).x + link.sourcePort.position.x,
9839
+ y: getAnchorAdjustedAbsolutePosition(link.sourceElement).y + link.sourcePort.position.y
9803
9840
  }, targetPosition: {
9804
- x: getAbsolutePosition(link.targetElement).x + link.targetPort.position.x,
9805
- y: getAbsolutePosition(link.targetElement).y + link.targetPort.position.y
9841
+ x: getAnchorAdjustedAbsolutePosition(link.targetElement).x + link.targetPort.position.x,
9842
+ y: getAnchorAdjustedAbsolutePosition(link.targetElement).y + link.targetPort.position.y
9806
9843
  }, points: link.points, onPathChanged: handlePathChange, onClickDelete: handleClickLinkDelete(link, index), onSelected: function () { return handleSelectLink(link); }, onDeselected: function () { return handleDeselectLink(); }, container: paperContainerRef.current, markerStart: link.markerStart, markerEnd: link.markerEnd, markerDistanceFromPort: link.markerDistanceFromPort, markerSize: link.markerSize, label: link.label, sourceLabel: link.sourceLabel, targetLabel: link.targetLabel, onLabelMoved: onLabelMoved(index), onLabelResized: onLabelResized(index), onLabelContentChanged: onLabelContentChanged(index) }));
9807
9844
  }),
9808
9845
  (tempLink === null || tempLink === void 0 ? void 0 : tempLink.tempTargetPosition) && React.createElement(ElementLink, { id: tempLink.id, points: tempLink.points, sourcePosition: {
9809
- x: getAbsolutePosition(tempLink.sourceElement).x + tempLink.sourcePort.position.x,
9810
- y: getAbsolutePosition(tempLink.sourceElement).y + tempLink.sourcePort.position.y
9846
+ x: getAnchorAdjustedAbsolutePosition(tempLink.sourceElement).x + tempLink.sourcePort.position.x,
9847
+ y: getAnchorAdjustedAbsolutePosition(tempLink.sourceElement).y + tempLink.sourcePort.position.y
9811
9848
  }, targetPosition: tempLink.tempTargetPosition, container: paperContainerRef.current, markerStart: tempLink.markerStart, markerEnd: tempLink.markerEnd, markerDistanceFromPort: tempLink.markerDistanceFromPort, markerSize: tempLink.markerSize }),
9812
9849
  texts.map(function (text, index) { return (React.createElement(Text$1, { key: text.id, id: text.id, x: text.position.x, y: text.position.y, width: text.size.width, height: text.size.height, editable: text.editable, fontSize: text.fontSize, border: text.border, container: paperContainerRef.current, content: text.content, align: text.align, onSelected: function () {
9813
9850
  setSelectedText(text);
@@ -9957,6 +9994,7 @@ exports.findNearestProjectedPoint = findNearestProjectedPoint;
9957
9994
  exports.generateSubstitutePosition = generateSubstitutePosition;
9958
9995
  exports.generateUniqueId = generateUniqueId;
9959
9996
  exports.getAbsolutePosition = getAbsolutePosition;
9997
+ exports.getAnchorAdjustedAbsolutePosition = getAnchorAdjustedAbsolutePosition;
9960
9998
  exports.getCurvePathData = getCurvePathData;
9961
9999
  exports.getElementRotationInfo = getElementRotationInfo;
9962
10000
  exports.getFirstIntersection = getFirstIntersection;
@@ -48,6 +48,7 @@ export declare const generateSubstitutePosition: (intersectedPosition: IPosition
48
48
  export declare const getRelativePosition: (clientPosition: IPosition, relativeElement: Element) => IPosition;
49
49
  export declare const getFourVertexesOfBBoxFromElement: (element: IElement) => IPosition[];
50
50
  export declare const getAbsolutePosition: (element: IElement) => IPosition;
51
+ export declare const getAnchorAdjustedAbsolutePosition: (element: IElement) => IPosition;
51
52
  export declare const getPortAbsolutePosition: (port: IPort, element: IElement) => IPosition;
52
53
  export declare const transformAbsPositionToElementRelativePosition: (position: IPosition, element: IElement) => IPosition;
53
54
  export declare const transformAbsPositionToRelativePositionInsideElement: (absolutePosition: IPosition, parentAbsolutePosition?: IPosition) => IPosition;
package/dist/esm/index.js CHANGED
@@ -7327,13 +7327,13 @@ var getElementRotationInfo = function (element) {
7327
7327
  // //calculate a2 equal cos of rotation * width
7328
7328
  // const a2 = Math.abs(Math.cos(rotationInRadians) * rectWidth);
7329
7329
  // const a = a1 + a2;
7330
- // console.info(`a1: ${a1}, a2: ${a2}, a: ${a}`);
7330
+ // logger.info(`a1: ${a1}, a2: ${a2}, a: ${a}`);
7331
7331
  // //calculate b1 equal cos of rotation * height
7332
7332
  // const b1 = Math.abs(Math.cos(rotationInRadians) * rectHeight);
7333
7333
  // //calculate b2 equal sin of rotation * width
7334
7334
  // const b2 = Math.abs(Math.sin(rotationInRadians) * rectWidth);
7335
7335
  // const b = b1 + b2;
7336
- // console.info(`b1: ${b1}, b2: ${b2}, b: ${b}`);
7336
+ // logger.info(`b1: ${b1}, b2: ${b2}, b: ${b}`);
7337
7337
  // //const squareEdge = Math.max(rectWidth, rectHeight);
7338
7338
  // return {x, y};
7339
7339
  // return { x: x - (b - rectWidth) / 2, y: y - (a - rectHeight) / 2 };
@@ -7374,6 +7374,65 @@ function calculateAngleWithOx(pStart, pEnd) {
7374
7374
  return angleInDegrees;
7375
7375
  }
7376
7376
 
7377
+ var Logger = /** @class */ (function () {
7378
+ function Logger() {
7379
+ this.level = 'info';
7380
+ this.customLogger = null;
7381
+ }
7382
+ Logger.prototype.setLevel = function (level) {
7383
+ this.level = level;
7384
+ };
7385
+ Logger.prototype.setCustomLogger = function (logger) {
7386
+ this.customLogger = logger;
7387
+ };
7388
+ Logger.prototype.log = function (level, message) {
7389
+ var _a;
7390
+ var optionalParams = [];
7391
+ for (var _i = 2; _i < arguments.length; _i++) {
7392
+ optionalParams[_i - 2] = arguments[_i];
7393
+ }
7394
+ var levels = ['error', 'warn', 'info', 'debug'];
7395
+ if (this.level && levels.indexOf(level) <= levels.indexOf(this.level)) {
7396
+ if (this.customLogger) {
7397
+ this.customLogger.apply(this, __spreadArray([level, message], optionalParams, false));
7398
+ }
7399
+ else {
7400
+ console[level] ? (_a = console)[level].apply(_a, __spreadArray([message], optionalParams, false)) : console.log.apply(console, __spreadArray([message], optionalParams, false));
7401
+ }
7402
+ }
7403
+ };
7404
+ Logger.prototype.error = function (msg) {
7405
+ var optionalParams = [];
7406
+ for (var _i = 1; _i < arguments.length; _i++) {
7407
+ optionalParams[_i - 1] = arguments[_i];
7408
+ }
7409
+ this.log.apply(this, __spreadArray(['error', msg], optionalParams, false));
7410
+ };
7411
+ Logger.prototype.warn = function (msg) {
7412
+ var optionalParams = [];
7413
+ for (var _i = 1; _i < arguments.length; _i++) {
7414
+ optionalParams[_i - 1] = arguments[_i];
7415
+ }
7416
+ this.log.apply(this, __spreadArray(['warn', msg], optionalParams, false));
7417
+ };
7418
+ Logger.prototype.info = function (msg) {
7419
+ var optionalParams = [];
7420
+ for (var _i = 1; _i < arguments.length; _i++) {
7421
+ optionalParams[_i - 1] = arguments[_i];
7422
+ }
7423
+ this.log.apply(this, __spreadArray(['info', msg], optionalParams, false));
7424
+ };
7425
+ Logger.prototype.debug = function (msg) {
7426
+ var optionalParams = [];
7427
+ for (var _i = 1; _i < arguments.length; _i++) {
7428
+ optionalParams[_i - 1] = arguments[_i];
7429
+ }
7430
+ this.log.apply(this, __spreadArray(['debug', msg], optionalParams, false));
7431
+ };
7432
+ return Logger;
7433
+ }());
7434
+ var logger = new Logger();
7435
+
7377
7436
  /**
7378
7437
  * Check if position 1 is within the radius r of position 2
7379
7438
  * @returns boolean
@@ -7654,12 +7713,42 @@ var getFourVertexesOfBBoxFromElement = function (element) {
7654
7713
  //get absolute position of element
7655
7714
  var getAbsolutePosition = function (element) {
7656
7715
  var parentElement = element.parentElement;
7716
+ var elemenetPositionWithTopLeftAnchor = {
7717
+ x: element.position.x,
7718
+ y: element.position.y,
7719
+ };
7720
+ if (element.positionAnchor === PositioningAnchor.Center) {
7721
+ elemenetPositionWithTopLeftAnchor.x -= element.size.width / 2;
7722
+ elemenetPositionWithTopLeftAnchor.y -= element.size.height / 2;
7723
+ }
7724
+ if (!parentElement) {
7725
+ return __assign({}, elemenetPositionWithTopLeftAnchor);
7726
+ }
7727
+ var absoluteParentElement = getAbsolutePosition(parentElement);
7728
+ var x = elemenetPositionWithTopLeftAnchor.x + absoluteParentElement.x;
7729
+ var y = elemenetPositionWithTopLeftAnchor.y + absoluteParentElement.y;
7730
+ return {
7731
+ x: x,
7732
+ y: y,
7733
+ };
7734
+ };
7735
+ //get absolute position of element
7736
+ var getAnchorAdjustedAbsolutePosition = function (element) {
7737
+ var parentElement = element.parentElement;
7738
+ var elemenetPositionWithTopLeftAnchor = {
7739
+ x: element.position.x,
7740
+ y: element.position.y,
7741
+ };
7742
+ if (element.positionAnchor === PositioningAnchor.Center) {
7743
+ elemenetPositionWithTopLeftAnchor.x -= element.size.width / 2;
7744
+ elemenetPositionWithTopLeftAnchor.y -= element.size.height / 2;
7745
+ }
7657
7746
  if (!parentElement) {
7658
- return __assign({}, element.position);
7747
+ return __assign({}, elemenetPositionWithTopLeftAnchor);
7659
7748
  }
7660
7749
  var absoluteParentElement = getAbsolutePosition(parentElement);
7661
- var x = element.position.x + absoluteParentElement.x;
7662
- var y = element.position.y + absoluteParentElement.y;
7750
+ var x = elemenetPositionWithTopLeftAnchor.x + absoluteParentElement.x;
7751
+ var y = elemenetPositionWithTopLeftAnchor.y + absoluteParentElement.y;
7663
7752
  return {
7664
7753
  x: x,
7665
7754
  y: y,
@@ -7747,7 +7836,7 @@ var correctPortPositionInElement = function (elementRelativePosition, elementWid
7747
7836
  [c, d],
7748
7837
  [d, a]
7749
7838
  ];
7750
- console.info("Port's moveable areas parsed from svg ".concat(portSlideRailSVGClassName), moveableAreas);
7839
+ logger.info("Port's moveable areas parsed from svg ".concat(portSlideRailSVGClassName), moveableAreas);
7751
7840
  var newPosition_3 = normalizePortPositionOnMoveableAreas(moveableAreas, position);
7752
7841
  if (newPosition_3) {
7753
7842
  moveTo = newPosition_3;
@@ -8253,65 +8342,6 @@ var getRotatedSVGBBox = function (svgElement) {
8253
8342
  }
8254
8343
  };
8255
8344
 
8256
- var Logger = /** @class */ (function () {
8257
- function Logger() {
8258
- this.level = 'info';
8259
- this.customLogger = null;
8260
- }
8261
- Logger.prototype.setLevel = function (level) {
8262
- this.level = level;
8263
- };
8264
- Logger.prototype.setCustomLogger = function (logger) {
8265
- this.customLogger = logger;
8266
- };
8267
- Logger.prototype.log = function (level, message) {
8268
- var _a;
8269
- var optionalParams = [];
8270
- for (var _i = 2; _i < arguments.length; _i++) {
8271
- optionalParams[_i - 2] = arguments[_i];
8272
- }
8273
- var levels = ['error', 'warn', 'info', 'debug'];
8274
- if (this.level && levels.indexOf(level) <= levels.indexOf(this.level)) {
8275
- if (this.customLogger) {
8276
- this.customLogger.apply(this, __spreadArray([level, message], optionalParams, false));
8277
- }
8278
- else {
8279
- console[level] ? (_a = console)[level].apply(_a, __spreadArray([message], optionalParams, false)) : console.log.apply(console, __spreadArray([message], optionalParams, false));
8280
- }
8281
- }
8282
- };
8283
- Logger.prototype.error = function (msg) {
8284
- var optionalParams = [];
8285
- for (var _i = 1; _i < arguments.length; _i++) {
8286
- optionalParams[_i - 1] = arguments[_i];
8287
- }
8288
- this.log.apply(this, __spreadArray(['error', msg], optionalParams, false));
8289
- };
8290
- Logger.prototype.warn = function (msg) {
8291
- var optionalParams = [];
8292
- for (var _i = 1; _i < arguments.length; _i++) {
8293
- optionalParams[_i - 1] = arguments[_i];
8294
- }
8295
- this.log.apply(this, __spreadArray(['warn', msg], optionalParams, false));
8296
- };
8297
- Logger.prototype.info = function (msg) {
8298
- var optionalParams = [];
8299
- for (var _i = 1; _i < arguments.length; _i++) {
8300
- optionalParams[_i - 1] = arguments[_i];
8301
- }
8302
- this.log.apply(this, __spreadArray(['info', msg], optionalParams, false));
8303
- };
8304
- Logger.prototype.debug = function (msg) {
8305
- var optionalParams = [];
8306
- for (var _i = 1; _i < arguments.length; _i++) {
8307
- optionalParams[_i - 1] = arguments[_i];
8308
- }
8309
- this.log.apply(this, __spreadArray(['debug', msg], optionalParams, false));
8310
- };
8311
- return Logger;
8312
- }());
8313
- var logger = new Logger();
8314
-
8315
8345
  function configureLogger(_a) {
8316
8346
  var level = _a.level, customLogger = _a.customLogger;
8317
8347
  if (level !== undefined)
@@ -9038,14 +9068,21 @@ var automationAddPointsToLink = function (eleLink, elements, limitPoint) {
9038
9068
  return eleLink;
9039
9069
  };
9040
9070
 
9041
- function adjustElementPositionOnParentPortArea(element, toBeAdjustedRelativePosition) {
9071
+ function adjustElementPositionOnParentPortArea(element, toBeAdjustedPosition, isAbsolutePosition) {
9042
9072
  var _a;
9073
+ if (isAbsolutePosition === void 0) { isAbsolutePosition = false; }
9043
9074
  if (element.moveAsPortOnParent && element.parentElement) {
9044
9075
  var parentDOM = (_a = element.parentElementInTree) === null || _a === void 0 ? void 0 : _a.DOM;
9045
- var newRelativePosition = transformAbsPositionToElementRelativePosition(toBeAdjustedRelativePosition, element);
9076
+ var newRelativePosition = {
9077
+ x: toBeAdjustedPosition.x,
9078
+ y: toBeAdjustedPosition.y
9079
+ };
9080
+ if (isAbsolutePosition) {
9081
+ newRelativePosition = transformAbsPositionToElementRelativePosition(toBeAdjustedPosition, element);
9082
+ }
9046
9083
  return correctPortPositionInElement(newRelativePosition, element.size.width, element.size.height, element.parentElement.portMoveableAreas, element.parentElement.portSlideRailSVGClassName, parentDOM);
9047
9084
  }
9048
- return toBeAdjustedRelativePosition;
9085
+ return toBeAdjustedPosition;
9049
9086
  }
9050
9087
  function convertElementsToTree(elements) {
9051
9088
  //Find child elements in the child elements, that is possible child of element, then return element with child of it.
@@ -9599,10 +9636,10 @@ var Paper = function (props) {
9599
9636
  x: newX,
9600
9637
  y: newY
9601
9638
  };
9602
- console.info("Element ".concat(selectedElement.id, " is dragging to position ").concat(JSON.stringify(newPosition)));
9639
+ logger.info("Element ".concat(selectedElement.id, " is dragging to position ").concat(JSON.stringify(newPosition)));
9603
9640
  //Adjust position of element if it should move as a port on parent port area
9604
9641
  if (selectedElement.moveAsPortOnParent && selectedElement.parentElement) {
9605
- newPosition = adjustElementPositionOnParentPortArea(selectedElement, newPosition);
9642
+ newPosition = adjustElementPositionOnParentPortArea(selectedElement, newPosition, true);
9606
9643
  updateElementPosition(selectedElement, newPosition.x, newPosition.y, true);
9607
9644
  }
9608
9645
  else {
@@ -9610,7 +9647,7 @@ var Paper = function (props) {
9610
9647
  }
9611
9648
  //let newElementPosition = updateElementPosition(selectedElement, newPosition.x, newPosition.y, true)
9612
9649
  var indexSelectedElement = elements.findIndex(function (e) { return e.id === selectedElement.id; });
9613
- console.info("Element ".concat(selectedElement.id, " is moving to relative position ").concat(JSON.stringify(selectedElement.position)));
9650
+ logger.info("Element ".concat(selectedElement.id, " is moving to relative position ").concat(JSON.stringify(selectedElement.position)));
9614
9651
  //Set state to re-render UI with new position
9615
9652
  setElementsInTree(function (prev) { return __spreadArray([], prev, true); });
9616
9653
  if (props.onElementMoved) {
@@ -9794,16 +9831,16 @@ var Paper = function (props) {
9794
9831
  if (!link.targetElement || !link.targetPort)
9795
9832
  return null;
9796
9833
  return (React.createElement(ElementLink, { key: link.id, id: link.id, path: link.path, sourcePosition: {
9797
- x: getAbsolutePosition(link.sourceElement).x + link.sourcePort.position.x,
9798
- y: getAbsolutePosition(link.sourceElement).y + link.sourcePort.position.y
9834
+ x: getAnchorAdjustedAbsolutePosition(link.sourceElement).x + link.sourcePort.position.x,
9835
+ y: getAnchorAdjustedAbsolutePosition(link.sourceElement).y + link.sourcePort.position.y
9799
9836
  }, targetPosition: {
9800
- x: getAbsolutePosition(link.targetElement).x + link.targetPort.position.x,
9801
- y: getAbsolutePosition(link.targetElement).y + link.targetPort.position.y
9837
+ x: getAnchorAdjustedAbsolutePosition(link.targetElement).x + link.targetPort.position.x,
9838
+ y: getAnchorAdjustedAbsolutePosition(link.targetElement).y + link.targetPort.position.y
9802
9839
  }, points: link.points, onPathChanged: handlePathChange, onClickDelete: handleClickLinkDelete(link, index), onSelected: function () { return handleSelectLink(link); }, onDeselected: function () { return handleDeselectLink(); }, container: paperContainerRef.current, markerStart: link.markerStart, markerEnd: link.markerEnd, markerDistanceFromPort: link.markerDistanceFromPort, markerSize: link.markerSize, label: link.label, sourceLabel: link.sourceLabel, targetLabel: link.targetLabel, onLabelMoved: onLabelMoved(index), onLabelResized: onLabelResized(index), onLabelContentChanged: onLabelContentChanged(index) }));
9803
9840
  }),
9804
9841
  (tempLink === null || tempLink === void 0 ? void 0 : tempLink.tempTargetPosition) && React.createElement(ElementLink, { id: tempLink.id, points: tempLink.points, sourcePosition: {
9805
- x: getAbsolutePosition(tempLink.sourceElement).x + tempLink.sourcePort.position.x,
9806
- y: getAbsolutePosition(tempLink.sourceElement).y + tempLink.sourcePort.position.y
9842
+ x: getAnchorAdjustedAbsolutePosition(tempLink.sourceElement).x + tempLink.sourcePort.position.x,
9843
+ y: getAnchorAdjustedAbsolutePosition(tempLink.sourceElement).y + tempLink.sourcePort.position.y
9807
9844
  }, targetPosition: tempLink.tempTargetPosition, container: paperContainerRef.current, markerStart: tempLink.markerStart, markerEnd: tempLink.markerEnd, markerDistanceFromPort: tempLink.markerDistanceFromPort, markerSize: tempLink.markerSize }),
9808
9845
  texts.map(function (text, index) { return (React.createElement(Text$1, { key: text.id, id: text.id, x: text.position.x, y: text.position.y, width: text.size.width, height: text.size.height, editable: text.editable, fontSize: text.fontSize, border: text.border, container: paperContainerRef.current, content: text.content, align: text.align, onSelected: function () {
9809
9846
  setSelectedText(text);
@@ -9921,5 +9958,5 @@ var Editor = function (_a) {
9921
9958
  return (React.createElement(Paper$1, { key: "paper", size: { width: width, height: height }, elements: elements, links: links, texts: texts, onPaperClicked: handlePaperClicked, onPortMouseDown: handlePortMouseDown, onPortMouseUp: handlePortMouseUp, onPortMoved: handlePortMoved, onPortSelected: handlePortSelected, onElementContextMenu: handleElementContextMenu, onElementMoved: handleElementMoved, onElementResized: handleElementResized, onElementSelected: handleElementSelected, onElementMouseLeave: handleElementMouseLeave, onElementMouseMove: handleElementMouseMove, onElementMouseUp: handleElementMouseUp, onElementsChanged: handleElementsChanged, onCreatingLink: handleOnCreatingLink, onCreatingPortByLinking: handleOnCreatingPortByLinking, onLinkSelected: handleLinkSelected, onLinksChanged: handleLinksChanged, onTextSelected: handleTextSelected, onTextsChanged: handleTextsChanged, onPaperMouseMoved: handlePaperMouseMoved, onPaperMouseUp: handlePaperMouseUp, onPaperMouseDown: handlePaperMouseDown, onManuallyTriggerRenderElement: editorContext.onManuallyTriggerRenderElement.bind(editorContext), onManuallyTriggerRenderPort: editorContext.onManuallyTriggerRenderPort.bind(editorContext) }));
9922
9959
  };
9923
9960
 
9924
- export { Circle as CircleRC, Crescent as CrescentRC, CustomShape as CustomShapeRC, EditorContext, Element$2 as Element, ElementLink$1 as ElementLink, ElementLink as ElementLinkRC, Port$1 as Port, Port as PortRC, PositioningAnchor, Rectangle as RectangleRC, RectangularFrame as RectangularFrameRC, ResizingDirection, ShapeWrapper as ShapeWrapperRC, SubObjectDirection, Text$2 as Text, TextAlign, Text$1 as TextRC, addPointToList, calculateAngleWithOx, checkPointContainsPolygon, checkPositionOnLine, checkSamePosition, configureLogger, correctPortPositionInElement, createSmoothPathString, Editor as default, degreeToRadian, diamondEdgeInsideSquare, dist, findNearestPointOnSegment, findNearestPosition, findNearestProjectedPoint, generateSubstitutePosition, generateUniqueId, getAbsolutePosition, getCurvePathData, getElementRotationInfo, getFirstIntersection, getFourVertexesOfBBoxFromElement, getIntersectionPositions, getPortAbsolutePosition, getRectangleCorners, getRelativePosition, getRotatedRectangleCoordinates, getRotatedSVGBBox, getSVGBBoxOutsideTransformedParent, makePolygonOfElement, pathDataToD, removeDuplicatePosition, transformAbsPositionToElementRelativePosition, transformAbsPositionToRelativePositionInsideElement };
9961
+ export { Circle as CircleRC, Crescent as CrescentRC, CustomShape as CustomShapeRC, EditorContext, Element$2 as Element, ElementLink$1 as ElementLink, ElementLink as ElementLinkRC, Port$1 as Port, Port as PortRC, PositioningAnchor, Rectangle as RectangleRC, RectangularFrame as RectangularFrameRC, ResizingDirection, ShapeWrapper as ShapeWrapperRC, SubObjectDirection, Text$2 as Text, TextAlign, Text$1 as TextRC, addPointToList, calculateAngleWithOx, checkPointContainsPolygon, checkPositionOnLine, checkSamePosition, configureLogger, correctPortPositionInElement, createSmoothPathString, Editor as default, degreeToRadian, diamondEdgeInsideSquare, dist, findNearestPointOnSegment, findNearestPosition, findNearestProjectedPoint, generateSubstitutePosition, generateUniqueId, getAbsolutePosition, getAnchorAdjustedAbsolutePosition, getCurvePathData, getElementRotationInfo, getFirstIntersection, getFourVertexesOfBBoxFromElement, getIntersectionPositions, getPortAbsolutePosition, getRectangleCorners, getRelativePosition, getRotatedRectangleCoordinates, getRotatedSVGBBox, getSVGBBoxOutsideTransformedParent, makePolygonOfElement, pathDataToD, removeDuplicatePosition, transformAbsPositionToElementRelativePosition, transformAbsPositionToRelativePositionInsideElement };
9925
9962
  //# sourceMappingURL=index.js.map