orcasvn-react-diagrams 0.1.72 → 0.1.74

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
@@ -1351,65 +1351,6 @@ var PORT_PLACEHOLDER_DEFAULT_STROKE = 'green';
1351
1351
  var PORT_PLACEHOLDER_DEFAULT_STROKE_WIDTH = 20;
1352
1352
  var PORT_DEFAULT_SIZE = 20;
1353
1353
 
1354
- var Logger = /** @class */ (function () {
1355
- function Logger() {
1356
- this.level = 'info';
1357
- this.customLogger = null;
1358
- }
1359
- Logger.prototype.setLevel = function (level) {
1360
- this.level = level;
1361
- };
1362
- Logger.prototype.setCustomLogger = function (logger) {
1363
- this.customLogger = logger;
1364
- };
1365
- Logger.prototype.log = function (level, message) {
1366
- var _a;
1367
- var optionalParams = [];
1368
- for (var _i = 2; _i < arguments.length; _i++) {
1369
- optionalParams[_i - 2] = arguments[_i];
1370
- }
1371
- var levels = ['error', 'warn', 'info', 'debug'];
1372
- if (this.level && levels.indexOf(level) <= levels.indexOf(this.level)) {
1373
- if (this.customLogger) {
1374
- this.customLogger.apply(this, __spreadArray([level, message], optionalParams, false));
1375
- }
1376
- else {
1377
- console[level] ? (_a = console)[level].apply(_a, __spreadArray([message], optionalParams, false)) : console.log.apply(console, __spreadArray([message], optionalParams, false));
1378
- }
1379
- }
1380
- };
1381
- Logger.prototype.error = function (msg) {
1382
- var optionalParams = [];
1383
- for (var _i = 1; _i < arguments.length; _i++) {
1384
- optionalParams[_i - 1] = arguments[_i];
1385
- }
1386
- this.log.apply(this, __spreadArray(['error', msg], optionalParams, false));
1387
- };
1388
- Logger.prototype.warn = function (msg) {
1389
- var optionalParams = [];
1390
- for (var _i = 1; _i < arguments.length; _i++) {
1391
- optionalParams[_i - 1] = arguments[_i];
1392
- }
1393
- this.log.apply(this, __spreadArray(['warn', msg], optionalParams, false));
1394
- };
1395
- Logger.prototype.info = function (msg) {
1396
- var optionalParams = [];
1397
- for (var _i = 1; _i < arguments.length; _i++) {
1398
- optionalParams[_i - 1] = arguments[_i];
1399
- }
1400
- this.log.apply(this, __spreadArray(['info', msg], optionalParams, false));
1401
- };
1402
- Logger.prototype.debug = function (msg) {
1403
- var optionalParams = [];
1404
- for (var _i = 1; _i < arguments.length; _i++) {
1405
- optionalParams[_i - 1] = arguments[_i];
1406
- }
1407
- this.log.apply(this, __spreadArray(['debug', msg], optionalParams, false));
1408
- };
1409
- return Logger;
1410
- }());
1411
- var logger = new Logger();
1412
-
1413
1354
  /**
1414
1355
  * Created by Alex Bol on 2/18/2017.
1415
1356
  */
@@ -7211,6 +7152,65 @@ var getElementRotationInfo = function (element) {
7211
7152
  return rotationAngle;
7212
7153
  };
7213
7154
 
7155
+ var Logger = /** @class */ (function () {
7156
+ function Logger() {
7157
+ this.level = 'info';
7158
+ this.customLogger = null;
7159
+ }
7160
+ Logger.prototype.setLevel = function (level) {
7161
+ this.level = level;
7162
+ };
7163
+ Logger.prototype.setCustomLogger = function (logger) {
7164
+ this.customLogger = logger;
7165
+ };
7166
+ Logger.prototype.log = function (level, message) {
7167
+ var _a;
7168
+ var optionalParams = [];
7169
+ for (var _i = 2; _i < arguments.length; _i++) {
7170
+ optionalParams[_i - 2] = arguments[_i];
7171
+ }
7172
+ var levels = ['error', 'warn', 'info', 'debug'];
7173
+ if (this.level && levels.indexOf(level) <= levels.indexOf(this.level)) {
7174
+ if (this.customLogger) {
7175
+ this.customLogger.apply(this, __spreadArray([level, message], optionalParams, false));
7176
+ }
7177
+ else {
7178
+ console[level] ? (_a = console)[level].apply(_a, __spreadArray([message], optionalParams, false)) : console.log.apply(console, __spreadArray([message], optionalParams, false));
7179
+ }
7180
+ }
7181
+ };
7182
+ Logger.prototype.error = function (msg) {
7183
+ var optionalParams = [];
7184
+ for (var _i = 1; _i < arguments.length; _i++) {
7185
+ optionalParams[_i - 1] = arguments[_i];
7186
+ }
7187
+ this.log.apply(this, __spreadArray(['error', msg], optionalParams, false));
7188
+ };
7189
+ Logger.prototype.warn = function (msg) {
7190
+ var optionalParams = [];
7191
+ for (var _i = 1; _i < arguments.length; _i++) {
7192
+ optionalParams[_i - 1] = arguments[_i];
7193
+ }
7194
+ this.log.apply(this, __spreadArray(['warn', msg], optionalParams, false));
7195
+ };
7196
+ Logger.prototype.info = function (msg) {
7197
+ var optionalParams = [];
7198
+ for (var _i = 1; _i < arguments.length; _i++) {
7199
+ optionalParams[_i - 1] = arguments[_i];
7200
+ }
7201
+ this.log.apply(this, __spreadArray(['info', msg], optionalParams, false));
7202
+ };
7203
+ Logger.prototype.debug = function (msg) {
7204
+ var optionalParams = [];
7205
+ for (var _i = 1; _i < arguments.length; _i++) {
7206
+ optionalParams[_i - 1] = arguments[_i];
7207
+ }
7208
+ this.log.apply(this, __spreadArray(['debug', msg], optionalParams, false));
7209
+ };
7210
+ return Logger;
7211
+ }());
7212
+ var logger = new Logger();
7213
+
7214
7214
  /**
7215
7215
  * Check if position 1 is within the radius r of position 2
7216
7216
  * @returns boolean
@@ -7870,14 +7870,14 @@ var SelectionFrame = function (props) {
7870
7870
  }
7871
7871
  };
7872
7872
  React.useEffect(function () {
7873
- logger.debug('SelectionFrame: circleHandleMouseDown triggered', {
7874
- draggingCircle: draggingCircle,
7875
- startX: startX,
7876
- startY: startY,
7877
- width: width,
7878
- height: height,
7879
- propMovingRate: propMovingRate
7880
- });
7873
+ // logger.debug('SelectionFrame: circleHandleMouseDown triggered', {
7874
+ // draggingCircle,
7875
+ // startX,
7876
+ // startY,
7877
+ // width,
7878
+ // height,
7879
+ // propMovingRate
7880
+ // });
7881
7881
  var circleHandleMouseMove = function (event) {
7882
7882
  var mouseEvent = event;
7883
7883
  if (draggingCircle) {
@@ -7925,12 +7925,12 @@ var SelectionFrame = function (props) {
7925
7925
  container.addEventListener('mousemove', circleHandleMouseMove);
7926
7926
  container.addEventListener('mouseup', circleHandleMouseUp);
7927
7927
  //logging the start of the circle handle mouse move
7928
- logger.debug('SelectionFrame: circleHandleMouseMove started', container);
7928
+ //logger.debug('SelectionFrame: circleHandleMouseMove started', container);
7929
7929
  return function () {
7930
7930
  container.removeEventListener('mousemove', circleHandleMouseMove);
7931
7931
  container.removeEventListener('mouseup', circleHandleMouseUp);
7932
7932
  //logging the end of the circle handle mouse move
7933
- logger.debug('SelectionFrame: circleHandleMouseMove ended', container);
7933
+ //logger.debug('SelectionFrame: circleHandleMouseMove ended', container);
7934
7934
  };
7935
7935
  }, [draggingCircle, width, height, objectX, objectY, lastMoveTime, propContainer, getMousePosition, propMovingRate, propOnResize, propResizability, startX, startY]);
7936
7936
  var rectangleSize = Math.max(width, height);
@@ -8860,7 +8860,7 @@ var Element = React.forwardRef(function (props, forwardedRef) {
8860
8860
  var _paperEventEmitterContext = React.useContext(paperEventEmitterContext);
8861
8861
  // const elementObj = props.element;
8862
8862
  var beingSelected = props.beingSelected, portPlaceholderShape = props.portPlaceholderShape, children = props.children, container = props.container, onMouseUp = props.onMouseUp, onMouseDown = props.onMouseDown, onMouseLeave = props.onMouseLeave, onMouseMove = props.onMouseMove, onMoving = props.onMoving, onMoved = props.onMoved, onResized = props.onResized, onPortMoved = props.onPortMoved, onPortMouseDown = props.onPortMouseDown, onPortMouseUp = props.onPortMouseUp, onClick = props.onClick, onContextMenu = props.onContextMenu, onPortContextMenu = props.onPortContextMenu, onMouseUpAtLinkedPortPlaceholder = props.onMouseUpAtLinkedPortPlaceholder, onManuallyTriggerRenderPort = props.onManuallyTriggerRenderPort, draggingByDefault = props.draggingByDefault, parentDOM = props.parentDOM;
8863
- var _a = props.element, id = _a.id, cssClass = _a.cssClass, textsPlaceHolderClassName = _a.textsPlaceHolderClassName, portSlideRailSVGClassName = _a.portSlideRailSVGClassName, portMoveableAreas = _a.portMoveableAreas, portDirection = _a.portDirection, defaultPortSize = _a.defaultPortSize, textsPlaceHolderFlexStyle = _a.textsPlaceHolderFlexStyle, textsPlaceHolderFlexboxPosition = _a.textsPlaceHolderFlexboxPosition, resizability = _a.resizability, renderShape = _a.renderShape;
8863
+ var _a = props.element, id = _a.id, cssClass = _a.cssClass; _a.textsPlaceHolderClassName; var portSlideRailSVGClassName = _a.portSlideRailSVGClassName, portMoveableAreas = _a.portMoveableAreas, portDirection = _a.portDirection, defaultPortSize = _a.defaultPortSize; _a.textsPlaceHolderFlexStyle; _a.textsPlaceHolderFlexboxPosition; var resizability = _a.resizability, renderShape = _a.renderShape;
8864
8864
  var propPorts = props.element.ports;
8865
8865
  //state for position
8866
8866
  var _b = React.useState(__assign({}, props.element.position)), position = _b[0], setPosition = _b[1];
@@ -8884,10 +8884,6 @@ var Element = React.forwardRef(function (props, forwardedRef) {
8884
8884
  var newPosition = correctPortPositionInElement(tempNewPosition, size.width, size.height, portMoveableAreas, portSlideRailSVGClassName, elementRef.current || undefined);
8885
8885
  return newPosition || tempNewPosition;
8886
8886
  }, [size.width, size.height, portMoveableAreas, portSlideRailSVGClassName]);
8887
- //set port ref when ports state is changed
8888
- React.useLayoutEffect(function () {
8889
- portsRef.current = ports;
8890
- }, [ports]);
8891
8887
  //Handle ports state when propPorts is changed
8892
8888
  var handlePortsState = React.useCallback(function (newPorts) {
8893
8889
  setPorts(function (prev) {
@@ -8903,17 +8899,27 @@ var Element = React.forwardRef(function (props, forwardedRef) {
8903
8899
  }
8904
8900
  //Handle the case new port is created and the ref of the port is not defined
8905
8901
  if (!newPortState.ref) {
8906
- var newPosition = normalizePortPosition(newPortState.position);
8907
8902
  // onPortMoved?.(p, id, newPortState.position, newPosition)
8908
8903
  // _paperEventEmitterContext.emitPortMoved(p, id, newPortState.position, newPosition)
8909
- newPortState.position = newPosition;
8910
8904
  newPortState.ref = React.createRef();
8911
8905
  }
8906
+ //if (!newPortState.hasNormalizedPosition && elementRef.current) {
8907
+ var newPosition = normalizePortPosition(newPortState.position);
8908
+ newPortState.position = newPosition;
8909
+ //newPortState.hasNormalizedPosition = true;
8910
+ //}
8912
8911
  return newPortState;
8913
8912
  });
8913
+ portsRef.current = newState;
8914
8914
  return newState;
8915
8915
  });
8916
8916
  }, [normalizePortPosition]);
8917
+ // useLayoutEffect(() => {
8918
+ // if (!hasNormalizedPortPositions.current && elementRef.current) {
8919
+ // handlePortsState(portsRef.current);
8920
+ // hasNormalizedPortPositions.current = true;
8921
+ // }
8922
+ // });
8917
8923
  var getParentAbsolutePosition = React.useCallback(function () {
8918
8924
  return props.element.parentElement ? getAbsolutePosition(props.element.parentElement) : undefined;
8919
8925
  }, [props.element.parentElement]);
@@ -8992,29 +8998,29 @@ var Element = React.forwardRef(function (props, forwardedRef) {
8992
8998
  eventListener.off();
8993
8999
  };
8994
9000
  }, [_paperEventEmitterContext]);
8995
- React.useEffect(function () {
8996
- //listen element resize to update position of the ports by element size.
8997
- var eleResizeListener = _paperEventEmitterContext.onElementResized(id, function () {
8998
- //let isChanged = false;
8999
- var newPorts = portsRef.current.map(function (port) {
9000
- var newPosition = normalizePortPosition({ x: port.position.x, y: port.position.y });
9001
- //Check port moved
9002
- if (port.position.x !== newPosition.x || port.position.y !== newPosition.y) {
9003
- //isChanged = true;
9004
- _paperEventEmitterContext.emitPortMoved(port, id, port.position, newPosition);
9005
- }
9006
- port.position = newPosition;
9007
- return port;
9008
- });
9009
- handlePortsState(newPorts);
9010
- // if (isChanged) {
9011
- // onPortsChanged?.(newPorts, id);
9012
- // }
9013
- });
9014
- return function () {
9015
- eleResizeListener.off();
9016
- };
9017
- }, [_paperEventEmitterContext, id, normalizePortPosition, size, portMoveableAreas, portSlideRailSVGClassName, handlePortsState, props.element.ports]);
9001
+ // useEffect(() => {
9002
+ // //listen element resize to update position of the ports by element size.
9003
+ // const eleResizeListener = _paperEventEmitterContext.onElementResized(id, () => {
9004
+ // //let isChanged = false;
9005
+ // const newPorts = portsRef.current.map(port => {
9006
+ // const newPosition = normalizePortPosition({ x: port.position.x, y: port.position.y })
9007
+ // //Check port moved
9008
+ // if (port.position.x !== newPosition.x || port.position.y !== newPosition.y) {
9009
+ // //isChanged = true;
9010
+ // _paperEventEmitterContext.emitPortMoved(port, id, port.position, newPosition)
9011
+ // }
9012
+ // port.position = newPosition;
9013
+ // return port;
9014
+ // })
9015
+ // handlePortsState(newPorts);
9016
+ // // if (isChanged) {
9017
+ // // onPortsChanged?.(newPorts, id);
9018
+ // // }
9019
+ // })
9020
+ // return () => {
9021
+ // eleResizeListener.off();
9022
+ // }
9023
+ // }, [_paperEventEmitterContext, id, normalizePortPosition, size, portMoveableAreas, portSlideRailSVGClassName, handlePortsState, props.element.ports])
9018
9024
  //list to port added
9019
9025
  React.useEffect(function () {
9020
9026
  var _a, _b;
@@ -9075,7 +9081,7 @@ var Element = React.forwardRef(function (props, forwardedRef) {
9075
9081
  }, [_paperEventEmitterContext]);
9076
9082
  var handleSelectedPort = React.useCallback(function (portId, e) {
9077
9083
  e.stopPropagation();
9078
- logger.debug('Port selected', portId, e);
9084
+ //logger.debug('Port selected', portId, e);
9079
9085
  var port = ports.find(function (p) { return p.id === portId; });
9080
9086
  if (!port)
9081
9087
  return;
@@ -9123,7 +9129,7 @@ var Element = React.forwardRef(function (props, forwardedRef) {
9123
9129
  var handlePortMouseDown = React.useCallback(function (portId, e) {
9124
9130
  e.stopPropagation();
9125
9131
  //log debugger
9126
- logger.debug('Port mouse down', portId, e);
9132
+ //logger.debug('Port mouse down', portId, e);
9127
9133
  var port = portsRef.current.find(function (p) { return p.id === portId; });
9128
9134
  if (!port)
9129
9135
  return;
@@ -9329,14 +9335,6 @@ var Element = React.forwardRef(function (props, forwardedRef) {
9329
9335
  // }
9330
9336
  // return element;
9331
9337
  // }
9332
- //Re-render port again after rendered to automation rotate port
9333
- //Because elementRef.current equals null in first render so automation rotate port is incorrect.
9334
- //TODO: check if this is still needed -> Still needed
9335
- // useLayoutEffect(() => {
9336
- // if (elementRef.current) {
9337
- // handlePortsState(portsRef.current);
9338
- // }
9339
- // }, [handlePortsState])
9340
9338
  //cache render ports
9341
9339
  var renderedPorts = React.useMemo(function () {
9342
9340
  return ports === null || ports === void 0 ? void 0 : ports.map(function (p, index) {
@@ -9361,7 +9359,7 @@ var Element = React.forwardRef(function (props, forwardedRef) {
9361
9359
  });
9362
9360
  }, [id, texts, container, elementAbsPosition, handleTextChanged]);
9363
9361
  //log element render
9364
- logger.debug('Rendering Element', id, position.x, position.y, size.width, size.height, cssClass, portPlaceholderShape, children, container, getParentAbsolutePosition(), textsPlaceHolderFlexStyle, textsPlaceHolderFlexboxPosition, textsPlaceHolderClassName, texts, ports, portSlideRailSVGClassName, portMoveableAreas, portDirection, defaultPortSize);
9362
+ //logger.debug('Rendering Element', id, position.x, position.y, size.width, size.height, cssClass, portPlaceholderShape, children, container, getParentAbsolutePosition(), textsPlaceHolderFlexStyle, textsPlaceHolderFlexboxPosition, textsPlaceHolderClassName, texts, ports, portSlideRailSVGClassName, portMoveableAreas, portDirection, defaultPortSize);
9365
9363
  return (React.createElement(ElementWrapper, { key: "ElementWrapper", ref: elementRef, x: position.x, y: position.y, cssClass: cssClass, onClick: function (e) { return onClick ? onClick(id, e, elementRef.current) : true; }, onMouseMove: handleElementMouseMove, onMouseLeave: handleElementMouseLeave, onMouseDown: handleElementMouseDown, onMouseUp: handleElementMouseUp, onContextMenu: function (e) { return onContextMenu ? onContextMenu(id, e, elementRef.current) : true; } }, renderShape === null || renderShape === void 0 ? void 0 :
9366
9364
  renderShape(props),
9367
9365
  !!container && !!beingSelected &&
@@ -10093,7 +10091,6 @@ var Paper = function (props) {
10093
10091
  linksRef.current[updatedLinkIndex].points = points;
10094
10092
  }, []);
10095
10093
  var handlePortMoved = React.useCallback(function (port, elementId, oldPosition, newPosition) {
10096
- var _a;
10097
10094
  var element = elementsState.elements.find(function (e) { return e.id === elementId; });
10098
10095
  if (element) {
10099
10096
  //set links equals a clone links to re-render links with new position
@@ -10134,23 +10131,23 @@ var Paper = function (props) {
10134
10131
  //To avoid re-render
10135
10132
  // setElements(prev => {
10136
10133
  // const newElements = [...prev]
10137
- var updatedElement = elementsState.elements.find(function (e) { return e.id === elementId; });
10138
- if (updatedElement) {
10139
- updatedElement.ports = (_a = updatedElement.ports) === null || _a === void 0 ? void 0 : _a.map(function (p) {
10140
- if (p.id === port.id) {
10141
- p.position = newPosition;
10142
- }
10143
- return p;
10144
- });
10145
- }
10146
- rerenderWhenAnyElementChanged();
10134
+ // const updatedElement = elementsState.elements.find(e => e.id === elementId);
10135
+ // if (updatedElement) {
10136
+ // updatedElement.ports = updatedElement.ports?.map(p => {
10137
+ // if (p.id === port.id) {
10138
+ // p.position = newPosition
10139
+ // }
10140
+ // return p
10141
+ // });
10142
+ // }
10143
+ // rerenderWhenAnyElementChanged();
10147
10144
  // return newElements
10148
10145
  // });
10149
10146
  if (onPortMoved) {
10150
10147
  onPortMoved(newPosition, port, element);
10151
10148
  }
10152
10149
  }
10153
- }, [onPortMoved, elementsState, rerenderWhenAnyElementChanged]);
10150
+ }, [onPortMoved, elementsState]);
10154
10151
  React.useEffect(function () {
10155
10152
  //on port manually trigger render
10156
10153
  var off = manuallyTriggerRenderPortHandler(function (portId, elementId) {