@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
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-gateway.js","sourceRoot":"","sources":["../src/bpmn-gateway.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\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: false,\n properties: [\n {\n type: 'select',\n label: 'gateway-type',\n name: 'gatewayType',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'exclusive',\n value: 'exclusive'\n },\n {\n display: 'inclusive',\n value: 'inclusive'\n },\n {\n display: 'complex',\n value: 'complex'\n },\n {\n display: 'event based',\n value: 'event-based'\n },\n {\n display: 'parallel',\n value: 'parallel'\n }\n ]\n }\n }\n ],\n help: '/bpmn/gateway/gateway'\n}\n\nexport default class BPMNGateway 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 var { left, top, width, height } = this.bounds\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n ctx.moveTo(width / 2, 0)\n ctx.lineTo(width, height / 2)\n ctx.lineTo(width / 2, height)\n ctx.lineTo(0, height / 2)\n ctx.lineTo(width / 2, 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 + width / 6, top + height / 6, (width * 2) / 3, (height * 2) / 3)\n }\n }\n\n onchange(after: Properties, before: Properties) {\n if ('gatewayType' in after || 'strokeStyle' in after) {\n delete this.imageElement\n }\n }\n\n getImageElement(): HTMLImageElement | undefined {\n if (!this.imageElement) {\n const { gatewayType, strokeStyle } = this.state\n\n if (!gatewayType) {\n return\n }\n\n const src = IMAGES[gatewayType]\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-gateway', BPMNGateway)\n\nconst IMAGES: { [type: string]: string } = {\n inclusive: `\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.5,8.5c5,0,9,4,9,9s-4,9-9,9s-9-4-9-9S12.5,8.5,17.5,8.5 M17.5,6C11.1,6,6,11.1,6,17.5S11.1,29,17.5,29S29,23.9,29,17.5\n\t\tS23.9,6,17.5,6L17.5,6z\"/>\n </svg>\n `,\n exclusive: `\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 <rect class=\"st0\" x=\"6.5\" y=\"15.8\" transform=\"matrix(0.7071 -0.7071 0.7071 0.7071 -7.2487 17.5)\" width=\"22\" height=\"3.5\"/>\n <rect class=\"st0\" x=\"15.8\" y=\"6.5\" transform=\"matrix(0.7071 -0.7071 0.7071 0.7071 -7.2487 17.5)\" width=\"3.5\" height=\"22\"/>\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 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 <rect class=\"st0\" x=\"16.3\" y=\"6.5\" width=\"3.5\" height=\"22\"/>\n <rect class=\"st0\" x=\"6.5\" y=\"16.2\" width=\"22\" height=\"3.5\"/>\n </svg>\n `,\n complex: `\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 <rect class=\"st0\" x=\"16.2\" y=\"6.5\" width=\"3.5\" height=\"22\"/>\n <rect class=\"st0\" x=\"6.5\" y=\"16.2\" transform=\"matrix(0.7071 -0.7071 0.7071 0.7071 -7.2487 17.5)\" width=\"22\" height=\"3.5\"/>\n <rect class=\"st0\" x=\"16.2\" y=\"6.5\" transform=\"matrix(0.7072 -0.707 0.707 0.7072 -7.2487 17.4966)\" width=\"3.5\" height=\"22\"/>\n <rect class=\"st0\" x=\"6.5\" y=\"16.2\" width=\"22\" height=\"3.5\"/>\n </svg>\n `,\n 'event-based': `\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.5,6.2c6.2,0,11.2,5,11.2,11.2s-5,11.2-11.2,11.2s-11.2-5-11.2-11.2S11.3,6.2,17.5,6.2 M17.5,5.5c-6.6,0-12,5.4-12,12\n s5.4,12,12,12s12-5.4,12-12S24.1,5.5,17.5,5.5L17.5,5.5z\"/>\n <path class=\"st0\" d=\"M17.5,8.2c5.1,0,9.2,4.1,9.2,9.2s-4.1,9.2-9.2,9.2s-9.2-4.1-9.2-9.2S12.4,8.2,17.5,8.2 M17.5,7.5c-5.5,0-10,4.5-10,10\n s4.5,10,10,10s10-4.5,10-10S23,7.5,17.5,7.5L17.5,7.5z\"/>\n <path class=\"st0\" d=\"M17.5,11.7l5.7,4.1L21,22.5h-7l-2.2-6.7L17.5,11.7 M17.5,10l-7.3,5.3l2.8,8.6h9l2.8-8.6L17.5,10L17.5,10z\"/>\n </svg>\n `\n}\n"]}
1
+ {"version":3,"file":"bpmn-gateway.js","sourceRoot":"","sources":["../src/bpmn-gateway.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\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: false,\n properties: [\n {\n type: 'select',\n label: 'gateway-type',\n name: 'gatewayType',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'exclusive',\n value: 'exclusive'\n },\n {\n display: 'inclusive',\n value: 'inclusive'\n },\n {\n display: 'complex',\n value: 'complex'\n },\n {\n display: 'event based',\n value: 'event-based'\n },\n {\n display: 'parallel',\n value: 'parallel'\n }\n ]\n }\n }\n ],\n help: '/bpmn/gateway/gateway'\n}\n\nexport default class BPMNGateway 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 var { left, top, width, height } = this.bounds\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n ctx.moveTo(width / 2, 0)\n ctx.lineTo(width, height / 2)\n ctx.lineTo(width / 2, height)\n ctx.lineTo(0, height / 2)\n ctx.lineTo(width / 2, 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 + width / 6, top + height / 6, (width * 2) / 3, (height * 2) / 3)\n }\n }\n\n onchange(after: Properties, before: Properties) {\n if ('gatewayType' in after || 'strokeStyle' in after) {\n delete this.imageElement\n }\n }\n\n getImageElement(): HTMLImageElement | undefined {\n if (!this.imageElement) {\n const { gatewayType, strokeStyle } = this.state\n\n if (!gatewayType) {\n return\n }\n\n const src = IMAGES[gatewayType]\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-gateway', BPMNGateway)\n\nconst IMAGES: { [type: string]: string } = {\n inclusive: `\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.5,8.5c5,0,9,4,9,9s-4,9-9,9s-9-4-9-9S12.5,8.5,17.5,8.5 M17.5,6C11.1,6,6,11.1,6,17.5S11.1,29,17.5,29S29,23.9,29,17.5\n\t\tS23.9,6,17.5,6L17.5,6z\"/>\n </svg>\n `,\n exclusive: `\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 <rect class=\"st0\" x=\"6.5\" y=\"15.8\" transform=\"matrix(0.7071 -0.7071 0.7071 0.7071 -7.2487 17.5)\" width=\"22\" height=\"3.5\"/>\n <rect class=\"st0\" x=\"15.8\" y=\"6.5\" transform=\"matrix(0.7071 -0.7071 0.7071 0.7071 -7.2487 17.5)\" width=\"3.5\" height=\"22\"/>\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 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 <rect class=\"st0\" x=\"16.3\" y=\"6.5\" width=\"3.5\" height=\"22\"/>\n <rect class=\"st0\" x=\"6.5\" y=\"16.2\" width=\"22\" height=\"3.5\"/>\n </svg>\n `,\n complex: `\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 <rect class=\"st0\" x=\"16.2\" y=\"6.5\" width=\"3.5\" height=\"22\"/>\n <rect class=\"st0\" x=\"6.5\" y=\"16.2\" transform=\"matrix(0.7071 -0.7071 0.7071 0.7071 -7.2487 17.5)\" width=\"22\" height=\"3.5\"/>\n <rect class=\"st0\" x=\"16.2\" y=\"6.5\" transform=\"matrix(0.7072 -0.707 0.707 0.7072 -7.2487 17.4966)\" width=\"3.5\" height=\"22\"/>\n <rect class=\"st0\" x=\"6.5\" y=\"16.2\" width=\"22\" height=\"3.5\"/>\n </svg>\n `,\n 'event-based': `\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.5,6.2c6.2,0,11.2,5,11.2,11.2s-5,11.2-11.2,11.2s-11.2-5-11.2-11.2S11.3,6.2,17.5,6.2 M17.5,5.5c-6.6,0-12,5.4-12,12\n s5.4,12,12,12s12-5.4,12-12S24.1,5.5,17.5,5.5L17.5,5.5z\"/>\n <path class=\"st0\" d=\"M17.5,8.2c5.1,0,9.2,4.1,9.2,9.2s-4.1,9.2-9.2,9.2s-9.2-4.1-9.2-9.2S12.4,8.2,17.5,8.2 M17.5,7.5c-5.5,0-10,4.5-10,10\n s4.5,10,10,10s10-4.5,10-10S23,7.5,17.5,7.5L17.5,7.5z\"/>\n <path class=\"st0\" d=\"M17.5,11.7l5.7,4.1L21,22.5h-7l-2.2-6.7L17.5,11.7 M17.5,10l-7.3,5.3l2.8,8.6h9l2.8-8.6L17.5,10L17.5,10z\"/>\n </svg>\n `\n}\n"]}
@@ -1,11 +1,6 @@
1
+ import { ComponentNature } from '@hatiolab/things-scene';
1
2
  import BPMNContainerBase from './base/bpmn-container-base';
2
3
  export default class BPMNGroup extends BPMNContainerBase {
3
- static get nature(): {
4
- mutable: boolean;
5
- resizable: boolean;
6
- rotatable: boolean;
7
- properties: never[];
8
- help: string;
9
- };
4
+ static get nature(): ComponentNature;
10
5
  render(ctx: CanvasRenderingContext2D): void;
11
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-group.js","sourceRoot":"","sources":["../src/bpmn-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,OAAO,iBAAiB,MAAM,4BAA4B,CAAA;AAE1D,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,mBAAmB;CAC1B,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,iBAAiB;IACtD,MAAM,KAAK,MAAM;QACf,OAAO,MAAM,CAAA;IACf,CAAC;IAED,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;IACtB,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA","sourcesContent":["import { Component } from '@hatiolab/things-scene'\n\nimport BPMNContainerBase from './base/bpmn-container-base'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: false,\n properties: [],\n help: '/bpmn/group/group'\n}\n\nexport default class BPMNGroup extends BPMNContainerBase {\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 ctx.translate(-left, -top)\n\n this.drawFill(ctx)\n this.drawStroke(ctx)\n }\n}\n\nComponent.register('bpmn-group', BPMNGroup)\n"]}
1
+ {"version":3,"file":"bpmn-group.js","sourceRoot":"","sources":["../src/bpmn-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,wBAAwB,CAAA;AAEnE,OAAO,iBAAiB,MAAM,4BAA4B,CAAA;AAE1D,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,mBAAmB;CAC1B,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,iBAAiB;IACtD,MAAM,KAAK,MAAM;QACf,OAAO,MAAM,CAAA;IACf,CAAC;IAED,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;IACtB,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA","sourcesContent":["import { Component, ComponentNature } from '@hatiolab/things-scene'\n\nimport BPMNContainerBase from './base/bpmn-container-base'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: false,\n properties: [],\n help: '/bpmn/group/group'\n}\n\nexport default class BPMNGroup extends BPMNContainerBase {\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 ctx.translate(-left, -top)\n\n this.drawFill(ctx)\n this.drawStroke(ctx)\n }\n}\n\nComponent.register('bpmn-group', BPMNGroup)\n"]}
@@ -1,18 +1,8 @@
1
- import { Properties } from '@hatiolab/things-scene';
1
+ import { ComponentNature, Properties } from '@hatiolab/things-scene';
2
2
  import BPMNContainerBase from './base/bpmn-container-base';
3
3
  export default class BPMNLane extends BPMNContainerBase {
4
4
  private textElement?;
5
- get nature(): {
6
- mutable: boolean;
7
- resizable: boolean;
8
- rotatable: boolean;
9
- properties: {
10
- type: string;
11
- name: string;
12
- label: string;
13
- }[];
14
- help: string;
15
- };
5
+ get nature(): ComponentNature;
16
6
  get hasTextProperty(): boolean;
17
7
  createElement(): void;
18
8
  setTextElementProperties(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-lane.js","sourceRoot":"","sources":["../src/bpmn-lane.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Properties } from '@hatiolab/things-scene'\n\nimport BPMNContainerBase 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 help: '/bpmn/lane/lane'\n}\n\nexport default class BPMNLane extends BPMNContainerBase {\n private textElement?: HTMLSpanElement\n\n get nature() {\n return NATURE\n }\n\n get hasTextProperty() {\n return true\n }\n\n createElement() {\n super.createElement()\n\n const text = document.createElement('div')\n\n this.element.appendChild(text)\n this.textElement = text\n this.setTextElementProperties()\n }\n\n setTextElementProperties() {\n if (!this.textElement) {\n return\n }\n\n var {\n bold,\n italic,\n\n fontFamily = '',\n textAlign,\n textBaseline,\n\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n\n fontSize = 20,\n fontColor,\n lineHeight = 1,\n textWrap = true,\n name\n } = this.state\n\n paddingBottom ||= 0\n paddingTop ||= 0\n paddingLeft ||= 0\n paddingRight ||= 0\n\n var { width, height } = this.bounds\n const vertical = height > width\n\n // element의 기본 style을 설정한다.\n\n if (vertical) {\n Object.assign(this.textElement!.style, {\n transform: 'none',\n position: 'relative',\n width: `${width - paddingLeft - paddingRight}px`,\n boxSizing: 'content-box',\n fontFamily: fontFamily,\n fontSize: fontSize + 'px',\n paddingTop: paddingTop + 'px',\n paddingRight: paddingRight + 'px',\n paddingBottom: paddingBottom + 'px',\n paddingLeft: paddingLeft + 'px',\n color: fontColor,\n fontWeight: bold ? 'bold' : '',\n fontStyle: italic ? 'italic' : '',\n textAlign: textAlign == 'end' ? 'right' : textAlign == 'start' ? 'left' : textAlign,\n verticalAlign: textBaseline,\n lineHeight,\n whiteSpace: textWrap === true ? 'normal' : 'nowrap'\n })\n } else {\n Object.assign(this.textElement!.style, {\n transform: `translate(-50%, -50%) translate(0, ${height / 2}px) rotate(270deg) translate(0, 50%)`,\n position: 'relative',\n width: `${height - paddingTop - paddingBottom}px`,\n boxSizing: 'content-box',\n fontFamily: fontFamily,\n fontSize: fontSize + 'px',\n paddingTop: paddingLeft + 'px',\n paddingRight: paddingTop + 'px',\n paddingBottom: paddingRight + 'px',\n paddingLeft: paddingBottom + 'px',\n color: fontColor,\n fontWeight: bold ? 'bold' : '',\n fontStyle: italic ? 'italic' : '',\n textAlign: textAlign == 'end' ? 'right' : textAlign == 'start' ? 'left' : textAlign,\n verticalAlign: textBaseline,\n lineHeight,\n whiteSpace: textWrap === true ? 'normal' : 'nowrap'\n })\n }\n\n this.textElement!.textContent = name\n }\n\n onchange(after: Properties, before: Properties) {\n this.setTextElementProperties()\n }\n}\n\nComponent.register('bpmn-lane', BPMNLane)\n"]}
1
+ {"version":3,"file":"bpmn-lane.js","sourceRoot":"","sources":["../src/bpmn-lane.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentNature, Properties } from '@hatiolab/things-scene'\n\nimport BPMNContainerBase 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 help: '/bpmn/lane/lane'\n}\n\nexport default class BPMNLane extends BPMNContainerBase {\n private textElement?: HTMLSpanElement\n\n get nature() {\n return NATURE\n }\n\n get hasTextProperty() {\n return true\n }\n\n createElement() {\n super.createElement()\n\n const text = document.createElement('div')\n\n this.element.appendChild(text)\n this.textElement = text\n this.setTextElementProperties()\n }\n\n setTextElementProperties() {\n if (!this.textElement) {\n return\n }\n\n var {\n bold,\n italic,\n\n fontFamily = '',\n textAlign,\n textBaseline,\n\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n\n fontSize = 20,\n fontColor,\n lineHeight = 1,\n textWrap = true,\n name\n } = this.state\n\n paddingBottom ||= 0\n paddingTop ||= 0\n paddingLeft ||= 0\n paddingRight ||= 0\n\n var { width, height } = this.bounds\n const vertical = height > width\n\n // element의 기본 style을 설정한다.\n\n if (vertical) {\n Object.assign(this.textElement!.style, {\n transform: 'none',\n position: 'relative',\n width: `${width - paddingLeft - paddingRight}px`,\n boxSizing: 'content-box',\n fontFamily: fontFamily,\n fontSize: fontSize + 'px',\n paddingTop: paddingTop + 'px',\n paddingRight: paddingRight + 'px',\n paddingBottom: paddingBottom + 'px',\n paddingLeft: paddingLeft + 'px',\n color: fontColor,\n fontWeight: bold ? 'bold' : '',\n fontStyle: italic ? 'italic' : '',\n textAlign: textAlign == 'end' ? 'right' : textAlign == 'start' ? 'left' : textAlign,\n verticalAlign: textBaseline,\n lineHeight,\n whiteSpace: textWrap === true ? 'normal' : 'nowrap'\n })\n } else {\n Object.assign(this.textElement!.style, {\n transform: `translate(-50%, -50%) translate(0, ${height / 2}px) rotate(270deg) translate(0, 50%)`,\n position: 'relative',\n width: `${height - paddingTop - paddingBottom}px`,\n boxSizing: 'content-box',\n fontFamily: fontFamily,\n fontSize: fontSize + 'px',\n paddingTop: paddingLeft + 'px',\n paddingRight: paddingTop + 'px',\n paddingBottom: paddingRight + 'px',\n paddingLeft: paddingBottom + 'px',\n color: fontColor,\n fontWeight: bold ? 'bold' : '',\n fontStyle: italic ? 'italic' : '',\n textAlign: textAlign == 'end' ? 'right' : textAlign == 'start' ? 'left' : textAlign,\n verticalAlign: textBaseline,\n lineHeight,\n whiteSpace: textWrap === true ? 'normal' : 'nowrap'\n })\n }\n\n this.textElement!.textContent = name\n }\n\n onchange(after: Properties, before: Properties) {\n this.setTextElementProperties()\n }\n}\n\nComponent.register('bpmn-lane', BPMNLane)\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 BPMNMessage 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-message.js","sourceRoot":"","sources":["../src/bpmn-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAE1D,OAAO,eAAe,MAAM,0BAA0B,CAAA;AAEtD,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,UAAU;QACZ,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAC9C,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAE1D,UAAU,KAAV,UAAU,GAAK,CAAC,EAAA;QAChB,WAAW,KAAX,WAAW,GAAK,CAAC,EAAA;QACjB,YAAY,KAAZ,YAAY,GAAK,CAAC,EAAA;QAElB,OAAO;YACL,IAAI,EAAE,IAAI,GAAG,WAAW;YACxB,GAAG,EAAE,GAAG,GAAG,UAAU,GAAG,MAAM,GAAG,EAAE;YACnC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,WAAW,GAAG,YAAY,EAAE,CAAC,CAAC;YACtD,MAAM,EAAE,CAAC;SACV,CAAA;IACH,CAAC;IAED,MAAM,CAAC,GAA6B;QAClC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QAEhD,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACxB,GAAG,CAAC,SAAS,EAAE,CAAA;QAEf,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACpB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACzB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACrB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChB,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;QACjC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAEpB,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;IACtB,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA","sourcesContent":["import { BOUNDS, Component } 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/message/message'\n}\n\nexport default class BPMNMessage 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 var { left, top, width, height } = this.bounds\n\n const corner = (Math.min(width, height) * 2) / 5\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n ctx.moveTo(0, 0)\n ctx.lineTo(width, 0)\n ctx.lineTo(width, height)\n ctx.lineTo(0, height)\n ctx.lineTo(0, 0)\n ctx.lineTo(width / 2, height / 2)\n ctx.lineTo(width, 0)\n\n ctx.translate(-left, -top)\n\n this.drawFill(ctx)\n this.drawStroke(ctx)\n }\n}\n\nComponent.register('bpmn-message', BPMNMessage)\n"]}
1
+ {"version":3,"file":"bpmn-message.js","sourceRoot":"","sources":["../src/bpmn-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,SAAS,EAAmB,MAAM,wBAAwB,CAAA;AAE3E,OAAO,eAAe,MAAM,0BAA0B,CAAA;AAEtD,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,UAAU;QACZ,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAC9C,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAE1D,UAAU,KAAV,UAAU,GAAK,CAAC,EAAA;QAChB,WAAW,KAAX,WAAW,GAAK,CAAC,EAAA;QACjB,YAAY,KAAZ,YAAY,GAAK,CAAC,EAAA;QAElB,OAAO;YACL,IAAI,EAAE,IAAI,GAAG,WAAW;YACxB,GAAG,EAAE,GAAG,GAAG,UAAU,GAAG,MAAM,GAAG,EAAE;YACnC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,WAAW,GAAG,YAAY,EAAE,CAAC,CAAC;YACtD,MAAM,EAAE,CAAC;SACV,CAAA;IACH,CAAC;IAED,MAAM,CAAC,GAA6B;QAClC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QAEhD,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACxB,GAAG,CAAC,SAAS,EAAE,CAAA;QAEf,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACpB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACzB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACrB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChB,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;QACjC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAEpB,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;IACtB,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA","sourcesContent":["import { BOUNDS, Component, 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/message/message'\n}\n\nexport default class BPMNMessage 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 var { left, top, width, height } = this.bounds\n\n const corner = (Math.min(width, height) * 2) / 5\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n ctx.moveTo(0, 0)\n ctx.lineTo(width, 0)\n ctx.lineTo(width, height)\n ctx.lineTo(0, height)\n ctx.lineTo(0, 0)\n ctx.lineTo(width / 2, height / 2)\n ctx.lineTo(width, 0)\n\n ctx.translate(-left, -top)\n\n this.drawFill(ctx)\n this.drawStroke(ctx)\n }\n}\n\nComponent.register('bpmn-message', BPMNMessage)\n"]}
@@ -1,14 +1,5 @@
1
+ import { ComponentNature } from '@hatiolab/things-scene';
1
2
  import BPMNContainerBase from './base/bpmn-container-base';
2
3
  export default class BPMNPool 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
- }[];
12
- help: string;
13
- };
4
+ get nature(): ComponentNature;
14
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-pool.js","sourceRoot":"","sources":["../src/bpmn-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,OAAO,iBAAmD,MAAM,4BAA4B,CAAA;AAE5F,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE;QACV;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;SACd;KACF;IACD,IAAI,EAAE,iBAAiB;CACxB,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,iBAAiB;IACrD,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA","sourcesContent":["import { Component } from '@hatiolab/things-scene'\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 help: '/bpmn/pool/pool'\n}\n\nexport default class BPMNPool extends BPMNContainerBase {\n get nature() {\n return NATURE\n }\n}\n\nComponent.register('bpmn-pool', BPMNPool)\n"]}
1
+ {"version":3,"file":"bpmn-pool.js","sourceRoot":"","sources":["../src/bpmn-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,wBAAwB,CAAA;AAEnE,OAAO,iBAAmD,MAAM,4BAA4B,CAAA;AAE5F,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE;QACV;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;SACd;KACF;IACD,IAAI,EAAE,iBAAiB;CACxB,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,iBAAiB;IACrD,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA","sourcesContent":["import { Component, ComponentNature } from '@hatiolab/things-scene'\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 help: '/bpmn/pool/pool'\n}\n\nexport default class BPMNPool extends BPMNContainerBase {\n get nature() {\n return NATURE\n }\n}\n\nComponent.register('bpmn-pool', BPMNPool)\n"]}
@@ -1,29 +1,8 @@
1
- import { Properties } from '@hatiolab/things-scene';
1
+ import { ComponentNature, Properties } from '@hatiolab/things-scene';
2
2
  import BPMNControlBase from './base/bpmn-control-base';
3
3
  export default class BPMNSubprocess extends BPMNControlBase {
4
4
  private markerImages?;
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?: undefined;
14
- } | {
15
- type: string;
16
- label: string;
17
- name: string;
18
- property: {
19
- options: {
20
- display: string;
21
- value: string;
22
- }[];
23
- };
24
- })[];
25
- help: string;
26
- };
5
+ static get nature(): ComponentNature;
27
6
  render(ctx: CanvasRenderingContext2D): void;
28
7
  onchange(after: Properties, before: Properties): void;
29
8
  getMarkerImages(): HTMLImageElement[] | null | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"bpmn-subprocess.js","sourceRoot":"","sources":["../src/bpmn-subprocess.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAc,MAAM,wBAAwB,CAAA;AAE9D,OAAO,eAAe,MAAM,0BAA0B,CAAA;AAEtD,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE;QACV;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,MAAM;SACb;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,eAAe;SACtB;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,cAAc;SACrB;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,OAAO;SACd;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,cAAc;SACrB;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,aAAa;SACpB;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,cAAc;SACrB;QACD;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE;gBACR,OAAO,EAAE;oBACP;wBACE,OAAO,EAAE,EAAE;wBACX,KAAK,EAAE,EAAE;qBACV;oBACD;wBACE,OAAO,EAAE,SAAS;wBAClB,KAAK,EAAE,SAAS;qBACjB;oBACD;wBACE,OAAO,EAAE,OAAO;wBAChB,KAAK,EAAE,OAAO;qBACf;oBACD;wBACE,OAAO,EAAE,OAAO;wBAChB,KAAK,EAAE,OAAO;qBACf;oBACD;wBACE,OAAO,EAAE,YAAY;wBACrB,KAAK,EAAE,YAAY;qBACpB;oBACD;wBACE,OAAO,EAAE,QAAQ;wBACjB,KAAK,EAAE,QAAQ;qBAChB;oBACD;wBACE,OAAO,EAAE,cAAc;wBACvB,KAAK,EAAE,cAAc;qBACtB;oBACD;wBACE,OAAO,EAAE,aAAa;wBACtB,KAAK,EAAE,aAAa;qBACrB;oBACD;wBACE,OAAO,EAAE,MAAM;wBACf,KAAK,EAAE,MAAM;qBACd;oBACD;wBACE,OAAO,EAAE,QAAQ;wBACjB,KAAK,EAAE,QAAQ;qBAChB;oBACD;wBACE,OAAO,EAAE,WAAW;wBACpB,KAAK,EAAE,WAAW;qBACnB;oBACD;wBACE,OAAO,EAAE,UAAU;wBACnB,KAAK,EAAE,UAAU;qBAClB;oBACD;wBACE,OAAO,EAAE,mBAAmB;wBAC5B,KAAK,EAAE,mBAAmB;qBAC3B;iBACF;aACF;SACF;QACD;YACE,uCAAuC;YACvC,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE;gBACR,OAAO,EAAE;oBACP;wBACE,OAAO,EAAE,EAAE;wBACX,KAAK,EAAE,EAAE;qBACV;oBACD;wBACE,OAAO,EAAE,SAAS;wBAClB,KAAK,EAAE,SAAS;qBACjB;oBACD;wBACE,OAAO,EAAE,OAAO;wBAChB,KAAK,EAAE,OAAO;qBACf;oBACD;wBACE,OAAO,EAAE,OAAO;wBAChB,KAAK,EAAE,OAAO;qBACf;oBACD;wBACE,OAAO,EAAE,YAAY;wBACrB,KAAK,EAAE,YAAY;qBACpB;oBACD;wBACE,OAAO,EAAE,QAAQ;wBACjB,KAAK,EAAE,QAAQ;qBAChB;oBACD;wBACE,OAAO,EAAE,cAAc;wBACvB,KAAK,EAAE,cAAc;qBACtB;oBACD;wBACE,OAAO,EAAE,aAAa;wBACtB,KAAK,EAAE,aAAa;qBACrB;oBACD;wBACE,OAAO,EAAE,MAAM;wBACf,KAAK,EAAE,MAAM;qBACd;oBACD;wBACE,OAAO,EAAE,QAAQ;wBACjB,KAAK,EAAE,QAAQ;qBAChB;oBACD;wBACE,OAAO,EAAE,WAAW;wBACpB,KAAK,EAAE,WAAW;qBACnB;oBACD;wBACE,OAAO,EAAE,UAAU;wBACnB,KAAK,EAAE,UAAU;qBAClB;oBACD;wBACE,OAAO,EAAE,mBAAmB;wBAC5B,KAAK,EAAE,mBAAmB;qBAC3B;iBACF;aACF;SACF;KACF;IACD,IAAI,EAAE,6BAA6B;CACpC,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,eAAe;IAGzD,MAAM,KAAK,MAAM;QACf,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,CAAC,GAA6B;QAClC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAC9C,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAE9D,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACxB,GAAG,CAAC,SAAS,EAAE,CAAA;QAEf,IAAI,MAAM,GAAG,EAAE,CAAA;QAEf,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,IAAI,WAAW,EAAE;YACf,MAAM,OAAO,GAAG,CAAC,CAAA;YACjB,MAAM,IAAI,OAAO,CAAA;YAEjB,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,CAAA;YACrC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC,CAAA;YAC9E,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;YACrE,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;YAC9D,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;SAC9D;QAED,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;QAE1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAElB,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAA;SACvC;aAAM;YACL,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;gBACnB,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9B,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;aAC1C,CAAC,CAAA;SACH;QAED,GAAG,CAAC,SAAS,EAAE,CAAA;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAA;QAC3C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;QAErD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,EAAE,EAAE,GAAG,GAAG,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAC3E,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,QAAQ,CAAC,KAAiB,EAAE,MAAkB;QAC5C,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;YACjG,OAAO,IAAI,CAAC,YAAY,CAAA;SACzB;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;YAElC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;iBACrC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACtD,GAAG,CAAC,GAAG,CAAC,EAAE;gBACT,IAAI,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;gBACvB,KAAK,CAAC,GAAG;oBACP,0CAA0C,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC,CAAA;gBAC1G,OAAO,KAAK,CAAA;YACd,CAAC,CAAC,CAAA;SACL;QAED,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAA;AAErD,MAAM,OAAO,GAA+B;IAC1C,IAAI,EAAE;;;;;;;;;CASP;IACC,aAAa,EAAE;;;;;;;;;;;;GAYd;IACD,YAAY,EAAE;;;;;;;;;;;;;;;GAeb;IACD,UAAU,EAAE;;;;;;;;;;;;;;;;;GAiBX;IACD,KAAK,EAAE;;;;;;;;;;GAUN;CACF,CAAA","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 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/subprocess/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 const { callActivity, interrupting, transaction } = this.state\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n var radius = 10\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 ctx.beginPath()\n\n const images = this.getMarkerImages() || []\n const start = left + (width - images.length * 16) / 2\n\n images.forEach((image, index) => {\n this.drawImage(ctx, image, start + index * 16, top + height - 16, 16, 16)\n })\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"]}
1
+ {"version":3,"file":"bpmn-subprocess.js","sourceRoot":"","sources":["../src/bpmn-subprocess.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentNature, Properties } 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: '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 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/subprocess/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 const { callActivity, interrupting, transaction } = this.state\n\n ctx.translate(left, top)\n ctx.beginPath()\n\n var radius = 10\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 ctx.beginPath()\n\n const images = this.getMarkerImages() || []\n const start = left + (width - images.length * 16) / 2\n\n images.forEach((image, index) => {\n this.drawImage(ctx, image, start + index * 16, top + height - 16, 16, 16)\n })\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"]}
@@ -1,30 +1,9 @@
1
- import { Properties } from '@hatiolab/things-scene';
1
+ import { ComponentNature, Properties } from '@hatiolab/things-scene';
2
2
  import BPMNControlBase from './base/bpmn-control-base';
3
3
  export default class BPMNTask extends BPMNControlBase {
4
4
  private imageElement?;
5
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
- };
6
+ static get nature(): ComponentNature;
28
7
  render(ctx: CanvasRenderingContext2D): void;
29
8
  onchange(after: Properties, before: Properties): void;
30
9
  getImageElement(): HTMLImageElement | null | undefined;
@@ -1 +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 type: 'checkbox',\n label: 'call-activity',\n name: 'callActivity'\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/task/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 const { left, top, width, height } = this.bounds\n const { callActivity, interrupting } = this.state\n const 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 ctx.translate(-left, -top)\n\n this.drawFill(ctx)\n if (callActivity) {\n this.drawStroke(ctx, { lineWidth: 5 })\n } else {\n this.drawStroke(ctx, {\n lineDash: interrupting ? 'dash' : 'solid'\n })\n }\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 const images = this.getMarkerImages() || []\n const start = left + (width - images.length * 16) / 2\n\n images.forEach((image, index) => {\n this.drawImage(ctx, image, start + index * 16, top + height - 16, 16, 16)\n })\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"]}
1
+ {"version":3,"file":"bpmn-task.js","sourceRoot":"","sources":["../src/bpmn-task.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentNature, Properties } 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 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 type: 'checkbox',\n label: 'call-activity',\n name: 'callActivity'\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/task/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 const { left, top, width, height } = this.bounds\n const { callActivity, interrupting } = this.state\n const 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 ctx.translate(-left, -top)\n\n this.drawFill(ctx)\n if (callActivity) {\n this.drawStroke(ctx, { lineWidth: 5 })\n } else {\n this.drawStroke(ctx, {\n lineDash: interrupting ? 'dash' : 'solid'\n })\n }\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 const images = this.getMarkerImages() || []\n const start = left + (width - images.length * 16) / 2\n\n images.forEach((image, index) => {\n this.drawImage(ctx, image, start + index * 16, top + height - 16, 16, 16)\n })\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"]}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@operato/scene-bpmn",
3
3
  "description": "bpmn components for things-scene",
4
4
  "author": "heartyoh",
5
- "version": "1.2.90",
5
+ "version": "1.3.7",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
8
8
  "license": "MIT",
@@ -57,5 +57,5 @@
57
57
  "prettier --write"
58
58
  ]
59
59
  },
60
- "gitHead": "93fdb854cd60011a20786ed3dc693088dbb751bc"
60
+ "gitHead": "1a9537c359f06a220491b213794c9747ab6e5a24"
61
61
  }
@@ -1,8 +1,8 @@
1
- import { BOUNDS, Component } from '@hatiolab/things-scene'
1
+ import { BOUNDS, Component, ComponentNature } from '@hatiolab/things-scene'
2
2
 
3
3
  import BPMNControlBase, { DIRECTION, INOUT, NODE, FLOW } from './base/bpmn-control-base'
4
4
 
5
- const NATURE = {
5
+ const NATURE: ComponentNature = {
6
6
  mutable: false,
7
7
  resizable: true,
8
8
  rotatable: false,
@@ -1,8 +1,8 @@
1
- import { Component, Properties, BOUNDS } from '@hatiolab/things-scene'
1
+ import { Component, Properties, BOUNDS, ComponentNature } from '@hatiolab/things-scene'
2
2
 
3
3
  import BPMNControlBase from './base/bpmn-control-base'
4
4
 
5
- const NATURE = {
5
+ const NATURE: ComponentNature = {
6
6
  mutable: false,
7
7
  resizable: true,
8
8
  rotatable: false,
@@ -1,8 +1,8 @@
1
- import { Component, BOUNDS } from '@hatiolab/things-scene'
1
+ import { Component, BOUNDS, ComponentNature } from '@hatiolab/things-scene'
2
2
 
3
3
  import BPMNControlBase from './base/bpmn-control-base'
4
4
 
5
- const NATURE = {
5
+ const NATURE: ComponentNature = {
6
6
  mutable: false,
7
7
  resizable: true,
8
8
  rotatable: false,
package/src/bpmn-event.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { BOUNDS, Component, Properties } from '@hatiolab/things-scene'
1
+ import { BOUNDS, Component, ComponentNature, Properties } from '@hatiolab/things-scene'
2
2
 
3
3
  import BPMNControlBase from './base/bpmn-control-base'
4
4
 
@@ -7,7 +7,7 @@ enum BEHAVIOR {
7
7
  throwing
8
8
  }
9
9
 
10
- const NATURE = {
10
+ const NATURE: ComponentNature = {
11
11
  mutable: false,
12
12
  resizable: true,
13
13
  rotatable: false,
@@ -1,9 +1,9 @@
1
- import { Component } from '@hatiolab/things-scene'
1
+ import { Component, ComponentNature } from '@hatiolab/things-scene'
2
2
  import { over } from 'lodash'
3
3
 
4
4
  import BPMNContainerBase, { DIRECTION, INOUT, NODE, FLOW } from './base/bpmn-container-base'
5
5
 
6
- const NATURE = {
6
+ const NATURE: ComponentNature = {
7
7
  mutable: false,
8
8
  resizable: true,
9
9
  rotatable: false,
package/src/bpmn-flow.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { Component, OrthoLine } from '@hatiolab/things-scene'
1
+ import { Component, ComponentNature, OrthoLine } from '@hatiolab/things-scene'
2
2
 
3
- const NATURE = {
3
+ const NATURE: ComponentNature = {
4
4
  mutable: false,
5
5
  resizable: false,
6
6
  rotatable: false,
@@ -1,8 +1,8 @@
1
- import { BOUNDS, Component, Properties } from '@hatiolab/things-scene'
1
+ import { BOUNDS, Component, ComponentNature, Properties } from '@hatiolab/things-scene'
2
2
 
3
3
  import BPMNControlBase from './base/bpmn-control-base'
4
4
 
5
- const NATURE = {
5
+ const NATURE: ComponentNature = {
6
6
  mutable: false,
7
7
  resizable: true,
8
8
  rotatable: false,
package/src/bpmn-group.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { Component } from '@hatiolab/things-scene'
1
+ import { Component, ComponentNature } from '@hatiolab/things-scene'
2
2
 
3
3
  import BPMNContainerBase from './base/bpmn-container-base'
4
4
 
5
- const NATURE = {
5
+ const NATURE: ComponentNature = {
6
6
  mutable: false,
7
7
  resizable: true,
8
8
  rotatable: false,
package/src/bpmn-lane.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { Component, Properties } from '@hatiolab/things-scene'
1
+ import { Component, ComponentNature, Properties } from '@hatiolab/things-scene'
2
2
 
3
3
  import BPMNContainerBase from './base/bpmn-container-base'
4
4
 
5
- const NATURE = {
5
+ const NATURE: ComponentNature = {
6
6
  mutable: false,
7
7
  resizable: true,
8
8
  rotatable: false,