@cyber-harbour/ui 1.0.80 → 1.1.0

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/index.d.mts CHANGED
@@ -246,6 +246,7 @@ type Theme = {
246
246
  ring: {
247
247
  highlightFill: string;
248
248
  selectionFill: string;
249
+ borderFill: string;
249
250
  };
250
251
  button: {
251
252
  stroke: string;
@@ -1700,6 +1701,12 @@ interface Graph2DRef {
1700
1701
  * @param padding Отступ от краев в пикселях
1701
1702
  */
1702
1703
  zoomToFit: (duration?: number, padding?: number) => void;
1704
+ /**
1705
+ * Масштабує граф так, щоб виділені вузли були видимі
1706
+ * @param duration Тривалість анімації масштабування в мілісекундах
1707
+ * @param padding Відступ від країв в пікселях
1708
+ */
1709
+ zoomToSelected: (duration?: number, padding?: number) => void;
1703
1710
  /**
1704
1711
  * Добавляет новые узлы и связи на график
1705
1712
  * @param newNodes Массив новых узлов для добавления
@@ -1718,6 +1725,12 @@ interface Graph2DRef {
1718
1725
  * @param nodeIds Массив идентификаторов узлов для удаления
1719
1726
  */
1720
1727
  removeNodes: (nodeIds: (string | number)[]) => void;
1728
+ /**
1729
+ * Выбирает узлы на графе по их идентификаторам
1730
+ * @param nodeIds Массив идентификаторов узлов для выбора
1731
+ * @returns
1732
+ */
1733
+ setSelectedNodes: (nodeIds: (string | number)[]) => void;
1721
1734
  }
1722
1735
  /**
1723
1736
  * Интерфейс для внутреннего состояния компонента Graph2D
@@ -1738,7 +1751,7 @@ interface GraphState {
1738
1751
  /** Узел, который в данный момент перетаскивается */
1739
1752
  draggedNode: NodeObject | null;
1740
1753
  /** Выбранный узел */
1741
- selectedNode: NodeObject | null;
1754
+ selectedNodeIds: Set<string | number>;
1742
1755
  /** Индекс кнопки, над которой находится курсор */
1743
1756
  hoveredButtonIndex: number | null;
1744
1757
  /** Набор узлов, которые должны быть подсвечены */
@@ -1775,11 +1788,13 @@ interface Graph2DProps {
1775
1788
  width: number;
1776
1789
  height: number;
1777
1790
  buttons?: NodeButton[];
1791
+ enableGrid?: boolean;
1778
1792
  onNodeClick?: (node: NodeObject) => void;
1779
1793
  onBackgroundClick?: () => void;
1780
1794
  onNodeHover?: (node: NodeObject | null) => void;
1781
1795
  onLinkHover?: (link: LinkObject | null) => void;
1782
1796
  onLinkClick?: (link: LinkObject) => void;
1797
+ onChangeSelectedNodeIds?: (nodeIds: Set<string | number>) => void;
1783
1798
  }
1784
1799
  interface NodeButton {
1785
1800
  img: string;
package/dist/index.d.ts CHANGED
@@ -246,6 +246,7 @@ type Theme = {
246
246
  ring: {
247
247
  highlightFill: string;
248
248
  selectionFill: string;
249
+ borderFill: string;
249
250
  };
250
251
  button: {
251
252
  stroke: string;
@@ -1700,6 +1701,12 @@ interface Graph2DRef {
1700
1701
  * @param padding Отступ от краев в пикселях
1701
1702
  */
1702
1703
  zoomToFit: (duration?: number, padding?: number) => void;
1704
+ /**
1705
+ * Масштабує граф так, щоб виділені вузли були видимі
1706
+ * @param duration Тривалість анімації масштабування в мілісекундах
1707
+ * @param padding Відступ від країв в пікселях
1708
+ */
1709
+ zoomToSelected: (duration?: number, padding?: number) => void;
1703
1710
  /**
1704
1711
  * Добавляет новые узлы и связи на график
1705
1712
  * @param newNodes Массив новых узлов для добавления
@@ -1718,6 +1725,12 @@ interface Graph2DRef {
1718
1725
  * @param nodeIds Массив идентификаторов узлов для удаления
1719
1726
  */
1720
1727
  removeNodes: (nodeIds: (string | number)[]) => void;
1728
+ /**
1729
+ * Выбирает узлы на графе по их идентификаторам
1730
+ * @param nodeIds Массив идентификаторов узлов для выбора
1731
+ * @returns
1732
+ */
1733
+ setSelectedNodes: (nodeIds: (string | number)[]) => void;
1721
1734
  }
1722
1735
  /**
1723
1736
  * Интерфейс для внутреннего состояния компонента Graph2D
@@ -1738,7 +1751,7 @@ interface GraphState {
1738
1751
  /** Узел, который в данный момент перетаскивается */
1739
1752
  draggedNode: NodeObject | null;
1740
1753
  /** Выбранный узел */
1741
- selectedNode: NodeObject | null;
1754
+ selectedNodeIds: Set<string | number>;
1742
1755
  /** Индекс кнопки, над которой находится курсор */
1743
1756
  hoveredButtonIndex: number | null;
1744
1757
  /** Набор узлов, которые должны быть подсвечены */
@@ -1775,11 +1788,13 @@ interface Graph2DProps {
1775
1788
  width: number;
1776
1789
  height: number;
1777
1790
  buttons?: NodeButton[];
1791
+ enableGrid?: boolean;
1778
1792
  onNodeClick?: (node: NodeObject) => void;
1779
1793
  onBackgroundClick?: () => void;
1780
1794
  onNodeHover?: (node: NodeObject | null) => void;
1781
1795
  onLinkHover?: (link: LinkObject | null) => void;
1782
1796
  onLinkClick?: (link: LinkObject) => void;
1797
+ onChangeSelectedNodeIds?: (nodeIds: Set<string | number>) => void;
1783
1798
  }
1784
1799
  interface NodeButton {
1785
1800
  img: string;