@jylups/cmmn-js 0.0.0-stage → 0.21.0

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.
Files changed (103) hide show
  1. package/.babelrc +3 -0
  2. package/CHANGELOG.md +119 -0
  3. package/LICENSE +23 -0
  4. package/README.md +107 -2
  5. package/dist/assets/cmmn-font/css/cmmn-codes.css +41 -0
  6. package/dist/assets/cmmn-font/css/cmmn-embedded.css +94 -0
  7. package/dist/assets/cmmn-font/css/cmmn.css +97 -0
  8. package/dist/assets/cmmn-font/font/cmmn.eot +0 -0
  9. package/dist/assets/cmmn-font/font/cmmn.svg +90 -0
  10. package/dist/assets/cmmn-font/font/cmmn.ttf +0 -0
  11. package/dist/assets/cmmn-font/font/cmmn.woff +0 -0
  12. package/dist/assets/cmmn-font/font/cmmn.woff2 +0 -0
  13. package/dist/assets/diagram-js.css +713 -0
  14. package/dist/cmmn-modeler.development.js +44817 -0
  15. package/dist/cmmn-modeler.production.min.js +2 -0
  16. package/dist/cmmn-navigated-viewer.development.js +18131 -0
  17. package/dist/cmmn-navigated-viewer.production.min.js +2 -0
  18. package/dist/cmmn-viewer.development.js +17599 -0
  19. package/dist/cmmn-viewer.production.min.js +2 -0
  20. package/index.js +1 -0
  21. package/lib/Modeler.js +222 -0
  22. package/lib/NavigatedViewer.js +28 -0
  23. package/lib/Viewer.js +489 -0
  24. package/lib/core/ItemRegistry.js +316 -0
  25. package/lib/core/index.js +7 -0
  26. package/lib/draw/CmmnRenderer.js +1235 -0
  27. package/lib/draw/PathMap.js +335 -0
  28. package/lib/draw/index.js +5 -0
  29. package/lib/features/auto-resize/CmmnAutoResizeProvider.js +57 -0
  30. package/lib/features/auto-resize/index.js +7 -0
  31. package/lib/features/context-pad/ContextPadProvider.js +240 -0
  32. package/lib/features/context-pad/index.js +11 -0
  33. package/lib/features/editor-actions/CmmnEditorActions.js +105 -0
  34. package/lib/features/editor-actions/index.js +10 -0
  35. package/lib/features/keyboard/CmmnKeyboardBindings.js +159 -0
  36. package/lib/features/keyboard/index.js +7 -0
  37. package/lib/features/label-editing/LabelEditingProvider.js +221 -0
  38. package/lib/features/label-editing/LabelUtil.js +95 -0
  39. package/lib/features/label-editing/cmd/UpdateLabelHandler.js +63 -0
  40. package/lib/features/label-editing/index.js +9 -0
  41. package/lib/features/modeling/CmmnFactory.js +166 -0
  42. package/lib/features/modeling/CmmnLayouter.js +49 -0
  43. package/lib/features/modeling/CmmnUpdater.js +511 -0
  44. package/lib/features/modeling/ElementFactory.js +215 -0
  45. package/lib/features/modeling/Modeling.js +185 -0
  46. package/lib/features/modeling/behavior/AttachCriterionBehavior.js +58 -0
  47. package/lib/features/modeling/behavior/CaseFileItemUpdater.js +324 -0
  48. package/lib/features/modeling/behavior/LabelBehavior.js +139 -0
  49. package/lib/features/modeling/behavior/PlanItemDefinitionUpdater.js +449 -0
  50. package/lib/features/modeling/behavior/PlanningTableUpdater.js +620 -0
  51. package/lib/features/modeling/behavior/ReplaceConnectionBehavior.js +320 -0
  52. package/lib/features/modeling/behavior/ReplaceElementBehavior.js +395 -0
  53. package/lib/features/modeling/behavior/ResizeCasePlanModelBehavior.js +108 -0
  54. package/lib/features/modeling/behavior/SentryUpdater.js +678 -0
  55. package/lib/features/modeling/behavior/UnclaimIdBehavior.js +28 -0
  56. package/lib/features/modeling/behavior/index.js +24 -0
  57. package/lib/features/modeling/cmd/AppendShapeHandler.js +52 -0
  58. package/lib/features/modeling/cmd/IdClaimHandler.js +38 -0
  59. package/lib/features/modeling/cmd/ReconnectConnectionHandler.js +57 -0
  60. package/lib/features/modeling/cmd/ReplaceShapeHandler.js +46 -0
  61. package/lib/features/modeling/cmd/UpdateControlsHandler.js +221 -0
  62. package/lib/features/modeling/cmd/UpdatePropertiesHandler.js +240 -0
  63. package/lib/features/modeling/cmd/UpdateSemanticParentHandler.js +94 -0
  64. package/lib/features/modeling/index.js +20 -0
  65. package/lib/features/modeling/util/ModelingUtil.js +138 -0
  66. package/lib/features/modeling/util/PlanItemDefinitionUtil.js +183 -0
  67. package/lib/features/ordering/CmmnOrderingProvider.js +146 -0
  68. package/lib/features/ordering/index.js +4 -0
  69. package/lib/features/outline/Outline.js +47 -0
  70. package/lib/features/outline/index.js +6 -0
  71. package/lib/features/palette/PaletteProvider.js +171 -0
  72. package/lib/features/palette/index.js +12 -0
  73. package/lib/features/popup-menu/ReplaceMenuProvider.js +448 -0
  74. package/lib/features/popup-menu/index.js +4 -0
  75. package/lib/features/replace/CmmnReplace.js +355 -0
  76. package/lib/features/replace/ReplaceOptions.js +241 -0
  77. package/lib/features/replace/index.js +8 -0
  78. package/lib/features/replace-preview/CmmnReplacePreview.js +247 -0
  79. package/lib/features/replace-preview/index.js +7 -0
  80. package/lib/features/rules/CmmnRules.js +1040 -0
  81. package/lib/features/rules/index.js +7 -0
  82. package/lib/features/search/CmmnSearchProvider.js +129 -0
  83. package/lib/features/search/index.js +7 -0
  84. package/lib/features/snapping/CmmnConnectSnapping.js +110 -0
  85. package/lib/features/snapping/CmmnCreateMoveSnapping.js +148 -0
  86. package/lib/features/snapping/CmmnResizeSnapping.js +42 -0
  87. package/lib/features/snapping/CmmnSnappingUtil.js +76 -0
  88. package/lib/features/snapping/index.js +17 -0
  89. package/lib/import/CmmnImporter.js +251 -0
  90. package/lib/import/CmmnTreeWalker.js +410 -0
  91. package/lib/import/Importer.js +73 -0
  92. package/lib/import/Util.js +9 -0
  93. package/lib/import/index.js +3 -0
  94. package/lib/util/DiUtil.js +39 -0
  95. package/lib/util/LabelUtil.js +124 -0
  96. package/lib/util/ModelUtil.js +257 -0
  97. package/lib/util/PoweredByUtil.js +91 -0
  98. package/package.json +88 -4
  99. package/test/helper/index.js +231 -0
  100. package/test/util/KeyEvents.js +23 -0
  101. package/test/util/MockEvents.js +55 -0
  102. package/test/util/custom-rules/CustomRules.js +19 -0
  103. package/test/util/custom-rules/index.js +4 -0
@@ -0,0 +1,73 @@
1
+ 'use strict';
2
+
3
+ var CmmnTreeWalker = require('./CmmnTreeWalker');
4
+
5
+
6
+ /**
7
+ * Import the definitions into a diagram.
8
+ *
9
+ * Errors and warnings are reported through the specified callback.
10
+ *
11
+ * @param {Diagram} diagram
12
+ * @param {ModdleElement} definitions
13
+ * @param {Function} done the callback, invoked with (err, [ warning ]) once the import is done
14
+ */
15
+ function importCmmnDiagram(diagram, definitions, done) {
16
+
17
+ var importer = diagram.get('cmmnImporter'),
18
+ eventBus = diagram.get('eventBus'),
19
+ itemRegistry = diagram.get('itemRegistry');
20
+
21
+ var error,
22
+ warnings = [];
23
+
24
+ /**
25
+ * Walk the diagram semantically, importing (=drawing)
26
+ * all elements you encounter.
27
+ *
28
+ * @param {ModdleElement} definitions
29
+ */
30
+ function render(definitions) {
31
+
32
+ var visitor = {
33
+
34
+ root: function(element) {
35
+ return importer.root(element);
36
+ },
37
+
38
+ element: function(element, parentShape) {
39
+ return importer.add(element, parentShape);
40
+ },
41
+
42
+ error: function(message, context) {
43
+ warnings.push({ message: message, context: context });
44
+ },
45
+
46
+ addItem: function(item) {
47
+ itemRegistry.add(item);
48
+ }
49
+ };
50
+
51
+ var walker = new CmmnTreeWalker(visitor);
52
+
53
+ // import
54
+ walker.handleDefinitions(definitions);
55
+ }
56
+
57
+ eventBus.fire('import.render.start', { definitions: definitions });
58
+
59
+ try {
60
+ render(definitions);
61
+ } catch (e) {
62
+ error = e;
63
+ }
64
+
65
+ eventBus.fire('import.render.complete', {
66
+ error: error,
67
+ warnings: warnings
68
+ });
69
+
70
+ done(error, warnings);
71
+ }
72
+
73
+ module.exports.importCmmnDiagram = importCmmnDiagram;
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ module.exports.elementToString = function(e) {
4
+ if (!e) {
5
+ return '<null>';
6
+ }
7
+
8
+ return '<' + e.$type + (e.id ? ' id="' + e.id : '') + '" />';
9
+ };
@@ -0,0 +1,3 @@
1
+ module.exports = {
2
+ cmmnImporter: [ 'type', require('./CmmnImporter') ]
3
+ };
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ var is = require('./ModelUtil').is,
4
+ getBusinessObject = require('./ModelUtil').getBusinessObject,
5
+ isCasePlanModel = require('./ModelUtil').isCasePlanModel;
6
+
7
+ module.exports.isCollapsed = function(element) {
8
+
9
+ if (!isCasePlanModel(element)) {
10
+
11
+ element = getBusinessObject(element);
12
+
13
+ var definition = element.definitionRef;
14
+ if (is(definition, 'cmmn:PlanFragment')) {
15
+ return !!(element && element.di && element.di.isCollapsed);
16
+ }
17
+ }
18
+
19
+ return false;
20
+ };
21
+
22
+ module.exports.isPlanningTableCollapsed = function(element) {
23
+
24
+ element = getBusinessObject(element);
25
+
26
+ if (is(element, 'cmmn:Stage') ||
27
+ (element.definitionRef && (is(element.definitionRef, 'cmmn:Stage') ||
28
+ is(element.definitionRef, 'cmmn:HumanTask')))) {
29
+ return element.di && element.di.isPlanningTableCollapsed;
30
+ }
31
+
32
+ return false;
33
+ };
34
+
35
+ module.exports.isStandardEventVisible = function(element) {
36
+ element = getBusinessObject(element);
37
+ var cmmnElement = element.cmmnElementRef;
38
+ return !!(is(cmmnElement, 'cmmn:OnPart') && element.isStandardEventVisible);
39
+ };
@@ -0,0 +1,124 @@
1
+ 'use strict';
2
+
3
+ var is = require('../util/ModelUtil').is;
4
+ var assign = require('min-dash').assign;
5
+
6
+ var DEFAULT_LABEL_SIZE = module.exports.DEFAULT_LABEL_SIZE = {
7
+ width: 90,
8
+ height: 20
9
+ };
10
+
11
+
12
+ /**
13
+ * Returns true if the given semantic has an external label
14
+ *
15
+ * @param {CmmnElement} semantic
16
+ * @return {Boolean} true if has label
17
+ */
18
+ module.exports.hasExternalLabel = function(semantic) {
19
+
20
+ if (is(semantic, 'cmmn:PlanItem') || is(semantic, 'cmmn:DiscretionaryItem')) {
21
+ semantic = semantic.definitionRef;
22
+ }
23
+
24
+ if (is(semantic, 'cmmndi:CMMNEdge') && semantic.cmmnElementRef) {
25
+
26
+ if (is(semantic.cmmnElementRef, 'cmmn:OnPart')) {
27
+ semantic = semantic.cmmnElementRef;
28
+ }
29
+
30
+ }
31
+
32
+ return is(semantic, 'cmmn:EventListener') ||
33
+ is(semantic, 'cmmn:OnPart') ||
34
+ is(semantic, 'cmmn:CaseFileItem');
35
+ };
36
+
37
+ /**
38
+ * Get the middle of a number of waypoints
39
+ *
40
+ * @param {Array<Point>} waypoints
41
+ * @return {Point} the mid point
42
+ */
43
+ var getWaypointsMid = module.exports.getWaypointsMid = function(waypoints) {
44
+
45
+ var mid = waypoints.length / 2 - 1;
46
+
47
+ var first = waypoints[Math.floor(mid)];
48
+ var second = waypoints[Math.ceil(mid + 0.01)];
49
+
50
+ return {
51
+ x: first.x + (second.x - first.x) / 2,
52
+ y: first.y + (second.y - first.y) / 2
53
+ };
54
+ };
55
+
56
+
57
+ var getExternalLabelMid = module.exports.getExternalLabelMid = function(element) {
58
+
59
+ var bo = element.businessObject,
60
+ di = bo.di;
61
+
62
+ if (!di && is(bo, 'cmmndi:CMMNEdge') && bo.cmmnElementRef) {
63
+ di = bo;
64
+ }
65
+
66
+ if (bo && di && di.waypoint) {
67
+ return getWaypointsMid(di.waypoint);
68
+ } else {
69
+ return {
70
+ x: element.x + element.width / 2,
71
+ y: element.y + element.height + DEFAULT_LABEL_SIZE.height / 2
72
+ };
73
+ }
74
+ };
75
+
76
+ /**
77
+ * Returns the bounds of an elements label, parsed from the elements DI or
78
+ * generated from its bounds.
79
+ *
80
+ * @param {CmmnElement} semantic
81
+ * @param {djs.model.Base} element
82
+ */
83
+ module.exports.getExternalLabelBounds = function(semantic, element) {
84
+
85
+ var mid,
86
+ size,
87
+ bounds,
88
+ di = semantic.di || semantic,
89
+ label = di.label;
90
+
91
+ if (label && label.bounds) {
92
+ bounds = label.bounds;
93
+
94
+ size = {
95
+ width: Math.max(DEFAULT_LABEL_SIZE.width, bounds.width),
96
+ height: bounds.height
97
+ };
98
+
99
+ mid = {
100
+ x: bounds.x + bounds.width / 2,
101
+ y: bounds.y + bounds.height / 2
102
+ };
103
+ } else {
104
+
105
+ mid = getExternalLabelMid(element);
106
+
107
+ size = DEFAULT_LABEL_SIZE;
108
+ }
109
+
110
+ return assign({
111
+ x: mid.x - size.width / 2,
112
+ y: mid.y - size.height / 2
113
+ }, size);
114
+ };
115
+
116
+ var hasLabelBounds = module.exports.hasLabelBounds = function(semantic) {
117
+ return semantic && semantic.di && semantic.di.label && semantic.di.label.bounds;
118
+ };
119
+
120
+ module.exports.getLabelBounds = function(semantic) {
121
+ if (hasLabelBounds(semantic)) {
122
+ return semantic.di.label.bounds;
123
+ }
124
+ };
@@ -0,0 +1,257 @@
1
+ 'use strict';
2
+
3
+ function isInstanceOf(bo, type) {
4
+ return !!(bo && ((typeof bo.$instanceOf === 'function') && bo.$instanceOf(type)));
5
+ }
6
+
7
+ /**
8
+ * Is an element of the given CMMN type?
9
+ *
10
+ * @param {djs.model.Base|ModdleElement} element
11
+ * @param {String} type
12
+ *
13
+ * @return {Boolean}
14
+ */
15
+ function is(element, type) {
16
+ return isInstanceOf(getBusinessObject(element), type);
17
+ }
18
+
19
+ module.exports.is = is;
20
+
21
+
22
+ /**
23
+ * Return the business object for a given element.
24
+ *
25
+ * @param {djs.model.Base|ModdleElement} element
26
+ *
27
+ * @return {ModdleElement}
28
+ */
29
+ function getBusinessObject(element) {
30
+ return element && element.businessObject ? element.businessObject : element;
31
+ }
32
+
33
+ module.exports.getBusinessObject = getBusinessObject;
34
+
35
+ function isCasePlanModel(element) {
36
+ element = getBusinessObject(element);
37
+ return is(element, 'cmmn:Stage') && element.$parent && is(element.$parent, 'cmmn:Case');
38
+ }
39
+
40
+ module.exports.isCasePlanModel = isCasePlanModel;
41
+
42
+ function getDefinition(element) {
43
+ var bo = getBusinessObject(element);
44
+
45
+ if (is(element, 'cmmn:PlanItemDefinition') || is(element, 'cmmn:CaseFileItemDefinition')) {
46
+ return bo;
47
+ }
48
+
49
+ return bo && bo.definitionRef;
50
+ }
51
+
52
+ module.exports.getDefinition = getDefinition;
53
+
54
+ function getDefaultControl(element) {
55
+ var definition = getDefinition(element);
56
+ return definition && definition.defaultControl;
57
+ }
58
+
59
+ module.exports.getDefaultControl = getDefaultControl;
60
+
61
+ function getItemControl(element) {
62
+ element = getBusinessObject(element);
63
+ return element && element.itemControl;
64
+ }
65
+
66
+ module.exports.getItemControl = getItemControl;
67
+
68
+
69
+ function getRule(element, rule) {
70
+ var itemControl = getItemControl(element),
71
+ defaultControl = getDefaultControl(element);
72
+
73
+ if (itemControl && itemControl[rule]) {
74
+ return itemControl[rule];
75
+ }
76
+
77
+ return defaultControl && defaultControl[rule];
78
+ }
79
+
80
+ function isRequired(element) {
81
+ return !!getRule(element, 'requiredRule');
82
+ }
83
+
84
+ module.exports.isRequired = isRequired;
85
+
86
+ function isRepeatable(element) {
87
+ return !!getRule(element, 'repetitionRule');
88
+ }
89
+
90
+ module.exports.isRepeatable = isRepeatable;
91
+
92
+ function isManualActivation(element) {
93
+ return !!getRule(element, 'manualActivationRule');
94
+ }
95
+
96
+ module.exports.isManualActivation = isManualActivation;
97
+
98
+ function isAutoComplete(element) {
99
+ element = getBusinessObject(element);
100
+ var definition = getDefinition(element);
101
+ return element.autoComplete || (definition && definition.autoComplete);
102
+ }
103
+
104
+ module.exports.isAutoComplete = isAutoComplete;
105
+
106
+ function hasPlanningTable(element) {
107
+ element = getBusinessObject(element);
108
+ return element.planningTable || (getDefinition(element) && getDefinition(element).planningTable);
109
+ }
110
+
111
+ module.exports.hasPlanningTable = hasPlanningTable;
112
+
113
+ function getName(element) {
114
+ element = getBusinessObject(element);
115
+
116
+ if (is(element, 'cmmndi:CMMNEdge') && element.cmmnElementRef) {
117
+ element = element.cmmnElementRef;
118
+ }
119
+
120
+ var name = element.name;
121
+ if (!name) {
122
+
123
+ if (element.definitionRef) {
124
+ name = element.definitionRef.name;
125
+ }
126
+ }
127
+
128
+ return name;
129
+ }
130
+
131
+ module.exports.getName = getName;
132
+
133
+
134
+ /**
135
+ * Returns the referenced sentry, if present.
136
+ *
137
+ * @param {djs.model.Base} criterion
138
+ *
139
+ * @result {ModdleElement} referenced sentry
140
+ */
141
+ function getSentry(element) {
142
+ var bo = getBusinessObject(element);
143
+
144
+ if (is(bo, 'cmmn:Sentry')) {
145
+ return bo;
146
+ }
147
+
148
+ return bo && bo.sentryRef;
149
+ }
150
+
151
+ module.exports.getSentry = getSentry;
152
+
153
+
154
+ function getStandardEvent(element) {
155
+ element = getBusinessObject(element);
156
+ return element.cmmnElementRef && element.cmmnElementRef.standardEvent;
157
+ }
158
+
159
+ module.exports.getStandardEvent = getStandardEvent;
160
+
161
+ function getStandardEvents(element) {
162
+
163
+ if (is(element, 'cmmndi:CMMNEdge')) {
164
+ element = getBusinessObject(element).cmmnElementRef;
165
+ }
166
+
167
+ if (is(element, 'cmmn:OnPart')) {
168
+
169
+ if (is(element.exitCriterionRef, 'cmmn:ExitCriterion')) {
170
+ return [ 'exit' ];
171
+ }
172
+
173
+ return getTransitions(element.sourceRef);
174
+
175
+ }
176
+
177
+ return [];
178
+
179
+ }
180
+
181
+ module.exports.getStandardEvents = getStandardEvents;
182
+
183
+
184
+ function getTransitions(element) {
185
+
186
+ element = getBusinessObject(element);
187
+
188
+ if (is(element, 'cmmn:CaseFileItem')) {
189
+
190
+ return [
191
+ 'addChild',
192
+ 'addReference',
193
+ 'create',
194
+ 'delete',
195
+ 'removeChild',
196
+ 'removeReference',
197
+ 'replace',
198
+ 'update'
199
+ ];
200
+
201
+ }
202
+
203
+ if (is(element, 'cmmn:PlanItem') || is(element, 'cmmn:DiscretionaryItem')) {
204
+
205
+ var definition = getDefinition(element);
206
+
207
+ if (is(definition, 'cmmn:EventListener') || is(definition, 'cmmn:Milestone')) {
208
+
209
+ return [
210
+ 'create',
211
+ 'occur',
212
+ 'resume',
213
+ 'suspend',
214
+ 'terminate'
215
+ ];
216
+
217
+ }
218
+
219
+ return [
220
+ 'complete',
221
+ 'create',
222
+ 'disable',
223
+ 'enable',
224
+ 'exit',
225
+ 'fault',
226
+ 'manualStart',
227
+ 'parentResume',
228
+ 'parentSuspend',
229
+ 'reactivate',
230
+ 'reenable',
231
+ 'resume',
232
+ 'start',
233
+ 'suspend',
234
+ 'terminate'
235
+ ];
236
+
237
+ }
238
+
239
+ if (isCasePlanModel(element)) {
240
+
241
+ return [
242
+ 'close',
243
+ 'complete',
244
+ 'create',
245
+ 'fault',
246
+ 'reactivate',
247
+ 'suspend',
248
+ 'terminate'
249
+ ];
250
+
251
+ }
252
+
253
+ return [];
254
+
255
+ }
256
+
257
+ module.exports.getTransitions = getTransitions;
@@ -0,0 +1,91 @@
1
+ /**
2
+ * This file must not be changed or exchanged.
3
+ *
4
+ * @see http://bpmn.io/license for more information.
5
+ */
6
+
7
+ 'use strict';
8
+
9
+ var domify = require('min-dom').domify;
10
+
11
+ var domDelegate = require('min-dom').delegate;
12
+
13
+
14
+ // inlined ../../resources/logo.svg
15
+ var BPMNIO_LOGO_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14.02 5.57" width="53" height="21" style="vertical-align:middle"><path fill="currentColor" d="M1.88.92v.14c0 .41-.13.68-.4.8.33.14.46.44.46.86v.33c0 .61-.33.95-.95.95H0V0h.95c.65 0 .93.3.93.92zM.63.57v1.06h.24c.24 0 .38-.1.38-.43V.98c0-.28-.1-.4-.32-.4zm0 1.63v1.22h.36c.2 0 .32-.1.32-.39v-.35c0-.37-.12-.48-.4-.48H.63zM4.18.99v.52c0 .64-.31.98-.94.98h-.3V4h-.62V0h.92c.63 0 .94.35.94.99zM2.94.57v1.35h.3c.2 0 .3-.09.3-.37v-.6c0-.29-.1-.38-.3-.38h-.3zm2.89 2.27L6.25 0h.88v4h-.6V1.12L6.1 3.99h-.6l-.46-2.82v2.82h-.55V0h.87zM8.14 1.1V4h-.56V0h.79L9 2.4V0h.56v4h-.64zm2.49 2.29v.6h-.6v-.6zM12.12 1c0-.63.33-1 .95-1 .61 0 .95.37.95 1v2.04c0 .64-.34 1-.95 1-.62 0-.95-.37-.95-1zm.62 2.08c0 .28.13.39.33.39s.32-.1.32-.4V.98c0-.29-.12-.4-.32-.4s-.33.11-.33.4z"/><path fill="currentColor" d="M0 4.53h14.02v1.04H0zM11.08 0h.63v.62h-.63zm.63 4V1h-.63v2.98z"/></svg>';
16
+
17
+ var BPMNIO_IMG = BPMNIO_LOGO_SVG;
18
+
19
+ function css(attrs) {
20
+ return attrs.join(';');
21
+ }
22
+
23
+ var LINK_STYLES = css([
24
+ 'color: #404040'
25
+ ]);
26
+
27
+ var LIGHTBOX_STYLES = css([
28
+ 'z-index: 1001',
29
+ 'position: fixed',
30
+ 'top: 0',
31
+ 'left: 0',
32
+ 'right: 0',
33
+ 'bottom: 0'
34
+ ]);
35
+
36
+ var BACKDROP_STYLES = css([
37
+ 'width: 100%',
38
+ 'height: 100%',
39
+ 'background: rgba(40,40,40,0.2)'
40
+ ]);
41
+
42
+ var NOTICE_STYLES = css([
43
+ 'position: absolute',
44
+ 'left: 50%',
45
+ 'top: 40%',
46
+ 'transform: translate(-50%)',
47
+ 'width: 260px',
48
+ 'padding: 10px',
49
+ 'background: white',
50
+ 'box-shadow: 0 1px 4px rgba(0,0,0,0.3)',
51
+ 'font-family: Helvetica, Arial, sans-serif',
52
+ 'font-size: 14px',
53
+ 'display: flex',
54
+ 'line-height: 1.3'
55
+ ]);
56
+
57
+ var LIGHTBOX_MARKUP =
58
+ '<div class="bjs-powered-by-lightbox" style="' + LIGHTBOX_STYLES + '">' +
59
+ '<div class="backdrop" style="' + BACKDROP_STYLES + '"></div>' +
60
+ '<div class="notice" style="' + NOTICE_STYLES + '">' +
61
+ '<a href="https://bpmn.io" target="_blank" rel="noopener" style="margin: 15px 20px 15px 10px; align-self: center;' + LINK_STYLES + '">' +
62
+ BPMNIO_IMG +
63
+ '</a>' +
64
+ '<span>' +
65
+ 'Web-based tooling for BPMN, DMN and CMMN diagrams ' +
66
+ 'powered by <a href="https://bpmn.io" target="_blank" rel="noopener">bpmn.io</a>.' +
67
+ '</span>' +
68
+ '</div>' +
69
+ '</div>';
70
+
71
+
72
+ var lightbox;
73
+
74
+ function open() {
75
+
76
+ if (!lightbox) {
77
+ lightbox = domify(LIGHTBOX_MARKUP);
78
+
79
+ domDelegate.bind(lightbox, '.backdrop', 'click', function(event) {
80
+ document.body.removeChild(lightbox);
81
+ });
82
+ }
83
+
84
+ document.body.appendChild(lightbox);
85
+ }
86
+
87
+ module.exports.open = open;
88
+
89
+ module.exports.BPMNIO_IMG = BPMNIO_IMG;
90
+
91
+ module.exports.LINK_STYLES = LINK_STYLES;
package/package.json CHANGED
@@ -1,6 +1,90 @@
1
1
  {
2
2
  "name": "@jylups/cmmn-js",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.21.0",
4
+ "description": "A cmmn 1.1 toolkit",
5
+ "scripts": {
6
+ "all": "run-s lint test distro test:distro",
7
+ "lint": "eslint .",
8
+ "dev": "npm test -- --auto-watch --no-single-run",
9
+ "test": "karma start test/config/karma.unit.js",
10
+ "distro": "node tasks/build-distro.js",
11
+ "test:distro": "node tasks/test-distro.js",
12
+ "prepublishOnly": "run-s distro test:distro"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/jylups/cmmn-js.git"
17
+ },
18
+ "bugs": {
19
+ "url": "https://github.com/jylups/cmmn-js-env/issues"
20
+ },
21
+ "keywords": [
22
+ "cmmn",
23
+ "cmmn-js",
24
+ "toolkit"
25
+ ],
26
+ "author": {
27
+ "name": "Roman Smirnov",
28
+ "url": "https://github.com/romansmirnov"
29
+ },
30
+ "contributors": [
31
+ {
32
+ "name": "bpmn.io contributors",
33
+ "url": "https://github.com/bpmn-io"
34
+ }
35
+ ],
36
+ "license": "SEE LICENSE IN LICENSE",
37
+ "devDependencies": {
38
+ "babel-core": "^6.26.0",
39
+ "babel-preset-env": "^1.6.1",
40
+ "babelify": "~8.0.0",
41
+ "browser-pack-flat": "~3.0.8",
42
+ "browserify": "~14.5.0",
43
+ "browserify-derequire": "~0.9.1",
44
+ "bundle-collapser": "~1.3.0",
45
+ "chai": "^4.1.2",
46
+ "common-shakeify": "~0.4.5",
47
+ "cpx": "^1.5.0",
48
+ "del": "^3.0.0",
49
+ "envify": "~4.1.0",
50
+ "eslint": "^4.17.0",
51
+ "eslint-plugin-bpmn-io": "^0.5.2",
52
+ "execa": "^0.9.0",
53
+ "jsondiffpatch": "^0.1.26",
54
+ "karma": "^4.1.0",
55
+ "karma-browserify": "^6.0.0",
56
+ "karma-chrome-launcher": "^2.2.0",
57
+ "karma-firefox-launcher": "^1.0.1",
58
+ "karma-mocha": "^1.3.0",
59
+ "karma-safari-launcher": "^1.0.0",
60
+ "karma-sinon-chai": "^1.3.3",
61
+ "karma-spec-reporter": "0.0.31",
62
+ "mkdirp": "^0.5.1",
63
+ "mocha": "^4.1.0",
64
+ "mocha-test-container-support": "~0.2.0",
65
+ "npm-run-all": "^4.1.2",
66
+ "sinon": "^4.2.2",
67
+ "sinon-chai": "^2.14.0",
68
+ "source-map-concat": "^1.0.0",
69
+ "stringify": "^5.1.0",
70
+ "uglify-es": "^3.3.10",
71
+ "unassertify": "~2.1.0",
72
+ "watchify": "^3.11.1"
73
+ },
74
+ "dependencies": {
75
+ "@jylups/cmmn-moddle": "^5.1.0",
76
+ "cmmn-font": "^0.5.0",
77
+ "css.escape": "^1.5.1",
78
+ "diagram-js": "^4.0.1",
79
+ "diagram-js-direct-editing": "^1.5.0",
80
+ "ids": "^0.2.0",
81
+ "inherits": "^2.0.1",
82
+ "min-dash": "^3.5.0",
83
+ "min-dom": "^3.0.0",
84
+ "object-refs": "^0.3.0",
85
+ "tiny-svg": "^2.2.1"
86
+ },
87
+ "publishConfig": {
88
+ "access": "public"
89
+ }
90
+ }