@servicenow/sdk-build-plugins 4.2.0 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. package/dist/acl-plugin.js +11 -0
  2. package/dist/acl-plugin.js.map +1 -1
  3. package/dist/applicability-plugin.d.ts +2 -0
  4. package/dist/applicability-plugin.js +72 -0
  5. package/dist/applicability-plugin.js.map +1 -0
  6. package/dist/atf/test-plugin.js +5 -2
  7. package/dist/atf/test-plugin.js.map +1 -1
  8. package/dist/basic-syntax-plugin.js +7 -1
  9. package/dist/basic-syntax-plugin.js.map +1 -1
  10. package/dist/business-rule-plugin.js +1 -0
  11. package/dist/business-rule-plugin.js.map +1 -1
  12. package/dist/call-expression-plugin.js +1 -107
  13. package/dist/call-expression-plugin.js.map +1 -1
  14. package/dist/column/column-to-record.d.ts +10 -3
  15. package/dist/column/column-to-record.js +44 -7
  16. package/dist/column/column-to-record.js.map +1 -1
  17. package/dist/column-plugin.d.ts +3 -1
  18. package/dist/column-plugin.js +12 -12
  19. package/dist/column-plugin.js.map +1 -1
  20. package/dist/dashboard/dashboard-component-property-defaults.d.ts +152 -0
  21. package/dist/dashboard/dashboard-component-property-defaults.js +264 -0
  22. package/dist/dashboard/dashboard-component-property-defaults.js.map +1 -0
  23. package/dist/dashboard/dashboard-component-resolver.d.ts +13 -0
  24. package/dist/dashboard/dashboard-component-resolver.js +69 -0
  25. package/dist/dashboard/dashboard-component-resolver.js.map +1 -0
  26. package/dist/dashboard/dashboard-plugin.d.ts +12 -0
  27. package/dist/dashboard/dashboard-plugin.js +397 -0
  28. package/dist/dashboard/dashboard-plugin.js.map +1 -0
  29. package/dist/data-plugin.d.ts +3 -0
  30. package/dist/data-plugin.js +61 -113
  31. package/dist/data-plugin.js.map +1 -1
  32. package/dist/email-notification-plugin.d.ts +2 -0
  33. package/dist/email-notification-plugin.js +541 -0
  34. package/dist/email-notification-plugin.js.map +1 -0
  35. package/dist/flow/constants/flow-plugin-constants.d.ts +58 -0
  36. package/dist/flow/constants/flow-plugin-constants.js +70 -0
  37. package/dist/flow/constants/flow-plugin-constants.js.map +1 -0
  38. package/dist/flow/flow-logic/flow-logic-constants.d.ts +38 -0
  39. package/dist/flow/flow-logic/flow-logic-constants.js +118 -0
  40. package/dist/flow/flow-logic/flow-logic-constants.js.map +1 -0
  41. package/dist/flow/flow-logic/flow-logic-diagnostics.d.ts +19 -0
  42. package/dist/flow/flow-logic/flow-logic-diagnostics.js +503 -0
  43. package/dist/flow/flow-logic/flow-logic-diagnostics.js.map +1 -0
  44. package/dist/flow/flow-logic/flow-logic-plugin-helpers.d.ts +62 -0
  45. package/dist/flow/flow-logic/flow-logic-plugin-helpers.js +2092 -0
  46. package/dist/flow/flow-logic/flow-logic-plugin-helpers.js.map +1 -0
  47. package/dist/flow/flow-logic/flow-logic-plugin.d.ts +52 -0
  48. package/dist/flow/flow-logic/flow-logic-plugin.js +283 -0
  49. package/dist/flow/flow-logic/flow-logic-plugin.js.map +1 -0
  50. package/dist/flow/flow-logic/flow-logic-shapes.d.ts +104 -0
  51. package/dist/flow/flow-logic/flow-logic-shapes.js +201 -0
  52. package/dist/flow/flow-logic/flow-logic-shapes.js.map +1 -0
  53. package/dist/flow/plugins/approval-rules-plugin.d.ts +2 -0
  54. package/dist/flow/plugins/approval-rules-plugin.js +49 -0
  55. package/dist/flow/plugins/approval-rules-plugin.js.map +1 -0
  56. package/dist/flow/plugins/flow-action-definition-plugin.d.ts +2 -0
  57. package/dist/flow/plugins/flow-action-definition-plugin.js +286 -0
  58. package/dist/flow/plugins/flow-action-definition-plugin.js.map +1 -0
  59. package/dist/flow/plugins/flow-data-pill-plugin.d.ts +9 -0
  60. package/dist/flow/plugins/flow-data-pill-plugin.js +212 -0
  61. package/dist/flow/plugins/flow-data-pill-plugin.js.map +1 -0
  62. package/dist/flow/plugins/flow-definition-plugin.d.ts +2 -0
  63. package/dist/flow/plugins/flow-definition-plugin.js +1668 -0
  64. package/dist/flow/plugins/flow-definition-plugin.js.map +1 -0
  65. package/dist/flow/plugins/flow-diagnostics-plugin.d.ts +26 -0
  66. package/dist/flow/plugins/flow-diagnostics-plugin.js +217 -0
  67. package/dist/flow/plugins/flow-diagnostics-plugin.js.map +1 -0
  68. package/dist/flow/plugins/flow-instance-plugin.d.ts +12 -0
  69. package/dist/flow/plugins/flow-instance-plugin.js +1205 -0
  70. package/dist/flow/plugins/flow-instance-plugin.js.map +1 -0
  71. package/dist/flow/plugins/flow-trigger-instance-plugin.d.ts +2 -0
  72. package/dist/flow/plugins/flow-trigger-instance-plugin.js +338 -0
  73. package/dist/flow/plugins/flow-trigger-instance-plugin.js.map +1 -0
  74. package/dist/flow/plugins/inline-script-plugin.d.ts +39 -0
  75. package/dist/flow/plugins/inline-script-plugin.js +80 -0
  76. package/dist/flow/plugins/inline-script-plugin.js.map +1 -0
  77. package/dist/flow/plugins/step-definition-plugin.d.ts +5 -0
  78. package/dist/flow/plugins/step-definition-plugin.js +71 -0
  79. package/dist/flow/plugins/step-definition-plugin.js.map +1 -0
  80. package/dist/flow/plugins/step-instance-plugin.d.ts +31 -0
  81. package/dist/flow/plugins/step-instance-plugin.js +339 -0
  82. package/dist/flow/plugins/step-instance-plugin.js.map +1 -0
  83. package/dist/flow/plugins/trigger-plugin.d.ts +2 -0
  84. package/dist/flow/plugins/trigger-plugin.js +96 -0
  85. package/dist/flow/plugins/trigger-plugin.js.map +1 -0
  86. package/dist/flow/plugins/wfa-datapill-plugin.d.ts +15 -0
  87. package/dist/flow/plugins/wfa-datapill-plugin.js +178 -0
  88. package/dist/flow/plugins/wfa-datapill-plugin.js.map +1 -0
  89. package/dist/flow/utils/approval-rules-processor.d.ts +13 -0
  90. package/dist/flow/utils/approval-rules-processor.js +267 -0
  91. package/dist/flow/utils/approval-rules-processor.js.map +1 -0
  92. package/dist/flow/utils/built-in-complex-objects.d.ts +19 -0
  93. package/dist/flow/utils/built-in-complex-objects.js +62 -0
  94. package/dist/flow/utils/built-in-complex-objects.js.map +1 -0
  95. package/dist/flow/utils/complex-object-resolver.d.ts +8 -0
  96. package/dist/flow/utils/complex-object-resolver.js +614 -0
  97. package/dist/flow/utils/complex-object-resolver.js.map +1 -0
  98. package/dist/flow/utils/complex-objects.d.ts +36 -0
  99. package/dist/flow/utils/complex-objects.js +481 -0
  100. package/dist/flow/utils/complex-objects.js.map +1 -0
  101. package/dist/flow/utils/data-pill-shapes.d.ts +58 -0
  102. package/dist/flow/utils/data-pill-shapes.js +135 -0
  103. package/dist/flow/utils/data-pill-shapes.js.map +1 -0
  104. package/dist/flow/utils/datapill-transformer.d.ts +110 -0
  105. package/dist/flow/utils/datapill-transformer.js +503 -0
  106. package/dist/flow/utils/datapill-transformer.js.map +1 -0
  107. package/dist/flow/utils/flow-constants.d.ts +72 -0
  108. package/dist/flow/utils/flow-constants.js +230 -0
  109. package/dist/flow/utils/flow-constants.js.map +1 -0
  110. package/dist/flow/utils/flow-io-to-record.d.ts +44 -0
  111. package/dist/flow/utils/flow-io-to-record.js +409 -0
  112. package/dist/flow/utils/flow-io-to-record.js.map +1 -0
  113. package/dist/flow/utils/flow-shapes.d.ts +161 -0
  114. package/dist/flow/utils/flow-shapes.js +255 -0
  115. package/dist/flow/utils/flow-shapes.js.map +1 -0
  116. package/dist/flow/utils/flow-to-xml.d.ts +16 -0
  117. package/dist/flow/utils/flow-to-xml.js +237 -0
  118. package/dist/flow/utils/flow-to-xml.js.map +1 -0
  119. package/dist/flow/utils/flow-variable-processor.d.ts +51 -0
  120. package/dist/flow/utils/flow-variable-processor.js +69 -0
  121. package/dist/flow/utils/flow-variable-processor.js.map +1 -0
  122. package/dist/flow/utils/label-cache-parser.d.ts +7 -0
  123. package/dist/flow/utils/label-cache-parser.js +24 -0
  124. package/dist/flow/utils/label-cache-parser.js.map +1 -0
  125. package/dist/flow/utils/label-cache-processor.d.ts +119 -0
  126. package/dist/flow/utils/label-cache-processor.js +719 -0
  127. package/dist/flow/utils/label-cache-processor.js.map +1 -0
  128. package/dist/flow/utils/pill-string-parser.d.ts +88 -0
  129. package/dist/flow/utils/pill-string-parser.js +306 -0
  130. package/dist/flow/utils/pill-string-parser.js.map +1 -0
  131. package/dist/flow/utils/schema-to-flow-object.d.ts +22 -0
  132. package/dist/flow/utils/schema-to-flow-object.js +318 -0
  133. package/dist/flow/utils/schema-to-flow-object.js.map +1 -0
  134. package/dist/flow/utils/service-catalog.d.ts +47 -0
  135. package/dist/flow/utils/service-catalog.js +137 -0
  136. package/dist/flow/utils/service-catalog.js.map +1 -0
  137. package/dist/flow/utils/utils.d.ts +117 -0
  138. package/dist/flow/utils/utils.js +345 -0
  139. package/dist/flow/utils/utils.js.map +1 -0
  140. package/dist/index.d.ts +20 -1
  141. package/dist/index.js +21 -1
  142. package/dist/index.js.map +1 -1
  143. package/dist/list-plugin.js +1 -1
  144. package/dist/list-plugin.js.map +1 -1
  145. package/dist/now-attach-plugin.d.ts +1 -0
  146. package/dist/now-attach-plugin.js +10 -10
  147. package/dist/now-attach-plugin.js.map +1 -1
  148. package/dist/now-ref-plugin.js +1 -1
  149. package/dist/now-ref-plugin.js.map +1 -1
  150. package/dist/record-plugin.d.ts +29 -0
  151. package/dist/record-plugin.js +66 -7
  152. package/dist/record-plugin.js.map +1 -1
  153. package/dist/repack/index.d.ts +2 -0
  154. package/dist/repack/index.js +8 -0
  155. package/dist/repack/index.js.map +1 -1
  156. package/dist/rest-api-plugin.js +54 -44
  157. package/dist/rest-api-plugin.js.map +1 -1
  158. package/dist/server-module-plugin/index.d.ts +10 -0
  159. package/dist/server-module-plugin/index.js +83 -59
  160. package/dist/server-module-plugin/index.js.map +1 -1
  161. package/dist/service-catalog/catalog-clientscript-plugin.d.ts +2 -0
  162. package/dist/service-catalog/catalog-clientscript-plugin.js +117 -0
  163. package/dist/service-catalog/catalog-clientscript-plugin.js.map +1 -0
  164. package/dist/service-catalog/catalog-item-plugin.d.ts +2 -0
  165. package/dist/service-catalog/catalog-item-plugin.js +115 -0
  166. package/dist/service-catalog/catalog-item-plugin.js.map +1 -0
  167. package/dist/service-catalog/catalog-ui-policy-plugin.d.ts +2 -0
  168. package/dist/service-catalog/catalog-ui-policy-plugin.js +266 -0
  169. package/dist/service-catalog/catalog-ui-policy-plugin.js.map +1 -0
  170. package/dist/service-catalog/index.d.ts +5 -0
  171. package/dist/service-catalog/index.js +22 -0
  172. package/dist/service-catalog/index.js.map +1 -0
  173. package/dist/service-catalog/record-to-shape.d.ts +6 -0
  174. package/dist/service-catalog/record-to-shape.js +93 -0
  175. package/dist/service-catalog/record-to-shape.js.map +1 -0
  176. package/dist/service-catalog/sc-record-producer-plugin.d.ts +2 -0
  177. package/dist/service-catalog/sc-record-producer-plugin.js +140 -0
  178. package/dist/service-catalog/sc-record-producer-plugin.js.map +1 -0
  179. package/dist/service-catalog/service-catalog-base.d.ts +311 -0
  180. package/dist/service-catalog/service-catalog-base.js +542 -0
  181. package/dist/service-catalog/service-catalog-base.js.map +1 -0
  182. package/dist/service-catalog/service-catalog-diagnostics.d.ts +45 -0
  183. package/dist/service-catalog/service-catalog-diagnostics.js +172 -0
  184. package/dist/service-catalog/service-catalog-diagnostics.js.map +1 -0
  185. package/dist/service-catalog/shape-to-record.d.ts +8 -0
  186. package/dist/service-catalog/shape-to-record.js +235 -0
  187. package/dist/service-catalog/shape-to-record.js.map +1 -0
  188. package/dist/service-catalog/utils.d.ts +323 -0
  189. package/dist/service-catalog/utils.js +1216 -0
  190. package/dist/service-catalog/utils.js.map +1 -0
  191. package/dist/service-catalog/variable-helper.d.ts +43 -0
  192. package/dist/service-catalog/variable-helper.js +92 -0
  193. package/dist/service-catalog/variable-helper.js.map +1 -0
  194. package/dist/service-catalog/variable-set-plugin.d.ts +2 -0
  195. package/dist/service-catalog/variable-set-plugin.js +175 -0
  196. package/dist/service-catalog/variable-set-plugin.js.map +1 -0
  197. package/dist/service-catalog/variables-transform.d.ts +139 -0
  198. package/dist/service-catalog/variables-transform.js +403 -0
  199. package/dist/service-catalog/variables-transform.js.map +1 -0
  200. package/dist/sla/sla-validators.d.ts +61 -0
  201. package/dist/sla/sla-validators.js +224 -0
  202. package/dist/sla/sla-validators.js.map +1 -0
  203. package/dist/sla-plugin.d.ts +5 -0
  204. package/dist/sla-plugin.js +280 -0
  205. package/dist/sla-plugin.js.map +1 -0
  206. package/dist/static-content-plugin.js +25 -2
  207. package/dist/static-content-plugin.js.map +1 -1
  208. package/dist/table-plugin.js +32 -15
  209. package/dist/table-plugin.js.map +1 -1
  210. package/dist/ui-page-plugin.js +832 -19
  211. package/dist/ui-page-plugin.js.map +1 -1
  212. package/dist/ui-policy-plugin.js +5 -7
  213. package/dist/ui-policy-plugin.js.map +1 -1
  214. package/dist/utils.d.ts +10 -1
  215. package/dist/utils.js +16 -0
  216. package/dist/utils.js.map +1 -1
  217. package/dist/ux-list-menu-config-plugin.d.ts +2 -0
  218. package/dist/ux-list-menu-config-plugin.js +292 -0
  219. package/dist/ux-list-menu-config-plugin.js.map +1 -0
  220. package/dist/workspace-plugin/chrome-tab.d.ts +2 -0
  221. package/dist/workspace-plugin/chrome-tab.js +46 -0
  222. package/dist/workspace-plugin/chrome-tab.js.map +1 -0
  223. package/dist/workspace-plugin/constants.d.ts +52 -0
  224. package/dist/workspace-plugin/constants.js +56 -0
  225. package/dist/workspace-plugin/constants.js.map +1 -0
  226. package/dist/workspace-plugin/fluent-utils.d.ts +9 -0
  227. package/dist/workspace-plugin/fluent-utils.js +60 -0
  228. package/dist/workspace-plugin/fluent-utils.js.map +1 -0
  229. package/dist/workspace-plugin/page.d.ts +8 -0
  230. package/dist/workspace-plugin/page.js +108 -0
  231. package/dist/workspace-plugin/page.js.map +1 -0
  232. package/dist/workspace-plugin/screen.d.ts +1 -0
  233. package/dist/workspace-plugin/screen.js +38 -0
  234. package/dist/workspace-plugin/screen.js.map +1 -0
  235. package/dist/workspace-plugin/templates/index.d.ts +10 -0
  236. package/dist/workspace-plugin/templates/index.js +20 -0
  237. package/dist/workspace-plugin/templates/index.js.map +1 -0
  238. package/dist/workspace-plugin/templates/record-page-composition.d.ts +1 -0
  239. package/dist/workspace-plugin/templates/record-page-composition.js +4043 -0
  240. package/dist/workspace-plugin/templates/record-page-composition.js.map +1 -0
  241. package/dist/workspace-plugin/templates/record-page-data.d.ts +1 -0
  242. package/dist/workspace-plugin/templates/record-page-data.js +527 -0
  243. package/dist/workspace-plugin/templates/record-page-data.js.map +1 -0
  244. package/dist/workspace-plugin/templates/record-page-interalEventMappings.d.ts +1 -0
  245. package/dist/workspace-plugin/templates/record-page-interalEventMappings.js +39 -0
  246. package/dist/workspace-plugin/templates/record-page-interalEventMappings.js.map +1 -0
  247. package/dist/workspace-plugin/templates/record-page-layoutModel.d.ts +1 -0
  248. package/dist/workspace-plugin/templates/record-page-layoutModel.js +55 -0
  249. package/dist/workspace-plugin/templates/record-page-layoutModel.js.map +1 -0
  250. package/dist/workspace-plugin/templates/record-page-properties.d.ts +1 -0
  251. package/dist/workspace-plugin/templates/record-page-properties.js +135 -0
  252. package/dist/workspace-plugin/templates/record-page-properties.js.map +1 -0
  253. package/dist/workspace-plugin/templates/record-page.d.ts +3 -0
  254. package/dist/workspace-plugin/templates/record-page.js +8 -0
  255. package/dist/workspace-plugin/templates/record-page.js.map +1 -0
  256. package/dist/workspace-plugin.d.ts +2 -0
  257. package/dist/workspace-plugin.js +453 -0
  258. package/dist/workspace-plugin.js.map +1 -0
  259. package/package.json +10 -12
  260. package/src/acl-plugin.ts +16 -1
  261. package/src/applicability-plugin.ts +82 -0
  262. package/src/atf/test-plugin.ts +6 -3
  263. package/src/basic-syntax-plugin.ts +10 -1
  264. package/src/business-rule-plugin.ts +2 -1
  265. package/src/call-expression-plugin.ts +2 -130
  266. package/src/column/column-to-record.ts +54 -8
  267. package/src/column-plugin.ts +29 -13
  268. package/src/dashboard/dashboard-component-property-defaults.ts +277 -0
  269. package/src/dashboard/dashboard-component-resolver.ts +69 -0
  270. package/src/dashboard/dashboard-plugin.ts +450 -0
  271. package/src/data-plugin.ts +67 -139
  272. package/src/email-notification-plugin.ts +850 -0
  273. package/src/flow/constants/flow-plugin-constants.ts +79 -0
  274. package/src/flow/flow-logic/flow-logic-constants.ts +120 -0
  275. package/src/flow/flow-logic/flow-logic-diagnostics.ts +591 -0
  276. package/src/flow/flow-logic/flow-logic-plugin-helpers.ts +2550 -0
  277. package/src/flow/flow-logic/flow-logic-plugin.ts +337 -0
  278. package/src/flow/flow-logic/flow-logic-shapes.ts +215 -0
  279. package/src/flow/plugins/approval-rules-plugin.ts +48 -0
  280. package/src/flow/plugins/flow-action-definition-plugin.ts +295 -0
  281. package/src/flow/plugins/flow-data-pill-plugin.ts +258 -0
  282. package/src/flow/plugins/flow-definition-plugin.ts +2173 -0
  283. package/src/flow/plugins/flow-diagnostics-plugin.ts +280 -0
  284. package/src/flow/plugins/flow-instance-plugin.ts +1499 -0
  285. package/src/flow/plugins/flow-trigger-instance-plugin.ts +444 -0
  286. package/src/flow/plugins/inline-script-plugin.ts +83 -0
  287. package/src/flow/plugins/step-definition-plugin.ts +67 -0
  288. package/src/flow/plugins/step-instance-plugin.ts +431 -0
  289. package/src/flow/plugins/trigger-plugin.ts +95 -0
  290. package/src/flow/plugins/wfa-datapill-plugin.ts +213 -0
  291. package/src/flow/utils/approval-rules-processor.ts +298 -0
  292. package/src/flow/utils/built-in-complex-objects.ts +81 -0
  293. package/src/flow/utils/complex-object-resolver.ts +875 -0
  294. package/src/flow/utils/complex-objects.ts +656 -0
  295. package/src/flow/utils/data-pill-shapes.ts +165 -0
  296. package/src/flow/utils/datapill-transformer.ts +632 -0
  297. package/src/flow/utils/flow-constants.ts +285 -0
  298. package/src/flow/utils/flow-io-to-record.ts +533 -0
  299. package/src/flow/utils/flow-shapes.ts +296 -0
  300. package/src/flow/utils/flow-to-xml.ts +318 -0
  301. package/src/flow/utils/flow-variable-processor.ts +100 -0
  302. package/src/flow/utils/label-cache-parser.ts +37 -0
  303. package/src/flow/utils/label-cache-processor.ts +870 -0
  304. package/src/flow/utils/pill-string-parser.ts +375 -0
  305. package/src/flow/utils/schema-to-flow-object.ts +385 -0
  306. package/src/flow/utils/service-catalog.ts +174 -0
  307. package/src/flow/utils/utils.ts +395 -0
  308. package/src/index.ts +20 -1
  309. package/src/list-plugin.ts +1 -1
  310. package/src/now-attach-plugin.ts +14 -11
  311. package/src/now-ref-plugin.ts +1 -1
  312. package/src/record-plugin.ts +76 -11
  313. package/src/repack/index.ts +14 -0
  314. package/src/rest-api-plugin.ts +62 -50
  315. package/src/server-module-plugin/index.ts +112 -86
  316. package/src/service-catalog/catalog-clientscript-plugin.ts +140 -0
  317. package/src/service-catalog/catalog-item-plugin.ts +162 -0
  318. package/src/service-catalog/catalog-ui-policy-plugin.ts +324 -0
  319. package/src/service-catalog/index.ts +5 -0
  320. package/src/service-catalog/record-to-shape.ts +109 -0
  321. package/src/service-catalog/sc-record-producer-plugin.ts +201 -0
  322. package/src/service-catalog/service-catalog-base.ts +600 -0
  323. package/src/service-catalog/service-catalog-diagnostics.ts +254 -0
  324. package/src/service-catalog/shape-to-record.ts +279 -0
  325. package/src/service-catalog/utils.ts +1455 -0
  326. package/src/service-catalog/variable-helper.ts +135 -0
  327. package/src/service-catalog/variable-set-plugin.ts +197 -0
  328. package/src/service-catalog/variables-transform.ts +438 -0
  329. package/src/sla/sla-validators.ts +331 -0
  330. package/src/sla-plugin.ts +358 -0
  331. package/src/static-content-plugin.ts +25 -2
  332. package/src/table-plugin.ts +49 -16
  333. package/src/ui-page-plugin.ts +1063 -20
  334. package/src/ui-policy-plugin.ts +5 -9
  335. package/src/utils.ts +24 -1
  336. package/src/ux-list-menu-config-plugin.ts +312 -0
  337. package/src/workspace-plugin/chrome-tab.ts +44 -0
  338. package/src/workspace-plugin/constants.ts +53 -0
  339. package/src/workspace-plugin/fluent-utils.ts +60 -0
  340. package/src/workspace-plugin/page.ts +139 -0
  341. package/src/workspace-plugin/screen.ts +34 -0
  342. package/src/workspace-plugin/templates/index.ts +17 -0
  343. package/src/workspace-plugin/templates/record-page-composition.ts +4051 -0
  344. package/src/workspace-plugin/templates/record-page-data.ts +523 -0
  345. package/src/workspace-plugin/templates/record-page-interalEventMappings.ts +35 -0
  346. package/src/workspace-plugin/templates/record-page-layoutModel.ts +51 -0
  347. package/src/workspace-plugin/templates/record-page-properties.ts +131 -0
  348. package/src/workspace-plugin/templates/record-page.ts +6 -0
  349. package/src/workspace-plugin.ts +574 -0
@@ -0,0 +1,277 @@
1
+ import isEmpty from 'lodash/isEmpty'
2
+ import isEqual from 'lodash/isEqual'
3
+
4
+ export const DEFAULT_PROPERTY_VALUES = {
5
+ allowAdditionalGroupByPerMetric: false,
6
+ allowChangeDateRange: false,
7
+ scoreIcon: '',
8
+ applyDateRange: false,
9
+ autoAggregatePeriods: false,
10
+ bareBorder: false,
11
+ cacheExpirationTime: 0,
12
+ chartVariation: 'stacked',
13
+ dataLabelPosition: 'middle',
14
+ dataLabelsType: 'both',
15
+ dateFormat: 'default',
16
+ disableTooltip: false,
17
+ emptyStateAlignment: 'vertical-centered',
18
+ emptyStateContent: 'There are no scores available for the selected criteria. Contact your admin for more info.',
19
+ emptyStateHeading: 'No data available.',
20
+ emptyStateHeadingLevel: 3,
21
+ emptyStateIllustration: 'no-data',
22
+ enableAddZerosAtApi: true,
23
+ enableClickAndStay: false,
24
+ enableCustomEmptyState: false,
25
+ enableDrilldown: true,
26
+ enableRealTimeUpdate: false,
27
+ extensionType: 'step',
28
+ filterConfigurations: '@state.parFilters',
29
+ followFilters: true,
30
+ freezeFirstColumn: true,
31
+ freezeFooter: false,
32
+ freezeHeader: true,
33
+ gaugeArcAngle: '180',
34
+ headerTitleAlignment: 'start',
35
+ headingLevel: 2,
36
+ headingPosition: 'top',
37
+ hideDevSettings: false,
38
+ hideMatrixAggregate: false,
39
+ hideYAxis0: false,
40
+ hideYAxis1: false,
41
+ hideYAxis2: false,
42
+ hideYAxis3: false,
43
+ hideYAxis4: false,
44
+ iconStyle: 'background',
45
+ legendExpandToFit: false,
46
+ legendHorizontalAlignment: 'center',
47
+ legendPosition: 'bottom',
48
+ lineClamp: 1,
49
+ lineStrokeWidth: '2',
50
+ mapSysId: '93b8a3a2d7101200bd4a4ebfae61033a',
51
+ minValue: 0,
52
+ newReporting: false,
53
+ numberOfPeriods: 3,
54
+ period: 'M',
55
+ registerOrientation: 'horizontal',
56
+ registerPosition: 'bottom',
57
+ scoreAlignment: 'start',
58
+ scoreLabel: 'none',
59
+ scoreSize: 'auto',
60
+ scoreType: 'latest',
61
+ showAbsolutePeriod: false,
62
+ showAdditionalGroupBySelector: false,
63
+ showAlternateColumnColors: false,
64
+ showAlternateRowColors: true,
65
+ showBorder: true,
66
+ showCacheTime: true,
67
+ showChange: false,
68
+ showChangeFrom: 'previous',
69
+ showChangePercentage: false,
70
+ showClosestSeriesOnHover: true,
71
+ showColumnAggregate: true,
72
+ showColumnDividers: true,
73
+ showComment: false,
74
+ showConfidenceBand: false,
75
+ showContinuousLine: true,
76
+ showDataLabels: false,
77
+ showDataPassthrough: false,
78
+ showDataTable: false,
79
+ showDateRangeByDefault: false,
80
+ showExportOptions: true,
81
+ showFilterAsSeparateSeries: false,
82
+ showFilterIcon: true,
83
+ showFirstGroupAggregate: false,
84
+ showForecast: false,
85
+ showForecastRange: false,
86
+ showGapPercentage: false,
87
+ showHeader: true,
88
+ showHeaderSeparator: false,
89
+ showLabelFirst: false,
90
+ showLegend: true,
91
+ showLegendValue: false,
92
+ showLoadingIndicator: false,
93
+ showMarkers: false,
94
+ showMaximumRange: false,
95
+ showMetricLabel: false,
96
+ showOverlappingLabels: false,
97
+ showPercentageOfTotalInTooltip: true,
98
+ showPivotExpanded: true,
99
+ showRangeLabels: false,
100
+ showRangeLimit: true,
101
+ showRefresh: true,
102
+ showRegister: true,
103
+ showRegisterOnSameLine: false,
104
+ showRegisterPercentage: false,
105
+ showRegisterValue: false,
106
+ showRowAggregate: true,
107
+ showRowDividers: false,
108
+ showScoreDate: false,
109
+ showScoreUpdateTime: false,
110
+ showSecondGroupAggregate: false,
111
+ showSparkline: false,
112
+ showStackedValues: 'none',
113
+ showSubAggregate: true,
114
+ showTarget: false,
115
+ showThreshold: false,
116
+ showTotalAggregate: false,
117
+ showTrend: false,
118
+ showXGrid: false,
119
+ showYGrid: true,
120
+ showZero: false,
121
+ sortByOrder: 'desc',
122
+ sparklineStyle: 'area',
123
+ truncateColumnHeader: true,
124
+ truncateFirstColumn: true,
125
+ truncationType: 'end',
126
+ useCurrentDateForEnd: false,
127
+ useDataCache: false,
128
+ useRelativeScoreTime: false,
129
+ valueLabelSize: 'md',
130
+ wrapColumnHeader: false,
131
+ wrapElements: false,
132
+ wrapTitle: false,
133
+ xAxisHidden: false,
134
+ xAxisMaxLabelSize: 100,
135
+ xAxisTruncationType: 'end',
136
+ xAxisWrapLabels: false,
137
+ yAxis0Position: 'left',
138
+ yAxis1Position: 'right',
139
+ yAxis2Position: 'right',
140
+ yAxis3Position: 'right',
141
+ yAxis4Position: 'right',
142
+ yAxisHidden: false,
143
+ yAxisPosition: 'bottom',
144
+ yAxisShowGrid: true,
145
+ yAxisStyle: 'clean',
146
+ colorConfig: {
147
+ type: 'default',
148
+ },
149
+ userInfo: '@context.session.user',
150
+ }
151
+
152
+ export const RESTRICTED_PROPERTIES = ['componentId', 'dataPassThrough', 'sharedContext', 'configVersion']
153
+
154
+ const DEFAULT_NUMBER_FORMAT = {
155
+ customFormat: false,
156
+ }
157
+
158
+ /**
159
+ * Properties to omit from nested structures.
160
+ * Key = array property name, Value = array of property names to omit from items
161
+ */
162
+ type OmitConfig = string[] | Record<string, string[]>
163
+
164
+ const OMIT_DEEP_PATHS: Record<string, OmitConfig> = {
165
+ dataSources: ['allowRealTime', 'isDatabaseView', 'preferredVisualizations', 'dataCategories'],
166
+ metrics: ['numberFormat'],
167
+ groupBy: {
168
+ groupBy: ['isRange', 'isChoice', 'isPaBucket'],
169
+ },
170
+ }
171
+
172
+ /**
173
+ * Omits deep properties from an object
174
+ */
175
+ function omitDeepProperties(obj: unknown): unknown {
176
+ if (!obj || typeof obj !== 'object') {
177
+ return obj
178
+ }
179
+
180
+ if (Array.isArray(obj)) {
181
+ return obj.map(omitDeepProperties)
182
+ }
183
+
184
+ const result: Record<string, unknown> = {}
185
+
186
+ for (const [key, value] of Object.entries(obj)) {
187
+ const omitConfig = OMIT_DEEP_PATHS[key]
188
+
189
+ if (Array.isArray(value) && omitConfig) {
190
+ if (Array.isArray(omitConfig)) {
191
+ // Omit specified properties from each array item
192
+ result[key] = value.map((item) => {
193
+ if (!item || typeof item !== 'object') {
194
+ return item
195
+ }
196
+
197
+ const filtered: Record<string, unknown> = {}
198
+ for (const [itemKey, itemValue] of Object.entries(item)) {
199
+ if (omitConfig.includes(itemKey)) {
200
+ // Special case: keep numberFormat if it's not default
201
+ if (itemKey === 'numberFormat' && key === 'metrics') {
202
+ if (itemValue && !isEqual(itemValue, DEFAULT_NUMBER_FORMAT)) {
203
+ filtered[itemKey] = omitDeepProperties(itemValue)
204
+ }
205
+ }
206
+ continue
207
+ }
208
+ filtered[itemKey] = omitDeepProperties(itemValue)
209
+ }
210
+ return filtered
211
+ })
212
+ } else if (typeof omitConfig === 'object') {
213
+ // Handle nested config (e.g., groupBy.groupBy)
214
+ result[key] = value.map((item) => {
215
+ if (!item || typeof item !== 'object') {
216
+ return item
217
+ }
218
+
219
+ const filtered: Record<string, unknown> = {}
220
+ for (const [itemKey, itemValue] of Object.entries(item)) {
221
+ const nestedConfig = omitConfig[itemKey]
222
+
223
+ if (Array.isArray(itemValue) && Array.isArray(nestedConfig)) {
224
+ // Process nested array
225
+ filtered[itemKey] = itemValue.map((nestedItem) => {
226
+ if (!nestedItem || typeof nestedItem !== 'object') {
227
+ return nestedItem
228
+ }
229
+
230
+ const nestedFiltered: Record<string, unknown> = {}
231
+ for (const [nestedKey, nestedValue] of Object.entries(nestedItem)) {
232
+ if (!nestedConfig.includes(nestedKey)) {
233
+ nestedFiltered[nestedKey] = omitDeepProperties(nestedValue)
234
+ }
235
+ }
236
+ return nestedFiltered
237
+ })
238
+ } else {
239
+ filtered[itemKey] = omitDeepProperties(itemValue)
240
+ }
241
+ }
242
+ return filtered
243
+ })
244
+ }
245
+ } else if (value && typeof value === 'object') {
246
+ const filtered = omitDeepProperties(value)
247
+ if (!isEmpty(filtered)) {
248
+ result[key] = filtered
249
+ }
250
+ } else {
251
+ result[key] = value
252
+ }
253
+ }
254
+
255
+ return result
256
+ }
257
+
258
+ /**
259
+ * Removes properties from an object that match their default values
260
+ */
261
+ export function removeRestrictedValues(props: object): unknown {
262
+ if (!props) {
263
+ return props
264
+ }
265
+
266
+ const filtered: Record<string, unknown> = {}
267
+
268
+ for (const [key, value] of Object.entries(props)) {
269
+ if (RESTRICTED_PROPERTIES.find((prop) => prop === key)) {
270
+ continue
271
+ }
272
+
273
+ filtered[key] = value
274
+ }
275
+
276
+ return omitDeepProperties(filtered)
277
+ }
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Mapping of human-readable component names (kebab-case) to their sys_ids
3
+ */
4
+ const COMPONENT_NAME_TO_SYSID: Record<string, string> = {
5
+ area: 'aba8630dc2ccc9b3c1774af1b6820696',
6
+ boxplot: 'c5d01636ff2602109bd2ffffffffff0a',
7
+ bubble: '50dbc52a13c8b4691f7c60e0246bf28c',
8
+ 'calendar-report': '259e0221ff18a75c5f5f0fb28fa5d32f',
9
+ column: '2bd5dc19a7ad083941b7c992a966dd78',
10
+ 'compatibility-mode-widget': '0805a7bf91a93efbdf0a975b38b01051',
11
+ dial: '63f050cf050137731a828878839e0b33',
12
+ donut: 'a2b0596cec6b9d49dd1ff9bf76b5084b',
13
+ gauge: '037bd8ea3013833fd049186779528b70',
14
+ geomap: '9c8c44bd78fe5918950e0db8e286211d',
15
+ heading: '1f6e0643eca7a637e36bd7833549ec9e',
16
+ heatmap: 'd1f6c60ce95607ea1ef236430d5fdec9',
17
+ 'horizontal-bar': '85855283b7e03010097cb81cde11a91d',
18
+ image: '15fe506403f8a98575b6df59008ea8f1',
19
+ 'indicator-scorecard': '9d31ba4d773ce32ef350d4A555b673f6e',
20
+ line: '18ac962264404bcc0039359d184b15f3',
21
+ list: '7ff373544303121093711347efb8f23c',
22
+ pareto: '53e0a2b49e3ff92ba54ea7ea6f0d0583',
23
+ pie: '96abe7e38d8790718022c5630a92176c',
24
+ 'pivot-table': '06f6aacbd1818110f877d87436272684',
25
+ 'rich-text': '2d56f06d55f46bbd4e79b5e624beb940',
26
+ scatter: 'e3aade757ef3da131076d005cada40d5',
27
+ 'semi-donut': '3809c6583b8dd540a0bf735ed493bae2',
28
+ 'single-score': 'd24d53f60350de7a652caf3188a46ed2',
29
+ spline: '0f1e76928c4814e1430774fb864003f0',
30
+ step: '7fa5f7264941fabfb1542985da30e0b8',
31
+ 'vertical-bar': '23051643b7e03010097cb81cde11a910',
32
+ }
33
+
34
+ /**
35
+ * Mapping of sys_ids to human-readable component names (kebab-case)
36
+ */
37
+ const COMPONENT_SYSID_TO_NAME: Record<string, string> = Object.fromEntries(
38
+ Object.entries(COMPONENT_NAME_TO_SYSID).map(([name, sysid]) => [sysid, name])
39
+ )
40
+
41
+ /**
42
+ * Resolves a component value to its sys_id.
43
+ * If the value is already a sys_id (32-char hex), returns it as-is.
44
+ * If the value is a component name (case-insensitive), returns the corresponding sys_id.
45
+ * Otherwise, returns the value unchanged.
46
+ */
47
+ export function resolveComponentToSysId(component: string): string {
48
+ // If it's already a sys_id (32 hex chars), return as-is
49
+ if (/^[0-9a-f]{32}$/i.test(component)) {
50
+ return component
51
+ }
52
+ // Normalize to lowercase for case-insensitive lookup
53
+ const normalized = component.toLowerCase()
54
+ // If it's a known component name, resolve to sys_id
55
+ if (COMPONENT_NAME_TO_SYSID[normalized]) {
56
+ return COMPONENT_NAME_TO_SYSID[normalized]
57
+ }
58
+ // Otherwise return as-is (could be a custom component reference)
59
+ return component
60
+ }
61
+
62
+ /**
63
+ * Resolves a sys_id to its human-readable component name (kebab-case).
64
+ * If the sys_id has a known name, returns the name.
65
+ * Otherwise, returns the sys_id unchanged.
66
+ */
67
+ export function resolveComponentToName(sysid: string): string {
68
+ return COMPONENT_SYSID_TO_NAME[sysid] || sysid
69
+ }