UNPKG

2.29 kBJavaScriptView Raw
1import {
2 is,
3 getBusinessObject,
4 getDi
5} from './ModelUtil';
6
7import {
8 some
9} from 'min-dash';
10
11/**
12 * @typedef {import('../model/Types').Element} Element
13 * @typedef {import('../model/Types').ModdleElement} ModdleElement
14 */
15
16/**
17 * @param {Element} element
18 * @param {ModdleElement} [di]
19 *
20 * @return {boolean}
21 */
22export function isExpanded(element, di) {
23
24 if (is(element, 'bpmn:CallActivity')) {
25 return false;
26 }
27
28 if (is(element, 'bpmn:SubProcess')) {
29 di = di || getDi(element);
30
31 if (di && is(di, 'bpmndi:BPMNPlane')) {
32 return true;
33 }
34
35 return di && !!di.isExpanded;
36 }
37
38 if (is(element, 'bpmn:Participant')) {
39 return !!getBusinessObject(element).processRef;
40 }
41
42 return true;
43}
44
45/**
46 * @param {Element} element
47 *
48 * @return {boolean}
49 */
50export function isHorizontal(element) {
51
52 if (!is(element, 'bpmn:Participant') && !is(element, 'bpmn:Lane')) {
53 return undefined;
54 }
55
56 var isHorizontal = getDi(element).isHorizontal;
57
58 if (isHorizontal === undefined) {
59 return true;
60 }
61
62 return isHorizontal;
63}
64
65/**
66 * @param {Element} element
67 *
68 * @return {boolean}
69 */
70export function isInterrupting(element) {
71 return element && getBusinessObject(element).isInterrupting !== false;
72}
73
74/**
75 * @param {Element} element
76 *
77 * @return {boolean}
78 */
79export function isEventSubProcess(element) {
80 return element && !!getBusinessObject(element).triggeredByEvent;
81}
82
83/**
84 * @param {Element} element
85 * @param {string} eventType
86 *
87 * @return {boolean}
88 */
89export function hasEventDefinition(element, eventType) {
90 var eventDefinitions = getBusinessObject(element).eventDefinitions;
91
92 return some(eventDefinitions, function(event) {
93 return is(event, eventType);
94 });
95}
96
97/**
98 * @param {Element} element
99 *
100 * @return {boolean}
101 */
102export function hasErrorEventDefinition(element) {
103 return hasEventDefinition(element, 'bpmn:ErrorEventDefinition');
104}
105
106/**
107 * @param {Element} element
108 *
109 * @return {boolean}
110 */
111export function hasEscalationEventDefinition(element) {
112 return hasEventDefinition(element, 'bpmn:EscalationEventDefinition');
113}
114
115/**
116 * @param {Element} element
117 *
118 * @return {boolean}
119 */
120export function hasCompensateEventDefinition(element) {
121 return hasEventDefinition(element, 'bpmn:CompensateEventDefinition');
122}