@cyberismo/data-handler 0.0.7 → 0.0.9

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 (265) hide show
  1. package/dist/command-handler.d.ts +11 -2
  2. package/dist/command-handler.js +61 -18
  3. package/dist/command-handler.js.map +1 -1
  4. package/dist/command-manager.js +8 -8
  5. package/dist/command-manager.js.map +1 -1
  6. package/dist/commands/calculate.d.ts +7 -44
  7. package/dist/commands/calculate.js +8 -389
  8. package/dist/commands/calculate.js.map +1 -1
  9. package/dist/commands/create.d.ts +7 -4
  10. package/dist/commands/create.js +42 -15
  11. package/dist/commands/create.js.map +1 -1
  12. package/dist/commands/edit.d.ts +9 -3
  13. package/dist/commands/edit.js +33 -9
  14. package/dist/commands/edit.js.map +1 -1
  15. package/dist/commands/export.d.ts +13 -11
  16. package/dist/commands/export.js +80 -28
  17. package/dist/commands/export.js.map +1 -1
  18. package/dist/commands/import.d.ts +7 -0
  19. package/dist/commands/import.js +21 -2
  20. package/dist/commands/import.js.map +1 -1
  21. package/dist/commands/move.d.ts +11 -12
  22. package/dist/commands/move.js +12 -13
  23. package/dist/commands/move.js.map +1 -1
  24. package/dist/commands/remove.d.ts +2 -4
  25. package/dist/commands/remove.js +8 -16
  26. package/dist/commands/remove.js.map +1 -1
  27. package/dist/commands/rename.d.ts +1 -3
  28. package/dist/commands/rename.js +3 -6
  29. package/dist/commands/rename.js.map +1 -1
  30. package/dist/commands/show.d.ts +37 -5
  31. package/dist/commands/show.js +85 -7
  32. package/dist/commands/show.js.map +1 -1
  33. package/dist/commands/transition.d.ts +1 -3
  34. package/dist/commands/transition.js +3 -5
  35. package/dist/commands/transition.js.map +1 -1
  36. package/dist/commands/update.d.ts +5 -1
  37. package/dist/commands/update.js +7 -1
  38. package/dist/commands/update.js.map +1 -1
  39. package/dist/commands/validate.d.ts +7 -8
  40. package/dist/commands/validate.js +30 -35
  41. package/dist/commands/validate.js.map +1 -1
  42. package/dist/containers/card-container.d.ts +6 -0
  43. package/dist/containers/card-container.js +61 -0
  44. package/dist/containers/card-container.js.map +1 -1
  45. package/dist/containers/project/calculation-engine.d.ts +90 -0
  46. package/dist/containers/project/calculation-engine.js +402 -0
  47. package/dist/containers/project/calculation-engine.js.map +1 -0
  48. package/dist/containers/project/resource-collector.d.ts +2 -1
  49. package/dist/containers/project/resource-collector.js +41 -33
  50. package/dist/containers/project/resource-collector.js.map +1 -1
  51. package/dist/containers/project.d.ts +18 -6
  52. package/dist/containers/project.js +37 -72
  53. package/dist/containers/project.js.map +1 -1
  54. package/dist/containers/template.d.ts +5 -0
  55. package/dist/containers/template.js +9 -0
  56. package/dist/containers/template.js.map +1 -1
  57. package/dist/exceptions/index.d.ts +20 -0
  58. package/dist/exceptions/index.js +16 -0
  59. package/dist/exceptions/index.js.map +1 -1
  60. package/dist/index.d.ts +5 -2
  61. package/dist/index.js +5 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/interfaces/macros.d.ts +7 -2
  64. package/dist/interfaces/project-interfaces.d.ts +21 -0
  65. package/dist/interfaces/project-interfaces.js +4 -0
  66. package/dist/interfaces/project-interfaces.js.map +1 -1
  67. package/dist/interfaces/resource-interfaces.d.ts +1 -1
  68. package/dist/interfaces/resource-interfaces.js.map +1 -1
  69. package/dist/macros/base-macro.d.ts +2 -0
  70. package/dist/macros/base-macro.js +66 -19
  71. package/dist/macros/base-macro.js.map +1 -1
  72. package/dist/macros/common.d.ts +16 -9
  73. package/dist/macros/common.js +22 -9
  74. package/dist/macros/common.js.map +1 -1
  75. package/dist/macros/createCards/index.d.ts +1 -2
  76. package/dist/macros/createCards/index.js.map +1 -1
  77. package/dist/macros/graph/index.d.ts +1 -3
  78. package/dist/macros/graph/index.js +11 -9
  79. package/dist/macros/graph/index.js.map +1 -1
  80. package/dist/macros/image/index.d.ts +39 -0
  81. package/dist/macros/image/index.js +78 -0
  82. package/dist/macros/image/index.js.map +1 -0
  83. package/dist/macros/image/metadata.d.ts +18 -0
  84. package/dist/macros/image/metadata.js +22 -0
  85. package/dist/macros/image/metadata.js.map +1 -0
  86. package/dist/macros/include/index.d.ts +32 -0
  87. package/dist/macros/include/index.js +97 -0
  88. package/dist/macros/include/index.js.map +1 -0
  89. package/dist/macros/include/metadata.d.ts +15 -0
  90. package/dist/macros/include/metadata.js +19 -0
  91. package/dist/macros/include/metadata.js.map +1 -0
  92. package/dist/macros/index.d.ts +39 -31
  93. package/dist/macros/index.js +167 -73
  94. package/dist/macros/index.js.map +1 -1
  95. package/dist/macros/percentage/index.d.ts +29 -0
  96. package/dist/macros/percentage/index.js +36 -0
  97. package/dist/macros/percentage/index.js.map +1 -0
  98. package/dist/macros/percentage/metadata.d.ts +15 -0
  99. package/dist/macros/percentage/metadata.js +19 -0
  100. package/dist/macros/percentage/metadata.js.map +1 -0
  101. package/dist/macros/report/index.d.ts +2 -5
  102. package/dist/macros/report/index.js +20 -12
  103. package/dist/macros/report/index.js.map +1 -1
  104. package/dist/macros/scoreCard/index.d.ts +15 -15
  105. package/dist/macros/scoreCard/index.js +16 -17
  106. package/dist/macros/scoreCard/index.js.map +1 -1
  107. package/dist/macros/vega/index.d.ts +28 -0
  108. package/dist/macros/vega/index.js +27 -0
  109. package/dist/macros/vega/index.js.map +1 -0
  110. package/dist/macros/vega/metadata.d.ts +15 -0
  111. package/dist/macros/vega/metadata.js +7 -0
  112. package/dist/macros/vega/metadata.js.map +1 -0
  113. package/dist/macros/vegalite/index.d.ts +27 -0
  114. package/dist/macros/vegalite/index.js +27 -0
  115. package/dist/macros/vegalite/index.js.map +1 -0
  116. package/dist/macros/vegalite/metadata.d.ts +15 -0
  117. package/dist/macros/vegalite/metadata.js +7 -0
  118. package/dist/macros/vegalite/metadata.js.map +1 -0
  119. package/dist/macros/xref/index.d.ts +26 -0
  120. package/dist/macros/xref/index.js +53 -0
  121. package/dist/macros/xref/index.js.map +1 -0
  122. package/dist/macros/xref/metadata.d.ts +15 -0
  123. package/dist/macros/xref/metadata.js +19 -0
  124. package/dist/macros/xref/metadata.js.map +1 -0
  125. package/dist/module-manager.d.ts +17 -4
  126. package/dist/module-manager.js +192 -58
  127. package/dist/module-manager.js.map +1 -1
  128. package/dist/permissions/action-guard.d.ts +2 -2
  129. package/dist/permissions/action-guard.js +1 -1
  130. package/dist/permissions/action-guard.js.map +1 -1
  131. package/dist/project-settings.js +2 -8
  132. package/dist/project-settings.js.map +1 -1
  133. package/dist/resources/card-type-resource.d.ts +2 -0
  134. package/dist/resources/card-type-resource.js +63 -0
  135. package/dist/resources/card-type-resource.js.map +1 -1
  136. package/dist/resources/file-resource.d.ts +2 -0
  137. package/dist/resources/file-resource.js +12 -4
  138. package/dist/resources/file-resource.js.map +1 -1
  139. package/dist/resources/folder-resource.d.ts +19 -0
  140. package/dist/resources/folder-resource.js +51 -2
  141. package/dist/resources/folder-resource.js.map +1 -1
  142. package/dist/resources/graph-model-resource.js +1 -1
  143. package/dist/resources/graph-model-resource.js.map +1 -1
  144. package/dist/resources/graph-view-resource.js +1 -1
  145. package/dist/resources/graph-view-resource.js.map +1 -1
  146. package/dist/resources/report-resource.js +1 -1
  147. package/dist/resources/report-resource.js.map +1 -1
  148. package/dist/resources/resource-object.d.ts +8 -0
  149. package/dist/resources/resource-object.js +9 -0
  150. package/dist/resources/resource-object.js.map +1 -1
  151. package/dist/resources/template-resource.js +1 -1
  152. package/dist/resources/template-resource.js.map +1 -1
  153. package/dist/resources/workflow-resource.d.ts +2 -0
  154. package/dist/resources/workflow-resource.js +53 -9
  155. package/dist/resources/workflow-resource.js.map +1 -1
  156. package/dist/svg/index.d.ts +15 -0
  157. package/dist/svg/index.js +16 -0
  158. package/dist/svg/index.js.map +1 -0
  159. package/dist/svg/lib.d.ts +9 -0
  160. package/dist/svg/lib.js +26 -0
  161. package/dist/svg/lib.js.map +1 -0
  162. package/dist/svg/percentage.d.ts +25 -0
  163. package/dist/svg/percentage.js +90 -0
  164. package/dist/svg/percentage.js.map +1 -0
  165. package/dist/svg/scoreCard.d.ts +19 -0
  166. package/dist/svg/scoreCard.js +55 -0
  167. package/dist/svg/scoreCard.js.map +1 -0
  168. package/dist/types/queries.d.ts +8 -7
  169. package/dist/types/queries.js.map +1 -1
  170. package/dist/utils/card-utils.d.ts +6 -0
  171. package/dist/utils/card-utils.js +12 -0
  172. package/dist/utils/card-utils.js.map +1 -1
  173. package/dist/utils/clingo-facts.d.ts +2 -1
  174. package/dist/utils/clingo-facts.js +19 -2
  175. package/dist/utils/clingo-facts.js.map +1 -1
  176. package/dist/utils/clingo-parser.d.ts +1 -0
  177. package/dist/utils/clingo-parser.js +22 -100
  178. package/dist/utils/clingo-parser.js.map +1 -1
  179. package/dist/utils/constants.d.ts +7 -0
  180. package/dist/utils/constants.js +14 -0
  181. package/dist/utils/constants.js.map +1 -1
  182. package/dist/utils/csv.js.map +1 -1
  183. package/dist/utils/report.d.ts +17 -3
  184. package/dist/utils/report.js +38 -2
  185. package/dist/utils/report.js.map +1 -1
  186. package/dist/utils/resource-utils.d.ts +1 -0
  187. package/dist/utils/resource-utils.js +9 -0
  188. package/dist/utils/resource-utils.js.map +1 -1
  189. package/dist/utils/user-preferences.d.ts +1 -11
  190. package/dist/utils/user-preferences.js +30 -13
  191. package/dist/utils/user-preferences.js.map +1 -1
  192. package/dist/utils/validate.d.ts +2 -3
  193. package/dist/utils/validate.js +2 -2
  194. package/dist/utils/validate.js.map +1 -1
  195. package/package.json +8 -6
  196. package/src/command-handler.ts +96 -17
  197. package/src/command-manager.ts +8 -8
  198. package/src/commands/calculate.ts +11 -525
  199. package/src/commands/create.ts +53 -16
  200. package/src/commands/edit.ts +53 -11
  201. package/src/commands/export.ts +108 -34
  202. package/src/commands/import.ts +31 -2
  203. package/src/commands/move.ts +12 -15
  204. package/src/commands/remove.ts +10 -19
  205. package/src/commands/rename.ts +3 -12
  206. package/src/commands/show.ts +121 -8
  207. package/src/commands/transition.ts +3 -7
  208. package/src/commands/update.ts +6 -0
  209. package/src/commands/validate.ts +39 -47
  210. package/src/containers/card-container.ts +74 -0
  211. package/src/containers/project/calculation-engine.ts +535 -0
  212. package/src/containers/project/resource-collector.ts +45 -26
  213. package/src/containers/project.ts +66 -84
  214. package/src/containers/template.ts +16 -0
  215. package/src/exceptions/index.ts +36 -0
  216. package/src/index.ts +13 -2
  217. package/src/interfaces/macros.ts +7 -1
  218. package/src/interfaces/project-interfaces.ts +27 -0
  219. package/src/interfaces/resource-interfaces.ts +1 -0
  220. package/src/macros/base-macro.ts +89 -25
  221. package/src/macros/common.ts +22 -9
  222. package/src/macros/createCards/index.ts +1 -2
  223. package/src/macros/graph/index.ts +17 -12
  224. package/src/macros/image/index.ts +121 -0
  225. package/src/macros/image/metadata.ts +25 -0
  226. package/src/macros/include/index.ts +147 -0
  227. package/src/macros/include/metadata.ts +22 -0
  228. package/src/macros/index.ts +179 -100
  229. package/src/macros/percentage/index.ts +54 -0
  230. package/src/macros/percentage/metadata.ts +22 -0
  231. package/src/macros/report/index.ts +22 -17
  232. package/src/macros/scoreCard/index.ts +23 -23
  233. package/src/macros/vega/index.ts +55 -0
  234. package/src/macros/vega/metadata.ts +21 -0
  235. package/src/macros/vegalite/index.ts +50 -0
  236. package/src/macros/vegalite/metadata.ts +21 -0
  237. package/src/macros/xref/index.ts +73 -0
  238. package/src/macros/xref/metadata.ts +22 -0
  239. package/src/module-manager.ts +241 -69
  240. package/src/permissions/action-guard.ts +3 -3
  241. package/src/project-settings.ts +2 -11
  242. package/src/resources/card-type-resource.ts +100 -0
  243. package/src/resources/file-resource.ts +16 -4
  244. package/src/resources/folder-resource.ts +59 -2
  245. package/src/resources/graph-model-resource.ts +1 -1
  246. package/src/resources/graph-view-resource.ts +1 -1
  247. package/src/resources/report-resource.ts +1 -1
  248. package/src/resources/resource-object.ts +14 -0
  249. package/src/resources/template-resource.ts +1 -1
  250. package/src/resources/workflow-resource.ts +68 -13
  251. package/src/svg/index.ts +15 -0
  252. package/src/svg/lib.ts +31 -0
  253. package/src/svg/percentage.ts +97 -0
  254. package/src/svg/scoreCard.ts +88 -0
  255. package/src/types/queries.ts +8 -7
  256. package/src/types/string-pixel-width.d.ts +23 -0
  257. package/src/utils/card-utils.ts +13 -0
  258. package/src/utils/clingo-facts.ts +65 -3
  259. package/src/utils/clingo-parser.ts +31 -144
  260. package/src/utils/constants.ts +16 -0
  261. package/src/utils/csv.ts +1 -1
  262. package/src/utils/report.ts +45 -4
  263. package/src/utils/resource-utils.ts +9 -0
  264. package/src/utils/user-preferences.ts +32 -14
  265. package/src/utils/validate.ts +3 -3
@@ -51,10 +51,8 @@ export class WorkflowResource extends FileResource {
51
51
  }
52
52
  // Handle change of workflow state.
53
53
  async handleStateChange(op) {
54
- const content = { ...this.content };
55
- const stateName = (op.target.name
56
- ? op.target.name
57
- : op.target);
54
+ const content = structuredClone(this.content);
55
+ const stateName = this.targetName(op);
58
56
  // Check that state can be changed to
59
57
  content.transitions = content.transitions.filter((t) => t.toState !== stateName);
60
58
  content.transitions.forEach((t) => {
@@ -72,10 +70,8 @@ export class WorkflowResource extends FileResource {
72
70
  // Handle removal of workflow state.
73
71
  // State can be removed with or without replacement.
74
72
  async handleStateRemoval(op) {
75
- const content = { ...this.content };
76
- const stateName = (op.target.name
77
- ? op.target.name
78
- : op.target);
73
+ const content = structuredClone(this.content);
74
+ const stateName = this.targetName(op);
79
75
  // If there is no replacement value, remove all transitions "to" and "from" this state.
80
76
  if (!op.replacementValue) {
81
77
  content.transitions = content.transitions.filter((t) => t.toState !== stateName);
@@ -103,6 +99,32 @@ export class WorkflowResource extends FileResource {
103
99
  await this.updateCardStates(stateName, replacementState.name);
104
100
  }
105
101
  }
102
+ // Returns target name irregardless of the type
103
+ targetName(op) {
104
+ const name = op.target.name ? op.target.name : op.target;
105
+ return name;
106
+ }
107
+ // Potentially updates the changed transition with current properties.
108
+ async transitionObject(op) {
109
+ const content = structuredClone(this.content);
110
+ const targetTransitionName = this.targetName(op);
111
+ const currentTransition = content.transitions.filter((item) => item.name === targetTransitionName)[0];
112
+ if (currentTransition) {
113
+ op.to.fromState =
114
+ op.to.fromState.length === 0
115
+ ? currentTransition.fromState
116
+ : op.to.fromState;
117
+ op.to.toState = op.to.toState ?? currentTransition.toState;
118
+ }
119
+ if (op.to.name === undefined ||
120
+ op.to.toState === undefined ||
121
+ op.to.fromState == undefined ||
122
+ op.to.fromState.length === 0) {
123
+ throw new Error(`Cannot change transition '${targetTransitionName}' for workflow '${this.content.name}'.
124
+ Updated transition must have 'name', 'toState' and 'fromState' properties.`);
125
+ }
126
+ return op.to;
127
+ }
106
128
  // Check if operation is a string operation.
107
129
  isStringOperation(op) {
108
130
  return typeof op.target === 'string';
@@ -185,7 +207,7 @@ export class WorkflowResource extends FileResource {
185
207
  const nameChange = key === 'name';
186
208
  const existingName = this.content.name;
187
209
  await super.update(key, op);
188
- const content = { ...this.content };
210
+ const content = structuredClone(this.content);
189
211
  if (key === 'name') {
190
212
  content.name = super.handleScalar(op);
191
213
  }
@@ -198,6 +220,28 @@ export class WorkflowResource extends FileResource {
198
220
  else {
199
221
  throw new Error(`Unknown property '${key}' for Workflow`);
200
222
  }
223
+ // If workflow transition is removed, then above call to 'handleArray' is all that is needed.
224
+ if (key === 'transitions' && op.name === 'change') {
225
+ // If workflow transition is changed, update to full object and change the content.
226
+ let changeOp;
227
+ if (this.isStringOperation(op)) {
228
+ const targetTransition = this.content.transitions.find((transition) => transition.name === op.target);
229
+ changeOp = {
230
+ name: 'change',
231
+ target: targetTransition,
232
+ to: {
233
+ name: op.to,
234
+ toState: targetTransition.toState,
235
+ fromState: targetTransition.fromState,
236
+ },
237
+ };
238
+ }
239
+ else {
240
+ changeOp = op;
241
+ }
242
+ const newTransition = await this.transitionObject(changeOp);
243
+ content.transitions = content.transitions.map((item) => item.name == newTransition.name ? newTransition : item);
244
+ }
201
245
  if (key === 'states' && op.name === 'remove') {
202
246
  // If workflow state is removed, remove all transitions "to" and "from" this state.
203
247
  let removeOp;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-resource.js","sourceRoot":"","sources":["../../src/resources/workflow-resource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;EAYE;AAQF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAS3D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,SAAS,GACV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAChD,YAAY,OAAgB,EAAE,IAAkB;QAC9C,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAElC,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEtE,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,4CAA4C;IACpC,KAAK,CAAC,yBAAyB;QACrC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAsB,EAAE,CAAC;QACvC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CACjC,IAAI,CAAC,OAAO,EACZ,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC5B,CAAC;YACF,IACE,MAAM,CAAC,IAAI;gBACV,MAAM,CAAC,IAAiB,CAAC,QAAQ;oBAChC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,EACzC,CAAC;gBACD,iCAAiC;gBACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QACD,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,8BAA8B;IACtB,KAAK,CAAC,gBAAgB,CAAC,YAAoB;QACjD,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,KAAK,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACvD,KAAK,CAAC,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;SAC1D,CAAC,CAAC;QACH,kCAAkC;QAClC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,mCAAmC;IAC3B,KAAK,CAAC,iBAAiB,CAAC,EAAkC;QAChE,MAAM,OAAO,GAAG,EAAE,GAAI,IAAI,CAAC,OAAoB,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,CACf,EAAE,CAAC,MAAwB,CAAC,IAAI;YAC/B,CAAC,CAAE,EAAE,CAAC,MAAwB,CAAC,IAAI;YACnC,CAAC,CAAC,EAAE,CAAC,MAAM,CACJ,CAAC;QACZ,qCAAqC;QACrC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAC/B,CAAC;QACF,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,yDAAyD;QACzD,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CACb,wBAAwB,SAAS,mBAAmB,IAAI,CAAC,OAAO,CAAC,IAAI;mEACV,CAC5D,CAAC;QACJ,CAAC;QACD,wCAAwC;QACxC,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAE/B,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACtD,CAAC;IAED,oCAAoC;IACpC,oDAAoD;IAC5C,KAAK,CAAC,kBAAkB,CAAC,EAAkC;QACjE,MAAM,OAAO,GAAG,EAAE,GAAI,IAAI,CAAC,OAAoB,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,CACf,EAAE,CAAC,MAAwB,CAAC,IAAI;YAC/B,CAAC,CAAE,EAAE,CAAC,MAAwB,CAAC,IAAI;YACnC,CAAC,CAAC,EAAE,CAAC,MAAM,CACJ,CAAC;QAEZ,uFAAuF;QACvF,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC;YACzB,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAC/B,CAAC;YACF,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,yEAAyE;YACzE,MAAM,gBAAgB,GAAG,EAAE,CAAC,gBAAgB,CAAC;YAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CACrC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,IAAI,CAChD,CAAC;YACF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CACb,mCAAmC,gBAAgB,CAAC,IAAI,gBAAgB,CACzE,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChC,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC5B,CAAC,CAAC,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC;gBACpC,CAAC;YACH,CAAC,CAAC,CAAC;YACH,2EAA2E;YAC3E,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACtC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CACpD,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,wCAAwC;YACxC,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,4CAA4C;IACpC,iBAAiB,CAAC,EAAsB;QAC9C,OAAO,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC;IACvC,CAAC;IAED,2CAA2C;IACnC,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;QAC/D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACrD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC3B,IAAI,IAAI,CAAC,QAAQ,EAAE,aAAa,KAAK,QAAQ,EAAE,CAAC;gBAC9C,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC;gBACvC,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+BAA+B;IACvB,KAAK,CAAC,eAAe,CAAC,OAAe;QAC3C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACxE,MAAM,EAAE,GAAG;YACT,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,OAAO;YACf,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;SACK,CAAC;QAC7B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CACjC,IAAI,CAAC,OAAO,EACZ,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC5B,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,IAAK,MAAM,CAAC,IAAiB,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAClE,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,MAAM,CAAC,UAAqB;QACvC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,cAAc,CAAC,QAAQ,CAClC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CACxC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IAAW,IAAI;QACb,OAAO,KAAK,CAAC,IAAgB,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,MAAM;QACjB,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,MAAM,CAAC,OAAqB;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACvC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,IAAI;QACf,OAAO,KAAK,CAAC,IAAI,EAAuB,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAO,GAAW,EAAE,EAAmB;QACxD,MAAM,UAAU,GAAG,GAAG,KAAK,MAAM,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAEvC,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAE5B,MAAM,OAAO,GAAG,EAAE,GAAI,IAAI,CAAC,OAAoB,EAAE,CAAC;QAElD,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,CAAW,CAAC;QAClD,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,CAChC,EAAE,EACF,GAAG,EACH,OAAO,CAAC,MAAgB,CACN,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YACjC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CACrC,EAAE,EACF,GAAG,EACH,OAAO,CAAC,WAA6C,CAC9B,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,gBAAgB,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,GAAG,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7C,mFAAmF;YACnF,IAAI,QAAwC,CAAC;YAC7C,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,MAAM,gBAAgB,GAAI,IAAI,CAAC,OAAoB,CAAC,MAAM,CAAC,IAAI,CAC7D,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM,CACpC,CAAC;gBACF,QAAQ,GAAG;oBACT,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,gBAAiC;iBAC1C,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,EAAoC,CAAC;YAClD,CAAC;YACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpD,sGAAsG;YACtG,IAAI,QAAwC,CAAC;YAC7C,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,MAAM,gBAAgB,GAAI,IAAI,CAAC,OAAoB,CAAC,MAAM,CAAC,IAAI,CAC7D,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM,CACpC,CAAC;gBACF,QAAQ,GAAG;oBACT,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,gBAAiC;oBACzC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;iBACpB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,EAAoC,CAAC;YAClD,CAAC;YACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAEzC,6EAA6E;QAC7E,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,CAAC,KAAc;QAC/B,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,KAAK,IAAI,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAClE,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1C,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAW,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtE,OAAO,QAAQ,EAAE,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACtD,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;YACrB,KAAK,CAAC,YAAY,EAAE;SACrB,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;YAChC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;YACrE,GAAG,YAAY;SAChB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,QAAQ,CAAC,OAAgB;QAC9B,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"workflow-resource.js","sourceRoot":"","sources":["../../src/resources/workflow-resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ Cyberismo
3
+ Copyright © Cyberismo Ltd and contributors 2025
4
+
5
+ This program is free software: you can redistribute it and/or modify it under
6
+ the terms of the GNU Affero General Public License version 3 as published by
7
+ the Free Software Foundation. This program is distributed in the hope that it
8
+ will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
9
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10
+ See the GNU Affero General Public License for more details.
11
+ You should have received a copy of the GNU Affero General Public
12
+ License along with this program. If not, see <https://www.gnu.org/licenses/>.
13
+ */
14
+ export * from './scoreCard.js';
15
+ export * from './percentage.js';
@@ -0,0 +1,16 @@
1
+ /**
2
+ Cyberismo
3
+ Copyright © Cyberismo Ltd and contributors 2025
4
+
5
+ This program is free software: you can redistribute it and/or modify it under
6
+ the terms of the GNU Affero General Public License version 3 as published by
7
+ the Free Software Foundation. This program is distributed in the hope that it
8
+ will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
9
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10
+ See the GNU Affero General Public License for more details.
11
+ You should have received a copy of the GNU Affero General Public
12
+ License along with this program. If not, see <https://www.gnu.org/licenses/>.
13
+ */
14
+ export * from './scoreCard.js';
15
+ export * from './percentage.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/svg/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;EAYE;AACF,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Measures the width of a text string
3
+ * @param text - The text to measure
4
+ * @param font - The font to use
5
+ * @param size - The size of the font
6
+ * @param bold - Whether the text is bold
7
+ * @returns The width of the text
8
+ */
9
+ export declare function measureTextWidth(text: string, font: string, size: number, bold?: boolean): number;
@@ -0,0 +1,26 @@
1
+ /**
2
+ Cyberismo
3
+ Copyright © Cyberismo Ltd and contributors 2025
4
+
5
+ This program is free software: you can redistribute it and/or modify it under
6
+ the terms of the GNU Affero General Public License version 3 as published by
7
+ the Free Software Foundation. This program is distributed in the hope that it
8
+ will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
9
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10
+ See the GNU Affero General Public License for more details.
11
+ You should have received a copy of the GNU Affero General Public
12
+ License along with this program. If not, see <https://www.gnu.org/licenses/>.
13
+ */
14
+ import pixelWidth from 'string-pixel-width';
15
+ /**
16
+ * Measures the width of a text string
17
+ * @param text - The text to measure
18
+ * @param font - The font to use
19
+ * @param size - The size of the font
20
+ * @param bold - Whether the text is bold
21
+ * @returns The width of the text
22
+ */
23
+ export function measureTextWidth(text, font, size, bold = false) {
24
+ return pixelWidth(text, { font, size, bold });
25
+ }
26
+ //# sourceMappingURL=lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/svg/lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;EAYE;AACF,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAE5C;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,IAAI,GAAG,KAAK;IAEZ,OAAO,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ Cyberismo
3
+ Copyright © Cyberismo Ltd and contributors 2025
4
+ This program is free software: you can redistribute it and/or modify it under
5
+ the terms of the GNU Affero General Public License version 3 as published by
6
+ the Free Software Foundation. This program is distributed in the hope that it
7
+ will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
8
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
+ See the GNU Affero General Public License for more details.
10
+ You should have received a copy of the GNU Affero General Public
11
+ License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
+ */
13
+ interface PercentageOptions {
14
+ title: string;
15
+ value: number;
16
+ legend: string;
17
+ colour?: 'blue' | 'green' | 'yellow' | 'red' | 'orange' | 'purple';
18
+ }
19
+ /**
20
+ * Creates a percentage widget as an SVG
21
+ * @param options - The options for the percentage
22
+ * @returns The widget as an SVG
23
+ */
24
+ export declare function percentage(options: PercentageOptions): string;
25
+ export {};
@@ -0,0 +1,90 @@
1
+ /**
2
+ Cyberismo
3
+ Copyright © Cyberismo Ltd and contributors 2025
4
+ This program is free software: you can redistribute it and/or modify it under
5
+ the terms of the GNU Affero General Public License version 3 as published by
6
+ the Free Software Foundation. This program is distributed in the hope that it
7
+ will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
8
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
+ See the GNU Affero General Public License for more details.
10
+ You should have received a copy of the GNU Affero General Public
11
+ License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
+ */
13
+ const SIZE = 160;
14
+ const STROKE = 18;
15
+ const R = (SIZE - STROKE) / 2;
16
+ const CIRC = 2 * Math.PI * R;
17
+ const TITLE_HEIGHT = 70; // Space for the title above the donut
18
+ const EXTRA_WIDTH = 80; // Extra width for the title area
19
+ const SVG_WIDTH = SIZE + EXTRA_WIDTH;
20
+ // SVG_HEIGHT will be calculated dynamically below
21
+ const TITLE_FONT_SIZE = 22;
22
+ const VALUE_FONT_SIZE = 32;
23
+ const LEGEND_FONT_SIZE = 18;
24
+ const DONUT_COLOR_RED = '#b22217';
25
+ const TITLE_Y = 36;
26
+ const LINE_SPACING = 1.2;
27
+ /**
28
+ * Splits a string into lines of up to maxLen characters, breaking at spaces.
29
+ */
30
+ function wrapText(text, maxLen) {
31
+ const words = text.split(' ');
32
+ const lines = [];
33
+ let current = '';
34
+ for (const word of words) {
35
+ if ((current + (current ? ' ' : '') + word).length > maxLen) {
36
+ if (current)
37
+ lines.push(current);
38
+ current = word;
39
+ }
40
+ else {
41
+ current += (current ? ' ' : '') + word;
42
+ }
43
+ }
44
+ if (current)
45
+ lines.push(current);
46
+ return lines;
47
+ }
48
+ /**
49
+ * Creates a percentage widget as an SVG
50
+ * @param options - The options for the percentage
51
+ * @returns The widget as an SVG
52
+ */
53
+ export function percentage(options) {
54
+ const { title, value, legend, colour = 'blue' } = options;
55
+ const offset = CIRC * (1 - value / 100);
56
+ const DONUT_COLOR = colour === 'red' ? DONUT_COLOR_RED : colour;
57
+ const titleLines = wrapText(title, 24);
58
+ const donutYOffset = TITLE_Y +
59
+ (titleLines.length - 1) * TITLE_FONT_SIZE * LINE_SPACING +
60
+ TITLE_FONT_SIZE +
61
+ 24;
62
+ const donutCenterY = donutYOffset + SIZE / 2 - TITLE_HEIGHT / 2;
63
+ const dynamicSVGHeight = donutYOffset + SIZE / 2 + R + 20;
64
+ return `
65
+ <svg width="${SVG_WIDTH}" height="${dynamicSVGHeight}" viewBox="0 0 ${SVG_WIDTH} ${dynamicSVGHeight}" xmlns="http://www.w3.org/2000/svg">
66
+ <title>${title}</title>
67
+
68
+ <!-- Visible Title (wrapped) -->
69
+ <text x="${SVG_WIDTH / 2}" y="${TITLE_Y}" text-anchor="middle" font-size="${TITLE_FONT_SIZE}" font-weight="bold">
70
+ ${titleLines.map((line, i) => `<tspan x='${SVG_WIDTH / 2}' dy='${i === 0 ? 0 : LINE_SPACING}em'>${line}</tspan>`).join('')}
71
+ </text>
72
+
73
+ <!-- Background track -->
74
+ <circle cx="${SVG_WIDTH / 2}" cy="${donutCenterY}" r="${R}"
75
+ fill="none" stroke="#eee" stroke-width="${STROKE}" />
76
+
77
+ <!-- Progress arc -->
78
+ <circle cx="${SVG_WIDTH / 2}" cy="${donutCenterY}" r="${R}"
79
+ fill="none" stroke="${DONUT_COLOR}" stroke-width="${STROKE}"
80
+ stroke-dasharray="${CIRC}" stroke-dashoffset="${offset}"
81
+ stroke-linecap="butt"
82
+ transform="rotate(-90 ${SVG_WIDTH / 2} ${donutCenterY})" />
83
+
84
+ <!-- Numbers -->
85
+ <text x="${SVG_WIDTH / 2}" y="${donutCenterY - 8}" text-anchor="middle" font-size="${VALUE_FONT_SIZE}" font-weight="bold">${value}%</text>
86
+ <text x="${SVG_WIDTH / 2}" y="${donutCenterY + 20}" text-anchor="middle" font-size="${LEGEND_FONT_SIZE}">${legend}</text>
87
+ </svg>
88
+ `;
89
+ }
90
+ //# sourceMappingURL=percentage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"percentage.js","sourceRoot":"","sources":["../../src/svg/percentage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Options for the score card
3
+ * @param title - The title of the score card
4
+ * @param value - The value of the score card
5
+ * @param unit - The unit of the score card
6
+ * @param legend - The legend of the score card
7
+ */
8
+ export interface ScoreCardOptions {
9
+ value: number;
10
+ title?: string;
11
+ legend?: string;
12
+ unit?: string;
13
+ }
14
+ /**
15
+ * Creates an SVG score card
16
+ * @param options - The options for the score card
17
+ * @returns The SVG score card
18
+ */
19
+ export declare function scoreCard(options: ScoreCardOptions): string;
@@ -0,0 +1,55 @@
1
+ /**
2
+ Cyberismo
3
+ Copyright © Cyberismo Ltd and contributors 2025
4
+
5
+ This program is free software: you can redistribute it and/or modify it under
6
+ the terms of the GNU Affero General Public License version 3 as published by
7
+ the Free Software Foundation. This program is distributed in the hope that it
8
+ will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
9
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10
+ See the GNU Affero General Public License for more details.
11
+ You should have received a copy of the GNU Affero General Public
12
+ License along with this program. If not, see <https://www.gnu.org/licenses/>.
13
+ */
14
+ import { measureTextWidth } from './lib.js';
15
+ // Padding on y-axis
16
+ const PADDING = 24;
17
+ // font used to estimate text width
18
+ const FONT_FAMILY = 'Helvetica';
19
+ const TITLE_SIZE = 16;
20
+ const VALUE_SIZE = 48;
21
+ const UNIT_SIZE = 24;
22
+ const CAPTION_SIZE = 14;
23
+ const UNIT_OFFSET = 3;
24
+ const LINE_GAP_TITLE = 16;
25
+ const LINE_GAP_CAPTION = 16;
26
+ /**
27
+ * Creates an SVG score card
28
+ * @param options - The options for the score card
29
+ * @returns The SVG score card
30
+ */
31
+ export function scoreCard(options) {
32
+ const { title = '', value, unit = '', legend = '' } = options;
33
+ const titleWidth = measureTextWidth(title, FONT_FAMILY, TITLE_SIZE, false);
34
+ const valueWidth = measureTextWidth(String(value), FONT_FAMILY, VALUE_SIZE, true);
35
+ const unitWidth = measureTextWidth(unit, FONT_FAMILY, UNIT_SIZE, false);
36
+ const captionWidth = measureTextWidth(legend, FONT_FAMILY, CAPTION_SIZE, false);
37
+ const valueLineWidth = valueWidth + unitWidth + UNIT_OFFSET;
38
+ const maxTextWidth = Math.max(titleWidth, valueLineWidth, captionWidth);
39
+ const width = Math.ceil(maxTextWidth + PADDING * 2);
40
+ const titleHeight = title.length > 0 ? TITLE_SIZE + LINE_GAP_TITLE : 0;
41
+ const valueHeight = VALUE_SIZE;
42
+ const captionHeight = legend.length > 0 ? CAPTION_SIZE + LINE_GAP_CAPTION : 0;
43
+ const textBlockHeight = titleHeight + valueHeight + captionHeight;
44
+ const height = Math.ceil(textBlockHeight + PADDING * 2);
45
+ const svgContent = `<svg class="card" width="${width}" height="${height}" viewBox="0 0 ${width} ${height}" xmlns="http://www.w3.org/2000/svg">
46
+ <rect rx="8" ry="8" fill="#fff" stroke="#dfe4ea" stroke-width="3" width="${width}" height="${height}"/>
47
+ <g text-anchor="middle">
48
+ <text class="title" x="${width / 2}" y="${TITLE_SIZE / 2 + PADDING}" font-size="${TITLE_SIZE}" font-weight="400" fill="#001829" dominant-baseline="middle">${title}</text>
49
+ <text class="value" x="${width / 2}" y="${titleHeight + VALUE_SIZE / 2 + PADDING}" font-size="${VALUE_SIZE}" font-weight="700" fill="#333" dominant-baseline="middle">${value}<tspan class="unit" font-size="${UNIT_SIZE}" font-weight="400" dx="${UNIT_OFFSET}">${unit}</tspan></text>
50
+ <text class="caption" x="${width / 2}" y="${titleHeight + valueHeight + LINE_GAP_CAPTION + CAPTION_SIZE / 2 + PADDING}" font-size="${CAPTION_SIZE}" font-weight="400" fill="#999" dominant-baseline="middle">${legend}</text>
51
+ </g>
52
+ </svg>`;
53
+ return svgContent;
54
+ }
55
+ //# sourceMappingURL=scoreCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoreCard.js","sourceRoot":"","sources":["../../src/svg/scoreCard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;EAYE;AACF,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,oBAAoB;AACpB,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,mCAAmC;AACnC,MAAM,WAAW,GAAG,WAAW,CAAC;AAChC,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAgB5B;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAE9D,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,gBAAgB,CACjC,MAAM,CAAC,KAAK,CAAC,EACb,WAAW,EACX,UAAU,EACV,IAAI,CACL,CAAC;IACF,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,gBAAgB,CACnC,MAAM,EACN,WAAW,EACX,YAAY,EACZ,KAAK,CACN,CAAC;IAEF,MAAM,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;IAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;IAExE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,UAAU,CAAC;IAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9E,MAAM,eAAe,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,CAAC;IAElE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC;IAExD,MAAM,UAAU,GAAG,4BAA4B,KAAK,aAAa,MAAM,kBAAkB,KAAK,IAAI,MAAM;+EAC3B,KAAK,aAAa,MAAM;;+BAExE,KAAK,GAAG,CAAC,QAAQ,UAAU,GAAG,CAAC,GAAG,OAAO,gBAAgB,UAAU,iEAAiE,KAAK;+BACzI,KAAK,GAAG,CAAC,QAAQ,WAAW,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,gBAAgB,UAAU,8DAA8D,KAAK,kCAAkC,SAAS,2BAA2B,WAAW,KAAK,IAAI;iCAC5O,KAAK,GAAG,CAAC,QAAQ,WAAW,GAAG,WAAW,GAAG,gBAAgB,GAAG,YAAY,GAAG,CAAC,GAAG,OAAO,gBAAgB,YAAY,8DAA8D,MAAM;;SAElN,CAAC;IAER,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -64,11 +64,6 @@ export interface DeniedOperationCollection {
64
64
  }
65
65
  export interface BaseResult extends Record<string, unknown> {
66
66
  key: string;
67
- labels: string[];
68
- links: CalculationLink[];
69
- notifications: Notification[];
70
- policyChecks: PolicyCheckCollection;
71
- deniedOperations: DeniedOperationCollection;
72
67
  }
73
68
  export interface ParseResult<T extends BaseResult> {
74
69
  results: T[];
@@ -94,9 +89,15 @@ interface CardQueryResult extends BaseResult {
94
89
  rank: string;
95
90
  title: string;
96
91
  cardType: string;
92
+ cardTypeDisplayName: string;
97
93
  workflowState: string;
98
94
  lastUpdated: string;
99
- fields?: CardQueryField[];
95
+ fields: CardQueryField[];
96
+ labels: string[];
97
+ links: CalculationLink[];
98
+ notifications: Notification[];
99
+ policyChecks: PolicyCheckCollection;
100
+ deniedOperations: DeniedOperationCollection;
100
101
  }
101
102
  interface FieldsToUpdateQueryResult extends BaseResult {
102
103
  updateFields: UpdateField[];
@@ -128,7 +129,7 @@ interface CardQueryField extends BaseResult {
128
129
  visibility: 'always' | 'optional';
129
130
  index: number;
130
131
  fieldDisplayName: string;
131
- description: string;
132
+ fieldDescription: string;
132
133
  dataType: DataType;
133
134
  isCalculated: boolean;
134
135
  value: string | number | boolean | null | EnumValue | ListValueItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/types/queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAgEF;;GAEG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,CAAU,CAAC"}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/types/queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AA2DF;;GAEG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,CAAU,CAAC"}
@@ -32,3 +32,9 @@ export declare const isTemplateCard: (card: Card) => boolean;
32
32
  * @returns Cards ordered; first by prefixes, then by ID.
33
33
  */
34
34
  export declare const sortCards: (a: string, b: string) => 0 | 1 | -1;
35
+ /**
36
+ * Returns module name from card key
37
+ * @param cardKey card key
38
+ * @returns module name
39
+ */
40
+ export declare const moduleNameFromCardKey: (cardKey: string) => string;
@@ -75,4 +75,16 @@ export const sortCards = (a, b) => {
75
75
  return -1;
76
76
  return 0;
77
77
  };
78
+ /**
79
+ * Returns module name from card key
80
+ * @param cardKey card key
81
+ * @returns module name
82
+ */
83
+ export const moduleNameFromCardKey = (cardKey) => {
84
+ const parts = cardKey.split('_');
85
+ if (parts.length !== 2) {
86
+ throw new Error(`Invalid card key: ${cardKey}`);
87
+ }
88
+ return parts[0];
89
+ };
78
90
  //# sourceMappingURL=card-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"card-utils.js","sourceRoot":"","sources":["../../src/utils/card-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AAEF,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIhC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAiB,EAAE;IAChE,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAE/C,IAAI,WAAW,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,MAAM,eAAe,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IACvC,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACvC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE;IAChD,MAAM,MAAM,GAAW,EAAE,CAAC;IAC1B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAU,EAAE,EAAE;IAC3C,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,YAAY,GAAG,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,UAAU,GAAG,EAAE,CAAC,CAC1C,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;IAChD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,CAAC;AACX,CAAC,CAAC"}
1
+ {"version":3,"file":"card-utils.js","sourceRoot":"","sources":["../../src/utils/card-utils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Card, ModuleContent } from '../interfaces/project-interfaces.js';
1
+ import type { Card, Context, ModuleContent } from '../interfaces/project-interfaces.js';
2
2
  import type { CardType, FieldType, LinkType, ReportMetadata, TemplateMetadata, Workflow } from '../interfaces/resource-interfaces.js';
3
3
  import type { Project } from '../containers/project.js';
4
4
  export declare namespace Facts {
@@ -65,6 +65,7 @@ export declare const createFieldTypeFacts: (fieldType: FieldType) => string;
65
65
  * @returns clingo facts as a string
66
66
  */
67
67
  export declare const createCardTypeFacts: (cardType: CardType) => string;
68
+ export declare const createContextFacts: (context: Context) => string;
68
69
  /**
69
70
  * Creates Clingo facts for a link type.
70
71
  * @param linkType Link type metadata
@@ -84,6 +84,10 @@ function compareIndex(a, b) {
84
84
  */
85
85
  export const createWorkflowFacts = (workflow) => {
86
86
  const builder = new ClingoProgramBuilder().addFact(Facts.Workflow.WORKFLOW, workflow.name);
87
+ if (workflow.displayName)
88
+ builder.addFact(Facts.Common.FIELD, workflow.name, 'displayName', workflow.displayName);
89
+ if (workflow.description)
90
+ builder.addFact(Facts.Common.FIELD, workflow.name, 'description', workflow.description);
87
91
  // add states
88
92
  for (const state of workflow.states) {
89
93
  if (state.category) {
@@ -244,6 +248,10 @@ export const createFieldTypeFacts = (fieldType) => {
244
248
  export const createCardTypeFacts = (cardType) => {
245
249
  const builder = new ClingoProgramBuilder();
246
250
  builder.addFact(Facts.CardType.CARD_TYPE, cardType.name);
251
+ if (cardType.displayName)
252
+ builder.addFact(Facts.Common.FIELD, cardType.name, 'displayName', cardType.displayName);
253
+ if (cardType.description)
254
+ builder.addFact(Facts.Common.FIELD, cardType.name, 'description', cardType.description);
247
255
  builder.addFact(Facts.Common.FIELD, cardType.name, 'workflow', cardType.workflow);
248
256
  const customFields = cardType.customFields.toSorted((a, b) => {
249
257
  const aFirstIndex = cardType.alwaysVisibleFields.indexOf(a.name);
@@ -281,14 +289,23 @@ export const createCardTypeFacts = (cardType) => {
281
289
  }
282
290
  return builder.buildAll();
283
291
  };
292
+ export const createContextFacts = (context) => {
293
+ const builder = new ClingoProgramBuilder();
294
+ builder.addFact(context);
295
+ return builder.buildAll();
296
+ };
284
297
  /**
285
298
  * Creates Clingo facts for a link type.
286
299
  * @param linkType Link type metadata
287
300
  * @returns clingo facts as a string
288
301
  */
289
302
  export const createLinkTypeFacts = (linkType) => {
290
- const builder = new ClingoProgramBuilder()
291
- .addFact(Facts.LinkType.LINK_TYPE, linkType.name)
303
+ const builder = new ClingoProgramBuilder().addFact(Facts.LinkType.LINK_TYPE, linkType.name);
304
+ if (linkType.displayName)
305
+ builder.addFact(Facts.Common.FIELD, linkType.name, 'displayName', linkType.displayName);
306
+ if (linkType.description)
307
+ builder.addFact(Facts.Common.FIELD, linkType.name, 'description', linkType.description);
308
+ builder
292
309
  .addFact(Facts.Common.FIELD, linkType.name, 'outboundDisplayName', linkType.outboundDisplayName)
293
310
  .addFact(Facts.Common.FIELD, linkType.name, 'inboundDisplayName', linkType.inboundDisplayName)
294
311
  .addFact(Facts.Common.FIELD, linkType.name, 'enableLinkDescription', linkType.enableLinkDescription);