@tumaet/apollon 4.2.6 → 4.2.8
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/apollon-editor.d.ts +1 -0
- package/dist/assets/style.css +1 -1
- package/dist/components/AlignmentGuides.d.ts +1 -0
- package/dist/components/ScrollOverlay.d.ts +7 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useNodeDrag.d.ts +2 -0
- package/dist/index.js +14322 -14090
- package/dist/store/alignmentGuidesStore.d.ts +13 -0
- package/dist/store/context.d.ts +3 -0
- package/dist/store/index.d.ts +2 -1
- package/dist/store/metadataStore.d.ts +4 -0
- package/dist/typings.d.ts +1 -0
- package/dist/utils/alignmentUtils.d.ts +32 -0
- package/dist/utils/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { StoreApi, UseBoundStore } from 'zustand';
|
|
2
|
+
export type AlignmentGuide = {
|
|
3
|
+
id: string;
|
|
4
|
+
type: "vertical" | "horizontal";
|
|
5
|
+
position: number;
|
|
6
|
+
offset?: number;
|
|
7
|
+
};
|
|
8
|
+
export type AlignmentGuidesStore = {
|
|
9
|
+
guides: AlignmentGuide[];
|
|
10
|
+
setGuides: (guides: AlignmentGuide[]) => void;
|
|
11
|
+
clearGuides: () => void;
|
|
12
|
+
};
|
|
13
|
+
export declare const createAlignmentGuidesStore: () => UseBoundStore<StoreApi<AlignmentGuidesStore>>;
|
package/dist/store/context.d.ts
CHANGED
|
@@ -3,11 +3,14 @@ import { DiagramStore } from './diagramStore';
|
|
|
3
3
|
import { MetadataStore } from './metadataStore';
|
|
4
4
|
import { PopoverStore } from './popoverStore';
|
|
5
5
|
import { AssessmentSelectionStore } from './assessmentSelectionStore';
|
|
6
|
+
import { AlignmentGuidesStore } from './alignmentGuidesStore';
|
|
6
7
|
export declare const DiagramStoreContext: import('react').Context<StoreApi<DiagramStore> | null>;
|
|
7
8
|
export declare const MetadataStoreContext: import('react').Context<StoreApi<MetadataStore> | null>;
|
|
8
9
|
export declare const PopoverStoreContext: import('react').Context<StoreApi<PopoverStore> | null>;
|
|
9
10
|
export declare const AssessmentSelectionStoreContext: import('react').Context<StoreApi<AssessmentSelectionStore> | null>;
|
|
11
|
+
export declare const AlignmentGuidesStoreContext: import('react').Context<StoreApi<AlignmentGuidesStore> | null>;
|
|
10
12
|
export declare const useDiagramStore: <T>(selector: (state: DiagramStore) => T) => T;
|
|
11
13
|
export declare const useMetadataStore: <T>(selector: (state: MetadataStore) => T) => T;
|
|
12
14
|
export declare const usePopoverStore: <T>(selector: (state: PopoverStore) => T) => T;
|
|
13
15
|
export declare const useAssessmentSelectionStore: <T>(selector: (state: AssessmentSelectionStore) => T) => T;
|
|
16
|
+
export declare const useAlignmentGuidesStore: <T>(selector: (state: AlignmentGuidesStore) => T) => T;
|
package/dist/store/index.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ export { createDiagramStore } from './diagramStore';
|
|
|
2
2
|
export { createMetadataStore } from './metadataStore';
|
|
3
3
|
export { createPopoverStore } from './popoverStore';
|
|
4
4
|
export { createAssessmentSelectionStore } from './assessmentSelectionStore';
|
|
5
|
-
export {
|
|
5
|
+
export { createAlignmentGuidesStore } from './alignmentGuidesStore';
|
|
6
|
+
export { DiagramStoreContext, MetadataStoreContext, PopoverStoreContext, AssessmentSelectionStoreContext, AlignmentGuidesStoreContext, useDiagramStore, useMetadataStore, usePopoverStore, useAssessmentSelectionStore, useAlignmentGuidesStore, } from './context';
|
|
@@ -8,8 +8,12 @@ export type MetadataStore = {
|
|
|
8
8
|
mode: ApollonMode;
|
|
9
9
|
readonly: boolean;
|
|
10
10
|
debug: boolean;
|
|
11
|
+
scrollLock: boolean;
|
|
12
|
+
scrollEnabled: boolean;
|
|
11
13
|
setMode: (mode: ApollonMode) => void;
|
|
12
14
|
setReadonly: (readonly: boolean) => void;
|
|
15
|
+
setScrollLock: (scrollLock: boolean) => void;
|
|
16
|
+
setScrollEnabled: (scrollEnabled: boolean) => void;
|
|
13
17
|
updateDiagramTitle: (diagramTitle: string) => void;
|
|
14
18
|
updateDiagramType: (diagramType: UMLDiagramType) => void;
|
|
15
19
|
updateMetaData: (diagramTitle: string, diagramType: UMLDiagramType) => void;
|
package/dist/typings.d.ts
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Node } from '@xyflow/react';
|
|
2
|
+
import { AlignmentGuide } from '../store/alignmentGuidesStore';
|
|
3
|
+
export type AlignmentInfo = {
|
|
4
|
+
horizontalGuides: number[];
|
|
5
|
+
verticalGuides: number[];
|
|
6
|
+
snappedPosition?: {
|
|
7
|
+
x?: number;
|
|
8
|
+
y?: number;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Get the bounds of a node (considering its position and dimensions)
|
|
13
|
+
*/
|
|
14
|
+
export declare const getNodeBounds: (node: Node) => {
|
|
15
|
+
left: number;
|
|
16
|
+
right: number;
|
|
17
|
+
top: number;
|
|
18
|
+
bottom: number;
|
|
19
|
+
centerX: number;
|
|
20
|
+
centerY: number;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Calculate alignment guides based on dragged node and other nodes
|
|
24
|
+
*/
|
|
25
|
+
export declare const calculateAlignmentGuides: (draggedNode: Node, allNodes: Node[], threshold?: number) => AlignmentGuide[];
|
|
26
|
+
/**
|
|
27
|
+
* Snap node position to nearby nodes
|
|
28
|
+
*/
|
|
29
|
+
export declare const snapNodeToGuides: (draggedNode: Node, guides: AlignmentGuide[], threshold?: number) => {
|
|
30
|
+
x?: number;
|
|
31
|
+
y?: number;
|
|
32
|
+
};
|
package/dist/utils/index.d.ts
CHANGED