DiUtil.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { is, getBusinessObject, getDi } from './modelUtil';
  2. export function isExpanded(element: any, di: any) {
  3. if (is(element, 'bpmn:CallActivity')) {
  4. return false;
  5. }
  6. if (is(element, 'bpmn:SubProcess')) {
  7. di = di || getDi(element);
  8. if (di && is(di, 'bpmndi:BPMNPlane')) {
  9. return true;
  10. }
  11. return di && !!di.isExpanded;
  12. }
  13. if (is(element, 'bpmn:Participant')) {
  14. return !!getBusinessObject(element).processRef;
  15. }
  16. return true;
  17. }
  18. export function isInterrupting(element: any) {
  19. return element && getBusinessObject(element).isInterrupting !== false;
  20. }
  21. export function isEventSubProcess(element: any) {
  22. return element && !!getBusinessObject(element).triggeredByEvent;
  23. }
  24. export function hasEventDefinition(element: any, eventType: any) {
  25. var bo = getBusinessObject(element),
  26. hasEventDefinition = false;
  27. if (bo.eventDefinitions) {
  28. bo.eventDefinitions.forEach(event => {
  29. if (is(event, eventType)) {
  30. hasEventDefinition = true;
  31. }
  32. });
  33. }
  34. return hasEventDefinition;
  35. }
  36. export function hasErrorEventDefinition(element: any) {
  37. return hasEventDefinition(element, 'bpmn:ErrorEventDefinition');
  38. }
  39. export function hasEscalationEventDefinition(element: any) {
  40. return hasEventDefinition(element, 'bpmn:EscalationEventDefinition');
  41. }
  42. export function hasCompensateEventDefinition(element: any) {
  43. return hasEventDefinition(element, 'bpmn:CompensateEventDefinition');
  44. }