@pega/dx-component-builder-sdk 0.1.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 (279) hide show
  1. package/.access_token +1 -0
  2. package/.agilestudio +3 -0
  3. package/.eslintrc.json +18 -0
  4. package/.prettierignore +2 -0
  5. package/.prettierrc.json +1 -0
  6. package/LICENSE +185 -0
  7. package/README.md +199 -0
  8. package/bin/index.js +5 -0
  9. package/cspell.json +26 -0
  10. package/package.json +67 -0
  11. package/src/cli.js +104 -0
  12. package/src/constants.js +134 -0
  13. package/src/tasks/authenticate/helper.js +60 -0
  14. package/src/tasks/authenticate/index.js +81 -0
  15. package/src/tasks/build/helper.js +125 -0
  16. package/src/tasks/build/index.js +52 -0
  17. package/src/tasks/bundle/builder/index.js +218 -0
  18. package/src/tasks/bundle/builder/modules.js +139 -0
  19. package/src/tasks/bundle/builder/paths.js +50 -0
  20. package/src/tasks/bundle/builder/webpack.config.js +336 -0
  21. package/src/tasks/bundle/index.js +65 -0
  22. package/src/tasks/create/index.js +380 -0
  23. package/src/tasks/create/template/config.json.mustache +62 -0
  24. package/src/tasks/create/template/demo.stories.jsx.mustache +44 -0
  25. package/src/tasks/create/template/index.jsx.mustache +55 -0
  26. package/src/tasks/create/template/styles.js.mustache +7 -0
  27. package/src/tasks/create/templates/Constellation/Field/Boolean/Boolean.js.mustache +38 -0
  28. package/src/tasks/create/templates/Constellation/Field/Boolean/boolean-format.js.mustache +26 -0
  29. package/src/tasks/create/templates/Constellation/Field/Boolean/config.json.mustache +145 -0
  30. package/src/tasks/create/templates/Constellation/Field/Boolean/event-utils.js.mustache +18 -0
  31. package/src/tasks/create/templates/Constellation/Field/Boolean/index.jsx.mustache +171 -0
  32. package/src/tasks/create/templates/Constellation/Field/Boolean/styles.js.mustache +7 -0
  33. package/src/tasks/create/templates/Constellation/Field/Date/config.json.mustache +195 -0
  34. package/src/tasks/create/templates/Constellation/Field/Date/date.js.mustache +327 -0
  35. package/src/tasks/create/templates/Constellation/Field/Date/demo.stories.jsx.mustache +44 -0
  36. package/src/tasks/create/templates/Constellation/Field/Date/index.jsx.mustache +254 -0
  37. package/src/tasks/create/templates/Constellation/Field/Date/styles.js.mustache +7 -0
  38. package/src/tasks/create/templates/Constellation/Field/Date/suggestions-handler.js +10 -0
  39. package/src/tasks/create/templates/Constellation/Field/DateTime/config.json.mustache +256 -0
  40. package/src/tasks/create/templates/Constellation/Field/DateTime/date-time.js.mustache +93 -0
  41. package/src/tasks/create/templates/Constellation/Field/DateTime/date-utils.js +286 -0
  42. package/src/tasks/create/templates/Constellation/Field/DateTime/date.js.mustache +327 -0
  43. package/src/tasks/create/templates/Constellation/Field/DateTime/demo.stories.jsx.mustache +44 -0
  44. package/src/tasks/create/templates/Constellation/Field/DateTime/index.jsx.mustache +252 -0
  45. package/src/tasks/create/templates/Constellation/Field/DateTime/styles.js.mustache +7 -0
  46. package/src/tasks/create/templates/Constellation/Field/DateTime/suggestions-handler.js +10 -0
  47. package/src/tasks/create/templates/Constellation/Field/Decimal/config.json.mustache +278 -0
  48. package/src/tasks/create/templates/Constellation/Field/Decimal/demo.stories.jsx.mustache +44 -0
  49. package/src/tasks/create/templates/Constellation/Field/Decimal/event-utils.js.mustache +18 -0
  50. package/src/tasks/create/templates/Constellation/Field/Decimal/index.jsx.mustache +272 -0
  51. package/src/tasks/create/templates/Constellation/Field/Decimal/styles.js.mustache +7 -0
  52. package/src/tasks/create/templates/Constellation/Field/Decimal/suggestions-handler.js +10 -0
  53. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/config.json.mustache +291 -0
  54. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/demo.stories.jsx.mustache +44 -0
  55. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/event-utils.js.mustache +18 -0
  56. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/index.jsx.mustache +300 -0
  57. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/styles.js.mustache +7 -0
  58. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/suggestions-handler.js +10 -0
  59. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/config.json.mustache +93 -0
  60. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/demo.stories.jsx.mustache +44 -0
  61. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/event-utils.js.mustache +18 -0
  62. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/index.jsx.mustache +275 -0
  63. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/styles.js.mustache +7 -0
  64. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/suggestions-handler.js +10 -0
  65. package/src/tasks/create/templates/Constellation/Field/Integer/config.json.mustache +347 -0
  66. package/src/tasks/create/templates/Constellation/Field/Integer/demo.stories.jsx.mustache +44 -0
  67. package/src/tasks/create/templates/Constellation/Field/Integer/event-utils.js.mustache +18 -0
  68. package/src/tasks/create/templates/Constellation/Field/Integer/index.jsx.mustache +335 -0
  69. package/src/tasks/create/templates/Constellation/Field/Integer/styles.js.mustache +7 -0
  70. package/src/tasks/create/templates/Constellation/Field/Integer/suggestions-handler.js +10 -0
  71. package/src/tasks/create/templates/Constellation/Field/Picklist/config.json.mustache +114 -0
  72. package/src/tasks/create/templates/Constellation/Field/Picklist/demo.stories.jsx.mustache +44 -0
  73. package/src/tasks/create/templates/Constellation/Field/Picklist/event-utils.js.mustache +18 -0
  74. package/src/tasks/create/templates/Constellation/Field/Picklist/index.jsx.mustache +308 -0
  75. package/src/tasks/create/templates/Constellation/Field/Picklist/picklist.js.mustache +43 -0
  76. package/src/tasks/create/templates/Constellation/Field/Picklist/styles.js.mustache +7 -0
  77. package/src/tasks/create/templates/Constellation/Field/Picklist/suggestions-handler.js +10 -0
  78. package/src/tasks/create/templates/Constellation/Field/Text/config.json.mustache +62 -0
  79. package/src/tasks/create/templates/Constellation/Field/Text/demo.stories.jsx.mustache +44 -0
  80. package/src/tasks/create/templates/Constellation/Field/Text/index.jsx.mustache +60 -0
  81. package/src/tasks/create/templates/Constellation/Field/Text/styles.js.mustache +7 -0
  82. package/src/tasks/create/templates/Constellation/Field/Text-Email/config.json.mustache +111 -0
  83. package/src/tasks/create/templates/Constellation/Field/Text-Email/demo.stories.jsx.mustache +44 -0
  84. package/src/tasks/create/templates/Constellation/Field/Text-Email/event-utils.js.mustache +18 -0
  85. package/src/tasks/create/templates/Constellation/Field/Text-Email/index.jsx.mustache +189 -0
  86. package/src/tasks/create/templates/Constellation/Field/Text-Email/styles.js.mustache +7 -0
  87. package/src/tasks/create/templates/Constellation/Field/Text-Email/suggestions-handler.js +10 -0
  88. package/src/tasks/create/templates/Constellation/Field/Text-Email/text-email.js.mustache +43 -0
  89. package/src/tasks/create/templates/Constellation/Field/Text-Input/StatusWork.js +27 -0
  90. package/src/tasks/create/templates/Constellation/Field/Text-Input/config.json.mustache +111 -0
  91. package/src/tasks/create/templates/Constellation/Field/Text-Input/demo.stories.jsx.mustache +44 -0
  92. package/src/tasks/create/templates/Constellation/Field/Text-Input/event-utils.js.mustache +18 -0
  93. package/src/tasks/create/templates/Constellation/Field/Text-Input/index.jsx.mustache +196 -0
  94. package/src/tasks/create/templates/Constellation/Field/Text-Input/styles.js.mustache +7 -0
  95. package/src/tasks/create/templates/Constellation/Field/Text-Input/suggestions-handler.js +10 -0
  96. package/src/tasks/create/templates/Constellation/Field/Text-Input/text-input.js.mustache +43 -0
  97. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/config.json.mustache +111 -0
  98. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/demo.stories.jsx.mustache +44 -0
  99. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/event-utils.js.mustache +18 -0
  100. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/index.jsx.mustache +189 -0
  101. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/styles.js.mustache +7 -0
  102. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/suggestions-handler.js +10 -0
  103. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/text-paragraph.js.mustache +43 -0
  104. package/src/tasks/create/templates/Constellation/Field/Text-Phone/config.json.mustache +123 -0
  105. package/src/tasks/create/templates/Constellation/Field/Text-Phone/demo.stories.jsx.mustache +44 -0
  106. package/src/tasks/create/templates/Constellation/Field/Text-Phone/event-utils.js.mustache +18 -0
  107. package/src/tasks/create/templates/Constellation/Field/Text-Phone/index.jsx.mustache +223 -0
  108. package/src/tasks/create/templates/Constellation/Field/Text-Phone/styles.js.mustache +7 -0
  109. package/src/tasks/create/templates/Constellation/Field/Text-Phone/suggestions-handler.js +10 -0
  110. package/src/tasks/create/templates/Constellation/Field/Text-Phone/text-phone.js.mustache +43 -0
  111. package/src/tasks/create/templates/Constellation/Field/Text-URL/config.json.mustache +237 -0
  112. package/src/tasks/create/templates/Constellation/Field/Text-URL/demo.stories.jsx.mustache +44 -0
  113. package/src/tasks/create/templates/Constellation/Field/Text-URL/event-utils.js.mustache +18 -0
  114. package/src/tasks/create/templates/Constellation/Field/Text-URL/index.jsx.mustache +232 -0
  115. package/src/tasks/create/templates/Constellation/Field/Text-URL/styles.js.mustache +7 -0
  116. package/src/tasks/create/templates/Constellation/Field/Text-URL/suggestions-handler.js +10 -0
  117. package/src/tasks/create/templates/Constellation/Field/Text-URL/text-url.js.mustache +172 -0
  118. package/src/tasks/create/templates/Constellation/Field/TimeofDay/config.json.mustache +185 -0
  119. package/src/tasks/create/templates/Constellation/Field/TimeofDay/demo.stories.jsx.mustache +44 -0
  120. package/src/tasks/create/templates/Constellation/Field/TimeofDay/index.jsx.mustache +213 -0
  121. package/src/tasks/create/templates/Constellation/Field/TimeofDay/styles.js.mustache +7 -0
  122. package/src/tasks/create/templates/Constellation/Field/TimeofDay/suggestions-handler.js +10 -0
  123. package/src/tasks/create/templates/Constellation/Field/TimeofDay/time-of-day.js.mustache +286 -0
  124. package/src/tasks/create/templates/Constellation/Template/DETAILS/OneColumnDetails.svg +22 -0
  125. package/src/tasks/create/templates/Constellation/Template/DETAILS/config.json.mustache +35 -0
  126. package/src/tasks/create/templates/Constellation/Template/DETAILS/index.jsx.mustache +88 -0
  127. package/src/tasks/create/templates/Constellation/Template/DETAILS/styles.js.mustache +7 -0
  128. package/src/tasks/create/templates/Constellation/Template/DETAILS/utils.js.mustache +155 -0
  129. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/TwoColumnDetails.svg +28 -0
  130. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/config.json.mustache +42 -0
  131. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/index.jsx.mustache +88 -0
  132. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/styles.js.mustache +7 -0
  133. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/utils.js.mustache +155 -0
  134. package/src/tasks/create/templates/Constellation/Template/FORM/DefaultForm.svg +29 -0
  135. package/src/tasks/create/templates/Constellation/Template/FORM/config.json.mustache +45 -0
  136. package/src/tasks/create/templates/Constellation/Template/FORM/index.jsx.mustache +49 -0
  137. package/src/tasks/create/templates/Constellation/Template/FORM/styles.js.mustache +7 -0
  138. package/src/tasks/create/templates/Constellation/Template/FORM-region/TwoColumn.svg +38 -0
  139. package/src/tasks/create/templates/Constellation/Template/FORM-region/config.json.mustache +27 -0
  140. package/src/tasks/create/templates/Constellation/Template/FORM-region/index.jsx.mustache +51 -0
  141. package/src/tasks/create/templates/Constellation/Template/FORM-region/styles.js.mustache +7 -0
  142. package/src/tasks/create/templates/Constellation/Template/PAGE/GetNextWork.js.mustache +29 -0
  143. package/src/tasks/create/templates/Constellation/Template/PAGE/OneColumnPage.svg +36 -0
  144. package/src/tasks/create/templates/Constellation/Template/PAGE/config.json.mustache +32 -0
  145. package/src/tasks/create/templates/Constellation/Template/PAGE/index.jsx.mustache +68 -0
  146. package/src/tasks/create/templates/Constellation/Template/PAGE/localizations.json.mustache +4 -0
  147. package/src/tasks/create/templates/Constellation/Template/PAGE/styles.js.mustache +7 -0
  148. package/src/tasks/create/templates/Constellation/Template/PAGE/utils.js.mustache +226 -0
  149. package/src/tasks/create/templates/Constellation/Widget/CASE/OneColumnPage.svg +36 -0
  150. package/src/tasks/create/templates/Constellation/Widget/CASE/config.json.mustache +23 -0
  151. package/src/tasks/create/templates/Constellation/Widget/CASE/index.jsx.mustache +75 -0
  152. package/src/tasks/create/templates/Constellation/Widget/CASE/styles.js.mustache +7 -0
  153. package/src/tasks/create/templates/Constellation/Widget/PAGE/OneColumnPage.svg +36 -0
  154. package/src/tasks/create/templates/Constellation/Widget/PAGE/config.json.mustache +59 -0
  155. package/src/tasks/create/templates/Constellation/Widget/PAGE/index.jsx.mustache +48 -0
  156. package/src/tasks/create/templates/Constellation/Widget/PAGE/styles.js.mustache +7 -0
  157. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Avatar.js.mustache +73 -0
  158. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/OneColumnPage.svg +36 -0
  159. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Operator.js.mustache +239 -0
  160. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/config.json.mustache +66 -0
  161. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/index.jsx.mustache +110 -0
  162. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/styles.js.mustache +7 -0
  163. package/src/tasks/create/templates/SDK-Angular/Field/__components.md +4 -0
  164. package/src/tasks/create/templates/SDK-Angular/Template/__components.md +4 -0
  165. package/src/tasks/create/templates/SDK-Angular/Widget/__components.md +4 -0
  166. package/src/tasks/create/templates/SDK-React/Field/Boolean/config.json.mustache +73 -0
  167. package/src/tasks/create/templates/SDK-React/Field/Boolean/demo.stories.jsx.mustache +44 -0
  168. package/src/tasks/create/templates/SDK-React/Field/Boolean/index.tsx.mustache +109 -0
  169. package/src/tasks/create/templates/SDK-React/Field/Boolean/styles.js.mustache +7 -0
  170. package/src/tasks/create/templates/SDK-React/Field/Date/config.json.mustache +133 -0
  171. package/src/tasks/create/templates/SDK-React/Field/Date/demo.stories.jsx.mustache +44 -0
  172. package/src/tasks/create/templates/SDK-React/Field/Date/index.tsx.mustache +122 -0
  173. package/src/tasks/create/templates/SDK-React/Field/Date/styles.js.mustache +7 -0
  174. package/src/tasks/create/templates/SDK-React/Field/DateTime/config.json.mustache +190 -0
  175. package/src/tasks/create/templates/SDK-React/Field/DateTime/demo.stories.jsx.mustache +44 -0
  176. package/src/tasks/create/templates/SDK-React/Field/DateTime/index.tsx.mustache +112 -0
  177. package/src/tasks/create/templates/SDK-React/Field/DateTime/styles.js.mustache +7 -0
  178. package/src/tasks/create/templates/SDK-React/Field/Decimal/config.json.mustache +80 -0
  179. package/src/tasks/create/templates/SDK-React/Field/Decimal/demo.stories.jsx.mustache +44 -0
  180. package/src/tasks/create/templates/SDK-React/Field/Decimal/index.tsx.mustache +105 -0
  181. package/src/tasks/create/templates/SDK-React/Field/Decimal/styles.js.mustache +7 -0
  182. package/src/tasks/create/templates/SDK-React/Field/Decimal-Currency/config.json.mustache +111 -0
  183. package/src/tasks/create/templates/SDK-React/Field/Decimal-Currency/demo.stories.jsx.mustache +44 -0
  184. package/src/tasks/create/templates/SDK-React/Field/Decimal-Currency/index.tsx.mustache +131 -0
  185. package/src/tasks/create/templates/SDK-React/Field/Decimal-Currency/styles.js.mustache +7 -0
  186. package/src/tasks/create/templates/SDK-React/Field/Decimal-Percentage/config.json.mustache +80 -0
  187. package/src/tasks/create/templates/SDK-React/Field/Decimal-Percentage/demo.stories.jsx.mustache +44 -0
  188. package/src/tasks/create/templates/SDK-React/Field/Decimal-Percentage/index.tsx.mustache +128 -0
  189. package/src/tasks/create/templates/SDK-React/Field/Decimal-Percentage/styles.js.mustache +7 -0
  190. package/src/tasks/create/templates/SDK-React/Field/Integer/config.json.mustache +74 -0
  191. package/src/tasks/create/templates/SDK-React/Field/Integer/demo.stories.jsx.mustache +44 -0
  192. package/src/tasks/create/templates/SDK-React/Field/Integer/index.tsx.mustache +124 -0
  193. package/src/tasks/create/templates/SDK-React/Field/Integer/styles.js.mustache +7 -0
  194. package/src/tasks/create/templates/SDK-React/Field/Picklist/config.json.mustache +72 -0
  195. package/src/tasks/create/templates/SDK-React/Field/Picklist/demo.stories.jsx.mustache +44 -0
  196. package/src/tasks/create/templates/SDK-React/Field/Picklist/index.tsx.mustache +141 -0
  197. package/src/tasks/create/templates/SDK-React/Field/Picklist/styles.js.mustache +7 -0
  198. package/src/tasks/create/templates/SDK-React/Field/Text/config.json.mustache +69 -0
  199. package/src/tasks/create/templates/SDK-React/Field/Text/demo.stories.jsx.mustache +44 -0
  200. package/src/tasks/create/templates/SDK-React/Field/Text/index.tsx.mustache +119 -0
  201. package/src/tasks/create/templates/SDK-React/Field/Text/styles.js.mustache +7 -0
  202. package/src/tasks/create/templates/SDK-React/Field/Text-Email/config.json.mustache +69 -0
  203. package/src/tasks/create/templates/SDK-React/Field/Text-Email/demo.stories.jsx.mustache +44 -0
  204. package/src/tasks/create/templates/SDK-React/Field/Text-Email/index.tsx.mustache +121 -0
  205. package/src/tasks/create/templates/SDK-React/Field/Text-Email/styles.js.mustache +7 -0
  206. package/src/tasks/create/templates/SDK-React/Field/Text-Input/config.json.mustache +69 -0
  207. package/src/tasks/create/templates/SDK-React/Field/Text-Input/demo.stories.jsx.mustache +44 -0
  208. package/src/tasks/create/templates/SDK-React/Field/Text-Input/index.tsx.mustache +119 -0
  209. package/src/tasks/create/templates/SDK-React/Field/Text-Input/styles.js.mustache +7 -0
  210. package/src/tasks/create/templates/SDK-React/Field/Text-Paragraph/config.json.mustache +69 -0
  211. package/src/tasks/create/templates/SDK-React/Field/Text-Paragraph/demo.stories.jsx.mustache +44 -0
  212. package/src/tasks/create/templates/SDK-React/Field/Text-Paragraph/index.tsx.mustache +123 -0
  213. package/src/tasks/create/templates/SDK-React/Field/Text-Paragraph/styles.js.mustache +7 -0
  214. package/src/tasks/create/templates/SDK-React/Field/Text-Phone/config.json.mustache +81 -0
  215. package/src/tasks/create/templates/SDK-React/Field/Text-Phone/demo.stories.jsx.mustache +44 -0
  216. package/src/tasks/create/templates/SDK-React/Field/Text-Phone/index.tsx.mustache +147 -0
  217. package/src/tasks/create/templates/SDK-React/Field/Text-Phone/styles.js.mustache +7 -0
  218. package/src/tasks/create/templates/SDK-React/Field/Text-URL/config.json.mustache +111 -0
  219. package/src/tasks/create/templates/SDK-React/Field/Text-URL/demo.stories.jsx.mustache +44 -0
  220. package/src/tasks/create/templates/SDK-React/Field/Text-URL/index.tsx.mustache +98 -0
  221. package/src/tasks/create/templates/SDK-React/Field/Text-URL/styles.js.mustache +7 -0
  222. package/src/tasks/create/templates/SDK-React/Field/TimeofDay/config.json.mustache +121 -0
  223. package/src/tasks/create/templates/SDK-React/Field/TimeofDay/demo.stories.jsx.mustache +44 -0
  224. package/src/tasks/create/templates/SDK-React/Field/TimeofDay/index.tsx.mustache +120 -0
  225. package/src/tasks/create/templates/SDK-React/Field/TimeofDay/styles.js.mustache +7 -0
  226. package/src/tasks/create/templates/SDK-React/Template/DETAILS/DefaultForm.svg +29 -0
  227. package/src/tasks/create/templates/SDK-React/Template/DETAILS/config.json.mustache +21 -0
  228. package/src/tasks/create/templates/SDK-React/Template/DETAILS/index.tsx.mustache +45 -0
  229. package/src/tasks/create/templates/SDK-React/Template/DETAILS/styles.js.mustache +7 -0
  230. package/src/tasks/create/templates/SDK-React/Template/DETAILS-region/TwoColumnDetails.svg +28 -0
  231. package/src/tasks/create/templates/SDK-React/Template/DETAILS-region/config.json.mustache +27 -0
  232. package/src/tasks/create/templates/SDK-React/Template/DETAILS-region/index.tsx.mustache +53 -0
  233. package/src/tasks/create/templates/SDK-React/Template/DETAILS-region/styles.js.mustache +7 -0
  234. package/src/tasks/create/templates/SDK-React/Template/FORM/DefaultForm.css +25 -0
  235. package/src/tasks/create/templates/SDK-React/Template/FORM/DefaultForm.svg +29 -0
  236. package/src/tasks/create/templates/SDK-React/Template/FORM/config.json.mustache +45 -0
  237. package/src/tasks/create/templates/SDK-React/Template/FORM/index.tsx.mustache +63 -0
  238. package/src/tasks/create/templates/SDK-React/Template/FORM/styles.js.mustache +7 -0
  239. package/src/tasks/create/templates/SDK-React/Template/FORM-region/TwoColumn.svg +38 -0
  240. package/src/tasks/create/templates/SDK-React/Template/FORM-region/config.json.mustache +49 -0
  241. package/src/tasks/create/templates/SDK-React/Template/FORM-region/index.tsx.mustache +69 -0
  242. package/src/tasks/create/templates/SDK-React/Template/FORM-region/styles.js.mustache +7 -0
  243. package/src/tasks/create/templates/SDK-React/Template/PAGE/OneColumn.tsx.mustache +32 -0
  244. package/src/tasks/create/templates/SDK-React/Template/PAGE/OneColumnPage.svg +28 -0
  245. package/src/tasks/create/templates/SDK-React/Template/PAGE/config.json.mustache +32 -0
  246. package/src/tasks/create/templates/SDK-React/Template/PAGE/index.tsx.mustache +31 -0
  247. package/src/tasks/create/templates/SDK-React/Template/PAGE/styles.js.mustache +7 -0
  248. package/src/tasks/create/templates/SDK-React/Widget/CASE/OneColumnPage.svg +36 -0
  249. package/src/tasks/create/templates/SDK-React/Widget/CASE/config.json.mustache +23 -0
  250. package/src/tasks/create/templates/SDK-React/Widget/CASE/index.tsx.mustache +183 -0
  251. package/src/tasks/create/templates/SDK-React/Widget/CASE/styles.js.mustache +7 -0
  252. package/src/tasks/create/templates/SDK-React/Widget/PAGE/OneColumnPage.svg +36 -0
  253. package/src/tasks/create/templates/SDK-React/Widget/PAGE/config.json.mustache +59 -0
  254. package/src/tasks/create/templates/SDK-React/Widget/PAGE/index.tsx.mustache +78 -0
  255. package/src/tasks/create/templates/SDK-React/Widget/PAGE/styles.js.mustache +7 -0
  256. package/src/tasks/create/templates/SDK-React/Widget/PAGE-CASE/OneColumnPage.svg +36 -0
  257. package/src/tasks/create/templates/SDK-React/Widget/PAGE-CASE/config.json.mustache +66 -0
  258. package/src/tasks/create/templates/SDK-React/Widget/PAGE-CASE/index.tsx.mustache +239 -0
  259. package/src/tasks/create/templates/SDK-React/Widget/PAGE-CASE/styles.js.mustache +7 -0
  260. package/src/tasks/create/templates/SDK-WebComponents/Field/__components.md +4 -0
  261. package/src/tasks/create/templates/SDK-WebComponents/Template/__components.md +4 -0
  262. package/src/tasks/create/templates/SDK-WebComponents/Widget/__components.md +4 -0
  263. package/src/tasks/delete/helper.js +122 -0
  264. package/src/tasks/delete/index.js +45 -0
  265. package/src/tasks/delete-all/helper.js +177 -0
  266. package/src/tasks/delete-all/index.js +45 -0
  267. package/src/tasks/index.js +11 -0
  268. package/src/tasks/linter/index.js +46 -0
  269. package/src/tasks/list/helper.js +118 -0
  270. package/src/tasks/list/index.js +51 -0
  271. package/src/tasks/map/map.js +118 -0
  272. package/src/tasks/publish/helper.js +147 -0
  273. package/src/tasks/publish/index.js +72 -0
  274. package/src/tasks/publish-all/helper.js +139 -0
  275. package/src/tasks/publish-all/index.js +84 -0
  276. package/src/tasks/update/index.js +5 -0
  277. package/src/tasks/upgrade/index.js +31 -0
  278. package/src/tasks/validator/index.js +216 -0
  279. package/src/util.js +442 -0
@@ -0,0 +1,68 @@
1
+ import { useMemo, Children } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { OneColumnPage as OneColumn } from '@pega/cosmos-react-core';
4
+ import { registerIcon } from '@pega/cosmos-react-core';
5
+ import { ConfigurableLayout } from '@pega/cosmos-react-work'
6
+
7
+ // temp
8
+ //import * as headlineIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/headline.icon';
9
+
10
+ import Styled{{COMPONENT_CLASS_NAME}}Wrapper from './styles';
11
+
12
+ import GetNextWork from './GetNextWork';
13
+ import { getLayoutDataFromRegion } from './utils';
14
+
15
+ // temp
16
+ //registerIcon(headlineIcon);
17
+
18
+ // currently getting 'icon' from props is not supported with iconRegistry
19
+ // have to manually get icon, so can't determine a runtime for now
20
+ // so "headline" icon is hardcoded.
21
+
22
+
23
+
24
+ // Duplicated runtime code from Constellation Design System Component
25
+
26
+ // props passed in combination of props from property panel (config.json) and run time props from Constellation
27
+ // any default values in config.pros should be set in defaultProps at bottom of this file
28
+ export default function {{COMPONENT_CLASS_NAME}}(props) {
29
+
30
+ const { children, title, icon, useConfigurableLayout, getPConnect, enableGetNextWork } = props;
31
+ const childArray = useMemo(() => {
32
+ return Children.toArray(children);
33
+ }, [children]);
34
+ const layoutItemsA = useMemo(() => {
35
+ return getLayoutDataFromRegion(childArray[0]);
36
+ }, [childArray[0]]);
37
+
38
+ // temp
39
+ const tempIcon = "pi pi-headline";
40
+
41
+ return (
42
+
43
+ <Styled{{COMPONENT_CLASS_NAME}}Wrapper>
44
+ <OneColumn
45
+ a={useConfigurableLayout ? <ConfigurableLayout items={layoutItemsA} /> : childArray[0]}
46
+ title={title}
47
+ icon={tempIcon?.replace('pi pi-', '')}
48
+ actions={enableGetNextWork ? <GetNextWork getPConnect={getPConnect} /> : null}
49
+ />
50
+ </Styled{{COMPONENT_CLASS_NAME}}Wrapper>
51
+
52
+ );
53
+
54
+
55
+
56
+ }
57
+
58
+ {{COMPONENT_CLASS_NAME}}.defaultProps = {
59
+ icon: '',
60
+ useConfigurableLayout: false
61
+ };
62
+
63
+ {{COMPONENT_CLASS_NAME}}.propTypes = {
64
+ children: PropTypes.arrayOf(PropTypes.node).isRequired,
65
+ title: PropTypes.string.isRequired,
66
+ icon: PropTypes.string,
67
+ useConfigurableLayout: PropTypes.bool
68
+ };
@@ -0,0 +1,4 @@
1
+ {
2
+ "Get next work" : "Get next work",
3
+ "No task currently available" : "No task currently available"
4
+ }
@@ -0,0 +1,7 @@
1
+ import styled, { css } from 'styled-components';
2
+
3
+ export default styled.div(() => {
4
+ return css`
5
+ margin: 0px 0;
6
+ `;
7
+ });
@@ -0,0 +1,226 @@
1
+ import { createUID } from '@pega/cosmos-react-core';
2
+
3
+ //import { LazyMap as LazyComponentMap } from '../../components_map';
4
+
5
+ const LazyComponentMap = {};
6
+
7
+ /**
8
+ * Given the PConnect object of a Template component, retrieve the children
9
+ * metadata of all regions.
10
+ * @param {Function} pConnect PConnect of a Template component.
11
+ */
12
+ export function getAllFields(pConnect) {
13
+ const metadata = pConnect().getRawMetadata();
14
+ if (!metadata.children) {
15
+ return [];
16
+ }
17
+
18
+ let allFields = [];
19
+
20
+ const makeField = (f) => ({
21
+ ...pConnect().resolveConfigProps(f.config),
22
+ type: f.type
23
+ });
24
+
25
+ const hasRegions = !!metadata.children[0]?.children;
26
+ if (hasRegions) {
27
+ allFields = metadata.children.map((region) =>
28
+ region.children.map((field) => {
29
+ // Do not resolve the config props if is status work, instead create component here as status badge and mark as status display
30
+ if (field.config?.value === '@P .pyStatusWork') {
31
+ field.type = 'TextInput';
32
+ field.config.displayAsStatus = true;
33
+ return pConnect().createComponent(field);
34
+ }
35
+
36
+ return makeField(field);
37
+ })
38
+ );
39
+ } else {
40
+ allFields = metadata.children.map(makeField);
41
+ }
42
+
43
+ return allFields;
44
+ }
45
+
46
+ /**
47
+ * A helper function to create an object consisting react component as per the type.
48
+ * This is used by CaseSummary template.
49
+ * @param {object} configObject Object containing meta information for the particular field authored
50
+ * @param {Function} getPConnect PConnect function passed along to other components.
51
+ * @param {string} displayMode displayMode string contains information about the layout of component in review mode.
52
+ */
53
+ export function prepareComponentInCaseSummary(configObject, getPConnect, displayMode) {
54
+ const { config, children } = configObject;
55
+ let { type } = configObject;
56
+ const caseSummaryComponentObject = {};
57
+ let showAddressLabel = true;
58
+ if (config && config.value === '@P .pyStatusWork') {
59
+ config.displayAsStatus = true;
60
+ type = 'TextInput'; // force the type to be TextInput for status field.
61
+ // As TextInput is loaded forcefully sometimes, TextInput component might not be available in lazy map.
62
+ // Load TextInput if it is not available.
63
+ if (!LazyComponentMap[type]) {
64
+ PCore.getAssetLoader().getLoader('component-loader')([type]);
65
+ }
66
+ }
67
+
68
+ caseSummaryComponentObject.name = getPConnect().resolveConfigProps({
69
+ label: config.label
70
+ }).label;
71
+ if (type === 'CaseOperator') {
72
+ switch (caseSummaryComponentObject.name) {
73
+ case 'Create operator':
74
+ caseSummaryComponentObject.name = getPConnect().resolveConfigProps({
75
+ createLabel: config.createLabel
76
+ }).createLabel;
77
+ break;
78
+ case 'Update operator':
79
+ caseSummaryComponentObject.name = getPConnect().resolveConfigProps({
80
+ updateLabel: config.updateLabel
81
+ }).updateLabel;
82
+ break;
83
+ default:
84
+ caseSummaryComponentObject.name = getPConnect().resolveConfigProps({
85
+ resolveLabel: config.resolveLabel
86
+ }).resolveLabel;
87
+ break;
88
+ }
89
+ } else if (type === 'Checkbox') {
90
+ caseSummaryComponentObject.name = getPConnect().resolveConfigProps({
91
+ label: config.caption
92
+ }).label;
93
+ } else if (type === 'Address') {
94
+ showAddressLabel = false;
95
+ }
96
+ const createdComponent = getPConnect().createComponent({
97
+ type,
98
+ children: children ? [...children] : [],
99
+ showAddressLabel,
100
+ config: {
101
+ ...config,
102
+ hideLabel: true,
103
+ key: createUID() // Need a unique key on render of the summary so that the component is recreated each time
104
+ }
105
+ });
106
+ createdComponent.props.getPConnect().setInheritedProp('displayMode', displayMode);
107
+ if (type === 'Address') {
108
+ createdComponent.props.getPConnect().setInheritedProp('showAddressLabel', showAddressLabel);
109
+ }
110
+ // createdComponent.props.getPConnect().setInheritedProp("hideLabel", true);
111
+ caseSummaryComponentObject.value = createdComponent;
112
+ if (type === 'reference') {
113
+ caseSummaryComponentObject.name = createdComponent.props.getPConnect().getInheritedProps().label;
114
+ }
115
+
116
+ return caseSummaryComponentObject;
117
+ }
118
+
119
+ export function getFilteredFields(getPConnect) {
120
+ let primaryFieldsRaw;
121
+ let secondaryFieldsRaw;
122
+ const metadata = getPConnect().getRawMetadata();
123
+ const hasRegions = !!metadata.children[0]?.children;
124
+ if (hasRegions) {
125
+ primaryFieldsRaw = metadata.children[0].children;
126
+ secondaryFieldsRaw = metadata.children[1].children;
127
+ } else {
128
+ [primaryFieldsRaw, secondaryFieldsRaw] = metadata.children;
129
+ }
130
+
131
+ // Filter out fields that are not visible and unsupported types for primary fields (for CaseSummary)
132
+ primaryFieldsRaw = primaryFieldsRaw.filter((item) => {
133
+ const resolvedItem = getPConnect().resolveConfigProps(item.config);
134
+ return resolvedItem.visibility !== false && item.type !== 'TextContent';
135
+ });
136
+
137
+ secondaryFieldsRaw = secondaryFieldsRaw.filter((item) => {
138
+ const resolvedItem = getPConnect().resolveConfigProps(item.config);
139
+ return resolvedItem.visibility !== false && item.type !== 'TextContent';
140
+ });
141
+
142
+ return [primaryFieldsRaw, secondaryFieldsRaw];
143
+ }
144
+
145
+ /**
146
+ * Returns ConfigurableLayout mapped content. With pre-populated default layout configs.
147
+ * @param {object[]} regionData template children item.
148
+ * @returns {object[]} ConfigurableLayout content.
149
+ */
150
+ export function getLayoutDataFromRegion(regionData) {
151
+ const defaultLayoutConfig = {
152
+ width: 'full',
153
+ fillAvailable: true,
154
+ minWidth: [300, 'px']
155
+ };
156
+
157
+ return regionData.props
158
+ ?.getPConnect()
159
+ ?.getChildren()
160
+ ?.map((item, index) => {
161
+ const itemPConnect = item?.getPConnect();
162
+
163
+ return {
164
+ id: itemPConnect?.getComponentName() ? `${itemPConnect.getComponentName()}--${index}` : `item--${index}`,
165
+ content: itemPConnect?.getComponent(),
166
+ layoutConfig: {
167
+ ...defaultLayoutConfig,
168
+ ...itemPConnect?.getConfigProps().layoutConfig
169
+ }
170
+ };
171
+ });
172
+ }
173
+
174
+ /**
175
+ * Determine if the current view is the view of the case step/assignment.
176
+ * @param {Function} pConnect PConnect object for the component
177
+ */
178
+ export function getIsAssignmentView(pConnect) {
179
+ // Get caseInfo content from the store which contains the view info about the current assignment/step
180
+ // TODO To be replaced with pConnect.getCaseInfo().getCurrentAssignmentView when it's available
181
+ const assignmentViewClass = pConnect.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_CLASSID);
182
+ const assignmentViewName = pConnect.getValue(PCore.getConstants().CASE_INFO.ASSIGNMENTACTION_ID);
183
+
184
+ const assignmentViewId = `${assignmentViewName}!${assignmentViewClass}`;
185
+
186
+ // Get the info about the current view from pConnect
187
+ const currentViewId = `${pConnect.getCurrentView()}!${pConnect.getCurrentClassID()}`;
188
+
189
+ return assignmentViewId === currentViewId;
190
+ }
191
+
192
+ /**
193
+ * A hook that gets the instructions content for a view.
194
+ * @param {Function} pConnect PConnect object for the component
195
+ * @param {string} [instructions="casestep"] 'casestep', 'none', or the html content of a Rule-UI-Paragraph rule (processed via core's paragraph annotation handler)
196
+ */
197
+ export function getInstructions(pConnect, instructions = 'casestep') {
198
+ const caseStepInstructions = pConnect.getValue(PCore.getConstants().CASE_INFO.INSTRUCTIONS);
199
+
200
+ // Determine if this view is the current assignment/step view
201
+ const isCurrentAssignmentView = getIsAssignmentView(pConnect);
202
+
203
+ // Case step instructions
204
+ if (instructions === 'casestep' && isCurrentAssignmentView && caseStepInstructions?.length) {
205
+ return caseStepInstructions;
206
+ }
207
+
208
+ // No instructions
209
+ if (instructions === 'none') {
210
+ return undefined;
211
+ }
212
+
213
+ // If the annotation wasn't processed correctly, don't return any instruction text
214
+ if (instructions?.startsWith('@PARAGRAPH')) {
215
+ console.error('@PARAGRAPH annotation was not processed. Hiding custom instructions.');
216
+ return undefined;
217
+ }
218
+
219
+ // Custom instructions from the view
220
+ // The raw metadata for `instructions` will be something like '@PARAGRAPH .SomeParagraphRule' but
221
+ // it is evaluated by core logic to the content
222
+ if (instructions !== 'casestep' && instructions !== 'none') {
223
+ return instructions;
224
+ }
225
+ return undefined;
226
+ }
@@ -0,0 +1,36 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="100px" height="70px" viewBox="0 0 100 70" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>1 col </title>
4
+ <defs>
5
+ <rect id="path-1" x="0" y="0" width="100" height="70"></rect>
6
+ </defs>
7
+ <g id="Concepts" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <g id="Templates" transform="translate(-98.000000, -108.000000)">
9
+ <g id="Change-template" transform="translate(42.000000, 36.000000)">
10
+ <g id="1-col-" transform="translate(56.000000, 72.000000)">
11
+ <mask id="mask-2" fill="white">
12
+ <use xlink:href="#path-1"></use>
13
+ </mask>
14
+ <rect stroke="#A5A8BC" stroke-width="0.5" x="0.25" y="0.25" width="99.5" height="69.5"></rect>
15
+ <g id="white" mask="url(#mask-2)" fill="#FFFFFF">
16
+ <g transform="translate(3.000000, 3.000000)" id="Rectangle">
17
+ <rect x="0" y="0" width="94" height="66.5"></rect>
18
+ </g>
19
+ </g>
20
+ <g id="gray" mask="url(#mask-2)" fill="#8084A7">
21
+ <g transform="translate(6.000000, 6.000000)" id="Rectangle">
22
+ <rect x="0" y="-2.84217094e-14" width="88" height="77.8"></rect>
23
+ </g>
24
+ </g>
25
+ <g id="labels" mask="url(#mask-2)" font-family="OpenSans-Semibold, Open Sans" font-size="11" font-weight="500">
26
+ <g transform="translate(44.000000, 17.000000)" id="A">
27
+ <text>
28
+ <tspan x="0.75" y="12" fill="#FFFFFF">A</tspan>
29
+ </text>
30
+ </g>
31
+ </g>
32
+ </g>
33
+ </g>
34
+ </g>
35
+ </g>
36
+ </svg>
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "{{COMPONENT_KEY}}",
3
+ "label": "{{COMPONENT_LABEL}}",
4
+ "description": "{{DESCRIPTION}}",
5
+ "organization": "{{ORGANIZATION}}",
6
+ "version": "{{VERSION}}",
7
+ "library": "{{LIBRARY}}",
8
+ "allowedApplications": {{{ALLOWEDAPPS}}},
9
+ "componentKey": "{{COMPONENT_KEY}}",
10
+ "type": "{{TYPE}}",
11
+ "subtype": {{{SUB_TYPE}}},
12
+ "icon": "OneColumnPage.svg",
13
+ "properties": [
14
+ {
15
+ "name": "label",
16
+ "label": "Label value",
17
+ "format": "TEXT"
18
+ }
19
+ ],
20
+ "defaultConfig": {
21
+ "label": "@L $this.label"
22
+ }
23
+ }
@@ -0,0 +1,75 @@
1
+ import { useState, useEffect } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { Table, Text } from '@pega/cosmos-react-core';
4
+
5
+ import Styled{{COMPONENT_CLASS_NAME}}Wrapper from './styles';
6
+
7
+
8
+ // Duplicated runtime code from Constellation Design System Component
9
+
10
+ // props passed in combination of props from property panel (config.json) and run time props from Constellation
11
+ // any default values in config.pros should be set in defaultProps at bottom of this file
12
+ export default function {{COMPONENT_CLASS_NAME}}(props) {
13
+ const { getPConnect, label } = props;
14
+ const pConn = getPConnect();
15
+ const [history, setHistory] = useState([]);
16
+ const [isLoading, setIsLoading] = useState(true);
17
+ const caseID = pConn.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID);
18
+ const context = pConn.getContextName();
19
+
20
+ const columns = [
21
+ { renderer: 'date', label: pConn.getLocalizedValue('Date') },
22
+ { renderer: 'description', label: pConn.getLocalizedValue('Description') },
23
+ { renderer: 'user', label: pConn.getLocalizedValue('Performed by') }
24
+ ];
25
+
26
+ useEffect(() => {
27
+ const payload = { dataViewParameters: [{ CaseInstanceKey: caseID }] };
28
+ PCore.getDataApiUtils()
29
+ .getData('D_pyWorkHistory', payload, context)
30
+ .then((response) => {
31
+ setIsLoading(false);
32
+ if (response.data.data !== null) {
33
+ setHistory(
34
+ response.data.data.map((entry, index) => {
35
+ {{! pick new delimiteres for mustache }}
36
+ {{=<% %>=}}
37
+ return {
38
+ date: new Date(entry.pxTimeCreated).toLocaleString(),
39
+ description: <Text style={{ wordBreak: 'break-word' }}>{entry.pyMessageKey}</Text>,
40
+ user: entry.pyPerformer,
41
+ id: index
42
+ };
43
+ <%={{ }}=%> {{! revert delimiteres for mustache }}
44
+ })
45
+ );
46
+ } else {
47
+ setHistory([]);
48
+ }
49
+ })
50
+ .catch(() => {
51
+ setHistory([]);
52
+ setIsLoading(false);
53
+ });
54
+ }, [caseID, context]);
55
+ return (
56
+ <Styled{{COMPONENT_CLASS_NAME}}Wrapper>
57
+ <Table
58
+ title={pConn.getLocalizedValue(label)}
59
+ columns={columns}
60
+ data={history}
61
+ loading={isLoading}
62
+ loadingMessage={pConn.getLocalizedValue('Loading case history')}
63
+ />
64
+ </Styled{{COMPONENT_CLASS_NAME}}Wrapper>
65
+ );
66
+
67
+ }
68
+
69
+ {{COMPONENT_CLASS_NAME}}.defaultProps = {
70
+
71
+ };
72
+
73
+ {{COMPONENT_CLASS_NAME}}.propTypes = {
74
+ getPConnect: PropTypes.func.isRequired
75
+ };
@@ -0,0 +1,7 @@
1
+ import styled, { css } from 'styled-components';
2
+
3
+ export default styled.div(() => {
4
+ return css`
5
+ margin: 0px 0;
6
+ `;
7
+ });
@@ -0,0 +1,36 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="100px" height="70px" viewBox="0 0 100 70" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>1 col </title>
4
+ <defs>
5
+ <rect id="path-1" x="0" y="0" width="100" height="70"></rect>
6
+ </defs>
7
+ <g id="Concepts" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <g id="Templates" transform="translate(-98.000000, -108.000000)">
9
+ <g id="Change-template" transform="translate(42.000000, 36.000000)">
10
+ <g id="1-col-" transform="translate(56.000000, 72.000000)">
11
+ <mask id="mask-2" fill="white">
12
+ <use xlink:href="#path-1"></use>
13
+ </mask>
14
+ <rect stroke="#A5A8BC" stroke-width="0.5" x="0.25" y="0.25" width="99.5" height="69.5"></rect>
15
+ <g id="white" mask="url(#mask-2)" fill="#FFFFFF">
16
+ <g transform="translate(3.000000, 3.000000)" id="Rectangle">
17
+ <rect x="0" y="0" width="94" height="66.5"></rect>
18
+ </g>
19
+ </g>
20
+ <g id="gray" mask="url(#mask-2)" fill="#8084A7">
21
+ <g transform="translate(6.000000, 6.000000)" id="Rectangle">
22
+ <rect x="0" y="-2.84217094e-14" width="88" height="77.8"></rect>
23
+ </g>
24
+ </g>
25
+ <g id="labels" mask="url(#mask-2)" font-family="OpenSans-Semibold, Open Sans" font-size="11" font-weight="500">
26
+ <g transform="translate(44.000000, 17.000000)" id="A">
27
+ <text>
28
+ <tspan x="0.75" y="12" fill="#FFFFFF">A</tspan>
29
+ </text>
30
+ </g>
31
+ </g>
32
+ </g>
33
+ </g>
34
+ </g>
35
+ </g>
36
+ </svg>
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "{{COMPONENT_KEY}}",
3
+ "label": "{{COMPONENT_LABEL}}",
4
+ "description": "{{DESCRIPTION}}",
5
+ "organization": "{{ORGANIZATION}}",
6
+ "version": "{{VERSION}}",
7
+ "library": "{{LIBRARY}}",
8
+ "allowedApplications": {{{ALLOWEDAPPS}}},
9
+ "componentKey": "{{COMPONENT_KEY}}",
10
+ "type": "{{TYPE}}",
11
+ "subtype": {{{SUB_TYPE}}},
12
+ "icon": "OneColumnPage.svg",
13
+ "properties": [
14
+ {
15
+ "name": "description",
16
+ "label": "Description",
17
+ "format": "TEXT",
18
+ "defaultValue": "We've launched a brand new experience to accelerate your workflow. Check out the guides to help you get the most of Cosmos."
19
+ },
20
+ {
21
+ "name": "whatsnewlink",
22
+ "label": "What's new link",
23
+ "format": "TEXT",
24
+ "defaultValue": "https://design.pega.com"
25
+ },
26
+ {
27
+ "name": "image",
28
+ "label": "Image link",
29
+ "format": "TEXT",
30
+ "defaultValue": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzOSAxMSI+PHRpdGxlPlBlZ2EgdGV4dC1vbmx5IGxvZ288L3RpdGxlPjxwYXRoIHN0eWxlPSJmaWxsLW9wYWNpdHk6IC4yNTsiIGZpbGw9IiNmZmYiIGQ9Ik03LjcyIDMuODJjMCAyLjI1LTEuNzggMy40MS00IDMuNDFoLTEuNnYzSDBWLjQyaDMuOTRjMi4zNiAwIDMuNzggMS4zOSAzLjc4IDMuNHptLTQtMS40N2gtMS42djNoMS43QTEuNDcgMS40NyAwIDAgMCA1LjUgMy44MmMwLS45MS0uNjUtMS40Ny0xLjc1LTEuNDd6bTcuNjggNS45MWg1LjN2Mkg5LjI5Vi40Mmg3LjM4djEuOTNoLTUuMjR2Mmg0LjI0djEuOWgtNC4yNHpNMjMuMTggMGE1IDUgMCAwIDEgMy41NyAxLjI4TDI1LjYzIDIuOGEzLjc4IDMuNzggMCAwIDAtMS4wNS0uNjNBNC4zMiA0LjMyIDAgMCAwIDIzLjMxIDIgMy4xNyAzLjE3IDAgMCAwIDIwIDUuMjdhMy4xNiAzLjE2IDAgMCAwIDEgMi4zOSAzLjA3IDMuMDcgMCAwIDAgMi4xNy44NCA0LjYgNC42IDAgMCAwIDIuMDktLjVWNi4xOWgtMi4yVjQuMzhoNC4yNXY0LjU2YTUuNDEgNS40MSAwIDAgMS00LjA4IDEuNTdBNS4zNSA1LjM1IDAgMCAxIDE5LjQzIDlhNS4wNSA1LjA1IDAgMCAxLTEuNTYtMy43NCA1LjIxIDUuMjEgMCAwIDEgMS41Ni0zLjc2QTUuMzEgNS4zMSAwIDAgMSAyMy4xOCAwem0xMS4yOS40Mmw0LjEzIDkuNzloLTIuMjVMMzUuNDggOGgtNC4wNmwtLjkgMi4xOGgtMi4yTDMyLjUxLjQyem0uMjUgNS43MkwzMy40NCAzbC0xLjI5IDMuMTR6bTMtNWEuNzEuNzEgMCAwIDEtLjc0Ljc1LjcxLjcxIDAgMCAxLS43My0uNzUuNzMuNzMgMCAwIDEgLjc1LS43Mi43Mi43MiAwIDAgMSAuNzUuNzF6TTM3IC41M2EuNTkuNTkgMCAwIDAtLjYuNi42MS42MSAwIDEgMCAxLjIxIDAgLjYuNiAwIDAgMC0uNjEtLjZ6bS0uMjQgMVYuNzFIMzdjLjEyIDAgLjE4LjA2LjI1LjA2YS4yMS4yMSAwIDAgMSAuMDcuMTguMTkuMTkgMCAwIDEtLjA3LjE4cy0uMDcuMDgtLjEzLjA4bC4yNi4zNmgtLjJMMzcgMS4yOGgtLjF2LjI5em0uMTMtLjQ0aC4yM2EuMjYuMjYgMCAwIDAgLjA3LS4wOWgtLjA2Yy0uMDUtLjE3LS4wNS0uMTctLjEzLS4xN2gtLjF6Ii8+PC9zdmc+"
31
+ },
32
+ {
33
+ "name": "datasource",
34
+ "label": "Data source for details",
35
+ "defaultValue": "@DATASOURCE D_pyAnnouncements.pxResults",
36
+ "format": "DATASOURCE",
37
+ "required": true,
38
+ "properties": [
39
+ {
40
+ "name": "name",
41
+ "label": "Label",
42
+ "defaultValue": "@P .pyLabel"
43
+ }
44
+ ]
45
+ },
46
+ {
47
+ "label": "Conditions",
48
+ "format": "GROUP",
49
+ "properties": [
50
+ {
51
+ "name": "visibility",
52
+ "label": "Visibility",
53
+ "format": "VISIBILITY"
54
+ }
55
+ ]
56
+ }
57
+ ],
58
+ "defaultConfig": {}
59
+ }
@@ -0,0 +1,48 @@
1
+ import PropTypes from 'prop-types';
2
+ import { AppAnnouncement as PegaAppAnnouncement } from '@pega/cosmos-react-work';
3
+
4
+ import Styled{{COMPONENT_CLASS_NAME}}Wrapper from './styles';
5
+
6
+
7
+ // Duplicated runtime code from Constellation Design System Component
8
+
9
+ // props passed in combination of props from property panel (config.json) and run time props from Constellation
10
+ // any default values in config.pros should be set in defaultProps at bottom of this file
11
+ export default function {{COMPONENT_CLASS_NAME}}(props) {
12
+
13
+ const { header, description, datasource, whatsnewlink, image } = props;
14
+ let details = [];
15
+ if (datasource && datasource.source) {
16
+ details = datasource.source.map((item) => {
17
+ return item.name;
18
+ });
19
+ }
20
+ return (
21
+ <Styled{{COMPONENT_CLASS_NAME}}Wrapper>
22
+ <PegaAppAnnouncement
23
+ heading={header}
24
+ description={description}
25
+ details={details}
26
+ whatsNewLink={whatsnewlink}
27
+ image={image.replace(/ /g, '+')}
28
+ />
29
+ </Styled{{COMPONENT_CLASS_NAME}}Wrapper>
30
+ );
31
+
32
+ }
33
+
34
+ {{COMPONENT_CLASS_NAME}}.defaultProps = {
35
+ header: '',
36
+ description: '',
37
+ image: '',
38
+ datasource: [],
39
+ whatsnewlink: ''
40
+ };
41
+
42
+ {{COMPONENT_CLASS_NAME}}.propTypes = {
43
+ header: PropTypes.string,
44
+ description: PropTypes.string,
45
+ datasource: PropTypes.instanceOf(Object),
46
+ whatsnewlink: PropTypes.string,
47
+ image: PropTypes.string
48
+ };
@@ -0,0 +1,7 @@
1
+ import styled, { css } from 'styled-components';
2
+
3
+ export default styled.div(() => {
4
+ return css`
5
+ margin: 0px 0;
6
+ `;
7
+ });