@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
@@ -161,15 +161,25 @@ export class PegaDxilMyTextInputComponent implements OnInit, OnDestroy {
161
161
  }
162
162
  }
163
163
 
164
- fieldOnChange() {
165
- this.pConn$.clearErrorMessages({
166
- property: this.propName
167
- });
164
+ fieldOnChange(event: any) {
165
+ const oldVal = this.value$ ?? '';
166
+ const isValueChanged = event.target.value.toString() !== oldVal.toString();
167
+
168
+ if (isValueChanged) {
169
+ this.pConn$.clearErrorMessages({
170
+ property: this.propName
171
+ });
172
+ }
168
173
  }
169
174
 
170
175
  fieldOnBlur(event: any) {
171
- const value = event?.target?.value;
172
- handleEvent(this.actionsApi, 'changeNblur', this.propName, value);
176
+ const oldVal = this.value$ ?? '';
177
+ const isValueChanged = event.target.value.toString() !== oldVal.toString();
178
+
179
+ if (isValueChanged) {
180
+ const value = event?.target?.value;
181
+ handleEvent(this.actionsApi, 'changeNblur', this.propName, value);
182
+ }
173
183
  }
174
184
 
175
185
  getErrorMessage() {
@@ -22,11 +22,11 @@ const meta: Meta<PegaDxilMyTimeOfDayComponent> = {
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
  },
@@ -46,7 +46,6 @@ export const PegaDxilMyTimeOfDay: Story = {
46
46
  helperText: configProps.helperText,
47
47
  placeholder: configProps.placeholder,
48
48
  bReadonly$: configProps.readOnly,
49
- bDisabled$: configProps.disabled,
50
49
  bRequired$: configProps.required,
51
50
  displayMode$: configProps.displayMode
52
51
  }
@@ -14,7 +14,7 @@
14
14
  [required]="bRequired$"
15
15
  [attr.data-test-id]="testId"
16
16
  [formControl]="fieldControl"
17
- (change)="fieldOnChange()"
17
+ (change)="fieldOnChange($event)"
18
18
  (blur)="fieldOnBlur($event)"
19
19
  />
20
20
  <mat-error *ngIf="fieldControl.invalid">{{ getErrorMessage() }}</mat-error>
@@ -23,5 +23,5 @@
23
23
  </div>
24
24
  </ng-template>
25
25
  <ng-template #noEdit>
26
- <component-mapper *ngIf="bVisible$ !== false" name="Text" [props]="{ pConn$, formatAs$: 'text' }"></component-mapper>
26
+ <component-mapper *ngIf="bVisible$ !== false" name="Text" [props]="{ pConn$, formatAs$: 'time' }"></component-mapper>
27
27
  </ng-template>
@@ -165,15 +165,30 @@ export class PegaDxilMyTimeOfDayComponent implements OnInit, OnDestroy {
165
165
  }
166
166
  }
167
167
 
168
- fieldOnChange() {
169
- this.pConn$.clearErrorMessages({
170
- property: this.propName
171
- });
168
+ fieldOnChange(event: any) {
169
+ const oldVal = this.value$ ?? '';
170
+ const isValueChanged = event.target.value.toString() !== oldVal.toString();
171
+
172
+ if (isValueChanged) {
173
+ this.pConn$.clearErrorMessages({
174
+ property: this.propName
175
+ });
176
+ }
172
177
  }
173
178
 
174
179
  fieldOnBlur(event: any) {
175
- const value = event?.target?.value;
176
- handleEvent(this.actionsApi, 'changeNblur', this.propName, value);
180
+ const oldVal = this.value$ ?? '';
181
+ const isValueChanged = event?.target?.value.toString() !== oldVal.toString();
182
+
183
+ if (isValueChanged) {
184
+ let value = event?.target?.value;
185
+ const hhmmPattern = /^\d{2}:\d{2}$/;
186
+ if (hhmmPattern.test(value)) {
187
+ value = `${value}:00`; // append ":00"
188
+ }
189
+
190
+ handleEvent(this.actionsApi, 'changeNblur', this.propName, value);
191
+ }
177
192
  }
178
193
 
179
194
  getErrorMessage() {
@@ -22,11 +22,11 @@ const meta: Meta<PegaDxilMyUrlComponent> = {
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
  },
@@ -46,8 +46,8 @@ export const PegaDxilMyUrl: Story = {
46
46
  helperText: configProps.helperText,
47
47
  placeholder: configProps.placeholder,
48
48
  bReadonly$: configProps.readOnly,
49
- bDisabled$: configProps.disabled,
50
49
  bRequired$: configProps.required,
51
- displayMode$: configProps.displayMode
50
+ displayMode$: configProps.displayMode,
51
+ value$: configProps.value
52
52
  }
53
53
  };
@@ -14,7 +14,7 @@
14
14
  [required]="bRequired$"
15
15
  [attr.data-test-id]="testId"
16
16
  [formControl]="fieldControl"
17
- (change)="fieldOnChange()"
17
+ (change)="fieldOnChange($event)"
18
18
  (blur)="fieldOnBlur($event)"
19
19
  />
20
20
  <mat-error *ngIf="fieldControl.invalid">{{ getErrorMessage() }}</mat-error>
@@ -159,15 +159,25 @@ export class PegaDxilMyUrlComponent implements OnInit, OnDestroy {
159
159
  }
160
160
  }
161
161
 
162
- fieldOnChange() {
163
- this.pConn$.clearErrorMessages({
164
- property: this.propName
165
- });
162
+ fieldOnChange(event: any) {
163
+ const oldVal = this.value$ ?? '';
164
+ const isValueChanged = event.target.value.toString() !== oldVal.toString();
165
+
166
+ if (isValueChanged) {
167
+ this.pConn$.clearErrorMessages({
168
+ property: this.propName
169
+ });
170
+ }
166
171
  }
167
172
 
168
173
  fieldOnBlur(event: any) {
169
- const value = event?.target?.value;
170
- handleEvent(this.actionsApi, 'changeNblur', this.propName, value);
174
+ const oldVal = this.value$ ?? '';
175
+ const isValueChanged = event.target.value.toString() !== oldVal.toString();
176
+
177
+ if (isValueChanged) {
178
+ const value = event?.target?.value;
179
+ handleEvent(this.actionsApi, 'changeNblur', this.propName, value);
180
+ }
171
181
  }
172
182
 
173
183
  getErrorMessage() {
@@ -1,11 +1,23 @@
1
1
  import { Component, OnInit, Input, forwardRef } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { FormGroup } from '@angular/forms';
4
+ import { AngularPConnectData, AngularPConnectService } from '@pega/angular-sdk-components';
4
5
  import { ReferenceComponent } from '@pega/angular-sdk-components';
5
6
  import { ComponentMapperComponent } from '@pega/angular-sdk-components';
6
7
  import { TemplateUtils } from '@pega/angular-sdk-components';
7
8
  import { FormTemplateBase } from '@pega/angular-sdk-components';
8
9
 
10
+ function areViewsChanged(oldViews: any[], newViews: any[]): boolean {
11
+ if (oldViews?.length !== newViews?.length) {
12
+ return true;
13
+ }
14
+
15
+ return !oldViews?.every((oldView, index) => {
16
+ const newView = newViews[index];
17
+ return oldView.getPConnect().viewName === newView.getPConnect().viewName;
18
+ });
19
+ }
20
+
9
21
  interface PegaDxilMyFormProps {
10
22
  // If any, enter additional props that only exist on this component
11
23
  NumCols: string;
@@ -23,15 +35,32 @@ export class PegaDxilMyFormComponent extends FormTemplateBase implements OnInit
23
35
  @Input() override pConn$: typeof PConnect;
24
36
  @Input() formGroup$: FormGroup;
25
37
 
38
+ // Used with AngularPConnect
39
+ override angularPConnectData: AngularPConnectData = {};
40
+
26
41
  arChildren$: any[];
27
42
  divClass$: string;
28
43
  instructions: string;
29
44
 
30
- constructor(private templateUtils: TemplateUtils) {
45
+ constructor(
46
+ private angularPConnect: AngularPConnectService,
47
+ private templateUtils: TemplateUtils
48
+ ) {
31
49
  super();
32
50
  }
33
51
 
34
52
  ngOnInit(): void {
53
+ // First thing in initialization is registering and subscribing to the AngularPConnect service
54
+ this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
55
+
56
+ this.updateSelf();
57
+ }
58
+
59
+ onStateChange() {
60
+ this.updateSelf();
61
+ }
62
+
63
+ updateSelf() {
35
64
  const configProps = this.pConn$.getConfigProps() as PegaDxilMyFormProps;
36
65
  const kids = this.pConn$.getChildren();
37
66
  this.instructions = this.templateUtils.getInstructions(this.pConn$, configProps?.instructions);
@@ -55,6 +84,10 @@ export class PegaDxilMyFormComponent extends FormTemplateBase implements OnInit
55
84
  // repoint children before getting templateArray
56
85
  // Children may contain 'reference' component, so we need to
57
86
  // normalize them
58
- this.arChildren$ = ReferenceComponent.normalizePConnArray(kids[0].getPConnect().getChildren());
87
+ const children = ReferenceComponent.normalizePConnArray(kids[0].getPConnect().getChildren());
88
+
89
+ if (areViewsChanged(this.arChildren$, children)) {
90
+ this.arChildren$ = children;
91
+ }
59
92
  }
60
93
  }
@@ -11,7 +11,7 @@
11
11
  .psdk-two-column-column {
12
12
  width: 50%;
13
13
  float: left;
14
- padding: 0rem 1.5rem;
14
+ padding: 0rem 0.3125rem;
15
15
  height: 100%;
16
16
  }
17
17
 
@@ -27,7 +27,6 @@ export class MaterialCaseSummaryComponent implements OnInit, OnChanges {
27
27
  this.updateLabelAndDate(this.secondaryFields$);
28
28
  }
29
29
 
30
- // eslint-disable-next-line sonarjs/no-identical-functions
31
30
  ngOnChanges() {
32
31
  this.updatePrimaryWithStatus();
33
32
  this.updateLabelAndDate(this.primaryFieldsWithStatus$);
@@ -10,7 +10,7 @@
10
10
  </ng-template>
11
11
 
12
12
  <ng-template #showDetails>
13
- <div class="psdk-grid-filter" *ngIf="field.config.label">
13
+ <div class="psdk-grid-filter" *ngIf="field.config.label && getVisibility(field.config)">
14
14
  <div class="psdk-details-fields-label">
15
15
  {{ field.config.label }}
16
16
  </div>
@@ -29,4 +29,10 @@ export class MaterialDetailsFieldsComponent {
29
29
  _formatDate(dateValue: string, dateFormat: string): string {
30
30
  return this.utils.generateDate(dateValue, dateFormat);
31
31
  }
32
+
33
+ getVisibility(config): boolean {
34
+ const { visibility = true } = config;
35
+
36
+ return this.utils.getBooleanValue(visibility);
37
+ }
32
38
  }
@@ -1,4 +1,4 @@
1
- <div class="psdk-operator psdk-double">
1
+ <div class="psdk-operator psdk-double" [ngClass]="{ 'flex-row': displayLabel }">
2
2
  <div class="psdk-label">
3
3
  {{ label$ }}
4
4
  </div>
@@ -1,9 +1,18 @@
1
1
  .psdk-operator {
2
2
  display: flex;
3
- flex-direction: row;
3
+ flex-direction: column;
4
4
  font-size: 0.8rem;
5
5
  color: var(--app-neutral-color);
6
+ padding-left: 0.625rem;
7
+ margin: 16px 0 8px 0;
8
+ }
9
+
10
+ .psdk-operator.flex-row {
11
+ flex-direction: row;
6
12
  align-items: center;
13
+ text-align: center;
14
+ padding-left: 0;
15
+ margin: 0;
7
16
  }
8
17
 
9
18
  .psdk-operator-popover {
@@ -35,7 +44,6 @@
35
44
 
36
45
  .psdk-double {
37
46
  column-gap: 1rem;
38
- text-align: center;
39
47
  }
40
48
 
41
49
  .psdk-top-pad {
@@ -13,10 +13,11 @@ import { Utils } from '@pega/angular-sdk-components';
13
13
  export class OperatorComponent implements OnInit, OnChanges, OnDestroy {
14
14
  @Input() pConn$: typeof PConnect;
15
15
  @Input() displayLabel;
16
+ @Input() name$?: string;
17
+
16
18
  fields$: any[] = [];
17
19
  bShowPopover$: boolean;
18
20
  date$: string;
19
- name$: string;
20
21
  label$: string;
21
22
  id$: string;
22
23
  constructor(
@@ -40,7 +41,7 @@ export class OperatorComponent implements OnInit, OnChanges, OnDestroy {
40
41
 
41
42
  ngOnChanges(changes: SimpleChanges): void {
42
43
  const { pConn$ } = changes;
43
- if (pConn$.previousValue !== pConn$.currentValue) {
44
+ if (pConn$ && pConn$.previousValue !== pConn$.currentValue) {
44
45
  this.updateSelf();
45
46
  }
46
47
  }
@@ -69,7 +70,7 @@ export class OperatorComponent implements OnInit, OnChanges, OnDestroy {
69
70
  this.id$ = configProps$.resolveOperator.userId;
70
71
  this.label$ = configProps$.resolveLabel;
71
72
  } else {
72
- this.name$ = configProps$?.value.userName;
73
+ this.name$ = this.name$ || configProps$?.value.userName;
73
74
  this.id$ = configProps$?.value.userId;
74
75
  this.label$ = configProps$.label;
75
76
  }
@@ -11,7 +11,6 @@
11
11
  [placeholder]="placeholder"
12
12
  [formControl]="fieldControl"
13
13
  [attr.data-test-id]="testId"
14
- [value]="value$"
15
14
  [required]="bRequired$"
16
15
  [matAutocomplete]="auto"
17
16
  (input)="fieldOnChange($event)"
@@ -14,6 +14,10 @@ import { DatapageService } from '@pega/angular-sdk-components';
14
14
  import { handleEvent } from '@pega/angular-sdk-components';
15
15
  import { PConnFieldProps } from '@pega/angular-sdk-components';
16
16
 
17
+ interface IOption {
18
+ key: string;
19
+ value: string;
20
+ }
17
21
  interface AutoCompleteProps extends PConnFieldProps {
18
22
  // If any, enter additional props that only exist on AutoComplete here
19
23
  deferDatasource?: boolean;
@@ -108,6 +112,13 @@ export class AutoCompleteComponent implements OnInit, OnDestroy {
108
112
  );
109
113
  }
110
114
 
115
+ setOptions(options: IOption[]) {
116
+ this.options$ = options;
117
+ const index = this.options$?.findIndex(element => element.key === this.configProps$.value);
118
+ this.value$ = index > -1 ? this.options$[index].value : this.configProps$.value;
119
+ this.fieldControl.setValue(this.value$);
120
+ }
121
+
111
122
  ngOnDestroy(): void {
112
123
  if (this.formGroup$) {
113
124
  this.formGroup$.removeControl(this.controlName$);
@@ -149,6 +160,7 @@ export class AutoCompleteComponent implements OnInit, OnDestroy {
149
160
  if (this.configProps$.value != undefined) {
150
161
  const index = this.options$?.findIndex(element => element.key === this.configProps$.value);
151
162
  this.value$ = index > -1 ? this.options$[index].value : this.configProps$.value;
163
+ this.fieldControl.setValue(this.value$);
152
164
  }
153
165
 
154
166
  this.setPropertyValuesFromProps();
@@ -191,7 +203,8 @@ export class AutoCompleteComponent implements OnInit, OnDestroy {
191
203
 
192
204
  this.componentReference = this.pConn$.getStateProps().value;
193
205
  if (this.listType === 'associated') {
194
- this.options$ = this.utils.getOptionList(this.configProps$, this.pConn$.getDataObject('')); // 1st arg empty string until typedef marked correctly
206
+ const optionsList = this.utils.getOptionList(this.configProps$, this.pConn$.getDataObject('')); // 1st arg empty string until typedef marked correctly
207
+ this.setOptions(optionsList);
195
208
  }
196
209
 
197
210
  if (!this.displayMode$ && this.listType !== 'associated') {
@@ -263,7 +276,7 @@ export class AutoCompleteComponent implements OnInit, OnDestroy {
263
276
  };
264
277
  optionsData.push(obj);
265
278
  });
266
- this.options$ = optionsData;
279
+ this.setOptions(optionsData);
267
280
  }
268
281
 
269
282
  flattenParameters(params = {}) {
@@ -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)"
@@ -130,6 +130,7 @@ export class CurrencyComponent 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 CurrencyComponent 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() {
@@ -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>
@@ -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 DateTimeProps extends PConnFieldProps {
18
20
  // If any, enter additional props that only exist on DateTime here
@@ -68,6 +70,7 @@ export class DateTimeComponent 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 DateTimeComponent 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 DateTimeComponent 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 DateTimeComponent 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
  }
@@ -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',