@pega/dx-component-builder-sdk 24.2.12 → 24.2.13

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 (232) hide show
  1. package/package.json +1 -1
  2. package/src/tasks/create/templates/SDK-Angular/field/Boolean/boolean.component.html.mustache +4 -0
  3. package/src/tasks/create/templates/SDK-Angular/field/Boolean/boolean.component.ts.mustache +0 -1
  4. package/src/tasks/create/templates/SDK-Angular/field/Date/date.component.html.mustache +2 -1
  5. package/src/tasks/create/templates/SDK-Angular/field/Date/demo.stories.tsx.mustache +4 -4
  6. package/src/tasks/create/templates/SDK-Angular/field/DateTime/date-time.component.html.mustache +2 -2
  7. package/src/tasks/create/templates/SDK-Angular/field/DateTime/date-time.component.ts.mustache +17 -3
  8. package/src/tasks/create/templates/SDK-Angular/field/DateTime/demo.stories.tsx.mustache +4 -4
  9. package/src/tasks/create/templates/SDK-Angular/field/Decimal/decimal.component.html.mustache +1 -0
  10. package/src/tasks/create/templates/SDK-Angular/field/Decimal/decimal.component.ts.mustache +38 -15
  11. package/src/tasks/create/templates/SDK-Angular/field/Decimal/demo.stories.tsx.mustache +0 -1
  12. package/src/tasks/create/templates/SDK-Angular/field/Decimal-Currency/decimal-currency.component.ts.mustache +19 -13
  13. package/src/tasks/create/templates/SDK-Angular/field/Decimal-Currency/demo.stories.tsx.mustache +0 -1
  14. package/src/tasks/create/templates/SDK-Angular/field/Decimal-Percentage/decimal-percentage.component.html.mustache +1 -1
  15. package/src/tasks/create/templates/SDK-Angular/field/Decimal-Percentage/decimal-percentage.component.ts.mustache +27 -17
  16. package/src/tasks/create/templates/SDK-Angular/field/Decimal-Percentage/demo.stories.tsx.mustache +0 -1
  17. package/src/tasks/create/templates/SDK-Angular/field/Icon-Button-URL/demo.stories.tsx.mustache +1 -3
  18. package/src/tasks/create/templates/SDK-Angular/field/Integer/demo.stories.tsx.mustache +4 -5
  19. package/src/tasks/create/templates/SDK-Angular/field/Integer/integer.component.html.mustache +1 -1
  20. package/src/tasks/create/templates/SDK-Angular/field/Integer/integer.component.ts.mustache +16 -6
  21. package/src/tasks/create/templates/SDK-Angular/field/Picklist/demo.stories.tsx.mustache +4 -4
  22. package/src/tasks/create/templates/SDK-Angular/field/Picklist/picklist.component.html.mustache +1 -0
  23. package/src/tasks/create/templates/SDK-Angular/field/Picklist/picklist.component.ts.mustache +18 -4
  24. package/src/tasks/create/templates/SDK-Angular/field/Picklist-Autocomplete/demo.stories.tsx.mustache +4 -5
  25. package/src/tasks/create/templates/SDK-Angular/field/Picklist-Autocomplete/picklist-autocomplete.component.html.mustache +0 -1
  26. package/src/tasks/create/templates/SDK-Angular/field/Picklist-Autocomplete/picklist-autocomplete.component.ts.mustache +15 -2
  27. package/src/tasks/create/templates/SDK-Angular/field/Picklist-RadioButtons/picklist-radio-buttons.component.html.mustache +3 -6
  28. package/src/tasks/create/templates/SDK-Angular/field/Text/demo.stories.tsx.mustache +5 -7
  29. package/src/tasks/create/templates/SDK-Angular/field/Text-Email/demo.stories.tsx.mustache +4 -5
  30. package/src/tasks/create/templates/SDK-Angular/field/Text-Email/text-email.component.ts.mustache +17 -7
  31. package/src/tasks/create/templates/SDK-Angular/field/Text-Input/demo.stories.tsx.mustache +4 -5
  32. package/src/tasks/create/templates/SDK-Angular/field/Text-Input/text.component.html.mustache +1 -1
  33. package/src/tasks/create/templates/SDK-Angular/field/Text-Input/text.component.ts.mustache +16 -6
  34. package/src/tasks/create/templates/SDK-Angular/field/Text-Paragraph/demo.stories.tsx.mustache +4 -5
  35. package/src/tasks/create/templates/SDK-Angular/field/Text-Paragraph/text-paragraph.component.html.mustache +4 -2
  36. package/src/tasks/create/templates/SDK-Angular/field/Text-Paragraph/text-paragraph.component.ts.mustache +16 -6
  37. package/src/tasks/create/templates/SDK-Angular/field/Text-Phone/demo.stories.tsx.mustache +5 -5
  38. package/src/tasks/create/templates/SDK-Angular/field/Text-Phone/text-phone.component.html.mustache +3 -1
  39. package/src/tasks/create/templates/SDK-Angular/field/Text-Phone/text-phone.component.ts.mustache +6 -13
  40. package/src/tasks/create/templates/SDK-Angular/field/Text-URL/demo.stories.tsx.mustache +6 -6
  41. package/src/tasks/create/templates/SDK-Angular/field/Text-URL/text-url.component.html.mustache +1 -1
  42. package/src/tasks/create/templates/SDK-Angular/field/Text-URL/text-url.component.ts.mustache +16 -6
  43. package/src/tasks/create/templates/SDK-Angular/field/TimeOfDay/demo.stories.tsx.mustache +4 -5
  44. package/src/tasks/create/templates/SDK-Angular/field/TimeOfDay/time-of-day.component.html.mustache +2 -2
  45. package/src/tasks/create/templates/SDK-Angular/field/TimeOfDay/time-of-day.component.ts.mustache +21 -6
  46. package/src/tasks/create/templates/SDK-Angular/template/FORM/form.component.ts.mustache +35 -2
  47. package/src/tasks/create/templates/SDK-Angular/template/FORM-region/form.component.scss.mustache +1 -1
  48. package/tests/assets/sdk-a/components/create/custom-sdk/field/pega-dxil-my-test-text/demo.stories.tsx +5 -7
  49. package/tests/assets/sdk-a/components/create/override-sdk/designSystemExtension/material-case-summary/material-case-summary.component.ts +0 -1
  50. package/tests/assets/sdk-a/components/create/override-sdk/designSystemExtension/material-details-fields/material-details-fields.component.html +1 -1
  51. package/tests/assets/sdk-a/components/create/override-sdk/designSystemExtension/material-details-fields/material-details-fields.component.ts +6 -0
  52. package/tests/assets/sdk-a/components/create/override-sdk/designSystemExtension/operator/operator.component.html +1 -1
  53. package/tests/assets/sdk-a/components/create/override-sdk/designSystemExtension/operator/operator.component.scss +10 -2
  54. package/tests/assets/sdk-a/components/create/override-sdk/designSystemExtension/operator/operator.component.ts +4 -3
  55. package/tests/assets/sdk-a/components/create/override-sdk/field/auto-complete/auto-complete.component.html +0 -1
  56. package/tests/assets/sdk-a/components/create/override-sdk/field/auto-complete/auto-complete.component.ts +15 -2
  57. package/tests/assets/sdk-a/components/create/override-sdk/field/check-box/check-box.component.html +4 -0
  58. package/tests/assets/sdk-a/components/create/override-sdk/field/currency/currency.component.ts +19 -13
  59. package/tests/assets/sdk-a/components/create/override-sdk/field/date/date.component.html +2 -1
  60. package/tests/assets/sdk-a/components/create/override-sdk/field/date-time/date-time.component.html +2 -2
  61. package/tests/assets/sdk-a/components/create/override-sdk/field/date-time/date-time.component.ts +17 -3
  62. package/tests/assets/sdk-a/components/create/override-sdk/field/decimal/decimal.component.html +1 -0
  63. package/tests/assets/sdk-a/components/create/override-sdk/field/decimal/decimal.component.ts +38 -15
  64. package/tests/assets/sdk-a/components/create/override-sdk/field/dropdown/dropdown.component.html +1 -0
  65. package/tests/assets/sdk-a/components/create/override-sdk/field/dropdown/dropdown.component.ts +18 -4
  66. package/tests/assets/sdk-a/components/create/override-sdk/field/email/email.component.ts +17 -7
  67. package/tests/assets/sdk-a/components/create/override-sdk/field/integer/integer.component.html +1 -1
  68. package/tests/assets/sdk-a/components/create/override-sdk/field/integer/integer.component.ts +16 -6
  69. package/tests/assets/sdk-a/components/create/override-sdk/field/percentage/percentage.component.html +1 -1
  70. package/tests/assets/sdk-a/components/create/override-sdk/field/percentage/percentage.component.ts +27 -17
  71. package/tests/assets/sdk-a/components/create/override-sdk/field/phone/config-ext.json +1 -1
  72. package/tests/assets/sdk-a/components/create/override-sdk/field/phone/phone.component.html +3 -1
  73. package/tests/assets/sdk-a/components/create/override-sdk/field/phone/phone.component.ts +6 -13
  74. package/tests/assets/sdk-a/components/create/override-sdk/field/radio-buttons/radio-buttons.component.html +3 -6
  75. package/tests/assets/sdk-a/components/create/override-sdk/field/rich-text/rich-text.component.ts +12 -3
  76. package/tests/assets/sdk-a/components/create/override-sdk/field/text/text.component.ts +6 -4
  77. package/tests/assets/sdk-a/components/create/override-sdk/field/text-area/text-area.component.html +4 -2
  78. package/tests/assets/sdk-a/components/create/override-sdk/field/text-area/text-area.component.ts +16 -6
  79. package/tests/assets/sdk-a/components/create/override-sdk/field/text-input/text-input.component.html +1 -1
  80. package/tests/assets/sdk-a/components/create/override-sdk/field/text-input/text-input.component.ts +16 -6
  81. package/tests/assets/sdk-a/components/create/override-sdk/field/time/time.component.html +2 -2
  82. package/tests/assets/sdk-a/components/create/override-sdk/field/time/time.component.ts +21 -6
  83. package/tests/assets/sdk-a/components/create/override-sdk/field/url/url.component.html +1 -1
  84. package/tests/assets/sdk-a/components/create/override-sdk/field/url/url.component.ts +16 -6
  85. package/tests/assets/sdk-a/components/create/override-sdk/field/user-reference/user-reference.component.html +40 -38
  86. package/tests/assets/sdk-a/components/create/override-sdk/field/user-reference/user-reference.component.ts +70 -7
  87. package/tests/assets/sdk-a/components/create/override-sdk/infra/action-buttons/action-buttons.component.html +1 -1
  88. package/tests/assets/sdk-a/components/create/override-sdk/infra/assignment/assignment.component.html +1 -1
  89. package/tests/assets/sdk-a/components/create/override-sdk/infra/assignment/assignment.component.ts +82 -39
  90. package/tests/assets/sdk-a/components/create/override-sdk/infra/assignment-card/assignment-card.component.html +1 -0
  91. package/tests/assets/sdk-a/components/create/override-sdk/infra/defer-load/defer-load.component.ts +4 -1
  92. package/tests/assets/sdk-a/components/create/override-sdk/infra/flow-container/flow-container.component.ts +17 -43
  93. package/tests/assets/sdk-a/components/create/override-sdk/infra/flow-container/helpers.ts +2 -2
  94. package/tests/assets/sdk-a/components/create/override-sdk/infra/modal-view-container/modal-view-container.component.html +1 -11
  95. package/tests/assets/sdk-a/components/create/override-sdk/infra/modal-view-container/modal-view-container.component.ts +0 -7
  96. package/tests/assets/sdk-a/components/create/override-sdk/infra/navbar/navbar.component.ts +0 -2
  97. package/tests/assets/sdk-a/components/create/override-sdk/infra/root-container/root-container.component.html +2 -15
  98. package/tests/assets/sdk-a/components/create/override-sdk/infra/root-container/root-container.component.ts +24 -27
  99. package/tests/assets/sdk-a/components/create/override-sdk/template/confirmation/confirmation.component.html +1 -1
  100. package/tests/assets/sdk-a/components/create/override-sdk/template/default-form/default-form.component.ts +35 -2
  101. package/tests/assets/sdk-a/components/create/override-sdk/template/field-group-template/field-group-template.component.html +7 -7
  102. package/tests/assets/sdk-a/components/create/override-sdk/template/field-group-template/field-group-template.component.scss +8 -0
  103. package/tests/assets/sdk-a/components/create/override-sdk/template/field-group-template/field-group-template.component.ts +64 -41
  104. package/tests/assets/sdk-a/components/create/override-sdk/template/field-value-list/field-value-list.component.html +2 -2
  105. package/tests/assets/sdk-a/components/create/override-sdk/template/field-value-list/field-value-list.component.scss +4 -0
  106. package/tests/assets/sdk-a/components/create/override-sdk/template/list-view/list-view.component.html +3 -1
  107. package/tests/assets/sdk-a/components/create/override-sdk/template/list-view/list-view.component.ts +1 -3
  108. package/tests/assets/sdk-a/components/create/override-sdk/template/list-view/listViewHelpers.ts +2 -5
  109. package/tests/assets/sdk-a/components/create/override-sdk/template/list-view/utils.ts +2 -5
  110. package/tests/assets/sdk-a/components/create/override-sdk/template/simple-table-manual/helpers.ts +9 -7
  111. package/tests/assets/sdk-a/components/create/override-sdk/template/simple-table-manual/simple-table-manual.component.html +25 -6
  112. package/tests/assets/sdk-a/components/create/override-sdk/template/simple-table-manual/simple-table-manual.component.scss +11 -3
  113. package/tests/assets/sdk-a/components/create/override-sdk/template/simple-table-manual/simple-table-manual.component.ts +62 -24
  114. package/tests/assets/sdk-a/components/create/override-sdk/widget/feed-container/feed-container.component.ts +0 -2
  115. package/tests/assets/sdk-a/components/create/override-sdk/widget/todo/todo.component.html +4 -5
  116. package/tests/assets/sdk-a/components/create/override-sdk/widget/todo/todo.component.scss +9 -0
  117. package/tests/assets/sdk-a/components/create/override-sdk/widget/todo/todo.component.ts +4 -3
  118. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-boolean/pega-dxil-my-boolean.component.html +4 -0
  119. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-boolean/pega-dxil-my-boolean.component.ts +0 -1
  120. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-currency/demo.stories.tsx +0 -1
  121. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-currency/pega-dxil-my-currency.component.ts +19 -13
  122. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-date/demo.stories.tsx +4 -4
  123. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-date/pega-dxil-my-date.component.html +2 -1
  124. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-date-time/demo.stories.tsx +4 -4
  125. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-date-time/pega-dxil-my-date-time.component.html +2 -2
  126. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-date-time/pega-dxil-my-date-time.component.ts +17 -3
  127. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-decimal/demo.stories.tsx +0 -1
  128. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-decimal/pega-dxil-my-decimal.component.html +1 -0
  129. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-decimal/pega-dxil-my-decimal.component.ts +38 -15
  130. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-email/demo.stories.tsx +4 -5
  131. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-email/pega-dxil-my-email.component.ts +17 -7
  132. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-icon-button-url/demo.stories.tsx +1 -3
  133. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-integer/demo.stories.tsx +4 -5
  134. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-integer/pega-dxil-my-integer.component.html +1 -1
  135. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-integer/pega-dxil-my-integer.component.ts +16 -6
  136. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-paragraph/demo.stories.tsx +4 -5
  137. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-paragraph/pega-dxil-my-paragraph.component.html +4 -2
  138. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-paragraph/pega-dxil-my-paragraph.component.ts +16 -6
  139. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-percentage/demo.stories.tsx +0 -1
  140. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-percentage/pega-dxil-my-percentage.component.html +1 -1
  141. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-percentage/pega-dxil-my-percentage.component.ts +27 -17
  142. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-phone/demo.stories.tsx +5 -5
  143. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-phone/pega-dxil-my-phone.component.html +3 -1
  144. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-phone/pega-dxil-my-phone.component.ts +6 -13
  145. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-picklist/demo.stories.tsx +4 -4
  146. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-picklist/pega-dxil-my-picklist.component.html +1 -0
  147. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-picklist/pega-dxil-my-picklist.component.ts +18 -4
  148. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-radiobuttons/pega-dxil-my-radiobuttons.component.html +3 -6
  149. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-searchbox/demo.stories.tsx +4 -5
  150. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-searchbox/pega-dxil-my-searchbox.component.html +0 -1
  151. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-searchbox/pega-dxil-my-searchbox.component.ts +15 -2
  152. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-text/demo.stories.tsx +5 -7
  153. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-text-input/demo.stories.tsx +4 -5
  154. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-text-input/pega-dxil-my-text-input.component.html +1 -1
  155. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-text-input/pega-dxil-my-text-input.component.ts +16 -6
  156. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-time-of-day/demo.stories.tsx +4 -5
  157. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-time-of-day/pega-dxil-my-time-of-day.component.html +2 -2
  158. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-time-of-day/pega-dxil-my-time-of-day.component.ts +21 -6
  159. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-url/demo.stories.tsx +6 -6
  160. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-url/pega-dxil-my-url.component.html +1 -1
  161. package/tests/assets/sdk-a/components/createAll/custom-sdk/field/pega-dxil-my-url/pega-dxil-my-url.component.ts +16 -6
  162. package/tests/assets/sdk-a/components/createAll/custom-sdk/template/pega-dxil-my-form/pega-dxil-my-form.component.ts +35 -2
  163. package/tests/assets/sdk-a/components/createAll/custom-sdk/template/pega-dxil-my-two-column-form/pega-dxil-my-two-column-form.component.scss +1 -1
  164. package/tests/assets/sdk-a/components/createAll/override-sdk/designSystemExtension/material-case-summary/material-case-summary.component.ts +0 -1
  165. package/tests/assets/sdk-a/components/createAll/override-sdk/designSystemExtension/material-details-fields/material-details-fields.component.html +1 -1
  166. package/tests/assets/sdk-a/components/createAll/override-sdk/designSystemExtension/material-details-fields/material-details-fields.component.ts +6 -0
  167. package/tests/assets/sdk-a/components/createAll/override-sdk/designSystemExtension/operator/operator.component.html +1 -1
  168. package/tests/assets/sdk-a/components/createAll/override-sdk/designSystemExtension/operator/operator.component.scss +10 -2
  169. package/tests/assets/sdk-a/components/createAll/override-sdk/designSystemExtension/operator/operator.component.ts +4 -3
  170. package/tests/assets/sdk-a/components/createAll/override-sdk/field/auto-complete/auto-complete.component.html +0 -1
  171. package/tests/assets/sdk-a/components/createAll/override-sdk/field/auto-complete/auto-complete.component.ts +15 -2
  172. package/tests/assets/sdk-a/components/createAll/override-sdk/field/check-box/check-box.component.html +4 -0
  173. package/tests/assets/sdk-a/components/createAll/override-sdk/field/currency/currency.component.ts +19 -13
  174. package/tests/assets/sdk-a/components/createAll/override-sdk/field/date/date.component.html +2 -1
  175. package/tests/assets/sdk-a/components/createAll/override-sdk/field/date-time/date-time.component.html +2 -2
  176. package/tests/assets/sdk-a/components/createAll/override-sdk/field/date-time/date-time.component.ts +17 -3
  177. package/tests/assets/sdk-a/components/createAll/override-sdk/field/decimal/decimal.component.html +1 -0
  178. package/tests/assets/sdk-a/components/createAll/override-sdk/field/decimal/decimal.component.ts +38 -15
  179. package/tests/assets/sdk-a/components/createAll/override-sdk/field/dropdown/dropdown.component.html +1 -0
  180. package/tests/assets/sdk-a/components/createAll/override-sdk/field/dropdown/dropdown.component.ts +18 -4
  181. package/tests/assets/sdk-a/components/createAll/override-sdk/field/email/email.component.ts +17 -7
  182. package/tests/assets/sdk-a/components/createAll/override-sdk/field/integer/integer.component.html +1 -1
  183. package/tests/assets/sdk-a/components/createAll/override-sdk/field/integer/integer.component.ts +16 -6
  184. package/tests/assets/sdk-a/components/createAll/override-sdk/field/percentage/percentage.component.html +1 -1
  185. package/tests/assets/sdk-a/components/createAll/override-sdk/field/percentage/percentage.component.ts +27 -17
  186. package/tests/assets/sdk-a/components/createAll/override-sdk/field/phone/config-ext.json +1 -1
  187. package/tests/assets/sdk-a/components/createAll/override-sdk/field/phone/phone.component.html +3 -1
  188. package/tests/assets/sdk-a/components/createAll/override-sdk/field/phone/phone.component.ts +6 -13
  189. package/tests/assets/sdk-a/components/createAll/override-sdk/field/radio-buttons/radio-buttons.component.html +3 -6
  190. package/tests/assets/sdk-a/components/createAll/override-sdk/field/rich-text/rich-text.component.ts +12 -3
  191. package/tests/assets/sdk-a/components/createAll/override-sdk/field/text/text.component.ts +6 -4
  192. package/tests/assets/sdk-a/components/createAll/override-sdk/field/text-area/text-area.component.html +4 -2
  193. package/tests/assets/sdk-a/components/createAll/override-sdk/field/text-area/text-area.component.ts +16 -6
  194. package/tests/assets/sdk-a/components/createAll/override-sdk/field/text-input/text-input.component.html +1 -1
  195. package/tests/assets/sdk-a/components/createAll/override-sdk/field/text-input/text-input.component.ts +16 -6
  196. package/tests/assets/sdk-a/components/createAll/override-sdk/field/time/time.component.html +2 -2
  197. package/tests/assets/sdk-a/components/createAll/override-sdk/field/time/time.component.ts +21 -6
  198. package/tests/assets/sdk-a/components/createAll/override-sdk/field/url/url.component.html +1 -1
  199. package/tests/assets/sdk-a/components/createAll/override-sdk/field/url/url.component.ts +16 -6
  200. package/tests/assets/sdk-a/components/createAll/override-sdk/field/user-reference/user-reference.component.html +40 -38
  201. package/tests/assets/sdk-a/components/createAll/override-sdk/field/user-reference/user-reference.component.ts +70 -7
  202. package/tests/assets/sdk-a/components/createAll/override-sdk/infra/action-buttons/action-buttons.component.html +1 -1
  203. package/tests/assets/sdk-a/components/createAll/override-sdk/infra/assignment/assignment.component.html +1 -1
  204. package/tests/assets/sdk-a/components/createAll/override-sdk/infra/assignment/assignment.component.ts +82 -39
  205. package/tests/assets/sdk-a/components/createAll/override-sdk/infra/assignment-card/assignment-card.component.html +1 -0
  206. package/tests/assets/sdk-a/components/createAll/override-sdk/infra/defer-load/defer-load.component.ts +4 -1
  207. package/tests/assets/sdk-a/components/createAll/override-sdk/infra/flow-container/flow-container.component.ts +17 -43
  208. package/tests/assets/sdk-a/components/createAll/override-sdk/infra/flow-container/helpers.ts +2 -2
  209. package/tests/assets/sdk-a/components/createAll/override-sdk/infra/modal-view-container/modal-view-container.component.html +1 -11
  210. package/tests/assets/sdk-a/components/createAll/override-sdk/infra/modal-view-container/modal-view-container.component.ts +0 -7
  211. package/tests/assets/sdk-a/components/createAll/override-sdk/infra/navbar/navbar.component.ts +0 -2
  212. package/tests/assets/sdk-a/components/createAll/override-sdk/infra/root-container/root-container.component.html +2 -15
  213. package/tests/assets/sdk-a/components/createAll/override-sdk/infra/root-container/root-container.component.ts +24 -27
  214. package/tests/assets/sdk-a/components/createAll/override-sdk/template/confirmation/confirmation.component.html +1 -1
  215. package/tests/assets/sdk-a/components/createAll/override-sdk/template/default-form/default-form.component.ts +35 -2
  216. package/tests/assets/sdk-a/components/createAll/override-sdk/template/field-group-template/field-group-template.component.html +7 -7
  217. package/tests/assets/sdk-a/components/createAll/override-sdk/template/field-group-template/field-group-template.component.scss +8 -0
  218. package/tests/assets/sdk-a/components/createAll/override-sdk/template/field-group-template/field-group-template.component.ts +64 -41
  219. package/tests/assets/sdk-a/components/createAll/override-sdk/template/field-value-list/field-value-list.component.html +2 -2
  220. package/tests/assets/sdk-a/components/createAll/override-sdk/template/field-value-list/field-value-list.component.scss +4 -0
  221. package/tests/assets/sdk-a/components/createAll/override-sdk/template/list-view/list-view.component.html +3 -1
  222. package/tests/assets/sdk-a/components/createAll/override-sdk/template/list-view/list-view.component.ts +1 -3
  223. package/tests/assets/sdk-a/components/createAll/override-sdk/template/list-view/listViewHelpers.ts +2 -5
  224. package/tests/assets/sdk-a/components/createAll/override-sdk/template/list-view/utils.ts +2 -5
  225. package/tests/assets/sdk-a/components/createAll/override-sdk/template/simple-table-manual/helpers.ts +9 -7
  226. package/tests/assets/sdk-a/components/createAll/override-sdk/template/simple-table-manual/simple-table-manual.component.html +25 -6
  227. package/tests/assets/sdk-a/components/createAll/override-sdk/template/simple-table-manual/simple-table-manual.component.scss +11 -3
  228. package/tests/assets/sdk-a/components/createAll/override-sdk/template/simple-table-manual/simple-table-manual.component.ts +62 -24
  229. package/tests/assets/sdk-a/components/createAll/override-sdk/widget/feed-container/feed-container.component.ts +0 -2
  230. package/tests/assets/sdk-a/components/createAll/override-sdk/widget/todo/todo.component.html +4 -5
  231. package/tests/assets/sdk-a/components/createAll/override-sdk/widget/todo/todo.component.scss +9 -0
  232. package/tests/assets/sdk-a/components/createAll/override-sdk/widget/todo/todo.component.ts +4 -3
@@ -1,4 +1,3 @@
1
- /* eslint-disable max-classes-per-file */
2
1
  import { Component, OnInit, Input, ViewChild, forwardRef, OnDestroy } from '@angular/core';
3
2
  import { CommonModule } from '@angular/common';
4
3
  import { FormGroup } from '@angular/forms';
@@ -18,11 +17,10 @@ import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-c
18
17
  import { DatapageService } from '@pega/angular-sdk-components';
19
18
  import { getReferenceList } from '@pega/angular-sdk-components';
20
19
  import { buildFieldsForTable, filterDataByCommonFields, filterDataByDate, getContext } from './helpers';
20
+ import { evaluateAllowRowAction } from '@pega/angular-sdk-components';
21
21
  import { Utils } from '@pega/angular-sdk-components';
22
22
  import { getSeconds } from '@pega/angular-sdk-components';
23
23
 
24
- declare const window: any;
25
-
26
24
  interface SimpleTableManualProps {
27
25
  // If any, enter additional props that only exist on this component
28
26
  visibility?: boolean;
@@ -37,7 +35,9 @@ interface SimpleTableManualProps {
37
35
  contextClass?: string;
38
36
  propertyLabel?: string;
39
37
  fieldMetadata?: any;
38
+ allowActions?: any;
40
39
  allowTableEdit?: boolean;
40
+ allowRowDelete?: any;
41
41
  editMode?: string;
42
42
  addAndEditRowsWithin?: any;
43
43
  viewForAddAndEditModal?: any;
@@ -104,6 +104,7 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
104
104
  showAddRowButton: boolean;
105
105
  prevReferenceList: any[] = [];
106
106
  elementsData: MatTableDataSource<any>;
107
+ originalElementsData: MatTableDataSource<any>;
107
108
  rawFields: any;
108
109
  label?: string = '';
109
110
  searchIcon$: string;
@@ -160,14 +161,16 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
160
161
 
161
162
  isInitialized = false;
162
163
  targetClassLabel: string;
163
-
164
+ localizedVal = PCore.getLocaleUtils().getLocaleValue;
165
+ localeCategory = 'SimpleTable';
164
166
  constructor(
165
167
  private angularPConnect: AngularPConnectService,
166
- private utils: Utils,
168
+ public utils: Utils,
167
169
  private dataPageService: DatapageService
168
170
  ) {}
169
171
 
170
172
  ngOnInit(): void {
173
+ this.elementsData = new MatTableDataSource<any>([]);
171
174
  this.isInitialized = true;
172
175
  // First thing in initialization is registering and subscribing to the AngularPConnect service
173
176
  this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
@@ -229,7 +232,9 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
229
232
  renderMode,
230
233
  children, // destructure children into an array var: "resolvedFields"
231
234
  presets,
235
+ allowActions,
232
236
  allowTableEdit,
237
+ allowRowDelete,
233
238
  label: labelProp,
234
239
  propertyLabel,
235
240
  fieldMetadata,
@@ -243,12 +248,22 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
243
248
  targetClassLabel
244
249
  } = this.configProps$;
245
250
 
251
+ const simpleTableManualProps: any = {};
252
+ if (this.checkIfAllowActionsOrRowEditingExist(allowActions) && editMode) {
253
+ simpleTableManualProps.hideAddRow = allowActions?.allowAdd === false;
254
+ simpleTableManualProps.hideDeleteRow = allowActions?.allowDelete === false;
255
+ simpleTableManualProps.hideEditRow = allowActions?.allowEdit === false;
256
+ simpleTableManualProps.disableDragDrop = allowActions?.allowDragDrop === false;
257
+ } else if (allowTableEdit === false) {
258
+ simpleTableManualProps.hideAddRow = true;
259
+ simpleTableManualProps.hideDeleteRow = true;
260
+ simpleTableManualProps.disableDragDrop = true;
261
+ }
262
+
246
263
  this.referenceListStr = getContext(this.pConn$).referenceListStr;
247
264
  this.label = labelProp || propertyLabel;
248
265
  this.parameters = fieldMetadata?.datasource?.parameters;
249
266
  this.targetClassLabel = targetClassLabel;
250
- const hideAddRow = allowTableEdit === false;
251
- const hideDeleteRow = allowTableEdit === false;
252
267
  let { contextClass } = this.configProps$;
253
268
  this.referenceList = referenceList;
254
269
  if (!contextClass) {
@@ -285,10 +300,10 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
285
300
  this.readOnlyMode = renderMode === 'ReadOnly';
286
301
  this.editableMode = renderMode === 'Editable';
287
302
  const isDisplayModeEnabled = displayMode === 'DISPLAY_ONLY';
288
- this.showAddRowButton = !this.readOnlyMode && !hideAddRow;
303
+ this.showAddRowButton = !this.readOnlyMode && !simpleTableManualProps.hideAddRow;
289
304
  this.allowEditingInModal =
290
305
  (editMode ? editMode === 'modal' : addAndEditRowsWithin === 'modal') && !(renderMode === 'ReadOnly' || isDisplayModeEnabled);
291
- const showDeleteButton = this.editableMode && !hideDeleteRow;
306
+ const showDeleteButton = this.editableMode && !simpleTableManualProps.hideDeleteRow && evaluateAllowRowAction(allowRowDelete, this.rowData);
292
307
  this.defaultView = editModeConfig ? editModeConfig.defaultView : viewForAddAndEditModal;
293
308
  this.bUseSeparateViewForEdit = editModeConfig ? editModeConfig.useSeparateViewForEdit : useSeparateViewForEdit;
294
309
  this.editView = editModeConfig ? editModeConfig.editView : viewForEditModal;
@@ -327,7 +342,7 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
327
342
  });
328
343
 
329
344
  // for adding rows to table when editable and not modal view
330
- if (this.prevReferenceList.length !== this.referenceList.length && this.editableMode && !this.allowEditingInModal) {
345
+ if (this.prevReferenceList.length !== this.referenceList.length) {
331
346
  this.buildElementsForTable();
332
347
  }
333
348
 
@@ -354,6 +369,10 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
354
369
  // ties the 3 data structures together.
355
370
  }
356
371
 
372
+ checkIfAllowActionsOrRowEditingExist(newflagobject) {
373
+ return (newflagobject && Object.keys(newflagobject).length > 0) || this.pConn$.getComponentConfig().allowRowEdit;
374
+ }
375
+
357
376
  initializeDefaultPageInstructions() {
358
377
  if (this.isInitialized) {
359
378
  this.isInitialized = false;
@@ -375,8 +394,8 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
375
394
  }
376
395
 
377
396
  sortCompare(a, b): number {
378
- let aValue = a[this.compareRef];
379
- let bValue = b[this.compareRef];
397
+ let aValue = a[0][this.compareRef];
398
+ let bValue = b[0][this.compareRef];
380
399
 
381
400
  if (this.compareType == 'Date' || this.compareType == 'DateTime') {
382
401
  aValue = getSeconds(aValue);
@@ -499,17 +518,20 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
499
518
  // run through list of elements in path, if menu not in th path, then want to
500
519
  // hide (toggle) the menu
501
520
  const eventPath = event.path;
502
- for (let eventIndex = 0; eventIndex < eventPath.length; eventIndex++) {
503
- if (
504
- eventPath[eventIndex].className == 'psdk-modal-file-top' ||
505
- eventPath[eventIndex].tagName == 'BUTTON' ||
506
- eventPath[eventIndex].tagName == 'MAT-OPTION' ||
507
- eventPath[eventIndex].tagName == 'MAT-INPUT'
508
- ) {
509
- bInPopUp = true;
510
- break;
521
+ if (eventPath) {
522
+ for (let eventIndex = 0; eventIndex < eventPath.length; eventIndex++) {
523
+ if (
524
+ eventPath[eventIndex].className == 'psdk-modal-file-top' ||
525
+ eventPath[eventIndex].tagName == 'BUTTON' ||
526
+ eventPath[eventIndex].tagName == 'MAT-OPTION' ||
527
+ eventPath[eventIndex].tagName == 'MAT-INPUT'
528
+ ) {
529
+ bInPopUp = true;
530
+ break;
531
+ }
511
532
  }
512
533
  }
534
+
513
535
  if (!bInPopUp) {
514
536
  // this.bShowFilterPopover$ = false;
515
537
 
@@ -628,7 +650,8 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
628
650
  }
629
651
  }
630
652
 
631
- filterData(item: any) {
653
+ filterData(element: any) {
654
+ const item = element[0];
632
655
  let bKeep = true;
633
656
  for (const filterObj of this.filterByColumns) {
634
657
  if (filterObj.containsFilterValue != '' || filterObj.containsFilter == 'null' || filterObj.containsFilter == 'notnull') {
@@ -642,6 +665,8 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
642
665
  bKeep = filterDataByCommonFields(item, filterObj);
643
666
  break;
644
667
  }
668
+ } else if (filterObj.containsFilterValue === '') {
669
+ bKeep = true;
645
670
  }
646
671
 
647
672
  // if don't keep stop filtering
@@ -654,14 +679,22 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
654
679
  }
655
680
 
656
681
  filterSortGroupBy() {
657
- let theData = this.originalData.slice();
682
+ let theData = this.originalData.slice().map((item, index) => {
683
+ return [item, index];
684
+ });
658
685
 
659
686
  // last filter config data is global
660
687
  theData = theData.filter(this.filterData.bind(this));
661
688
 
662
689
  // last sort config data is global
663
690
  theData.sort(this.sortCompare.bind(this));
664
- this.rowData.data = theData;
691
+ this.rowData.data = theData.map(item => item[0]);
692
+
693
+ const newElements: any = new Array(this.rowData.data.length);
694
+ theData.forEach((item, index) => {
695
+ newElements[index] = this.originalElementsData[item[1]];
696
+ });
697
+ this.elementsData = newElements;
665
698
  }
666
699
 
667
700
  _headerSortClick(event, columnData) {
@@ -960,6 +993,10 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
960
993
  this.referenceList.forEach((element, index) => {
961
994
  const data: any = [];
962
995
  this.rawFields?.forEach(item => {
996
+ item = {
997
+ ...item,
998
+ config: { ...item.config, label: '', displayMode: this.readOnlyMode || this.allowEditingInModal ? 'DISPLAY_ONLY' : undefined }
999
+ };
963
1000
  const referenceListData = getReferenceList(this.pConn$);
964
1001
  const isDatapage = referenceListData.startsWith('D_');
965
1002
  const pageReferenceValue = isDatapage ? `${referenceListData}[${index}]` : `${this.pConn$.getPageReference()}${referenceListData}[${index}]`;
@@ -977,6 +1014,7 @@ export class SimpleTableManualComponent implements OnInit, OnDestroy {
977
1014
  });
978
1015
  eleData.push(data);
979
1016
  });
1017
+ this.originalElementsData = eleData;
980
1018
  this.elementsData = eleData;
981
1019
  }
982
1020
  }
@@ -9,8 +9,6 @@ import isEqual from 'fast-deep-equal';
9
9
  import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
10
10
  import { Utils } from '@pega/angular-sdk-components';
11
11
 
12
- declare const window: any;
13
-
14
12
  @Component({
15
13
  selector: 'app-feed-container',
16
14
  templateUrl: './feed-container.component.html',
@@ -1,10 +1,9 @@
1
1
  <div class="psdk-todo">
2
- <div class="psdk-todo-header">
3
- <div *ngIf="showTodoList$" class="psdk-avatar">{{ this.currentUserInitials$ }}</div>
2
+ <div *ngIf="showTodoList$" class="psdk-todo-header">
3
+ <div class="psdk-avatar">{{ this.currentUserInitials$ }}</div>
4
4
  <div id="worklist" class="psdk-todo-text">{{ headerText$ }}</div>
5
- <div *ngIf="showTodoList$" class="psdk-assignment-count">{{ count }}</div>
5
+ <div class="psdk-assignment-count">{{ count }}</div>
6
6
  </div>
7
- <br /><br />
8
7
  <div *ngIf="showTodoList$" class="psdk-display-divider"></div>
9
8
 
10
9
  <div class="psdk-todo-assignments">
@@ -27,7 +26,7 @@
27
26
  </div>
28
27
  </div>
29
28
  </div>
30
- <div class="psdk-todo-assignment-action" *ngIf="!isConfirm || canPerform">
29
+ <div *ngIf="!isConfirm || canPerform" class="psdk-todo-assignment-action">
31
30
  <button mat-flat-button color="primary" (click)="clickGo(assignment)">{{ localizedVal('Go', localeCategory) }}</button>
32
31
  </div>
33
32
  </div>
@@ -1,5 +1,12 @@
1
+ .psdk-todo-assignments > *:last-child {
2
+ .psdk-display-divider {
3
+ display: none;
4
+ }
5
+ }
6
+
1
7
  .psdk-display-divider {
2
8
  border-bottom: 0.0625rem solid var(--app-neutral-light-color);
9
+ margin-block: 0.5rem;
3
10
  }
4
11
 
5
12
  .psdk-todo {
@@ -12,6 +19,7 @@
12
19
 
13
20
  .psdk-todo-header {
14
21
  display: inline-flex;
22
+ margin-bottom: 1rem;
15
23
  }
16
24
 
17
25
  .psdk-todo-text {
@@ -58,6 +66,7 @@
58
66
  display: inline-flex;
59
67
  width: 100%;
60
68
  padding: 0.625rem 0rem;
69
+ align-items: center;
61
70
  }
62
71
 
63
72
  .psdk-todo-assignment-data {
@@ -91,7 +91,6 @@ export class TodoComponent implements OnInit, OnDestroy {
91
91
  localeCategory = 'Todo';
92
92
  showlessLocalizedValue = this.localizedVal('show_less', 'CosmosFields');
93
93
  showMoreLocalizedValue = this.localizedVal('show_more', 'CosmosFields');
94
- canPerform: boolean;
95
94
  count: number;
96
95
 
97
96
  constructor(
@@ -119,6 +118,10 @@ export class TodoComponent implements OnInit, OnDestroy {
119
118
  PCore.getPubSubUtils().unsubscribe(CREATE_STAGE_DELETED, CREATE_STAGE_DELETED);
120
119
  }
121
120
 
121
+ get canPerform() {
122
+ return this.assignmentsSource$?.[0]?.canPerform === 'true' || this.assignmentsSource$?.[0]?.canPerform === true;
123
+ }
124
+
122
125
  updateList() {
123
126
  const {
124
127
  WORK_BASKET: {
@@ -156,8 +159,6 @@ export class TodoComponent implements OnInit, OnDestroy {
156
159
  }
157
160
  }
158
161
 
159
- this.canPerform = this.arAssignments$?.[0]?.canPerform === 'true' || this.arAssignments$?.[0]?.canPerform === true;
160
-
161
162
  this.currentUser$ = PCore.getEnvironmentInfo().getOperatorName();
162
163
  this.currentUserInitials$ = this.utils.getInitials(this.currentUser$ ?? '');
163
164
  }
@@ -18,6 +18,8 @@
18
18
  <mat-checkbox
19
19
  [labelPosition]="'after'"
20
20
  [checked]="item.selected"
21
+ [disabled]="bDisabled$ || bReadonly$"
22
+ [required]="bRequired$"
21
23
  [attr.data-test-id]="testId + ':' + item.value"
22
24
  (change)="handleChangeMultiMode($event, item)"
23
25
  (blur)="fieldOnBlur($event)"
@@ -29,6 +31,8 @@
29
31
  <mat-checkbox
30
32
  [labelPosition]="'after'"
31
33
  [checked]="isChecked$"
34
+ [disabled]="bDisabled$ || bReadonly$"
35
+ [required]="bRequired$"
32
36
  [attr.data-test-id]="testId"
33
37
  [formControl]="fieldControl"
34
38
  (change)="fieldOnChange($event)"
@@ -225,7 +225,6 @@ export class PegaDxilMyBooleanComponent implements OnInit, OnDestroy {
225
225
 
226
226
  fieldOnChange(event: any) {
227
227
  event.value = event.checked;
228
-
229
228
  handleEvent(this.actionsApi, 'changeNblur', this.propName, event.checked);
230
229
  this.pConn$.clearErrorMessages({
231
230
  property: this.propName
@@ -46,7 +46,6 @@ export const PegaDxilMyCurrency: Story = {
46
46
  helperText: configProps.helperText,
47
47
  testId: configProps.testId,
48
48
  bReadonly$: configProps.readOnly,
49
- bDisabled$: configProps.disabled,
50
49
  bRequired$: configProps.required,
51
50
  displayMode$: configProps.displayMode
52
51
  }
@@ -130,6 +130,7 @@ export class PegaDxilMyCurrencyComponent implements OnInit, OnDestroy {
130
130
  nValue = parseFloat(nValue);
131
131
  }
132
132
  this.value$ = nValue;
133
+ this.fieldControl.setValue(this.value$);
133
134
  }
134
135
  this.helperText = this.configProps$.helperText;
135
136
  this.placeholder = this.configProps$.placeholder || '';
@@ -197,20 +198,25 @@ export class PegaDxilMyCurrencyComponent implements OnInit, OnDestroy {
197
198
  }
198
199
 
199
200
  fieldOnBlur(event: any) {
200
- const actionsApi = this.pConn$?.getActionsApi();
201
- const propName = this.pConn$?.getStateProps().value;
202
- let value = event?.target?.value;
203
- value = value?.substring(1);
204
- // replacing thousand separator with empty string as not required in api call
205
- const thousandSep = this.thousandSeparator === '.' ? '\\.' : this.thousandSeparator;
206
- let regExp = new RegExp(String.raw`${thousandSep}`, 'g');
207
- value = value?.replace(regExp, '');
208
- // replacing decimal separator with '.'
209
- if (this.decimalSeparator !== '.') {
210
- regExp = new RegExp(String.raw`${this.decimalSeparator}`, 'g');
211
- value = value.replace(regExp, '.');
201
+ const oldVal = this.value$ ?? '';
202
+ const isValueChanged = event.target.value.toString() !== oldVal.toString();
203
+
204
+ if (isValueChanged) {
205
+ const actionsApi = this.pConn$?.getActionsApi();
206
+ const propName = this.pConn$?.getStateProps().value;
207
+ let value = event?.target?.value;
208
+ value = value?.substring(1);
209
+ // replacing thousand separator with empty string as not required in api call
210
+ const thousandSep = this.thousandSeparator === '.' ? '\\.' : this.thousandSeparator;
211
+ let regExp = new RegExp(String.raw`${thousandSep}`, 'g');
212
+ value = value?.replace(regExp, '');
213
+ // replacing decimal separator with '.'
214
+ if (this.decimalSeparator !== '.') {
215
+ regExp = new RegExp(String.raw`${this.decimalSeparator}`, 'g');
216
+ value = value.replace(regExp, '.');
217
+ }
218
+ handleEvent(actionsApi, 'changeNblur', propName, value);
212
219
  }
213
- handleEvent(actionsApi, 'changeNblur', propName, value);
214
220
  }
215
221
 
216
222
  getErrorMessage() {
@@ -22,11 +22,11 @@ const meta: Meta<PegaDxilMyDateComponent> = {
22
22
  },
23
23
  getActionsApi: () => {
24
24
  return {
25
- updateFieldValue: () => {
26
- /* nothing */
25
+ updateFieldValue: (propName, value) => {
26
+ configProps.value = value;
27
27
  },
28
- triggerFieldChange: () => {
29
- /* nothing */
28
+ triggerFieldChange: (propName, value) => {
29
+ configProps.value = value;
30
30
  }
31
31
  };
32
32
  },
@@ -15,10 +15,11 @@
15
15
  type="text"
16
16
  [value]="value$"
17
17
  [required]="bRequired$"
18
+ [disabled]="bDisabled$"
18
19
  [formControl]="fieldControl"
19
20
  (dateChange)="fieldOnDateChange($event)"
20
21
  />
21
- <mat-datepicker-toggle matSuffix [for]="pegadate"></mat-datepicker-toggle>
22
+ <mat-datepicker-toggle matSuffix [for]="pegadate" [disabled]="bDisabled$"></mat-datepicker-toggle>
22
23
  <mat-datepicker #pegadate [startAt]="value$"></mat-datepicker>
23
24
  <mat-error *ngIf="fieldControl.invalid">{{ getErrorMessage() }}</mat-error>
24
25
  </mat-form-field>
@@ -22,11 +22,11 @@ const meta: Meta<PegaDxilMyDateTimeComponent> = {
22
22
  },
23
23
  getActionsApi: () => {
24
24
  return {
25
- updateFieldValue: () => {
26
- /* nothing */
25
+ updateFieldValue: (propName, value) => {
26
+ configProps.value = value;
27
27
  },
28
- triggerFieldChange: () => {
29
- /* nothing */
28
+ triggerFieldChange: (propName, value) => {
29
+ configProps.value = value;
30
30
  }
31
31
  };
32
32
  },
@@ -13,11 +13,11 @@
13
13
  [placeholder]="placeholder"
14
14
  [formControl]="fieldControl"
15
15
  (dateTimeChange)="fieldOnDateChange($event)"
16
- [value]="value$"
17
16
  [required]="bRequired$"
17
+ [readonly]="bDisabled$"
18
18
  />
19
19
  <mat-datepicker-toggle matSuffix [owlDateTimeTrigger]="dtPicker"></mat-datepicker-toggle>
20
- <owl-date-time #dtPicker></owl-date-time>
20
+ <owl-date-time #dtPicker [disabled]="bDisabled$"></owl-date-time>
21
21
  <mat-error *ngIf="fieldControl?.invalid">{{ getErrorMessage() }}</mat-error>
22
22
  </mat-form-field>
23
23
  </div>
@@ -6,6 +6,7 @@ import { MatInputModule } from '@angular/material/input';
6
6
  import { MatFormFieldModule } from '@angular/material/form-field';
7
7
  import { OwlDateTimeModule, OwlNativeDateTimeModule } from '@danielmoncada/angular-datetime-picker';
8
8
  import { interval } from 'rxjs';
9
+ import dayjs from 'dayjs';
9
10
  import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
10
11
  import { Utils } from '@pega/angular-sdk-components';
11
12
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
@@ -13,6 +14,7 @@ import { dateFormatInfoDefault, getDateFormatInfo } from '@pega/angular-sdk-comp
13
14
  import { PConnFieldProps } from '@pega/angular-sdk-components';
14
15
  import { handleEvent } from '@pega/angular-sdk-components';
15
16
  import { format } from '@pega/angular-sdk-components';
17
+ import { DateFormatters } from '@pega/angular-sdk-components';
16
18
 
17
19
  interface PegaDxilMyDateTimeProps extends PConnFieldProps {
18
20
  // If any, enter additional props that only exist on DateTime here
@@ -68,6 +70,7 @@ export class PegaDxilMyDateTimeComponent implements OnInit, OnDestroy {
68
70
  actionsApi: Object;
69
71
  propName: string;
70
72
  formattedValue$: any;
73
+ timezone = PCore.getEnvironmentInfo()?.getTimeZone();
71
74
 
72
75
  constructor(
73
76
  private angularPConnect: AngularPConnectService,
@@ -88,7 +91,12 @@ export class PegaDxilMyDateTimeComponent implements OnInit, OnDestroy {
88
91
  if (this.formGroup$) {
89
92
  // add control to formGroup
90
93
  this.formGroup$.addControl(this.controlName$, this.fieldControl);
91
- this.fieldControl.setValue(this.value$);
94
+ let dateTimeValue = this.value$ ?? '';
95
+
96
+ if (this.value$) {
97
+ dateTimeValue = dayjs(DateFormatters?.convertToTimezone(this.value$, { timezone: this.timezone }))?.toISOString();
98
+ }
99
+ this.fieldControl.setValue(dateTimeValue);
92
100
  this.bHasForm$ = true;
93
101
  } else {
94
102
  this.bReadonly$ = true;
@@ -132,7 +140,11 @@ export class PegaDxilMyDateTimeComponent implements OnInit, OnDestroy {
132
140
  this.testId = this.configProps$.testId;
133
141
  this.helperText = this.configProps$.helperText;
134
142
  this.value$ = this.configProps$?.value;
135
- this.fieldControl.setValue(this.value$);
143
+ let dateTimeValue = this.configProps$?.value ?? '';
144
+ if (this.value$) {
145
+ dateTimeValue = dayjs(DateFormatters?.convertToTimezone(this.value$, { timezone: this.timezone }))?.toISOString();
146
+ }
147
+ this.fieldControl.setValue(dateTimeValue);
136
148
  // timeout and detectChanges to avoid ExpressionChangedAfterItHasBeenCheckedError
137
149
  setTimeout(() => {
138
150
  if (this.configProps$.required != null) {
@@ -186,7 +198,9 @@ export class PegaDxilMyDateTimeComponent implements OnInit, OnDestroy {
186
198
  // this comes from the date pop up
187
199
  if (typeof event.value === 'object') {
188
200
  // convert date to pega "date" format
189
- event.value = event.value?.toISOString();
201
+ const dateTime = dayjs(event.value?.toISOString());
202
+ const timeZoneDateTime = (dayjs as any).tz(dateTime.format('YYYY-MM-DDTHH:mm:ss'), this.timezone);
203
+ event.value = timeZoneDateTime && timeZoneDateTime.isValid() ? timeZoneDateTime.toISOString() : '';
190
204
  }
191
205
  handleEvent(this.actionsApi, 'changeNblur', this.propName, event.value);
192
206
  }
@@ -49,7 +49,6 @@ export const PegaDxilMyDecimal: Story = {
49
49
  helperText: configProps.helperText,
50
50
  testId: configProps.testId,
51
51
  bReadonly$: configProps.readOnly,
52
- bDisabled$: configProps.disabled,
53
52
  bRequired$: configProps.required,
54
53
  displayMode$: configProps.displayMode
55
54
  }
@@ -12,6 +12,7 @@
12
12
  currencyMask
13
13
  [options]="{
14
14
  prefix: currencySymbol,
15
+ suffix: suffix,
15
16
  thousands: thousandSeparator,
16
17
  decimal: decimalSeparator,
17
18
  align: 'left',
@@ -4,6 +4,7 @@ import { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angul
4
4
  import { MatInputModule } from '@angular/material/input';
5
5
  import { MatFormFieldModule } from '@angular/material/form-field';
6
6
  import { NgxCurrencyDirective, NgxCurrencyInputMode } from 'ngx-currency';
7
+ import { interval } from 'rxjs';
7
8
  import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
8
9
  import { Utils } from '@pega/angular-sdk-components';
9
10
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
@@ -65,6 +66,7 @@ export class PegaDxilMyDecimalComponent implements OnInit, OnDestroy {
65
66
  formatter;
66
67
  formattedValue: any;
67
68
  inputMode: any;
69
+ suffix = '';
68
70
 
69
71
  constructor(
70
72
  private angularPConnect: AngularPConnectService,
@@ -136,6 +138,7 @@ export class PegaDxilMyDecimalComponent implements OnInit, OnDestroy {
136
138
  nValue = parseFloat(nValue);
137
139
  }
138
140
  this.value$ = nValue;
141
+ this.fieldControl.setValue(this.value$);
139
142
  }
140
143
  this.helperText = this.configProps$.helperText;
141
144
  this.placeholder = this.configProps$.placeholder || '';
@@ -185,27 +188,47 @@ export class PegaDxilMyDecimalComponent implements OnInit, OnDestroy {
185
188
  if (this.bReadonly$ && this.formatter === 'Currency') {
186
189
  this.currencySymbol = theSymbols.theCurrencySymbol;
187
190
  }
191
+
192
+ if (this.bReadonly$ && this.formatter === 'Percentage') {
193
+ this.suffix = '%';
194
+ }
195
+
188
196
  this.decimalPrecision = this.configProps$?.decimalPrecision ?? 2;
189
197
 
190
198
  this.componentReference = this.pConn$.getStateProps().value;
199
+
200
+ // trigger display of error message with field control
201
+ if (this.angularPConnectData.validateMessage != null && this.angularPConnectData.validateMessage != '') {
202
+ const timer = interval(100).subscribe(() => {
203
+ this.fieldControl.setErrors({ message: true });
204
+ this.fieldControl.markAsTouched();
205
+
206
+ timer.unsubscribe();
207
+ });
208
+ }
191
209
  }
192
210
 
193
211
  fieldOnBlur(event: any) {
194
- const actionsApi = this.pConn$?.getActionsApi();
195
- const propName = this.pConn$?.getStateProps().value;
196
- let value = event?.target?.value;
197
- // replacing thousand separator with empty string as not required in api call
198
- if (this.configProps$.showGroupSeparators) {
199
- const thousandSep = this.thousandSeparator === '.' ? '\\.' : this.thousandSeparator;
200
- const regExp = new RegExp(String.raw`${thousandSep}`, 'g');
201
- value = value?.replace(regExp, '');
202
- }
203
- // replacing decimal separator with '.'
204
- if (this.decimalSeparator !== '.') {
205
- const regExp = new RegExp(String.raw`${this.decimalSeparator}`, 'g');
206
- value = value.replace(regExp, '.');
207
- }
208
- handleEvent(actionsApi, 'changeNblur', propName, value);
212
+ const oldVal = this.value$ ?? '';
213
+ const isValueChanged = event.target.value.toString() !== oldVal.toString();
214
+
215
+ if (isValueChanged) {
216
+ const actionsApi = this.pConn$?.getActionsApi();
217
+ const propName = this.pConn$?.getStateProps().value;
218
+ let value = event?.target?.value;
219
+ // replacing thousand separator with empty string as not required in api call
220
+ if (this.configProps$.showGroupSeparators) {
221
+ const thousandSep = this.thousandSeparator === '.' ? '\\.' : this.thousandSeparator;
222
+ const regExp = new RegExp(String.raw`${thousandSep}`, 'g');
223
+ value = value?.replace(regExp, '');
224
+ }
225
+ // replacing decimal separator with '.'
226
+ if (this.decimalSeparator !== '.') {
227
+ const regExp = new RegExp(String.raw`${this.decimalSeparator}`, 'g');
228
+ value = value.replace(regExp, '.');
229
+ }
230
+ handleEvent(actionsApi, 'changeNblur', propName, value);
231
+ }
209
232
  }
210
233
 
211
234
  getErrorMessage() {
@@ -22,11 +22,11 @@ const meta: Meta<PegaDxilMyEmailComponent> = {
22
22
  },
23
23
  getActionsApi: () => {
24
24
  return {
25
- updateFieldValue: () => {
26
- /* nothing */
25
+ updateFieldValue: (propName, value) => {
26
+ configProps.value = value;
27
27
  },
28
- triggerFieldChange: () => {
29
- /* nothing */
28
+ triggerFieldChange: (propName, value) => {
29
+ configProps.value = value;
30
30
  }
31
31
  };
32
32
  },
@@ -47,7 +47,6 @@ export const PegaDxilMyEmail: Story = {
47
47
  testId: configProps.testId,
48
48
  placeholder: configProps.placeholder,
49
49
  bReadonly$: configProps.readOnly,
50
- bDisabled$: configProps.disabled,
51
50
  bRequired$: configProps.required,
52
51
  displayMode$: configProps.displayMode
53
52
  }