@operato/scene-bpmn 1.1.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.
Files changed (180) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/LICENSE +21 -0
  3. package/README.md +13 -0
  4. package/assets/favicon.ico +0 -0
  5. package/assets/images/spinner.png +0 -0
  6. package/db.sqlite +0 -0
  7. package/dist/base/bpmn-activity.d.ts +5 -0
  8. package/dist/base/bpmn-activity.js +23 -0
  9. package/dist/base/bpmn-activity.js.map +1 -0
  10. package/dist/base/bpmn-container-base.d.ts +36 -0
  11. package/dist/base/bpmn-container-base.js +167 -0
  12. package/dist/base/bpmn-container-base.js.map +1 -0
  13. package/dist/base/bpmn-control-base.d.ts +36 -0
  14. package/dist/base/bpmn-control-base.js +167 -0
  15. package/dist/base/bpmn-control-base.js.map +1 -0
  16. package/dist/bpmn-call-activity.d.ts +11 -0
  17. package/dist/bpmn-call-activity.js +19 -0
  18. package/dist/bpmn-call-activity.js.map +1 -0
  19. package/dist/bpmn-comment.d.ts +14 -0
  20. package/dist/bpmn-comment.js +53 -0
  21. package/dist/bpmn-comment.js.map +1 -0
  22. package/dist/bpmn-data-object.d.ts +25 -0
  23. package/dist/bpmn-data-object.js +106 -0
  24. package/dist/bpmn-data-object.js.map +1 -0
  25. package/dist/bpmn-data-store.d.ts +11 -0
  26. package/dist/bpmn-data-store.js +36 -0
  27. package/dist/bpmn-data-store.js.map +1 -0
  28. package/dist/bpmn-event.d.ts +25 -0
  29. package/dist/bpmn-event.js +421 -0
  30. package/dist/bpmn-event.js.map +1 -0
  31. package/dist/bpmn-flow.d.ts +19 -0
  32. package/dist/bpmn-flow.js +26 -0
  33. package/dist/bpmn-flow.js.map +1 -0
  34. package/dist/bpmn-gateway.d.ts +25 -0
  35. package/dist/bpmn-gateway.js +146 -0
  36. package/dist/bpmn-gateway.js.map +1 -0
  37. package/dist/bpmn-group.d.ts +11 -0
  38. package/dist/bpmn-group.js +35 -0
  39. package/dist/bpmn-group.js.map +1 -0
  40. package/dist/bpmn-lane.d.ts +15 -0
  41. package/dist/bpmn-lane.js +25 -0
  42. package/dist/bpmn-lane.js.map +1 -0
  43. package/dist/bpmn-pool.d.ts +14 -0
  44. package/dist/bpmn-pool.js +22 -0
  45. package/dist/bpmn-pool.js.map +1 -0
  46. package/dist/bpmn-subprocess.d.ts +19 -0
  47. package/dist/bpmn-subprocess.js +146 -0
  48. package/dist/bpmn-subprocess.js.map +1 -0
  49. package/dist/bpmn-task.d.ts +32 -0
  50. package/dist/bpmn-task.js +311 -0
  51. package/dist/bpmn-task.js.map +1 -0
  52. package/dist/editors/index.d.ts +0 -0
  53. package/dist/editors/index.js +2 -0
  54. package/dist/editors/index.js.map +1 -0
  55. package/dist/groups/index.d.ts +7 -0
  56. package/dist/groups/index.js +3 -0
  57. package/dist/groups/index.js.map +1 -0
  58. package/dist/groups/process.d.ts +6 -0
  59. package/dist/groups/process.js +48 -0
  60. package/dist/groups/process.js.map +1 -0
  61. package/dist/index.d.ts +12 -0
  62. package/dist/index.js +13 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/templates/bpmn-call-activity.d.ts +17 -0
  65. package/dist/templates/bpmn-call-activity.js +18 -0
  66. package/dist/templates/bpmn-call-activity.js.map +1 -0
  67. package/dist/templates/bpmn-comment.d.ts +19 -0
  68. package/dist/templates/bpmn-comment.js +20 -0
  69. package/dist/templates/bpmn-comment.js.map +1 -0
  70. package/dist/templates/bpmn-data-object.d.ts +19 -0
  71. package/dist/templates/bpmn-data-object.js +20 -0
  72. package/dist/templates/bpmn-data-object.js.map +1 -0
  73. package/dist/templates/bpmn-data-store.d.ts +17 -0
  74. package/dist/templates/bpmn-data-store.js +18 -0
  75. package/dist/templates/bpmn-data-store.js.map +1 -0
  76. package/dist/templates/bpmn-event.d.ts +17 -0
  77. package/dist/templates/bpmn-event.js +18 -0
  78. package/dist/templates/bpmn-event.js.map +1 -0
  79. package/dist/templates/bpmn-flow.d.ts +15 -0
  80. package/dist/templates/bpmn-flow.js +16 -0
  81. package/dist/templates/bpmn-flow.js.map +1 -0
  82. package/dist/templates/bpmn-gateway.d.ts +17 -0
  83. package/dist/templates/bpmn-gateway.js +18 -0
  84. package/dist/templates/bpmn-gateway.js.map +1 -0
  85. package/dist/templates/bpmn-group.d.ts +15 -0
  86. package/dist/templates/bpmn-group.js +16 -0
  87. package/dist/templates/bpmn-group.js.map +1 -0
  88. package/dist/templates/bpmn-lane.d.ts +17 -0
  89. package/dist/templates/bpmn-lane.js +18 -0
  90. package/dist/templates/bpmn-lane.js.map +1 -0
  91. package/dist/templates/bpmn-pool.d.ts +15 -0
  92. package/dist/templates/bpmn-pool.js +16 -0
  93. package/dist/templates/bpmn-pool.js.map +1 -0
  94. package/dist/templates/bpmn-subprocess.d.ts +17 -0
  95. package/dist/templates/bpmn-subprocess.js +18 -0
  96. package/dist/templates/bpmn-subprocess.js.map +1 -0
  97. package/dist/templates/bpmn-task.d.ts +17 -0
  98. package/dist/templates/bpmn-task.js +18 -0
  99. package/dist/templates/bpmn-task.js.map +1 -0
  100. package/dist/templates/index.d.ts +15 -0
  101. package/dist/templates/index.js +28 -0
  102. package/dist/templates/index.js.map +1 -0
  103. package/helps/bpmn/gateway/complex-decision-gateway-example.png +0 -0
  104. package/helps/bpmn/gateway/complex-decision-gateway.png +0 -0
  105. package/helps/bpmn/gateway/event-based-gateway-example.webp +0 -0
  106. package/helps/bpmn/gateway/exclusive-event-based-gateway-example.png +0 -0
  107. package/helps/bpmn/gateway/exclusive-event-based-gateway.webp +0 -0
  108. package/helps/bpmn/gateway/exclusive-gateway-example.webp +0 -0
  109. package/helps/bpmn/gateway/exclusive-gateway.png +0 -0
  110. package/helps/bpmn/gateway/gateway-types.webp +0 -0
  111. package/helps/bpmn/gateway/gateway.md +111 -0
  112. package/helps/bpmn/gateway/inclusive-gateway-example.webp +0 -0
  113. package/helps/bpmn/gateway/inclusive-gateway.png +0 -0
  114. package/helps/bpmn/gateway/parallel-event-based-gateway-example.png +0 -0
  115. package/helps/bpmn/gateway/parallel-event-based-gateway.png +0 -0
  116. package/helps/bpmn/gateway/parallel-gateway-example.webp +0 -0
  117. package/helps/bpmn/gateway/parallel-gateway.png +0 -0
  118. package/icons/bpmn-group.png +0 -0
  119. package/icons/bpmn-lane.png +0 -0
  120. package/icons/bpmn-pool.png +0 -0
  121. package/icons/icon-bpmn-association-flow.png +0 -0
  122. package/icons/icon-bpmn-call-activity.png +0 -0
  123. package/icons/icon-bpmn-comment.png +0 -0
  124. package/icons/icon-bpmn-data-object.png +0 -0
  125. package/icons/icon-bpmn-data-store.png +0 -0
  126. package/icons/icon-bpmn-event.png +0 -0
  127. package/icons/icon-bpmn-flow.png +0 -0
  128. package/icons/icon-bpmn-gateway.png +0 -0
  129. package/icons/icon-bpmn-group.png +0 -0
  130. package/icons/icon-bpmn-lane.png +0 -0
  131. package/icons/icon-bpmn-message-flow.png +0 -0
  132. package/icons/icon-bpmn-pool.png +0 -0
  133. package/icons/icon-bpmn-subprocess.png +0 -0
  134. package/icons/icon-bpmn-task.png +0 -0
  135. package/logs/.08636eb59927f12972f6774f5947c8507b3564c2-audit.json +20 -0
  136. package/logs/.5e5d741d8b7784a2fbad65eedc0fd46946aaf6f2-audit.json +20 -0
  137. package/logs/application-2022-11-03-10.log +22 -0
  138. package/logs/application-2022-11-03-11.log +18 -0
  139. package/logs/connections-2022-11-03-10.log +70 -0
  140. package/logs/connections-2022-11-03-11.log +105 -0
  141. package/package.json +60 -0
  142. package/src/base/bpmn-activity.ts +32 -0
  143. package/src/base/bpmn-container-base.ts +201 -0
  144. package/src/base/bpmn-control-base.ts +201 -0
  145. package/src/bpmn-call-activity.ts +22 -0
  146. package/src/bpmn-comment.ts +65 -0
  147. package/src/bpmn-data-object.ts +127 -0
  148. package/src/bpmn-data-store.ts +47 -0
  149. package/src/bpmn-event.ts +442 -0
  150. package/src/bpmn-flow.ts +28 -0
  151. package/src/bpmn-gateway.ts +165 -0
  152. package/src/bpmn-group.ts +39 -0
  153. package/src/bpmn-lane.ts +46 -0
  154. package/src/bpmn-pool.ts +25 -0
  155. package/src/bpmn-subprocess.ts +165 -0
  156. package/src/bpmn-task.ts +340 -0
  157. package/src/editors/index.ts +0 -0
  158. package/src/groups/index.ts +3 -0
  159. package/src/groups/process.ts +48 -0
  160. package/src/index.ts +12 -0
  161. package/src/templates/bpmn-call-activity.ts +18 -0
  162. package/src/templates/bpmn-comment.ts +20 -0
  163. package/src/templates/bpmn-data-object.ts +20 -0
  164. package/src/templates/bpmn-data-store.ts +18 -0
  165. package/src/templates/bpmn-event.ts +18 -0
  166. package/src/templates/bpmn-flow.ts +16 -0
  167. package/src/templates/bpmn-gateway.ts +18 -0
  168. package/src/templates/bpmn-group.ts +16 -0
  169. package/src/templates/bpmn-lane.ts +18 -0
  170. package/src/templates/bpmn-pool.ts +16 -0
  171. package/src/templates/bpmn-subprocess.ts +18 -0
  172. package/src/templates/bpmn-task.ts +18 -0
  173. package/src/templates/index.ts +29 -0
  174. package/things-scene.config.js +7 -0
  175. package/translations/en.json +11 -0
  176. package/translations/ko.json +11 -0
  177. package/translations/ms.json +11 -0
  178. package/translations/zh.json +11 -0
  179. package/tsconfig.json +22 -0
  180. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bpmn-subprocess.js","sourceRoot":"","sources":["../src/bpmn-subprocess.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Properties } from '@hatiolab/things-scene'\n\nimport BPMNControlBase from './base/bpmn-control-base'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: false,\n properties: [\n {\n type: 'checkbox',\n label: 'loop',\n name: 'loop'\n },\n {\n type: 'checkbox',\n label: 'multi-instance',\n name: 'multiInstance'\n },\n {\n type: 'checkbox',\n label: 'compensation',\n name: 'compensation'\n },\n {\n type: 'checkbox',\n label: 'adhoc',\n name: 'adhoc'\n }\n ],\n help: '/eipatterns/bpmn-subprocess/bpmn-subprocess'\n}\n\nexport default class BPMNSubprocess extends BPMNControlBase {\n private markerImages?: HTMLImageElement[]\n\n static get nature() {\n return NATURE\n }\n\n render(ctx: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n var radius = 9\n\n ctx.moveTo(radius, 0)\n ctx.arcTo(width, 0, width, height, radius)\n ctx.arcTo(width, height, 0, height, radius)\n ctx.arcTo(0, height, 0, 0, radius)\n ctx.arcTo(0, 0, width, 0, radius)\n\n this.drawFill(ctx)\n this.drawStroke(ctx)\n\n ctx.beginPath()\n\n const images = this.getMarkerImages() || []\n const start = (width - images.length * 24) / 2\n\n images.forEach((image, index) => {\n this.drawImage(ctx, image, start + index * 24, height - 24, 24, 24)\n })\n\n ctx.translate(-left, -top)\n }\n\n onchange(after: Properties, before: Properties) {\n if (['loop', 'multiInstance', 'adhoc', 'compensation', 'strokeStyle'].find(prop => prop in after)) {\n delete this.markerImages\n }\n }\n\n getMarkerImages(): HTMLImageElement[] | null | undefined {\n if (!this.markerImages) {\n const { strokeStyle } = this.state\n\n this.markerImages = Object.keys(MARKERS)\n .filter(key => key === 'subprocess' || this.state[key])\n .map(key => {\n let image = new Image()\n image.src =\n 'data:image/svg+xml;charset=UTF-8;base64,' + btoa(MARKERS[key].replace(/{{strokeColor}}/g, strokeStyle))\n return image\n })\n }\n\n return this.markerImages\n }\n}\n\nComponent.register('bpmn-subprocess', BPMNSubprocess)\n\nconst MARKERS: { [type: string]: string } = {\n loop: `\n<svg version=\"1.1\" id=\"Layer_3\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:{{strokeColor}};}\n </style>\n <path class=\"st0\" d=\"M9.5,5.2C4.3,9.7,3.7,17.5,8.1,22.8L5,25.4l7.8,0.6l0.6-7.8L10.2,21c-3.5-4.1-3-10.1,1-13.6s10.1-3,13.6,1\n\ts3,10.1-1,13.6c-1.6,1.4-3.5,2.1-5.4,2.3l-0.2,2.8c2.6-0.2,5.3-1.1,7.4-3c5.2-4.5,5.8-12.3,1.3-17.5S14.7,0.8,9.5,5.2z\"/>\n</svg>\n`,\n multiInstance: `\n <svg version=\"1.1\" id=\"Layer_3\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:{{strokeColor}};}\n </style>\n <g>\n <rect x=\"5.5\" y=\"1.9\" class=\"st0\" width=\"3.3\" height=\"25.3\"/>\n <rect x=\"15.9\" y=\"1.9\" class=\"st0\" width=\"3.3\" height=\"25.3\"/>\n <rect x=\"26.2\" y=\"1.9\" class=\"st0\" width=\"3.3\" height=\"25.3\"/>\n </g>\n </svg>\n `,\n compensation: `\n <svg version=\"1.1\" id=\"Layer_3\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:{{strokeColor}};}\n </style>\n <g>\n <path class=\"st0\" d=\"M16.1,6.9v15.6l-7.8-7.8L16.1,6.9 M18.1,2.1L5.5,14.7l12.6,12.6V2.1L18.1,2.1z M5.5,14.7L5.5,14.7L5.5,14.7\n L5.5,14.7L5.5,14.7z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M27.5,6.9v15.6l-7.8-7.8L27.5,6.9 M29.5,2.1L16.9,14.7l12.6,12.6V2.1L29.5,2.1z M16.9,14.7L16.9,14.7\n L16.9,14.7L16.9,14.7L16.9,14.7z\"/>\n </g>\n </svg>\n `,\n subprocess: `\n <svg version=\"1.1\" id=\"Layer_3\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:none;stroke:{{strokeColor}};stroke-width:2;stroke-miterlimit:10;}\n .st1{fill:{{strokeColor}};} \n </style>\n <rect x=\"5.5\" y=\"2.5\" class=\"st0\" width=\"24\" height=\"24\"/>\n <g>\n <g>\n <rect x=\"16.4\" y=\"6\" class=\"st1\" width=\"2.1\" height=\"17\"/>\n </g>\n <g>\n <rect x=\"9\" y=\"13.4\" class=\"st1\" width=\"17\" height=\"2.1\"/>\n </g>\n </g>\n </svg>\n `,\n adhoc: `\n <svg version=\"1.1\" id=\"Layer_3\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:{{strokeColor}};}\n </style>\n <path class=\"st0\" d=\"M29.2,10.3c-0.8,0.9-1.7,1.7-2.5,2.2c-0.8,0.5-1.6,0.8-2.4,0.8c-1,0-3-0.6-6.1-1.9C15,10.2,12.6,9.6,11,9.6\n\t\tc-2.1,0-3.9,0.7-5.5,1.9v6.9c0.1,0,0.3-0.2,0.6-0.6C7.9,16,9.5,15,10.9,15c0.8,0,2.9,0.6,6.1,1.9c3.3,1.2,5.7,1.8,7.1,1.8\n\t\tc2,0,3.8-0.6,5.3-1.8v-6.9C29.4,10.1,29.3,10.2,29.2,10.3z\"/>\n </svg>\n `\n}\n"]}
@@ -0,0 +1,32 @@
1
+ import { Properties } from '@hatiolab/things-scene';
2
+ import BPMNControlBase from './base/bpmn-control-base';
3
+ export default class BPMNTask extends BPMNControlBase {
4
+ private imageElement?;
5
+ private markerImages?;
6
+ static get nature(): {
7
+ mutable: boolean;
8
+ resizable: boolean;
9
+ rotatable: boolean;
10
+ properties: ({
11
+ type: string;
12
+ label: string;
13
+ name: string;
14
+ property: {
15
+ options: {
16
+ display: string;
17
+ value: string;
18
+ }[];
19
+ };
20
+ } | {
21
+ type: string;
22
+ label: string;
23
+ name: string;
24
+ property?: undefined;
25
+ })[];
26
+ help: string;
27
+ };
28
+ render(ctx: CanvasRenderingContext2D): void;
29
+ onchange(after: Properties, before: Properties): void;
30
+ getImageElement(): HTMLImageElement | null | undefined;
31
+ getMarkerImages(): HTMLImageElement[] | null | undefined;
32
+ }
@@ -0,0 +1,311 @@
1
+ import { Component } from '@hatiolab/things-scene';
2
+ import BPMNControlBase from './base/bpmn-control-base';
3
+ const NATURE = {
4
+ mutable: false,
5
+ resizable: true,
6
+ rotatable: false,
7
+ properties: [
8
+ {
9
+ type: 'select',
10
+ label: 'task-type',
11
+ name: 'taskType',
12
+ property: {
13
+ options: [
14
+ {
15
+ display: '',
16
+ value: ''
17
+ },
18
+ {
19
+ display: 'service',
20
+ value: 'service'
21
+ },
22
+ {
23
+ display: 'send',
24
+ value: 'send'
25
+ },
26
+ {
27
+ display: 'receive',
28
+ value: 'receive'
29
+ },
30
+ {
31
+ display: 'user',
32
+ value: 'user'
33
+ },
34
+ {
35
+ display: 'manual',
36
+ value: 'manual'
37
+ },
38
+ {
39
+ display: 'business rule',
40
+ value: 'business-rule'
41
+ },
42
+ {
43
+ display: 'script',
44
+ value: 'script'
45
+ }
46
+ ]
47
+ }
48
+ },
49
+ {
50
+ type: 'select',
51
+ label: 'multi-instance',
52
+ name: 'multiInstance',
53
+ property: {
54
+ options: [
55
+ {
56
+ display: '',
57
+ value: ''
58
+ },
59
+ {
60
+ display: 'parallel',
61
+ value: 'parallel'
62
+ },
63
+ {
64
+ display: 'sequential',
65
+ value: 'sequential'
66
+ }
67
+ ]
68
+ }
69
+ },
70
+ {
71
+ type: 'checkbox',
72
+ label: 'loop',
73
+ name: 'loop'
74
+ }
75
+ ],
76
+ help: '/eipatterns/bpmn-task/bpmn-task'
77
+ };
78
+ export default class BPMNTask extends BPMNControlBase {
79
+ static get nature() {
80
+ return NATURE;
81
+ }
82
+ render(ctx) {
83
+ var { left, top, width, height } = this.bounds;
84
+ ctx.translate(left, top);
85
+ ctx.beginPath();
86
+ var radius = 9;
87
+ ctx.moveTo(radius, 0);
88
+ ctx.arcTo(width, 0, width, height, radius);
89
+ ctx.arcTo(width, height, 0, height, radius);
90
+ ctx.arcTo(0, height, 0, 0, radius);
91
+ ctx.arcTo(0, 0, width, 0, radius);
92
+ this.drawFill(ctx);
93
+ this.drawStroke(ctx);
94
+ ctx.beginPath();
95
+ const image = this.getImageElement();
96
+ if (image) {
97
+ this.drawImage(ctx, image, 0, 0, 24, 24);
98
+ }
99
+ const images = this.getMarkerImages() || [];
100
+ const start = (width - images.length * 24) / 2;
101
+ images.forEach((image, index) => {
102
+ this.drawImage(ctx, image, start + index * 24, height - 24, 24, 24);
103
+ });
104
+ ctx.translate(-left, -top);
105
+ }
106
+ onchange(after, before) {
107
+ if (['loop', 'multiInstance', 'taskType', 'strokeStyle'].find(prop => prop in after)) {
108
+ delete this.markerImages;
109
+ delete this.imageElement;
110
+ }
111
+ }
112
+ getImageElement() {
113
+ if (!this.imageElement) {
114
+ const { taskType, strokeStyle } = this.state;
115
+ if (!taskType) {
116
+ return;
117
+ }
118
+ const src = IMAGES[taskType];
119
+ if (!src) {
120
+ return;
121
+ }
122
+ this.imageElement = new Image();
123
+ this.imageElement.src =
124
+ 'data:image/svg+xml;charset=UTF-8;base64,' + btoa(src.replace(/{{strokeColor}}/g, strokeStyle));
125
+ }
126
+ return this.imageElement;
127
+ }
128
+ getMarkerImages() {
129
+ if (!this.markerImages) {
130
+ const { loop, multiInstance, strokeStyle } = this.state;
131
+ this.markerImages = [];
132
+ if (loop) {
133
+ let image = new Image();
134
+ image.src =
135
+ 'data:image/svg+xml;charset=UTF-8;base64,' + btoa(MARKERS['loop'].replace(/{{strokeColor}}/g, strokeStyle));
136
+ this.markerImages.push(image);
137
+ }
138
+ if (multiInstance) {
139
+ let image = new Image();
140
+ image.src =
141
+ 'data:image/svg+xml;charset=UTF-8;base64,' +
142
+ btoa(MARKERS[multiInstance].replace(/{{strokeColor}}/g, strokeStyle));
143
+ this.markerImages.push(image);
144
+ }
145
+ }
146
+ return this.markerImages;
147
+ }
148
+ }
149
+ Component.register('bpmn-task', BPMNTask);
150
+ const IMAGES = {
151
+ service: `
152
+ <svg version="1.1" id="Layer_3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
153
+ viewBox="0 0 35 35" style="enable-background:new 0 0 35 35;" xml:space="preserve">
154
+ <style type="text/css">
155
+ .st0{fill:{{strokeColor}};}
156
+ </style>
157
+ <g>
158
+ <g>
159
+ <path class="st0" d="M22.6,11.3l0.3,2.1l0.1,0.6l0.5,0.2c0.5,0.2,0.9,0.5,1.4,0.8l0.5,0.3l0.5-0.2l2-0.8l1.5,2.5l-1.7,1.3
160
+ l-0.5,0.4l0.1,0.6c0,0.2,0.1,0.5,0.1,0.8c0,0.3,0,0.5-0.1,0.8l-0.1,0.6l0.4,0.4l1.7,1.3l-1.5,2.5l-2-0.8l-0.5-0.2l-0.5,0.4
161
+ c-0.4,0.3-0.9,0.6-1.4,0.8L23,25.8l-0.1,0.6l-0.3,2.1h-2.9l-0.3-2.1l-0.1-0.6l-0.5-0.2c-0.5-0.2-0.9-0.5-1.4-0.8l-0.5-0.3
162
+ l-0.5,0.2l-2,0.8l-1.5-2.5l1.7-1.3l0.5-0.4L15,20.6c0-0.2-0.1-0.5-0.1-0.8c0-0.2,0-0.5,0.1-0.8l0.1-0.6l-0.5-0.4L13,16.8l1.5-2.5
163
+ l2,0.8l0.5,0.2l0.5-0.3c0.5-0.4,0.9-0.6,1.4-0.8l0.5-0.2l0.1-0.6l0.3-2.1H22.6 M21.1,24.5c2.5,0,4.6-2.1,4.6-4.6s-2.1-4.6-4.6-4.6
164
+ s-4.6,2.1-4.6,4.6S18.6,24.5,21.1,24.5 M23,10.3h-3.8c-0.2,0-0.4,0.2-0.5,0.4l-0.4,2.5c-0.6,0.2-1.1,0.6-1.6,0.9l-2.4-1
165
+ c-0.1,0-0.1,0-0.2,0c-0.2,0-0.3,0.1-0.4,0.3l-1.9,3.3c-0.1,0.2-0.1,0.5,0.1,0.6l2,1.6c-0.1,0.3-0.1,0.6-0.1,0.9s0,0.6,0.1,0.9
166
+ l-2,1.6c-0.2,0.1-0.2,0.4-0.1,0.6l1.9,3.3c0.1,0.2,0.3,0.2,0.4,0.2c0.1,0,0.1,0,0.2,0l2.4-1c0.5,0.4,1,0.7,1.6,0.9l0.4,2.5
167
+ c0,0.2,0.2,0.4,0.5,0.4H23c0.2,0,0.4-0.2,0.5-0.4l0.4-2.5c0.6-0.2,1.1-0.6,1.6-0.9l2.4,1c0.1,0,0.1,0,0.2,0c0.2,0,0.3-0.1,0.4-0.3
168
+ l1.9-3.3c0.1-0.2,0.1-0.5-0.1-0.6l-2-1.6c0-0.3,0.1-0.6,0.1-0.9c0-0.3,0-0.6-0.1-0.9l2-1.6c0.2-0.1,0.2-0.4,0.1-0.6l-1.9-3.3
169
+ c-0.1-0.2-0.3-0.2-0.4-0.2c-0.1,0-0.1,0-0.2,0l-2.4,1c-0.5-0.4-1-0.7-1.6-0.9l-0.4-2.5C23.5,10.4,23.3,10.3,23,10.3L23,10.3z
170
+ M21.1,23.5c-2,0-3.6-1.6-3.6-3.6s1.6-3.6,3.6-3.6s3.6,1.6,3.6,3.6S23.1,23.5,21.1,23.5L21.1,23.5z"/>
171
+ </g>
172
+ <g>
173
+ <g>
174
+ <path class="st0" d="M16.8,6.5L17.2,9l0.1,0.6l0.3,0.1l-1,1.9c-0.5-0.2-1-0.3-1.5-0.3c-2.8,0-5.1,2.3-5.1,5.1
175
+ c0,1.3,0.5,2.5,1.3,3.4l-1.2,1.9l-0.4,0.2l-2.3,0.9l-1.8-3.1l2-1.5l0.5-0.4L8,17.3c0-0.3-0.1-0.6-0.1-0.9c0-0.2,0-0.5,0.1-0.9
176
+ l0.1-0.6l-0.5-0.4l-2-1.5l1.8-3.1l2.3,0.9l0.5,0.2l0.5-0.3c0.5-0.4,1.1-0.7,1.6-0.9l0.5-0.2L13,9l0.3-2.5H16.8 M17.2,5.5h-4.3
177
+ c-0.3,0-0.5,0.2-0.5,0.5L12,8.9c-0.7,0.3-1.3,0.6-1.8,1.1L7.4,8.8c-0.1,0-0.1,0-0.2,0c-0.2,0-0.4,0.1-0.5,0.3l-2.2,3.7
178
+ c-0.1,0.2-0.1,0.5,0.1,0.7L7,15.3C7,15.6,6.9,16,6.9,16.4c0,0.3,0,0.7,0.1,1.1l-2.3,1.8c-0.2,0.2-0.3,0.5-0.1,0.7l2.2,3.7
179
+ c0.1,0.2,0.3,0.3,0.5,0.3c0.1,0,0.1,0,0.2,0l2.7-1.1c0.1,0.1,0.3,0.2,0.4,0.3l2.1-3.5c-1-0.7-1.6-1.9-1.6-3.2
180
+ c0-2.2,1.8-4.1,4.1-4.1c0.7,0,1.4,0.2,2,0.5l1.9-3.6c-0.2-0.1-0.5-0.3-0.8-0.4L17.8,6C17.7,5.7,17.5,5.5,17.2,5.5L17.2,5.5z"/>
181
+ </g>
182
+ </g>
183
+ </g>
184
+ </svg>
185
+ `,
186
+ send: `
187
+ <svg version="1.1" id="Layer_3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
188
+ viewBox="0 0 35 35" style="enable-background:new 0 0 35 35;" xml:space="preserve">
189
+ <style type="text/css">
190
+ .st0{fill:{{strokeColor}};}
191
+ </style>
192
+ <path class="st0" d="M27.1,7.9H7.9c-1.3,0-2.4,1.1-2.4,2.4l0,14.4c0,1.3,1.1,2.4,2.4,2.4h19.2c1.3,0,2.4-1.1,2.4-2.4V10.3
193
+ C29.5,9,28.4,7.9,27.1,7.9z M27.1,12.7l-9.6,6l-9.6-6v-2.4l9.6,6l9.6-6V12.7z"/>
194
+ </svg>
195
+ `,
196
+ receive: `
197
+ <svg version="1.1" id="Layer_3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
198
+ viewBox="0 0 35 35" style="enable-background:new 0 0 35 35;" xml:space="preserve">
199
+ <style type="text/css">
200
+ .st0{fill:{{strokeColor}};}
201
+ </style>
202
+ <path class="st0" d="M29.5,10.3c0-1.3-1.1-2.4-2.4-2.4H7.9c-1.3,0-2.4,1.1-2.4,2.4v14.4c0,1.3,1.1,2.4,2.4,2.4h19.2c1.3,0,2.4-1.1,2.4-2.4V10.3z
203
+ M27.1,9.3l-9.6,7l-9.6-7H27.1z M28.1,25.7H6.9v-16l10.6,8l10.6-8V25.7z"/>
204
+ </svg>
205
+ `,
206
+ user: `
207
+ <svg version="1.1" id="Layer_3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
208
+ viewBox="0 0 35 35" style="enable-background:new 0 0 35 35;" xml:space="preserve">
209
+ <style type="text/css">
210
+ .st0{fill:{{strokeColor}};}
211
+ </style>
212
+ <g>
213
+ <g>
214
+ <path class="st0" d="M17.5,6.5c2.8,0,5,2.2,5,5s-2.2,5-5,5s-5-2.2-5-5S14.7,6.5,17.5,6.5 M17.4,20c3.6,0,10.1,3.3,10.1,6.5v2h-20v-2
215
+ C7.5,23.3,13.8,20,17.4,20 M17.5,5.5c-3.3,0-6,2.7-6,6s2.7,6,6,6s6-2.7,6-6S20.8,5.5,17.5,5.5L17.5,5.5z M17.4,19
216
+ c-4,0-10.9,3.6-10.9,7.5v3h22v-3C28.5,22.5,21.4,19,17.4,19L17.4,19z"/>
217
+ </g>
218
+ <path class="st0" d="M14.6,7.2c0,0,2,4.5,7.9,3.9C22.5,11.1,21.8,4.3,14.6,7.2z"/>
219
+ <path class="st0" d="M16.2,9.4c0,0-1.2,1.3-4,1.2l1.2-2.5L14.9,7L16.2,9.4z"/>
220
+ </g>
221
+ </svg>
222
+ `,
223
+ manual: `
224
+ <svg version="1.1" id="Layer_3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
225
+ viewBox="0 0 35 35" style="enable-background:new 0 0 35 35;" xml:space="preserve">
226
+ <style type="text/css">
227
+ .st0{fill:none;stroke:{{strokeColor}};stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
228
+ </style>
229
+ <g>
230
+ <g>
231
+ <g>
232
+ <path class="st0" d="M24,28.5H9.5c-2.2,0-4-1.8-4-4v-7.3c0-1.1,0.4-2.1,1.2-2.9l8-7.9c0,0,1.2,1.3,1.2,1.3
233
+ c0.2,0.2,0.3,0.5,0.3,0.8c0,0.2-0.1,0.4-0.2,0.6c0,0-2.5,4.3-2.5,4.3h11.9c0.8,0,1.5,0.7,1.5,1.5s-0.7,1.5-1.5,1.5h-7v1H28
234
+ c0.8,0,1.5,0.7,1.5,1.5s-0.7,1.5-1.5,1.5h-9.5v1H27c0.8,0,1.5,0.7,1.5,1.5s-0.7,1.5-1.5,1.5h-8.5v1H24c0.8,0,1.5,0.7,1.5,1.5
235
+ S24.8,28.5,24,28.5z"/>
236
+ </g>
237
+ </g>
238
+ </g>
239
+ </svg>
240
+ `,
241
+ 'business-rule': `
242
+ <svg version="1.1" id="Layer_3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
243
+ viewBox="0 0 35 35" style="enable-background:new 0 0 35 35;" xml:space="preserve">
244
+ <style type="text/css">
245
+ .st0{fill:{{strokeColor}};}
246
+ </style>
247
+ <g>
248
+ <g>
249
+ <path class="st0" d="M28.6,11.1v14.8H6.5V11.1h20.3 M26.8,8H8.2c-1.5,0-2.7,1-2.7,2.1v15.8c0,1.2,1.2,1.1,2.7,1.1h18.7c1.5,0,2.7,0.1,2.7-1.1
250
+ V10.1C29.5,8.9,28.3,8,26.8,8L26.8,8z"/>
251
+ </g>
252
+ <path class="st0" d="M29,21.4H6v-1h23V21.4z M28.8,16.4h-23v-1h23V16.4z M14.2,10.6v16h-1v-16H14.2z"/>
253
+ </g>
254
+ </svg>
255
+ `,
256
+ script: `
257
+ <svg version="1.1" id="Layer_3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
258
+ viewBox="0 0 35 35" style="enable-background:new 0 0 35 35;" xml:space="preserve">
259
+ <style type="text/css">
260
+ .st0{fill:none;stroke:{{strokeColor}};stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
261
+ </style>
262
+ <g>
263
+ <path class="st0" d="M7.9,8h20.8c0,0-2.9,1.7-2.6,7.2c0.1,1,0.5,2,1.1,2.9c1.1,1.5,3,4.6,0.4,9h-21c0,0,3.2-5.5,1-9
264
+ C7.6,18,3.8,12.4,7.9,8z"/>
265
+ <rect class="st0" x="9.1" y="11.3" width="14" height="1"/>
266
+ <rect class="st0" x="9.7" y="15" width="14" height="1"/>
267
+ <rect class="st0" x="10.7" y="18.7" width="14" height="1"/>
268
+ <rect class="st0" x="11.7" y="22.3" width="14" height="1"/>
269
+ </g>
270
+ </svg>
271
+ `
272
+ };
273
+ const MARKERS = {
274
+ loop: `
275
+ <svg version="1.1" id="Layer_3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
276
+ viewBox="0 0 35 35" style="enable-background:new 0 0 35 35;" xml:space="preserve">
277
+ <style type="text/css">
278
+ .st0{fill:{{strokeColor}};}
279
+ </style>
280
+ <path class="st0" d="M9.5,5.2C4.3,9.7,3.7,17.5,8.1,22.8L5,25.4l7.8,0.6l0.6-7.8L10.2,21c-3.5-4.1-3-10.1,1-13.6s10.1-3,13.6,1
281
+ s3,10.1-1,13.6c-1.6,1.4-3.5,2.1-5.4,2.3l-0.2,2.8c2.6-0.2,5.3-1.1,7.4-3c5.2-4.5,5.8-12.3,1.3-17.5S14.7,0.8,9.5,5.2z"/>
282
+ </svg>
283
+ `,
284
+ parallel: `
285
+ <svg version="1.1" id="Layer_3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
286
+ viewBox="0 0 35 35" style="enable-background:new 0 0 35 35;" xml:space="preserve">
287
+ <style type="text/css">
288
+ .st0{fill:{{strokeColor}};}
289
+ </style>
290
+ <g>
291
+ <rect x="5.5" y="1.9" class="st0" width="3.3" height="25.3"/>
292
+ <rect x="15.9" y="1.9" class="st0" width="3.3" height="25.3"/>
293
+ <rect x="26.2" y="1.9" class="st0" width="3.3" height="25.3"/>
294
+ </g>
295
+ </svg>
296
+ `,
297
+ sequential: `
298
+ <svg version="1.1" id="Layer_3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
299
+ viewBox="0 0 35 35" style="enable-background:new 0 0 35 35;" xml:space="preserve">
300
+ <style type="text/css">
301
+ .st0{fill:{{strokeColor}};}
302
+ </style>
303
+ <g>
304
+ <rect x="4.8" y="2.6" width="25.3" height="3.3" class="st0"/>
305
+ <rect x="4.8" y="13" width="25.3" height="3.3" class="st0"/>
306
+ <rect x="4.8" y="23.3" width="25.3" height="3.3" class="st0"/>
307
+ </g>
308
+ </svg>
309
+ `
310
+ };
311
+ //# sourceMappingURL=bpmn-task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bpmn-task.js","sourceRoot":"","sources":["../src/bpmn-task.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Properties } from '@hatiolab/things-scene'\n\nimport BPMNControlBase from './base/bpmn-control-base'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: false,\n properties: [\n {\n type: 'select',\n label: 'task-type',\n name: 'taskType',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'service',\n value: 'service'\n },\n {\n display: 'send',\n value: 'send'\n },\n {\n display: 'receive',\n value: 'receive'\n },\n {\n display: 'user',\n value: 'user'\n },\n {\n display: 'manual',\n value: 'manual'\n },\n {\n display: 'business rule',\n value: 'business-rule'\n },\n {\n display: 'script',\n value: 'script'\n }\n ]\n }\n },\n {\n type: 'select',\n label: 'multi-instance',\n name: 'multiInstance',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'parallel',\n value: 'parallel'\n },\n {\n display: 'sequential',\n value: 'sequential'\n }\n ]\n }\n },\n {\n type: 'checkbox',\n label: 'loop',\n name: 'loop'\n }\n ],\n help: '/eipatterns/bpmn-task/bpmn-task'\n}\n\nexport default class BPMNTask extends BPMNControlBase {\n private imageElement?: HTMLImageElement\n private markerImages?: HTMLImageElement[]\n\n static get nature() {\n return NATURE\n }\n\n render(ctx: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n var radius = 9\n\n ctx.moveTo(radius, 0)\n ctx.arcTo(width, 0, width, height, radius)\n ctx.arcTo(width, height, 0, height, radius)\n ctx.arcTo(0, height, 0, 0, radius)\n ctx.arcTo(0, 0, width, 0, radius)\n\n this.drawFill(ctx)\n this.drawStroke(ctx)\n\n ctx.beginPath()\n\n const image = this.getImageElement()\n if (image) {\n this.drawImage(ctx, image, 0, 0, 24, 24)\n }\n\n const images = this.getMarkerImages() || []\n const start = (width - images.length * 24) / 2\n\n images.forEach((image, index) => {\n this.drawImage(ctx, image, start + index * 24, height - 24, 24, 24)\n })\n\n ctx.translate(-left, -top)\n }\n\n onchange(after: Properties, before: Properties) {\n if (['loop', 'multiInstance', 'taskType', 'strokeStyle'].find(prop => prop in after)) {\n delete this.markerImages\n delete this.imageElement\n }\n }\n\n getImageElement(): HTMLImageElement | null | undefined {\n if (!this.imageElement) {\n const { taskType, strokeStyle } = this.state\n\n if (!taskType) {\n return\n }\n\n const src = IMAGES[taskType]\n if (!src) {\n return\n }\n\n this.imageElement = new Image()\n this.imageElement.src =\n 'data:image/svg+xml;charset=UTF-8;base64,' + btoa(src.replace(/{{strokeColor}}/g, strokeStyle))\n }\n\n return this.imageElement\n }\n\n getMarkerImages(): HTMLImageElement[] | null | undefined {\n if (!this.markerImages) {\n const { loop, multiInstance, strokeStyle } = this.state\n\n this.markerImages = []\n\n if (loop) {\n let image = new Image()\n image.src =\n 'data:image/svg+xml;charset=UTF-8;base64,' + btoa(MARKERS['loop'].replace(/{{strokeColor}}/g, strokeStyle))\n this.markerImages.push(image)\n }\n\n if (multiInstance) {\n let image = new Image()\n image.src =\n 'data:image/svg+xml;charset=UTF-8;base64,' +\n btoa(MARKERS[multiInstance].replace(/{{strokeColor}}/g, strokeStyle))\n this.markerImages.push(image)\n }\n }\n\n return this.markerImages\n }\n}\n\nComponent.register('bpmn-task', BPMNTask)\n\nconst IMAGES: { [type: string]: string } = {\n service: `\n<svg version=\"1.1\" id=\"Layer_3\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:{{strokeColor}};}\n </style>\n <g>\n <g>\n <path class=\"st0\" d=\"M22.6,11.3l0.3,2.1l0.1,0.6l0.5,0.2c0.5,0.2,0.9,0.5,1.4,0.8l0.5,0.3l0.5-0.2l2-0.8l1.5,2.5l-1.7,1.3\n l-0.5,0.4l0.1,0.6c0,0.2,0.1,0.5,0.1,0.8c0,0.3,0,0.5-0.1,0.8l-0.1,0.6l0.4,0.4l1.7,1.3l-1.5,2.5l-2-0.8l-0.5-0.2l-0.5,0.4\n c-0.4,0.3-0.9,0.6-1.4,0.8L23,25.8l-0.1,0.6l-0.3,2.1h-2.9l-0.3-2.1l-0.1-0.6l-0.5-0.2c-0.5-0.2-0.9-0.5-1.4-0.8l-0.5-0.3\n l-0.5,0.2l-2,0.8l-1.5-2.5l1.7-1.3l0.5-0.4L15,20.6c0-0.2-0.1-0.5-0.1-0.8c0-0.2,0-0.5,0.1-0.8l0.1-0.6l-0.5-0.4L13,16.8l1.5-2.5\n l2,0.8l0.5,0.2l0.5-0.3c0.5-0.4,0.9-0.6,1.4-0.8l0.5-0.2l0.1-0.6l0.3-2.1H22.6 M21.1,24.5c2.5,0,4.6-2.1,4.6-4.6s-2.1-4.6-4.6-4.6\n s-4.6,2.1-4.6,4.6S18.6,24.5,21.1,24.5 M23,10.3h-3.8c-0.2,0-0.4,0.2-0.5,0.4l-0.4,2.5c-0.6,0.2-1.1,0.6-1.6,0.9l-2.4-1\n c-0.1,0-0.1,0-0.2,0c-0.2,0-0.3,0.1-0.4,0.3l-1.9,3.3c-0.1,0.2-0.1,0.5,0.1,0.6l2,1.6c-0.1,0.3-0.1,0.6-0.1,0.9s0,0.6,0.1,0.9\n l-2,1.6c-0.2,0.1-0.2,0.4-0.1,0.6l1.9,3.3c0.1,0.2,0.3,0.2,0.4,0.2c0.1,0,0.1,0,0.2,0l2.4-1c0.5,0.4,1,0.7,1.6,0.9l0.4,2.5\n c0,0.2,0.2,0.4,0.5,0.4H23c0.2,0,0.4-0.2,0.5-0.4l0.4-2.5c0.6-0.2,1.1-0.6,1.6-0.9l2.4,1c0.1,0,0.1,0,0.2,0c0.2,0,0.3-0.1,0.4-0.3\n l1.9-3.3c0.1-0.2,0.1-0.5-0.1-0.6l-2-1.6c0-0.3,0.1-0.6,0.1-0.9c0-0.3,0-0.6-0.1-0.9l2-1.6c0.2-0.1,0.2-0.4,0.1-0.6l-1.9-3.3\n c-0.1-0.2-0.3-0.2-0.4-0.2c-0.1,0-0.1,0-0.2,0l-2.4,1c-0.5-0.4-1-0.7-1.6-0.9l-0.4-2.5C23.5,10.4,23.3,10.3,23,10.3L23,10.3z\n M21.1,23.5c-2,0-3.6-1.6-3.6-3.6s1.6-3.6,3.6-3.6s3.6,1.6,3.6,3.6S23.1,23.5,21.1,23.5L21.1,23.5z\"/>\n </g>\n <g>\n <g>\n <path class=\"st0\" d=\"M16.8,6.5L17.2,9l0.1,0.6l0.3,0.1l-1,1.9c-0.5-0.2-1-0.3-1.5-0.3c-2.8,0-5.1,2.3-5.1,5.1\n c0,1.3,0.5,2.5,1.3,3.4l-1.2,1.9l-0.4,0.2l-2.3,0.9l-1.8-3.1l2-1.5l0.5-0.4L8,17.3c0-0.3-0.1-0.6-0.1-0.9c0-0.2,0-0.5,0.1-0.9\n l0.1-0.6l-0.5-0.4l-2-1.5l1.8-3.1l2.3,0.9l0.5,0.2l0.5-0.3c0.5-0.4,1.1-0.7,1.6-0.9l0.5-0.2L13,9l0.3-2.5H16.8 M17.2,5.5h-4.3\n c-0.3,0-0.5,0.2-0.5,0.5L12,8.9c-0.7,0.3-1.3,0.6-1.8,1.1L7.4,8.8c-0.1,0-0.1,0-0.2,0c-0.2,0-0.4,0.1-0.5,0.3l-2.2,3.7\n c-0.1,0.2-0.1,0.5,0.1,0.7L7,15.3C7,15.6,6.9,16,6.9,16.4c0,0.3,0,0.7,0.1,1.1l-2.3,1.8c-0.2,0.2-0.3,0.5-0.1,0.7l2.2,3.7\n c0.1,0.2,0.3,0.3,0.5,0.3c0.1,0,0.1,0,0.2,0l2.7-1.1c0.1,0.1,0.3,0.2,0.4,0.3l2.1-3.5c-1-0.7-1.6-1.9-1.6-3.2\n c0-2.2,1.8-4.1,4.1-4.1c0.7,0,1.4,0.2,2,0.5l1.9-3.6c-0.2-0.1-0.5-0.3-0.8-0.4L17.8,6C17.7,5.7,17.5,5.5,17.2,5.5L17.2,5.5z\"/>\n </g>\n </g>\n </g>\n</svg>\n`,\n send: `\n <svg version=\"1.1\" id=\"Layer_3\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:{{strokeColor}};}\n </style>\n <path class=\"st0\" d=\"M27.1,7.9H7.9c-1.3,0-2.4,1.1-2.4,2.4l0,14.4c0,1.3,1.1,2.4,2.4,2.4h19.2c1.3,0,2.4-1.1,2.4-2.4V10.3\n\tC29.5,9,28.4,7.9,27.1,7.9z M27.1,12.7l-9.6,6l-9.6-6v-2.4l9.6,6l9.6-6V12.7z\"/>\n </svg>\n `,\n receive: `\n <svg version=\"1.1\" id=\"Layer_3\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:{{strokeColor}};}\n </style>\n <path class=\"st0\" d=\"M29.5,10.3c0-1.3-1.1-2.4-2.4-2.4H7.9c-1.3,0-2.4,1.1-2.4,2.4v14.4c0,1.3,1.1,2.4,2.4,2.4h19.2c1.3,0,2.4-1.1,2.4-2.4V10.3z\n\t M27.1,9.3l-9.6,7l-9.6-7H27.1z M28.1,25.7H6.9v-16l10.6,8l10.6-8V25.7z\"/>\n </svg>\n `,\n user: `\n <svg version=\"1.1\" id=\"Layer_3\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:{{strokeColor}};}\n </style>\n <g>\n <g>\n <path class=\"st0\" d=\"M17.5,6.5c2.8,0,5,2.2,5,5s-2.2,5-5,5s-5-2.2-5-5S14.7,6.5,17.5,6.5 M17.4,20c3.6,0,10.1,3.3,10.1,6.5v2h-20v-2\n C7.5,23.3,13.8,20,17.4,20 M17.5,5.5c-3.3,0-6,2.7-6,6s2.7,6,6,6s6-2.7,6-6S20.8,5.5,17.5,5.5L17.5,5.5z M17.4,19\n c-4,0-10.9,3.6-10.9,7.5v3h22v-3C28.5,22.5,21.4,19,17.4,19L17.4,19z\"/>\n </g>\n <path class=\"st0\" d=\"M14.6,7.2c0,0,2,4.5,7.9,3.9C22.5,11.1,21.8,4.3,14.6,7.2z\"/>\n <path class=\"st0\" d=\"M16.2,9.4c0,0-1.2,1.3-4,1.2l1.2-2.5L14.9,7L16.2,9.4z\"/>\n </g>\n </svg>\n `,\n manual: `\n <svg version=\"1.1\" id=\"Layer_3\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:none;stroke:{{strokeColor}};stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}\n </style>\n <g>\n <g>\n <g>\n <path class=\"st0\" d=\"M24,28.5H9.5c-2.2,0-4-1.8-4-4v-7.3c0-1.1,0.4-2.1,1.2-2.9l8-7.9c0,0,1.2,1.3,1.2,1.3\n c0.2,0.2,0.3,0.5,0.3,0.8c0,0.2-0.1,0.4-0.2,0.6c0,0-2.5,4.3-2.5,4.3h11.9c0.8,0,1.5,0.7,1.5,1.5s-0.7,1.5-1.5,1.5h-7v1H28\n c0.8,0,1.5,0.7,1.5,1.5s-0.7,1.5-1.5,1.5h-9.5v1H27c0.8,0,1.5,0.7,1.5,1.5s-0.7,1.5-1.5,1.5h-8.5v1H24c0.8,0,1.5,0.7,1.5,1.5\n S24.8,28.5,24,28.5z\"/>\n </g>\n </g>\n </g>\n </svg>\n `,\n 'business-rule': `\n <svg version=\"1.1\" id=\"Layer_3\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:{{strokeColor}};}\n </style>\n <g>\n <g>\n <path class=\"st0\" d=\"M28.6,11.1v14.8H6.5V11.1h20.3 M26.8,8H8.2c-1.5,0-2.7,1-2.7,2.1v15.8c0,1.2,1.2,1.1,2.7,1.1h18.7c1.5,0,2.7,0.1,2.7-1.1\n V10.1C29.5,8.9,28.3,8,26.8,8L26.8,8z\"/>\n </g>\n <path class=\"st0\" d=\"M29,21.4H6v-1h23V21.4z M28.8,16.4h-23v-1h23V16.4z M14.2,10.6v16h-1v-16H14.2z\"/>\n </g>\n </svg>\n `,\n script: `\n <svg version=\"1.1\" id=\"Layer_3\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:none;stroke:{{strokeColor}};stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}\n </style>\n <g>\n <path class=\"st0\" d=\"M7.9,8h20.8c0,0-2.9,1.7-2.6,7.2c0.1,1,0.5,2,1.1,2.9c1.1,1.5,3,4.6,0.4,9h-21c0,0,3.2-5.5,1-9\n C7.6,18,3.8,12.4,7.9,8z\"/>\n <rect class=\"st0\" x=\"9.1\" y=\"11.3\" width=\"14\" height=\"1\"/>\n <rect class=\"st0\" x=\"9.7\" y=\"15\" width=\"14\" height=\"1\"/>\n <rect class=\"st0\" x=\"10.7\" y=\"18.7\" width=\"14\" height=\"1\"/>\n <rect class=\"st0\" x=\"11.7\" y=\"22.3\" width=\"14\" height=\"1\"/>\n </g>\n </svg>\n `\n}\n\nconst MARKERS: { [type: string]: string } = {\n loop: `\n <svg version=\"1.1\" id=\"Layer_3\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:{{strokeColor}};}\n </style>\n <path class=\"st0\" d=\"M9.5,5.2C4.3,9.7,3.7,17.5,8.1,22.8L5,25.4l7.8,0.6l0.6-7.8L10.2,21c-3.5-4.1-3-10.1,1-13.6s10.1-3,13.6,1\n s3,10.1-1,13.6c-1.6,1.4-3.5,2.1-5.4,2.3l-0.2,2.8c2.6-0.2,5.3-1.1,7.4-3c5.2-4.5,5.8-12.3,1.3-17.5S14.7,0.8,9.5,5.2z\"/>\n </svg>\n`,\n parallel: `\n <svg version=\"1.1\" id=\"Layer_3\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:{{strokeColor}};}\n </style>\n <g>\n <rect x=\"5.5\" y=\"1.9\" class=\"st0\" width=\"3.3\" height=\"25.3\"/>\n <rect x=\"15.9\" y=\"1.9\" class=\"st0\" width=\"3.3\" height=\"25.3\"/>\n <rect x=\"26.2\" y=\"1.9\" class=\"st0\" width=\"3.3\" height=\"25.3\"/>\n </g>\n </svg>\n `,\n sequential: `\n <svg version=\"1.1\" id=\"Layer_3\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:{{strokeColor}};}\n </style>\n <g>\n <rect x=\"4.8\" y=\"2.6\" width=\"25.3\" height=\"3.3\" class=\"st0\"/>\n <rect x=\"4.8\" y=\"13\" width=\"25.3\" height=\"3.3\" class=\"st0\"/>\n <rect x=\"4.8\" y=\"23.3\" width=\"25.3\" height=\"3.3\" class=\"st0\"/>\n </g>\n </svg>\n `\n}\n"]}
File without changes
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/editors/index.ts"],"names":[],"mappings":"","sourcesContent":[""]}
@@ -0,0 +1,7 @@
1
+ declare const _default: {
2
+ name: string;
3
+ description: string;
4
+ icon: string;
5
+ templates: never[];
6
+ }[];
7
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import { process } from './process';
2
+ export default [process];
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/groups/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,eAAe,CAAC,OAAO,CAAC,CAAA","sourcesContent":["import { process } from './process'\n\nexport default [process]\n"]}
@@ -0,0 +1,6 @@
1
+ export declare const process: {
2
+ name: string;
3
+ description: string;
4
+ icon: string;
5
+ templates: never[];
6
+ };
@@ -0,0 +1,48 @@
1
+ const icon = `
2
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
3
+ viewBox="0 0 35 35" style="enable-background:new 0 0 35 35;" xml:space="preserve">
4
+ <style type="text/css">
5
+ .st0{fill:{{strokeColor}};}
6
+ </style>
7
+ <g>
8
+ <g>
9
+ <path class="st0" d="M33.2,15.2v4.6h-4.6v-4.6H33.2 M34,14.4h-6.1v6.1H34V14.4L34,14.4z"/>
10
+ </g>
11
+ <g>
12
+ <g>
13
+ <path class="st0" d="M17.5,15.3l2.2,2.2l-2.2,2.2l-2.2-2.2L17.5,15.3 M17.5,14.2l-3.3,3.3l3.3,3.3l3.3-3.3L17.5,14.2L17.5,14.2z"
14
+ />
15
+ </g>
16
+ <g>
17
+ <path class="st0" d="M19.8,7.2v4.6h-4.6V7.2H19.8 M20.6,6.5h-6.1v6.1h6.1V6.5L20.6,6.5z"/>
18
+ </g>
19
+ <g>
20
+ <path class="st0" d="M19.8,23.1v4.6h-4.6v-4.6H19.8 M20.6,22.4h-6.1v6.1h6.1V22.4L20.6,22.4z"/>
21
+ </g>
22
+ </g>
23
+ <g>
24
+ <g>
25
+ <polygon class="st0" points="13.3,17.4 10.6,19.6 10.6,15.2 13.3,17.4 "/>
26
+ </g>
27
+ <rect x="8.2" y="16.9" class="st0" width="3.4" height="0.9"/>
28
+ </g>
29
+ <g>
30
+ <g>
31
+ <polygon class="st0" points="26.8,17.4 24,19.6 24,15.2 26.8,17.4 "/>
32
+ </g>
33
+ <rect x="21.7" y="16.9" class="st0" width="3.4" height="0.9"/>
34
+ </g>
35
+ <g>
36
+ <path class="st0" d="M4.1,15.2c1.3,0,2.3,1,2.3,2.3s-1,2.3-2.3,2.3s-2.3-1-2.3-2.3S2.8,15.2,4.1,15.2 M4.1,14.4
37
+ c-1.7,0-3.1,1.4-3.1,3.1c0,1.7,1.4,3.1,3.1,3.1s3.1-1.4,3.1-3.1C7.1,15.8,5.8,14.4,4.1,14.4L4.1,14.4z"/>
38
+ </g>
39
+ </g>
40
+ </svg>
41
+ `;
42
+ export const process = {
43
+ name: 'process',
44
+ description: 'a group of Business Process Management Notation',
45
+ icon,
46
+ templates: []
47
+ };
48
+ //# sourceMappingURL=process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/groups/process.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCZ,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,iDAAiD;IAC9D,IAAI;IACJ,SAAS,EAAE,EAAE;CACd,CAAA","sourcesContent":["const icon = `\n<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 35 35\" style=\"enable-background:new 0 0 35 35;\" xml:space=\"preserve\">\n <style type=\"text/css\">\n .st0{fill:{{strokeColor}};}\n </style>\n <g>\n <g>\n <path class=\"st0\" d=\"M33.2,15.2v4.6h-4.6v-4.6H33.2 M34,14.4h-6.1v6.1H34V14.4L34,14.4z\"/>\n </g>\n <g>\n <g>\n <path class=\"st0\" d=\"M17.5,15.3l2.2,2.2l-2.2,2.2l-2.2-2.2L17.5,15.3 M17.5,14.2l-3.3,3.3l3.3,3.3l3.3-3.3L17.5,14.2L17.5,14.2z\"\n />\n </g>\n <g>\n <path class=\"st0\" d=\"M19.8,7.2v4.6h-4.6V7.2H19.8 M20.6,6.5h-6.1v6.1h6.1V6.5L20.6,6.5z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M19.8,23.1v4.6h-4.6v-4.6H19.8 M20.6,22.4h-6.1v6.1h6.1V22.4L20.6,22.4z\"/>\n </g>\n </g>\n <g>\n <g>\n <polygon class=\"st0\" points=\"13.3,17.4 10.6,19.6 10.6,15.2 13.3,17.4 \t\t\t\"/>\n </g>\n <rect x=\"8.2\" y=\"16.9\" class=\"st0\" width=\"3.4\" height=\"0.9\"/>\n </g>\n <g>\n <g>\n <polygon class=\"st0\" points=\"26.8,17.4 24,19.6 24,15.2 26.8,17.4 \t\t\t\"/>\n </g>\n <rect x=\"21.7\" y=\"16.9\" class=\"st0\" width=\"3.4\" height=\"0.9\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M4.1,15.2c1.3,0,2.3,1,2.3,2.3s-1,2.3-2.3,2.3s-2.3-1-2.3-2.3S2.8,15.2,4.1,15.2 M4.1,14.4\n c-1.7,0-3.1,1.4-3.1,3.1c0,1.7,1.4,3.1,3.1,3.1s3.1-1.4,3.1-3.1C7.1,15.8,5.8,14.4,4.1,14.4L4.1,14.4z\"/>\n </g>\n </g>\n</svg>\n`\n\nexport const process = {\n name: 'process',\n description: 'a group of Business Process Management Notation',\n icon,\n templates: []\n}\n"]}
@@ -0,0 +1,12 @@
1
+ export { default as BPMNCallActivity } from './bpmn-call-activity';
2
+ export { default as BPMNComment } from './bpmn-comment';
3
+ export { default as BPMNDataObject } from './bpmn-data-object';
4
+ export { default as BPMNDataStore } from './bpmn-data-store';
5
+ export { default as BPMNEvent } from './bpmn-event';
6
+ export { default as BPMNFlow } from './bpmn-flow';
7
+ export { default as BPMNGateway } from './bpmn-gateway';
8
+ export { default as BPMNGroup } from './bpmn-group';
9
+ export { default as BPMNLane } from './bpmn-lane';
10
+ export { default as BPMNPool } from './bpmn-pool';
11
+ export { default as BPMNSubprocess } from './bpmn-subprocess';
12
+ export { default as BPMNTask } from './bpmn-task';
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ export { default as BPMNCallActivity } from './bpmn-call-activity';
2
+ export { default as BPMNComment } from './bpmn-comment';
3
+ export { default as BPMNDataObject } from './bpmn-data-object';
4
+ export { default as BPMNDataStore } from './bpmn-data-store';
5
+ export { default as BPMNEvent } from './bpmn-event';
6
+ export { default as BPMNFlow } from './bpmn-flow';
7
+ export { default as BPMNGateway } from './bpmn-gateway';
8
+ export { default as BPMNGroup } from './bpmn-group';
9
+ export { default as BPMNLane } from './bpmn-lane';
10
+ export { default as BPMNPool } from './bpmn-pool';
11
+ export { default as BPMNSubprocess } from './bpmn-subprocess';
12
+ export { default as BPMNTask } from './bpmn-task';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAA","sourcesContent":["export { default as BPMNCallActivity } from './bpmn-call-activity'\nexport { default as BPMNComment } from './bpmn-comment'\nexport { default as BPMNDataObject } from './bpmn-data-object'\nexport { default as BPMNDataStore } from './bpmn-data-store'\nexport { default as BPMNEvent } from './bpmn-event'\nexport { default as BPMNFlow } from './bpmn-flow'\nexport { default as BPMNGateway } from './bpmn-gateway'\nexport { default as BPMNGroup } from './bpmn-group'\nexport { default as BPMNLane } from './bpmn-lane'\nexport { default as BPMNPool } from './bpmn-pool'\nexport { default as BPMNSubprocess } from './bpmn-subprocess'\nexport { default as BPMNTask } from './bpmn-task'\n"]}
@@ -0,0 +1,17 @@
1
+ declare const _default: {
2
+ type: string;
3
+ description: string;
4
+ group: string;
5
+ icon: string;
6
+ model: {
7
+ type: string;
8
+ left: number;
9
+ top: number;
10
+ width: number;
11
+ height: number;
12
+ strokeStyle: string;
13
+ lineWidth: number;
14
+ };
15
+ about: string;
16
+ };
17
+ export default _default;
@@ -0,0 +1,18 @@
1
+ const icon = new URL('../../icons/icon-bpmn-call-activity.png', import.meta.url).href;
2
+ export default {
3
+ type: 'bpmn-call-activity',
4
+ description: 'controls for BPMN call-activity',
5
+ group: 'process',
6
+ icon,
7
+ model: {
8
+ type: 'bpmn-call-activity',
9
+ left: 10,
10
+ top: 10,
11
+ width: 100,
12
+ height: 60,
13
+ strokeStyle: 'black',
14
+ lineWidth: 2
15
+ },
16
+ about: 'https://www.visual-paradigm.com/guide/bpmn/bpmn-activity-types-explained/'
17
+ };
18
+ //# sourceMappingURL=bpmn-call-activity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bpmn-call-activity.js","sourceRoot":"","sources":["../../src/templates/bpmn-call-activity.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,yCAAyC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAErF,eAAe;IACb,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,iCAAiC;IAC9C,KAAK,EAAE,SAAS;IAChB,IAAI;IACJ,KAAK,EAAE;QACL,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,EAAE;QACR,GAAG,EAAE,EAAE;QACP,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,EAAE;QACV,WAAW,EAAE,OAAO;QACpB,SAAS,EAAE,CAAC;KACb;IACD,KAAK,EAAE,2EAA2E;CACnF,CAAA","sourcesContent":["const icon = new URL('../../icons/icon-bpmn-call-activity.png', import.meta.url).href\n\nexport default {\n type: 'bpmn-call-activity',\n description: 'controls for BPMN call-activity',\n group: 'process',\n icon,\n model: {\n type: 'bpmn-call-activity',\n left: 10,\n top: 10,\n width: 100,\n height: 60,\n strokeStyle: 'black',\n lineWidth: 2\n },\n about: 'https://www.visual-paradigm.com/guide/bpmn/bpmn-activity-types-explained/'\n}\n"]}
@@ -0,0 +1,19 @@
1
+ declare const _default: {
2
+ type: string;
3
+ description: string;
4
+ group: string;
5
+ icon: string;
6
+ model: {
7
+ type: string;
8
+ left: number;
9
+ top: number;
10
+ width: number;
11
+ height: number;
12
+ lineWidth: number;
13
+ strokeStyle: string;
14
+ textAlign: string;
15
+ textBaseline: string;
16
+ };
17
+ about: string;
18
+ };
19
+ export default _default;
@@ -0,0 +1,20 @@
1
+ const icon = new URL('../../icons/icon-bpmn-comment.png', import.meta.url).href;
2
+ export default {
3
+ type: 'bpmn-comment',
4
+ description: 'controls for BPMN comment',
5
+ group: 'process',
6
+ icon,
7
+ model: {
8
+ type: 'bpmn-comment',
9
+ left: 10,
10
+ top: 10,
11
+ width: 100,
12
+ height: 60,
13
+ lineWidth: 2,
14
+ strokeStyle: 'black',
15
+ textAlign: 'left',
16
+ textBaseline: 'top'
17
+ },
18
+ about: '/helps/bpmn/comment/comment.md'
19
+ };
20
+ //# sourceMappingURL=bpmn-comment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bpmn-comment.js","sourceRoot":"","sources":["../../src/templates/bpmn-comment.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,mCAAmC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAE/E,eAAe;IACb,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,2BAA2B;IACxC,KAAK,EAAE,SAAS;IAChB,IAAI;IACJ,KAAK,EAAE;QACL,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,EAAE;QACR,GAAG,EAAE,EAAE;QACP,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE,OAAO;QACpB,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,KAAK;KACpB;IACD,KAAK,EAAE,gCAAgC;CACxC,CAAA","sourcesContent":["const icon = new URL('../../icons/icon-bpmn-comment.png', import.meta.url).href\n\nexport default {\n type: 'bpmn-comment',\n description: 'controls for BPMN comment',\n group: 'process',\n icon,\n model: {\n type: 'bpmn-comment',\n left: 10,\n top: 10,\n width: 100,\n height: 60,\n lineWidth: 2,\n strokeStyle: 'black',\n textAlign: 'left',\n textBaseline: 'top'\n },\n about: '/helps/bpmn/comment/comment.md'\n}\n"]}