-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathModeler.js
105 lines (87 loc) · 2.95 KB
/
Modeler.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import inherits from 'inherits-browser';
import BaseModeler from '../base/Modeler';
import behaviorsModule from 'camunda-bpmn-js-behaviors/lib/camunda-cloud';
import {
ZeebePropertiesProviderModule as zeebePropertiesProviderModule,
ZeebeTooltipProvider
} from 'bpmn-js-properties-panel';
import {
CloudElementTemplatesPropertiesProviderModule as cloudElementTemplatesPropertiesProvider
} from 'bpmn-js-element-templates';
import {
ZeebeVariableResolverModule as variableResolverModule
} from '@bpmn-io/variable-resolver';
import exampleDataPropertiesProviderModule from '@camunda/example-data-properties-provider';
import formVariableProviderModule from '@bpmn-io/form-variable-provider';
import colorPickerModule from 'bpmn-js-color-picker';
import elementTemplateChooserModule from '@bpmn-io/element-template-chooser';
import { commonModdleExtensions, commonModules } from './util/commonModules';
import {
CreateAppendAnythingModule as createAppendAnythingModule,
CreateAppendElementTemplatesModule as createAppendElementTemplatesModule
} from 'bpmn-js-create-append-anything';
/**
* @typedef {import('bpmn-js/lib/BaseViewer').BaseViewerOptions} BaseViewerOptions
*/
/**
* @param {BaseViewerOptions} options
*/
export default function Modeler(options = {}) {
options = {
...options,
moddleExtensions: {
...commonModdleExtensions,
...options.moddleExtensions
},
propertiesPanel: {
tooltip: ZeebeTooltipProvider,
getFeelPopupLinks: (type) => {
if (type === 'feel') {
return [
{
title: 'Learn FEEL expressions',
href: 'https://docs.camunda.io/docs/components/modeler/feel/what-is-feel/'
},
{
title: 'Try FEEL Copilot',
href: 'https://feel-copilot.camunda.com/'
}
];
} else if (type === 'feelers') {
return [
{
title: 'Learn templating',
href: 'https://docs.camunda.io/docs/components/modeler/forms/configuration/forms-config-templating-syntax/'
}
];
}
},
...options.propertiesPanel
}
};
this._addElementTemplateChooserModule(options);
BaseModeler.call(this, options);
}
inherits(Modeler, BaseModeler);
Modeler.prototype._addElementTemplateChooserModule = function(options) {
const { elementTemplateChooser } = options;
if (elementTemplateChooser !== false) {
this._modules = [ ...this._modules, elementTemplateChooserModule ];
}
};
Modeler.prototype._camundaCloudModules = [
...commonModules,
behaviorsModule,
zeebePropertiesProviderModule,
cloudElementTemplatesPropertiesProvider,
createAppendAnythingModule,
createAppendElementTemplatesModule,
colorPickerModule,
variableResolverModule,
exampleDataPropertiesProviderModule,
formVariableProviderModule
];
Modeler.prototype._modules = [].concat(
BaseModeler.prototype._modules,
Modeler.prototype._camundaCloudModules
);