@cyber-harbour/ui 1.0.81 → 1.1.1

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,45 @@ 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;
1734
+ /**
1735
+ * Знаходить і підсвічує найкоротший шлях між двома нодами
1736
+ * @param sourceId ID початкової ноди
1737
+ * @param targetId ID кінцевої ноди
1738
+ * @returns Кількість нод в знайденому шляху, або 0 якщо шлях не існує
1739
+ */
1740
+ findShortestPath: (sourceId: string | number, targetId: string | number) => number;
1741
+ /**
1742
+ * Впорядковує вибрані вузли в сітці
1743
+ * @param nodeIds Набір ідентифікаторів вузлів для впорядкування
1744
+ * @param options Опції для налаштування розміщення в сітці
1745
+ * - spacing: відстань між вузлами (за замовчуванням 100)
1746
+ * - columns: кількість колонок (автоматично розраховується, якщо не вказано)
1747
+ */
1748
+ arrangeSelectedInGrid: (nodeIds: Set<string | number>, options?: {
1749
+ spacing?: number;
1750
+ columns?: number;
1751
+ }) => void;
1752
+ /**
1753
+ * Впорядковує всі вузли в окремі сітки згруповані за значенням ключа
1754
+ * Якщо значення ключа - масив, бере перший елемент
1755
+ * Кожна група вузлів розміщується в окремій сітці, а самі групи теж розташовані у вигляді сітки
1756
+ * @param typeKey Назва ключа для групування (наприклад, 'labels', 'type')
1757
+ * @param options Опції для налаштування розміщення в сітці
1758
+ * - spacing: відстань між вузлами всередині групи (за замовчуванням 100)
1759
+ * - columns: кількість колонок всередині кожної групи (автоматично розраховується, якщо не вказано)
1760
+ * - groupSpacing: відстань між групами (за замовчуванням 200)
1761
+ */
1762
+ arrangeNodesByTypeInGrid: (typeKey: string, options?: {
1763
+ spacing?: number;
1764
+ columns?: number;
1765
+ groupSpacing?: number;
1766
+ }) => void;
1721
1767
  }
1722
1768
  /**
1723
1769
  * Интерфейс для внутреннего состояния компонента Graph2D
@@ -1738,7 +1784,7 @@ interface GraphState {
1738
1784
  /** Узел, который в данный момент перетаскивается */
1739
1785
  draggedNode: NodeObject | null;
1740
1786
  /** Выбранный узел */
1741
- selectedNode: NodeObject | null;
1787
+ selectedNodeIds: Set<string | number>;
1742
1788
  /** Индекс кнопки, над которой находится курсор */
1743
1789
  hoveredButtonIndex: number | null;
1744
1790
  /** Набор узлов, которые должны быть подсвечены */
@@ -1775,11 +1821,13 @@ interface Graph2DProps {
1775
1821
  width: number;
1776
1822
  height: number;
1777
1823
  buttons?: NodeButton[];
1824
+ enableGrid?: boolean;
1778
1825
  onNodeClick?: (node: NodeObject) => void;
1779
1826
  onBackgroundClick?: () => void;
1780
1827
  onNodeHover?: (node: NodeObject | null) => void;
1781
1828
  onLinkHover?: (link: LinkObject | null) => void;
1782
1829
  onLinkClick?: (link: LinkObject) => void;
1830
+ onChangeSelectedNodeIds?: (nodeIds: Set<string | number>) => void;
1783
1831
  }
1784
1832
  interface NodeButton {
1785
1833
  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,45 @@ 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;
1734
+ /**
1735
+ * Знаходить і підсвічує найкоротший шлях між двома нодами
1736
+ * @param sourceId ID початкової ноди
1737
+ * @param targetId ID кінцевої ноди
1738
+ * @returns Кількість нод в знайденому шляху, або 0 якщо шлях не існує
1739
+ */
1740
+ findShortestPath: (sourceId: string | number, targetId: string | number) => number;
1741
+ /**
1742
+ * Впорядковує вибрані вузли в сітці
1743
+ * @param nodeIds Набір ідентифікаторів вузлів для впорядкування
1744
+ * @param options Опції для налаштування розміщення в сітці
1745
+ * - spacing: відстань між вузлами (за замовчуванням 100)
1746
+ * - columns: кількість колонок (автоматично розраховується, якщо не вказано)
1747
+ */
1748
+ arrangeSelectedInGrid: (nodeIds: Set<string | number>, options?: {
1749
+ spacing?: number;
1750
+ columns?: number;
1751
+ }) => void;
1752
+ /**
1753
+ * Впорядковує всі вузли в окремі сітки згруповані за значенням ключа
1754
+ * Якщо значення ключа - масив, бере перший елемент
1755
+ * Кожна група вузлів розміщується в окремій сітці, а самі групи теж розташовані у вигляді сітки
1756
+ * @param typeKey Назва ключа для групування (наприклад, 'labels', 'type')
1757
+ * @param options Опції для налаштування розміщення в сітці
1758
+ * - spacing: відстань між вузлами всередині групи (за замовчуванням 100)
1759
+ * - columns: кількість колонок всередині кожної групи (автоматично розраховується, якщо не вказано)
1760
+ * - groupSpacing: відстань між групами (за замовчуванням 200)
1761
+ */
1762
+ arrangeNodesByTypeInGrid: (typeKey: string, options?: {
1763
+ spacing?: number;
1764
+ columns?: number;
1765
+ groupSpacing?: number;
1766
+ }) => void;
1721
1767
  }
1722
1768
  /**
1723
1769
  * Интерфейс для внутреннего состояния компонента Graph2D
@@ -1738,7 +1784,7 @@ interface GraphState {
1738
1784
  /** Узел, который в данный момент перетаскивается */
1739
1785
  draggedNode: NodeObject | null;
1740
1786
  /** Выбранный узел */
1741
- selectedNode: NodeObject | null;
1787
+ selectedNodeIds: Set<string | number>;
1742
1788
  /** Индекс кнопки, над которой находится курсор */
1743
1789
  hoveredButtonIndex: number | null;
1744
1790
  /** Набор узлов, которые должны быть подсвечены */
@@ -1775,11 +1821,13 @@ interface Graph2DProps {
1775
1821
  width: number;
1776
1822
  height: number;
1777
1823
  buttons?: NodeButton[];
1824
+ enableGrid?: boolean;
1778
1825
  onNodeClick?: (node: NodeObject) => void;
1779
1826
  onBackgroundClick?: () => void;
1780
1827
  onNodeHover?: (node: NodeObject | null) => void;
1781
1828
  onLinkHover?: (link: LinkObject | null) => void;
1782
1829
  onLinkClick?: (link: LinkObject) => void;
1830
+ onChangeSelectedNodeIds?: (nodeIds: Set<string | number>) => void;
1783
1831
  }
1784
1832
  interface NodeButton {
1785
1833
  img: string;