@g1cloud/entity-modeler-next 5.0.0-beta.15 → 5.0.0-beta.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.
|
@@ -10,5 +10,6 @@ declare function exportPng(): Promise<void>;
|
|
|
10
10
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {
|
|
11
11
|
exportSvg: typeof exportSvg;
|
|
12
12
|
exportPng: typeof exportPng;
|
|
13
|
+
fitView: import('@vue-flow/core').FitView;
|
|
13
14
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
14
15
|
export default _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { InjectionKey } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* 노드 내부 handle 재측정 요청 수집기 (VE-1 ①) — 캔버스가 provide, EntityNode가 onUpdated마다
|
|
4
|
+
* 자기 id를 mark(무비용 후보 등록). 캔버스는 rAF 배치 flush에서 후보의 기하 시그니처(노드 높이 +
|
|
5
|
+
* 행별 y)를 비교해 **실제로 변한 노드만** `updateNodeInternals(ids)`로 재측정한다.
|
|
6
|
+
*
|
|
7
|
+
* 왜 시그니처 판정이 필수인가: Vue Flow의 updateNodeInternals는 forceUpdate로 handleBounds를
|
|
8
|
+
* 무조건 새 객체로 써 그 노드를 다시 재렌더시킨다 — 재렌더를 무조건 mark하면 측정→재렌더→측정
|
|
9
|
+
* 무한 루프. 시그니처가 무변화면 측정을 생략해 루프가 한 사이클 만에 종료된다. 부수 효과로
|
|
10
|
+
* 텍스트-only 변경·hover 강조 재렌더도 재측정에서 자연 제외된다.
|
|
11
|
+
*/
|
|
12
|
+
export interface NodeInternalsCollector {
|
|
13
|
+
mark: (nodeId: string) => void;
|
|
14
|
+
}
|
|
15
|
+
export declare const NODE_INTERNALS: InjectionKey<NodeInternalsCollector>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@g1cloud/entity-modeler-next",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "5.0.0-beta.
|
|
4
|
+
"version": "5.0.0-beta.16",
|
|
5
5
|
"description": "Vue 3 visual entity-modeling / class-diagram editor",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"files": [
|
|
@@ -31,8 +31,7 @@
|
|
|
31
31
|
"@vue-flow/background": "^1.3.2",
|
|
32
32
|
"@vue-flow/controls": "^1.1.2",
|
|
33
33
|
"@vue-flow/core": "^1.42.1",
|
|
34
|
-
"@vue-flow/minimap": "^1.5.2"
|
|
35
|
-
"pinia": "^2.2.0"
|
|
34
|
+
"@vue-flow/minimap": "^1.5.2"
|
|
36
35
|
},
|
|
37
36
|
"devDependencies": {
|
|
38
37
|
"@g1cloud/open-bluesea-core": "1.0.0-alpha.9",
|
|
@@ -45,7 +44,7 @@
|
|
|
45
44
|
"typescript": "^5.6.0",
|
|
46
45
|
"vite": "^6.0.0",
|
|
47
46
|
"vite-plugin-dts": "^5.0.3",
|
|
48
|
-
"vitest": "^
|
|
47
|
+
"vitest": "^3.0.0",
|
|
49
48
|
"vue": "^3.5.0",
|
|
50
49
|
"vue-tsc": "^2.1.0"
|
|
51
50
|
},
|