@g1cloud/bpmn-modeler-next 5.0.0-alpha.75 → 5.0.0-alpha.77
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/agent/resolver/index.d.ts +1 -1
- package/dist/agent/resolver/routeRepair.d.ts +72 -0
- package/dist/bpmn-modeler.js +2716 -2649
- package/dist/bpmn-modeler.umd.cjs +42 -42
- package/package.json +1 -1
|
@@ -8,7 +8,7 @@ export type { DocumentIndex, ElementCategory } from './documentIndex';
|
|
|
8
8
|
export { buildRegistryIndex } from './documentIndex';
|
|
9
9
|
export { validateOps } from './validate';
|
|
10
10
|
export { lowerOps, resolverServicesOf, type ResolverServices } from './lower';
|
|
11
|
-
export { forwardThreePointCandidates, planCrossPoolRoute, planEdgeRepair, planLabelLineClearance, planLabelPlacement, planMiddleSegmentShifts, planOppositeOverlapRepair, planSegmentDetours, planBackEdgeBoundaryClearance, repairIntroducedBoundaryHugging, repairIntroducedCrossings, repairIntroducedEdgeCrossings, repairIntroducedFakeMerges, repairIntroducedOppositeOverlaps, repairIntroducedSharedSegmentLabels, repairIntroducedLabelLines, repairIntroducedShapeLabelLines, planShapeLabelClearance, rerouteIntroducedCrossPoolEdges, } from './routeRepair';
|
|
11
|
+
export { forwardThreePointCandidates, planCrossPoolRoute, planEdgeRepair, planLabelLineClearance, planLabelPlacement, planMiddleSegmentShifts, planOppositeOverlapRepair, planSegmentDetours, planBackEdgeBoundaryClearance, repairIntroducedBoundaryHugging, repairIntroducedCrossings, repairIntroducedEdgeCrossings, repairIntroducedFakeMerges, repairIntroducedOppositeOverlaps, repairIntroducedSharedSegmentLabels, followMovedEdgeLabels, redockIntroducedDetachedEndpoints, repairIntroducedLabelLines, repairIntroducedShapeLabelLines, planShapeLabelClearance, rerouteIntroducedCrossPoolEdges, } from './routeRepair';
|
|
12
12
|
export interface ApplyBpmnOpsResult {
|
|
13
13
|
ok: boolean;
|
|
14
14
|
issues: ResolveIssue[];
|
|
@@ -201,6 +201,50 @@ export declare const LABEL_LINE_GAP = 8;
|
|
|
201
201
|
* (판정기가 보고한다). 바꿀 것이 없으면 `null`.
|
|
202
202
|
*/
|
|
203
203
|
export declare function planLabelLineClearance(edge: GeometryEdge, scene: GeometryScene): GeometryLabel | null;
|
|
204
|
+
/**
|
|
205
|
+
* ── B-99. **배치가 옮긴 선을 선재 라벨이 따라간다** ──
|
|
206
|
+
*
|
|
207
|
+
* 🔴 **등록 진단이 뒤집혔다**(🔁 B-38·B-47·B-48·B-62·B-71·B-86). 원장은 *"라벨이 어느 경로에도 안
|
|
208
|
+
* 실린다"* 였는데 **세로 경로에는 실려 있다** — g39 전수에서 라벨 보유 간선 10 건의 **y 는 10/10
|
|
209
|
+
* 추종**이고 **x 만 3/10** 이다. 프로브가 자리를 `modeling.createSpace` 한 곳으로 특정했다(그 한 번의
|
|
210
|
+
* 전후가 `wp0(4555,869) → (4728,869)` 인데 라벨은 `(4572,851)` 로 그대로). 근인은 그 `moving` 이
|
|
211
|
+
* `pool.children` 인데 **간선 라벨의 부모는 루트**라는 것이다.
|
|
212
|
+
*
|
|
213
|
+
* 🔴 **원장의 기각 수단이 왜 안 들었는지도 이것이 설명한다** — `growLaneMakingSpace` 의 **세로** 델타를
|
|
214
|
+
* 라벨에 더한 실험은 **이미 추종 중인 축에 중복 가산**이라 되레 멀어졌다(146.4 → 151.6). 원장 해석
|
|
215
|
+
* (*"세로 52 가 부호도 못 정한다"*)은 증상이고 근인은 중복 가산이다.
|
|
216
|
+
*
|
|
217
|
+
* 🔴 **그런데 `createSpace` 직후에 고치면 안 된다 — 실측이 기각했다.** 거기서 델타를 재어 옮겼더니
|
|
218
|
+
* g37 의 라벨 다섯이 **+615 로 끌려가 되레 545~573px 로 벌어졌다**(그 간선들은 뒤 단계에서 제자리로
|
|
219
|
+
* 돌아왔는데 라벨만 남았다). 🔁 **「앞 단계의 판단이 뒤 단계가 바꾼 전제 위에 남는다」**(B-51·B-58·
|
|
220
|
+
* B-71·B-88 클래스) ⇒ **기준선은 배치 시작, 적용은 경로가 전부 확정된 뒤**다.
|
|
221
|
+
*
|
|
222
|
+
* ⚠ **델타 추종이지 재계산이 아니다** — 사람이 놓은 상대 위치를 **보존**한 채 선만 따라간다(🔁 B-74 와
|
|
223
|
+
* 같은 철학). **균일하게 평행이동한 간선만** 대상이라 델타가 정의된다 — 모양이 바뀐 간선(우회·꺾임
|
|
224
|
+
* 변경)은 「따라간다」가 뜻을 잃으므로 조건에서 저절로 빠진다(마지막 관통 보정이 그래서 안전하다).
|
|
225
|
+
*
|
|
226
|
+
* ⚠ **대가가 있다 — 따라간 자리가 남의 무엇 위일 수 있다**(🔁 「채택 조건에 대가가 없다」). **개별
|
|
227
|
+
* 축을 나열하면 두더지 잡기가 된다** — 처음에 「선 얹힘」만 막았더니 회귀선이 `label-over-line` 을
|
|
228
|
+
* 잡았고(B-94 ⓐ fixture), 그것을 막자 이번엔 **`annotation-over-label`** 이 났다(g14 · `--check`).
|
|
229
|
+
* 🔴 **B-90 ⓑ·B-92 ⓐ 가 이미 일반화해 둔 자리다: 채택 조건은 `auditGeometry` **키 집합**이다.**
|
|
230
|
+
* ⚠ **총량이 아니라 키 집합**이어야 한다 — 사라진 것과 생긴 것이 상쇄되면 총량은 침묵한다(🔁 B-70).
|
|
231
|
+
*
|
|
232
|
+
* ⚠ **판정은 순수 scene 으로 하고 실제 이동은 통과한 것만** 한다 — 옮겼다 되돌리는 방식은 **되돌리기
|
|
233
|
+
* 자체가 1px 어긋난다**(B-74 실측 · 그 이동이 스냅을 탄다). 채택한 라벨은 scene 에 반영해 다음 라벨의
|
|
234
|
+
* 판정 기준으로 쓴다(누적).
|
|
235
|
+
*
|
|
236
|
+
* 라벨 하나씩 재고 새 키가 생기면 **그 라벨만** 두고 간다(부분 해소 허용 — 🔁 B-61).
|
|
237
|
+
*/
|
|
238
|
+
export declare function followMovedEdgeLabels(services: Pick<ResolverServices, 'elementRegistry' | 'modeling'>, before: ReadonlyMap<string, {
|
|
239
|
+
wps: ReadonlyArray<{
|
|
240
|
+
x: number;
|
|
241
|
+
y: number;
|
|
242
|
+
}>;
|
|
243
|
+
label: {
|
|
244
|
+
x: number;
|
|
245
|
+
y: number;
|
|
246
|
+
};
|
|
247
|
+
}>): void;
|
|
204
248
|
/** 이 배치가 **새로 만든** 간선의 라벨을 선·경계선에서 뗀다(맨 마지막 — 라벨 귀속 보정 뒤). 선재 라벨은 불가침. */
|
|
205
249
|
export declare function repairIntroducedLabelLines(services: Pick<ResolverServices, 'elementRegistry' | 'modeling'>, beforeEdgeIds: ReadonlySet<string>): void;
|
|
206
250
|
/**
|
|
@@ -212,3 +256,31 @@ export declare function repairIntroducedSharedSegmentLabels(services: Pick<Resol
|
|
|
212
256
|
export declare function planShapeLabelClearance(shape: GeometryShape, scene: GeometryScene): GeometryLabel | null;
|
|
213
257
|
/** 이 배치가 **새로 만든** 도형의 이름 라벨을 선에서 뗀다(맨 마지막 — 경로·간선 라벨이 전부 확정된 뒤). */
|
|
214
258
|
export declare function repairIntroducedShapeLabelLines(services: Pick<ResolverServices, 'elementRegistry' | 'modeling'>, beforeShapeIds: ReadonlySet<string>): void;
|
|
259
|
+
/**
|
|
260
|
+
* ── B-98. **이 배치가 도형을 옮겨 놓고 간 끝점을 다시 도킹한다** ──
|
|
261
|
+
*
|
|
262
|
+
* 🔴 **등록 진단이 뒤집혔다**(🔁 B-38·B-47·B-48·B-62·B-71·B-86·B-99). 원장은 *"주석 보정이 주석만
|
|
263
|
+
* 옮기고 연관선을 두고 간다"* 였는데 **주석 보정(`repairIntroducedAnnotationOverlaps`)은 이 요소에
|
|
264
|
+
* 손대지 않았다** — 단계 경계 프로브가 보정 패스 **17개 전부 no-op** 이고 전부 `lowerOps` 안에서
|
|
265
|
+
* 벌어졌음을 보였다(N22). 실제 경위는 **두 단계**다:
|
|
266
|
+
* ① `pushRootBelow` **직전** 이미 붕괴해 있었다 — 풀이 아래로 커지자(h340 → 450) 주석이 **풀 안**에
|
|
267
|
+
* 들어갔고 bpmn-js 가 연관선을 **길이 0**(285,1296)→(285,1296) 으로 크롭했다.
|
|
268
|
+
* ② `pushRootBelow` 가 주석을 +110 내리자 **끝점 하나만** 따라가 (285,1296)→(285,1406) 이 됐다.
|
|
269
|
+
* ⇒ 「선을 두고 간다」가 아니라 **붕괴를 상속한다**. 어느 쪽이든 최종 기하에 대고 다시 도킹해야 한다.
|
|
270
|
+
*
|
|
271
|
+
* 🔴 **N20 이 처방 강도를 줬다**(실무 26종 · 간선 1,456/1,606): 끝점 이탈 **`>40px` 0.00%**(최대가
|
|
272
|
+
* 40 이하 · `>20px` 도 3건뿐이고 전량 association) · **길이 `<1px` 0/1606**. 이 결함은 54px + 길이 0
|
|
273
|
+
* 이라 **두 축 모두 사람 기저 밖**이다 ⇒ 처방이 오탐을 살 여지가 없다.
|
|
274
|
+
*
|
|
275
|
+
* ⚠ **재경로가 아니라 재도킹이다** — `layoutConnection` 은 선재 간선의 사람 웨이포인트를 **버린다**
|
|
276
|
+
* (확정 7 ③ 교란). 그래서 **어긋난 끝점만** 자기 도형 경계의 **가장 가까운 점**으로 옮기고 중간
|
|
277
|
+
* 웨이포인트는 그대로 둔다(🔁 B-74·B-99 의 「사람이 놓은 것은 보존」 철학).
|
|
278
|
+
*
|
|
279
|
+
* ⚠ **컨테이너 끝도 함께 본다** — 판정(`edge-endpoint-detached`)은 컨테이너를 제외하지만(풀은 정상적으로
|
|
280
|
+
* 경계에 도킹한다) 그것은 **신고 대상**의 이야기다. 신고된 간선을 고칠 때 반대쪽 풀 끝이 풀 **안**에
|
|
281
|
+
* 처박혀 있으면 같은 붕괴의 나머지 반쪽이므로 함께 뺀다(실측 = 그 끝이 풀 하단보다 14px 안).
|
|
282
|
+
*
|
|
283
|
+
* ⚠ **채택 조건은 개별 축이 아니라 `auditGeometry` 키 집합**(🔁 B-90 ⓑ·B-92 ⓐ·B-99). 판정은 순수
|
|
284
|
+
* `scene` 으로 하고 통과한 간선만 실제로 옮긴다 · 새 키가 생기면 **그 간선만** 두고 간다(🔁 B-61).
|
|
285
|
+
*/
|
|
286
|
+
export declare function redockIntroducedDetachedEndpoints(services: Pick<ResolverServices, 'elementRegistry' | 'modeling'>, beforeKeys: ReadonlySet<string>): void;
|