@pega/dx-component-builder-sdk 0.1.47 → 0.1.49

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 (268) hide show
  1. package/package.json +3 -2
  2. package/src/auth.js +726 -508
  3. package/src/cli.js +1 -1
  4. package/src/constants.js +728 -2
  5. package/src/tasks/authenticate/index.js +12 -2
  6. package/src/tasks/build/helper.js +10 -6
  7. package/src/tasks/build/index.js +76 -22
  8. package/src/tasks/build-all/helper.js +16 -11
  9. package/src/tasks/build-all/index.js +106 -42
  10. package/src/tasks/bundle/{builder → builderAngular}/paths.js +3 -2
  11. package/src/tasks/bundle/builderAngular/webpack.config.js +342 -0
  12. package/src/tasks/bundle/builderAssociated/index.js +218 -0
  13. package/src/tasks/bundle/builderAssociated/modules.js +139 -0
  14. package/src/tasks/bundle/builderAssociated/paths.js +51 -0
  15. package/src/tasks/bundle/{builder → builderAssociated}/webpack.config.js +5 -4
  16. package/src/tasks/bundle/builderReact/index.js +218 -0
  17. package/src/tasks/bundle/builderReact/modules.js +139 -0
  18. package/src/tasks/bundle/builderReact/paths.js +51 -0
  19. package/src/tasks/bundle/builderReact/webpack.config.js +337 -0
  20. package/src/tasks/bundle/index.js +122 -5
  21. package/src/tasks/create/index.js +54 -12
  22. package/src/tasks/create/templates/Constellation/field/Boolean/styles.js.mustache +13 -6
  23. package/src/tasks/create/templates/Constellation/field/Date/DateFormatter.js.mustache +7 -7
  24. package/src/tasks/create/templates/Constellation/field/Date/date.js.mustache +8 -8
  25. package/src/tasks/create/templates/Constellation/field/Date/styles.js.mustache +13 -6
  26. package/src/tasks/create/templates/Constellation/field/DateTime/date-time.js.mustache +10 -10
  27. package/src/tasks/create/templates/Constellation/field/DateTime/date-utils.js.mustache +6 -5
  28. package/src/tasks/create/templates/Constellation/field/DateTime/date.js.mustache +6 -3
  29. package/src/tasks/create/templates/Constellation/field/DateTime/styles.js.mustache +13 -6
  30. package/src/tasks/create/templates/Constellation/field/Decimal/index.jsx.mustache +2 -2
  31. package/src/tasks/create/templates/Constellation/field/Decimal/styles.js.mustache +13 -6
  32. package/src/tasks/create/templates/Constellation/field/Decimal-Currency/index.jsx.mustache +2 -2
  33. package/src/tasks/create/templates/Constellation/field/Decimal-Currency/styles.js.mustache +13 -6
  34. package/src/tasks/create/templates/Constellation/field/Decimal-Percentage/index.jsx.mustache +4 -4
  35. package/src/tasks/create/templates/Constellation/field/Decimal-Percentage/styles.js.mustache +13 -6
  36. package/src/tasks/create/templates/Constellation/field/Integer/index.jsx.mustache +2 -2
  37. package/src/tasks/create/templates/Constellation/field/Integer/styles.js.mustache +13 -6
  38. package/src/tasks/create/templates/Constellation/field/Picklist/styles.js.mustache +13 -6
  39. package/src/tasks/create/templates/Constellation/field/Text/styles.js.mustache +13 -6
  40. package/src/tasks/create/templates/Constellation/field/Text-Email/styles.js.mustache +13 -6
  41. package/src/tasks/create/templates/Constellation/field/Text-Input/styles.js.mustache +13 -6
  42. package/src/tasks/create/templates/Constellation/field/Text-Paragraph/styles.js.mustache +13 -6
  43. package/src/tasks/create/templates/Constellation/field/Text-Phone/index.jsx.mustache +0 -1
  44. package/src/tasks/create/templates/Constellation/field/Text-Phone/styles.js.mustache +13 -6
  45. package/src/tasks/create/templates/Constellation/field/Text-URL/styles.js.mustache +13 -6
  46. package/src/tasks/create/templates/Constellation/field/TimeOfDay/styles.js.mustache +14 -0
  47. package/src/tasks/create/templates/Constellation/field/{TimeofDay → TimeOfDay}/time-of-day.js.mustache +6 -5
  48. package/src/tasks/create/templates/Constellation/template/DETAILS/demo.stories.jsx.mustache +20 -6
  49. package/src/tasks/create/templates/Constellation/template/DETAILS/index.jsx.mustache +2 -2
  50. package/src/tasks/create/templates/Constellation/template/DETAILS/mock.stories.js.mustache +20 -10
  51. package/src/tasks/create/templates/Constellation/template/DETAILS/styles.js.mustache +13 -6
  52. package/src/tasks/create/templates/Constellation/template/DETAILS-region/demo.stories.jsx.mustache +20 -7
  53. package/src/tasks/create/templates/Constellation/template/DETAILS-region/index.jsx.mustache +2 -2
  54. package/src/tasks/create/templates/Constellation/template/DETAILS-region/mock.stories.js.mustache +28 -13
  55. package/src/tasks/create/templates/Constellation/template/DETAILS-region/styles.js.mustache +13 -6
  56. package/src/tasks/create/templates/Constellation/template/FORM/demo.stories.jsx.mustache +92 -16
  57. package/src/tasks/create/templates/Constellation/template/FORM/index.jsx.mustache +2 -2
  58. package/src/tasks/create/templates/Constellation/template/FORM/mock.stories.js.mustache +24 -12
  59. package/src/tasks/create/templates/Constellation/template/FORM/styles.js.mustache +13 -6
  60. package/src/tasks/create/templates/Constellation/template/FORM-region/demo.stories.jsx.mustache +91 -13
  61. package/src/tasks/create/templates/Constellation/template/FORM-region/index.jsx.mustache +2 -2
  62. package/src/tasks/create/templates/Constellation/template/FORM-region/mock.stories.js.mustache +24 -12
  63. package/src/tasks/create/templates/Constellation/template/FORM-region/styles.js.mustache +13 -6
  64. package/src/tasks/create/templates/Constellation/template/PAGE/demo.stories.jsx.mustache +1 -0
  65. package/src/tasks/create/templates/Constellation/template/PAGE/styles.js.mustache +13 -6
  66. package/src/tasks/create/templates/Constellation/widget/CASE/index.jsx.mustache +2 -2
  67. package/src/tasks/create/templates/Constellation/widget/CASE/styles.js.mustache +13 -6
  68. package/src/tasks/create/templates/Constellation/widget/PAGE/styles.js.mustache +13 -6
  69. package/src/tasks/create/templates/Constellation/widget/PAGE-CASE/Operator.jsx.mustache +2 -2
  70. package/src/tasks/create/templates/Constellation/widget/PAGE-CASE/index.jsx.mustache +2 -2
  71. package/src/tasks/create/templates/Constellation/widget/PAGE-CASE/styles.js.mustache +13 -6
  72. package/src/tasks/create/templates/SDK-Angular/field/Boolean/boolean.component.html.mustache +42 -0
  73. package/src/tasks/create/templates/SDK-Angular/field/Boolean/boolean.component.scss.mustache +24 -0
  74. package/src/tasks/create/templates/SDK-Angular/field/Boolean/boolean.component.spec.ts.mustache +25 -0
  75. package/src/tasks/create/templates/SDK-Angular/field/Boolean/boolean.component.ts.mustache +165 -0
  76. package/src/tasks/create/templates/SDK-Angular/field/Boolean/config.json.mustache +87 -0
  77. package/src/tasks/create/templates/SDK-Angular/field/Boolean/demo.stories.jsx.mustache +56 -0
  78. package/src/tasks/create/templates/SDK-Angular/field/Boolean/mock.stories.js.mustache +15 -0
  79. package/src/tasks/create/templates/SDK-Angular/field/Date/config.json.mustache +147 -0
  80. package/src/tasks/create/templates/SDK-Angular/field/Date/date.component.html.mustache +35 -0
  81. package/src/tasks/create/templates/SDK-Angular/field/Date/date.component.scss.mustache +20 -0
  82. package/src/tasks/create/templates/SDK-Angular/field/Date/date.component.spec.ts.mustache +25 -0
  83. package/src/tasks/create/templates/SDK-Angular/field/Date/date.component.ts.mustache +209 -0
  84. package/src/tasks/create/templates/SDK-Angular/field/DateTime/config.json.mustache +204 -0
  85. package/src/tasks/create/templates/SDK-Angular/field/DateTime/date-time.component.html.mustache +31 -0
  86. package/src/tasks/create/templates/SDK-Angular/field/DateTime/date-time.component.scss.mustache +20 -0
  87. package/src/tasks/create/templates/SDK-Angular/field/DateTime/date-time.component.spec.ts.mustache +25 -0
  88. package/src/tasks/create/templates/SDK-Angular/field/DateTime/date-time.component.ts.mustache +177 -0
  89. package/src/tasks/create/templates/SDK-Angular/field/Decimal/config.json.mustache +94 -0
  90. package/src/tasks/create/templates/SDK-Angular/field/Decimal/decimal.component.html.mustache +32 -0
  91. package/src/tasks/create/templates/SDK-Angular/field/Decimal/decimal.component.scss.mustache +20 -0
  92. package/src/tasks/create/templates/SDK-Angular/field/Decimal/decimal.component.spec.ts.mustache +25 -0
  93. package/src/tasks/create/templates/SDK-Angular/field/Decimal/decimal.component.ts.mustache +170 -0
  94. package/src/tasks/create/templates/SDK-Angular/field/Decimal-Currency/config.json.mustache +125 -0
  95. package/src/tasks/create/templates/SDK-Angular/field/Decimal-Currency/decimal-currency.component.html.mustache +33 -0
  96. package/src/tasks/create/templates/SDK-Angular/field/Decimal-Currency/decimal-currency.component.scss.mustache +20 -0
  97. package/src/tasks/create/templates/SDK-Angular/field/Decimal-Currency/decimal-currency.component.spec.ts.mustache +25 -0
  98. package/src/tasks/create/templates/SDK-Angular/field/Decimal-Currency/decimal-currency.component.ts.mustache +175 -0
  99. package/src/tasks/create/templates/SDK-Angular/field/Decimal-Percentage/config.json.mustache +94 -0
  100. package/src/tasks/create/templates/SDK-Angular/field/Decimal-Percentage/decimal-percentage.component.html.mustache +33 -0
  101. package/src/tasks/create/templates/SDK-Angular/field/Decimal-Percentage/decimal-percentage.component.scss.mustache +20 -0
  102. package/src/tasks/create/templates/SDK-Angular/field/Decimal-Percentage/decimal-percentage.component.spec.ts.mustache +25 -0
  103. package/src/tasks/create/templates/SDK-Angular/field/Decimal-Percentage/decimal-percentage.component.ts.mustache +176 -0
  104. package/src/tasks/create/templates/SDK-Angular/field/Integer/config.json.mustache +88 -0
  105. package/src/tasks/create/templates/SDK-Angular/field/Integer/integer.component.html.mustache +33 -0
  106. package/src/tasks/create/templates/SDK-Angular/field/Integer/integer.component.scss.mustache +20 -0
  107. package/src/tasks/create/templates/SDK-Angular/field/Integer/integer.component.spec.ts.mustache +25 -0
  108. package/src/tasks/create/templates/SDK-Angular/field/Integer/integer.component.ts.mustache +180 -0
  109. package/src/tasks/create/templates/SDK-Angular/field/Picklist/config.json.mustache +86 -0
  110. package/src/tasks/create/templates/SDK-Angular/field/Picklist/picklist.component.html.mustache +30 -0
  111. package/src/tasks/create/templates/SDK-Angular/field/Picklist/picklist.component.scss.mustache +25 -0
  112. package/src/tasks/create/templates/SDK-Angular/field/Picklist/picklist.component.spec.ts.mustache +25 -0
  113. package/src/tasks/create/templates/SDK-Angular/field/Picklist/picklist.component.ts.mustache +195 -0
  114. package/src/tasks/create/templates/SDK-Angular/field/Text/config.json.mustache +83 -0
  115. package/src/tasks/create/templates/SDK-Angular/field/Text/text.component.html.mustache +17 -0
  116. package/src/tasks/create/templates/SDK-Angular/field/Text/text.component.scss.mustache +30 -0
  117. package/src/tasks/create/templates/SDK-Angular/field/Text/text.component.spec.ts.mustache +25 -0
  118. package/src/tasks/create/templates/SDK-Angular/field/Text/text.component.ts.mustache +145 -0
  119. package/src/tasks/create/templates/SDK-Angular/field/Text-Email/config.json.mustache +83 -0
  120. package/src/tasks/create/templates/SDK-Angular/field/Text-Email/text-email.component.html.mustache +31 -0
  121. package/src/tasks/create/templates/SDK-Angular/field/Text-Email/text-email.component.scss.mustache +20 -0
  122. package/src/tasks/create/templates/SDK-Angular/field/Text-Email/text-email.component.spec.ts.mustache +25 -0
  123. package/src/tasks/create/templates/SDK-Angular/field/Text-Email/text-email.component.ts.mustache +175 -0
  124. package/src/tasks/create/templates/SDK-Angular/field/Text-Input/config.json.mustache +83 -0
  125. package/src/tasks/create/templates/SDK-Angular/field/Text-Input/text.component.html.mustache +31 -0
  126. package/src/tasks/create/templates/SDK-Angular/field/Text-Input/text.component.scss.mustache +20 -0
  127. package/src/tasks/create/templates/SDK-Angular/field/Text-Input/text.component.spec.ts.mustache +25 -0
  128. package/src/tasks/create/templates/SDK-Angular/field/Text-Input/text.component.ts.mustache +177 -0
  129. package/src/tasks/create/templates/SDK-Angular/field/Text-Paragraph/config.json.mustache +83 -0
  130. package/src/tasks/create/templates/SDK-Angular/field/Text-Paragraph/text-paragraph.component.html.mustache +31 -0
  131. package/src/tasks/create/templates/SDK-Angular/field/Text-Paragraph/text-paragraph.component.scss.mustache +20 -0
  132. package/src/tasks/create/templates/SDK-Angular/field/Text-Paragraph/text-paragraph.component.spec.ts.mustache +25 -0
  133. package/src/tasks/create/templates/SDK-Angular/field/Text-Paragraph/text-paragraph.component.ts.mustache +179 -0
  134. package/src/tasks/create/templates/SDK-Angular/field/Text-Phone/config.json.mustache +95 -0
  135. package/src/tasks/create/templates/SDK-Angular/field/Text-Phone/text-phone.component.html.mustache +30 -0
  136. package/src/tasks/create/templates/SDK-Angular/field/Text-Phone/text-phone.component.scss.mustache +81 -0
  137. package/src/tasks/create/templates/SDK-Angular/field/Text-Phone/text-phone.component.spec.ts.mustache +25 -0
  138. package/src/tasks/create/templates/SDK-Angular/field/Text-Phone/text-phone.component.ts.mustache +194 -0
  139. package/src/tasks/create/templates/SDK-Angular/field/Text-URL/config.json.mustache +111 -0
  140. package/src/tasks/create/templates/SDK-Angular/field/Text-URL/text-url.component.html.mustache +30 -0
  141. package/src/tasks/create/templates/SDK-Angular/field/Text-URL/text-url.component.scss.mustache +20 -0
  142. package/src/tasks/create/templates/SDK-Angular/field/Text-URL/text-url.component.spec.ts.mustache +26 -0
  143. package/src/tasks/create/templates/SDK-Angular/field/Text-URL/text-url.component.ts.mustache +174 -0
  144. package/src/tasks/create/templates/SDK-Angular/field/TimeOfDay/time-of-day.component.html.mustache +30 -0
  145. package/src/tasks/create/templates/SDK-Angular/field/TimeOfDay/time-of-day.component.scss.mustache +20 -0
  146. package/src/tasks/create/templates/SDK-Angular/field/TimeOfDay/time-of-day.component.spec.ts.mustache +25 -0
  147. package/src/tasks/create/templates/SDK-Angular/field/TimeOfDay/time-of-day.component.ts.mustache +172 -0
  148. package/src/tasks/create/templates/SDK-Angular/template/DETAILS/DefaultForm.svg +29 -0
  149. package/src/tasks/create/templates/SDK-Angular/template/DETAILS/config.json.mustache +21 -0
  150. package/src/tasks/create/templates/SDK-Angular/template/DETAILS/demo.stories.jsx.mustache +71 -0
  151. package/src/tasks/create/templates/SDK-Angular/template/DETAILS/details.component.html.mustache +7 -0
  152. package/src/tasks/create/templates/SDK-Angular/template/DETAILS/details.component.scss.mustache +7 -0
  153. package/src/tasks/create/templates/SDK-Angular/template/DETAILS/details.component.spec.ts.mustache +25 -0
  154. package/src/tasks/create/templates/SDK-Angular/template/DETAILS/details.component.ts.mustache +121 -0
  155. package/src/tasks/create/templates/SDK-Angular/template/DETAILS/mock.stories.js.mustache +294 -0
  156. package/src/tasks/create/templates/SDK-Angular/template/DETAILS-region/TwoColumnDetails.svg +28 -0
  157. package/src/tasks/create/templates/SDK-Angular/template/DETAILS-region/config.json.mustache +27 -0
  158. package/src/tasks/create/templates/SDK-Angular/template/DETAILS-region/demo.stories.jsx.mustache +73 -0
  159. package/src/tasks/create/templates/SDK-Angular/template/DETAILS-region/details.component.html.mustache +6 -0
  160. package/src/tasks/create/templates/SDK-Angular/template/DETAILS-region/details.component.scss.mustache +7 -0
  161. package/src/tasks/create/templates/SDK-Angular/template/DETAILS-region/details.component.spec.ts.mustache +25 -0
  162. package/src/tasks/create/templates/SDK-Angular/template/DETAILS-region/details.component.ts.mustache +92 -0
  163. package/src/tasks/create/templates/SDK-Angular/template/DETAILS-region/mock.stories.js.mustache +290 -0
  164. package/src/tasks/create/templates/SDK-Angular/template/FORM/DefaultForm.svg +29 -0
  165. package/src/tasks/create/templates/SDK-Angular/template/FORM/config.json.mustache +45 -0
  166. package/src/tasks/create/templates/SDK-Angular/template/FORM/demo.stories.jsx.mustache +215 -0
  167. package/src/tasks/create/templates/SDK-Angular/template/FORM/form.component.html.mustache +23 -0
  168. package/src/tasks/create/templates/SDK-Angular/template/FORM/form.component.scss.mustache +33 -0
  169. package/src/tasks/create/templates/SDK-Angular/template/FORM/form.component.spec.ts.mustache +25 -0
  170. package/src/tasks/create/templates/SDK-Angular/template/FORM/form.component.ts.mustache +71 -0
  171. package/src/tasks/create/templates/SDK-Angular/template/FORM-region/TwoColumn.svg +38 -0
  172. package/src/tasks/create/templates/SDK-Angular/template/FORM-region/config.json.mustache +49 -0
  173. package/src/tasks/create/templates/SDK-Angular/template/FORM-region/demo.stories.jsx.mustache +183 -0
  174. package/src/tasks/create/templates/SDK-Angular/template/FORM-region/form.component.html.mustache +16 -0
  175. package/src/tasks/create/templates/SDK-Angular/template/FORM-region/form.component.scss.mustache +28 -0
  176. package/src/tasks/create/templates/SDK-Angular/template/FORM-region/form.component.spec.ts.mustache +25 -0
  177. package/src/tasks/create/templates/SDK-Angular/template/FORM-region/form.component.ts.mustache +26 -0
  178. package/src/tasks/create/templates/SDK-Angular/template/FORM-region/mock.stories.js.mustache +132 -0
  179. package/src/tasks/create/templates/SDK-Angular/template/PAGE/OneColumnPage.svg +28 -0
  180. package/src/tasks/create/templates/SDK-Angular/template/PAGE/config.json.mustache +32 -0
  181. package/src/tasks/create/templates/SDK-Angular/template/PAGE/demo.stories.jsx.mustache +80 -0
  182. package/src/tasks/create/templates/SDK-Angular/template/PAGE/mock.stories.js.mustache +115 -0
  183. package/src/tasks/create/templates/SDK-Angular/template/PAGE/page.component.html.mustache +15 -0
  184. package/src/tasks/create/templates/SDK-Angular/template/PAGE/page.component.scss.mustache +3 -0
  185. package/src/tasks/create/templates/SDK-Angular/template/PAGE/page.component.spec.ts.mustache +25 -0
  186. package/src/tasks/create/templates/SDK-Angular/template/PAGE/page.component.ts.mustache +63 -0
  187. package/src/tasks/create/templates/SDK-Angular/widget/CASE/OneColumnPage.svg +36 -0
  188. package/src/tasks/create/templates/SDK-Angular/widget/CASE/case.component.html.mustache +15 -0
  189. package/src/tasks/create/templates/SDK-Angular/widget/CASE/case.component.scss.mustache +22 -0
  190. package/src/tasks/create/templates/SDK-Angular/widget/CASE/case.component.spec.ts.mustache +25 -0
  191. package/src/tasks/create/templates/SDK-Angular/widget/CASE/case.component.ts.mustache +111 -0
  192. package/src/tasks/create/templates/SDK-Angular/widget/CASE/config.json.mustache +23 -0
  193. package/src/tasks/create/templates/SDK-Angular/widget/CASE/demo.stories.jsx.mustache +70 -0
  194. package/src/tasks/create/templates/SDK-Angular/widget/CASE/mock.stories.js.mustache +390 -0
  195. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/OneColumnPage.svg +36 -0
  196. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/config.json.mustache +59 -0
  197. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/demo.stories.jsx.mustache +29 -0
  198. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/mock.stories.js.mustache +23 -0
  199. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/page.component.html.mustache +17 -0
  200. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/page.component.scss.mustache +19 -0
  201. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/page.component.ts.mustache +32 -0
  202. package/src/tasks/create/templates/SDK-Angular/widget/PAGE/pagecomponent.spec.ts.mustache +25 -0
  203. package/src/tasks/create/templates/SDK-Angular/widget/PAGE-CASE/OneColumnPage.svg +36 -0
  204. package/src/tasks/create/templates/SDK-Angular/widget/PAGE-CASE/config.json.mustache +66 -0
  205. package/src/tasks/create/templates/SDK-Angular/widget/PAGE-CASE/demo.stories.jsx.mustache +52 -0
  206. package/src/tasks/create/templates/SDK-Angular/widget/PAGE-CASE/mock.stories.js.mustache +52 -0
  207. package/src/tasks/create/templates/SDK-Angular/widget/PAGE-CASE/page-case.component.html.mustache +28 -0
  208. package/src/tasks/create/templates/SDK-Angular/widget/PAGE-CASE/page-case.component.scss.mustache +137 -0
  209. package/src/tasks/create/templates/SDK-Angular/widget/PAGE-CASE/page-case.component.spec.ts.mustache +25 -0
  210. package/src/tasks/create/templates/SDK-Angular/widget/PAGE-CASE/page-case.component.ts.mustache +115 -0
  211. package/src/tasks/create/templates/SDK-React/field/Boolean/index.tsx.mustache +3 -3
  212. package/src/tasks/create/templates/SDK-React/field/Date/index.tsx.mustache +2 -2
  213. package/src/tasks/create/templates/SDK-React/field/DateTime/index.tsx.mustache +6 -7
  214. package/src/tasks/create/templates/SDK-React/field/Decimal/demo.stories.jsx.mustache +5 -1
  215. package/src/tasks/create/templates/SDK-React/field/Decimal/index.tsx.mustache +78 -28
  216. package/src/tasks/create/templates/SDK-React/field/Decimal-Currency/index.tsx.mustache +3 -3
  217. package/src/tasks/create/templates/SDK-React/field/Decimal-Percentage/index.tsx.mustache +2 -2
  218. package/src/tasks/create/templates/SDK-React/field/Integer/index.tsx.mustache +2 -2
  219. package/src/tasks/create/templates/SDK-React/field/Picklist/demo.stories.jsx.mustache +13 -0
  220. package/src/tasks/create/templates/SDK-React/field/Picklist/index.tsx.mustache +30 -10
  221. package/src/tasks/create/templates/SDK-React/field/Text/index.tsx.mustache +2 -2
  222. package/src/tasks/create/templates/SDK-React/field/Text-Email/index.tsx.mustache +2 -2
  223. package/src/tasks/create/templates/SDK-React/field/Text-Input/index.tsx.mustache +2 -2
  224. package/src/tasks/create/templates/SDK-React/field/Text-Paragraph/index.tsx.mustache +2 -2
  225. package/src/tasks/create/templates/SDK-React/field/Text-Phone/index.tsx.mustache +6 -5
  226. package/src/tasks/create/templates/SDK-React/field/Text-URL/index.tsx.mustache +11 -0
  227. package/src/tasks/create/templates/SDK-React/field/TimeOfDay/config.json.mustache +135 -0
  228. package/src/tasks/create/templates/SDK-React/field/{TimeofDay → TimeOfDay}/index.tsx.mustache +12 -1
  229. package/src/tasks/create/templates/SDK-React/template/DETAILS/index.tsx.mustache +7 -3
  230. package/src/tasks/create/templates/SDK-React/template/DETAILS-region/index.tsx.mustache +8 -4
  231. package/src/tasks/create/templates/SDK-React/template/FORM/index.tsx.mustache +30 -20
  232. package/src/tasks/create/templates/SDK-React/template/FORM-region/demo.stories.jsx.mustache +2 -2
  233. package/src/tasks/create/templates/SDK-React/template/PAGE/demo.stories.jsx.mustache +1 -0
  234. package/src/tasks/create/templates/SDK-React/widget/CASE/index.tsx.mustache +4 -3
  235. package/src/tasks/create/templates/SDK-React/widget/PAGE/index.tsx.mustache +7 -7
  236. package/src/tasks/create/templates/SDK-React/widget/PAGE-CASE/demo.stories.jsx.mustache +2 -10
  237. package/src/tasks/create/templates/SDK-React/widget/PAGE-CASE/index.tsx.mustache +138 -36
  238. package/src/tasks/create/templates/SDK-React/widget/PAGE-CASE/mock.stories.js.mustache +1 -1
  239. package/src/tasks/create-all/index.js +112 -56
  240. package/src/tasks/delete/helper.js +88 -24
  241. package/src/tasks/delete/index.js +17 -8
  242. package/src/tasks/delete-all/helper.js +88 -25
  243. package/src/tasks/delete-all/index.js +15 -6
  244. package/src/tasks/list/helper.js +2 -3
  245. package/src/tasks/list/index.js +14 -7
  246. package/src/tasks/map/map.js +212 -20
  247. package/src/tasks/map-all/index.js +19 -2
  248. package/src/tasks/override/index.js +140 -79
  249. package/src/tasks/override-all/index.js +54 -6
  250. package/src/tasks/publish/helper.js +94 -51
  251. package/src/tasks/publish/index.js +87 -34
  252. package/src/tasks/publish-all/helper.js +97 -58
  253. package/src/tasks/publish-all/index.js +127 -48
  254. package/src/tasks/rename/index.js +184 -111
  255. package/src/tasks/validator/index.js +31 -7
  256. package/src/util.js +187 -39
  257. package/src/tasks/create/templates/Constellation/field/TimeofDay/styles.js.mustache +0 -7
  258. /package/src/tasks/bundle/{builder → builderAngular}/index.js +0 -0
  259. /package/src/tasks/bundle/{builder → builderAngular}/modules.js +0 -0
  260. /package/src/tasks/create/templates/Constellation/field/{TimeofDay → TimeOfDay}/config.json.mustache +0 -0
  261. /package/src/tasks/create/templates/Constellation/field/{TimeofDay → TimeOfDay}/demo.stories.jsx.mustache +0 -0
  262. /package/src/tasks/create/templates/Constellation/field/{TimeofDay → TimeOfDay}/index.jsx.mustache +0 -0
  263. /package/src/tasks/create/templates/Constellation/field/{TimeofDay → TimeOfDay}/mock.stories.js.mustache +0 -0
  264. /package/src/tasks/create/templates/Constellation/field/{TimeofDay → TimeOfDay}/suggestions-handler.js +0 -0
  265. /package/src/tasks/create/templates/{SDK-React/field/TimeofDay → SDK-Angular/field/TimeOfDay}/config.json.mustache +0 -0
  266. /package/src/tasks/create/templates/SDK-React/field/{TimeofDay → TimeOfDay}/demo.stories.jsx.mustache +0 -0
  267. /package/src/tasks/create/templates/SDK-React/field/{TimeofDay → TimeOfDay}/mock.stories.js.mustache +0 -0
  268. /package/src/tasks/create/templates/SDK-React/field/{TimeofDay → TimeOfDay}/styles.js.mustache +0 -0
@@ -0,0 +1,175 @@
1
+ import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
4
+ import { MatInputModule } from '@angular/material/input';
5
+ import { MatFormFieldModule } from '@angular/material/form-field';
6
+ import { interval } from 'rxjs';
7
+ import { AngularPConnectService } from '@pega/angular-sdk-library';
8
+ import { Utils } from '@pega/angular-sdk-library';
9
+ import { TextComponent } from '@pega/angular-sdk-library';
10
+ import { FieldValueListComponent } from '@pega/angular-sdk-library';
11
+
12
+ declare const window: any;
13
+
14
+ @Component({
15
+ selector: 'app-{{COMPONENT_CLASS_NAME_KEBAB}}',
16
+ templateUrl: './{{COMPONENT_CLASS_NAME_KEBAB}}.component.html',
17
+ styleUrls: ['./{{COMPONENT_CLASS_NAME_KEBAB}}.component.scss'],
18
+ standalone: true,
19
+ imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, TextComponent, FieldValueListComponent]
20
+ })
21
+ export class {{COMPONENT_CLASS_NAME}}Component implements OnInit {
22
+ @Input() pConn$: any;
23
+ @Input() formGroup$: FormGroup;
24
+
25
+ // Used with AngularPConnect
26
+ angularPConnectData: any = {};
27
+ configProps$: Object;
28
+
29
+ label$: string = '';
30
+ value$: number;
31
+ bRequired$: boolean = false;
32
+ bReadonly$: boolean = false;
33
+ bDisabled$: boolean = false;
34
+ bVisible$: boolean = true;
35
+ displayMode$: string = '';
36
+ controlName$: string;
37
+ bHasForm$: boolean = true;
38
+ componentReference: string = '';
39
+ testId: string;
40
+
41
+ fieldControl = new FormControl<number | null>(null, null);
42
+
43
+ constructor(
44
+ private angularPConnect: AngularPConnectService,
45
+ private cdRef: ChangeDetectorRef,
46
+ private utils: Utils
47
+ ) {}
48
+
49
+ ngOnInit(): void {
50
+ // First thing in initialization is registering and subscribing to the AngularPConnect service
51
+ this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
52
+ this.controlName$ = this.angularPConnect.getComponentID(this);
53
+
54
+ // Then, continue on with other initialization
55
+
56
+ // call updateSelf when initializing
57
+ //this.updateSelf();
58
+ this.checkAndUpdate();
59
+
60
+ if (this.formGroup$ != null) {
61
+ // add control to formGroup
62
+ this.formGroup$.addControl(this.controlName$, this.fieldControl);
63
+ this.fieldControl.setValue(this.value$);
64
+ this.bHasForm$ = true;
65
+ } else {
66
+ this.bReadonly$ = true;
67
+ this.bHasForm$ = false;
68
+ }
69
+ }
70
+
71
+ ngOnDestroy(): void {
72
+ if (this.formGroup$ != null) {
73
+ this.formGroup$.removeControl(this.controlName$);
74
+ }
75
+
76
+ if (this.angularPConnectData.unsubscribeFn) {
77
+ this.angularPConnectData.unsubscribeFn();
78
+ }
79
+ }
80
+
81
+ // Callback passed when subscribing to store change
82
+ onStateChange() {
83
+ this.checkAndUpdate();
84
+ }
85
+
86
+ checkAndUpdate() {
87
+ // Should always check the bridge to see if the component should
88
+ // update itself (re-render)
89
+ const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
90
+
91
+ // ONLY call updateSelf when the component should update
92
+ if (bUpdateSelf) {
93
+ this.updateSelf();
94
+ }
95
+ }
96
+
97
+ // updateSelf
98
+ updateSelf(): void {
99
+ // starting very simple...
100
+
101
+ // moved this from ngOnInit() and call this from there instead...
102
+ this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
103
+ this.testId = this.configProps$['testId'];
104
+ this.label$ = this.configProps$['label'];
105
+ this.displayMode$ = this.configProps$['displayMode'];
106
+ let nValue = this.configProps$['value'];
107
+ this.value$ = nValue && typeof nValue == 'string' ? parseFloat(nValue) : nValue;
108
+ // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError
109
+ setTimeout(() => {
110
+ if (this.configProps$['required'] != null) {
111
+ this.bRequired$ = this.utils.getBooleanValue(this.configProps$['required']);
112
+ }
113
+ this.cdRef.detectChanges();
114
+ });
115
+
116
+ if (this.configProps$['visibility'] != null) {
117
+ this.bVisible$ = this.utils.getBooleanValue(this.configProps$['visibility']);
118
+ }
119
+
120
+ // disabled
121
+ if (this.configProps$['disabled'] != undefined) {
122
+ this.bDisabled$ = this.utils.getBooleanValue(this.configProps$['disabled']);
123
+ }
124
+
125
+ if (this.bDisabled$) {
126
+ this.fieldControl.disable();
127
+ } else {
128
+ this.fieldControl.enable();
129
+ }
130
+
131
+ if (this.configProps$['readOnly'] != null) {
132
+ this.bReadonly$ = this.utils.getBooleanValue(this.configProps$['readOnly']);
133
+ }
134
+
135
+ this.componentReference = this.pConn$.getStateProps().value;
136
+
137
+ // trigger display of error message with field control
138
+ if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {
139
+ let timer = interval(100).subscribe(() => {
140
+ this.fieldControl.setErrors({ message: true });
141
+ this.fieldControl.markAsTouched();
142
+
143
+ timer.unsubscribe();
144
+ });
145
+ }
146
+ }
147
+
148
+ fieldOnChange(event: any) {
149
+ this.angularPConnectData.actions.onChange(this, event);
150
+ }
151
+
152
+ fieldOnClick(event: any) {}
153
+
154
+ fieldOnBlur(event: any) {
155
+ // PConnect wants to use eventHandler for onBlur
156
+
157
+ this.angularPConnectData.actions.onBlur(this, event);
158
+ }
159
+
160
+ getErrorMessage() {
161
+ let errMessage: string = '';
162
+
163
+ // look for validation messages for json, pre-defined or just an error pushed from workitem (400)
164
+ if (this.fieldControl.hasError('message')) {
165
+ errMessage = this.angularPConnectData.validateMessage;
166
+ return errMessage;
167
+ } else if (this.fieldControl.hasError('required')) {
168
+ errMessage = 'You must enter a value';
169
+ } else if (this.fieldControl.errors) {
170
+ errMessage = this.fieldControl.errors.toString();
171
+ }
172
+
173
+ return errMessage;
174
+ }
175
+ }
@@ -0,0 +1,94 @@
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": "images/pz-text-input-active.svg",
13
+ "properties": [
14
+ {
15
+ "name": "label",
16
+ "label": "Field label",
17
+ "format": "TEXT",
18
+ "required": true
19
+ },
20
+ {
21
+ "name": "readOnly",
22
+ "label": "Edit mode",
23
+ "format": "READONLY"
24
+ },
25
+ {
26
+ "name": "decimalPrecision",
27
+ "label": "Decimal places",
28
+ "format": "NUMBER",
29
+ "min": 0
30
+ },
31
+ {
32
+ "name": "showGroupSeparators",
33
+ "label": "Show thousands separator",
34
+ "format": "BOOLEAN"
35
+ },
36
+ {
37
+ "label": "Input settings",
38
+ "format": "GROUP",
39
+ "visibility": "(!readOnly = true)",
40
+ "properties": [
41
+ {
42
+ "name": "placeholder",
43
+ "label": "Placeholder",
44
+ "format": "TEXT"
45
+ },
46
+ {
47
+ "name": "helperText",
48
+ "label": "Helper text",
49
+ "format": "TEXT"
50
+ }
51
+ ]
52
+ },
53
+ {
54
+ "label": "Conditions",
55
+ "format": "GROUP",
56
+ "properties": [
57
+ {
58
+ "name": "required",
59
+ "label": "Required",
60
+ "format": "REQUIRED",
61
+ "visibility": "(!readOnly = true)"
62
+ },
63
+ {
64
+ "name": "disabled",
65
+ "label": "Disabled",
66
+ "format": "DISABLED",
67
+ "visibility": "(!readOnly = true)"
68
+ },
69
+ {
70
+ "name": "visibility",
71
+ "label": "Visibility",
72
+ "format": "VISIBILITY"
73
+ }
74
+ ]
75
+ },
76
+ {
77
+ "label": "Advanced",
78
+ "format": "GROUP",
79
+ "collapsible": true,
80
+ "properties": [
81
+ {
82
+ "name": "testId",
83
+ "label": "Test ID",
84
+ "format": "TEXT",
85
+ "ignorePattern": "[^-_\\p{N}\\p{L}]",
86
+ "includeAnnotations": false
87
+ }
88
+ ]
89
+ }
90
+ ],
91
+ "defaultConfig": {
92
+ "label": "@L $this.label"
93
+ }
94
+ }
@@ -0,0 +1,33 @@
1
+ <div *ngIf="displayMode$; else noDisplayMode">
2
+ <app-field-value-list [label$]="label$" [value$]="value$" [displayMode$]="displayMode$"></app-field-value-list>
3
+ </div>
4
+ {{! pick new delimiters for mustache }}
5
+ {{=<% %>=}}
6
+ <ng-template #noDisplayMode>
7
+ <div *ngIf="!bReadonly$ && bHasForm$; else noEdit">
8
+ <div [formGroup]="formGroup$" *ngIf="bVisible$">
9
+ <mat-form-field class="psdk-full-width">
10
+ <mat-label>{{ label$ }}</mat-label>
11
+ <!-- <span matPrefix>% &nbsp;</span> -->
12
+ <input
13
+ matInput
14
+ [placeholder]=""
15
+ type="number"
16
+ step=".01"
17
+ [value]="value$"
18
+ [required]="bRequired$"
19
+ [formControlName]="controlName$"
20
+ [attr.data-test-id]="testId"
21
+ (change)="fieldOnChange($event)"
22
+ (click)="fieldOnClick($event)"
23
+ (blur)="fieldOnBlur($event)"
24
+ />
25
+ <mat-error *ngIf="fieldControl.invalid">{{ getErrorMessage() }}</mat-error>
26
+ </mat-form-field>
27
+ </div>
28
+ </div>
29
+ </ng-template>
30
+ <%={{ }}=%> {{! revert delimiters for mustache }}
31
+ <ng-template #noEdit>
32
+ <app-text [pConn$]="pConn$" [formatAs$]="'text'"></app-text>
33
+ </ng-template>
@@ -0,0 +1,20 @@
1
+ .psdk-full-width {
2
+ width: 100%;
3
+ }
4
+
5
+ .psdk-label-readonly {
6
+ font-size: 1rem;
7
+ display: block;
8
+ transform: translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);
9
+ -ms-transform: translateY(-1.28125em) scale(.75);
10
+ width: 133.33333%;
11
+ }
12
+
13
+ .psdk-data-readonly {
14
+ padding-top: 0.625rem;
15
+ width: 100%;
16
+ }
17
+
18
+ ::ng-deep .mat-mdc-form-field-infix {
19
+ width: auto;
20
+ }
@@ -0,0 +1,25 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+
3
+ import { {{COMPONENT_CLASS_NAME}}Component } from './{{COMPONENT_CLASS_NAME_KEBAB}}.component';
4
+
5
+ describe('{{COMPONENT_CLASS_NAME}}Component', () => {
6
+ let component: {{COMPONENT_CLASS_NAME}}omponent;
7
+ let fixture: ComponentFixture<{{COMPONENT_CLASS_NAME}}Component>;
8
+
9
+ beforeEach(async () => {
10
+ await TestBed.configureTestingModule({
11
+ declarations: [ {{COMPONENT_CLASS_NAME}}Component ]
12
+ })
13
+ .compileComponents();
14
+ });
15
+
16
+ beforeEach(() => {
17
+ fixture = TestBed.createComponent({{COMPONENT_CLASS_NAME}}Component);
18
+ component = fixture.componentInstance;
19
+ fixture.detectChanges();
20
+ });
21
+
22
+ it('should create', () => {
23
+ expect(component).toBeTruthy();
24
+ });
25
+ });
@@ -0,0 +1,176 @@
1
+ import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
4
+ import { MatInputModule } from '@angular/material/input';
5
+ import { MatFormFieldModule } from '@angular/material/form-field';
6
+ import { interval } from 'rxjs';
7
+ import { AngularPConnectService } from '@pega/angular-sdk-library';
8
+ import { Utils } from '@pega/angular-sdk-library';
9
+ import { TextComponent } from '@pega/angular-sdk-library';
10
+ import { FieldValueListComponent } from '@pega/angular-sdk-library';
11
+
12
+ declare const window: any;
13
+
14
+ @Component({
15
+ selector: 'app-{{COMPONENT_CLASS_NAME_KEBAB}}',
16
+ templateUrl: './{{COMPONENT_CLASS_NAME_KEBAB}}.component.html',
17
+ styleUrls: ['./{{COMPONENT_CLASS_NAME_KEBAB}}.component.scss'],
18
+ standalone: true,
19
+ imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, TextComponent, FieldValueListComponent]
20
+ })
21
+ export class {{COMPONENT_CLASS_NAME}}Component implements OnInit {
22
+ @Input() pConn$: any;
23
+ @Input() formGroup$: FormGroup;
24
+
25
+ // Used with AngularPConnect
26
+ angularPConnectData: any = {};
27
+ configProps$: Object;
28
+
29
+ label$: string = '';
30
+ value$: number;
31
+ bRequired$: boolean = false;
32
+ bReadonly$: boolean = false;
33
+ bDisabled$: boolean = false;
34
+ bVisible$: boolean = true;
35
+ displayMode$: string = '';
36
+ controlName$: string;
37
+ bHasForm$: boolean = true;
38
+ componentReference: string = '';
39
+ testId: string;
40
+
41
+ fieldControl = new FormControl<number | null>(null, null);
42
+
43
+ constructor(
44
+ private angularPConnect: AngularPConnectService,
45
+ private cdRef: ChangeDetectorRef,
46
+ private utils: Utils
47
+ ) {}
48
+
49
+ ngOnInit(): void {
50
+ // First thing in initialization is registering and subscribing to the AngularPConnect service
51
+ this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
52
+ this.controlName$ = this.angularPConnect.getComponentID(this);
53
+
54
+ // Then, continue on with other initialization
55
+ // call updateSelf when initializing
56
+ //this.updateSelf();
57
+ this.checkAndUpdate();
58
+
59
+ if (this.formGroup$ != null) {
60
+ // add control to formGroup
61
+ this.formGroup$.addControl(this.controlName$, this.fieldControl);
62
+ this.fieldControl.setValue(this.value$);
63
+ this.bHasForm$ = true;
64
+ } else {
65
+ this.bReadonly$ = true;
66
+ this.bHasForm$ = false;
67
+ }
68
+ }
69
+
70
+ ngOnDestroy(): void {
71
+ if (this.formGroup$ != null) {
72
+ this.formGroup$.removeControl(this.controlName$);
73
+ }
74
+
75
+ if (this.angularPConnectData.unsubscribeFn) {
76
+ this.angularPConnectData.unsubscribeFn();
77
+ }
78
+ }
79
+
80
+ // Callback passed when subscribing to store change
81
+ onStateChange() {
82
+ this.checkAndUpdate();
83
+ }
84
+
85
+ checkAndUpdate() {
86
+ // Should always check the bridge to see if the component should
87
+ // update itself (re-render)
88
+ const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
89
+
90
+ // ONLY call updateSelf when the component should update
91
+ if (bUpdateSelf) {
92
+ this.updateSelf();
93
+ }
94
+ }
95
+
96
+ // updateSelf
97
+ updateSelf(): void {
98
+ // moved this from ngOnInit() and call this from there instead...
99
+ this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
100
+ this.testId = this.configProps$['testId'];
101
+ this.label$ = this.configProps$['label'];
102
+ this.displayMode$ = this.configProps$['displayMode'];
103
+ let nValue = this.configProps$['value'];
104
+ if (nValue) {
105
+ if (typeof nValue == 'string') {
106
+ nValue = parseInt(nValue);
107
+ }
108
+ this.value$ = nValue;
109
+ }
110
+
111
+ // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError
112
+ setTimeout(() => {
113
+ if (this.configProps$['required'] != null) {
114
+ this.bRequired$ = this.utils.getBooleanValue(this.configProps$['required']);
115
+ }
116
+ this.cdRef.detectChanges();
117
+ });
118
+
119
+ if (this.configProps$['visibility'] != null) {
120
+ this.bVisible$ = this.utils.getBooleanValue(this.configProps$['visibility']);
121
+ }
122
+
123
+ // disabled
124
+ if (this.configProps$['disabled'] != undefined) {
125
+ this.bDisabled$ = this.utils.getBooleanValue(this.configProps$['disabled']);
126
+ }
127
+
128
+ if (this.bDisabled$) {
129
+ this.fieldControl.disable();
130
+ } else {
131
+ this.fieldControl.enable();
132
+ }
133
+
134
+ if (this.configProps$['readOnly'] != null) {
135
+ this.bReadonly$ = this.utils.getBooleanValue(this.configProps$['readOnly']);
136
+ }
137
+
138
+ this.componentReference = this.pConn$.getStateProps().value;
139
+
140
+ // trigger display of error message with field control
141
+ if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {
142
+ let timer = interval(100).subscribe(() => {
143
+ this.fieldControl.setErrors({ message: true });
144
+ this.fieldControl.markAsTouched();
145
+ timer.unsubscribe();
146
+ });
147
+ }
148
+ }
149
+
150
+ fieldOnChange(event: any) {
151
+ this.angularPConnectData.actions.onChange(this, event);
152
+ }
153
+
154
+ fieldOnClick(event: any) {}
155
+
156
+ fieldOnBlur(event: any) {
157
+ // PConnect wants to use eventHandler for onBlur
158
+
159
+ this.angularPConnectData.actions.onBlur(this, event);
160
+ }
161
+
162
+ getErrorMessage() {
163
+ // field control gets error message from here
164
+ let errMessage: string = '';
165
+ // look for validation messages for json, pre-defined or just an error pushed from workitem (400)
166
+ if (this.fieldControl.hasError('message')) {
167
+ errMessage = this.angularPConnectData.validateMessage;
168
+ return errMessage;
169
+ } else if (this.fieldControl.hasError('required')) {
170
+ errMessage = 'You must enter a value';
171
+ } else if (this.fieldControl.errors) {
172
+ errMessage = this.fieldControl.errors.toString();
173
+ }
174
+ return errMessage;
175
+ }
176
+ }
@@ -0,0 +1,88 @@
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": "images/pz-integer-active.svg",
13
+ "properties": [
14
+ {
15
+ "name": "label",
16
+ "label": "Field label",
17
+ "format": "TEXT",
18
+ "required": true
19
+ },
20
+ {
21
+ "name": "readOnly",
22
+ "label": "Edit mode",
23
+ "format": "READONLY"
24
+ },
25
+ {
26
+ "name": "showGroupSeparators",
27
+ "label": "Show thousands separator",
28
+ "format": "BOOLEAN"
29
+ },
30
+ {
31
+ "label": "Input settings",
32
+ "format": "GROUP",
33
+ "visibility": "(!readOnly = true)",
34
+ "properties": [
35
+ {
36
+ "name": "placeholder",
37
+ "label": "Placeholder",
38
+ "format": "TEXT"
39
+ },
40
+ {
41
+ "name": "helperText",
42
+ "label": "Helper text",
43
+ "format": "TEXT"
44
+ }
45
+ ]
46
+ },
47
+ {
48
+ "label": "Conditions",
49
+ "format": "GROUP",
50
+ "properties": [
51
+ {
52
+ "name": "required",
53
+ "label": "Required",
54
+ "format": "REQUIRED",
55
+ "visibility": "(!readOnly = true)"
56
+ },
57
+ {
58
+ "name": "disabled",
59
+ "label": "Disabled",
60
+ "format": "DISABLED",
61
+ "visibility": "(!readOnly = true)"
62
+ },
63
+ {
64
+ "name": "visibility",
65
+ "label": "Visibility",
66
+ "format": "VISIBILITY"
67
+ }
68
+ ]
69
+ },
70
+ {
71
+ "label": "Advanced",
72
+ "format": "GROUP",
73
+ "collapsible": true,
74
+ "properties": [
75
+ {
76
+ "name": "testId",
77
+ "label": "Test ID",
78
+ "format": "TEXT",
79
+ "ignorePattern": "[^-_\\p{N}\\p{L}]",
80
+ "includeAnnotations": false
81
+ }
82
+ ]
83
+ }
84
+ ],
85
+ "defaultConfig": {
86
+ "label": "@L $this.label"
87
+ }
88
+ }
@@ -0,0 +1,33 @@
1
+
2
+ <div *ngIf="displayMode$; else noDisplayMode">
3
+ <app-field-value-list [label$]="label$" [value$]="value$" [displayMode$]="displayMode$"></app-field-value-list>
4
+ </div>
5
+ {{! pick new delimiters for mustache }}
6
+ {{=<% %>=}}
7
+ <ng-template #noDisplayMode>
8
+ <div *ngIf="!bReadonly$ && bHasForm$; else noEdit">
9
+ <div [formGroup]="formGroup$" *ngIf="bVisible$">
10
+ <mat-form-field class="psdk-full-width">
11
+ <mat-label>{{ label$ }}</mat-label>
12
+ <input
13
+ matInput
14
+ [placeholder]=""
15
+ type="number"
16
+ step="1"
17
+ [value]="value$"
18
+ [required]="bRequired$"
19
+ [formControlName]="controlName$"
20
+ [attr.data-test-id]="testId"
21
+ (change)="fieldOnChange($event)"
22
+ (click)="fieldOnClick($event)"
23
+ (blur)="fieldOnBlur($event)"
24
+ />
25
+ <mat-error *ngIf="fieldControl.invalid">{{ getErrorMessage() }}</mat-error>
26
+ </mat-form-field>
27
+ </div>
28
+ </div>
29
+ </ng-template>
30
+ <%={{ }}=%> {{! revert delimiters for mustache }}
31
+ <ng-template #noEdit>
32
+ <app-text [pConn$]="pConn$" [formatAs$]="'text'"></app-text>
33
+ </ng-template>
@@ -0,0 +1,20 @@
1
+ .psdk-full-width {
2
+ width: 100%;
3
+ }
4
+
5
+ .psdk-label-readonly {
6
+ font-size: 1rem;
7
+ display: block;
8
+ transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);
9
+ -ms-transform: translateY(-1.28125em) scale(0.75);
10
+ width: 133.33333%;
11
+ }
12
+
13
+ .psdk-data-readonly {
14
+ padding-top: 0.625rem;
15
+ width: 100%;
16
+ }
17
+
18
+ ::ng-deep .mat-mdc-form-field-infix {
19
+ width: auto;
20
+ }
@@ -0,0 +1,25 @@
1
+ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
2
+
3
+ import { {{COMPONENT_CLASS_NAME}}Component } from './{{COMPONENT_CLASS_NAME_KEBAB}}.component';
4
+
5
+ describe('{{COMPONENT_CLASS_NAME}}Component', () => {
6
+ let component: {{COMPONENT_CLASS_NAME}}Component;
7
+ let fixture: ComponentFixture<{{COMPONENT_CLASS_NAME}}Component>;
8
+
9
+ beforeEach(waitForAsync(() => {
10
+ TestBed.configureTestingModule({
11
+ declarations: [ {{COMPONENT_CLASS_NAME}}Component ]
12
+ })
13
+ .compileComponents();
14
+ }));
15
+
16
+ beforeEach(() => {
17
+ fixture = TestBed.createComponent({{COMPONENT_CLASS_NAME}}Component);
18
+ component = fixture.componentInstance;
19
+ fixture.detectChanges();
20
+ });
21
+
22
+ it('should create', () => {
23
+ expect(component).toBeTruthy();
24
+ });
25
+ });