UNPKG

1.23 kBJavaScriptView Raw
1import { getDi, is } from './ModelUtil';
2
3/**
4 * @typedef {import('../model/Types').Element} Element
5 * @typedef {import('../model/Types').ModdleElement} ModdleElement
6 */
7
8export var planeSuffix = '_plane';
9
10/**
11 * Get primary shape ID for a plane.
12 *
13 * @param {Element|ModdleElement} element
14 *
15 * @return {string}
16 */
17export function getShapeIdFromPlane(element) {
18 var id = element.id;
19
20 return removePlaneSuffix(id);
21}
22
23/**
24 * Get plane ID for a primary shape.
25 *
26 * @param {Element|ModdleElement} element
27 *
28 * @return {string}
29 */
30export function getPlaneIdFromShape(element) {
31 var id = element.id;
32
33 if (is(element, 'bpmn:SubProcess')) {
34 return addPlaneSuffix(id);
35 }
36
37 return id;
38}
39
40/**
41 * Get plane ID for primary shape ID.
42 *
43 * @param {string} id
44 *
45 * @return {string}
46 */
47export function toPlaneId(id) {
48 return addPlaneSuffix(id);
49}
50
51/**
52 * Check wether element is plane.
53 *
54 * @param {Element|ModdleElement} element
55 *
56 * @return {boolean}
57 */
58export function isPlane(element) {
59 var di = getDi(element);
60
61 return is(di, 'bpmndi:BPMNPlane');
62}
63
64function addPlaneSuffix(id) {
65 return id + planeSuffix;
66}
67
68function removePlaneSuffix(id) {
69 return id.replace(new RegExp(planeSuffix + '$'), '');
70}
\No newline at end of file