camunda-bpmn-js 5.5.1 → 5.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,6 +29,8 @@ import {
29
29
  CreateAppendElementTemplatesModule as createAppendElementTemplatesModule
30
30
  } from 'bpmn-js-create-append-anything';
31
31
 
32
+ import camundaDetailsPopupMenuModule from './features/popup-menu';
33
+
32
34
  /**
33
35
  * @typedef {import('bpmn-js/lib/BaseViewer').BaseViewerOptions} BaseViewerOptions
34
36
  */
@@ -96,7 +98,8 @@ Modeler.prototype._camundaCloudModules = [
96
98
  colorPickerModule,
97
99
  variableResolverModule,
98
100
  exampleDataPropertiesProviderModule,
99
- formVariableProviderModule
101
+ formVariableProviderModule,
102
+ camundaDetailsPopupMenuModule
100
103
  ];
101
104
 
102
105
  Modeler.prototype._modules = [].concat(
@@ -0,0 +1,26 @@
1
+ export default class CamundaDetailsPopupMenuProvider {
2
+ static $inject: string[];
3
+
4
+ /**
5
+ * @param popupMenu
6
+ *
7
+ * @implements PopupMenuProvider
8
+ */
9
+ constructor(popupMenu: PopupMenu);
10
+
11
+ /**
12
+ * Register create menu provider in the popup menu
13
+ */
14
+ register(): void;
15
+
16
+ /**
17
+ * Returns the create options as menu entries
18
+ *
19
+ * @param _element
20
+ */
21
+ getPopupMenuEntries(_element: Element): (existingEntries: PopupMenuEntries) => PopupMenuEntries;
22
+ }
23
+
24
+ type PopupMenu = import("diagram-js/lib/features/popup-menu/PopupMenu").default;
25
+ type Element = import("diagram-js/lib/model").Element;
26
+ type PopupMenuEntries = import("diagram-js/lib/features/popup-menu/PopupMenuProvider").PopupMenuEntries;
@@ -0,0 +1,149 @@
1
+ /**
2
+ * @typedef { import('diagram-js/lib/features/popup-menu/PopupMenu').default } PopupMenu
3
+ * @typedef { import('diagram-js/lib/model').Element } Element
4
+ * @typedef { import('diagram-js/lib/features/popup-menu/PopupMenuProvider').PopupMenuEntries } PopupMenuEntries
5
+ */
6
+
7
+ import { reduce } from 'min-dash';
8
+
9
+ const LOW_PRIORITY = 250;
10
+
11
+ const ANNOTATIONS = [
12
+ {
13
+ entries: [
14
+ 'replace-with-call-activity',
15
+ 'append-call-activity',
16
+ 'create-call-activity'
17
+ ],
18
+ search: 'child process'
19
+ },
20
+ {
21
+ entries: [
22
+ 'replace-with-receive-task',
23
+ 'append-receive-task',
24
+ 'create-receive-task'
25
+ ],
26
+ search: 'message'
27
+ },
28
+ {
29
+ entries: [
30
+ 'replace-with-rule-task',
31
+ 'append-rule-task',
32
+ 'create-rule-task'
33
+ ],
34
+ search: 'dmn decision'
35
+ },
36
+ {
37
+ entries: [
38
+ 'replace-with-service-task',
39
+ 'append-service-task',
40
+ 'create-service-task',
41
+ 'replace-with-script-task',
42
+ 'append-script-task',
43
+ 'create-script-task',
44
+ 'replace-with-send-task',
45
+ 'append-send-task',
46
+ 'create-send-task',
47
+ 'replace-with-message-intermediate-throw',
48
+ 'append-message-intermediate-throw',
49
+ 'create-message-intermediate-throw',
50
+ 'replace-with-message-end',
51
+ 'append-message-end',
52
+ 'create-message-end'
53
+ ],
54
+ search: 'job worker'
55
+ },
56
+ {
57
+ entries: [
58
+ 'replace-with-user-task',
59
+ 'append-user-task',
60
+ 'create-user-task'
61
+ ],
62
+ search: 'form human'
63
+ }
64
+ ];
65
+
66
+ const ANNOTATIONS_KEYED = reduce(ANNOTATIONS, (annotationsKeyed, annotation) => {
67
+
68
+ const { entries, search } = annotation;
69
+
70
+ for (const entry of entries) {
71
+ if (annotationsKeyed[entry]) {
72
+ annotationsKeyed[entry].search += ' ' + search;
73
+ } else {
74
+ annotationsKeyed[entry] = { search };
75
+ }
76
+ }
77
+
78
+ return annotationsKeyed;
79
+ }, {});
80
+
81
+
82
+ /**
83
+ * @param { PopupMenu } popupMenu
84
+ *
85
+ * @implements PopupMenuProvider
86
+ */
87
+ export default function CamundaDetailsPopupMenuProvider(popupMenu) {
88
+
89
+ this._popupMenu = popupMenu;
90
+
91
+ this.register();
92
+ }
93
+
94
+ CamundaDetailsPopupMenuProvider.$inject = [ 'popupMenu' ];
95
+
96
+
97
+ /**
98
+ * Register create menu provider in the popup menu
99
+ */
100
+ CamundaDetailsPopupMenuProvider.prototype.register = function() {
101
+
102
+ // plug-into create-append-anything <create> menu
103
+ this._popupMenu.registerProvider('bpmn-create', LOW_PRIORITY, this);
104
+
105
+ // plug-into create-append-anything <append> menu
106
+ this._popupMenu.registerProvider('bpmn-append', LOW_PRIORITY, this);
107
+
108
+ // plug-into <replace> menu
109
+ this._popupMenu.registerProvider('bpmn-replace', LOW_PRIORITY, this);
110
+ };
111
+
112
+
113
+ /**
114
+ * Returns the create options as menu entries
115
+ *
116
+ * @param { Element } _element
117
+ */
118
+ CamundaDetailsPopupMenuProvider.prototype.getPopupMenuEntries = function(_element) {
119
+
120
+ /**
121
+ * @param { PopupMenuEntries } existingEntries
122
+ *
123
+ * @return { PopupMenuEntries }
124
+ */
125
+ return (existingEntries) => {
126
+
127
+ return Object.entries(existingEntries).reduce((entries, [ name, entry ]) => {
128
+
129
+ entries[name] = this._annotateEntry(name, entry);
130
+
131
+ return entries;
132
+ }, { });
133
+ };
134
+
135
+ };
136
+
137
+ CamundaDetailsPopupMenuProvider.prototype._annotateEntry = function(name, entry) {
138
+
139
+ const annotation = ANNOTATIONS_KEYED[name];
140
+
141
+ if (annotation) {
142
+ return {
143
+ ...entry,
144
+ search: entry.search ? `${ entry.search } ${ annotation.search }` : annotation.search
145
+ };
146
+ }
147
+
148
+ return entry;
149
+ };
@@ -0,0 +1,6 @@
1
+ declare namespace _default {
2
+ let __init__: string[];
3
+ let camundaDetailsPopupMenuProvider: (string | typeof CamundaDetailsPopupMenuProvider)[];
4
+ }
5
+ export default _default;
6
+ import CamundaDetailsPopupMenuProvider from './CamundaDetailsPopupMenuProvider.js';
@@ -0,0 +1,6 @@
1
+ import CamundaDetailsPopupMenuProvider from './CamundaDetailsPopupMenuProvider.js';
2
+
3
+ export default {
4
+ __init__: [ 'camundaDetailsPopupMenuProvider' ],
5
+ camundaDetailsPopupMenuProvider: [ 'type', CamundaDetailsPopupMenuProvider ]
6
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "camunda-bpmn-js",
3
- "version": "5.5.1",
3
+ "version": "5.6.1",
4
4
  "description": "Embeddable Camunda modeling distributions based on bpmn-js",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -56,13 +56,13 @@
56
56
  "@bpmn-io/element-template-chooser": "^1.0.0",
57
57
  "@bpmn-io/element-template-icon-renderer": "^0.5.2",
58
58
  "@bpmn-io/form-variable-provider": "^1.3.0",
59
- "@bpmn-io/properties-panel": "^3.26.0",
59
+ "@bpmn-io/properties-panel": "^3.26.2",
60
60
  "@bpmn-io/variable-resolver": "^1.3.3",
61
61
  "@camunda/example-data-properties-provider": "^1.2.1",
62
- "bpmn-js": "^18.2.0",
62
+ "bpmn-js": "^18.3.1",
63
63
  "bpmn-js-color-picker": "^0.7.1",
64
64
  "bpmn-js-create-append-anything": "^0.6.0",
65
- "bpmn-js-element-templates": "^2.5.2",
65
+ "bpmn-js-element-templates": "^2.5.3",
66
66
  "bpmn-js-executable-fix": "^0.2.1",
67
67
  "camunda-bpmn-js-behaviors": "^1.9.1",
68
68
  "camunda-bpmn-moddle": "^7.0.1",
@@ -83,7 +83,7 @@
83
83
  "babel-loader": "^9.2.1",
84
84
  "babel-plugin-istanbul": "^7.0.0",
85
85
  "bio-dts": "^0.11.0",
86
- "bpmn-js-properties-panel": "^5.31.1",
86
+ "bpmn-js-properties-panel": "^5.32.1",
87
87
  "chai": "^4.5.0",
88
88
  "cross-env": "^7.0.3",
89
89
  "del-cli": "^6.0.0",