@g1cloud/bpmn-modeler-next 5.0.0-alpha.22 → 5.0.0-alpha.23

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.
@@ -27,6 +27,13 @@ export interface GeometryShape {
27
27
  * `annotation-over-label` 의 입력(B-24 ⓑ): 주석 상자가 이 위에 놓이면 텍스트가 겹쳐 둘 다 읽을 수 없다.
28
28
  */
29
29
  label?: GeometryLabel;
30
+ /**
31
+ * 그룹의 멤버 id 목록(`bwl:members` 힌트, A-4 — 그룹일 때만). `group-overlap-unintended` 의 입력:
32
+ * 두 그룹의 바운즈가 겹칠 때 **멤버를 공유하면 의도된 겹침**(한 노드가 두 단계에 걸친다)이고,
33
+ * 공유하지 않으면 **그리다 보니 겹친 것**이다. 힌트가 없는 그룹(사람이 GUI 로 그린 것)은 판단할
34
+ * 근거가 없으므로 판정하지 않는다.
35
+ */
36
+ members?: readonly string[];
30
37
  }
31
38
  /** 간선 외부 라벨의 bounds — 라벨은 판정 대상 도형이 아니지만 **어느 간선의 것으로 읽히는가**는 판정한다(B-15). */
32
39
  export interface GeometryLabel {
@@ -143,6 +150,18 @@ export type GeometryFinding =
143
150
  kind: 'annotation-over-label';
144
151
  annotation: string;
145
152
  label: string;
153
+ }
154
+ /**
155
+ * 두 그룹의 바운즈가 겹치는데 **멤버를 하나도 공유하지 않는다** — 사람은 그 겹침이 업무적 판단인지
156
+ * (한 활동이 두 단계에 걸친다) 그리다 보니 생긴 것인지 구분할 수 없다(G12 실측에서 사용자가 지목:
157
+ * "그룹이 겹쳐서 판단에 의한 건지 그리다 보니 겹친 건지 판단이 잘 안 되는 상태"). 멤버를 공유하는
158
+ * 겹침은 **의도로 읽히므로 제외**한다 — 겹침 자체가 결함이 아니라 *의도가 표현되지 않은 겹침*이 결함이다.
159
+ * 전형 = 단계 그룹은 x 구간인데 멤버가 여러 풀에 흩어져 x 범위가 서로 물리는 경우(A-4 멤버 bbox 의
160
+ * 구조적 한계). `groups` = 겹친 두 그룹(id 오름차순).
161
+ */
162
+ | {
163
+ kind: 'group-overlap-unintended';
164
+ groups: [string, string];
146
165
  };
147
166
  /** 발견을 전후 비교(배치가 새로 만든 것 가려내기)할 수 있게 하는 안정 키. */
148
167
  export declare function geometryFindingKey(finding: GeometryFinding): string;
@@ -226,7 +245,6 @@ export declare function crossingCost(edge: GeometryEdge, others: readonly Geomet
226
245
  export declare function sceneCrossingCost(scene: GeometryScene): number;
227
246
  /** 장면 전체의 교차 쌍(id 오름차순 정렬, 결정론적). 길이가 곧 교차 수다. */
228
247
  export declare function edgeCrossingPairsOf(scene: GeometryScene): Array<[string, string]>;
229
- /** 컨테이너를 뺀 판정 대상 도형 — 관통·겹침 양쪽의 공통 모집단. */
230
248
  export declare const auditTargetsOf: (scene: GeometryScene) => GeometryShape[];
231
249
  /** 도형의 외부 이름 라벨을 가로지르는 선 — 간선 구간(id 순) → 컨테이너 경계선(id 순). 첫 것의 id, 없으면 `null`. */
232
250
  export declare function lineThroughShapeLabel(shape: GeometryShape, scene: GeometryScene): string | null;
@@ -30,6 +30,12 @@ export interface ApplyBpmnOpsResult {
30
30
  edgeCrossings: {
31
31
  before: number;
32
32
  after: number;
33
+ /**
34
+ * 하강 뒤 남은 진성 교차 쌍(간선 id, 오름차순) — 개수만으로는 "이 정도가 정상인가"를 에이전트가
35
+ * 판단할 수 없다(G12 마찰: 교차 5 를 받고 어느 선끼리인지 몰라 배치 재검토를 못 했다).
36
+ * 쌍을 보면 한 메시지가 여러 시퀀스를 건너는 것인지(풀 횡단 = 정상) 배치가 엉킨 것인지 갈린다.
37
+ */
38
+ pairs: Array<[string, string]>;
33
39
  };
34
40
  };
35
41
  }