@connectorvol/tree 4.1.0 → 4.3.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.
Files changed (38) hide show
  1. package/dist/(classes)/chessTree.svelte.d.ts +2 -0
  2. package/dist/(classes)/chessTree.svelte.js +7 -1
  3. package/dist/(components)/Move.svelte +346 -310
  4. package/dist/(components)/MoveWithIcon.svelte +79 -48
  5. package/dist/(components)/NagBadges.svelte +30 -30
  6. package/dist/(components)/TreeViewer.svelte +878 -842
  7. package/dist/(components)/TreeViewerPanelManager.svelte +99 -98
  8. package/dist/(components)/VariantDropdownNavigator.svelte +177 -173
  9. package/dist/(components)/VariantDropdownNavigator.svelte.d.ts +3 -0
  10. package/dist/(utils)/parseSanMove.d.ts +6 -0
  11. package/dist/(utils)/parseSanMove.js +40 -7
  12. package/dist/components/ui/checkbox/checkbox.svelte +39 -0
  13. package/dist/components/ui/checkbox/checkbox.svelte.d.ts +4 -0
  14. package/dist/components/ui/checkbox/index.d.ts +2 -0
  15. package/dist/components/ui/checkbox/index.js +4 -0
  16. package/dist/components/ui/popover/index.d.ts +9 -0
  17. package/dist/components/ui/popover/index.js +11 -0
  18. package/dist/components/ui/popover/popover-close.svelte +7 -0
  19. package/dist/components/ui/popover/popover-close.svelte.d.ts +4 -0
  20. package/dist/components/ui/popover/popover-content.svelte +31 -0
  21. package/dist/components/ui/popover/popover-content.svelte.d.ts +10 -0
  22. package/dist/components/ui/popover/popover-description.svelte +20 -0
  23. package/dist/components/ui/popover/popover-description.svelte.d.ts +5 -0
  24. package/dist/components/ui/popover/popover-header.svelte +20 -0
  25. package/dist/components/ui/popover/popover-header.svelte.d.ts +5 -0
  26. package/dist/components/ui/popover/popover-portal.svelte +7 -0
  27. package/dist/components/ui/popover/popover-portal.svelte.d.ts +3 -0
  28. package/dist/components/ui/popover/popover-title.svelte +20 -0
  29. package/dist/components/ui/popover/popover-title.svelte.d.ts +5 -0
  30. package/dist/components/ui/popover/popover-trigger.svelte +17 -0
  31. package/dist/components/ui/popover/popover-trigger.svelte.d.ts +4 -0
  32. package/dist/components/ui/popover/popover.svelte +7 -0
  33. package/dist/components/ui/popover/popover.svelte.d.ts +3 -0
  34. package/dist/components/ui/toggle/index.d.ts +3 -0
  35. package/dist/components/ui/toggle/index.js +5 -0
  36. package/dist/components/ui/toggle/toggle.svelte +51 -0
  37. package/dist/components/ui/toggle/toggle.svelte.d.ts +43 -0
  38. package/package.json +11 -9
@@ -2,6 +2,8 @@ import type { ChessTreeNode, TChessTree } from "../(models)/chessTreeNode.js";
2
2
  export declare class ChessTree {
3
3
  rootNode: TChessTree;
4
4
  currentNode: ChessTreeNode;
5
+ /** Представляет версию дерева для отслеживания мутаций (инкрементируется при каждом изменении). */
6
+ mutationVersion: number;
5
7
  /** Представляет признак: меню выхода из drill-down у активной крошки сейчас открыто. */
6
8
  drillExitPromptOpen: boolean;
7
9
  forcedNodeId: string | null;
@@ -2,6 +2,8 @@ import { generateId } from "@connectorvol/shared";
2
2
  export class ChessTree {
3
3
  rootNode;
4
4
  currentNode;
5
+ /** Представляет версию дерева для отслеживания мутаций (инкрементируется при каждом изменении). */
6
+ mutationVersion = $state(0);
5
7
  /** Представляет признак: меню выхода из drill-down у активной крошки сейчас открыто. */
6
8
  drillExitPromptOpen = $state(false);
7
9
  // Заставляет узел отображаться как побочная линия, а не главный вариант
@@ -52,6 +54,7 @@ export class ChessTree {
52
54
  this.rootNode = nextRoot;
53
55
  this.rebuildNodeById();
54
56
  this.currentNode = this.rootNode.moves;
57
+ this.mutationVersion++;
55
58
  }
56
59
  /** Представляет запрос на показ меню выхода из drill-down у активной крошки в header. */
57
60
  requestDrillExitPrompt() {
@@ -180,6 +183,7 @@ export class ChessTree {
180
183
  const addedNode = this.currentNode.children[this.currentNode.children.length - 1];
181
184
  this.addNodeToMap(addedNode);
182
185
  this.currentNode = addedNode;
186
+ this.mutationVersion++;
183
187
  }
184
188
  /**
185
189
  * Представляет функцию поднятия приоритета варианта.
@@ -202,7 +206,7 @@ export class ChessTree {
202
206
  // Перемещаем узел в начало списка детей
203
207
  const [movedNode] = parent.children.splice(nodeIndex, 1);
204
208
  parent.children.unshift(movedNode);
205
- this.forcedNodeId = null;
209
+ this.mutationVersion++;
206
210
  }
207
211
  /**
208
212
  * Представляет функцию превращения варианта в главный.
@@ -229,6 +233,7 @@ export class ChessTree {
229
233
  // Переходим к родителю
230
234
  currentNode = parent;
231
235
  }
236
+ this.mutationVersion++;
232
237
  this.forcedNodeId = null;
233
238
  }
234
239
  /**
@@ -324,6 +329,7 @@ export class ChessTree {
324
329
  // Удаляем узел из списка детей родителя
325
330
  parent.children.splice(nodeIndex, 1);
326
331
  this.removeNodeFromMap(node);
332
+ this.mutationVersion++;
327
333
  // Сбрасываем forcedNodeId если он указывает на удаляемый узел или его потомков
328
334
  if (this.forcedNodeId && this.isNodeAncestorOf(node, this.forcedNodeId)) {
329
335
  this.forcedNodeId = null;