orcasvn-react-diagrams 0.1.15 → 0.1.16

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
@@ -9648,9 +9648,12 @@ var Paper = function (props) {
9648
9648
  //Listen text is selected
9649
9649
  React$1.useEffect(function () {
9650
9650
  var textSelectedListener = paperEventEmitter.onTextSelected(function (text) {
9651
+ var _a;
9651
9652
  setSelectedElement(undefined);
9652
9653
  setSelectedElementSVG(null);
9653
9654
  setSelectedLink(undefined);
9655
+ //broadcast selected text to parent component
9656
+ (_a = props.onTextSelected) === null || _a === void 0 ? void 0 : _a.call(props, text);
9654
9657
  });
9655
9658
  return function () {
9656
9659
  textSelectedListener.off();
@@ -9658,10 +9661,16 @@ var Paper = function (props) {
9658
9661
  }, []);
9659
9662
  //Listen port is selected
9660
9663
  React$1.useEffect(function () {
9661
- var portSelectedListener = paperEventEmitter.onPortSelected(function (port) {
9664
+ var portSelectedListener = paperEventEmitter.onPortSelected(function (port, elementId) {
9665
+ var _a;
9662
9666
  setSelectedElement(undefined);
9663
9667
  setSelectedElementSVG(null);
9664
9668
  setSelectedLink(undefined);
9669
+ //broadcast selected port to parent component
9670
+ var element = elements.find(function (e) { return e.id === elementId; });
9671
+ if (element) {
9672
+ (_a = props.onPortSelected) === null || _a === void 0 ? void 0 : _a.call(props, port, element);
9673
+ }
9665
9674
  });
9666
9675
  return function () {
9667
9676
  portSelectedListener.off();
@@ -9709,6 +9718,7 @@ var Paper = function (props) {
9709
9718
  };
9710
9719
  //Listen command delete selected for element
9711
9720
  React$1.useEffect(function () {
9721
+ var _a;
9712
9722
  var listener = paperEventEmitter.onCommandDeleteSelectedElement(function () {
9713
9723
  if (selectedElement) {
9714
9724
  var deletedChildElements = getDeletedChildElements(selectedElement);
@@ -9719,30 +9729,44 @@ var Paper = function (props) {
9719
9729
  setSelectedElementSVG(null);
9720
9730
  }
9721
9731
  });
9732
+ //broadcast selected element to parent component
9733
+ if (selectedElement) {
9734
+ (_a = props.onElementSelected) === null || _a === void 0 ? void 0 : _a.call(props, selectedElement);
9735
+ }
9722
9736
  return function () {
9723
9737
  listener.off();
9724
9738
  };
9725
9739
  }, [selectedElement]);
9726
9740
  //Listen command delete selected for link
9727
9741
  React$1.useEffect(function () {
9742
+ var _a;
9728
9743
  var listener = paperEventEmitter.onCommandDeleteSelectedLink(function () {
9729
9744
  if (selectedLink) {
9730
9745
  setLinks(function (prev) { return prev.filter(function (l) { return l.id !== selectedLink.id; }); });
9731
9746
  setSelectedLink(undefined);
9732
9747
  }
9733
9748
  });
9749
+ //broadcast selected link to parent component
9750
+ if (selectedLink) {
9751
+ (_a = props.onLinkSelected) === null || _a === void 0 ? void 0 : _a.call(props, selectedLink);
9752
+ }
9734
9753
  return function () {
9735
9754
  listener.off();
9736
9755
  };
9737
9756
  }, [selectedLink]);
9738
9757
  //Listen command delete selected for Text
9739
9758
  React$1.useEffect(function () {
9759
+ var _a;
9740
9760
  var listener = paperEventEmitter.onCommandDeleteSelectedText(function () {
9741
9761
  if (selectedText) {
9742
9762
  setTexts(function (prev) { return prev.filter(function (t) { return t.id !== selectedText.id; }); });
9743
9763
  setSelectedText(undefined);
9744
9764
  }
9745
9765
  });
9766
+ //broadcast selected text to parent component
9767
+ if (selectedText) {
9768
+ (_a = props.onTextSelected) === null || _a === void 0 ? void 0 : _a.call(props, selectedText);
9769
+ }
9746
9770
  return function () {
9747
9771
  listener.off();
9748
9772
  };
@@ -10202,7 +10226,7 @@ var Paper = function (props) {
10202
10226
  function Editor(_a) {
10203
10227
  var editorContext = _a.editorContext;
10204
10228
  return (React$1.createElement(React$1.Fragment, null,
10205
- React$1.createElement(Paper, { size: { width: 3000, height: 3000 }, elements: editorContext.elements, links: editorContext.links, texts: editorContext.texts, onPaperClicked: editorContext.onPaperClicked, onPortMoved: editorContext.onPortMoved, onElementContextMenu: editorContext.onElementContextMenu, onElementMoved: editorContext.onElementMoved, onElementResized: editorContext.onElementResized, onLinkValidation: editorContext.validateLink, onCreatingLink: editorContext.onCreatingLink, onCreatingPortByLinking: editorContext.onCreatingPortByLinking })));
10229
+ React$1.createElement(Paper, { size: { width: 3000, height: 3000 }, elements: editorContext.elements, links: editorContext.links, texts: editorContext.texts, onPaperClicked: editorContext.onPaperClicked, onPortMoved: editorContext.onPortMoved, onPortSelected: editorContext.onPortSelected, onElementContextMenu: editorContext.onElementContextMenu, onElementMoved: editorContext.onElementMoved, onElementResized: editorContext.onElementResized, onElementSelected: editorContext.onElementSelected, onLinkValidation: editorContext.validateLink, onCreatingLink: editorContext.onCreatingLink, onCreatingPortByLinking: editorContext.onCreatingPortByLinking, onLinkSelected: editorContext.onLinkSelected, onTextSelected: editorContext.onTextSelected })));
10206
10230
  }
10207
10231
 
10208
10232
  exports.CircleRC = Circle;
@@ -3,7 +3,7 @@ import IElement from '../models/IElement';
3
3
  import IElementLink from '../models/IElementLink';
4
4
  import IPosition from '../models/position';
5
5
  import IPort from '../models/IPort';
6
- import { IPaperText } from '../models/IText';
6
+ import IText, { IPaperText } from '../models/IText';
7
7
  import ISize from '../models/size';
8
8
  interface PaperProps {
9
9
  size: {
@@ -15,10 +15,14 @@ interface PaperProps {
15
15
  texts: IPaperText[];
16
16
  onPaperClicked?: () => void;
17
17
  onPortMoved?: (position: IPosition, port: IPort, element: IElement) => void;
18
+ onPortSelected?: (port: IPort, element: IElement) => void;
18
19
  onElementContextMenu?: (element: IElement, mouseEvent: React.MouseEvent<SVGElement>) => void;
19
20
  onElementMoved?: (position: IPosition, element: IElement, index: number) => void;
20
21
  onElementResized?: (size: ISize, element: IElement, index: number) => void;
22
+ onElementSelected?: (element: IElement) => void;
21
23
  onLinkValidation?: (sourcePort: IPort, sourceElement: IElement, targetPort: IPort, targetElement: IElement) => boolean;
24
+ onLinkSelected?: (link: IElementLink) => void;
25
+ onTextSelected?: (text: IText) => void;
22
26
  onCreatingPortByLinking?: (sourceElement: IElement, sourcePort: IPort, targetElement: IElement, position: IPosition) => IPort | null;
23
27
  onCreatingLink?: (sourcePort: IPort, sourceElement: IElement, targetPort: IPort, targetElement: IElement) => IElementLink | null;
24
28
  }
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import IElement from "../IElement";
3
3
  import IElementLink from "../IElementLink";
4
- import { IPaperText } from "../IText";
4
+ import IText, { IPaperText } from "../IText";
5
5
  import IPosition from "../position";
6
6
  import IPort from "../IPort";
7
7
  import ISize from "../size";
@@ -11,12 +11,16 @@ export declare class EditorContext {
11
11
  private _texts;
12
12
  onPaperClicked?: () => void;
13
13
  onPortMoved?: (position: IPosition, port: IPort, element: IElement) => void;
14
+ onPortSelected?: (port: IPort, element: IElement) => void;
14
15
  onElementContextMenu?: (element: IElement, mouseEvent: React.MouseEvent<SVGElement>) => void;
15
16
  onElementMoved?: (position: IPosition, element: IElement, index: number) => void;
16
17
  onElementResized?: (size: ISize, element: IElement, index: number) => void;
18
+ onElementSelected?: (element: IElement) => void;
17
19
  validateLink?: (sourcePort: IPort, sourceElement: IElement, targetPort: IPort, targetElement: IElement) => boolean;
18
20
  onCreatingPortByLinking?: (sourceElement: IElement, sourcePort: IPort, targetElement: IElement, position: IPosition) => IPort | null;
19
21
  onCreatingLink?: (sourcePort: IPort, sourceElement: IElement, targetPort: IPort, targetElement: IElement) => IElementLink | null;
22
+ onLinkSelected?: (link: IElementLink) => void;
23
+ onTextSelected?: (text: IText) => void;
20
24
  constructor(elements: IElement[], links: IElementLink[], texts: IPaperText[]);
21
25
  get elements(): IElement[];
22
26
  get links(): IElementLink[];
package/dist/esm/index.js CHANGED
@@ -9644,9 +9644,12 @@ var Paper = function (props) {
9644
9644
  //Listen text is selected
9645
9645
  useEffect(function () {
9646
9646
  var textSelectedListener = paperEventEmitter.onTextSelected(function (text) {
9647
+ var _a;
9647
9648
  setSelectedElement(undefined);
9648
9649
  setSelectedElementSVG(null);
9649
9650
  setSelectedLink(undefined);
9651
+ //broadcast selected text to parent component
9652
+ (_a = props.onTextSelected) === null || _a === void 0 ? void 0 : _a.call(props, text);
9650
9653
  });
9651
9654
  return function () {
9652
9655
  textSelectedListener.off();
@@ -9654,10 +9657,16 @@ var Paper = function (props) {
9654
9657
  }, []);
9655
9658
  //Listen port is selected
9656
9659
  useEffect(function () {
9657
- var portSelectedListener = paperEventEmitter.onPortSelected(function (port) {
9660
+ var portSelectedListener = paperEventEmitter.onPortSelected(function (port, elementId) {
9661
+ var _a;
9658
9662
  setSelectedElement(undefined);
9659
9663
  setSelectedElementSVG(null);
9660
9664
  setSelectedLink(undefined);
9665
+ //broadcast selected port to parent component
9666
+ var element = elements.find(function (e) { return e.id === elementId; });
9667
+ if (element) {
9668
+ (_a = props.onPortSelected) === null || _a === void 0 ? void 0 : _a.call(props, port, element);
9669
+ }
9661
9670
  });
9662
9671
  return function () {
9663
9672
  portSelectedListener.off();
@@ -9705,6 +9714,7 @@ var Paper = function (props) {
9705
9714
  };
9706
9715
  //Listen command delete selected for element
9707
9716
  useEffect(function () {
9717
+ var _a;
9708
9718
  var listener = paperEventEmitter.onCommandDeleteSelectedElement(function () {
9709
9719
  if (selectedElement) {
9710
9720
  var deletedChildElements = getDeletedChildElements(selectedElement);
@@ -9715,30 +9725,44 @@ var Paper = function (props) {
9715
9725
  setSelectedElementSVG(null);
9716
9726
  }
9717
9727
  });
9728
+ //broadcast selected element to parent component
9729
+ if (selectedElement) {
9730
+ (_a = props.onElementSelected) === null || _a === void 0 ? void 0 : _a.call(props, selectedElement);
9731
+ }
9718
9732
  return function () {
9719
9733
  listener.off();
9720
9734
  };
9721
9735
  }, [selectedElement]);
9722
9736
  //Listen command delete selected for link
9723
9737
  useEffect(function () {
9738
+ var _a;
9724
9739
  var listener = paperEventEmitter.onCommandDeleteSelectedLink(function () {
9725
9740
  if (selectedLink) {
9726
9741
  setLinks(function (prev) { return prev.filter(function (l) { return l.id !== selectedLink.id; }); });
9727
9742
  setSelectedLink(undefined);
9728
9743
  }
9729
9744
  });
9745
+ //broadcast selected link to parent component
9746
+ if (selectedLink) {
9747
+ (_a = props.onLinkSelected) === null || _a === void 0 ? void 0 : _a.call(props, selectedLink);
9748
+ }
9730
9749
  return function () {
9731
9750
  listener.off();
9732
9751
  };
9733
9752
  }, [selectedLink]);
9734
9753
  //Listen command delete selected for Text
9735
9754
  useEffect(function () {
9755
+ var _a;
9736
9756
  var listener = paperEventEmitter.onCommandDeleteSelectedText(function () {
9737
9757
  if (selectedText) {
9738
9758
  setTexts(function (prev) { return prev.filter(function (t) { return t.id !== selectedText.id; }); });
9739
9759
  setSelectedText(undefined);
9740
9760
  }
9741
9761
  });
9762
+ //broadcast selected text to parent component
9763
+ if (selectedText) {
9764
+ (_a = props.onTextSelected) === null || _a === void 0 ? void 0 : _a.call(props, selectedText);
9765
+ }
9742
9766
  return function () {
9743
9767
  listener.off();
9744
9768
  };
@@ -10198,7 +10222,7 @@ var Paper = function (props) {
10198
10222
  function Editor(_a) {
10199
10223
  var editorContext = _a.editorContext;
10200
10224
  return (React$1.createElement(React$1.Fragment, null,
10201
- React$1.createElement(Paper, { size: { width: 3000, height: 3000 }, elements: editorContext.elements, links: editorContext.links, texts: editorContext.texts, onPaperClicked: editorContext.onPaperClicked, onPortMoved: editorContext.onPortMoved, onElementContextMenu: editorContext.onElementContextMenu, onElementMoved: editorContext.onElementMoved, onElementResized: editorContext.onElementResized, onLinkValidation: editorContext.validateLink, onCreatingLink: editorContext.onCreatingLink, onCreatingPortByLinking: editorContext.onCreatingPortByLinking })));
10225
+ React$1.createElement(Paper, { size: { width: 3000, height: 3000 }, elements: editorContext.elements, links: editorContext.links, texts: editorContext.texts, onPaperClicked: editorContext.onPaperClicked, onPortMoved: editorContext.onPortMoved, onPortSelected: editorContext.onPortSelected, onElementContextMenu: editorContext.onElementContextMenu, onElementMoved: editorContext.onElementMoved, onElementResized: editorContext.onElementResized, onElementSelected: editorContext.onElementSelected, onLinkValidation: editorContext.validateLink, onCreatingLink: editorContext.onCreatingLink, onCreatingPortByLinking: editorContext.onCreatingPortByLinking, onLinkSelected: editorContext.onLinkSelected, onTextSelected: editorContext.onTextSelected })));
10202
10226
  }
10203
10227
 
10204
10228
  export { Circle as CircleRC, Crescent as CrescentRC, CustomPortFromJSXElement, CustomPortFromShape, CustomShape as CustomShapeRC, EditorContext, Element$1 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, Editor as default };