@operato/scene-bpmn 1.2.90 → 1.3.7

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 (45) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/base/bpmn-activity.js.map +1 -1
  3. package/dist/base/bpmn-container-base.js.map +1 -1
  4. package/dist/base/bpmn-control-base.js.map +1 -1
  5. package/dist/bpmn-comment.d.ts +2 -8
  6. package/dist/bpmn-comment.js.map +1 -1
  7. package/dist/bpmn-data-object.d.ts +2 -23
  8. package/dist/bpmn-data-object.js.map +1 -1
  9. package/dist/bpmn-data-store.d.ts +2 -8
  10. package/dist/bpmn-data-store.js.map +1 -1
  11. package/dist/bpmn-event.d.ts +2 -23
  12. package/dist/bpmn-event.js.map +1 -1
  13. package/dist/bpmn-expanded-subprocess.d.ts +2 -22
  14. package/dist/bpmn-expanded-subprocess.js.map +1 -1
  15. package/dist/bpmn-flow.d.ts +2 -22
  16. package/dist/bpmn-flow.js.map +1 -1
  17. package/dist/bpmn-gateway.d.ts +2 -18
  18. package/dist/bpmn-gateway.js.map +1 -1
  19. package/dist/bpmn-group.d.ts +2 -7
  20. package/dist/bpmn-group.js.map +1 -1
  21. package/dist/bpmn-lane.d.ts +2 -12
  22. package/dist/bpmn-lane.js.map +1 -1
  23. package/dist/bpmn-message.d.ts +2 -8
  24. package/dist/bpmn-message.js.map +1 -1
  25. package/dist/bpmn-pool.d.ts +2 -11
  26. package/dist/bpmn-pool.js.map +1 -1
  27. package/dist/bpmn-subprocess.d.ts +2 -23
  28. package/dist/bpmn-subprocess.js.map +1 -1
  29. package/dist/bpmn-task.d.ts +2 -23
  30. package/dist/bpmn-task.js.map +1 -1
  31. package/package.json +2 -2
  32. package/src/bpmn-comment.ts +2 -2
  33. package/src/bpmn-data-object.ts +2 -2
  34. package/src/bpmn-data-store.ts +2 -2
  35. package/src/bpmn-event.ts +2 -2
  36. package/src/bpmn-expanded-subprocess.ts +2 -2
  37. package/src/bpmn-flow.ts +2 -2
  38. package/src/bpmn-gateway.ts +2 -2
  39. package/src/bpmn-group.ts +2 -2
  40. package/src/bpmn-lane.ts +2 -2
  41. package/src/bpmn-message.ts +2 -2
  42. package/src/bpmn-pool.ts +2 -2
  43. package/src/bpmn-subprocess.ts +2 -2
  44. package/src/bpmn-task.ts +2 -2
  45. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,15 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.3.7](https://github.com/things-scene/operato-scene/compare/v1.3.6...v1.3.7) (2024-01-01)
7
+
8
+
9
+ ### :bug: Bug Fix
10
+
11
+ * mpi module moved from things-factory ([47b743f](https://github.com/things-scene/operato-scene/commit/47b743fd19001f195db85e50b8f6e457a1573aa5))
12
+
13
+
14
+
6
15
  ## [1.2.90](https://github.com/things-scene/operato-scene/compare/v1.2.89...v1.2.90) (2023-11-22)
7
16
 
8
17
  **Note:** Version bump only for package @operato/scene-bpmn
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-activity.js","sourceRoot":"","sources":["../../src/base/bpmn-activity.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,qBAAqB,CAAA;AAEjD,MAAM,CAAC,OAAO,OAAgB,YAAa,SAAQ,eAAe;IAGhE,MAAM,CAAC,GAA6B;QAClC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACxB,GAAG,CAAC,SAAS,EAAE,CAAA;QAEf,IAAI,MAAM,GAAG,CAAC,CAAA;QAEd,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QACrB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAC1C,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAC3C,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;QAClC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;QAEjC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;QAE1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAClB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAEpB,GAAG,CAAC,SAAS,EAAE,CAAA;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACpC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;SAC9C;IACH,CAAC;CACF","sourcesContent":["import BPMNControlBase from './bpmn-control-base'\n\nexport default abstract class BPMNActivity extends BPMNControlBase {\n abstract getImageElement(): HTMLImageElement | null | undefined\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 ctx.translate(-left, -top)\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, left, top, 24, 24)\n }\n }\n}\n"]}
1
+ {"version":3,"file":"bpmn-activity.js","sourceRoot":"","sources":["../../src/base/bpmn-activity.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,qBAAqB,CAAA;AAEjD,MAAM,CAAC,OAAO,OAAgB,YAAa,SAAQ,eAAe;IAGhE,MAAM,CAAC,GAA6B;QAClC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACxB,GAAG,CAAC,SAAS,EAAE,CAAA;QAEf,IAAI,MAAM,GAAG,CAAC,CAAA;QAEd,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QACrB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAC1C,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAC3C,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;QAClC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;QAEjC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;QAE1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAClB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAEpB,GAAG,CAAC,SAAS,EAAE,CAAA;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACpC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;CACF","sourcesContent":["import BPMNControlBase from './bpmn-control-base'\n\nexport default abstract class BPMNActivity extends BPMNControlBase {\n abstract getImageElement(): HTMLImageElement | null | undefined\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 ctx.translate(-left, -top)\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, left, top, 24, 24)\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-container-base.js","sourceRoot":"","sources":["../../src/base/bpmn-container-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { Anchor, Container, Connectable, LinkEnd, Properties } from '@hatiolab/things-scene'\n\nexport enum DIRECTION {\n NORTH = 'N',\n EAST = 'E',\n SOUTH = 'S',\n WEST = 'W'\n}\n\nexport enum INOUT {\n IN = 'in',\n OUT = 'out',\n INOUT = 'inout'\n}\n\nexport enum FLOW {\n MESSAGE = 'message',\n SEQUENCE = 'sequence',\n ASSOCIATION = 'association'\n}\n\nexport type NODE = {\n name: string\n description: string\n inout: INOUT\n type: FLOW\n direction: DIRECTION\n multiplicity?: number\n}\n\nconst STYLE_MAP = {\n message: {\n strokeStyle: 'black',\n fillStyle: 'black'\n },\n sequence: {\n strokeStyle: 'red',\n fillStyle: 'red',\n lineDash: 'long-dash-dot'\n },\n association: {\n strokeStyle: 'yellow',\n fillStyle: 'yellow',\n lineDash: 'dash',\n begin: 'none',\n beginSize: 'size1',\n end: 'none',\n endSize: 'size1'\n }\n}\n\ntype FILTER_FUNCTION = (this: Anchor, counterEnd?: LinkEnd) => boolean\n\nconst ANCHOR_LENGTH = 8\n\nconst TEMPLATE = {\n type: 'bpmn-flow',\n lineWidth: 2,\n strokeStyle: 'black',\n begin: 'none',\n beginSize: 'size1',\n end: 'arrow',\n endSize: 'size9',\n round: 10\n}\n\nfunction linkFilter(this: Anchor, counterEnd?: LinkEnd) {\n if (!counterEnd) {\n return this.inout !== 'in'\n }\n\n const { component, anchor } = counterEnd || {}\n /* FIXME remove !anchor.type condition */\n return !anchor?.type || anchor.type === this.type\n}\n\nexport default abstract class BPMNContainerBase extends Connectable(Container) {\n get anchors(): Array<Anchor> {\n var allNodes = this.nodes\n var { left, top, width, height } = this.bounds\n\n var right = left + width\n var bottom = top + height\n\n const dirs: Array<Array<Anchor>> = [DIRECTION.NORTH, DIRECTION.EAST, DIRECTION.SOUTH, DIRECTION.WEST].map(\n direction => {\n const nodes = allNodes.filter(node => node.direction === direction)\n if (nodes.length === 0) {\n return []\n }\n\n var dx = 0\n var dy = 0\n var sx = 0\n var sy = 0\n\n switch (direction) {\n case DIRECTION.NORTH:\n sx = left\n sy = top\n dx = width / (nodes.length + 1)\n dy = 0\n\n break\n\n case DIRECTION.EAST:\n sx = right\n sy = top\n dx = 0\n dy = height / (nodes.length + 1)\n\n break\n\n case DIRECTION.SOUTH:\n sx = left\n sy = bottom\n dx = width / (nodes.length + 1)\n dy = 0\n\n break\n\n case DIRECTION.WEST:\n sx = left\n sy = top\n dx = 0\n dy = height / (nodes.length + 1)\n\n break\n\n default:\n }\n\n return nodes.map((node, idx) => {\n const x = sx + dx * (idx + 1)\n const y = sy + dy * (idx + 1)\n\n return {\n type: node.type as string,\n name: node.name,\n inout: node.inout,\n position: {\n x,\n y\n },\n bounds: {\n left: x - ANCHOR_LENGTH / 2,\n top: y - ANCHOR_LENGTH / 2,\n width: ANCHOR_LENGTH,\n height: ANCHOR_LENGTH\n },\n filter: linkFilter,\n template: {\n ...TEMPLATE,\n ...(STYLE_MAP[node.type || 'message'] || STYLE_MAP['message'])\n },\n multiplicity: node.multiplicity\n }\n })\n }\n )\n\n return dirs.flat()\n }\n\n get nodes(): NODE[] {\n return [\n {\n name: 'Left',\n description: 'Left side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.WEST,\n multiplicity: 1\n },\n {\n name: 'Top',\n description: 'Top side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.NORTH,\n multiplicity: 1\n },\n {\n name: 'Right',\n description: 'Right side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.EAST,\n multiplicity: 1\n },\n {\n name: 'Down',\n description: 'Down side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.SOUTH,\n multiplicity: 1\n }\n ]\n }\n}\n"]}
1
+ {"version":3,"file":"bpmn-container-base.js","sourceRoot":"","sources":["../../src/base/bpmn-container-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { Anchor, Container, Connectable, LinkEnd, Properties } from '@hatiolab/things-scene'\n\nexport enum DIRECTION {\n NORTH = 'N',\n EAST = 'E',\n SOUTH = 'S',\n WEST = 'W'\n}\n\nexport enum INOUT {\n IN = 'in',\n OUT = 'out',\n INOUT = 'inout'\n}\n\nexport enum FLOW {\n MESSAGE = 'message',\n SEQUENCE = 'sequence',\n ASSOCIATION = 'association'\n}\n\nexport type NODE = {\n name: string\n description: string\n inout: INOUT\n type: FLOW\n direction: DIRECTION\n multiplicity?: number\n}\n\nconst STYLE_MAP = {\n message: {\n strokeStyle: 'black',\n fillStyle: 'black'\n },\n sequence: {\n strokeStyle: 'red',\n fillStyle: 'red',\n lineDash: 'long-dash-dot'\n },\n association: {\n strokeStyle: 'yellow',\n fillStyle: 'yellow',\n lineDash: 'dash',\n begin: 'none',\n beginSize: 'size1',\n end: 'none',\n endSize: 'size1'\n }\n}\n\ntype FILTER_FUNCTION = (this: Anchor, counterEnd?: LinkEnd) => boolean\n\nconst ANCHOR_LENGTH = 8\n\nconst TEMPLATE = {\n type: 'bpmn-flow',\n lineWidth: 2,\n strokeStyle: 'black',\n begin: 'none',\n beginSize: 'size1',\n end: 'arrow',\n endSize: 'size9',\n round: 10\n}\n\nfunction linkFilter(this: Anchor, counterEnd?: LinkEnd) {\n if (!counterEnd) {\n return this.inout !== 'in'\n }\n\n const { component, anchor } = counterEnd || {}\n /* FIXME remove !anchor.type condition */\n return !anchor?.type || anchor.type === this.type\n}\n\nexport default abstract class BPMNContainerBase extends Connectable(Container) {\n get anchors(): Array<Anchor> {\n var allNodes = this.nodes\n var { left, top, width, height } = this.bounds\n\n var right = left + width\n var bottom = top + height\n\n const dirs: Array<Array<Anchor>> = [DIRECTION.NORTH, DIRECTION.EAST, DIRECTION.SOUTH, DIRECTION.WEST].map(\n direction => {\n const nodes = allNodes.filter(node => node.direction === direction)\n if (nodes.length === 0) {\n return []\n }\n\n var dx = 0\n var dy = 0\n var sx = 0\n var sy = 0\n\n switch (direction) {\n case DIRECTION.NORTH:\n sx = left\n sy = top\n dx = width / (nodes.length + 1)\n dy = 0\n\n break\n\n case DIRECTION.EAST:\n sx = right\n sy = top\n dx = 0\n dy = height / (nodes.length + 1)\n\n break\n\n case DIRECTION.SOUTH:\n sx = left\n sy = bottom\n dx = width / (nodes.length + 1)\n dy = 0\n\n break\n\n case DIRECTION.WEST:\n sx = left\n sy = top\n dx = 0\n dy = height / (nodes.length + 1)\n\n break\n\n default:\n }\n\n return nodes.map((node, idx) => {\n const x = sx + dx * (idx + 1)\n const y = sy + dy * (idx + 1)\n\n return {\n type: node.type as string,\n name: node.name,\n inout: node.inout,\n position: {\n x,\n y\n },\n bounds: {\n left: x - ANCHOR_LENGTH / 2,\n top: y - ANCHOR_LENGTH / 2,\n width: ANCHOR_LENGTH,\n height: ANCHOR_LENGTH\n },\n filter: linkFilter,\n template: {\n ...TEMPLATE,\n ...(STYLE_MAP[node.type || 'message'] || STYLE_MAP['message'])\n },\n multiplicity: node.multiplicity\n }\n })\n }\n )\n\n return dirs.flat()\n }\n\n get nodes(): NODE[] {\n return [\n {\n name: 'Left',\n description: 'Left side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.WEST,\n multiplicity: 1\n },\n {\n name: 'Top',\n description: 'Top side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.NORTH,\n multiplicity: 1\n },\n {\n name: 'Right',\n description: 'Right side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.EAST,\n multiplicity: 1\n },\n {\n name: 'Down',\n description: 'Down side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.SOUTH,\n multiplicity: 1\n }\n ]\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-control-base.js","sourceRoot":"","sources":["../../src/base/bpmn-control-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { Anchor, BOUNDS, Component, Connectable, LinkEnd, Properties, RectPath, Shape } from '@hatiolab/things-scene'\n\nexport enum DIRECTION {\n NORTH = 'N',\n EAST = 'E',\n SOUTH = 'S',\n WEST = 'W'\n}\n\nexport enum INOUT {\n IN = 'in',\n OUT = 'out',\n INOUT = 'inout'\n}\n\nexport enum FLOW {\n MESSAGE = 'message',\n SEQUENCE = 'sequence',\n ASSOCIATION = 'association'\n}\n\nexport type NODE = {\n name: string\n description: string\n inout: INOUT\n type: FLOW\n direction: DIRECTION\n multiplicity?: number\n}\n\nconst STYLE_MAP = {\n message: {\n strokeStyle: 'black',\n fillStyle: 'black'\n },\n sequence: {\n strokeStyle: 'red',\n fillStyle: 'red',\n lineDash: 'long-dash-dot'\n },\n association: {\n strokeStyle: 'yellow',\n fillStyle: 'yellow',\n lineDash: 'dash',\n begin: 'none',\n beginSize: 'size1',\n end: 'none',\n endSize: 'size1'\n }\n}\n\ntype FILTER_FUNCTION = (this: Anchor, counterEnd?: LinkEnd) => boolean\n\nconst ANCHOR_LENGTH = 8\n\nconst TEMPLATE = {\n type: 'bpmn-flow',\n lineWidth: 2,\n strokeStyle: 'black',\n begin: 'none',\n beginSize: 'size1',\n end: 'arrow',\n endSize: 'size9',\n round: 10\n}\n\nfunction linkFilter(this: Anchor, counterEnd?: LinkEnd) {\n if (!counterEnd) {\n return this.inout !== 'in'\n }\n\n const { component, anchor } = counterEnd || {}\n /* FIXME remove !anchor.type condition */\n return !anchor?.type || anchor.type === this.type\n}\n\nexport default abstract class BPMNControlBase extends Connectable(RectPath(Shape)) {\n get anchors(): Array<Anchor> {\n var allNodes = this.nodes\n var { left, top, width, height } = this.bounds\n\n var right = left + width\n var bottom = top + height\n\n const dirs: Array<Array<Anchor>> = [DIRECTION.NORTH, DIRECTION.EAST, DIRECTION.SOUTH, DIRECTION.WEST].map(\n direction => {\n const nodes = allNodes.filter(node => node.direction === direction)\n if (nodes.length === 0) {\n return []\n }\n\n var dx = 0\n var dy = 0\n var sx = 0\n var sy = 0\n\n switch (direction) {\n case DIRECTION.NORTH:\n sx = left\n sy = top\n dx = width / (nodes.length + 1)\n dy = 0\n\n break\n\n case DIRECTION.EAST:\n sx = right\n sy = top\n dx = 0\n dy = height / (nodes.length + 1)\n\n break\n\n case DIRECTION.SOUTH:\n sx = left\n sy = bottom\n dx = width / (nodes.length + 1)\n dy = 0\n\n break\n\n case DIRECTION.WEST:\n sx = left\n sy = top\n dx = 0\n dy = height / (nodes.length + 1)\n\n break\n\n default:\n }\n\n return nodes.map((node, idx) => {\n const x = sx + dx * (idx + 1)\n const y = sy + dy * (idx + 1)\n\n return {\n type: node.type as string,\n name: node.name,\n inout: node.inout,\n position: {\n x,\n y\n },\n bounds: {\n left: x - ANCHOR_LENGTH / 2,\n top: y - ANCHOR_LENGTH / 2,\n width: ANCHOR_LENGTH,\n height: ANCHOR_LENGTH\n },\n filter: linkFilter,\n template: {\n ...TEMPLATE,\n ...(STYLE_MAP[node.type || 'message'] || STYLE_MAP['message'])\n },\n multiplicity: node.multiplicity\n }\n })\n }\n )\n\n return dirs.flat()\n }\n\n get nodes(): NODE[] {\n return [\n {\n name: 'Left',\n description: 'Left side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.WEST,\n multiplicity: 1\n },\n {\n name: 'Top',\n description: 'Top side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.NORTH,\n multiplicity: 1\n },\n {\n name: 'Right',\n description: 'Right side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.EAST,\n multiplicity: 1\n },\n {\n name: 'Down',\n description: 'Down side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.SOUTH,\n multiplicity: 1\n }\n ]\n }\n}\n"]}
1
+ {"version":3,"file":"bpmn-control-base.js","sourceRoot":"","sources":["../../src/base/bpmn-control-base.ts"],"names":[],"mappings":"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","sourcesContent":["import { Anchor, BOUNDS, Component, Connectable, LinkEnd, Properties, RectPath, Shape } from '@hatiolab/things-scene'\n\nexport enum DIRECTION {\n NORTH = 'N',\n EAST = 'E',\n SOUTH = 'S',\n WEST = 'W'\n}\n\nexport enum INOUT {\n IN = 'in',\n OUT = 'out',\n INOUT = 'inout'\n}\n\nexport enum FLOW {\n MESSAGE = 'message',\n SEQUENCE = 'sequence',\n ASSOCIATION = 'association'\n}\n\nexport type NODE = {\n name: string\n description: string\n inout: INOUT\n type: FLOW\n direction: DIRECTION\n multiplicity?: number\n}\n\nconst STYLE_MAP = {\n message: {\n strokeStyle: 'black',\n fillStyle: 'black'\n },\n sequence: {\n strokeStyle: 'red',\n fillStyle: 'red',\n lineDash: 'long-dash-dot'\n },\n association: {\n strokeStyle: 'yellow',\n fillStyle: 'yellow',\n lineDash: 'dash',\n begin: 'none',\n beginSize: 'size1',\n end: 'none',\n endSize: 'size1'\n }\n}\n\ntype FILTER_FUNCTION = (this: Anchor, counterEnd?: LinkEnd) => boolean\n\nconst ANCHOR_LENGTH = 8\n\nconst TEMPLATE = {\n type: 'bpmn-flow',\n lineWidth: 2,\n strokeStyle: 'black',\n begin: 'none',\n beginSize: 'size1',\n end: 'arrow',\n endSize: 'size9',\n round: 10\n}\n\nfunction linkFilter(this: Anchor, counterEnd?: LinkEnd) {\n if (!counterEnd) {\n return this.inout !== 'in'\n }\n\n const { component, anchor } = counterEnd || {}\n /* FIXME remove !anchor.type condition */\n return !anchor?.type || anchor.type === this.type\n}\n\nexport default abstract class BPMNControlBase extends Connectable(RectPath(Shape)) {\n get anchors(): Array<Anchor> {\n var allNodes = this.nodes\n var { left, top, width, height } = this.bounds\n\n var right = left + width\n var bottom = top + height\n\n const dirs: Array<Array<Anchor>> = [DIRECTION.NORTH, DIRECTION.EAST, DIRECTION.SOUTH, DIRECTION.WEST].map(\n direction => {\n const nodes = allNodes.filter(node => node.direction === direction)\n if (nodes.length === 0) {\n return []\n }\n\n var dx = 0\n var dy = 0\n var sx = 0\n var sy = 0\n\n switch (direction) {\n case DIRECTION.NORTH:\n sx = left\n sy = top\n dx = width / (nodes.length + 1)\n dy = 0\n\n break\n\n case DIRECTION.EAST:\n sx = right\n sy = top\n dx = 0\n dy = height / (nodes.length + 1)\n\n break\n\n case DIRECTION.SOUTH:\n sx = left\n sy = bottom\n dx = width / (nodes.length + 1)\n dy = 0\n\n break\n\n case DIRECTION.WEST:\n sx = left\n sy = top\n dx = 0\n dy = height / (nodes.length + 1)\n\n break\n\n default:\n }\n\n return nodes.map((node, idx) => {\n const x = sx + dx * (idx + 1)\n const y = sy + dy * (idx + 1)\n\n return {\n type: node.type as string,\n name: node.name,\n inout: node.inout,\n position: {\n x,\n y\n },\n bounds: {\n left: x - ANCHOR_LENGTH / 2,\n top: y - ANCHOR_LENGTH / 2,\n width: ANCHOR_LENGTH,\n height: ANCHOR_LENGTH\n },\n filter: linkFilter,\n template: {\n ...TEMPLATE,\n ...(STYLE_MAP[node.type || 'message'] || STYLE_MAP['message'])\n },\n multiplicity: node.multiplicity\n }\n })\n }\n )\n\n return dirs.flat()\n }\n\n get nodes(): NODE[] {\n return [\n {\n name: 'Left',\n description: 'Left side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.WEST,\n multiplicity: 1\n },\n {\n name: 'Top',\n description: 'Top side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.NORTH,\n multiplicity: 1\n },\n {\n name: 'Right',\n description: 'Right side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.EAST,\n multiplicity: 1\n },\n {\n name: 'Down',\n description: 'Down side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.SOUTH,\n multiplicity: 1\n }\n ]\n }\n}\n"]}
@@ -1,13 +1,7 @@
1
- import { BOUNDS } from '@hatiolab/things-scene';
1
+ import { BOUNDS, ComponentNature } from '@hatiolab/things-scene';
2
2
  import BPMNControlBase, { NODE } from './base/bpmn-control-base';
3
3
  export default class BPMNComment extends BPMNControlBase {
4
- static get nature(): {
5
- mutable: boolean;
6
- resizable: boolean;
7
- rotatable: boolean;
8
- properties: never[];
9
- help: string;
10
- };
4
+ static get nature(): ComponentNature;
11
5
  get nodes(): NODE[];
12
6
  render(ctx: CanvasRenderingContext2D): void;
13
7
  get textBounds(): BOUNDS;
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-comment.js","sourceRoot":"","sources":["../src/bpmn-comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAE1D,OAAO,eAAe,EAAE,EAAE,SAAS,EAAE,KAAK,EAAQ,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAExF,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,uBAAuB;CAC9B,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,eAAe;IACtD,MAAM,KAAK,MAAM;QACf,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,KAAK;QACP,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,yBAAyB;gBACtC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,IAAI,CAAC,OAAO;gBAClB,SAAS,EAAE,SAAS,CAAC,IAAI;gBACzB,YAAY,EAAE,CAAC;aAChB;SACF,CAAA;IACH,CAAC;IAED,MAAM,CAAC,GAA6B;QAClC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,CAAA;QAE1B,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACxB,GAAG,CAAC,SAAS,EAAE,CAAA;QAEf,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QACtB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACrB,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAEpB,GAAG,CAAC,SAAS,EAAE,CAAA;QACf,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QAE7B,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;QAE1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC;IAED,IAAI,UAAU;QACZ,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,OAAO;YACL,IAAI,EAAE,IAAI,GAAG,EAAE;YACf,GAAG,EAAE,GAAG,GAAG,EAAE;YACb,KAAK,EAAE,KAAK,GAAG,EAAE;YACjB,MAAM,EAAE,MAAM,GAAG,EAAE;SACpB,CAAA;IACH,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA","sourcesContent":["import { BOUNDS, Component } from '@hatiolab/things-scene'\n\nimport BPMNControlBase, { DIRECTION, INOUT, NODE, FLOW } from './base/bpmn-control-base'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: false,\n properties: [],\n help: '/bpmn/comment/comment'\n}\n\nexport default class BPMNComment extends BPMNControlBase {\n static get nature() {\n return NATURE\n }\n\n get nodes(): NODE[] {\n return [\n {\n name: 'Left',\n description: 'Left side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.WEST,\n multiplicity: 1\n }\n ]\n }\n\n render(ctx: CanvasRenderingContext2D) {\n const { left, top, width, height } = this.bounds\n const bracket = height / 3\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n ctx.moveTo(bracket, 0)\n ctx.lineTo(0, 0)\n ctx.lineTo(0, height)\n ctx.lineTo(bracket, height)\n this.drawStroke(ctx)\n\n ctx.beginPath()\n ctx.rect(0, 0, width, height)\n\n ctx.translate(-left, -top)\n\n this.drawFill(ctx)\n }\n\n get textBounds(): BOUNDS {\n var { left, top, width, height } = this.bounds\n\n return {\n left: left + 10,\n top: top + 10,\n width: width - 10,\n height: height - 10\n }\n }\n}\n\nComponent.register('bpmn-comment', BPMNComment)\n"]}
1
+ {"version":3,"file":"bpmn-comment.js","sourceRoot":"","sources":["../src/bpmn-comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,SAAS,EAAmB,MAAM,wBAAwB,CAAA;AAE3E,OAAO,eAAe,EAAE,EAAE,SAAS,EAAE,KAAK,EAAQ,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAExF,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,uBAAuB;CAC9B,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,eAAe;IACtD,MAAM,KAAK,MAAM;QACf,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,KAAK;QACP,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,yBAAyB;gBACtC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,IAAI,CAAC,OAAO;gBAClB,SAAS,EAAE,SAAS,CAAC,IAAI;gBACzB,YAAY,EAAE,CAAC;aAChB;SACF,CAAA;IACH,CAAC;IAED,MAAM,CAAC,GAA6B;QAClC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAChD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,CAAA;QAE1B,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACxB,GAAG,CAAC,SAAS,EAAE,CAAA;QAEf,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QACtB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACrB,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAEpB,GAAG,CAAC,SAAS,EAAE,CAAA;QACf,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QAE7B,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;QAE1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC;IAED,IAAI,UAAU;QACZ,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,OAAO;YACL,IAAI,EAAE,IAAI,GAAG,EAAE;YACf,GAAG,EAAE,GAAG,GAAG,EAAE;YACb,KAAK,EAAE,KAAK,GAAG,EAAE;YACjB,MAAM,EAAE,MAAM,GAAG,EAAE;SACpB,CAAA;IACH,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA","sourcesContent":["import { BOUNDS, Component, ComponentNature } from '@hatiolab/things-scene'\n\nimport BPMNControlBase, { DIRECTION, INOUT, NODE, FLOW } from './base/bpmn-control-base'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: false,\n properties: [],\n help: '/bpmn/comment/comment'\n}\n\nexport default class BPMNComment extends BPMNControlBase {\n static get nature() {\n return NATURE\n }\n\n get nodes(): NODE[] {\n return [\n {\n name: 'Left',\n description: 'Left side message inout',\n inout: INOUT.INOUT,\n type: FLOW.MESSAGE,\n direction: DIRECTION.WEST,\n multiplicity: 1\n }\n ]\n }\n\n render(ctx: CanvasRenderingContext2D) {\n const { left, top, width, height } = this.bounds\n const bracket = height / 3\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n ctx.moveTo(bracket, 0)\n ctx.lineTo(0, 0)\n ctx.lineTo(0, height)\n ctx.lineTo(bracket, height)\n this.drawStroke(ctx)\n\n ctx.beginPath()\n ctx.rect(0, 0, width, height)\n\n ctx.translate(-left, -top)\n\n this.drawFill(ctx)\n }\n\n get textBounds(): BOUNDS {\n var { left, top, width, height } = this.bounds\n\n return {\n left: left + 10,\n top: top + 10,\n width: width - 10,\n height: height - 10\n }\n }\n}\n\nComponent.register('bpmn-comment', BPMNComment)\n"]}
@@ -1,30 +1,9 @@
1
- import { Properties, BOUNDS } from '@hatiolab/things-scene';
1
+ import { Properties, BOUNDS, ComponentNature } from '@hatiolab/things-scene';
2
2
  import BPMNControlBase from './base/bpmn-control-base';
3
3
  export default class BPMNDataObject extends BPMNControlBase {
4
4
  private imageElement?;
5
5
  private collectionImageElement?;
6
- static get nature(): {
7
- mutable: boolean;
8
- resizable: boolean;
9
- rotatable: boolean;
10
- properties: ({
11
- type: string;
12
- name: string;
13
- label: string;
14
- property: {
15
- options: {
16
- display: string;
17
- value: string;
18
- }[];
19
- };
20
- } | {
21
- type: string;
22
- name: string;
23
- label: string;
24
- property?: undefined;
25
- })[];
26
- help: string;
27
- };
6
+ static get nature(): ComponentNature;
28
7
  get textBounds(): BOUNDS;
29
8
  render(ctx: CanvasRenderingContext2D): void;
30
9
  onchange(after: Properties, before: Properties): void;
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-data-object.js","sourceRoot":"","sources":["../src/bpmn-data-object.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Properties, BOUNDS } 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 name: 'inout',\n label: 'inout',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'input',\n value: 'input'\n },\n {\n display: 'output',\n value: 'output'\n }\n ]\n }\n },\n {\n type: 'checkbox',\n name: 'collection',\n label: 'collection'\n }\n ],\n help: '/bpmn/data-object/data-object'\n}\n\nexport default class BPMNDataObject extends BPMNControlBase {\n private imageElement?: HTMLImageElement\n private collectionImageElement?: HTMLImageElement\n\n static get nature() {\n return NATURE\n }\n\n get textBounds(): BOUNDS {\n var { left, top, width, height } = this.bounds\n var { paddingTop, paddingLeft, paddingRight } = this.state\n\n paddingTop ||= 0\n paddingLeft ||= 0\n paddingRight ||= 0\n\n return {\n left: left + paddingLeft,\n top: top + paddingTop + height + 10,\n width: Math.max(width - paddingLeft - paddingRight, 0),\n height: 0\n }\n }\n\n render(ctx: CanvasRenderingContext2D) {\n const { left, top, width, height } = this.bounds\n const { collection = false } = this.state\n\n const corner = (Math.min(width, height) * 2) / 5\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n ctx.moveTo(width - corner, 0)\n ctx.lineTo(width - corner, corner)\n ctx.lineTo(width, corner)\n ctx.lineTo(width - corner, 0)\n this.drawStroke(ctx)\n\n ctx.beginPath()\n ctx.moveTo(0, 0)\n ctx.lineTo(width - corner, 0)\n ctx.lineTo(width - corner, corner)\n ctx.lineTo(width, corner)\n ctx.lineTo(width, height)\n ctx.lineTo(0, height)\n ctx.lineTo(0, 0)\n\n ctx.translate(-left, -top)\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, left, top, corner, corner)\n }\n\n if (collection) {\n this.drawImage(ctx, this.getCollectionImageElement()!, left + (width - 16) / 2, top + height - 16, 16, 16)\n }\n }\n\n onchange(after: Properties, before: Properties) {\n if ('inout' in after || 'collection' in after || 'strokeStyle' in after) {\n delete this.imageElement\n delete this.collectionImageElement\n }\n }\n\n getImageElement(): HTMLImageElement | undefined {\n if (!this.imageElement) {\n const { inout, strokeStyle } = this.state\n\n if (!inout) {\n return\n }\n\n const src: string = IMAGES[inout]\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 getCollectionImageElement(): HTMLImageElement | undefined {\n if (!this.collectionImageElement) {\n const { strokeStyle } = this.state\n\n this.collectionImageElement = new Image()\n this.collectionImageElement.src =\n 'data:image/svg+xml;charset=UTF-8;base64,' + btoa(COLLECTION.replace(/{{strokeColor}}/g, strokeStyle))\n }\n\n return this.collectionImageElement\n }\n}\n\nComponent.register('bpmn-data-object', BPMNDataObject)\n\nconst IMAGES: { [type: string]: string } = {\n input: `\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:none;stroke:{{strokeColor}};stroke-miterlimit:10;}\n </style>\n <path class=\"st0\" d=\"M19,13.8V8l9.5,9.5L19,27v-5.8H6.5v-7.5H19z\"/>\n </svg>\n `,\n output: `\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=\"M19,13.8V8l9.5,9.5L19,27v-5.8H6.5v-7.5H19z\"/>\n </svg>\n `\n}\n\nconst COLLECTION: string = `\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 <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"]}
1
+ {"version":3,"file":"bpmn-data-object.js","sourceRoot":"","sources":["../src/bpmn-data-object.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Properties, BOUNDS, ComponentNature } from '@hatiolab/things-scene'\n\nimport BPMNControlBase from './base/bpmn-control-base'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: false,\n properties: [\n {\n type: 'select',\n name: 'inout',\n label: 'inout',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'input',\n value: 'input'\n },\n {\n display: 'output',\n value: 'output'\n }\n ]\n }\n },\n {\n type: 'checkbox',\n name: 'collection',\n label: 'collection'\n }\n ],\n help: '/bpmn/data-object/data-object'\n}\n\nexport default class BPMNDataObject extends BPMNControlBase {\n private imageElement?: HTMLImageElement\n private collectionImageElement?: HTMLImageElement\n\n static get nature() {\n return NATURE\n }\n\n get textBounds(): BOUNDS {\n var { left, top, width, height } = this.bounds\n var { paddingTop, paddingLeft, paddingRight } = this.state\n\n paddingTop ||= 0\n paddingLeft ||= 0\n paddingRight ||= 0\n\n return {\n left: left + paddingLeft,\n top: top + paddingTop + height + 10,\n width: Math.max(width - paddingLeft - paddingRight, 0),\n height: 0\n }\n }\n\n render(ctx: CanvasRenderingContext2D) {\n const { left, top, width, height } = this.bounds\n const { collection = false } = this.state\n\n const corner = (Math.min(width, height) * 2) / 5\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n ctx.moveTo(width - corner, 0)\n ctx.lineTo(width - corner, corner)\n ctx.lineTo(width, corner)\n ctx.lineTo(width - corner, 0)\n this.drawStroke(ctx)\n\n ctx.beginPath()\n ctx.moveTo(0, 0)\n ctx.lineTo(width - corner, 0)\n ctx.lineTo(width - corner, corner)\n ctx.lineTo(width, corner)\n ctx.lineTo(width, height)\n ctx.lineTo(0, height)\n ctx.lineTo(0, 0)\n\n ctx.translate(-left, -top)\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, left, top, corner, corner)\n }\n\n if (collection) {\n this.drawImage(ctx, this.getCollectionImageElement()!, left + (width - 16) / 2, top + height - 16, 16, 16)\n }\n }\n\n onchange(after: Properties, before: Properties) {\n if ('inout' in after || 'collection' in after || 'strokeStyle' in after) {\n delete this.imageElement\n delete this.collectionImageElement\n }\n }\n\n getImageElement(): HTMLImageElement | undefined {\n if (!this.imageElement) {\n const { inout, strokeStyle } = this.state\n\n if (!inout) {\n return\n }\n\n const src: string = IMAGES[inout]\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 getCollectionImageElement(): HTMLImageElement | undefined {\n if (!this.collectionImageElement) {\n const { strokeStyle } = this.state\n\n this.collectionImageElement = new Image()\n this.collectionImageElement.src =\n 'data:image/svg+xml;charset=UTF-8;base64,' + btoa(COLLECTION.replace(/{{strokeColor}}/g, strokeStyle))\n }\n\n return this.collectionImageElement\n }\n}\n\nComponent.register('bpmn-data-object', BPMNDataObject)\n\nconst IMAGES: { [type: string]: string } = {\n input: `\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:none;stroke:{{strokeColor}};stroke-miterlimit:10;}\n </style>\n <path class=\"st0\" d=\"M19,13.8V8l9.5,9.5L19,27v-5.8H6.5v-7.5H19z\"/>\n </svg>\n `,\n output: `\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=\"M19,13.8V8l9.5,9.5L19,27v-5.8H6.5v-7.5H19z\"/>\n </svg>\n `\n}\n\nconst COLLECTION: string = `\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 <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"]}
@@ -1,13 +1,7 @@
1
- import { BOUNDS } from '@hatiolab/things-scene';
1
+ import { BOUNDS, ComponentNature } from '@hatiolab/things-scene';
2
2
  import BPMNControlBase from './base/bpmn-control-base';
3
3
  export default class BPMNDataStore extends BPMNControlBase {
4
- static get nature(): {
5
- mutable: boolean;
6
- resizable: boolean;
7
- rotatable: boolean;
8
- properties: never[];
9
- help: string;
10
- };
4
+ static get nature(): ComponentNature;
11
5
  get textBounds(): BOUNDS;
12
6
  render(ctx: CanvasRenderingContext2D): void;
13
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-data-store.js","sourceRoot":"","sources":["../src/bpmn-data-store.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, BOUNDS } 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 help: '/bpmn/data-store/data-store'\n}\n\nexport default class BPMNDataStore extends BPMNControlBase {\n static get nature() {\n return NATURE\n }\n\n get textBounds(): BOUNDS {\n var { left, top, width, height } = this.bounds\n var { paddingTop, paddingLeft, paddingRight } = this.state\n\n paddingTop ||= 0\n paddingLeft ||= 0\n paddingRight ||= 0\n\n return {\n left: left + paddingLeft,\n top: top + paddingTop + height + 10,\n width: Math.max(width - paddingLeft - paddingRight, 0),\n height: 0\n }\n }\n\n render(ctx: CanvasRenderingContext2D) {\n const { left, top, width, height } = this.bounds\n const ry = Math.abs(height / 6)\n const startAngle = Math.PI\n const endAngle = 0\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n ctx.ellipse(width / 2, ry, width / 2, ry, 0, startAngle, startAngle - Math.PI * 2, true)\n\n ctx.moveTo(0, ry + ry / 2)\n ctx.ellipse(width / 2, ry + ry / 2, width / 2, ry, 0, startAngle, endAngle, true)\n\n ctx.moveTo(0, ry + ry)\n ctx.ellipse(width / 2, ry + ry, width / 2, ry, 0, startAngle, endAngle, true)\n\n ctx.moveTo(0, ry)\n ctx.lineTo(0, height - ry)\n ctx.ellipse(width / 2, height - ry, width / 2, ry, 0, startAngle, endAngle, true)\n ctx.lineTo(width, ry)\n\n ctx.translate(-left, -top)\n\n this.drawFill(ctx)\n this.drawStroke(ctx)\n }\n}\n\nComponent.register('bpmn-data-store', BPMNDataStore)\n"]}
1
+ {"version":3,"file":"bpmn-data-store.js","sourceRoot":"","sources":["../src/bpmn-data-store.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, BOUNDS, ComponentNature } from '@hatiolab/things-scene'\n\nimport BPMNControlBase from './base/bpmn-control-base'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: false,\n properties: [],\n help: '/bpmn/data-store/data-store'\n}\n\nexport default class BPMNDataStore extends BPMNControlBase {\n static get nature() {\n return NATURE\n }\n\n get textBounds(): BOUNDS {\n var { left, top, width, height } = this.bounds\n var { paddingTop, paddingLeft, paddingRight } = this.state\n\n paddingTop ||= 0\n paddingLeft ||= 0\n paddingRight ||= 0\n\n return {\n left: left + paddingLeft,\n top: top + paddingTop + height + 10,\n width: Math.max(width - paddingLeft - paddingRight, 0),\n height: 0\n }\n }\n\n render(ctx: CanvasRenderingContext2D) {\n const { left, top, width, height } = this.bounds\n const ry = Math.abs(height / 6)\n const startAngle = Math.PI\n const endAngle = 0\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n ctx.ellipse(width / 2, ry, width / 2, ry, 0, startAngle, startAngle - Math.PI * 2, true)\n\n ctx.moveTo(0, ry + ry / 2)\n ctx.ellipse(width / 2, ry + ry / 2, width / 2, ry, 0, startAngle, endAngle, true)\n\n ctx.moveTo(0, ry + ry)\n ctx.ellipse(width / 2, ry + ry, width / 2, ry, 0, startAngle, endAngle, true)\n\n ctx.moveTo(0, ry)\n ctx.lineTo(0, height - ry)\n ctx.ellipse(width / 2, height - ry, width / 2, ry, 0, startAngle, endAngle, true)\n ctx.lineTo(width, ry)\n\n ctx.translate(-left, -top)\n\n this.drawFill(ctx)\n this.drawStroke(ctx)\n }\n}\n\nComponent.register('bpmn-data-store', BPMNDataStore)\n"]}
@@ -1,29 +1,8 @@
1
- import { BOUNDS, Properties } from '@hatiolab/things-scene';
1
+ import { BOUNDS, ComponentNature, Properties } from '@hatiolab/things-scene';
2
2
  import BPMNControlBase from './base/bpmn-control-base';
3
3
  export default class BPMNEvent extends BPMNControlBase {
4
4
  private imageElement?;
5
- static get nature(): {
6
- mutable: boolean;
7
- resizable: boolean;
8
- rotatable: boolean;
9
- properties: ({
10
- type: string;
11
- name: string;
12
- label: string;
13
- property: {
14
- options: {
15
- display: string;
16
- value: string;
17
- }[];
18
- };
19
- } | {
20
- type: string;
21
- label: string;
22
- name: string;
23
- property?: undefined;
24
- })[];
25
- help: string;
26
- };
5
+ static get nature(): ComponentNature;
27
6
  get textBounds(): BOUNDS;
28
7
  render(ctx: CanvasRenderingContext2D): void;
29
8
  onchange(after: Properties, before: Properties): void;
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-event.js","sourceRoot":"","sources":["../src/bpmn-event.ts"],"names":[],"mappings":"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","sourcesContent":["import { BOUNDS, Component, Properties } from '@hatiolab/things-scene'\n\nimport BPMNControlBase from './base/bpmn-control-base'\n\nenum BEHAVIOR {\n catching,\n throwing\n}\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: false,\n properties: [\n {\n type: 'select',\n name: 'eventType',\n label: 'event-type',\n property: {\n options: [\n {\n display: 'start',\n value: 'start'\n },\n {\n display: 'intermediate',\n value: 'intermediate'\n },\n {\n display: 'end',\n value: 'end'\n }\n ]\n }\n },\n {\n type: 'select',\n name: 'marker',\n label: 'marker',\n property: {\n options: [\n {\n display: 'message',\n value: 'message'\n },\n {\n display: 'timer',\n value: 'timer'\n },\n {\n display: 'error',\n value: 'error'\n },\n {\n display: 'escalation',\n value: 'escalation'\n },\n {\n display: 'cancel',\n value: 'cancel'\n },\n {\n display: 'compensation',\n value: 'compensation'\n },\n {\n display: 'conditional',\n value: 'conditional'\n },\n {\n display: 'link',\n value: 'link'\n },\n {\n display: 'signal',\n value: 'signal'\n },\n {\n display: 'terminate',\n value: 'terminate'\n },\n {\n display: 'multiple',\n value: 'multiple'\n },\n {\n display: 'parallel multiple',\n value: 'parallel-multiple'\n }\n ]\n }\n },\n {\n type: 'checkbox',\n label: 'interrupting',\n name: 'interrupting'\n }\n ],\n help: '/bpmn/event/event'\n}\n\nexport default class BPMNEvent extends BPMNControlBase {\n private imageElement?: HTMLImageElement\n\n static get nature() {\n return NATURE\n }\n\n get textBounds(): BOUNDS {\n var { left, top, width, height } = this.bounds\n var { paddingTop, paddingLeft, paddingRight } = this.state\n\n paddingTop ||= 0\n paddingLeft ||= 0\n paddingRight ||= 0\n\n return {\n left: left + paddingLeft,\n top: top + paddingTop + height + 10,\n width: Math.max(width - paddingLeft - paddingRight, 0),\n height: 0\n }\n }\n\n render(ctx: CanvasRenderingContext2D) {\n const { left, top, width, height } = this.bounds\n const { eventType, interrupting } = this.state\n const cx = width / 2\n const cy = height / 2\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n var lineWidth = 2\n\n switch (eventType) {\n case 'intermediate':\n lineWidth = 1\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI)\n ctx.moveTo(width / 2 + width / 2.5, height / 2)\n ctx.ellipse(cx, cy, width / 2.5, height / 2.5, 0, 0, 2 * Math.PI)\n break\n\n case 'end':\n lineWidth = 5\n ctx.ellipse(cx, cy, width / 2 - 1.5, height / 2 - 1.5, 0, 0, 2 * Math.PI)\n break\n\n case 'start':\n default:\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI)\n break\n }\n\n ctx.translate(-left, -top)\n\n this.drawFill(ctx)\n\n this.drawStroke(ctx, {\n lineWidth,\n lineDash: interrupting ? 'round-dot' : 'solid'\n })\n\n ctx.beginPath()\n\n const image = this.getImageElement()\n if (image) {\n this.drawImage(ctx, image, left + width / 6, top + height / 6, (width * 2) / 3, (height * 2) / 3)\n }\n }\n\n onchange(after: Properties, before: Properties) {\n if ('marker' in after || 'strokeStyle' in after) {\n // Since strokeStyle affects the image, the image is redrawn according to the change of strokeStyle.\n delete this.imageElement\n this.invalidate()\n }\n }\n\n getImageElement(): HTMLImageElement | undefined {\n if (!this.imageElement) {\n const { marker, strokeStyle } = this.state\n\n if (!marker) {\n return\n }\n\n const src = IMAGES[marker]\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\nComponent.register('bpmn-event', BPMNEvent)\n\nconst IMAGES: { [type: string]: string } = {\n message: `\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=\"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 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 'message-fill': `\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 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 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\"/>\n </svg>\n `,\n timer: `\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 id=\"XMLID_807_\">\n <path class=\"st0\" d=\"M17.5,9.6c0.3,0,0.6-0.3,0.6-0.6V7.2c0-0.3-0.3-0.6-0.6-0.6c-0.3,0-0.6,0.3-0.6,0.6V9C16.9,9.3,17.2,9.6,17.5,9.6z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M7.4,18.2h1.8c0.3,0,0.6-0.3,0.6-0.6c0-0.3-0.3-0.6-0.6-0.6H7.4c-0.3,0-0.6,0.3-0.6,0.6C6.8,18,7,18.2,7.4,18.2z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M17.5,28.5c0.3,0,0.6-0.3,0.6-0.6v-1.8c0-0.3-0.3-0.6-0.6-0.6c-0.3,0-0.6,0.3-0.6,0.6v1.8C16.9,28.2,17.2,28.5,17.5,28.5z\n \"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M25.9,18.2h1.8c0.3,0,0.6-0.3,0.6-0.6c0-0.3-0.3-0.6-0.6-0.6h-1.8c-0.3,0-0.6,0.3-0.6,0.6C25.3,18,25.5,18.2,25.9,18.2z\"\n />\n </g>\n <g>\n <path class=\"st0\" d=\"M13.2,10.9c0.1,0,0.2,0,0.3-0.1c0.3-0.2,0.4-0.5,0.2-0.8l-0.9-1.5c-0.2-0.3-0.5-0.4-0.8-0.2c-0.3,0.2-0.4,0.5-0.2,0.8\n l0.9,1.5C12.8,10.8,13,10.9,13.2,10.9z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M9,23.5c0.1,0,0.2,0,0.3-0.1l1.5-0.9c0.3-0.2,0.4-0.5,0.2-0.8c-0.2-0.3-0.5-0.4-0.8-0.2l-1.5,0.9\n c-0.3,0.2-0.4,0.5-0.2,0.8C8.6,23.4,8.8,23.5,9,23.5z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M22.6,27.2c0.1,0,0.2,0,0.3-0.1c0.3-0.2,0.4-0.5,0.2-0.8l-0.9-1.5c-0.2-0.3-0.5-0.4-0.8-0.2c-0.3,0.2-0.4,0.5-0.2,0.8\n l0.9,1.5C22.2,27.1,22.4,27.2,22.6,27.2z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M25.1,14.5c0.1,0,0.2,0,0.3-0.1l1.5-0.9c0.3-0.2,0.4-0.5,0.2-0.8c-0.2-0.3-0.5-0.4-0.8-0.2l-1.5,0.9\n c-0.3,0.2-0.4,0.5-0.2,0.8C24.7,14.4,24.9,14.5,25.1,14.5z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M10,13.8c0.2,0,0.4-0.1,0.5-0.3c0.2-0.3,0.1-0.7-0.2-0.8l-1.5-0.9c-0.3-0.2-0.7-0.1-0.8,0.2c-0.2,0.3-0.1,0.7,0.2,0.8\n l1.5,0.9C9.8,13.8,9.9,13.8,10,13.8z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M12.4,27.1c0.2,0,0.4-0.1,0.5-0.3l0.9-1.5c0.2-0.3,0.1-0.7-0.2-0.8c-0.3-0.2-0.7-0.1-0.8,0.2l-0.9,1.5\n c-0.2,0.3-0.1,0.7,0.2,0.8C12.2,27.1,12.3,27.1,12.4,27.1z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M26,23.5c0.2,0,0.4-0.1,0.5-0.3c0.2-0.3,0.1-0.7-0.2-0.8l-1.5-0.9c-0.3-0.2-0.7-0.1-0.8,0.2c-0.2,0.3-0.1,0.7,0.2,0.8\n l1.5,0.9C25.8,23.5,25.9,23.5,26,23.5z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M21.8,10.8c0.2,0,0.4-0.1,0.5-0.3L23.2,9c0.2-0.3,0.1-0.7-0.2-0.8c-0.3-0.2-0.7-0.1-0.8,0.2l-0.9,1.5\n c-0.2,0.3-0.1,0.7,0.2,0.8C21.6,10.8,21.7,10.8,21.8,10.8z\"/>\n </g>\n <g id=\"XMLID_806_\">\n <path class=\"st0\" d=\"M17.5,17.7c0.4,0,0.7-0.3,0.7-0.7v-5.6c0-0.4-0.3-0.7-0.7-0.7c-0.4,0-0.7,0.3-0.7,0.7V17C16.8,17.4,17.1,17.7,17.5,17.7z\"\n />\n </g>\n <g id=\"XMLID_805_\">\n <path class=\"st0\" d=\"M17.5,18.3h3.9c0.4,0,0.7-0.3,0.7-0.7c0-0.4-0.3-0.7-0.7-0.7h-3.9c-0.4,0-0.7,0.3-0.7,0.7C16.8,17.9,17.1,18.3,17.5,18.3z\n \"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M17.5,7.2c5.7,0,10.2,4.6,10.2,10.2s-4.6,10.2-10.2,10.2S7.2,23.2,7.2,17.5S11.8,7.2,17.5,7.2 M17.5,6.5\n c-6.1,0-11,4.9-11,11s4.9,11,11,11s11-4.9,11-11S23.6,6.5,17.5,6.5L17.5,6.5z\"/>\n </g>\n </g>\n </svg>\n `,\n error: `\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 <path class=\"st0\" d=\"M9.7,10.3l11.1,6.1c0.2,0.1,0.5,0.2,0.7,0.2c0.4,0,0.7-0.1,1-0.4l4.9-4.3l-2,12.7l-10.1-6c-0.2-0.1-0.5-0.2-0.8-0.2\n c-0.3,0-0.7,0.1-0.9,0.3l-6,4.7L9.7,10.3 M29.5,8l-8,7.1L8.5,8l-3,19l9-7.1l12,7.1L29.5,8L29.5,8z\"/>\n </g>\n </svg>\n `,\n 'error-fill': `\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 <polygon class=\"st0\" points=\"26.5,27 29.5,8 21.5,15.1 8.5,8 5.5,27 14.5,19.9 \t\"/>\n </g>\n </svg>\n `,\n escalation: `\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:none;stroke:{{strokeColor}};stroke-miterlimit:10;}\n </style>\n <polygon class=\"st0\" points=\"17.5,19.9 7.5,27 17.5,8 27.5,27 \"/>\n </svg>\n `,\n 'escalation-fill': `\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 <polygon class=\"st0\" points=\"17.5,19.9 7.5,27 17.5,8 27.5,27 \"/>\n </svg>\n `,\n cancel: `\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=\"M24.4,8.8l1.8,1.8l-6.9,6.9l6.9,6.9l-1.8,1.8l-6.9-6.9l-6.9,6.9l-1.8-1.8l6.9-6.9l-6.9-6.9l1.8-1.8l6.9,6.9L24.4,8.8\n\t\t M24.4,7.4l-0.7,0.7l-6.2,6.2l-6.2-6.2l-0.7-0.7L9.9,8.1L8.1,9.9l-0.7,0.7l0.7,0.7l6.2,6.2l-6.2,6.2l-0.7,0.7l0.7,0.7l1.8,1.8\n\t\tl0.7,0.7l0.7-0.7l6.2-6.2l6.2,6.2l0.7,0.7l0.7-0.7l1.8-1.8l0.7-0.7l-0.7-0.7l-6.2-6.2l6.2-6.2l0.7-0.7l-0.7-0.7l-1.8-1.8L24.4,7.4\n\t\tL24.4,7.4z\"/>\n </svg>\n `,\n 'cancel-fill': `\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 <rect class=\"st0\" x=\"6.5\" y=\"16.3\" transform=\"matrix(0.7071 -0.7071 0.7071 0.7071 -7.2487 17.5)\" width=\"22\" height=\"2.5\"/>\n </g>\n <g>\n <rect class=\"st0\" x=\"16.2\" y=\"6.5\" transform=\"matrix(0.7071 -0.7071 0.7071 0.7071 -7.2487 17.5)\" width=\"2.5\" height=\"22\"/>\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 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=\"M17,10.4v14.2l-7.1-7.1L17,10.4 M18,8l-9.5,9.5L18,27V8L18,8z M8.5,17.5L8.5,17.5L8.5,17.5L8.5,17.5L8.5,17.5z\"/>\n <path class=\"st0\" d=\"M25.5,10.4v14.2l-7.1-7.1L25.5,10.4 M26.5,8L17,17.5l9.5,9.5V8L26.5,8z M17,17.5L17,17.5L17,17.5L17,17.5L17,17.5z\"/>\n </svg>\n `,\n 'compensation-fill': `\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 <polygon class=\"st0\" points=\"8.5,17.5 18,8 18,27 8.5,17.5 \t\t\"/>\n <polygon class=\"st0\" points=\"17,17.5 26.5,8 26.5,27 17,17.5 \t\t\"/>\n </svg>\n `,\n conditional: `\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 <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=\"M27.5,23.5h-20v-1h20V23.5z M27.5,17.8h-20v-1h20V17.8z M27.5,14.9h-20v-1h20V14.9z M27.5,20.6h-20v-1h20V20.6z\"/>\n </svg>\n `,\n link: `\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:none;stroke:{{strokeColor}};stroke-miterlimit:10;}\n </style>\n <path class=\"st0\" d=\"M19,13.8V8l9.5,9.5L19,27v-5.8H6.5v-7.5H19z\"/>\n </svg>\n `,\n 'link-fill': `\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=\"M19,13.8V8l9.5,9.5L19,27v-5.8H6.5v-7.5H19z\"/>\n </svg>\n `,\n signal: `\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:none;stroke:{{strokeColor}};stroke-miterlimit:10;}\n </style>\n <polygon class=\"st0\" points=\"17.5,26.9 7.5,27 17.5,8 27.5,27 \"/>\n </svg>\n `,\n 'signal-fill': `\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 <polygon class=\"st0\" points=\"17.5,26.9 7.5,27 17.5,8 27.5,27 \"/>\n </svg>\n `,\n terminate: `\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 <circle class=\"st0\" cx=\"17.5\" cy=\"17.5\" r=\"11.5\"/>\n </svg>\n `,\n multiple: `\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{stroke:{{strokeColor}};}\n </style>\n <path class=\"st0\" d=\"M17.5,9.2l8.8,6.4L23,26H12L8.7,15.6L17.5,9.2 M17.5,8l-10,7.3L11.3,27h12.4l3.8-11.8L17.5,8L17.5,8z\"/>\n </svg>\n `,\n 'multiple-fill': `\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 <polygon class=\"st0\" points=\"17.5,8 7.5,15.3 11.3,27 23.7,27 27.5,15.3 \t\"/>\n </svg>\n `,\n 'parallel-multiple': `\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:none;stroke:{{strokeColor}};stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}\n .st1{fill:{{strokeColor}};}\n </style>\n <path class=\"st1\" d=\"M18.4,10v6.6H25l0,1.7h-6.6V25h-1.7l0-6.6H10v-1.7h6.6V10H18.4 M19.4,9h-1h-1.7h-1v1v5.6H10H9v1v1.7v1h1h5.6l0,5.6v1h1h1.7\n\t\th1v-1v-5.6H25h1l0-1l0-1.7l0-1h-1h-5.6V10V9L19.4,9z\"/>\n <circle class=\"st0\" cx=\"17.5\" cy=\"17.5\" r=\"12\"/>\n </svg>\n `\n}\n"]}
1
+ {"version":3,"file":"bpmn-event.js","sourceRoot":"","sources":["../src/bpmn-event.ts"],"names":[],"mappings":"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","sourcesContent":["import { BOUNDS, Component, ComponentNature, Properties } from '@hatiolab/things-scene'\n\nimport BPMNControlBase from './base/bpmn-control-base'\n\nenum BEHAVIOR {\n catching,\n throwing\n}\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: false,\n properties: [\n {\n type: 'select',\n name: 'eventType',\n label: 'event-type',\n property: {\n options: [\n {\n display: 'start',\n value: 'start'\n },\n {\n display: 'intermediate',\n value: 'intermediate'\n },\n {\n display: 'end',\n value: 'end'\n }\n ]\n }\n },\n {\n type: 'select',\n name: 'marker',\n label: 'marker',\n property: {\n options: [\n {\n display: 'message',\n value: 'message'\n },\n {\n display: 'timer',\n value: 'timer'\n },\n {\n display: 'error',\n value: 'error'\n },\n {\n display: 'escalation',\n value: 'escalation'\n },\n {\n display: 'cancel',\n value: 'cancel'\n },\n {\n display: 'compensation',\n value: 'compensation'\n },\n {\n display: 'conditional',\n value: 'conditional'\n },\n {\n display: 'link',\n value: 'link'\n },\n {\n display: 'signal',\n value: 'signal'\n },\n {\n display: 'terminate',\n value: 'terminate'\n },\n {\n display: 'multiple',\n value: 'multiple'\n },\n {\n display: 'parallel multiple',\n value: 'parallel-multiple'\n }\n ]\n }\n },\n {\n type: 'checkbox',\n label: 'interrupting',\n name: 'interrupting'\n }\n ],\n help: '/bpmn/event/event'\n}\n\nexport default class BPMNEvent extends BPMNControlBase {\n private imageElement?: HTMLImageElement\n\n static get nature() {\n return NATURE\n }\n\n get textBounds(): BOUNDS {\n var { left, top, width, height } = this.bounds\n var { paddingTop, paddingLeft, paddingRight } = this.state\n\n paddingTop ||= 0\n paddingLeft ||= 0\n paddingRight ||= 0\n\n return {\n left: left + paddingLeft,\n top: top + paddingTop + height + 10,\n width: Math.max(width - paddingLeft - paddingRight, 0),\n height: 0\n }\n }\n\n render(ctx: CanvasRenderingContext2D) {\n const { left, top, width, height } = this.bounds\n const { eventType, interrupting } = this.state\n const cx = width / 2\n const cy = height / 2\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n var lineWidth = 2\n\n switch (eventType) {\n case 'intermediate':\n lineWidth = 1\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI)\n ctx.moveTo(width / 2 + width / 2.5, height / 2)\n ctx.ellipse(cx, cy, width / 2.5, height / 2.5, 0, 0, 2 * Math.PI)\n break\n\n case 'end':\n lineWidth = 5\n ctx.ellipse(cx, cy, width / 2 - 1.5, height / 2 - 1.5, 0, 0, 2 * Math.PI)\n break\n\n case 'start':\n default:\n ctx.ellipse(cx, cy, width / 2, height / 2, 0, 0, 2 * Math.PI)\n break\n }\n\n ctx.translate(-left, -top)\n\n this.drawFill(ctx)\n\n this.drawStroke(ctx, {\n lineWidth,\n lineDash: interrupting ? 'round-dot' : 'solid'\n })\n\n ctx.beginPath()\n\n const image = this.getImageElement()\n if (image) {\n this.drawImage(ctx, image, left + width / 6, top + height / 6, (width * 2) / 3, (height * 2) / 3)\n }\n }\n\n onchange(after: Properties, before: Properties) {\n if ('marker' in after || 'strokeStyle' in after) {\n // Since strokeStyle affects the image, the image is redrawn according to the change of strokeStyle.\n delete this.imageElement\n this.invalidate()\n }\n }\n\n getImageElement(): HTMLImageElement | undefined {\n if (!this.imageElement) {\n const { marker, strokeStyle } = this.state\n\n if (!marker) {\n return\n }\n\n const src = IMAGES[marker]\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\nComponent.register('bpmn-event', BPMNEvent)\n\nconst IMAGES: { [type: string]: string } = {\n message: `\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=\"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 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 'message-fill': `\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 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 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\"/>\n </svg>\n `,\n timer: `\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 id=\"XMLID_807_\">\n <path class=\"st0\" d=\"M17.5,9.6c0.3,0,0.6-0.3,0.6-0.6V7.2c0-0.3-0.3-0.6-0.6-0.6c-0.3,0-0.6,0.3-0.6,0.6V9C16.9,9.3,17.2,9.6,17.5,9.6z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M7.4,18.2h1.8c0.3,0,0.6-0.3,0.6-0.6c0-0.3-0.3-0.6-0.6-0.6H7.4c-0.3,0-0.6,0.3-0.6,0.6C6.8,18,7,18.2,7.4,18.2z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M17.5,28.5c0.3,0,0.6-0.3,0.6-0.6v-1.8c0-0.3-0.3-0.6-0.6-0.6c-0.3,0-0.6,0.3-0.6,0.6v1.8C16.9,28.2,17.2,28.5,17.5,28.5z\n \"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M25.9,18.2h1.8c0.3,0,0.6-0.3,0.6-0.6c0-0.3-0.3-0.6-0.6-0.6h-1.8c-0.3,0-0.6,0.3-0.6,0.6C25.3,18,25.5,18.2,25.9,18.2z\"\n />\n </g>\n <g>\n <path class=\"st0\" d=\"M13.2,10.9c0.1,0,0.2,0,0.3-0.1c0.3-0.2,0.4-0.5,0.2-0.8l-0.9-1.5c-0.2-0.3-0.5-0.4-0.8-0.2c-0.3,0.2-0.4,0.5-0.2,0.8\n l0.9,1.5C12.8,10.8,13,10.9,13.2,10.9z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M9,23.5c0.1,0,0.2,0,0.3-0.1l1.5-0.9c0.3-0.2,0.4-0.5,0.2-0.8c-0.2-0.3-0.5-0.4-0.8-0.2l-1.5,0.9\n c-0.3,0.2-0.4,0.5-0.2,0.8C8.6,23.4,8.8,23.5,9,23.5z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M22.6,27.2c0.1,0,0.2,0,0.3-0.1c0.3-0.2,0.4-0.5,0.2-0.8l-0.9-1.5c-0.2-0.3-0.5-0.4-0.8-0.2c-0.3,0.2-0.4,0.5-0.2,0.8\n l0.9,1.5C22.2,27.1,22.4,27.2,22.6,27.2z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M25.1,14.5c0.1,0,0.2,0,0.3-0.1l1.5-0.9c0.3-0.2,0.4-0.5,0.2-0.8c-0.2-0.3-0.5-0.4-0.8-0.2l-1.5,0.9\n c-0.3,0.2-0.4,0.5-0.2,0.8C24.7,14.4,24.9,14.5,25.1,14.5z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M10,13.8c0.2,0,0.4-0.1,0.5-0.3c0.2-0.3,0.1-0.7-0.2-0.8l-1.5-0.9c-0.3-0.2-0.7-0.1-0.8,0.2c-0.2,0.3-0.1,0.7,0.2,0.8\n l1.5,0.9C9.8,13.8,9.9,13.8,10,13.8z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M12.4,27.1c0.2,0,0.4-0.1,0.5-0.3l0.9-1.5c0.2-0.3,0.1-0.7-0.2-0.8c-0.3-0.2-0.7-0.1-0.8,0.2l-0.9,1.5\n c-0.2,0.3-0.1,0.7,0.2,0.8C12.2,27.1,12.3,27.1,12.4,27.1z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M26,23.5c0.2,0,0.4-0.1,0.5-0.3c0.2-0.3,0.1-0.7-0.2-0.8l-1.5-0.9c-0.3-0.2-0.7-0.1-0.8,0.2c-0.2,0.3-0.1,0.7,0.2,0.8\n l1.5,0.9C25.8,23.5,25.9,23.5,26,23.5z\"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M21.8,10.8c0.2,0,0.4-0.1,0.5-0.3L23.2,9c0.2-0.3,0.1-0.7-0.2-0.8c-0.3-0.2-0.7-0.1-0.8,0.2l-0.9,1.5\n c-0.2,0.3-0.1,0.7,0.2,0.8C21.6,10.8,21.7,10.8,21.8,10.8z\"/>\n </g>\n <g id=\"XMLID_806_\">\n <path class=\"st0\" d=\"M17.5,17.7c0.4,0,0.7-0.3,0.7-0.7v-5.6c0-0.4-0.3-0.7-0.7-0.7c-0.4,0-0.7,0.3-0.7,0.7V17C16.8,17.4,17.1,17.7,17.5,17.7z\"\n />\n </g>\n <g id=\"XMLID_805_\">\n <path class=\"st0\" d=\"M17.5,18.3h3.9c0.4,0,0.7-0.3,0.7-0.7c0-0.4-0.3-0.7-0.7-0.7h-3.9c-0.4,0-0.7,0.3-0.7,0.7C16.8,17.9,17.1,18.3,17.5,18.3z\n \"/>\n </g>\n <g>\n <path class=\"st0\" d=\"M17.5,7.2c5.7,0,10.2,4.6,10.2,10.2s-4.6,10.2-10.2,10.2S7.2,23.2,7.2,17.5S11.8,7.2,17.5,7.2 M17.5,6.5\n c-6.1,0-11,4.9-11,11s4.9,11,11,11s11-4.9,11-11S23.6,6.5,17.5,6.5L17.5,6.5z\"/>\n </g>\n </g>\n </svg>\n `,\n error: `\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 <path class=\"st0\" d=\"M9.7,10.3l11.1,6.1c0.2,0.1,0.5,0.2,0.7,0.2c0.4,0,0.7-0.1,1-0.4l4.9-4.3l-2,12.7l-10.1-6c-0.2-0.1-0.5-0.2-0.8-0.2\n c-0.3,0-0.7,0.1-0.9,0.3l-6,4.7L9.7,10.3 M29.5,8l-8,7.1L8.5,8l-3,19l9-7.1l12,7.1L29.5,8L29.5,8z\"/>\n </g>\n </svg>\n `,\n 'error-fill': `\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 <polygon class=\"st0\" points=\"26.5,27 29.5,8 21.5,15.1 8.5,8 5.5,27 14.5,19.9 \t\"/>\n </g>\n </svg>\n `,\n escalation: `\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:none;stroke:{{strokeColor}};stroke-miterlimit:10;}\n </style>\n <polygon class=\"st0\" points=\"17.5,19.9 7.5,27 17.5,8 27.5,27 \"/>\n </svg>\n `,\n 'escalation-fill': `\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 <polygon class=\"st0\" points=\"17.5,19.9 7.5,27 17.5,8 27.5,27 \"/>\n </svg>\n `,\n cancel: `\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=\"M24.4,8.8l1.8,1.8l-6.9,6.9l6.9,6.9l-1.8,1.8l-6.9-6.9l-6.9,6.9l-1.8-1.8l6.9-6.9l-6.9-6.9l1.8-1.8l6.9,6.9L24.4,8.8\n\t\t M24.4,7.4l-0.7,0.7l-6.2,6.2l-6.2-6.2l-0.7-0.7L9.9,8.1L8.1,9.9l-0.7,0.7l0.7,0.7l6.2,6.2l-6.2,6.2l-0.7,0.7l0.7,0.7l1.8,1.8\n\t\tl0.7,0.7l0.7-0.7l6.2-6.2l6.2,6.2l0.7,0.7l0.7-0.7l1.8-1.8l0.7-0.7l-0.7-0.7l-6.2-6.2l6.2-6.2l0.7-0.7l-0.7-0.7l-1.8-1.8L24.4,7.4\n\t\tL24.4,7.4z\"/>\n </svg>\n `,\n 'cancel-fill': `\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 <rect class=\"st0\" x=\"6.5\" y=\"16.3\" transform=\"matrix(0.7071 -0.7071 0.7071 0.7071 -7.2487 17.5)\" width=\"22\" height=\"2.5\"/>\n </g>\n <g>\n <rect class=\"st0\" x=\"16.2\" y=\"6.5\" transform=\"matrix(0.7071 -0.7071 0.7071 0.7071 -7.2487 17.5)\" width=\"2.5\" height=\"22\"/>\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 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=\"M17,10.4v14.2l-7.1-7.1L17,10.4 M18,8l-9.5,9.5L18,27V8L18,8z M8.5,17.5L8.5,17.5L8.5,17.5L8.5,17.5L8.5,17.5z\"/>\n <path class=\"st0\" d=\"M25.5,10.4v14.2l-7.1-7.1L25.5,10.4 M26.5,8L17,17.5l9.5,9.5V8L26.5,8z M17,17.5L17,17.5L17,17.5L17,17.5L17,17.5z\"/>\n </svg>\n `,\n 'compensation-fill': `\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 <polygon class=\"st0\" points=\"8.5,17.5 18,8 18,27 8.5,17.5 \t\t\"/>\n <polygon class=\"st0\" points=\"17,17.5 26.5,8 26.5,27 17,17.5 \t\t\"/>\n </svg>\n `,\n conditional: `\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 <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=\"M27.5,23.5h-20v-1h20V23.5z M27.5,17.8h-20v-1h20V17.8z M27.5,14.9h-20v-1h20V14.9z M27.5,20.6h-20v-1h20V20.6z\"/>\n </svg>\n `,\n link: `\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:none;stroke:{{strokeColor}};stroke-miterlimit:10;}\n </style>\n <path class=\"st0\" d=\"M19,13.8V8l9.5,9.5L19,27v-5.8H6.5v-7.5H19z\"/>\n </svg>\n `,\n 'link-fill': `\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=\"M19,13.8V8l9.5,9.5L19,27v-5.8H6.5v-7.5H19z\"/>\n </svg>\n `,\n signal: `\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:none;stroke:{{strokeColor}};stroke-miterlimit:10;}\n </style>\n <polygon class=\"st0\" points=\"17.5,26.9 7.5,27 17.5,8 27.5,27 \"/>\n </svg>\n `,\n 'signal-fill': `\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 <polygon class=\"st0\" points=\"17.5,26.9 7.5,27 17.5,8 27.5,27 \"/>\n </svg>\n `,\n terminate: `\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 <circle class=\"st0\" cx=\"17.5\" cy=\"17.5\" r=\"11.5\"/>\n </svg>\n `,\n multiple: `\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{stroke:{{strokeColor}};}\n </style>\n <path class=\"st0\" d=\"M17.5,9.2l8.8,6.4L23,26H12L8.7,15.6L17.5,9.2 M17.5,8l-10,7.3L11.3,27h12.4l3.8-11.8L17.5,8L17.5,8z\"/>\n </svg>\n `,\n 'multiple-fill': `\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 <polygon class=\"st0\" points=\"17.5,8 7.5,15.3 11.3,27 23.7,27 27.5,15.3 \t\"/>\n </svg>\n `,\n 'parallel-multiple': `\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:none;stroke:{{strokeColor}};stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}\n .st1{fill:{{strokeColor}};}\n </style>\n <path class=\"st1\" d=\"M18.4,10v6.6H25l0,1.7h-6.6V25h-1.7l0-6.6H10v-1.7h6.6V10H18.4 M19.4,9h-1h-1.7h-1v1v5.6H10H9v1v1.7v1h1h5.6l0,5.6v1h1h1.7\n\t\th1v-1v-5.6H25h1l0-1l0-1.7l0-1h-1h-5.6V10V9L19.4,9z\"/>\n <circle class=\"st0\" cx=\"17.5\" cy=\"17.5\" r=\"12\"/>\n </svg>\n `\n}\n"]}
@@ -1,27 +1,7 @@
1
+ import { ComponentNature } from '@hatiolab/things-scene';
1
2
  import BPMNContainerBase from './base/bpmn-container-base';
2
3
  export default class BPMNExpandedSubprocess extends BPMNContainerBase {
3
- get nature(): {
4
- mutable: boolean;
5
- resizable: boolean;
6
- rotatable: boolean;
7
- properties: ({
8
- type: string;
9
- name: string;
10
- label: string;
11
- property?: undefined;
12
- } | {
13
- type: string;
14
- label: string;
15
- name: string;
16
- property: {
17
- options: {
18
- display: string;
19
- value: string;
20
- }[];
21
- };
22
- })[];
23
- help: string;
24
- };
4
+ get nature(): ComponentNature;
25
5
  render(ctx: CanvasRenderingContext2D): void;
26
6
  get textHidden(): boolean;
27
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-expanded-subprocess.js","sourceRoot":"","sources":["../src/bpmn-expanded-subprocess.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component } from '@hatiolab/things-scene'\nimport { over } from 'lodash'\n\nimport BPMNContainerBase, { DIRECTION, INOUT, NODE, FLOW } from './base/bpmn-container-base'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: false,\n properties: [\n {\n type: 'string',\n name: 'name',\n label: 'name'\n },\n {\n type: 'checkbox',\n label: 'call-activity',\n name: 'callActivity'\n },\n {\n type: 'checkbox',\n label: 'transaction',\n name: 'transaction'\n },\n {\n type: 'checkbox',\n label: 'interrupting',\n name: 'interrupting'\n },\n {\n type: 'select',\n label: 'trigger-event',\n name: 'triggerEvent',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'message',\n value: 'message'\n },\n {\n display: 'timer',\n value: 'timer'\n },\n {\n display: 'error',\n value: 'error'\n },\n {\n display: 'escalation',\n value: 'escalation'\n },\n {\n display: 'cancel',\n value: 'cancel'\n },\n {\n display: 'compensation',\n value: 'compensation'\n },\n {\n display: 'conditional',\n value: 'conditional'\n },\n {\n display: 'link',\n value: 'link'\n },\n {\n display: 'signal',\n value: 'signal'\n },\n {\n display: 'terminate',\n value: 'terminate'\n },\n {\n display: 'multiple',\n value: 'multiple'\n },\n {\n display: 'parallel multiple',\n value: 'parallel-multiple'\n }\n ]\n }\n },\n {\n // TODO this property might be an array\n type: 'select',\n label: 'boundary-event',\n name: 'boundaryEvent',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'message',\n value: 'message'\n },\n {\n display: 'timer',\n value: 'timer'\n },\n {\n display: 'error',\n value: 'error'\n },\n {\n display: 'escalation',\n value: 'escalation'\n },\n {\n display: 'cancel',\n value: 'cancel'\n },\n {\n display: 'compensation',\n value: 'compensation'\n },\n {\n display: 'conditional',\n value: 'conditional'\n },\n {\n display: 'link',\n value: 'link'\n },\n {\n display: 'signal',\n value: 'signal'\n },\n {\n display: 'terminate',\n value: 'terminate'\n },\n {\n display: 'multiple',\n value: 'multiple'\n },\n {\n display: 'parallel multiple',\n value: 'parallel-multiple'\n }\n ]\n }\n }\n ],\n help: '/bpmn/expanded-subprocess/expanded-subprocess'\n}\n\nexport default class BPMNExpandedSubprocess extends BPMNContainerBase {\n get nature() {\n return NATURE\n }\n\n render(ctx: CanvasRenderingContext2D) {\n const { left, top, width, height } = this.bounds\n const { callActivity, interrupting, transaction } = this.state\n var radius = 9\n\n ctx.translate(left, top)\n ctx.beginPath()\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 if (transaction) {\n const LINEGAP = 3\n radius -= LINEGAP\n\n ctx.moveTo(radius + LINEGAP, LINEGAP)\n ctx.arcTo(width - LINEGAP, LINEGAP, width - LINEGAP, height - LINEGAP, radius)\n ctx.arcTo(width - LINEGAP, height - LINEGAP, LINEGAP, height, radius)\n ctx.arcTo(LINEGAP, height - LINEGAP, LINEGAP, LINEGAP, radius)\n ctx.arcTo(LINEGAP, LINEGAP, width - LINEGAP, LINEGAP, radius)\n }\n\n ctx.translate(-left, -top)\n\n this.drawFill(ctx)\n\n if (callActivity) {\n this.drawStroke(ctx, { lineWidth: 5 })\n } else {\n this.drawStroke(ctx, {\n lineWidth: transaction ? 1 : 2,\n lineDash: interrupting ? 'dash' : 'solid'\n })\n }\n }\n\n get textHidden() {\n return false\n }\n}\n\nComponent.register('bpmn-expanded-subprocess', BPMNExpandedSubprocess)\n"]}
1
+ {"version":3,"file":"bpmn-expanded-subprocess.js","sourceRoot":"","sources":["../src/bpmn-expanded-subprocess.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentNature } from '@hatiolab/things-scene'\nimport { over } from 'lodash'\n\nimport BPMNContainerBase, { DIRECTION, INOUT, NODE, FLOW } from './base/bpmn-container-base'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: false,\n properties: [\n {\n type: 'string',\n name: 'name',\n label: 'name'\n },\n {\n type: 'checkbox',\n label: 'call-activity',\n name: 'callActivity'\n },\n {\n type: 'checkbox',\n label: 'transaction',\n name: 'transaction'\n },\n {\n type: 'checkbox',\n label: 'interrupting',\n name: 'interrupting'\n },\n {\n type: 'select',\n label: 'trigger-event',\n name: 'triggerEvent',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'message',\n value: 'message'\n },\n {\n display: 'timer',\n value: 'timer'\n },\n {\n display: 'error',\n value: 'error'\n },\n {\n display: 'escalation',\n value: 'escalation'\n },\n {\n display: 'cancel',\n value: 'cancel'\n },\n {\n display: 'compensation',\n value: 'compensation'\n },\n {\n display: 'conditional',\n value: 'conditional'\n },\n {\n display: 'link',\n value: 'link'\n },\n {\n display: 'signal',\n value: 'signal'\n },\n {\n display: 'terminate',\n value: 'terminate'\n },\n {\n display: 'multiple',\n value: 'multiple'\n },\n {\n display: 'parallel multiple',\n value: 'parallel-multiple'\n }\n ]\n }\n },\n {\n // TODO this property might be an array\n type: 'select',\n label: 'boundary-event',\n name: 'boundaryEvent',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'message',\n value: 'message'\n },\n {\n display: 'timer',\n value: 'timer'\n },\n {\n display: 'error',\n value: 'error'\n },\n {\n display: 'escalation',\n value: 'escalation'\n },\n {\n display: 'cancel',\n value: 'cancel'\n },\n {\n display: 'compensation',\n value: 'compensation'\n },\n {\n display: 'conditional',\n value: 'conditional'\n },\n {\n display: 'link',\n value: 'link'\n },\n {\n display: 'signal',\n value: 'signal'\n },\n {\n display: 'terminate',\n value: 'terminate'\n },\n {\n display: 'multiple',\n value: 'multiple'\n },\n {\n display: 'parallel multiple',\n value: 'parallel-multiple'\n }\n ]\n }\n }\n ],\n help: '/bpmn/expanded-subprocess/expanded-subprocess'\n}\n\nexport default class BPMNExpandedSubprocess extends BPMNContainerBase {\n get nature() {\n return NATURE\n }\n\n render(ctx: CanvasRenderingContext2D) {\n const { left, top, width, height } = this.bounds\n const { callActivity, interrupting, transaction } = this.state\n var radius = 9\n\n ctx.translate(left, top)\n ctx.beginPath()\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 if (transaction) {\n const LINEGAP = 3\n radius -= LINEGAP\n\n ctx.moveTo(radius + LINEGAP, LINEGAP)\n ctx.arcTo(width - LINEGAP, LINEGAP, width - LINEGAP, height - LINEGAP, radius)\n ctx.arcTo(width - LINEGAP, height - LINEGAP, LINEGAP, height, radius)\n ctx.arcTo(LINEGAP, height - LINEGAP, LINEGAP, LINEGAP, radius)\n ctx.arcTo(LINEGAP, LINEGAP, width - LINEGAP, LINEGAP, radius)\n }\n\n ctx.translate(-left, -top)\n\n this.drawFill(ctx)\n\n if (callActivity) {\n this.drawStroke(ctx, { lineWidth: 5 })\n } else {\n this.drawStroke(ctx, {\n lineWidth: transaction ? 1 : 2,\n lineDash: interrupting ? 'dash' : 'solid'\n })\n }\n }\n\n get textHidden() {\n return false\n }\n}\n\nComponent.register('bpmn-expanded-subprocess', BPMNExpandedSubprocess)\n"]}
@@ -1,25 +1,5 @@
1
- import { OrthoLine } from '@hatiolab/things-scene';
1
+ import { ComponentNature, OrthoLine } from '@hatiolab/things-scene';
2
2
  export default class BPMNFlow extends OrthoLine {
3
- get nature(): {
4
- mutable: boolean;
5
- resizable: boolean;
6
- rotatable: boolean;
7
- properties: ({
8
- type: string;
9
- label: string;
10
- name: string;
11
- property: {
12
- min: number;
13
- max: number;
14
- step: number;
15
- };
16
- } | {
17
- type: string;
18
- label: string;
19
- name: string;
20
- property?: undefined;
21
- })[];
22
- help: string;
23
- };
3
+ get nature(): ComponentNature;
24
4
  get pathExtendable(): boolean;
25
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-flow.js","sourceRoot":"","sources":["../src/bpmn-flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAE7D,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE;QACV;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,GAAG;gBACR,IAAI,EAAE,CAAC;aACR;SACF;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;SAChB;KACF;IACD,IAAI,EAAE,gBAAgB;CACvB,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,SAAS;IAC7C,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA","sourcesContent":["import { Component, OrthoLine } from '@hatiolab/things-scene'\n\nconst NATURE = {\n mutable: false,\n resizable: false,\n rotatable: false,\n properties: [\n {\n type: 'number',\n label: 'round',\n name: 'round',\n property: {\n min: 0,\n max: 100,\n step: 1\n }\n },\n {\n type: 'checkbox',\n label: 'default',\n name: 'default'\n }\n ],\n help: 'bpmn/flow/flow'\n}\n\nexport default class BPMNFlow extends OrthoLine {\n get nature() {\n return NATURE\n }\n\n get pathExtendable() {\n return false\n }\n}\n\nComponent.register('bpmn-flow', BPMNFlow)\n"]}
1
+ {"version":3,"file":"bpmn-flow.js","sourceRoot":"","sources":["../src/bpmn-flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAE9E,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE;QACV;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,GAAG;gBACR,IAAI,EAAE,CAAC;aACR;SACF;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;SAChB;KACF;IACD,IAAI,EAAE,gBAAgB;CACvB,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,SAAS;IAC7C,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA","sourcesContent":["import { Component, ComponentNature, OrthoLine } from '@hatiolab/things-scene'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: false,\n rotatable: false,\n properties: [\n {\n type: 'number',\n label: 'round',\n name: 'round',\n property: {\n min: 0,\n max: 100,\n step: 1\n }\n },\n {\n type: 'checkbox',\n label: 'default',\n name: 'default'\n }\n ],\n help: 'bpmn/flow/flow'\n}\n\nexport default class BPMNFlow extends OrthoLine {\n get nature() {\n return NATURE\n }\n\n get pathExtendable() {\n return false\n }\n}\n\nComponent.register('bpmn-flow', BPMNFlow)\n"]}
@@ -1,24 +1,8 @@
1
- import { BOUNDS, Properties } from '@hatiolab/things-scene';
1
+ import { BOUNDS, ComponentNature, Properties } from '@hatiolab/things-scene';
2
2
  import BPMNControlBase from './base/bpmn-control-base';
3
3
  export default class BPMNGateway extends BPMNControlBase {
4
4
  private imageElement?;
5
- static get nature(): {
6
- mutable: boolean;
7
- resizable: boolean;
8
- rotatable: boolean;
9
- properties: {
10
- type: string;
11
- label: string;
12
- name: string;
13
- property: {
14
- options: {
15
- display: string;
16
- value: string;
17
- }[];
18
- };
19
- }[];
20
- help: string;
21
- };
5
+ static get nature(): ComponentNature;
22
6
  get textBounds(): BOUNDS;
23
7
  render(ctx: CanvasRenderingContext2D): void;
24
8
  onchange(after: Properties, before: Properties): void;