{"version":3,"sources":["jsdelivr-header.js","/npm/bpmn-js-properties-panel@5.61.0/src/context/BpmnPropertiesPanelContext.js","/npm/bpmn-js-properties-panel@5.61.0/src/hooks/useService.js","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-association.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-business-rule-task.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-call-activity.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-collaboration.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-conditional-flow.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-connection.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-data-input-output-association.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-data-input.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-data-object.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-data-output.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-data-store.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-default-flow.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-end-event-cancel.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-end-event-compensation.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-end-event-error.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-end-event-escalation.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-end-event-link.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-end-event-message.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-end-event-multiple.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-end-event-none.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-end-event-signal.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-end-event-terminate.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-event-subprocess-expanded.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-gateway-complex.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-gateway-eventbased.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-gateway-none.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-gateway-or.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-gateway-parallel.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-gateway-xor.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-group.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-cancel.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-compensation.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-condition.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-error.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-escalation.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-link.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-message.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-multiple.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-non-interrupting-condition.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-non-interrupting-escalation.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-non-interrupting-message.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-non-interrupting-multiple.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-non-interrupting-parallel.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-non-interrupting-signal.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-non-interrupting-timer.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-parallel-multiple.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-signal.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-catch-timer.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-none.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-throw-compensation.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-throw-escalation.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-throw-link.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-throw-message.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-throw-multiple.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-intermediate-event-throw-signal.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-lane.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-manual-task.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-message-flow.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-participant.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-process.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-receive-task.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-script-task.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-send-task.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-service-task.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-compensation.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-condition.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-error.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-escalation.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-message.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-multiple.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-non-interrupting-condition.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-non-interrupting-escalation.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-non-interrupting-message.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-non-interrupting-multiple.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-non-interrupting-parallel-multiple.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-non-interrupting-signal.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-non-interrupting-timer.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-none.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-parallel-multiple.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-signal.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-start-event-timer.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-subprocess-collapsed.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-subprocess-expanded.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-task-none.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-text-annotation.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-transaction.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-icon-user-task.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/index.js","/npm/bpmn-js-properties-panel@5.61.0/src/render/PanelHeaderProvider.js","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-empty-state.svg","/npm/bpmn-js-properties-panel@5.61.0/src/icons/bpmn-multiple-state.svg","/npm/bpmn-js-properties-panel@5.61.0/src/render/PanelPlaceholderProvider.js","/npm/bpmn-js-properties-panel@5.61.0/src/render/BpmnPropertiesPanel.js","/npm/bpmn-js-properties-panel@5.61.0/src/render/BpmnPropertiesPanelRenderer.js","/npm/bpmn-js-properties-panel@5.61.0/src/cmd/MultiCommandHandler.js","/npm/bpmn-js-properties-panel@5.61.0/src/cmd/index.js","/npm/bpmn-js-properties-panel@5.61.0/src/render/index.js","/npm/bpmn-js-properties-panel@5.61.0/src/utils/ElementUtil.js","/npm/bpmn-js-properties-panel@5.61.0/src/utils/FormalExpressionUtil.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/properties/AdHocCompletionProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/entries/ReferenceSelect.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/utils/EventDefinitionUtil.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/properties/CompensationProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/properties/DocumentationProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/properties/ErrorProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/properties/EscalationProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/properties/ExecutableProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/utils/ValidationUtil.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/properties/IdProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/properties/LinkProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/properties/MessageProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/properties/MultiInstanceProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/properties/NameProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/properties/ProcessProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/properties/SignalProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/utils/EventDefinitionUtil.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/properties/TimerProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/BpmnPropertiesProvider.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/bpmn/index.js","/npm/bpmn-js-properties-panel@5.61.0/src/utils/ExtensionElementsUtil.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/utils/ZeebeServiceTaskUtil.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/HOCs/withProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/HOCs/withVariableContext.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/HOCs/withTooltipContainer.js","/npm/bpmn-js-properties-panel@5.61.0/src/entries/BpmnFeelEntry.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/ActiveElementsProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/AdHocCompletionProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/AdHocSubProcessImplementationProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/AssignmentDefinitionProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/utils/HeadersUtil.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/BusinessRuleImplementationProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/shared/Binding.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/shared/VersionTag.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/CalledDecisionProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/utils/ConditionUtil.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/ConditionProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/EventConditionProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/ErrorProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/EscalationProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/shared/Listener.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/Header.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/ExecutionListenerHeaderProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/ExecutionListener.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/ExecutionListenersProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/utils/FormUtil.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/FormProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/HeaderProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/utils/CalledElementUtil.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/InputPropagationProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/InputOutputParameter.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/OutputPropagationProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/utils/InputOutputUtil.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/InputProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/JobPriorityDefinitionProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/MessageProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/MultiInstanceProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/OutputCollectionProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/OutputProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/PriorityDefinitionProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/ScriptImplementationProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/ScriptProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/SignalProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/TargetProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/TaskDefinitionProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/TaskListener.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/TaskListenersProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/TaskScheduleProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/utils/TimerUtil.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/TimerProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/UserTaskImplementationProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/properties/VersionTagProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/shared/ExtensionProperty.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/shared/ExtensionPropertiesProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/ZeebePropertiesProvider.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/zeebe/index.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/AsynchronousContinuationsProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/BusinessKeyProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/CalledBpmnProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/CalledCmmnProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/DelegateVariableMappingProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/CallActivityProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/CandidateStarterProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/ConditionProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/ScriptProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/utils/InputOutputUtil.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/ListProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/MapProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/InputOutputParameter.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/utils/ImplementationTypeUtils.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/utils/ConnectorUtil.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/ConnectorInputProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/ConnectorOutputProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/ErrorProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/Error.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/ErrorsProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/EscalationProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/ExternalTaskPriorityProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/FieldInjection.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/FieldInjectionProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/FormFieldConstraint.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/FormFieldProperty.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/FormFieldValue.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/FormField.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/FormDataProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/FormTypeProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/utils/FormTypeUtils.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/FormProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/HistoryCleanupProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/DmnImplementationProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/ImplementationTypeProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/ImplementationProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/InitiatorProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/InMappingPropagationProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/InOutMapping.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/InMappingProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/InputProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/JobExecutionProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/MultiInstanceProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/OutMappingPropagationProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/OutMappingProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/OutputProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/TimerProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/ListenerProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/ProcessVariablesProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/ScriptTaskProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/TasklistProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/UserAssignmentProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/VersionTagProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/IdProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/properties/ProcessProps.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/CamundaPlatformPropertiesProvider.js","/npm/bpmn-js-properties-panel@5.61.0/src/provider/camunda-platform/index.js","/npm/bpmn-js-properties-panel@5.61.0/src/contextProvider/zeebe/TooltipProvider.js","/npm/bpmn-js-properties-panel@5.61.0/src/contextProvider/camunda-platform/TooltipProvider.js"],"names":[],"mappings":"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","file":"/npm/bpmn-js-properties-panel@5.61.0/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /npm/bpmn-js-properties-panel@5.61.0/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import {\n  createContext\n} from '@bpmn-io/properties-panel/preact';\n\nconst BpmnPropertiesPanelContext = createContext({\n  selectedElement: null,\n  injector: null,\n  getService() { return null; }\n});\n\nexport default BpmnPropertiesPanelContext;","import {\n  useContext\n} from '@bpmn-io/properties-panel/preact/hooks';\n\nimport { BpmnPropertiesPanelContext } from '../context';\n\nexport function useService(type, strict) {\n  const {\n    getService\n  } = useContext(BpmnPropertiesPanelContext);\n\n  return getService(type, strict);\n}","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: \"32\",\n  height: \"32\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  stroke: \"#000\",\n  strokeWidth: \"2\",\n  fill: \"none\",\n  strokeDasharray: \"3.3,6\",\n  strokeLinecap: \"square\",\n  d: \"M1.5 30.5l29-29\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zM5.296 7.398v12.665h16.87V7.398H5.296zm.718 4.386h15.433v3.44H9.985v-3.432h-.719v3.431H6.014v-3.44zm0 4.158h3.252v3.403H6.014v-3.403zm3.97 0h11.463v3.403H9.985v-3.403z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M6.079 8.209v3.587H21.44V8.209z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24.978 3c3.761 0 6.89 2.979 7.018 6.695l.004.238V22.4c0 3.747-3.05 6.804-6.783 6.93l-.24.003H7.023c-3.761 0-6.89-2.978-7.018-6.695L0 22.4V9.933C0 6.187 3.05 3.13 6.783 3.004L7.023 3h17.955zm0 3.667H7.022c-1.842 0-3.255 1.344-3.35 3.079l-.005.187V22.4c0 1.761 1.35 3.167 3.16 3.262l.195.005L10 25.666V15h12v10.666h2.978c1.842 0 3.255-1.344 3.35-3.079l.005-.187V9.933c0-1.761-1.35-3.166-3.16-3.261l-.195-.005zm-3.732 9.087H10.754v9.912h10.491v-9.912zm-4.475 1.817v2.658h2.658v1.542H16.77v2.658H15.23V21.77H12.57V20.23h2.658V17.57h1.542z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"g\", {\n  fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  fillRule: \"nonzero\",\n  d: \"M0 0v8.62h32V0H0zm1.655 7.054v-5.37h28.62v5.37H1.656zM0 23.38V32h32v-8.62H0zm1.655 7.054v-5.37h28.62v5.37H1.656z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 8l4 7h-8l4-7zm0 2l-2.28 4h4.56L24 10zM23.5 21h1v3h-1zM23.5 15h1v3h-1zM8 24l-4-7h8l-4 7zm0-2l2.28-4H5.72L8 22zM7.5 8h1v3h-1zM7.5 14h1v3h-1z\"\n})));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M32 .041S20.42 5.95 14.537 8.713c1.26 1.15 2.432 2.392 3.648 3.588-5.703 5.78-3.15 3.303-8.087 8.316l-8.472 1.377L0 32l10.006-1.626.098-.598 1.279-7.873c4.975-5.052 2.403-2.555 8.118-8.346 1.218 1.214 2.43 2.435 3.648 3.648C26.29 11.018 32 .041 32 .041zM9.603 22.397L8.54 28.91 2.03 29.97l1.061-6.515 6.512-1.058z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M32 .06S20.33 6.014 14.403 8.798c1.27 1.16 2.451 2.41 3.676 3.616L0 30.734 1.325 32l18.08-18.32c1.227 1.223 2.448 2.453 3.676 3.676C26.247 11.12 32 .06 32 .06z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: \"32\",\n  height: \"32\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  stroke: \"#000\",\n  strokeWidth: \"2\",\n  strokeLinecap: \"round\",\n  strokeDasharray: \"1.1,4.3\",\n  d: \"M1.5 30.5L27 5\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M31.803.197L26.5 16.107l-1.52-1.52 3.783-11.35-11.35 3.783-1.52-1.52z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M20.833 0H3.488v32H28V7.36L20.833 0zm-2.105 1.818v7.507h7.454v20.857H5.306V1.818h13.422zm1.818.493l5.06 5.196h-5.06V2.311zm-9.182.86v3.744H7.081v3.222h4.283v3.743l5.7-5.354-5.7-5.354zm.808 1.868l3.711 3.487-3.71 3.487V9.329H7.888V7.723h4.283V5.039z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M21.345 0H4v32h24.512V7.36L21.345 0zM19.24 1.818v7.507h7.454v20.857H5.818V1.818H19.24zm1.818.493l5.06 5.196h-5.06V2.311z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M20.833 0H3.488v32H28V7.36L20.833 0zm-2.105 1.818v7.507h7.454v20.857H5.306V1.818h13.422zm1.818.493l5.06 5.196h-5.06V2.311zm-9.182.86v3.744H7.081v3.222h4.283v3.743l5.7-5.354-5.7-5.354z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.008 1c-3.712 0-7.417.306-10.319.939-1.45.316-2.7.71-3.68 1.226C1.065 3.662.297 4.304.061 5.23a.823.823 0 00-.035.15L0 5.502l.017.084c-.012 7.41 0 14.46 0 22.08l.017.082c.203.985.995 1.656 1.975 2.172.98.517 2.23.91 3.68 1.226 2.902.633 6.607.94 10.319.94 3.711 0 7.416-.307 10.318-.94 1.451-.316 2.701-.71 3.68-1.226.98-.516 1.772-1.187 1.975-2.172l.017-.082V5.541a.825.825 0 000-.106v-.016l-.002-.013a.823.823 0 00-.046-.197c-.244-.916-1.007-1.55-1.943-2.044-.98-.516-2.23-.91-3.68-1.226C23.423 1.306 19.718 1 16.006 1zm0 1.646c3.62 0 7.245.308 9.968.901 1.36.297 2.497.67 3.263 1.074.612.323.932.643 1.063.882-.131.24-.451.56-1.063.882-.766.404-1.902.777-3.263 1.074-2.723.594-6.349.901-9.968.901-3.62 0-7.245-.307-9.968-.901-1.361-.297-2.497-.67-3.264-1.074-.611-.322-.931-.642-1.062-.882.13-.24.451-.56 1.062-.882.767-.403 1.903-.777 3.264-1.074 2.723-.593 6.348-.9 9.968-.9zM1.664 7.647c.112.067.227.132.345.194.98.517 2.23.91 3.68 1.226 2.902.633 6.607.94 10.319.94 3.711 0 7.416-.307 10.318-.94 1.451-.316 2.701-.71 3.68-1.226.119-.062.234-.127.346-.194v1.93c-.08.245-.398.619-1.113.995-.766.404-1.902.777-3.263 1.074-2.723.594-6.349.901-9.968.901-3.62 0-7.245-.307-9.968-.9-1.361-.298-2.497-.671-3.264-1.075-.714-.376-1.032-.75-1.112-.995v-1.93zm0 4.187c.112.067.227.132.345.195.98.516 2.23.91 3.68 1.226 2.902.632 6.607.938 10.319.938 3.711 0 7.416-.306 10.318-.938 1.451-.317 2.701-.71 3.68-1.226.119-.063.234-.128.346-.195v1.93c-.08.245-.398.619-1.113.995-.766.404-1.902.777-3.263 1.074-2.723.594-6.349.901-9.968.901-3.62 0-7.245-.307-9.968-.9-1.361-.298-2.497-.67-3.264-1.075-.714-.376-1.032-.75-1.112-.995v-1.93zm0 4.188c.112.067.227.131.345.194.98.516 2.23.91 3.68 1.226 2.902.633 6.607.939 10.319.939 3.711 0 7.416-.306 10.318-.94 1.451-.316 2.701-.709 3.68-1.225.119-.063.234-.127.346-.194V27.47c-.08.245-.398.618-1.113.995-.766.404-1.902.777-3.263 1.074-2.723.594-6.349.9-9.968.9-3.62 0-7.245-.306-9.968-.9-1.361-.297-2.497-.67-3.264-1.074-.714-.377-1.032-.75-1.112-.995V16.022z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M32 .06S20.33 6.014 14.403 8.798c1.27 1.16 2.451 2.41 3.676 3.616L6.84 23.804H.046v1.755h5.063L0 30.735 1.325 32l6.357-6.441h7.145v-1.756H9.414l9.99-10.123c1.228 1.223 2.45 2.453 3.677 3.676C26.247 11.12 32 .06 32 .06z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm-3.955 3.918L8.94 12.072l3.985 3.985-3.913 3.913 3.048 3.047 3.913-3.913 3.987 3.987 3.096-3.096-3.987-3.987 3.913-3.913-3.047-3.048-3.913 3.913-3.985-3.985z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm-.56 5.744l-7.407 5.23 7.408 5.234v-5.057c2.384 1.687 4.771 3.371 7.157 5.057V10.801l-7.157 5.054v-5.054z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm6.132 4.166l-3.633 7.363-4.516-5.874-4.102 12.131 4.599-5.91 4.743 5.427 2.909-13.137z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm.006 3.9c-1.672 4.653-2.733 9.5-4.406 14.153 1.535-1.525 2.872-3.234 4.406-4.759l4.406 4.76c-1.497-4.71-2.91-9.445-4.406-14.155z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.676 0C7.943.007.834 6.45.104 14.16c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 4.958 23.394.313 16.978.032A18.532 18.532 0 0015.676 0zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm1.78 4.065v3.555H9.779v6.713h7.994v3.554l5.828-6.91-5.828-6.912z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.676 0C7.943.007.834 6.45.104 14.16c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 4.958 23.394.313 16.978.032A18.532 18.532 0 0015.676 0zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm-5.91 5.448l6.041 4.9 6.04-4.9H10.084zm-1.34 1.137v9.92h14.513v-9.718l-7.132 5.786-7.381-5.988z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.676 0C7.943.007.834 6.45.104 14.16c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 4.958 23.394.313 16.978.032A18.529 18.529 0 0015.676 0zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm.011 3.039l-7.619 5.53 2.91 8.95h9.418l2.91-8.95-7.619-5.53z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.84.042C8.654-.01 1.913 5.437.4 12.454-1.057 18.62 1.554 25.495 6.784 29.09c5.076 3.636 12.31 3.92 17.59.544 5.309-3.251 8.435-9.744 7.445-15.921C30.91 7.307 25.795 1.738 19.442.422a16.064 16.064 0 00-3.602-.38zm.382 5.01c5.28-.017 10.13 4.353 10.669 9.61.687 5.025-2.552 10.281-7.423 11.792-4.754 1.617-10.486-.447-12.962-4.856-2.74-4.575-1.574-11.094 2.768-14.27a11.05 11.05 0 016.948-2.276z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm.006 3.492c-2.261 4.07-4.532 8.136-6.797 12.204h13.595L15.999 8.55z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm.006 2.859c-5.264-.2-9.495 5.551-7.755 10.516 1.366 5.085 8.108 7.436 12.339 4.301 4.455-2.807 4.708-9.943.462-13.058A8.128 8.128 0 0016 7.915z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M7.295 4.78h1.779V3.003h-1.78V4.78zm3.558 0h1.779V3.003h-1.78V4.78zm3.557 0h1.78V3.003h-1.78V4.78zm3.558 0h1.78V3.003h-1.78V4.78zm3.558 0h1.779V3.003h-1.779V4.78zm3.558 0c.55.014 1.106-.034 1.654.045l.245-1.762c-.629-.096-1.266-.05-1.9-.061V4.78zM5.732 3.004a5.933 5.933 0 00-.915.093c.111.582.226 1.164.315 1.75.358-.101.947.098.746-.483-.096-.382.164-1.208-.146-1.36zm22.372 2.281c.427.234.812.547 1.13.915.42-.4 1.002-.777 1.33-1.18a5.863 5.863 0 00-1.593-1.289l-.867 1.554zm-25.27-1.44c-.587.354-1.11.811-1.539 1.345.47.333.96.86 1.417 1.077.299-.362.66-.673 1.065-.913-.328-.493-.55-1.055-.944-1.509zM30.515 7.26c-.563.046-.557.342-.378.784.154.25-.097.862.25.85.525-.023 1.14.043 1.612-.032a5.891 5.891 0 00-.362-2.027l-1.122.425zM.268 7.114A6.042 6.042 0 000 9.052h1.78c-.013-.5.047-1.003.208-1.478L.296 7.027l-.026.079-.002.008zM30.22 12.45H32v-1.779h-1.779v1.779zm-30.22.16h1.78v-1.779H0v1.78zm30.22 3.398H32v-1.78h-1.779v1.78zm-30.22.16h1.78v-1.779H0v1.779zm30.22 3.398H32v-1.78h-1.779v1.78zm-30.22.16h1.78v-1.78H0v1.78zm30.22 3.397H32v-1.779h-1.779v1.78zm-30.22.16h1.78v-1.778H0v1.778zm30.137 1.47a4.059 4.059 0 01-.522 1.32c.506.283 1.046.715 1.53.908a5.836 5.836 0 00.744-1.918c-.576-.094-1.209-.264-1.752-.31zm-29.984.51c.157.676.435 1.325.82 1.904l1.486-.977a4.065 4.065 0 01-.577-1.347l-1.73.42zm28.427 1.943c-.371.277-.79.49-1.234.627l.548 1.693a5.84 5.84 0 001.835-.96l-1.082-1.412-.066.05-.001.002zm-26.164 1.47c.567.413 1.21.722 1.886.907.14-.569.343-1.175.444-1.722a4.062 4.062 0 01-1.283-.624l-1.047 1.438zm3.88 1.119h1.779v-1.78h-1.78v1.78zm3.55 0h1.787v-1.78H9.846v1.78zm3.565 0h1.78v-1.78h-1.78v1.78zm3.558 0h1.78v-1.78h-1.78v1.78zm3.451 0h1.743v-1.78h-1.743v1.78zm3.665 0h1.779v-1.78h-1.78v1.78zm-1.922-.545V16.776H9.846V29.25h12.318zM10.967 17.905h10.068V27.97H10.967V17.905zm1.336 3.998v1.711h7.396v-1.711h-7.396z\",\n  opacity: \".97\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.001 0a1.29 1.29 0 00-.917.373L.373 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.917.372A1.294 1.294 0 0016.002 0zM16 2.181l13.821 13.821L16 29.823 2.179 16.003 16 2.18zm-.327 6.79v.007l-.145.027-.118.08-.083.123-.028.145v4.954L11.793 10.8l-.125-.08-.14-.029-.144.027-.122.082-.46.46-.085.125-.026.142.028.14.08.125 3.505 3.505H9.347l-.001-.002-.145.032-.118.08-.083.122-.028.146v.652l.029.147.082.119.12.08.144.032h4.956L10.8 20.207v-.001l-.084.124-.026.142.028.14.08.124.46.461.126.082.14.029.143-.027.124-.084L15.3 17.69v4.964-.001l.028.147.082.12.12.08.144.031h.652l.148-.03.118-.08.083-.12.028-.146v-4.962l3.505 3.505.126.082.14.027.142-.027.124-.084.461-.46.083-.123s.028-.144.027-.146l-.028-.14-.082-.126-3.496-3.496h4.948l.148-.03.119-.08.082-.12.028-.147v-.652l-.028-.145-.083-.122-.119-.08s-.147-.033-.147-.031h-4.964l3.512-3.512.082-.122.029-.144-.028-.14-.084-.124-.46-.461-.123-.082-.14-.027-.145.027-.122.082-3.507 3.507V9.348l-.028-.146-.082-.122-.12-.08-.147-.029h-.652z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16 0a1.29 1.29 0 00-.918.373L.371 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.915.372A1.294 1.294 0 0016 0zm-.002 2.181l13.821 13.821-13.821 13.821-13.821-13.82L15.998 2.18zm0 5.876l-.254.185-7.377 5.355 2.915 8.964h9.433l2.915-8.964-7.631-5.54zm0 1.07l6.614 4.8-2.526 7.769h-8.175l-2.526-7.768 6.614-4.802z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M.373 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.917.373a1.313 1.313 0 00-1.833 0L.373 15.084zm1.806.918L16 2.182l13.821 13.82L16 29.823 2.179 16.003z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.001 0a1.29 1.29 0 00-.917.373L.373 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.917.372A1.294 1.294 0 0016.002 0zM16 2.181l13.821 13.821L16 29.823 2.179 16.003 16 2.18zm0 6.379a7.447 7.447 0 00-7.44 7.441A7.447 7.447 0 0016 23.443 7.447 7.447 0 0023.443 16a7.447 7.447 0 00-7.441-7.441zm0 .825a6.61 6.61 0 016.617 6.616A6.61 6.61 0 0116 22.618 6.61 6.61 0 019.385 16 6.61 6.61 0 0116 9.385z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.001 0a1.29 1.29 0 00-.917.373L.373 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.917.372A1.294 1.294 0 0016.002 0zM16 2.181l13.821 13.821L16 29.823 2.179 16.003 16 2.18zm-.377 5.708l-.168.032-.136.092-.096.14-.032.168v6.868h-6.87l-.002-.002-.166.037-.137.092v-.002l-.095.141-.033.167v.753s.032.169.034.17l.094.138.138.092.167.036h6.87v6.867l-.001-.001.033.17.095.138.138.092s.166.035.167.037h.752l.17-.036.137-.092.095-.137.033-.17v-6.867h6.868l.17-.035.137-.092.095-.137.033-.17v-.753s-.033-.165-.032-.167l-.096-.14-.138-.093s-.17-.037-.17-.035H16.81V8.323l-.033-.168-.094-.14-.138-.092-.17-.034h-.752z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16 0a1.29 1.29 0 00-.918.373L.371 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.915.372A1.294 1.294 0 0016 0zm-.002 2.181l13.821 13.821-13.821 13.821-13.821-13.82L15.998 2.18zm-5.162 7.69l-.166.032-.141.096-.532.532s-.097.142-.097.144l-.03.164.032.162.093.144 4.857 4.858-4.855 4.855v-.001L9.9 21l-.03.164.032.162s.093.142.093.144l.531.532.146.095.162.032.164-.03.144-.097 4.855-4.856 4.857 4.857.145.095.162.032.164-.03.144-.097.531-.532.095-.14.033-.168-.033-.162-.095-.146L17.144 16 22 11.144l.095-.14.033-.166-.033-.163-.097-.144-.532-.532-.14-.095-.163-.032-.166.032-.141.095L16 14.855l-4.858-4.858v-.002l-.144-.092-.162-.032z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M6.34.016c-2.333.025-4.684 1.77-5.29 4.17C.608 5.848.88 7.608.804 9.314v2.922h2.041c.038-2.332-.076-4.673.062-7C3.14 3.355 4.869 1.938 6.643 2.04h8.956V.009c-3.086 0-6.173-.02-9.258 0v.007zm13.094 2.023h1.92V.009h-1.92v2.03zm5.756 0c1.265-.069 2.66.045 3.602 1.055 1.036.983 1.201 2.523 1.122 3.91v6.313h2.078c-.03-2.677.062-5.36-.047-8.032-.17-2.743-2.62-5.111-5.215-5.236-.511-.064-1.027-.02-1.54-.033v2.023zM.803 18.319h2.041v-2.026H.804v2.026zm29.11 1.084h2.08v-2.03h-2.08v2.03zM.804 26.148c.004 2.218 1.393 4.366 3.313 5.28 1.728.853 3.681.448 5.521.544.43-.112 1.29.231 1.435-.183v-1.847c-1.788-.043-3.584.094-5.365-.082-1.67-.354-2.919-2.048-2.863-3.844v-3.644H.804v3.777zm29.11-.068c.04 1.961-1.508 3.787-3.381 3.842-1.954.06-3.914.02-5.87.026v2.03c2.118-.042 4.242.08 6.355-.063 2.524-.264 4.818-2.644 4.94-5.323.08-1.039.014-2.085.035-3.126h-2.078v2.613zm-15.006 5.898h1.92v-2.03h-1.92v2.03z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.975.049C8.195-.111.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.454 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.215-2.282-2.022-5.3-3.217-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.082 11.082 0 0116 5.021zm-3.956 3.946l-3.096 3.097 3.985 3.985-3.913 3.913 3.047 3.048 3.913-3.913 3.988 3.987 3.097-3.096L19.076 16l3.914-3.913-3.048-3.048-3.913 3.913-3.986-3.985zm-.002 1.222l3.988 3.987 3.913-3.913 1.826 1.826-3.913 3.913 3.985 3.986-1.873 1.873-3.985-3.985-3.913 3.913-1.827-1.827 3.914-3.913-3.988-3.987 1.873-1.873z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm-.56 5.772l-7.408 5.231 7.409 5.234v-5.057c2.385 1.687 4.771 3.371 7.157 5.057V10.793l-7.157 5.055v-5.055zm-.865 1.665v7.125l-5.048-3.562 5.048-3.563zm7.161 0v7.132l-5.048-3.566 5.048-3.566z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.97.04h-.127C8.713-.018 2.003 5.334.437 12.286c-1.51 6.123.98 13.005 6.136 16.665 5.125 3.788 12.546 4.105 17.912.623 5.272-3.276 8.33-9.766 7.325-15.916-.904-6.241-5.79-11.7-11.95-13.143A16.082 16.082 0 0015.97.04zm-.181 1.724c.115 0 .23 0 .347.003 6.625-.066 12.823 5.149 13.89 11.69 1.13 5.91-1.908 12.349-7.262 15.138-5.473 3.013-12.866 1.884-17.116-2.726C1.291 21.372.444 13.914 3.802 8.602c2.493-4.112 7.169-6.819 11.987-6.838zm.283 1.554c-.117 0-.234.002-.351.005-6.1 0-11.691 5.049-12.346 11.114-.78 5.684 2.795 11.612 8.218 13.52 5.139 1.943 11.416.101 14.624-4.38 3.461-4.583 3.262-11.538-.596-15.831-2.36-2.747-5.924-4.423-9.549-4.428zm-.078 1.695c.078 0 .156 0 .234.003 5.4 0 10.321 4.556 10.734 9.942.563 5.13-2.958 10.364-7.971 11.678-4.832 1.41-10.457-.935-12.746-5.446-2.463-4.559-1.2-10.795 3.014-13.883a11.072 11.072 0 016.735-2.294zm-5.352 4.266V22.761h10.716V9.279H10.642zm.863.866h8.987v11.75h-8.987v-11.75zm.927 1.323v.862h7.133v-.862h-7.133zm0 2.602v.866h7.133v-.866h-7.133zm0 3.008v.862h7.133v-.862h-7.133zm0 2.717v.863h7.133v-.863h-7.133z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm6.132 4.194c-1.21 2.455-2.422 4.91-3.633 7.364l-4.516-5.875-4.103 12.133 4.6-5.912c1.58 1.81 3.162 3.619 4.744 5.429L22.13 9.215zM14.383 13.1l4.295 5.445 1.073-2.387-1.027 4.131-4.384-5.157-1.778 2.75 1.821-4.782z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm.006 3.927c-1.672 4.654-2.734 9.502-4.406 14.155 1.534-1.525 2.872-3.234 4.406-4.759l4.406 4.76c-1.496-4.71-2.91-9.446-4.406-14.156zm.032 2.929c.822 2.586 1.598 5.186 2.42 7.771l-2.42-2.612c-.682.597-2.452 2.884-2.338 2.388.87-2.487 1.447-5.067 2.338-7.547z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm1.78 4.093v3.555H9.785v6.714h7.994v3.554l5.829-6.911-5.83-6.912zm.974 2.584l3.61 4.295-3.61 4.294v-1.933h-7.88v-4.688h7.88v-1.968z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm-7.245 5.475v11.06h14.502v-11.06H8.754zm3.222 1.728h8.057c-1.427.878-2.854 2.806-4.281 3.016l-3.776-3.016zm9.554 1.017v6.587H10.48V13.24l5.524 4.414 5.526-4.414z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.975.003C8.195-.156.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.407 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 4.975zm.006 3.073l-7.62 5.531 2.91 8.95h9.42l2.91-8.95-7.62-5.53zm0 1.067l6.604 4.794-2.523 7.757h-8.162l-2.522-7.757 6.603-4.794z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M10.638 9.563V23.056h10.724V9.563H10.638zm.863.866h8.995v11.76H11.5V10.43zm.928 1.324v.862h7.139v-.862h-7.14zm0 2.605v.866h7.139v-.866h-7.14zm0 3.01v.863h7.139v-.863h-7.14zm0 2.72v.863h7.139v-.864h-7.14zM15.999.308h-.004l-.188.001h-.011l-.188.004h-.011L15.41.32h-.011l-.187.008h-.005L15.2.33l-.187.01h-.005l-.005.001-.187.013h-.011L14.62.37h-.01l-.186.018h-.011l-.185.02-.005.001h-.006l-.185.022-.005.001h-.005l-.185.025h-.005l-.005.001-.185.027h-.005l-.005.001-.184.029h-.005l-.005.001-.183.031-.006.001-.005.001-.182.033-.006.001-.005.001-.182.035-.005.001-.005.001-.182.038h-.005l-.005.002-.181.04h-.005l-.005.002-.18.042-.006.001-.005.001-.18.044-.005.002h-.005l-.17.045-.152.054-.139.082-.121.106-.1.127-.074.143-.046.155-.017.16.013.16.043.156.07.145.097.13.119.108.137.085.15.058.159.03.16-.001.133-.023.165-.043.168-.041.171-.04.171-.037.172-.036.17-.033.173-.03.17-.03.177-.027.171-.025.175-.022.175-.02.175-.02.176-.016.175-.014.177-.012.176-.01.177-.007.174-.006.177-.003.178-.001h.177l.178.004.174.006.177.007.176.01.177.012.175.014.176.017.175.018.175.02.175.023.171.025.176.027.17.03.174.03.17.033.171.036.154.033.16.02.161-.01.156-.04.146-.069.131-.094.111-.117.087-.135.061-.15.032-.158.002-.16-.027-.16-.057-.15L20 1.023l-.108-.12-.128-.097-.145-.073-.128-.038-.158-.035-.005-.001-.005-.001L19.14.62h-.005l-.005-.002-.182-.035h-.006L18.938.58l-.182-.033h-.006l-.005-.002-.183-.03-.005-.001-.006-.001-.183-.029h-.005l-.006-.001-.184-.027h-.005l-.005-.001-.185-.024h-.005L17.968.43 17.783.41l-.006-.001h-.005l-.185-.02h-.006l-.005-.001L17.39.37h-.005L17.38.368l-.187-.015h-.005l-.005-.001-.187-.013h-.011L16.8.328h-.011L16.6.32h-.011l-.187-.006h-.011L16.204.31h-.011L16.005.31H16zm9.016 2.935l-.16.004-.158.033-.15.062-.134.09-.116.111-.093.132-.067.147-.038.156-.01.161.022.16.05.153.078.141.103.124.102.087.045.034.142.106.137.105.14.11.136.11.135.112.134.115.134.117.13.115.132.122.128.12.127.122.126.125.124.126.124.128.121.13.118.128.118.132.117.133.113.134.113.136.11.136.109.137.109.142.104.14.103.14.101.142.1.144.099.146.095.145.094.147.093.15.092.15.087.149.087.15.084.152.084.155.08.152.08.155.04.081.084.138.11.119.128.096.145.072.155.043.16.013.16-.016.155-.046.144-.074.127-.099.106-.12.083-.14.055-.151.026-.16-.004-.16-.034-.158-.05-.124-.042-.085-.002-.004-.003-.005-.084-.165-.002-.004-.003-.005-.086-.164-.002-.004-.003-.005-.088-.162-.002-.005-.003-.005-.09-.161-.002-.005-.003-.004-.092-.16-.003-.005-.002-.005-.094-.16-.003-.004-.003-.004-.096-.159-.002-.004-.003-.005-.098-.157-.003-.004-.003-.005-.1-.156-.003-.004-.003-.005-.101-.154-.003-.005-.003-.004-.104-.154-.003-.004-.003-.005-.106-.152-.003-.005-.003-.004-.108-.151-.003-.004-.003-.005-.11-.15-.003-.004-.003-.004-.111-.15-.004-.003-.003-.005-.113-.147-.004-.004-.003-.005-.115-.146-.004-.004-.003-.004-.117-.145-.004-.004-.003-.004-.12-.144-.003-.004-.003-.004-.121-.142-.004-.004-.003-.004-.123-.141-.003-.004-.004-.004-.125-.14-.003-.004-.004-.004-.127-.138-.003-.004-.004-.004-.128-.136-.004-.004-.004-.004-.13-.135-.004-.004-.004-.004-.132-.134-.003-.004-.004-.003-.134-.133-.004-.003-.004-.004-.135-.13-.004-.004-.004-.004-.136-.128-.004-.004-.004-.004-.138-.126-.004-.004-.004-.003-.14-.125-.004-.004-.004-.003-.14-.123-.005-.004-.004-.003-.142-.121-.004-.004-.004-.003-.144-.12-.004-.003-.004-.003-.145-.117-.004-.004-.004-.003-.147-.115-.004-.004-.004-.003-.148-.113-.004-.003-.004-.004-.149-.111-.004-.003-.004-.004-.05-.036-.14-.083-.15-.055-.16-.027zm-18.381.344l-.161.008-.157.037-.147.066-.111.074-.04.032-.005.003-.004.004-.145.117-.004.003-.004.004-.144.119-.004.003-.004.004-.142.12-.004.004-.004.004-.141.123-.004.003-.004.004-.14.125-.004.003-.004.004-.138.126-.004.004-.004.004-.136.128-.004.004-.004.004-.135.13-.004.004-.004.003-.134.133-.004.003L4.682 5l-.132.134-.003.004-.004.004-.13.135-.004.004-.004.004-.128.136-.004.004-.004.004-.126.138-.004.004-.003.004-.125.14-.004.004-.003.004-.123.14-.004.005-.003.004-.121.142-.004.004-.003.004-.12.144-.003.004-.003.004-.117.145-.004.004-.003.004-.115.146-.004.005-.003.004-.113.147-.003.005-.004.004-.111.149-.003.004-.004.004-.11.15-.002.005-.003.004-.108.151-.003.004-.003.005-.106.152-.003.005-.003.004-.104.154-.003.004-.003.005-.102.154-.003.005-.002.004-.1.156-.003.005-.003.004-.098.157-.003.005-.003.004-.096.159-.002.004-.003.005-.094.16-.003.004-.002.004-.092.16-.003.005-.003.005-.09.161-.002.005-.003.005-.088.162-.002.005-.003.004-.086.164-.002.005-.002.004-.084.165-.003.005-.002.004-.082.166-.002.004-.003.005-.08.167-.002.004-.002.005-.078.168-.002.004-.002.005-.045.1-.053.153-.023.16.007.16.037.157.065.148.092.132.114.114.134.09.148.064.157.035.161.006.16-.025.152-.054.14-.08.121-.106.1-.126.065-.118.043-.095.074-.16.075-.155.077-.157.08-.155.08-.152.083-.155.085-.152.086-.15.088-.149.091-.15.094-.15.094-.147.095-.145.099-.146.1-.144.1-.142.104-.14.104-.14.11-.142.107-.137.11-.136.114-.136.113-.134.117-.133.118-.132.117-.129.122-.13.124-.127.123-.126.127-.125.127-.122.128-.12.132-.122.13-.115.133-.117.135-.115.135-.111.136-.11.037-.03.117-.11.094-.132.068-.146.04-.156.01-.161-.02-.16-.05-.154-.076-.141-.102-.125-.123-.104-.14-.08-.153-.051-.16-.023zM16 3.595h-.005l-.148.001h-.01l-.147.003h-.011l-.147.005h-.011l-.146.007h-.011l-.146.009h-.011l-.146.01h-.005l-.005.001-.146.012h-.011l-.145.014h-.006l-.005.001-.05.006-.158.031-.15.06-.135.088-.117.111-.094.13-.069.147-.04.156-.01.16.019.16.049.154.076.142.102.125.123.105.14.08.152.051.16.023.134-.003.045-.005.135-.013.133-.01.136-.01.135-.007.137-.006.136-.004.136-.003h.274l.136.003.136.004.136.006.136.007.136.01.133.01.135.013.135.014.135.016.134.018.132.018.134.021.133.023.133.024.133.025.13.027.132.03.132.03.129.031.13.034.129.035.129.036.13.04.126.038.128.042.126.042.128.045.127.047.126.047.12.048.127.051.123.052.006.002.147.048.16.021.16-.009.157-.038.147-.067.131-.093.112-.116.089-.135.062-.149.033-.158.004-.16-.027-.16-.055-.151-.083-.139-.107-.12-.127-.099-.118-.063-.004-.001-.005-.003-.005-.002-.133-.056-.005-.002-.005-.002-.134-.054-.004-.002-.005-.002-.135-.053-.005-.002-.005-.002-.135-.051-.005-.002-.005-.002-.135-.05-.005-.001-.005-.002-.137-.048-.005-.001-.005-.002-.137-.046-.005-.002-.005-.002-.137-.044-.005-.002-.005-.001-.138-.043-.006-.002-.005-.001-.138-.042-.005-.001-.005-.002-.14-.04H19.4l-.005-.002-.14-.038-.005-.001-.005-.002-.14-.036-.005-.001-.005-.001-.141-.035-.005-.001-.005-.001-.142-.033-.005-.001-.005-.001-.142-.031-.005-.002h-.005l-.142-.03-.005-.001-.005-.001-.143-.028h-.005l-.005-.002-.143-.025-.006-.001-.005-.001-.143-.024-.005-.001-.006-.001-.143-.022-.006-.001h-.005l-.144-.022h-.005l-.006-.001-.144-.019h-.005l-.006-.001-.144-.017h-.006l-.005-.001-.145-.016h-.011l-.145-.014H17.1l-.005-.001-.146-.012h-.01l-.146-.01-.006-.001h-.005l-.146-.009h-.011l-.147-.006h-.01L16.32 3.6h-.011l-.147-.003h-.011l-.147-.001H16zm-5.482 1.366l-.16.008-.157.037-.123.053-.06.032-.005.002-.004.003-.128.069-.004.002-.005.003-.126.07-.005.003-.004.002-.126.072-.005.003-.004.003-.125.073-.004.003-.005.003-.124.075-.004.003-.005.002-.123.077-.004.003-.005.003-.122.078-.004.003-.005.003-.121.08-.004.002-.005.003-.12.082-.005.003-.004.003-.12.083-.004.003-.004.003-.118.084-.005.003-.004.003-.118.086-.004.003-.004.003-.117.088-.004.003-.004.003-.116.089-.004.003-.004.004-.114.09-.005.003-.004.003-.113.092-.004.004-.004.003-.113.093-.004.004-.004.003-.111.095-.005.003-.004.004-.11.096-.004.004-.004.003-.11.098-.003.003-.004.004-.108.1-.004.003-.004.003-.107.101-.004.004-.004.003-.106.102-.004.004-.003.004-.105.103-.004.004-.004.004-.103.105-.004.004-.004.003-.102.106-.003.004-.004.004-.1.107-.004.004-.004.004-.099.108-.004.004-.003.004-.098.11-.003.003-.004.004-.096.11-.004.005-.003.004-.095.111-.003.004-.004.004-.093.113-.003.004-.004.004-.092.113-.003.004-.003.005-.09.114-.004.004-.003.004-.089.116-.003.004-.003.004-.088.117-.003.004-.003.004-.086.118-.003.004-.003.005-.084.118-.003.004-.003.005-.083.12-.003.003-.003.005-.082.12-.003.005-.002.004-.068.103-.076.142-.048.154-.018.16.011.161.041.156.07.146.095.13.117.11.136.086.15.06.158.03.162.002.158-.03.15-.057.138-.085.119-.109.082-.105.065-.099.075-.11.077-.113.077-.107.08-.11.08-.108.084-.108.083-.105.086-.106.086-.104.088-.104.089-.101.09-.102.093-.101.093-.099.094-.097.095-.096.098-.097.098-.095.099-.093.1-.092.103-.091.101-.089.104-.088.104-.086.106-.086.106-.083.106-.082.109-.082.108-.079.11-.078.11-.076.112-.076.112-.074.113-.072.113-.071.115-.07.115-.068.118-.067.117-.065.12-.065.054-.029.135-.088.116-.111.094-.132.068-.146.04-.156.009-.161-.02-.16-.05-.153-.078-.142-.102-.125-.123-.103-.141-.079-.153-.051-.16-.022zm13.91 2.116l-.162.008-.157.037-.147.066-.132.092-.113.116-.09.134-.063.148-.034.157-.005.162.025.159.055.152.082.138.086.103.09.09.094.098.092.099.093.1.091.103.089.101.088.104.086.104.086.106.083.105.083.108.08.108.081.11.077.107.077.112.075.111.075.114.072.113.071.113.07.114.068.118.067.115.065.118.064.117.062.117.061.121.059.119.059.122.056.121.054.12.055.125.051.123.051.125.048.123.048.127.047.126.044.125.043.128.042.129.039.126.038.13.022.076.058.15.085.137.11.119.129.096.145.07.155.043.16.013.161-.017.154-.046.144-.075.126-.1.106-.12.082-.14.055-.151.025-.16-.005-.16-.026-.132-.023-.082-.002-.005-.001-.005-.042-.139-.001-.005-.002-.005-.043-.138-.001-.005-.002-.005-.044-.137-.002-.005-.002-.005-.046-.137-.002-.005-.001-.005-.048-.137-.002-.005-.002-.005-.05-.135-.001-.005-.002-.005-.051-.135-.002-.005-.002-.005-.053-.135-.002-.005-.002-.005-.054-.133-.002-.005-.002-.005-.057-.133-.002-.005-.002-.005-.057-.132-.003-.005-.002-.005-.06-.132-.001-.005-.002-.004-.061-.132-.003-.004-.002-.005-.063-.13-.002-.005-.002-.005-.064-.13-.003-.004-.002-.005-.066-.129-.002-.004-.003-.005-.067-.128-.002-.005-.003-.004-.069-.128-.002-.004-.003-.005-.07-.126-.003-.005-.003-.004-.072-.126-.002-.005-.003-.004-.074-.125-.002-.004-.003-.005-.075-.124-.003-.004-.003-.005-.076-.123-.003-.004-.003-.005-.078-.122-.003-.004-.003-.005-.08-.121-.003-.004-.003-.005-.081-.12-.003-.005-.003-.004-.083-.12-.003-.004-.003-.004-.084-.118-.003-.005-.003-.004-.086-.118-.003-.004-.004-.004-.087-.117-.003-.004-.003-.004-.09-.116-.002-.004-.004-.004-.09-.114-.003-.005-.004-.004-.091-.113-.004-.004-.003-.004-.094-.113-.003-.004-.003-.004-.095-.111-.004-.004-.003-.004-.096-.11-.004-.005-.003-.004-.098-.11-.004-.003-.003-.004-.1-.108-.003-.004-.004-.004-.1-.107-.004-.004-.004-.004-.102-.106-.003-.003-.004-.004-.093-.095-.124-.103-.14-.08-.153-.05-.16-.023zM4.45 13.135l-.161.002-.158.032-.15.06-.135.088-.118.11-.094.131-.069.146-.035.129-.026.132v.005l-.002.005-.025.143-.001.005-.001.006-.024.143-.001.005-.001.006-.022.143-.001.006-.001.005-.02.144-.001.005-.001.005-.019.145v.005l-.001.006-.017.144v.006l-.001.005-.016.145v.011l-.014.145v.005l-.001.006-.012.146v.01l-.01.146-.001.006v.005l-.009.146v.011l-.007.146v.011l-.004.147v.011l-.003.147v.01l-.002.148v.01l.001.148v.01l.003.147v.011l.005.147v.01l.007.147v.011l.009.146v.011l.01.146v.01l.013.146v.011l.014.145v.005l.001.006.016.145v.011l.018.144v.006l.001.005.019.144v.006l.001.005.021.144v.005l.002.006.022.143v.006l.002.005.024.143v.005l.002.006.025.143.001.005.001.005.028.143.001.005.001.005.03.142v.005l.002.006.03.141.002.005.001.005.033.142v.005l.002.005.035.14v.006l.002.005.036.14.002.005.001.005.038.14.001.005.002.005.04.14v.005l.002.005.042.138.001.006.002.005.042.138.002.005.002.005.017.054.064.148.09.134.114.114.132.092.148.065.157.037.16.007.16-.023.153-.052.14-.08.123-.104.102-.125.076-.142.049-.153.02-.16-.011-.161-.031-.13-.017-.051-.039-.126-.038-.13-.037-.128-.035-.13-.033-.128-.033-.134-.03-.13-.029-.131-.026-.13-.026-.133-.024-.133-.023-.133-.02-.132-.02-.136-.017-.132-.016-.135-.014-.135-.012-.133-.012-.138-.009-.133-.007-.136-.006-.138-.004-.134-.003-.136v-.274l.003-.136.004-.134.006-.139.007-.136.01-.133.01-.138.013-.132.014-.135.016-.135.017-.132.02-.137.02-.13.023-.134.024-.133.024-.126.016-.16-.014-.161-.044-.155-.072-.145-.098-.128-.12-.108-.137-.084-.15-.057-.16-.029zm26.698 1.601l-.161.01-.157.04-.146.067-.131.093-.112.117-.088.135-.061.149-.033.157-.005.134.006.14.006.176.003.177.001.178-.001.177-.003.178-.006.177-.007.176-.01.177-.012.176-.015.176-.016.173-.018.175-.02.175-.024.174-.025.175-.026.17-.03.174-.03.173-.033.17-.036.172-.037.17-.04.17-.042.172-.043.168-.045.166-.048.169-.05.167-.052.168-.053.164-.056.166-.058.166-.06.16-.062.165-.062.158-.066.165-.068.16-.07.16-.07.158-.075.159-.074.155-.079.158-.08.158-.06.15-.03.158-.001.161.029.159.058.15.085.137.108.119.13.097.144.07.156.044.16.013.16-.017.155-.046.143-.074.127-.1.107-.12.07-.115.083-.164.003-.005.002-.004.082-.166.002-.005.003-.004.08-.167.002-.005.002-.004.078-.168.002-.005.002-.004.076-.169.002-.004.002-.005.074-.17.002-.004.002-.005.072-.17.002-.005.002-.005.07-.171.001-.005.002-.005.068-.172.002-.004.002-.005.065-.173.002-.005.002-.005.063-.173.002-.005.002-.005.06-.174.003-.005.001-.005.06-.175.001-.005.002-.005.057-.176.001-.005.002-.005.055-.177.001-.005.002-.005.052-.177.002-.005.001-.005.051-.178.001-.005.002-.005.048-.179.002-.005v-.005l.047-.179.001-.005.002-.005.044-.18v-.005l.002-.005.042-.18.001-.006.001-.005.04-.181.001-.005.001-.005.037-.182.002-.005v-.005l.036-.182v-.006l.002-.005.033-.182v-.006l.002-.005.03-.183.001-.005.001-.005.029-.184v-.005l.001-.006.027-.184v-.005l.001-.005.024-.185v-.005l.001-.005.022-.185v-.006l.001-.005.02-.185v-.006l.001-.005.017-.186v-.005l.001-.005.015-.187v-.005l.001-.005.013-.187v-.01l.01-.187.001-.006v-.005l.009-.187v-.011l.006-.187V16.7l.004-.188v-.011l.001-.188v-.01l-.001-.188v-.011l-.004-.188v-.011l-.006-.187v-.011l-.007-.145-.022-.16-.05-.152-.08-.141-.103-.124-.125-.102-.141-.077-.153-.05-.16-.02zm-30.21.572l-.161.001-.158.032-.15.06-.136.087-.117.11-.095.131-.068.146-.04.156-.012.133-.001.14v.01l.001.188v.011l.004.188v.011l.006.187v.011l.008.187v.011l.011.187v.005l.001.005.013.187v.01l.016.187v.01l.018.186v.011l.02.185.001.005v.006l.022.185.001.005v.005l.025.185v.005l.001.005.027.184v.006l.001.005.029.184v.005l.001.005.031.183.001.005.001.006.033.182.001.005.001.006.035.182.001.005.001.005.038.182v.005l.002.005.04.181v.005l.002.005.042.18.001.006.001.005.044.18.002.005v.005l.047.18.001.004.002.005.048.179.002.005.001.005.05.178.002.005.001.005.053.177.002.005.001.005.055.177.002.005.001.005.057.176.002.005.001.005.06.175.001.005.002.005.061.174.002.005.002.005.063.173.002.005.002.005.065.173.002.005.002.004.067.172.002.005.002.005.07.171.002.005.002.005.072.17.002.005.002.004.074.17.002.005.002.004.076.169.002.004.002.005.078.168.002.004.002.005.08.167.003.004.002.005.082.166.002.004.003.005.02.04.086.136.11.118.13.095.146.07.156.041.16.012.16-.019.155-.048.142-.075.126-.1.105-.123.08-.14.054-.152.024-.16-.006-.16-.036-.158-.051-.123-.018-.034-.078-.158-.074-.155-.074-.16-.071-.157-.07-.16-.068-.16-.067-.165-.062-.158-.062-.164-.059-.161-.058-.166-.056-.166-.053-.164-.052-.168-.05-.167-.048-.17-.045-.165-.043-.168-.043-.172-.039-.17-.037-.17-.036-.172-.033-.17-.03-.173-.03-.174-.027-.17-.025-.175-.022-.174-.021-.175-.018-.175-.017-.173-.014-.176-.012-.176-.01-.177-.007-.176-.006-.177-.003-.178-.001-.177v-.134l-.013-.16-.044-.156-.072-.144-.097-.129-.12-.108-.137-.085-.15-.057-.159-.028zm26.798 2.024l-.16.007-.157.038-.148.066-.132.092-.113.115-.09.134-.062.148-.03.127-.001.004-.023.134-.024.133-.026.133-.026.13-.03.132-.03.129-.032.134-.033.128-.035.13-.037.128-.038.13-.04.126-.04.128-.044.128-.044.126-.046.126-.048.126-.05.125-.05.125-.051.122-.054.123-.055.122-.056.12-.058.122-.06.12-.061.12-.063.119-.062.116-.067.119-.066.116-.069.115-.069.115-.07.113-.073.113-.074.112-.076.113-.077.112-.077.107-.08.11-.08.107-.085.11-.044.056-.088.135-.06.15-.033.158-.002.16.027.16.057.15.083.138.108.12.128.098.144.072.155.045.16.015.161-.016.155-.044.144-.073.128-.098.09-.099.05-.061.003-.004.003-.005.089-.115.003-.004.003-.005.088-.116.003-.004.003-.005.086-.117.003-.004.003-.005.084-.118.003-.004.003-.005.083-.12.003-.004.003-.004.081-.12.003-.005.003-.004.08-.121.003-.005.003-.004.078-.122.003-.005.003-.004.077-.123.002-.005.003-.004.075-.124.003-.005.003-.004.073-.125.003-.005.003-.004.072-.126.002-.004.003-.005.07-.126.003-.005.002-.005.07-.127.002-.004.002-.005.068-.128.002-.005.002-.004.066-.13.003-.004.002-.005.064-.13.002-.004.003-.005.062-.13.002-.005.003-.005.06-.13.003-.005.002-.005.06-.132.002-.005.002-.005.057-.132.003-.005.002-.005.056-.133.002-.005.002-.005.054-.134.002-.004.002-.005.053-.135.002-.005.002-.005.051-.135.002-.005.002-.005.05-.135.001-.005.002-.005.048-.137.001-.005.002-.005.046-.137.002-.005.002-.005.044-.137.002-.005.002-.005.042-.138.002-.005.001-.006.042-.138.001-.005.002-.005.04-.14v-.005l.002-.005.038-.14.001-.005.002-.005.036-.14.001-.005.001-.005.035-.141.001-.005.001-.005.033-.142.001-.005.001-.005.031-.141.001-.006.002-.005.029-.142v-.005l.002-.005.028-.143v-.005l.002-.005.025-.143.001-.006.001-.005.024-.143.001-.005.001-.006.001-.006.01-.161-.02-.16-.05-.154-.077-.141-.102-.125-.123-.104-.141-.079-.153-.051-.16-.022zM6.841 23.019l-.16.024-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.018.16.011.161.041.156.07.146.077.109.04.048.003.004.003.004.095.111.003.004.004.004.096.11.004.005.003.004.098.109.003.004.004.004.1.108.003.004.003.004.101.107.004.004.003.004.102.105.004.004.004.004.103.105.004.004.004.003.105.104.003.004.004.003.106.102.004.004.004.004.107.1.004.004.004.004.108.099.004.003.004.004.11.098.003.003.004.004.11.096.004.003.005.004.11.095.005.003.004.004.113.093.004.003.004.004.113.091.004.004.005.003.114.09.004.004.004.003.116.089.004.003.004.003.117.088.004.003.004.003.118.086.004.003.005.003.118.084.004.003.005.003.119.083.004.003.005.003.12.081.005.003.004.003.121.08.005.003.004.003.122.078.005.003.004.003.123.076.005.003.004.003.124.075.005.003.004.003.125.073.004.003.005.002.126.073.004.002.005.003.126.07.005.003.004.002.128.07.004.002.005.002.128.067.005.003.004.002.13.066.004.002.005.003.13.064.004.002.005.003.13.062.005.002.004.003.132.06.004.003.005.002.132.06.005.002.005.002.132.057.005.002.005.002.133.057.005.002.005.002.133.054.005.002.005.002.13.05.154.045.16.016.16-.015.156-.045.144-.072.128-.098.108-.12.083-.138.057-.15.028-.16-.003-.16-.032-.159-.061-.149-.088-.135-.11-.117-.132-.094-.12-.058-.124-.049-.126-.051-.122-.051-.122-.054-.12-.054-.126-.058-.119-.057-.12-.06-.12-.06-.118-.063-.117-.064-.119-.066-.116-.066-.115-.068-.115-.07-.113-.07-.115-.074-.112-.074-.11-.075-.11-.076-.112-.08-.11-.08-.109-.081-.106-.082-.104-.082-.106-.086-.105-.087-.101-.086-.105-.091-.1-.09-.1-.091-.1-.094-.097-.094-.1-.098-.093-.095-.096-.1-.093-.098-.092-.101-.089-.1-.09-.102-.088-.104-.036-.043-.114-.114-.133-.091-.148-.065-.157-.036-.161-.006zm15.063 2.701l-.16.014-.156.044-.12.057-.06.034-.12.066-.117.064-.118.062-.12.061-.12.06-.118.057-.126.058-.12.054-.122.054-.122.05-.126.052-.125.05-.124.046-.127.047-.125.044-.129.043-.126.04-.13.042-.128.038-.127.035-.13.036-.131.034-.129.031-.132.03-.13.03-.135.027-.133.026-.13.023-.13.022-.137.021-.132.02-.134.017-.132.015-.138.015-.135.013-.133.01-.138.01-.136.007-.134.006-.136.004-.14.003-.16.018-.155.047-.142.076-.127.1-.105.122-.08.14-.054.151-.025.16.006.16.035.158.064.148.09.134.114.114.133.092.147.065.157.036.134.008.145-.002h.011l.147-.005h.01l.147-.007h.011l.146-.009h.011l.146-.01h.005l.005-.001.146-.012h.011l.145-.014h.005l.006-.001.145-.016h.011l.144-.018h.006l.005-.001.144-.02h.011l.144-.021.005-.001h.006l.143-.023.006-.001h.005l.143-.025h.005l.006-.002.143-.026h.005l.005-.002.143-.027.005-.001.005-.001.142-.03h.005l.005-.002.142-.03.005-.002.005-.001.142-.033.005-.001.005-.001.14-.035.006-.001.005-.001.14-.037h.005l.005-.002.14-.038.005-.002h.005l.14-.04.005-.002.005-.001.138-.042.005-.001.006-.002.138-.043.005-.001.005-.002.137-.044.005-.002.005-.002.137-.046.005-.002.005-.001.137-.048.005-.002.005-.002.135-.05.005-.001.005-.002.135-.051.005-.002.005-.002.135-.053.005-.002.004-.002.134-.054.005-.002.005-.002.133-.057.005-.002.005-.002.132-.057.005-.003.005-.002.132-.06.005-.001.004-.002.131-.061.005-.003.005-.002.13-.062.005-.003.005-.002.13-.064.004-.003.005-.002.128-.066.005-.002.005-.003.128-.067.005-.002.004-.003.127-.069.005-.002.005-.003.126-.07.005-.003.004-.003.065-.037.132-.093.112-.115.089-.135.062-.149.034-.157.003-.161-.026-.16-.055-.15-.082-.14-.107-.12-.127-.1-.144-.073-.154-.046-.16-.016zM6.33 27.127l-.16.023-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.02.16.012.161.041.156.07.146.094.13.096.093.032.026.004.003.004.004.145.117.004.003.004.004.146.115.005.003.004.004.147.113.005.003.004.004.149.111.004.003.004.003.15.11.005.003.004.003.151.108.004.003.005.003.152.106.005.003.004.003.154.104.004.003.005.003.154.102.005.002.004.003.156.1.005.003.004.003.157.098.005.003.004.002.159.096.004.003.005.003.16.094.004.003.004.002.16.092.005.003.005.002.161.09.005.003.005.002.162.088.005.003.004.002.164.086.005.003.004.002.165.084.005.003.004.002.166.082.004.002.005.003.167.08.004.002.005.002.168.078.004.002.005.002.168.076.005.002.005.002.17.074.004.002.005.002.17.072.005.002.005.002.17.07.006.002.005.001.171.068.005.002.005.002.173.065.005.002.005.002.173.063.005.002.005.002.174.06.005.003.005.001.175.06.005.001.005.002.176.057.005.001.005.002.176.055.006.001.005.002.177.052.005.002.005.001.178.05.005.002.005.002.178.048.006.001.005.002.179.046.005.001.005.002.18.044h.005l.005.002.18.042.006.001.005.001.159.035.16.02.16-.01.157-.04.146-.069.13-.094.112-.117.087-.136.06-.149.033-.158.002-.161-.028-.159-.057-.15-.084-.138-.108-.12-.128-.098-.144-.072-.128-.039-.154-.033-.168-.04-.171-.041-.17-.044-.168-.046-.167-.047-.168-.05-.165-.051-.166-.054-.166-.056-.163-.057-.165-.06-.161-.062-.164-.064-.16-.065-.16-.068-.162-.07-.157-.07-.157-.074-.157-.075-.156-.077-.153-.079-.156-.082-.153-.082-.154-.086-.15-.086-.152-.09-.148-.09-.147-.092-.149-.095-.145-.095-.144-.098-.145-.1-.143-.102-.14-.103-.14-.104-.14-.108-.139-.11-.136-.11-.027-.022-.133-.091-.148-.065-.157-.036-.161-.006zm19.215.087l-.16.01-.157.039-.146.067-.11.076-.064.051-.139.11-.14.108-.14.104-.14.103-.143.101-.145.101-.144.098-.145.095-.149.095-.148.093-.147.089-.152.09-.15.086-.154.086-.153.082-.156.082-.153.079-.156.077-.157.075-.158.073-.157.071-.16.07-.16.068-.161.065-.164.064-.161.061-.165.06-.163.058-.166.056-.166.054-.166.051-.167.05-.167.047-.17.046-.168.044-.171.042-.168.039-.17.037-.11.023-.154.047-.143.075-.126.1-.106.122-.081.139-.054.152-.025.16.006.16.035.158.063.148.09.133.114.115.132.092.148.065.157.037.16.007.133-.016.115-.024.005-.001.005-.001.181-.04h.005l.005-.002.18-.042.006-.001.005-.001.18-.044.005-.002.005-.001.18-.046.004-.002h.005l.179-.05h.005l.005-.002.178-.05.005-.002.005-.002.177-.052.005-.002.005-.001.177-.055.005-.002.005-.001.176-.057.005-.002.005-.002.175-.059.005-.001.005-.002.174-.061.005-.002.005-.002.173-.063.005-.002.005-.002.173-.065.004-.002.005-.002.172-.068.005-.002.005-.002.171-.07.005-.001.005-.002.17-.072.005-.002.004-.002.17-.074.005-.002.004-.002.169-.076.004-.002.005-.002.168-.078.004-.002.005-.003.167-.08.004-.002.005-.002.166-.082.004-.002.005-.003.165-.084.004-.002.005-.003.163-.086.005-.002.005-.003.162-.088.005-.002.005-.003.161-.09.005-.002.004-.003.16-.092.005-.003.005-.002.16-.094.004-.003.004-.003.158-.096.005-.002.004-.003.158-.098.004-.003.005-.003.156-.1.004-.003.004-.003.155-.101.005-.003.004-.003.154-.104.004-.003.004-.003.153-.106.004-.003.005-.003.151-.108.004-.003.005-.003.15-.11.004-.003.004-.003.149-.112.004-.003.004-.003.148-.113.004-.004.004-.003.147-.115.004-.004.004-.003.068-.055.116-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.05-.153-.08-.14-.103-.125-.124-.102-.142-.077-.153-.05-.16-.02z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.012 9.222c-1.673 4.657-2.735 9.508-4.409 14.164 1.536-1.526 2.874-3.236 4.41-4.762l4.408 4.762c-1.497-4.712-2.911-9.451-4.409-14.164zm.032 2.93c.823 2.588 1.599 5.19 2.421 7.777l-2.42-2.614c-.683.598-2.454 2.886-2.34 2.39.871-2.489 1.448-5.07 2.34-7.552zM16.012.312c-1.448.02-2.93.157-4.302.628-.852.447-.255 1.863.66 1.574 2.255-.608 4.648-.607 6.922-.108.934.075 1.228-1.376.338-1.67C18.451.44 17.227.317 16.012.311zm9.012 2.934c-.913-.104-1.272 1.258-.454 1.648 1.834 1.36 3.293 3.185 4.31 5.22.526.776 1.842.098 1.515-.78a15.522 15.522 0 00-5.06-6.006c-.1-.044-.203-.07-.31-.082zM6.65 3.59c-.762.089-1.24.809-1.805 1.267C3.38 6.295 2.163 8.007 1.37 9.905c-.266.898 1.094 1.484 1.564.675a14.825 14.825 0 014.327-5.56c.476-.515.09-1.419-.612-1.431zm9.362.007c-.698.066-1.689-.16-2.033.635-.282.733.535 1.358 1.217 1.125 1.806-.147 3.63.203 5.293.907.902.255 1.472-1.112.656-1.573-1.6-.735-3.374-1.089-5.133-1.094zm-5.479 1.365c-.835.15-1.517.76-2.21 1.226-1.203.94-2.318 2.061-3.057 3.402-.33.904 1.063 1.552 1.547.723 1.045-1.656 2.596-2.925 4.285-3.873.545-.499.171-1.463-.565-1.478zm13.903 2.115c-.875-.07-1.22 1.173-.501 1.627 1.325 1.34 2.188 3.062 2.748 4.84.468.84 1.869.21 1.557-.699-.604-2.118-1.751-4.097-3.351-5.615a.93.93 0 00-.453-.153zM4.467 13.132c-.822-.07-.996.826-1.046 1.455-.256 1.93-.094 3.933.562 5.769.406.844 1.807.365 1.612-.551a11.498 11.498 0 01-.334-5.808.874.874 0 00-.794-.865zm26.687 1.6c-.746-.037-1.014.785-.879 1.395.043 2.393-.57 4.771-1.66 6.894-.31.884 1.02 1.536 1.53.75a15.632 15.632 0 001.821-8.372.876.876 0 00-.812-.667zm-30.197.571c-.782-.073-1.044.775-.933 1.404.068 2.414.661 4.833 1.809 6.962.534.77 1.842.076 1.505-.798a14.833 14.833 0 01-1.603-6.861.876.876 0 00-.778-.707zm26.787 2.024c-.777-.048-.952.797-1.021 1.392-.354 1.692-1.202 3.231-2.216 4.608-.407.872.925 1.638 1.48.852 1.361-1.733 2.296-3.827 2.582-6.017a.874.874 0 00-.825-.835zM6.857 23.012c-.808.018-1.082 1.122-.47 1.59 1.393 1.607 3.187 2.886 5.194 3.599.91.222 1.43-1.165.598-1.596a11.495 11.495 0 01-4.723-3.396.899.899 0 00-.599-.197zm15.057 2.7c-.81.194-1.504.76-2.325.972-1.203.458-2.5.536-3.758.664-.869.307-.573 1.728.346 1.663 2.201-.034 4.412-.626 6.293-1.778.604-.495.227-1.532-.556-1.521zM6.346 27.118c-.833.008-1.11 1.218-.395 1.617 1.986 1.602 4.358 2.749 6.868 3.226.933.076 1.227-1.376.338-1.67a14.838 14.838 0 01-6.345-3.066.929.929 0 00-.466-.107zm19.208.087c-.766.09-1.241.841-1.922 1.158-1.516.991-3.251 1.58-4.996 2.005-.872.405-.346 1.849.584 1.604 2.543-.526 4.98-1.66 6.963-3.344.47-.52.072-1.42-.63-1.423z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M8.742 10.464v11.072h14.516V10.464H8.742zm3.224 1.73h8.066a69569 69569 0 00-4.034 3.22l-4.032-3.22zm9.565 1.018v6.594H10.469v-6.593L16 17.63l5.532-4.419zM16 0h-.005l-.188.001h-.011l-.188.004h-.011l-.187.006h-.011l-.187.008h-.005L15.2.02l-.187.01h-.005l-.005.001-.187.013h-.011L14.62.06h-.01l-.186.018h-.011l-.185.02-.005.001h-.006l-.185.022-.005.001h-.005l-.185.025h-.005l-.005.001-.185.027h-.005l-.005.001-.184.029h-.005l-.005.001-.183.031-.006.001-.005.001-.182.033-.006.001-.005.001-.182.035-.005.001-.005.001-.182.038h-.005l-.005.002-.181.04h-.005l-.005.002-.18.042-.006.001-.005.001-.18.044-.005.002h-.005l-.17.045-.152.054-.139.082-.121.106-.1.127-.074.143-.046.155-.017.16.013.16.043.156.07.145.097.13.119.108.137.085.15.058.159.03.16-.001.133-.023.165-.043.168-.041.171-.04.171-.037.172-.036.17-.033.173-.03.17-.03.177-.027.171-.025.175-.022.175-.02.175-.02.176-.016.175-.014.177-.012.176-.01.177-.007.174-.006.177-.003L16 1.73h.177l.178.004.174.006.177.007.176.01.177.012.175.014.176.017.175.018.175.02.175.023.171.025.176.027.17.03.174.03.17.033.171.036.154.033.16.02.161-.01.156-.04.146-.069.131-.094.111-.117.087-.135.061-.15.032-.158.002-.16-.027-.16-.057-.15L20 .714l-.108-.12-.128-.097-.145-.073-.128-.038-.158-.035-.005-.001-.005-.001L19.14.31h-.005l-.005-.002-.182-.035h-.006l-.005-.002-.182-.033h-.006l-.005-.002-.183-.03-.005-.001-.006-.001-.183-.029h-.005l-.006-.001-.184-.027h-.005l-.005-.001-.185-.024h-.005L17.968.12 17.783.1l-.006-.001h-.005l-.185-.02h-.006l-.005-.001L17.39.06h-.005L17.38.06l-.187-.015h-.005l-.005-.001-.187-.013h-.011L16.8.02h-.011L16.6.01h-.011l-.187-.006h-.011L16.204 0h-.011L16.005 0H16zm9.015 2.935l-.16.004-.158.033-.15.062-.134.09-.116.111-.093.132-.067.147-.038.156-.01.161.022.16.05.153.078.141.103.124.102.087.045.034.142.106.137.105.14.11.136.11.135.112.134.115.134.117.13.115.132.122.128.12.127.122.126.125.124.126.124.128.121.13.118.128.118.132.117.133.113.134.113.136.11.136.109.137.109.142.104.14.103.14.101.142.1.144.099.146.095.145.094.147.093.15.092.15.087.149.087.15.084.152.084.155.08.152.08.155.04.081.084.138.11.119.128.096.145.072.155.043.16.013.16-.016.155-.046.144-.074.127-.099.106-.12.083-.14.055-.151.026-.16-.004-.16-.034-.158-.05-.124-.042-.085-.002-.004-.003-.005-.084-.165-.002-.004-.003-.005-.086-.164-.002-.004-.003-.005-.088-.162-.002-.005-.003-.005-.09-.161-.002-.005-.003-.004-.092-.16-.003-.005-.002-.005-.094-.16-.003-.004-.003-.004-.096-.159-.002-.004-.003-.005-.098-.157-.003-.004-.003-.005-.1-.156-.003-.004-.003-.005-.101-.154-.003-.005-.003-.004-.104-.154-.003-.004-.003-.005-.106-.152-.003-.005-.003-.004-.108-.151-.003-.004-.003-.005-.11-.15-.003-.004-.003-.004-.111-.15-.004-.003-.003-.005-.113-.147-.004-.004-.003-.005-.115-.146-.004-.004-.003-.004-.117-.145-.004-.004-.003-.004-.12-.144-.003-.004-.003-.004-.121-.142-.004-.004-.003-.004-.123-.141-.003-.004-.004-.004-.125-.14-.003-.004-.004-.004-.127-.138-.003-.004-.004-.004-.128-.136-.004-.004-.004-.004-.13-.135-.004-.004-.004-.004-.132-.134-.003-.004-.004-.003-.134-.133-.004-.003-.004-.004-.135-.13-.004-.004-.004-.004-.136-.128-.004-.004-.004-.004-.138-.126-.004-.004-.004-.003-.14-.125-.004-.004-.004-.003-.14-.123-.005-.004-.004-.003-.142-.121-.004-.004-.004-.003-.144-.12-.004-.003-.004-.003-.145-.117-.004-.004-.004-.003-.147-.115-.004-.004-.004-.003-.148-.113-.004-.003-.004-.004-.149-.111-.004-.003-.004-.004-.05-.036-.14-.083-.15-.055-.16-.027zM6.634 3.28l-.161.008-.157.037-.147.066-.111.074-.04.032-.005.003-.004.004-.145.117-.004.003-.004.004-.144.119-.004.003-.004.004-.142.12-.004.004-.004.004-.141.123-.004.003-.004.004-.14.125-.004.003-.004.004-.138.126-.004.004-.004.004-.136.128-.004.004-.004.004-.135.13-.004.004-.004.003-.134.133-.004.003-.004.004-.132.134-.003.004-.004.004-.13.135-.004.004-.004.004-.128.136-.004.004-.004.004-.126.138-.004.004-.003.004-.125.14-.004.004-.003.004-.123.14-.004.005-.003.004-.121.142-.004.004-.003.004-.12.144-.003.004-.003.004-.117.145-.004.004-.003.004-.115.146-.004.005-.003.004-.113.147-.003.005-.004.004-.111.149-.003.004-.004.004-.11.15-.002.005-.003.004-.108.151-.003.004-.003.005-.106.152-.003.005-.003.004-.104.154-.003.004-.003.005-.102.154-.003.005-.002.004-.1.156-.003.005-.003.004-.098.157-.003.005-.003.004-.096.159-.002.004-.003.005-.094.16-.003.004-.002.004-.092.16-.003.005-.003.005-.09.161-.002.005-.003.005-.088.162-.002.005-.003.004-.086.164-.002.005-.002.004-.084.165-.003.005-.002.004-.082.166-.002.004-.003.005-.08.167-.002.004-.002.005-.078.168-.002.004-.002.005-.045.1-.053.153-.023.16.007.16.037.157.065.148.092.132.114.114.134.09.148.064.157.035.161.006.16-.025.152-.054.14-.08.121-.106.1-.126.065-.118.043-.095.074-.16.075-.155.077-.157.08-.155.08-.152.083-.155.085-.152.086-.15.088-.149.091-.15.094-.15.094-.147.095-.145.099-.146.1-.144.1-.142.104-.14.104-.14.11-.142.107-.137.11-.136.114-.136.113-.134.117-.133.118-.132.117-.129.122-.13.124-.127.123-.126.127-.125.127-.122.128-.12.132-.122.13-.115.133-.117.135-.115.135-.111.136-.11.037-.03.117-.11.094-.132.068-.146.04-.156.01-.161-.02-.16-.05-.154-.076-.141-.102-.125-.123-.104-.14-.08-.153-.051-.16-.023zM16 3.286h-.005l-.148.001h-.01l-.147.003h-.011l-.147.005h-.011l-.146.007h-.011l-.146.009h-.011l-.146.01h-.005l-.005.001-.146.012h-.011l-.145.014h-.006l-.005.001-.05.006-.158.031-.15.06-.135.088-.117.111-.094.13-.069.147-.04.156-.01.16.019.16.049.154.076.142.102.125.123.105.14.08.152.051.16.023.134-.003.045-.005.135-.013.133-.01.136-.01.135-.007.137-.006.136-.004.136-.003h.274l.136.003.136.004.136.006.136.007.136.01.133.01.135.013.135.014.135.016.134.018.132.018.134.021.133.023.133.024.133.025.13.027.132.03.132.03.129.031.13.034.129.035.129.036.13.04.126.038.128.042.126.042.128.045.127.047.126.047.12.048.127.051.123.052.006.002.147.048.16.021.16-.009.157-.038.147-.067.131-.093.112-.116.089-.135.062-.149.033-.158.004-.16-.027-.16-.055-.151-.083-.139-.107-.12-.127-.099-.118-.063-.004-.001-.005-.003-.005-.002-.133-.056-.005-.002-.005-.002-.134-.054-.004-.002-.005-.002-.135-.053-.005-.002-.005-.002-.135-.051-.005-.002-.005-.002-.135-.05-.005-.001-.005-.002-.137-.048-.005-.001-.005-.002-.137-.046-.005-.002-.005-.002-.137-.044-.005-.002-.005-.001-.138-.043-.006-.002-.005-.001-.138-.042-.005-.001-.005-.002-.14-.04H19.4l-.005-.002-.14-.038-.005-.001-.005-.002-.14-.036-.005-.001-.005-.001-.141-.035-.005-.001-.005-.001-.142-.033-.005-.001-.005-.001-.142-.031-.005-.002h-.005l-.142-.03-.005-.001-.005-.001-.143-.028h-.005l-.005-.002-.143-.025-.006-.001-.005-.001-.143-.024-.005-.001-.006-.001-.143-.022-.006-.001h-.005l-.144-.022h-.005l-.006-.001-.144-.019h-.005l-.006-.001-.144-.017h-.006l-.005-.001-.145-.016h-.011l-.145-.014H17.1l-.005-.001-.146-.012h-.01l-.146-.01-.006-.001h-.005l-.146-.009h-.011l-.147-.006h-.01l-.147-.005h-.011l-.147-.003h-.011l-.147-.001H16zm-5.482 1.366l-.16.008-.157.037-.123.053-.06.032-.005.002-.004.003-.128.069-.004.002-.005.003-.126.07-.005.003-.004.002-.126.072-.005.003-.004.003-.125.073-.004.003-.005.003-.124.075-.004.003-.005.002-.123.077-.004.003-.005.003-.122.078-.004.003-.005.003-.121.08-.004.002-.005.003-.12.082-.005.003-.004.003-.12.083-.004.003-.004.003-.118.084-.005.003-.004.003-.118.086-.004.003-.004.003-.117.088-.004.003-.004.003-.116.089-.004.003-.004.004-.114.09-.005.003-.004.003-.113.092-.004.004-.004.003-.113.093-.004.004-.004.003-.111.095-.005.003-.004.004-.11.096-.004.004-.004.003-.11.098-.003.003-.004.004-.108.1-.004.003-.004.003-.107.101-.004.004-.004.003-.106.102-.004.004-.003.004-.105.103-.004.004-.004.004-.103.105-.004.004-.004.003-.102.106-.003.004-.004.004-.1.107-.004.004-.004.004-.099.108-.004.004-.003.004-.098.11-.003.003-.004.004-.096.11-.004.005-.003.004-.095.111-.003.004-.004.004-.093.113-.003.004-.004.004-.092.113-.003.004-.003.005-.09.114-.004.004-.003.004-.089.116-.003.004-.003.004-.088.117-.003.004-.003.004-.086.118-.003.004-.003.005-.084.118-.003.004-.003.005-.083.12-.003.003-.003.005-.082.12-.003.005-.002.004-.068.103-.076.142-.048.154-.018.16.011.161.041.156.07.146.095.13.117.11.136.086.15.06.158.03.162.002.158-.03.15-.057.138-.085.119-.109.082-.105.065-.099.075-.11.077-.113.077-.107.08-.11.08-.108.084-.108.083-.105.086-.106.086-.104.088-.104.089-.101.09-.102.093-.101.093-.099.094-.097.095-.096.098-.097.098-.095.099-.093.1-.092.103-.091.101-.089.104-.088.104-.086.106-.086.106-.083.106-.082.109-.082.108-.079.11-.078.11-.076.112-.076.112-.074.113-.072.113-.071.115-.07.115-.068.118-.067.117-.065.12-.065.054-.029.135-.088.116-.111.094-.132.068-.146.04-.156.009-.161-.02-.16-.05-.153-.078-.142-.102-.125-.123-.103-.141-.079-.153-.051-.16-.022zm13.91 2.116l-.162.008-.157.037-.147.066-.132.092-.113.116-.09.134-.063.148-.034.157-.005.162.025.159.055.152.082.138.086.103.09.09.094.098.092.099.093.1.091.103.089.101.088.104.086.104.086.106.083.105.083.108.08.108.081.11.077.107.077.112.075.111.075.114.072.113.071.113.07.114.068.118.067.115.065.118.064.117.062.117.061.121.059.119.059.122.056.121.054.12.055.125.051.123.051.125.048.123.048.127.047.126.044.125.043.128.042.129.039.126.038.13.022.076.058.15.085.137.11.119.129.096.145.07.155.043.16.013.161-.017.154-.046.144-.075.126-.1.106-.12.082-.14.055-.151.025-.16-.005-.16-.026-.132-.023-.082-.002-.005-.001-.005-.042-.139-.001-.005-.002-.005-.043-.138-.001-.005-.002-.005-.044-.137-.002-.005-.002-.005-.046-.137-.002-.005-.001-.005-.048-.137-.002-.005-.002-.005-.05-.135-.001-.005-.002-.005-.051-.135-.002-.005-.002-.005-.053-.135-.002-.005-.002-.005-.054-.133-.002-.005-.002-.005-.057-.133-.002-.005-.002-.005-.057-.132-.003-.005-.002-.005-.06-.132-.001-.005-.002-.004-.061-.132-.003-.004-.002-.005-.063-.13-.002-.005-.002-.005-.064-.13-.003-.004-.002-.005-.066-.129-.002-.004-.003-.005-.067-.128-.002-.005-.003-.004-.069-.128-.002-.004-.003-.005-.07-.126-.003-.005-.003-.004-.072-.126-.002-.005-.003-.004-.074-.125-.002-.004-.003-.005-.075-.124-.003-.004-.003-.005-.076-.123-.003-.004-.003-.005-.078-.122-.003-.004-.003-.005-.08-.121-.003-.004-.003-.005-.081-.12-.003-.005-.003-.004-.083-.12-.003-.004-.003-.004-.084-.118-.003-.005-.003-.004-.086-.118-.003-.004-.004-.004-.087-.117-.003-.004-.003-.004-.09-.116-.002-.004-.004-.004-.09-.114-.003-.005-.004-.004-.091-.113-.004-.004-.003-.004-.094-.113-.003-.004-.003-.004-.095-.111-.004-.004-.003-.004-.096-.11-.004-.005-.003-.004-.098-.11-.004-.003-.003-.004-.1-.108-.003-.004-.004-.004-.1-.107-.004-.004-.004-.004-.102-.106-.003-.003-.004-.004-.093-.095-.124-.103-.14-.08-.153-.05-.16-.023zM4.45 12.826l-.161.002-.158.032-.15.06-.135.088-.118.11-.094.131-.069.146-.035.129-.026.132v.005l-.002.005-.025.143-.001.005-.001.006-.024.143-.001.005-.001.006-.022.143-.001.006-.001.005-.02.144-.001.005-.001.005-.019.145v.005l-.001.006-.017.144v.006l-.001.005-.016.145v.011l-.014.145v.005l-.001.006-.012.146v.01l-.01.146-.001.006v.005l-.009.146v.011l-.007.146v.011l-.004.147v.011l-.003.147v.01l-.002.148v.01l.001.148v.01l.003.147v.011l.005.147v.01l.007.147v.011l.009.146v.011l.01.146v.01l.013.146v.011l.014.145v.005l.001.006.016.145v.011l.018.144v.006l.001.005.019.144v.006l.001.005.021.144v.005l.002.006.022.143v.006l.002.005.024.143v.005l.002.006.025.143.001.005.001.005.028.143.001.005.001.005.03.142v.005l.002.006.03.141.002.005.001.005.033.142v.005l.002.005.035.14v.006l.002.005.036.14.002.005.001.005.038.14.001.005.002.005.04.14v.005l.002.005.042.138.001.006.002.005.042.138.002.005.002.005.017.054.064.148.09.134.114.114.132.092.148.065.157.037.16.007.16-.023.153-.052.14-.08.123-.104.102-.125.076-.142.049-.153.02-.16-.011-.161-.031-.13-.017-.051-.039-.126-.038-.13-.037-.128-.035-.13-.033-.128-.033-.134-.03-.13-.029-.131-.026-.13-.026-.133-.024-.133-.023-.133-.02-.132-.02-.136-.017-.132-.016-.135-.014-.135-.012-.133-.012-.138-.009-.133-.007-.136-.006-.138-.004-.134-.003-.136v-.274l.003-.136.004-.134.006-.139.007-.136.01-.133.01-.138.013-.132.014-.135.016-.135.017-.132.02-.137.02-.13.023-.134.024-.133.024-.126.016-.16-.014-.161-.044-.155-.072-.145-.098-.128-.12-.108-.137-.084-.15-.057-.16-.029zm26.698 1.601l-.161.01-.157.04-.146.067-.131.093-.112.117-.088.135-.061.149-.033.157-.005.134.006.14.006.176.003.177.001.178-.001.177-.003.178-.006.177-.007.176-.01.177-.012.176-.015.176-.016.173-.018.175-.02.175-.024.174-.025.175-.026.17-.03.174-.03.173-.033.17-.036.172-.037.17-.04.17-.042.172-.043.168-.045.166-.048.169-.05.167-.052.168-.053.164-.056.166-.058.166-.06.16-.062.165-.062.158-.066.165-.068.16-.07.16-.07.158-.075.159-.074.155-.079.158-.08.158-.06.15-.03.158-.001.161.029.159.058.15.085.137.108.119.13.097.144.07.156.044.16.013.16-.017.155-.046.143-.074.127-.1.107-.12.07-.115.083-.164.003-.005.002-.004.082-.166.002-.005.003-.004.08-.167.002-.005.002-.004.078-.168.002-.005.002-.004.076-.169.002-.004.002-.005.074-.17.002-.004.002-.005.072-.17.002-.005.002-.005.07-.171.001-.005.002-.005.068-.172.002-.004.002-.005.065-.173.002-.005.002-.005.063-.173.002-.005.002-.005.06-.174.003-.005.001-.005.06-.175.001-.005.002-.005.057-.176.001-.005.002-.005.055-.177.001-.005.002-.005.052-.177.002-.005.001-.005.051-.178.001-.005.002-.005.048-.179.002-.005v-.005l.047-.179.001-.005.002-.005.044-.18v-.005l.002-.005.042-.18.001-.006.001-.005.04-.181.001-.005.001-.005.037-.182.002-.005v-.005l.036-.182v-.006l.002-.005.033-.182v-.006l.002-.005.03-.183.001-.005.001-.005.029-.184v-.005l.001-.006.027-.184v-.005l.001-.005.024-.185v-.005l.001-.005.022-.185v-.006l.001-.005.02-.185v-.006l.001-.005.017-.186v-.005l.001-.005.015-.187v-.005l.001-.005.013-.187v-.01l.01-.187.001-.006v-.005l.009-.187v-.011l.006-.187v-.011l.004-.188v-.011l.001-.188v-.01l-.001-.188v-.011l-.004-.188v-.011l-.006-.187v-.011l-.007-.145-.022-.16-.05-.152-.08-.141-.103-.124-.125-.102-.141-.077-.153-.05-.16-.02zM.938 15L.777 15l-.158.032-.15.06-.136.087-.117.11-.095.131-.068.146-.04.156-.012.133-.001.14v.01l.001.188v.011l.004.188v.011l.006.187v.011l.008.187v.011l.011.187v.005l.001.005.013.187v.01l.016.187v.01l.018.186v.011l.02.185.001.005v.006l.022.185.001.005v.005l.025.185v.005l.001.005.027.184v.006l.001.005.029.184v.005l.001.005.031.183.001.005.001.006.033.182.001.005.001.006.035.182.001.005.001.005.038.182v.005l.002.005.04.181v.005l.002.005.042.18.001.006.001.005.044.18.002.005v.005l.047.18.001.004.002.005.048.179.002.005.001.005.05.178.002.005.001.005.053.177.002.005.001.005.055.177.002.005.001.005.057.176.002.005.001.005.06.175.001.005.002.005.061.174.002.005.002.005.063.173.002.005.002.005.065.173.002.005.002.004.067.172.002.005.002.005.07.171.002.005.002.005.072.17.002.005.002.004.074.17.002.005.002.004.076.169.002.004.002.005.078.168.002.004.002.005.08.167.003.004.002.005.082.166.002.004.003.005.02.04.086.136.11.118.13.095.146.07.156.041.16.012.16-.019.155-.048.142-.075.126-.1.105-.123.08-.14.054-.152.024-.16-.006-.16-.036-.158-.051-.123-.018-.034-.078-.158L3.1 22.1l-.074-.16-.071-.157-.07-.16-.068-.16-.067-.165-.062-.158-.062-.164-.059-.161-.058-.166-.056-.166-.053-.164-.052-.168-.05-.167-.048-.17-.045-.165-.043-.168-.043-.172-.039-.17-.037-.17-.036-.172-.033-.17-.03-.173-.03-.174-.027-.17-.025-.175-.022-.174-.021-.175-.018-.175-.017-.173-.014-.176-.012-.176-.01-.177-.007-.176-.006-.177-.003-.178L1.73 16v-.134l-.013-.16-.044-.156-.072-.144-.097-.129-.12-.108-.137-.085-.15-.057L.938 15zm26.798 2.024l-.16.007-.157.038-.148.066-.132.092-.113.115-.09.134-.062.148-.03.127-.001.004-.023.134-.024.133-.026.133-.026.13-.03.132-.03.129-.032.134-.033.128-.035.13-.037.128-.038.13-.04.126-.04.128-.044.128-.044.126-.046.126-.048.126-.05.125-.05.125-.051.122-.054.123-.055.122-.056.12-.058.122-.06.12-.061.12-.063.119-.062.116-.067.119-.066.116-.069.115-.069.115-.07.113-.073.113-.074.112-.076.113-.077.112-.077.107-.08.11-.08.107-.085.11-.044.056-.088.135-.06.15-.033.158-.002.16.027.16.057.15.083.138.108.12.128.098.144.072.155.045.16.015.161-.016.155-.044.144-.073.128-.098.09-.099.05-.061.003-.004.003-.005.089-.115.003-.004.003-.005.088-.116.003-.004.003-.005.086-.117.003-.004.003-.005.084-.118.003-.004.003-.005.083-.12.003-.004.003-.004.081-.12.003-.005.003-.004.08-.121.003-.005.003-.004.078-.122.003-.005.003-.004.077-.123.002-.005.003-.004.075-.124.003-.005.003-.004.073-.125.003-.005.003-.004.072-.126.002-.004.003-.005.07-.126.003-.005.002-.005.07-.127.002-.004.002-.005.068-.128.002-.005.002-.004.066-.13.003-.004.002-.005.064-.13.002-.004.003-.005.062-.13.002-.005.003-.005.06-.13.003-.005.002-.005.06-.132.002-.005.002-.005.057-.132.003-.005.002-.005.056-.133.002-.005.002-.005.054-.134.002-.004.002-.005.053-.135.002-.005.002-.005.051-.135.002-.005.002-.005.05-.135.001-.005.002-.005.048-.137.001-.005.002-.005.046-.137.002-.005.002-.005.044-.137.002-.005.002-.005.042-.138.002-.005.001-.006.042-.138.001-.005.002-.005.04-.14V19.4l.002-.005.038-.14.001-.005.002-.005.036-.14.001-.005.001-.005.035-.141.001-.005.001-.005.033-.142.001-.005.001-.005.031-.141.001-.006.002-.005.029-.142v-.005l.002-.005.028-.143v-.005l.002-.005.025-.143.001-.006.001-.005.024-.143.001-.005.001-.006.001-.006.01-.161-.02-.16-.05-.154-.077-.141-.102-.125-.123-.104-.141-.079-.153-.051-.16-.022zM6.841 22.71l-.16.024-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.018.16.011.161.041.156.07.146.077.109.04.048.003.004.003.004.095.111.003.004.004.004.096.11.004.005.003.004.098.109.003.004.004.004.1.108.003.004.003.004.101.107.004.004.003.004.102.105.004.004.004.004.103.105.004.004.004.003.105.104.003.004.004.003.106.102.004.004.004.004.107.1.004.004.004.004.108.099.004.003.004.004.11.098.003.003.004.004.11.096.004.003.005.004.11.095.005.003.004.004.113.093.004.003.004.004.113.091.004.004.005.003.114.09.004.004.004.003.116.089.004.003.004.003.117.088.004.003.004.003.118.086.004.003.005.003.118.084.004.003.005.003.119.083.004.003.005.003.12.081.005.003.004.003.121.08.005.003.004.003.122.078.005.003.004.003.123.076.005.003.004.003.124.075.005.003.004.003.125.073.004.003.005.002.126.073.004.002.005.003.126.07.005.003.004.002.128.07.004.002.005.002.128.067.005.003.004.002.13.066.004.002.005.003.13.064.004.002.005.003.13.062.005.002.004.003.132.06.004.003.005.002.132.06.005.002.005.002.132.057.005.002.005.002.133.057.005.002.005.002.133.054.005.002.005.002.13.05.154.045.16.016.16-.015.156-.045.144-.072.128-.098.108-.12.083-.138.057-.15.028-.16-.003-.16-.032-.159-.061-.149-.088-.135-.11-.117-.132-.094-.12-.058-.124-.049-.126-.051-.122-.051-.122-.054-.12-.054-.126-.058-.119-.057-.12-.06-.12-.06-.118-.063-.117-.064-.119-.066-.116-.066-.115-.068-.115-.07-.113-.07-.115-.074-.112-.074-.11-.075-.11-.076-.112-.08-.11-.08-.109-.081-.106-.082-.104-.082-.106-.086-.105-.087-.101-.086-.105-.091-.1-.09-.1-.091-.1-.094-.097-.094-.1-.098-.093-.095-.096-.1-.093-.098-.092-.101-.089-.1-.09-.102-.088-.104-.036-.043-.114-.114-.133-.091-.148-.065-.157-.036-.161-.006zm15.063 2.701l-.16.014-.156.044-.12.057-.06.034-.12.066-.117.064-.118.062-.12.061-.12.06-.118.057-.126.058-.12.054-.122.054-.122.05-.126.052-.125.05-.124.046-.127.047-.125.044-.129.043-.126.04-.13.042-.128.038-.127.035-.13.036-.131.034-.129.031-.132.03-.13.03-.135.027-.133.026-.13.023-.13.022-.137.021-.132.02-.134.017-.132.015-.138.015-.135.013-.133.01-.138.01-.136.007-.134.006-.136.004-.14.003-.16.018-.155.047-.142.076-.127.1-.105.122-.08.14-.054.151-.025.16.006.16.035.158.064.148.09.134.114.114.133.092.147.065.157.036.134.008.145-.002h.011l.147-.005h.01l.147-.007h.011l.146-.009h.011l.146-.01h.005l.005-.001.146-.012h.011l.145-.014h.005l.006-.001.145-.016h.011l.144-.018h.006l.005-.001.144-.02h.011l.144-.021.005-.001h.006l.143-.023.006-.001h.005l.143-.025h.005l.006-.002.143-.026h.005l.005-.002.143-.027.005-.001.005-.001.142-.03h.005l.005-.002.142-.03.005-.002.005-.001.142-.033.005-.001.005-.001.14-.035.006-.001.005-.001.14-.037h.005l.005-.002.14-.038.005-.002h.005l.14-.04.005-.002.005-.001.138-.042.005-.001.006-.002.138-.043.005-.001.005-.002.137-.044.005-.002.005-.002.137-.046.005-.002.005-.001.137-.048.005-.002.005-.002.135-.05.005-.001.005-.002.135-.051.005-.002.005-.002.135-.053.005-.002.004-.002.134-.054.005-.002.005-.002.133-.057.005-.002.005-.002.132-.057.005-.003.005-.002.132-.06.005-.001.004-.002.131-.061.005-.003.005-.002.13-.062.005-.003.005-.002.13-.064.004-.003.005-.002.128-.066.005-.002.005-.003.128-.067.005-.002.004-.003.127-.069.005-.002.005-.003.126-.07.005-.003.004-.003.065-.037.132-.093.112-.115.089-.135.062-.149.034-.157.003-.161-.026-.16-.055-.15-.082-.14-.107-.12-.127-.1-.144-.073-.154-.046-.16-.016zM6.33 26.818l-.16.023-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.02.16.012.161.041.156.07.146.094.13.096.093.032.026.004.003.004.004.145.117.004.003.004.004.146.115.005.003.004.004.147.113.005.003.004.004.149.111.004.003.004.003.15.11.005.003.004.003.151.108.004.003.005.003.152.106.005.003.004.003.154.104.004.003.005.003.154.102.005.002.004.003.156.1.005.003.004.003.157.098.005.003.004.002.159.096.004.003.005.003.16.094.004.003.004.002.16.092.005.003.005.002.161.09.005.003.005.002.162.088.005.003.004.002.164.086.005.003.004.002.165.084.005.003.004.002.166.082.004.002.005.003.167.08.004.002.005.002.168.078.004.002.005.002.168.076.005.002.005.002.17.074.004.002.005.002.17.072.005.002.005.002.17.07.006.002.005.001.171.068.005.002.005.002.173.065.005.002.005.002.173.063.005.002.005.002.174.06.005.003.005.001.175.06.005.001.005.002.176.057.005.001.005.002.176.055.006.001.005.002.177.052.005.002.005.001.178.05.005.002.005.002.178.048.006.001.005.002.179.046.005.001.005.002.18.044h.005l.005.002.18.042.006.001.005.001.159.035.16.02.16-.01.157-.04.146-.069.13-.094.112-.117.087-.136.06-.149.033-.158.002-.161-.028-.159-.057-.15-.084-.138-.108-.12-.128-.098-.144-.072-.128-.039-.154-.033-.168-.04-.171-.041-.17-.044-.168-.046-.167-.047-.168-.05-.165-.051-.166-.054-.166-.056-.163-.057-.165-.06-.161-.062-.164-.064-.16-.065-.16-.068-.162-.07-.157-.07-.157-.074-.157-.075-.156-.077-.153-.079-.156-.082-.153-.082-.154-.086-.15-.086-.152-.09-.148-.09-.147-.092-.149-.095-.145-.095-.144-.098-.145-.1-.143-.102-.14-.103-.14-.104-.14-.108-.139-.11-.136-.11-.027-.022-.133-.091-.148-.065-.157-.036-.161-.006zm19.215.087l-.16.01-.157.039-.146.067-.11.076-.064.051-.139.11-.14.108-.14.104-.14.103-.143.101-.145.101-.144.098-.145.095-.149.095-.148.093-.147.089-.152.09-.15.086-.154.086-.153.082-.156.082-.153.079-.156.077-.157.075-.158.073-.157.071-.16.07-.16.068-.161.065-.164.064-.161.061-.165.06-.163.058-.166.056-.166.054-.166.051-.167.05-.167.047-.17.046-.168.044-.171.042-.168.039-.17.037-.11.023-.154.047-.143.075-.126.1-.106.122-.081.139-.054.152-.025.16.006.16.035.158.063.148.09.133.114.115.132.092.148.065.157.037.16.007.133-.016.115-.024.005-.001.005-.001.181-.04h.005l.005-.002.18-.042.006-.001.005-.001.18-.044.005-.002.005-.001.18-.046.004-.002h.005l.179-.05h.005l.005-.002.178-.05.005-.002.005-.002.177-.052.005-.002.005-.001.177-.055.005-.002.005-.001.176-.057.005-.002.005-.002.175-.059.005-.001.005-.002.174-.061.005-.002.005-.002.173-.063.005-.002.005-.002.173-.065.004-.002.005-.002.172-.068.005-.002.005-.002.171-.07.005-.001.005-.002.17-.072.005-.002.004-.002.17-.074.005-.002.004-.002.169-.076.004-.002.005-.002.168-.078.004-.002.005-.003.167-.08.004-.002.005-.002.166-.082.004-.002.005-.003.165-.084.004-.002.005-.003.163-.086.005-.002.005-.003.162-.088.005-.002.005-.003.161-.09.005-.002.004-.003.16-.092.005-.003.005-.002.16-.094.004-.003.004-.003.158-.096.005-.002.004-.003.158-.098.004-.003.005-.003.156-.1.004-.003.004-.003.155-.101.005-.003.004-.003.154-.104.004-.003.004-.003.153-.106.004-.003.005-.003.151-.108.004-.003.005-.003.15-.11.004-.003.004-.003.149-.112.004-.003.004-.003.148-.113.004-.004.004-.003.147-.115.004-.004.004-.003.068-.055.116-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.05-.153-.08-.14-.103-.125-.124-.102-.142-.077-.153-.05-.16-.02z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M23.637 13.902l-7.625-5.535-7.624 5.535 2.912 8.956h9.425l2.912-8.956zm-1.017.33l-2.524 7.762H11.93l-2.524-7.762 6.607-4.796 6.608 4.796zM16.012.311c-1.448.02-2.93.157-4.302.628-.852.447-.255 1.863.66 1.574 2.255-.608 4.648-.607 6.922-.108.934.075 1.228-1.376.338-1.67C18.451.44 17.227.317 16.012.311zm9.012 2.934c-.913-.104-1.272 1.258-.454 1.648 1.834 1.36 3.293 3.185 4.31 5.22.526.776 1.842.098 1.515-.78a15.522 15.522 0 00-5.06-6.006c-.1-.044-.203-.07-.31-.082zM6.65 3.59c-.762.089-1.24.809-1.805 1.267C3.38 6.295 2.163 8.007 1.37 9.905c-.266.898 1.094 1.484 1.564.675a14.825 14.825 0 014.327-5.56c.476-.515.09-1.419-.612-1.431zm9.362.007c-.698.066-1.689-.16-2.033.635-.282.733.535 1.358 1.217 1.125 1.806-.147 3.63.203 5.293.907.902.255 1.472-1.112.656-1.573-1.6-.735-3.374-1.089-5.133-1.094zm-5.479 1.365c-.835.15-1.517.76-2.21 1.226-1.203.94-2.318 2.061-3.057 3.402-.33.904 1.063 1.552 1.547.723 1.045-1.656 2.596-2.925 4.285-3.873.545-.499.171-1.463-.565-1.478zm13.903 2.115c-.875-.07-1.22 1.173-.501 1.627 1.325 1.34 2.188 3.062 2.748 4.84.468.84 1.869.21 1.557-.699-.604-2.118-1.751-4.097-3.351-5.615a.93.93 0 00-.453-.153zM4.467 13.132c-.822-.07-.996.826-1.046 1.455-.256 1.93-.094 3.933.562 5.769.406.844 1.807.365 1.612-.551a11.498 11.498 0 01-.334-5.808.874.874 0 00-.794-.865zm26.687 1.6c-.746-.037-1.014.785-.879 1.395.043 2.393-.57 4.771-1.66 6.894-.31.884 1.02 1.536 1.53.75a15.632 15.632 0 001.821-8.372.876.876 0 00-.812-.667zm-30.197.571c-.782-.073-1.044.775-.933 1.404.068 2.414.661 4.833 1.809 6.962.534.77 1.842.076 1.505-.798a14.833 14.833 0 01-1.603-6.861.876.876 0 00-.778-.707zm26.787 2.024c-.777-.048-.952.797-1.021 1.392-.354 1.692-1.202 3.231-2.216 4.608-.407.872.925 1.638 1.48.852 1.361-1.733 2.296-3.827 2.582-6.017a.874.874 0 00-.825-.835zM6.857 23.012c-.808.018-1.082 1.122-.47 1.59 1.393 1.607 3.187 2.886 5.194 3.599.91.222 1.43-1.165.598-1.596a11.495 11.495 0 01-4.723-3.396.899.899 0 00-.599-.197zm15.057 2.7c-.81.194-1.504.76-2.325.972-1.203.458-2.5.536-3.758.664-.869.307-.573 1.728.346 1.663 2.201-.034 4.412-.626 6.293-1.778.604-.495.227-1.532-.556-1.521zM6.346 27.118c-.833.008-1.11 1.218-.395 1.617 1.986 1.602 4.358 2.749 6.868 3.226.933.076 1.227-1.376.338-1.67a14.838 14.838 0 01-6.345-3.066.929.929 0 00-.466-.107zm19.208.087c-.766.09-1.241.841-1.922 1.158-1.516.991-3.251 1.58-4.996 2.005-.872.405-.346 1.849.584 1.604 2.543-.526 4.98-1.66 6.963-3.344.47-.52.072-1.42-.63-1.423z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M13.51 9.081v4.428H9.08v4.982h4.428v4.428h4.982V18.49h4.428v-4.982H18.49V9.081h-4.982zm.83.83h3.32v4.428h4.429v3.322H17.66v4.428h-3.32v-4.454H9.91v-3.296h4.428V9.911zM16 0h-.005l-.188.001h-.011l-.188.004h-.011l-.187.006h-.011l-.187.008h-.005L15.2.02l-.187.01h-.005l-.005.001-.187.013h-.011L14.62.06h-.01l-.186.018h-.011l-.185.02-.005.001h-.006l-.185.022-.005.001h-.005l-.185.025h-.005l-.005.001-.185.027h-.005l-.005.001-.184.029h-.005l-.005.001-.183.031-.006.001-.005.001-.182.033-.006.001-.005.001-.182.035-.005.001-.005.001-.182.038h-.005l-.005.002-.181.04h-.005l-.005.002-.18.042-.006.001-.005.001-.18.044-.005.002h-.005l-.17.045-.152.054-.139.082-.121.106-.1.127-.074.143-.046.155-.017.16.013.16.043.156.07.145.097.13.119.108.137.085.15.058.159.03.16-.001.133-.023.165-.043.168-.041.171-.04.171-.037.172-.036.17-.033.173-.03.17-.03.177-.027.171-.025.175-.022.175-.02.175-.02.176-.016.175-.014.177-.012.176-.01.177-.007.174-.006.177-.003L16 1.73h.177l.178.004.174.006.177.007.176.01.177.012.175.014.176.017.175.018.175.02.175.023.171.025.176.027.17.03.174.03.17.033.171.036.154.033.16.02.161-.01.156-.04.146-.069.131-.094.111-.117.087-.135.061-.15.032-.158.002-.16-.027-.16-.057-.15L20 .714l-.108-.12-.128-.097-.145-.073-.128-.038-.158-.035-.005-.001-.005-.001L19.14.31h-.005l-.005-.002-.182-.035h-.006l-.005-.002-.182-.033h-.006l-.005-.002-.183-.03-.005-.001-.006-.001-.183-.029h-.005l-.006-.001-.184-.027h-.005l-.005-.001-.185-.024h-.005L17.968.12 17.783.1l-.006-.001h-.005l-.185-.02h-.006l-.005-.001L17.39.06h-.005L17.38.06l-.187-.015h-.005l-.005-.001-.187-.013h-.011L16.8.02h-.011L16.6.01h-.011l-.187-.006h-.011L16.204 0h-.011L16.005 0H16zm9.015 2.935l-.16.004-.158.033-.15.062-.134.09-.116.111-.093.132-.067.147-.038.156-.01.161.022.16.05.153.078.141.103.124.102.087.045.034.142.106.137.105.14.11.136.11.135.112.134.115.134.117.13.115.132.122.128.12.127.122.126.125.124.126.124.128.121.13.118.128.118.132.117.133.113.134.113.136.11.136.109.137.109.142.104.14.103.14.101.142.1.144.099.146.095.145.094.147.093.15.092.15.087.149.087.15.084.152.084.155.08.152.08.155.04.081.084.138.11.119.128.096.145.072.155.043.16.013.16-.016.155-.046.144-.074.127-.099.106-.12.083-.14.055-.151.026-.16-.004-.16-.034-.158-.05-.124-.042-.085-.002-.004-.003-.005-.084-.165-.002-.004-.003-.005-.086-.164-.002-.004-.003-.005-.088-.162-.002-.005-.003-.005-.09-.161-.002-.005-.003-.004-.092-.16-.003-.005-.002-.005-.094-.16-.003-.004-.003-.004-.096-.159-.002-.004-.003-.005-.098-.157-.003-.004-.003-.005-.1-.156-.003-.004-.003-.005-.101-.154-.003-.005-.003-.004-.104-.154-.003-.004-.003-.005-.106-.152-.003-.005-.003-.004-.108-.151-.003-.004-.003-.005-.11-.15-.003-.004-.003-.004-.111-.15-.004-.003-.003-.005-.113-.147-.004-.004-.003-.005-.115-.146-.004-.004-.003-.004-.117-.145-.004-.004-.003-.004-.12-.144-.003-.004-.003-.004-.121-.142-.004-.004-.003-.004-.123-.141-.003-.004-.004-.004-.125-.14-.003-.004-.004-.004-.127-.138-.003-.004-.004-.004-.128-.136-.004-.004-.004-.004-.13-.135-.004-.004-.004-.004-.132-.134-.003-.004-.004-.003-.134-.133-.004-.003-.004-.004-.135-.13-.004-.004-.004-.004-.136-.128-.004-.004-.004-.004-.138-.126-.004-.004-.004-.003-.14-.125-.004-.004-.004-.003-.14-.123-.005-.004-.004-.003-.142-.121-.004-.004-.004-.003-.144-.12-.004-.003-.004-.003-.145-.117-.004-.004-.004-.003-.147-.115-.004-.004-.004-.003-.148-.113-.004-.003-.004-.004-.149-.111-.004-.003-.004-.004-.05-.036-.14-.083-.15-.055-.16-.027zM6.634 3.28l-.161.008-.157.037-.147.066-.111.074-.04.032-.005.003-.004.004-.145.117-.004.003-.004.004-.144.119-.004.003-.004.004-.142.12-.004.004-.004.004-.141.123-.004.003-.004.004-.14.125-.004.003-.004.004-.138.126-.004.004-.004.004-.136.128-.004.004-.004.004-.135.13-.004.004-.004.003-.134.133-.004.003-.004.004-.132.134-.003.004-.004.004-.13.135-.004.004-.004.004-.128.136-.004.004-.004.004-.126.138-.004.004-.003.004-.125.14-.004.004-.003.004-.123.14-.004.005-.003.004-.121.142-.004.004-.003.004-.12.144-.003.004-.003.004-.117.145-.004.004-.003.004-.115.146-.004.005-.003.004-.113.147-.003.005-.004.004-.111.149-.003.004-.004.004-.11.15-.002.005-.003.004-.108.151-.003.004-.003.005-.106.152-.003.005-.003.004-.104.154-.003.004-.003.005-.102.154-.003.005-.002.004-.1.156-.003.005-.003.004-.098.157-.003.005-.003.004-.096.159-.002.004-.003.005-.094.16-.003.004-.002.004-.092.16-.003.005-.003.005-.09.161-.002.005-.003.005-.088.162-.002.005-.003.004-.086.164-.002.005-.002.004-.084.165-.003.005-.002.004-.082.166-.002.004-.003.005-.08.167-.002.004-.002.005-.078.168-.002.004-.002.005-.045.1-.053.153-.023.16.007.16.037.157.065.148.092.132.114.114.134.09.148.064.157.035.161.006.16-.025.152-.054.14-.08.121-.106.1-.126.065-.118.043-.095.074-.16.075-.155.077-.157.08-.155.08-.152.083-.155.085-.152.086-.15.088-.149.091-.15.094-.15.094-.147.095-.145.099-.146.1-.144.1-.142.104-.14.104-.14.11-.142.107-.137.11-.136.114-.136.113-.134.117-.133.118-.132.117-.129.122-.13.124-.127.123-.126.127-.125.127-.122.128-.12.132-.122.13-.115.133-.117.135-.115.135-.111.136-.11.037-.03.117-.11.094-.132.068-.146.04-.156.01-.161-.02-.16-.05-.154-.076-.141-.102-.125-.123-.104-.14-.08-.153-.051-.16-.023zM16 3.286h-.005l-.148.001h-.01l-.147.003h-.011l-.147.005h-.011l-.146.007h-.011l-.146.009h-.011l-.146.01h-.005l-.005.001-.146.012h-.011l-.145.014h-.006l-.005.001-.05.006-.158.031-.15.06-.135.088-.117.111-.094.13-.069.147-.04.156-.01.16.019.16.049.154.076.142.102.125.123.105.14.08.152.051.16.023.134-.003.045-.005.135-.013.133-.01.136-.01.135-.007.137-.006.136-.004.136-.003h.274l.136.003.136.004.136.006.136.007.136.01.133.01.135.013.135.014.135.016.134.018.132.018.134.021.133.023.133.024.133.025.13.027.132.03.132.03.129.031.13.034.129.035.129.036.13.04.126.038.128.042.126.042.128.045.127.047.126.047.12.048.127.051.123.052.006.002.147.048.16.021.16-.009.157-.038.147-.067.131-.093.112-.116.089-.135.062-.149.033-.158.004-.16-.027-.16-.055-.151-.083-.139-.107-.12-.127-.099-.118-.063-.004-.001-.005-.003-.005-.002-.133-.056-.005-.002-.005-.002-.134-.054-.004-.002-.005-.002-.135-.053-.005-.002-.005-.002-.135-.051-.005-.002-.005-.002-.135-.05-.005-.001-.005-.002-.137-.048-.005-.001-.005-.002-.137-.046-.005-.002-.005-.002-.137-.044-.005-.002-.005-.001-.138-.043-.006-.002-.005-.001-.138-.042-.005-.001-.005-.002-.14-.04H19.4l-.005-.002-.14-.038-.005-.001-.005-.002-.14-.036-.005-.001-.005-.001-.141-.035-.005-.001-.005-.001-.142-.033-.005-.001-.005-.001-.142-.031-.005-.002h-.005l-.142-.03-.005-.001-.005-.001-.143-.028h-.005l-.005-.002-.143-.025-.006-.001-.005-.001-.143-.024-.005-.001-.006-.001-.143-.022-.006-.001h-.005l-.144-.022h-.005l-.006-.001-.144-.019h-.005l-.006-.001-.144-.017h-.006l-.005-.001-.145-.016h-.011l-.145-.014H17.1l-.005-.001-.146-.012h-.01l-.146-.01-.006-.001h-.005l-.146-.009h-.011l-.147-.006h-.01l-.147-.005h-.011l-.147-.003h-.011l-.147-.001H16zm-5.482 1.366l-.16.008-.157.037-.123.053-.06.032-.005.002-.004.003-.128.069-.004.002-.005.003-.126.07-.005.003-.004.002-.126.072-.005.003-.004.003-.125.073-.004.003-.005.003-.124.075-.004.003-.005.002-.123.077-.004.003-.005.003-.122.078-.004.003-.005.003-.121.08-.004.002-.005.003-.12.082-.005.003-.004.003-.12.083-.004.003-.004.003-.118.084-.005.003-.004.003-.118.086-.004.003-.004.003-.117.088-.004.003-.004.003-.116.089-.004.003-.004.004-.114.09-.005.003-.004.003-.113.092-.004.004-.004.003-.113.093-.004.004-.004.003-.111.095-.005.003-.004.004-.11.096-.004.004-.004.003-.11.098-.003.003-.004.004-.108.1-.004.003-.004.003-.107.101-.004.004-.004.003-.106.102-.004.004-.003.004-.105.103-.004.004-.004.004-.103.105-.004.004-.004.003-.102.106-.003.004-.004.004-.1.107-.004.004-.004.004-.099.108-.004.004-.003.004-.098.11-.003.003-.004.004-.096.11-.004.005-.003.004-.095.111-.003.004-.004.004-.093.113-.003.004-.004.004-.092.113-.003.004-.003.005-.09.114-.004.004-.003.004-.089.116-.003.004-.003.004-.088.117-.003.004-.003.004-.086.118-.003.004-.003.005-.084.118-.003.004-.003.005-.083.12-.003.003-.003.005-.082.12-.003.005-.002.004-.068.103-.076.142-.048.154-.018.16.011.161.041.156.07.146.095.13.117.11.136.086.15.06.158.03.162.002.158-.03.15-.057.138-.085.119-.109.082-.105.065-.099.075-.11.077-.113.077-.107.08-.11.08-.108.084-.108.083-.105.086-.106.086-.104.088-.104.089-.101.09-.102.093-.101.093-.099.094-.097.095-.096.098-.097.098-.095.099-.093.1-.092.103-.091.101-.089.104-.088.104-.086.106-.086.106-.083.106-.082.109-.082.108-.079.11-.078.11-.076.112-.076.112-.074.113-.072.113-.071.115-.07.115-.068.118-.067.117-.065.12-.065.054-.029.135-.088.116-.111.094-.132.068-.146.04-.156.009-.161-.02-.16-.05-.153-.078-.142-.102-.125-.123-.103-.141-.079-.153-.051-.16-.022zm13.91 2.116l-.162.008-.157.037-.147.066-.132.092-.113.116-.09.134-.063.148-.034.157-.005.162.025.159.055.152.082.138.086.103.09.09.094.098.092.099.093.1.091.103.089.101.088.104.086.104.086.106.083.105.083.108.08.108.081.11.077.107.077.112.075.111.075.114.072.113.071.113.07.114.068.118.067.115.065.118.064.117.062.117.061.121.059.119.059.122.056.121.054.12.055.125.051.123.051.125.048.123.048.127.047.126.044.125.043.128.042.129.039.126.038.13.022.076.058.15.085.137.11.119.129.096.145.07.155.043.16.013.161-.017.154-.046.144-.075.126-.1.106-.12.082-.14.055-.151.025-.16-.005-.16-.026-.132-.023-.082-.002-.005-.001-.005-.042-.139-.001-.005-.002-.005-.043-.138-.001-.005-.002-.005-.044-.137-.002-.005-.002-.005-.046-.137-.002-.005-.001-.005-.048-.137-.002-.005-.002-.005-.05-.135-.001-.005-.002-.005-.051-.135-.002-.005-.002-.005-.053-.135-.002-.005-.002-.005-.054-.133-.002-.005-.002-.005-.057-.133-.002-.005-.002-.005-.057-.132-.003-.005-.002-.005-.06-.132-.001-.005-.002-.004-.061-.132-.003-.004-.002-.005-.063-.13-.002-.005-.002-.005-.064-.13-.003-.004-.002-.005-.066-.129-.002-.004-.003-.005-.067-.128-.002-.005-.003-.004-.069-.128-.002-.004-.003-.005-.07-.126-.003-.005-.003-.004-.072-.126-.002-.005-.003-.004-.074-.125-.002-.004-.003-.005-.075-.124-.003-.004-.003-.005-.076-.123-.003-.004-.003-.005-.078-.122-.003-.004-.003-.005-.08-.121-.003-.004-.003-.005-.081-.12-.003-.005-.003-.004-.083-.12-.003-.004-.003-.004-.084-.118-.003-.005-.003-.004-.086-.118-.003-.004-.004-.004-.087-.117-.003-.004-.003-.004-.09-.116-.002-.004-.004-.004-.09-.114-.003-.005-.004-.004-.091-.113-.004-.004-.003-.004-.094-.113-.003-.004-.003-.004-.095-.111-.004-.004-.003-.004-.096-.11-.004-.005-.003-.004-.098-.11-.004-.003-.003-.004-.1-.108-.003-.004-.004-.004-.1-.107-.004-.004-.004-.004-.102-.106-.003-.003-.004-.004-.093-.095-.124-.103-.14-.08-.153-.05-.16-.023zM4.45 12.826l-.161.002-.158.032-.15.06-.135.088-.118.11-.094.131-.069.146-.035.129-.026.132v.005l-.002.005-.025.143-.001.005-.001.006-.024.143-.001.005-.001.006-.022.143-.001.006-.001.005-.02.144-.001.005-.001.005-.019.145v.005l-.001.006-.017.144v.006l-.001.005-.016.145v.011l-.014.145v.005l-.001.006-.012.146v.01l-.01.146-.001.006v.005l-.009.146v.011l-.007.146v.011l-.004.147v.011l-.003.147v.01l-.002.148v.01l.001.148v.01l.003.147v.011l.005.147v.01l.007.147v.011l.009.146v.011l.01.146v.01l.013.146v.011l.014.145v.005l.001.006.016.145v.011l.018.144v.006l.001.005.019.144v.006l.001.005.021.144v.005l.002.006.022.143v.006l.002.005.024.143v.005l.002.006.025.143.001.005.001.005.028.143.001.005.001.005.03.142v.005l.002.006.03.141.002.005.001.005.033.142v.005l.002.005.035.14v.006l.002.005.036.14.002.005.001.005.038.14.001.005.002.005.04.14v.005l.002.005.042.138.001.006.002.005.042.138.002.005.002.005.017.054.064.148.09.134.114.114.132.092.148.065.157.037.16.007.16-.023.153-.052.14-.08.123-.104.102-.125.076-.142.049-.153.02-.16-.011-.161-.031-.13-.017-.051-.039-.126-.038-.13-.037-.128-.035-.13-.033-.128-.033-.134-.03-.13-.029-.131-.026-.13-.026-.133-.024-.133-.023-.133-.02-.132-.02-.136-.017-.132-.016-.135-.014-.135-.012-.133-.012-.138-.009-.133-.007-.136-.006-.138-.004-.134-.003-.136v-.274l.003-.136.004-.134.006-.139.007-.136.01-.133.01-.138.013-.132.014-.135.016-.135.017-.132.02-.137.02-.13.023-.134.024-.133.024-.126.016-.16-.014-.161-.044-.155-.072-.145-.098-.128-.12-.108-.137-.084-.15-.057-.16-.029zm26.698 1.601l-.161.01-.157.04-.146.067-.131.093-.112.117-.088.135-.061.149-.033.157-.005.134.006.14.006.176.003.177.001.178-.001.177-.003.178-.006.177-.007.176-.01.177-.012.176-.015.176-.016.173-.018.175-.02.175-.024.174-.025.175-.026.17-.03.174-.03.173-.033.17-.036.172-.037.17-.04.17-.042.172-.043.168-.045.166-.048.169-.05.167-.052.168-.053.164-.056.166-.058.166-.06.16-.062.165-.062.158-.066.165-.068.16-.07.16-.07.158-.075.159-.074.155-.079.158-.08.158-.06.15-.03.158-.001.161.029.159.058.15.085.137.108.119.13.097.144.07.156.044.16.013.16-.017.155-.046.143-.074.127-.1.107-.12.07-.115.083-.164.003-.005.002-.004.082-.166.002-.005.003-.004.08-.167.002-.005.002-.004.078-.168.002-.005.002-.004.076-.169.002-.004.002-.005.074-.17.002-.004.002-.005.072-.17.002-.005.002-.005.07-.171.001-.005.002-.005.068-.172.002-.004.002-.005.065-.173.002-.005.002-.005.063-.173.002-.005.002-.005.06-.174.003-.005.001-.005.06-.175.001-.005.002-.005.057-.176.001-.005.002-.005.055-.177.001-.005.002-.005.052-.177.002-.005.001-.005.051-.178.001-.005.002-.005.048-.179.002-.005v-.005l.047-.179.001-.005.002-.005.044-.18v-.005l.002-.005.042-.18.001-.006.001-.005.04-.181.001-.005.001-.005.037-.182.002-.005v-.005l.036-.182v-.006l.002-.005.033-.182v-.006l.002-.005.03-.183.001-.005.001-.005.029-.184v-.005l.001-.006.027-.184v-.005l.001-.005.024-.185v-.005l.001-.005.022-.185v-.006l.001-.005.02-.185v-.006l.001-.005.017-.186v-.005l.001-.005.015-.187v-.005l.001-.005.013-.187v-.01l.01-.187.001-.006v-.005l.009-.187v-.011l.006-.187v-.011l.004-.188v-.011l.001-.188v-.01l-.001-.188v-.011l-.004-.188v-.011l-.006-.187v-.011l-.007-.145-.022-.16-.05-.152-.08-.141-.103-.124-.125-.102-.141-.077-.153-.05-.16-.02zM.938 15L.777 15l-.158.032-.15.06-.136.087-.117.11-.095.131-.068.146-.04.156-.012.133-.001.14v.01l.001.188v.011l.004.188v.011l.006.187v.011l.008.187v.011l.011.187v.005l.001.005.013.187v.01l.016.187v.01l.018.186v.011l.02.185.001.005v.006l.022.185.001.005v.005l.025.185v.005l.001.005.027.184v.006l.001.005.029.184v.005l.001.005.031.183.001.005.001.006.033.182.001.005.001.006.035.182.001.005.001.005.038.182v.005l.002.005.04.181v.005l.002.005.042.18.001.006.001.005.044.18.002.005v.005l.047.18.001.004.002.005.048.179.002.005.001.005.05.178.002.005.001.005.053.177.002.005.001.005.055.177.002.005.001.005.057.176.002.005.001.005.06.175.001.005.002.005.061.174.002.005.002.005.063.173.002.005.002.005.065.173.002.005.002.004.067.172.002.005.002.005.07.171.002.005.002.005.072.17.002.005.002.004.074.17.002.005.002.004.076.169.002.004.002.005.078.168.002.004.002.005.08.167.003.004.002.005.082.166.002.004.003.005.02.04.086.136.11.118.13.095.146.07.156.041.16.012.16-.019.155-.048.142-.075.126-.1.105-.123.08-.14.054-.152.024-.16-.006-.16-.036-.158-.051-.123-.018-.034-.078-.158L3.1 22.1l-.074-.16-.071-.157-.07-.16-.068-.16-.067-.165-.062-.158-.062-.164-.059-.161-.058-.166-.056-.166-.053-.164-.052-.168-.05-.167-.048-.17-.045-.165-.043-.168-.043-.172-.039-.17-.037-.17-.036-.172-.033-.17-.03-.173-.03-.174-.027-.17-.025-.175-.022-.174-.021-.175-.018-.175-.017-.173-.014-.176-.012-.176-.01-.177-.007-.176-.006-.177-.003-.178L1.73 16v-.134l-.013-.16-.044-.156-.072-.144-.097-.129-.12-.108-.137-.085-.15-.057L.938 15zm26.798 2.024l-.16.007-.157.038-.148.066-.132.092-.113.115-.09.134-.062.148-.03.127-.001.004-.023.134-.024.133-.026.133-.026.13-.03.132-.03.129-.032.134-.033.128-.035.13-.037.128-.038.13-.04.126-.04.128-.044.128-.044.126-.046.126-.048.126-.05.125-.05.125-.051.122-.054.123-.055.122-.056.12-.058.122-.06.12-.061.12-.063.119-.062.116-.067.119-.066.116-.069.115-.069.115-.07.113-.073.113-.074.112-.076.113-.077.112-.077.107-.08.11-.08.107-.085.11-.044.056-.088.135-.06.15-.033.158-.002.16.027.16.057.15.083.138.108.12.128.098.144.072.155.045.16.015.161-.016.155-.044.144-.073.128-.098.09-.099.05-.061.003-.004.003-.005.089-.115.003-.004.003-.005.088-.116.003-.004.003-.005.086-.117.003-.004.003-.005.084-.118.003-.004.003-.005.083-.12.003-.004.003-.004.081-.12.003-.005.003-.004.08-.121.003-.005.003-.004.078-.122.003-.005.003-.004.077-.123.002-.005.003-.004.075-.124.003-.005.003-.004.073-.125.003-.005.003-.004.072-.126.002-.004.003-.005.07-.126.003-.005.002-.005.07-.127.002-.004.002-.005.068-.128.002-.005.002-.004.066-.13.003-.004.002-.005.064-.13.002-.004.003-.005.062-.13.002-.005.003-.005.06-.13.003-.005.002-.005.06-.132.002-.005.002-.005.057-.132.003-.005.002-.005.056-.133.002-.005.002-.005.054-.134.002-.004.002-.005.053-.135.002-.005.002-.005.051-.135.002-.005.002-.005.05-.135.001-.005.002-.005.048-.137.001-.005.002-.005.046-.137.002-.005.002-.005.044-.137.002-.005.002-.005.042-.138.002-.005.001-.006.042-.138.001-.005.002-.005.04-.14V19.4l.002-.005.038-.14.001-.005.002-.005.036-.14.001-.005.001-.005.035-.141.001-.005.001-.005.033-.142.001-.005.001-.005.031-.141.001-.006.002-.005.029-.142v-.005l.002-.005.028-.143v-.005l.002-.005.025-.143.001-.006.001-.005.024-.143.001-.005.001-.006.001-.006.01-.161-.02-.16-.05-.154-.077-.141-.102-.125-.123-.104-.141-.079-.153-.051-.16-.022zM6.841 22.71l-.16.024-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.018.16.011.161.041.156.07.146.077.109.04.048.003.004.003.004.095.111.003.004.004.004.096.11.004.005.003.004.098.109.003.004.004.004.1.108.003.004.003.004.101.107.004.004.003.004.102.105.004.004.004.004.103.105.004.004.004.003.105.104.003.004.004.003.106.102.004.004.004.004.107.1.004.004.004.004.108.099.004.003.004.004.11.098.003.003.004.004.11.096.004.003.005.004.11.095.005.003.004.004.113.093.004.003.004.004.113.091.004.004.005.003.114.09.004.004.004.003.116.089.004.003.004.003.117.088.004.003.004.003.118.086.004.003.005.003.118.084.004.003.005.003.119.083.004.003.005.003.12.081.005.003.004.003.121.08.005.003.004.003.122.078.005.003.004.003.123.076.005.003.004.003.124.075.005.003.004.003.125.073.004.003.005.002.126.073.004.002.005.003.126.07.005.003.004.002.128.07.004.002.005.002.128.067.005.003.004.002.13.066.004.002.005.003.13.064.004.002.005.003.13.062.005.002.004.003.132.06.004.003.005.002.132.06.005.002.005.002.132.057.005.002.005.002.133.057.005.002.005.002.133.054.005.002.005.002.13.05.154.045.16.016.16-.015.156-.045.144-.072.128-.098.108-.12.083-.138.057-.15.028-.16-.003-.16-.032-.159-.061-.149-.088-.135-.11-.117-.132-.094-.12-.058-.124-.049-.126-.051-.122-.051-.122-.054-.12-.054-.126-.058-.119-.057-.12-.06-.12-.06-.118-.063-.117-.064-.119-.066-.116-.066-.115-.068-.115-.07-.113-.07-.115-.074-.112-.074-.11-.075-.11-.076-.112-.08-.11-.08-.109-.081-.106-.082-.104-.082-.106-.086-.105-.087-.101-.086-.105-.091-.1-.09-.1-.091-.1-.094-.097-.094-.1-.098-.093-.095-.096-.1-.093-.098-.092-.101-.089-.1-.09-.102-.088-.104-.036-.043-.114-.114-.133-.091-.148-.065-.157-.036-.161-.006zm15.063 2.701l-.16.014-.156.044-.12.057-.06.034-.12.066-.117.064-.118.062-.12.061-.12.06-.118.057-.126.058-.12.054-.122.054-.122.05-.126.052-.125.05-.124.046-.127.047-.125.044-.129.043-.126.04-.13.042-.128.038-.127.035-.13.036-.131.034-.129.031-.132.03-.13.03-.135.027-.133.026-.13.023-.13.022-.137.021-.132.02-.134.017-.132.015-.138.015-.135.013-.133.01-.138.01-.136.007-.134.006-.136.004-.14.003-.16.018-.155.047-.142.076-.127.1-.105.122-.08.14-.054.151-.025.16.006.16.035.158.064.148.09.134.114.114.133.092.147.065.157.036.134.008.145-.002h.011l.147-.005h.01l.147-.007h.011l.146-.009h.011l.146-.01h.005l.005-.001.146-.012h.011l.145-.014h.005l.006-.001.145-.016h.011l.144-.018h.006l.005-.001.144-.02h.011l.144-.021.005-.001h.006l.143-.023.006-.001h.005l.143-.025h.005l.006-.002.143-.026h.005l.005-.002.143-.027.005-.001.005-.001.142-.03h.005l.005-.002.142-.03.005-.002.005-.001.142-.033.005-.001.005-.001.14-.035.006-.001.005-.001.14-.037h.005l.005-.002.14-.038.005-.002h.005l.14-.04.005-.002.005-.001.138-.042.005-.001.006-.002.138-.043.005-.001.005-.002.137-.044.005-.002.005-.002.137-.046.005-.002.005-.001.137-.048.005-.002.005-.002.135-.05.005-.001.005-.002.135-.051.005-.002.005-.002.135-.053.005-.002.004-.002.134-.054.005-.002.005-.002.133-.057.005-.002.005-.002.132-.057.005-.003.005-.002.132-.06.005-.001.004-.002.131-.061.005-.003.005-.002.13-.062.005-.003.005-.002.13-.064.004-.003.005-.002.128-.066.005-.002.005-.003.128-.067.005-.002.004-.003.127-.069.005-.002.005-.003.126-.07.005-.003.004-.003.065-.037.132-.093.112-.115.089-.135.062-.149.034-.157.003-.161-.026-.16-.055-.15-.082-.14-.107-.12-.127-.1-.144-.073-.154-.046-.16-.016zM6.33 26.818l-.16.023-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.02.16.012.161.041.156.07.146.094.13.096.093.032.026.004.003.004.004.145.117.004.003.004.004.146.115.005.003.004.004.147.113.005.003.004.004.149.111.004.003.004.003.15.11.005.003.004.003.151.108.004.003.005.003.152.106.005.003.004.003.154.104.004.003.005.003.154.102.005.002.004.003.156.1.005.003.004.003.157.098.005.003.004.002.159.096.004.003.005.003.16.094.004.003.004.002.16.092.005.003.005.002.161.09.005.003.005.002.162.088.005.003.004.002.164.086.005.003.004.002.165.084.005.003.004.002.166.082.004.002.005.003.167.08.004.002.005.002.168.078.004.002.005.002.168.076.005.002.005.002.17.074.004.002.005.002.17.072.005.002.005.002.17.07.006.002.005.001.171.068.005.002.005.002.173.065.005.002.005.002.173.063.005.002.005.002.174.06.005.003.005.001.175.06.005.001.005.002.176.057.005.001.005.002.176.055.006.001.005.002.177.052.005.002.005.001.178.05.005.002.005.002.178.048.006.001.005.002.179.046.005.001.005.002.18.044h.005l.005.002.18.042.006.001.005.001.159.035.16.02.16-.01.157-.04.146-.069.13-.094.112-.117.087-.136.06-.149.033-.158.002-.161-.028-.159-.057-.15-.084-.138-.108-.12-.128-.098-.144-.072-.128-.039-.154-.033-.168-.04-.171-.041-.17-.044-.168-.046-.167-.047-.168-.05-.165-.051-.166-.054-.166-.056-.163-.057-.165-.06-.161-.062-.164-.064-.16-.065-.16-.068-.162-.07-.157-.07-.157-.074-.157-.075-.156-.077-.153-.079-.156-.082-.153-.082-.154-.086-.15-.086-.152-.09-.148-.09-.147-.092-.149-.095-.145-.095-.144-.098-.145-.1-.143-.102-.14-.103-.14-.104-.14-.108-.139-.11-.136-.11-.027-.022-.133-.091-.148-.065-.157-.036-.161-.006zm19.215.087l-.16.01-.157.039-.146.067-.11.076-.064.051-.139.11-.14.108-.14.104-.14.103-.143.101-.145.101-.144.098-.145.095-.149.095-.148.093-.147.089-.152.09-.15.086-.154.086-.153.082-.156.082-.153.079-.156.077-.157.075-.158.073-.157.071-.16.07-.16.068-.161.065-.164.064-.161.061-.165.06-.163.058-.166.056-.166.054-.166.051-.167.05-.167.047-.17.046-.168.044-.171.042-.168.039-.17.037-.11.023-.154.047-.143.075-.126.1-.106.122-.081.139-.054.152-.025.16.006.16.035.158.063.148.09.133.114.115.132.092.148.065.157.037.16.007.133-.016.115-.024.005-.001.005-.001.181-.04h.005l.005-.002.18-.042.006-.001.005-.001.18-.044.005-.002.005-.001.18-.046.004-.002h.005l.179-.05h.005l.005-.002.178-.05.005-.002.005-.002.177-.052.005-.002.005-.001.177-.055.005-.002.005-.001.176-.057.005-.002.005-.002.175-.059.005-.001.005-.002.174-.061.005-.002.005-.002.173-.063.005-.002.005-.002.173-.065.004-.002.005-.002.172-.068.005-.002.005-.002.171-.07.005-.001.005-.002.17-.072.005-.002.004-.002.17-.074.005-.002.004-.002.169-.076.004-.002.005-.002.168-.078.004-.002.005-.003.167-.08.004-.002.005-.002.166-.082.004-.002.005-.003.165-.084.004-.002.005-.003.163-.086.005-.002.005-.003.162-.088.005-.002.005-.003.161-.09.005-.002.004-.003.16-.092.005-.003.005-.002.16-.094.004-.003.004-.003.158-.096.005-.002.004-.003.158-.098.004-.003.005-.003.156-.1.004-.003.004-.003.155-.101.005-.003.004-.003.154-.104.004-.003.004-.003.153-.106.004-.003.005-.003.151-.108.004-.003.005-.003.15-.11.004-.003.004-.003.149-.112.004-.003.004-.003.148-.113.004-.004.004-.003.147-.115.004-.004.004-.003.068-.055.116-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.05-.153-.08-.14-.103-.125-.124-.102-.142-.077-.153-.05-.16-.02z\",\n  opacity: \".98\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.012 8.816L9.21 21.026h13.606l-6.803-12.21zm0 1.776l5.332 9.57H10.681l5.331-9.57zm0-10.281c-1.448.02-2.93.157-4.302.628-.852.447-.255 1.863.66 1.574 2.255-.608 4.648-.607 6.922-.108.934.075 1.228-1.376.338-1.67C18.451.44 17.227.317 16.012.311zm9.012 2.934c-.913-.104-1.272 1.258-.454 1.648 1.834 1.36 3.293 3.185 4.31 5.22.526.776 1.842.098 1.515-.78a15.522 15.522 0 00-5.06-6.006c-.1-.044-.203-.07-.31-.082zM6.65 3.59c-.762.089-1.24.809-1.805 1.267C3.38 6.295 2.163 8.007 1.37 9.905c-.266.898 1.094 1.484 1.564.675a14.825 14.825 0 014.327-5.56c.476-.515.09-1.419-.612-1.431zm9.362.007c-.698.066-1.689-.16-2.033.635-.282.733.535 1.358 1.217 1.125 1.806-.147 3.63.203 5.293.907.902.255 1.472-1.112.656-1.573-1.6-.735-3.374-1.089-5.133-1.094zm-5.479 1.365c-.835.15-1.517.76-2.21 1.226-1.203.94-2.318 2.061-3.057 3.402-.33.904 1.063 1.552 1.547.723 1.045-1.656 2.596-2.925 4.285-3.873.545-.499.171-1.463-.565-1.478zm13.903 2.115c-.875-.07-1.22 1.173-.501 1.627 1.325 1.34 2.188 3.062 2.748 4.84.468.84 1.869.21 1.557-.699-.604-2.118-1.751-4.097-3.351-5.615a.93.93 0 00-.453-.153zM4.467 13.132c-.822-.07-.996.826-1.046 1.455-.256 1.93-.094 3.933.562 5.769.406.844 1.807.365 1.612-.551a11.498 11.498 0 01-.334-5.808.874.874 0 00-.794-.865zm26.687 1.6c-.746-.037-1.014.785-.879 1.395.043 2.393-.57 4.771-1.66 6.894-.31.884 1.02 1.536 1.53.75a15.632 15.632 0 001.821-8.372.876.876 0 00-.812-.667zm-30.197.571c-.782-.073-1.044.775-.933 1.404.068 2.414.661 4.833 1.809 6.962.534.77 1.842.076 1.505-.798a14.833 14.833 0 01-1.603-6.861.876.876 0 00-.778-.707zm26.787 2.024c-.777-.048-.952.797-1.021 1.392-.354 1.692-1.202 3.231-2.216 4.608-.407.872.925 1.638 1.48.852 1.361-1.733 2.296-3.827 2.582-6.017a.874.874 0 00-.825-.835zM6.857 23.012c-.808.018-1.082 1.122-.47 1.59 1.393 1.607 3.187 2.886 5.194 3.599.91.222 1.43-1.165.598-1.596a11.495 11.495 0 01-4.723-3.396.899.899 0 00-.599-.197zm15.057 2.7c-.81.194-1.504.76-2.325.972-1.203.458-2.5.536-3.758.664-.869.307-.573 1.728.346 1.663 2.201-.034 4.412-.626 6.293-1.778.604-.495.227-1.532-.556-1.521zM6.346 27.118c-.833.008-1.11 1.218-.395 1.617 1.986 1.602 4.358 2.749 6.868 3.226.933.076 1.227-1.376.338-1.67a14.838 14.838 0 01-6.345-3.066.929.929 0 00-.466-.107zm19.208.087c-.766.09-1.241.841-1.922 1.158-1.516.991-3.251 1.58-4.996 2.005-.872.405-.346 1.849.584 1.604 2.543-.526 4.98-1.66 6.963-3.344.47-.52.072-1.42-.63-1.423z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.998 8.406c-3.018-.041-5.92 1.926-7.031 4.727-1.138 2.695-.51 6.012 1.537 8.103 1.99 2.141 5.268 2.93 8.014 1.927 2.878-.98 4.992-3.827 5.068-6.87.153-2.957-1.624-5.88-4.3-7.137a7.552 7.552 0 00-3.288-.75zm0 1.384c2.759-.052 5.373 1.973 6.015 4.655.704 2.578-.482 5.517-2.791 6.867-2.358 1.48-5.682 1.086-7.618-.918-2.043-1.971-2.407-5.381-.84-7.745 1.11-1.763 3.15-2.88 5.234-2.86zm1.962 1.765l-2.074 3.762c-.64.068-.793 1.04-.202 1.3.39.27.696-.18 1.052-.165h3.17v-.865h-3.182l1.993-3.615c-.252-.14-.505-.278-.757-.417zm-1.965-8.268h-.158l-.147.003h-.011l-.147.005h-.011l-.146.007h-.011l-.146.009h-.011l-.146.01h-.005l-.005.001-.146.012h-.011l-.145.014h-.006l-.005.001-.05.006-.158.031-.15.06-.135.088-.117.111-.094.13-.069.147-.04.156-.01.16.019.16.049.154.076.142.102.125.123.105.14.08.152.051.16.023.134-.003.045-.005.135-.013.133-.01.136-.01.135-.007.137-.006.136-.004.136-.003h.274l.136.003.136.004.136.006.136.007.136.01.133.01.135.013.135.014.135.016.134.018.132.018.134.021.133.023.133.024.133.025.13.027.132.03.132.03.129.031.13.034.129.035.129.036.13.04.126.038.128.042.126.042.128.045.127.047.126.048.12.047.127.051.123.052.006.002.147.048.16.021.16-.009.157-.038.147-.067.131-.093.112-.116.089-.135.062-.149.033-.158.004-.16-.027-.16-.055-.151-.083-.138-.107-.121-.127-.099-.118-.063-.004-.001-.005-.003-.005-.002-.133-.056-.005-.002-.005-.002-.134-.054-.004-.002-.005-.002-.135-.053-.005-.002-.005-.002-.135-.051-.005-.002-.005-.002-.135-.05-.005-.001-.005-.002-.137-.048-.005-.001-.005-.002-.137-.046-.005-.002-.005-.002-.137-.044-.005-.002-.005-.001-.138-.043-.005-.002-.006-.001-.138-.042-.005-.001-.005-.002-.14-.04H19.4l-.005-.002-.14-.038-.005-.001-.005-.002-.14-.036-.005-.001-.005-.001-.141-.035-.005-.001-.005-.001-.142-.033-.005-.001-.005-.001-.141-.031-.006-.002h-.005l-.142-.03-.005-.001-.005-.001-.143-.028h-.005l-.005-.001-.143-.026-.006-.001-.005-.001-.143-.024-.005-.001-.006-.001-.143-.022-.006-.001h-.005l-.144-.022h-.005l-.006-.001-.144-.019h-.005l-.006-.001-.144-.017h-.006l-.005-.001-.145-.016h-.011l-.145-.014H17.1l-.005-.001-.146-.012h-.01l-.146-.01-.006-.001h-.005l-.146-.009h-.011l-.147-.006h-.01l-.147-.005h-.011l-.147-.003h-.01l-.148-.001h-.01zM10.357 4.66l-.156.037-.123.053-.06.032-.005.002-.004.003-.128.069-.004.002-.005.003-.126.07-.005.003-.004.002-.126.072-.005.003-.004.003-.125.073-.004.003-.005.003-.124.075-.004.003-.005.002-.123.077-.004.003-.005.003-.122.078-.004.003-.005.003-.121.08-.004.002-.005.003-.12.082-.005.003-.004.003-.12.083-.004.003-.004.003-.118.084-.005.003-.004.003-.118.086-.004.003-.004.003-.117.088-.004.003-.004.003-.116.089-.004.003-.004.004-.114.09-.005.003-.004.003-.113.092-.004.004-.004.003-.113.093-.004.004-.004.003-.111.095-.004.003-.005.004-.11.096-.004.004-.004.003-.109.098-.004.003-.004.004-.108.1-.004.003-.004.003-.107.101-.004.004-.004.003-.106.102-.003.004-.004.004-.105.103-.004.004-.004.004-.103.105-.004.004-.004.003-.102.106-.003.004-.004.004-.1.107-.004.004-.004.004-.099.108-.004.004-.003.004-.098.11-.003.003-.004.004-.096.11-.004.005-.003.004-.095.111-.003.004-.004.004-.093.113-.003.004-.004.004-.092.113-.003.004-.003.005-.09.114-.004.004-.003.004-.089.116-.003.004-.003.004-.088.117-.003.004-.003.005-.086.117-.003.004-.003.005-.084.118-.003.004-.003.005-.083.12-.003.003-.003.005-.082.12-.003.005-.002.004-.068.103-.076.142-.048.154-.018.16.011.161.041.156.07.146.095.13.117.11.136.086.15.06.158.03.162.002.158-.029.15-.058.138-.085.119-.108.082-.106.065-.099.075-.11.077-.113.077-.107.08-.11.08-.108.084-.108.083-.105.086-.106.086-.104.088-.104.089-.101.09-.102.093-.101.093-.099.094-.097.095-.096.098-.097.098-.095.099-.093.1-.092.103-.091.101-.089.104-.088.104-.086.106-.086.106-.083.106-.082.109-.082.108-.079.11-.078.11-.076.112-.076.112-.074.113-.072.113-.071.115-.07.115-.068.118-.067.117-.065.12-.065.054-.029.135-.088.116-.111.094-.132.068-.146.04-.156.009-.161-.02-.16-.05-.153-.078-.142-.102-.125-.123-.103-.141-.079-.153-.051-.16-.022-.16.008zm13.91 2.116l-.158.037-.147.066-.132.092-.113.116-.09.134-.063.148-.034.157-.005.162.026.159.054.152.082.139.086.102.09.09.094.098.093.099.092.1.091.103.089.101.088.104.086.104.086.106.083.105.083.108.08.108.081.11.077.107.077.112.075.111.075.114.072.113.071.113.07.115.068.117.067.115.065.118.064.117.062.118.061.12.059.119.059.122.056.121.054.12.055.125.051.123.051.125.048.123.049.127.046.126.044.125.043.128.042.129.039.126.038.13.022.076.058.15.086.137.109.119.129.096.145.07.155.043.16.013.161-.017.155-.046.143-.074.126-.1.106-.122.082-.138.055-.152.025-.16-.005-.16-.026-.132-.023-.082-.002-.005-.001-.005-.042-.139-.001-.005-.002-.005-.043-.138-.001-.005-.002-.005-.044-.137-.002-.005-.002-.005-.046-.137-.002-.005-.001-.005-.048-.137-.002-.005-.002-.005-.05-.135-.001-.005-.002-.005-.051-.135-.002-.005-.002-.005-.053-.135-.002-.005-.002-.005-.054-.133-.002-.005-.002-.005-.057-.133-.002-.005-.002-.005-.057-.132-.003-.005-.002-.005-.059-.132-.002-.005-.002-.004-.061-.132-.003-.004-.002-.005-.062-.13-.003-.005-.002-.005-.064-.13-.003-.004-.002-.005-.066-.129-.002-.004-.003-.005-.067-.128-.002-.005-.003-.004-.069-.128-.002-.004-.003-.005-.07-.126-.003-.005-.003-.004-.072-.126-.002-.005-.003-.004-.073-.125-.003-.004-.003-.005-.075-.124-.003-.004-.003-.005-.076-.123-.003-.004-.003-.005-.078-.122-.003-.004-.003-.005-.08-.121-.003-.004-.003-.005-.08-.12-.004-.005-.003-.004-.083-.12-.003-.004-.003-.004-.084-.118-.003-.005-.003-.004-.086-.117-.003-.005-.003-.004-.088-.117-.003-.004-.003-.004-.09-.116-.002-.004-.004-.004-.09-.114-.003-.005-.004-.004-.091-.113-.004-.004-.003-.004-.093-.113-.004-.004-.003-.004-.095-.111-.004-.004-.003-.004-.096-.11-.004-.005-.003-.004-.098-.109-.004-.004-.003-.004-.1-.108-.003-.004-.004-.004-.1-.107-.004-.004-.004-.004-.102-.106-.003-.003-.004-.004-.093-.095-.124-.103-.14-.08-.153-.05-.16-.023-.16.008zM4.288 12.828l-.158.032-.15.06-.135.088-.117.11-.095.131-.069.146-.035.129-.026.132v.005l-.002.005-.025.143-.001.005-.001.006-.024.143-.001.005-.001.006-.022.143-.001.006-.001.005-.02.144-.001.005-.001.006-.019.144v.005l-.001.006-.017.144v.006l-.001.005-.016.145v.011l-.014.145v.006l-.001.005-.012.146v.01l-.01.146-.001.006v.005l-.009.146v.011l-.007.146v.011l-.004.147v.011l-.003.147v.01l-.002.148v.01l.001.148v.01l.003.147v.011l.005.147v.01l.007.147v.011l.009.146v.011l.01.146v.01l.013.146v.011l.014.145v.005l.001.006.016.145v.011l.018.144v.006l.001.005.019.144v.006l.001.005.021.144v.005l.002.006.022.143v.006l.002.005.024.143v.005l.002.006.025.143.001.005.001.005.028.143.001.005.001.005.03.142v.005l.002.006.03.141.002.005.001.006.033.14v.006l.002.005.035.14v.006l.002.005.036.14.002.005.001.005.038.14.001.005.002.005.04.14v.005l.002.005.042.138.001.006.002.005.042.138.002.005.002.005.017.054.064.148.09.134.114.114.132.092.148.065.157.037.16.007.16-.023.153-.052.14-.08.123-.103.102-.126.076-.142.049-.153.02-.16-.01-.161-.032-.13-.017-.051-.039-.126-.038-.13-.037-.128-.035-.13-.033-.128-.033-.134-.03-.13-.029-.131-.026-.13-.026-.132-.024-.134-.023-.133-.02-.132-.02-.136-.017-.132-.016-.135-.014-.135-.012-.133-.012-.138-.009-.133-.007-.136-.006-.138-.004-.134-.003-.136v-.274l.003-.136.004-.134.006-.139.007-.136.01-.132.01-.139.013-.132.014-.135.016-.135.017-.132.02-.137.02-.13.023-.134.024-.133.024-.126.016-.16-.014-.161-.044-.155-.072-.145-.098-.128-.12-.108-.137-.084-.15-.057-.16-.029-.16.002zm23.286 4.202l-.156.038-.148.066-.132.092-.113.115-.09.134-.062.148-.03.127-.001.004-.023.134-.024.134-.026.132-.026.13-.03.132-.03.129-.032.134-.033.128-.035.13-.037.128-.038.13-.04.126-.04.128-.044.128-.044.126-.046.126-.048.126-.05.125-.05.125-.051.122-.054.123-.055.122-.056.12-.058.122-.06.12-.061.12-.062.119-.063.116-.067.119-.066.116-.068.115-.07.115-.07.113-.073.113-.074.112-.076.113-.077.112-.077.107-.08.11-.08.108-.085.109-.044.056-.088.135-.06.15-.033.158-.002.16.027.16.057.15.083.138.108.12.128.098.144.072.155.045.16.015.161-.016.155-.044.144-.073.128-.098.09-.099.05-.061.003-.004.003-.005.089-.115.003-.004.003-.005.088-.116.003-.004.003-.005.086-.117.003-.004.003-.005.084-.118.003-.004.003-.005.083-.12.003-.004.003-.004.082-.12.003-.005.002-.004.08-.121.003-.005.003-.004.078-.122.003-.005.003-.004.077-.123.002-.005.003-.004.075-.124.003-.005.003-.004.073-.125.003-.004.003-.005.072-.126.002-.004.003-.005.07-.126.003-.005.002-.005.07-.127.002-.004.002-.005.068-.128.002-.005.002-.004.066-.13.003-.004.002-.005.064-.13.002-.004.003-.005.062-.13.003-.005.002-.005.06-.13.003-.005.002-.005.06-.132.002-.005.002-.005.057-.132.003-.005.002-.005.056-.133.002-.005.002-.005.054-.134.002-.004.002-.005.053-.135.002-.005.002-.005.051-.135.002-.005.002-.005.05-.135.001-.005.002-.005.048-.137.001-.005.002-.005.046-.137.002-.005.002-.005.044-.137.002-.005.002-.005.042-.138.002-.005.002-.006.04-.138.002-.005.002-.005.04-.14V19.4l.002-.005.038-.14.001-.005.002-.005.036-.14.001-.005.001-.005.035-.141.001-.005.001-.005.033-.141.001-.006.001-.005.031-.141.002-.006v-.005l.03-.142.001-.005.001-.005.028-.143v-.005l.002-.005.025-.143.001-.006.001-.005.024-.143.001-.005.001-.006.001-.006.01-.161-.02-.16-.05-.154-.077-.141-.102-.125-.123-.104-.141-.079-.153-.051-.16-.022-.16.007zM6.681 22.734l-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.018.16.011.161.041.156.07.146.077.11.04.047.003.004.003.004.095.111.003.004.004.004.096.11.004.005.003.004.098.109.003.004.004.004.1.108.003.004.003.004.101.107.004.004.003.004.102.106.004.003.004.004.103.105.004.004.004.004.105.103.004.004.003.003.106.102.004.004.004.004.107.1.004.004.004.004.108.099.004.003.004.004.11.098.003.003.004.004.11.096.005.004.004.003.11.095.005.003.004.004.113.093.004.003.004.004.113.091.004.004.005.003.114.09.004.004.004.003.116.089.004.003.004.003.117.088.004.003.004.003.118.086.004.003.005.003.118.084.004.003.005.003.119.083.004.003.005.003.12.081.005.003.004.003.121.08.005.003.004.003.122.078.005.003.004.003.123.076.005.003.004.003.124.075.005.003.004.003.125.073.004.003.005.003.126.072.004.002.005.003.126.07.005.003.004.002.128.07.004.002.005.002.128.068.005.002.004.002.13.066.004.003.005.002.13.064.004.002.005.003.13.062.005.002.004.003.132.06.004.003.005.002.132.06.005.002.005.002.132.057.005.002.005.003.133.056.005.002.005.002.133.054.005.002.005.002.13.05.154.045.16.016.161-.015.155-.045.144-.072.128-.098.108-.12.083-.138.057-.15.028-.16-.003-.16-.032-.158-.061-.15-.088-.135-.11-.117-.132-.094-.12-.058-.124-.049-.126-.051-.122-.051-.122-.054-.12-.054-.126-.058-.119-.057-.12-.06-.12-.06-.118-.063-.117-.064-.119-.066-.116-.066-.115-.068-.115-.07-.113-.07-.115-.074-.112-.074-.11-.075-.11-.076-.112-.079-.11-.08-.109-.082-.106-.082-.104-.082-.106-.086-.105-.087-.101-.086-.105-.091-.1-.09-.1-.091-.1-.094-.097-.094-.1-.098-.093-.095-.096-.1-.093-.098-.092-.101-.089-.1-.09-.102-.088-.104-.036-.043-.114-.114-.133-.091-.148-.065-.157-.036-.161-.006-.16.024zm15.063 2.691l-.156.044-.12.057-.06.034-.12.066-.116.064-.119.062-.12.061-.12.06-.118.057-.126.058-.12.054-.122.054-.122.05-.126.052-.125.05-.124.046-.127.047-.125.044-.129.043-.126.04-.13.042-.128.038-.127.036-.13.035-.131.034-.129.031-.132.03-.13.03-.135.027-.133.026-.13.023-.13.022-.137.021-.132.02-.134.017-.132.015-.138.015-.135.013-.133.01-.138.01-.136.007-.134.006-.136.004-.14.003-.16.018-.155.047-.142.076-.127.1-.105.122-.08.14-.054.151-.025.16.006.16.035.158.064.148.09.134.114.114.133.092.147.065.157.036.134.008.145-.002h.011l.147-.005h.01l.147-.007h.011l.146-.009h.011l.146-.01h.005l.005-.001.146-.012h.011l.145-.014h.005l.006-.001.145-.016h.011l.144-.018h.006l.005-.001.144-.02h.011l.144-.021h.005l.006-.002.143-.022h.006l.005-.002.143-.024h.005l.006-.002.143-.026h.005l.005-.002.143-.027.005-.001.005-.001.142-.03h.005l.005-.002.142-.03.005-.002.005-.001.142-.033.005-.001.005-.001.14-.035.006-.001.005-.001.14-.036.005-.002.005-.001.14-.038.005-.001.005-.002.14-.04h.005l.005-.002.138-.042.005-.001.006-.002.138-.043.005-.001.005-.002.137-.044.005-.002.005-.002.137-.046.005-.002.005-.001.137-.048.005-.002.005-.002.135-.05.005-.001.005-.002.135-.051.005-.002.005-.002.135-.053.005-.002.004-.002.134-.054.005-.002.005-.002.133-.056.005-.003.005-.002.132-.057.005-.002.005-.003.132-.059.005-.002.004-.002.131-.061.005-.003.005-.002.13-.062.005-.003.005-.002.13-.064.004-.002.005-.003.129-.066.004-.002.005-.003.128-.067.005-.002.004-.003.127-.069.005-.002.005-.003.126-.07.005-.003.004-.002.065-.038.132-.093.112-.115.089-.135.062-.149.034-.157.004-.161-.027-.16-.055-.15-.082-.14-.107-.12-.127-.1-.144-.073-.154-.045-.16-.017-.161.014zM15.994 0l-.187.001h-.011l-.188.004h-.011l-.187.006h-.011l-.187.008h-.005L15.2.02l-.187.01h-.005l-.005.001-.187.013h-.01L14.62.06h-.01l-.186.018h-.011l-.185.02-.005.001h-.006l-.185.022-.005.001h-.005l-.185.025h-.005l-.005.001-.184.027h-.006l-.005.001-.184.029h-.005l-.005.001-.183.031-.005.001-.006.001-.182.033-.006.001-.005.001-.182.035-.005.001-.005.001-.182.038h-.005l-.005.002-.181.04h-.005l-.005.002-.18.042-.006.001-.005.001-.18.044-.005.002h-.005l-.17.045-.152.054-.139.082-.121.106-.1.127-.074.143-.046.155-.017.16.013.16.043.156.07.145.097.13.119.108.137.085.15.058.159.03.16-.001.133-.023.165-.043.168-.041.171-.04.171-.037.172-.036.17-.033.173-.03.17-.03.177-.027.171-.025.175-.022.175-.02.175-.02.176-.016.175-.014.177-.012.176-.01.177-.007.174-.006.177-.003L16 1.73h.177l.178.004.174.006.177.007.176.01.177.012.175.014.176.017.175.018.175.02.175.023.171.025.177.027.17.03.173.03.17.033.171.036.154.033.16.02.161-.01.156-.04.146-.069.131-.094.111-.117.088-.135.06-.15.032-.158.002-.16-.027-.16-.057-.15L20 .714l-.108-.12-.128-.097-.144-.073-.129-.038-.158-.035-.005-.001-.005-.001L19.14.31h-.005l-.005-.002-.182-.035h-.006l-.005-.002-.182-.033h-.006l-.005-.002-.183-.03-.005-.001-.005-.001-.184-.029h-.005l-.006-.001-.184-.027h-.005l-.005-.001-.185-.024h-.005L17.968.12 17.783.1l-.006-.001h-.005l-.185-.02h-.006l-.005-.001L17.39.06 17.385.06h-.005l-.187-.015h-.005l-.005-.001-.187-.013h-.01L16.799.02h-.011L16.6.01h-.011l-.187-.006h-.011L16.204 0h-.011L16.005 0h-.01zm8.86 2.939l-.157.033-.15.062-.134.09-.116.111-.093.132-.067.147-.038.156-.01.161.022.16.05.153.078.141.103.124.102.087.045.034.142.106.137.105.14.11.136.11.135.112.134.115.134.117.13.115.132.122.128.12.127.122.127.125.123.126.124.128.121.13.118.128.118.132.117.133.113.134.113.136.11.136.109.137.109.142.104.14.103.14.101.142.1.144.099.146.095.145.094.147.093.15.092.15.087.149.087.15.085.152.083.155.08.152.08.155.04.081.084.138.11.119.128.096.145.072.155.043.16.013.161-.016.155-.046.143-.074.127-.099.106-.12.083-.14.055-.151.026-.16-.004-.16-.034-.158-.05-.124-.042-.085-.002-.004-.003-.005-.084-.165-.002-.004-.003-.005-.086-.164-.002-.004-.003-.005-.088-.162-.002-.005-.003-.005-.09-.161-.002-.005-.003-.004-.092-.16-.002-.005-.003-.005-.094-.16-.003-.004-.003-.004-.096-.159-.002-.004-.003-.005-.098-.157-.003-.004-.003-.005-.1-.156-.003-.004-.002-.005-.102-.154-.003-.005-.003-.004-.104-.154-.003-.004-.003-.005-.106-.152-.003-.004-.003-.005-.108-.151-.003-.004-.003-.005-.11-.15-.003-.004-.003-.004-.111-.15-.004-.003-.003-.005-.113-.147-.004-.004-.003-.005-.115-.146-.004-.004-.003-.004-.117-.145-.004-.004-.003-.004-.12-.144-.003-.004-.003-.004-.121-.142-.003-.004-.004-.004-.123-.141-.003-.004-.004-.004-.125-.14-.003-.004-.004-.004-.127-.138-.003-.004-.004-.004-.128-.136-.004-.004-.004-.004-.13-.135-.004-.004-.003-.004-.133-.134-.003-.004-.004-.003-.134-.133-.004-.003-.004-.004-.135-.13-.004-.004-.004-.004-.136-.128-.004-.004-.004-.004-.138-.126-.004-.004-.004-.003-.14-.125-.004-.004-.004-.003-.14-.123-.005-.004-.004-.003-.142-.121-.004-.004-.004-.003-.144-.12-.004-.003-.004-.003-.145-.117-.004-.004-.004-.003-.147-.115-.004-.004-.004-.003-.148-.113-.004-.003-.004-.004-.149-.111-.004-.003-.004-.004-.05-.036-.14-.083-.15-.055-.16-.027-.16.004zm-18.381.348l-.157.037-.147.066-.111.074-.04.032-.005.003-.004.004-.145.117-.004.003-.004.004-.144.119-.004.003-.004.004-.142.12-.004.004-.004.004-.141.123-.004.003-.004.004-.14.125-.004.003-.004.004-.138.126-.004.004-.004.004-.136.128-.004.004-.004.004-.135.13-.004.004-.004.003-.134.133-.004.003-.004.004-.132.134-.003.004-.004.004-.13.135-.004.004-.004.004-.128.136-.004.004-.004.004-.126.138-.004.004-.003.004-.125.14-.004.004-.003.004-.123.14-.004.005-.003.004-.121.142-.004.004-.003.004-.12.144-.003.004-.003.004-.117.145-.004.004-.003.004-.115.146-.004.005-.003.004-.113.147-.003.005-.004.004-.111.149-.003.004-.004.004-.11.15-.002.005-.003.004-.108.151-.003.005-.003.004-.106.152-.003.005-.003.004-.104.154-.003.004-.003.005-.102.154-.003.005-.002.004-.1.156-.003.005-.003.004-.098.157-.003.005-.003.004-.096.159-.002.004-.003.005-.094.16-.003.004-.002.004-.092.16-.003.005-.003.005-.09.161-.002.005-.003.005-.088.162-.002.005-.003.004-.086.164-.002.005-.002.004-.084.165-.003.005-.002.004-.082.166-.002.005-.003.004-.08.167-.002.004-.002.005-.078.168-.002.004-.002.005-.045.1-.053.153-.023.16.007.16.037.157.065.148.092.132.114.114.134.09.148.064.157.035.161.006.16-.025.152-.054.14-.08.121-.106.1-.126.065-.118.043-.095.074-.16.075-.155.077-.157.08-.155.08-.152.083-.155.085-.152.086-.15.088-.149.091-.15.094-.15.094-.147.095-.145.099-.146.1-.144.1-.142.104-.14.104-.14.11-.142.107-.137.11-.136.114-.136.113-.134.117-.133.118-.132.117-.129.122-.13.124-.127.123-.126.127-.125.127-.122.128-.12.132-.122.13-.115.133-.117.135-.115.135-.111.136-.11.037-.03.117-.11.094-.132.068-.146.04-.156.01-.161-.02-.16-.05-.154-.076-.141-.102-.125-.123-.104-.14-.08-.153-.051-.16-.023-.161.008zm24.514 11.15l-.157.04-.146.067-.131.093-.112.117-.088.135-.061.149-.033.157-.005.134.006.14.006.176.003.177.001.178-.001.177-.003.178-.006.177-.007.176-.01.177-.012.176-.015.176-.016.173-.018.175-.02.175-.024.174-.024.175-.027.17-.03.174-.03.173-.033.17-.036.172-.037.17-.04.17-.042.172-.043.168-.045.166-.048.169-.05.167-.052.168-.053.164-.056.166-.058.166-.06.161-.061.164-.063.158-.066.165-.068.16-.07.16-.07.158-.075.159-.074.155-.078.158-.081.158-.06.15-.03.158-.001.161.029.159.058.15.085.137.108.12.13.096.144.07.156.044.16.013.16-.017.155-.046.143-.074.127-.1.107-.12.07-.115.083-.164.003-.005.002-.004.082-.166.002-.005.003-.004.08-.167.002-.005.002-.004.078-.168.002-.004.002-.005.076-.169.002-.004.002-.005.074-.17.002-.004.002-.005.072-.17.002-.005.002-.005.07-.17.002-.006.001-.005.068-.172.002-.004.002-.005.065-.173.002-.005.002-.005.063-.173.002-.005.002-.005.06-.174.003-.005.001-.005.06-.175.001-.005.002-.005.057-.176.001-.005.002-.005.055-.177.001-.005.002-.005.052-.177.002-.005.001-.005.051-.178.001-.005.002-.005.048-.179.002-.005v-.005l.047-.179.001-.005.002-.005.044-.18v-.005l.002-.005.042-.18.001-.006.001-.005.04-.18.001-.006.001-.005.038-.182v-.005l.002-.005.035-.182v-.006l.002-.005.033-.182v-.006l.002-.005.03-.183.001-.005.001-.005.029-.184v-.005l.001-.006.027-.184v-.005l.001-.005.024-.185v-.005l.001-.005.022-.185v-.006l.001-.005.02-.185v-.006l.001-.005.017-.186v-.005l.001-.005.015-.187v-.005l.001-.005.013-.187v-.01l.01-.187.001-.006v-.005l.009-.187v-.011l.006-.187v-.011l.004-.188v-.011l.001-.188v-.01l-.001-.188v-.011l-.004-.188v-.011l-.006-.187v-.011l-.007-.145-.022-.16-.05-.152-.08-.141-.103-.124-.125-.102-.141-.077-.153-.05-.16-.02-.161.009zM.777 15l-.158.032-.15.06-.136.087-.117.11-.095.131-.068.146-.04.156-.012.133-.001.14v.01l.001.188v.011l.004.188v.011l.006.187v.011l.008.187v.011l.011.187v.005l.001.005.013.187v.01l.016.187v.01l.018.186v.011l.02.185.001.005v.006l.022.185.001.005v.005l.025.185v.005l.001.005.027.184v.006l.001.005.029.184v.005l.001.005.031.183.001.005.001.006.033.182.001.005.001.006.035.182.001.005.001.005.038.182v.005l.002.005.04.181v.005l.002.005.042.18.001.006.001.005.044.18.002.005v.005l.047.18.001.004.002.005.048.179.002.005.001.005.05.178.002.005.001.005.053.177.002.005.001.005.055.177.002.005.001.005.057.176.002.005.001.005.06.175.001.005.002.005.061.174.002.005.002.005.063.173.002.005.002.005.065.173.002.005.002.004.067.172.002.005.002.005.07.171.002.005.002.005.072.17.002.005.002.005.074.169.002.005.002.004.076.169.002.005.002.004.078.168.002.004.002.005.08.167.003.004.002.005.082.166.002.004.003.005.02.04.086.136.11.118.13.095.146.07.156.041.16.012.16-.019.155-.048.142-.075.126-.1.105-.123.08-.14.054-.152.024-.16-.006-.16-.036-.158-.051-.123-.018-.034-.078-.158L3.1 22.1l-.074-.16-.071-.156-.07-.162-.068-.16-.067-.164-.062-.158-.062-.164-.059-.161-.058-.166-.056-.166-.053-.164-.052-.168-.05-.167-.048-.17-.045-.165-.043-.168-.043-.172-.039-.17-.037-.17-.036-.172-.033-.17-.03-.173-.03-.174-.027-.17-.025-.175-.022-.174-.021-.175-.018-.175-.017-.173-.014-.176-.012-.176-.01-.177-.007-.176-.006-.177-.003-.178L1.73 16v-.134l-.013-.16-.044-.156-.072-.144-.097-.129-.12-.108-.137-.085-.15-.057L.938 15 .777 15zM6.17 26.842l-.152.052-.14.08-.122.105-.101.126-.076.142-.048.154-.02.16.012.161.041.156.07.146.094.13.096.093.032.026.004.003.004.004.145.117.004.003.004.004.146.115.005.003.004.004.147.113.005.003.004.004.149.111.004.003.004.003.15.11.005.003.004.003.151.108.005.003.004.003.152.106.005.003.004.003.154.104.004.003.005.003.154.102.005.002.004.003.156.1.005.003.004.003.157.098.005.003.004.002.159.096.004.003.005.003.16.094.004.003.004.002.16.092.005.003.005.002.161.09.005.003.005.003.162.088.005.002.004.002.164.087.005.002.004.002.165.084.005.003.004.002.166.082.004.002.005.003.167.08.004.002.005.002.168.078.004.002.005.002.169.076.004.002.005.002.17.074.004.002.005.002.17.072.005.002.005.002.17.07.006.002.005.001.171.068.005.002.005.002.173.065.005.002.005.002.173.063.005.002.005.002.174.061.005.002.005.001.175.06.005.001.005.002.176.057.005.001.005.002.177.055.005.001.005.002.177.052.005.002.005.001.178.051.005.001.005.002.178.048.006.002h.005l.179.047.005.001.005.002.18.044h.005l.005.002.18.042.006.001.005.001.159.035.16.02.16-.01.157-.04.146-.069.13-.094.112-.117.087-.136.06-.149.033-.158.002-.161-.028-.159-.057-.15-.084-.138-.108-.12-.128-.098-.144-.072-.128-.039-.154-.033-.168-.04-.171-.041-.169-.044-.17-.045-.166-.048-.168-.05-.165-.051-.166-.054-.166-.056-.163-.057-.165-.06-.161-.062-.164-.064-.16-.065-.16-.068-.162-.07-.157-.07-.157-.074-.157-.075-.156-.077-.153-.079-.156-.082-.153-.082-.154-.086-.15-.086-.152-.09-.148-.09-.147-.092-.149-.095-.145-.095-.144-.098-.145-.1-.143-.102-.14-.103-.14-.104-.14-.108-.139-.11-.136-.11-.027-.022-.133-.091-.148-.065-.157-.036-.161-.006-.16.024zm19.214.073l-.156.039-.146.067-.11.076-.064.051-.139.11-.14.108-.14.104-.14.103-.143.101-.145.101-.144.098-.145.095-.149.095-.148.093-.147.089-.152.09-.15.086-.154.086-.153.082-.156.082-.153.079-.156.077-.157.075-.157.073-.158.071-.16.07-.16.068-.161.065-.164.064-.161.061-.165.06-.163.058-.166.056-.166.054-.166.051-.167.05-.167.048-.17.045-.168.044-.171.042-.168.039-.17.037-.11.023-.154.047-.143.075-.126.1-.106.122-.081.139-.054.152-.025.16.006.16.035.158.063.148.09.133.114.115.132.092.148.065.157.037.16.008.133-.017.115-.024h.005l.005-.002.181-.04h.005l.005-.002.18-.042.006-.001.005-.001.18-.044.005-.002h.005l.18-.047.004-.001.005-.002.179-.048.005-.002.005-.001.178-.05.005-.002.005-.002.177-.052.005-.002.005-.001.177-.055.005-.002.005-.001.176-.057.005-.002.005-.002.175-.059.005-.001.005-.002.174-.061.005-.002.005-.002.173-.063.005-.002.005-.002.173-.065.005-.002.004-.002.172-.068.005-.001.005-.002.171-.07.005-.002.005-.002.17-.072.005-.002.005-.002.169-.074.005-.002.004-.002.169-.076.004-.002.005-.002.168-.078.004-.002.005-.002.167-.08.004-.003.005-.002.166-.082.004-.002.005-.003.165-.084.004-.002.005-.002.163-.087.005-.002.005-.002.162-.088.005-.003.005-.003.161-.09.005-.002.004-.003.16-.092.005-.002.005-.003.16-.094.004-.003.004-.003.158-.096.005-.002.004-.003.158-.098.004-.003.005-.003.156-.1.004-.003.004-.002.155-.102.005-.003.004-.003.154-.104.004-.003.005-.003.152-.106.004-.003.005-.003.151-.108.004-.003.005-.003.15-.11.004-.003.004-.003.149-.111.004-.004.004-.003.148-.113.004-.004.004-.003.147-.115.004-.004.004-.003.068-.055.116-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.05-.153-.08-.14-.103-.125-.124-.102-.142-.077-.153-.05-.16-.02-.16.009z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.975.003C8.195-.157.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.408 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.215-2.282-2.022-5.3-3.217-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.082 11.082 0 0116 4.975zm-2.15 3.281v5.534H8.213v4.38h5.636v5.534h4.31V18.17h5.639v-4.38h-5.64V8.256h-4.31zm.865.865h2.583v5.534h5.635v2.65h-5.635v5.533h-2.583v-5.534h-5.64v-2.649h5.64V9.121z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm.006 3.521L9.206 20.745h13.598L16.005 8.542zm0 1.775l5.329 9.564H10.677l5.328-9.564z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.97.04h-.127C8.713-.018 2.003 5.334.437 12.286c-1.51 6.123.98 13.005 6.136 16.665 5.125 3.788 12.546 4.105 17.912.623 5.272-3.276 8.33-9.766 7.325-15.916-.904-6.241-5.79-11.7-11.95-13.143A16.082 16.082 0 0015.97.04zm-.181 1.724c.115 0 .23 0 .347.003 6.625-.066 12.823 5.149 13.89 11.69 1.13 5.91-1.908 12.349-7.262 15.138-5.473 3.013-12.866 1.884-17.116-2.726C1.291 21.372.444 13.914 3.802 8.602c2.493-4.112 7.169-6.819 11.987-6.838zm.283 1.554c-.117 0-.234.002-.351.005-6.1 0-11.691 5.049-12.346 11.114-.78 5.684 2.795 11.612 8.218 13.52 5.139 1.943 11.416.101 14.624-4.38 3.461-4.583 3.262-11.538-.596-15.831-2.36-2.747-5.924-4.423-9.549-4.428zm-.078 1.695c.078 0 .156 0 .234.003 5.4 0 10.321 4.556 10.734 9.942.563 5.13-2.958 10.364-7.971 11.678-4.832 1.41-10.457-.935-12.746-5.446-2.463-4.559-1.2-10.795 3.014-13.883a11.072 11.072 0 016.735-2.294zm-.137 3.42c-2.965.02-5.792 1.968-6.884 4.722-1.137 2.693-.509 6.007 1.536 8.096 1.988 2.14 5.263 2.929 8.007 1.926 2.875-.98 4.987-3.824 5.063-6.865.154-2.954-1.622-5.875-4.295-7.13a7.545 7.545 0 00-3.427-.75zm.27 1.381c2.708.013 5.249 2.014 5.88 4.652.704 2.576-.481 5.512-2.788 6.862-2.356 1.478-5.677 1.084-7.611-.918-2.042-1.97-2.405-5.376-.839-7.738 1.11-1.762 3.146-2.877 5.229-2.857h.13zm1.831 1.764l-2.072 3.76c-.64.068-.792 1.039-.202 1.298.39.27.696-.18 1.051-.164h3.168v-.864h-3.18l1.992-3.612-.757-.418z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.848.001C8.113-.093.931 6.281.125 13.983c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.207C29.105 4.938 23.55.48 17.367.06A16.448 16.448 0 0015.848 0v.001zm.293 1.727c7.113-.099 13.662 5.97 14.077 13.08.56 6.299-3.516 12.735-9.582 14.679-5.798 2.004-12.806-.12-16.283-5.237C.717 19.159.874 11.638 5.016 6.876 7.722 3.638 11.902 1.63 16.14 1.728zm-.415 1.555C9.157 3.258 3.256 9.156 3.278 15.729c-.16 5.965 4.365 11.725 10.293 12.737 5.409 1.065 11.37-1.744 13.775-6.753 2.534-4.986 1.386-11.627-2.953-15.251-2.364-2.077-5.512-3.27-8.667-3.18zm.507 1.692c5.82-.026 11.013 5.318 10.79 11.143-.024 5.3-4.313 10.267-9.636 10.803-5.075.667-10.426-2.588-11.885-7.553-1.535-4.744.494-10.46 4.925-12.885a11.072 11.072 0 015.806-1.508z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.975.003C8.195-.156.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.407 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 4.975zm-.56 5.772l-7.408 5.231 7.409 5.234v-5.057c2.385 1.687 4.771 3.371 7.157 5.057V10.747l-7.157 5.055v-5.055z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm.006 3.927c-1.672 4.654-2.734 9.502-4.406 14.155 1.534-1.525 2.872-3.234 4.406-4.759l4.406 4.76c-1.496-4.71-2.91-9.446-4.406-14.156z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm1.78 4.093v3.555H9.785v6.714h7.994v3.554l5.829-6.911-5.83-6.912z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.975.003C8.195-.156.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.407 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 4.975zm-5.91 5.475l6.04 4.901 6.042-4.9H10.088zm-1.341 1.138v9.921h14.514V11.79l-7.132 5.787-7.382-5.99z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.975.003C8.195-.156.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.407 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 4.975zm.006 3.073l-7.62 5.532 2.91 8.95h9.42l2.91-8.95-7.62-5.532z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.975.003C8.195-.156.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.407 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 4.975zm.006 3.52c-2.261 4.07-4.533 8.136-6.798 12.205h13.596L16.005 8.495z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M0 7v18.62h32V7H0zm1.655 17.056V8.684h28.62v15.372H1.656z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zm4.43 1.328c-.222.005-.43.09-.606.203-.985.638-4.356 2.977-5.096 3.486-.67.46-1.12 1.153-1.38 1.974-.27.858-.235 1.793-.232 2.576.002.59.016 1.104.17 1.727.22.908.634 1.63 1.23 2.118.597.49 1.363.732 2.23.734 3.038.012 6.078.016 9.119 0 .327-.002.645-.127.848-.37.204-.241.287-.56.291-.914a1.732 1.732 0 00-.097-.625h.327c.335 0 .641-.11.852-.316.21-.206.317-.475.374-.754a1.783 1.783 0 00-.126-1.143 1.18 1.18 0 00.877-.521c.196-.306.257-.666.258-1.025.001-.375-.088-.738-.293-1.033a1.179 1.179 0 00-.958-.512h-.478c.108-.237.156-.505.155-.782-.003-.373-.098-.721-.316-.99a1.21 1.21 0 00-.943-.43c-2.273-.004-4.236.018-6.412.012l-.19-.001c.102-.104.202-.205.312-.314.337-.336.662-.652.83-.869.4-.516.46-1.215.123-1.729-.178-.272-.439-.456-.72-.494a.93.93 0 00-.148-.008zm.029.728l.022.001c.055.008.115.027.209.172.132.201.126.606-.09.884-.079.102-.431.465-.767.8-.337.334-.657.643-.815.836-.153.186-.096.338-.056.435.04.096.085.212.298.263.063.014.066.01.086.012l.066.003c2.429.027 4.986-.004 7.223-.003.194 0 .293.056.379.162.086.105.151.286.153.533 0 .257-.065.467-.155.59-.09.124-.183.182-.37.183-1.706-.001-3.411-.005-5.117-.009v.731c2.23.004 4.461.01 6.692.012.17 0 .265.06.361.2.096.138.164.364.163.615 0 .268-.058.501-.143.634-.085.132-.162.193-.385.195-2.32-.001-4.554-.006-6.688-.003v.73c1.905 0 3.809.003 5.713.001.194.005.316.09.416.26.102.173.151.442.093.728-.04.193-.102.313-.17.38-.067.065-.148.108-.343.108h-5.71l.002.734c1.445 0 2.89-.01 4.334-.001.162 0 .232.041.297.123.064.081.123.238.12.488-.003.244-.061.385-.12.455-.06.07-.127.11-.296.11-3.037.016-6.076.012-9.113 0-.735-.002-1.316-.196-1.77-.568-.454-.372-.793-.935-.986-1.728-.134-.546-.146-.978-.148-1.558-.003-.796-.018-1.664.199-2.354.222-.705.582-1.24 1.096-1.593.75-.515 4.14-2.866 5.079-3.474a.504.504 0 01.241-.087z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M4.073 26.607l1.295 1.296L1.325 32l-.662-.633L0 30.735l4.073-4.128zm6.953-7.046l1.296 1.296L1.325 32l7.555-7.656-1.295-1.296 1.455-1.474 1.986-2.013zM32 .06s-2.699 5.189-5.417 10.462l-.326.633c-1.14 2.214-2.265 4.407-3.176 6.2-1.228-1.222-2.449-2.452-3.676-3.675l-3.57 3.618-1.297-1.296 3.541-3.588c-.98-.964-1.932-1.958-2.923-2.91l-.753-.706c2.68-1.258 6.533-3.165 9.95-4.876l.617-.309C28.838 1.673 32 .06 32 .06zm-4.126 4.06l-.015.007-.115.057-.048.024-.115.057L17.7 9.172l5.017 4.948 5.157-10z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M0 5v22.069h32V5H0zm30.276 1.684v18.82H6.62V6.684h23.655zm-28.62 0h3.31v18.82h-3.31V6.684z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  fillRule: \"evenodd\",\n  d: \"M16.177 0l.137.002c.452.009.9.037 1.342.082.346.036.62.303.68.646l.437 2.536c.055.319.296.57.608.655.986.269 1.923.653 2.796 1.14.28.155.624.145.885-.039l2.083-1.47a.775.775 0 01.937.022c.86.699 1.645 1.484 2.343 2.343.22.27.223.653.023.937l-1.439 2.038a.833.833 0 00-.031.896c.512.889.92 1.846 1.204 2.855a.833.833 0 00.653.601l2.435.42c.342.059.61.333.645.679a15.928 15.928 0 01.08 2.064l-.003.114c-.012.382-.038.76-.077 1.134a.775.775 0 01-.645.68l-2.396.412a.835.835 0 00-.656.61 12.511 12.511 0 01-1.2 2.917.832.832 0 00.034.892l1.396 1.978c.2.284.196.667-.023.936a16.104 16.104 0 01-2.343 2.343.775.775 0 01-.937.023l-1.99-1.404a.833.833 0 00-.88-.026c-.907.516-1.886.922-2.916 1.2a.833.833 0 00-.61.656l-.414 2.396a.775.775 0 01-.679.646 16.096 16.096 0 01-3.312 0 .775.775 0 01-.679-.646l-.423-2.452a.834.834 0 00-.598-.636 12.474 12.474 0 01-1.468-.514 12.49 12.49 0 01-1.417-.68.833.833 0 00-.878.03l-2.026 1.43a.775.775 0 01-.937-.023 16.069 16.069 0 01-2.342-2.342.774.774 0 01-.024-.936l1.402-1.986a.833.833 0 00.032-.896 12.507 12.507 0 01-1.214-2.911.833.833 0 00-.655-.606l-2.386-.412a.775.775 0 01-.646-.678 16.097 16.097 0 010-3.314.775.775 0 01.646-.678l2.386-.412a.833.833 0 00.655-.606 12.507 12.507 0 011.214-2.911.833.833 0 00-.032-.896L3.552 6.853a.774.774 0 01.023-.936 16.091 16.091 0 012.343-2.343.775.775 0 01.937-.023l2.03 1.433c.26.177.6.182.874.028.915-.512 1.88-.9 2.87-1.167a.833.833 0 00.612-.656l.424-2.46a.775.775 0 01.679-.645C14.845.032 15.348.004 15.85 0h.326zM16 6.4c-5.302 0-9.6 4.297-9.6 9.599 0 5.302 4.298 9.6 9.6 9.6s9.6-4.298 9.6-9.6-4.298-9.6-9.6-9.6zm-3 4.283c0-1.425 1.637-2.203 2.715-1.29l5.69 4.815c.794.672.794 1.91 0 2.583l-5.69 4.815c-1.078.913-2.715.134-2.715-1.29z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zM5.23 7.764v11.577h17.55V7.764H5.23zm1.816.758h13.917l-6.959 4.577-6.958-4.577zm-1.06.21l8.018 5.274 8.018-5.275v9.853H5.987V8.73z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zm2.99 3.077l-.077.045-.026.015c-1.09.646-1.84 1.239-2.336 1.818-.496.579-.735 1.162-.742 1.725-.014 1.119.812 1.958 1.544 2.708.732.75 1.385 1.456 1.446 2.041.032.298-.039.598-.364 1.008-.324.408-.911.897-1.85 1.445l-1.388.808h8.56l.101-.059c.996-.58 1.667-1.116 2.094-1.655.429-.54.603-1.107.547-1.638-.11-1.052-.967-1.818-1.688-2.556-.721-.739-1.306-1.436-1.298-2.092.004-.331.132-.7.535-1.171.402-.47 1.08-1.02 2.119-1.636l1.362-.806h-8.54zm.241.867h5.271a6.83 6.83 0 00-1.113 1.01c-.496.58-.736 1.163-.743 1.726-.014 1.119.812 1.958 1.544 2.708.732.75 1.385 1.456 1.446 2.041.032.298-.039.598-.364 1.008-.312.393-.872.862-1.753 1.386H8.728c.367-.286.658-.566.88-.847.43-.54.604-1.107.548-1.638-.11-1.052-.968-1.818-1.688-2.556-.721-.739-1.306-1.435-1.298-2.092.004-.331.132-.7.534-1.171.389-.454 1.04-.984 2.021-1.575zm-1.233 1.48v.4h4.12v-.4h-4.12zm-.154 2.158v.4H12.6v-.4H8.34zm1.931 2.158v.4h4.126v-.4H10.27zm.59 2.158v.4h4.276v-.4h-4.276z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zm-1.38 3.16l8.332 4.717L21.78 8.16H5.114zm.021 1.745v9.309H21.8V9.905l-8.353 4.655-8.31-4.655z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zm1.22 1.681V7.84c-.329.093-.63.223-.914.382l-.83-.82-1.554 1.561.83.82c-.16.288-.285.594-.372.911l-1.177.002v2.2l1.189-.004c.109.431.345.819.58 1.165v-1.898l-1.038.004v-.737l1.034-.002.058-.294c.084-.429.252-.838.493-1.203l.165-.25-.727-.718.523-.526.728.719.247-.165c.379-.25.793-.417 1.206-.505l.291-.06-.002-1.01h.75L9.19 8.417H11.16c-.185-.221-.951-.508-1.237-.588L9.93 6.68H7.713zm2.078 2.105l.003 1.158a4.19 4.19 0 00-.915.383l-.83-.821-1.553 1.562.83.82c-.16.288-.286.593-.373.91l-1.176.003v2.2l1.188-.004c.094.326.224.624.383.905l-.85.847 1.57 1.543.847-.843c.29.161.599.286.919.373v1.198c.756.006 1.56.003 2.206.003V17.81a4.19 4.19 0 00.915-.383l.847.835 1.554-1.56-.848-.836c.16-.288.286-.594.373-.912l1.152-.007V12.75l-1.165.007a4.09 4.09 0 00-.382-.905l.805-.807-1.57-1.546-.804.806a4.16 4.16 0 00-.915-.372l.007-1.147H9.792zm.732.73h.751l-.006 1.005.297.058c.43.085.844.252 1.21.492l.25.162.701-.704.528.52-.702.704.169.25c.248.374.412.779.505 1.196l.061.292 1.016-.006v.737l-1.01.006-.058.292c-.085.43-.252.838-.494 1.205l-.165.25.744.733-.523.525-.743-.734-.248.165c-.378.247-.789.418-1.203.503l-.294.058v1.067h-.745v-1.059l-.295-.057a3.395 3.395 0 01-1.21-.492l-.248-.162-.747.743-.528-.52.747-.744-.17-.25a3.546 3.546 0 01-.506-1.196l-.06-.291-1.04.004v-.738l1.034-.002.058-.294c.085-.428.252-.837.493-1.203l.165-.25-.726-.718.522-.526.728.72.248-.166a3.546 3.546 0 011.205-.504l.292-.06-.003-1.01zm.388 2.685a1.65 1.65 0 00-1.645 1.645c0 .904.74 1.645 1.645 1.645a1.65 1.65 0 001.645-1.645 1.65 1.65 0 00-1.645-1.645zm0 .73a.91.91 0 01.915.915.91.91 0 01-.915.914.91.91 0 01-.915-.914.91.91 0 01.915-.915z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.995.001C9.705-.084 3.643 3.964 1.257 9.775-1.235 15.485.06 22.577 4.42 27.03c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994 0zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626C2.101 23.171.377 16.07 2.848 10.44c2.14-5.205 7.515-8.774 13.147-8.708zm-.566 9.03l-7.415 5.235 7.415 5.238v-5.062c2.386 1.689 4.775 3.375 7.163 5.062V10.761l-7.163 5.058v-5.058zm-.866 1.666v7.13L9.51 15.993l5.052-3.565zm7.166 0v7.137l-5.052-3.568 5.052-3.569z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16 0C7.174 0 0 7.174 0 16s7.174 16 16 16 16-7.174 16-16S24.826 0 16 0zm0 1.73c7.892 0 14.27 6.378 14.27 14.27 0 7.891-6.379 14.27-14.27 14.27S1.73 23.891 1.73 16C1.73 8.108 8.108 1.73 16 1.73zm-5.362 7.523v13.493h10.724V9.253H10.638zm.863.866h8.995V21.88H11.501V10.12zm.928 1.324v.863h7.139v-.863h-7.139zm0 2.605v.867h7.139v-.867h-7.139zm0 3.01v.864h7.139v-.863h-7.139zm0 2.72v.863h7.139v-.863h-7.139z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.995.005C9.705-.08 3.643 3.968 1.257 9.78-1.235 15.49.06 22.581 4.42 27.034c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994.005zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626-4.814-3.838-6.538-10.939-4.067-16.57 2.14-5.205 7.515-8.774 13.147-8.708zm6.13 7.45l-3.635 7.37-4.52-5.88c-1.37 4.048-2.738 8.095-4.106 12.143l4.603-5.917 4.748 5.433 2.91-13.149zm-7.754 3.889l4.299 5.449 1.073-2.39-1.028 4.135-4.387-5.16-1.78 2.75 1.823-4.784z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.995.001C9.705-.084 3.643 3.964 1.257 9.775-1.235 15.485.06 22.577 4.42 27.03c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994 0zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626C2.101 23.171.377 16.07 2.848 10.44c2.14-5.205 7.515-8.774 13.147-8.708zm0 7.183c-1.674 4.658-2.736 9.509-4.41 14.166 1.535-1.526 2.874-3.236 4.41-4.763l4.41 4.763c-1.499-4.713-2.913-9.453-4.41-14.166zm.032 2.931c.822 2.588 1.598 5.19 2.42 7.778l-2.42-2.615c-.683.598-2.455 2.887-2.34 2.39.871-2.489 1.448-5.07 2.34-7.553z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.995.001C9.705-.084 3.643 3.964 1.257 9.775-1.235 15.485.06 22.577 4.42 27.03c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994 0zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626C2.101 23.171.377 16.07 2.848 10.44c2.14-5.205 7.515-8.774 13.147-8.708zm-7.257 8.732v11.069h14.513v-11.07H8.738zm3.224 1.73h8.064c-1.428.878-2.857 2.807-4.285 3.018l-3.779-3.019zm9.562 1.017v6.593H10.465V13.21l5.528 4.417 5.53-4.418z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.995.001C9.705-.084 3.643 3.964 1.257 9.775-1.235 15.485.06 22.577 4.42 27.03c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994 0zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626C2.101 23.171.377 16.07 2.848 10.44c2.14-5.205 7.515-8.774 13.147-8.708zm0 6.328l-7.626 5.536c.97 2.986 1.942 5.971 2.913 8.957h9.426l2.912-8.957-7.625-5.536zm0 1.068l6.609 4.798-2.525 7.763H11.91l-2.524-7.763 6.609-4.798z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M10.632 9.189V22.68h10.723V9.189H10.632zm.862.865h8.994v11.76H11.494v-11.76zm.928 1.324v.863h7.138v-.863h-7.138zm0 2.605v.866h7.138v-.866h-7.138zm0 3.01v.863h7.138v-.863h-7.138zm0 2.72v.862h7.138v-.863h-7.138zM16.12 0h-.232l-.22.004h-.012l-.221.006h-.012l-.22.01h-.012l-.22.013h-.012l-.22.016h-.012l-.22.019h-.005l-.006.001-.22.021h-.006l-.005.001-.22.025h-.011l-.22.028h-.005l-.006.002-.219.03h-.005l-.006.001-.218.033-.006.001-.006.001-.217.036-.006.001-.006.001-.217.039-.006.001-.006.001-.216.042-.006.001-.006.001-.215.045-.006.001-.006.002-.215.047-.006.002-.006.001-.214.05-.006.002-.006.002-.115.029-.152.053-.14.081-.122.106-.1.126-.075.143-.047.154-.018.16.012.16.042.156.07.145.095.13.118.11.137.086.15.059.158.03h.161l.132-.022.11-.028.202-.047.203-.046.208-.043.202-.039.206-.037.206-.034.205-.03.208-.03.205-.025.209-.023.208-.02.21-.017.209-.015.207-.011.21-.009.21-.006.207-.003h.21l.21.002.207.005.207.008.212.011.207.014.208.017.209.019.208.022.205.025.206.028.207.03.208.035.205.036.202.039.052.01.16.018.16-.012.156-.042.146-.07.13-.096.109-.119.085-.136.06-.15.03-.159v-.16l-.03-.16-.059-.15-.086-.136-.109-.118-.13-.096-.145-.07-.128-.038-.057-.011-.006-.002h-.006l-.216-.042-.006-.001-.006-.001-.217-.039H18.9l-.006-.002-.217-.035-.006-.001-.006-.001-.218-.032-.006-.001-.006-.001-.218-.03h-.006l-.006-.001-.219-.027h-.011l-.22-.024-.005-.001h-.006l-.22-.021h-.006l-.006-.001-.22-.017-.005-.001h-.006L17.06.03h-.012l-.22-.012h-.012l-.22-.01h-.012l-.22-.005h-.012L16.132 0h-.012zm8.715 2.783l-.157.034-.149.063-.134.089-.116.112-.092.132-.067.147-.038.157-.008.16.021.16.051.153.079.141.103.124.102.087.052.038h.001l.087.064v.001l.082.061.002.001.076.059h.001l.084.065.082.066.002.001.079.063.002.002.077.063.081.067.002.002.077.065.076.065.001.002.08.07.078.07h.002l.075.068.077.072.002.001.073.069.077.073.072.07.002.001.077.076.07.07v.001l.075.076.07.073.002.001.074.079.002.002.069.074.069.075.074.082.07.08.002.001.068.079h.001l.067.079.068.082.065.078.001.002.068.083.067.084.063.081.001.002.067.087.002.002.063.084.001.001.064.087.008.01.008.01.095.12.093.121.09.119.087.119.088.122.086.123.084.12.081.122.001.002.084.126.08.126.08.127.077.126.079.131.074.127.075.131.073.131.07.13.07.133.069.133.045.09.086.137.109.119.13.096.144.07.156.042.16.013.16-.017.155-.047.143-.075.126-.1.106-.121.082-.14.054-.151.025-.16-.005-.16-.035-.158-.05-.124-.048-.095-.002-.004-.002-.004-.073-.14-.002-.005-.002-.004-.074-.14-.002-.004-.002-.004-.076-.14-.002-.003-.002-.004-.077-.139-.003-.004-.002-.004-.078-.138-.003-.004-.002-.003-.08-.137-.002-.004-.003-.004-.081-.136-.002-.004-.003-.004-.083-.136-.002-.003-.002-.004-.085-.135-.002-.004-.003-.003-.085-.134-.003-.004-.002-.004-.087-.132-.003-.004-.003-.004-.088-.132-.003-.003-.002-.004-.09-.13-.003-.005-.003-.003-.091-.13-.003-.004-.002-.004-.093-.129-.003-.003-.003-.004-.094-.128-.003-.004-.003-.003-.095-.127-.003-.004-.003-.004-.097-.125-.003-.004-.003-.004-.09-.114-.06-.082-.003-.003-.002-.003-.069-.091-.002-.004-.002-.003-.07-.09-.003-.003-.002-.003-.07-.09-.003-.003-.002-.003-.071-.09-.002-.003-.003-.002-.072-.089-.002-.003-.002-.003-.073-.088-.002-.003-.002-.002-.074-.087-.002-.003-.002-.003-.074-.086-.003-.003-.002-.003-.074-.086-.003-.002-.002-.003-.075-.085-.003-.003-.002-.002-.076-.084-.002-.003-.003-.003-.076-.083-.002-.003-.003-.003-.077-.082-.002-.003-.003-.002-.077-.082-.003-.003-.003-.002-.078-.081-.002-.003-.003-.003-.078-.08-.003-.002-.003-.003-.079-.08-.002-.002-.003-.002-.08-.08-.002-.002-.003-.002-.08-.078-.003-.003-.003-.002-.08-.077-.003-.003-.003-.002-.082-.077-.002-.002-.003-.002-.082-.076-.003-.002-.002-.003-.083-.075-.003-.002-.002-.003-.084-.074-.002-.002-.003-.002-.084-.074-.003-.002-.002-.002-.085-.073-.002-.002-.003-.003-.085-.071-.003-.003-.002-.002-.086-.07-.003-.003-.002-.002-.086-.07-.003-.003-.003-.002-.086-.07-.003-.002-.003-.002-.087-.069-.002-.002-.003-.002-.088-.068-.002-.002-.003-.002-.088-.067-.003-.003-.003-.002-.088-.066-.003-.002-.003-.002-.089-.066-.003-.002-.003-.002-.057-.042-.14-.082-.15-.055-.16-.026-.16.004zM6.377 3.21l-.157.037-.148.066-.111.074-.007.006-.003.002-.003.002-.086.069-.003.002-.002.002-.086.07-.003.002-.002.002-.086.07-.002.003-.003.002-.085.071-.002.002-.003.003-.084.071-.003.003-.002.002-.084.072-.003.003-.002.002-.083.073-.003.003-.002.002-.083.074-.002.002-.003.003-.082.074-.003.003-.002.002-.081.076-.003.002-.003.002-.08.077-.003.002-.003.003-.08.076-.002.003-.003.002-.08.078-.002.002-.003.003-.079.078-.002.003-.003.002-.078.08-.003.002-.002.002-.078.08-.002.003-.003.002-.077.08-.003.004-.002.002-.077.081-.002.003-.003.003-.076.082-.002.002-.003.003-.075.082-.002.003-.003.003-.074.083-.003.003-.002.003-.074.084-.003.003-.002.002-.074.085-.002.003-.002.003-.073.085-.003.003-.002.003-.072.086-.002.003-.003.003-.071.087-.003.003-.002.002-.07.088-.003.003-.002.003-.07.088-.003.003-.002.003-.07.09-.002.002-.002.003-.069.09-.002.003-.003.003-.068.09-.002.003-.002.003-.067.092-.003.003-.002.003-.067.092-.002.003-.002.003-.066.092-.002.003-.002.004-.066.093-.002.003-.002.003-.065.094-.002.003-.002.004-.064.094-.002.003-.002.004-.063.095-.002.003-.002.003-.063.097-.002.003-.002.003-.046.073-.05.07-.003.002-.002.003-.067.093-.003.003-.002.003-.066.094-.002.003-.002.003-.066.094-.002.003-.002.003-.064.094-.002.004-.002.003-.064.094-.002.004-.002.003-.062.095-.002.003-.002.003-.062.096-.002.003-.002.003-.06.096-.003.003-.002.003-.06.096-.001.004-.002.003-.059.096-.002.004-.002.003-.058.097-.002.003-.001.003-.057.098-.002.003-.002.003-.056.098-.002.003-.002.003-.055.098-.002.004-.001.003-.055.098-.001.004-.002.003-.054.099-.001.003-.002.003-.052.1-.002.002-.002.004-.051.1-.002.002-.002.004-.05.1-.002.003-.002.003-.05.1v.003l-.002.004-.05.1v.003l-.002.004-.048.1-.002.004-.001.003-.047.101-.002.003-.001.004-.013.027-.052.152-.024.16.006.16.037.157.064.148.091.133.114.114.134.09.147.065.157.036.162.006.159-.024.152-.053.14-.08.122-.105.1-.126.066-.117.01-.023.044-.095.045-.095.002-.003.042-.087.048-.097.048-.095v-.001l.048-.092.001-.001.047-.09.05-.093.002-.002.049-.09.052-.092.001-.002.051-.089.001-.002.051-.087.053-.088.001-.002.055-.091.057-.091.057-.09.001-.002.057-.089.055-.083.001-.002.06-.09.06-.088.062-.089.001-.001.06-.084.063-.088.065-.089.017-.023.016-.025.06-.094.059-.09v-.002l.058-.086.057-.086.001-.001.062-.09.062-.088.001-.002.06-.085.002-.002.06-.082.063-.087.064-.084.002-.002.061-.08.065-.084.064-.08v-.001l.067-.083.067-.082.07-.083.069-.08.063-.074.074-.083.068-.077.002-.002.07-.076.07-.075.072-.077.001-.001.067-.07.076-.078.002-.002.07-.07.075-.075.002-.002.072-.07.075-.072.002-.002.073-.069.074-.068.001-.001.08-.073.076-.068.002-.002.072-.063v-.001l.078-.067.079-.068.002-.001.08-.068.002-.002.077-.063.082-.066.001-.001.075-.06.002-.002.006-.004.117-.111.094-.131.068-.146.04-.156.01-.161-.019-.16-.049-.154-.076-.141-.102-.125-.123-.105-.14-.079-.153-.052-.16-.023-.16.007zm24.596 11.088l-.156.04-.146.067-.131.094-.112.117-.087.135-.061.15-.033.157-.004.134.007.142.005.152.004.15.002.149v.153l.001.011v.015l.004.11.002.11v.002l.002.106v.321l-.003.102-.002.106-.004.107-.005.105-.006.106-.006.106-.008.106v.002l-.008.103v.002l-.01.1-.01.105-.01.105-.013.105-.012.099v.002l-.014.108-.014.1-.016.105-.016.103v.002l-.017.099-.018.104-.019.103v.002l-.019.097-.02.104-.022.103v.001l-.022.098-.023.103v.002l-.024.096-.025.103v.002l-.024.096-.027.102v.003l-.026.093v.001l-.029.103v.002l-.03.099-.028.097v.002l-.03.095-.03.096v.001l-.033.1-.031.095v.002l-.035.1v.003l-.034.094v.003l-.035.096v.001l-.034.09v.002l-.038.098-.036.093v.002l-.038.095-.079.194-.08.188-.085.189-.087.19-.09.184-.092.183-.095.184-.05.093-.064.148-.034.158-.005.16.026.16.054.151.082.14.106.12.127.1.143.075.154.046.16.017.161-.013.156-.042.144-.071.13-.096.109-.119.072-.112.053-.099.003-.005.003-.006.102-.195.003-.006.003-.006.098-.196.003-.006.003-.006.096-.197.002-.006.003-.006.093-.2.002-.006.003-.006.09-.2.002-.006.003-.007.086-.202.003-.006.002-.006.084-.203.002-.005.001-.005.04-.102.002-.003.001-.003.04-.103.001-.003.001-.003.04-.103v-.004l.001-.003.039-.103v-.003l.002-.003.037-.104.001-.003.001-.003.037-.104v-.004l.002-.003.035-.104.002-.003v-.004l.035-.104.002-.004v-.003l.034-.105.002-.003v-.003l.034-.105v-.004l.002-.003.032-.106.001-.003.001-.003.031-.106.001-.003.001-.004.031-.106.001-.003.001-.004.03-.106v-.003l.002-.004.028-.107.001-.003.001-.003.028-.107.001-.004.001-.003.027-.107.001-.004v-.003l.027-.108.001-.003v-.004l.026-.108.001-.003v-.004l.025-.108.001-.003v-.004l.025-.108v-.004l.001-.003.023-.109v-.003l.001-.004.022-.109v-.003l.002-.004.02-.109.001-.004v-.003l.02-.11.002-.003v-.004l.02-.11v-.007l.019-.11v-.003l.001-.004.017-.11v-.004l.001-.003.017-.11v-.008l.016-.11v-.004l.001-.004.015-.11v-.008l.015-.111v-.008l.013-.111v-.007l.013-.112v-.007l.011-.112v-.004l.001-.004.01-.112v-.007l.01-.112v-.008l.008-.112v-.008l.007-.113v-.007l.007-.113v-.008l.005-.113v-.007l.005-.114v-.007l.003-.114v-.007l.003-.114v-.129l.001-.114v-.13l-.003-.114v-.008l-.003-.115v-.007l-.003-.102v-.155l-.003-.158v-.01l-.004-.158v-.01l-.006-.158v-.01l-.007-.148-.023-.16-.051-.152-.08-.14-.103-.124-.125-.102-.142-.077-.153-.05-.16-.02-.161.01zm-30.213.66l-.157.034-.149.063-.134.09-.115.113-.092.132-.067.147-.037.156-.009.134.001.11V15.95l.006.22v.012l.01.22v.012l.012.22v.006l.001.006.015.22v.005l.001.006.018.22.001.006v.006l.022.219v.006l.001.006.024.219.001.006v.006l.028.218.001.006v.006l.031.218.001.006.001.006.033.218.001.006.001.005.037.218v.006l.002.005.04.217v.006l.001.006.043.216.001.006.001.006.046.216v.005l.002.006.048.215.002.006.001.006.051.214.002.006v.006l.055.214.002.005.001.006.057.213.002.006.001.005.06.213.002.005.001.006.063.212.002.005.001.006.066.21.002.006.002.006.068.21.002.005.002.005.07.21.003.005.002.005.074.208.002.006.002.005.077.207.002.006.002.005.08.206.002.005.002.006.082.204.002.006.002.005.086.204.002.005.002.006.088.202.002.005.003.006.09.2.003.006.002.005.094.2.002.006.003.005.096.199.002.005.003.005.03.062.086.137.11.118.128.097.145.07.156.043.16.013.16-.017.155-.047.143-.074.127-.1.106-.121.081-.14.055-.15.025-.16-.005-.161-.034-.158-.05-.124-.028-.055-.092-.19-.087-.188-.087-.192-.083-.19-.08-.193-.078-.194-.076-.196-.073-.195-.07-.197-.067-.198-.065-.199-.063-.2-.059-.2-.056-.2-.055-.204-.05-.201-.049-.202-.046-.205-.043-.206-.04-.203-.038-.207-.034-.204-.032-.207-.028-.205-.026-.207-.023-.208-.02-.207-.018-.207-.014-.208-.011-.207-.009-.208-.005-.207-.002-.104-.017-.16-.046-.155-.074-.143-.1-.126-.121-.107-.139-.081-.152-.055-.159-.025-.161.004zm24.585 11.83l-.156.039-.146.068-.11.076-.015.012-.163.129-.166.127-.168.125-.17.124-.17.12-.172.118-.173.115-.176.114-.177.111-.18.11-.178.105-.182.104-.182.101-.184.1-.184.095-.189.095-.186.09-.188.089-.19.086-.19.082-.193.081-.195.078-.191.074-.197.073-.195.07-.196.065-.198.064-.198.061-.2.058-.2.055-.2.052-.2.049-.151.035-.153.05-.141.078-.125.103-.103.124-.078.14-.05.154-.022.16.009.16.038.157.067.147.093.132.116.112.134.089.149.062.158.034.16.003.133-.02.158-.035.006-.002.006-.001.213-.052.006-.002.007-.001.212-.056.006-.001.006-.002.212-.058.006-.002.006-.002.211-.061.006-.002.006-.002.21-.064.006-.002.006-.002.21-.067.005-.002.006-.002.208-.07.006-.002.006-.003.207-.073.006-.002.006-.002.206-.077.006-.002.005-.002.206-.08.005-.001.006-.003.204-.082.006-.002.005-.002.203-.085.006-.003.005-.002.202-.088.006-.002.005-.003.2-.09.006-.003.006-.003.2-.093.005-.003.005-.002.198-.096.006-.003.005-.003.197-.099.005-.002.005-.003.196-.102.005-.002.005-.003.195-.105.005-.002.005-.003.193-.107.005-.003.005-.003.191-.11.005-.003.005-.003.19-.112.005-.003.005-.003.189-.115.005-.003.005-.003.187-.117.005-.003.004-.004.186-.12.005-.003.004-.003.184-.122.005-.003.005-.004.182-.125.004-.003.005-.003.18-.128.005-.003.005-.003.179-.13.004-.003.005-.004.177-.132.004-.004.005-.003.175-.135.005-.003.004-.004.173-.137.005-.003.004-.004.019-.015.115-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.052-.153-.079-.14-.103-.124-.125-.102-.142-.078-.153-.05-.16-.02-.16.01zm-19.17.054l-.153.051-.14.079-.124.103-.103.125-.077.141-.05.153-.02.16.009.161.04.156.067.147.093.131.095.094.047.04.005.004.005.004.17.14.005.004.005.004.172.137.004.004.005.003.086.067.003.002.003.002.087.067.003.002.003.002.088.066.002.003.003.002.089.065.002.002.003.002.09.065.002.002.003.002.09.064.002.002.003.002.09.063.003.002.003.002.09.063.003.002.003.002.092.062.002.002.003.002.092.061.003.002.003.002.092.06.003.003.003.001.093.06.003.002.003.002.093.06.003.001.003.002.094.058.003.002.003.002.095.058.003.001.003.002.095.057.003.002.003.002.095.056.003.002.003.002.096.055.004.002.003.001.096.055.003.002.003.002.098.053.003.002.003.002.097.053.004.002.003.001.098.053.003.001.003.002.099.052.003.001.003.002.1.05.003.002.003.002.1.05.003.002.003.001.1.05h.003l.004.003.1.048.004.001.003.002.101.048.003.001.004.002.101.046.004.002.003.001.102.046.004.002.003.001.103.045.003.002.003.001.103.045.004.001.003.002.104.043.003.001.004.002.104.042.003.002.004.001.104.042.004.001.003.002.105.04.004.002.003.001.106.04.003.002h.004l.106.04.004.001.003.002.107.038.003.001.004.001.107.038.003.001.004.001.107.037.004.001.004.001.108.036.003.001.004.001.108.035.004.001.003.001.11.034.003.001.004.001.109.033.004.002h.003l.11.033h.004l.003.002.11.031.004.001.004.001.084.023.081.028.004.001.003.001.109.037.003.001.004.001.109.036.003.001.004.001.109.035h.003l.004.002.11.033.003.001.003.001.11.033.003.001.004.001.109.031.004.002h.003l.11.031.003.001.004.001.11.03h.003l.003.001.11.029h.004l.003.002.11.027.003.001.004.001.11.027h.003l.004.001.004.001.16.022.16-.008.157-.038.147-.067.132-.092.112-.116.09-.134.062-.149.034-.157.004-.161-.025-.16-.055-.151-.082-.139-.107-.12-.127-.1-.143-.074-.124-.04h-.003l-.104-.025-.103-.026h-.002l-.095-.026h-.001l-.101-.027h-.002l-.1-.028h-.002l-.103-.03-.104-.032-.097-.03h-.002l-.103-.033-.102-.033-.101-.034-.106-.036-.027-.01-.027-.007-.107-.03-.104-.029-.104-.03h-.002l-.097-.03-.102-.032-.102-.032-.102-.034-.103-.035-.096-.034-.1-.036-.101-.037h-.002l-.094-.036-.096-.037-.097-.04h-.002l-.099-.04-.098-.042h-.002l-.092-.04-.097-.043-.095-.043-.097-.044h-.002l-.09-.043-.094-.045-.094-.046-.093-.047-.09-.046-.096-.05-.088-.047-.002-.001-.09-.049-.094-.052-.002-.002-.087-.049-.087-.05h-.002l-.088-.053h-.001l-.09-.055-.086-.052-.002-.001-.089-.055-.084-.054h-.002l-.09-.059h-.001l-.085-.056-.001-.001-.084-.056-.082-.056h-.001l-.086-.06-.082-.058H7.79l-.086-.062-.002-.002-.08-.058-.081-.06h-.001l-.085-.064-.002-.002-.076-.058-.002-.002-.082-.064-.161-.128-.162-.133-.04-.034-.132-.092-.147-.066-.157-.038-.16-.008-.16.022z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16 9.209c-1.674 4.655-2.735 9.504-4.408 14.16 1.534-1.526 2.873-3.235 4.407-4.761l4.408 4.76c-1.497-4.71-2.91-9.448-4.408-14.16zm.031 2.93c.822 2.586 1.598 5.187 2.42 7.774l-2.42-2.614c-.682.598-2.453 2.886-2.34 2.389.873-2.488 1.45-5.068 2.34-7.55zM16.132.364c-1.51.016-3.055.139-4.492.614-.854.442-.266 1.861.651 1.578 2.266-.58 4.656-.596 6.944-.144.935.063 1.21-1.391.318-1.674-1.118-.26-2.274-.361-3.42-.374zm8.865 2.777c-.931-.1-1.262 1.29-.425 1.666 1.863 1.364 3.222 3.298 4.322 5.296.617.737 1.875-.145 1.398-.979-1.184-2.275-2.808-4.384-4.923-5.866a.863.863 0 00-.372-.117zM6.55 3.564c-.734.078-1.196.762-1.735 1.206C3.552 6.02 2.55 7.511 1.681 9.053c-.31.533-.71 1.33-.03 1.767.615.432 1.282-.132 1.446-.742.796-1.475 1.746-2.89 2.934-4.08.43-.548 1.292-.822 1.34-1.595a.874.874 0 00-.822-.839zm24.582 11.078c-.771-.033-1.004.82-.873 1.437.13 2.395-.471 4.797-1.615 6.897-.33.876.984 1.559 1.512.785a14.276 14.276 0 001.761-8.54.865.865 0 00-.785-.579zm-30.195.666c-.774-.06-1.032.785-.905 1.407.117 2.41.732 4.81 1.858 6.945.528.774 1.84.09 1.51-.786A15.932 15.932 0 011.728 16a.876.876 0 00-.79-.692zm24.57 11.817c-.762.099-1.243.835-1.919 1.16-1.514 1.002-3.237 1.632-4.978 2.092-.864.423-.307 1.855.616 1.591 2.528-.578 4.93-1.75 6.913-3.421.469-.522.07-1.42-.631-1.422zm-19.16.042c-.845.001-1.12 1.228-.395 1.628 1.665 1.401 3.667 2.348 5.76 2.912.618.178 1.482.565 1.893-.177.355-.628-.226-1.297-.87-1.326-1.972-.515-3.912-1.285-5.5-2.594-.26-.213-.522-.472-.888-.443z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M8.746 10.393v11.064h14.506V10.393H8.746zm3.223 1.728h8.06c-1.428.879-2.856 2.807-4.283 3.018l-3.777-3.018zm9.557 1.018v6.59H10.473v-6.59l5.525 4.416 5.528-4.416zM16.132 0c-1.51.016-3.055.139-4.492.614-.854.442-.266 1.861.651 1.578 2.266-.58 4.656-.596 6.944-.144.935.063 1.21-1.391.318-1.674-1.118-.26-2.274-.361-3.42-.374zm8.865 2.777c-.931-.1-1.262 1.29-.425 1.666 1.863 1.364 3.222 3.298 4.322 5.296.617.737 1.875-.145 1.398-.979-1.184-2.275-2.808-4.384-4.923-5.866a.863.863 0 00-.372-.117zM6.55 3.2c-.734.078-1.196.762-1.735 1.206C3.552 5.656 2.55 7.147 1.681 8.69c-.31.533-.71 1.33-.03 1.767.615.432 1.282-.132 1.446-.742.796-1.475 1.746-2.89 2.934-4.08.43-.548 1.292-.822 1.34-1.595a.874.874 0 00-.822-.839zm24.582 11.078c-.771-.033-1.004.82-.873 1.437.13 2.395-.471 4.797-1.615 6.897-.33.876.984 1.559 1.512.785a14.276 14.276 0 001.761-8.54.865.865 0 00-.785-.579zm-30.195.666c-.774-.06-1.032.785-.905 1.407.117 2.41.732 4.81 1.858 6.945.528.774 1.84.09 1.51-.786a15.932 15.932 0 01-1.672-6.874.876.876 0 00-.79-.692zm24.57 11.817c-.762.099-1.243.835-1.919 1.16-1.514 1.002-3.237 1.632-4.978 2.092-.864.423-.307 1.855.616 1.591 2.528-.578 4.93-1.75 6.913-3.421.469-.522.07-1.42-.631-1.422zm-19.16.042c-.845.001-1.12 1.228-.395 1.628 1.665 1.401 3.667 2.348 5.76 2.912.618.178 1.482.565 1.893-.177.355-.628-.226-1.297-.87-1.326-1.972-.515-3.912-1.285-5.5-2.594-.26-.213-.522-.472-.888-.443z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M23.621 13.524L16 7.99l-7.622 5.534 2.911 8.952h9.422l2.911-8.952zm-1.016.33l-2.523 7.759h-8.165l-2.524-7.76L16 9.059l6.606 4.796zM16.132 0c-1.51.016-3.055.139-4.492.614-.854.442-.266 1.861.651 1.578 2.266-.58 4.656-.596 6.944-.144.935.063 1.21-1.391.318-1.674-1.118-.26-2.274-.361-3.42-.374zm8.865 2.777c-.931-.1-1.262 1.29-.425 1.666 1.863 1.364 3.222 3.298 4.322 5.296.617.737 1.875-.145 1.398-.979-1.184-2.275-2.808-4.384-4.923-5.866a.863.863 0 00-.372-.117zM6.55 3.2c-.734.078-1.196.762-1.735 1.206C3.552 5.656 2.55 7.147 1.681 8.69c-.31.533-.71 1.33-.03 1.767.615.432 1.282-.132 1.446-.742.796-1.475 1.746-2.89 2.934-4.08.43-.548 1.292-.822 1.34-1.595a.874.874 0 00-.822-.839zm24.582 11.078c-.771-.033-1.004.82-.873 1.437.13 2.395-.471 4.797-1.615 6.897-.33.876.984 1.559 1.512.785a14.276 14.276 0 001.761-8.54.865.865 0 00-.785-.579zm-30.195.666c-.774-.06-1.032.785-.905 1.407.117 2.41.732 4.81 1.858 6.945.528.774 1.84.09 1.51-.786a15.932 15.932 0 01-1.672-6.874.876.876 0 00-.79-.692zm24.57 11.817c-.762.099-1.243.835-1.919 1.16-1.514 1.002-3.237 1.632-4.978 2.092-.864.423-.307 1.855.616 1.591 2.528-.578 4.93-1.75 6.913-3.421.469-.522.07-1.42-.631-1.422zm-19.16.042c-.845.001-1.12 1.228-.395 1.628 1.665 1.401 3.667 2.348 5.76 2.912.618.178 1.482.565 1.893-.177.355-.628-.226-1.297-.87-1.326-1.972-.515-3.912-1.285-5.5-2.594-.26-.213-.522-.472-.888-.443z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M13.503 9.016v4.428H9.075v4.98h4.428v4.428h4.98v-4.427h4.428v-4.981h-4.427V9.016h-4.981zm.83.83h3.32v4.428h4.428v3.32h-4.428v4.428h-3.32v-4.454H9.905v-3.294h4.428V9.846zM16.12 0h-.232l-.22.004h-.012l-.221.006h-.012l-.22.01h-.012l-.22.013h-.012l-.22.016h-.012l-.22.019h-.005l-.006.001-.22.021h-.006l-.005.001-.22.025h-.011l-.22.028h-.005l-.006.002-.219.03h-.005l-.006.001-.218.033-.006.001-.006.001-.217.036-.006.001-.006.001-.217.039-.006.001-.006.001-.216.042-.006.001-.006.001-.215.045-.006.001-.006.002-.215.047-.006.002-.006.001-.214.05-.006.002-.006.002-.115.029-.152.053-.14.081-.122.106-.1.126-.075.143-.047.154-.018.16.012.16.042.156.07.145.095.13.118.11.137.086.15.059.158.03h.161l.132-.022.11-.028.202-.047.203-.046.208-.043.202-.039.206-.037.206-.034.205-.03.208-.03.205-.025.209-.023.208-.02.21-.017.209-.015.207-.011.21-.009.21-.006.207-.003h.21l.21.002.207.005.207.008.212.011.207.014.208.017.209.019.208.022.205.025.206.028.207.03.208.035.205.036.202.039.052.01.16.018.16-.012.156-.042.146-.07.13-.096.109-.119.085-.136.06-.15.03-.159v-.16l-.03-.16-.059-.15-.086-.136-.109-.118-.13-.096-.145-.07-.128-.038-.057-.011-.006-.002h-.006l-.216-.042-.006-.001-.006-.001-.217-.039H18.9l-.006-.002-.217-.035-.006-.001-.006-.001-.218-.032-.006-.001-.006-.001-.218-.03h-.006l-.006-.001-.219-.027h-.011l-.22-.024-.005-.001h-.006l-.22-.021h-.006l-.006-.001-.22-.017-.005-.001h-.006L17.06.03h-.012l-.22-.012h-.012l-.22-.01h-.012l-.22-.005h-.012L16.132 0h-.012zm8.715 2.783l-.157.034-.149.063-.134.089-.116.112-.092.132-.067.147-.038.157-.008.16.021.16.051.153.079.141.103.124.102.087.052.038h.001l.087.064v.001l.082.061.002.001.076.059h.001l.084.065.082.066.002.001.079.063.002.002.077.063.081.067.002.002.077.065.076.065.001.002.08.07.078.07h.002l.075.068.077.072.002.001.073.069.077.073.072.07.002.001.077.076.07.07v.001l.075.076.07.073.002.001.074.079.002.002.069.074.069.075.074.082.07.08.002.001.068.079h.001l.067.079.068.082.065.078.001.002.068.083.067.084.063.081.001.002.067.087.002.002.063.084.001.001.064.087.008.01.008.01.095.12.093.121.09.119.087.119.088.122.086.123.084.12.081.122.001.002.084.126.08.126.08.127.077.126.079.131.074.127.075.131.073.131.07.13.07.133.069.133.045.09.086.137.109.119.13.096.144.07.156.042.16.013.16-.017.155-.047.143-.075.126-.1.106-.121.082-.14.054-.151.025-.16-.005-.16-.035-.158-.05-.124-.048-.095-.002-.004-.002-.004-.073-.14-.002-.005-.002-.004-.074-.14-.002-.004-.002-.004-.076-.14-.002-.003-.002-.004-.077-.139-.003-.004-.002-.004-.078-.138-.003-.004-.002-.003-.08-.137-.002-.004-.003-.004-.081-.136-.002-.004-.003-.004-.083-.136-.002-.003-.002-.004-.085-.135-.002-.004-.003-.003-.085-.134-.003-.004-.002-.004-.087-.132-.003-.004-.003-.004-.088-.132-.003-.003-.002-.004-.09-.13-.003-.005-.003-.003-.091-.13-.003-.004-.002-.004-.093-.129-.003-.003-.003-.004-.094-.128-.003-.004-.003-.003-.095-.127-.003-.004-.003-.004-.097-.125-.003-.004-.003-.004-.09-.114-.06-.082-.003-.003-.002-.003-.069-.091-.002-.004-.002-.003-.07-.09-.003-.003-.002-.003-.07-.09-.003-.003-.002-.003-.071-.09-.002-.003-.003-.002-.072-.089-.002-.003-.002-.003-.073-.088-.002-.003-.002-.002-.074-.087-.002-.003-.002-.003-.074-.086-.003-.003-.002-.003-.074-.086-.003-.002-.002-.003-.075-.085-.003-.003-.002-.002-.076-.084-.002-.003-.003-.003-.076-.083-.002-.003-.003-.003-.077-.082-.002-.003-.003-.002-.077-.082-.003-.003-.003-.002-.078-.081-.002-.003-.003-.003-.078-.08-.003-.002-.003-.003-.079-.08-.002-.002-.003-.002-.08-.08-.002-.002-.003-.002-.08-.078-.003-.003-.003-.002-.08-.077-.003-.003-.003-.002-.082-.077-.002-.002-.003-.002-.082-.076-.003-.002-.002-.003-.083-.075-.003-.002-.002-.003-.084-.074-.002-.002-.003-.002-.084-.074-.003-.002-.002-.002-.085-.073-.002-.002-.003-.003-.085-.071-.003-.003-.002-.002-.086-.07-.003-.003-.002-.002-.086-.07-.003-.003-.003-.002-.086-.07-.003-.002-.003-.002-.087-.069-.002-.002-.003-.002-.088-.068-.002-.002-.003-.002-.088-.067-.003-.003-.003-.002-.088-.066-.003-.002-.003-.002-.089-.066-.003-.002-.003-.002-.057-.042-.14-.082-.15-.055-.16-.026-.16.004zM6.377 3.21l-.157.037-.148.066-.111.074-.007.006-.003.002-.003.002-.086.069-.003.002-.002.002-.086.07-.003.002-.002.002-.086.07-.002.003-.003.002-.085.071-.002.002-.003.003-.084.071-.003.003-.002.002-.084.072-.003.003-.002.002-.083.073-.003.003-.002.002-.083.074-.002.002-.003.003-.082.074-.003.003-.002.002-.081.076-.003.002-.003.002-.08.077-.003.002-.003.003-.08.076-.002.003-.003.002-.08.078-.002.002-.003.003-.079.078-.002.003-.003.002-.078.08-.003.002-.002.002-.078.08-.002.003-.003.002-.077.08-.003.004-.002.002-.077.081-.002.003-.003.003-.076.082-.002.002-.003.003-.075.082-.002.003-.003.003-.074.083-.003.003-.002.003-.074.084-.003.003-.002.002-.074.085-.002.003-.002.003-.073.085-.003.003-.002.003-.072.086-.002.003-.003.003-.071.087-.003.003-.002.002-.07.088-.003.003-.002.003-.07.088-.003.003-.002.003-.07.09-.002.002-.002.003-.069.09-.002.003-.003.003-.068.09-.002.003-.002.003-.067.092-.003.003-.002.003-.067.092-.002.003-.002.003-.066.092-.002.003-.002.004-.066.093-.002.003-.002.003-.065.094-.002.003-.002.004-.064.094-.002.003-.002.004-.063.095-.002.003-.002.003-.063.097-.002.003-.002.003-.046.073-.05.07-.003.002-.002.003-.067.093-.003.003-.002.003-.066.094-.002.003-.002.003-.066.094-.002.003-.002.003-.064.094-.002.004-.002.003-.064.094-.002.004-.002.003-.062.095-.002.003-.002.003-.062.096-.002.003-.002.003-.06.096-.003.003-.002.003-.06.096-.001.004-.002.003-.059.096-.002.004-.002.003-.058.097-.002.003-.001.003-.057.098-.002.003-.002.003-.056.098-.002.003-.002.003-.055.098-.002.004-.001.003-.055.098-.001.004-.002.003-.054.099-.001.003-.002.003-.052.1-.002.002-.002.004-.051.1-.002.002-.002.004-.05.1-.002.003-.002.003-.05.1v.003l-.002.004-.05.1v.003l-.002.004-.048.1-.002.004-.001.003-.047.101-.002.003-.001.004-.013.027-.052.152-.024.16.006.16.037.157.064.148.091.133.114.114.134.09.147.065.157.036.162.006.159-.024.152-.053.14-.08.122-.105.1-.126.066-.117.01-.023.044-.095.045-.095.002-.003.042-.087.048-.097.048-.095v-.001l.048-.092.001-.001.047-.09.05-.093.002-.002.049-.09.052-.092.001-.002.051-.089.001-.002.051-.087.053-.088.001-.002.055-.091.057-.091.057-.09.001-.002.057-.089.055-.083.001-.002.06-.09.06-.088.062-.089.001-.001.06-.084.063-.088.065-.089.017-.023.016-.025.06-.094.059-.09v-.002l.058-.086.057-.086.001-.001.062-.09.062-.088.001-.002.06-.085.002-.002.06-.082.063-.087.064-.084.002-.002.061-.08.065-.084.064-.08v-.001l.067-.083.067-.082.07-.083.069-.08.063-.074.074-.083.068-.077.002-.002.07-.076.07-.075.072-.077.001-.001.067-.07.076-.078.002-.002.07-.07.075-.075.002-.002.072-.07.075-.072.002-.002.073-.069.074-.068.001-.001.08-.073.076-.068.002-.002.072-.063v-.001l.078-.067.079-.068.002-.001.08-.068.002-.002.077-.063.082-.066.001-.001.075-.06.002-.002.006-.004.117-.111.094-.131.068-.146.04-.156.01-.161-.019-.16-.049-.154-.076-.141-.102-.125-.123-.105-.14-.079-.153-.052-.16-.023-.16.007zm24.596 11.088l-.156.04-.146.067-.131.094-.112.117-.087.135-.061.15-.033.157-.004.134.007.142.005.152.004.15.002.149v.153l.001.011v.015l.004.11.002.11v.002l.002.106v.321l-.003.102-.002.106-.004.107-.005.105-.006.106-.006.106-.008.106v.002l-.008.103v.002l-.01.1-.01.105-.01.105-.013.105-.012.099v.002l-.014.108-.014.1-.016.105-.016.103v.002l-.017.099-.018.104-.019.103v.002l-.019.097-.02.104-.022.103v.001l-.022.098-.023.103v.002l-.024.096-.025.103v.002l-.024.096-.027.102v.003l-.026.093v.001l-.029.103v.002l-.03.099-.028.097v.002l-.03.095-.03.096v.001l-.033.1-.031.095v.002l-.035.1v.003l-.034.094v.003l-.035.096v.001l-.034.09v.002l-.038.098-.036.093v.002l-.038.095-.079.194-.08.188-.085.189-.087.19-.09.184-.092.183-.095.184-.05.093-.064.148-.034.158-.005.16.026.16.054.151.082.14.106.12.127.1.143.075.154.046.16.017.161-.013.156-.042.144-.071.13-.096.109-.119.072-.112.053-.099.003-.005.003-.006.102-.195.003-.006.003-.006.098-.196.003-.006.003-.006.096-.197.002-.006.003-.006.093-.2.002-.006.003-.006.09-.2.002-.006.003-.007.086-.202.003-.006.002-.006.084-.203.002-.005.001-.005.04-.102.002-.003.001-.003.04-.103.001-.003.001-.003.04-.103v-.004l.001-.003.039-.103v-.003l.002-.003.037-.104.001-.003.001-.003.037-.104v-.004l.002-.003.035-.104.002-.003v-.004l.035-.104.002-.004v-.003l.034-.105.002-.003v-.003l.034-.105v-.004l.002-.003.032-.106.001-.003.001-.003.031-.106.001-.003.001-.004.031-.106.001-.003.001-.004.03-.106v-.003l.002-.004.028-.107.001-.003.001-.003.028-.107.001-.004.001-.003.027-.107.001-.004v-.003l.027-.108.001-.003v-.004l.026-.108.001-.003v-.004l.025-.108.001-.003v-.004l.025-.108v-.004l.001-.003.023-.109v-.003l.001-.004.022-.109v-.003l.002-.004.02-.109.001-.004v-.003l.02-.11.002-.003v-.004l.02-.11v-.007l.019-.11v-.003l.001-.004.017-.11v-.004l.001-.003.017-.11v-.008l.016-.11v-.004l.001-.004.015-.11v-.008l.015-.111v-.008l.013-.111v-.007l.013-.112v-.007l.011-.112v-.004l.001-.004.01-.112v-.007l.01-.112v-.008l.008-.112v-.008l.007-.113v-.007l.007-.113v-.008l.005-.113v-.007l.005-.114v-.007l.003-.114v-.007l.003-.114v-.129l.001-.114v-.13l-.003-.114v-.008l-.003-.115v-.007l-.003-.102v-.155l-.003-.158v-.01l-.004-.158v-.01l-.006-.158v-.01l-.007-.148-.023-.16-.051-.152-.08-.14-.103-.124-.125-.102-.142-.077-.153-.05-.16-.02-.161.01zm-30.213.66l-.157.034-.149.063-.134.09-.115.113-.092.132-.067.147-.037.156-.009.134.001.11V15.95l.006.22v.012l.01.22v.012l.012.22v.006l.001.006.015.22v.005l.001.006.018.22.001.006v.006l.022.219v.006l.001.006.024.219.001.006v.006l.028.218.001.006v.006l.031.218.001.006.001.006.033.218.001.006.001.005.037.218v.006l.002.005.04.217v.006l.001.006.043.216.001.006.001.006.046.216v.005l.002.006.048.215.002.006.001.006.051.214.002.006v.006l.055.214.002.005.001.006.057.213.002.006.001.005.06.213.002.005.001.006.063.212.002.005.001.006.066.21.002.006.002.006.068.21.002.005.002.005.07.21.003.005.002.005.074.208.002.006.002.005.077.207.002.006.002.005.08.206.002.005.002.006.082.204.002.006.002.005.086.204.002.005.002.006.088.202.002.005.003.006.09.2.003.006.002.005.094.2.002.006.003.005.096.199.002.005.003.005.03.062.086.137.11.118.128.097.145.07.156.043.16.013.16-.017.155-.047.143-.074.127-.1.106-.121.081-.14.055-.15.025-.16-.005-.161-.034-.158-.05-.124-.028-.055-.092-.19-.087-.188-.087-.192-.083-.19-.08-.193-.078-.194-.076-.196-.073-.195-.07-.197-.067-.198-.065-.199-.063-.2-.059-.2-.056-.2-.055-.204-.05-.201-.049-.202-.046-.205-.043-.206-.04-.203-.038-.207-.034-.204-.032-.207-.028-.205-.026-.207-.023-.208-.02-.207-.018-.207-.014-.208-.011-.207-.009-.208-.005-.207-.002-.104-.017-.16-.046-.155-.074-.143-.1-.126-.121-.107-.139-.081-.152-.055-.159-.025-.161.004zm24.585 11.83l-.156.039-.146.068-.11.076-.015.012-.163.129-.166.127-.168.125-.17.124-.17.12-.172.118-.173.115-.176.114-.177.111-.18.11-.178.105-.182.104-.182.101-.184.1-.184.095-.189.095-.186.09-.188.089-.19.086-.19.082-.193.081-.195.078-.191.074-.197.073-.195.07-.196.065-.198.064-.198.061-.2.058-.2.055-.2.052-.2.049-.151.035-.153.05-.141.078-.125.103-.103.124-.078.14-.05.154-.022.16.009.16.038.157.067.147.093.132.116.112.134.089.149.062.158.034.16.003.133-.02.158-.035.006-.002.006-.001.213-.052.006-.002.007-.001.212-.056.006-.001.006-.002.212-.058.006-.002.006-.002.211-.061.006-.002.006-.002.21-.064.006-.002.006-.002.21-.067.005-.002.006-.002.208-.07.006-.002.006-.003.207-.073.006-.002.006-.002.206-.077.006-.002.005-.002.206-.08.005-.001.006-.003.204-.082.006-.002.005-.002.203-.085.006-.003.005-.002.202-.088.006-.002.005-.003.2-.09.006-.003.006-.003.2-.093.005-.003.005-.002.198-.096.006-.003.005-.003.197-.099.005-.002.005-.003.196-.102.005-.002.005-.003.195-.105.005-.002.005-.003.193-.107.005-.003.005-.003.191-.11.005-.003.005-.003.19-.112.005-.003.005-.003.189-.115.005-.003.005-.003.187-.117.005-.003.004-.004.186-.12.005-.003.004-.003.184-.122.005-.003.005-.004.182-.125.004-.003.005-.003.18-.128.005-.003.005-.003.179-.13.004-.003.005-.004.177-.132.004-.004.005-.003.175-.135.005-.003.004-.004.173-.137.005-.003.004-.004.019-.015.115-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.052-.153-.079-.14-.103-.124-.125-.102-.142-.078-.153-.05-.16-.02-.16.01zm-19.17.054l-.153.051-.14.079-.124.103-.103.125-.077.141-.05.153-.02.16.009.161.04.156.067.147.093.131.095.094.047.04.005.004.005.004.17.14.005.004.005.004.172.137.004.004.005.003.086.067.003.002.003.002.087.067.003.002.003.002.088.066.002.003.003.002.089.065.002.002.003.002.09.065.002.002.003.002.09.064.002.002.003.002.09.063.003.002.003.002.09.063.003.002.003.002.092.062.002.002.003.002.092.061.003.002.003.002.092.06.003.003.003.001.093.06.003.002.003.002.093.06.003.001.003.002.094.058.003.002.003.002.095.058.003.001.003.002.095.057.003.002.003.002.095.056.003.002.003.002.096.055.004.002.003.001.096.055.003.002.003.002.098.053.003.002.003.002.097.053.004.002.003.001.098.053.003.001.003.002.099.052.003.001.003.002.1.05.003.002.003.002.1.05.003.002.003.001.1.05h.003l.004.003.1.048.004.001.003.002.101.048.003.001.004.002.101.046.004.002.003.001.102.046.004.002.003.001.103.045.003.002.003.001.103.045.004.001.003.002.104.043.003.001.004.002.104.042.003.002.004.001.104.042.004.001.003.002.105.04.004.002.003.001.106.04.003.002h.004l.106.04.004.001.003.002.107.038.003.001.004.001.107.038.003.001.004.001.107.037.004.001.004.001.108.036.003.001.004.001.108.035.004.001.003.001.11.034.003.001.004.001.109.033.004.002h.003l.11.033h.004l.003.002.11.031.004.001.004.001.084.023.081.028.004.001.003.001.109.037.003.001.004.001.109.036.003.001.004.001.109.035h.003l.004.002.11.033.003.001.003.001.11.033.003.001.004.001.109.031.004.002h.003l.11.031.003.001.004.001.11.03h.003l.003.001.11.029h.004l.003.002.11.027.003.001.004.001.11.027h.003l.004.001.004.001.16.022.16-.008.157-.038.147-.067.132-.092.112-.116.09-.134.062-.149.034-.157.004-.161-.025-.16-.055-.151-.082-.139-.107-.12-.127-.1-.143-.074-.124-.04h-.003l-.104-.025-.103-.026h-.002l-.095-.026h-.001l-.101-.027h-.002l-.1-.028h-.002l-.103-.03-.104-.032-.097-.03h-.002l-.103-.033-.102-.033-.101-.034-.106-.036-.027-.01-.027-.007-.107-.03-.104-.029-.104-.03h-.002l-.097-.03-.102-.032-.102-.032-.102-.034-.103-.035-.096-.034-.1-.036-.101-.037h-.002l-.094-.036-.096-.037-.097-.04h-.002l-.099-.04-.098-.042h-.002l-.092-.04-.097-.043-.095-.043-.097-.044h-.002l-.09-.043-.094-.045-.094-.046-.093-.047-.09-.046-.096-.05-.088-.047-.002-.001-.09-.049-.094-.052-.002-.002-.087-.049-.087-.05h-.002l-.088-.053h-.001l-.09-.055-.086-.052-.002-.001-.089-.055-.084-.054h-.002l-.09-.059h-.001l-.085-.056-.001-.001-.084-.056-.082-.056h-.001l-.086-.06-.082-.058H7.79l-.086-.062-.002-.002-.08-.058-.081-.06h-.001l-.085-.064-.002-.002-.076-.058-.002-.002-.082-.064-.161-.128-.162-.133-.04-.034-.132-.092-.147-.066-.157-.038-.16-.008-.16.022z\",\n  opacity: \".98\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.007 8.82L9.21 21.022h13.596L16.007 8.82zm0 1.775l5.328 9.563H10.68l5.327-9.563zM16.14.386c-1.571.236-4.195-.284-4.9 1.381.619 1.703 2.745.069 4.085.365 1.421-.13 2.84.2 4.235.259C21.27.784 18.19.344 17 .413a20.456 20.456 0 00-.86-.027zM25 3.162c-2.19.694.401 2.26 1.181 3.094 1.083 1.152 1.954 2.484 2.715 3.864 1.48 1.005 1.845-1.26.81-2.03-1.158-1.897-2.613-3.704-4.513-4.89l-.192-.038zm-18.438.423c-1.793.712-2.909 2.548-4.01 4.061-.773.814-2.211 3.653.005 3.211 1.123-1.469 1.87-3.306 3.267-4.614.664-.7 2.73-2.013.738-2.658zm24.57 11.072c-1.659.435-.468 2.667-.99 3.895a13.427 13.427 0 01-1.497 4.435c-.23 1.659 1.991 1.165 2.018-.199a14.277 14.277 0 001.254-7.552.865.865 0 00-.785-.579zm-30.18.666c-1.677.386-.633 2.667-.608 3.876.371 1.623.792 3.35 1.79 4.696 2.382.321.571-2.338.292-3.492a15.92 15.92 0 01-.684-4.39.877.877 0 00-.79-.69zm24.558 11.81c-1.755.865-3.303 2.266-5.274 2.765-1.162-.016-3.074 1.271-1.331 2.102 2.66-.447 5.163-1.733 7.236-3.445.472-.506.06-1.432-.631-1.421zm-19.151.043c-2.004.786.416 2.405 1.43 2.913 1.608.904 3.379 1.636 5.208 1.877 1.77-.804-.228-2.094-1.357-2.073-1.75-.537-3.403-1.396-4.798-2.586l-.227-.104-.256-.027z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.991 8.7c-3.018-.042-5.92 1.925-7.03 4.725-1.138 2.695-.509 6.011 1.537 8.102 1.99 2.142 5.267 2.93 8.013 1.927 2.877-.98 4.99-3.826 5.067-6.87.153-2.956-1.624-5.88-4.299-7.135a7.551 7.551 0 00-3.288-.75zm0 1.383c2.758-.052 5.372 1.972 6.014 4.654.704 2.578-.482 5.516-2.79 6.867-2.358 1.48-5.682 1.085-7.617-.919-2.043-1.97-2.407-5.38-.84-7.743 1.11-1.764 3.149-2.88 5.233-2.86zm1.962 1.764l-2.074 3.762c-.64.068-.793 1.04-.202 1.3.39.27.696-.18 1.052-.165h3.17v-.865h-3.182l1.993-3.614-.757-.418zM16.12.358h-.232l-.22.004h-.012l-.221.006h-.012l-.22.01h-.012l-.22.013h-.012l-.22.016h-.012l-.22.019h-.005l-.006.001-.22.021h-.006l-.005.001-.22.025h-.011l-.22.028h-.005l-.006.002-.219.03h-.005l-.006.001-.218.033-.006.001-.006.001-.217.036-.006.001-.006.001-.217.039-.006.001-.006.001-.216.042-.006.001-.006.001-.215.045-.006.001-.006.002-.215.047-.006.002-.006.001-.214.05-.006.002-.006.002-.115.029-.152.053-.14.081-.122.106-.1.126-.075.143-.047.154-.018.16.012.16.042.156.07.145.095.13.118.11.137.086.15.059.158.03h.161l.132-.022.11-.028.202-.047.203-.046.208-.043.202-.039.206-.037.206-.034.205-.03.208-.03.205-.025.209-.023.208-.02.21-.017.209-.015.207-.011.21-.009.21-.006.207-.003h.21l.21.002.207.005.207.008.212.011.207.014.208.017.209.019.208.022.205.025.206.028.207.03.208.035.205.036.202.039.052.01.16.018.16-.012.156-.042.146-.07.13-.096.109-.119.085-.136.06-.15.03-.159v-.16l-.03-.16-.059-.15-.086-.136L19.823.9l-.13-.096-.145-.07-.128-.038-.057-.011-.006-.002h-.006L19.135.64l-.006-.001-.006-.001-.217-.039H18.9l-.006-.002-.217-.035-.006-.001-.006-.001-.218-.032-.006-.001-.006-.001-.218-.03h-.006l-.006-.001-.219-.027h-.011l-.22-.024-.005-.001h-.006l-.22-.021h-.006L17.512.42l-.22-.017-.005-.001h-.006l-.22-.015h-.012l-.22-.012h-.012l-.22-.01h-.012l-.22-.005h-.012l-.221-.003h-.012zm8.715 2.783l-.157.034-.149.063-.134.089-.116.112-.092.132-.067.147-.038.157-.008.16.021.16.051.153.079.141.103.124.102.087.052.038h.001l.087.064v.001l.082.061.002.001.076.059h.001l.084.065.082.066.002.001.079.063.002.002.077.063.081.067.002.002.077.065.076.065.001.002.08.07.078.07h.002l.075.068.077.072.002.001.073.069.077.073.072.07.002.001.077.076.07.07v.001l.075.076.07.073.002.001.074.079.002.002.069.074.069.075.074.082.07.08.002.001.068.079h.001l.067.079.068.082.065.078.001.002.068.083.067.084.063.081.001.002.067.087.002.002.063.084.001.001.064.087.008.01.008.01.095.12.093.121.09.119.087.119.088.122.086.123.084.12.081.122.001.002.084.126.08.126.08.127.077.126.079.131.074.127.075.131.073.131.07.13.07.133.069.133.045.09.086.137.109.119.13.096.144.07.156.042.16.013.16-.017.155-.047.143-.075.126-.1.106-.121.082-.14.054-.151.025-.16-.005-.16-.035-.158-.05-.124-.048-.095-.002-.004-.002-.004-.073-.14-.002-.005-.002-.004-.074-.14-.002-.004-.002-.004-.076-.14-.002-.003-.002-.004-.077-.139-.003-.004-.002-.004-.078-.138-.003-.004-.002-.003-.08-.137-.002-.004-.003-.004-.081-.136-.002-.004-.003-.004-.083-.136-.002-.003-.002-.004-.085-.135-.002-.004-.003-.003-.085-.134-.003-.004-.002-.004-.087-.132-.003-.004-.003-.004-.088-.132-.003-.003-.002-.004-.09-.13-.003-.005-.003-.003-.091-.13-.003-.004-.002-.004-.093-.129-.003-.003-.003-.004-.094-.128-.003-.004-.003-.003-.095-.127-.003-.004-.003-.004-.097-.125-.003-.004-.003-.004-.09-.114-.06-.082-.003-.003-.002-.003-.069-.091-.002-.004-.002-.003-.07-.09-.003-.003-.002-.003-.07-.09-.003-.003-.002-.003-.071-.09-.002-.003-.003-.002-.072-.089-.002-.003-.002-.003-.073-.088-.002-.003-.002-.002-.074-.087-.002-.003-.002-.003-.074-.086-.003-.003-.002-.003-.074-.086-.003-.002-.002-.003-.075-.085-.003-.003-.002-.002-.076-.084-.002-.003-.003-.003-.076-.083-.002-.003-.003-.003-.077-.082-.002-.003-.003-.002-.077-.082-.003-.003-.003-.002-.078-.081-.002-.003-.003-.003-.078-.08-.003-.002-.003-.003-.079-.08-.002-.002-.003-.002-.08-.08-.002-.002-.003-.002-.08-.078-.003-.003-.003-.002-.08-.077-.003-.003-.003-.002-.082-.077-.002-.002-.003-.002-.082-.076-.003-.002-.002-.003-.083-.075-.003-.002-.002-.003-.084-.074-.002-.002-.003-.002-.084-.074-.003-.002-.002-.002-.085-.073-.002-.002-.003-.003-.085-.071-.003-.003-.002-.002-.086-.07-.003-.003-.002-.002-.086-.07-.003-.003-.003-.002-.086-.07-.003-.002-.003-.002-.087-.069-.002-.002-.003-.002-.088-.068-.002-.002-.003-.002-.088-.067-.003-.003-.003-.002-.088-.066-.003-.002-.003-.002-.089-.066-.003-.002-.003-.002-.057-.042-.14-.082-.15-.055-.16-.026-.16.004zm-18.458.426l-.157.037-.148.066-.111.074-.007.006-.003.002-.003.002-.086.069-.003.002-.002.002-.086.07-.003.002-.002.002-.086.07-.002.003-.003.002-.085.071-.002.002-.003.003-.084.071-.003.003-.002.002-.084.072-.003.003-.002.002-.083.073-.003.003-.002.002-.083.074-.002.002-.003.003-.082.074-.003.003-.002.002-.081.076-.003.002-.003.002-.08.077-.003.002-.003.003-.08.076-.002.003-.003.002-.08.078-.002.002-.003.003-.079.078-.002.003-.003.002-.078.08-.003.002-.002.002-.078.08-.002.003-.003.002-.077.08-.003.004-.002.002-.077.081-.002.003-.003.003-.076.082-.002.002-.003.003-.075.082-.002.003-.003.003-.074.083-.003.003-.002.003-.074.084-.003.003-.002.002-.074.085-.002.003-.002.003-.073.085-.003.003-.002.003-.072.086-.002.003-.003.003-.071.087-.003.003-.002.002-.07.088-.003.003-.002.003-.07.088-.003.003-.002.003-.07.09-.002.002-.002.003-.069.09-.002.003-.003.003-.068.09-.002.003-.002.003-.067.092-.003.003-.002.003-.067.092-.002.003-.002.003-.066.092-.002.003-.002.004-.066.093-.002.003-.002.003-.065.094-.002.003-.002.004-.064.094-.002.003-.002.004-.063.095-.002.003-.002.003-.063.097-.002.003-.002.003-.046.073-.05.07-.003.002-.002.003-.067.093-.003.003-.002.003-.066.094-.002.003-.002.003-.066.094-.002.003-.002.003-.064.094-.002.004-.002.003-.064.094-.002.004-.002.003-.062.095-.002.003-.002.003-.062.096-.002.003-.002.003-.06.096-.003.003-.002.003-.06.096-.001.004-.002.003-.059.096-.002.004-.002.003-.058.097-.002.003-.001.003-.057.098-.002.003-.002.003-.056.098-.002.003-.002.003-.055.098-.002.004-.001.003-.055.098-.001.004-.002.003-.054.099-.001.003-.002.003-.052.1-.002.002-.002.004-.051.1-.002.002-.002.004-.05.1-.002.003-.002.003-.05.1v.003l-.002.004-.05.1V9.5l-.002.004-.048.1-.002.004-.001.003-.047.101-.002.003-.001.004-.013.027-.052.152-.024.16.006.16.037.157.064.148.091.133.114.114.134.09.147.065.157.036.162.006.159-.024.152-.053.14-.08.122-.105.1-.126.066-.117.01-.023.044-.095.045-.095.002-.003.042-.087.048-.097.048-.095v-.001l.048-.092.001-.001.047-.09.05-.093.002-.002.049-.09.052-.092.001-.002.051-.089.001-.002.051-.087.053-.088.001-.002.055-.091.057-.091.057-.09.001-.002.057-.089.055-.083.001-.002.06-.09.06-.088.062-.089.001-.001.06-.084.063-.088.065-.089.017-.023.016-.025.06-.094.059-.09v-.002l.058-.086.057-.086.001-.001.062-.09.062-.088.001-.002.06-.085.002-.002.06-.082.063-.087.064-.084.002-.002.061-.08.065-.084.064-.08v-.001l.067-.083.067-.082.07-.083.069-.08.063-.074.074-.083.068-.077.002-.002.07-.076.07-.075.072-.077.001-.001.067-.07.076-.078.002-.002.07-.07.075-.075.002-.002.072-.07.075-.072.002-.002.073-.069.074-.068.001-.001.08-.073.076-.068.002-.002.072-.063v-.001l.078-.067.079-.068.002-.001.08-.068.002-.002.077-.063.082-.066.001-.001.075-.06.002-.002.006-.004.117-.111.094-.131.068-.146.04-.156.01-.161-.019-.16-.049-.154-.076-.141-.102-.125-.123-.105-.14-.079-.153-.052-.16-.023-.16.007zm24.596 11.088l-.156.04-.146.067-.131.094-.112.117-.087.135-.061.15-.033.157-.004.134.007.142.005.152.004.15.002.149v.153l.001.011v.015l.004.11.002.11v.002l.002.106v.321l-.003.102-.002.106-.004.107-.005.105-.006.106-.006.106-.008.106v.002l-.008.103v.002l-.01.1-.01.105-.01.105-.013.105-.012.099v.002l-.014.108-.014.1-.016.105-.016.103v.002l-.017.099-.018.104-.019.103v.002l-.019.097-.02.104-.022.103v.001l-.022.098-.023.103v.002l-.024.096-.025.103v.002l-.024.096-.027.102v.003l-.026.093v.001l-.029.103v.002l-.03.099-.028.097v.002l-.03.095-.03.096v.001l-.033.1-.031.095v.002l-.035.1v.003l-.034.094v.003l-.035.096v.001l-.034.09v.002l-.038.098-.036.093v.002l-.038.095-.079.194-.08.188-.085.189-.087.19-.09.184-.092.183-.095.184-.05.093-.064.148-.034.158-.005.16.026.16.054.151.082.14.106.12.127.1.143.075.154.046.16.017.161-.013.156-.042.144-.071.13-.096.109-.119.072-.112.053-.099.003-.005.003-.006.102-.195.003-.006.003-.006.098-.196.003-.006.003-.006.096-.197.002-.006.003-.006.093-.2.002-.006.003-.006.09-.2.002-.006.003-.007.086-.202.003-.006.002-.006.084-.203.002-.005.001-.005.04-.102.002-.003.001-.003.04-.103.001-.003.001-.003.04-.103v-.004l.001-.003.039-.103v-.003l.002-.003.037-.104.001-.003.001-.003.037-.104v-.004l.002-.003.035-.104.002-.003v-.004l.035-.104.002-.004v-.003l.034-.105.002-.003v-.003l.034-.105v-.004l.002-.003.032-.106.001-.003.001-.003.031-.106.001-.003.001-.004.031-.106.001-.003.001-.004.03-.106v-.003l.002-.004.028-.107.001-.003.001-.003.028-.107.001-.004.001-.003.027-.107.001-.004v-.003l.027-.108.001-.003v-.004l.026-.108.001-.003v-.004l.025-.108.001-.003v-.004l.025-.108v-.004l.001-.003.023-.109v-.003l.001-.004.022-.109v-.003l.002-.004.02-.109.001-.004v-.003l.02-.11.002-.003v-.004l.02-.11v-.007l.019-.11v-.003l.001-.004.017-.11v-.004l.001-.003.017-.11v-.008l.016-.11v-.004l.001-.004.015-.11v-.008l.015-.111v-.008l.013-.111v-.007l.013-.112v-.007l.011-.112v-.004l.001-.004.01-.112v-.007l.01-.112v-.008l.008-.112v-.008l.007-.113v-.007l.007-.113v-.008l.005-.113v-.007l.005-.114v-.007l.003-.114v-.007l.003-.114v-.129l.001-.114v-.13l-.003-.114V16.5l-.003-.115v-.007l-.003-.102v-.155l-.003-.158v-.01l-.004-.158v-.01l-.006-.158v-.01l-.007-.148-.023-.16-.051-.152-.08-.14-.103-.124-.125-.102-.142-.077-.153-.05-.16-.02-.161.01zm-30.213.66l-.157.034-.149.063-.134.09-.115.113-.092.132-.067.147-.037.156-.009.134.001.11V16.308l.006.22v.012l.01.22v.012l.012.22v.006l.001.006.015.22v.005l.001.006.018.22.001.006v.006l.022.219v.006l.001.006.024.219.001.006v.006l.028.218.001.006v.006l.031.218.001.006.001.006.033.218.001.006.001.005.037.218v.006l.002.005.04.217v.006l.001.006.043.216.001.006.001.006.046.216v.005l.002.006.048.215.002.006.001.006.051.214.002.006v.006l.055.214.002.005.001.006.057.213.002.006.001.005.06.213.002.005.001.006.063.212.002.005.001.006.066.21.002.006.002.006.068.21.002.005.002.005.07.21.003.005.002.005.074.208.002.006.002.005.077.207.002.006.002.005.08.206.002.005.002.006.082.204.002.006.002.005.086.204.002.005.002.006.088.202.002.005.003.006.09.2.003.006.002.005.094.2.002.006.003.005.096.199.002.005.003.005.03.062.086.137.11.118.128.097.145.07.156.043.16.013.16-.017.155-.047.143-.074.127-.1.106-.121.081-.14.055-.15.025-.16-.005-.161-.034-.158-.05-.124-.028-.055-.092-.19-.087-.188-.087-.192-.083-.19-.08-.193-.078-.194-.076-.196-.073-.195-.07-.197-.067-.198-.065-.199-.063-.2-.059-.2-.056-.2-.055-.204-.05-.201-.049-.202-.046-.205-.043-.206-.04-.203-.038-.207-.034-.204-.032-.207-.028-.205-.026-.207-.023-.208-.02-.207-.018-.207-.014-.208-.011-.207-.009-.208-.005-.207-.002-.104-.017-.16-.046-.155-.074-.143-.1-.126-.121-.107-.139-.081-.152-.055-.159-.025-.161.004zm24.585 11.83l-.156.039-.146.068-.11.076-.015.012-.163.129-.166.127-.168.125-.17.124-.17.12-.172.118-.173.115-.176.114-.177.111-.18.11-.178.105-.182.104-.182.101-.184.1-.184.095-.189.095-.186.09-.188.089-.19.086-.19.082-.193.081-.195.078-.191.074-.197.073-.195.07-.196.065-.198.064-.198.061-.2.058-.2.055-.2.052-.2.049-.151.035-.153.05-.141.078-.125.103-.103.124-.078.14-.05.154-.022.16.009.16.038.157.067.147.093.132.116.112.134.089.149.062.158.034.16.003.133-.02.158-.035.006-.002.006-.001.213-.052.006-.002.007-.001.212-.056.006-.001.006-.002.212-.058.006-.002.006-.002.211-.061.006-.002.006-.002.21-.064.006-.002.006-.002.21-.067.005-.002.006-.002.208-.07.006-.002.006-.003.207-.073.006-.002.006-.002.206-.077.006-.002.005-.002.206-.08.005-.001.006-.003.204-.082.006-.002.005-.002.203-.085.006-.003.005-.002.202-.088.006-.002.005-.003.2-.09.006-.003.006-.003.2-.093.005-.003.005-.002.198-.096.006-.003.005-.003.197-.099.005-.002.005-.003.196-.102.005-.002.005-.003.195-.105.005-.002.005-.003.193-.107.005-.003.005-.003.191-.11.005-.003.005-.003.19-.112.005-.003.005-.003.189-.115.005-.003.005-.003.187-.117.005-.003.004-.004.186-.12.005-.003.004-.003.184-.122.005-.003.005-.004.182-.125.004-.003.005-.003.18-.128.005-.003.005-.003.179-.13.004-.003.005-.004.177-.132.004-.004.005-.003.175-.135.005-.003.004-.004.173-.137.005-.003.004-.004.019-.015.115-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.052-.153-.079-.14-.103-.124-.125-.102-.142-.078-.153-.05-.16-.02-.16.01zm-19.17.054l-.153.051-.14.079-.124.103-.103.125-.077.141-.05.153-.02.16.009.161.04.156.067.147.093.131.095.094.047.04.005.004.005.004.17.14.005.004.005.004.172.137.004.004.005.003.086.067.003.002.003.002.087.067.003.002.003.002.088.066.002.003.003.002.089.065.002.002.003.002.09.065.002.002.003.002.09.064.002.002.003.002.09.063.003.002.003.002.09.063.003.002.003.002.092.062.002.002.003.002.092.061.003.002.003.002.092.06.003.003.003.001.093.06.003.002.003.002.093.06.003.001.003.002.094.058.003.002.003.002.095.058.003.001.003.002.095.057.003.002.003.002.095.056.003.002.003.002.096.055.004.002.003.001.096.055.003.002.003.002.098.053.003.002.003.002.097.053.004.002.003.001.098.053.003.001.003.002.099.052.003.001.003.002.1.05.003.002.003.002.1.05.003.002.003.001.1.05h.003l.004.003.1.048.004.001.003.002.101.048.003.001.004.002.101.046.004.002.003.001.102.046.004.002.003.001.103.045.003.002.003.001.103.045.004.001.003.002.104.043.003.001.004.002.104.042.003.002.004.001.104.042.004.001.003.002.105.04.004.002.003.001.106.04.003.002h.004l.106.04.004.001.003.002.107.038.003.001.004.001.107.038.003.001.004.001.107.037.004.001.004.001.108.036.003.001.004.001.108.035.004.001.003.001.11.034.003.001.004.001.109.033.004.002h.003l.11.033h.004l.003.002.11.031.004.001.004.001.084.023.081.028.004.001.003.001.109.037.003.001.004.001.109.036.003.001.004.001.109.035h.003l.004.002.11.033.003.001.003.001.11.033.003.001.004.001.109.031.004.002h.003l.11.031.003.001.004.001.11.03h.003l.003.001.11.029h.004l.003.002.11.027.003.001.004.001.11.027h.003l.004.001.004.001.16.022.16-.008.157-.038.147-.067.132-.092.112-.116.09-.134.062-.149.034-.157.004-.161-.025-.16-.055-.151-.082-.139-.107-.12-.127-.1-.143-.074-.124-.04h-.003l-.104-.025-.103-.026h-.002l-.095-.026h-.001l-.101-.027h-.002l-.1-.028h-.002l-.103-.03-.104-.032-.097-.03h-.002l-.103-.033-.102-.033-.101-.034-.106-.036-.027-.01-.027-.007-.107-.03-.104-.029-.104-.03h-.002l-.097-.03-.102-.032-.102-.032-.102-.034-.103-.035-.096-.034-.1-.036-.101-.037h-.002l-.094-.036-.096-.037-.097-.04h-.002l-.099-.04-.098-.042h-.002l-.092-.04-.097-.043-.095-.043-.097-.044h-.002l-.09-.043-.094-.045-.094-.046-.093-.047-.09-.046-.096-.05-.088-.047-.002-.001-.09-.049-.094-.052-.002-.002-.087-.049-.087-.05h-.002l-.088-.053h-.001l-.09-.055-.086-.052-.002-.001-.089-.055-.084-.054h-.002l-.09-.059h-.001l-.085-.056-.001-.001-.084-.056-.082-.056h-.001l-.086-.06-.082-.058H7.79l-.086-.062-.002-.002-.08-.058-.081-.06h-.001l-.085-.064-.002-.002-.076-.058-.002-.002-.082-.064-.161-.128-.162-.133-.04-.034-.132-.092-.147-.066-.157-.038-.16-.008-.16.022z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.847.004C9.61-.016 3.624 4.014 1.257 9.78-1.235 15.49.06 22.581 4.42 27.034c4.193 4.513 11.101 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.268.403-6.228-3.26-12.441-8.87-15.154A15.924 15.924 0 0015.846.004zm.439 1.729c6.105.033 11.856 4.45 13.435 10.359 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.625-4.814-3.84-6.538-10.94-4.067-16.57 2.14-5.206 7.515-8.775 13.147-8.71.097-.001.194-.002.29-.001z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.847 0C9.61-.02 3.624 4.01 1.257 9.775-1.235 15.485.06 22.577 4.42 27.03c4.193 4.513 11.101 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.268.403-6.228-3.26-12.441-8.87-15.154A15.924 15.924 0 0015.846 0zm.439 1.729c6.105.033 11.856 4.45 13.435 10.359 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.625C2.101 23.17.377 16.07 2.848 10.44c2.134-5.2 7.522-8.78 13.147-8.71.097-.001.194-.002.29-.001zM13.504 9.08v4.427H9.077v4.98h4.427v4.427h4.98v-4.427h4.428v-4.98h-4.427V9.08h-4.98zm.83.83h3.32v4.427h4.428v3.32h-4.427v4.427h-3.32v-4.453H9.906v-3.294h4.427V9.91z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.995.005C9.705-.08 3.643 3.968 1.257 9.78-1.235 15.49.06 22.581 4.42 27.034c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994.005zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626-4.814-3.838-6.538-10.939-4.067-16.57 2.14-5.205 7.515-8.774 13.147-8.708zm0 6.776L9.19 20.724H22.8L15.995 8.511zm0 1.777l5.332 9.572H10.662l5.333-9.572z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16 0C7.174 0 0 7.174 0 16s7.174 16 16 16 16-7.174 16-16S24.826 0 16 0zm0 1.73c7.892 0 14.27 6.378 14.27 14.27 0 7.891-6.379 14.27-14.27 14.27S1.73 23.891 1.73 16C1.73 8.108 8.108 1.73 16 1.73zm-.143 6.676c-2.967.02-5.797 1.97-6.89 4.727-1.138 2.695-.51 6.012 1.537 8.102 1.99 2.142 5.268 2.932 8.014 1.928 2.878-.98 4.992-3.827 5.068-6.87.153-2.957-1.624-5.881-4.3-7.137a7.552 7.552 0 00-3.43-.75zm.27 1.383c2.71.012 5.254 2.015 5.886 4.656.704 2.577-.482 5.517-2.791 6.867-2.358 1.48-5.682 1.085-7.618-.918-2.043-1.971-2.407-5.381-.84-7.745 1.11-1.763 3.15-2.88 5.234-2.86h.13zm1.833 1.765l-2.074 3.763c-.64.068-.793 1.04-.202 1.3.39.27.696-.18 1.052-.165h3.17v-.865h-3.181l1.992-3.615-.757-.418z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M5.637 3A5.644 5.644 0 000 8.637v15.417a5.644 5.644 0 005.637 5.637h20.726A5.644 5.644 0 0032 24.054V8.637A5.644 5.644 0 0026.363 3H5.637zm0 1.778h20.726a3.83 3.83 0 013.859 3.859v15.417a3.83 3.83 0 01-3.859 3.858h-4.201V16.695H9.838v11.217H5.637a3.83 3.83 0 01-3.859-3.858V8.637a3.83 3.83 0 013.859-3.859zm5.33 13.046h10.066v10.065H10.967V17.824zm4.189 1.431V22.06H12.35v1.689h2.804V26.554h1.69V23.749h2.804V22.06h-2.804V19.255h-1.69z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M5.636 3A5.642 5.642 0 000 8.636v15.418a5.643 5.643 0 005.636 5.636h20.728A5.643 5.643 0 0032 24.054V8.636A5.642 5.642 0 0026.364 3H5.636zm0 1.778h20.728a3.83 3.83 0 013.858 3.858v15.418a3.83 3.83 0 01-3.858 3.858h-4.203V16.723H9.84v11.189H5.636a3.83 3.83 0 01-3.858-3.858V8.636a3.83 3.83 0 013.858-3.858zm5.331 13.074h10.066v10.06H10.967v-10.06zm1.336 3.996v1.711h7.394v-1.71h-7.394z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M6.494 2.667C2.916 2.667 0 5.57 0 9.142v13.383C0 26.097 2.916 29 6.494 29h19.012C29.084 29 32 26.097 32 22.525V9.142c0-3.572-2.916-6.475-6.494-6.475H6.494zm0 2h19.012c2.509 0 4.494 1.98 4.494 4.475v13.383C30 25.02 28.015 27 25.506 27H6.494C3.985 27 2 25.02 2 22.525V9.142c0-2.495 1.985-4.475 4.494-4.475z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M22.087 0v31.647H32v-1.788h-8.125V1.788H32V0h-9.913zm-2.924 13.999l-2.737 2.167 2.167 2.738 2.738-2.167-2.168-2.738zm-5.475 4.335L10.95 20.5l2.168 2.738 2.737-2.168-2.167-2.737zm-5.475 4.335l-2.738 2.167 2.168 2.738 2.737-2.168-2.167-2.737zm-5.476 4.335L0 29.17l2.167 2.738 2.738-2.168-2.168-2.737z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M5.422 3A5.424 5.424 0 000 8.422v15.822a5.424 5.424 0 005.422 5.423h21.156A5.424 5.424 0 0032 24.244V8.422A5.424 5.424 0 0026.578 3H5.422zm0 1.244h21.156a4.155 4.155 0 014.178 4.178v15.822a4.155 4.155 0 01-4.178 4.178H5.422a4.155 4.155 0 01-4.178-4.178V8.422a4.155 4.155 0 014.178-4.178zm1.056 1.778a3.373 3.373 0 00-3.367 3.366v13.89a3.373 3.373 0 003.367 3.366h19.044a3.373 3.373 0 003.367-3.366V9.388a3.373 3.373 0 00-3.367-3.366H6.478zm0 1.245h19.044c1.187 0 2.122.935 2.122 2.121v13.89a2.104 2.104 0 01-2.122 2.122H6.478a2.104 2.104 0 01-2.122-2.122V9.388c0-1.186.935-2.121 2.122-2.121z\"\n}));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"32\",\n  height: \"32\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  fillRule: \"evenodd\",\n  d: \"M10.263 7.468c-1.698 0-2.912 1.305-2.915 2.791v.001c0 .45.121.924.311 1.352.138.309.308.593.516.82-1.235.423-2.683 1.119-3.414 2.49l-.04.075v4.44h11.083v-4.44l-.04-.074c-.72-1.352-2.136-2.047-3.36-2.471.597-.608.774-1.392.774-2.192-.004-1.487-1.218-2.792-2.915-2.792zm-1.16 1.583c.08 0 .165.003.26.008.757.045 1.012.181 1.207.31.196.13.334.252.851.268.404-.016.598-.087.737-.169.056-.033.103-.067.152-.1.128.275.197.578.198.893 0 .894-.154 1.52-.975 2.034l.08.604c.171.052.348.11.527.171.025.105.054.242.073.387.02.153.029.311.016.43a.422.422 0 01-.056.19c-.417.417-1.157.66-1.908.66-.75 0-1.49-.243-1.908-.66a.422.422 0 01-.056-.19 1.949 1.949 0 01.016-.43c.02-.146.049-.284.074-.388.177-.062.352-.118.521-.17l.048-.648a.616.616 0 00-.126-.118c-.183-.138-.405-.44-.562-.793-.157-.353-.254-.757-.254-1.08 0-.387.105-.758.297-1.079l.11-.04c.143-.046.339-.09.679-.09zm-1.448 4.304l-.002.014c-.025.185-.04.387-.018.589.021.202.074.42.248.593.595.594 1.494.857 2.382.857.889 0 1.788-.263 2.382-.857.174-.174.227-.391.249-.593a2.496 2.496 0 00-.018-.59l-.002-.01c.903.396 1.776.963 2.258 1.81v3.599H13.53v-2.538h-.67v2.538H7.651v-2.538h-.67v2.538H5.39v-3.599c.483-.849 1.359-1.416 2.264-1.813zM6.495 3C2.914 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.01C28.016 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5z\"\n}));","import AssociationIcon from './bpmn-icon-association.svg';\nimport BusinessRuleTaskIcon from './bpmn-icon-business-rule-task.svg';\nimport CallActivityIcon from './bpmn-icon-call-activity.svg';\nimport CollaborationIcon from './bpmn-icon-collaboration.svg';\nimport ConditionalFlowIcon from './bpmn-icon-conditional-flow.svg';\nimport ConnectionIcon from './bpmn-icon-connection.svg';\nimport DataInputOutputAssociationIcon from './bpmn-icon-data-input-output-association.svg';\nimport DataInputIcon from './bpmn-icon-data-input.svg';\nimport DataObjectIcon from './bpmn-icon-data-object.svg';\nimport DataOutputIcon from './bpmn-icon-data-output.svg';\nimport DataStoreIcon from './bpmn-icon-data-store.svg';\nimport DefaultFlowIcon from './bpmn-icon-default-flow.svg';\nimport EndEventCancelIcon from './bpmn-icon-end-event-cancel.svg';\nimport EndEventCompensationIcon from './bpmn-icon-end-event-compensation.svg';\nimport EndEventErrorIcon from './bpmn-icon-end-event-error.svg';\nimport EndEventEscalationIcon from './bpmn-icon-end-event-escalation.svg';\nimport EndEventLinkIcon from './bpmn-icon-end-event-link.svg';\nimport EndEventMessageIcon from './bpmn-icon-end-event-message.svg';\nimport EndEventMultipleIcon from './bpmn-icon-end-event-multiple.svg';\nimport EndEventNoneIcon from './bpmn-icon-end-event-none.svg';\nimport EndEventSignalIcon from './bpmn-icon-end-event-signal.svg';\nimport EndEventTerminateIcon from './bpmn-icon-end-event-terminate.svg';\nimport EventSubProcessExpandedIcon from './bpmn-icon-event-subprocess-expanded.svg';\nimport GatewayComplexIcon from './bpmn-icon-gateway-complex.svg';\nimport GatewayEventBasedIcon from './bpmn-icon-gateway-eventbased.svg';\nimport GatewayNoneIcon from './bpmn-icon-gateway-none.svg';\nimport GatewayOrIcon from './bpmn-icon-gateway-or.svg';\nimport GatewayParallelIcon from './bpmn-icon-gateway-parallel.svg';\nimport GatewayXorIcon from './bpmn-icon-gateway-xor.svg';\nimport GroupIcon from './bpmn-icon-group.svg';\nimport IntermediateEventCatchCancelIcon from './bpmn-icon-intermediate-event-catch-cancel.svg';\nimport IntermediateEventCatchCompensationIcon from './bpmn-icon-intermediate-event-catch-compensation.svg';\nimport IntermediateEventCatchConditionIcon from './bpmn-icon-intermediate-event-catch-condition.svg';\nimport IntermediateEventCatchErrorIcon from './bpmn-icon-intermediate-event-catch-error.svg';\nimport IntermediateEventCatchEscalationIcon from './bpmn-icon-intermediate-event-catch-escalation.svg';\nimport IntermediateEventCatchLinkIcon from './bpmn-icon-intermediate-event-catch-link.svg';\nimport IntermediateEventCatchMessageIcon from './bpmn-icon-intermediate-event-catch-message.svg';\nimport IntermediateEventCatchMultipleIcon from './bpmn-icon-intermediate-event-catch-multiple.svg';\nimport IntermediateEventCatchNonInterruptingConditionIcon from './bpmn-icon-intermediate-event-catch-non-interrupting-condition.svg';\nimport IntermediateEventCatchNonInterruptingEscalationIcon from './bpmn-icon-intermediate-event-catch-non-interrupting-escalation.svg';\nimport IntermediateEventCatchNonInterruptingMessageIcon from './bpmn-icon-intermediate-event-catch-non-interrupting-message.svg';\nimport IntermediateEventCatchNonInterruptingMultipleIcon from './bpmn-icon-intermediate-event-catch-non-interrupting-multiple.svg';\nimport IntermediateEventCatchNonInterruptingParallelIcon from './bpmn-icon-intermediate-event-catch-non-interrupting-parallel.svg';\nimport IntermediateEventCatchNonInterruptingSignalIcon from './bpmn-icon-intermediate-event-catch-non-interrupting-signal.svg';\nimport IntermediateEventCatchNonInterruptingTimerIcon from './bpmn-icon-intermediate-event-catch-non-interrupting-timer.svg';\nimport IntermediateEventCatchParallelMultipleIcon from './bpmn-icon-intermediate-event-catch-parallel-multiple.svg';\nimport IntermediateEventCatchSignalIcon from './bpmn-icon-intermediate-event-catch-signal.svg';\nimport IntermediateEventCatchTimerIcon from './bpmn-icon-intermediate-event-catch-timer.svg';\nimport IntermediateEventNoneIcon from './bpmn-icon-intermediate-event-none.svg';\nimport IntermediateEventThrowCompensationIcon from './bpmn-icon-intermediate-event-throw-compensation.svg';\nimport IntermediateEventThrowEscalationIcon from './bpmn-icon-intermediate-event-throw-escalation.svg';\nimport IntermediateEventThrowLinkIcon from './bpmn-icon-intermediate-event-throw-link.svg';\nimport IntermediateEventThrowMessageIcon from './bpmn-icon-intermediate-event-throw-message.svg';\nimport IntermediateEventThrowMultipleIcon from './bpmn-icon-intermediate-event-throw-multiple.svg';\nimport IntermediateEventThrowSignalIcon from './bpmn-icon-intermediate-event-throw-signal.svg';\nimport LaneIcon from './bpmn-icon-lane.svg';\nimport ManualTaskIcon from './bpmn-icon-manual-task.svg';\nimport MessageFlowIcon from './bpmn-icon-message-flow.svg';\nimport ParticipantIcon from './bpmn-icon-participant.svg';\nimport ProcessIcon from './bpmn-icon-process.svg';\nimport ReceiveTaskIcon from './bpmn-icon-receive-task.svg';\nimport ScriptTaskIcon from './bpmn-icon-script-task.svg';\nimport SendTaskIcon from './bpmn-icon-send-task.svg';\nimport ServiceTaskIcon from './bpmn-icon-service-task.svg';\nimport StartEventCompensationIcon from './bpmn-icon-start-event-compensation.svg';\nimport StartEventConditionIcon from './bpmn-icon-start-event-condition.svg';\nimport StartEventErrorIcon from './bpmn-icon-start-event-error.svg';\nimport StartEventEscalationIcon from './bpmn-icon-start-event-escalation.svg';\nimport StartEventMessageIcon from './bpmn-icon-start-event-message.svg';\nimport StartEventMultipleIcon from './bpmn-icon-start-event-multiple.svg';\nimport StartEventNonInterruptingConditionIcon from './bpmn-icon-start-event-non-interrupting-condition.svg';\nimport StartEventNonInterruptingEscalationIcon from './bpmn-icon-start-event-non-interrupting-escalation.svg';\nimport StartEventNonInterruptingMessageIcon from './bpmn-icon-start-event-non-interrupting-message.svg';\nimport StartEventNonInterruptingMultipleIcon from './bpmn-icon-start-event-non-interrupting-multiple.svg';\nimport StartEventNonInterruptingParallelMultipleIcon from './bpmn-icon-start-event-non-interrupting-parallel-multiple.svg';\nimport StartEventNonInterruptingSignalIcon from './bpmn-icon-start-event-non-interrupting-signal.svg';\nimport StartEventNonInterruptingTimerIcon from './bpmn-icon-start-event-non-interrupting-timer.svg';\nimport StartEventNoneIcon from './bpmn-icon-start-event-none.svg';\nimport StartEventParallelMultipleIcon from './bpmn-icon-start-event-parallel-multiple.svg';\nimport StartEventSignalIcon from './bpmn-icon-start-event-signal.svg';\nimport StartEventTimerIcon from './bpmn-icon-start-event-timer.svg';\nimport SubprocessCollapsedIcon from './bpmn-icon-subprocess-collapsed.svg';\nimport SubprocessExpandedIcon from './bpmn-icon-subprocess-expanded.svg';\nimport TaskNoneIcon from './bpmn-icon-task-none.svg';\nimport TextAnnotationicon from './bpmn-icon-text-annotation.svg';\nimport TransactionIcon from './bpmn-icon-transaction.svg';\nimport UserTaskIcon from './bpmn-icon-user-task.svg';\n\nexport default {\n  'Association': AssociationIcon,\n  'BusinessRuleTask': BusinessRuleTaskIcon,\n  'CallActivity': CallActivityIcon,\n  'Collaboration': CollaborationIcon,\n  'ConditionalFlow': ConditionalFlowIcon,\n  'SequenceFlow': ConnectionIcon,\n  'DataInput': DataInputIcon,\n  'DataInputAssociation': DataInputOutputAssociationIcon,\n  'DataOutput': DataOutputIcon,\n  'DataOutputAssociation': DataInputOutputAssociationIcon,\n  'DataObjectReference': DataObjectIcon,\n  'DataStoreReference': DataStoreIcon,\n  'DefaultFlow': DefaultFlowIcon,\n  'CancelEndEvent': EndEventCancelIcon,\n  'CompensateEndEvent': EndEventCompensationIcon,\n  'ErrorEndEvent': EndEventErrorIcon,\n  'EscalationEndEvent': EndEventEscalationIcon,\n  'LinkEndEvent': EndEventLinkIcon,\n  'MessageEndEvent': EndEventMessageIcon,\n  'MultipleEndEvent': EndEventMultipleIcon,\n  'EndEvent': EndEventNoneIcon,\n  'SignalEndEvent': EndEventSignalIcon,\n  'TerminateEndEvent': EndEventTerminateIcon,\n  'EventSubProcess': EventSubProcessExpandedIcon,\n  'ComplexGateway': GatewayComplexIcon,\n  'EventBasedGateway': GatewayEventBasedIcon,\n  'ExclusiveGateway': GatewayXorIcon,\n  'Gateway': GatewayNoneIcon,\n  'InclusiveGateway': GatewayOrIcon,\n  'ParallelGateway': GatewayParallelIcon,\n  'Group': GroupIcon,\n  'CancelIntermediateCatchEvent': IntermediateEventCatchCancelIcon,\n  'CompensateIntermediateCatchEvent': IntermediateEventCatchCompensationIcon,\n  'ConditionalIntermediateCatchEvent': IntermediateEventCatchConditionIcon,\n  'ErrorIntermediateCatchEvent': IntermediateEventCatchErrorIcon,\n  'EscalationIntermediateCatchEvent': IntermediateEventCatchEscalationIcon,\n  'LinkIntermediateCatchEvent': IntermediateEventCatchLinkIcon,\n  'MessageIntermediateCatchEvent': IntermediateEventCatchMessageIcon,\n  'MultipleIntermediateCatchEvent': IntermediateEventCatchMultipleIcon,\n  'ConditionalIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingConditionIcon,\n  'EscalationIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingEscalationIcon,\n  'MessageIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingMessageIcon,\n  'MultipleIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingMultipleIcon,\n  'ParallelIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingParallelIcon,\n  'SignalIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingSignalIcon,\n  'TimerIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingTimerIcon,\n  'ParallelMultipleIntermediateCatchEvent': IntermediateEventCatchParallelMultipleIcon,\n  'SignalIntermediateCatchEvent': IntermediateEventCatchSignalIcon,\n  'TimerIntermediateCatchEvent': IntermediateEventCatchTimerIcon,\n  'IntermediateThrowEvent': IntermediateEventNoneIcon,\n  'CompensateIntermediateThrowEvent': IntermediateEventThrowCompensationIcon,\n  'EscalationIntermediateThrowEvent': IntermediateEventThrowEscalationIcon,\n  'LinkIntermediateThrowEvent': IntermediateEventThrowLinkIcon,\n  'MessageIntermediateThrowEvent': IntermediateEventThrowMessageIcon,\n  'MultipleIntermediateThrowEvent': IntermediateEventThrowMultipleIcon,\n  'SignalIntermediateThrowEvent': IntermediateEventThrowSignalIcon,\n  'Lane': LaneIcon,\n  'ManualTask': ManualTaskIcon,\n  'MessageFlow': MessageFlowIcon,\n  'Participant': ParticipantIcon,\n  'Process': ProcessIcon,\n  'ReceiveTask': ReceiveTaskIcon,\n  'ScriptTask': ScriptTaskIcon,\n  'SendTask': SendTaskIcon,\n  'ServiceTask': ServiceTaskIcon,\n  'CompensateStartEvent': StartEventCompensationIcon,\n  'ConditionalStartEvent': StartEventConditionIcon,\n  'ErrorStartEvent': StartEventErrorIcon,\n  'EscalationStartEvent': StartEventEscalationIcon,\n  'MessageStartEvent': StartEventMessageIcon,\n  'MultipleStartEvent': StartEventMultipleIcon,\n  'ConditionalStartEventNonInterrupting': StartEventNonInterruptingConditionIcon,\n  'EscalationStartEventNonInterrupting': StartEventNonInterruptingEscalationIcon,\n  'MessageStartEventNonInterrupting': StartEventNonInterruptingMessageIcon,\n  'MultipleStartEventNonInterrupting': StartEventNonInterruptingMultipleIcon,\n  'ParallelMultipleStartEventNonInterrupting': StartEventNonInterruptingParallelMultipleIcon,\n  'SignalStartEventNonInterrupting': StartEventNonInterruptingSignalIcon,\n  'TimerStartEventNonInterrupting': StartEventNonInterruptingTimerIcon,\n  'CancelBoundaryEvent': IntermediateEventCatchCancelIcon,\n  'CompensateBoundaryEvent': IntermediateEventCatchCompensationIcon,\n  'ConditionalBoundaryEvent': IntermediateEventCatchConditionIcon,\n  'ErrorBoundaryEvent': IntermediateEventCatchErrorIcon,\n  'EscalationBoundaryEvent': IntermediateEventCatchEscalationIcon,\n  'LinkBoundaryEvent': IntermediateEventCatchLinkIcon,\n  'MessageBoundaryEvent': IntermediateEventCatchMessageIcon,\n  'MultipleBoundaryEvent': IntermediateEventCatchMultipleIcon,\n  'BoundaryEvent': IntermediateEventNoneIcon,\n  'ConditionalBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingConditionIcon,\n  'EscalationBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingEscalationIcon,\n  'MessageBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingMessageIcon,\n  'MultipleBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingMultipleIcon,\n  'ParallelBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingParallelIcon,\n  'SignalBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingSignalIcon,\n  'TimerBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingTimerIcon,\n  'ParallelMultipleBoundaryEvent': IntermediateEventCatchParallelMultipleIcon,\n  'SignalBoundaryEvent': IntermediateEventCatchSignalIcon,\n  'TimerBoundaryEvent': IntermediateEventCatchTimerIcon,\n  'StartEvent': StartEventNoneIcon,\n  'ParallelMultipleStartEvent': StartEventParallelMultipleIcon,\n  'SignalStartEvent': StartEventSignalIcon,\n  'TimerStartEvent': StartEventTimerIcon,\n  'CollapsedSubProcess': SubprocessCollapsedIcon,\n  'CollapsedAdHocSubProcess': SubprocessCollapsedIcon,\n  'ExpandedSubProcess': SubprocessExpandedIcon,\n  'ExpandedAdHocSubProcess': SubprocessExpandedIcon,\n  'Task': TaskNoneIcon,\n  'TextAnnotation': TextAnnotationicon,\n  'Transaction': TransactionIcon,\n  'UserTask': UserTaskIcon\n};","import {\n  getLabel\n} from 'bpmn-js/lib/features/label-editing/LabelUtil';\n\nimport {\n  is,\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  isExpanded,\n  isEventSubProcess,\n  isInterrupting\n} from 'bpmn-js/lib/util/DiUtil';\n\nimport {\n  useService\n} from '../hooks';\n\nimport iconsByType from '../icons';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nexport function getConcreteType(element) {\n  const {\n    type: elementType\n  } = element;\n\n  let type = getRawType(elementType);\n\n  // (1) event definition types\n  const eventDefinition = getEventDefinition(element);\n\n  if (eventDefinition) {\n    type = `${getEventDefinitionPrefix(eventDefinition)}${type}`;\n\n    // (1.1) interrupting / non interrupting\n    if (\n      (is(element, 'bpmn:StartEvent') && !isInterrupting(element)) ||\n        (is(element, 'bpmn:BoundaryEvent') && !isCancelActivity(element))\n    ) {\n      type = `${type}NonInterrupting`;\n    }\n\n    return type;\n  }\n\n  // (2) sub process types\n  if (is(element, 'bpmn:SubProcess') && !is(element, 'bpmn:Transaction')) {\n    if (isEventSubProcess(element)) {\n      type = `Event${type}`;\n    } else {\n      const expanded = isExpanded(element) && !isPlane(element);\n      type = `${expanded ? 'Expanded' : 'Collapsed'}${type}`;\n    }\n  }\n\n  // (3) conditional + default flows\n  if (isDefaultFlow(element)) {\n    type = 'DefaultFlow';\n  }\n\n  if (isConditionalFlow(element)) {\n    type = 'ConditionalFlow';\n  }\n\n\n  return type;\n}\n\nexport const PanelHeaderProvider = (translate) => {\n  if (!translate) translate = (text) => text;\n  return {\n    getDocumentationRef: (element) => {\n      const elementTemplates = getTemplatesService();\n\n      if (elementTemplates) {\n        return getTemplateDocumentation(element, elementTemplates);\n      }\n    },\n\n    getElementLabel: (element) => {\n      if (is(element, 'bpmn:Process')) {\n        return getBusinessObject(element).name;\n      }\n\n      return getLabel(element);\n    },\n\n    getElementIcon: (element) => {\n      const concreteType = getConcreteType(element);\n\n\n      const config = useService('config.elementTemplateIconRenderer', false);\n\n      const { iconProperty = 'zeebe:modelerTemplateIcon' } = config || {};\n\n      const templateIcon = getBusinessObject(element).get(iconProperty);\n\n      if (templateIcon) {\n        return () => <img class=\"bio-properties-panel-header-template-icon\" width=\"32\" height=\"32\" src={ templateIcon } alt=\"\" />;\n      }\n\n      return iconsByType[ concreteType ];\n    },\n\n    getTypeLabel: (element) => {\n      const elementTemplates = getTemplatesService();\n\n      if (elementTemplates) {\n        const template = getTemplate(element, elementTemplates);\n\n        if (template && template.name) {\n          return translate(template.name);\n        }\n      }\n\n      const concreteType = getConcreteType(element);\n\n      return translate(concreteType\n        .replace(/(\\B[A-Z])/g, ' $1')\n        .replace(/(\\bNon Interrupting)/g, '($1)'));\n    }\n  };\n};\n\n\n// helpers ///////////////////////\n\nfunction isCancelActivity(element) {\n  const businessObject = getBusinessObject(element);\n\n  return businessObject && businessObject.cancelActivity !== false;\n}\n\nfunction getEventDefinition(element) {\n  const businessObject = getBusinessObject(element),\n        eventDefinitions = businessObject.eventDefinitions;\n\n  return eventDefinitions && eventDefinitions[0];\n}\n\nfunction getRawType(type) {\n  return type.split(':')[1];\n}\n\nfunction getEventDefinitionPrefix(eventDefinition) {\n  const rawType = getRawType(eventDefinition.$type);\n\n  return rawType.replace('EventDefinition', '');\n}\n\nfunction isDefaultFlow(element) {\n  const businessObject = getBusinessObject(element);\n  const sourceBusinessObject = getBusinessObject(element.source);\n\n  if (!is(element, 'bpmn:SequenceFlow') || !sourceBusinessObject) {\n    return false;\n  }\n\n  return sourceBusinessObject.default && sourceBusinessObject.default === businessObject && (\n    is(sourceBusinessObject, 'bpmn:Gateway') || is(sourceBusinessObject, 'bpmn:Activity')\n  );\n}\n\nfunction isConditionalFlow(element) {\n  const businessObject = getBusinessObject(element);\n  const sourceBusinessObject = getBusinessObject(element.source);\n\n  if (!is(element, 'bpmn:SequenceFlow') || !sourceBusinessObject) {\n    return false;\n  }\n\n  return businessObject.conditionExpression && is(sourceBusinessObject, 'bpmn:Activity');\n}\n\nfunction isPlane(element) {\n\n  // Backwards compatibility for bpmn-js<8\n  const di = element && (element.di || getBusinessObject(element).di);\n\n  return is(di, 'bpmndi:BPMNPlane');\n}\n\nfunction getTemplatesService() {\n\n\n  return useService('elementTemplates', false);\n}\n\nfunction getTemplate(element, elementTemplates) {\n  return elementTemplates.get(element);\n}\n\nfunction getTemplateDocumentation(element, elementTemplates) {\n  const template = getTemplate(element, elementTemplates);\n\n  return template && template.documentationRef;\n}","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n  width: \"64\",\n  height: \"64\"\n}, props), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"a\",\n  width: \"57\",\n  height: \"47\",\n  x: \"3\",\n  y: \"8\",\n  rx: \"7\"\n}), /*#__PURE__*/React.createElement(\"mask\", {\n  id: \"b\",\n  width: \"57\",\n  height: \"47\",\n  x: \"0\",\n  y: \"0\",\n  fill: \"#fff\",\n  maskContentUnits: \"userSpaceOnUse\",\n  maskUnits: \"objectBoundingBox\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n  xlinkHref: \"#a\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n  fill: \"none\",\n  fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#818798\",\n  d: \"M52 11a5 5 0 015 5v31a5 5 0 01-5 5H11a5 5 0 01-5-5V16a5 5 0 015-5h41zm0 2H11a3 3 0 00-2.995 2.824L8 16v31a3 3 0 002.824 2.995L11 50h41a3 3 0 002.995-2.824L55 47V16a3 3 0 00-2.824-2.995L52 13z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#D5D7DD\",\n  d: \"M16 24h31v6H16zM21 33h21v6H21z\"\n}), /*#__PURE__*/React.createElement(\"use\", {\n  stroke: \"#B9BCC6\",\n  strokeDasharray: \"5 2\",\n  strokeWidth: \"2\",\n  mask: \"url(#b)\",\n  xlinkHref: \"#a\"\n})));","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport React from \"react\";\nexport default ({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n  width: \"128\",\n  height: \"64\"\n}, props), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"a\",\n  d: \"M9 9h110v47H9z\"\n}), /*#__PURE__*/React.createElement(\"mask\", {\n  id: \"b\",\n  width: \"110\",\n  height: \"47\",\n  x: \"0\",\n  y: \"0\",\n  fill: \"#fff\",\n  maskContentUnits: \"userSpaceOnUse\",\n  maskUnits: \"objectBoundingBox\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n  xlinkHref: \"#a\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n  fill: \"none\",\n  fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#818798\",\n  d: \"M25 20.272L37.728 33 25 45.728 12.272 33 25 20.272zm0 2.829L15.1 33l9.9 9.9 9.9-9.9-9.9-9.9z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#D5D7DD\",\n  d: \"M17 47h16v6H17z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#818798\",\n  d: \"M35 32h27v2H35z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#818798\",\n  d: \"M60 30v6l6-3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#D5D7DD\",\n  d: \"M80 34h21v6H80z\"\n}), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#818798\",\n  d: \"M111 12a5 5 0 015 5v31a5 5 0 01-5 5H70a5 5 0 01-5-5V17a5 5 0 015-5h41zm0 2H70a3 3 0 00-3 3v31a3 3 0 003 3h41a3 3 0 003-3V17a3 3 0 00-3-3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#D5D7DD\",\n  d: \"M75 25h31v6H75z\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n  stroke: \"#B9BCC6\",\n  strokeDasharray: \"5 2\",\n  strokeWidth: \"2\",\n  mask: \"url(#b)\",\n  xlinkHref: \"#a\"\n})));","import EmptyIcon from '../icons/bpmn-empty-state.svg';\nimport MultipleIcon from '../icons/bpmn-multiple-state.svg';\n\nexport const PanelPlaceholderProvider = (translate) => {\n  if (!translate) translate = (text) => text;\n  return {\n    getEmpty: () => {\n      return {\n        text: translate('Select an element to edit its properties.'),\n        icon: EmptyIcon\n      };\n    },\n\n    getMultiple: () => {\n      return {\n        text: translate('Multiple elements are selected. Select a single element to edit its properties.'),\n        icon: MultipleIcon\n      };\n    }\n  };\n};","import {\n  useState,\n  useMemo,\n  useEffect,\n  useCallback\n} from '@bpmn-io/properties-panel/preact/hooks';\n\nimport {\n  find,\n  isArray,\n  reduce\n} from 'min-dash';\n\nimport { createPortal } from '@bpmn-io/properties-panel/preact/compat';\n\nimport { FeelLanguageContext, Header, PropertiesPanel } from '@bpmn-io/properties-panel';\n\nimport {\n  BpmnPropertiesPanelContext\n} from '../context';\n\nimport { PanelHeaderProvider } from './PanelHeaderProvider';\nimport { PanelPlaceholderProvider } from './PanelPlaceholderProvider';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst DEFAULT_FEEL_LANGUAGE_CONTEXT = {\n  parserDialect: 'camunda'\n};\n\n/**\n * @param {Object} props\n * @param {djs.model.Base|Array<djs.model.Base>} [props.element]\n * @param {Injector} props.injector\n * @param { (djs.model.Base) => Array<PropertiesProvider> } props.getProviders\n * @param {Object} props.layoutConfig\n * @param {Object} props.descriptionConfig\n * @param {Object} props.tooltipConfig\n * @param {HTMLElement} props.feelPopupContainer\n * @param {Function} props.getFeelPopupLinks\n * @param {HTMLElement} [props.headerParent]\n */\nexport default function BpmnPropertiesPanel(props) {\n  const {\n    element,\n    injector,\n    getProviders,\n    layoutConfig: initialLayoutConfig,\n    descriptionConfig,\n    tooltipConfig,\n    feelPopupContainer,\n    getFeelPopupLinks,\n    headerParent\n  } = props;\n\n  const canvas = injector.get('canvas');\n  const elementRegistry = injector.get('elementRegistry');\n  const eventBus = injector.get('eventBus');\n  const translate = injector.get('translate');\n\n  const [ state, setState ] = useState({\n    selectedElement: element\n  });\n\n  const selectedElement = state.selectedElement;\n\n  /**\n   * @param {djs.model.Base | Array<djs.model.Base>} element\n   */\n  const _update = (element) => {\n\n    if (!element) {\n      return;\n    }\n\n    let newSelectedElement = element;\n\n    // handle labels\n    if (newSelectedElement && newSelectedElement.type === 'label') {\n      newSelectedElement = newSelectedElement.labelTarget;\n    }\n\n    setState({\n      ...state,\n      selectedElement: newSelectedElement\n    });\n\n    // notify interested parties on property panel updates\n    eventBus.fire('propertiesPanel.updated', {\n      element: newSelectedElement\n    });\n  };\n\n  // (2) react on element changes\n\n  // (2a) selection changed\n  useEffect(() => {\n    const onSelectionChanged = (e) => {\n      const { newSelection = [] } = e;\n\n      if (newSelection.length > 1) {\n        return _update(newSelection);\n      }\n\n      const newElement = newSelection[0];\n\n      const rootElement = canvas.getRootElement();\n\n      if (isImplicitRoot(rootElement)) {\n        return;\n      }\n\n      _update(newElement || rootElement);\n    };\n\n    eventBus.on('selection.changed', onSelectionChanged);\n\n    return () => {\n      eventBus.off('selection.changed', onSelectionChanged);\n    };\n  }, []);\n\n  // (2b) selected element changed\n  useEffect(() => {\n    const onElementsChanged = (e) => {\n      const elements = e.elements;\n\n      const updatedElement = findElement(elements, selectedElement);\n\n      if (updatedElement && elementExists(updatedElement, elementRegistry)) {\n        _update(updatedElement);\n      }\n    };\n\n    eventBus.on('elements.changed', onElementsChanged);\n\n    return () => {\n      eventBus.off('elements.changed', onElementsChanged);\n    };\n  }, [ selectedElement ]);\n\n  // (2c) import done\n  useEffect(() => {\n    const onImportDone = () => {\n      const rootElement = canvas.getRootElement();\n\n      _update(rootElement);\n    };\n\n    eventBus.on('import.done', onImportDone);\n\n    return () => {\n      eventBus.off('import.done', onImportDone);\n    };\n  }, []);\n\n  // (2d) provided entries changed\n  useEffect(() => {\n    const onProvidersChanged = () => {\n      _update(selectedElement);\n    };\n\n    eventBus.on('propertiesPanel.providersChanged', onProvidersChanged);\n\n    return () => {\n      eventBus.off('propertiesPanel.providersChanged', onProvidersChanged);\n    };\n  }, [ selectedElement ]);\n\n  // (2e) element templates changed\n  useEffect(() => {\n    const onTemplatesChanged = () => {\n      _update(selectedElement);\n    };\n\n    eventBus.on('elementTemplates.changed', onTemplatesChanged);\n\n    return () => {\n      eventBus.off('elementTemplates.changed', onTemplatesChanged);\n    };\n  }, [ selectedElement ]);\n\n  // (3) create properties panel context\n  const bpmnPropertiesPanelContext = {\n    selectedElement,\n    injector,\n    getService(type, strict) { return injector.get(type, strict); }\n  };\n\n  // (4) retrieve groups for selected element\n  const providers = getProviders(selectedElement);\n\n  const groups = useMemo(() => {\n    return reduce(providers, function(groups, provider) {\n\n      // do not collect groups for multi element state\n      if (isArray(selectedElement)) {\n        return [];\n      }\n\n      const updater = provider.getGroups(selectedElement);\n\n      return updater(groups);\n    }, []);\n  }, [ providers, selectedElement ]);\n\n  // (5) notify layout changes\n  const [ layoutConfig, setLayoutConfig ] = useState(initialLayoutConfig || {});\n\n  const onLayoutChanged = useCallback((newLayout) => {\n    eventBus.fire('propertiesPanel.layoutChanged', {\n      layout: newLayout\n    });\n  }, [ eventBus ]);\n\n  // React to external layout changes\n  useEffect(() => {\n    const cb = (e) => {\n      const { layout } = e;\n      setLayoutConfig(layout);\n    };\n\n    eventBus.on('propertiesPanel.setLayout', cb);\n    return () => eventBus.off('propertiesPanel.setLayout', cb);\n  }, [ eventBus, setLayoutConfig ]);\n\n  // (6) notify description changes\n  const onDescriptionLoaded = (description) => {\n    eventBus.fire('propertiesPanel.descriptionLoaded', {\n      description\n    });\n  };\n\n  // (7) notify tooltip changes\n  const onTooltipLoaded = (tooltip) => {\n    eventBus.fire('propertiesPanel.tooltipLoaded', {\n      tooltip\n    });\n  };\n\n  // (8) render header separately if a header container is provided\n  const separateHeader = !!headerParent;\n  const renderSeparateHeader = separateHeader && selectedElement && !isArray(selectedElement);\n\n  const headerProvider = PanelHeaderProvider(translate);\n\n  return (\n    <BpmnPropertiesPanelContext.Provider value={ bpmnPropertiesPanelContext }>\n      <FeelLanguageContext.Provider value={ DEFAULT_FEEL_LANGUAGE_CONTEXT }>\n        <PropertiesPanel\n          element={ selectedElement }\n          headerProvider={ separateHeader ? null : headerProvider }\n          placeholderProvider={ PanelPlaceholderProvider(translate) }\n          groups={ groups }\n          layoutConfig={ layoutConfig }\n          layoutChanged={ onLayoutChanged }\n          descriptionConfig={ descriptionConfig }\n          descriptionLoaded={ onDescriptionLoaded }\n          tooltipConfig={ tooltipConfig }\n          tooltipLoaded={ onTooltipLoaded }\n          feelPopupContainer={ feelPopupContainer }\n          getFeelPopupLinks={ getFeelPopupLinks }\n          eventBus={ eventBus } />\n        {\n          renderSeparateHeader\n            ? createPortal(\n              <Header\n                element={ selectedElement }\n                headerProvider={ headerProvider } />,\n              headerParent\n            )\n            : null\n        }\n      </FeelLanguageContext.Provider>\n    </BpmnPropertiesPanelContext.Provider>\n  );\n}\n\n\n// helpers //////////////////////////\n\nfunction isImplicitRoot(element) {\n  return element && element.isImplicit;\n}\n\nfunction findElement(elements, element) {\n  return find(elements, (e) => e === element);\n}\n\nfunction elementExists(element, elementRegistry) {\n  return element && elementRegistry.get(element.id);\n}\n","import BpmnPropertiesPanel from './BpmnPropertiesPanel';\n\nimport {\n  isUndo,\n  isRedo\n} from 'diagram-js/lib/features/keyboard/KeyboardUtil';\n\nimport {\n  render\n} from '@bpmn-io/properties-panel/preact';\n\nimport {\n  domify,\n  query as domQuery,\n  event as domEvent\n} from 'min-dom';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst DEFAULT_PRIORITY = 1000;\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').GroupDefinition } GroupDefinition\n * @typedef { import('@bpmn-io/properties-panel').ListGroupDefinition } ListGroupDefinition\n * @typedef { { getGroups: (ModdleElement) => (Array{GroupDefinition|ListGroupDefinition}) => Array{GroupDefinition|ListGroupDefinition}) } PropertiesProvider\n */\n\nexport default class BpmnPropertiesPanelRenderer {\n\n  constructor(config, injector, eventBus) {\n    const {\n      parent,\n      layout: layoutConfig,\n      description: descriptionConfig,\n      tooltip: tooltipConfig,\n      feelPopupContainer,\n      getFeelPopupLinks\n    } = config || {};\n\n    this._eventBus = eventBus;\n    this._injector = injector;\n    this._layoutConfig = layoutConfig;\n    this._descriptionConfig = descriptionConfig;\n    this._tooltipConfig = tooltipConfig;\n    this._feelPopupContainer = feelPopupContainer;\n    this._getFeelPopupLinks = getFeelPopupLinks;\n\n    this._container = domify(\n      '<div style=\"height: 100%\" tabindex=\"-1\" class=\"bio-properties-panel-container\"></div>'\n    );\n\n    this._headerContainer = domify(\n      '<div style=\"flex: none; height: auto\" class=\"bio-properties-panel bio-properties-panel-header-container\"></div>'\n    );\n\n    this._separateHeader = false;\n\n    var commandStack = injector.get('commandStack', false);\n\n    commandStack && setupKeyboard(this._container, eventBus, commandStack);\n\n    eventBus.on('diagram.init', () => {\n      if (parent) {\n        this.attachTo(parent);\n      }\n    });\n\n    eventBus.on('diagram.destroy', () => {\n      this.detach();\n    });\n\n    eventBus.on('root.added', (event) => {\n      const { element } = event;\n\n      this._render(element);\n    });\n  }\n\n\n  /**\n   * Attach the properties panel to a parent node.\n   *\n   * Pass a second container to render the header separately from the body.\n   *\n   * @param {HTMLElement} container body container\n   * @param {HTMLElement} [headerContainer] optional separate header container\n   */\n  attachTo(container, headerContainer) {\n    if (!container) {\n      throw new Error('container required');\n    }\n\n    container = resolveContainer(container);\n\n    if (headerContainer) {\n      headerContainer = resolveContainer(headerContainer);\n\n      if (!headerContainer) {\n        throw new Error('header container not found');\n      }\n    }\n\n    const separateHeader = !!headerContainer;\n\n    const headerPlacementChanged = separateHeader !== this._separateHeader;\n\n    // (1) detach from old parent\n    this.detach();\n\n    // (2) append body to its container\n    container.appendChild(this._container);\n\n    // (3) append header to its container or render it inline\n    this._separateHeader = separateHeader;\n\n    if (headerContainer) {\n      headerContainer.appendChild(this._headerContainer);\n    }\n\n    // (4) re-render if the header placement changed\n    if (headerPlacementChanged) {\n      this._rerender();\n    }\n\n    // (5) notify interested parties\n    this._eventBus.fire('propertiesPanel.attach');\n  }\n\n  /**\n   * Detach the properties panel from its parent node.\n   */\n  detach() {\n    const parentNode = this._container.parentNode;\n\n    if (parentNode) {\n      parentNode.removeChild(this._container);\n\n      this._eventBus.fire('propertiesPanel.detach');\n    }\n\n    const headerParentNode = this._headerContainer.parentNode;\n\n    if (headerParentNode) {\n      headerParentNode.removeChild(this._headerContainer);\n    }\n  }\n\n  /**\n   * Register a new properties provider to the properties panel.\n   *\n   * @param {Number} [priority]\n   * @param {PropertiesProvider} provider\n   */\n  registerProvider(priority, provider) {\n\n    if (!provider) {\n      provider = priority;\n      priority = DEFAULT_PRIORITY;\n    }\n\n    if (typeof provider.getGroups !== 'function') {\n      console.error(\n        'Properties provider does not implement #getGroups(element) API'\n      );\n\n      return;\n    }\n\n    this._eventBus.on('propertiesPanel.getProviders', priority, function(event) {\n      event.providers.push(provider);\n    });\n\n    this._eventBus.fire('propertiesPanel.providersChanged');\n  }\n\n  /**\n   * Updates the layout of the properties panel.\n   * @param {Object} layout\n   */\n  setLayout(layout) {\n    this._eventBus.fire('propertiesPanel.setLayout', { layout });\n  }\n\n  _getProviders() {\n    const event = this._eventBus.createEvent({\n      type: 'propertiesPanel.getProviders',\n      providers: []\n    });\n\n    this._eventBus.fire(event);\n\n    return event.providers;\n  }\n\n  _render(element) {\n    const canvas = this._injector.get('canvas');\n\n    if (!element) {\n      element = canvas.getRootElement();\n    }\n\n    if (isImplicitRoot(element)) {\n      return;\n    }\n\n    render(\n      <BpmnPropertiesPanel\n        element={ element }\n        injector={ this._injector }\n        getProviders={ this._getProviders.bind(this) }\n        layoutConfig={ this._layoutConfig }\n        descriptionConfig={ this._descriptionConfig }\n        tooltipConfig={ this._tooltipConfig }\n        feelPopupContainer={ this._feelPopupContainer }\n        getFeelPopupLinks={ this._getFeelPopupLinks }\n        headerParent={ this._separateHeader ? this._headerContainer : null }\n      />,\n      this._container\n    );\n\n    this._eventBus.fire('propertiesPanel.rendered');\n  }\n\n  _rerender() {\n    const canvas = this._injector.get('canvas');\n\n    const rootElement = canvas.getRootElement();\n\n    if (rootElement && !isImplicitRoot(rootElement)) {\n      this._render(rootElement);\n    }\n  }\n\n  _destroy() {\n    if (this._container) {\n      render(null, this._container);\n\n      this._eventBus.fire('propertiesPanel.destroyed');\n    }\n  }\n}\n\nBpmnPropertiesPanelRenderer.$inject = [ 'config.propertiesPanel', 'injector', 'eventBus' ];\n\n\n// helpers ///////////////////////\n\nfunction isImplicitRoot(element) {\n  return element && element.isImplicit;\n}\n\n/**\n * Resolve a container that may be given as a jQuery object, a selector or a\n * plain HTML element into a plain HTML element.\n *\n * @param {HTMLElement|string|Object} container\n *\n * @return {HTMLElement}\n */\nfunction resolveContainer(container) {\n\n  // unwrap jQuery if provided\n  if (container.get && container.constructor.prototype.jquery) {\n    return container.get(0);\n  }\n\n  if (typeof container === 'string') {\n    return domQuery(container);\n  }\n\n  return container;\n}\n\n/**\n * Setup keyboard bindings (undo, redo) on the given container.\n *\n * @param {Element} container\n * @param {EventBus} eventBus\n * @param {CommandStack} commandStack\n */\nfunction setupKeyboard(container, eventBus, commandStack) {\n\n  function cancel(event) {\n    event.preventDefault();\n    event.stopPropagation();\n  }\n\n  function handleKeys(event) {\n\n    if (isUndo(event)) {\n      commandStack.undo();\n\n      return cancel(event);\n    }\n\n    if (isRedo(event)) {\n      commandStack.redo();\n\n      return cancel(event);\n    }\n  }\n\n  eventBus.on('keyboard.bind', function() {\n    domEvent.bind(container, 'keydown', handleKeys);\n  });\n\n  eventBus.on('keyboard.unbind', function() {\n    domEvent.unbind(container, 'keydown', handleKeys);\n  });\n}","import {\n  forEach\n} from 'min-dash';\n\n/**\n * A handler that combines and executes multiple commands.\n *\n * All updates are bundled on the command stack and executed in one step.\n * This also makes it possible to revert the changes in one step.\n *\n * Example use case: remove the camunda:formKey attribute and in addition\n * add all form fields needed for the camunda:formData property.\n */\nexport default class MultiCommandHandler {\n  constructor(commandStack) {\n    this._commandStack = commandStack;\n  }\n\n  preExecute(context) {\n    const commandStack = this._commandStack;\n\n    forEach(context, function(command) {\n      commandStack.execute(command.cmd, command.context);\n    });\n  }\n}\n\nMultiCommandHandler.$inject = [ 'commandStack' ];","import {\n  forEach\n} from 'min-dash';\n\nimport MultiCommandHandler from './MultiCommandHandler';\n\nconst HANDLERS = {\n  'properties-panel.multi-command-executor': MultiCommandHandler\n};\n\n\nfunction CommandInitializer(eventBus, commandStack) {\n\n  eventBus.on('diagram.init', function() {\n    forEach(HANDLERS, function(handler, id) {\n      commandStack.registerHandler(id, handler);\n    });\n  });\n}\n\nCommandInitializer.$inject = [ 'eventBus', 'commandStack' ];\n\nexport default {\n  __init__: [ CommandInitializer ]\n};","import BpmnPropertiesPanelRenderer from './BpmnPropertiesPanelRenderer';\n\nimport Commands from '../cmd';\nimport { DebounceInputModule, FeelPopupModule } from '@bpmn-io/properties-panel';\n\nexport default {\n  __depends__: [\n    Commands,\n    DebounceInputModule,\n    FeelPopupModule\n  ],\n  __init__: [\n    'propertiesPanel'\n  ],\n  propertiesPanel: [ 'type', BpmnPropertiesPanelRenderer ]\n};","import { Ids } from 'ids';\n\nimport {\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\n/**\n * Create a new element and (optionally) set its parent.\n *\n * @param {string} type\n * @param {Object} properties\n * @param {import('bpmn-js/lib/model/Types').ModdleElement} parent\n * @param {import('bpmn-js/lib/features/modeling/BpmnFactory').default} bpmnFactory\n *\n * @returns {import('bpmn-js/lib/model/Types').ModdleElement}\n */\nexport function createElement(type, properties, parent, bpmnFactory) {\n  const element = bpmnFactory.create(type, properties);\n\n  if (parent) {\n    element.$parent = parent;\n  }\n\n  return element;\n}\n\n/**\n * generate a semantic id with given prefix\n */\nexport function nextId(prefix) {\n  const ids = new Ids([ 32,32,1 ]);\n\n  return ids.nextPrefixed(prefix);\n}\n\nexport function getRoot(businessObject) {\n  let parent = businessObject;\n\n  while (parent.$parent) {\n    parent = parent.$parent;\n  }\n\n  return parent;\n}\n\nexport function filterElementsByType(objectList, type) {\n  const list = objectList || [];\n\n  return list.filter(element => is(element, type));\n}\n\nexport function findRootElementsByType(businessObject, referencedType) {\n  const root = getRoot(businessObject);\n\n  return filterElementsByType(root.get('rootElements'), referencedType);\n}\n\nexport function findRootElementById(businessObject, type, id) {\n  const elements = findRootElementsByType(businessObject, type);\n\n  return elements.find(element => element.id === id);\n}\n","import { createElement } from './ElementUtil';\n\n/**\n * createOrUpdateFormalExpression - upserts a specific formal expression\n *\n * If the value is falsy, the formal expression is removed.\n *\n * @param {djs.model.Base} element\n * @param {ModdleElement} moddleElement\n * @param {string} propertyName\n * @param {string} newValue\n * @param {BpmnFactory} bpmnFactory\n * @param {CommandStack} commandStack\n */\nexport function createOrUpdateFormalExpression(\n    element,\n    moddleElement,\n    propertyName,\n    newValue,\n    bpmnFactory,\n    commandStack\n) {\n  return commandStack.execute(\n    'element.updateModdleProperties',\n    createOrUpdateFormalExpressionCommand(\n      element,\n      moddleElement,\n      propertyName,\n      newValue,\n      bpmnFactory\n    )\n  );\n}\n\n/**\n * createOrUpdateFormalExpressionCommand - creates a command to upsert a specific formal expression\n *\n * If the value is falsy, the formal expression is removed.\n *\n * @param {djs.model.Base} element\n * @param {ModdleElement} moddleElement\n * @param {string} propertyName\n * @param {string} newValue\n * @param {BpmnFactory} bpmnFactory\n */\nexport function createOrUpdateFormalExpressionCommand(\n    element,\n    moddleElement,\n    propertyName,\n    newValue,\n    bpmnFactory\n) {\n  const expressionProps = {};\n\n  if (!newValue) {\n\n    // remove formal expression\n    expressionProps[propertyName] = undefined;\n\n    return {\n      element,\n      moddleElement,\n      properties: expressionProps,\n    };\n  }\n\n  const existingExpression = moddleElement.get(propertyName);\n  if (existingExpression) {\n\n    // edit existing formal expression\n    return {\n      element,\n      moddleElement: existingExpression,\n      properties: {\n        body: newValue,\n      },\n    };\n  }\n\n  // add formal expression\n  expressionProps[propertyName] = createElement(\n    'bpmn:FormalExpression',\n    { body: newValue },\n    moddleElement,\n    bpmnFactory\n  );\n\n  return {\n    element,\n    moddleElement,\n    properties: expressionProps,\n  };\n}\n","import { is, getBusinessObject } from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  CheckboxEntry,\n  isTextFieldEntryEdited,\n  TextFieldEntry,\n} from '@bpmn-io/properties-panel';\n\nimport { useService } from '../../../hooks';\nimport { createOrUpdateFormalExpression } from '../../../utils/FormalExpressionUtil';\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function AdHocCompletionProps(props) {\n  const { element } = props;\n\n  if (!is(element, 'bpmn:AdHocSubProcess')) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'completionCondition',\n      component: CompletionCondition,\n      isEdited: isTextFieldEntryEdited,\n    },\n    {\n      id: 'cancelRemainingInstances',\n      component: CancelRemainingInstances,\n      isEdited: (node) => node && !node.checked // the default value is true\n    },\n  ];\n}\n\nfunction CompletionCondition(props) {\n  const { element } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const debounce = useService('debounceInput');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    const expression = getBusinessObject(element).get('completionCondition');\n    return expression && expression.get('body');\n  };\n\n  const setValue = (value) => {\n    return createOrUpdateFormalExpression(\n      element,\n      getBusinessObject(element),\n      'completionCondition',\n      value,\n      bpmnFactory,\n      commandStack\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'completionCondition',\n    label: translate('Completion condition'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction CancelRemainingInstances(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('cancelRemainingInstances');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        cancelRemainingInstances: value,\n      },\n    });\n  };\n\n  return CheckboxEntry({\n    element,\n    id: 'cancelRemainingInstances',\n    label: translate('Cancel remaining instances'),\n    getValue,\n    setValue,\n  });\n}","import {\n  useEffect\n} from '@bpmn-io/properties-panel/preact/hooks';\n\nimport {\n  query as domQuery\n} from 'min-dom';\n\nimport {\n  SelectEntry,\n  usePrevious\n} from '@bpmn-io/properties-panel';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nexport default function ReferenceSelectEntry(props) {\n  const {\n    autoFocusEntry,\n    element,\n    getOptions\n  } = props;\n\n  const options = getOptions(element);\n  const prevOptions = usePrevious(options);\n\n  // auto focus specifc other entry when options changed\n  useEffect(() => {\n    if (autoFocusEntry && prevOptions && options.length > prevOptions.length) {\n\n      const entry = domQuery(`[data-entry-id=\"${autoFocusEntry}\"]`);\n\n      const focusableInput = domQuery('.bio-properties-panel-input', entry);\n\n      if (focusableInput) {\n        focusableInput.select();\n      }\n    }\n  }, [ options ]);\n\n  return (\n    <SelectEntry { ...props } />\n  );\n}","import {\n  isAny\n} from 'bpmn-js/lib/features/modeling/util/ModelingUtil';\n\nimport {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  find\n} from 'min-dash';\n\nexport function isErrorSupported(element) {\n  return isAny(element, [\n    'bpmn:StartEvent',\n    'bpmn:BoundaryEvent',\n    'bpmn:EndEvent'\n  ]) && !!getErrorEventDefinition(element);\n}\n\nexport function getErrorEventDefinition(element) {\n  return getEventDefinition(element, 'bpmn:ErrorEventDefinition');\n}\n\nexport function isTimerSupported(element) {\n  return isAny(element, [\n    'bpmn:StartEvent',\n    'bpmn:IntermediateCatchEvent',\n    'bpmn:BoundaryEvent'\n  ]) && !!getTimerEventDefinition(element);\n}\n\n/**\n * Get the timer definition type for a given timer event definition.\n *\n * @param {ModdleElement<bpmn:TimerEventDefinition>} timer\n *\n * @return {string|undefined} the timer definition type\n */\nexport function getTimerDefinitionType(timer) {\n\n  if (!timer) {\n    return;\n  }\n\n  const timeDate = timer.get('timeDate');\n  if (typeof timeDate !== 'undefined') {\n    return 'timeDate';\n  }\n\n  const timeCycle = timer.get('timeCycle');\n  if (typeof timeCycle !== 'undefined') {\n    return 'timeCycle';\n  }\n\n  const timeDuration = timer.get('timeDuration');\n  if (typeof timeDuration !== 'undefined') {\n    return 'timeDuration';\n  }\n}\n\nexport function getTimerEventDefinition(element) {\n  return getEventDefinition(element, 'bpmn:TimerEventDefinition');\n}\n\nexport function getError(element) {\n  const errorEventDefinition = getErrorEventDefinition(element);\n\n  return errorEventDefinition && errorEventDefinition.get('errorRef');\n}\n\nexport function getEventDefinition(element, eventType) {\n  const businessObject = getBusinessObject(element);\n\n  const eventDefinitions = businessObject.get('eventDefinitions') || [];\n\n  return find(eventDefinitions, function(definition) {\n    return is(definition, eventType);\n  });\n}\n\nexport function isMessageSupported(element) {\n  return is(element, 'bpmn:ReceiveTask') || (\n    isAny(element, [\n      'bpmn:StartEvent',\n      'bpmn:EndEvent',\n      'bpmn:IntermediateThrowEvent',\n      'bpmn:BoundaryEvent',\n      'bpmn:IntermediateCatchEvent'\n    ]) && !!getMessageEventDefinition(element)\n  );\n}\n\nexport function getMessageEventDefinition(element) {\n  if (is(element, 'bpmn:ReceiveTask')) {\n    return getBusinessObject(element);\n  }\n\n  return getEventDefinition(element, 'bpmn:MessageEventDefinition');\n}\n\nexport function getMessage(element) {\n  const messageEventDefinition = getMessageEventDefinition(element);\n\n  return messageEventDefinition && messageEventDefinition.get('messageRef');\n}\n\nexport function getLinkEventDefinition(element) {\n  return getEventDefinition(element, 'bpmn:LinkEventDefinition');\n}\n\nexport function getSignalEventDefinition(element) {\n  return getEventDefinition(element, 'bpmn:SignalEventDefinition');\n}\n\nexport function isLinkSupported(element) {\n  return isAny(element, [\n    'bpmn:IntermediateThrowEvent',\n    'bpmn:IntermediateCatchEvent'\n  ]) && !!getLinkEventDefinition(element);\n}\n\nexport function isSignalSupported(element) {\n  return is(element, 'bpmn:Event') && !!getSignalEventDefinition(element);\n}\n\nexport function getSignal(element) {\n  const signalEventDefinition = getSignalEventDefinition(element);\n\n  return signalEventDefinition && signalEventDefinition.get('signalRef');\n}\n\nexport function getEscalationEventDefinition(element) {\n  return getEventDefinition(element, 'bpmn:EscalationEventDefinition');\n}\n\nexport function isEscalationSupported(element) {\n  return is(element, 'bpmn:Event') && !!getEscalationEventDefinition(element);\n}\n\nexport function getEscalation(element) {\n  const escalationEventDefinition = getEscalationEventDefinition(element);\n\n  return escalationEventDefinition && escalationEventDefinition.get('escalationRef');\n}\n\nexport function isCompensationSupported(element) {\n  return isAny(element, [\n    'bpmn:EndEvent',\n    'bpmn:IntermediateThrowEvent'\n  ]) && !!getCompensateEventDefinition(element);\n}\n\nexport function getCompensateEventDefinition(element) {\n  return getEventDefinition(element, 'bpmn:CompensateEventDefinition');\n}\n\nexport function getCompensateActivity(element) {\n  const compensateEventDefinition = getCompensateEventDefinition(element);\n\n  return compensateEventDefinition && compensateEventDefinition.get('activityRef');\n}\n","import {\n  find,\n  sortBy\n} from 'min-dash';\n\nimport {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  isSelectEntryEdited,\n  isCheckboxEntryEdited,\n  CheckboxEntry\n} from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport ReferenceSelect from '../../../entries/ReferenceSelect';\n\nimport {\n  getCompensateActivity,\n  getCompensateEventDefinition,\n  isCompensationSupported\n} from '../utils/EventDefinitionUtil';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function CompensationProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!isCompensationSupported(element)) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'waitForCompletion',\n      component: WaitForCompletion,\n      isEdited: isCheckboxEntryEdited\n    },\n    {\n      id: 'activityRef',\n      component: ActivityRef,\n      isEdited: isSelectEntryEdited\n    }\n  ];\n}\n\nfunction WaitForCompletion(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const compensateEventDefinition = getCompensateEventDefinition(element);\n\n  const getValue = () => {\n    return compensateEventDefinition.get('waitForCompletion');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: compensateEventDefinition,\n      properties: {\n        waitForCompletion: value\n      }\n    });\n  };\n\n  return CheckboxEntry({\n    element,\n    id: 'waitForCompletion',\n    label: translate('Wait for completion'),\n    getValue,\n    setValue\n  });\n}\n\nfunction ActivityRef(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const elementRegistry = useService('elementRegistry');\n  const translate = useService('translate');\n\n  const compensateEventDefinition = getCompensateEventDefinition(element);\n\n  const getValue = () => {\n    const activityRef = getCompensateActivity(element);\n\n    return activityRef && activityRef.get('id');\n  };\n\n  const setValue = (value) => {\n\n    // update (or remove) activityRef\n    const activityRef = value ? getBusinessObject(elementRegistry.get(value)) : undefined;\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: compensateEventDefinition,\n      properties: {\n        activityRef\n      }\n    });\n  };\n\n  const getOptions = () => {\n\n    let options = [\n      { value: '', label: translate('<none>') },\n    ];\n\n    const activities = findActivityRefs(element);\n\n    sortByName(activities).forEach(function(activity) {\n      options.push({\n        value: activity.id,\n        label: createOptionLabel(activity)\n      });\n    });\n\n    return options;\n  };\n\n  return ReferenceSelect({\n    element,\n    id: 'activityRef',\n    label: translate('Activity reference'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\n\n// helper /////////////////////////\n\nfunction getFlowElements(element, type) {\n  const { flowElements } = element;\n  return flowElements.filter(function(flowElement) {\n    return is(flowElement, type);\n  });\n}\n\nfunction getContainedActivities(element) {\n  return getFlowElements(element, 'bpmn:Activity');\n}\n\nfunction getContainedBoundaryEvents(element) {\n  return getFlowElements(element, 'bpmn:BoundaryEvent');\n}\n\n/**\n * Checks whether an Activity is attaching a CompensateEvent of the parent container.\n *\n * @param {ModdleElement} activity\n * @param {Array<ModdleElement>} boundaryEvents\n * @returns {Boolean}\n */\nfunction hasCompensationEventAttached(activity, boundaryEvents) {\n  const { id: activityId } = activity;\n\n  return !!find(boundaryEvents, function(boundaryEvent) {\n    const { attachedToRef } = boundaryEvent;\n    const compensateEventDefinition = getCompensateEventDefinition(boundaryEvent);\n\n    return attachedToRef && compensateEventDefinition && attachedToRef.id === activityId;\n  });\n}\n\n/**\n * Checks whether an Activity can be compensated. That's the case when it is\n * a) a CallActivity\n * b) a SubProcess, when it is not event based and not a compensation\n * c) any other Activity, when it is attaching a CompensateEvent of the parent container\n *\n * @param {ModdleElement} activity\n * @param {Array<ModdleElement>} boundaryEvents\n * @returns {Boolean}\n */\nfunction canBeCompensated(activity, boundaryEvents) {\n  return is(activity, 'bpmn:CallActivity') ||\n    (is(activity, 'bpmn:SubProcess') && !activity.triggeredByEvent && !activity.isForCompensation) ||\n    hasCompensationEventAttached(activity, boundaryEvents);\n}\n\nfunction getActivitiesForCompensation(element) {\n  const activities = getContainedActivities(element);\n  const boundaryEvents = getContainedBoundaryEvents(element);\n\n  return activities.filter(function(activity) {\n    return canBeCompensated(activity, boundaryEvents);\n  });\n}\n\n/**\n * Retrieves all possible activities to reference for a Compensation.\n *\n * @param {djs.model.Base} element\n * @returns {Array<ModdleElement>}\n */\nfunction findActivityRefs(element) {\n  const businessObject = getBusinessObject(element);\n\n  let parent = businessObject.$parent;\n\n  // (1) get all activities in parent container\n  let activities = getActivitiesForCompensation(parent);\n\n  // (2) if throwing compensation event is inside an EventSubProcess,\n  // also get all activities outside of the event sub process\n  if (is(parent, 'bpmn:SubProcess') && parent.triggeredByEvent) {\n    parent = parent.$parent;\n    if (parent) {\n      activities = [\n        ...activities,\n        ...getActivitiesForCompensation(parent)\n      ];\n    }\n\n  }\n\n  return activities;\n}\n\n/**\n * Retrieves an option label in the form\n * a) with name: \"my Task (id=Task_1)\"\n * b) without name: \"(id=Task_1)\"\n *\n * @param {ModdleElement} activity\n * @returns {String}\n */\nfunction createOptionLabel(activity) {\n  const { id, name } = activity;\n\n  return `${name ? name + ' ' : ''}(id=${id})`;\n}\n\nfunction sortByName(elements) {\n  return sortBy(elements, e => (e.name || '').toLowerCase());\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  TextAreaEntry,\n  isTextAreaEntryEdited\n} from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport { without } from 'min-dash';\n\nconst DOCUMENTATION_TEXT_FORMAT = 'text/plain';\n\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function DocumentationProps(props) {\n  const {\n    element\n  } = props;\n\n  const entries = [\n    {\n      id: 'documentation',\n      component: ElementDocumentationProperty,\n      isEdited: isTextAreaEntryEdited\n    }\n  ];\n\n  if (hasProcessRef(element)) {\n    entries.push({\n      id: 'processDocumentation',\n      component: ProcessDocumentationProperty,\n      isEdited: isTextAreaEntryEdited\n    });\n  }\n\n  return entries;\n}\n\nfunction ElementDocumentationProperty(props) {\n  const {\n    element\n  } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = getDocumentation(getBusinessObject(element));\n\n  const setValue =\n    setDocumentation(element, getBusinessObject(element), bpmnFactory, commandStack);\n\n  return TextAreaEntry({\n    element,\n    id: 'documentation',\n    label: translate('Element documentation'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ProcessDocumentationProperty(props) {\n  const {\n    element\n  } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const processRef = getBusinessObject(element).processRef;\n\n  const getValue = getDocumentation(processRef);\n\n  const setValue =\n    setDocumentation(element, processRef, bpmnFactory, commandStack);\n\n  return TextAreaEntry({\n    element,\n    id: 'processDocumentation',\n    label: translate('Process documentation'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper ////////////////////////////\n\nfunction hasProcessRef(element) {\n  return is(element, 'bpmn:Participant') && element.businessObject.get('processRef');\n}\n\nfunction findDocumentation(docs) {\n  return docs.find(function(d) {\n    return (d.textFormat || DOCUMENTATION_TEXT_FORMAT) === DOCUMENTATION_TEXT_FORMAT;\n  });\n}\n\n/**\n * Retrieves a documentation element from a given moddle element.\n *\n * @param {ModdleElement} businessObject\n *\n * @returns {ModdleElement} documentation element inside the given moddle element.\n */\nfunction getDocumentation(businessObject) {\n  return function() {\n    const documentation = findDocumentation(\n      businessObject && businessObject.get('documentation')\n    );\n\n    return documentation && documentation.text;\n  };\n}\n\n/**\n * Sets a documentation element for a given moddle element.\n *\n * @param {ModdleElement} businessObject\n */\nfunction setDocumentation(element, businessObject, bpmnFactory, commandStack) {\n  return function(value) {\n\n    let documentation = findDocumentation(\n      businessObject && businessObject.get('documentation')\n    );\n\n    // (1) update or removing existing documentation\n    if (documentation) {\n\n      if (value) {\n        return commandStack.execute('element.updateModdleProperties', {\n          element,\n          moddleElement: documentation,\n          properties: {\n            text: value\n          }\n        });\n      } else {\n        return commandStack.execute('element.updateModdleProperties', {\n          element,\n          moddleElement: businessObject,\n          properties: {\n            documentation: without(businessObject.get('documentation'), documentation)\n          }\n        });\n      }\n    }\n\n    // (2) create new documentation entry\n    if (value) {\n      documentation = bpmnFactory.create('bpmn:Documentation', {\n        text: value\n      });\n\n      return commandStack.execute('element.updateModdleProperties', {\n        element,\n        moddleElement: businessObject,\n        properties: {\n          documentation: [ ...businessObject.get('documentation'), documentation ]\n        }\n      });\n    }\n  };\n}","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  sortBy\n} from 'min-dash';\n\nimport {\n  TextFieldEntry,\n  isSelectEntryEdited,\n  isTextFieldEntryEdited\n} from '@bpmn-io/properties-panel';\n\nimport ReferenceSelect from '../../../entries/ReferenceSelect';\n\nimport { useService } from '../../../hooks';\n\nimport {\n  getError,\n  getErrorEventDefinition,\n  isErrorSupported\n} from '../utils/EventDefinitionUtil';\n\nimport {\n  createElement,\n  findRootElementById,\n  findRootElementsByType,\n  getRoot,\n  nextId\n} from '../../../utils/ElementUtil';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nexport const EMPTY_OPTION = '';\nexport const CREATE_NEW_OPTION = 'create-new';\n\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function ErrorProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!isErrorSupported(element)) {\n    return [];\n  }\n\n  const error = getError(element);\n\n  let entries = [\n    {\n      id: 'errorRef',\n      component: ErrorRef,\n      isEdited: isSelectEntryEdited\n    }\n  ];\n\n  if (error) {\n    entries = [\n      ...entries,\n      {\n        id: 'errorName',\n        component: ErrorName,\n        isEdited: isTextFieldEntryEdited\n      },\n      {\n        id: 'errorCode',\n        component: ErrorCode,\n        isEdited: isTextFieldEntryEdited\n      }\n    ];\n  }\n\n  return entries;\n}\n\nfunction ErrorRef(props) {\n  const { element } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const errorEventDefinition = getErrorEventDefinition(element);\n\n  const getValue = () => {\n    const error = getError(element);\n\n    if (error) {\n      return error.get('id');\n    }\n\n    return EMPTY_OPTION;\n  };\n\n  const setValue = (value) => {\n    const root = getRoot(errorEventDefinition);\n    const commands = [];\n\n    let error;\n\n    // (1) create new error\n    if (value === CREATE_NEW_OPTION) {\n      error = createElement(\n        'bpmn:Error',\n        { name: nextId('Error_') },\n        root,\n        bpmnFactory\n      );\n\n      value = error.get('id');\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: root,\n          properties: {\n            rootElements: [ ...root.get('rootElements'), error ]\n          }\n        }\n      });\n    }\n\n    // (2) update (or remove) errorRef\n    error = error || findRootElementById(errorEventDefinition, 'bpmn:Error', value);\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: errorEventDefinition,\n        properties: {\n          errorRef: error\n        }\n      }\n    });\n\n    // (3) commit all updates\n    return commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  const getOptions = () => {\n\n    let options = [\n      { value: EMPTY_OPTION, label: translate('<none>') },\n      { value: CREATE_NEW_OPTION, label: translate('Create new ...') }\n    ];\n\n    const errors = findRootElementsByType(getBusinessObject(element), 'bpmn:Error');\n\n    sortByName(errors).forEach(error => {\n      options.push({\n        value: error.get('id'),\n        label: error.get('name')\n      });\n    });\n\n    return options;\n  };\n\n  return ReferenceSelect({\n    element,\n    id: 'errorRef',\n    label: translate('Global error reference'),\n    autoFocusEntry: 'errorName',\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nfunction ErrorName(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const error = getError(element);\n\n  const getValue = () => {\n    return error.get('name');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: error,\n        properties: {\n          name: value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'errorName',\n    label: translate('Name'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ErrorCode(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const error = getError(element);\n\n  const getValue = () => {\n    return error.get('errorCode');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: error,\n        properties: {\n          errorCode: value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'errorCode',\n    label: translate('Code'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper /////////////////////////\n\nfunction sortByName(elements) {\n  return sortBy(elements, e => (e.name || '').toLowerCase());\n}","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  sortBy\n} from 'min-dash';\n\nimport {\n  TextFieldEntry,\n  isTextFieldEntryEdited,\n  isSelectEntryEdited\n} from '@bpmn-io/properties-panel';\nimport ReferenceSelect from '../../../entries/ReferenceSelect';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getEscalation,\n  getEscalationEventDefinition,\n  isEscalationSupported\n} from '../utils/EventDefinitionUtil';\n\nimport {\n  createElement,\n  findRootElementById,\n  findRootElementsByType,\n  getRoot,\n  nextId\n} from '../../../utils/ElementUtil';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst CREATE_NEW_OPTION = 'create-new';\n\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function EscalationProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!isEscalationSupported(element)) {\n    return [];\n  }\n\n  const escalation = getEscalation(element);\n\n  let entries = [\n    {\n      id: 'escalationRef',\n      component: EscalationRef,\n      isEdited: isSelectEntryEdited\n    }\n  ];\n\n  if (escalation) {\n    entries = [\n      ...entries,\n      {\n        id: 'escalationName',\n        component: EscalationName,\n        isEdited: isTextFieldEntryEdited\n      },\n      {\n        id: 'escalationCode',\n        component: EscalationCode,\n        isEdited: isTextFieldEntryEdited\n      }\n    ];\n  }\n\n  return entries;\n}\n\nfunction EscalationRef(props) {\n  const { element } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const escalationEventDefinition = getEscalationEventDefinition(element);\n\n  const getValue = () => {\n    const escalation = getEscalation(element);\n\n    return escalation && escalation.get('id');\n  };\n\n  const setValue = (value) => {\n    const root = getRoot(escalationEventDefinition);\n    const commands = [];\n\n    let escalation;\n\n    // (1) create new escalation\n    if (value === CREATE_NEW_OPTION) {\n      const id = nextId('Escalation_');\n\n      escalation = createElement(\n        'bpmn:Escalation',\n        { id, name: id },\n        root,\n        bpmnFactory\n      );\n\n      value = escalation.get('id');\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: root,\n          properties: {\n            rootElements: [ ...root.get('rootElements'), escalation ]\n          }\n        }\n      });\n    }\n\n    // (2) update (or remove) escalationRef\n    escalation = escalation || findRootElementById(escalationEventDefinition, 'bpmn:Escalation', value);\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: escalationEventDefinition,\n        properties: {\n          escalationRef: escalation\n        }\n      }\n    });\n\n    // (3) commit all updates\n    return commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  const getOptions = () => {\n\n    let options = [\n      { value: '', label: translate('<none>') },\n      { value: CREATE_NEW_OPTION, label: translate('Create new ...') }\n    ];\n\n    const escalations = findRootElementsByType(getBusinessObject(element), 'bpmn:Escalation');\n\n    sortByName(escalations).forEach(escalation => {\n      options.push({\n        value: escalation.get('id'),\n        label: escalation.get('name')\n      });\n    });\n\n    return options;\n  };\n\n  return ReferenceSelect({\n    element,\n    id: 'escalationRef',\n    label: translate('Global escalation reference'),\n    autoFocusEntry: 'escalationName',\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nfunction EscalationName(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const escalation = getEscalation(element);\n\n  const getValue = () => {\n    return escalation.get('name');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: escalation,\n        properties: {\n          name: value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'escalationName',\n    label: translate('Name'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction EscalationCode(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const escalation = getEscalation(element);\n\n  const getValue = () => {\n    return escalation.get('escalationCode');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: escalation,\n        properties: {\n          escalationCode: value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'escalationCode',\n    label: translate('Code'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper /////////////////////////\n\nfunction sortByName(elements) {\n  return sortBy(elements, e => (e.name || '').toLowerCase());\n}\n","import {\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { CheckboxEntry, isCheckboxEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function ExecutableProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:Process') && !hasProcessRef(element)) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'isExecutable',\n      component: Executable,\n      isEdited: isCheckboxEntryEdited\n    }\n  ];\n}\n\nfunction Executable(props) {\n  const {\n    element\n  } = props;\n\n  const modeling = useService('modeling');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  let getValue, setValue;\n\n  setValue = (value) => {\n    modeling.updateProperties(element, {\n      isExecutable: value\n    });\n  };\n\n  getValue = (element) => {\n    return element.businessObject.isExecutable;\n  };\n\n  // handle properties on processRef level for participants\n  if (is(element, 'bpmn:Participant')) {\n\n    const process = element.businessObject.get('processRef');\n\n    setValue = (value) => {\n      commandStack.execute(\n        'element.updateModdleProperties',\n        {\n          element,\n          moddleElement: process,\n          properties: {\n            isExecutable: value\n          }\n        }\n      );\n    };\n\n    getValue = () => {\n      return process.get('isExecutable');\n    };\n\n  }\n\n  return CheckboxEntry({\n    element,\n    id: 'isExecutable',\n    label: translate('Executable'),\n    getValue,\n    setValue\n  });\n}\n\n\n// helper /////////////////////\n\nfunction hasProcessRef(element) {\n  return is(element, 'bpmn:Participant') && element.businessObject.get('processRef');\n}","const SPACE_REGEX = /\\s/;\n\n// for QName validation as per http://www.w3.org/TR/REC-xml/#NT-NameChar\nconst QNAME_REGEX = /^([a-z][\\w-.]*:)?[a-z_][\\w-.]*$/i;\n\n// for ID validation as per BPMN Schema (QName - Namespace)\nconst ID_REGEX = /^[a-z_][\\w-.]*$/i;\n\n/**\n * checks whether the id value is valid\n *\n * @param {ModdleElement} element\n * @param {String} idValue\n * @param {Function} translate\n *\n * @return {String} error message\n */\nexport function isIdValid(element, idValue, translate) {\n  const assigned = element.$model.ids.assigned(idValue);\n  const idAlreadyExists = assigned && assigned !== element;\n\n  if (!idValue) {\n    return translate('ID must not be empty.');\n  }\n\n  if (idAlreadyExists) {\n    return translate('ID must be unique.');\n  }\n\n  return validateId(idValue, translate);\n}\n\nexport function validateId(idValue, translate) {\n\n  if (containsSpace(idValue)) {\n    return translate('ID must not contain spaces.');\n  }\n\n  if (!ID_REGEX.test(idValue)) {\n\n    if (QNAME_REGEX.test(idValue)) {\n      return translate('ID must not contain prefix.');\n    }\n\n    return translate('ID must be a valid QName.');\n  }\n}\n\nexport function containsSpace(value) {\n  return SPACE_REGEX.test(value);\n}","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport { useCallback } from '@bpmn-io/properties-panel/preact/hooks';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  isIdValid\n} from '../../../utils/ValidationUtil';\n\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function IdProps() {\n  return [\n    {\n      id: 'id',\n      component: Id,\n      isEdited: isTextFieldEntryEdited\n    }\n  ];\n}\n\nfunction Id(props) {\n  const {\n    element\n  } = props;\n\n  const modeling = useService('modeling');\n  const debounce = useService('debounceInput');\n  const translate = useService('translate');\n\n  const setValue = (value, error) => {\n    if (error) {\n      return;\n    }\n\n    modeling.updateProperties(element, {\n      id: value\n    });\n  };\n\n  const getValue = useCallback((element) => {\n    return getBusinessObject(element).id;\n  }, [ element ]);\n\n  const validate = useCallback((value) => {\n    const businessObject = getBusinessObject(element);\n\n    return isIdValid(businessObject, value, translate);\n  }, [ element, translate ]);\n\n  return TextFieldEntry({\n    element,\n    id: 'id',\n    label: translate(is(element, 'bpmn:Participant') ? 'Participant ID' : 'ID'),\n    getValue,\n    setValue,\n    debounce,\n    validate\n  });\n}","import { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getLinkEventDefinition,\n  isLinkSupported\n} from '../utils/EventDefinitionUtil';\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function LinkProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!isLinkSupported(element)) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'linkName',\n      component: LinkName,\n      isEdited: isTextFieldEntryEdited\n    },\n  ];\n}\n\nfunction LinkName(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const linkEventDefinition = getLinkEventDefinition(element);\n\n  const getValue = () => {\n    return linkEventDefinition.get('name');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: linkEventDefinition,\n      properties: {\n        name: value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'linkName',\n    label: translate('Name'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  sortBy\n} from 'min-dash';\n\nimport { TextFieldEntry, isTextFieldEntryEdited, isSelectEntryEdited } from '@bpmn-io/properties-panel';\nimport ReferenceSelect from '../../../entries/ReferenceSelect';\n\nimport { useService } from '../../../hooks';\n\nimport {\n  getMessage,\n  getMessageEventDefinition,\n  isMessageSupported\n} from '../utils/EventDefinitionUtil';\n\nimport {\n  createElement,\n  findRootElementById,\n  findRootElementsByType,\n  getRoot,\n  nextId\n} from '../../../utils/ElementUtil';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nexport const EMPTY_OPTION = '';\nexport const CREATE_NEW_OPTION = 'create-new';\n\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function MessageProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!isMessageSupported(element)) {\n    return [];\n  }\n\n  const message = getMessage(element);\n\n  let entries = [\n    {\n      id: 'messageRef',\n      component: MessageRef,\n      isEdited: isSelectEntryEdited\n    }\n  ];\n\n  if (message) {\n    entries = [\n      ...entries,\n      {\n        id: 'messageName',\n        component: MessageName,\n        isEdited: isTextFieldEntryEdited\n      },\n    ];\n  }\n\n  return entries;\n}\n\nfunction MessageRef(props) {\n  const { element } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const messageEventDefinition = getMessageEventDefinition(element);\n\n  const getValue = () => {\n    const message = getMessage(element);\n\n    if (message) {\n      return message.get('id');\n    }\n\n    return EMPTY_OPTION;\n  };\n\n  const setValue = (value) => {\n    const root = getRoot(messageEventDefinition);\n    const commands = [];\n\n    let message;\n\n    // (1) create new message\n    if (value === CREATE_NEW_OPTION) {\n      const id = nextId('Message_');\n\n      message = createElement(\n        'bpmn:Message',\n        { id, name: id },\n        root,\n        bpmnFactory\n      );\n\n      value = message.get('id');\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: root,\n          properties: {\n            rootElements: [ ...root.get('rootElements'), message ]\n          }\n        }\n      });\n    }\n\n    // (2) update (or remove) messageRef\n    message = message || findRootElementById(messageEventDefinition, 'bpmn:Message', value);\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: messageEventDefinition,\n        properties: {\n          messageRef: message\n        }\n      }\n    });\n\n    // (3) commit all updates\n    return commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  const getOptions = () => {\n\n    let options = [\n      { value: EMPTY_OPTION, label: translate('<none>') },\n      { value: CREATE_NEW_OPTION, label: translate('Create new ...') }\n    ];\n\n    const messages = findRootElementsByType(getBusinessObject(element), 'bpmn:Message');\n\n    sortByName(messages).forEach(message => {\n      options.push({\n        value: message.get('id'),\n        label: message.get('name')\n      });\n    });\n\n    return options;\n  };\n\n  return ReferenceSelect({\n    element,\n    id: 'messageRef',\n    label: translate('Global message reference'),\n    autoFocusEntry: 'messageName',\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nfunction MessageName(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const message = getMessage(element);\n\n  const getValue = () => {\n    return message.get('name');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: message,\n        properties: {\n          name: value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'messageName',\n    label: translate('Name'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper /////////////////////////\n\nfunction sortByName(elements) {\n  return sortBy(elements, e => (e.name || '').toLowerCase());\n}","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  createOrUpdateFormalExpression\n} from '../../../utils/FormalExpressionUtil';\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function MultiInstanceProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!isMultiInstanceSupported(element)) {\n    return [];\n  }\n\n  const entries = [\n    {\n      id: 'loopCardinality',\n      component: LoopCardinality,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'completionCondition',\n      component: CompletionCondition,\n      isEdited: isTextFieldEntryEdited\n    }\n  ];\n\n  return entries;\n}\n\nfunction LoopCardinality(props) {\n  const { element } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const debounce = useService('debounceInput');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    return getLoopCardinalityValue(element);\n  };\n\n  const setValue = (value) => {\n    return createOrUpdateFormalExpression(\n      element,\n      getLoopCharacteristics(element),\n      'loopCardinality',\n      value,\n      bpmnFactory,\n      commandStack\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'loopCardinality',\n    label: translate('Loop cardinality'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction CompletionCondition(props) {\n  const { element } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const debounce = useService('debounceInput');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    return getCompletionConditionValue(element);\n  };\n\n  const setValue = (value) => {\n    return createOrUpdateFormalExpression(\n      element,\n      getLoopCharacteristics(element),\n      'completionCondition',\n      value,\n      bpmnFactory,\n      commandStack\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'completionCondition',\n    label: translate('Completion condition'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper ////////////////////////////\n\n// generic ///////////////////////////\n\n/**\n * isMultiInstanceSupported - check whether given element supports MultiInstanceLoopCharacteristics.\n *\n * @param {djs.model.Base} element\n * @return {boolean}\n */\nfunction isMultiInstanceSupported(element) {\n  const loopCharacteristics = getLoopCharacteristics(element);\n  return !!loopCharacteristics && is(loopCharacteristics, 'bpmn:MultiInstanceLoopCharacteristics');\n}\n\n/**\n * getBody - get the body of a given expression.\n *\n * @param {ModdleElement<bpmn:FormalExpression>} expression\n * @return {string} the body (value) of the expression\n */\nfunction getBody(expression) {\n  return expression && expression.get('body');\n}\n\n/**\n * getProperty - get a property value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n * @param {string} propertyName\n *\n * @return {any} the property value\n */\nfunction getProperty(element, propertyName) {\n  const loopCharacteristics = getLoopCharacteristics(element);\n  return loopCharacteristics && loopCharacteristics.get(propertyName);\n}\n\n/**\n * getLoopCharacteristics - get loopCharacteristics of a given element.\n *\n * @param {djs.model.Base} element\n * @return {ModdleElement<bpmn:MultiInstanceLoopCharacteristics> | undefined}\n */\nfunction getLoopCharacteristics(element) {\n  const bo = getBusinessObject(element);\n  return bo.loopCharacteristics;\n}\n\n// loopCardinality\n\n/**\n * getLoopCardinality - get the loop cardinality of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {ModdleElement<bpmn:FormalExpression>} an expression representing the loop cardinality\n */\nfunction getLoopCardinality(element) {\n  return getProperty(element, 'loopCardinality');\n}\n\n/**\n * getLoopCardinalityValue - get the loop cardinality value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {string} the loop cardinality value\n */\nfunction getLoopCardinalityValue(element) {\n  const loopCardinality = getLoopCardinality(element);\n  return getBody(loopCardinality);\n}\n\n// completionCondition /////////////////////\n\n/**\n * getCompletionCondition - get the completion condition of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {ModdleElement<bpmn:FormalExpression>} an expression representing the completion condition\n */\nfunction getCompletionCondition(element) {\n  return getProperty(element, 'completionCondition');\n}\n\n/**\n * getCompletionConditionValue - get the completion condition value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {string} the completion condition value\n */\nfunction getCompletionConditionValue(element) {\n  const completionCondition = getCompletionCondition(element);\n  return getBody(completionCondition);\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { isAny } from 'bpmn-js/lib/features/modeling/util/ModelingUtil';\n\nimport {\n  add as collectionAdd\n} from 'diagram-js/lib/util/Collections';\n\nimport { TextAreaEntry, isTextAreaEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function NameProps(props) {\n  const {\n    element\n  } = props;\n\n  if (isAny(element, [ 'bpmn:Collaboration', 'bpmn:DataAssociation', 'bpmn:Association' ])) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'name',\n      component: Name,\n      isEdited: isTextAreaEntryEdited\n    }\n  ];\n}\n\nfunction Name(props) {\n  const {\n    element\n  } = props;\n\n  const modeling = useService('modeling');\n  const debounce = useService('debounceInput');\n  const canvas = useService('canvas');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n\n  // (1) default: name\n  let options = {\n    element,\n    id: 'name',\n    label: translate('Name'),\n    debounce,\n    setValue: (value) => {\n      modeling.updateProperties(element, {\n        name: value\n      });\n    },\n    getValue: (element) => {\n      return element.businessObject.name;\n    },\n    autoResize: true\n  };\n\n  // (2) text annotations\n  if (is(element, 'bpmn:TextAnnotation')) {\n    options = {\n      ...options,\n      setValue: (value) => {\n        modeling.updateProperties(element, {\n          text: value\n        });\n      },\n      getValue: (element) => {\n        return element.businessObject.text;\n      }\n    };\n  }\n\n  // (3) groups\n  else if (is(element, 'bpmn:Group')) {\n    options = {\n      ...options,\n      setValue: (value) => {\n        const businessObject = getBusinessObject(element),\n              categoryValueRef = businessObject.categoryValueRef;\n\n        if (!categoryValueRef) {\n          initializeCategory(businessObject, canvas.getRootElement(), bpmnFactory);\n        }\n\n        modeling.updateLabel(element, value);\n      },\n      getValue: (element) => {\n        const businessObject = getBusinessObject(element),\n              categoryValueRef = businessObject.categoryValueRef;\n\n        return categoryValueRef && categoryValueRef.value;\n      }\n    };\n  }\n\n  // (4) participants (only update label)\n  else if (is(element, 'bpmn:Participant')) {\n    options.label = translate('Participant Name');\n  }\n\n\n  return TextAreaEntry(options);\n}\n\n\n// helpers ////////////////////////\n\nfunction initializeCategory(businessObject, rootElement, bpmnFactory) {\n  const definitions = getBusinessObject(rootElement).$parent;\n\n  const categoryValue = createCategoryValue(definitions, bpmnFactory);\n\n  businessObject.categoryValueRef = categoryValue;\n}\n\nfunction createCategoryValue(definitions, bpmnFactory) {\n  const categoryValue = bpmnFactory.create('bpmn:CategoryValue');\n\n  const category = bpmnFactory.create('bpmn:Category', {\n    categoryValue: [ categoryValue ]\n  });\n\n  // add to correct place\n  collectionAdd(definitions.get('rootElements'), category);\n  getBusinessObject(category).$parent = definitions;\n  getBusinessObject(categoryValue).$parent = category;\n\n  return categoryValue;\n}\n","import { is } from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport { useCallback } from '@bpmn-io/properties-panel/preact/hooks';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  isIdValid\n} from '../../../utils/ValidationUtil';\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function ProcessProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!hasProcessRef(element)) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'processId',\n      component: ProcessId,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'processName',\n      component: ProcessName,\n      isEdited: isTextFieldEntryEdited\n    }\n  ];\n}\n\nfunction ProcessName(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n  const process = element.businessObject.get('processRef');\n\n  const getValue = () => {\n    return process.get('name');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: process,\n        properties: {\n          name: value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'processName',\n    label: translate('Process name'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ProcessId(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n  const process = element.businessObject.get('processRef');\n\n  const getValue = () => {\n    return process.get('id');\n  };\n\n  const setValue = (value, error) => {\n    if (error) {\n      return;\n    }\n\n    commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: process,\n        properties: {\n          id: value\n        }\n      }\n    );\n  };\n\n  const validate = useCallback((value) => {\n    return isIdValid(process, value, translate);\n  }, [ process, translate ]);\n\n  return TextFieldEntry({\n    element,\n    id: 'processId',\n    label: translate('Process ID'),\n    getValue,\n    setValue,\n    debounce,\n    validate\n  });\n}\n\n\n// helper ////////////////\n\nfunction hasProcessRef(element) {\n  return is(element, 'bpmn:Participant') && element.businessObject.get('processRef');\n}","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  sortBy\n} from 'min-dash';\n\nimport { TextFieldEntry, isSelectEntryEdited, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\nimport ReferenceSelect from '../../../entries/ReferenceSelect';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getSignal,\n  getSignalEventDefinition,\n  isSignalSupported\n} from '../utils/EventDefinitionUtil';\n\nimport {\n  createElement,\n  findRootElementById,\n  findRootElementsByType,\n  getRoot,\n  nextId\n} from '../../../utils/ElementUtil';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\nexport const EMPTY_OPTION = '';\nexport const CREATE_NEW_OPTION = 'create-new';\n\n/**\n * @returns {Entry[]}\n */\nexport function SignalProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!isSignalSupported(element)) {\n    return [];\n  }\n\n  const signal = getSignal(element);\n\n  let entries = [\n    {\n      id: 'signalRef',\n      component: SignalRef,\n      isEdited: isSelectEntryEdited\n    }\n  ];\n\n  if (signal) {\n    entries = [\n      ...entries,\n      {\n        id: 'signalName',\n        component: SignalName,\n        isEdited: isTextFieldEntryEdited\n      },\n    ];\n  }\n\n  return entries;\n}\n\nfunction SignalRef(props) {\n  const { element } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const signalEventDefinition = getSignalEventDefinition(element);\n\n  const getValue = () => {\n    const signal = getSignal(element);\n\n    if (signal) {\n      return signal.get('id');\n    }\n\n    return EMPTY_OPTION;\n  };\n\n  const setValue = (value) => {\n    const root = getRoot(signalEventDefinition);\n    const commands = [];\n\n    let signal;\n\n    // (1) create new signal\n    if (value === CREATE_NEW_OPTION) {\n      const id = nextId('Signal_');\n\n      signal = createElement(\n        'bpmn:Signal',\n        { id, name: id },\n        root,\n        bpmnFactory\n      );\n\n      value = signal.get('id');\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: root,\n          properties: {\n            rootElements: [ ...root.get('rootElements'), signal ]\n          }\n        }\n      });\n    }\n\n    // (2) update (or remove) signalRef\n    signal = signal || findRootElementById(signalEventDefinition, 'bpmn:Signal', value);\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: signalEventDefinition,\n        properties: {\n          signalRef: signal\n        }\n      }\n    });\n\n    // (3) commit all updates\n    return commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  const getOptions = () => {\n\n    let options = [\n      { value: EMPTY_OPTION, label: translate('<none>') },\n      { value: CREATE_NEW_OPTION, label: translate('Create new ...') }\n    ];\n\n    const signals = findRootElementsByType(getBusinessObject(element), 'bpmn:Signal');\n\n    sortByName(signals).forEach(signal => {\n      options.push({\n        value: signal.get('id'),\n        label: signal.get('name')\n      });\n    });\n\n    return options;\n  };\n\n  return ReferenceSelect({\n    element,\n    id: 'signalRef',\n    label: translate('Global signal reference'),\n    autoFocusEntry: 'signalName',\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nfunction SignalName(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const signal = getSignal(element);\n\n  const getValue = () => {\n    return signal.get('name');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: signal,\n        properties: {\n          name: value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'signalName',\n    label: translate('Name'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper /////////////////////////\n\nfunction sortByName(elements) {\n  return sortBy(elements, e => (e.name || '').toLowerCase());\n}\n","import {\n  isAny\n} from 'bpmn-js/lib/features/modeling/util/ModelingUtil';\n\nimport {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  find\n} from 'min-dash';\n\nexport function isErrorSupported(element) {\n  return isAny(element, [\n    'bpmn:StartEvent',\n    'bpmn:BoundaryEvent',\n    'bpmn:EndEvent'\n  ]) && !!getErrorEventDefinition(element);\n}\n\nexport function getErrorEventDefinition(element) {\n  return getEventDefinition(element, 'bpmn:ErrorEventDefinition');\n}\n\nexport function isTimerSupported(element) {\n  return isAny(element, [\n    'bpmn:StartEvent',\n    'bpmn:IntermediateCatchEvent',\n    'bpmn:BoundaryEvent'\n  ]) && !!getTimerEventDefinition(element);\n}\n\n/**\n * Get the timer definition type for a given timer event definition.\n *\n * @param {ModdleElement<bpmn:TimerEventDefinition>} timer\n *\n * @return {string|undefined} the timer definition type\n */\nexport function getTimerDefinitionType(timer) {\n\n  if (!timer) {\n    return;\n  }\n\n  const timeDate = timer.get('timeDate');\n  if (typeof timeDate !== 'undefined') {\n    return 'timeDate';\n  }\n\n  const timeCycle = timer.get('timeCycle');\n  if (typeof timeCycle !== 'undefined') {\n    return 'timeCycle';\n  }\n\n  const timeDuration = timer.get('timeDuration');\n  if (typeof timeDuration !== 'undefined') {\n    return 'timeDuration';\n  }\n}\n\nexport function getTimerEventDefinition(element) {\n  return getEventDefinition(element, 'bpmn:TimerEventDefinition');\n}\n\nexport function getError(element) {\n  const errorEventDefinition = getErrorEventDefinition(element);\n\n  return errorEventDefinition && errorEventDefinition.get('errorRef');\n}\n\nexport function getEventDefinition(element, eventType) {\n  const businessObject = getBusinessObject(element);\n\n  const eventDefinitions = businessObject.get('eventDefinitions') || [];\n\n  return find(eventDefinitions, function(definition) {\n    return is(definition, eventType);\n  });\n}\n\nexport function isMessageSupported(element) {\n  return is(element, 'bpmn:ReceiveTask') || (\n    isAny(element, [\n      'bpmn:StartEvent',\n      'bpmn:EndEvent',\n      'bpmn:IntermediateThrowEvent',\n      'bpmn:BoundaryEvent',\n      'bpmn:IntermediateCatchEvent'\n    ]) && !!getMessageEventDefinition(element)\n  );\n}\n\nexport function getMessageEventDefinition(element) {\n  if (is(element, 'bpmn:ReceiveTask')) {\n    return getBusinessObject(element);\n  }\n\n  return getEventDefinition(element, 'bpmn:MessageEventDefinition');\n}\n\nexport function getMessage(element) {\n  const messageEventDefinition = getMessageEventDefinition(element);\n\n  return messageEventDefinition && messageEventDefinition.get('messageRef');\n}\n\nexport function getLinkEventDefinition(element) {\n  return getEventDefinition(element, 'bpmn:LinkEventDefinition');\n}\n\nexport function getSignalEventDefinition(element) {\n  return getEventDefinition(element, 'bpmn:SignalEventDefinition');\n}\n\nexport function isLinkSupported(element) {\n  return isAny(element, [\n    'bpmn:IntermediateThrowEvent',\n    'bpmn:IntermediateCatchEvent'\n  ]) && !!getLinkEventDefinition(element);\n}\n\nexport function isSignalSupported(element) {\n  return is(element, 'bpmn:Event') && !!getSignalEventDefinition(element);\n}\n\nexport function getSignal(element) {\n  const signalEventDefinition = getSignalEventDefinition(element);\n\n  return signalEventDefinition && signalEventDefinition.get('signalRef');\n}\n\nexport function getEscalationEventDefinition(element) {\n  return getEventDefinition(element, 'bpmn:EscalationEventDefinition');\n}\n\nexport function isEscalationSupported(element) {\n  return is(element, 'bpmn:Event') && !!getEscalationEventDefinition(element);\n}\n\nexport function getEscalation(element) {\n  const escalationEventDefinition = getEscalationEventDefinition(element);\n\n  return escalationEventDefinition && escalationEventDefinition.get('escalationRef');\n}\n\nexport function isCompensationSupported(element) {\n  return isAny(element, [\n    'bpmn:EndEvent',\n    'bpmn:IntermediateThrowEvent'\n  ]) && !!getCompensateEventDefinition(element);\n}\n\nexport function getCompensateEventDefinition(element) {\n  return getEventDefinition(element, 'bpmn:CompensateEventDefinition');\n}\n\nexport function getCompensateActivity(element) {\n  const compensateEventDefinition = getCompensateEventDefinition(element);\n\n  return compensateEventDefinition && compensateEventDefinition.get('activityRef');\n}\n\nexport function getConditionalEventDefinition(element) {\n  if (!is(element, 'bpmn:Event')) {\n    return null;\n  }\n\n  return getEventDefinition(element, 'bpmn:ConditionalEventDefinition');\n}","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  isTimerSupported,\n  getTimerEventDefinition,\n  getTimerDefinitionType\n} from '../../../utils/EventDefinitionUtil';\n\nimport {\n  SelectEntry,\n  isSelectEntryEdited,\n  TextFieldEntry,\n  isTextFieldEntryEdited\n} from '@bpmn-io/properties-panel';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function TimerProps(props) {\n  const {\n    element,\n    idPrefix\n  } = props;\n\n  let {\n    timerEventDefinition\n  } = props;\n\n  if (!timerEventDefinition) {\n    const businessObject = getBusinessObject(element);\n    timerEventDefinition = getTimerEventDefinition(businessObject);\n  }\n\n  const timerEventDefinitionType = getTimerDefinitionType(timerEventDefinition);\n\n  // (1) Only show for supported elements\n  if (!isTimerSupported(element)) {\n    return [];\n  }\n\n  // (2) Provide entries, have a value only if selection was made\n  const entries = [];\n\n  entries.push({\n    id: getId(idPrefix, 'timerEventDefinitionType'),\n    component: TimerEventDefinitionType,\n    isEdited: isSelectEntryEdited,\n    timerEventDefinition,\n    timerEventDefinitionType\n  });\n\n  if (timerEventDefinitionType) {\n    entries.push({\n      id: getId(idPrefix, 'timerEventDefinitionValue'),\n      component: TimerEventDefinitionValue,\n      isEdited: isTextFieldEntryEdited,\n      timerEventDefinition,\n      timerEventDefinitionType\n    });\n  }\n\n  return entries;\n}\n\n\n/**\n * TimerEventDefinitionType - Generic select entry allowing to select a specific\n * timerEventDefintionType. To be used together with timerEventDefinitionValue.\n *\n * @param  {type} props\n * @return {SelectEntry}\n */\nfunction TimerEventDefinitionType(props) {\n  const {\n    element,\n    timerEventDefinition,\n    timerEventDefinitionType\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        bpmnFactory = useService('bpmnFactory'),\n        translate = useService('translate');\n\n  const getValue = () => {\n    return timerEventDefinitionType || '';\n  };\n\n  const setValue = (value) => {\n\n    // (1) Check if value is different to current type\n    if (value === timerEventDefinitionType) {\n      return;\n    }\n\n    // (2) Create empty formalExpression element\n    const formalExpression = bpmnFactory.create('bpmn:FormalExpression', { body: undefined });\n    formalExpression.$parent = timerEventDefinition;\n\n    // (3) Set the value for selected timerEventDefinitionType\n    const newProps = {\n      timeDuration: undefined,\n      timeDate: undefined,\n      timeCycle: undefined\n    };\n\n    if (value !== '') {\n      newProps[value] = formalExpression;\n    }\n\n    // (4) Execute businessObject update\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: timerEventDefinition,\n      properties: newProps\n    });\n  };\n\n  const getOptions = (element) => {\n    return [\n      { value: '', label: translate('<none>') },\n      { value: 'timeDate', label: translate('Date') },\n      { value: 'timeDuration', label: translate('Duration') },\n      { value: 'timeCycle', label: translate('Cycle') }\n    ];\n  };\n\n  return SelectEntry({\n    element,\n    id: 'timerEventDefinitionType',\n    label: translate('Type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\n/**\n * TimerEventDefinitionValue - Generic textField entry allowing to specify the\n * timerEventDefintionValue based on the set timerEventDefintionType. To be used\n * together with timerEventDefinitionType.\n *\n * @param  {type} props\n * @return {TextFieldEntry}\n */\nfunction TimerEventDefinitionValue(props) {\n  const {\n    element,\n    timerEventDefinition,\n    timerEventDefinitionType\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const timerEventFormalExpression = timerEventDefinition.get(timerEventDefinitionType);\n\n  const getValue = () => {\n    return timerEventFormalExpression && timerEventFormalExpression.get('body');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: timerEventFormalExpression,\n      properties: {\n        body: value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'timerEventDefinitionValue',\n    label: translate('Value'),\n    getValue,\n    setValue,\n    debounce,\n    tooltip: getTimerEventDefinitionValueDescription(timerEventDefinitionType, translate)\n  });\n}\n\n\n// helper //////////////////////////\n\nfunction getTimerEventDefinitionValueDescription(timerDefinitionType, translate) {\n  switch (timerDefinitionType) {\n  case 'timeDate':\n    return (<div>\n      <p>{ translate('A specific point in time defined as ISO 8601 combined date and time representation.') }</p>\n      <ul>\n        <li><code>2019-10-01T12:00:00Z</code> - { translate('UTC time') }</li>\n        <li><code>2019-10-02T08:09:40+02:00</code> - { translate('UTC plus 2 hours zone offset') }</li>\n      </ul>\n      <a href=\"https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-date\" target=\"_blank\" rel=\"noopener noreferrer\">{ translate('Documentation: Timer events') }</a>\n    </div>);\n\n  case 'timeCycle':\n    return (<div>\n      <p>{ translate('A cycle defined as ISO 8601 repeating intervals format.') }</p>\n      <ul>\n        <li><code>R5/PT10S</code> - { translate('every 10 seconds, up to 5 times') }</li>\n        <li><code>R/P1D</code> - { translate('every day, infinitely') }</li>\n      </ul>\n      <a href=\"https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-cycle\" target=\"_blank\" rel=\"noopener noreferrer\">{ translate('Documentation: Timer events') }</a>\n    </div>);\n\n  case 'timeDuration':\n    return (<div>\n      <p>{ translate('A time duration defined as ISO 8601 durations format.') }</p>\n      <ul>\n        <li><code>PT15S</code> - { translate('15 seconds') }</li>\n        <li><code>PT1H30M</code> - { translate('1 hour and 30 minutes') }</li>\n        <li><code>P14D</code> - { translate('14 days') }</li>\n      </ul>\n      <a href=\"https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-duration\" target=\"_blank\" rel=\"noopener noreferrer\">{ translate('Documentation: Timer events') }</a>\n    </div>);\n  }\n}\n\nfunction getId(idPrefix, id) {\n  return idPrefix ? idPrefix + id : id;\n}","import { Group } from '@bpmn-io/properties-panel';\n\nimport {\n  AdHocCompletionProps,\n  CompensationProps,\n  DocumentationProps,\n  ErrorProps,\n  EscalationProps,\n  ExecutableProps,\n  IdProps,\n  LinkProps,\n  MessageProps,\n  MultiInstanceProps,\n  NameProps,\n  ProcessProps,\n  SignalProps,\n  TimerProps\n} from './properties';\n\nfunction GeneralGroup(element, injector) {\n  const translate = injector.get('translate');\n\n  const entries = [\n    ...NameProps({ element }),\n    ...IdProps({ element }),\n    ...ProcessProps({ element }),\n    ...ExecutableProps({ element })\n  ];\n\n  return {\n    id: 'general',\n    label: translate('General'),\n    entries,\n    component: Group\n  };\n\n}\n\nfunction CompensationGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Compensation'),\n    id: 'compensation',\n    component: Group,\n    entries: [\n      ...CompensationProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction DocumentationGroup(element, injector) {\n  const translate = injector.get('translate');\n\n  const entries = [\n    ...DocumentationProps({ element })\n  ];\n\n  return {\n    id: 'documentation',\n    label: translate('Documentation'),\n    entries,\n    component: Group\n  };\n\n}\n\nfunction ErrorGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'error',\n    label: translate('Error'),\n    component: Group,\n    entries: [\n      ...ErrorProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction MessageGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'message',\n    label: translate('Message'),\n    component: Group,\n    entries: [\n      ...MessageProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction SignalGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'signal',\n    label: translate('Signal'),\n    component: Group,\n    entries: [\n      ...SignalProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction LinkGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Link'),\n    id: 'link',\n    component: Group,\n    entries: [\n      ...LinkProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction EscalationGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'escalation',\n    label: translate('Escalation'),\n    component: Group,\n    entries: [\n      ...EscalationProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction TimerGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Timer'),\n    id: 'timer',\n    component: Group,\n    entries: [\n      ...TimerProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction MultiInstanceGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Multi-instance'),\n    id: 'multiInstance',\n    component: Group,\n    entries: [\n      ...MultiInstanceProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction AdHocCompletionGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Completion'),\n    id: 'adHocCompletion',\n    component: Group,\n    entries: [\n      ...AdHocCompletionProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction getGroups(element, injector) {\n\n  const groups = [\n    GeneralGroup(element, injector),\n    DocumentationGroup(element, injector),\n    CompensationGroup(element, injector),\n    ErrorGroup(element, injector),\n    LinkGroup(element, injector),\n    MessageGroup(element, injector),\n    MultiInstanceGroup(element, injector),\n    AdHocCompletionGroup(element, injector),\n    SignalGroup(element, injector),\n    EscalationGroup(element, injector),\n    TimerGroup(element, injector)\n  ];\n\n  // contract: if a group returns null, it should not be displayed at all\n  return groups.filter(group => group !== null);\n}\n\nexport default class BpmnPropertiesProvider {\n\n  constructor(propertiesPanel, injector) {\n    propertiesPanel.registerProvider(this);\n    this._injector = injector;\n  }\n\n  getGroups(element) {\n    return (groups) => {\n      groups = groups.concat(getGroups(element, this._injector));\n      return groups;\n    };\n  }\n\n}\n\nBpmnPropertiesProvider.$inject = [ 'propertiesPanel', 'injector' ];\n","import BpmnPropertiesProvider from './BpmnPropertiesProvider';\n\nexport default {\n  __init__: [ 'bpmnPropertiesProvider' ],\n  bpmnPropertiesProvider: [ 'type', BpmnPropertiesProvider ]\n};","import { is } from 'bpmn-js/lib/util/ModelUtil';\n\nimport { createElement } from './ElementUtil';\n\nimport { isArray } from 'min-dash';\n\n/**\n * Get extension elements of business object. Optionally filter by type.\n *\n * @param {ModdleElement} businessObject\n * @param {string} [type=undefined]\n * @returns {Array<ModdleElement>}\n */\nexport function getExtensionElementsList(businessObject, type = undefined) {\n  const extensionElements = businessObject.get('extensionElements');\n\n  if (!extensionElements) {\n    return [];\n  }\n\n  const values = extensionElements.get('values');\n\n  if (!values || !values.length) {\n    return [];\n  }\n\n  if (type) {\n    return values.filter(value => is(value, type));\n  }\n\n  return values;\n}\n\n/**\n * Add one or more extension elements. Create bpmn:ExtensionElements if it doesn't exist.\n *\n * @param {ModdleElement} element\n * @param {ModdleElement} businessObject\n * @param {ModdleElement|Array<ModdleElement>} extensionElementsToAdd\n * @param {CommandStack} commandStack\n */\nexport function addExtensionElements(element, businessObject, extensionElementToAdd, bpmnFactory, commandStack) {\n  const commands = [];\n\n  let extensionElements = businessObject.get('extensionElements');\n\n  // (1) create bpmn:ExtensionElements if it doesn't exist\n  if (!extensionElements) {\n    extensionElements = createElement(\n      'bpmn:ExtensionElements',\n      {\n        values: []\n      },\n      businessObject,\n      bpmnFactory\n    );\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: businessObject,\n        properties: {\n          extensionElements\n        }\n      }\n    });\n  }\n\n  extensionElementToAdd.$parent = extensionElements;\n\n  // (2) add extension element to list\n  commands.push({\n    cmd: 'element.updateModdleProperties',\n    context: {\n      element,\n      moddleElement: extensionElements,\n      properties: {\n        values: [ ...extensionElements.get('values'), extensionElementToAdd ]\n      }\n    }\n  });\n\n  commandStack.execute('properties-panel.multi-command-executor', commands);\n}\n\n/**\n * Remove one or more extension elements. Remove bpmn:ExtensionElements afterwards if it's empty.\n *\n * @param {ModdleElement} element\n * @param {ModdleElement} businessObject\n * @param {ModdleElement|Array<ModdleElement>} extensionElementsToRemove\n * @param {CommandStack} commandStack\n */\nexport function removeExtensionElements(element, businessObject, extensionElementsToRemove, commandStack) {\n  if (!isArray(extensionElementsToRemove)) {\n    extensionElementsToRemove = [ extensionElementsToRemove ];\n  }\n\n  const extensionElements = businessObject.get('extensionElements'),\n        values = extensionElements.get('values').filter(value => !extensionElementsToRemove.includes(value));\n\n  commandStack.execute('element.updateModdleProperties', {\n    element,\n    moddleElement: extensionElements,\n    properties: {\n      values\n    }\n  });\n}\n","import {\n  is,\n  isAny\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  getMessageEventDefinition\n} from '../../bpmn/utils/EventDefinitionUtil';\n\nimport {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nconst OPTIONAL_JOB_WORKER_ELEMENTS = [\n  'bpmn:AdHocSubProcess',\n  'bpmn:BusinessRuleTask',\n  'bpmn:ScriptTask'\n];\n\nexport function isZeebeServiceTask(element) {\n  if (!is(element, 'zeebe:ZeebeServiceTask')) return false;\n\n  if (is(element, 'bpmn:EndEvent') || is(element, 'bpmn:IntermediateThrowEvent')) {\n    return !!getMessageEventDefinition(element);\n  }\n\n  // Elements which may optionally be implemented as job workers\n  if (isAny(element, OPTIONAL_JOB_WORKER_ELEMENTS) && !getTaskDefinition(element)) {\n    return false;\n  }\n\n  return true;\n}\n\nexport function isMessageEndEvent(element) {\n  return is(element, 'bpmn:EndEvent') && !!getMessageEventDefinition(element);\n}\n\nexport function isMessageThrowEvent(element) {\n  return is(element, 'bpmn:IntermediateThrowEvent') && !!getMessageEventDefinition(element);\n}\n\n// helper ////////////////\n\nfunction getTaskDefinition(element) {\n  const businessObject = getBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:TaskDefinition')[0];\n}\n","export function withProps(Component, otherProps) {\n  return props => {\n    return <Component { ...props } { ...otherProps } />;\n  };\n}","import { getVariablesForElement } from '@bpmn-io/extract-process-variables/zeebe';\nimport { useEffect, useState } from '@bpmn-io/properties-panel/preact/hooks';\nimport { useService } from '../../hooks';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst fallbackResolver = {\n  getVariablesForElement: bo => getVariablesForElement(bo)\n};\n\nexport function withVariableContext(Component) {\n  return props => {\n    const { bpmnElement, element } = props;\n\n    const bo = (bpmnElement || element).businessObject;\n\n    const [ variables, setVariables ] = useState([]);\n    const eventBus = useService('eventBus');\n\n    const variableResolver = useServiceIfAvailable('variableResolver', fallbackResolver);\n\n    useEffect(() => {\n      const extractVariables = async () => {\n\n        const variables = await variableResolver.getVariablesForElement(bo, element);\n\n        setVariables(variables.map(variable => {\n          return {\n            ...variable,\n            info: variable.info ||\n                  (variable.origin && ('Written in ' + variable.origin.map(origin => origin.name || origin.id).join(', ')))\n          };\n        }));\n      };\n\n      // The callback must return undefined, so the event propagation is not canceled.\n      // Cf. https://github.com/camunda/camunda-modeler/issues/3392\n      const callback = () => {\n        extractVariables();\n      };\n\n      eventBus.on('commandStack.changed', callback);\n      callback();\n\n      return () => {\n        eventBus.off('commandStack.changed', callback);\n      };\n    }, [ bo ]);\n\n    return <Component { ...props } variables={ variables }></Component>;\n  };\n}\n\n// helpers //////////\n\nfunction useServiceIfAvailable(service, fallback) {\n  const resolved = useService(service, false);\n\n  if (!resolved) {\n    return fallback;\n  }\n\n  return resolved;\n}\n","import { useMemo } from '@bpmn-io/properties-panel/preact/hooks';\nimport { useService } from '../../hooks';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nexport function withTooltipContainer(Component) {\n  return props => {\n    const tooltipContainer = useMemo(() => {\n      const config = useService('config');\n\n      return config && config.propertiesPanel && config.propertiesPanel.feelTooltipContainer;\n    }, [ ]);\n\n    return <Component { ...props }\n      tooltipContainer={ tooltipContainer }\n    ></Component>;\n  };\n}","import { FeelEntry } from '@bpmn-io/properties-panel';\nimport { withTooltipContainer, withVariableContext } from '../provider/HOCs';\n\nexport const BpmnFeelEntry = withVariableContext(withTooltipContainer(FeelEntry));\n\n","import {\n  is,\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { isFeelEntryEdited } from '@bpmn-io/properties-panel';\n\nimport { isZeebeServiceTask } from '../utils/ZeebeServiceTaskUtil';\n\nimport { useService } from '../../../hooks';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\nimport {\n  getExtensionElementsList,\n  addExtensionElements\n} from '../../../utils/ExtensionElementsUtil';\n\nimport { createElement } from '../../../utils/ElementUtil';\n\nexport function ActiveElementsProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:AdHocSubProcess') || isZeebeServiceTask(element)) {\n    return [];\n  }\n\n  const entries = [\n    {\n      id: 'activeElementsCollection',\n      component: ActiveElementsCollection,\n      isEdited: isFeelEntryEdited\n    }\n  ];\n\n  return entries;\n}\n\nfunction ActiveElementsCollection(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getProperty(element);\n  };\n\n  const setValue = (value) => {\n    return setProperty(element, value, commandStack, bpmnFactory);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'activeElements-activeElementsCollection',\n    label: translate('Active elements collection'),\n    feel: 'required',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction getProperty(element) {\n  const extensionElement = getExtensionElement(element);\n  return extensionElement && extensionElement.get('activeElementsCollection');\n}\n\nfunction setProperty(element, value, commandStack, bpmnFactory) {\n\n  const extensionElement = getExtensionElement(element);\n\n  if (!extensionElement) {\n\n    // (1) create extension element\n    const adHoc = createElement(\n      'zeebe:AdHoc',\n      {\n        activeElementsCollection: value\n      },\n      undefined,\n      bpmnFactory\n    );\n\n    const businessObject = getBusinessObject(element);\n    addExtensionElements(element, businessObject, adHoc, bpmnFactory, commandStack);\n\n  } else {\n\n    // (2) update extension element's property\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: extensionElement,\n      properties: {\n        activeElementsCollection: value\n      }\n    });\n  }\n}\n\nfunction getExtensionElement(element) {\n  const businessObject = getBusinessObject(element);\n  const extensions = getExtensionElementsList(businessObject, 'zeebe:AdHoc');\n  return extensions[0];\n}\n\n","import { is, getBusinessObject } from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  isFeelEntryEdited,\n} from '@bpmn-io/properties-panel';\n\nimport { useService } from '../../../hooks';\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\nimport { createOrUpdateFormalExpression } from '../../../utils/FormalExpressionUtil';\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function AdHocCompletionProps(props) {\n  const { element } = props;\n\n  if (!is(element, 'bpmn:AdHocSubProcess')) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'completionCondition',\n      component: CompletionCondition,\n      isEdited: isFeelEntryEdited,\n    }\n  ];\n}\n\nfunction CompletionCondition(props) {\n  const { element } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const debounce = useService('debounceInput');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    const expression = getBusinessObject(element).get('completionCondition');\n    return expression && expression.get('body');\n  };\n\n  const setValue = (value) => {\n    return createOrUpdateFormalExpression(\n      element,\n      getBusinessObject(element),\n      'completionCondition',\n      value,\n      bpmnFactory,\n      commandStack\n    );\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'completionCondition',\n    label: translate('Completion condition'),\n    feel: 'required',\n    getValue,\n    setValue,\n    debounce,\n  });\n}","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { SelectEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  addExtensionElements,\n  getExtensionElementsList,\n  removeExtensionElements\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport { useService } from '../../../hooks';\n\nexport const BPMN_IMPLEMENTATION_OPTION = 'bpmn',\n      JOB_WORKER_IMPLEMENTATION_OPTION = 'jobWorker';\n\n\nexport function AdHocSubProcessImplementationProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:AdHocSubProcess')) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'adHocImplementation',\n      component: AdHocImplementation,\n      isEdited: () => isAdHocImplementationEdited(element)\n    }\n  ];\n}\n\nfunction AdHocImplementation(props) {\n  const {\n    element,\n    id\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    if (getTaskDefinition(element)) {\n      return JOB_WORKER_IMPLEMENTATION_OPTION;\n    }\n\n    return BPMN_IMPLEMENTATION_OPTION;\n  };\n\n  /**\n   * Change to and from job worker is done via task definition\n   */\n  const setValue = (value) => {\n    if (value === JOB_WORKER_IMPLEMENTATION_OPTION) {\n      createTaskDefinition(element, bpmnFactory, commandStack);\n    } else if (value === BPMN_IMPLEMENTATION_OPTION) {\n      removeTaskDefinition(element, commandStack);\n    }\n  };\n\n  const getOptions = () => {\n\n    const options = [\n      { value: BPMN_IMPLEMENTATION_OPTION, label: translate('BPMN') },\n      { value: JOB_WORKER_IMPLEMENTATION_OPTION, label: translate('Job worker') }\n    ];\n\n    return options;\n  };\n\n  return SelectEntry({\n    element,\n    id,\n    label: translate('Implementation type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\n\n// helper ///////////////////////\nfunction createTaskDefinition(element, bpmnFactory, commandStack) {\n  const businessObject = getBusinessObject(element);\n\n  const taskDefinition = createElement(\n    'zeebe:TaskDefinition',\n    {},\n    null,\n    bpmnFactory\n  );\n\n  addExtensionElements(element, businessObject, taskDefinition, bpmnFactory, commandStack);\n}\n\nfunction removeTaskDefinition(element, commandStack) {\n  const taskDefinition = getTaskDefinition(element);\n\n  if (taskDefinition) {\n    removeExtensionElements(element, getBusinessObject(element), taskDefinition, commandStack);\n  }\n}\n\nfunction isAdHocImplementationEdited(element) {\n  return !!getTaskDefinition(element);\n}\n\nfunction getTaskDefinition(element) {\n  const businessObject = getBusinessObject(element);\n  return getExtensionElementsList(businessObject, 'zeebe:TaskDefinition')[0];\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { isFeelEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\n\nexport function AssignmentDefinitionProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:UserTask')) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'assignmentDefinitionAssignee',\n      component: Assignee,\n      isEdited: isFeelEntryEdited\n    },\n    {\n      id: 'assignmentDefinitionCandidateGroups',\n      component: CandidateGroups,\n      isEdited: isFeelEntryEdited\n    },\n    {\n      id: 'assignmentDefinitionCandidateUsers',\n      component: CandidateUsers,\n      isEdited: isFeelEntryEdited\n    }\n  ];\n}\n\nfunction Assignee(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return (getAssignmentDefinition(element) || {}).assignee;\n  };\n\n  const setValue = (value) => {\n    const commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure AssignmentDefinition\n    let assignmentDefinition = getAssignmentDefinition(element);\n\n    if (!assignmentDefinition) {\n      assignmentDefinition = createElement(\n        'zeebe:AssignmentDefinition',\n        { },\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), assignmentDefinition ]\n          }\n        }\n      });\n    }\n\n    // (3) update assignee definition type\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: assignmentDefinition,\n        properties: { assignee: value }\n      }\n    });\n\n    // (4) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'assignmentDefinitionAssignee',\n    label: translate('Assignee'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction CandidateGroups(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return (getAssignmentDefinition(element) || {}).candidateGroups;\n  };\n\n  const setValue = (value) => {\n    let commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure assignmentDefinition\n    let assignmentDefinition = getAssignmentDefinition(element);\n\n    if (!assignmentDefinition) {\n      assignmentDefinition = createElement(\n        'zeebe:AssignmentDefinition',\n        { },\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), assignmentDefinition ]\n          }\n        }\n      });\n    }\n\n    // (3) update candidateGroups\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: assignmentDefinition,\n        properties: { candidateGroups: value }\n      }\n    });\n\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'assignmentDefinitionCandidateGroups',\n    label: translate('Candidate groups'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction CandidateUsers(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return (getAssignmentDefinition(element) || {}).candidateUsers;\n  };\n\n  const setValue = (value) => {\n    let commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure assignmentDefinition\n    let assignmentDefinition = getAssignmentDefinition(element);\n\n    if (!assignmentDefinition) {\n      assignmentDefinition = createElement(\n        'zeebe:AssignmentDefinition',\n        { },\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), assignmentDefinition ]\n          }\n        }\n      });\n    }\n\n    // (3) update candidateUsers\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: assignmentDefinition,\n        properties: { candidateUsers: value }\n      }\n    });\n\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'assignmentDefinitionCandidateUsers',\n    label: translate('Candidate users'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper ///////////////////////\n\nfunction getAssignmentDefinition(element) {\n  const businessObject = getBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:AssignmentDefinition')[0];\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport { isZeebeServiceTask } from './ZeebeServiceTaskUtil';\n\nexport function areHeadersSupported(element) {\n  return is(element, 'bpmn:UserTask') || isZeebeServiceTask(element);\n}\n\n/**\n * Get first zeebe:TaskHeaders element for a specific element.\n *\n * @param  {ModdleElement} element\n *\n * @return {ModdleElement} a zeebe:TaskHeader element\n */\nexport function getTaskHeaders(element) {\n  const businessObject = getBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:TaskHeaders')[0];\n}\n\n/**\n * Retrieve all zeebe:Header elements for a specific element.\n *\n * @param  {ModdleElement} element\n *\n * @return {Array<ModdleElement>} a list of zeebe:Header elements\n */\nexport function getHeaders(element) {\n  const taskHeaders = getTaskHeaders(element);\n\n  return taskHeaders ? taskHeaders.get('values') : [];\n}\n","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { SelectEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  getExtensionElementsList, removeExtensionElements\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  getTaskHeaders\n} from '../utils/HeadersUtil';\n\nimport { useService } from '../../../hooks';\n\nimport { without } from 'min-dash';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nexport const DMN_IMPLEMENTATION_OPTION = 'dmn',\n      JOB_WORKER_IMPLEMENTATION_OPTION = 'jobWorker',\n      DEFAULT_IMPLEMENTATION_OPTION = '';\n\n\nexport function BusinessRuleImplementationProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:BusinessRuleTask')) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'businessRuleImplementation',\n      component: BusinessRuleImplementation,\n      isEdited: () => isBusinessRuleImplementationEdited(element)\n    }\n  ];\n}\n\nfunction BusinessRuleImplementation(props) {\n  const {\n    element,\n    id\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    if (getCalledDecision(element)) {\n      return DMN_IMPLEMENTATION_OPTION;\n    }\n\n    if (getTaskDefinition(element)) {\n      return JOB_WORKER_IMPLEMENTATION_OPTION;\n    }\n\n    return DEFAULT_IMPLEMENTATION_OPTION;\n  };\n\n  /**\n   * Set value by either creating a zeebe:calledDecision or a zeebe:taskDefintion\n   * extension element. Note that they must not exist both at the same time, however\n   * this will be ensured by a bpmn-js behavior (and not by the propPanel).\n   */\n  const setValue = (value) => {\n    let extensionElement, extensionElementType;\n\n    if (value === DMN_IMPLEMENTATION_OPTION) {\n      extensionElement = getCalledDecision(element);\n      extensionElementType = 'zeebe:CalledDecision';\n    } else if (value === JOB_WORKER_IMPLEMENTATION_OPTION) {\n      extensionElement = getTaskDefinition(element);\n      extensionElementType = 'zeebe:TaskDefinition';\n    } else {\n      resetElement(element, commandStack);\n    }\n\n    if (!extensionElement && extensionElementType) {\n      extensionElement = createElement(\n        extensionElementType,\n        { },\n        null,\n        bpmnFactory\n      );\n\n      updateExtensionElements(element, extensionElement, bpmnFactory, commandStack);\n    }\n  };\n\n  const getOptions = () => {\n\n    const options = [\n      { value: DEFAULT_IMPLEMENTATION_OPTION, label: translate('<none>') },\n      { value: DMN_IMPLEMENTATION_OPTION, label: translate('DMN decision') },\n      { value: JOB_WORKER_IMPLEMENTATION_OPTION, label: translate('Job worker') }\n    ];\n\n    return options;\n  };\n\n  return SelectEntry({\n    element,\n    id,\n    label: translate('Implementation'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\n\n// helper ///////////////////////\n\nfunction getTaskDefinition(element) {\n  const businessObject = getBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:TaskDefinition')[0];\n}\n\nfunction getCalledDecision(element) {\n  const businessObject = getBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:CalledDecision')[0];\n}\n\nfunction isBusinessRuleImplementationEdited(element) {\n  return getTaskDefinition(element) || getCalledDecision(element);\n}\n\nfunction resetElement(element, commandStack) {\n  const businessObject = getBusinessObject(element);\n\n  const toRemove = [\n    getTaskDefinition(element),\n    getTaskHeaders(element),\n    getCalledDecision(element)\n  ].filter(Boolean);\n\n  removeExtensionElements(element, businessObject, toRemove, commandStack);\n}\n\nfunction updateExtensionElements(element, extensionElementToAdd, bpmnFactory, commandStack) {\n  const businessObject = getBusinessObject(element);\n\n  const commands = [];\n\n  let extensionElements = businessObject.get('extensionElements');\n  let extensionElementValues;\n\n  // (1) create bpmn:ExtensionElements if it doesn't exist\n  if (!extensionElements) {\n    extensionElements = createElement(\n      'bpmn:ExtensionElements',\n      {\n        values: []\n      },\n      businessObject,\n      bpmnFactory\n    );\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: businessObject,\n        properties: {\n          extensionElements\n        }\n      }\n    });\n  }\n\n  extensionElementToAdd.$parent = extensionElements;\n\n  // (2) remove old exension element from extensionElements\n  if (is(extensionElementToAdd, 'zeebe:TaskDefinition')) {\n    extensionElementValues = without(extensionElements.get('values'), getCalledDecision(element));\n  } else if (is(extensionElementToAdd, 'zeebe:CalledDecision')) {\n    extensionElementValues = without(extensionElements.get('values'), getTaskDefinition(element));\n  }\n\n  // (3) add extension element to list\n  commands.push({\n    cmd: 'element.updateModdleProperties',\n    context: {\n      element,\n      moddleElement: extensionElements,\n      properties: {\n        values: [ ...extensionElementValues, extensionElementToAdd ]\n      }\n    }\n  });\n\n  commandStack.execute('properties-panel.multi-command-executor', commands);\n}","import { getBusinessObject } from 'bpmn-js/lib/util/ModelUtil';\n\nimport { SelectEntry } from '@bpmn-io/properties-panel';\n\nimport { createElement } from '../../../../utils/ElementUtil';\n\nimport { useService } from '../../../../hooks';\n\nimport { getExtensionElementsList } from '../../../../utils/ExtensionElementsUtil';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nexport default function Binding(props) {\n  const {\n    element,\n    type\n  } = props;\n\n  const bpmnFactory = useService('bpmnFactory'),\n        commandStack = useService('commandStack'),\n        translate = useService('translate');\n\n  const getValue = () => getBindingType(element, type);\n\n  const setValue = value => {\n    const commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    // (1) ensure extension elements\n    let extensionElements = businessObject.get('extensionElements');\n\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure extension element\n    let extensionElement = getExtensionElementsList(businessObject, type)[ 0 ];\n\n    if (!extensionElement) {\n      extensionElement = createElement(\n        type,\n        {},\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), extensionElement ]\n          }\n        }\n      });\n\n    }\n\n    // (3) Update bindingType attribute\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: extensionElement,\n        properties: {\n          bindingType: value\n        }\n      }\n    });\n\n    // (4) Execute the commands\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  const getOptions = () => ([\n    { value: 'latest', label: translate('latest') },\n    { value: 'deployment', label: translate('deployment') },\n    { value: 'versionTag', label: translate('version tag') }\n  ]);\n\n  return <SelectEntry\n    element={ element }\n    id=\"bindingType\"\n    label={ translate('Binding') }\n    getValue={ getValue }\n    setValue={ setValue }\n    getOptions={ getOptions }\n  />;\n}\n\nexport function getBindingType(element, type) {\n  const businessObject = getBusinessObject(element);\n\n  const extensionElement = getExtensionElementsList(businessObject, type)[ 0 ];\n\n  if (!extensionElement) {\n    return 'latest';\n  }\n\n  return extensionElement.get('bindingType');\n}","import { getBusinessObject } from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry } from '@bpmn-io/properties-panel';\n\nimport { createElement } from '../../../../utils/ElementUtil';\n\nimport { useService } from '../../../../hooks';\n\nimport { getExtensionElementsList } from '../../../../utils/ExtensionElementsUtil';\n\nimport { BpmnFeelEntry } from '../../../../entries/BpmnFeelEntry';\n\nexport default function VersionTag(props) {\n  const {\n    element,\n    feel,\n    type\n  } = props;\n\n  const bpmnFactory = useService('bpmnFactory'),\n        commandStack = useService('commandStack'),\n        debounce = useService('debounceInput'),\n        translate = useService('translate');\n\n  const getValue = () => getVersionTag(element, type);\n\n  const setValue = value => {\n    const commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    // (1) ensure extension elements\n    let extensionElements = businessObject.get('extensionElements');\n\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure extension element\n    let extensionElement = getExtensionElementsList(businessObject, type)[ 0 ];\n\n    if (!extensionElement) {\n      extensionElement = createElement(\n        type,\n        {},\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), extensionElement ]\n          }\n        }\n      });\n\n    }\n\n    // (3) Update versionTag attribute\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: extensionElement,\n        properties: {\n          versionTag: value\n        }\n      }\n    });\n\n    // (4) Execute the commands\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  if (feel) {\n    return BpmnFeelEntry({\n      element,\n      id: 'versionTag',\n      label: translate('Version tag'),\n      feel,\n      getValue,\n      setValue,\n      debounce\n    });\n  }\n\n  return TextFieldEntry({\n    element,\n    id: 'versionTag',\n    label: translate('Version tag'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nexport function getVersionTag(element, type) {\n  const businessObject = getBusinessObject(element);\n\n  const extensionElement = getExtensionElementsList(businessObject, type)[ 0 ];\n\n  if (!extensionElement) {\n    return '';\n  }\n\n  return extensionElement.get('versionTag') || '';\n}","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  isFeelEntryEdited,\n  isSelectEntryEdited,\n  isTextFieldEntryEdited,\n  TextFieldEntry\n} from '@bpmn-io/properties-panel';\n\nimport Binding, { getBindingType } from './shared/Binding';\nimport VersionTag from './shared/VersionTag.js';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport { useService } from '../../../hooks';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\nimport { withProps } from '../../HOCs/withProps.js';\n\nconst CalledDecisionBinding = withProps(Binding, { type: 'zeebe:CalledDecision' }),\n      CalledDecisionVersionTag = withProps(VersionTag, { type: 'zeebe:CalledDecision', feel: 'optional' });\n\n\nexport function CalledDecisionProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:BusinessRuleTask') || !getCalledDecision(element)) {\n    return [];\n  }\n\n  const entries = [\n    {\n      id: 'decisionId',\n      component: DecisionID,\n      isEdited: isFeelEntryEdited\n    },\n    {\n      id: 'bindingType',\n      component: CalledDecisionBinding,\n      isEdited: isSelectEntryEdited\n    }\n  ];\n\n  if (getBindingType(element, 'zeebe:CalledDecision') === 'versionTag') {\n    entries.push({\n      id: 'versionTag',\n      component: CalledDecisionVersionTag,\n      isEdited: isFeelEntryEdited\n    });\n  }\n\n  entries.push({\n    id: 'resultVariable',\n    component: ResultVariable,\n    isEdited: isTextFieldEntryEdited\n  });\n\n  return entries;\n}\n\nfunction DecisionID(props) {\n  const {\n    element,\n    id\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return (getCalledDecision(element) || {}).decisionId;\n  };\n\n  const setValue = (value) => {\n    const commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure calledDecision\n    let calledDecision = getCalledDecision(element);\n\n    if (!calledDecision) {\n      calledDecision = createElement(\n        'zeebe:CalledDecision',\n        { },\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), calledDecision ]\n          }\n        }\n      });\n    }\n\n    // (3) update caledDecision.decisionId\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: calledDecision,\n        properties: { decisionId: value }\n      }\n    });\n\n    // (4) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id,\n    label: translate('Decision ID'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ResultVariable(props) {\n  const {\n    element,\n    id\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return (getCalledDecision(element) || {}).resultVariable;\n  };\n\n  const setValue = (value) => {\n    const commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure calledDecision\n    let calledDecision = getCalledDecision(element);\n\n    if (!calledDecision) {\n      calledDecision = createElement(\n        'zeebe:CalledDecision',\n        { },\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), calledDecision ]\n          }\n        }\n      });\n    }\n\n    // (3) update caledDecision.decisionId\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: calledDecision,\n        properties: { resultVariable: value }\n      }\n    });\n\n    // (4) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return TextFieldEntry({\n    element,\n    id,\n    label: translate('Result variable'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper ///////////////////////\n\nfunction getCalledDecision(element) {\n  const businessObject = getBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:CalledDecision')[0];\n}","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  getConditionalEventDefinition\n} from './EventDefinitionUtil';\n\nimport {\n  createElement\n} from './ElementUtil';\n\n/**\n * Get the moddle object of a `bpmn:Condition` for the given element.\n *\n * @param  {ModdleElement} element\n *\n * @return {ModdleElement|undefined}\n */\nexport function getCondition(element) {\n  const businessObject = getBusinessObject(element);\n\n  if (is(businessObject, 'bpmn:SequenceFlow')) {\n    return businessObject.get('conditionExpression');\n  }\n\n  if (is(businessObject, 'bpmn:Event')) {\n    const conditionalEventDefinition = getConditionalEventDefinition(businessObject);\n    return conditionalEventDefinition?.get('condition');\n  }\n}\n\n/**\n * Get the value of the `bpmn:Condition` body for the given element.\n *\n * @param  {ModdleElement} element\n *\n * @return {string|undefined}\n */\nexport function getConditionBody(element) {\n  const condition = getCondition(element);\n  return condition?.get('body');\n}\n\n/**\n * Set the value of the `bpmn:Condition` body\n * in the `bpmn:ConditionalEventDefinition` for the given element.\n *\n * @param {ModdleElement} element\n * @param {string} value\n * @param {CommandStack} commandStack\n * @param {BpmnFactory} bpmnFactory\n */\nexport function setConditionalEventConditionBody(element, value, commandStack, bpmnFactory) {\n\n  const conditionalEventDefinition = getConditionalEventDefinition(element);\n\n  if (!conditionalEventDefinition) {\n    throw new Error('Element does not have bpmn:ConditionalEventDefinition');\n  }\n\n  const condition = conditionalEventDefinition.get('condition');\n\n  if (!condition) {\n    return commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: conditionalEventDefinition,\n      properties: {\n        condition: createElement(\n          'bpmn:FormalExpression',\n          { body: value },\n          conditionalEventDefinition,\n          bpmnFactory\n        )\n      }\n    });\n  }\n\n  commandStack.execute('element.updateModdleProperties', {\n    element,\n    moddleElement: condition,\n    properties: {\n      body: value\n    }\n  });\n}","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  isAny\n} from 'bpmn-js/lib/features/modeling/util/ModelingUtil';\n\nimport {\n  getCondition\n} from '../../../utils/ConditionUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport { isFeelEntryEdited } from '@bpmn-io/properties-panel';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\n\nexport function ConditionProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:SequenceFlow')) {\n    return [];\n  }\n\n  const conditionProps = [];\n\n  if (isConditionalSource(element.source)) {\n    conditionProps.push({\n      id: 'conditionExpression',\n      component: ConditionExpression,\n      isEdited: isFeelEntryEdited\n    });\n  }\n\n  return conditionProps;\n}\n\nfunction ConditionExpression(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        bpmnFactory = useService('bpmnFactory'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const getValue = () => {\n    const condition = getCondition(element);\n    return condition?.get('body');\n  };\n\n  const setValue = (value) => {\n    const commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    // (1) If we set value to a default flow, make it a non-default flow\n    // by updating the element source\n    const source = element.source;\n\n    if (source.businessObject.default === businessObject) {\n      commands.push({\n        cmd: 'element.updateProperties',\n        context: {\n          element: source,\n          properties: { 'default': undefined }\n        }\n      });\n    }\n\n    // (2) Create and set formalExpression element containing the conditionExpression,\n    // unless the provided value is empty\n    const formalExpressionElement = (value && value != '') ?\n      createElement(\n        'bpmn:FormalExpression',\n        {\n          body: value\n        },\n        businessObject,\n        bpmnFactory\n      )\n      : undefined;\n\n    commands.push({\n      cmd: 'element.updateProperties',\n      context: {\n        element: element,\n        properties: {\n          conditionExpression: formalExpressionElement\n        }\n      }\n    });\n\n    // (3) Execute the commands\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'conditionExpression',\n    label: translate('Condition expression'),\n    feel: 'required',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper //////////////////////////\n\nconst CONDITIONAL_SOURCES = [\n  'bpmn:Activity',\n  'bpmn:ExclusiveGateway',\n  'bpmn:InclusiveGateway'\n];\n\nfunction isConditionalSource(element) {\n  return isAny(element, CONDITIONAL_SOURCES);\n}\n\n\n","import {\n  CheckboxGroup\n} from '@bpmn-io/properties-panel';\n\nimport {\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport { isFeelEntryEdited } from '@bpmn-io/properties-panel';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\nimport { getConditionalEventDefinition } from '../../../utils/EventDefinitionUtil';\n\nimport { getExtensionElementsList } from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  getConditionBody,\n  setConditionalEventConditionBody\n} from '../../../utils/ConditionUtil';\n\n/**\n * Properties of a Conditional Start Event:\n *\n * - `bpmn:Condition`\n * - `zeebe:ConditionalFilter#variableEvents`\n */\nexport function EventConditionProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!getConditionalEventDefinition(element)) {\n    return [];\n  }\n\n  const entries = [\n    {\n      id: 'condition',\n      component: Condition,\n      isEdited: isFeelEntryEdited\n    }\n  ];\n\n  if (\n    is(element.parent, 'bpmn:SubProcess') ||\n    is(element, 'bpmn:IntermediateCatchEvent') ||\n    is(element, 'bpmn:BoundaryEvent'))\n  {\n    entries.push({\n      id: 'variableEvents',\n      component: VariableEvents,\n    });\n  }\n\n  return entries;\n}\n\n/**\n * Field for `bpmn:Condition` property.\n */\nfunction Condition(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getConditionBody(element);\n  };\n\n  const setValue = (value) => {\n    setConditionalEventConditionBody(element, value, commandStack, bpmnFactory);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'condition',\n    label: translate('Condition expression'),\n    feel: 'required',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n/**\n * Field for `variableEvents` property of `zeebe:ConditionalFilter`.\n */\nfunction VariableEvents(props) {\n  const {\n    element\n  } = props;\n\n  const VARIABLE_EVENTS = {\n    CREATE: 'create',\n    UPDATE: 'update'\n  };\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const bpmnFactory = useService('bpmnFactory');\n\n  const getValue = () => {\n    const conditionalFilter = getConditionalFilter(element);\n    const events = conditionalFilter?.variableEvents;\n    return stringListToArray(events);\n  };\n\n  const setValue = (values) => {\n    const variableEvents = arrayToStringList(values);\n    setConditionalFilter(element, { variableEvents }, bpmnFactory, commandStack);\n  };\n\n  return CheckboxGroup({\n    element,\n    id: 'variableEvents',\n    options: [\n      { label: translate('Create'), value: VARIABLE_EVENTS.CREATE },\n      { label: translate('Update'), value: VARIABLE_EVENTS.UPDATE }\n    ],\n    getValue,\n    setValue,\n    label: translate('Variable events'),\n  });\n}\n\n// helper //////////////////////////\n\n/**\n * Get `zeebe:ConditionalFilter` extension element.\n *\n * @param {ModdleElement} element\n */\nexport function getConditionalFilter(element) {\n  const conditionalEventDefinition = getConditionalEventDefinition(element);\n  return getExtensionElementsList(conditionalEventDefinition, 'zeebe:ConditionalFilter')?.[0];\n}\n\n/**\n * Set properties of `zeebe:ConditionalFilter` extension element.\n * Create it if it does not exist.\n *\n * @param {ModdleElement} element\n * @param {Object} properties\n * @param {*} bpmnFactory\n * @param {*} commandStack\n */\nfunction setConditionalFilter(element, properties, bpmnFactory, commandStack) {\n\n  const conditionalEventDefinition = getConditionalEventDefinition(element);\n\n  let conditionalFilter = getConditionalFilter(element);\n\n  const commands = [];\n\n  // (1) create zeebe:ConditionalFilter if it doesn't exist\n  if (!conditionalFilter) {\n    conditionalFilter = createElement(\n      'zeebe:ConditionalFilter',\n      {},\n      conditionalEventDefinition,\n      bpmnFactory\n    );\n\n    const extensionElements = conditionalEventDefinition.get('extensionElements');\n    let extensionElementsValues = extensionElements ? extensionElements.get('values') : [];\n\n    extensionElementsValues = [\n      ...extensionElementsValues,\n      conditionalFilter\n    ];\n\n    const updatedExtensionElements = createElement(\n      'bpmn:ExtensionElements',\n      {\n        values: extensionElementsValues\n      },\n      conditionalEventDefinition,\n      bpmnFactory\n    );\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: conditionalEventDefinition,\n        properties: {\n          extensionElements: updatedExtensionElements\n        }\n      }\n    });\n  }\n\n  // (2) update zeebe:ConditionalFilter properties\n  commands.push({\n    cmd: 'element.updateModdleProperties',\n    context: {\n      element,\n      moddleElement: conditionalFilter,\n      properties\n    }\n  });\n\n  // (3) execute the commands\n  commandStack.execute('properties-panel.multi-command-executor', commands);\n}\n\nfunction stringListToArray(string) {\n  return string?.split(',').map(e => e.trim()).filter(e => e.length > 0) ?? [];\n}\n\nfunction arrayToStringList(array) {\n  return array.length > 0 ? array.join(',') : undefined;\n}","import {\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  isFeelEntryEdited\n} from '@bpmn-io/properties-panel';\n\nimport { useService } from '../../../hooks';\n\n\nimport {\n  getError\n} from '../../bpmn/utils/EventDefinitionUtil';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\n\nexport function ErrorProps(props) {\n  const {\n    element\n  } = props;\n\n  const error = getError(element);\n\n  const entries = [];\n\n  if (error && is(element, 'bpmn:ThrowEvent')) {\n    entries.push(\n      {\n        id: 'errorCode',\n        component: ErrorCode,\n        isEdited: isFeelEntryEdited\n      }\n    );\n  }\n\n  return entries;\n}\n\n\nfunction ErrorCode(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const error = getError(element);\n\n  const getValue = () => {\n    return error.get('errorCode');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: error,\n        properties: {\n          errorCode: value\n        }\n      }\n    );\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'errorCode',\n    label: translate('Code'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n","import {\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  isFeelEntryEdited\n} from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getEscalation\n} from '../../bpmn/utils/EventDefinitionUtil';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function EscalationProps(props) {\n  const {\n    element\n  } = props;\n\n  // update throw events only\n  if (!is(element, 'bpmn:ThrowEvent')) {\n    return [];\n  }\n\n  const escalation = getEscalation(element);\n\n  const entries = [];\n\n  if (escalation) {\n    entries.push(\n      {\n        id: 'escalationCode',\n        component: EscalationCode,\n        isEdited: isFeelEntryEdited\n      }\n    );\n  }\n\n  return entries;\n}\n\nfunction EscalationCode(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const escalation = getEscalation(element);\n\n  const getValue = () => {\n    return escalation.get('escalationCode');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: escalation,\n        properties: {\n          escalationCode: value\n        }\n      }\n    );\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'escalationCode',\n    label: translate('Code'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n","import { BpmnFeelEntry } from '../../../../entries/BpmnFeelEntry';\n\nimport { useService } from '../../../../hooks';\n\nexport function ListenerType(props) {\n  const {\n    idPrefix,\n    element,\n    listener\n  } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    modeling.updateModdleProperties(element, listener, {\n      type: value\n    });\n  };\n\n  const getValue = () => {\n    return listener.get('type');\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: idPrefix + '-listenerType',\n    label: translate('Listener type'),\n    getValue,\n    setValue,\n    debounce,\n    feel: 'optional'\n  });\n}\n\nexport function Retries(props) {\n  const {\n    idPrefix,\n    element,\n    listener\n  } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    modeling.updateModdleProperties(element, listener, {\n      retries: value\n    });\n  };\n\n  const getValue = () => {\n    return listener.get('retries');\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: idPrefix + '-retries',\n    label: translate('Retries'),\n    getValue,\n    setValue,\n    debounce,\n    feel: 'optional'\n  });\n}","import { TextFieldEntry, TextAreaEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\n\nexport default function Header(props) {\n\n  const {\n    idPrefix,\n    header\n  } = props;\n\n  const entries = [ {\n    id: idPrefix + '-key',\n    component: KeyProperty,\n    header,\n    idPrefix\n  },{\n    id: idPrefix + '-value',\n    component: ValueProperty,\n    header,\n    idPrefix\n  } ];\n\n  return entries;\n}\n\nfunction KeyProperty(props) {\n  const {\n    idPrefix,\n    element,\n    header\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: header,\n      properties: {\n        key: value\n      }\n    });\n  };\n\n  const getValue = (header) => {\n    return header.key;\n  };\n\n  return TextFieldEntry({\n    element: header,\n    id: idPrefix + '-key',\n    label: translate('Key'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ValueProperty(props) {\n  const {\n    idPrefix,\n    element,\n    header\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: header,\n      properties: {\n        value\n      }\n    });\n  };\n\n  const getValue = (header) => {\n    return header.value;\n  };\n\n  return TextAreaEntry({\n    element: header,\n    id: idPrefix + '-value',\n    label: translate('Value'),\n    getValue,\n    setValue,\n    debounce,\n    autoResize: true\n  });\n}","import {\n  CollapsibleEntry,\n  ListEntry\n} from '@bpmn-io/properties-panel';\n\nimport {\n  without\n} from 'min-dash';\n\n\nimport Header from './Header';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\n/**\n * @typedef {import('bpmn-js/lib/model/Types').ModdleElement} ModdleElement\n */\n\n/**\n * A single header item rendered as a CollapsibleEntry with key/value fields.\n *\n * @param {object} props\n * @param {ModdleElement} props.element\n * @param {string} props.id\n * @param {number} props.index\n * @param {ModdleElement} props.item - zeebe:Header\n * @param {boolean} props.open\n */\nfunction HeaderItem(props) {\n  const {\n    element,\n    id: idPrefix,\n    index,\n    item: header,\n    open\n  } = props;\n\n  const headerId = `${ idPrefix }-header-${ index }`;\n\n  const HeaderEntries = Header({\n    idPrefix: headerId,\n    element,\n    header\n  });\n\n  return (\n    <CollapsibleEntry\n      id={ headerId }\n      element={ element }\n      entries={ HeaderEntries }\n      label={ header.get('key') || '' }\n      open={ open }\n    />\n  );\n}\n\n/**\n * A nested ListEntry component that renders headers (zeebe:Header)\n * for a given execution listener (zeebe:ExecutionListener).\n *\n * @param {object} props\n * @param {string} props.id\n * @param {ModdleElement} props.element\n * @param {ModdleElement} props.listener - zeebe:ExecutionListener\n */\nexport default function ExecutionListenerHeaders(props) {\n  const {\n    id,\n    element,\n    listener\n  } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  function addHeader() {\n    let commands = [];\n\n    // (1) ensure zeebe:TaskHeaders\n    let taskHeaders = listener.get('headers');\n\n    if (!taskHeaders) {\n      taskHeaders = createElement('zeebe:TaskHeaders', {\n        values: []\n      }, listener, bpmnFactory);\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: listener,\n          properties: {\n            headers: taskHeaders\n          }\n        }\n      });\n    }\n\n    // (2) create header\n    const header = createElement('zeebe:Header', {}, taskHeaders, bpmnFactory);\n\n    // (3) add header to the list\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: taskHeaders,\n        properties: {\n          values: [ ...taskHeaders.get('values'), header ]\n        }\n      }\n    });\n\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  }\n\n  function removeHeader(header) {\n    const taskHeaders = listener.get('headers');\n\n    if (!taskHeaders) {\n      return;\n    }\n\n    const newHeaders = without(taskHeaders.get('values'), header);\n\n    // remove zeebe:TaskHeaders if there are no headers anymore\n    if (!newHeaders.length) {\n      commandStack.execute('element.updateModdleProperties', {\n        element,\n        moddleElement: listener,\n        properties: {\n          headers: undefined\n        }\n      });\n\n      return;\n    }\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: taskHeaders,\n      properties: {\n        values: newHeaders\n      }\n    });\n  }\n\n  const headers = getListenerHeaders(listener);\n\n  return <ListEntry\n    id={ id }\n    element={ element }\n    label={ translate('Headers') }\n    items={ headers }\n    component={ HeaderItem }\n    onAdd={ addHeader }\n    onRemove={ removeHeader }\n    autoFocusEntry={ `[data-entry-id=\"${id}-header-${headers.length - 1}\"] input` }\n  />;\n}\n\n\n// helper //////////////////\n\n/**\n * Get zeebe:Header elements for a given execution listener.\n *\n * @param {ModdleElement} listener - zeebe:ExecutionListener\n * @returns {Array<ModdleElement>} list of zeebe:Header elements\n */\nfunction getListenerHeaders(listener) {\n  const taskHeaders = listener.get('headers');\n\n  return taskHeaders ? taskHeaders.get('values') : [];\n}\n","import { SelectEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  getBusinessObject,\n  is,\n  isAny\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getErrorEventDefinition\n} from '../../../utils/EventDefinitionUtil';\n\nimport { ListenerType, Retries } from './shared/Listener';\n\nimport ExecutionListenerHeaders from './ExecutionListenerHeaderProps';\n\n\nexport const EVENT_TO_LABEL = {\n  'start': 'Start',\n  'end': 'End',\n  'cancel': 'Cancel'\n};\n\n// Specific event label for Multi instance elements: `beforeAll` runs once before MI init; `start` / `end` run per iteration.\nexport const MI_EVENT_TO_LABEL = {\n  'beforeAll': 'Before all',\n  'start': 'Before each',\n  'end': 'After each'\n};\n\nexport function getEventLabel(element, eventType) {\n  const labels = isMultiInstance(element) ? MI_EVENT_TO_LABEL : EVENT_TO_LABEL;\n  return labels[eventType];\n}\n\nexport function ExecutionListenerEntries(props) {\n\n  const {\n    element,\n    idPrefix,\n    listener\n  } = props;\n\n  const eventTypes = getEventTypes(element);\n\n  const entries = eventTypes.length > 1 ? [\n    {\n      id: idPrefix + '-eventType',\n      component: EventType,\n      idPrefix,\n      listener,\n      eventTypes\n    }\n  ] : [];\n\n  entries.push({\n    id: idPrefix + '-listenerType',\n    component: ListenerType,\n    idPrefix,\n    listener\n  },\n  {\n    id: idPrefix + '-retries',\n    component: Retries,\n    idPrefix,\n    listener\n  },\n  {\n    id: idPrefix + '-headers',\n    component: ExecutionListenerHeaders,\n    listener\n  });\n\n  return entries;\n}\n\nfunction EventType(props) {\n  const {\n    idPrefix,\n    element,\n    listener,\n    eventTypes\n  } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n\n  const getOptions = () => {\n    return eventTypes.map(eventType => ({\n      value: eventType,\n      label: translate(getEventLabel(element, eventType))\n    }));\n  };\n\n  const setValue = (value) => {\n    modeling.updateModdleProperties(element, listener, {\n      eventType: value\n    });\n  };\n\n  const getValue = () => {\n    return listener.get('eventType');\n  };\n\n  return SelectEntry({\n    element,\n    id: idPrefix + '-eventType',\n    label: translate('Event type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nexport function getEventTypes(element) {\n  if (isAny(element, [ 'bpmn:BoundaryEvent', 'bpmn:StartEvent' ])) {\n    return [ 'end' ];\n  }\n\n  if (is(element, 'bpmn:EndEvent') && getErrorEventDefinition(element)) {\n    return [ 'start' ];\n  }\n\n  if (is(element, 'bpmn:Gateway')) {\n    return [ 'start' ];\n  }\n\n  if (isMultiInstance(element)) {\n    return [ 'beforeAll', 'start', 'end' ];\n  }\n\n  if (isAny(element, [ 'bpmn:Process', 'bpmn:Participant' ])) {\n    return [ 'start', 'end', 'cancel' ];\n  }\n\n  return [ 'start', 'end' ];\n}\n\nfunction isMultiInstance(element) {\n  const loopCharacteristics = getBusinessObject(element).get('loopCharacteristics');\n  return !!loopCharacteristics && is(loopCharacteristics, 'bpmn:MultiInstanceLoopCharacteristics');\n}\n","import {\n  getBusinessObject,\n  is,\n  isAny\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { without } from 'min-dash';\n\nimport { ExecutionListenerEntries, getEventTypes, getEventLabel } from './ExecutionListener';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  getCompensateEventDefinition\n} from '../../../utils/EventDefinitionUtil';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nexport function ExecutionListenersProps({ element, injector }) {\n  let businessObject = getRelevantBusinessObject(element);\n\n  // not allowed in empty pools\n  if (!businessObject) {\n    return;\n  }\n\n  const moddle = injector.get('moddle');\n  if (!canHaveExecutionListeners(businessObject, moddle)) {\n    return;\n  }\n\n  const listeners = getListenersList(businessObject) || [];\n\n  const bpmnFactory = injector.get('bpmnFactory'),\n        commandStack = injector.get('commandStack'),\n        modeling = injector.get('modeling'),\n        translate = injector.get('translate');\n\n  const items = listeners.map((listener, index) => {\n    const id = element.id + '-executionListener-' + index;\n    const type = listener.get('type') || '<no type>';\n\n    return {\n      id,\n      label: translate(`${getEventLabel(element, listener.get('eventType'))}: {type}`, { type }),\n      entries: ExecutionListenerEntries({\n        idPrefix: id,\n        element,\n        listener\n      }),\n      autoFocusEntry: id + '-eventType',\n      remove: removeFactory({ modeling, element, listener })\n    };\n  });\n\n  return {\n    items,\n    add: addFactory({ bpmnFactory, commandStack, element })\n  };\n}\n\nfunction removeFactory({ modeling, element, listener }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const businessObject = getRelevantBusinessObject(element);\n    const container = getExecutionListenersContainer(businessObject);\n\n    if (!container) {\n      return;\n    }\n\n    const listeners = without(container.get('listeners'), listener);\n\n    modeling.updateModdleProperties(element, container, { listeners });\n  };\n}\n\nfunction addFactory({ bpmnFactory, commandStack, element }) {\n  return function(event) {\n    event.stopPropagation();\n\n    let commands = [];\n\n    const businessObject = getRelevantBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure zeebe:ExecutionListeners\n    let executionListeners = getExecutionListenersContainer(businessObject);\n\n    if (!executionListeners) {\n      const parent = extensionElements;\n\n      executionListeners = createElement('zeebe:ExecutionListeners', {\n        listeners: []\n      }, parent, bpmnFactory);\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), executionListeners ]\n          }\n        }\n      });\n    }\n\n    // (3) create zeebe:ExecutionListener\n    const executionListener = createElement(\n      'zeebe:ExecutionListener', getDefaultListenerProps(element), executionListeners, bpmnFactory\n    );\n\n    // (4) add executionListener to list\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: executionListeners,\n        properties: {\n          listeners: [ ...executionListeners.get('listeners'), executionListener ]\n        }\n      }\n    });\n\n    // (5) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n}\n\n\n// helper //////////////////\n\nfunction getRelevantBusinessObject(element) {\n  let businessObject = getBusinessObject(element);\n\n  if (is(element, 'bpmn:Participant')) {\n    return businessObject.get('processRef');\n  }\n\n  return businessObject;\n}\n\nfunction getExecutionListenersContainer(element) {\n  const executionListeners = getExtensionElementsList(element, 'zeebe:ExecutionListeners');\n\n  return executionListeners && executionListeners[0];\n}\n\nfunction getListenersList(element) {\n  const executionListeners = getExecutionListenersContainer(element);\n\n  return executionListeners && executionListeners.get('listeners');\n}\n\nfunction canHaveExecutionListeners(bo, moddle) {\n  const executionListenersDescriptor = moddle.getTypeDescriptor('zeebe:ExecutionListeners');\n\n  if (!isAny(bo, executionListenersDescriptor.meta.allowedIn)) {\n    return false;\n  }\n\n  if (isCompensationBoundaryEvent(bo)) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction isCompensationBoundaryEvent(bo) {\n  return is(bo, 'bpmn:BoundaryEvent') && getCompensateEventDefinition(bo);\n}\n\nfunction getDefaultListenerProps(element) {\n  const eventTypes = getEventTypes(element);\n\n  return {\n    eventType: eventTypes[0]\n  };\n}","import { isDefined } from 'min-dash';\n\nimport {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { nextId } from '../../../utils/ElementUtil';\n\nimport { getExtensionElementsList } from '../../../utils/ExtensionElementsUtil';\n\nconst FORM_KEY_PREFIX = 'camunda-forms:bpmn:',\n      USER_TASK_FORM_ID_PREFIX = 'UserTaskForm_';\n\nexport const FORM_TYPES = {\n  CAMUNDA_FORM_EMBEDDED: 'camunda-form-embedded',\n  CAMUNDA_FORM_LINKED: 'camunda-form-linked',\n  CUSTOM_FORM: 'custom-form',\n  EXTERNAL_REFERENCE: 'external-reference'\n};\n\nexport const DEFAULT_FORM_TYPE = FORM_TYPES.CAMUNDA_FORM_LINKED;\n\nexport function isFormSupported(element) {\n  if (is(element, 'bpmn:UserTask')) {\n    return true;\n  }\n\n  if (is(element, 'bpmn:StartEvent')) {\n    const bo = getBusinessObject(element);\n\n    // Only \"none\" start events (no event definitions)\n    if (bo.eventDefinitions && bo.eventDefinitions.length > 0) {\n      return false;\n    }\n\n    // Only top-level (parent is Process, not SubProcess)\n    const parent = bo.$parent;\n    if (!is(parent, 'bpmn:Process')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  return false;\n}\n\nexport function getFormDefinition(element) {\n  const businessObject = getBusinessObject(element);\n\n  const formDefinitions = getExtensionElementsList(businessObject, 'zeebe:FormDefinition');\n\n  return formDefinitions[ 0 ];\n}\n\nexport function getUserTaskForm(element, rootElement) {\n  rootElement = rootElement || getRootElement(element);\n\n  const formDefinition = getFormDefinition(element);\n\n  if (!formDefinition) {\n    return;\n  }\n\n  const formKey = formDefinition.get('formKey');\n\n  const userTaskForms = getExtensionElementsList(rootElement, 'zeebe:UserTaskForm');\n\n  return userTaskForms.find(userTaskForm => {\n    return userTaskFormIdToFormKey(userTaskForm.get('id')) === formKey;\n  });\n}\n\nexport function userTaskFormIdToFormKey(userTaskFormId) {\n  return `${ FORM_KEY_PREFIX }${ userTaskFormId }`;\n}\n\nexport function formKeyToUserTaskFormId(formKey) {\n  return formKey.replace(FORM_KEY_PREFIX, '');\n}\n\nexport function createUserTaskFormId() {\n  return nextId(USER_TASK_FORM_ID_PREFIX);\n}\n\nexport function getRootElement(element) {\n  const businessObject = getBusinessObject(element);\n\n  let parent = businessObject;\n\n  while (parent.$parent && !is(parent, 'bpmn:Process')) {\n    parent = parent.$parent;\n  }\n\n  return parent;\n}\n\nexport function getFormType(element) {\n  const formDefinition = getFormDefinition(element);\n\n  if (!formDefinition) {\n    return;\n  }\n\n  const formId = formDefinition.get('formId'),\n        formKey = formDefinition.get('formKey'),\n        externalReference = formDefinition.get('externalReference');\n\n  if (isDefined(formId)) {\n    return FORM_TYPES.CAMUNDA_FORM_LINKED;\n  }\n\n  if (isDefined(externalReference)) {\n    return FORM_TYPES.EXTERNAL_REFERENCE;\n  }\n\n  if (isDefined(formKey)) {\n\n    if (getUserTaskForm(element)) {\n      return FORM_TYPES.CAMUNDA_FORM_EMBEDDED;\n    }\n\n    return FORM_TYPES.CUSTOM_FORM;\n  }\n}\n\nexport function isZeebeUserTask(element) {\n  const bo = getBusinessObject(element);\n\n  return getExtensionElementsList(bo, 'zeebe:UserTask').length > 0;\n}\n","import {\n  isUndefined,\n  without\n} from 'min-dash';\n\nimport {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  SelectEntry,\n  TextFieldEntry,\n  TextAreaEntry,\n  isFeelEntryEdited,\n  isSelectEntryEdited,\n  isTextFieldEntryEdited,\n  isTextAreaEntryEdited\n} from '@bpmn-io/properties-panel';\n\nimport Binding, { getBindingType } from './shared/Binding';\nimport VersionTag from './shared/VersionTag';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\nimport { createElement } from '../../../utils/ElementUtil';\n\nimport { useService } from '../../../hooks';\n\nimport {\n  createUserTaskFormId,\n  FORM_TYPES,\n  getFormDefinition,\n  getFormType,\n  getRootElement,\n  getUserTaskForm,\n  isFormSupported,\n  isZeebeUserTask,\n  userTaskFormIdToFormKey\n} from '../utils/FormUtil';\n\nimport { withProps } from '../../HOCs';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst FormDefinitionBinding = withProps(Binding, { type: 'zeebe:FormDefinition' }),\n      FormDefinitionVersionTag = withProps(VersionTag, { type: 'zeebe:FormDefinition' });\n\nconst NONE_VALUE = 'none';\n\n\nexport function FormProps(props) {\n  const { element } = props;\n\n  if (!isFormSupported(element)) {\n    return [];\n  }\n\n  const isStartEvent = is(element, 'bpmn:StartEvent');\n  const formType = getFormType(element);\n\n  const entries = [ {\n    id: 'formType',\n    component: FormType,\n    isEdited: node => node.value !== NONE_VALUE\n  } ];\n\n  if (formType === FORM_TYPES.CAMUNDA_FORM_EMBEDDED) {\n    entries.push({\n      id: 'formConfiguration',\n      component: FormConfiguration,\n      isEdited: isTextAreaEntryEdited\n    });\n  } else if (formType === FORM_TYPES.CAMUNDA_FORM_LINKED) {\n    entries.push({\n      id: 'formId',\n      component: FormId,\n      isEdited: isTextFieldEntryEdited\n    });\n  } else if (formType === FORM_TYPES.CUSTOM_FORM) {\n    entries.push({\n      id: 'customFormKey',\n      component: CustomForm,\n      isEdited: isTextFieldEntryEdited\n    });\n  } else if (formType === FORM_TYPES.EXTERNAL_REFERENCE) {\n    entries.push({\n      id: 'externalReference',\n      component: ExternalReference,\n      isEdited: isFeelEntryEdited\n    });\n  }\n\n  // Binding and version tag are not supported for start events\n  if (!isStartEvent && formType === FORM_TYPES.CAMUNDA_FORM_LINKED) {\n    entries.push({\n      id: 'bindingType',\n      component: FormDefinitionBinding,\n      isEdited: isSelectEntryEdited\n    });\n\n    if (getBindingType(element, 'zeebe:FormDefinition') === 'versionTag') {\n      entries.push({\n        id: 'versionTag',\n        component: FormDefinitionVersionTag,\n        isEdited: isTextFieldEntryEdited\n      });\n    }\n  }\n\n  return entries;\n}\n\n\nfunction FormType(props) {\n  const { element } = props;\n\n  const injector = useService('injector'),\n        translate = useService('translate');\n\n  const getValue = () => {\n    return getFormType(element) || NONE_VALUE;\n  };\n\n  const setValue = (value) => {\n    setFormType(injector, element, value);\n  };\n\n  const getOptions = () => {\n    return getFormTypeOptions(translate, element);\n  };\n\n  return SelectEntry({\n    element,\n    id: 'formType',\n    label: translate('Type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nfunction setFormType(injector, element, value) {\n  if (value === FORM_TYPES.CAMUNDA_FORM_EMBEDDED) {\n    setUserTaskForm(injector, element, '');\n  } else if (value === FORM_TYPES.CAMUNDA_FORM_LINKED) {\n    setFormId(injector, element, '');\n  } else if (value === FORM_TYPES.CUSTOM_FORM) {\n    setCustomFormKey(injector, element, '');\n  } else if (value === FORM_TYPES.EXTERNAL_REFERENCE) {\n    setExternalReference(injector, element, '');\n  } else {\n    removeFormDefinition(injector, element);\n  }\n}\n\nfunction getFormTypeOptions(translate, element) {\n  if (isZeebeUserTask(element)) {\n    return [\n      { value: NONE_VALUE, label: translate('<none>') },\n      { value: FORM_TYPES.CAMUNDA_FORM_LINKED, label: translate('Camunda Form') },\n      { value: FORM_TYPES.EXTERNAL_REFERENCE, label: translate('External form reference') }\n    ];\n  }\n\n  if (is(element, 'bpmn:StartEvent')) {\n    return [\n      { value: NONE_VALUE, label: translate('<none>') },\n      { value: FORM_TYPES.CAMUNDA_FORM_LINKED, label: translate('Camunda Form (linked)') },\n      { value: FORM_TYPES.CAMUNDA_FORM_EMBEDDED, label: translate('Camunda Form (embedded)') }\n    ];\n  }\n\n  return [\n    { value: NONE_VALUE, label: translate('<none>') },\n    { value: FORM_TYPES.CAMUNDA_FORM_LINKED, label: translate('Camunda Form (linked)') },\n    { value: FORM_TYPES.CAMUNDA_FORM_EMBEDDED, label: translate('Camunda Form (embedded)') },\n    { value: FORM_TYPES.CUSTOM_FORM, label: translate('Custom form key') }\n  ];\n}\n\n\nfunction FormConfiguration(props) {\n  const { element } = props;\n\n  const debounce = useService('debounceInput'),\n        injector = useService('injector'),\n        translate = useService('translate');\n\n  const getValue = () => {\n    return getUserTaskForm(element).get('body');\n  };\n\n  const setValue = (value) => {\n    setUserTaskForm(injector, element, isUndefined(value) ? '' : value);\n  };\n\n  return TextAreaEntry({\n    element,\n    id: 'formConfiguration',\n    label: translate('Form JSON configuration'),\n    rows: 4,\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\nfunction FormId(props) {\n  const { element } = props;\n\n  const debounce = useService('debounceInput'),\n        injector = useService('injector'),\n        translate = useService('translate');\n\n  const getValue = () => {\n    return getFormDefinition(element).get('formId');\n  };\n\n  const setValue = (value) => {\n    setFormId(injector, element, isUndefined(value) ? '' : value);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'formId',\n    label: translate('Form ID'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction CustomForm(props) {\n  const { element } = props;\n\n  const debounce = useService('debounceInput'),\n        injector = useService('injector'),\n        translate = useService('translate');\n\n  const getValue = () => {\n    const formDefinition = getFormDefinition(element);\n    return formDefinition.get('formKey');\n  };\n\n  const setValue = (value) => {\n    setCustomFormKey(injector, element, isUndefined(value) ? '' : value);\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'customFormKey',\n    label: translate('Custom form key'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ExternalReference(props) {\n  const { element } = props;\n\n  const debounce = useService('debounceInput'),\n        injector = useService('injector'),\n        translate = useService('translate');\n\n  const getValue = () => {\n    const formDefinition = getFormDefinition(element);\n    return formDefinition.get('externalReference');\n  };\n\n  const setValue = (value) => {\n    setExternalReference(injector, element, isUndefined(value) ? '' : value);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'externalReference',\n    label: translate('External form reference'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n// helpers /////////////\n\n/**\n * @typedef { { cmd: string, context: Object } } Command\n * @typedef {Command[]} Commands\n *\n * @typedef {import('diagram-js/lib/model/Types').Element} Element\n * @typedef {import('bpmn-js/lib/model/Types').ModdleElement} ModdleElement\n *\n * @param {import('didi').Injector} Injector\n */\n\n/**\n * @param {Injector} injector\n * @param {Element} element\n *\n * @returns { {\n *   commands: Commands,\n *   extensionElements: ModdleElement\n * } }\n */\nfunction getOrCreateExtensionElements(injector, element, moddleElement) {\n  const businessObject = moddleElement || getBusinessObject(element);\n\n  let extensionElements = businessObject.get('extensionElements');\n\n  if (extensionElements) {\n    return {\n      commands: [],\n      extensionElements\n    };\n  }\n\n  const bpmnFactory = injector.get('bpmnFactory');\n\n  extensionElements = createElement('bpmn:ExtensionElements', {\n    values: []\n  }, businessObject, bpmnFactory);\n\n  return {\n    commands: [\n      createUpdateModdlePropertiesCommand(element, businessObject, {\n        extensionElements\n      })\n    ],\n    extensionElements\n  };\n}\n\n/**\n * @param {Injector} injector\n * @param {Element} element\n *\n * @returns { {\n*   commands: Commands,\n*   formDefinition: ModdleElement\n* } }\n*/\nfunction getOrCreateFormDefintition(injector, element) {\n  let formDefinition = getFormDefinition(element);\n\n  if (formDefinition) {\n    return {\n      commands: [],\n      formDefinition\n    };\n  }\n\n  const {\n    extensionElements,\n    commands\n  } = getOrCreateExtensionElements(injector, element);\n\n  formDefinition = createFormDefinition(injector, {}, extensionElements);\n\n  return {\n    commands: [\n      ...commands,\n      createUpdateModdlePropertiesCommand(element, extensionElements, {\n        values: [\n          ...extensionElements.get('values'),\n          formDefinition\n        ]\n      })\n    ],\n    formDefinition\n  };\n}\n\n/**\n * @param {Injector} injector\n * @param {Element} element\n *\n * @returns { {\n *   commands: Commands,\n *   formDefinition: ModdleElement,\n *   userTaskForm: ModdleElement\n * } }\n */\nfunction getOrCreateUserTaskForm(injector, element) {\n  let userTaskForm = getUserTaskForm(element);\n\n  if (userTaskForm) {\n    return {\n      commands: [],\n      formDefinition: getFormDefinition(element),\n      userTaskForm\n    };\n  }\n\n  const rootElement = getRootElement(element);\n\n  const {\n    extensionElements,\n    commands: extensionElementsCommands\n  } = getOrCreateExtensionElements(injector, element, rootElement);\n\n  const {\n    formDefinition,\n    commands: formDefinitionCommands\n  } = getOrCreateFormDefintition(injector, element);\n\n  const formId = createUserTaskFormId();\n\n  userTaskForm = createUserTaskForm(injector, {\n    id: formId\n  }, extensionElements);\n\n  return {\n    commands: [\n      ...extensionElementsCommands,\n      ...formDefinitionCommands,\n      createUpdateModdlePropertiesCommand(element, extensionElements, {\n        values: [\n          ...extensionElements.get('values'),\n          userTaskForm\n        ]\n      }),\n      createUpdateModdlePropertiesCommand(element, formDefinition, {\n        formKey: userTaskFormIdToFormKey(formId)\n      })\n    ],\n    formDefinition,\n    userTaskForm\n  };\n}\n\nfunction setFormId(injector, element, formId) {\n  let {\n    commands,\n    formDefinition\n  } = getOrCreateFormDefintition(injector, element);\n\n  const commandStack = injector.get('commandStack');\n\n  commandStack.execute('properties-panel.multi-command-executor', [\n    ...commands,\n    createUpdateModdlePropertiesCommand(element, formDefinition, {\n      formId\n    })\n  ]);\n}\n\nfunction setCustomFormKey(injector, element, formKey) {\n  let {\n    commands,\n    formDefinition\n  } = getOrCreateFormDefintition(injector, element);\n\n  const commandStack = injector.get('commandStack');\n\n  commandStack.execute('properties-panel.multi-command-executor', [\n    ...commands,\n    createUpdateModdlePropertiesCommand(element, formDefinition, {\n      formKey\n    })\n  ]);\n}\n\nfunction setExternalReference(injector, element, externalReference) {\n  let {\n    commands,\n    formDefinition\n  } = getOrCreateFormDefintition(injector, element);\n\n  const commandStack = injector.get('commandStack');\n\n  commandStack.execute('properties-panel.multi-command-executor', [\n    ...commands,\n    createUpdateModdlePropertiesCommand(element, formDefinition, {\n      externalReference\n    })\n  ]);\n}\n\nfunction setUserTaskForm(injector, element, body) {\n  let {\n    commands,\n    userTaskForm\n  } = getOrCreateUserTaskForm(injector, element);\n\n  const commandStack = injector.get('commandStack');\n\n  commandStack.execute('properties-panel.multi-command-executor', [\n    ...commands,\n    createUpdateModdlePropertiesCommand(element, userTaskForm, {\n      body\n    })\n  ]);\n}\n\nfunction removeFormDefinition(injector, element) {\n  const formDefinition = getFormDefinition(element);\n\n  /**\n   * @type {import('bpmn-js/lib/features/modeling/Modeling').default}\n   */\n  const modeling = injector.get('modeling');\n\n  if (formDefinition) {\n    const businessObject = getBusinessObject(element),\n          extensionElements = businessObject.get('extensionElements');\n\n    modeling.updateModdleProperties(element, extensionElements, {\n      values: without(extensionElements.get('values'), formDefinition)\n    });\n  }\n}\n\n/**\n * @param {Injector} injector\n * @param {Object} properties\n * @param {ModdleElement} parent\n *\n * @returns {ModdleElement}\n */\nfunction createFormDefinition(injector, properties, parent) {\n  const bpmnFactory = injector.get('bpmnFactory');\n\n  return createElement(\n    'zeebe:FormDefinition',\n    properties,\n    parent,\n    bpmnFactory\n  );\n}\n\n/**\n * @param {Injector} injector\n * @param {Object} properties\n * @param {ModdleElement} parent\n *\n * @returns {ModdleElement}\n */\nfunction createUserTaskForm(injector, properties, parent) {\n  const bpmnFactory = injector.get('bpmnFactory');\n\n  return createElement(\n    'zeebe:UserTaskForm',\n    properties,\n    parent,\n    bpmnFactory\n  );\n}\n\n/**\n * @param {Element} element\n * @param {ModdleElement} moddleElement\n * @param {Object} properties\n *\n * @returns {Command}\n */\nfunction createUpdateModdlePropertiesCommand(element, moddleElement, properties) {\n  return {\n    cmd: 'element.updateModdleProperties',\n    context: {\n      element,\n      moddleElement,\n      properties\n    }\n  };\n}","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport Header from './Header';\n\nimport {\n  areHeadersSupported,\n  getHeaders,\n  getTaskHeaders\n} from '../utils/HeadersUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport { without } from 'min-dash';\n\n\nexport function HeaderProps({ element, injector }) {\n\n  if (!areHeadersSupported(element)) {\n    return null;\n  }\n\n  const headers = getHeaders(element) || [];\n\n  const bpmnFactory = injector.get('bpmnFactory'),\n        commandStack = injector.get('commandStack');\n\n  const items = headers.map((header, index) => {\n    const id = element.id + '-header-' + index;\n\n    return {\n      id,\n      label: header.get('key') || '',\n      entries: Header({\n        idPrefix: id,\n        element,\n        header\n      }),\n      autoFocusEntry: id + '-key',\n      remove: removeFactory({ commandStack, element, header })\n    };\n  });\n\n  return {\n    items,\n    add: addFactory({ bpmnFactory, commandStack, element }),\n  };\n}\n\nfunction removeFactory({ commandStack, element, header }) {\n  return function(event) {\n    event.stopPropagation();\n\n    let commands = [];\n\n    const taskHeaders = getTaskHeaders(element);\n\n    if (!taskHeaders) {\n      return;\n    }\n\n    const newTaskHeaders = without(taskHeaders.get('values'), header);\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: taskHeaders,\n        properties: {\n          values: newTaskHeaders\n        }\n      }\n    });\n\n    // remove zeebe:TaskHeaders if there are no headers anymore\n    if (!newTaskHeaders.length) {\n      const businessObject = getBusinessObject(element),\n            extensionElements = businessObject.get('extensionElements');\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: without(extensionElements.get('values'), taskHeaders)\n          }\n        }\n      });\n    }\n\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n}\n\nfunction addFactory({ bpmnFactory, commandStack, element }) {\n  return function(event) {\n\n    event.stopPropagation();\n\n    let commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure zeebe:TaskHeaders\n    let taskHeaders = getTaskHeaders(element);\n\n    if (!taskHeaders) {\n      const parent = extensionElements;\n\n      taskHeaders = createElement('zeebe:TaskHeaders', {\n        values: []\n      }, parent, bpmnFactory);\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), taskHeaders ]\n          }\n        }\n      });\n    }\n\n    // (3) create header\n    const header = createElement('zeebe:Header', {}, taskHeaders, bpmnFactory);\n\n    // (4) add header to list\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: taskHeaders,\n        properties: {\n          values: [ ...taskHeaders.get('values'), header ]\n        }\n      }\n    });\n\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n\n  };\n}\n","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\n\nexport function getPropagateAllChildVariables(element) {\n  const calledElement = getCalledElement(element);\n\n  return calledElement ? calledElement.get('propagateAllChildVariables') : undefined;\n}\n\nexport function getPropagateAllParentVariables(element) {\n  const calledElement = getCalledElement(element);\n\n  return calledElement ? calledElement.get('propagateAllParentVariables') : undefined;\n}\n\nexport function getProcessId(element) {\n  const calledElement = getCalledElement(element);\n\n  return calledElement ? calledElement.get('processId') : '';\n}\n\nexport function getBindingType(element) {\n  const calledElement = getCalledElement(element);\n\n  return calledElement ? calledElement.get('bindingType') : '';\n}\n\nexport function getCalledElement(element) {\n  const calledElements = getCalledElements(element);\n  return calledElements[0];\n}\n\nfunction getCalledElements(element) {\n  const bo = getBusinessObject(element);\n  const extElements = getExtensionElementsList(bo, 'zeebe:CalledElement');\n  return extElements;\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  getCalledElement\n} from '../utils/CalledElementUtil.js';\n\nimport {\n  has\n} from 'min-dash';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport { ToggleSwitchEntry, isToggleSwitchEntryEdited } from '@bpmn-io/properties-panel';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nexport function InputPropagationProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:CallActivity')) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'propagateAllParentVariables',\n      component: PropagateAllParentVariables,\n      isEdited: isToggleSwitchEntryEdited\n    }\n  ];\n}\n\nfunction PropagateAllParentVariables(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        bpmnFactory = useService('bpmnFactory'),\n        translate = useService('translate');\n\n  const propagateAllParentVariables = isPropagateAllParentVariables(element);\n\n  const getValue = () => {\n    return propagateAllParentVariables;\n  };\n\n  const setValue = (value) => {\n    const commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    // (1) ensure extension elements\n    let extensionElements = businessObject.get('extensionElements');\n\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure zeebe:calledElement\n    let calledElement = getCalledElement(businessObject);\n\n    if (!calledElement) {\n      calledElement = createElement(\n        'zeebe:CalledElement',\n        { },\n        extensionElements,\n        bpmnFactory);\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), calledElement ]\n          }\n        }\n      });\n\n    }\n\n    // (3) Update propagateAllParentVariables attribute\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: calledElement,\n        properties: {\n          propagateAllParentVariables: value\n        }\n      }\n    });\n\n    // (4) Execute the commands\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return ToggleSwitchEntry({\n    id: 'propagateAllParentVariables',\n    label: translate('Propagate all parent process variables'),\n    switcherLabel: propagateAllParentVariables ?\n      translate('On') :\n      translate('Off'),\n    tooltip: <div>\n      <p>{translate('If turned on, all variables from the parent process instance will be propagated to the child process instance.')}</p>\n      <p>{translate('Otherwise, only variables defined via input mappings will be propagated.')}</p>\n    </div>,\n    getValue,\n    setValue\n  });\n}\n\n\n// helper //////////////////////////\n\n/**\n  * Check whether the propagateAllParentVariables attribute is set on an element.\n  * @param {Object} element\n  *\n  * @returns {boolean}\n  */\nexport function isPropagateAllParentVariables(element) {\n  if (!is(element, 'bpmn:CallActivity')) {\n    return undefined;\n  }\n\n  const bo = getBusinessObject(element),\n        calledElement = getCalledElement(bo);\n\n  return calledElement && has(calledElement, 'propagateAllParentVariables') ?\n    calledElement.get('propagateAllParentVariables') :\n    /* default value */ true;\n}\n","import {\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\n\nexport default function InputOutputParameter(props) {\n\n  const {\n    idPrefix,\n    parameter,\n    feel = 'required'\n  } = props;\n\n  const entries = [ {\n    id: idPrefix + '-target',\n    component: TargetProperty,\n    idPrefix,\n    parameter\n  },{\n    id: idPrefix + '-source',\n    component: SourceProperty,\n    idPrefix,\n    parameter,\n    feel\n  } ];\n\n  return entries;\n}\n\nfunction TargetProperty(props) {\n  const {\n    idPrefix,\n    element,\n    parameter\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: parameter,\n      properties: {\n        target: value\n      }\n    });\n  };\n\n  const getValue = (parameter) => {\n    return parameter.target;\n  };\n\n  return TextFieldEntry({\n    element: parameter,\n    id: idPrefix + '-target',\n    label: translate((is(parameter, 'zeebe:Input') ? 'Local variable name' : 'Process variable name')),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction SourceProperty(props) {\n  const {\n    idPrefix,\n    element,\n    parameter,\n    feel\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: parameter,\n      properties: {\n        source: value\n      }\n    });\n  };\n\n  const getValue = (parameter) => {\n    return parameter.source;\n  };\n\n  return BpmnFeelEntry({\n    bpmnElement: element,\n    element: parameter,\n    id: idPrefix + '-source',\n    label: translate('Variable assignment value'),\n    feel,\n    getValue,\n    setValue,\n    debounce\n  });\n}","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  getOutputParameters\n} from '../utils/InputOutputUtil';\n\nimport {\n  getCalledElement\n} from '../utils/CalledElementUtil.js';\n\nimport {\n  has\n} from 'min-dash';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport { ToggleSwitchEntry, isToggleSwitchEntryEdited } from '@bpmn-io/properties-panel';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nexport function OutputPropagationProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:CallActivity')) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'propagateAllChildVariables',\n      component: PropagateAllChildVariables,\n      isEdited: isToggleSwitchEntryEdited\n    }\n  ];\n}\n\nfunction PropagateAllChildVariables(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        bpmnFactory = useService('bpmnFactory'),\n        translate = useService('translate');\n\n  const propagateAllChildVariables = isPropagateAllChildVariables(element);\n\n  const getValue = () => {\n    return propagateAllChildVariables;\n  };\n\n  const setValue = (value) => {\n    const commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    // (1) ensure extension elements\n    let extensionElements = businessObject.get('extensionElements');\n\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure zeebe:calledElement\n    let calledElement = getCalledElement(businessObject);\n\n    if (!calledElement) {\n      calledElement = createElement(\n        'zeebe:CalledElement',\n        { },\n        extensionElements,\n        bpmnFactory);\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), calledElement ]\n          }\n        }\n      });\n\n    }\n\n    // (3) Update propagateAllChildVariables attribute\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: calledElement,\n        properties: {\n          propagateAllChildVariables: value\n        }\n      }\n    });\n\n    // (4) Execute the commands\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return ToggleSwitchEntry({\n    id: 'propagateAllChildVariables',\n    label: translate('Propagate all child process variables'),\n    switcherLabel: propagateAllChildVariables ?\n      translate('On') :\n      translate('Off'),\n    tooltip: <div>\n      <p>{translate('If turned on, all variables from the child process instance will be propagated to the parent process instance.')}</p>\n      <p>{translate('Otherwise, only variables defined via output mappings will be propagated.')}</p>\n    </div>,\n    getValue,\n    setValue\n  });\n}\n\n\n// helper //////////////////////////\n\n/**\n  * Determine default value for propagateAllChildVariables attribute\n  * @param {Object} element representing a bpmn:CallActivity\n  *\n  * @returns {boolean}\n  */\nfunction determinePropAllChildVariablesDefault(element) {\n  const outputParameters = getOutputParameters(element);\n\n  if (outputParameters) {\n    return (outputParameters.length > 0) ? false : true;\n  }\n}\n\n/**\n  * Check whether the propagateAllChildVariables attribute is set on an element.\n  * Note that a default logic will be determine if it is not explicitly set.\n  * @param {Object} element\n  *\n  * @returns {boolean}\n  */\nexport function isPropagateAllChildVariables(element) {\n  if (!is(element, 'bpmn:CallActivity')) {\n    return undefined;\n  }\n\n  const bo = getBusinessObject(element),\n        calledElement = getCalledElement(bo);\n\n  return calledElement && has(calledElement, 'propagateAllChildVariables') ?\n    calledElement.get('propagateAllChildVariables') :\n    determinePropAllChildVariablesDefault(element);\n}\n","import {\n  isAny\n} from 'bpmn-js/lib/features/modeling/util/ModelingUtil';\n\nimport {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\nimport { isZeebeServiceTask } from './ZeebeServiceTaskUtil';\n\nimport {\n  getErrorEventDefinition,\n  getEventDefinition\n} from '../../bpmn/utils/EventDefinitionUtil';\n\nimport { isPropagateAllChildVariables } from '../properties/OutputPropagationProps';\n\nfunction getElements(bo, type, prop) {\n  const elems = getExtensionElementsList(bo, type);\n  return !prop ? elems : (elems[0] || {})[prop] || [];\n}\n\nfunction getParameters(element, prop) {\n  const ioMapping = getIoMapping(element);\n  return (ioMapping && ioMapping.get(prop)) || [];\n}\n\n/**\n * Get a ioMapping from the business object\n *\n * @param {djs.model.Base} element\n *\n * @return {ModdleElement} the ioMapping object\n */\nexport function getIoMapping(element) {\n  const bo = getBusinessObject(element);\n  return (getElements(bo, 'zeebe:IoMapping') || [])[0];\n}\n\n\n/**\n * Return all input parameters existing in the business object, and\n * an empty array if none exist.\n *\n * @param  {djs.model.Base} element\n *\n * @return {Array} a list of input parameter objects\n */\nexport function getInputParameters(element) {\n  return getParameters.apply(this, [ element, 'inputParameters' ]);\n}\n\n/**\n * Return all output parameters existing in the business object, and\n * an empty array if none exist.\n *\n * @param  {djs.model.Base} element\n *\n * @return {Array} a list of output parameter objects\n */\nexport function getOutputParameters(element) {\n  return getParameters.apply(this, [ element, 'outputParameters' ]);\n}\n\nexport function areInputParametersSupported(element) {\n  return isAny(element, [\n    'bpmn:UserTask',\n    'bpmn:SubProcess',\n    'bpmn:CallActivity',\n    'bpmn:BusinessRuleTask',\n    'bpmn:ScriptTask'\n  ]) || isZeebeServiceTask(element) || isSignalThrowEvent(element);\n}\n\nexport function areOutputParametersSupported(element) {\n\n  if (is(element, 'bpmn:EndEvent') && (\n    getErrorEventDefinition(element) || getTerminateEventDefinition(element)\n  )) {\n    return false;\n  }\n\n  if (is(element, 'bpmn:CallActivity')) {\n    return !isPropagateAllChildVariables(element);\n  }\n\n  return isAny(element, [\n    'zeebe:ZeebeServiceTask',\n    'bpmn:UserTask',\n    'bpmn:SubProcess',\n    'bpmn:ReceiveTask',\n    'bpmn:Event',\n    'bpmn:BusinessRuleTask'\n  ]);\n}\n\nfunction getTerminateEventDefinition(element) {\n  return getEventDefinition(element, 'bpmn:TerminateEventDefinition');\n}\n\nexport function createIOMapping(properties, parent, bpmnFactory) {\n  return createElement('zeebe:IoMapping', properties, parent, bpmnFactory);\n}\n\nfunction isSignalThrowEvent(element) {\n  if (!isAny(element, [\n    'bpmn:EndEvent',\n    'bpmn:IntermediateThrowEvent'\n  ])) {\n    return false;\n  }\n\n  return !!getEventDefinition(element, 'bpmn:SignalEventDefinition');\n}\n","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport InputOutputParameter from './InputOutputParameter';\n\nimport {\n  areInputParametersSupported,\n  createIOMapping,\n  getInputParameters,\n  getIoMapping\n} from '../utils/InputOutputUtil';\n\nimport {\n  createElement,\n  nextId\n} from '../../../utils/ElementUtil';\n\nimport { without } from 'min-dash';\n\n\nexport function InputProps({ element, injector }) {\n\n  if (!areInputParametersSupported(element)) {\n    return null;\n  }\n\n  const inputParameters = getInputParameters(element) || [];\n\n  const bpmnFactory = injector.get('bpmnFactory'),\n        commandStack = injector.get('commandStack');\n\n  const items = inputParameters.map((parameter, index) => {\n    const id = element.id + '-input-' + index;\n\n    return {\n      id,\n      label: parameter.get('target') ? <code>{ parameter.get('target') }</code> : '',\n      entries: InputOutputParameter({\n        idPrefix: id,\n        element,\n        parameter,\n        feel: 'optional-default-enabled'\n      }),\n      autoFocusEntry: id + '-target',\n      remove: removeFactory({ commandStack, element, parameter })\n    };\n  });\n\n  return {\n    items,\n    add: addFactory({ element, bpmnFactory, commandStack }),\n  };\n}\n\nfunction removeFactory({ commandStack, element, parameter }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const commands = [];\n\n    const ioMapping = getIoMapping(element);\n\n    if (!ioMapping) {\n      return;\n    }\n\n    const inputParameters = without(ioMapping.get('inputParameters'), parameter);\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: ioMapping,\n        properties: {\n          inputParameters\n        }\n      }\n    });\n\n    const businessObject = getBusinessObject(element),\n          extensionElements = businessObject.get('extensionElements'),\n          values = without(extensionElements.get('values'), ioMapping);\n\n    // remove ioMapping if there are no input/output parameters anymore\n    if (!inputParameters.length && !ioMapping.get('outputParameters').length) {\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values\n          }\n        }\n      });\n    }\n\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n}\n\nfunction addFactory({ element, bpmnFactory, commandStack }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure IoMapping\n    let ioMapping = getIoMapping(element);\n\n    if (!ioMapping) {\n      ioMapping = createIOMapping({\n        inputParameters: [],\n        outputParameters: []\n      }, extensionElements, bpmnFactory);\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), ioMapping ]\n          }\n        }\n      });\n    }\n\n    // (3) create parameter\n    const newParameter = createElement('zeebe:Input', {\n      target: nextId('InputVariable_')\n    }, ioMapping, bpmnFactory);\n\n    // (4) add parameter to list\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: ioMapping,\n        properties: {\n          inputParameters: [ ...ioMapping.get('inputParameters'), newParameter ]\n        }\n      }\n    });\n\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { isFeelEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\nimport { isZeebeServiceTask } from '../utils/ZeebeServiceTaskUtil';\n\n\nexport function JobPriorityDefinitionProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!isZeebeServiceTask(element) && !isProcess(element)) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'jobPriorityDefinitionPriority',\n      component: Priority,\n      isEdited: isFeelEntryEdited\n    }\n  ];\n}\n\nfunction Priority(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return (getJobPriorityDefinition(element) || {}).priority;\n  };\n\n  const setValue = (value) => {\n    const commands = [];\n\n    const businessObject = getElementBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    let jobPriorityDefinition = getJobPriorityDefinition(element);\n\n    // (2) ensure JobPriorityDefinition\n    if (!jobPriorityDefinition) {\n      jobPriorityDefinition = createElement(\n        'zeebe:JobPriorityDefinition',\n        {},\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), jobPriorityDefinition ]\n          }\n        }\n      });\n    }\n\n    // (3) update job priority definition priority\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: jobPriorityDefinition,\n        properties: { priority: value }\n      }\n    });\n\n    // (4) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'jobPriorityDefinitionPriority',\n    label: translate('Priority'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper ///////////////////////\n\nfunction getJobPriorityDefinition(element) {\n  const businessObject = getElementBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:JobPriorityDefinition')[0];\n}\n\nfunction getElementBusinessObject(element) {\n  const businessObject = getBusinessObject(element);\n  return is(element, 'bpmn:Participant') ? businessObject.get('processRef') : businessObject;\n}\n\nfunction isProcess(element) {\n  const businessObject = getBusinessObject(element);\n  return is(element, 'bpmn:Process') ||\n    (is(element, 'bpmn:Participant') && !!businessObject.get('processRef'));\n}\n","import { is } from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  isEventSubProcess\n} from 'bpmn-js/lib/util/DiUtil';\n\nimport {\n  isFeelEntryEdited\n} from '@bpmn-io/properties-panel';\n\nimport { useService } from '../../../hooks';\n\n\nimport {\n  getMessage\n} from '../../bpmn/utils/EventDefinitionUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\n\nexport function MessageProps(props) {\n  const {\n    element\n  } = props;\n\n  const message = getMessage(element);\n\n  const entries = [];\n\n  if (message) {\n    entries.push(\n      {\n        id: 'messageName',\n        component: MessageName,\n        isEdited: isFeelEntryEdited\n      }\n    );\n  }\n\n  if (message && canHaveSubscriptionCorrelationKey(element)) {\n    entries.push({\n      id: 'messageSubscriptionCorrelationKey',\n      component: SubscriptionCorrelationKey,\n      isEdited: isFeelEntryEdited\n    });\n  }\n\n  return entries;\n}\n\n\nfunction MessageName(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const message = getMessage(element);\n\n  const getValue = () => {\n    return message.get('name');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: message,\n        properties: {\n          name: value\n        }\n      }\n    );\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'messageName',\n    label: translate('Name'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction SubscriptionCorrelationKey(props) {\n  const { element } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getCorrelationKey(element);\n  };\n\n  const setValue = (value) => {\n    const commands = [];\n\n    const properties = {\n      correlationKey: value\n    };\n\n    const message = getMessage(element);\n\n    let extensionElements = message.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        message,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: message,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    let subscription = getSubscription(element);\n\n    // (2a) add subscription with correlation key\n    if (!subscription) {\n      subscription = createElement(\n        'zeebe:Subscription',\n        properties,\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), subscription ]\n          }\n        }\n      });\n    } else {\n\n      // (2b) update existing subscription's correlation key\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          properties,\n          moddleElement: subscription\n        }\n      });\n    }\n\n    // (3) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'messageSubscriptionCorrelationKey',\n    label: translate('Subscription correlation key'),\n    feel: 'required',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper ///////////////////////\n\nfunction canHaveSubscriptionCorrelationKey(element) {\n\n  // (1) allow for receive task\n  if (is(element, 'bpmn:ReceiveTask')) {\n    return true;\n  }\n\n  // (2) allow for non start events\n  if (!is(element, 'bpmn:StartEvent')) {\n    return true;\n  }\n\n  // (3) allow for start events inside event sub processes\n  if (is(element, 'bpmn:StartEvent') && isEventSubProcess(element.parent)) {\n    return true;\n  }\n\n  return false;\n}\n\nfunction getCorrelationKey(element) {\n  const subscription = getSubscription(element);\n\n  return subscription ? subscription.get('correlationKey') : '';\n}\n\nfunction getSubscription(element) {\n  const message = getMessage(element);\n  const subscriptions = getSubscriptions(message);\n\n  return subscriptions[0];\n}\n\nfunction getSubscriptions(message) {\n  const extensionElements = getExtensionElementsList(message, 'zeebe:Subscription');\n  return extensionElements;\n}\n","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  TextFieldEntry, isTextFieldEntryEdited,\n  isFeelEntryEdited\n} from '@bpmn-io/properties-panel';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\nimport {\n  createOrUpdateFormalExpression\n} from '../../../utils/FormalExpressionUtil';\n\nimport { useService } from '../../../hooks';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\nexport function MultiInstanceProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!supportsMultiInstances(element)) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'multiInstance-inputCollection',\n      component: InputCollection,\n      isEdited: isFeelEntryEdited\n    },\n    {\n      id: 'multiInstance-inputElement',\n      component: InputElement,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'multiInstance-outputCollection',\n      component: OutputCollection,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'multiInstance-outputElement',\n      component: OutputElement,\n      isEdited: isFeelEntryEdited\n    },\n    {\n      id: 'multiInstance-completionCondition',\n      component: CompletionCondition,\n      isEdited: isFeelEntryEdited\n    }\n  ];\n}\n\nfunction InputCollection(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getProperty(element, 'inputCollection');\n  };\n\n  const setValue = (value) => {\n    return setProperty(element, 'inputCollection', value, commandStack, bpmnFactory);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'multiInstance-inputCollection',\n    label: translate('Input collection'),\n    feel: 'required',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction InputElement(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getProperty(element, 'inputElement');\n  };\n\n  const setValue = (value) => {\n    return setProperty(element, 'inputElement', value, commandStack, bpmnFactory);\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'multiInstance-inputElement',\n    label: translate('Input element'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction OutputCollection(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getProperty(element, 'outputCollection');\n  };\n\n  const setValue = (value) => {\n    return setProperty(element, 'outputCollection', value, commandStack, bpmnFactory);\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'multiInstance-outputCollection',\n    label: translate('Output collection'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction OutputElement(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getProperty(element, 'outputElement');\n  };\n\n  const setValue = (value) => {\n    return setProperty(element, 'outputElement', value, commandStack, bpmnFactory);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'multiInstance-outputElement',\n    label: translate('Output element'),\n    feel: 'required',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction CompletionCondition(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    const completionCondition = getCompletionCondition(element);\n    return completionCondition && completionCondition.get('body');\n  };\n\n  const setValue = (value) => {\n    return createOrUpdateFormalExpression(\n      element,\n      getLoopCharacteristics(element),\n      'completionCondition',\n      value,\n      bpmnFactory,\n      commandStack\n    );\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'multiInstance-completionCondition',\n    label: translate('Completion condition'),\n    feel: 'required',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n// helper ///////////////////////\n\nfunction getLoopCharacteristics(element) {\n  const businessObject = getBusinessObject(element);\n  return businessObject.get('loopCharacteristics');\n}\n\nfunction getZeebeLoopCharacteristics(loopCharacteristics) {\n  const extensionElements = getExtensionElementsList(loopCharacteristics, 'zeebe:LoopCharacteristics');\n\n  return extensionElements && extensionElements[0];\n}\n\nfunction supportsMultiInstances(element) {\n  return !!getLoopCharacteristics(element);\n}\n\nfunction getCompletionCondition(element) {\n  return getLoopCharacteristics(element).get('completionCondition');\n}\n\nfunction getProperty(element, propertyName) {\n  const loopCharacteristics = getLoopCharacteristics(element),\n        zeebeLoopCharacteristics = getZeebeLoopCharacteristics(loopCharacteristics);\n\n  return zeebeLoopCharacteristics && zeebeLoopCharacteristics.get(propertyName);\n}\n\nfunction setProperty(element, propertyName, value, commandStack, bpmnFactory) {\n  const loopCharacteristics = getLoopCharacteristics(element);\n\n  const commands = [];\n\n  // (1) ensure extension elements\n  let extensionElements = loopCharacteristics.get('extensionElements');\n  if (!extensionElements) {\n    extensionElements = createElement(\n      'bpmn:ExtensionElements',\n      { values: [] },\n      loopCharacteristics,\n      bpmnFactory\n    );\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: loopCharacteristics,\n        properties: { extensionElements }\n      }\n    });\n  }\n\n  // (2) ensure zeebe loop characteristics\n  let zeebeLoopCharacteristics = getZeebeLoopCharacteristics(loopCharacteristics);\n  if (!zeebeLoopCharacteristics) {\n    zeebeLoopCharacteristics = createElement(\n      'zeebe:LoopCharacteristics',\n      { },\n      extensionElements,\n      bpmnFactory\n    );\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: extensionElements,\n        properties: {\n          values: [ ...extensionElements.get('values'), zeebeLoopCharacteristics ]\n        }\n      }\n    });\n  }\n\n  // (3) update defined property\n  commands.push({\n    cmd: 'element.updateModdleProperties',\n    context: {\n      element,\n      moddleElement: zeebeLoopCharacteristics,\n      properties: { [ propertyName ]: value }\n    }\n  });\n\n  // (4) commit all updates\n  commandStack.execute('properties-panel.multi-command-executor', commands);\n}\n","import {\n  is,\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  isFeelEntryEdited,\n  isTextFieldEntryEdited,\n  TextFieldEntry\n} from '@bpmn-io/properties-panel';\n\nimport { useService } from '../../../hooks';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\nimport {\n  getExtensionElementsList,\n  addExtensionElements\n} from '../../../utils/ExtensionElementsUtil';\n\nimport { createElement } from '../../../utils/ElementUtil';\n\nexport function OutputCollectionProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:AdHocSubProcess')) {\n    return [];\n  }\n\n  const entries = [\n    {\n      id: 'adHocOutputCollection',\n      component: OutputCollection,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'adHocOutputElement',\n      component: OutputElement,\n      isEdited: isFeelEntryEdited\n    }\n  ];\n\n  return entries;\n}\n\nfunction OutputCollection(props) {\n  const {\n    element,\n    id\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getOutputCollectionProperty(element);\n  };\n\n  const setValue = (value) => {\n    return setOutputCollectionProperty(element, value, commandStack, bpmnFactory);\n  };\n\n  return TextFieldEntry({\n    element,\n    id,\n    label: translate('Output collection'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction OutputElement(props) {\n  const {\n    element,\n    id\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getOutputElementProperty(element);\n  };\n\n  const setValue = (value) => {\n    return setOutputElementProperty(element, value, commandStack, bpmnFactory);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id,\n    label: translate('Output element'),\n    feel: 'required',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction getOutputCollectionProperty(element) {\n  const extensionElement = getExtensionElement(element);\n  return extensionElement && extensionElement.get('outputCollection');\n}\n\nfunction setOutputCollectionProperty(element, value, commandStack, bpmnFactory) {\n\n  const extensionElement = getExtensionElement(element);\n\n  if (!extensionElement) {\n\n    // (1) create extension element\n    const adHoc = createElement(\n      'zeebe:AdHoc',\n      {\n        outputCollection: value\n      },\n      undefined,\n      bpmnFactory\n    );\n\n    const businessObject = getBusinessObject(element);\n    addExtensionElements(element, businessObject, adHoc, bpmnFactory, commandStack);\n\n  } else {\n\n    // (2) update extension element's property\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: extensionElement,\n      properties: {\n        outputCollection: value\n      }\n    });\n  }\n}\n\nfunction getOutputElementProperty(element) {\n  const extensionElement = getExtensionElement(element);\n  return extensionElement && extensionElement.get('outputElement');\n}\n\nfunction setOutputElementProperty(element, value, commandStack, bpmnFactory) {\n\n  const extensionElement = getExtensionElement(element);\n\n  if (!extensionElement) {\n\n    // (1) create extension element\n    const adHoc = createElement(\n      'zeebe:AdHoc',\n      {\n        outputElement: value\n      },\n      undefined,\n      bpmnFactory\n    );\n\n    const businessObject = getBusinessObject(element);\n    addExtensionElements(element, businessObject, adHoc, bpmnFactory, commandStack);\n\n  } else {\n\n    // (2) update extension element's property\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: extensionElement,\n      properties: {\n        outputElement: value\n      }\n    });\n  }\n}\n\nfunction getExtensionElement(element) {\n  const businessObject = getBusinessObject(element);\n  const extensions = getExtensionElementsList(businessObject, 'zeebe:AdHoc');\n  return extensions[0];\n}\n","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport InputOutputParameter from './InputOutputParameter';\n\nimport {\n  areOutputParametersSupported,\n  getOutputParameters,\n  getIoMapping,\n  createIOMapping\n} from '../utils/InputOutputUtil';\n\nimport {\n  createElement,\n  nextId\n} from '../../../utils/ElementUtil';\n\nimport { without } from 'min-dash';\n\n\nexport function OutputProps({ element, injector }) {\n\n  if (!areOutputParametersSupported(element)) {\n    return null;\n  }\n\n  const outputParameters = getOutputParameters(element) || [];\n\n  const bpmnFactory = injector.get('bpmnFactory'),\n        commandStack = injector.get('commandStack');\n\n  const items = outputParameters.map((parameter, index) => {\n    const id = element.id + '-output-' + index;\n\n    return {\n      id,\n      label: parameter.get('target') ? <code>{ parameter.get('target') }</code> : '',\n      entries: InputOutputParameter({\n        idPrefix: id,\n        element,\n        parameter\n      }),\n      autoFocusEntry: id + '-target',\n      remove: removeFactory({ commandStack, element, parameter })\n    };\n  });\n\n  return {\n    items,\n    add: addFactory({ element, bpmnFactory, commandStack }),\n  };\n}\n\nfunction removeFactory({ commandStack, element, parameter }) {\n  return function(event) {\n    event.stopPropagation();\n\n    let commands = [];\n\n    const ioMapping = getIoMapping(element);\n\n    if (!ioMapping) {\n      return;\n    }\n\n    const outputParameters = without(ioMapping.get('outputParameters'), parameter);\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: ioMapping,\n        properties: {\n          outputParameters\n        }\n      }\n    });\n\n    // remove ioMapping if there are no input/output parameters anymore\n    if (!ioMapping.get('inputParameters').length && !outputParameters.length) {\n      const businessObject = getBusinessObject(element),\n            extensionElements = businessObject.get('extensionElements'),\n            values = without(extensionElements.get('values'), ioMapping);\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values\n          }\n        }\n      });\n    }\n\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n}\n\nfunction addFactory({ element, bpmnFactory, commandStack }) {\n  return function(event) {\n    event.stopPropagation();\n\n    let commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure IoMapping\n    let ioMapping = getIoMapping(element);\n\n    if (!ioMapping) {\n      const parent = extensionElements;\n\n      ioMapping = createIOMapping({\n        inputParameters: [],\n        outputParameters: []\n      }, parent, bpmnFactory);\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), ioMapping ]\n          }\n        }\n      });\n    }\n\n    // (3) create parameter\n    const newParameter = createElement('zeebe:Output', {\n      target: nextId('OutputVariable_')\n    }, ioMapping, bpmnFactory);\n\n    // (4) add parameter to list\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: ioMapping,\n        properties: {\n          outputParameters: [ ...ioMapping.get('outputParameters'), newParameter ]\n        }\n      }\n    });\n\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { isFeelEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\n\nexport function PriorityDefinitionProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!isZeebeUserTask(element)) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'priorityDefinitionPriority',\n      component: Priority,\n      isEdited: isFeelEntryEdited\n    }\n  ];\n}\n\nfunction Priority(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return (getPriorityDefinition(element) || {}).priority;\n  };\n\n  const setValue = (value) => {\n    const commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure PriorityDefinition\n    let priorityDefinition = getPriorityDefinition(element);\n    const isNullValue = value === null || value === '' || value === undefined;\n\n    if (priorityDefinition && isNullValue) {\n\n      // (2a) remove priority definition if it exists and priority is set to null\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: extensionElements.get('values').filter(v => v !== priorityDefinition)\n          }\n        }\n      });\n\n    } else if (priorityDefinition && !isNullValue) {\n\n      // (2b) update priority definition if it already exists\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: priorityDefinition,\n          properties: { priority: value }\n        }\n      });\n\n    } else if (!priorityDefinition && !isNullValue) {\n\n      // (2c) create priority definition if it does not exist\n      priorityDefinition = createElement(\n        'zeebe:PriorityDefinition',\n        { priority: value },\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), priorityDefinition ]\n          }\n        }\n      });\n    }\n\n    // (3) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'priorityDefinitionPriority',\n    label: translate('Priority'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper ///////////////////////\n\nexport function getPriorityDefinition(element) {\n  const businessObject = getBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:PriorityDefinition')[0];\n}\n\nfunction isZeebeUserTask(element) {\n  const businessObject = getBusinessObject(element);\n\n  return is(element, 'bpmn:UserTask') && !!getExtensionElementsList(businessObject, 'zeebe:UserTask')[0];\n}","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  is,\n  isAny\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { SelectEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  getExtensionElementsList, removeExtensionElements\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport { useService } from '../../../hooks';\n\nimport { without } from 'min-dash';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nexport const SCRIPT_IMPLEMENTATION_OPTION = 'script',\n      JOB_WORKER_IMPLEMENTATION_OPTION = 'jobWorker',\n      DEFAULT_IMPLEMENTATION_OPTION = '';\n\n\nexport function ScriptImplementationProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:ScriptTask')) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'scriptImplementation',\n      component: ScriptImplementation,\n      isEdited: () => isScriptImplementationEdited(element)\n    }\n  ];\n}\n\nfunction ScriptImplementation(props) {\n  const {\n    element,\n    id\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    if (getScript(element)) {\n      return SCRIPT_IMPLEMENTATION_OPTION;\n    }\n\n    if (getTaskDefinition(element)) {\n      return JOB_WORKER_IMPLEMENTATION_OPTION;\n    }\n\n    return DEFAULT_IMPLEMENTATION_OPTION;\n  };\n\n  /**\n   * Set value by either creating a zeebe:script or a zeebe:taskDefintion\n   * extension element. Note that they must not exist both at the same time, however\n   * this will be ensured by a bpmn-js behavior (and not by the propPanel).\n   */\n  const setValue = (value) => {\n    let extensionElement, extensionElementType;\n\n    if (value === SCRIPT_IMPLEMENTATION_OPTION) {\n      extensionElement = getScript(element);\n      extensionElementType = 'zeebe:Script';\n    } else if (value === JOB_WORKER_IMPLEMENTATION_OPTION) {\n      extensionElement = getTaskDefinition(element);\n      extensionElementType = 'zeebe:TaskDefinition';\n    } else {\n      resetElement(element, commandStack);\n    }\n\n    if (!extensionElement && extensionElementType) {\n      extensionElement = createElement(\n        extensionElementType,\n        { },\n        null,\n        bpmnFactory\n      );\n\n      updateExtensionElements(element, extensionElement, bpmnFactory, commandStack);\n    }\n  };\n\n  const getOptions = () => {\n\n    const options = [\n      { value: DEFAULT_IMPLEMENTATION_OPTION, label: translate('<none>') },\n      { value: SCRIPT_IMPLEMENTATION_OPTION, label: translate('FEEL expression') },\n      { value: JOB_WORKER_IMPLEMENTATION_OPTION, label: translate('Job worker') }\n    ];\n\n    return options;\n  };\n\n  return SelectEntry({\n    element,\n    id,\n    label: translate('Implementation'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\n\n// helper ///////////////////////\n\nfunction getTaskDefinition(element) {\n  const businessObject = getBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:TaskDefinition')[0];\n}\n\nfunction getScript(element) {\n  const businessObject = getBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:Script')[0];\n}\n\nfunction getTaskHeaders(element) {\n  const businessObject = getBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:TaskHeaders');\n}\n\nfunction isScriptImplementationEdited(element) {\n  return getTaskDefinition(element) || getScript(element);\n}\n\nfunction resetElement(element, commandStack) {\n  const businessObject = getBusinessObject(element);\n  const taskDefinition = getTaskDefinition(element);\n  const taskHeaders = getTaskHeaders(element);\n  const script = getScript(element);\n\n  if (taskDefinition) {\n    const removed = [ taskDefinition, taskHeaders ].filter(Boolean);\n\n    removeExtensionElements(element, businessObject, removed, commandStack);\n\n    return;\n  }\n\n  if (script) {\n    removeExtensionElements(element, businessObject, script, commandStack);\n  }\n}\n\nfunction updateExtensionElements(element, extensionElementToAdd, bpmnFactory, commandStack) {\n  const businessObject = getBusinessObject(element);\n\n  const commands = [];\n\n  let extensionElements = businessObject.get('extensionElements');\n  let extensionElementValues;\n\n  // (1) create bpmn:ExtensionElements if it doesn't exist\n  if (!extensionElements) {\n    extensionElements = createElement(\n      'bpmn:ExtensionElements',\n      {\n        values: []\n      },\n      businessObject,\n      bpmnFactory\n    );\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: businessObject,\n        properties: {\n          extensionElements\n        }\n      }\n    });\n  }\n\n  extensionElementToAdd.$parent = extensionElements;\n\n  // (2) remove old exension element from extensionElements\n  if (is(extensionElementToAdd, 'zeebe:TaskDefinition')) {\n    extensionElementValues = without(extensionElements.get('values'), getScript(element));\n  } else if (is(extensionElementToAdd, 'zeebe:Script')) {\n    const matcher = extension => isAny(extension, [ 'zeebe:TaskDefinition', 'zeebe:TaskHeaders' ]);\n\n    extensionElementValues = without(extensionElements.get('values'), matcher);\n  }\n\n  // (3) add extension element to list\n  commands.push({\n    cmd: 'element.updateModdleProperties',\n    context: {\n      element,\n      moddleElement: extensionElements,\n      properties: {\n        values: [ ...extensionElementValues, extensionElementToAdd ]\n      }\n    }\n  });\n\n  commandStack.execute('properties-panel.multi-command-executor', commands);\n}","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  TextFieldEntry, isTextFieldEntryEdited,\n  isFeelEntryEdited\n} from '@bpmn-io/properties-panel';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport { useService } from '../../../hooks';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\n\n\nexport function ScriptProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:ScriptTask') || !getScript(element)) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'resultVariable',\n      component: ResultVariable,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'scriptExpression',\n      component: Expression,\n      isEdited: isFeelEntryEdited\n    }\n  ];\n}\n\nfunction Expression(props) {\n  const {\n    element,\n    id\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return (getScript(element) || {}).get('expression');\n  };\n\n  const setValue = (value) => {\n    const commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure script\n    let script = getScript(element);\n\n    if (!script) {\n      script = createElement(\n        'zeebe:Script',\n        { },\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), script ]\n          }\n        }\n      });\n    }\n\n    // (3) update script.expression\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: script,\n        properties: { expression: value }\n      }\n    });\n\n    // (4) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id,\n    label: translate('FEEL expression'),\n    feel: 'required',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ResultVariable(props) {\n  const {\n    element,\n    id\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return (getScript(element) || {}).resultVariable;\n  };\n\n  const setValue = (value) => {\n    const commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure script\n    let script = getScript(element);\n\n    if (!script) {\n      script = createElement(\n        'zeebe:Script',\n        { },\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), script ]\n          }\n        }\n      });\n    }\n\n    // (3) update script.resultVariable\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: script,\n        properties: { resultVariable: value }\n      }\n    });\n\n    // (4) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return TextFieldEntry({\n    element,\n    id,\n    label: translate('Result variable'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper ///////////////////////\n\nfunction getScript(element) {\n  const businessObject = getBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:Script')[0];\n}","import { isFeelEntryEdited } from '@bpmn-io/properties-panel';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getSignal,\n  isSignalSupported\n} from '../../../utils/EventDefinitionUtil';\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\nexport const EMPTY_OPTION = '';\nexport const CREATE_NEW_OPTION = 'create-new';\n\n/**\n * @returns {Entry[]}\n */\nexport function SignalProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!isSignalSupported(element)) {\n    return [];\n  }\n\n  const signal = getSignal(element);\n\n  let entries = [];\n\n  if (signal) {\n    entries = [\n      ...entries,\n      {\n        id: 'signalName',\n        component: SignalName,\n        isEdited: isFeelEntryEdited\n      },\n    ];\n  }\n\n  return entries;\n}\n\nfunction SignalName(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const signal = getSignal(element);\n\n  const getValue = () => {\n    return signal.get('name');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: signal,\n        properties: {\n          name: value\n        }\n      }\n    );\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'signalName',\n    label: translate('Name'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  isFeelEntryEdited,\n  isSelectEntryEdited,\n  isTextFieldEntryEdited\n} from '@bpmn-io/properties-panel';\n\nimport Binding, { getBindingType } from './shared/Binding';\nimport VersionTag from './shared/VersionTag.js';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  getCalledElement,\n  getProcessId\n} from '../utils/CalledElementUtil.js';\n\nimport { useService } from '../../../hooks';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\nimport { withProps } from '../../HOCs/withProps.js';\n\nconst CalledElementBinding = withProps(Binding, { type: 'zeebe:CalledElement' }),\n      CalledElementVersionTag = withProps(VersionTag, { type: 'zeebe:CalledElement' });\n\n\nexport function TargetProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:CallActivity')) {\n    return [];\n  }\n\n  const entries = [\n    {\n      id: 'targetProcessId',\n      component: TargetProcessId,\n      isEdited: isFeelEntryEdited\n    },\n    {\n      id: 'bindingType',\n      component: CalledElementBinding,\n      isEdited: isSelectEntryEdited\n    }\n  ];\n\n  if (getBindingType(element, 'zeebe:CalledElement') === 'versionTag') {\n    entries.push({\n      id: 'versionTag',\n      component: CalledElementVersionTag,\n      isEdited: isTextFieldEntryEdited\n    });\n  }\n\n  return entries;\n}\n\nfunction TargetProcessId(props) {\n  const {\n    element,\n    id\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        bpmnFactory = useService('bpmnFactory'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getProcessId(element);\n  };\n\n  const setValue = (value) => {\n    const commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    // (1) ensure extension elements\n    let extensionElements = businessObject.get('extensionElements');\n\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure zeebe:calledElement\n    let calledElement = getCalledElement(businessObject);\n\n    if (!calledElement) {\n      calledElement = createElement(\n        'zeebe:CalledElement',\n        { },\n        extensionElements,\n        bpmnFactory);\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), calledElement ]\n          }\n        }\n      });\n\n    }\n\n    // (3) Update processId attribute\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: calledElement,\n        properties: {\n          processId: value\n        }\n      }\n    });\n\n    // (4) Execute the commands\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id,\n    label: translate('Process ID'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { isFeelEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport { useService } from '../../../hooks';\n\nimport {\n  isZeebeServiceTask\n} from '../utils/ZeebeServiceTaskUtil';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\n\nexport function TaskDefinitionProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!isZeebeServiceTask(element)) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'taskDefinitionType',\n      component: TaskDefinitionType,\n      isEdited: isFeelEntryEdited\n    },\n    {\n      id: 'taskDefinitionRetries',\n      component: TaskDefinitionRetries,\n      isEdited: isFeelEntryEdited\n    }\n  ];\n}\n\nfunction TaskDefinitionType(props) {\n  const {\n    element,\n    id\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return (getTaskDefinition(element) || {}).type;\n  };\n\n  const setValue = (value) => {\n    const commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure task definition\n    let taskDefinition = getTaskDefinition(element);\n\n    if (!taskDefinition) {\n      taskDefinition = createElement(\n        'zeebe:TaskDefinition',\n        { },\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), taskDefinition ]\n          }\n        }\n      });\n    }\n\n    // (3) update task definition type\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: taskDefinition,\n        properties: { type: value }\n      }\n    });\n\n    // (4) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id,\n    label: translate('Job type'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction TaskDefinitionRetries(props) {\n  const {\n    element,\n    id\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return (getTaskDefinition(element) || {}).retries;\n  };\n\n  const setValue = (value) => {\n    let commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure task definition\n    let taskDefinition = getTaskDefinition(element);\n\n    if (!taskDefinition) {\n      taskDefinition = createElement(\n        'zeebe:TaskDefinition',\n        { },\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), taskDefinition ]\n          }\n        }\n      });\n    }\n\n    // (3) update task definition retries\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: taskDefinition,\n        properties: { retries: value }\n      }\n    });\n\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id,\n    label: translate('Retries'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper ///////////////////////\n\nfunction getTaskDefinition(element) {\n  const businessObject = getBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:TaskDefinition')[0];\n}\n","import { SelectEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport { ListenerType, Retries } from './shared/Listener';\n\n// ensure types are in logical order\nexport const EVENT_TYPE = [\n  'creating',\n  'assigning',\n  'updating',\n  'completing',\n  'canceling',\n];\n\nexport const EVENT_TO_LABEL = {\n  creating: 'Creating',\n  assigning: 'Assigning',\n  updating: 'Updating',\n  completing: 'Completing',\n  canceling: 'Canceling',\n};\n\nexport function TaskListenerEntries(props) {\n\n  const {\n    idPrefix,\n    listener\n  } = props;\n\n  return [\n    {\n      id: idPrefix + '-eventType',\n      component: EventType,\n      idPrefix,\n      listener,\n      eventTypes: EVENT_TYPE\n    },\n    {\n      id: idPrefix + '-listenerType',\n      component: ListenerType,\n      idPrefix,\n      listener\n    },\n    {\n      id: idPrefix + '-retries',\n      component: Retries,\n      idPrefix,\n      listener\n    }\n  ];\n}\n\nfunction EventType(props) {\n  const {\n    idPrefix,\n    element,\n    listener,\n    eventTypes\n  } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n\n  const getOptions = () => {\n    return eventTypes.map(eventType => ({\n      value: eventType,\n      label: translate(EVENT_TO_LABEL[eventType])\n    }));\n  };\n\n  const setValue = (value) => {\n    modeling.updateModdleProperties(element, listener, {\n      eventType: value\n    });\n  };\n\n  const getValue = () => {\n    return listener.get('eventType');\n  };\n\n  return SelectEntry({\n    element,\n    id: idPrefix + '-eventType',\n    label: translate('Event type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\n\n","import {\n  getBusinessObject,\n  is,\n  isAny\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { without } from 'min-dash';\n\nimport { TaskListenerEntries, EVENT_TYPE, EVENT_TO_LABEL } from './TaskListener';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport { isZeebeUserTask } from '../utils/FormUtil';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nexport function TaskListenersProps({ element, injector }) {\n  let businessObject = getRelevantBusinessObject(element);\n\n  // not allowed in empty pools\n  if (!businessObject) {\n    return;\n  }\n\n  if (!isZeebeUserTask(element)) {\n    return;\n  }\n\n  const moddle = injector.get('moddle');\n  if (!canHaveTaskListeners(businessObject, moddle)) {\n    return;\n  }\n\n  const listeners = getListenersList(businessObject) || [];\n\n  const bpmnFactory = injector.get('bpmnFactory'),\n        commandStack = injector.get('commandStack'),\n        modeling = injector.get('modeling'),\n        translate = injector.get('translate');\n\n  const items = listeners.map((listener, index) => {\n    const id = element.id + '-taskListener-' + index;\n    const type = listener.get('type') || '<no type>';\n    const eventType = listener.get('eventType');\n    const label = translate('{eventType}: {type}', {\n      eventType: EVENT_TO_LABEL[eventType] || eventType,\n      type\n    });\n\n    return {\n      id,\n      label,\n      entries: TaskListenerEntries({\n        idPrefix: id,\n        listener\n      }),\n      autoFocusEntry: id + '-eventType',\n      remove: removeFactory({ modeling, element, listener })\n    };\n  });\n\n  return {\n    items,\n    add: addFactory({ bpmnFactory, commandStack, element })\n  };\n}\n\nfunction removeFactory({ modeling, element, listener }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const businessObject = getRelevantBusinessObject(element);\n    const container = getTaskListenersContainer(businessObject);\n\n    if (!container) {\n      return;\n    }\n\n    const listeners = without(container.get('listeners'), listener);\n\n    modeling.updateModdleProperties(element, container, { listeners });\n  };\n}\n\nfunction addFactory({ bpmnFactory, commandStack, element }) {\n  return function(event) {\n    event.stopPropagation();\n\n    let commands = [];\n\n    const businessObject = getRelevantBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure zeebe:TaskListeners\n    let taskListeners = getTaskListenersContainer(businessObject);\n\n    if (!taskListeners) {\n      const parent = extensionElements;\n\n      taskListeners = createElement('zeebe:TaskListeners', {\n        listeners: []\n      }, parent, bpmnFactory);\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), taskListeners ]\n          }\n        }\n      });\n    }\n\n    // (3) create zeebe:TaskListener\n    const TaskListener = createElement(\n      'zeebe:TaskListener', getDefaultListenerProps(), taskListeners, bpmnFactory\n    );\n\n    // (4) add TaskListener to list\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: taskListeners,\n        properties: {\n          listeners: [ ...taskListeners.get('listeners'), TaskListener ]\n        }\n      }\n    });\n\n    // (5) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n}\n\n\n// helper //////////////////\n\nfunction getRelevantBusinessObject(element) {\n  let businessObject = getBusinessObject(element);\n\n  if (is(element, 'bpmn:Participant')) {\n    return businessObject.get('processRef');\n  }\n\n  return businessObject;\n}\n\nfunction getTaskListenersContainer(element) {\n  const TaskListeners = getExtensionElementsList(element, 'zeebe:TaskListeners');\n\n  return TaskListeners && TaskListeners[0];\n}\n\nfunction getListenersList(element) {\n  const TaskListeners = getTaskListenersContainer(element);\n\n  return TaskListeners && TaskListeners.get('listeners');\n}\n\nfunction canHaveTaskListeners(bo, moddle) {\n  const TaskListenersDescriptor = moddle.getTypeDescriptor('zeebe:TaskListeners');\n\n  return isAny(bo, TaskListenersDescriptor.meta.allowedIn);\n}\n\nfunction getDefaultListenerProps() {\n  return {\n    eventType: EVENT_TYPE[0]\n  };\n}","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { isFeelEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\n\nexport function TaskScheduleProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:UserTask')) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'taskScheduleDueDate',\n      component: DueDate,\n      isEdited: isFeelEntryEdited\n    },\n    {\n      id: 'taskScheduleFollowUpDate',\n      component: FollowUpDate,\n      isEdited: isFeelEntryEdited\n    }\n  ];\n}\n\nfunction DueDate(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    const taskSchedule = getTaskSchedule(element);\n\n    if (!taskSchedule) {\n      return;\n    }\n\n    return taskSchedule.get('dueDate');\n  };\n\n  const setValue = (value) => {\n    let commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure zeebe:TaskSchedule\n    let taskSchedule = getTaskSchedule(element);\n\n    if (!taskSchedule) {\n      taskSchedule = createElement(\n        'zeebe:TaskSchedule',\n        { },\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), taskSchedule ]\n          }\n        }\n      });\n    }\n\n    // (3) update zeebe:dueDate\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: taskSchedule,\n        properties: { dueDate: value }\n      }\n    });\n\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'taskScheduleDueDate',\n    label: translate('Due date'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction FollowUpDate(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    const taskSchedule = getTaskSchedule(element);\n\n    if (!taskSchedule) {\n      return;\n    }\n\n    return taskSchedule.get('followUpDate');\n  };\n\n  const setValue = (value) => {\n    let commands = [];\n\n    const businessObject = getBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure zeebe:TaskSchedule\n    let taskSchedule = getTaskSchedule(element);\n\n    if (!taskSchedule) {\n      taskSchedule = createElement(\n        'zeebe:TaskSchedule',\n        { },\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), taskSchedule ]\n          }\n        }\n      });\n    }\n\n    // (3) update zeebe:followUpDate\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: taskSchedule,\n        properties: { followUpDate: value }\n      }\n    });\n\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'taskScheduleFollowUpDate',\n    label: translate('Follow up date'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper ///////////////////////\n\nexport function getTaskSchedule(element) {\n  const businessObject = getBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:TaskSchedule')[0];\n}\n","import {\n  getBusinessObject,\n  is,\n  isAny\n} from 'bpmn-js/lib/util/ModelUtil';\n\n\nexport function getTimerEventDefinition(element) {\n  const businessObject = getBusinessObject(element);\n\n  return businessObject.get('eventDefinitions').find(eventDefinition => {\n    return is(eventDefinition, 'bpmn:TimerEventDefinition');\n  });\n}\n\n/**\n * Check whether a given timer expression type is supported for a given element.\n *\n * @param {string} type\n * @param {Element|ModdleElement} element\n *\n * @return {boolean}\n */\nexport function isTimerExpressionTypeSupported(type, element) {\n  const businessObject = getBusinessObject(element);\n\n  switch (type) {\n  case 'timeDate':\n    return isAny(element, [\n      'bpmn:BoundaryEvent',\n      'bpmn:IntermediateCatchEvent',\n      'bpmn:StartEvent'\n    ]);\n\n  case 'timeCycle':\n    if (is(element, 'bpmn:StartEvent') && (!hasParentEventSubProcess(businessObject)) || !isInterrupting(businessObject)) {\n      return true;\n    }\n\n    if (is(element, 'bpmn:BoundaryEvent') && !isInterrupting(businessObject)) {\n      return true;\n    }\n\n    return false;\n\n  case 'timeDuration':\n    if (isAny(element, [\n      'bpmn:BoundaryEvent',\n      'bpmn:IntermediateCatchEvent'\n    ])) {\n      return true;\n    }\n\n    if (is(element, 'bpmn:StartEvent') && hasParentEventSubProcess(businessObject)) {\n      return true;\n    }\n\n    return false;\n\n  default:\n    return false;\n  }\n}\n\nfunction isInterrupting(businessObject) {\n  if (is(businessObject, 'bpmn:BoundaryEvent')) {\n    return businessObject.get('cancelActivity') !== false;\n  }\n\n  return businessObject.get('isInterrupting') !== false;\n}\n\nfunction hasParentEventSubProcess(businessObject) {\n  const parent = businessObject.$parent;\n\n  return parent && is(parent, 'bpmn:SubProcess') && parent.get('triggeredByEvent');\n}","import { getBusinessObject } from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  isTimerSupported,\n  getTimerEventDefinition,\n  getTimerDefinitionType\n} from '../../../utils/EventDefinitionUtil';\n\nimport {\n  isFeelEntryEdited,\n  SelectEntry, isSelectEntryEdited,\n} from '@bpmn-io/properties-panel';\n\nimport { BpmnFeelEntry } from '../../../entries/BpmnFeelEntry';\n\nimport { isTimerExpressionTypeSupported } from '../utils/TimerUtil';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function TimerProps(props) {\n  const {\n    element,\n    injector\n  } = props;\n\n  const translate = injector.get('translate');\n\n  const businessObject = getBusinessObject(element),\n        timerEventDefinition = getTimerEventDefinition(businessObject),\n        timerEventDefinitionType = getTimerDefinitionType(timerEventDefinition);\n\n  // (1) Only show for supported elements\n  if (!isTimerSupported(element)) {\n    return [];\n  }\n\n  const timerOptions = getTimerOptions(element, translate);\n\n  const entries = [];\n\n  entries.push({\n    id: 'timerEventDefinitionType',\n    component: TimerEventDefinitionType,\n    isEdited: isSelectEntryEdited,\n    options: timerOptions\n  });\n\n  if (timerEventDefinitionType) {\n    entries.push({\n      id: 'timerEventDefinitionValue',\n      component: TimerEventDefinitionValue,\n      isEdited: isFeelEntryEdited,\n      timerEventDefinitionType: timerEventDefinitionType || timerOptions[0].value\n    });\n  }\n\n  return entries;\n}\n\nfunction getTimerOptions(element, translate) {\n\n  const options = [];\n\n  if (isTimerExpressionTypeSupported('timeDate', element)) {\n    options.push({\n      value: 'timeDate',\n      label: translate('Date')\n    });\n  }\n\n  if (isTimerExpressionTypeSupported('timeDuration', element)) {\n    options.push({\n      value: 'timeDuration',\n      label: translate('Duration')\n    });\n  }\n\n  if (isTimerExpressionTypeSupported('timeCycle', element)) {\n    options.push({\n      value: 'timeCycle',\n      label: translate('Cycle')\n    });\n  }\n\n  return options;\n}\n\n\n/**\n * TimerEventDefinitionType - Generic select entry allowing to select a specific\n * timerEventDefintionType. To be used together with timerEventDefinitionValue.\n *\n * @param  {type} props\n * @return {SelectEntry}\n */\nfunction TimerEventDefinitionType(props) {\n  const {\n    element,\n    options\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        bpmnFactory = useService('bpmnFactory'),\n        translate = useService('translate');\n\n  const businessObject = getBusinessObject(element),\n        timerEventDefinition = getTimerEventDefinition(businessObject),\n        timerEventDefinitionType = getTimerDefinitionType(timerEventDefinition);\n\n  const getValue = () => {\n    return timerEventDefinitionType || '';\n  };\n\n  const setValue = (value) => {\n\n    // (1) Check if value is different to current type\n    if (value === timerEventDefinitionType) {\n      return;\n    }\n\n    // (2) Create empty formalExpression element\n    const formalExpression = createTimerFormalExpression(bpmnFactory, timerEventDefinition);\n\n    // (3) Set the value for selected timerEventDefinitionType\n    const newProps = {\n      timeDuration: undefined,\n      timeDate: undefined,\n      timeCycle: undefined\n    };\n\n    if (value !== '') {\n      newProps[value] = formalExpression;\n    }\n\n    // (4) Execute businessObject update\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: timerEventDefinition,\n      properties: newProps\n    });\n  };\n\n  const getOptions = (element) => {\n    return [\n      { value: '', label: translate('<none>') },\n      ...options\n    ];\n  };\n\n  return SelectEntry({\n    element,\n    id: 'timerEventDefinitionType',\n    label: translate('Type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\n/**\n * TimerEventDefinitionValue - Generic textField entry allowing to specify the\n * timerEventDefintionValue based on the set timerEventDefintionType. To be used\n * together with timerEventDefinitionType.\n *\n * @param {object} props\n * @param {ModdleElement} props.element\n * @param {'timeCycle'|'timeDate'|'timeDuration'} props.timerEventDefinitionType?\n * @param {string} props.label?\n * @return {TextFieldEntry}\n */\nfunction TimerEventDefinitionValue(props) {\n  const {\n    element,\n    label,\n    timerEventDefinitionType\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput'),\n        bpmnFactory = useService('bpmnFactory');\n\n  const businessObject = getBusinessObject(element),\n        timerEventDefinition = getTimerEventDefinition(businessObject),\n        timerEventFormalExpression = timerEventDefinition.get(timerEventDefinitionType);\n\n  const getValue = () => {\n    return timerEventFormalExpression && timerEventFormalExpression.get('body');\n  };\n\n  const setValue = (value) => {\n    if (!timerEventFormalExpression) {\n      const expression = createTimerFormalExpression(bpmnFactory, timerEventDefinition);\n      expression.set('body', value);\n\n      commandStack.execute('element.updateModdleProperties', {\n        element,\n        moddleElement: timerEventDefinition,\n        properties: {\n          [ timerEventDefinitionType ]: expression\n        }\n      });\n\n      return;\n    }\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: timerEventFormalExpression,\n      properties: {\n        body: value\n      }\n    });\n  };\n\n  return BpmnFeelEntry({\n    element,\n    id: 'timerEventDefinitionValue',\n    label: label || translate('Value'),\n    feel: 'optional',\n    getValue,\n    setValue,\n    debounce,\n    tooltip: getTimerEventDefinitionValueDescription(timerEventDefinitionType, translate)\n  });\n}\n\n\n\n// helper //////////////////////////\n\nfunction createTimerFormalExpression(bpmnFactory, eventDefinition) {\n  const formalExpression = bpmnFactory.create('bpmn:FormalExpression', { body: undefined });\n  formalExpression.$parent = eventDefinition;\n\n  return formalExpression;\n}\n\nfunction getTimerEventDefinitionValueDescription(timerDefinitionType, translate) {\n  switch (timerDefinitionType) {\n  case 'timeDate':\n    return (<div>\n      <p>{ translate('A specific point in time defined as ISO 8601 combined date and time representation.') }</p>\n      <ul>\n        <li><code>2019-10-01T12:00:00Z</code> - { translate('UTC time') }</li>\n        <li><code>2019-10-02T08:09:40+02:00</code> - { translate('UTC plus 2 hours zone offset') }</li>\n      </ul>\n      <a href=\"https://docs.camunda.io/docs/reference/bpmn-processes/timer-events/timer-events#time-date\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Timer documentation') }>{ translate('How to configure a timer') }</a>\n    </div>);\n\n  case 'timeCycle':\n    return (<div>\n      <p>{ translate('A cycle defined as ISO 8601 repeating intervals format, or a cron expression.') }</p>\n      <ul>\n        <li><code>R5/PT10S</code> - { translate('every 10 seconds, up to 5 times') }</li>\n        <li><code>R/P1D</code> - { translate('every day, infinitely') }</li>\n        <li><code>0 0 9-17 * * MON-FRI</code> - { translate('every hour on the hour from 9-5 p.m. UTC Monday-Friday') }</li>\n      </ul>\n      <a href=\"https://docs.camunda.io/docs/reference/bpmn-processes/timer-events/timer-events#time-cycle\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Timer documentation') }>{ translate('How to configure a timer') }</a>\n    </div>);\n\n  case 'timeDuration':\n    return (<div>\n      <p>{ translate('A time duration defined as ISO 8601 durations format.') }</p>\n      <ul>\n        <li><code>PT15S</code> - { translate('15 seconds') }</li>\n        <li><code>PT1H30M</code> - { translate('1 hour and 30 minutes') }</li>\n        <li><code>P14D</code> - { translate('14 days') }</li>\n      </ul>\n      <a href=\"https://docs.camunda.io/docs/reference/bpmn-processes/timer-events/timer-events#time-duration\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Timer documentation') }>{ translate('How to configure a timer') }</a>\n    </div>);\n  }\n}","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { SelectEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  addExtensionElements,\n  getExtensionElementsList,\n  removeExtensionElements\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport { useService } from '../../../hooks';\n\nexport const ZEEBE_USER_TASK_IMPLEMENTATION_OPTION = 'zeebeUserTask',\n      JOB_WORKER_IMPLEMENTATION_OPTION = 'jobWorker';\n\n\nexport function UserTaskImplementationProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:UserTask')) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'userTaskImplementation',\n      component: UserTaskImplementation,\n      isEdited: () => isUserTaskImplementationEdited(element)\n    }\n  ];\n}\n\nfunction UserTaskImplementation(props) {\n  const {\n    element,\n    id\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    if (getZeebeUserTask(element)) {\n      return ZEEBE_USER_TASK_IMPLEMENTATION_OPTION;\n    }\n\n    return JOB_WORKER_IMPLEMENTATION_OPTION;\n  };\n\n  /**\n   * Set value by either creating or removing zeebe:userTask extension element.\n   * Note that they must not exist both at the same time, however this\n   * will be ensured by a camunda-bpmn-js behavior (and not by the propPanel).\n   */\n  const setValue = (value) => {\n    if (value === ZEEBE_USER_TASK_IMPLEMENTATION_OPTION) {\n      createZeebeUserTask(element, bpmnFactory, commandStack);\n    } else if (value === JOB_WORKER_IMPLEMENTATION_OPTION) {\n      removeZeebeUserTask(element, commandStack);\n    }\n  };\n\n  const getOptions = () => {\n\n    const options = [\n      { value: ZEEBE_USER_TASK_IMPLEMENTATION_OPTION, label: translate('Camunda user task') },\n      { value: JOB_WORKER_IMPLEMENTATION_OPTION, label: translate('Job worker') }\n    ];\n\n    return options;\n  };\n\n  return SelectEntry({\n    element,\n    id,\n    label: translate('Type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\n\n// helper ///////////////////////\nfunction createZeebeUserTask(element, bpmnFactory, commandStack) {\n  const businessObject = getBusinessObject(element);\n\n  const zeebeUserTask = createElement(\n    'zeebe:UserTask',\n    {},\n    businessObject,\n    bpmnFactory\n  );\n\n  addExtensionElements(element, businessObject, zeebeUserTask, bpmnFactory, commandStack);\n}\n\nfunction removeZeebeUserTask(element, commandStack) {\n  const zeebeUserTask = getZeebeUserTask(element);\n\n  removeExtensionElements(element, getBusinessObject(element), zeebeUserTask, commandStack);\n}\n\nfunction isUserTaskImplementationEdited(element) {\n  return !getZeebeUserTask(element);\n}\n\nfunction getZeebeUserTask(element) {\n  const businessObject = getBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:UserTask')[0];\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport { createElement } from '../../../utils/ElementUtil';\n\nimport { getExtensionElementsList } from '../../../utils/ExtensionElementsUtil';\n\n\nexport function VersionTagProps(props) {\n  const {\n    element\n  } = props;\n\n  const businessObject = getBusinessObject(element);\n\n  if (!is(element, 'bpmn:Process') &&\n      !(is(element, 'bpmn:Participant') && businessObject.get('processRef'))) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'versionTag',\n      component: VersionTag,\n      isEdited: isTextFieldEntryEdited\n    },\n  ];\n}\n\nfunction VersionTag(props) {\n  const { element } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const debounce = useService('debounceInput');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    const versionTag = getVersionTag(element);\n\n    if (versionTag) {\n      return versionTag.get('value');\n    }\n  };\n\n  const setValue = (value) => {\n    let commands = [];\n\n    const businessObject = getProcess(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure version tag\n    let versionTag = getVersionTag(element);\n\n    if (!versionTag) {\n      versionTag = createElement(\n        'zeebe:VersionTag',\n        {},\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), versionTag ]\n          }\n        }\n      });\n    }\n\n    // (3) update version tag value\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: versionTag,\n        properties: { value }\n      }\n    });\n\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'versionTag',\n    label: translate('Version tag'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper //////////////////\n\nfunction getProcess(element) {\n  return is(element, 'bpmn:Process') ?\n    getBusinessObject(element) :\n    getBusinessObject(element).get('processRef');\n}\n\nfunction getVersionTag(element) {\n  const businessObject = getProcess(element);\n\n  return getExtensionElementsList(businessObject, 'zeebe:VersionTag')[ 0 ];\n}","import { TextFieldEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../hooks';\n\n\nexport default function ExtensionProperty(props) {\n\n  const {\n    idPrefix,\n    property\n  } = props;\n\n  const entries = [ {\n    id: idPrefix + '-name',\n    component: NameProperty,\n    idPrefix,\n    property\n  },{\n    id: idPrefix + '-value',\n    component: ValueProperty,\n    idPrefix,\n    property\n  } ];\n\n  return entries;\n}\n\nfunction NameProperty(props) {\n  const {\n    idPrefix,\n    element,\n    property\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: property,\n      properties: {\n        name: value\n      }\n    });\n  };\n\n  const getValue = () => {\n    return property.name;\n  };\n\n  return TextFieldEntry({\n    element: property,\n    id: idPrefix + '-name',\n    label: translate('Name'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ValueProperty(props) {\n  const {\n    idPrefix,\n    element,\n    property\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: property,\n      properties: {\n        value\n      }\n    });\n  };\n\n  const getValue = () => {\n    return property.value;\n  };\n\n  return TextFieldEntry({\n    element: property,\n    id: idPrefix + '-value',\n    label: translate('Value'),\n    getValue,\n    setValue,\n    debounce\n  });\n}","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport ExtensionProperty from './ExtensionProperty';\n\nimport {\n  createElement\n} from '../../utils/ElementUtil';\n\nimport {\n  getExtensionElementsList\n} from '../../utils/ExtensionElementsUtil';\n\nimport { without } from 'min-dash';\n\n\nexport function ExtensionPropertiesProps({ element, injector, namespace = 'camunda' }) {\n  let businessObject = getRelevantBusinessObject(element);\n\n  // do not offer for empty pools\n  if (!businessObject) {\n    return;\n  }\n\n  const properties = getPropertiesList(businessObject, namespace) || [];\n\n  const bpmnFactory = injector.get('bpmnFactory'),\n        commandStack = injector.get('commandStack');\n\n  const items = properties.map((property, index) => {\n    const id = element.id + '-extensionProperty-' + index;\n\n    return {\n      id,\n      label: property.get('name') || '',\n      entries: ExtensionProperty({\n        idPrefix: id,\n        element,\n        property\n      }),\n      autoFocusEntry: id + '-name',\n      remove: removeFactory({ commandStack, element, property, namespace })\n    };\n  });\n\n  return {\n    items,\n    add: addFactory({ bpmnFactory, commandStack, element, namespace }),\n  };\n}\n\nfunction removeFactory({ commandStack, element, property, namespace }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const commands = [];\n\n    const businessObject = getRelevantBusinessObject(element);\n    const extensionElements = businessObject.get('extensionElements');\n    const properties = getProperties(businessObject, namespace);\n\n    if (!properties) {\n      return;\n    }\n\n    const propertyName = getPropertyName(namespace);\n\n    const values = without(properties.get(propertyName), property);\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: properties,\n        properties: {\n          [ propertyName ]: values\n        }\n      }\n    });\n\n    // remove camunda:Properties if there are no properties anymore\n    if (!values.length) {\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: without(extensionElements.get('values'), properties)\n          }\n        }\n      });\n    }\n\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n}\n\nfunction addFactory({ bpmnFactory, commandStack, element, namespace }) {\n  return function(event) {\n    event.stopPropagation();\n\n    let commands = [];\n\n    const businessObject = getRelevantBusinessObject(element);\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    const propertyName = getPropertyName(namespace);\n\n    // (2) ensure camunda:Properties\n    let properties = getProperties(businessObject, namespace);\n\n    if (!properties) {\n      const parent = extensionElements;\n\n      properties = createElement(`${ namespace }:Properties`, {\n        [ propertyName ]: []\n      }, parent, bpmnFactory);\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), properties ]\n          }\n        }\n      });\n    }\n\n    // (3) create camunda:Property\n    const property = createElement(`${ namespace }:Property`, {}, properties, bpmnFactory);\n\n    // (4) add property to list\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: properties,\n        properties: {\n          [ propertyName ]: [ ...properties.get(propertyName), property ]\n        }\n      }\n    });\n\n    // (5) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n}\n\n\n// helper //////////////////\n\nexport function getRelevantBusinessObject(element) {\n  let businessObject = getBusinessObject(element);\n\n  if (is(element, 'bpmn:Participant')) {\n    return businessObject.get('processRef');\n  }\n\n  return businessObject;\n}\n\nfunction getPropertyName(namespace = 'camunda') {\n  if (namespace === 'zeebe') {\n    return 'properties';\n  }\n\n  return 'values';\n}\n\nexport function getProperties(element, namespace = 'camunda') {\n  const businessObject = getRelevantBusinessObject(element);\n  return getExtensionElementsList(businessObject, `${namespace}:Properties`)[ 0 ];\n}\n\nexport function getPropertiesList(element, namespace = 'camunda') {\n  const businessObject = getRelevantBusinessObject(element);\n  const properties = getProperties(businessObject, namespace);\n\n  return properties && properties.get(getPropertyName(namespace));\n}","import { Group, ListGroup } from '@bpmn-io/properties-panel';\n\nimport { findIndex } from 'min-dash';\n\nimport {\n  ActiveElementsProps,\n  AdHocCompletionProps,\n  AdHocSubProcessImplementationProps,\n  AssignmentDefinitionProps,\n  BusinessRuleImplementationProps,\n  CalledDecisionProps,\n  ConditionProps,\n  EventConditionProps,\n  ErrorProps,\n  EscalationProps,\n  ExecutionListenersProps,\n  FormProps,\n  HeaderProps,\n  JobPriorityDefinitionProps,\n  InputPropagationProps,\n  InputProps,\n  MessageProps,\n  MultiInstanceProps,\n  OutputCollectionProps,\n  OutputPropagationProps,\n  OutputProps,\n  PriorityDefinitionProps,\n  ScriptImplementationProps,\n  ScriptProps,\n  SignalProps,\n  TargetProps,\n  TaskDefinitionProps,\n  TaskListenersProps,\n  TaskScheduleProps,\n  TimerProps,\n  UserTaskImplementationProps,\n  VersionTagProps\n} from './properties';\n\nimport { ExtensionPropertiesProps } from '../shared/ExtensionPropertiesProps';\n\nimport {\n  isMessageEndEvent,\n  isMessageThrowEvent,\n  isZeebeServiceTask\n} from './utils/ZeebeServiceTaskUtil';\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\nconst LOW_PRIORITY = 500;\n\nconst ZEEBE_GROUPS = [\n  BusinessRuleImplementationGroup,\n  CalledDecisionGroup,\n  ScriptImplementationGroup,\n  ScriptGroup,\n  OutputCollectionGroup,\n  AdHocSubProcessImplementationGroup,\n  UserTaskImplementationGroup,\n  TaskDefinitionGroup,\n  JobPriorityDefinitionGroup,\n  AssignmentDefinitionGroup,\n  ActiveElementsGroup,\n  FormGroup,\n  ConditionGroup,\n  EventConditionGroup,\n  TargetGroup,\n  InputPropagationGroup,\n  InputGroup,\n  OutputPropagationGroup,\n  OutputGroup,\n  HeaderGroup,\n  TaskListenersGroup,\n  ExecutionListenersGroup,\n  ExtensionPropertiesGroup\n];\n\nexport default class ZeebePropertiesProvider {\n\n  constructor(propertiesPanel, injector) {\n    propertiesPanel.registerProvider(LOW_PRIORITY, this);\n\n    this._injector = injector;\n  }\n\n  getGroups(element) {\n    return (groups) => {\n\n      // (1) add zeebe specific groups\n      groups = groups.concat(this._getGroups(element));\n\n      // (2) update existing groups with zeebe specific properties\n      updateGeneralGroup(groups, element);\n      updateErrorGroup(groups, element);\n      updateEscalationGroup(groups, element);\n      updateMessageGroup(groups, element);\n      updateSignalGroup(groups, element);\n      updateTimerGroup(groups, element, this._injector);\n      updateMultiInstanceGroup(groups, element);\n      updateAdHocCompletionGroup(groups, element);\n\n      // (3) remove groups when not applicable\n      groups = removeMessageGroup(groups, element);\n      groups = removeCompletionGroup(groups, element);\n\n      return groups;\n    };\n  }\n\n  _getGroups(element) {\n    const groups = ZEEBE_GROUPS.map(createGroup => createGroup(element, this._injector));\n\n    return groups.filter(group => group !== null);\n  }\n\n}\n\nZeebePropertiesProvider.$inject = [ 'propertiesPanel', 'injector' ];\n\n\nfunction AdHocSubProcessImplementationGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'adHocSubProcessImplementation',\n    label: translate('Implementation'),\n    entries: [\n      ...AdHocSubProcessImplementationProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction CalledDecisionGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'calledDecision',\n    label: translate('Called decision'),\n    entries: [\n      ...CalledDecisionProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction ScriptGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'script',\n    label: translate('Script'),\n    entries: [\n      ...ScriptProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction TaskDefinitionGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'taskDefinition',\n    label: translate('Task definition'),\n    entries: [\n      ...TaskDefinitionProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction JobPriorityDefinitionGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'jobPriorityDefinition',\n    label: translate('Job priority'),\n    entries: [\n      ...JobPriorityDefinitionProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction InputGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'inputs',\n    label: translate('Input mapping'),\n    component: ListGroup,\n    ...InputProps({ element, injector })\n  };\n\n  return group.items ? group : null;\n}\n\nfunction OutputGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'outputs',\n    label: translate('Output mapping'),\n    component: ListGroup,\n    ...OutputProps({ element, injector })\n  };\n\n  return group.items ? group : null;\n}\n\nfunction ConditionGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'condition',\n    label: translate('Condition'),\n    entries: [\n      ...ConditionProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction FormGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'form',\n    label: translate('Form'),\n    entries: [\n      ...FormProps({ element, injector })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction TargetGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'calledElement',\n    label: translate('Called element'),\n    entries: [\n      ...TargetProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction HeaderGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'headers',\n    label: translate('Headers'),\n    component: ListGroup,\n    ...HeaderProps({ element, injector })\n  };\n\n  return group.items ? group : null;\n}\n\nfunction OutputPropagationGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'outputPropagation',\n    label: translate('Output propagation'),\n    entries: [\n      ...OutputPropagationProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction InputPropagationGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'inputPropagation',\n    label: translate('Input propagation'),\n    entries: [\n      ...InputPropagationProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction BusinessRuleImplementationGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'businessRuleImplementation',\n    label: translate('Implementation'),\n    entries: [\n      ...BusinessRuleImplementationProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction ScriptImplementationGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'scriptImplementation',\n    label: translate('Implementation'),\n    entries: [\n      ...ScriptImplementationProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction UserTaskImplementationGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'userTaskImplementation',\n    label: translate('Implementation'),\n    entries: [\n      ...UserTaskImplementationProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction AssignmentDefinitionGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'assignmentDefinition',\n    label: translate('Assignment'),\n    entries: [\n      ...AssignmentDefinitionProps({ element }),\n      ...TaskScheduleProps({ element }),\n      ...PriorityDefinitionProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction OutputCollectionGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'outputCollection',\n    label: translate('Output collection'),\n    entries: [\n      ...OutputCollectionProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction ActiveElementsGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'activeElements',\n    label: translate('Active elements'),\n    entries: [\n      ...ActiveElementsProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction ExecutionListenersGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Execution listeners'),\n    id: 'Zeebe__ExecutionListeners',\n    component: ListGroup,\n    ...ExecutionListenersProps({ element, injector })\n  };\n\n  if (group.items) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction TaskListenersGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Task listeners'),\n    id: 'Zeebe__TaskListeners',\n    component: ListGroup,\n    ...TaskListenersProps({ element, injector })\n  };\n\n  if (group.items) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction ExtensionPropertiesGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Extension properties'),\n    id: 'Zeebe__ExtensionProperties',\n    component: ListGroup,\n    ...ExtensionPropertiesProps({ element, injector, namespace: 'zeebe' })\n  };\n\n  if (group.items) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction EventConditionGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    id: 'event-condition',\n    label: translate('Condition'),\n    entries: [\n      ...EventConditionProps({ element })\n    ],\n    component: Group\n  };\n\n  return group.entries.length ? group : null;\n}\n\nfunction updateGeneralGroup(groups, element) {\n\n  const generalGroup = findGroup(groups, 'general');\n\n  if (!generalGroup) {\n    return;\n  }\n\n  const { entries } = generalGroup;\n\n  const executableEntry = findIndex(entries, (entry) => entry.id === 'isExecutable');\n  const insertIndex = executableEntry >= 0 ? executableEntry : entries.length;\n\n  entries.splice(insertIndex, 0, ...VersionTagProps({ element }));\n}\n\nfunction updateErrorGroup(groups, element) {\n  const errorGroup = findGroup(groups, 'error');\n\n  if (!errorGroup) {\n    return;\n  }\n\n  errorGroup.entries = replaceEntries(\n    errorGroup.entries,\n    ErrorProps({ element })\n  );\n}\n\nfunction updateEscalationGroup(groups, element) {\n  const escalationGroup = findGroup(groups, 'escalation');\n\n  if (!escalationGroup) {\n    return;\n  }\n\n  escalationGroup.entries = replaceEntries(\n    escalationGroup.entries,\n    EscalationProps({ element })\n  );\n}\n\nfunction updateSignalGroup(groups, element) {\n  const signalGroup = findGroup(groups, 'signal');\n\n  if (!signalGroup) {\n    return;\n  }\n\n  signalGroup.entries = replaceEntries(\n    signalGroup.entries,\n    SignalProps({ element })\n  );\n}\n\nfunction updateMessageGroup(groups, element) {\n  const messageGroup = findGroup(groups, 'message');\n\n  if (!messageGroup) {\n    return;\n  }\n\n  messageGroup.entries = replaceEntries(\n    messageGroup.entries,\n    MessageProps({ element })\n  );\n}\n\n// overwrite bpmn generic timerEventDefinition group with zeebe-specific one\nfunction updateTimerGroup(groups, element, injector) {\n  const timerEventGroup = findGroup(groups, 'timer');\n\n  if (!timerEventGroup) {\n    return;\n  }\n\n  timerEventGroup.entries = [\n    ...TimerProps({ element, injector })\n  ];\n}\n\n// overwrite bpmn generic multiInstance group with zeebe-specific one\nfunction updateMultiInstanceGroup(groups, element) {\n  const multiInstanceGroup = findGroup(groups, 'multiInstance');\n\n  if (!multiInstanceGroup) {\n    return;\n  }\n\n  multiInstanceGroup.entries = [\n    ...MultiInstanceProps({ element })\n  ];\n}\n\n// overwrite bpmn generic adHoc completion condition with zeebe-specific one\nfunction updateAdHocCompletionGroup(groups, element) {\n  const adHocCompletionGroup = findGroup(groups, 'adHocCompletion');\n  if (!adHocCompletionGroup) {\n    return;\n  }\n\n  adHocCompletionGroup.entries = replaceEntriesPreservingOrder(\n    adHocCompletionGroup.entries,\n    AdHocCompletionProps({ element })\n  );\n\n  // reorder groups to move adHoc completion after active elements\n  const activeElementsGroup = findGroup(groups, 'activeElements');\n  if (activeElementsGroup) {\n    moveGroupAfter(groups, adHocCompletionGroup, activeElementsGroup);\n  }\n}\n\n// remove message group from Message End Event & Message Throw Event\nfunction removeMessageGroup(groups, element) {\n  const messageGroup = findGroup(groups, 'message');\n\n  if (isMessageEndEvent(element) || isMessageThrowEvent(element)) {\n\n    groups = groups.filter(g => g != messageGroup);\n  }\n  return groups;\n}\n\n// remove completion group if AdHoc SubProcess is implemented as job worker\nfunction removeCompletionGroup(groups, element) {\n  if (isZeebeServiceTask(element)) {\n    return groups.filter(group => group.id !== 'adHocCompletion');\n  }\n\n  return groups;\n}\n\n\n// helper /////////////////////\n\nfunction findGroup(groups, id) {\n  return groups.find(g => g.id === id);\n}\n\n/**\n * Replace entries with the same ID.\n *\n * @param {Entry[]} oldEntries\n * @param {Entry[]} newEntries\n *\n * @returns {Entry[]} combined entries\n */\nfunction replaceEntries(oldEntries, newEntries) {\n\n  const filteredEntries = oldEntries.filter(oldEntry => (\n    !newEntries.find(newEntry => newEntry.id === oldEntry.id)\n  ));\n\n  return [\n    ...filteredEntries,\n    ...newEntries\n  ];\n}\n\n/**\n * Replace entries with the same ID, preserving original order and adding new entries at the end.\n *\n * @param {Entry[]} oldEntries\n * @param {Entry[]} newEntries\n *\n * @returns {Entry[]} combined entries\n */\nfunction replaceEntriesPreservingOrder(oldEntries, newEntries) {\n  const indexedNewEntries = indexEntriesById(newEntries);\n  const indexedOldEntries = indexEntriesById(oldEntries);\n\n  const result = [];\n\n  // iterate original entries and replace with new ones if ID matches\n  oldEntries.forEach((oldEntry) => {\n    const newEntryIndex = indexedNewEntries[oldEntry.id];\n    if (newEntryIndex !== undefined) {\n      result.push(newEntries[newEntryIndex]);\n    } else {\n      result.push(oldEntry);\n    }\n  });\n\n  // append remaining new entries\n  newEntries.forEach((newEntry) => {\n    if (indexedOldEntries[newEntry.id] === undefined) {\n      result.push(newEntry);\n    }\n  });\n\n  return result;\n}\n\nfunction indexEntriesById(entries) {\n  return entries.reduce((index, entry, idx) => {\n    index[entry.id] = idx;\n    return index;\n  }, {});\n}\n\n/**\n * Move a group after a reference group. Assumes that both groups are present.\n */\nfunction moveGroupAfter(groups, groupToMove, referenceGroup) {\n  const groupIndex = groups.indexOf(groupToMove);\n  groups.splice(groupIndex, 1);\n\n  const referenceIndex = groups.indexOf(referenceGroup);\n  groups.splice(referenceIndex + 1, 0, groupToMove);\n}\n","import ZeebePropertiesProvider from './ZeebePropertiesProvider';\n\nexport default {\n  __init__: [ 'zeebePropertiesProvider' ],\n  zeebePropertiesProvider: [ 'type', ZeebePropertiesProvider ]\n};","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  CheckboxEntry,\n  isCheckboxEntryEdited\n} from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\n\nexport function AsynchronousContinuationsProps(props) {\n  const {\n    element\n  } = props;\n\n  const checkboxIsEditedInverted = (node) => {\n    return node && !node.checked;\n  };\n\n  const businessObject = getBusinessObject(element);\n\n  const entries = [];\n\n  if (is(element, 'camunda:AsyncCapable')) {\n    entries.push(\n      {\n        id: 'asynchronousContinuationBefore',\n        component: AsynchronousContinuationBefore,\n        isEdited: isCheckboxEntryEdited\n      },\n      {\n        id: 'asynchronousContinuationAfter',\n        component: AsynchronousContinuationAfter,\n        isEdited: isCheckboxEntryEdited\n      }\n    );\n\n    if (isAsyncBefore(businessObject) || isAsyncAfter(businessObject)) {\n      entries.push(\n        {\n          id: 'exclusive',\n          component: Exclusive,\n          isEdited: checkboxIsEditedInverted\n        }\n      );\n    }\n  }\n\n  return entries;\n}\n\nfunction AsynchronousContinuationBefore(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return isAsyncBefore(businessObject);\n  };\n\n  const setValue = (value) => {\n\n    // overwrite the legacy `async` property, we will use the more explicit `asyncBefore`\n    const props = {\n      'camunda:asyncBefore': value,\n      'camunda:async': undefined\n    };\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: props\n    });\n\n  };\n\n  return CheckboxEntry({\n    element,\n    id: 'asynchronousContinuationBefore',\n    label: translate('Before'),\n    getValue,\n    setValue\n  });\n}\n\nfunction AsynchronousContinuationAfter(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return isAsyncAfter(businessObject);\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:asyncAfter': value,\n      }\n    });\n  };\n\n  return CheckboxEntry({\n    element,\n    id: 'asynchronousContinuationAfter',\n    label: translate('After'),\n    getValue,\n    setValue\n  });\n}\n\nfunction Exclusive(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return isExclusive(businessObject);\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:exclusive': value,\n      }\n    });\n  };\n\n  return CheckboxEntry({\n    element,\n    id: 'exclusive',\n    label: translate('Exclusive'),\n    getValue,\n    setValue\n  });\n}\n\n\n// helper //////////////////\n\n/**\n * Returns true if the attribute 'camunda:asyncBefore' is set\n * to true.\n *\n * @param  {ModdleElement} bo\n *\n * @return {boolean} a boolean value\n */\nfunction isAsyncBefore(bo) {\n  return !!(bo.get('camunda:asyncBefore') || bo.get('camunda:async'));\n}\n\n/**\n * Returns true if the attribute 'camunda:asyncAfter' is set\n * to true.\n *\n * @param  {ModdleElement} bo\n *\n * @return {boolean} a boolean value\n */\nfunction isAsyncAfter(bo) {\n  return !!bo.get('camunda:asyncAfter');\n}\n\n/**\n * Returns true if the attribute 'camunda:exclusive' is set\n * to true.\n *\n * @param  {ModdleElement} bo\n *\n * @return {boolean} a boolean value\n */\nfunction isExclusive(bo) {\n  return !!bo.get('camunda:exclusive');\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { SelectEntry, isSelectEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nexport const EMPTY_OPTION = '';\n\n\nexport function BusinessKeyProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:StartEvent') || !hasFormFields(element)) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'businessKey',\n      component: BusinessKey,\n      isEdited: isSelectEntryEdited\n    },\n  ];\n}\n\nfunction BusinessKey(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const formData = getFormData(element);\n\n  const getValue = () => {\n    return formData.get('camunda:businessKey') || '';\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: formData,\n      properties: {\n        'camunda:businessKey': value\n      }\n    });\n  };\n\n  const getOptions = () => {\n\n    const options = [\n      { value: EMPTY_OPTION, label: translate('<none>') }\n    ];\n\n    const fields = formData.get('fields');\n\n    fields.forEach((field) => {\n      const id = field.get('camunda:id');\n\n      if (id) {\n        options.push({\n          value: id,\n          label: id\n        });\n      }\n    });\n\n    return options;\n  };\n\n  return SelectEntry({\n    element,\n    id: 'businessKey',\n    label: translate('Key'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\n\n// helper ///////////////////\n\nfunction getFormData(element) {\n  const businessObject = getBusinessObject(element);\n\n  return getExtensionElementsList(businessObject, 'camunda:FormData')[ 0 ];\n}\n\nfunction hasFormFields(element) {\n  const businessObject = getBusinessObject(element);\n\n  const formData = getFormData(businessObject);\n\n  return formData && formData.get('camunda:fields').length;\n}","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  TextFieldEntry,\n  isTextFieldEntryEdited,\n  SelectEntry,\n  isSelectEntryEdited\n} from '@bpmn-io/properties-panel';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\n/**\n * Defines entries for calling a BPMN diagram.\n * Cf. https://docs.camunda.org/manual/7.15/reference/bpmn20/subprocesses/call-activity/#calledelement-tenant-id\n */\nexport function CalledBpmnProps(props) {\n  const { element } = props;\n\n  const entries = [\n    {\n      id: 'calledElement',\n      component: CalledElement,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'calledElementBinding',\n      component: CalledElementBinding,\n      isEdited: isSelectEntryEdited\n    },\n    {\n      id: 'calledElementTenantId',\n      component: CalledElementTenantId,\n      isEdited: isTextFieldEntryEdited\n    }\n  ];\n\n  const binding = getBusinessObject(element).get('camunda:calledElementBinding');\n  if (binding === 'version') {\n    entries.splice(-1, 0,\n      {\n        id: 'calledElementVersion',\n        component: CalledElementVersion,\n        isEdited: isTextFieldEntryEdited\n      }\n    );\n  } else if (binding === 'versionTag') {\n    entries.splice(-1, 0,\n      {\n        id: 'calledElementVersionTag',\n        component: CalledElementVersionTag,\n        isEdited: isTextFieldEntryEdited\n      }\n    );\n  }\n\n  return entries;\n}\n\nfunction CalledElement(props) {\n  const { element } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getBusinessObject(element).get('calledElement');\n  };\n\n  const setValue = value => {\n    modeling.updateProperties(element, { calledElement: value || '' });\n  };\n\n  return <TextFieldEntry\n    element={ element }\n    id=\"calledElement\"\n    label={ translate('Called element') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n  />;\n}\n\nfunction CalledElementBinding(props) {\n  const { element } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    return getBusinessObject(element).get('camunda:calledElementBinding') || 'latest';\n  };\n\n  const setValue = value => {\n    modeling.updateProperties(element,\n      {\n        calledElementBinding: value === 'latest' ? undefined : value,\n        calledElementVersion: undefined,\n        calledElementVersionTag: undefined\n      }\n    );\n  };\n\n  const getOptions = () => ([\n    { value: 'latest', label: translate('latest') },\n    { value: 'deployment', label: translate('deployment') },\n    { value: 'version', label: translate('version') },\n    { value: 'versionTag', label: translate('version tag') }\n  ]);\n\n\n  return <SelectEntry\n    element={ element }\n    id=\"calledElementBinding\"\n    label={ translate('Binding') }\n    getValue={ getValue }\n    setValue={ setValue }\n    getOptions={ getOptions }\n  />;\n}\n\nfunction CalledElementVersion(props) {\n  const { element } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getBusinessObject(element).get('camunda:calledElementVersion');\n  };\n\n  const setValue = value => {\n    modeling.updateProperties(element, { calledElementVersion: value });\n  };\n\n  return <TextFieldEntry\n    element={ element }\n    id=\"calledElementVersion\"\n    label={ translate('Version') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n  />;\n}\n\nfunction CalledElementVersionTag(props) {\n  const { element } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getBusinessObject(element).get('camunda:calledElementVersionTag');\n  };\n\n  const setValue = value => {\n    modeling.updateProperties(element, { calledElementVersionTag: value });\n  };\n\n  return <TextFieldEntry\n    element={ element }\n    id=\"calledElementVersionTag\"\n    label={ translate('Version tag') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n  />;\n}\n\nfunction CalledElementTenantId(props) {\n  const { element } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getBusinessObject(element).get('camunda:calledElementTenantId');\n  };\n\n  const setValue = value => {\n    modeling.updateProperties(element, { calledElementTenantId: value });\n  };\n\n  return <TextFieldEntry\n    element={ element }\n    id=\"calledElementTenantId\"\n    label={ translate('Tenant ID') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n  />;\n}\n","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  TextFieldEntry,\n  isTextFieldEntryEdited,\n  SelectEntry,\n  isSelectEntryEdited\n} from '@bpmn-io/properties-panel';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * Defines entries for calling a CMMN diagram.\n * Cf. https://docs.camunda.org/manual/7.15/reference/bpmn20/subprocesses/call-activity/#create-a-case-instance\n */\nexport function CalledCmmnProps(props) {\n  const { element } = props;\n\n  const entries = [\n    {\n      id: 'calledElementCaseRef',\n      component: CaseRef,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'calledElementCaseBinding',\n      component: CaseBinding,\n      isEdited: isSelectEntryEdited\n    },\n    {\n      id: 'calledElementCaseTenantId',\n      component: CaseTenantId,\n      isEdited: isTextFieldEntryEdited\n    }\n  ];\n\n  if (getBusinessObject(element).get('camunda:caseBinding') === 'version') {\n    entries.splice(-1, 0,\n      {\n        id: 'calledElementCaseVersion',\n        component: CaseVersion,\n        isEdited: isTextFieldEntryEdited\n      }\n    );\n  }\n\n  return entries;\n}\n\nfunction CaseRef(props) {\n  const { element } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getBusinessObject(element).get('camunda:caseRef');\n  };\n\n  const setValue = value => {\n    modeling.updateProperties(element, { caseRef: value || '' });\n  };\n\n  return <TextFieldEntry\n    element={ element }\n    id=\"calledElementCaseRef\"\n    label={ translate('Case ref') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n  />;\n}\n\nfunction CaseBinding(props) {\n  const { element } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    return getBusinessObject(element).get('camunda:caseBinding') || 'latest';\n  };\n\n  const setValue = value => {\n    modeling.updateProperties(element,\n      {\n        caseBinding: value === 'latest' ? undefined : value,\n        caseVersion: undefined\n      }\n    );\n  };\n\n  const getOptions = () => ([\n    { value: 'latest', label: translate('latest') },\n    { value: 'deployment', label: translate('deployment') },\n    { value: 'version', label: translate('version') }\n  ]);\n\n\n  return <SelectEntry\n    element={ element }\n    id=\"calledElementCaseBinding\"\n    label={ translate('Binding') }\n    getValue={ getValue }\n    setValue={ setValue }\n    getOptions={ getOptions }\n  />;\n}\n\nfunction CaseVersion(props) {\n  const { element } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getBusinessObject(element).get('camunda:caseVersion');\n  };\n\n  const setValue = value => {\n    modeling.updateProperties(element, { caseVersion: value });\n  };\n\n  return <TextFieldEntry\n    element={ element }\n    id=\"calledElementCaseVersion\"\n    label={ translate('Version') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n  />;\n}\n\nfunction CaseTenantId(props) {\n  const { element } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getBusinessObject(element).get('camunda:caseTenantId');\n  };\n\n  const setValue = value => {\n    modeling.updateProperties(element, { caseTenantId: value });\n  };\n\n  return <TextFieldEntry\n    element={ element }\n    id=\"calledElementCaseTenantId\"\n    label={ translate('Tenant ID') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n  />;\n}\n","import {\n  TextFieldEntry,\n  isTextFieldEntryEdited,\n  SelectEntry,\n  isSelectEntryEdited\n} from '@bpmn-io/properties-panel';\nimport { getBusinessObject } from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nexport function DelegateVariableMappingProps(props) {\n  const { element } = props;\n\n  const entries = [\n    {\n      id: 'calledElementDelegateVariableMappingType',\n      component: DelegateVariableMappingType,\n      isEdited: isSelectEntryEdited\n    }\n  ];\n\n  const type = getDelegateVariableMappingType(element);\n  if (type === 'class') {\n    entries.push({\n      id: 'calledElementVariableMappingClass',\n      component: VariableMappingClass,\n      isEdited: isTextFieldEntryEdited\n    });\n  } else if (type === 'delegateExpression') {\n    entries.push({\n      id: 'calledElementVariableMappingDelegateExpression',\n      component: VariableMappingDelegateExpression,\n      isEdited: isTextFieldEntryEdited\n    });\n  }\n\n  return entries;\n}\n\nconst DEFAULT_PROPS = {\n  'camunda:variableMappingClass': undefined,\n  'camunda:variableMappingDelegateExpression': undefined\n};\n\nfunction DelegateVariableMappingType(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    return getDelegateVariableMappingType(element);\n  };\n\n  const setValue = (value) => {\n    const properties = { ...DEFAULT_PROPS };\n\n    if (value === 'class') {\n      properties['camunda:variableMappingClass'] = '';\n    } else if (value === 'delegateExpression') {\n      properties['camunda:variableMappingDelegateExpression'] = '';\n    }\n\n    commandStack.execute('element.updateProperties', { element, properties });\n  };\n\n  const getOptions = () => ([\n    { value: 'none', label: translate('<none>') },\n    { value: 'class', label: translate('Class') },\n    { value: 'delegateExpression', label: translate('Delegate expression') }\n  ]);\n\n  return <SelectEntry\n    element={ element }\n    id=\"calledElementDelegateVariableMappingType\"\n    label={ translate('Delegate Variable Mapping') }\n    getValue={ getValue }\n    setValue={ setValue }\n    getOptions={ getOptions }\n  />;\n}\n\nfunction VariableMappingDelegateExpression(props) {\n  const { element } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getBusinessObject(element).get('camunda:variableMappingDelegateExpression');\n  };\n\n  const setValue = value => {\n    modeling.updateProperties(element, {\n      variableMappingDelegateExpression: value || '',\n      variableMappingClass: undefined\n    });\n  };\n\n  return <TextFieldEntry\n    element={ element }\n    id=\"calledElementVariableMappingDelegateExpression\"\n    label={ translate('Delegate Expression') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n  />;\n}\n\nfunction VariableMappingClass(props) {\n  const { element } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getBusinessObject(element).get('camunda:variableMappingClass');\n  };\n\n  const setValue = value => {\n    modeling.updateProperties(element, {\n      variableMappingDelegateExpression: undefined,\n      variableMappingClass: value || '',\n    });\n  };\n\n  return <TextFieldEntry\n    element={ element }\n    id=\"calledElementVariableMappingClass\"\n    label={ translate('Delegate Class') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n  />;\n}\n\n\n// helper /////\n\nfunction getDelegateVariableMappingType(element) {\n  const businessObject = getBusinessObject(element);\n\n  if (businessObject.get('camunda:variableMappingClass') !== undefined) {\n    return 'class';\n  } else if (businessObject.get('camunda:variableMappingDelegateExpression') !== undefined) {\n    return 'delegateExpression';\n  }\n\n  return 'none';\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  addExtensionElements,\n  getExtensionElementsList,\n  removeExtensionElements\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  TextFieldEntry,\n  isTextFieldEntryEdited,\n  CheckboxEntry,\n  isCheckboxEntryEdited,\n  SelectEntry,\n  isSelectEntryEdited\n} from '@bpmn-io/properties-panel';\n\nimport { CalledBpmnProps } from './CalledBpmnProps';\nimport { CalledCmmnProps } from './CalledCmmnProps';\nimport { DelegateVariableMappingProps } from './DelegateVariableMappingProps';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * Defines bpmn:CallActivity properties.\n * Cf. https://docs.camunda.org/manual/7.15/reference/bpmn20/subprocesses/call-activity/\n */\nexport function CallActivityProps(props) {\n  const { element } = props;\n\n  if (!is(element, 'bpmn:CallActivity')) {\n    return [];\n  }\n\n  const entries = [];\n\n  entries.push({\n    id: 'calledElementType',\n    component: CalledElementType,\n    isEdited: isSelectEntryEdited\n  });\n\n  const calledElementType = getCalledElementType(element);\n\n  if (calledElementType === 'bpmn') {\n    entries.push(\n      ...CalledBpmnProps({ element }),\n      ...BusinessKeyProps({ element }),\n      ...DelegateVariableMappingProps({ element })\n    );\n  } else if (calledElementType === 'cmmn') {\n    entries.push(\n      ...CalledCmmnProps({ element }),\n      ...BusinessKeyProps({ element })\n    );\n  } else {\n    entries.push(...BusinessKeyProps({ element }));\n  }\n\n  return entries;\n}\n\nconst DEFAULT_PROPS = {\n  calledElement: undefined,\n  'camunda:calledElementBinding': undefined,\n  'camunda:calledElementVersion': undefined,\n  'camunda:calledElementTenantId': undefined,\n  'camunda:variableMappingClass' : undefined,\n  'camunda:variableMappingDelegateExpression' : undefined,\n  'camunda:caseRef': undefined,\n  'camunda:caseBinding': undefined,\n  'camunda:caseVersion': undefined,\n  'camunda:caseTenantId': undefined\n};\n\nconst DEFAULT_BUSINESS_KEY = '#{execution.processBusinessKey}';\n\nfunction CalledElementType(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    return getCalledElementType(element);\n  };\n\n  const setValue = (value) => {\n    const properties = { ...DEFAULT_PROPS };\n\n    if (value === 'bpmn') {\n      properties['calledElement'] = '';\n    } else if (value === 'cmmn') {\n      properties['camunda:caseRef'] = '';\n    }\n\n    commandStack.execute('element.updateProperties', { element, properties });\n  };\n\n  const getOptions = () => ([\n    { value: '', label: translate('<none>') },\n    { value: 'bpmn', label: translate('BPMN') },\n    { value: 'cmmn', label: translate('CMMN') }\n  ]);\n\n  return <SelectEntry\n    element={ element }\n    id=\"calledElementType\"\n    label={ translate('Type') }\n    getValue={ getValue }\n    setValue={ setValue }\n    getOptions={ getOptions }\n  />;\n}\n\nfunction BusinessKeyProps(props) {\n  const { element } = props;\n\n  const entries = [\n    {\n      id: 'calledElementBusinessKey',\n      component: BusinessKey,\n      isEdited: isCheckboxEntryEdited\n    }\n  ];\n\n  if (hasBusinessKey(element)) {\n    entries.push({\n      id: 'calledElementBusinessKeyExpression',\n      component: BusinessKeyExpression,\n      isEdited: isTextFieldEntryEdited\n    });\n  }\n\n  return entries;\n}\n\nfunction BusinessKey(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const modeling = useService('modeling');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    return hasBusinessKey(element);\n  };\n\n  const setValue = value => {\n    if (value) {\n      addBusinessKey();\n    } else {\n      removeBusinessKey();\n    }\n  };\n\n  function addBusinessKey() {\n    const businessObject = getBusinessObject(element);\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) If there are no extension elements, create camunda:In and update element's properties\n    if (!extensionElements) {\n      extensionElements = createElement('bpmn:ExtensionElements', {}, businessObject, bpmnFactory);\n      const businessKeyItem = createBusinessKey(extensionElements);\n      extensionElements.set('values', [ businessKeyItem ]);\n\n      modeling.updateProperties(element, { extensionElements });\n    } else {\n\n      // (2) Otherwise, add camunda:In to the existing values\n      const businessKeyItem = createBusinessKey(extensionElements);\n\n      addExtensionElements(element, businessObject, businessKeyItem, bpmnFactory, commandStack);\n    }\n  }\n\n  function createBusinessKey(parent) {\n    return createElement(\n      'camunda:In',\n      {\n        businessKey: DEFAULT_BUSINESS_KEY\n      },\n      parent,\n      bpmnFactory\n    );\n  }\n\n  function removeBusinessKey() {\n    const businessObject = getBusinessObject(element);\n    const camundaInList = getExtensionElementsList(businessObject, 'camunda:In');\n    const businessKeyItems = camundaInList.filter(\n      camundaIn => camundaIn.get('businessKey') !== undefined\n    );\n\n    removeExtensionElements(element, businessObject, businessKeyItems, commandStack);\n  }\n\n  return <CheckboxEntry\n    element={ element }\n    id=\"calledElementBusinessKey\"\n    label={ translate('Business key') }\n    getValue={ getValue }\n    setValue={ setValue }\n  />;\n}\n\nfunction BusinessKeyExpression(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => getBusinessKey(element);\n  const setValue = value => {\n    const camundaIn = findCamundaInWithBusinessKey(element);\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: camundaIn,\n      properties: {\n        businessKey: value || ''\n      }\n    });\n  };\n\n  return <TextFieldEntry\n    element={ element }\n    id=\"calledElementBusinessKeyExpression\"\n    label={ translate('Business key expression') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n  />;\n}\n\n// helper //////\n\nfunction getCalledElementType(element) {\n  const businessObject = getBusinessObject(element);\n\n  if (businessObject.get('calledElement') !== undefined) {\n    return 'bpmn';\n  } else if (businessObject.get('camunda:caseRef') !== undefined) {\n    return 'cmmn';\n  }\n\n  return '';\n}\n\nfunction hasBusinessKey(element) {\n  return getBusinessKey(element) !== undefined;\n}\n\nfunction getBusinessKey(element) {\n  const camundaIn = findCamundaInWithBusinessKey(element);\n\n  if (camundaIn) {\n    return camundaIn.get('businessKey');\n  }\n}\n\nfunction findCamundaInWithBusinessKey(element) {\n  const businessObject = getBusinessObject(element);\n  const camundaInList = getExtensionElementsList(businessObject, 'camunda:In');\n\n  for (const camundaIn of camundaInList) {\n    const businessKey = camundaIn.get('businessKey');\n\n    if (businessKey !== undefined) {\n      return camundaIn;\n    }\n  }\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\n\nexport function CandidateStarterProps(props) {\n  const {\n    element\n  } = props;\n\n  const businessObject = getBusinessObject(element);\n\n  if (!is(element, 'bpmn:Process') &&\n      !(is(element, 'bpmn:Participant') && businessObject.get('processRef'))) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'candidateStarterGroups',\n      component: CandidateStarterGroups,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'candidateStarterUsers',\n      component: CandidateStarterUsers,\n      isEdited: isTextFieldEntryEdited\n    }\n  ];\n}\n\nfunction CandidateStarterGroups(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const process = getProcess(element);\n\n  const getValue = () => {\n    return process.get('camunda:candidateStarterGroups') || '';\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element: element,\n      moddleElement: process,\n      properties: {\n        'camunda:candidateStarterGroups': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'candidateStarterGroups',\n    label: translate('Candidate starter groups'),\n    description: translate('Specify more than one group as a comma separated list.'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction CandidateStarterUsers(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const process = getProcess(element);\n\n  const getValue = () => {\n    return process.get('camunda:candidateStarterUsers') || '';\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element: element,\n      moddleElement: process,\n      properties: {\n        'camunda:candidateStarterUsers': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'candidateStarterUsers',\n    label: translate('Candidate starter users'),\n    description: translate('Specify more than one user as a comma separated list.'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper //////////////////\n\n/**\n * getProcess - get the businessObject of the process referred to by a bpmn:Process\n * or by a bpmn:Participant\n *\n * @param  {ModdleElement} element either a bpmn:Process or a bpmn:Participant\n * @return {BusinessObject}\n */\nfunction getProcess(element) {\n  return is(element, 'bpmn:Process') ?\n    getBusinessObject(element) :\n    getBusinessObject(element).get('processRef');\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  isAny\n} from 'bpmn-js/lib/features/modeling/util/ModelingUtil';\n\nimport { getEventDefinition } from '../../bpmn/utils/EventDefinitionUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  TextFieldEntry,\n  isTextFieldEntryEdited,\n  SelectEntry,\n  isSelectEntryEdited,\n  TextAreaEntry,\n  isTextAreaEntryEdited\n} from '@bpmn-io/properties-panel';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * Defines condition properties for conditional sequence flow.\n * Cf. https://docs.camunda.org/manual/latest/reference/bpmn20/gateways/sequence-flow/\n */\nexport function ConditionProps(props) {\n  const { element } = props;\n\n  if (\n    !(is(element, 'bpmn:SequenceFlow') && isConditionalSource(element.source)) &&\n    !getConditionalEventDefinition(element)\n  ) {\n    return [];\n  }\n\n  const entries = [];\n\n  if (getConditionalEventDefinition(element)) {\n    entries.push(\n      ...VariableEventProps({ element })\n    );\n  }\n\n  entries.push({\n    id: 'conditionType',\n    component: ConditionType,\n    isEdited: isSelectEntryEdited\n  });\n\n  const conditionType = getConditionType(element);\n\n  if (conditionType === 'script') {\n    entries.push(\n      ...ConditionScriptProps({ element })\n    );\n  } else if (conditionType === 'expression') {\n    entries.push({\n      id: 'conditionExpression',\n      component: ConditionExpression,\n      isEdited: isTextFieldEntryEdited\n    });\n  }\n\n  return entries;\n}\n\n\nfunction ConditionType(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    return getConditionType(element);\n  };\n\n  const setValue = (value) => {\n\n    // (1) Remove formalExpression if <none> is selected\n    if (value === '') {\n      updateCondition(element, commandStack, undefined);\n    } else {\n\n      // (2) Create and set formalExpression element containing the conditionExpression\n      const attributes = {\n        body: '',\n        language: value === 'script' ? '' : undefined,\n      };\n      const formalExpressionElement = createFormalExpression(element, attributes, bpmnFactory);\n\n      updateCondition(element, commandStack, formalExpressionElement);\n    }\n  };\n\n  const getOptions = () => ([\n    { value: '', label: translate('<none>') },\n    { value: 'script', label: translate('Script') },\n    { value: 'expression', label: translate('Expression') }\n  ]);\n\n  return <SelectEntry\n    element={ element }\n    id=\"conditionType\"\n    label={ translate('Type') }\n    getValue={ getValue }\n    setValue={ setValue }\n    getOptions={ getOptions }\n  />;\n}\n\n\nfunction ConditionExpression(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        bpmnFactory = useService('bpmnFactory'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getConditionExpression(element).get('body');\n  };\n\n  const setValue = (value) => {\n    const conditionExpression = createFormalExpression(\n      element,\n      {\n        body: value\n      },\n      bpmnFactory\n    );\n\n    updateCondition(element, commandStack, conditionExpression);\n  };\n\n  return <TextFieldEntry\n    element={ element }\n    id=\"conditionExpression\"\n    label={ translate('Condition Expression') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n  />;\n}\n\nfunction ConditionScriptProps(props) {\n  const { element } = props;\n\n  const entries = [];\n  const scriptType = getScriptType(element);\n\n  // (1) language\n  entries.push({\n    id: 'conditionScriptLanguage',\n    component: Language,\n    isEdited: isTextFieldEntryEdited\n  });\n\n  // (2) type\n  entries.push({\n    id: 'conditionScriptType',\n    component: ScriptType,\n    isEdited: isSelectEntryEdited\n  });\n\n  // (3) script\n  if (scriptType === 'script') {\n    entries.push({\n      id: 'conditionScriptValue',\n      component: Script,\n      isEdited: isTextAreaEntryEdited\n    });\n  } else if (scriptType === 'resource') {\n\n    // (4) resource\n    entries.push({\n      id: 'conditionScriptResource',\n      component: Resource,\n      isEdited: isTextFieldEntryEdited\n    });\n  }\n\n  return entries;\n}\n\nfunction Language(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getConditionExpression(element).get('language');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element: element,\n      moddleElement: getConditionExpression(element),\n      properties: {\n        language: value || ''\n      }\n    });\n  };\n\n  return <TextFieldEntry\n    element={ element }\n    id=\"conditionScriptLanguage\"\n    label={ translate('Format') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n  />;\n}\n\nfunction ScriptType(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    return getScriptType(element);\n  };\n\n  const setValue = (value) => {\n\n    // reset script properties on type change\n    const updatedProperties = {\n      'body': value === 'script' ? '' : undefined,\n      'camunda:resource': value === 'resource' ? '' : undefined\n    };\n\n    commandStack.execute('element.updateModdleProperties', {\n      element: element,\n      moddleElement: getConditionExpression(element),\n      properties: updatedProperties\n    });\n  };\n\n  const getOptions = () => {\n\n    const options = [\n      { value: 'resource', label: translate('External resource') },\n      { value: 'script', label: translate('Inline script') }\n    ];\n\n    return options;\n  };\n\n  return SelectEntry({\n    element,\n    id: 'conditionScriptType',\n    label: translate('Script type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nfunction Script(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getConditionExpression(element).get('body');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element: element,\n      moddleElement: getConditionExpression(element),\n      properties: {\n        'body': value || ''\n      }\n    });\n  };\n\n  return <TextAreaEntry\n    element={ element }\n    id=\"conditionScriptValue\"\n    label={ translate('Script') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n    monospace\n  />;\n}\n\nfunction Resource(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getConditionExpression(element).get('camunda:resource');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element: element,\n      moddleElement: getConditionExpression(element),\n      properties: {\n        'camunda:resource': value || ''\n      }\n    });\n  };\n\n  return <TextFieldEntry\n    element={ element }\n    id=\"conditionScriptResource\"\n    label={ translate('Resource') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n  />;\n}\n\nfunction VariableEventProps(props) {\n  const {\n    element\n  } = props;\n\n  const entries = [];\n\n  entries.push({\n    id: 'conditionVariableName',\n    component: VariableName,\n    isEdited: isTextFieldEntryEdited\n  });\n\n  if (!is(element, 'bpmn:StartEvent') || isInEventSubProcess(element)) {\n    entries.push({\n      id: 'conditionVariableEvents',\n      component: VariableEvents,\n      isEdited: isTextFieldEntryEdited\n    });\n  }\n\n  return entries;\n}\n\n\nfunction VariableName(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getConditionalEventDefinition(element).get('variableName');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element: element,\n      moddleElement: getConditionalEventDefinition(element),\n      properties: {\n        variableName: value || ''\n      }\n    });\n  };\n\n  return <TextFieldEntry\n    element={ element }\n    id=\"conditionVariableName\"\n    label={ translate('Variable name') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n  />;\n}\n\n\nfunction VariableEvents(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return getConditionalEventDefinition(element).get('variableEvents');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element: element,\n      moddleElement: getConditionalEventDefinition(element),\n      properties: {\n        variableEvents: value || ''\n      }\n    });\n  };\n\n  const tooltip = (\n    <div>\n      <p>{ translate('Specify more than one variable change event as a comma separated list. Variable change events are:') }</p>\n      <ul>\n        <li><code>create</code></li>\n        <li><code>update</code></li>\n        <li><code>delete</code></li>\n      </ul>\n      <a href=\"https://docs.camunda.org/manual/latest/reference/bpmn20/custom-extensions/extension-attributes/#variableevents\" target=\"_blank\" rel=\"noopener noreferrer\">{ translate('Documentation: Variable events') }</a>\n    </div>\n  );\n\n  return <TextFieldEntry\n    element={ element }\n    id=\"conditionVariableEvents\"\n    label={ translate('Variable events') }\n    getValue={ getValue }\n    setValue={ setValue }\n    debounce={ debounce }\n    tooltip={ tooltip }\n  />;\n}\n\n\n// helper ////////////////////\n\nconst CONDITIONAL_SOURCES = [\n  'bpmn:Activity',\n  'bpmn:ExclusiveGateway',\n  'bpmn:InclusiveGateway',\n  'bpmn:ComplexGateway'\n];\n\nfunction isConditionalSource(element) {\n  return isAny(element, CONDITIONAL_SOURCES);\n}\n\nfunction getConditionalEventDefinition(element) {\n  if (!is(element, 'bpmn:Event')) {\n    return false;\n  }\n\n  return getEventDefinition(element, 'bpmn:ConditionalEventDefinition');\n}\n\nfunction getConditionType(element) {\n  const conditionExpression = getConditionExpression(element);\n\n  if (!conditionExpression) {\n    return '';\n  } else {\n    return conditionExpression.get('language') === undefined ? 'expression' : 'script';\n  }\n}\n\n/**\n * getConditionExpression - get the body value of a condition expression for a given element\n *\n * @param  {ModdleElement} element\n *\n * @return {string|undefined}\n */\nfunction getConditionExpression(element) {\n  const businessObject = getBusinessObject(element);\n\n  if (is(businessObject, 'bpmn:SequenceFlow')) {\n    return businessObject.get('conditionExpression');\n  } else if (getConditionalEventDefinition(businessObject)) {\n    return getConditionalEventDefinition(businessObject).get('condition');\n  }\n}\n\nfunction getScriptType(element) {\n  const conditionExpression = getConditionExpression(element);\n\n  const resource = conditionExpression.get('camunda:resource');\n  if (typeof resource !== 'undefined') {\n    return 'resource';\n  } else {\n    return 'script';\n  }\n}\n\nfunction updateCondition(element, commandStack, condition = undefined) {\n  if (is(element, 'bpmn:SequenceFlow')) {\n    commandStack.execute('element.updateProperties', {\n      element,\n      properties: {\n        conditionExpression: condition\n      }\n    });\n  } else {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: getConditionalEventDefinition(element),\n      properties: {\n        condition\n      }\n    });\n  }\n}\n\nfunction createFormalExpression(parent, attributes, bpmnFactory) {\n  return createElement(\n    'bpmn:FormalExpression',\n    attributes,\n    is(parent, 'bpmn:SequenceFlow') ? getBusinessObject(parent) : getConditionalEventDefinition(parent),\n    bpmnFactory\n  );\n}\n\nfunction isInEventSubProcess(element) {\n  const bo = getBusinessObject(element),\n        parent = bo.$parent;\n\n  return is(parent, 'bpmn:SubProcess') && parent.triggeredByEvent;\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  TextAreaEntry,\n  isTextAreaEntryEdited,\n  TextFieldEntry,\n  isTextFieldEntryEdited,\n  SelectEntry,\n  isSelectEntryEdited\n} from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n/**\n * Cf. https://docs.camunda.org/manual/latest/user-guide/process-engine/scripting/\n */\nexport function ScriptProps(props) {\n  const {\n    element,\n    script,\n    prefix\n  } = props;\n\n  const entries = [];\n  const scriptType = getScriptType(script || element);\n\n  const idPrefix = prefix || '';\n\n  // (1) scriptFormat\n  entries.push({\n    id: idPrefix + 'scriptFormat',\n    component: Format,\n    isEdited: isTextFieldEntryEdited,\n    idPrefix,\n    script\n  });\n\n\n  // (2) type\n  entries.push({\n    id: idPrefix + 'scriptType',\n    component: Type,\n    isEdited: isSelectEntryEdited,\n    idPrefix,\n    script\n  });\n\n  // (3) script\n  if (scriptType === 'script') {\n    entries.push({\n      id: idPrefix + 'scriptValue',\n      component: Script,\n      isEdited: isTextAreaEntryEdited,\n      idPrefix,\n      script\n    });\n  }\n\n  // (4) resource\n  if (scriptType === 'resource') {\n    entries.push({\n      id: idPrefix + 'scriptResource',\n      component: Resource,\n      isEdited: isTextFieldEntryEdited,\n      idPrefix,\n      script\n    });\n  }\n\n  return entries;\n}\n\nfunction Format(props) {\n  const {\n    element,\n    idPrefix,\n    script\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = script || getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('scriptFormat');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        scriptFormat: value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: idPrefix + 'scriptFormat',\n    label: translate('Format'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction Type(props) {\n  const {\n    element,\n    idPrefix,\n    script\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const businessObject = script || getBusinessObject(element);\n  const scriptProperty = getScriptProperty(businessObject);\n\n  const getValue = () => {\n    return getScriptType(businessObject);\n  };\n\n  const setValue = (value) => {\n\n    // reset script properties on type change\n    const properties = {\n      [ scriptProperty ]: value === 'script' ? '' : undefined,\n      'camunda:resource': value === 'resource' ? '' : undefined\n    };\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties\n    });\n  };\n\n  const getOptions = () => {\n\n    const options = [\n      { value: '', label: translate('<none>') },\n      { value: 'resource', label: translate('External resource') },\n      { value: 'script', label: translate('Inline script') }\n    ];\n\n    return options;\n  };\n\n  return SelectEntry({\n    element,\n    id: idPrefix + 'scriptType',\n    label: translate('Type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nfunction Script(props) {\n  const {\n    element,\n    idPrefix,\n    script\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = script || getBusinessObject(element);\n  const scriptProperty = getScriptProperty(businessObject);\n\n  const getValue = () => {\n    return getScriptValue(businessObject);\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        [ scriptProperty ]: value || ''\n      }\n    });\n  };\n\n  return TextAreaEntry({\n    element,\n    id: idPrefix + 'scriptValue',\n    label: translate('Script'),\n    getValue,\n    setValue,\n    debounce,\n    monospace: true\n  });\n}\n\nfunction Resource(props) {\n  const {\n    element,\n    idPrefix,\n    script\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = script || getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:resource');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:resource': value || ''\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: idPrefix + 'scriptResource',\n    label: translate('Resource'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper ////////////////////\n\nfunction getScriptType(element) {\n  const businessObject = getBusinessObject(element);\n\n  const scriptValue = getScriptValue(businessObject);\n  if (typeof scriptValue !== 'undefined') {\n    return 'script';\n  }\n\n  const resource = businessObject.get('camunda:resource');\n  if (typeof resource !== 'undefined') {\n    return 'resource';\n  }\n}\n\nfunction getScriptValue(businessObject) {\n  return businessObject.get(getScriptProperty(businessObject));\n}\n\nfunction isScript(element) {\n  return is(element, 'camunda:Script');\n}\n\nfunction getScriptProperty(businessObject) {\n  return isScript(businessObject) ? 'value' : 'script';\n}","import {\n  isAny\n} from 'bpmn-js/lib/features/modeling/util/ModelingUtil';\n\nimport {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  createElement,\n  nextId\n} from '../../../utils/ElementUtil';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\n\nfunction getElements(businessObject, type, property) {\n  const elements = getExtensionElementsList(businessObject, type);\n  return !property ? elements : (elements[0] || {})[property] || [];\n}\n\nfunction getParameters(element, prop) {\n  const inputOutput = getInputOutput(element);\n  return (inputOutput && inputOutput.get(prop)) || [];\n}\n\n/**\n * Get a camunda:inputOutput from the business object\n *\n * @param {djs.model.Base | ModdleElement} element\n *\n * @return {ModdleElement} the inputOutput object\n */\nexport function getInputOutput(element) {\n  if (is(element, 'camunda:Connector')) {\n    return element.get('inputOutput');\n  }\n\n  const businessObject = getBusinessObject(element);\n\n  return (getElements(businessObject, 'camunda:InputOutput') || [])[0];\n}\n\n\n/**\n * Return all input parameters existing in the business object, and\n * an empty array if none exist.\n *\n * @param  {djs.model.Base} element\n *\n * @return {Array} a list of input parameter objects\n */\nexport function getInputParameters(element) {\n  return getParameters(element, 'inputParameters');\n}\n\n/**\n * Return all output parameters existing in the business object, and\n * an empty array if none exist.\n *\n * @param  {djs.model.Base} element\n *\n * @return {Array} a list of output parameter objects\n */\nexport function getOutputParameters(element) {\n  return getParameters(element, 'outputParameters');\n}\n\n\nexport function isInputOutputSupported(element) {\n  const businessObject = getBusinessObject(element);\n\n  return (\n    is(businessObject, 'bpmn:FlowNode') && !(\n      isAny(businessObject, [ 'bpmn:StartEvent', 'bpmn:BoundaryEvent', 'bpmn:Gateway' ]) ||\n      is(businessObject, 'bpmn:SubProcess') && businessObject.get('triggeredByEvent')\n    )\n  );\n}\n\nexport function areInputParametersSupported(element) {\n  return isInputOutputSupported(element);\n}\n\nexport function areOutputParametersSupported(element) {\n  const businessObject = getBusinessObject(element);\n  return (\n    isInputOutputSupported(element) &&\n    !is(businessObject, 'bpmn:EndEvent') &&\n    !businessObject.loopCharacteristics\n  );\n}\n\nexport function getInputOutputType(parameter) {\n  const definitionTypes = {\n    'camunda:Map': 'map',\n    'camunda:List': 'list',\n    'camunda:Script': 'script'\n  };\n\n  let type = 'stringOrExpression';\n\n  const definition = parameter.get('definition');\n  if (typeof definition !== 'undefined') {\n    type = definitionTypes[definition.$type];\n  }\n\n  return type;\n}\n\nexport function CreateParameterCmd(element, type, parent, bpmnFactory) {\n  const isInput = type === 'camunda:InputParameter';\n\n  const newParameter = createElement(type, {\n    name: nextId(isInput ? 'Input_' : 'Output_')\n  }, parent, bpmnFactory);\n\n  const propertyName = isInput ? 'inputParameters' : 'outputParameters';\n\n  return {\n    cmd: 'element.updateModdleProperties',\n    context: {\n      element,\n      moddleElement: parent,\n      properties: {\n        [ propertyName ]: [ ...parent.get(propertyName), newParameter ]\n      }\n    }\n  };\n}\n\nexport function AddParameterCmd(element, type, bpmnFactory) {\n  const commands = [];\n  const businessObject = getBusinessObject(element);\n\n  let extensionElements = businessObject.get('extensionElements');\n\n  // (1) ensure extension elements\n  if (!extensionElements) {\n    extensionElements = createElement(\n      'bpmn:ExtensionElements',\n      { values: [] },\n      businessObject,\n      bpmnFactory\n    );\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: businessObject,\n        properties: { extensionElements }\n      }\n    });\n  }\n\n  // (2) ensure inputOutput\n  let inputOutput = getInputOutput(element);\n\n  if (!inputOutput) {\n    const parent = extensionElements;\n\n    inputOutput = createElement('camunda:InputOutput', {\n      inputParameters: [],\n      outputParameters: []\n    }, parent, bpmnFactory);\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: extensionElements,\n        properties: {\n          values: [ ...extensionElements.get('values'), inputOutput ]\n        }\n      }\n    });\n  }\n\n  // (3) create + add parameter\n  commands.push(CreateParameterCmd(element, type, inputOutput, bpmnFactory));\n\n  return commands;\n}","import { ListEntry, SimpleEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { without } from 'min-dash';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nfunction ListProp(props) {\n  const {\n    element,\n    id: idPrefix,\n    index,\n    item\n  } = props;\n\n  const id = `${ idPrefix }-listItem-${ index }`;\n\n  return (\n    <ListItem\n      idPrefix={ id }\n      element={ element }\n      item={ item }\n    />\n  );\n}\n\nexport function ListProps(props) {\n  const {\n    idPrefix,\n    element,\n    parameter\n  } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const list = parameter.get('definition');\n  const items = list.get('items');\n\n  function addItem() {\n    const value = createElement('camunda:Value', {}, parameter, bpmnFactory);\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: list,\n      properties: {\n        items: [ ...list.get('items'), value ]\n      }\n    });\n  }\n\n  function removeItem(item) {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: list,\n      properties: {\n        items: without(list.get('items'), item)\n      }\n    });\n  }\n\n  return ListEntry({\n    element,\n    autoFocusEntry: true,\n    id: idPrefix + '-list',\n    items,\n    label: translate('List values'),\n    onAdd: addItem,\n    onRemove: removeItem,\n    component: ListProp\n  });\n}\n\nfunction ListItem(props) {\n  const {\n    idPrefix,\n    element,\n    item\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const definitionLabels = {\n    'camunda:Map': translate('Map'),\n    'camunda:List': translate('List'),\n    'camunda:Script': translate('Script')\n  };\n\n  const getValue = () => {\n    if (isDefinitionType(item)) {\n      return definitionLabels[item.$type];\n    }\n\n    return item.get('value');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: item,\n      properties: {\n        value\n      }\n    });\n  };\n\n  return ListValue({\n    id: idPrefix + '-value',\n    disabled: isDefinitionType(item),\n    getValue,\n    setValue\n  });\n}\n\nfunction ListValue(props) {\n  const {\n    id,\n    disabled,\n    getValue,\n    setValue\n  } = props;\n\n  const debounce = useService('debounceInput', true);\n\n  return (\n    <SimpleEntry\n      id={ id }\n      getValue={ getValue }\n      setValue={ setValue }\n      disabled={ disabled }\n      debounce={ debounce } />\n  );\n}\n\n// helper //////////////////////\n\nfunction isScript(element) {\n  return is(element, 'camunda:Script');\n}\n\nfunction isList(element) {\n  return is(element, 'camunda:List');\n}\n\nfunction isMap(element) {\n  return is(element, 'camunda:Map');\n}\n\nfunction isDefinitionType(element) {\n  return isScript(element) || isList(element) || isMap(element);\n}","import { CollapsibleEntry, ListEntry, TextFieldEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { without } from 'min-dash';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nfunction MapProp(props) {\n  const {\n    element,\n    id: idPrefix,\n    index,\n    item: entry,\n    open\n  } = props;\n\n  const id = `${ idPrefix }-mapEntry-${ index }`;\n\n  const translate = useService('translate');\n\n  return (\n    <CollapsibleEntry\n      id={ id }\n      element={ element }\n      entries={ MapEntry({\n        element,\n        entry,\n        idPrefix: id\n      }) }\n      label={ entry.get('key') || translate('<empty>') }\n      open={ open }\n    />\n  );\n}\n\nexport function MapProps(props) {\n  const {\n    idPrefix,\n    element,\n    parameter\n  } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const id = idPrefix + '-map';\n  const map = parameter.get('definition');\n  const entries = map.get('entries');\n\n  function addEntry() {\n    const entry = createElement('camunda:Entry', {}, parameter, bpmnFactory);\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: map,\n      properties: {\n        entries: [ ...map.get('entries'), entry ]\n      }\n    });\n  }\n\n  function removeEntry(entry) {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: map,\n      properties: {\n        entries: without(map.get('entries'), entry)\n      }\n    });\n  }\n\n  return ListEntry({\n    element,\n    autoFocusEntry: `[data-entry-id=\"${id}-mapEntry-${entries.length - 1}\"] input`,\n    id: idPrefix + '-map',\n    items: entries,\n    label: translate('Map entries'),\n    onAdd: addEntry,\n    onRemove: removeEntry,\n    component: MapProp,\n  });\n}\n\nfunction MapEntry(props) {\n  const {\n    element,\n    entry,\n    idPrefix\n  } = props;\n\n  const entries = [ {\n    id: idPrefix + '-key',\n    component: MapKey,\n    entry,\n    idPrefix,\n    element\n  },{\n    id: idPrefix + '-value',\n    component: MapValue,\n    entry,\n    idPrefix,\n    element\n  } ];\n\n  return entries;\n}\n\nfunction MapKey(props) {\n  const {\n    element,\n    entry,\n    idPrefix\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: entry,\n      properties: {\n        key: value\n      }\n    });\n  };\n\n  const getValue = () => {\n    return entry.get('key');\n  };\n\n  return TextFieldEntry({\n    element: entry,\n    id: idPrefix + '-key',\n    label: translate('Key'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction MapValue(props) {\n  const {\n    element,\n    entry,\n    idPrefix\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const definition = entry.get('definition');\n  const definitionLabels = {\n    'camunda:Map': translate('Map'),\n    'camunda:List': translate('List'),\n    'camunda:Script': translate('Script')\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: entry,\n      properties: {\n        value\n      }\n    });\n  };\n\n  const getValue = () => {\n    if (isDefinitionType(definition)) {\n      return definitionLabels[definition.$type];\n    }\n\n    return entry.get('value');\n  };\n\n  return TextFieldEntry({\n    element: entry,\n    id: idPrefix + '-value',\n    label: translate('Value'),\n    getValue,\n    setValue,\n    disabled: isDefinitionType(definition),\n    debounce\n  });\n}\n\n\n// helper ///////////////////\n\nfunction isScript(element) {\n  return is(element, 'camunda:Script');\n}\n\nfunction isList(element) {\n  return is(element, 'camunda:List');\n}\n\nfunction isMap(element) {\n  return is(element, 'camunda:Map');\n}\n\nfunction isDefinitionType(element) {\n  return isScript(element) || isList(element) || isMap(element);\n}","import {\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  SelectEntry,\n  isSelectEntryEdited,\n  TextFieldEntry,\n  isTextFieldEntryEdited,\n  TextAreaEntry,\n  isTextAreaEntryEdited\n} from '@bpmn-io/properties-panel';\n\nimport {\n  ScriptProps\n} from './ScriptProps';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getInputOutputType\n} from '../utils/InputOutputUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  ListProps\n} from './ListProps';\n\nimport {\n  MapProps\n} from './MapProps';\n\nconst DEFAULT_PROPS = {\n  value: undefined,\n  definition: undefined\n};\n\n\nexport default function InputOutputParameter(props) {\n  const {\n    idPrefix,\n    element,\n    parameter\n  } = props;\n\n  const inputOutputType = getInputOutputType(parameter);\n\n  let entries = [\n    {\n      id: idPrefix + '-name',\n      component: Name,\n      isEdited: isTextFieldEntryEdited,\n      idPrefix,\n      parameter\n    },\n    {\n      id: idPrefix + '-type',\n      component: Type,\n      isEdited: isSelectEntryEdited,\n      idPrefix,\n      parameter\n    }\n  ];\n\n  // (1) String or expression\n  if (inputOutputType === 'stringOrExpression') {\n\n    entries.push({\n      id: idPrefix + '-stringOrExpression',\n      component: StringOrExpression,\n      isEdited: isTextAreaEntryEdited,\n      idPrefix,\n      parameter\n    });\n\n  // (2) Script\n  } else if (inputOutputType === 'script') {\n    const script = parameter.get('definition');\n\n    entries = [\n      ...entries,\n      ...ScriptProps({ element, prefix: idPrefix + '-', script })\n    ];\n\n  // (3) List\n  } else if (inputOutputType === 'list') {\n    entries.push({\n      id: `${idPrefix}-list`,\n      component: ListProps,\n      idPrefix,\n      parameter\n    });\n\n  // (4) Map\n  } else if (inputOutputType === 'map') {\n    entries.push({\n      id: `${idPrefix}-map`,\n      component: MapProps,\n      idPrefix,\n      parameter\n    });\n  }\n\n  return entries;\n}\n\nfunction Name(props) {\n  const {\n    idPrefix,\n    element,\n    parameter\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: parameter,\n      properties: {\n        name: value\n      }\n    });\n  };\n\n  const getValue = (parameter) => {\n    return parameter.get('name');\n  };\n\n  return TextFieldEntry({\n    element: parameter,\n    id: idPrefix + '-name',\n    label: translate(isInput(parameter) ? 'Local variable name' : 'Process variable name'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction Type(props) {\n  const {\n    idPrefix,\n    element,\n    parameter\n  } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const createDefinitionElement = (type) => {\n    return createElement(type, {}, parameter, bpmnFactory);\n  };\n\n  const getValue = (mapping) => {\n    return getInputOutputType(mapping);\n  };\n\n  const setValue = (value) => {\n    let properties = {\n      ...DEFAULT_PROPS\n    };\n\n    if (value === 'script') {\n      properties.definition = createDefinitionElement('camunda:Script');\n    }\n    else if (value === 'list') {\n      properties.definition = createDefinitionElement('camunda:List');\n    }\n    else if (value === 'map') {\n      properties.definition = createDefinitionElement('camunda:Map');\n    }\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: parameter,\n      properties\n    });\n  };\n\n  const getOptions = () => {\n    const options = [\n      { label: translate('List'), value: 'list' },\n      { label: translate('Map'), value: 'map' },\n      { label: translate('Script'), value: 'script' },\n      { label: translate('String or expression'), value: 'stringOrExpression' },\n    ];\n\n    return options;\n  };\n\n  return SelectEntry({\n    element: parameter,\n    id: idPrefix + '-type',\n    label: translate('Assignment type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nfunction StringOrExpression(props) {\n  const {\n    idPrefix,\n    element,\n    parameter\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: parameter,\n      properties: {\n        value\n      }\n    });\n  };\n\n  const getValue = (parameter) => {\n    return parameter.get('value');\n  };\n\n  return TextAreaEntry({\n    element: parameter,\n    id: idPrefix + '-stringOrExpression',\n    label: translate('Value'),\n    description: translate('Start typing \"${}\" to create an expression.'),\n    getValue,\n    setValue,\n    rows: 1,\n    debounce\n  });\n}\n\n\n// helper /////////////////////\n\nfunction isInput(parameter) {\n  return is(parameter, 'camunda:InputParameter');\n}","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  isAny\n} from 'bpmn-js/lib/features/modeling/util/ModelingUtil';\n\nimport {\n  getMessageEventDefinition\n} from '../../bpmn/utils/EventDefinitionUtil';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\n\n/**\n * Check whether an element is camunda:ServiceTaskLike\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nexport function isServiceTaskLike(element) {\n  return is(element, 'camunda:ServiceTaskLike');\n}\n\n/**\n * Returns 'true' if the given element is 'camunda:DmnCapable'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nexport function isDmnCapable(element) {\n  return is(element, 'camunda:DmnCapable');\n}\n\n/**\n * Returns 'true' if the given element is 'camunda:ExternalCapable'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nexport function isExternalCapable(element) {\n  return is(element, 'camunda:ExternalCapable');\n}\n\n/**\n * getServiceTaskLikeBusinessObject - Get a 'camunda:ServiceTaskLike' business object.\n *\n * If the given element is not a 'camunda:ServiceTaskLike', then 'false'\n * is returned.\n *\n * @param {djs.model.Base} element\n * @return {ModdleElement} the 'camunda:ServiceTaskLike' business object\n */\nexport function getServiceTaskLikeBusinessObject(element) {\n\n  if (is(element, 'bpmn:IntermediateThrowEvent') || is(element, 'bpmn:EndEvent')) {\n\n    // change business object to 'messageEventDefinition' when\n    // the element is a message intermediate throw event or message end event\n    // because the camunda extensions (e.g. camunda:class) are in the message\n    // event definition tag and not in the intermediate throw event or end event tag\n    const messageEventDefinition = getMessageEventDefinition(element);\n    if (messageEventDefinition) {\n      element = messageEventDefinition;\n    }\n  }\n\n  return isServiceTaskLike(element) && getBusinessObject(element);\n}\n\n/**\n * Returns the implementation type of the given element.\n *\n * Possible implementation types are:\n * - dmn\n * - connector\n * - external\n * - class\n * - expression\n * - delegateExpression\n * - script\n * - or undefined, when no matching implementation type is found\n *\n * @param  {djs.model.Base} element\n *\n * @return {String} the implementation type\n */\nexport function getImplementationType(element) {\n\n  const businessObject = (\n    getListenerBusinessObject(element) ||\n    getServiceTaskLikeBusinessObject(element)\n  );\n\n  if (!businessObject) {\n    return;\n  }\n\n  if (isDmnCapable(businessObject)) {\n    const decisionRef = businessObject.get('camunda:decisionRef');\n    if (typeof decisionRef !== 'undefined') {\n      return 'dmn';\n    }\n  }\n\n  if (isServiceTaskLike(businessObject)) {\n    const connectors = getExtensionElementsList(businessObject, 'camunda:Connector');\n    if (connectors.length) {\n      return 'connector';\n    }\n  }\n\n  if (isExternalCapable(businessObject)) {\n    const type = businessObject.get('camunda:type');\n    if (type === 'external') {\n      return 'external';\n    }\n  }\n\n  const cls = businessObject.get('camunda:class');\n  if (typeof cls !== 'undefined') {\n    return 'class';\n  }\n\n  const expression = businessObject.get('camunda:expression');\n  if (typeof expression !== 'undefined') {\n    return 'expression';\n  }\n\n  const delegateExpression = businessObject.get('camunda:delegateExpression');\n  if (typeof delegateExpression !== 'undefined') {\n    return 'delegateExpression';\n  }\n\n  const script = businessObject.get('script');\n  if (typeof script !== 'undefined') {\n    return 'script';\n  }\n}\n\nfunction getListenerBusinessObject(businessObject) {\n  if (isAny(businessObject, [ 'camunda:ExecutionListener','camunda:TaskListener' ])) {\n    return businessObject;\n  }\n}\n","import {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  getImplementationType,\n  getServiceTaskLikeBusinessObject\n} from './ImplementationTypeUtils';\n\nexport function areConnectorsSupported(element) {\n  const businessObject = getServiceTaskLikeBusinessObject(element);\n  return businessObject && getImplementationType(businessObject) === 'connector';\n}\n\nexport function getConnectors(businessObject) {\n  return getExtensionElementsList(businessObject, 'camunda:Connector');\n}\n\nexport function getConnector(element) {\n  const businessObject = getServiceTaskLikeBusinessObject(element);\n  const connectors = getConnectors(businessObject);\n\n  return connectors[0];\n}","import InputOutputParameter from './InputOutputParameter';\n\nimport {\n  CreateParameterCmd,\n  getInputParameters,\n  getInputOutput\n} from '../utils/InputOutputUtil';\n\nimport {\n  areConnectorsSupported,\n  getConnector\n} from '../utils/ConnectorUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport { without } from 'min-dash';\n\n\nexport function ConnectorInputProps(props) {\n  const {\n    element,\n    injector\n  } = props;\n\n  if (!areConnectorsSupported(element)) {\n    return null;\n  }\n\n  const connector = getConnector(element);\n\n  const commandStack = injector.get('commandStack'),\n        bpmnFactory = injector.get('bpmnFactory');\n\n  const inputParameters = getInputParameters(connector) || [];\n\n  const items = inputParameters.map((parameter, index) => {\n    const id = element.id + '-connector-inputParameter-' + index;\n\n    return {\n      id,\n      label: parameter.get('name') || '',\n      entries: InputOutputParameter({\n        element,\n        idPrefix: id,\n        parameter\n      }),\n      autoFocusEntry: id + '-name',\n      remove: removeFactory({ connector, element, parameter, commandStack })\n    };\n  });\n\n  function add(event) {\n    event.stopPropagation();\n\n    const commands = [];\n\n    // (1) ensure inputOutput\n    let inputOutput = getInputOutput(connector);\n\n    if (!inputOutput) {\n      inputOutput = createElement('camunda:InputOutput', {\n        inputParameters: [],\n        outputParameters: []\n      }, connector, bpmnFactory);\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element: element,\n          moddleElement: connector,\n          properties: {\n            inputOutput\n          }\n        }\n      });\n    }\n\n    // (2) create + add parameter\n    commands.push(\n      CreateParameterCmd(element, 'camunda:InputParameter', inputOutput, bpmnFactory)\n    );\n\n    // (3) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  }\n\n  return {\n    items,\n    add\n  };\n}\n\nfunction removeFactory(props) {\n  const {\n    commandStack,\n    connector,\n    element,\n    parameter\n  } = props;\n\n  return function(event) {\n    event.stopPropagation();\n\n    const inputOutput = getInputOutput(connector);\n\n    if (!inputOutput) {\n      return;\n    }\n\n    commandStack.execute('element.updateModdleProperties', {\n      element: element,\n      moddleElement: inputOutput,\n      properties: {\n        inputParameters: without(inputOutput.get('inputParameters'), parameter)\n      }\n    });\n  };\n}\n","import InputOutputParameter from './InputOutputParameter';\n\nimport {\n  CreateParameterCmd,\n  getOutputParameters,\n  getInputOutput\n} from '../utils/InputOutputUtil';\n\nimport {\n  areConnectorsSupported,\n  getConnector\n} from '../utils/ConnectorUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport { without } from 'min-dash';\n\n\nexport function ConnectorOutputProps(props) {\n  const {\n    element,\n    injector\n  } = props;\n\n  if (!areConnectorsSupported(element)) {\n    return null;\n  }\n\n  const connector = getConnector(element);\n\n  const commandStack = injector.get('commandStack'),\n        bpmnFactory = injector.get('bpmnFactory');\n\n  const outputParameters = getOutputParameters(connector) || [];\n\n  const items = outputParameters.map((parameter, index) => {\n    const id = element.id + '-connector-outputParameter-' + index;\n\n    return {\n      id,\n      label: parameter.get('name') || '',\n      entries: InputOutputParameter({\n        idPrefix: id,\n        element,\n        parameter\n      }),\n      autoFocusEntry: id + '-name',\n      remove: removeFactory({ connector, element, commandStack, parameter })\n    };\n  });\n\n  function add(event) {\n    event.stopPropagation();\n\n    const commands = [];\n\n    // (1) ensure inputOutput\n    let inputOutput = getInputOutput(connector);\n\n    if (!inputOutput) {\n      inputOutput = createElement('camunda:InputOutput', {\n        inputParameters: [],\n        outputParameters: []\n      }, connector, bpmnFactory);\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element: element,\n          moddleElement: connector,\n          properties: {\n            inputOutput\n          }\n        }\n      });\n    }\n\n    // (2) create + add parameter\n    commands.push(\n      CreateParameterCmd(element, 'camunda:OutputParameter', inputOutput, bpmnFactory)\n    );\n\n    // (3) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  }\n\n  return {\n    items,\n    add\n  };\n}\n\nfunction removeFactory(props) {\n  const {\n    commandStack,\n    connector,\n    element,\n    parameter\n  } = props;\n\n  return function(event) {\n    event.stopPropagation();\n\n    const inputOutput = getInputOutput(connector);\n\n    if (!inputOutput) {\n      return;\n    }\n\n    commandStack.execute('element.updateModdleProperties', {\n      element: element,\n      moddleElement: inputOutput,\n      properties: {\n        outputParameters: without(inputOutput.get('outputParameters'), parameter)\n      }\n    });\n  };\n}\n","import {\n  findIndex\n} from 'min-dash';\n\nimport {\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getError,\n  getErrorEventDefinition,\n  isErrorSupported\n} from '../../bpmn/utils/EventDefinitionUtil';\n\n\nexport function ErrorProps(props) {\n  const {\n    element,\n    entries\n  } = props;\n\n  if (!isErrorSupported(element)) {\n    return entries;\n  }\n\n  const error = getError(element);\n\n  // (1) errorMessage (error)\n  if (error) {\n    const idx = findPlaceToInsert(entries, 'errorCode');\n\n    // place below errorCode\n    entries.splice(idx, 0, {\n      id: 'errorMessage',\n      component: ErrorMessage,\n      isEdited: isTextFieldEntryEdited\n    });\n  }\n\n\n  if (!canHaveErrorVariables(element)) {\n    return entries;\n  }\n\n  // (2) errorCodeVariable + errorMessageVariable (errorEventDefinition)\n  entries.push(\n    {\n      id: 'errorCodeVariable',\n      component: ErrorCodeVariable,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'errorMessageVariable',\n      component: ErrorMessageVariable,\n      isEdited: isTextFieldEntryEdited\n    }\n  );\n\n  return entries;\n}\n\nfunction ErrorMessage(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const error = getError(element);\n\n  const getValue = () => {\n    return error.get('camunda:errorMessage');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: error,\n        properties: {\n          'camunda:errorMessage': value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'errorMessage',\n    label: translate('Message'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ErrorCodeVariable(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const errorEventDefinition = getErrorEventDefinition(element);\n\n  const getValue = () => {\n    return errorEventDefinition.get('camunda:errorCodeVariable');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: errorEventDefinition,\n        properties: {\n          'camunda:errorCodeVariable': value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'errorCodeVariable',\n    label: translate('Code variable'),\n    description: translate('Define the name of the variable that will contain the error code.'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ErrorMessageVariable(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const errorEventDefinition = getErrorEventDefinition(element);\n\n  const getValue = () => {\n    return errorEventDefinition.get('camunda:errorMessageVariable');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: errorEventDefinition,\n        properties: {\n          'camunda:errorMessageVariable': value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'errorMessageVariable',\n    label: translate('Message variable'),\n    description: translate('Define the name of the variable that will contain the error message.'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper ///////////////////////\n\nfunction canHaveErrorVariables(element) {\n  return is(element, 'bpmn:StartEvent') || is (element, 'bpmn:BoundaryEvent');\n}\n\nfunction findPlaceToInsert(entries, idx) {\n  const entryIndex = findIndex(entries, (entry) => entry.id === idx);\n  return entryIndex >= 0 ? entryIndex + 1 : entries.length;\n}","import { TextFieldEntry, isTextFieldEntryEdited, isSelectEntryEdited } from '@bpmn-io/properties-panel';\n\nimport ReferenceSelect from '../../../entries/ReferenceSelect';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  sortBy\n} from 'min-dash';\n\nimport { getBusinessObject } from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  createElement,\n  findRootElementById,\n  findRootElementsByType,\n  getRoot,\n  nextId\n} from '../../../utils/ElementUtil';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nexport const EMPTY_OPTION = '';\nexport const CREATE_NEW_OPTION = 'create-new';\n\n\nexport default function Error(props) {\n\n  const {\n    idPrefix,\n    errorEventDefinition\n  } = props;\n\n  let entries = [ {\n    id: idPrefix + '-errorRef',\n    component: ErrorRef,\n    isEdited: isSelectEntryEdited,\n    errorEventDefinition,\n    idPrefix\n  } ];\n\n  const error = errorEventDefinition.get('errorRef');\n\n  if (error) {\n    entries = [\n      ...entries,\n      {\n        id: idPrefix + '-errorName',\n        component: ErrorName,\n        isEdited: isTextFieldEntryEdited,\n        error,\n        errorEventDefinition,\n        idPrefix\n      },\n      {\n        id: idPrefix + '-errorCode',\n        component: ErrorCode,\n        isEdited: isTextFieldEntryEdited,\n        error,\n        errorEventDefinition,\n        idPrefix\n      },\n      {\n        id: idPrefix + '-errorMessage',\n        component: ErrorMessage,\n        isEdited: isTextFieldEntryEdited,\n        error,\n        errorEventDefinition,\n        idPrefix\n      }\n    ];\n  }\n\n  entries.push({\n    id: idPrefix + '-expression',\n    component: Expression,\n    errorEventDefinition,\n    idPrefix\n  });\n\n  return entries;\n}\n\nfunction ErrorRef(props) {\n  const {\n    element,\n    errorEventDefinition,\n    idPrefix\n  } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    const error = errorEventDefinition.get('errorRef');\n\n    if (error) {\n      return error.get('id');\n    }\n\n    return EMPTY_OPTION;\n  };\n\n  const setValue = (value) => {\n    const root = getRoot(businessObject);\n    const commands = [];\n\n    let error;\n\n    // (1) create new error\n    if (value === CREATE_NEW_OPTION) {\n      error = createElement(\n        'bpmn:Error',\n        { name: nextId('Error_') },\n        root,\n        bpmnFactory\n      );\n\n      value = error.get('id');\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: root,\n          properties: {\n            rootElements: [ ...root.get('rootElements'), error ]\n          }\n        }\n      });\n    }\n\n    // (2) update (or remove) errorRef\n    error = error || findRootElementById(businessObject, 'bpmn:Error', value);\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: errorEventDefinition,\n        properties: {\n          errorRef: error\n        }\n      }\n    });\n\n    // (3) commit all updates\n    return commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  const getOptions = () => {\n\n    let options = [\n      { value: EMPTY_OPTION, label: translate('<none>') },\n      { value: CREATE_NEW_OPTION, label: translate('Create new ...') }\n    ];\n\n    const errors = findRootElementsByType(getBusinessObject(element), 'bpmn:Error');\n\n    sortByName(errors).forEach(error => {\n      options.push({\n        value: error.get('id'),\n        label: error.get('name') || error.get('id')\n      });\n    });\n\n    return options;\n  };\n\n  return ReferenceSelect({\n    element,\n    id: idPrefix + '-errorRef',\n    label: translate('Global error reference'),\n    autoFocusEntry: idPrefix + '-errorName',\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nfunction ErrorName(props) {\n  const {\n    element,\n    error,\n    idPrefix\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return error.get('name');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: error,\n        properties: {\n          name: value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: idPrefix + '-errorName',\n    label: translate('Name'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ErrorCode(props) {\n  const {\n    element,\n    error,\n    idPrefix\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return error.get('errorCode');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: error,\n        properties: {\n          errorCode: value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: idPrefix + '-errorCode',\n    label: translate('Code'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ErrorMessage(props) {\n  const {\n    element,\n    error,\n    idPrefix\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return error.get('errorMessage');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: error,\n        properties: {\n          errorMessage: value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: idPrefix + '-errorMessage',\n    label: translate('Message'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction Expression(props) {\n  const {\n    element,\n    errorEventDefinition,\n    idPrefix\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: errorEventDefinition,\n      properties: {\n        'camunda:expression': value\n      }\n    });\n  };\n\n  const getValue = () => {\n    return errorEventDefinition.get('camunda:expression');\n  };\n\n  return TextFieldEntry({\n    element: errorEventDefinition,\n    id: idPrefix + '-expression',\n    label: translate('Throw expression'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n// helpers //////////\n\nfunction sortByName(elements) {\n  return sortBy(elements, e => (e.name || '').toLowerCase());\n}","import {\n  getImplementationType\n} from '../utils/ImplementationTypeUtils';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  addExtensionElements,\n  getExtensionElementsList,\n  removeExtensionElements\n} from '../../../utils/ExtensionElementsUtil';\n\nimport Error from './Error';\n\nimport { getBusinessObject, is } from 'bpmn-js/lib/util/ModelUtil';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nexport function ErrorsProps({ element, injector }) {\n\n  const businessObject = getBusinessObject(element);\n\n  if (!is(element, 'bpmn:ServiceTask') || getImplementationType(element) !== 'external') {\n    return null;\n  }\n\n  const errorEventDefinitions = getExtensionElementsList(businessObject, 'camunda:ErrorEventDefinition');\n\n  const bpmnFactory = injector.get('bpmnFactory'),\n        commandStack = injector.get('commandStack');\n\n  const items = errorEventDefinitions.map((errorEventDefinition, index) => {\n    const id = element.id + '-error-' + index;\n\n    return {\n      id,\n      label: getErrorLabel(errorEventDefinition),\n      entries: Error({\n        idPrefix: id,\n        element,\n        errorEventDefinition\n      }),\n      autoFocusEntry: id + '-errorRef',\n      remove: removeFactory({ commandStack, element, errorEventDefinition })\n    };\n  });\n\n  return {\n    items,\n    add: addFactory({ bpmnFactory, commandStack, element })\n  };\n}\n\nfunction removeFactory({ commandStack, element, errorEventDefinition }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const businessObject = getBusinessObject(element);\n\n    removeExtensionElements(element, businessObject, errorEventDefinition, commandStack);\n  };\n}\n\nfunction addFactory({ bpmnFactory, commandStack, element }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const businessObject = getBusinessObject(element);\n\n    const error = createElement(\n      'camunda:ErrorEventDefinition',\n      {},\n      undefined,\n      bpmnFactory\n    );\n\n    addExtensionElements(element, businessObject, error, bpmnFactory, commandStack);\n  };\n}\n\n// helpers //////////\n\nexport function getErrorLabel(errorEventDefinition) {\n  const error = errorEventDefinition.get('errorRef');\n\n  if (!error) {\n    return '<no reference>';\n  }\n\n  const errorCode = error.get('errorCode'),\n        name = error.get('name') || '<unnamed>';\n\n  if (errorCode) {\n    return `${ name } (code = ${ errorCode })`;\n  }\n\n  return name;\n}\n","import {\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getEscalationEventDefinition,\n  isEscalationSupported\n} from '../../bpmn/utils/EventDefinitionUtil';\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function EscalationProps(props) {\n  const {\n    element,\n    entries\n  } = props;\n\n  if (!(isEscalationSupported(element) && canHaveEscalationVariables(element))) {\n    return entries;\n  }\n\n  entries.push(\n    {\n      id: 'escalationCodeVariable',\n      component: EscalationCodeVariable,\n      isEdited: isTextFieldEntryEdited\n    }\n  );\n\n  return entries;\n}\n\nfunction EscalationCodeVariable(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const escalationEventDefinition = getEscalationEventDefinition(element);\n\n  const getValue = () => {\n    return escalationEventDefinition.get('camunda:escalationCodeVariable');\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: escalationEventDefinition,\n        properties: {\n          'camunda:escalationCodeVariable': value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'escalationCodeVariable',\n    label: translate('Code variable'),\n    description: translate('Define the name of the variable that will contain the escalation code.'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper ///////////////////////\n\nfunction canHaveEscalationVariables(element) {\n  return is(element, 'bpmn:StartEvent') || is(element, 'bpmn:BoundaryEvent');\n}","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getServiceTaskLikeBusinessObject\n} from '../utils/ImplementationTypeUtils';\n\n\nexport function ExternalTaskPriorityProps(props) {\n  const {\n    element\n  } = props;\n\n  const businessObject = getBusinessObject(element);\n\n  if (!is(element, 'bpmn:Process') &&\n      !(is(element, 'bpmn:Participant') && businessObject.get('processRef')) &&\n      !isExternalTaskLike(element)) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'externalTaskPriority',\n      component: ExternalTaskPriority,\n      isEdited: isTextFieldEntryEdited\n    },\n  ];\n}\n\nfunction ExternalTaskPriority(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  let businessObject;\n\n  if (is(element, 'bpmn:Participant')) {\n    businessObject = getBusinessObject(element).get('processRef');\n  } else if (isExternalTaskLike(element)) {\n    businessObject = getServiceTaskLikeBusinessObject(element);\n  } else {\n    businessObject = getBusinessObject(element);\n  }\n\n  const getValue = () => {\n    return businessObject.get('camunda:taskPriority');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:taskPriority': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'externalTaskPriority',\n    label: translate('Priority'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper //////////////////\n\nfunction isExternalTaskLike(element) {\n  const bo = getServiceTaskLikeBusinessObject(element),\n        type = bo && bo.get('camunda:type');\n\n  return is(bo, 'camunda:ServiceTaskLike') && type && type === 'external';\n}\n","import { TextFieldEntry, SelectEntry, TextAreaEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nconst DEFAULT_PROPS = {\n  'stringValue': undefined,\n  'string': undefined,\n  'expression': undefined\n};\n\n\nexport default function FieldInjection(props) {\n\n  const {\n    element,\n    idPrefix,\n    field\n  } = props;\n\n  const entries = [ {\n    id: idPrefix + '-name',\n    component: NameProperty,\n    field,\n    idPrefix,\n    element\n  },{\n    id: idPrefix + '-type',\n    component: TypeProperty,\n    field,\n    idPrefix,\n    element\n  },{\n    id: idPrefix + '-value',\n    component: ValueProperty,\n    field,\n    idPrefix,\n    element\n  } ];\n\n  return entries;\n}\n\nfunction NameProperty(props) {\n  const {\n    idPrefix,\n    element,\n    field\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: field,\n      properties: {\n        name: value\n      }\n    });\n  };\n\n  const getValue = (field) => {\n    return field.name;\n  };\n\n  return TextFieldEntry({\n    element: field,\n    id: idPrefix + '-name',\n    label: translate('Name'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction TypeProperty(props) {\n  const {\n    idPrefix,\n    element,\n    field\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate');\n\n  const getValue = (field) => {\n    return determineType(field);\n  };\n\n  const setValue = (value) => {\n    const properties = Object.assign({}, DEFAULT_PROPS);\n\n    properties[ value ] = '';\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: field,\n      properties\n    });\n  };\n\n  const getOptions = (element) => {\n\n    const options = [\n      { value: 'string', label: translate('String') },\n      { value: 'expression', label: translate('Expression') }\n    ];\n\n    return options;\n  };\n\n  return SelectEntry({\n    element: field,\n    id: idPrefix + '-type',\n    label: translate('Type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nfunction ValueProperty(props) {\n  const {\n    idPrefix,\n    element,\n    field\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n\n    // (1) determine which type we have set\n    const type = determineType(field);\n\n    // (2) set property accordingly\n    const properties = Object.assign({}, DEFAULT_PROPS);\n\n    properties[ type ] = value || '';\n\n    // (3) execute the update command\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: field,\n      properties\n    });\n  };\n\n  const getValue = (field) => {\n    return field.string || field.stringValue || field.expression;\n  };\n\n  return TextAreaEntry({\n    element: field,\n    id: idPrefix + '-value',\n    label: translate('Value'),\n    getValue,\n    setValue,\n    debounce,\n    autoResize: true\n  });\n}\n\n\n// helper ///////////////////\n\n\n/**\n * determineType - get the type of a fieldInjection based on the attributes\n * set on it\n *\n * @param  {ModdleElement} field\n * @return {('string'|'expression')}\n */\nfunction determineType(field) {\n\n  // string is the default type\n  return ('string' in field && 'string') ||\n          ('expression' in field && 'expression') ||\n          ('stringValue' in field && 'string') ||\n          'string';\n}\n","import {\n  getServiceTaskLikeBusinessObject\n} from '../utils/ImplementationTypeUtils';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  addExtensionElements,\n  getExtensionElementsList,\n  removeExtensionElements\n} from '../../../utils/ExtensionElementsUtil';\n\nimport FieldInjection from './FieldInjection';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nexport function FieldInjectionProps({ element, injector }) {\n\n  const businessObject = getServiceTaskLikeBusinessObject(element);\n\n  if (!businessObject) {\n    return null;\n  }\n\n  const fieldInjections = getExtensionElementsList(businessObject, 'camunda:Field');\n\n  const bpmnFactory = injector.get('bpmnFactory'),\n        commandStack = injector.get('commandStack');\n\n  const items = fieldInjections.map((field, index) => {\n    const id = element.id + '-fieldInjection-' + index;\n\n    return {\n      id,\n      label: getFieldLabel(field),\n      entries: FieldInjection({\n        idPrefix: id,\n        element,\n        field\n      }),\n      autoFocusEntry: id + '-name',\n      remove: removeFactory({ commandStack, element, field })\n    };\n  });\n\n  return {\n    items,\n    add: addFactory({ bpmnFactory, commandStack, element })\n  };\n}\n\nfunction removeFactory({ commandStack, element, field }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const businessObject = getServiceTaskLikeBusinessObject(element);\n\n    removeExtensionElements(element, businessObject, field, commandStack);\n  };\n}\n\nfunction addFactory({ bpmnFactory, commandStack, element }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const businessObject = getServiceTaskLikeBusinessObject(element);\n\n    const fieldInjection = createElement(\n      'camunda:Field',\n      {\n        name: undefined,\n        string: '', // string is the default type\n        stringValue: undefined\n      },\n      null,\n      bpmnFactory\n    );\n\n    addExtensionElements(element, businessObject, fieldInjection, bpmnFactory, commandStack);\n  };\n}\n\n// helper ///////////////\n\nfunction getFieldLabel(field) {\n  return field.name || '<empty>';\n}\n","import { TextFieldEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\n\nexport default function FormFieldConstraint(props) {\n\n  const {\n    constraint,\n    element,\n    idPrefix\n  } = props;\n\n  const entries = [\n    {\n      id: idPrefix + '-name',\n      component: Name,\n      constraint,\n      idPrefix,\n      element\n    },\n    {\n      id: idPrefix + '-config',\n      component: Config,\n      constraint,\n      idPrefix,\n      element\n    } ];\n\n  return entries;\n}\n\nfunction Name(props) {\n  const {\n    idPrefix,\n    element,\n    constraint\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: constraint,\n      properties: {\n        name: value\n      }\n    });\n  };\n\n  const getValue = () => {\n    return constraint.name;\n  };\n\n  return TextFieldEntry({\n    element: constraint,\n    id: idPrefix + '-name',\n    label: translate('Name'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction Config(props) {\n  const {\n    idPrefix,\n    element,\n    constraint\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: constraint,\n      properties: {\n        config: value\n      }\n    });\n  };\n\n  const getValue = () => {\n    return constraint.config;\n  };\n\n  return TextFieldEntry({\n    element: constraint,\n    id: idPrefix + '-config',\n    label: translate('Config'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n","import { TextFieldEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\n\nexport default function FormFieldProperty(props) {\n\n  const {\n    element,\n    idPrefix,\n    property\n  } = props;\n\n  const entries = [\n    {\n      id: idPrefix + '-id',\n      component: Id,\n      idPrefix,\n      property,\n      element\n    },\n    {\n      id: idPrefix + '-value',\n      component: Value,\n      idPrefix,\n      property,\n      element\n    } ];\n\n  return entries;\n}\n\nfunction Id(props) {\n  const {\n    idPrefix,\n    element,\n    property\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: property,\n      properties: {\n        id: value\n      }\n    });\n  };\n\n  const getValue = () => {\n    return property.id;\n  };\n\n  return TextFieldEntry({\n    element: property,\n    id: idPrefix + '-id',\n    label: translate('ID'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction Value(props) {\n  const {\n    idPrefix,\n    element,\n    property\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: property,\n      properties: {\n        value\n      }\n    });\n  };\n\n  const getValue = () => {\n    return property.value;\n  };\n\n  return TextFieldEntry({\n    element: property,\n    id: idPrefix + '-value',\n    label: translate('Value'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n","import { TextFieldEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\n\nexport default function FormFieldValue(props) {\n\n  const {\n    element,\n    idPrefix,\n    value\n  } = props;\n\n  const entries = [\n    {\n      id: idPrefix + '-id',\n      component: Id,\n      idPrefix,\n      value,\n      element\n    },\n    {\n      id: idPrefix + '-name',\n      component: Name,\n      idPrefix,\n      value,\n      element\n    } ];\n\n  return entries;\n}\n\nfunction Id(props) {\n  const {\n    idPrefix,\n    element,\n    value\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const setValue = (val) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: value,\n      properties: {\n        id: val\n      }\n    });\n  };\n\n  const getValue = () => {\n    return value.id;\n  };\n\n  return TextFieldEntry({\n    element: value,\n    id: idPrefix + '-id',\n    label: translate('ID'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction Name(props) {\n  const {\n    idPrefix,\n    element,\n    value\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const setValue = (val) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: value,\n      properties: {\n        name: val\n      }\n    });\n  };\n\n  const getValue = () => {\n    return value.name;\n  };\n\n  return TextFieldEntry({\n    element: value,\n    id: idPrefix + '-name',\n    label: translate('Name'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n","import { CollapsibleEntry, ListEntry, TextFieldEntry, SelectEntry } from '@bpmn-io/properties-panel';\n\nimport FormFieldConstraint from './FormFieldConstraint';\nimport FormFieldProperty from './FormFieldProperty';\nimport FormFieldValue from './FormFieldValue';\n\nimport {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport { without } from 'min-dash';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nconst CUSTOM_TYPE_VALUE = '',\n      DEFINED_TYPE_VALUES = [ 'boolean', 'date', 'enum', 'long', 'string', undefined ];\n\nexport default function FormField(props) {\n  const {\n    idPrefix,\n    formField\n  } = props;\n\n  const entries = [\n    {\n      id: idPrefix + '-formFieldID',\n      component: Id,\n      idPrefix,\n      formField\n    },\n    {\n      id: idPrefix + '-formFieldLabel',\n      component: Label,\n      idPrefix,\n      formField\n    },\n    {\n      id: idPrefix + '-formFieldType',\n      component: Type,\n      idPrefix,\n      formField\n    }\n  ];\n\n  if (!DEFINED_TYPE_VALUES.includes(formField.get('type'))) {\n    entries.push({\n      id: idPrefix + '-formFieldCustomType',\n      component: CustomType,\n      idPrefix,\n      formField\n    });\n  }\n\n  entries.push({\n    id: idPrefix + '-formFieldDefaultValue',\n    component: DefaultValue,\n    idPrefix,\n    formField\n  });\n\n  if (formField.get('type') === 'enum') {\n    entries.push({\n      id: idPrefix + '-formFieldValues',\n      component: ValueList,\n      formField,\n      idPrefix\n    });\n  }\n\n  entries.push({\n    id: idPrefix + '-formFieldConstraints',\n    component: ConstraintList,\n    formField,\n    idPrefix\n  },\n  {\n    id: idPrefix + '-formFieldProperties',\n    component: PropertiesList,\n    formField,\n    idPrefix\n  });\n\n  return entries;\n}\n\nfunction Id(props) {\n  const {\n    idPrefix,\n    element,\n    formField\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: formField,\n      properties: {\n        id: value\n      }\n    });\n  };\n\n  const getValue = () => {\n    return formField.get('id');\n  };\n\n  return TextFieldEntry({\n    element: formField,\n    id: idPrefix + '-formFieldID',\n    label: translate('ID'),\n    description: translate('Refers to the process variable name'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction Label(props) {\n  const {\n    idPrefix,\n    element,\n    formField\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: formField,\n      properties: {\n        label: value\n      }\n    });\n  };\n\n  const getValue = () => {\n    return formField.get('label');\n  };\n\n  return TextFieldEntry({\n    element: formField,\n    id: idPrefix + '-formFieldLabel',\n    label: translate('Label'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction Type(props) {\n  const {\n    idPrefix,\n    element,\n    formField\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: formField,\n      properties: {\n        type: value\n      }\n    });\n  };\n\n  const getValue = () => {\n    const type = formField.get('type');\n\n    return DEFINED_TYPE_VALUES.includes(type) ?\n      type :\n      CUSTOM_TYPE_VALUE;\n  };\n\n  const getOptions = () => {\n    const options = [\n      { label: translate('boolean'), value: 'boolean' },\n      { label: translate('date'), value: 'date' },\n      { label: translate('enum'), value: 'enum' },\n      { label: translate('long'), value: 'long' },\n      { label: translate('string'), value: 'string' },\n      { label: translate('<custom type>'), value: CUSTOM_TYPE_VALUE }\n    ];\n\n    // for the initial state only, we want to show an empty state\n    if (formField.get('type') === undefined) {\n      options.unshift({ label: translate('<none>'), value: '' });\n    }\n\n    return options;\n  };\n\n  return SelectEntry({\n    element: formField,\n    id: idPrefix + '-formFieldType',\n    label: translate('Type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nfunction CustomType(props) {\n  const {\n    idPrefix,\n    element,\n    formField\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    const type = value || '';\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: formField,\n      properties: {\n        type\n      }\n    });\n  };\n\n  const getValue = () => {\n    return formField.get('type');\n  };\n\n  return TextFieldEntry({\n    element: formField,\n    id: idPrefix + '-formFieldCustomType',\n    label: translate('Custom type'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction DefaultValue(props) {\n  const {\n    idPrefix,\n    element,\n    formField\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: formField,\n      properties: {\n        defaultValue: value\n      }\n    });\n  };\n\n  const getValue = () => {\n    return formField.get('defaultValue');\n  };\n\n  return TextFieldEntry({\n    element: formField,\n    id: idPrefix + '-formFieldDefaultValue',\n    label: translate('Default value'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction Value(props) {\n  const {\n    element,\n    id: idPrefix,\n    index,\n    item: value,\n    open\n  } = props;\n\n  const translate = useService('translate');\n\n  const id = `${ idPrefix }-value-${ index }`;\n\n  return (\n    <CollapsibleEntry\n      id={ id }\n      element={ element }\n      entries={ FormFieldValue({\n        idPrefix: id,\n        element,\n        value\n      }) }\n      label={ value.get('id') || translate('<empty>') }\n      open={ open }\n    />\n  );\n}\n\nfunction ValueList(props) {\n  const {\n    element,\n    formField,\n    idPrefix\n  } = props;\n\n  const id = `${ idPrefix }-formFieldValues`;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const values = formField.get('values') || [];\n\n  function addValue() {\n    const value = createElement(\n      'camunda:Value',\n      { id: undefined, name: undefined },\n      formField,\n      bpmnFactory\n    );\n\n    commandStack.execute('element.updateModdleProperties', {\n      element: element,\n      moddleElement: formField,\n      properties: {\n        values: [ ...formField.get('values'), value ]\n      }\n    });\n  }\n\n  function removeValue(value) {\n    commandStack.execute('element.updateModdleProperties', {\n      element: element,\n      moddleElement: formField,\n      properties: {\n        values: without(formField.get('values'), value)\n      }\n    });\n  }\n\n  return <ListEntry\n    element={ element }\n    autoFocusEntry={ `[data-entry-id=\"${id}-value-${values.length - 1}\"] input` }\n    id={ id }\n    label={ translate('Values') }\n    items={ values }\n    component={ Value }\n    onAdd={ addValue }\n    onRemove={ removeValue }\n  />;\n}\n\nfunction Constraint(props) {\n  const {\n    element,\n    id: idPrefix,\n    index,\n    item: constraint,\n    open\n  } = props;\n\n  const translate = useService('translate');\n\n  const id = `${ idPrefix }-constraint-${ index }`;\n\n  return (\n    <CollapsibleEntry\n      id={ id }\n      element={ element }\n      entries={ FormFieldConstraint({\n        constraint,\n        element,\n        idPrefix: id\n      }) }\n      label={ constraint.get('name') || translate('<empty>') }\n      open={ open }\n    />\n  );\n}\n\nfunction ConstraintList(props) {\n  const {\n    element,\n    formField,\n    idPrefix\n  } = props;\n\n  const id = `${ idPrefix }-formFieldConstraints`;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const businessObject = getBusinessObject(element);\n\n  let validation = formField.get('validation');\n\n  const constraints = (validation && validation.get('constraints')) || [];\n\n  function addConstraint() {\n    const commands = [];\n\n    // (1) ensure validation\n    if (!validation) {\n      validation = createElement(\n        'camunda:Validation',\n        { },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: formField,\n          properties: { validation }\n        }\n      });\n    }\n\n    // (2) add constraint\n    const constraint = createElement(\n      'camunda:Constraint',\n      { name: undefined, config: undefined },\n      validation,\n      bpmnFactory\n    );\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: validation,\n        properties: {\n          constraints: [ ...validation.get('constraints'), constraint ]\n        }\n      }\n    });\n\n    // (3) commit updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  }\n\n  function removeConstraint(constraint) {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: validation,\n      properties: {\n        constraints: without(validation.get('constraints'), constraint)\n      }\n    });\n  }\n\n  return (\n    <ListEntry\n      element={ element }\n      autoFocusEntry={ `[data-entry-id=\"${id}-constraint-${constraints.length - 1}\"] input` }\n      id={ id }\n      label={ translate('Constraints') }\n      items={ constraints }\n      component={ Constraint }\n      onAdd={ addConstraint }\n      onRemove={ removeConstraint } />\n  );\n}\n\nfunction Property(props) {\n  const {\n    element,\n    id: idPrefix,\n    index,\n    item: property,\n    open\n  } = props;\n\n  const translate = useService('translate');\n\n  const id = `${ idPrefix }-property-${ index }`;\n\n  return (\n    <CollapsibleEntry\n      id={ id }\n      element={ element }\n      entries={ FormFieldProperty({\n        element,\n        idPrefix: id,\n        property\n      }) }\n      label={ property.get('id') || translate('<empty>') }\n      open={ open }\n    />\n  );\n}\n\nfunction PropertiesList(props) {\n  const {\n    element,\n    formField,\n    idPrefix\n  } = props;\n\n  const id = `${ idPrefix }-formFieldProperties`;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const businessObject = getBusinessObject(element);\n\n  let properties = formField.get('properties');\n\n  const propertyEntries = (properties && properties.get('values')) || [];\n\n  function addProperty() {\n    const commands = [];\n\n    // (1) ensure properties\n    if (!properties) {\n      properties = createElement(\n        'camunda:Properties',\n        { },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: formField,\n          properties: { properties }\n        }\n      });\n    }\n\n    // (2) add property\n    const property = createElement(\n      'camunda:Property',\n      { id: undefined, value: undefined },\n      properties,\n      bpmnFactory\n    );\n\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: properties,\n        properties: {\n          values: [ ...properties.get('values'), property ]\n        }\n      }\n    });\n\n    // (3) commit updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  }\n\n  function removeProperty(property) {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: properties,\n      properties: {\n        values: without(properties.get('values'), property)\n      }\n    });\n  }\n\n  return <ListEntry\n    element={ element }\n    autoFocusEntry={ `[data-entry-id=\"${id}-property-${propertyEntries.length - 1}\"] input` }\n    id={ id }\n    label={ translate('Properties') }\n    items={ propertyEntries }\n    component={ Property }\n    onAdd={ addProperty }\n    onRemove={ removeProperty }\n  />;\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport FormField from './FormField';\n\nimport {\n  without\n} from 'min-dash';\n\nexport function FormDataProps({ element, injector }) {\n  if (!isFormDataSupported(element)) {\n    return;\n  }\n\n  const formFields = getFormFieldsList(element) || [];\n\n  const bpmnFactory = injector.get('bpmnFactory'),\n        commandStack = injector.get('commandStack');\n\n  const items = formFields.map((formField, index) => {\n    const id = element.id + '-formField-' + index;\n\n    return {\n      id,\n      label: formField.get('id') || '',\n      entries: FormField({\n        idPrefix: id,\n        element,\n        formField\n      }),\n      autoFocusEntry: id + '-formFieldID',\n      remove: removeFactory({ commandStack, element, formField })\n    };\n  });\n\n  return {\n    items,\n    add: addFactory({ bpmnFactory, commandStack, element })\n  };\n}\n\nfunction addFactory({ bpmnFactory, commandStack, element }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const commands = [];\n\n    // (1) get camunda:FormData\n    const formData = getFormData(element);\n\n    // (2) create camunda:FormField\n    const formField = createElement('camunda:FormField', {}, formData, bpmnFactory);\n\n    // (3) add formField to list\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: formData,\n        properties: {\n          fields: [ ...formData.get('fields'), formField ]\n        }\n      }\n    });\n\n    // (4) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n}\n\nfunction removeFactory({ commandStack, element, formField }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const formData = getFormData(element),\n          formFields = getFormFieldsList(element);\n\n    if (!formFields || !formFields.length) {\n      return;\n    }\n\n    const fields = without(formData.get('fields'), formField);\n\n    // update formData\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: formData,\n      properties: {\n        fields\n      }\n    });\n  };\n}\n\n\n// helper ///////////////////////////////\n\nfunction isFormDataSupported(element) {\n  const formData = getFormData(element);\n\n  return ((is(element, 'bpmn:StartEvent') && !is(element.parent, 'bpmn:SubProcess'))\n   || is(element, 'bpmn:UserTask')) && formData;\n}\n\nfunction getFormData(element) {\n  const bo = getBusinessObject(element);\n\n  return getExtensionElementsList(bo, 'camunda:FormData')[0];\n}\n\nfunction getFormFieldsList(element) {\n  const businessObject = getBusinessObject(element);\n\n  const formData = getFormData(businessObject);\n\n  return formData && formData.fields;\n}\n","import { isDefined } from 'min-dash';\n\nimport { getBusinessObject } from 'bpmn-js/lib/util/ModelUtil';\n\nimport { SelectEntry, isSelectEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport { without } from 'min-dash';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nconst FORM_KEY_PROPS = {\n  'camunda:formRef': undefined,\n  'camunda:formRefBinding': undefined,\n  'camunda:formRefVersion': undefined\n};\n\nconst FORM_REF_PROPS = {\n  'camunda:formKey': undefined\n};\n\nexport function FormTypeProps(props) {\n  return [\n    {\n      id: 'formType',\n      component: FormType,\n      isEdited: isSelectEntryEdited\n    }\n  ];\n}\n\nfunction FormType(props) {\n  const { element } = props;\n\n  const translate = useService('translate');\n  const bpmnFactory = useService('bpmnFactory');\n  const businessObject = getBusinessObject(element);\n  const commandStack = useService('commandStack');\n\n  let extensionElements = businessObject.get('extensionElements');\n\n  const getValue = () => {\n    if (isDefined(businessObject.get('camunda:formKey'))) {\n      return 'formKey';\n    } else if (isDefined(businessObject.get('camunda:formRef'))) {\n      return 'formRef';\n    } else if (getFormData(element)) {\n      return 'formData';\n    }\n\n    return '';\n  };\n\n  const setValue = (value) => {\n    const commands = removePropertiesCommands(element, commandStack);\n\n    if (value === 'formData') {\n\n      // (1) ensure extension elements\n      if (!extensionElements) {\n        extensionElements = createElement(\n          'bpmn:ExtensionElements',\n          { values: [] },\n          businessObject,\n          bpmnFactory\n        );\n\n        commands.push({\n          cmd: 'element.updateModdleProperties',\n          context: {\n            element,\n            moddleElement: businessObject,\n            properties: { extensionElements }\n          }\n        });\n      }\n\n      // (2) create camunda:FormData\n      const parent = extensionElements;\n\n      const formData = createElement('camunda:FormData', {\n        fields: []\n      }, parent, bpmnFactory);\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), formData ]\n          }\n        }\n      });\n\n    } else if (value === 'formKey') {\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: {\n            'camunda:formKey': ''\n          }\n        }\n      });\n\n    } else if (value === 'formRef') {\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: {\n            'camunda:formRef': ''\n          }\n        }\n      });\n    }\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  const getOptions = () => {\n    return [\n      { value: '', label: translate('<none>') },\n      { value: 'formRef', label: translate('Camunda Forms') },\n      { value: 'formKey', label: translate('Embedded or External Task Forms') },\n      { value: 'formData', label: translate('Generated Task Forms') }\n    ];\n  };\n\n  return SelectEntry({\n    element,\n    id: 'formType',\n    label: translate('Type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nfunction getFormData(element) {\n  const bo = getBusinessObject(element);\n\n  return getExtensionElementsList(bo, 'camunda:FormData')[0];\n}\n\n\nfunction removePropertiesCommands(element, commandStack) {\n  const businessObject = getBusinessObject(element);\n  const extensionElements = businessObject.get('extensionElements');\n  const commands = [];\n\n  // (1) reset formKey and formRef\n  commands.push({\n    cmd: 'element.updateModdleProperties',\n    context: {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        ...FORM_KEY_PROPS,\n        ...FORM_REF_PROPS\n      }\n    }\n  });\n\n  // (2) remove formData if defined\n  if (extensionElements && getFormData(element)) {\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: extensionElements,\n        properties: {\n          values: without(extensionElements.get('values'), getFormData(element))\n        }\n      }\n    });\n  }\n\n  return commands;\n}","import { isDefined } from 'min-dash';\n\nimport {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nexport function getFormRefBinding(element) {\n  const businessObject = getBusinessObject(element);\n\n  return businessObject.get('camunda:formRefBinding') || 'latest';\n}\n\nexport function getFormType(element) {\n  const businessObject = getBusinessObject(element);\n\n  if (isDefined(businessObject.get('camunda:formKey'))) {\n    return 'formKey';\n  } else if (isDefined(businessObject.get('camunda:formRef'))) {\n    return 'formRef';\n  }\n}\n\nexport function isFormSupported(element) {\n  return (is(element, 'bpmn:StartEvent') && !is(element.parent, 'bpmn:SubProcess'))\n    || is(element, 'bpmn:UserTask');\n}","import { isUndefined } from 'min-dash';\n\nimport { getBusinessObject } from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited, SelectEntry, isSelectEntryEdited } from '@bpmn-io/properties-panel';\n\nimport { FormTypeProps } from './FormTypeProps';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getFormType,\n  getFormRefBinding,\n  isFormSupported\n} from '../utils/FormTypeUtils';\n\n\nexport function FormProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!isFormSupported(element)) {\n    return [];\n  }\n\n  const formType = getFormType(element),\n        bindingType = getFormRefBinding(element);\n\n  // (1) display form type select\n  const entries = [\n    ...FormTypeProps({ element })\n  ];\n\n  // (2) display form properties based on type\n  if (formType === 'formKey') {\n    entries.push({\n      id: 'formKey',\n      component: FormKey,\n      isEdited: isTextFieldEntryEdited\n    });\n  } else if (formType === 'formRef') {\n    entries.push({\n      id: 'formRef',\n      component: FormRef,\n      isEdited: isTextFieldEntryEdited\n    }, {\n      id: 'formRefBinding',\n      component: Binding,\n      isEdited: isSelectEntryEdited\n    });\n\n    if (bindingType === 'version') {\n      entries.push({\n        id: 'formRefVersion',\n        component: Version,\n        isEdited: isTextFieldEntryEdited\n      });\n    }\n  }\n\n  return entries;\n}\n\nfunction FormKey(props) {\n  const { element } = props;\n\n  const debounce = useService('debounceInput');\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:formKey');\n  };\n\n  const setValue = (value) => {\n    modeling.updateProperties(element, {\n      'camunda:formKey': isUndefined(value) ? '' : value\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'formKey',\n    label: translate('Form key'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction FormRef(props) {\n  const { element } = props;\n\n  const debounce = useService('debounceInput');\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:formRef');\n  };\n\n  const setValue = (value) => {\n    modeling.updateProperties(element, {\n      'camunda:formRef': isUndefined(value) ? '' : value\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'formRef',\n    label: translate('Form reference'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction Binding(props) {\n  const { element } = props;\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    return getFormRefBinding(element);\n  };\n\n  const setValue = (value) => {\n    modeling.updateProperties(element, {\n      'camunda:formRefBinding': value\n    });\n  };\n\n  // Note: default is \"latest\",\n  // cf. https://docs.camunda.org/manual/develop/reference/bpmn20/custom-extensions/extension-attributes/#formrefbinding\n  const getOptions = () => {\n\n    const options = [\n      { value: 'deployment', label: translate('deployment') },\n      { value: 'latest', label: translate('latest') },\n      { value: 'version', label: translate('version') }\n    ];\n\n    return options;\n  };\n\n  return SelectEntry({\n    element,\n    id: 'formRefBinding',\n    label: translate('Binding'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nfunction Version(props) {\n  const { element } = props;\n\n  const debounce = useService('debounceInput');\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:formRefVersion');\n  };\n\n  const setValue = (value) => {\n    modeling.updateProperties(element, {\n      'camunda:formRefVersion': value\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'formRefVersion',\n    label: translate('Version'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\n\nexport function HistoryCleanupProps(props) {\n  const {\n    element\n  } = props;\n\n  const businessObject = getBusinessObject(element);\n\n  if (!is(element, 'bpmn:Process') &&\n      !(is(element, 'bpmn:Participant') && businessObject.get('processRef'))) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'historyTimeToLive',\n      component: HistoryTimeToLive,\n      isEdited: isTextFieldEntryEdited\n    },\n  ];\n}\n\nfunction HistoryTimeToLive(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const process = getProcess(element);\n\n  const getValue = () => {\n    return process.get('camunda:historyTimeToLive') || '';\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: process,\n      properties: {\n        'camunda:historyTimeToLive': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'historyTimeToLive',\n    label: translate('Time to live'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper //////////////////\n\nfunction getProcess(element) {\n  return is(element, 'bpmn:Process') ?\n    getBusinessObject(element) :\n    getBusinessObject(element).get('processRef');\n}\n","import {\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  TextFieldEntry,\n  isTextFieldEntryEdited,\n  SelectEntry,\n  isSelectEntryEdited\n} from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getImplementationType\n} from '../utils/ImplementationTypeUtils';\n\nexport function DmnImplementationProps(props) {\n  const {\n    element\n  } = props;\n\n  const entries = [];\n\n  const implementationType = getImplementationType(element);\n  const bindingType = getDecisionRefBinding(element);\n\n  if (implementationType !== 'dmn') {\n    return entries;\n  }\n\n  // (1) decisionRef\n  entries.push({\n    id: 'decisionRef',\n    component: DecisionRef,\n    isEdited: isTextFieldEntryEdited\n  });\n\n\n  // (2) binding\n  entries.push({\n    id: 'decisionRefBinding',\n    component: Binding,\n    isEdited: isSelectEntryEdited\n  });\n\n  // (3) version\n  if (bindingType === 'version') {\n    entries.push({\n      id: 'decisionRefVersion',\n      component: Version,\n      isEdited: isTextFieldEntryEdited\n    });\n  }\n\n  // (4) versionTag\n  if (bindingType === 'versionTag') {\n    entries.push({\n      id: 'decisionRefVersionTag',\n      component: VersionTag,\n      isEdited: isTextFieldEntryEdited\n    });\n  }\n\n  // (5) tenantId\n  entries.push({\n    id: 'decisionRefTenantId',\n    component: TenantId,\n    isEdited: isTextFieldEntryEdited\n  });\n\n  // (6) resultVariable\n  entries.push({\n    id: 'decisionRefResultVariable',\n    component: ResultVariable,\n    isEdited: isTextFieldEntryEdited\n  });\n\n  // (7) mapDecisionResult\n  if (getResultVariable(element)) {\n    entries.push({\n      id: 'mapDecisionResult',\n      component: MapDecisionResult,\n      isEdited: isSelectEntryEdited\n    });\n  }\n\n  return entries;\n}\n\nfunction DecisionRef(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:decisionRef');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:decisionRef': value || ''\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'decisionRef',\n    label: translate('Decision reference'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction Binding(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    return getDecisionRefBinding(element);\n  };\n\n  const setValue = (value) => {\n    const businessObject = getBusinessObject(element);\n\n    // reset version properties on binding type change\n    const updatedProperties = {\n      'camunda:decisionRefVersion': undefined,\n      'camunda:decisionRefVersionTag': undefined,\n      'camunda:decisionRefBinding': value\n    };\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: updatedProperties\n    });\n  };\n\n  // Note: default is \"latest\",\n  // cf. https://docs.camunda.org/manual/latest/reference/bpmn20/custom-extensions/extension-attributes/#decisionrefbinding\n  const getOptions = () => {\n\n    const options = [\n      { value: 'deployment', label: translate('deployment') },\n      { value: 'latest', label: translate('latest') },\n      { value: 'version', label: translate('version') },\n      { value: 'versionTag', label: translate('versionTag') }\n    ];\n\n    return options;\n  };\n\n  return SelectEntry({\n    element,\n    id: 'decisionRefBinding',\n    label: translate('Binding'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nfunction Version(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:decisionRefVersion');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:decisionRefVersion': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'decisionRefVersion',\n    label: translate('Version'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction VersionTag(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:decisionRefVersionTag');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:decisionRefVersionTag': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'decisionRefVersionTag',\n    label: translate('Version tag'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction TenantId(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:decisionRefTenantId');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:decisionRefTenantId': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'decisionRefTenantId',\n    label: translate('Tenant ID'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ResultVariable(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return getResultVariable(businessObject);\n  };\n\n  // Note: camunda:mapDecisionResult got cleaned up in modeling behavior\n  // cf. https://github.com/camunda/camunda-bpmn-js/blob/main/lib/camunda-platform/features/modeling/behavior/UpdateResultVariableBehavior.js\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:resultVariable': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'decisionRefResultVariable',\n    label: translate('Result variable'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction MapDecisionResult(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:mapDecisionResult') || 'resultList';\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:mapDecisionResult': value\n      }\n    });\n  };\n\n  // Note: default is \"resultList\",\n  // cf. https://docs.camunda.org/manual/latest/reference/bpmn20/custom-extensions/extension-attributes/#mapdecisionresult\n  const getOptions = () => {\n    const options = [\n      { value: 'collectEntries', label: translate('collectEntries (List<Object>)') },\n      { value: 'resultList', label: translate('resultList (List<Map<String, Object>>)') },\n      { value: 'singleEntry', label: translate('singleEntry (TypedValue)') },\n      { value: 'singleResult', label: translate('singleResult (Map<String, Object>)') }\n    ];\n\n    return options;\n  };\n\n  return SelectEntry({\n    element,\n    id: 'mapDecisionResult',\n    label: translate('Map decision result'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\n\n// helper ////////////////////\n\nfunction getDecisionRefBinding(element) {\n  const businessObject = getBusinessObject(element);\n  return businessObject.get('camunda:decisionRefBinding') || 'latest';\n}\n\nfunction getResultVariable(element) {\n  const businessObject = getBusinessObject(element);\n  return businessObject.get('camunda:resultVariable');\n}","import {\n  sortBy, without\n} from 'min-dash';\n\nimport { SelectEntry, isSelectEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  getImplementationType,\n  isDmnCapable,\n  isExternalCapable,\n  isServiceTaskLike,\n  getServiceTaskLikeBusinessObject\n} from '../utils/ImplementationTypeUtils';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst DELEGATE_PROPS = {\n  'camunda:class': undefined,\n  'camunda:expression': undefined,\n  'camunda:delegateExpression': undefined,\n  'camunda:resultVariable': undefined\n};\n\nconst DMN_CAPABLE_PROPS = {\n  'camunda:decisionRef': undefined,\n  'camunda:decisionRefBinding': 'latest',\n  'camunda:decisionRefVersion': undefined,\n  'camunda:mapDecisionResult': 'resultList',\n  'camunda:decisionRefTenantId': undefined\n};\n\nconst EXTERNAL_CAPABLE_PROPS = {\n  'camunda:type': undefined,\n  'camunda:topic': undefined\n};\n\nconst IMPLEMENTATION_TYPE_NONE_LABEL = '<none>',\n      IMPLEMENTATION_TYPE_JAVA_LABEL = 'Java class',\n      IMPLEMENTATION_TYPE_EXPRESSION_LABEL = 'Expression',\n      IMPLEMENTATION_TYPE_DELEGATE_LABEL = 'Delegate expression',\n      IMPLEMENTATION_TYPE_DMN_LABEL = 'DMN',\n      IMPLEMENTATION_TYPE_EXTERNAL_LABEL = 'External',\n      IMPLEMENTATION_TYPE_CONNECTOR_LABEL = 'Connector';\n\n\nexport function ImplementationTypeProps(props) {\n  return [\n    {\n      id: 'implementationType',\n      component: ImplementationType,\n      isEdited: isSelectEntryEdited\n    },\n  ];\n}\n\n\nfunction ImplementationType(props) {\n  const { element } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    return getImplementationType(element) || '';\n  };\n\n  const setValue = (value) => {\n\n    const oldType = getImplementationType(element);\n    const businessObject = getServiceTaskLikeBusinessObject(element);\n    const commands = [];\n\n    let updatedProperties = DELEGATE_PROPS;\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) class, expression, delegateExpression\n    if (isDelegateType(value)) {\n\n      updatedProperties = {\n        ...updatedProperties,\n        [value]: isDelegateType(oldType) ? businessObject.get(`camunda:${oldType}`) : ''\n      };\n\n    }\n\n    // (2) dmn\n    if (isDmnCapable(businessObject)) {\n      updatedProperties = {\n        ...updatedProperties,\n        ...DMN_CAPABLE_PROPS\n      };\n\n      if (value === 'dmn') {\n        updatedProperties = {\n          ...updatedProperties,\n          'camunda:decisionRef': ''\n        };\n      }\n    }\n\n    // (3) external\n    // Note: error event definition elements got cleaned up in modeling behavior\n    // cf. https://github.com/camunda/camunda-bpmn-js/blob/main/lib/camunda-platform/features/modeling/behavior/DeleteErrorEventDefinitionBehavior.js\n    if (isExternalCapable(businessObject)) {\n      updatedProperties = {\n        ...updatedProperties,\n        ...EXTERNAL_CAPABLE_PROPS\n      };\n\n      if (value === 'external') {\n        updatedProperties = {\n          ...updatedProperties,\n          'camunda:type': 'external',\n          'camunda:topic': ''\n        };\n      }\n    }\n\n    // (4) connector\n    if (isServiceTaskLike(businessObject)) {\n\n      // (4.1) remove all connectors on type change\n      const connectors = getConnectors(businessObject);\n\n      if (connectors.length) {\n        commands.push({\n          cmd: 'element.updateModdleProperties',\n          context: {\n            element,\n            moddleElement: extensionElements,\n            properties: {\n              values: without(extensionElements.get('values'), value => connectors.includes(value))\n            }\n          }\n        });\n      }\n\n      // (4.2) create connector\n      if (value === 'connector') {\n\n        // ensure extension elements\n        if (!extensionElements) {\n          extensionElements = createElement(\n            'bpmn:ExtensionElements',\n            { values: [] },\n            businessObject,\n            bpmnFactory\n          );\n\n          commands.push(UpdateModdlePropertiesCommand(element, businessObject, { extensionElements }));\n        }\n\n        const connector = createElement(\n          'camunda:Connector',\n          {},\n          extensionElements,\n          bpmnFactory\n        );\n\n        commands.push({\n          cmd: 'element.updateModdleProperties',\n          context: {\n            element,\n            moddleElement: extensionElements,\n            properties: {\n              values: [ ...extensionElements.get('values'), connector ]\n            }\n          }\n        });\n      }\n\n    }\n\n    // (5) collect all property updates\n    commands.push(UpdateModdlePropertiesCommand(element, businessObject, updatedProperties));\n\n    // (6) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  const getOptions = () => {\n    const businessObject = getServiceTaskLikeBusinessObject(element);\n\n    const options = [\n      { value: '', label: translate(IMPLEMENTATION_TYPE_NONE_LABEL) },\n      { value: 'class', label: translate(IMPLEMENTATION_TYPE_JAVA_LABEL) },\n      { value: 'expression', label: translate(IMPLEMENTATION_TYPE_EXPRESSION_LABEL) },\n      { value: 'delegateExpression', label: translate(IMPLEMENTATION_TYPE_DELEGATE_LABEL) }\n    ];\n\n    if (isDmnCapable(businessObject)) {\n      options.push({ value: 'dmn', label: translate(IMPLEMENTATION_TYPE_DMN_LABEL) });\n    }\n\n    if (isExternalCapable(businessObject)) {\n      options.push({ value: 'external', label: translate(IMPLEMENTATION_TYPE_EXTERNAL_LABEL) });\n    }\n\n    if (isServiceTaskLike(businessObject)) {\n      options.push({ value: 'connector', label: translate(IMPLEMENTATION_TYPE_CONNECTOR_LABEL) });\n    }\n\n    return sortByPriority(options);\n  };\n\n  return SelectEntry({\n    element,\n    id: 'implementationType',\n    label: translate('Type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\n\n// helper ///////////////////////\n\nfunction isDelegateType(type) {\n  return [ 'class', 'expression', 'delegateExpression' ].includes(type);\n}\n\nfunction getConnectors(businessObject) {\n  return getExtensionElementsList(businessObject, 'camunda:Connector');\n}\n\nfunction UpdateModdlePropertiesCommand(element, businessObject, newProperties) {\n  return {\n    cmd: 'element.updateModdleProperties',\n    context: {\n      element,\n      moddleElement: businessObject,\n      properties: newProperties\n    }\n  };\n}\n\nfunction sortByPriority(options) {\n  const priorities = {\n    [IMPLEMENTATION_TYPE_NONE_LABEL]: 0,\n    [IMPLEMENTATION_TYPE_JAVA_LABEL]: 3,\n    [IMPLEMENTATION_TYPE_EXPRESSION_LABEL]: 4,\n    [IMPLEMENTATION_TYPE_DELEGATE_LABEL]: 5,\n    [IMPLEMENTATION_TYPE_DMN_LABEL]: 1,\n    [IMPLEMENTATION_TYPE_EXTERNAL_LABEL]: 2,\n    [IMPLEMENTATION_TYPE_CONNECTOR_LABEL]: 6\n  };\n\n  return sortBy(options, o => priorities[o.label]);\n}\n","import { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport { DmnImplementationProps } from './DmnImplementationProps';\nimport { ImplementationTypeProps } from './ImplementationTypeProps';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  getImplementationType,\n  getServiceTaskLikeBusinessObject\n} from '../utils/ImplementationTypeUtils';\n\n\nexport function ImplementationProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!getServiceTaskLikeBusinessObject(element)) {\n    return [];\n  }\n\n  const implementationType = getImplementationType(element);\n\n  // (1) display implementation type select\n  const entries = [\n    ...ImplementationTypeProps({ element })\n  ];\n\n  // (2) display implementation properties based on type\n  if (implementationType === 'class') {\n    entries.push({\n      id: 'javaClass',\n      component: JavaClass,\n      isEdited: isTextFieldEntryEdited\n    });\n  } else if (implementationType === 'expression') {\n    entries.push(\n      {\n        id: 'expression',\n        component: Expression,\n        isEdited: isTextFieldEntryEdited\n      },\n      {\n        id: 'expressionResultVariable',\n        component: ResultVariable,\n        isEdited: isTextFieldEntryEdited\n      }\n    );\n  } else if (implementationType === 'delegateExpression') {\n    entries.push(\n      {\n        id: 'delegateExpression',\n        component: DelegateExpression,\n        isEdited: isTextFieldEntryEdited\n      }\n    );\n  } else if (implementationType === 'dmn') {\n    entries.push(...DmnImplementationProps({ element }));\n  } else if (implementationType === 'external') {\n    entries.push(\n      {\n        id: 'externalTopic',\n        component: Topic,\n        isEdited: isTextFieldEntryEdited\n      }\n    );\n  } else if (implementationType === 'connector') {\n    entries.push(\n      {\n        id: 'connectorId',\n        component: ConnectorId,\n        isEdited: isTextFieldEntryEdited\n      }\n    );\n  }\n\n  return entries;\n}\n\nexport function JavaClass(props) {\n  const {\n    element,\n    businessObject = getServiceTaskLikeBusinessObject(element),\n    id = 'javaClass'\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return businessObject.get('camunda:class');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:class': value || ''\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id,\n    label: translate('Java class'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nexport function Expression(props) {\n  const {\n    element,\n    businessObject = getServiceTaskLikeBusinessObject(element),\n    id = 'expression'\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return businessObject.get('camunda:expression');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:expression': value || ''\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id,\n    label: translate('Expression'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ResultVariable(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = getServiceTaskLikeBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:resultVariable');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:resultVariable': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'expressionResultVariable',\n    label: translate('Result variable'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nexport function DelegateExpression(props) {\n  const {\n    element,\n    businessObject = getServiceTaskLikeBusinessObject(element),\n    id = 'delegateExpression'\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const getValue = () => {\n    return businessObject.get('camunda:delegateExpression');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:delegateExpression': value || ''\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id,\n    label: translate('Delegate expression'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction Topic(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = getServiceTaskLikeBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:topic');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:topic': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'externalTopic',\n    label: translate('Topic'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ConnectorId(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const connector = getConnector(element);\n\n  const getValue = () => {\n    return connector.get('camunda:connectorId');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: connector,\n      properties: {\n        'camunda:connectorId': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'connectorId',\n    label: translate('Connector ID'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper //////////////////\n\nfunction getConnectors(businessObject) {\n  return getExtensionElementsList(businessObject, 'camunda:Connector');\n}\n\nfunction getConnector(element) {\n  const businessObject = getServiceTaskLikeBusinessObject(element);\n  const connectors = getConnectors(businessObject);\n\n  return connectors[0];\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\n\nexport function InitiatorProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!isInitiator(element)) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'initiator',\n      component: Initiator,\n      isEdited: isTextFieldEntryEdited\n    },\n  ];\n}\n\nfunction Initiator(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:initiator');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:initiator': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'initiator',\n    label: translate('Initiator'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper ///////////////////\n\nfunction isInitiator(element) {\n  return is(element, 'camunda:Initiator') && !is(element.parent, 'bpmn:SubProcess');\n}","import { CheckboxEntry, isCheckboxEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  isAny\n} from 'bpmn-js/lib/features/modeling/util/ModelingUtil';\n\nimport {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  filter\n} from 'min-dash';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getSignalEventDefinition\n} from '../../bpmn/utils/EventDefinitionUtil';\n\nimport {\n  addExtensionElements,\n  getExtensionElementsList,\n  removeExtensionElements\n} from '../../../utils/ExtensionElementsUtil';\n\n\n/**\n * Cf. https://docs.camunda.org/manual/7.15/reference/bpmn20/subprocesses/call-activity/#passing-variables\n */\nexport function InMappingPropagationProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!areInMappingsSupported(element)) {\n    return [];\n  }\n\n  const entries = [\n    {\n      id: 'inMapping-propagation',\n      component: PropagateAll,\n      isEdited: isCheckboxEntryEdited\n    }\n  ];\n\n  if (isPropagateAll(element)) {\n    entries.push({\n      id: 'inMapping-propagation-local',\n      component: Local,\n      isEdited: isCheckboxEntryEdited\n    });\n  }\n\n  return entries;\n}\n\nfunction PropagateAll(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    return isPropagateAll(element);\n  };\n\n  const setValue = value => {\n    if (value) {\n      addInMapping();\n    } else {\n      removeInMapping();\n    }\n  };\n\n  function addInMapping() {\n    const businessObject = getSignalEventDefinition(element) || getBusinessObject(element);\n\n    const mapping = createElement(\n      'camunda:In',\n      {\n        variables: 'all'\n      },\n      null,\n      bpmnFactory\n    );\n\n    addExtensionElements(element, businessObject, mapping, bpmnFactory, commandStack);\n  }\n\n  function removeInMapping() {\n    const businessObject = getSignalEventDefinition(element) || getBusinessObject(element);\n    const mappings = findRelevantInMappings(element);\n\n    removeExtensionElements(element, businessObject, mappings, commandStack);\n  }\n\n  return CheckboxEntry({\n    id: 'inMapping-propagation',\n    label: translate('Propagate all variables'),\n    getValue,\n    setValue\n  });\n}\n\nfunction Local(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const mapping = findRelevantInMappings(element)[0];\n\n  const getValue = () => {\n    return mapping.get('camunda:local');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: mapping,\n      properties: {\n        local: value\n      }\n    });\n  };\n\n  return CheckboxEntry({\n    element,\n    id: 'inMapping-propagation-local',\n    label: translate('Local'),\n    getValue,\n    setValue\n  });\n}\n\n\n// helper //////////////////////////\n\nfunction areInMappingsSupported(element) {\n  const signalEventDefinition = getSignalEventDefinition(element);\n\n  if (signalEventDefinition) {\n    return isAny(element, [\n      'bpmn:IntermediateThrowEvent',\n      'bpmn:EndEvent'\n    ]);\n  }\n\n  return is(element, 'bpmn:CallActivity');\n}\n\nfunction getInMappings(element) {\n  const businessObject = getBusinessObject(element);\n  const signalEventDefinition = getSignalEventDefinition(businessObject);\n  return getExtensionElementsList(signalEventDefinition || businessObject, 'camunda:In');\n}\n\nfunction findRelevantInMappings(element) {\n  const inMappings = getInMappings(element);\n  return filter(inMappings, function(mapping) {\n    const variables = mapping.get('variables');\n    return variables && variables === 'all';\n  });\n}\n\nfunction isPropagateAll(element) {\n  const mappings = findRelevantInMappings(element);\n  return !!mappings.length;\n}\n","import { CheckboxEntry, SelectEntry, TextFieldEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nconst DEFAULT_PROPS = {\n  'source': undefined,\n  'sourceExpression': undefined\n};\n\n\nexport default function InOutMapping(props) {\n  const {\n    idPrefix,\n    mapping\n  } = props;\n\n  const type = getInOutType(mapping);\n  const entries = [];\n\n  // (1) Type\n  entries.push({\n    id: idPrefix + '-type',\n    component: Type,\n    idPrefix,\n    mapping\n  });\n\n  // (2) Source\n  if (type === 'source') {\n    entries.push({\n      id: idPrefix + '-source',\n      component: Source,\n      idPrefix,\n      mapping\n    });\n  }\n\n  // (3) Source expression\n  if (type === 'sourceExpression') {\n    entries.push({\n      id: idPrefix + '-sourceExpression',\n      component: SourceExpression,\n      idPrefix,\n      mapping\n    });\n  }\n\n  // (4) Target\n  entries.push({\n    id: idPrefix + '-target',\n    component: Target,\n    idPrefix,\n    mapping\n  });\n\n  // (5) Local\n  entries.push({\n    id: idPrefix + '-local',\n    component: Local,\n    idPrefix,\n    mapping\n  });\n\n  return entries;\n}\n\nfunction Type(props) {\n  const {\n    idPrefix,\n    element,\n    mapping\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const getValue = (mapping) => {\n    return getInOutType(mapping);\n  };\n\n  const setValue = (value) => {\n    const properties = {\n      ...DEFAULT_PROPS,\n      [ value ]: ''\n    };\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: mapping,\n      properties\n    });\n  };\n\n  const getOptions = () => {\n\n    const options = [\n      {\n        label: translate('Source'),\n        value: 'source'\n      },\n      {\n        label: translate('Source expression'),\n        value: 'sourceExpression'\n      }\n    ];\n\n    return options;\n  };\n\n  return SelectEntry({\n    element: mapping,\n    id: idPrefix + '-type',\n    label: translate('Type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\nfunction Source(props) {\n  const {\n    idPrefix,\n    element,\n    mapping\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: mapping,\n      properties: {\n        source: value\n      }\n    });\n  };\n\n  const getValue = (mapping) => {\n    return mapping.get('camunda:source');\n  };\n\n  return TextFieldEntry({\n    element: mapping,\n    id: idPrefix + '-source',\n    label: translate('Source'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction SourceExpression(props) {\n  const {\n    idPrefix,\n    element,\n    mapping\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: mapping,\n      properties: {\n        sourceExpression: value\n      }\n    });\n  };\n\n  const getValue = (mapping) => {\n    return mapping.get('camunda:sourceExpression');\n  };\n\n  return TextFieldEntry({\n    element: mapping,\n    id: idPrefix + '-sourceExpression',\n    label: translate('Source expression'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction Target(props) {\n  const {\n    idPrefix,\n    element,\n    mapping\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: mapping,\n      properties: {\n        target: value\n      }\n    });\n  };\n\n  const getValue = (mapping) => {\n    return mapping.get('camunda:target');\n  };\n\n  return TextFieldEntry({\n    element: mapping,\n    id: idPrefix + '-target',\n    label: translate('Target'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction Local(props) {\n  const {\n    idPrefix,\n    element,\n    mapping\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    return mapping.get('camunda:local');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: mapping,\n      properties: {\n        local: value\n      }\n    });\n  };\n\n  return CheckboxEntry({\n    element,\n    id: idPrefix + '-local',\n    label: translate('Local'),\n    getValue,\n    setValue\n  });\n}\n\n\n// helper ///////////////////\n\nfunction getInOutType(mapping) {\n  let inOutType = '';\n\n  if (typeof mapping.source !== 'undefined') {\n    inOutType = 'source';\n  }\n  else if (typeof mapping.sourceExpression !== 'undefined') {\n    inOutType = 'sourceExpression';\n  }\n\n  return inOutType;\n}\n","import {\n  filter\n} from 'min-dash';\n\nimport {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  isAny\n} from 'bpmn-js/lib/features/modeling/util/ModelingUtil';\n\nimport {\n  getSignalEventDefinition\n} from '../../bpmn/utils/EventDefinitionUtil';\n\nimport {\n  addExtensionElements,\n  getExtensionElementsList,\n  removeExtensionElements\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport InOutMapping from './InOutMapping';\n\n/**\n * Cf. https://docs.camunda.org/manual/latest/reference/bpmn20/custom-extensions/extension-elements/#in\n */\nexport function InMappingProps({ element, injector }) {\n  if (!areInMappingsSupported(element)) {\n    return null;\n  }\n\n  const variableMappings = getInMappings(element) || [];\n\n  const bpmnFactory = injector.get('bpmnFactory'),\n        commandStack = injector.get('commandStack');\n\n  const items = variableMappings.map((mapping, index) => {\n    const id = element.id + '-inMapping-' + index;\n\n    return {\n      id,\n      label: mapping.get('target') ? <code>{ mapping.get('target') }</code> : '',\n      entries: InOutMapping({\n        idPrefix: id,\n        element,\n        mapping\n      }),\n      autoFocusEntry: id + '-target',\n      remove: removeFactory({ commandStack, element, mapping })\n    };\n  });\n\n  return {\n    items,\n    add: addFactory({ bpmnFactory, commandStack, element })\n  };\n}\n\nfunction removeFactory({ commandStack, element, mapping }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const businessObject = getSignalEventDefinition(element) || getBusinessObject(element);\n\n    removeExtensionElements(element, businessObject, mapping, commandStack);\n  };\n}\n\nfunction addFactory({ bpmnFactory, commandStack, element }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const businessObject = getSignalEventDefinition(element) || getBusinessObject(element);\n\n    const newMapping = createElement('camunda:In', {\n      source: '', // source is the default type\n    }, null, bpmnFactory);\n\n    addExtensionElements(element, businessObject, newMapping, bpmnFactory, commandStack);\n  };\n}\n\n// helper ///////////////\n\nfunction getInMappings(element) {\n  const businessObject = getBusinessObject(element);\n  const signalEventDefinition = getSignalEventDefinition(businessObject);\n  const mappings = getExtensionElementsList(signalEventDefinition || businessObject, 'camunda:In');\n\n  // only retrieve relevant mappings here, others are handled in other groups\n  // mapping.businessKey => camunda-platform/CallAvtivityProps\n  // mapping.variables => camunda-platform/InMappingPropagationProps\n  return filter(mappings, function(mapping) {\n    return !mapping.businessKey && !(mapping.variables && mapping.variables === 'all');\n  });\n}\n\nfunction areInMappingsSupported(element) {\n  const signalEventDefinition = getSignalEventDefinition(element);\n\n  if (signalEventDefinition) {\n    return isAny(element, [\n      'bpmn:IntermediateThrowEvent',\n      'bpmn:EndEvent'\n    ]);\n  }\n\n  return is(element, 'bpmn:CallActivity');\n}\n","import InputOutputParameter from './InputOutputParameter';\n\nimport {\n  AddParameterCmd,\n  areInputParametersSupported,\n  getInputParameters,\n  getInputOutput\n} from '../utils/InputOutputUtil';\n\nimport { without } from 'min-dash';\n\n\nexport function InputProps(props) {\n  const {\n    element,\n    injector\n  } = props;\n\n  if (!areInputParametersSupported(element)) {\n    return null;\n  }\n\n  const inputParameters = getInputParameters(element) || [];\n\n  const bpmnFactory = injector.get('bpmnFactory'),\n        commandStack = injector.get('commandStack');\n\n  const items = inputParameters.map((parameter, index) => {\n    const id = element.id + '-inputParameter-' + index;\n\n    return {\n      id,\n      label: parameter.get('name') || '',\n      entries: InputOutputParameter({\n        idPrefix: id,\n        element,\n        parameter\n      }),\n      autoFocusEntry: id + '-name',\n      remove: removeFactory({ element, commandStack, parameter })\n    };\n  });\n\n  function add(event) {\n    event.stopPropagation();\n\n    commandStack.execute(\n      'properties-panel.multi-command-executor',\n      AddParameterCmd(element, 'camunda:InputParameter', bpmnFactory)\n    );\n  }\n\n  return {\n    items,\n    add,\n  };\n}\n\nfunction removeFactory(props) {\n  const {\n    commandStack,\n    element,\n    parameter\n  } = props;\n\n  return function(event) {\n    event.stopPropagation();\n\n    const inputOutput = getInputOutput(element);\n\n    if (!inputOutput) {\n      return;\n    }\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: inputOutput,\n      properties: {\n        inputParameters: without(inputOutput.get('inputParameters'), parameter)\n      }\n    });\n  };\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getTimerEventDefinition\n} from '../../bpmn/utils/EventDefinitionUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\n\nexport function JobExecutionProps(props) {\n  const {\n    element\n  } = props;\n\n  const businessObject = getBusinessObject(element);\n\n  const entries = [];\n\n  // (1) add retryTimeCycle field for camunda:asyncCapable enabled Elements\n  // or TimerEvents\n  if ((is(element, 'camunda:AsyncCapable') && isAsync(businessObject)) ||\n      isTimerEvent(element)) {\n    entries.push({\n      id: 'retryTimeCycle',\n      component: RetryTimeCycle,\n      isEdited: isTextFieldEntryEdited\n    });\n  }\n\n  // (2) add jobPriority field for camunda:jobPriorized with async enabled\n  //  or Processes\n  //  or Processes referred to by participants\n  //  or TimerEvents\n  if ((is(element, 'camunda:JobPriorized') && isAsync(businessObject)) ||\n    is(element, 'bpmn:Process') ||\n    (is(element, 'bpmn:Participant') && businessObject.get('processRef')) ||\n    isTimerEvent(element)) {\n    entries.push({\n      id: 'jobPriority',\n      component: JobPriority,\n      isEdited: isTextFieldEntryEdited\n    });\n  }\n\n  return entries;\n}\n\nfunction JobPriority(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const businessObject = is(element, 'bpmn:Participant') ?\n    getBusinessObject(element).get('processRef') :\n    getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:jobPriority');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:jobPriority': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'jobPriority',\n    label: translate('Priority'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction RetryTimeCycle(props) {\n  const { element } = props;\n\n  const bpmnFactory = useService('bpmnFactory'),\n        commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    const failedJobRetryTimeCycle = getExtensionElementsList(businessObject, 'camunda:FailedJobRetryTimeCycle')[0];\n    return failedJobRetryTimeCycle && failedJobRetryTimeCycle.body;\n  };\n\n  const setValue = (value) => {\n    const commands = [];\n\n    let extensionElements = businessObject.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        businessObject,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: businessObject,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure failedJobRetryTimeCycle\n    let failedJobRetryTimeCycle = getExtensionElementsList(businessObject, 'camunda:FailedJobRetryTimeCycle')[0];\n\n    if (!failedJobRetryTimeCycle) {\n      failedJobRetryTimeCycle = createElement(\n        'camunda:FailedJobRetryTimeCycle',\n        { },\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), failedJobRetryTimeCycle ]\n          }\n        }\n      });\n    }\n\n    // (3) update failedJobRetryTimeCycle value\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: failedJobRetryTimeCycle,\n        properties: {\n          body: value\n        }\n      }\n    });\n\n    // (4) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'retryTimeCycle',\n    label: translate('Retry time cycle'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper //////////////////\n\n/**\n * @param  {ModdleElement} bo\n * @return {boolean} a boolean value\n */\nfunction isAsyncBefore(bo) {\n  return !!(bo.get('camunda:asyncBefore') || bo.get('camunda:async'));\n}\n\n/**\n * @param  {ModdleElement} bo\n * @return {boolean}\n */\nfunction isAsyncAfter(bo) {\n  return !!bo.get('camunda:asyncAfter');\n}\n\n/**\n * isAsync - returns true if the attribute 'camunda:asyncAfter' or 'camunda:asyncBefore'\n * is set to true.\n *\n * @param  {ModdleElement} bo\n * @return {boolean}\n */\nfunction isAsync(bo) {\n  return isAsyncAfter(bo) || isAsyncBefore(bo);\n}\n\n/**\n * isTimerEvent - returns true if the element is a bpmn:Event with a timerEventDefinition\n *\n * @param  {ModdleElement} element\n * @return {boolean}\n */\nfunction isTimerEvent(element) {\n  return is(element, 'bpmn:Event') &&\n   getTimerEventDefinition(element);\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  TextFieldEntry,\n  isTextFieldEntryEdited,\n  CheckboxEntry,\n  isCheckboxEntryEdited\n} from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  getExtensionElementsList\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function MultiInstanceProps(props) {\n  const {\n    element\n  } = props;\n\n  const loopCharacteristics = getLoopCharacteristics(element);\n\n  let entries = props.entries || [];\n\n  if (!isMultiInstanceSupported(element)) {\n    return entries;\n  }\n\n  entries.push(\n    {\n      id: 'collection',\n      component: Collection,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'elementVariable',\n      component: ElementVariable,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'multiInstanceAsynchronousBefore',\n      component: MultiInstanceAsynchronousBefore,\n      isEdited: isCheckboxEntryEdited\n    },\n    {\n      id: 'multiInstanceAsynchronousAfter',\n      component: MultiInstanceAsynchronousAfter,\n      isEdited: isCheckboxEntryEdited\n    });\n\n  if (isAsync(loopCharacteristics)) {\n    entries.push(\n      {\n        id: 'multiInstanceExclusive',\n        component: MultiInstanceExclusive,\n        isEdited: checkboxIsEditedInverted\n      },\n      {\n        id: 'multiInstanceRetryTimeCycle',\n        component: MultiInstanceRetryTimeCycle,\n        isEdited: isTextFieldEntryEdited\n      }\n    );\n  }\n\n  return entries;\n}\n\nfunction Collection(props) {\n  const { element } = props;\n\n  const debounce = useService('debounceInput');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const loopCharacteristics = getLoopCharacteristics(element);\n\n  const getValue = () => {\n    return getCollection(element);\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: loopCharacteristics,\n        properties: {\n          'camunda:collection': value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'collection',\n    label: translate('Collection'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction ElementVariable(props) {\n  const { element } = props;\n\n  const debounce = useService('debounceInput');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const loopCharacteristics = getLoopCharacteristics(element);\n\n  const getValue = () => {\n    return getElementVariable(element);\n  };\n\n  const setValue = (value) => {\n    return commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: loopCharacteristics,\n        properties: {\n          'camunda:elementVariable': value\n        }\n      }\n    );\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'elementVariable',\n    label: translate('Element variable'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction MultiInstanceAsynchronousBefore(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const loopCharacteristics = getLoopCharacteristics(element);\n\n  const getValue = () => {\n    return isAsyncBefore(loopCharacteristics);\n  };\n\n  const setValue = (value) => {\n\n    // overwrite the legacy `async` property, we will use the more explicit `asyncBefore`\n    const properties = {\n      'camunda:asyncBefore': value,\n      'camunda:async': undefined\n    };\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: loopCharacteristics,\n      properties\n    });\n  };\n\n  return CheckboxEntry({\n    element,\n    id: 'multiInstanceAsynchronousBefore',\n    label: translate('Asynchronous before'),\n    getValue,\n    setValue\n  });\n}\n\nfunction MultiInstanceAsynchronousAfter(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const loopCharacteristics = getLoopCharacteristics(element);\n\n  const getValue = () => {\n    return isAsyncAfter(loopCharacteristics);\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: loopCharacteristics,\n      properties: {\n        'camunda:asyncAfter': value,\n      }\n    });\n  };\n\n  return CheckboxEntry({\n    element,\n    id: 'multiInstanceAsynchronousAfter',\n    label: translate('Asynchronous after'),\n    getValue,\n    setValue\n  });\n}\n\nfunction MultiInstanceExclusive(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate');\n\n  const loopCharacteristics = getLoopCharacteristics(element);\n\n  const getValue = () => {\n    return isExclusive(loopCharacteristics);\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: loopCharacteristics,\n      properties: {\n        'camunda:exclusive': value\n      }\n    });\n  };\n\n  return CheckboxEntry({\n    element,\n    id: 'multiInstanceExclusive',\n    label: translate('Exclusive'),\n    getValue,\n    setValue\n  });\n}\n\nfunction MultiInstanceRetryTimeCycle(props) {\n  const { element } = props;\n\n  const bpmnFactory = useService('bpmnFactory'),\n        commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const loopCharacteristics = getLoopCharacteristics(element);\n\n  const getValue = () => {\n    const failedJobRetryTimeCycle = getExtensionElementsList(loopCharacteristics,\n      'camunda:FailedJobRetryTimeCycle')[0];\n    return failedJobRetryTimeCycle && failedJobRetryTimeCycle.body;\n  };\n\n  const setValue = (value) => {\n    const commands = [];\n\n    let extensionElements = loopCharacteristics.get('extensionElements');\n\n    // (1) ensure extension elements\n    if (!extensionElements) {\n      extensionElements = createElement(\n        'bpmn:ExtensionElements',\n        { values: [] },\n        loopCharacteristics,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element,\n          moddleElement: loopCharacteristics,\n          properties: { extensionElements }\n        }\n      });\n    }\n\n    // (2) ensure failedJobRetryTimeCycle\n    let failedJobRetryTimeCycle = getExtensionElementsList(loopCharacteristics,\n      'camunda:FailedJobRetryTimeCycle')[0];\n\n    if (!failedJobRetryTimeCycle) {\n      failedJobRetryTimeCycle = createElement(\n        'camunda:FailedJobRetryTimeCycle',\n        { },\n        extensionElements,\n        bpmnFactory\n      );\n\n      commands.push({\n        cmd: 'element.updateModdleProperties',\n        context: {\n          element: loopCharacteristics,\n          moddleElement: extensionElements,\n          properties: {\n            values: [ ...extensionElements.get('values'), failedJobRetryTimeCycle ]\n          }\n        }\n      });\n    }\n\n    // (3) update failedJobRetryTimeCycle value\n    commands.push({\n      cmd: 'element.updateModdleProperties',\n      context: {\n        element,\n        moddleElement: failedJobRetryTimeCycle,\n        properties: { body: value }\n      }\n    });\n\n    // (4) commit all updates\n    commandStack.execute('properties-panel.multi-command-executor', commands);\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'multiInstanceRetryTimeCycle',\n    label: translate('Retry time cycle'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper ////////////////////////////\n\n// generic ///////////////////////////\n\n/**\n * isMultiInstanceSupported - check whether given element supports camunda specific props\n * for multiInstance (ref. <camunda:Cllectable>).\n *\n * @param {djs.model.Base} element\n * @return {boolean}\n */\nfunction isMultiInstanceSupported(element) {\n  const loopCharacteristics = getLoopCharacteristics(element);\n  return !!loopCharacteristics && is(loopCharacteristics, 'camunda:Collectable');\n}\n\n/**\n * getProperty - get a property value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n * @param {string} propertyName\n *\n * @return {any} the property value\n */\nfunction getProperty(element, propertyName) {\n  var loopCharacteristics = getLoopCharacteristics(element);\n  return loopCharacteristics && loopCharacteristics.get(propertyName);\n}\n\n/**\n * getLoopCharacteristics - get loopCharacteristics of a given element.\n *\n * @param {djs.model.Base} element\n * @return {ModdleElement<bpmn:MultiInstanceLoopCharacteristics> | undefined}\n */\nfunction getLoopCharacteristics(element) {\n  const bo = getBusinessObject(element);\n  return bo.loopCharacteristics;\n}\n\n// collection\n\n/**\n * getCollection - get the 'camunda:collection' attribute value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {string} the 'camunda:collection' value\n */\nfunction getCollection(element) {\n  return getProperty(element, 'camunda:collection');\n}\n\n// elementVariable\n\n/**\n * getElementVariable - get the 'camunda:elementVariable' attribute value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {string} the 'camunda:elementVariable' value\n */\nfunction getElementVariable(element) {\n  return getProperty(element, 'camunda:elementVariable');\n}\n\n// asyncBefore asyncAfter\n\n/**\n * Returns true if the attribute 'camunda:asyncBefore' is set\n * to true.\n *\n * @param  {ModdleElement} bo\n *\n * @return {boolean} a boolean value\n */\nfunction isAsyncBefore(bo) {\n  return !!(bo.get('camunda:asyncBefore') || bo.get('camunda:async'));\n}\n\n/**\n * Returns true if the attribute 'camunda:asyncAfter' is set\n * to true.\n *\n * @param  {ModdleElement} bo\n *\n * @return {boolean} a boolean value\n */\nfunction isAsyncAfter(bo) {\n  return !!bo.get('camunda:asyncAfter');\n}\n\n/**\n * Returns true if the attribute 'camunda:exclusive' is set\n * to true.\n *\n * @param  {ModdleElement} bo\n *\n * @return {boolean} a boolean value\n */\nfunction isExclusive(bo) {\n  return !!bo.get('camunda:exclusive');\n}\n\n/**\n * isAsync - returns true if the attribute 'camunda:asyncAfter' or 'camunda:asyncBefore'\n * is set to true.\n *\n * @param  {ModdleElement} bo\n * @return {boolean}\n */\nfunction isAsync(bo) {\n  return isAsyncAfter(bo) || isAsyncBefore(bo);\n}\n\n// Checkbox\n\nfunction checkboxIsEditedInverted(node) {\n  return node && !node.checked;\n}\n","import { CheckboxEntry, isCheckboxEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  filter\n} from 'min-dash';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  addExtensionElements,\n  getExtensionElementsList,\n  removeExtensionElements\n} from '../../../utils/ExtensionElementsUtil';\n\n\n/**\n * Cf. https://docs.camunda.org/manual/7.15/reference/bpmn20/subprocesses/call-activity/#passing-variables\n */\nexport function OutMappingPropagationProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!areOutMappingsSupported(element)) {\n    return [];\n  }\n\n  const entries = [\n    {\n      id: 'outMapping-propagation',\n      component: PropagateAll,\n      isEdited: isCheckboxEntryEdited\n    }\n  ];\n\n  if (isPropagateAll(element)) {\n    entries.push({\n      id: 'outMapping-propagation-local',\n      component: Local,\n      isEdited: isCheckboxEntryEdited\n    });\n  }\n\n  return entries;\n}\n\nfunction PropagateAll(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const bpmnFactory = useService('bpmnFactory');\n  const translate = useService('translate');\n\n  const getValue = () => {\n    return isPropagateAll(element);\n  };\n\n  const setValue = value => {\n    if (value) {\n      addOutMapping();\n    } else {\n      removeOutMapping();\n    }\n  };\n\n  function addOutMapping() {\n    const businessObject = getBusinessObject(element);\n\n    const mapping = createElement(\n      'camunda:Out',\n      {\n        variables: 'all'\n      },\n      null,\n      bpmnFactory\n    );\n\n    addExtensionElements(element, businessObject, mapping, bpmnFactory, commandStack);\n  }\n\n  function removeOutMapping() {\n    const businessObject = getBusinessObject(element);\n    const mappings = findRelevantOutMappings(element);\n\n    removeExtensionElements(element, businessObject, mappings, commandStack);\n  }\n\n  return CheckboxEntry({\n    id: 'outMapping-propagation',\n    label: translate('Propagate all variables'),\n    getValue,\n    setValue\n  });\n}\n\nfunction Local(props) {\n  const {\n    element\n  } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const mapping = findRelevantOutMappings(element)[0];\n\n  const getValue = () => {\n    return mapping.get('camunda:local');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: mapping,\n      properties: {\n        local: value\n      }\n    });\n  };\n\n  return CheckboxEntry({\n    element,\n    id: 'outMapping-propagation-local',\n    label: translate('Local'),\n    getValue,\n    setValue\n  });\n}\n\n\n// helper //////////////////////////\n\nfunction areOutMappingsSupported(element) {\n  return is(element, 'bpmn:CallActivity');\n}\n\nfunction getOutMappings(element) {\n  const businessObject = getBusinessObject(element);\n  return getExtensionElementsList(businessObject, 'camunda:Out');\n}\n\nfunction findRelevantOutMappings(element) {\n  const inMappings = getOutMappings(element);\n  return filter(inMappings, function(mapping) {\n    const variables = mapping.get('variables');\n    return variables && variables === 'all';\n  });\n}\n\nfunction isPropagateAll(element) {\n  const mappings = findRelevantOutMappings(element);\n  return !!mappings.length;\n}\n","import {\n  filter\n} from 'min-dash';\n\nimport {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  addExtensionElements,\n  getExtensionElementsList, removeExtensionElements\n} from '../../../utils/ExtensionElementsUtil';\n\nimport {\n  createElement\n} from '../../../utils/ElementUtil';\n\nimport InOutMapping from './InOutMapping';\n\n/**\n * Cf. https://docs.camunda.org/manual/latest/reference/bpmn20/custom-extensions/extension-elements/#out\n */\nexport function OutMappingProps({ element, injector }) {\n\n  if (!areOutMappingsSupported(element)) {\n    return null;\n  }\n\n  const variableMappings = getOutMappings(element) || [];\n\n  const bpmnFactory = injector.get('bpmnFactory'),\n        commandStack = injector.get('commandStack');\n\n  const items = variableMappings.map((mapping, index) => {\n    const id = element.id + '-outMapping-' + index;\n\n    return {\n      id,\n      label: mapping.get('target') ? <code>{ mapping.get('target') }</code> : '',\n      entries: InOutMapping({\n        idPrefix: id,\n        element,\n        mapping\n      }),\n      autoFocusEntry: id + '-target',\n      remove: removeFactory({ commandStack, element, mapping })\n    };\n  });\n\n  return {\n    items,\n    add: addFactory({ bpmnFactory, commandStack, element })\n  };\n}\n\nfunction removeFactory({ commandStack, element, mapping }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const businessObject = getBusinessObject(element);\n\n    removeExtensionElements(element, businessObject, mapping, commandStack);\n  };\n}\n\nfunction addFactory({ bpmnFactory, commandStack, element }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const businessObject = getBusinessObject(element);\n\n    const newMapping = createElement('camunda:Out', {\n      source: '', // source is the default type\n    }, null, bpmnFactory);\n\n    addExtensionElements(element, businessObject, newMapping, bpmnFactory, commandStack);\n  };\n}\n\n// helper ///////////////\n\nfunction getOutMappings(element) {\n  const businessObject = getBusinessObject(element);\n  const mappings = getExtensionElementsList(businessObject, 'camunda:Out');\n\n  // only retrieve relevant mappings here, others are handled in other groups\n  // mapping.businessKey => camunda-platform/CallAvtivityProps\n  // mapping.variables => camunda-platform/OutMappingPropagationProps\n  return filter(mappings, function(mapping) {\n    return !mapping.businessKey && !(mapping.variables && mapping.variables === 'all');\n  });\n}\n\nfunction areOutMappingsSupported(element) {\n  return is(element, 'bpmn:CallActivity');\n}\n","import InputOutputParameter from './InputOutputParameter';\n\nimport {\n  AddParameterCmd,\n  areOutputParametersSupported,\n  getOutputParameters,\n  getInputOutput\n} from '../utils/InputOutputUtil';\n\nimport { without } from 'min-dash';\n\n\nexport function OutputProps({ element, injector }) {\n\n  if (!areOutputParametersSupported(element)) {\n    return null;\n  }\n\n  const outputParameters = getOutputParameters(element) || [];\n\n  const bpmnFactory = injector.get('bpmnFactory'),\n        commandStack = injector.get('commandStack');\n\n  const items = outputParameters.map((parameter, index) => {\n    const id = element.id + '-outputParameter-' + index;\n\n    return {\n      id,\n      label: parameter.get('name') || '',\n      entries: InputOutputParameter({\n        idPrefix: id,\n        element,\n        parameter\n      }),\n      autoFocusEntry: id + '-name',\n      remove: removeFactory({ commandStack, element, parameter })\n    };\n  });\n\n  return {\n    items,\n    add: addFactory({ bpmnFactory, commandStack, element }),\n  };\n}\n\nfunction removeFactory({ commandStack, element, parameter }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const inputOutput = getInputOutput(element);\n\n    if (!inputOutput) {\n      return;\n    }\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: inputOutput,\n      properties: {\n        outputParameters: without(inputOutput.get('outputParameters'), parameter)\n      }\n    });\n  };\n}\n\nfunction addFactory({ bpmnFactory, commandStack, element }) {\n  return function(event) {\n    event.stopPropagation();\n\n    commandStack.execute(\n      'properties-panel.multi-command-executor',\n      AddParameterCmd(element, 'camunda:OutputParameter', bpmnFactory)\n    );\n  };\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  isTimerSupported,\n  getTimerEventDefinition,\n  getTimerDefinitionType\n} from '../../../utils/EventDefinitionUtil';\n\nimport {\n  SelectEntry,\n  isSelectEntryEdited,\n  TextFieldEntry,\n  isTextFieldEntryEdited\n} from '@bpmn-io/properties-panel';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function TimerProps(props) {\n  const {\n    element,\n    listener,\n    idPrefix\n  } = props;\n\n  let {\n    timerEventDefinition\n  } = props;\n\n  if (!timerEventDefinition) {\n    const businessObject = getBusinessObject(element);\n    timerEventDefinition = getTimerEventDefinition(businessObject);\n  }\n\n  const timerEventDefinitionType = getTimerDefinitionType(timerEventDefinition);\n\n  // (1) Only show for supported elements\n  if (!isTimerSupported(element) && !isTimerSupportedOnListener(listener)) {\n    return [];\n  }\n\n  // (2) Provide entries, have a value only if selection was made\n  const entries = [];\n\n  entries.push({\n    id: getId(idPrefix, 'timerEventDefinitionType'),\n    component: TimerEventDefinitionType,\n    isEdited: isSelectEntryEdited,\n    timerEventDefinition,\n    timerEventDefinitionType\n  });\n\n  if (timerEventDefinitionType) {\n    entries.push({\n      id: getId(idPrefix, 'timerEventDefinitionValue'),\n      component: TimerEventDefinitionValue,\n      isEdited: isTextFieldEntryEdited,\n      timerEventDefinition,\n      timerEventDefinitionType\n    });\n  }\n\n  return entries;\n}\n\n\n/**\n * TimerEventDefinitionType - Generic select entry allowing to select a specific\n * timerEventDefintionType. To be used together with timerEventDefinitionValue.\n *\n * @param  {type} props\n * @return {SelectEntry}\n */\nfunction TimerEventDefinitionType(props) {\n  const {\n    element,\n    timerEventDefinition,\n    timerEventDefinitionType\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        bpmnFactory = useService('bpmnFactory'),\n        translate = useService('translate');\n\n  const getValue = () => {\n    return timerEventDefinitionType || '';\n  };\n\n  const setValue = (value) => {\n\n    // (1) Check if value is different to current type\n    if (value === timerEventDefinitionType) {\n      return;\n    }\n\n    // (2) Create empty formalExpression element\n    const formalExpression = bpmnFactory.create('bpmn:FormalExpression', { body: undefined });\n    formalExpression.$parent = timerEventDefinition;\n\n    // (3) Set the value for selected timerEventDefinitionType\n    const newProps = {\n      timeDuration: undefined,\n      timeDate: undefined,\n      timeCycle: undefined\n    };\n\n    if (value !== '') {\n      newProps[value] = formalExpression;\n    }\n\n    // (4) Execute businessObject update\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: timerEventDefinition,\n      properties: newProps\n    });\n  };\n\n  const getOptions = (element) => {\n    return [\n      { value: '', label: translate('<none>') },\n      { value: 'timeDate', label: translate('Date') },\n      { value: 'timeDuration', label: translate('Duration') },\n      { value: 'timeCycle', label: translate('Cycle') }\n    ];\n  };\n\n  return SelectEntry({\n    element,\n    id: 'timerEventDefinitionType',\n    label: translate('Type'),\n    getValue,\n    setValue,\n    getOptions\n  });\n}\n\n/**\n * TimerEventDefinitionValue - Generic textField entry allowing to specify the\n * timerEventDefintionValue based on the set timerEventDefintionType. To be used\n * together with timerEventDefinitionType.\n *\n * @param  {type} props\n * @return {TextFieldEntry}\n */\nfunction TimerEventDefinitionValue(props) {\n  const {\n    element,\n    timerEventDefinition,\n    timerEventDefinitionType\n  } = props;\n\n  const commandStack = useService('commandStack'),\n        translate = useService('translate'),\n        debounce = useService('debounceInput');\n\n  const timerEventFormalExpression = timerEventDefinition.get(timerEventDefinitionType);\n\n  const getValue = () => {\n    return timerEventFormalExpression && timerEventFormalExpression.get('body');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: timerEventFormalExpression,\n      properties: {\n        body: value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'timerEventDefinitionValue',\n    label: translate('Value'),\n    getValue,\n    setValue,\n    debounce,\n    tooltip: getTimerEventDefinitionValueDescription(timerEventDefinitionType, translate)\n  });\n}\n\n\n// helper //////////////////////////\n\nfunction getTimerEventDefinitionValueDescription(timerDefinitionType, translate) {\n  switch (timerDefinitionType) {\n  case 'timeDate':\n    return (<div>\n      <p>{ translate('A specific point in time defined as ISO 8601 combined date and time representation.') }</p>\n      <ul>\n        <li><code>2019-10-01T12:00:00Z</code> - { translate('UTC time') }</li>\n        <li><code>2019-10-02T08:09:40+02:00</code> - { translate('UTC plus 2 hours zone offset') }</li>\n      </ul>\n      <a href=\"https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-date\" target=\"_blank\" rel=\"noopener noreferrer\">{ translate('Documentation: Timer events') }</a>\n    </div>);\n\n  case 'timeCycle':\n    return (<div>\n      <p>{ translate('A cycle defined as ISO 8601 repeating intervals format, or a cron expression.') }</p>\n      <ul>\n        <li><code>R5/PT10S</code> - { translate('every 10 seconds, up to 5 times') }</li>\n        <li><code>R/P1D</code> - { translate('every day, infinitely') }</li>\n        <li><code>0 0 9-17 * * MON-FRI</code> - { translate('every hour on the hour from 9-5 p.m. UTC Monday-Friday') }</li>\n      </ul>\n      <a href=\"https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-cycle\" target=\"_blank\" rel=\"noopener noreferrer\">{ translate('Documentation: Timer events') }</a>\n    </div>);\n\n  case 'timeDuration':\n    return (<div>\n      <p>{ translate('A time duration defined as ISO 8601 durations format.') }</p>\n      <ul>\n        <li><code>PT15S</code> - { translate('15 seconds') }</li>\n        <li><code>PT1H30M</code> - { translate('1 hour and 30 minutes') }</li>\n        <li><code>P14D</code> - { translate('14 days') }</li>\n      </ul>\n      <a href=\"https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-duration\" target=\"_blank\" rel=\"noopener noreferrer\">{ translate('Documentation: Timer events') }</a>\n    </div>);\n  }\n}\n\nfunction isTimerSupportedOnListener(listener) {\n  return listener && is(listener, 'camunda:TaskListener') && getTimerEventDefinition(listener);\n}\n\nfunction getId(idPrefix, id) {\n  return idPrefix ? idPrefix + id : id;\n}","import {\n  CollapsibleEntry,\n  ListEntry,\n  SelectEntry,\n  TextFieldEntry,\n  isTextFieldEntryEdited\n} from '@bpmn-io/properties-panel';\n\n\nimport { isAny } from 'bpmn-js/lib/features/modeling/util/ModelingUtil';\nimport {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport FieldInjection from './FieldInjection';\n\nimport {\n  addExtensionElements,\n  getExtensionElementsList,\n  removeExtensionElements\n} from '../../../utils/ExtensionElementsUtil';\n\nimport { getImplementationType } from '../utils/ImplementationTypeUtils';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport { createElement } from '../../../utils/ElementUtil';\nimport {\n  DelegateExpression,\n  Expression,\n  JavaClass\n} from './ImplementationProps';\n\nimport { ScriptProps } from './ScriptProps';\nimport { TimerProps } from './TimerProps';\nimport { getTimerEventDefinition } from '../../bpmn/utils/EventDefinitionUtil';\n\nimport { without } from 'min-dash';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nconst LISTENER_ALLOWED_TYPES = [\n  'bpmn:Activity',\n  'bpmn:Event',\n  'bpmn:Gateway',\n  'bpmn:SequenceFlow',\n  'bpmn:Process',\n  'bpmn:Participant'\n];\n\nconst SCRIPT_PROPS = {\n  'script': undefined,\n  'resource': undefined,\n  'scriptFormat': undefined\n};\n\nconst CLASS_PROPS = {\n  'class': undefined\n};\n\nconst EXPRESSION_PROPS = {\n  'expression': undefined\n};\n\nconst DELEGATE_EXPRESSION_PROPS = {\n  'delegateExpression': undefined\n};\n\nconst DEFAULT_PROPS = {\n  ...SCRIPT_PROPS,\n  ...CLASS_PROPS,\n  ...EXPRESSION_PROPS,\n  ...DELEGATE_EXPRESSION_PROPS\n};\n\nconst DEFAULT_EVENT_PROPS = {\n  'eventDefinitions' : undefined,\n  'event': undefined\n};\n\nconst IMPLEMENTATION_TYPE_TO_LABEL = {\n  class: 'Java class',\n  expression: 'Expression',\n  delegateExpression: 'Delegate expression',\n  script: 'Script'\n};\n\nconst EVENT_TO_LABEL = {\n  start: 'Start',\n  end: 'End',\n  take: 'Take',\n  create:'Create',\n  assignment: 'Assignment',\n  complete: 'Complete',\n  delete: 'Delete',\n  update: 'Update',\n  timeout: 'Timeout'\n};\n\n/**\n * Cf. https://docs.camunda.org/manual/latest/user-guide/process-engine/delegation-code/#execution-listener\n */\nexport function ExecutionListenerProps({ element, injector }) {\n\n  if (!isAny(element, LISTENER_ALLOWED_TYPES)) {\n    return;\n  }\n\n  const bpmnFactory = injector.get('bpmnFactory'),\n        commandStack = injector.get('commandStack');\n\n  if (is(element, 'bpmn:Participant') && !element.businessObject.processRef) {\n    return;\n  }\n\n  const businessObject = getListenersContainer(element);\n  const listeners = getExtensionElementsList(businessObject, 'camunda:ExecutionListener');\n\n  return {\n    items: listeners.map((listener, index) => {\n      const id = `${element.id}-executionListener-${index}`;\n\n      // @TODO(barmac): Find a way to pass translate for internationalized label.\n      return {\n        id,\n        label: getListenerLabel(listener),\n        entries: ExecutionListener({\n          idPrefix: id,\n          element,\n          listener\n        }),\n        autoFocusEntry: id + '-javaClass',\n        remove: removeListenerFactory({ element, listener, commandStack })\n      };\n    }),\n    add: addExecutionListenerFactory({ bpmnFactory, commandStack, element })\n  };\n}\n\nfunction ExecutionListener(props) {\n  const {\n    idPrefix,\n    element,\n    listener\n  } = props;\n\n\n  return [ {\n    id: `${idPrefix}-eventType`,\n    component: EventType,\n    listener\n  },\n  {\n    id: `${idPrefix}-listenerType`,\n    component: ListenerType,\n    listener\n  },\n  ...ImplementationDetails({ idPrefix, element, listener }),\n  {\n    id: `${idPrefix}-fields`,\n    component: Fields,\n    listener\n  } ];\n}\n\nexport function TaskListenerProps({ element, injector }) {\n\n  if (!is(element, 'bpmn:UserTask')) {\n    return;\n  }\n\n  const bpmnFactory = injector.get('bpmnFactory'),\n        commandStack = injector.get('commandStack');\n\n  const businessObject = getListenersContainer(element);\n  const listeners = getExtensionElementsList(businessObject, 'camunda:TaskListener');\n\n  return {\n    items: listeners.map((listener, index) => {\n      const id = `${element.id}-taskListener-${index}`;\n\n      // @TODO(barmac): Find a way to pass translate for internationalized label.\n      return {\n        id,\n        label: getListenerLabel(listener),\n        entries: TaskListener({\n          idPrefix: id,\n          element,\n          listener\n        }),\n        autoFocusEntry: id + '-listenerId',\n        remove: removeListenerFactory({ element, listener, commandStack })\n      };\n    }),\n\n    add: addTaskListenerFactory({ bpmnFactory, commandStack, element })\n  };\n}\n\nfunction TaskListener(props) {\n  const {\n    idPrefix,\n    element,\n    listener\n  } = props;\n\n\n  return [ {\n    id: `${idPrefix}-eventType`,\n    component: EventType,\n    listener\n  },\n  {\n    id: `${idPrefix}-listenerId`,\n    component: ListenerId,\n    listener\n  },\n  {\n    id: `${idPrefix}-listenerType`,\n    component: ListenerType,\n    listener\n  },\n  ...ImplementationDetails({ idPrefix, element, listener }),\n  ...EventTypeDetails({ idPrefix, element, listener }),\n  {\n    id: `${idPrefix}-fields`,\n    component: Fields,\n    listener\n  } ];\n}\n\nfunction removeListenerFactory({ element, listener, commandStack }) {\n  return function removeListener(event) {\n    event.stopPropagation();\n\n    removeExtensionElements(element, getListenersContainer(element), listener, commandStack);\n  };\n}\n\nfunction EventType({ id, element, listener }) {\n\n  const translate = useService('translate');\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n\n  function getValue() {\n    return listener.get('event');\n  }\n\n  function setValue(value) {\n    const properties = getDefaultEventTypeProperties(value, bpmnFactory);\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: listener,\n      properties\n    });\n  }\n\n  function getOptions() {\n\n    if (is(listener, 'camunda:TaskListener')) {\n      return [\n        { value: 'create', label: translate('create') },\n        { value: 'assignment', label: translate('assignment') },\n        { value: 'complete', label: translate('complete') },\n        { value: 'delete', label: translate('delete') },\n        { value: 'update', label: translate('update') },\n        { value: 'timeout', label: translate('timeout') }\n      ];\n    }\n\n    if (is(element, 'bpmn:SequenceFlow')) {\n      return [ { value: 'take', label: translate('take') } ];\n    }\n\n    return [\n      { value: 'start', label: translate('start') },\n      { value: 'end', label: translate('end') }\n    ];\n  }\n\n  return <SelectEntry\n    id={ id }\n    label={ translate('Event type') }\n    getValue={ getValue }\n    setValue={ setValue }\n    getOptions={ getOptions }\n  />;\n}\n\nfunction ListenerId({ id, element, listener }) {\n\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n  const commandStack = useService('commandStack');\n\n  let options = {\n    element,\n    id: id,\n    label: translate('Listener ID'),\n    debounce,\n    isEdited: isTextFieldEntryEdited,\n    setValue: (value) => {\n      commandStack.execute('element.updateModdleProperties', {\n        element,\n        moddleElement: listener,\n        properties: {\n          'camunda:id': value\n        }\n      });\n    },\n    getValue: () => {\n      return listener.get('camunda:id');\n    }\n  };\n\n  return TextFieldEntry(options);\n}\n\nfunction ListenerType({ id, element, listener }) {\n\n  const modeling = useService('modeling');\n  const translate = useService('translate');\n  const bpmnFactory = useService('bpmnFactory');\n\n  function getValue() {\n    return getListenerType(listener);\n  }\n\n  function setValue(value) {\n    const properties = getDefaultImplementationProperties(value, bpmnFactory);\n\n    modeling.updateModdleProperties(\n      element,\n      listener,\n      properties\n    );\n  }\n\n  function getOptions() {\n    return getListenerTypeOptions(translate);\n  }\n\n  return <SelectEntry\n    id={ id }\n    label={ translate('Listener type') }\n    getValue={ getValue }\n    setValue={ setValue }\n    getOptions={ getOptions }\n  />;\n}\n\nfunction ImplementationDetails(props) {\n  const {\n    idPrefix,\n    element,\n    listener\n  } = props;\n\n  const type = getListenerType(listener);\n\n  if (type === 'class') {\n    return [ {\n      id: getPrefixedId(idPrefix, 'javaClass'),\n      component: JavaClass,\n      businessObject: listener\n    } ];\n  } else if (type === 'expression') {\n    return [ {\n      id: getPrefixedId(idPrefix, 'expression'),\n      component: Expression,\n      businessObject: listener\n    } ];\n  } else if (type === 'delegateExpression') {\n    return [ {\n      id: getPrefixedId(idPrefix, 'delegateExpression'),\n      component: DelegateExpression,\n      businessObject: listener\n    } ];\n  } else if (type === 'script') {\n    return ScriptProps({ element, script: listener.get('script'), prefix: idPrefix });\n  }\n\n  // should never happen\n  return [];\n}\n\nfunction EventTypeDetails(props) {\n  const {\n    idPrefix,\n    element,\n    listener\n  } = props;\n\n  const type = listener.get('event');\n\n  if (type === 'timeout') {\n\n    return TimerProps({ element, listener, timerEventDefinition: getTimerEventDefinition(listener), idPrefix: idPrefix });\n  }\n  return [];\n}\n\nfunction Field(props) {\n  const {\n    element,\n    id: idPrefix,\n    index,\n    item: field,\n    open\n  } = props;\n\n  const fieldId = `${ idPrefix }-field-${ index }`;\n\n  return (\n    <CollapsibleEntry\n      id={ fieldId }\n      element={ element }\n      entries={ FieldInjection({\n        element,\n        field,\n        idPrefix: fieldId\n      }) }\n      label={ field.get('name') || '<empty>' }\n      open={ open }\n    />\n  );\n}\n\nfunction Fields(props) {\n  const {\n    id,\n    element,\n    listener\n  } = props;\n\n  const bpmnFactory = useService('bpmnFactory');\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const fields = listener.get('fields');\n\n  function addField() {\n    const field = createElement('camunda:Field', {}, listener, bpmnFactory);\n\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: listener,\n      properties: {\n        fields: [ ...listener.get('fields'), field ]\n      }\n    });\n  }\n\n  function removeField(field) {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: listener,\n      properties: {\n        fields: without(listener.get('fields'), field)\n      }\n    });\n  }\n\n  return <ListEntry\n    id={ id }\n    element={ element }\n    label={ translate('Field injection') }\n    items={ fields }\n    component={ Field }\n    onAdd={ addField }\n    onRemove={ removeField }\n    autoFocusEntry={ `[data-entry-id=\"${id}-field-${fields.length - 1}\"] input` }\n  />;\n}\n\nfunction addListenerFactory({ bpmnFactory, commandStack, element, listenerGroup }) {\n  return function(event) {\n    event.stopPropagation();\n\n    const listener = bpmnFactory.create(listenerGroup, {\n      event: getDefaultEvent(element, listenerGroup),\n      class: ''\n    });\n\n    const businessObject = getListenersContainer(element);\n\n    addExtensionElements(element, businessObject, listener, bpmnFactory, commandStack);\n  };\n}\n\nfunction addTaskListenerFactory(props) {\n  return addListenerFactory({ ...props, listenerGroup:'camunda:TaskListener' });\n}\n\nfunction addExecutionListenerFactory(props) {\n  return addListenerFactory({ ...props, listenerGroup:'camunda:ExecutionListener' });\n}\n\n// helper\n\n/**\n * Get a readable label for a listener.\n *\n * @param {ModdleElement} listener\n * @param {string => string} [translate]\n */\nfunction getListenerLabel(listener, translate = value => value) {\n  const event = listener.get('event');\n  const implementationType = getListenerType(listener);\n\n  return `${translate(EVENT_TO_LABEL[event])}: ${translate(IMPLEMENTATION_TYPE_TO_LABEL[implementationType])}`;\n}\n\nfunction getListenerTypeOptions(translate) {\n  return Object.entries(IMPLEMENTATION_TYPE_TO_LABEL)\n    .map(([ value, label ]) => ({\n      value,\n      label: translate(label)\n    }));\n}\n\nfunction getListenerType(listener) {\n  return getImplementationType(listener);\n}\n\nfunction getDefaultEvent(element, listenerGroup) {\n  if (listenerGroup === 'camunda:TaskListener') return 'create';\n\n  return is(element, 'bpmn:SequenceFlow') ? 'take' : 'start';\n}\n\nfunction getDefaultImplementationProperties(type, bpmnFactory) {\n  switch (type) {\n  case 'class':\n    return { ...DEFAULT_PROPS, 'class': '' };\n  case 'expression':\n    return { ...DEFAULT_PROPS, 'expression': '' };\n  case 'delegateExpression':\n    return { ...DEFAULT_PROPS, 'delegateExpression': '' };\n  case 'script':\n    return { ...DEFAULT_PROPS, 'script': bpmnFactory.create('camunda:Script') };\n  }\n}\n\nfunction getDefaultEventTypeProperties(type, bpmnFactory) {\n  switch (type) {\n  case 'timeout':\n    return { ...DEFAULT_EVENT_PROPS, eventDefinitions: [ bpmnFactory.create('bpmn:TimerEventDefinition') ], event:type };\n  default:\n    return { ...DEFAULT_EVENT_PROPS, event: type };\n  }\n}\n\nfunction getPrefixedId(prefix, id) {\n  return `${prefix}-${id}`;\n}\n\nfunction getListenersContainer(element) {\n  const businessObject = getBusinessObject(element);\n\n  return businessObject.get('processRef') || businessObject;\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  isAny\n} from 'bpmn-js/lib/features/modeling/util/ModelingUtil';\n\nimport {\n  getVariablesForScope\n} from '@bpmn-io/extract-process-variables';\n\nimport {\n  flatten,\n  forEach,\n  groupBy,\n  keys,\n  map,\n  sortBy\n} from 'min-dash';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport { ListGroup } from '@bpmn-io/properties-panel';\nimport { useEffect, useState } from '@bpmn-io/properties-panel/preact/hooks';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\n\nfunction ProcessVariablesEntry(props) {\n  const {\n    element\n  } = props;\n\n\n  const [ variables, setVariables ] = useState([]);\n\n  useEffect(async () => {\n    const businessObject = getBusinessObject(element);\n    const rootElement = getRootElement(businessObject);\n    const scope = getScope(element);\n\n    const rawVariables = await getVariablesForScope(scope, rootElement);\n\n    const withName = populateElementNames(sortByName(rawVariables));\n\n    setVariables(withName);\n  }, [ element ]);\n\n\n  if (!variables.length) {\n    return null;\n  }\n\n  const byScope = groupByScope(variables);\n  const multiScope = isMultiScope(byScope);\n\n  let variableItems = [];\n\n  // (2) get variables to display\n  if (multiScope) {\n\n    // (2a) multiple scopes, sub scopes first\n    // assumption: variables extractor fetches parent variables first\n    const reversed = map(reverse(keys(byScope)), (scopeKey) => byScope[scopeKey]);\n\n    variableItems = flatten(reversed);\n  } else {\n\n    // (2b) single scope\n    variableItems = variables;\n  }\n\n  const items = variableItems.map((variable, index) => {\n    const id = element.id + '-variable-' + index;\n\n    return {\n      id,\n      label: variable.name,\n      entries: [\n        ...ProcessVariableItem({\n          idPrefix: id,\n          multiScope,\n          variable\n        })\n      ]\n    };\n  });\n\n  return <ListGroup { ...props } items={ items } />;\n}\n\nexport function ProcessVariablesProps(props) {\n\n  const {\n    element\n  } = props;\n\n  if (!canHaveProcessVariables(element)) {\n    return null;\n  }\n\n  return {\n    component: ProcessVariablesEntry,\n  };\n}\n\nfunction ProcessVariableItem(props) {\n  const {\n    idPrefix,\n    multiScope,\n    variable,\n  } = props;\n\n  let entries = [];\n\n  if (multiScope) {\n    entries.push({\n      id: idPrefix + '-scope',\n      component: Scope,\n      idPrefix,\n      variable\n    });\n  }\n\n  entries.push({\n    id: idPrefix + '-createdIn',\n    component: CreatedIn,\n    idPrefix,\n    variable\n  });\n\n  return entries;\n}\n\nfunction Scope(props) {\n\n  const {\n    idPrefix,\n    variable\n  } = props;\n\n  const translate = useService('translate');\n\n  const id = idPrefix + '-scope';\n\n  return (\n    <div data-entry-id={ id } class=\"bio-properties-panel-entry\">\n      <b style=\"font-weight: bold\" class=\"bio-properties-panel-label\">{ translate('Scope') }</b>\n      <label id={ prefixId(id) } class=\"bio-properties-panel-label\">{ variable.scope }</label>\n    </div>\n  );\n}\n\n\nfunction CreatedIn(props) {\n\n  const {\n    idPrefix,\n    variable\n  } = props;\n\n  const translate = useService('translate');\n\n  const id = idPrefix + '-createdIn';\n\n  const origin = variable.origin.join(', ');\n\n  return (\n    <div data-entry-id={ id } class=\"bio-properties-panel-entry\">\n      <b style=\"font-weight: bold\" class=\"bio-properties-panel-label\">{ translate('Created in') }</b>\n      <label id={ prefixId(id) } class=\"bio-properties-panel-label\">{ origin }</label>\n    </div>\n  );\n}\n\n\n// helper //////////////////////\n\nfunction canHaveProcessVariables(element) {\n  const businessObject = getBusinessObject(element);\n\n  return (\n    isAny(element, [ 'bpmn:Process', 'bpmn:SubProcess' ]) ||\n    (is(element, 'bpmn:Participant') && businessObject.get('processRef'))\n  );\n}\n\nfunction getRootElement(element) {\n  const businessObject = getBusinessObject(element);\n\n  if (is(businessObject, 'bpmn:Participant')) {\n    return businessObject.processRef;\n  }\n\n  if (is(businessObject, 'bpmn:Process')) {\n    return businessObject;\n  }\n\n  let parent = businessObject;\n\n  while (parent.$parent && !is(parent, 'bpmn:Process')) {\n    parent = parent.$parent;\n  }\n\n  return parent;\n}\n\nfunction getScope(element) {\n  const bo = getBusinessObject(element);\n\n  if (is(element, 'bpmn:Participant')) {\n    return bo.processRef.id;\n  }\n\n  return bo.id;\n}\n\nfunction sortByName(variables) {\n  return sortBy(variables, function(variable) {\n    return variable.name;\n  });\n}\n\nfunction groupByScope(variables) {\n  return groupBy(variables, 'scope');\n}\n\nfunction populateElementNames(variables) {\n  forEach(variables, function(variable) {\n    const names = map(variable.origin, function(element) {\n      return element.name || element.id;\n    });\n\n    variable.origin = names;\n    variable.scope = variable.scope.name || variable.scope.id;\n  });\n\n  return variables;\n}\n\nfunction isMultiScope(scopedVariables) {\n  return keys(scopedVariables).length > 1;\n}\n\nfunction reverse(array) {\n  return map(array, function(a, i) {\n    return array[array.length - 1 - i];\n  });\n}\n\nfunction prefixId(id) {\n  return `bio-properties-panel-${ id }`;\n}","import {\n  is,\n  getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  ScriptProps\n} from './ScriptProps';\n\n\nexport function ScriptTaskProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'bpmn:ScriptTask')) {\n    return [];\n  }\n\n  const entries = [\n    ...ScriptProps({ element })\n  ];\n\n  entries.push({\n    id: 'scriptResultVariable',\n    component: ResultVariable,\n    isEdited: isTextFieldEntryEdited\n  });\n\n  return entries;\n}\n\nfunction ResultVariable(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:resultVariable');\n  };\n\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:resultVariable': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'scriptResultVariable',\n    label: translate('Result variable'),\n    getValue,\n    setValue,\n    debounce\n  });\n}","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { CheckboxEntry } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\n\nexport function TasklistProps(props) {\n  const {\n    element\n  } = props;\n\n  const businessObject = getBusinessObject(element);\n\n  const isEdited = (node) => {\n    return node && !node.checked;\n  };\n\n  if (!is(element, 'bpmn:Process') &&\n      !(is(element, 'bpmn:Participant') && businessObject.get('processRef'))) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'isStartableInTasklist',\n      component: Startable,\n      isEdited\n    },\n  ];\n}\n\nfunction Startable(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n\n  const process = getProcess(element);\n\n  const getValue = () => {\n    return process.get('camunda:isStartableInTasklist');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: process,\n      properties: {\n        'camunda:isStartableInTasklist': value\n      }\n    });\n  };\n\n  return CheckboxEntry({\n    element,\n    id: 'isStartableInTasklist',\n    label: translate('Startable'),\n    getValue,\n    setValue\n  });\n}\n\n\n// helper //////////////////\n\nfunction getProcess(element) {\n  return is(element, 'bpmn:Process') ?\n    getBusinessObject(element) :\n    getBusinessObject(element).get('processRef');\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\n/**\n * Cf. https://docs.camunda.org/manual/latest/reference/bpmn20/tasks/user-task/\n */\nexport function UserAssignmentProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!is(element, 'camunda:Assignable')) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'assignee',\n      component: Assignee,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'candidateGroups',\n      component: CandidateGroups,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'candidateUsers',\n      component: CandidateUsers,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'dueDate',\n      component: DueDate,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'followUpDate',\n      component: FollowUpDate,\n      isEdited: isTextFieldEntryEdited\n    },\n    {\n      id: 'priority',\n      component: Priority,\n      isEdited: isTextFieldEntryEdited\n    }\n  ];\n}\n\nfunction Assignee(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:assignee');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:assignee': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'assignee',\n    label: translate('Assignee'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction CandidateUsers(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:candidateUsers');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:candidateUsers': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'candidateUsers',\n    label: translate('Candidate users'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction CandidateGroups(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:candidateGroups');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:candidateGroups': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'candidateGroups',\n    label: translate('Candidate groups'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction DueDate(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:dueDate');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:dueDate': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'dueDate',\n    label: translate('Due date'),\n    description : translate('The due date as an EL expression (e.g. ${someDate}) or an ISO date (e.g. 2015-06-26T09:54:00).'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction FollowUpDate(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:followUpDate');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:followUpDate': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'followUpDate',\n    label: translate('Follow up date'),\n    description : translate('The follow up date as an EL expression (e.g. ${someDate}) or an ' +\n      'ISO date (e.g. 2015-06-26T09:54:00).'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\nfunction Priority(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const businessObject = getBusinessObject(element);\n\n  const getValue = () => {\n    return businessObject.get('camunda:priority');\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: businessObject,\n      properties: {\n        'camunda:priority': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'priority',\n    label: translate('Priority'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport {\n  useService\n} from '../../../hooks';\n\n\nexport function VersionTagProps(props) {\n  const {\n    element\n  } = props;\n\n  const businessObject = getBusinessObject(element);\n\n  if (!is(element, 'bpmn:Process') &&\n      !(is(element, 'bpmn:Participant') && businessObject.get('processRef'))) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'versionTag',\n      component: VersionTag,\n      isEdited: isTextFieldEntryEdited\n    },\n  ];\n}\n\nfunction VersionTag(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n\n  const process = getProcess(element);\n\n  const getValue = () => {\n    return process.get('camunda:versionTag') || '';\n  };\n\n  const setValue = (value) => {\n    commandStack.execute('element.updateModdleProperties', {\n      element,\n      moddleElement: process,\n      properties: {\n        'camunda:versionTag': value\n      }\n    });\n  };\n\n  return TextFieldEntry({\n    element,\n    id: 'versionTag',\n    label: translate('Version tag'),\n    getValue,\n    setValue,\n    debounce\n  });\n}\n\n\n// helper //////////////////\n\nfunction getProcess(element) {\n  return is(element, 'bpmn:Process') ?\n    getBusinessObject(element) :\n    getBusinessObject(element).get('processRef');\n}","import {\n  getBusinessObject,\n  is\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport { useCallback } from '@bpmn-io/properties-panel/preact/hooks';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  isIdValid\n} from '../../../utils/ValidationUtil';\n\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function IdProps() {\n  return [\n    {\n      id: 'id',\n      component: Id,\n      isEdited: isTextFieldEntryEdited\n    }\n  ];\n}\n\nfunction Id(props) {\n  const {\n    element\n  } = props;\n\n  const modeling = useService('modeling');\n  const debounce = useService('debounceInput');\n  const translate = useService('translate');\n\n  const setValue = (value, error) => {\n    if (error) {\n      return;\n    }\n\n    modeling.updateProperties(element, {\n      id: value\n    });\n  };\n\n  const getValue = useCallback((element) => {\n    return getBusinessObject(element).id;\n  }, [ element ]);\n\n  const validate = useCallback((value) => {\n    const businessObject = getBusinessObject(element);\n\n    return isIdValid(businessObject, value, translate);\n  }, [ element, translate ]);\n\n  const description = is(element, 'bpmn:Process') ?\n    translate('This maps to the process definition key.')\n    : null;\n\n  return TextFieldEntry({\n    element,\n    id: 'id',\n    label: translate(is(element, 'bpmn:Participant') ? 'Participant ID' : 'ID'),\n    getValue,\n    setValue,\n    debounce,\n    validate,\n    description\n  });\n}","import { is } from 'bpmn-js/lib/util/ModelUtil';\n\nimport { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';\n\nimport { useCallback } from '@bpmn-io/properties-panel/preact/hooks';\n\nimport {\n  useService\n} from '../../../hooks';\n\nimport {\n  isIdValid\n} from '../../../utils/ValidationUtil';\n\n/**\n * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry\n */\n\n/**\n * @returns {Array<Entry>} entries\n */\nexport function ProcessProps(props) {\n  const {\n    element\n  } = props;\n\n  if (!hasProcessRef(element)) {\n    return [];\n  }\n\n  return [\n    {\n      id: 'processId',\n      component: ProcessId,\n      isEdited: isTextFieldEntryEdited\n    }\n  ];\n}\n\nfunction ProcessId(props) {\n  const { element } = props;\n\n  const commandStack = useService('commandStack');\n  const translate = useService('translate');\n  const debounce = useService('debounceInput');\n  const process = element.businessObject.get('processRef');\n\n  const getValue = () => {\n    return process.get('id');\n  };\n\n  const setValue = (value, error) => {\n    if (error) {\n      return;\n    }\n\n    commandStack.execute(\n      'element.updateModdleProperties',\n      {\n        element,\n        moddleElement: process,\n        properties: {\n          id: value\n        }\n      }\n    );\n  };\n\n  const validate = useCallback((value) => {\n    return isIdValid(process, value, translate);\n  }, [ process, translate ]);\n\n  const description = is(element, 'bpmn:Participant') ?\n    translate('This maps to the process definition key.')\n    : null;\n\n  return TextFieldEntry({\n    element,\n    id: 'processId',\n    label: translate('Process ID'),\n    getValue,\n    setValue,\n    debounce,\n    validate,\n    description\n  });\n}\n\n\n// helper ////////////////\n\nfunction hasProcessRef(element) {\n  return is(element, 'bpmn:Participant') && element.businessObject.get('processRef');\n}","import { Group, ListGroup } from '@bpmn-io/properties-panel';\n\nimport { findIndex } from 'min-dash';\n\nimport { arrayMoveMutable } from 'array-move';\n\nimport {\n  AsynchronousContinuationsProps,\n  BusinessKeyProps,\n  CallActivityProps,\n  CandidateStarterProps,\n  ConditionProps,\n  ConnectorInputProps,\n  ConnectorOutputProps,\n  ErrorProps,\n  ErrorsProps,\n  EscalationProps,\n  ExternalTaskPriorityProps,\n  FieldInjectionProps,\n  FormDataProps,\n  FormProps,\n  HistoryCleanupProps,\n  IdProps,\n  ImplementationProps,\n  InitiatorProps,\n  InMappingPropagationProps,\n  InMappingProps,\n  InputProps,\n  JobExecutionProps,\n  MultiInstanceProps,\n  OutMappingPropagationProps,\n  OutMappingProps,\n  OutputProps,\n  ProcessProps,\n  ExecutionListenerProps,\n  TaskListenerProps,\n  ProcessVariablesProps,\n  ScriptTaskProps,\n  TasklistProps,\n  TimerProps,\n  UserAssignmentProps,\n  VersionTagProps\n} from './properties';\n\nimport { ExtensionPropertiesProps } from '../shared/ExtensionPropertiesProps';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst LOW_PRIORITY = 500;\n\nconst CAMUNDA_PLATFORM_GROUPS = [\n  HistoryCleanupGroup,\n  TasklistGroup,\n  CandidateStarterGroup,\n  ImplementationGroup,\n  ExternalTaskGroup,\n  ProcessVariablesGroup,\n  ErrorsGroup,\n  UserAssignmentGroup,\n  FormGroup,\n  FormDataGroup,\n  TaskListenerGroup,\n  StartInitiatorGroup,\n  ScriptGroup,\n  ConditionGroup,\n  CallActivityGroup,\n  AsynchronousContinuationsGroup,\n  JobExecutionGroup,\n  InMappingPropagationGroup,\n  InMappingGroup,\n  InputGroup,\n  ConnectorInputGroup,\n  OutMappingPropagationGroup,\n  OutMappingGroup,\n  OutputGroup,\n  ConnectorOutputGroup,\n  ExecutionListenerGroup,\n  ExtensionPropertiesGroup,\n  FieldInjectionGroup,\n  BusinessKeyGroup\n];\n\n/**\n * Provides `camunda` namespace properties.\n *\n * @example\n * ```javascript\n * import BpmnModeler from 'bpmn-js/lib/Modeler';\n * import {\n *   BpmnPropertiesPanelModule,\n *   BpmnPropertiesProviderModule,\n *   CamundaPlatformPropertiesProviderModule\n * } from 'bpmn-js-properties-panel';\n *\n * const modeler = new BpmnModeler({\n *   container: '#canvas',\n *   propertiesPanel: {\n *     parent: '#properties'\n *   },\n *   additionalModules: [\n *     BpmnPropertiesPanelModule,\n *     BpmnPropertiesProviderModule,\n *     CamundaPlatformPropertiesProviderModule\n *   ]\n * });\n * ```\n */\nexport default class CamundaPlatformPropertiesProvider {\n\n  constructor(propertiesPanel, injector) {\n    propertiesPanel.registerProvider(LOW_PRIORITY, this);\n\n    this._injector = injector;\n  }\n\n  getGroups(element) {\n    return (groups) => {\n\n      // (1) add Camunda Platform specific groups\n      groups = groups.concat(this._getGroups(element));\n\n      // (2) update existing groups with Camunda Platform specific properties\n      updateGeneralGroup(groups, element);\n      updateErrorGroup(groups, element);\n      updateEscalationGroup(groups, element);\n      updateMultiInstanceGroup(groups, element);\n      updateTimerGroup(groups, element);\n\n      // (3) move groups given specific priorities\n      moveImplementationGroup(groups);\n\n      return groups;\n    };\n  }\n\n  _getGroups(element) {\n    const groups = CAMUNDA_PLATFORM_GROUPS.map(createGroup => createGroup(element, this._injector));\n\n    // contract: if a group returns null, it should not be displayed at all\n    return groups.filter(group => group !== null);\n  }\n}\n\nCamundaPlatformPropertiesProvider.$inject = [ 'propertiesPanel', 'injector' ];\n\n/**\n * This ensures the <Implementation> group always locates after <Documentation>\n */\nfunction moveImplementationGroup(groups) {\n  const documentationGroupIdx = findGroupIndex(groups, 'documentation');\n\n  if (documentationGroupIdx < 0) {\n    return;\n  }\n\n  return moveGroup(groups, 'CamundaPlatform__Implementation', documentationGroupIdx + 1);\n}\n\nfunction updateGeneralGroup(groups, element) {\n\n  const generalGroup = findGroup(groups, 'general');\n\n  if (!generalGroup) {\n    return;\n  }\n\n  const { entries } = generalGroup;\n\n  // (1) replace id with camunda id\n  const idIndex = findIndex(entries, (entry) => entry.id === 'id');\n  entries.splice(idIndex, 1, ...IdProps());\n\n  // (2) replace processId with camunda processId (if existing)\n  const processIdIndex = findIndex(entries, (entry) => entry.id === 'processId');\n  if (processIdIndex && processIdIndex >= 0) {\n    entries.splice(processIdIndex, 1, ...ProcessProps({ element }));\n  }\n\n  // (3) add version tag before executable (if existing)\n  const executableEntry = findIndex(entries, (entry) => entry.id === 'isExecutable');\n  const insertIndex = executableEntry >= 0 ? executableEntry : entries.length;\n\n  entries.splice(insertIndex, 0, ...VersionTagProps({ element }));\n}\n\nfunction updateErrorGroup(groups, element) {\n  const errorGroup = findGroup(groups, 'error');\n\n  if (!errorGroup) {\n    return;\n  }\n\n  const { entries } = errorGroup;\n\n  ErrorProps({ element, entries });\n}\n\nfunction updateMultiInstanceGroup(groups, element) {\n  const multiInstanceGroup = findGroup(groups, 'multiInstance');\n\n  if (!multiInstanceGroup) {\n    return;\n  }\n\n  const { entries } = multiInstanceGroup;\n\n  MultiInstanceProps({ element, entries });\n}\n\nfunction updateEscalationGroup(groups, element) {\n  const escalationGroup = findGroup(groups, 'escalation');\n\n  if (!escalationGroup) {\n    return;\n  }\n\n  const { entries } = escalationGroup;\n\n  EscalationProps({ element, entries });\n}\n\nfunction updateTimerGroup(groups, element) {\n  const timerEventGroup = findGroup(groups, 'timer');\n\n  if (!timerEventGroup) {\n    return;\n  }\n\n  timerEventGroup.entries = [\n    ...TimerProps({ element })\n  ];\n}\n\nfunction ImplementationGroup(element, injector) {\n  const translate = injector.get('translate');\n\n  const group = {\n    label: translate('Implementation'),\n    id: 'CamundaPlatform__Implementation',\n    component: Group,\n    entries: [\n      ...ImplementationProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction ErrorsGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Errors'),\n    id: 'CamundaPlatform__Errors',\n    component: ListGroup,\n    ...ErrorsProps({ element, injector })\n  };\n\n  if (group.items) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction UserAssignmentGroup(element, injector) {\n  const translate = injector.get('translate');\n\n  const group = {\n    label: translate('User assignment'),\n    id: 'CamundaPlatform__UserAssignment',\n    component: Group,\n    entries: [\n      ...UserAssignmentProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction ScriptGroup(element, injector) {\n  const translate = injector.get('translate');\n\n  const group = {\n    label: translate('Script'),\n    id: 'CamundaPlatform__Script',\n    component: Group,\n    entries: [\n      ...ScriptTaskProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction CallActivityGroup(element, injector) {\n  const translate = injector.get('translate');\n\n  const group = {\n    label: translate('Called element'),\n    id: 'CamundaPlatform__CallActivity',\n    component: Group,\n    entries: [ ...CallActivityProps({ element }) ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction ConditionGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Condition'),\n    id: 'CamundaPlatform__Condition',\n    component: Group,\n    entries: [\n      ...ConditionProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction StartInitiatorGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Start initiator'),\n    id: 'CamundaPlatform__StartInitiator',\n    component: Group,\n    entries: [\n      ...InitiatorProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction ExternalTaskGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('External task'),\n    id: 'CamundaPlatform__ExternalTask',\n    component: Group,\n    entries: [\n      ...ExternalTaskPriorityProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction AsynchronousContinuationsGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Asynchronous continuations'),\n    id: 'CamundaPlatform__AsynchronousContinuations',\n    component: Group,\n    entries: [\n      ...AsynchronousContinuationsProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction JobExecutionGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Job execution'),\n    id: 'CamundaPlatform__JobExecution',\n    component: Group,\n    entries: [\n      ...JobExecutionProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction CandidateStarterGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Candidate starter'),\n    id: 'CamundaPlatform__CandidateStarter',\n    component: Group,\n    entries: [\n      ...CandidateStarterProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction FieldInjectionGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Field injections'),\n    id: 'CamundaPlatform__FieldInjection',\n    component: ListGroup,\n    ...FieldInjectionProps({ element, injector })\n  };\n\n  if (group.items) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction HistoryCleanupGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('History cleanup'),\n    id: 'CamundaPlatform__HistoryCleanup',\n    component: Group,\n    entries: [\n      ...HistoryCleanupProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction TasklistGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Tasklist'),\n    id: 'CamundaPlatform__Tasklist',\n    component: Group,\n    entries: [\n      ...TasklistProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction InMappingGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('In mappings'),\n    id: 'CamundaPlatform__InMapping',\n    component: ListGroup,\n    ...InMappingProps({ element, injector })\n  };\n\n  if (group.items) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction InMappingPropagationGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('In mapping propagation'),\n    id: 'CamundaPlatform__InMappingPropagation',\n    component: Group,\n    entries: [\n      ...InMappingPropagationProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction OutMappingGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Out mappings'),\n    id: 'CamundaPlatform__OutMapping',\n    component: ListGroup,\n    ...OutMappingProps({ element, injector })\n  };\n\n  if (group.items) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction OutMappingPropagationGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Out mapping propagation'),\n    id: 'CamundaPlatform__OutMappingPropagation',\n    component: Group,\n    entries: [\n      ...OutMappingPropagationProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction ProcessVariablesGroup(element, injector) {\n  const translate = injector.get('translate');\n\n  const variableProps = ProcessVariablesProps({ element, injector });\n\n  if (!variableProps) {\n    return null;\n  }\n\n  const group = {\n    label: translate('Process variables'),\n    id: 'CamundaPlatform__ProcessVariables',\n    ...variableProps\n  };\n\n  return group;\n\n}\n\nfunction FormDataGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Form fields'),\n    id: 'CamundaPlatform__FormData',\n    component: ListGroup,\n    ...FormDataProps({ element, injector })\n  };\n\n  if (group.items) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction BusinessKeyGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Business key'),\n    id: 'CamundaPlatform__BusinessKey',\n    component: Group,\n    entries: [\n      ...BusinessKeyProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction FormGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Forms'),\n    id: 'CamundaPlatform__Form',\n    component: Group,\n    entries: [\n      ...FormProps({ element })\n    ]\n  };\n\n  if (group.entries.length) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction ExecutionListenerGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Execution listeners'),\n    id: 'CamundaPlatform__ExecutionListener',\n    component: ListGroup,\n    ...ExecutionListenerProps({ element, injector })\n  };\n\n  if (group.items) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction TaskListenerGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Task listeners'),\n    id: 'CamundaPlatform__TaskListener',\n    component: ListGroup,\n    ...TaskListenerProps({ element, injector })\n  };\n\n  if (group.items) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction InputGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Inputs'),\n    id: 'CamundaPlatform__Input',\n    component: ListGroup,\n    ...InputProps({ element, injector })\n  };\n\n  if (group.items) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction OutputGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Outputs'),\n    id: 'CamundaPlatform__Output',\n    component: ListGroup,\n    ...OutputProps({ element, injector })\n  };\n\n  if (group.items) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction ConnectorInputGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Connector inputs'),\n    id: 'CamundaPlatform__ConnectorInput',\n    component: ListGroup,\n    ...ConnectorInputProps({ element, injector })\n  };\n\n  if (group.items) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction ConnectorOutputGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Connector outputs'),\n    id: 'CamundaPlatform__ConnectorOutput',\n    component: ListGroup,\n    ...ConnectorOutputProps({ element, injector })\n  };\n\n  if (group.items) {\n    return group;\n  }\n\n  return null;\n}\n\nfunction ExtensionPropertiesGroup(element, injector) {\n  const translate = injector.get('translate');\n  const group = {\n    label: translate('Extension properties'),\n    id: 'CamundaPlatform__ExtensionProperties',\n    component: ListGroup,\n    ...ExtensionPropertiesProps({ element, injector })\n  };\n\n  if (group.items) {\n    return group;\n  }\n\n  return null;\n}\n\n\n// helper /////////////////////\n\nfunction findGroup(groups, id) {\n  return groups.find(g => g.id === id);\n}\n\nfunction findGroupIndex(groups, id) {\n  return findIndex(groups, g => g.id === id);\n}\n\nfunction moveGroup(groups, id, position) {\n  const groupIndex = findGroupIndex(groups, id);\n\n  if (position < 0 || groupIndex < 0) {\n    return;\n  }\n\n  return arrayMoveMutable(groups, groupIndex, position);\n}\n","import CamundaPlatformPropertiesProvider from './CamundaPlatformPropertiesProvider';\n\nexport default {\n  __init__: [ 'camundaPlatformPropertiesProvider' ],\n  camundaPlatformPropertiesProvider: [ 'type', CamundaPlatformPropertiesProvider ]\n};","\nimport {\n  is,\n  isAny\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n  useService\n} from '../../hooks';\n\nimport { isZeebeUserTask } from '../../provider/zeebe/utils/FormUtil';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst TooltipProvider = {\n\n  'group-assignmentDefinition': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Define the assignment, schedule, and priority of the user task. Assignee, candidate groups, and candidate users can be combined. Use due date and follow-up date to express deadlines and urgency. ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/user-tasks/#assignments\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('User task documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-condition': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Define a boolean condition expression that determines when this sequence flow is taken. ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/exclusive-gateways/#conditions\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Conditions documentation') }>\n          { translate('Learn how to define conditions.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-businessRuleImplementation': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Evaluate a business rule, for example a DMN decision. To add a custom implementation, use a job worker. ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/business-rule-tasks/#defining-a-task\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Business rule task documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n\n  },\n\n  'group-scriptImplementation': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Implement a script task using an inline FEEL expression. To add a custom implementation, use a job worker. ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/script-tasks/#defining-a-script-task\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Script task documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-userTaskImplementation': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Implement a user task managed by Camunda. To add a custom implementation, use a job worker. ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/user-tasks/#define-a-user-task\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('User task documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-form': (element) => {\n    const translate = useService('translate');\n\n    if (is(element, 'bpmn:StartEvent')) {\n      return (\n        <div>\n          { translate('Link a form created with the Camunda Forms editor. Submitting this form will start a new process instance. ')}\n          <a href=\"https://docs.camunda.io/docs/components/modeler/forms/utilizing-forms/#connect-your-form-to-a-bpmn-diagram\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Start event form documentation') }>\n            { translate('Learn more.') }\n          </a>\n        </div>\n      );\n    }\n\n    if (isZeebeUserTask(element)) {\n      return (\n        <div>\n          { translate('Link a form created with the Camunda Forms editor. To associate a custom form, application, or URL to the user task, specify an external reference. ')}\n          <a href=\"https://docs.camunda.io/docs/components/modeler/forms/utilizing-forms/#connect-your-form-to-a-bpmn-diagram\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('User task form documentation') }>\n            { translate('Learn more.') }\n          </a>\n        </div>\n      );\n    }\n\n    return (\n      <div>\n        { translate('Link or embed a form created with the Camunda Forms editor. To associate a custom form, application, or URL to the user task, specify a form key. ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/forms/utilizing-forms/#connect-your-form-to-a-bpmn-diagram\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('User task form documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-calledDecision': (element) => {\n\n    const translate = useService('translate');\n    return (\n      <div>\n        { translate('Define the decision to evaluate and how to map back the evaluation result. ') }\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/business-rule-tasks/#defining-a-called-decision\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Called decision documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-message': (element) => {\n    const translate = useService('translate');\n\n    if (is(element, 'bpmn:ReceiveTask')) {\n      return (\n        <div>\n          { translate('Configure the message that the task waits for. ') }\n          <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/receive-tasks/#messages\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Receive task message documentation') }>\n            { translate('Learn more.') }\n          </a>\n        </div>\n      );\n    }\n\n    if (is(element, 'bpmn:StartEvent')) {\n      return (\n        <div>\n          { translate('Configure the message that will start this process instance. ') }\n          <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/message-events/#message-start-events\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Message start event documentation') }>\n            { translate('Learn more.') }\n          </a>\n        </div>\n      );\n    }\n\n    if (is(element, 'bpmn:IntermediateCatchEvent')) {\n      return (\n        <div>\n          { translate('Configure the message that this event waits for. ') }\n          <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/message-events/#intermediate-message-catch-events\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Message catch event documentation') }>\n            { translate('Learn more.') }\n          </a>\n        </div>\n      );\n    }\n\n    if (is(element, 'bpmn:BoundaryEvent')) {\n      return (\n        <div>\n          { translate('Configure the message that will trigger this boundary event. ') }\n          <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/message-events/#message-boundary-events\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Message boundary event documentation') }>\n            { translate('Learn more.') }\n          </a>\n        </div>\n      );\n    }\n  },\n\n  'group-calledElement': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Define the ID of the process to call (e.g. ')} <code>shipping-process</code>\n        {translate(' or ')}<code>= \"shipping-\" + tenantId</code> {translate('). ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/call-activities/\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Call activity documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-taskDefinition': (element) => {\n\n    const translate = useService('translate');\n\n    if (is(element, 'bpmn:ServiceTask')) {\n      return (\n        <div>{translate('Specify which job workers handle the task work to execute a service (e.g. ')}<code>order-items</code>{translate('). ')}\n          <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/service-tasks\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Service task documentation') }>\n            { translate('Learn more.') }\n          </a>\n        </div>\n      );\n    }\n\n    if (is(element, 'bpmn:BusinessRuleTask')) {\n      return (\n        <div>{translate('Specify which job workers handle the task work to evaluate business rules. ')}\n          <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/business-rule-tasks/#job-worker-implementation\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Business rule task documentation') }>\n            { translate('Learn more.') }\n          </a>\n        </div>\n      );\n    }\n\n    if (is(element, 'bpmn:ScriptTask')) {\n      return (\n        <div>{translate('Specify which job workers handle the task work to execute a script. ')}\n          <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/script-tasks/#defining-a-task\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Script task documentation') }>\n            { translate('Learn more.') }\n          </a>\n        </div>\n      );\n    }\n\n    if (is(element, 'bpmn:SendTask')) {\n      return (\n        <div>{translate('Specify which job workers handle the task work to send a message (e.g. ')}<code>kafka</code>{translate(' or ')}<code>mail</code>{translate('). ')}\n          <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/send-tasks/#defining-a-task\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Send task documentation') }>\n            { translate('Learn more.') }\n          </a>\n        </div>\n      );\n    }\n\n    if (is(element, 'bpmn:ThrowEvent')) {\n      return (\n        <div>{translate('Specify which job workers handle the event work. ')}\n          <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/message-events/#message-throw-events\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Message throw event documentation') }>\n            { translate('Learn more.') }\n          </a>\n        </div>\n      );\n    }\n  },\n\n  'group-multiInstance': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        {translate('Execute this task for each element of a given collection. ')}\n        <br />\n        {translate('Define an input collection expression that defines the collection to iterate over (e.g. ')}<code>= items</code>{translate('). ')}\n        {translate('To collect the output define the output collection and the output element expressions. ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/multi-instance/#defining-the-collection-to-iterate-over\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Multi instance documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-error': (element) => {\n    const translate = useService('translate');\n\n    if (is(element, 'bpmn:EndEvent')) {\n      return (\n        <div>\n          {translate('Define the error to throw. Specify an error code (e.g. ')}<code>order-not-found</code>{translate(') to identify the error. ')}\n          <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/error-events/#defining-the-error\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Error event documentation') }>\n            { translate('Learn more.') }\n          </a>\n        </div>\n      );\n    }\n\n    return (\n      <div>\n        {translate('Define the error to catch. Specify an error code (e.g. ')}<code>order-not-found</code>{translate(') to match a specific error, or leave empty to catch any error. ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/error-events/#defining-the-error\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Error event documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-inputs': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Add input mappings to control what is passed to the activity as local variables. ')}\n        <a href=\"https://docs.camunda.io/docs/components/concepts/variables/#input-mappings\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Input mappings documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-outputs': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Add output mappings to control which variables are merged back into the process scope. ')}\n        <a href=\"https://docs.camunda.io/docs/components/concepts/variables/#output-mappings\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Output mappings documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n  'taskDefinitionRetries': (element) => {\n\n    const translate = useService('translate');\n\n    return (\n      <div>\n        <p>\n          { translate('The number of times the engine tries executing this activity if a worker signals a failure. The default is three.') } { ' ' }\n          <a href=\"https://docs.camunda.io/docs/components/best-practices/development/dealing-with-problems-and-exceptions/#leveraging-retries\" target=\"_blank\" rel=\"noopener noreferrer\">{ translate('Learn more.') }</a>\n        </p>\n      </div>\n    );\n  },\n  'bindingType': (element) => {\n\n    const translate = useService('translate');\n\n    return (\n      <div>\n        <p>\n          <h1>{ translate('Latest binding') }</h1>\n          { translate('Uses the most recent deployed resource.') }\n        </p>\n        <p>\n          <h1>{ translate('Deployment binding') }</h1>\n          { translate('Uses the resource found in the same deployment.') }\n        </p>\n        <p>\n          <h1>{ translate('Version tag binding') }</h1>\n          { translate('Uses the most recent deployed resource with the given version tag.') }\n        </p>\n      </div>\n    );\n  },\n  'versionTag': (element) => {\n    const translate = useService('translate');\n\n    if (isAny(element, [ 'bpmn:Process', 'bpmn:Participant' ])) {\n      return (\n        <div>\n          <p>\n            { translate('Version tag by which this process can be referenced.') }\n          </p>\n        </div>\n      );\n    } else if (is(element, 'bpmn:CallActivity')) {\n      return (\n        <div>\n          <p>\n            { translate('Version tag by which the called process will be referenced.') }\n          </p>\n        </div>\n      );\n    } else if (is(element, 'bpmn:BusinessRuleTask')) {\n      return (\n        <div>\n          <p>\n            { translate('Version tag by which the called decision will be referenced.') }\n          </p>\n        </div>\n      );\n    } else if (is(element, 'bpmn:UserTask')) {\n      return (\n        <div>\n          <p>\n            { translate('Version tag by which the linked form will be referenced.') }\n          </p>\n        </div>\n      );\n    }\n  },\n  'priorityDefinitionPriority': (element) => {\n\n    const translate = useService('translate');\n\n    return (\n      <div>\n        <p>\n          { translate('Specifies the priority of a user task. Must be an integer between 0 and 100. If no value is provided, the default value is 50. ') }\n          <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/user-tasks/#define-user-task-priority\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('User task priority documentation') }>{ translate('Learn more.') }</a>\n        </p>\n      </div>\n    );\n  },\n  'group-adHocCompletion': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        {translate('Define the completion behavior of an ad-hoc subprocess. If no completion condition is set, it will be completed after all active elements have been completed. ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/ad-hoc#completion\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Ad-hoc subprocess documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n  'group-activeElements': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        {translate('Define a collection of elements which will be activated when the ad-hoc subprocess is reached. ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/ad-hoc/#activate-an-element\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Ad-hoc subprocess documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n  'messageSubscriptionCorrelationKey': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        <p>\n          { translate('Identifier computed from the process context that is used to correlate an incoming message (e.g. ')}<code>= orderId</code>{translate('). ')}\n          <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/message-events/#messages\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Subscription correlation key documentation') }>\n            { translate('Learn more.') }\n          </a>        </p>\n      </div>\n    );\n  },\n  'group-event-condition': () => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Specify the condition that triggers this event. ')}\n        <a href=\"https://docs.camunda.io/docs/8.9/components/modeler/bpmn/conditional-events\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Conditional event documentation') }>\n          { translate('About conditional events.') }\n        </a>\n      </div>\n    );\n  },\n  'condition': () => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        {translate('A FEEL expression that determines whether the event should trigger. ')}\n        <a href=\"https://docs.camunda.io/docs/8.9/components/modeler/bpmn/conditional-events/conditional-events/#condition-expressions-feel\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Conditional event documentation') }>\n          {translate('Learn more.')}\n        </a>\n      </div>\n    );\n  },\n  'variableEvents': () => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Variable events that trigger the condition evaluation. If none selected, all variable events will trigger the condition evaluation. ') }\n        <a href=\"https://docs.camunda.io/docs/8.9/components/modeler/bpmn/conditional-events/conditional-events/#variable-filters\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Conditional event documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-headers': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Define static metadata passed to job workers alongside each job. Headers are not evaluated by the engine — use them for fixed worker configuration (e.g. ')}\n        <code>resultVariable</code>{translate(', ')}<code>paymentMethod</code>{translate('). ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/service-tasks/#task-headers\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Task headers documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-Zeebe__TaskListeners': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('React to user task lifecycle events by executing a job worker. ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/user-tasks/#task-listeners\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Task listeners documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-Zeebe__ExecutionListeners': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Add custom logic that reacts to various events in the workflow execution life-cycle. ')}\n        <a href=\"https://docs.camunda.io/docs/components/concepts/execution-listeners/\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Execution listeners documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-Zeebe__ExtensionProperties': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Add custom key-value metadata to this element. Extension properties have no effect on process execution — they can be used to attach configuration visible for other consumers of the BPMN diagram. ')}\n      </div>\n    );\n  },\n\n  'group-script': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Define the FEEL expression to evaluate and the variable to store the result in. ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/script-tasks/#defining-a-script-task\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Script task documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-outputPropagation': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Control which variables from the called process are merged back into the parent scope. By default, all child variables are propagated; use output mappings to selectively return specific variables. ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/call-activities/#variable-mappings\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Call activity documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-adHocSubProcessImplementation': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Implement the ad-hoc subprocess as a job worker instead of activating inner elements. The job type determines which worker handles the subprocess execution. ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/ad-hoc/\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Ad-hoc subprocess documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  'group-outputCollection': (element) => {\n    const translate = useService('translate');\n\n    return (\n      <div>\n        { translate('Define how to collect the outputs of the ad-hoc subprocess. The output collection variable stores the list of results; the output element expression defines what each element contributes. ')}\n        <a href=\"https://docs.camunda.io/docs/components/modeler/bpmn/ad-hoc/\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Ad-hoc subprocess documentation') }>\n          { translate('Learn more.') }\n        </a>\n      </div>\n    );\n  },\n\n  // TODO(@barmac): Change docs link to stable with 8.10 release\n  'group-jobPriorityDefinition': (element) => {\n    const translate = useService('translate');\n\n    if (isAny(element, [ 'bpmn:Process', 'bpmn:Participant' ])) {\n      return (\n        <div>\n          <p>\n            { translate('Specifies the default priority for all jobs created by a process. Must be an integer. If no value is provided, the default value is 0. ') }\n            <a href=\"https://docs.camunda.io/docs/next/components/concepts/job-workers/#job-prioritization\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Job priority documentation') }>{ translate('Learn more.') }</a>\n          </p>\n        </div>\n      );\n    }\n\n    return (\n      <div>\n        <p>\n          { translate('Specifies the priority of a job. Must be an integer. If no value is provided, the default value is 0. ') }\n          <a href=\"https://docs.camunda.io/docs/next/components/concepts/job-workers/#job-prioritization\" target=\"_blank\" rel=\"noopener noreferrer\" title={ translate('Job priority documentation') }>{ translate('Learn more.') }</a>\n        </p>\n      </div>\n    );\n  }\n};\n\nexport default TooltipProvider;\n","\n\nimport {\n  useService\n} from '../../hooks';\n\n{ /* Required to break up imports, see https://github.com/babel/babel/issues/15156 */ }\n\nconst TooltipProvider = {\n  'historyTimeToLive': (element) => {\n\n    const translate = useService('translate');\n\n    return (\n      <div>\n        <p>\n          { translate('Number of days before this resource is being cleaned up. If specified, takes precedence over the engine configuration.') }{ ' '}\n          <a href=\"https://docs.camunda.org/manual/latest/user-guide/process-engine/history/\" target=\"_blank\" rel=\"noopener noreferrer\">{ translate('Learn more.') }</a>\n        </p>\n      </div>\n    );\n  }\n};\n\nexport default TooltipProvider;\n"]}