@pega/react-sdk-components 0.24.3 → 0.242.1

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 (199) hide show
  1. package/lib/bridge/react_pconnect.d.ts.map +1 -1
  2. package/lib/bridge/react_pconnect.js +137 -140
  3. package/lib/bridge/react_pconnect.js.map +1 -1
  4. package/lib/components/designSystemExtension/AlertBanner/AlertBanner.js +1 -1
  5. package/lib/components/designSystemExtension/AlertBanner/AlertBanner.js.map +1 -1
  6. package/lib/components/designSystemExtension/Banner/Banner.js +1 -1
  7. package/lib/components/designSystemExtension/Banner/Banner.js.map +1 -1
  8. package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.d.ts.map +1 -1
  9. package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.js +11 -11
  10. package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.js.map +1 -1
  11. package/lib/components/designSystemExtension/DetailsFields/DetailsFields.js +3 -3
  12. package/lib/components/designSystemExtension/DetailsFields/DetailsFields.js.map +1 -1
  13. package/lib/components/designSystemExtension/FieldGroup/FieldGroup.js +4 -4
  14. package/lib/components/designSystemExtension/FieldGroup/FieldGroup.js.map +1 -1
  15. package/lib/components/designSystemExtension/FieldGroupList/FieldGroupList.js +4 -4
  16. package/lib/components/designSystemExtension/FieldGroupList/FieldGroupList.js.map +1 -1
  17. package/lib/components/designSystemExtension/FieldValueList/FieldValueList.js +3 -3
  18. package/lib/components/designSystemExtension/FieldValueList/FieldValueList.js.map +1 -1
  19. package/lib/components/designSystemExtension/Operator/Operator.d.ts.map +1 -1
  20. package/lib/components/designSystemExtension/Operator/Operator.js +6 -6
  21. package/lib/components/designSystemExtension/Operator/Operator.js.map +1 -1
  22. package/lib/components/designSystemExtension/Pulse/Pulse.js +2 -2
  23. package/lib/components/designSystemExtension/Pulse/Pulse.js.map +1 -1
  24. package/lib/components/designSystemExtension/RichTextEditor/RichTextEditor.d.ts.map +1 -1
  25. package/lib/components/designSystemExtension/RichTextEditor/RichTextEditor.js +3 -2
  26. package/lib/components/designSystemExtension/RichTextEditor/RichTextEditor.js.map +1 -1
  27. package/lib/components/designSystemExtension/WssQuickCreate/WssQuickCreate.js +1 -1
  28. package/lib/components/designSystemExtension/WssQuickCreate/WssQuickCreate.js.map +1 -1
  29. package/lib/components/field/AutoComplete/AutoComplete.js +3 -3
  30. package/lib/components/field/AutoComplete/AutoComplete.js.map +1 -1
  31. package/lib/components/field/CancelAlert/CancelAlert.js +2 -2
  32. package/lib/components/field/CancelAlert/CancelAlert.js.map +1 -1
  33. package/lib/components/field/Checkbox/Checkbox.d.ts.map +1 -1
  34. package/lib/components/field/Checkbox/Checkbox.js +3 -3
  35. package/lib/components/field/Checkbox/Checkbox.js.map +1 -1
  36. package/lib/components/field/Currency/Currency.js +1 -1
  37. package/lib/components/field/Currency/Currency.js.map +1 -1
  38. package/lib/components/field/Date/Date.d.ts.map +1 -1
  39. package/lib/components/field/Date/Date.js +17 -8
  40. package/lib/components/field/Date/Date.js.map +1 -1
  41. package/lib/components/field/DateTime/DateTime.d.ts.map +1 -1
  42. package/lib/components/field/DateTime/DateTime.js +24 -7
  43. package/lib/components/field/DateTime/DateTime.js.map +1 -1
  44. package/lib/components/field/Decimal/Decimal.js +1 -1
  45. package/lib/components/field/Decimal/Decimal.js.map +1 -1
  46. package/lib/components/field/Dropdown/Dropdown.js +2 -2
  47. package/lib/components/field/Dropdown/Dropdown.js.map +1 -1
  48. package/lib/components/field/Email/Email.js +2 -2
  49. package/lib/components/field/Email/Email.js.map +1 -1
  50. package/lib/components/field/Group/Group.js +1 -1
  51. package/lib/components/field/Group/Group.js.map +1 -1
  52. package/lib/components/field/Integer/Integer.js +1 -1
  53. package/lib/components/field/Integer/Integer.js.map +1 -1
  54. package/lib/components/field/Multiselect/Multiselect.d.ts.map +1 -1
  55. package/lib/components/field/Multiselect/Multiselect.js +12 -8
  56. package/lib/components/field/Multiselect/Multiselect.js.map +1 -1
  57. package/lib/components/field/Percentage/Percentage.js +2 -2
  58. package/lib/components/field/Percentage/Percentage.js.map +1 -1
  59. package/lib/components/field/Phone/Phone.d.ts.map +1 -1
  60. package/lib/components/field/Phone/Phone.js +14 -8
  61. package/lib/components/field/Phone/Phone.js.map +1 -1
  62. package/lib/components/field/RadioButtons/RadioButtons.js +2 -2
  63. package/lib/components/field/RadioButtons/RadioButtons.js.map +1 -1
  64. package/lib/components/field/SemanticLink/SemanticLink.js +3 -3
  65. package/lib/components/field/SemanticLink/SemanticLink.js.map +1 -1
  66. package/lib/components/field/TextArea/TextArea.js +1 -1
  67. package/lib/components/field/TextArea/TextArea.js.map +1 -1
  68. package/lib/components/field/TextContent/TextContent.js +1 -1
  69. package/lib/components/field/TextContent/TextContent.js.map +1 -1
  70. package/lib/components/field/TextInput/TextInput.js +1 -1
  71. package/lib/components/field/TextInput/TextInput.js.map +1 -1
  72. package/lib/components/field/Time/Time.d.ts.map +1 -1
  73. package/lib/components/field/Time/Time.js +22 -3
  74. package/lib/components/field/Time/Time.js.map +1 -1
  75. package/lib/components/field/URL/URL.js +1 -1
  76. package/lib/components/field/URL/URL.js.map +1 -1
  77. package/lib/components/field/UserReference/UserReference.js +1 -1
  78. package/lib/components/field/UserReference/UserReference.js.map +1 -1
  79. package/lib/components/helpers/simpleTableHelpers.js +1 -1
  80. package/lib/components/helpers/simpleTableHelpers.js.map +1 -1
  81. package/lib/components/infra/ActionButtons/ActionButtons.js +3 -3
  82. package/lib/components/infra/ActionButtons/ActionButtons.js.map +1 -1
  83. package/lib/components/infra/Assignment/Assignment.d.ts.map +1 -1
  84. package/lib/components/infra/Assignment/Assignment.js +27 -4
  85. package/lib/components/infra/Assignment/Assignment.js.map +1 -1
  86. package/lib/components/infra/Containers/FlowContainer/FlowContainer.d.ts.map +1 -1
  87. package/lib/components/infra/Containers/FlowContainer/FlowContainer.js +5 -6
  88. package/lib/components/infra/Containers/FlowContainer/FlowContainer.js.map +1 -1
  89. package/lib/components/infra/Containers/ModalViewContainer/ListViewActionButtons/ListViewActionButtons.js +2 -2
  90. package/lib/components/infra/Containers/ModalViewContainer/ListViewActionButtons/ListViewActionButtons.js.map +1 -1
  91. package/lib/components/infra/Containers/ModalViewContainer/ModalViewContainer.js +7 -7
  92. package/lib/components/infra/Containers/ModalViewContainer/ModalViewContainer.js.map +1 -1
  93. package/lib/components/infra/Containers/ViewContainer/ViewContainer.js +1 -1
  94. package/lib/components/infra/Containers/ViewContainer/ViewContainer.js.map +1 -1
  95. package/lib/components/infra/DashboardFilter/DashboardFilter.js +1 -1
  96. package/lib/components/infra/DashboardFilter/DashboardFilter.js.map +1 -1
  97. package/lib/components/infra/DashboardFilter/filterUtils.d.ts.map +1 -1
  98. package/lib/components/infra/DashboardFilter/filterUtils.js +2 -2
  99. package/lib/components/infra/DashboardFilter/filterUtils.js.map +1 -1
  100. package/lib/components/infra/DeferLoad/DeferLoad.js +2 -2
  101. package/lib/components/infra/DeferLoad/DeferLoad.js.map +1 -1
  102. package/lib/components/infra/NavBar/NavBar.d.ts.map +1 -1
  103. package/lib/components/infra/NavBar/NavBar.js +16 -15
  104. package/lib/components/infra/NavBar/NavBar.js.map +1 -1
  105. package/lib/components/infra/RootContainer/RootContainer.d.ts.map +1 -1
  106. package/lib/components/infra/RootContainer/RootContainer.js +5 -6
  107. package/lib/components/infra/RootContainer/RootContainer.js.map +1 -1
  108. package/lib/components/infra/Stages/Stages.js +4 -4
  109. package/lib/components/infra/Stages/Stages.js.map +1 -1
  110. package/lib/components/infra/VerticalTabs/LeftAlignVerticalTabs/LeftAlignVerticalTabs.js +2 -2
  111. package/lib/components/infra/VerticalTabs/LeftAlignVerticalTabs/LeftAlignVerticalTabs.js.map +1 -1
  112. package/lib/components/infra/VerticalTabs/VerticalTabs/VerticalTabs.js +2 -2
  113. package/lib/components/infra/VerticalTabs/VerticalTabs/VerticalTabs.js.map +1 -1
  114. package/lib/components/template/AppShell/AppShell.d.ts.map +1 -1
  115. package/lib/components/template/AppShell/AppShell.js +20 -2
  116. package/lib/components/template/AppShell/AppShell.js.map +1 -1
  117. package/lib/components/template/CaseView/CaseView.js +5 -5
  118. package/lib/components/template/CaseView/CaseView.js.map +1 -1
  119. package/lib/components/template/CaseViewActionsMenu/CaseViewActionsMenu.js +6 -6
  120. package/lib/components/template/CaseViewActionsMenu/CaseViewActionsMenu.js.map +1 -1
  121. package/lib/components/template/Confirmation/Confirmation.d.ts.map +1 -1
  122. package/lib/components/template/Confirmation/Confirmation.js +2 -1
  123. package/lib/components/template/Confirmation/Confirmation.js.map +1 -1
  124. package/lib/components/template/DataReference/DataReference.js +1 -1
  125. package/lib/components/template/DataReference/DataReference.js.map +1 -1
  126. package/lib/components/template/Details/Details/Details.js +1 -1
  127. package/lib/components/template/Details/Details/Details.js.map +1 -1
  128. package/lib/components/template/Details/DetailsSubTabs/DetailsSubTabs.js +3 -3
  129. package/lib/components/template/Details/DetailsSubTabs/DetailsSubTabs.js.map +1 -1
  130. package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.js +1 -1
  131. package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.js.map +1 -1
  132. package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.js +1 -1
  133. package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.js.map +1 -1
  134. package/lib/components/template/Details/DynamicTabs/DynamicTabs.d.ts.map +1 -1
  135. package/lib/components/template/Details/DynamicTabs/DynamicTabs.js +3 -2
  136. package/lib/components/template/Details/DynamicTabs/DynamicTabs.js.map +1 -1
  137. package/lib/components/template/InlineDashboard/InlineDashboard.js +2 -2
  138. package/lib/components/template/InlineDashboard/InlineDashboard.js.map +1 -1
  139. package/lib/components/template/ListView/ListView.d.ts.map +1 -1
  140. package/lib/components/template/ListView/ListView.js +49 -57
  141. package/lib/components/template/ListView/ListView.js.map +1 -1
  142. package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.js +1 -1
  143. package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.js.map +1 -1
  144. package/lib/components/template/OneColumn/OneColumn/OneColumn.js +2 -2
  145. package/lib/components/template/OneColumn/OneColumn/OneColumn.js.map +1 -1
  146. package/lib/components/template/PromotedFilters/PromotedFilters.js +1 -1
  147. package/lib/components/template/PromotedFilters/PromotedFilters.js.map +1 -1
  148. package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.d.ts.map +1 -1
  149. package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js +23 -23
  150. package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js.map +1 -1
  151. package/lib/components/template/SubTabs/SubTabs.js +2 -2
  152. package/lib/components/template/SubTabs/SubTabs.js.map +1 -1
  153. package/lib/components/template/TwoColumn/TwoColumn/TwoColumn.js +2 -2
  154. package/lib/components/template/TwoColumn/TwoColumn/TwoColumn.js.map +1 -1
  155. package/lib/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.js +2 -2
  156. package/lib/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.js.map +1 -1
  157. package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.js +1 -1
  158. package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.js.map +1 -1
  159. package/lib/components/template/WssNavBar/WssNavBar.js +9 -9
  160. package/lib/components/template/WssNavBar/WssNavBar.js.map +1 -1
  161. package/lib/components/widget/AppAnnouncement/AppAnnouncement.js +2 -2
  162. package/lib/components/widget/AppAnnouncement/AppAnnouncement.js.map +1 -1
  163. package/lib/components/widget/Attachment/Attachment.d.ts.map +1 -1
  164. package/lib/components/widget/Attachment/Attachment.js +3 -3
  165. package/lib/components/widget/Attachment/Attachment.js.map +1 -1
  166. package/lib/components/widget/CaseHistory/CaseHistory.d.ts.map +1 -1
  167. package/lib/components/widget/CaseHistory/CaseHistory.js +8 -7
  168. package/lib/components/widget/CaseHistory/CaseHistory.js.map +1 -1
  169. package/lib/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.js +1 -1
  170. package/lib/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.js.map +1 -1
  171. package/lib/components/widget/FileUtility/FileUtility/FileUtility.d.ts.map +1 -1
  172. package/lib/components/widget/FileUtility/FileUtility/FileUtility.js +4 -4
  173. package/lib/components/widget/FileUtility/FileUtility/FileUtility.js.map +1 -1
  174. package/lib/components/widget/Followers/Followers.js +2 -2
  175. package/lib/components/widget/Followers/Followers.js.map +1 -1
  176. package/lib/components/widget/SummaryItem/SummaryItem.d.ts.map +1 -1
  177. package/lib/components/widget/SummaryItem/SummaryItem.js +3 -3
  178. package/lib/components/widget/SummaryItem/SummaryItem.js.map +1 -1
  179. package/lib/components/widget/ToDo/ToDo.d.ts.map +1 -1
  180. package/lib/components/widget/ToDo/ToDo.js +52 -16
  181. package/lib/components/widget/ToDo/ToDo.js.map +1 -1
  182. package/lib/doc/KeyReleaseUpdates.md +19 -7
  183. package/lib/hooks/index.d.ts +2 -0
  184. package/lib/hooks/index.d.ts.map +1 -1
  185. package/lib/hooks/index.js +2 -0
  186. package/lib/hooks/index.js.map +1 -1
  187. package/lib/hooks/useFocusFirstField.d.ts +7 -0
  188. package/lib/hooks/useFocusFirstField.d.ts.map +1 -0
  189. package/lib/hooks/useFocusFirstField.js +20 -0
  190. package/lib/hooks/useFocusFirstField.js.map +1 -0
  191. package/lib/hooks/useScrolltoTop.d.ts +7 -0
  192. package/lib/hooks/useScrolltoTop.d.ts.map +1 -0
  193. package/lib/hooks/useScrolltoTop.js +13 -0
  194. package/lib/hooks/useScrolltoTop.js.map +1 -0
  195. package/lib/theme.d.ts +11 -0
  196. package/lib/theme.d.ts.map +1 -0
  197. package/lib/theme.js +19 -0
  198. package/lib/theme.js.map +1 -0
  199. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"WideNarrowDetails.js","sourceRoot":"","sources":["../../../../../src/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx"],"names":[],"mappings":"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","sourcesContent":["import { createElement } from 'react';\nimport Grid, { GridSize } from '@material-ui/core/Grid';\n\nimport createPConnectComponent from '../../../../bridge/react_pconnect';\nimport { getComponentFromMap } from '../../../../bridge/helpers/sdk_component_map';\n\nimport { PConnProps } from '../../../../types/PConnProps';\n\ninterface WideNarrowDetailsProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n showLabel?: boolean;\n label?: string;\n showHighlightedData?: boolean;\n}\n\nconst COLUMN_WIDTHS = [8, 4];\n\nexport default function WideNarrowDetails(props: WideNarrowDetailsProps) {\n // Get emitted components from map (so we can get any override that may exist)\n const FieldGroup = getComponentFromMap('FieldGroup');\n\n const { label, showLabel = true, getPConnect, showHighlightedData = false } = props;\n\n // Get the inherited props from the parent to determine label settings\n const propsToUse = { label, showLabel, ...getPConnect().getInheritedProps() };\n\n // Set display mode prop and re-create the children so this part of the dom tree renders\n // in a readonly (display) mode instead of a editable\n getPConnect().setInheritedProp('displayMode', 'LABELS_LEFT');\n getPConnect().setInheritedProp('readOnly', true);\n const children = (getPConnect().getChildren() as any[])?.map((configObject, index) => {\n let theConfigObject: object = configObject;\n if (!theConfigObject) {\n theConfigObject = {};\n }\n\n return createElement(createPConnectComponent(), {\n ...theConfigObject,\n // eslint-disable-next-line react/no-array-index-key\n key: index.toString()\n });\n });\n\n // Set up highlighted data to pass in return if is set to show, need raw metadata to pass to createComponent\n let highlightedDataArr = [];\n if (showHighlightedData) {\n const { highlightedData = [] } = (getPConnect().getRawMetadata() as any).config;\n highlightedDataArr = highlightedData.map(field => {\n field.config.displayMode = 'STACKED_LARGE_VAL';\n\n // Mark as status display when using pyStatusWork\n if (field.config.value === '@P .pyStatusWork') {\n field.type = 'TextInput';\n field.config.displayAsStatus = true;\n }\n\n return getPConnect().createComponent(field, '', 0, {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional\n });\n }\n\n let theName = '';\n if (propsToUse?.showLabel && propsToUse.label) {\n theName = propsToUse.label;\n }\n\n return (\n <FieldGroup name={theName}>\n {showHighlightedData && highlightedDataArr.length > 0 && (\n <Grid container spacing={1} style={{ padding: '0 0 1em' }}>\n {highlightedDataArr.map((child, i) => (\n <Grid item xs={COLUMN_WIDTHS[i] as GridSize} key={`hf-${i + 1}`}>\n {child}\n </Grid>\n ))}\n </Grid>\n )}\n <Grid container spacing={1}>\n {children?.map((child, i) => (\n <Grid item xs={COLUMN_WIDTHS[i] as GridSize} key={`r-${i + 1}`}>\n {child}\n </Grid>\n ))}\n </Grid>\n </FieldGroup>\n );\n}\n"]}
1
+ {"version":3,"file":"WideNarrowDetails.js","sourceRoot":"","sources":["../../../../../src/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,IAAkB,MAAM,oBAAoB,CAAC;AAEpD,OAAO,uBAAuB,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAWnF,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7B,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAA6B;IACrE,8EAA8E;IAC9E,MAAM,UAAU,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAErD,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,WAAW,EAAE,mBAAmB,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IAEpF,sEAAsE;IACtE,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC;IAE9E,wFAAwF;IACxF,qDAAqD;IACrD,WAAW,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAC7D,WAAW,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAI,WAAW,EAAE,CAAC,WAAW,EAAY,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;QACnF,IAAI,eAAe,GAAW,YAAY,CAAC;QAC3C,IAAI,CAAC,eAAe,EAAE;YACpB,eAAe,GAAG,EAAE,CAAC;SACtB;QAED,OAAO,aAAa,CAAC,uBAAuB,EAAE,EAAE;YAC9C,GAAG,eAAe;YAClB,oDAAoD;YACpD,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4GAA4G;IAC5G,IAAI,kBAAkB,GAAG,EAAE,CAAC;IAC5B,IAAI,mBAAmB,EAAE;QACvB,MAAM,EAAE,eAAe,GAAG,EAAE,EAAE,GAAI,WAAW,EAAE,CAAC,cAAc,EAAU,CAAC,MAAM,CAAC;QAChF,kBAAkB,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC/C,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,mBAAmB,CAAC;YAE/C,iDAAiD;YACjD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,kBAAkB,EAAE;gBAC7C,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;gBACzB,KAAK,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;aACrC;YAED,OAAO,WAAW,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,6FAA6F;QACvJ,CAAC,CAAC,CAAC;KACJ;IAED,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,UAAU,EAAE,SAAS,IAAI,UAAU,CAAC,KAAK,EAAE;QAC7C,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC;KAC5B;IAED,OAAO,CACL,MAAC,UAAU,IAAC,IAAI,EAAE,OAAO,aACtB,mBAAmB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,CACvD,KAAC,IAAI,IAAC,SAAS,QAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,YACtD,kBAAkB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACpC,KAAC,IAAI,IAAC,IAAI,QAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAa,YACxC,KAAK,IAD0C,MAAM,CAAC,GAAG,CAAC,EAAE,CAExD,CACR,CAAC,GACG,CACR,EACD,KAAC,IAAI,IAAC,SAAS,QAAC,OAAO,EAAE,CAAC,YACvB,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3B,KAAC,IAAI,IAAC,IAAI,QAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAa,YACxC,KAAK,IAD0C,KAAK,CAAC,GAAG,CAAC,EAAE,CAEvD,CACR,CAAC,GACG,IACI,CACd,CAAC;AACJ,CAAC","sourcesContent":["import { createElement } from 'react';\nimport Grid, { GridSize } from '@mui/material/Grid';\n\nimport createPConnectComponent from '../../../../bridge/react_pconnect';\nimport { getComponentFromMap } from '../../../../bridge/helpers/sdk_component_map';\n\nimport { PConnProps } from '../../../../types/PConnProps';\n\ninterface WideNarrowDetailsProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n showLabel?: boolean;\n label?: string;\n showHighlightedData?: boolean;\n}\n\nconst COLUMN_WIDTHS = [8, 4];\n\nexport default function WideNarrowDetails(props: WideNarrowDetailsProps) {\n // Get emitted components from map (so we can get any override that may exist)\n const FieldGroup = getComponentFromMap('FieldGroup');\n\n const { label, showLabel = true, getPConnect, showHighlightedData = false } = props;\n\n // Get the inherited props from the parent to determine label settings\n const propsToUse = { label, showLabel, ...getPConnect().getInheritedProps() };\n\n // Set display mode prop and re-create the children so this part of the dom tree renders\n // in a readonly (display) mode instead of a editable\n getPConnect().setInheritedProp('displayMode', 'LABELS_LEFT');\n getPConnect().setInheritedProp('readOnly', true);\n const children = (getPConnect().getChildren() as any[])?.map((configObject, index) => {\n let theConfigObject: object = configObject;\n if (!theConfigObject) {\n theConfigObject = {};\n }\n\n return createElement(createPConnectComponent(), {\n ...theConfigObject,\n // eslint-disable-next-line react/no-array-index-key\n key: index.toString()\n });\n });\n\n // Set up highlighted data to pass in return if is set to show, need raw metadata to pass to createComponent\n let highlightedDataArr = [];\n if (showHighlightedData) {\n const { highlightedData = [] } = (getPConnect().getRawMetadata() as any).config;\n highlightedDataArr = highlightedData.map(field => {\n field.config.displayMode = 'STACKED_LARGE_VAL';\n\n // Mark as status display when using pyStatusWork\n if (field.config.value === '@P .pyStatusWork') {\n field.type = 'TextInput';\n field.config.displayAsStatus = true;\n }\n\n return getPConnect().createComponent(field, '', 0, {}); // 2nd, 3rd, and 4th args empty string/object/null until typedef marked correctly as optional\n });\n }\n\n let theName = '';\n if (propsToUse?.showLabel && propsToUse.label) {\n theName = propsToUse.label;\n }\n\n return (\n <FieldGroup name={theName}>\n {showHighlightedData && highlightedDataArr.length > 0 && (\n <Grid container spacing={1} style={{ padding: '0 0 1em' }}>\n {highlightedDataArr.map((child, i) => (\n <Grid item xs={COLUMN_WIDTHS[i] as GridSize} key={`hf-${i + 1}`}>\n {child}\n </Grid>\n ))}\n </Grid>\n )}\n <Grid container spacing={1}>\n {children?.map((child, i) => (\n <Grid item xs={COLUMN_WIDTHS[i] as GridSize} key={`r-${i + 1}`}>\n {child}\n </Grid>\n ))}\n </Grid>\n </FieldGroup>\n );\n}\n"]}
@@ -1,13 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
- import { makeStyles } from '@material-ui/core/styles';
4
- import AppBar from '@material-ui/core/AppBar';
5
- import Box from '@material-ui/core/Box';
6
- import Toolbar from '@material-ui/core/Toolbar';
7
- import Container from '@material-ui/core/Container';
8
- import { IconButton, Menu, MenuItem, Typography, Button } from '@material-ui/core';
9
- import Avatar from '@material-ui/core/Avatar';
10
- import MenuIcon from '@material-ui/icons/Menu';
3
+ import makeStyles from '@mui/styles/makeStyles';
4
+ import AppBar from '@mui/material/AppBar';
5
+ import Box from '@mui/material/Box';
6
+ import Toolbar from '@mui/material/Toolbar';
7
+ import Container from '@mui/material/Container';
8
+ import { IconButton, Menu, MenuItem, Typography, Button } from '@mui/material';
9
+ import Avatar from '@mui/material/Avatar';
10
+ import MenuIcon from '@mui/icons-material/Menu';
11
11
  import { logout } from '@pega/auth/lib/sdk-auth-manager';
12
12
  import './WssNavBar.css';
13
13
  const useStyles = makeStyles(theme => ({
@@ -57,7 +57,7 @@ export default function WssNavBar(props) {
57
57
  }, keepMounted: true, transformOrigin: {
58
58
  vertical: 'top',
59
59
  horizontal: 'left'
60
- }, open: Boolean(anchorElNav), onClose: handleCloseNavMenu, children: navLinks.map(link => (_jsx(MenuItem, { onClick: link.onClick, children: _jsx(Typography, { children: link.text }) }, link.text))) })] }), position === 'inline' && _jsx(_Fragment, { children: navLinksContent }), _jsxs(Box, { sx: { flexGrow: 0 }, children: [_jsx(IconButton, { onClick: handleOpenUserMenu, children: _jsx(Avatar, { children: operator.currentUserInitials }) }), _jsx(Menu, { id: 'menu-appbar', anchorEl: anchorElUser, anchorOrigin: {
60
+ }, open: Boolean(anchorElNav), onClose: handleCloseNavMenu, children: navLinks.map(link => (_jsx(MenuItem, { onClick: link.onClick, children: _jsx(Typography, { children: link.text }) }, link.text))) })] }), position === 'inline' && _jsx(_Fragment, { children: navLinksContent }), _jsxs(Box, { sx: { flexGrow: 0 }, children: [_jsx(IconButton, { onClick: handleOpenUserMenu, size: 'large', children: _jsx(Avatar, { children: operator.currentUserInitials }) }), _jsx(Menu, { id: 'menu-appbar', anchorEl: anchorElUser, anchorOrigin: {
61
61
  vertical: 'top',
62
62
  horizontal: 'right'
63
63
  }, keepMounted: true, transformOrigin: {
@@ -1 +1 @@
1
- {"version":3,"file":"WssNavBar.js","sourceRoot":"","sources":["../../../../src/components/template/WssNavBar/WssNavBar.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport AppBar from '@material-ui/core/AppBar';\nimport Box from '@material-ui/core/Box';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport Container from '@material-ui/core/Container';\nimport { IconButton, Menu, MenuItem, Typography, Button } from '@material-ui/core';\nimport Avatar from '@material-ui/core/Avatar';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport { logout } from '@pega/auth/lib/sdk-auth-manager';\nimport { PConnProps } from '../../../types/PConnProps';\nimport './WssNavBar.css';\n\ninterface WssNavBarProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n appInfo: any;\n navLinks: any[];\n operator: { currentUserInitials: string };\n navDisplayOptions: { alignment: string; position: string };\n // eslint-disable-next-line react/no-unused-prop-types\n portalName: string;\n imageSrc: string;\n // eslint-disable-next-line react/no-unused-prop-types\n fullImageSrc: string;\n appName: any;\n}\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex'\n },\n content: {\n flexGrow: 1,\n height: '100vh',\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2)\n },\n appListLogo: {\n width: '3.6rem'\n },\n appName: {\n color: 'white',\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(4),\n fontSize: '1.5rem'\n }\n}));\n\nexport default function WssNavBar(props: WssNavBarProps) {\n const { appInfo, navLinks, operator, navDisplayOptions } = props;\n const { alignment, position } = navDisplayOptions;\n const classes = useStyles();\n\n const [anchorElNav, setAnchorElNav] = useState<null | HTMLElement>(null);\n const [anchorElUser, setAnchorElUser] = useState<null | HTMLElement>(null);\n\n const localizedVal = PCore.getLocaleUtils().getLocaleValue;\n const localeCategory = 'AppShell';\n\n const handleOpenNavMenu = (event: React.MouseEvent<HTMLElement>) => {\n setAnchorElNav(event.currentTarget);\n };\n const handleOpenUserMenu = (event: React.MouseEvent<HTMLElement>) => {\n setAnchorElUser(event.currentTarget);\n };\n\n const handleCloseNavMenu = () => {\n setAnchorElNav(null);\n };\n\n const handleCloseUserMenu = () => {\n setAnchorElUser(null);\n };\n\n const navLinksContent = (\n <Box id='nav-links' sx={{ flexGrow: 1, display: { xs: 'none', md: 'flex' } }} style={{ justifyContent: alignment }}>\n {navLinks.map(link => (\n <Button className='link-style' key={link.text} onClick={link.onClick}>\n {link.text}\n </Button>\n ))}\n </Box>\n );\n\n return (\n <div id='NavBar' className='nav-bar'>\n <AppBar position='static' color='primary'>\n <Container maxWidth='xl'>\n <Toolbar disableGutters style={{ justifyContent: 'space-between' }}>\n <Button id='appName' style={{ textTransform: 'capitalize' }} onClick={appInfo.onClick}>\n <img src={appInfo.imageSrc} className={classes.appListLogo} />\n <span className={classes.appName}>{appInfo.appName}</span>\n </Button>\n <Box sx={{ flexGrow: 1, display: { xs: 'flex', md: 'none' } }}>\n <IconButton\n size='small'\n aria-label='account of current user'\n aria-controls='menu-appbar'\n aria-haspopup='true'\n onClick={handleOpenNavMenu}\n color='inherit'\n >\n <MenuIcon />\n </IconButton>\n <Menu\n id='menu-appbar'\n anchorEl={anchorElNav}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left'\n }}\n keepMounted\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left'\n }}\n open={Boolean(anchorElNav)}\n onClose={handleCloseNavMenu}\n >\n {navLinks.map(link => (\n <MenuItem key={link.text} onClick={link.onClick}>\n <Typography>{link.text}</Typography>\n </MenuItem>\n ))}\n </Menu>\n </Box>\n\n {position === 'inline' && <>{navLinksContent}</>}\n\n <Box sx={{ flexGrow: 0 }}>\n <IconButton onClick={handleOpenUserMenu}>\n <Avatar>{operator.currentUserInitials}</Avatar>\n </IconButton>\n <Menu\n id='menu-appbar'\n anchorEl={anchorElUser}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n keepMounted\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n open={Boolean(anchorElUser)}\n onClose={handleCloseUserMenu}\n >\n <MenuItem onClick={logout}>\n <Typography>{localizedVal('Log off', localeCategory)}</Typography>\n </MenuItem>\n </Menu>\n </Box>\n </Toolbar>\n {position === 'below' && <>{navLinksContent}</>}\n </Container>\n </AppBar>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"WssNavBar.js","sourceRoot":"","sources":["../../../../src/components/template/WssNavBar/WssNavBar.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport makeStyles from '@mui/styles/makeStyles';\nimport AppBar from '@mui/material/AppBar';\nimport Box from '@mui/material/Box';\nimport Toolbar from '@mui/material/Toolbar';\nimport Container from '@mui/material/Container';\nimport { IconButton, Menu, MenuItem, Typography, Button } from '@mui/material';\nimport Avatar from '@mui/material/Avatar';\nimport MenuIcon from '@mui/icons-material/Menu';\nimport { logout } from '@pega/auth/lib/sdk-auth-manager';\nimport { PConnProps } from '../../../types/PConnProps';\nimport './WssNavBar.css';\n\ninterface WssNavBarProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n appInfo: any;\n navLinks: any[];\n operator: { currentUserInitials: string };\n navDisplayOptions: { alignment: string; position: string };\n // eslint-disable-next-line react/no-unused-prop-types\n portalName: string;\n imageSrc: string;\n // eslint-disable-next-line react/no-unused-prop-types\n fullImageSrc: string;\n appName: any;\n}\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex'\n },\n content: {\n flexGrow: 1,\n height: '100vh',\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2)\n },\n appListLogo: {\n width: '3.6rem'\n },\n appName: {\n color: 'white',\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(4),\n fontSize: '1.5rem'\n }\n}));\n\nexport default function WssNavBar(props: WssNavBarProps) {\n const { appInfo, navLinks, operator, navDisplayOptions } = props;\n const { alignment, position } = navDisplayOptions;\n const classes = useStyles();\n\n const [anchorElNav, setAnchorElNav] = useState<null | HTMLElement>(null);\n const [anchorElUser, setAnchorElUser] = useState<null | HTMLElement>(null);\n\n const localizedVal = PCore.getLocaleUtils().getLocaleValue;\n const localeCategory = 'AppShell';\n\n const handleOpenNavMenu = (event: React.MouseEvent<HTMLElement>) => {\n setAnchorElNav(event.currentTarget);\n };\n const handleOpenUserMenu = (event: React.MouseEvent<HTMLElement>) => {\n setAnchorElUser(event.currentTarget);\n };\n\n const handleCloseNavMenu = () => {\n setAnchorElNav(null);\n };\n\n const handleCloseUserMenu = () => {\n setAnchorElUser(null);\n };\n\n const navLinksContent = (\n <Box id='nav-links' sx={{ flexGrow: 1, display: { xs: 'none', md: 'flex' } }} style={{ justifyContent: alignment }}>\n {navLinks.map(link => (\n <Button className='link-style' key={link.text} onClick={link.onClick}>\n {link.text}\n </Button>\n ))}\n </Box>\n );\n\n return (\n <div id='NavBar' className='nav-bar'>\n <AppBar position='static' color='primary'>\n <Container maxWidth='xl'>\n <Toolbar disableGutters style={{ justifyContent: 'space-between' }}>\n <Button id='appName' style={{ textTransform: 'capitalize' }} onClick={appInfo.onClick}>\n <img src={appInfo.imageSrc} className={classes.appListLogo} />\n <span className={classes.appName}>{appInfo.appName}</span>\n </Button>\n <Box sx={{ flexGrow: 1, display: { xs: 'flex', md: 'none' } }}>\n <IconButton\n size='small'\n aria-label='account of current user'\n aria-controls='menu-appbar'\n aria-haspopup='true'\n onClick={handleOpenNavMenu}\n color='inherit'\n >\n <MenuIcon />\n </IconButton>\n <Menu\n id='menu-appbar'\n anchorEl={anchorElNav}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left'\n }}\n keepMounted\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left'\n }}\n open={Boolean(anchorElNav)}\n onClose={handleCloseNavMenu}\n >\n {navLinks.map(link => (\n <MenuItem key={link.text} onClick={link.onClick}>\n <Typography>{link.text}</Typography>\n </MenuItem>\n ))}\n </Menu>\n </Box>\n\n {position === 'inline' && <>{navLinksContent}</>}\n\n <Box sx={{ flexGrow: 0 }}>\n <IconButton onClick={handleOpenUserMenu} size='large'>\n <Avatar>{operator.currentUserInitials}</Avatar>\n </IconButton>\n <Menu\n id='menu-appbar'\n anchorEl={anchorElUser}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n keepMounted\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n open={Boolean(anchorElUser)}\n onClose={handleCloseUserMenu}\n >\n <MenuItem onClick={logout}>\n <Typography>{localizedVal('Log off', localeCategory)}</Typography>\n </MenuItem>\n </Menu>\n </Box>\n </Toolbar>\n {position === 'below' && <>{navLinksContent}</>}\n </Container>\n </AppBar>\n </div>\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Card, CardContent, CardHeader, Typography, CardActions, Button } from '@material-ui/core';
3
- import { makeStyles } from '@material-ui/core/styles';
2
+ import { Card, CardContent, CardHeader, Typography, CardActions, Button } from '@mui/material';
3
+ import makeStyles from '@mui/styles/makeStyles';
4
4
  const useStyles = makeStyles(theme => ({
5
5
  root: {
6
6
  marginTop: theme.spacing(1),
@@ -1 +1 @@
1
- {"version":3,"file":"AppAnnouncement.js","sourceRoot":"","sources":["../../../../src/components/widget/AppAnnouncement/AppAnnouncement.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAWtD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,EAAE;QACJ,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9B,UAAU,EAAE,WAAW;QACvB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK;KAC7C;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAA2B;IACjE,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IACpF,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE;QACnC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACrC,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC,CAAC,CAAC;KACJ;IAED,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAE5B,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAC,iBAAiB,EAAC,SAAS,EAAE,OAAO,CAAC,IAAI,aACnD,KAAC,UAAU,IAAC,KAAK,EAAE,KAAC,UAAU,IAAC,OAAO,EAAC,IAAI,YAAE,MAAM,GAAc,GAAI,EACrE,MAAC,WAAW,eACV,KAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,YAAY,kBACrC,WAAW,GACD,EACZ,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;wBACxB,MAAM,MAAM,GAAG,eAAe,GAAG,EAAE,CAAC;wBACpC,OAAO,CACL,MAAC,UAAU,IAAc,OAAO,EAAC,OAAO,mBACnC,GAAG,KADS,MAAM,CAEV,CACd,CAAC;oBACJ,CAAC,CAAC,IACU,EACd,KAAC,WAAW,cACV,KAAC,MAAM,IAAC,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAC,OAAO,+BAEjD,GACG,IACT,CACR,CAAC;AACJ,CAAC","sourcesContent":["import { Card, CardContent, CardHeader, Typography, CardActions, Button } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { PConnProps } from '../../../types/PConnProps';\n\ninterface AppAnnouncementProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n header?: string;\n description?: string;\n datasource?: any;\n whatsnewlink?: string;\n}\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n borderLeft: '6px solid',\n borderLeftColor: theme.palette.primary.light\n }\n}));\n\nexport default function AppAnnouncement(props: AppAnnouncementProps) {\n const { header = '', description = '', datasource = [], whatsnewlink = '' } = props;\n let details = [];\n if (datasource && datasource.source) {\n details = datasource.source.map(item => {\n return item.name;\n });\n }\n\n const classes = useStyles();\n\n const handleClick = () => {\n window.open(whatsnewlink);\n };\n\n return (\n <Card title='AppAnnouncement' className={classes.root}>\n <CardHeader title={<Typography variant='h6'>{header}</Typography>} />\n <CardContent>\n <Typography variant='body1' gutterBottom>\n {description}\n </Typography>\n {details.map((itm, idx) => {\n const theKey = `AppAnn-item-${idx}`;\n return (\n <Typography key={theKey} variant='body2'>\n - {itm}\n </Typography>\n );\n })}\n </CardContent>\n <CardActions>\n <Button color='primary' onClick={handleClick} size='small'>\n See what&apos;s new\n </Button>\n </CardActions>\n </Card>\n );\n}\n"]}
1
+ {"version":3,"file":"AppAnnouncement.js","sourceRoot":"","sources":["../../../../src/components/widget/AppAnnouncement/AppAnnouncement.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAWhD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,EAAE;QACJ,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9B,UAAU,EAAE,WAAW;QACvB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK;KAC7C;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAA2B;IACjE,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IACpF,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE;QACnC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACrC,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC,CAAC,CAAC;KACJ;IAED,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAE5B,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAC,iBAAiB,EAAC,SAAS,EAAE,OAAO,CAAC,IAAI,aACnD,KAAC,UAAU,IAAC,KAAK,EAAE,KAAC,UAAU,IAAC,OAAO,EAAC,IAAI,YAAE,MAAM,GAAc,GAAI,EACrE,MAAC,WAAW,eACV,KAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,YAAY,kBACrC,WAAW,GACD,EACZ,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;wBACxB,MAAM,MAAM,GAAG,eAAe,GAAG,EAAE,CAAC;wBACpC,OAAO,CACL,MAAC,UAAU,IAAc,OAAO,EAAC,OAAO,mBACnC,GAAG,KADS,MAAM,CAEV,CACd,CAAC;oBACJ,CAAC,CAAC,IACU,EACd,KAAC,WAAW,cACV,KAAC,MAAM,IAAC,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAC,OAAO,+BAEjD,GACG,IACT,CACR,CAAC;AACJ,CAAC","sourcesContent":["import { Card, CardContent, CardHeader, Typography, CardActions, Button } from '@mui/material';\nimport makeStyles from '@mui/styles/makeStyles';\nimport { PConnProps } from '../../../types/PConnProps';\n\ninterface AppAnnouncementProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n header?: string;\n description?: string;\n datasource?: any;\n whatsnewlink?: string;\n}\n\nconst useStyles = makeStyles(theme => ({\n root: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n borderLeft: '6px solid',\n borderLeftColor: theme.palette.primary.light\n }\n}));\n\nexport default function AppAnnouncement(props: AppAnnouncementProps) {\n const { header = '', description = '', datasource = [], whatsnewlink = '' } = props;\n let details = [];\n if (datasource && datasource.source) {\n details = datasource.source.map(item => {\n return item.name;\n });\n }\n\n const classes = useStyles();\n\n const handleClick = () => {\n window.open(whatsnewlink);\n };\n\n return (\n <Card title='AppAnnouncement' className={classes.root}>\n <CardHeader title={<Typography variant='h6'>{header}</Typography>} />\n <CardContent>\n <Typography variant='body1' gutterBottom>\n {description}\n </Typography>\n {details.map((itm, idx) => {\n const theKey = `AppAnn-item-${idx}`;\n return (\n <Typography key={theKey} variant='body2'>\n - {itm}\n </Typography>\n );\n })}\n </CardContent>\n <CardActions>\n <Button color='primary' onClick={handleClick} size='small'>\n See what&apos;s new\n </Button>\n </CardActions>\n </Card>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Attachment.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Attachment/Attachment.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,kBAAkB,CAAC;AAE1B,UAAU,eAAgB,SAAQ,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;IAE9D,KAAK,EAAE,GAAG,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAeD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,eAAe,2CA8axD"}
1
+ {"version":3,"file":"Attachment.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/Attachment/Attachment.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,kBAAkB,CAAC;AAE1B,UAAU,eAAgB,SAAQ,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;IAE9D,KAAK,EAAE,GAAG,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAeD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,eAAe,2CA+axD"}
@@ -3,8 +3,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  /* eslint-disable react/no-array-index-key */
4
4
  /* eslint-disable no-nested-ternary */
5
5
  import { useState, useEffect, useCallback } from 'react';
6
- import { CircularProgress, IconButton, Menu, MenuItem, Button } from '@material-ui/core';
7
- import MoreVertIcon from '@material-ui/icons/MoreVert';
6
+ import { CircularProgress, IconButton, Menu, MenuItem, Button } from '@mui/material';
7
+ import MoreVertIcon from '@mui/icons-material/MoreVert';
8
8
  import download from 'downloadjs';
9
9
  import { buildFilePropsFromResponse, getIconFromFileType, validateMaxSize } from '../../helpers/attachmentHelpers';
10
10
  import { Utils } from '../../helpers/utils';
@@ -325,7 +325,7 @@ export default function Attachment(props) {
325
325
  const fileDisplay = (_jsx("div", { children: files &&
326
326
  files.length > 0 &&
327
327
  files.map((item, index) => {
328
- return (_jsxs("div", { className: 'psdk-utility-card', children: [_jsxs("div", { className: 'psdk-utility-card-icon', children: [!item.inProgress && _jsx("img", { className: 'psdk-utility-card-svg-icon', src: srcImg }), item.inProgress && (_jsx("div", { children: _jsx(CircularProgress, {}) }))] }), _jsxs("div", { className: 'psdk-utility-card-main', children: [_jsx("div", { className: 'psdk-utility-card-main-primary-label', children: item.props.name }), item.props.meta && _jsx("div", { style: { color: item.props.error ? 'red' : undefined }, children: item.props.meta })] }), _jsxs("div", { className: 'psdk-utility-action', children: [item.ID && (_jsx("button", { type: 'button', className: 'psdk-utility-button', "aria-label": 'Delete Attachment', onClick: () => deleteFile(item), children: _jsx("img", { className: 'psdk-utility-card-action-svg-icon', src: deleteIcon }) })), !item.ID && (_jsxs("div", { children: [_jsx(IconButton, { id: 'setting-button', "aria-controls": open ? 'file-menu' : undefined, "aria-expanded": open ? 'true' : undefined, "aria-haspopup": 'true', onClick: handleClick, children: _jsx(MoreVertIcon, {}) }), _jsxs(Menu, { style: { marginTop: '3rem' }, id: 'file-menu', anchorEl: anchorEl, keepMounted: true, open: Boolean(anchorEl), onClose: handleClose, children: [_jsx(MenuItem, { style: { fontSize: '14px' }, onClick: () => downloadFile(item.responseProps ? item.responseProps : {}), children: "Download" }, 'download'), _jsx(MenuItem, { style: { fontSize: '14px' }, onClick: () => deleteFile(item), children: "Delete" }, 'delete')] })] }))] })] }, index));
328
+ return (_jsxs("div", { className: 'psdk-utility-card', children: [_jsxs("div", { className: 'psdk-utility-card-icon', children: [!item.inProgress && _jsx("img", { className: 'psdk-utility-card-svg-icon', src: srcImg }), item.inProgress && (_jsx("div", { children: _jsx(CircularProgress, {}) }))] }), _jsxs("div", { className: 'psdk-utility-card-main', children: [_jsx("div", { className: 'psdk-utility-card-main-primary-label', children: item.props.name }), item.props.meta && _jsx("div", { style: { color: item.props.error ? 'red' : undefined }, children: item.props.meta })] }), _jsxs("div", { className: 'psdk-utility-action', children: [item.ID && (_jsx("button", { type: 'button', className: 'psdk-utility-button', "aria-label": 'Delete Attachment', onClick: () => deleteFile(item), children: _jsx("img", { className: 'psdk-utility-card-action-svg-icon', src: deleteIcon }) })), !item.ID && (_jsxs("div", { children: [_jsx(IconButton, { id: 'setting-button', "aria-controls": open ? 'file-menu' : undefined, "aria-expanded": open ? 'true' : undefined, "aria-haspopup": 'true', onClick: handleClick, size: 'large', children: _jsx(MoreVertIcon, {}) }), _jsxs(Menu, { style: { marginTop: '3rem' }, id: 'file-menu', anchorEl: anchorEl, keepMounted: true, open: Boolean(anchorEl), onClose: handleClose, children: [_jsx(MenuItem, { style: { fontSize: '14px' }, onClick: () => downloadFile(item.responseProps ? item.responseProps : {}), children: "Download" }, 'download'), _jsx(MenuItem, { style: { fontSize: '14px' }, onClick: () => deleteFile(item), children: "Delete" }, 'delete')] })] }))] })] }, index));
329
329
  }) }));
330
330
  return (_jsxs("div", { className: 'file-upload-container', children: [_jsx("span", { className: `label ${required ? 'file-label' : ''}`, children: label }), ((files.length === 0 && allowMultiple !== 'true') || allowMultiple === 'true') && _jsx("section", { children: content }), validatemessage !== '' ? _jsx("span", { className: 'file-error', children: validatemessage }) : '', files && files.length > 0 && _jsx("section", { children: fileDisplay })] }));
331
331
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Attachment.js","sourceRoot":"","sources":["../../../../src/components/widget/Attachment/Attachment.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable react/jsx-boolean-value */\n/* eslint-disable react/no-array-index-key */\n/* eslint-disable no-nested-ternary */\nimport { useState, useEffect, useCallback } from 'react';\nimport { CircularProgress, IconButton, Menu, MenuItem, Button } from '@material-ui/core';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport download from 'downloadjs';\n\nimport { buildFilePropsFromResponse, getIconFromFileType, validateMaxSize } from '../../helpers/attachmentHelpers';\nimport { Utils } from '../../helpers/utils';\nimport { PConnFieldProps } from '../../../types/PConnProps';\n\nimport './Attachment.css';\n\ninterface AttachmentProps extends Omit<PConnFieldProps, 'value'> {\n // If any, enter additional props that only exist on this component\n value: any;\n allowMultiple: string;\n extensions: string;\n}\n\nconst getAttachmentKey = (name = '') => (name ? `attachmentsList.${name}` : 'attachmentsList');\n\nconst getCurrentAttachmentsList = (key, context) => {\n return PCore.getStoreValue(`.${key}`, 'context_data', context) || [];\n};\n\nconst updateAttachmentState = (pConn, key, attachments) => {\n PCore.getStateUtils().updateState(pConn.getContextName(), key, attachments, {\n pageReference: 'context_data',\n isArrayDeepMerge: false\n });\n};\n\nexport default function Attachment(props: AttachmentProps) {\n const { value, getPConnect, label, validatemessage, allowMultiple, extensions, displayMode } = props;\n /* this is a temporary fix because required is supposed to be passed as a boolean and NOT as a string */\n let { required, disabled } = props;\n [required, disabled] = [required, disabled].map(prop => prop === true || (typeof prop === 'string' && prop === 'true'));\n const pConn = getPConnect();\n const caseID = PCore.getStoreValue('.pyID', 'caseInfo.content', pConn.getContextName());\n const localizedVal = PCore.getLocaleUtils().getLocaleValue;\n const localeCategory = 'CosmosFields';\n const uploadMultipleFilesLabel = localizedVal('file_upload_text_multiple', localeCategory);\n const uploadSingleFileLabel = localizedVal('file_upload_text_one', localeCategory);\n let categoryName = '';\n if (value && value.pyCategoryName) {\n categoryName = value.pyCategoryName;\n }\n const deleteIcon = Utils.getImageSrc('trash', Utils.getSDKStaticConentUrl());\n const srcImg = Utils.getImageSrc('document-doc', Utils.getSDKStaticConentUrl());\n let valueRef = (pConn.getStateProps() as any).value;\n valueRef = valueRef.indexOf('.') === 0 ? valueRef.substring(1) : valueRef;\n const [anchorEl, setAnchorEl] = useState(null);\n const open = Boolean(anchorEl);\n const [files, setFiles] = useState<any[]>(() =>\n value?.pxResults && +value.pyCount > 0 ? value.pxResults.map(f => buildFilePropsFromResponse(f)) : []\n );\n const [filesWithError, setFilesWithError] = useState<any[]>([]);\n const [toggleUploadBegin, setToggleUploadBegin] = useState(false);\n\n const resetAttachmentStoredState = () => {\n PCore.getStateUtils().updateState(pConn.getContextName(), getAttachmentKey(valueRef), undefined, {\n pageReference: 'context_data',\n isArrayDeepMerge: false\n });\n };\n\n const fileDownload = (data, fileName, ext) => {\n const fileData = ext ? `${fileName}.${ext}` : fileName;\n download(atob(data), fileData);\n };\n\n const downloadFile = (fileObj: any) => {\n setAnchorEl(null);\n PCore.getAttachmentUtils()\n // @ts-ignore - 3rd parameter \"responseEncoding\" should be optional\n .downloadAttachment(fileObj.pzInsKey, pConn.getContextName())\n .then((content: any) => {\n const extension = fileObj.pyAttachName.split('.').pop();\n fileDownload(content.data, fileObj.pyFileName, extension);\n })\n .catch(() => {});\n };\n\n const deleteFile = useCallback(\n file => {\n setAnchorEl(null);\n let attachmentsList: any[] = [];\n let currentAttachmentList = getCurrentAttachmentsList(getAttachmentKey(valueRef), pConn.getContextName());\n\n // If file to be deleted is the one added in previous stage i.e. for which a file instance is created in server\n // no need to filter currentAttachmentList as we will get another entry of file in redux with delete & label\n // eslint-disable-next-line no-unsafe-optional-chaining\n if (value && value?.pxResults && +value?.pyCount > 0 && file.responseProps && file?.responseProps?.pzInsKey !== 'temp') {\n const updatedAttachments = files.map(f => {\n if (f.responseProps && f.responseProps.pzInsKey === file.responseProps.pzInsKey) {\n return { ...f, delete: true, label: valueRef };\n }\n return f;\n });\n\n // updating the redux store to help form-handler in passing the data to delete the file from server\n updateAttachmentState(pConn, getAttachmentKey(valueRef), [...updatedAttachments]);\n setFiles(current => {\n const newlyAddedFiles = current.filter(f => !!f.ID);\n const filesPostDelete = current.filter(\n f => f.responseProps?.pzInsKey !== 'temp' && f.responseProps?.pzInsKey !== file.responseProps?.pzInsKey\n );\n attachmentsList = [...filesPostDelete, ...newlyAddedFiles];\n return attachmentsList;\n });\n } // if the file being deleted is the added in this stage i.e. whose data is not yet created in server\n else {\n // filter newly added files in this stage, later the updated current stage files will be added to redux once files state is updated in below setFiles()\n currentAttachmentList = currentAttachmentList.filter(f => f.label !== valueRef);\n setFiles(current => {\n attachmentsList = current.filter(f => f.ID !== file.ID);\n return attachmentsList;\n });\n updateAttachmentState(pConn, getAttachmentKey(valueRef), [...currentAttachmentList, ...attachmentsList]);\n if (file.inProgress) {\n // @ts-ignore - 3rd parameter \"responseEncoding\" should be optional\n PCore.getAttachmentUtils().cancelRequest(file.ID, pConn.getContextName());\n }\n }\n\n setToggleUploadBegin(false);\n setFilesWithError(prevFilesWithError => {\n return prevFilesWithError.filter(f => f.ID !== file.ID);\n });\n },\n [pConn, value, valueRef, filesWithError]\n );\n\n const onUploadProgress = () => {};\n\n const errorHandler = (isFetchCanceled, attachedFile) => {\n return error => {\n if (!isFetchCanceled(error)) {\n let uploadFailMsg = pConn.getLocalizedValue('Something went wrong', '', '');\n if (error.response && error.response.data && error.response.data.errorDetails) {\n uploadFailMsg = pConn.getLocalizedValue(error.response.data.errorDetails[0].localizedValue, '', '');\n }\n setFiles(current => {\n return current.map(f => {\n if (f.ID === attachedFile.ID) {\n f.props.meta = uploadFailMsg;\n f.props.error = true;\n f.props.onDelete = () => deleteFile(f);\n f.props.icon = getIconFromFileType(f.type);\n f.props.name = pConn.getLocalizedValue('Unable to upload file', '', '');\n f.inProgress = false;\n const fieldName = (pConn.getStateProps() as any).value;\n const context = pConn.getContextName();\n // set errors to property to block submit even on errors in file upload\n PCore.getMessageManager().addMessages({\n // @ts-ignore\n messages: [\n {\n type: 'error',\n // @ts-ignore - Type '{ type: string; message: string; }' is not assignable to type 'MessagesConfigObject'.\n message: pConn.getLocalizedValue('Error with one or more files', '', '')\n }\n ],\n property: fieldName,\n pageReference: pConn.getPageReference(),\n context\n });\n delete f.props.progress;\n }\n return f;\n });\n });\n }\n throw error;\n };\n };\n\n const validateFileExtension = (fileObj, allowedExtensions) => {\n if (!allowedExtensions) {\n return true;\n }\n const allowedExtensionList = allowedExtensions\n .toLowerCase()\n .split(',')\n .map(item => item.replaceAll('.', '').trim());\n const extension = fileObj.name.split('.').pop().toLowerCase();\n return allowedExtensionList.includes(extension);\n };\n\n const clearFieldErrorMessages = () => {\n const fieldName = (pConn.getStateProps() as any).value;\n const context = pConn.getContextName();\n // @ts-ignore\n PCore.getMessageManager().clearMessages({\n type: PCore.getConstants().MESSAGES.MESSAGES_TYPE_ERROR,\n property: fieldName,\n pageReference: pConn.getPageReference(),\n context\n });\n };\n\n const onFileAdded = event => {\n let addedFiles = Array.from(event.target.files);\n addedFiles = allowMultiple === 'true' ? addedFiles : [addedFiles[0]];\n const maxAttachmentSize = PCore.getEnvironmentInfo().getMaxAttachmentSize() || '5';\n const tempFilesToBeUploaded = [\n ...addedFiles.map((f: any, index) => {\n f.ID = `${new Date().getTime()}I${index}`;\n f.inProgress = true;\n f.props = {\n type: f.type,\n name: f.name,\n icon: getIconFromFileType(f.type),\n onDelete: () => deleteFile(f)\n };\n if (!validateMaxSize(f, maxAttachmentSize)) {\n f.props.error = true;\n f.props.meta = pConn.getLocalizedValue(`File is too big. Max allowed size is ${maxAttachmentSize}MB.`, '', '');\n } else if (!validateFileExtension(f, extensions)) {\n f.props.error = true;\n f.props.meta = `${pConn.getLocalizedValue('File has invalid extension. Allowed extensions are:', '', '')} ${extensions.replaceAll(\n '.',\n ''\n )}`;\n }\n if (f.props.error) {\n const fieldName = (pConn.getStateProps() as any).value;\n const context = pConn.getContextName();\n PCore.getMessageManager().addMessages({\n // @ts-ignore\n messages: [\n {\n type: 'error',\n // @ts-ignore - Type '{ type: string; message: string; }' is not assignable to type 'MessagesConfigObject'.\n message: pConn.getLocalizedValue('Error with one or more files', '', '')\n }\n ],\n property: fieldName,\n pageReference: pConn.getPageReference(),\n context\n });\n }\n return f;\n })\n ];\n const tempFilesWithError = tempFilesToBeUploaded.filter(f => f.props.error);\n if (tempFilesWithError.length > 0) {\n setFilesWithError(tempFilesWithError);\n }\n setFiles(current => (allowMultiple !== 'true' ? [...tempFilesToBeUploaded] : [...current, ...tempFilesToBeUploaded]));\n setToggleUploadBegin(true);\n };\n\n const uploadFiles = useCallback(() => {\n const filesToBeUploaded = files\n .filter(e => {\n const isFileUploaded = e.props && e.props.progress === 100;\n const fileHasError = e.props && e.props.error;\n const isFileUploadedinLastStep = e.responseProps && e.responseProps.pzInsKey;\n return !isFileUploaded && !fileHasError && !isFileUploadedinLastStep;\n })\n .map(f =>\n window.PCore.getAttachmentUtils().uploadAttachment(\n f,\n () => {\n onUploadProgress();\n },\n isFetchCanceled => {\n return errorHandler(isFetchCanceled, f);\n },\n pConn.getContextName()\n )\n );\n Promise.allSettled(filesToBeUploaded)\n .then((fileResponses: any) => {\n fileResponses = fileResponses.filter(fr => fr.status !== 'rejected'); // in case of deleting an in progress file, promise gets cancelled but still enters then block\n if (fileResponses.length > 0) {\n setFiles(current => {\n const tempFilesUploaded = [...current];\n tempFilesUploaded.forEach(f => {\n const index = fileResponses.findIndex((fr: any) => fr.value.clientFileID === f.ID);\n if (index >= 0) {\n f.props.meta = pConn.getLocalizedValue('Uploaded successfully', '', '');\n f.props.progress = 100;\n f.inProgress = false;\n f.handle = fileResponses[index].value.ID;\n f.label = valueRef;\n f.category = categoryName;\n f.responseProps = {\n pzInsKey: 'temp',\n pyAttachName: f.props.name\n };\n }\n });\n return tempFilesUploaded;\n });\n\n if (filesWithError.length === 0) {\n clearFieldErrorMessages();\n }\n }\n setToggleUploadBegin(false);\n })\n .catch(error => {\n // eslint-disable-next-line no-console\n console.log(error);\n setToggleUploadBegin(false);\n });\n }, [files, filesWithError]);\n\n useEffect(() => {\n if (toggleUploadBegin && files.length > 0) {\n uploadFiles();\n }\n }, [toggleUploadBegin]);\n\n useEffect(() => {\n if (files.length > 0 && displayMode !== 'DISPLAY_ONLY') {\n const currentAttachmentList = getCurrentAttachmentsList(getAttachmentKey(valueRef), pConn.getContextName());\n // block duplicate files to redux store when added 1 after another to prevent multiple duplicates being added to the case on submit\n const tempFiles = files.filter(f => currentAttachmentList.findIndex(fr => fr.ID === f.ID) === -1 && !f.inProgress && f.responseProps);\n\n const updatedAttList = [...currentAttachmentList, ...tempFiles];\n updateAttachmentState(pConn, getAttachmentKey(valueRef), updatedAttList);\n }\n }, [files]);\n\n useEffect(() => {\n if (filesWithError.length === 0) {\n clearFieldErrorMessages();\n }\n }, [filesWithError]);\n\n useEffect(() => {\n let tempUploadedFiles = getCurrentAttachmentsList(getAttachmentKey(valueRef), pConn.getContextName());\n tempUploadedFiles = tempUploadedFiles.filter(f => f.label === valueRef);\n setFiles(current => {\n return [\n ...current.map(f => {\n return f.responseProps.pzInsKey && !f.responseProps.pzInsKey.includes('temp')\n ? {\n ...f,\n props: {\n ...f.props,\n onDelete: () => deleteFile(f)\n }\n }\n : { ...f };\n }),\n ...tempUploadedFiles\n ];\n });\n PCore.getPubSubUtils().subscribe(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION, resetAttachmentStoredState, caseID);\n return () => {\n PCore.getPubSubUtils().unsubscribe(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION, caseID);\n };\n }, []);\n\n const handleClick = event => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const content = (\n <div style={{ marginBottom: '8px' }}>\n <div className={`${disabled ? 'file-disabled' : ''} ${validatemessage === '' ? 'file-div' : 'file-div-error'}`}>\n <div hidden={true} id='attachment-ID'>\n {valueRef}\n </div>\n <label htmlFor={valueRef}>\n <input\n style={{ display: 'none' }}\n id={valueRef}\n name='upload-photo'\n type='file'\n multiple={allowMultiple === 'true'}\n required={required}\n disabled={disabled}\n onChange={onFileAdded}\n />\n <Button style={{ textTransform: 'none' }} variant='outlined' color='primary' component='span'>\n {allowMultiple === 'true'\n ? uploadMultipleFilesLabel === 'file_upload_text_multiple'\n ? 'Choose files'\n : uploadMultipleFilesLabel\n : uploadSingleFileLabel === 'file_upload_text_one'\n ? 'Choose a file'\n : uploadSingleFileLabel}\n </Button>\n </label>\n </div>\n </div>\n );\n\n const fileDisplay = (\n <div>\n {files &&\n files.length > 0 &&\n files.map((item, index) => {\n return (\n <div key={index} className='psdk-utility-card'>\n <div className='psdk-utility-card-icon'>\n {!item.inProgress && <img className='psdk-utility-card-svg-icon' src={srcImg} />}\n {item.inProgress && (\n <div>\n <CircularProgress />\n </div>\n )}\n </div>\n <div className='psdk-utility-card-main'>\n <div className='psdk-utility-card-main-primary-label'>{item.props.name}</div>\n {item.props.meta && <div style={{ color: item.props.error ? 'red' : undefined }}>{item.props.meta}</div>}\n </div>\n <div className='psdk-utility-action'>\n {item.ID && (\n <button type='button' className='psdk-utility-button' aria-label='Delete Attachment' onClick={() => deleteFile(item)}>\n <img className='psdk-utility-card-action-svg-icon' src={deleteIcon} />\n </button>\n )}\n {!item.ID && (\n <div>\n <IconButton\n id='setting-button'\n aria-controls={open ? 'file-menu' : undefined}\n aria-expanded={open ? 'true' : undefined}\n aria-haspopup='true'\n onClick={handleClick}\n >\n <MoreVertIcon />\n </IconButton>\n <Menu style={{ marginTop: '3rem' }} id='file-menu' anchorEl={anchorEl} keepMounted open={Boolean(anchorEl)} onClose={handleClose}>\n <MenuItem\n style={{ fontSize: '14px' }}\n key='download'\n onClick={() => downloadFile(item.responseProps ? item.responseProps : {})}\n >\n Download\n </MenuItem>\n <MenuItem style={{ fontSize: '14px' }} key='delete' onClick={() => deleteFile(item)}>\n Delete\n </MenuItem>\n </Menu>\n </div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n\n return (\n <div className='file-upload-container'>\n <span className={`label ${required ? 'file-label' : ''}`}>{label}</span>\n {((files.length === 0 && allowMultiple !== 'true') || allowMultiple === 'true') && <section>{content}</section>}\n {validatemessage !== '' ? <span className='file-error'>{validatemessage}</span> : ''}\n {files && files.length > 0 && <section>{fileDisplay}</section>}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"Attachment.js","sourceRoot":"","sources":["../../../../src/components/widget/Attachment/Attachment.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable react/jsx-boolean-value */\n/* eslint-disable react/no-array-index-key */\n/* eslint-disable no-nested-ternary */\nimport { useState, useEffect, useCallback } from 'react';\nimport { CircularProgress, IconButton, Menu, MenuItem, Button } from '@mui/material';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport download from 'downloadjs';\n\nimport { buildFilePropsFromResponse, getIconFromFileType, validateMaxSize } from '../../helpers/attachmentHelpers';\nimport { Utils } from '../../helpers/utils';\nimport { PConnFieldProps } from '../../../types/PConnProps';\n\nimport './Attachment.css';\n\ninterface AttachmentProps extends Omit<PConnFieldProps, 'value'> {\n // If any, enter additional props that only exist on this component\n value: any;\n allowMultiple: string;\n extensions: string;\n}\n\nconst getAttachmentKey = (name = '') => (name ? `attachmentsList.${name}` : 'attachmentsList');\n\nconst getCurrentAttachmentsList = (key, context) => {\n return PCore.getStoreValue(`.${key}`, 'context_data', context) || [];\n};\n\nconst updateAttachmentState = (pConn, key, attachments) => {\n PCore.getStateUtils().updateState(pConn.getContextName(), key, attachments, {\n pageReference: 'context_data',\n isArrayDeepMerge: false\n });\n};\n\nexport default function Attachment(props: AttachmentProps) {\n const { value, getPConnect, label, validatemessage, allowMultiple, extensions, displayMode } = props;\n /* this is a temporary fix because required is supposed to be passed as a boolean and NOT as a string */\n let { required, disabled } = props;\n [required, disabled] = [required, disabled].map(prop => prop === true || (typeof prop === 'string' && prop === 'true'));\n const pConn = getPConnect();\n const caseID = PCore.getStoreValue('.pyID', 'caseInfo.content', pConn.getContextName());\n const localizedVal = PCore.getLocaleUtils().getLocaleValue;\n const localeCategory = 'CosmosFields';\n const uploadMultipleFilesLabel = localizedVal('file_upload_text_multiple', localeCategory);\n const uploadSingleFileLabel = localizedVal('file_upload_text_one', localeCategory);\n let categoryName = '';\n if (value && value.pyCategoryName) {\n categoryName = value.pyCategoryName;\n }\n const deleteIcon = Utils.getImageSrc('trash', Utils.getSDKStaticConentUrl());\n const srcImg = Utils.getImageSrc('document-doc', Utils.getSDKStaticConentUrl());\n let valueRef = (pConn.getStateProps() as any).value;\n valueRef = valueRef.indexOf('.') === 0 ? valueRef.substring(1) : valueRef;\n const [anchorEl, setAnchorEl] = useState(null);\n const open = Boolean(anchorEl);\n const [files, setFiles] = useState<any[]>(() =>\n value?.pxResults && +value.pyCount > 0 ? value.pxResults.map(f => buildFilePropsFromResponse(f)) : []\n );\n const [filesWithError, setFilesWithError] = useState<any[]>([]);\n const [toggleUploadBegin, setToggleUploadBegin] = useState(false);\n\n const resetAttachmentStoredState = () => {\n PCore.getStateUtils().updateState(pConn.getContextName(), getAttachmentKey(valueRef), undefined, {\n pageReference: 'context_data',\n isArrayDeepMerge: false\n });\n };\n\n const fileDownload = (data, fileName, ext) => {\n const fileData = ext ? `${fileName}.${ext}` : fileName;\n download(atob(data), fileData);\n };\n\n const downloadFile = (fileObj: any) => {\n setAnchorEl(null);\n PCore.getAttachmentUtils()\n // @ts-ignore - 3rd parameter \"responseEncoding\" should be optional\n .downloadAttachment(fileObj.pzInsKey, pConn.getContextName())\n .then((content: any) => {\n const extension = fileObj.pyAttachName.split('.').pop();\n fileDownload(content.data, fileObj.pyFileName, extension);\n })\n .catch(() => {});\n };\n\n const deleteFile = useCallback(\n file => {\n setAnchorEl(null);\n let attachmentsList: any[] = [];\n let currentAttachmentList = getCurrentAttachmentsList(getAttachmentKey(valueRef), pConn.getContextName());\n\n // If file to be deleted is the one added in previous stage i.e. for which a file instance is created in server\n // no need to filter currentAttachmentList as we will get another entry of file in redux with delete & label\n // eslint-disable-next-line no-unsafe-optional-chaining\n if (value && value?.pxResults && +value?.pyCount > 0 && file.responseProps && file?.responseProps?.pzInsKey !== 'temp') {\n const updatedAttachments = files.map(f => {\n if (f.responseProps && f.responseProps.pzInsKey === file.responseProps.pzInsKey) {\n return { ...f, delete: true, label: valueRef };\n }\n return f;\n });\n\n // updating the redux store to help form-handler in passing the data to delete the file from server\n updateAttachmentState(pConn, getAttachmentKey(valueRef), [...updatedAttachments]);\n setFiles(current => {\n const newlyAddedFiles = current.filter(f => !!f.ID);\n const filesPostDelete = current.filter(\n f => f.responseProps?.pzInsKey !== 'temp' && f.responseProps?.pzInsKey !== file.responseProps?.pzInsKey\n );\n attachmentsList = [...filesPostDelete, ...newlyAddedFiles];\n return attachmentsList;\n });\n } // if the file being deleted is the added in this stage i.e. whose data is not yet created in server\n else {\n // filter newly added files in this stage, later the updated current stage files will be added to redux once files state is updated in below setFiles()\n currentAttachmentList = currentAttachmentList.filter(f => f.label !== valueRef);\n setFiles(current => {\n attachmentsList = current.filter(f => f.ID !== file.ID);\n return attachmentsList;\n });\n updateAttachmentState(pConn, getAttachmentKey(valueRef), [...currentAttachmentList, ...attachmentsList]);\n if (file.inProgress) {\n // @ts-ignore - 3rd parameter \"responseEncoding\" should be optional\n PCore.getAttachmentUtils().cancelRequest(file.ID, pConn.getContextName());\n }\n }\n\n setToggleUploadBegin(false);\n setFilesWithError(prevFilesWithError => {\n return prevFilesWithError.filter(f => f.ID !== file.ID);\n });\n },\n [pConn, value, valueRef, filesWithError]\n );\n\n const onUploadProgress = () => {};\n\n const errorHandler = (isFetchCanceled, attachedFile) => {\n return error => {\n if (!isFetchCanceled(error)) {\n let uploadFailMsg = pConn.getLocalizedValue('Something went wrong', '', '');\n if (error.response && error.response.data && error.response.data.errorDetails) {\n uploadFailMsg = pConn.getLocalizedValue(error.response.data.errorDetails[0].localizedValue, '', '');\n }\n setFiles(current => {\n return current.map(f => {\n if (f.ID === attachedFile.ID) {\n f.props.meta = uploadFailMsg;\n f.props.error = true;\n f.props.onDelete = () => deleteFile(f);\n f.props.icon = getIconFromFileType(f.type);\n f.props.name = pConn.getLocalizedValue('Unable to upload file', '', '');\n f.inProgress = false;\n const fieldName = (pConn.getStateProps() as any).value;\n const context = pConn.getContextName();\n // set errors to property to block submit even on errors in file upload\n PCore.getMessageManager().addMessages({\n // @ts-ignore\n messages: [\n {\n type: 'error',\n // @ts-ignore - Type '{ type: string; message: string; }' is not assignable to type 'MessagesConfigObject'.\n message: pConn.getLocalizedValue('Error with one or more files', '', '')\n }\n ],\n property: fieldName,\n pageReference: pConn.getPageReference(),\n context\n });\n delete f.props.progress;\n }\n return f;\n });\n });\n }\n throw error;\n };\n };\n\n const validateFileExtension = (fileObj, allowedExtensions) => {\n if (!allowedExtensions) {\n return true;\n }\n const allowedExtensionList = allowedExtensions\n .toLowerCase()\n .split(',')\n .map(item => item.replaceAll('.', '').trim());\n const extension = fileObj.name.split('.').pop().toLowerCase();\n return allowedExtensionList.includes(extension);\n };\n\n const clearFieldErrorMessages = () => {\n const fieldName = (pConn.getStateProps() as any).value;\n const context = pConn.getContextName();\n // @ts-ignore\n PCore.getMessageManager().clearMessages({\n type: PCore.getConstants().MESSAGES.MESSAGES_TYPE_ERROR,\n property: fieldName,\n pageReference: pConn.getPageReference(),\n context\n });\n };\n\n const onFileAdded = event => {\n let addedFiles = Array.from(event.target.files);\n addedFiles = allowMultiple === 'true' ? addedFiles : [addedFiles[0]];\n const maxAttachmentSize = PCore.getEnvironmentInfo().getMaxAttachmentSize() || '5';\n const tempFilesToBeUploaded = [\n ...addedFiles.map((f: any, index) => {\n f.ID = `${new Date().getTime()}I${index}`;\n f.inProgress = true;\n f.props = {\n type: f.type,\n name: f.name,\n icon: getIconFromFileType(f.type),\n onDelete: () => deleteFile(f)\n };\n if (!validateMaxSize(f, maxAttachmentSize)) {\n f.props.error = true;\n f.props.meta = pConn.getLocalizedValue(`File is too big. Max allowed size is ${maxAttachmentSize}MB.`, '', '');\n } else if (!validateFileExtension(f, extensions)) {\n f.props.error = true;\n f.props.meta = `${pConn.getLocalizedValue('File has invalid extension. Allowed extensions are:', '', '')} ${extensions.replaceAll(\n '.',\n ''\n )}`;\n }\n if (f.props.error) {\n const fieldName = (pConn.getStateProps() as any).value;\n const context = pConn.getContextName();\n PCore.getMessageManager().addMessages({\n // @ts-ignore\n messages: [\n {\n type: 'error',\n // @ts-ignore - Type '{ type: string; message: string; }' is not assignable to type 'MessagesConfigObject'.\n message: pConn.getLocalizedValue('Error with one or more files', '', '')\n }\n ],\n property: fieldName,\n pageReference: pConn.getPageReference(),\n context\n });\n }\n return f;\n })\n ];\n const tempFilesWithError = tempFilesToBeUploaded.filter(f => f.props.error);\n if (tempFilesWithError.length > 0) {\n setFilesWithError(tempFilesWithError);\n }\n setFiles(current => (allowMultiple !== 'true' ? [...tempFilesToBeUploaded] : [...current, ...tempFilesToBeUploaded]));\n setToggleUploadBegin(true);\n };\n\n const uploadFiles = useCallback(() => {\n const filesToBeUploaded = files\n .filter(e => {\n const isFileUploaded = e.props && e.props.progress === 100;\n const fileHasError = e.props && e.props.error;\n const isFileUploadedinLastStep = e.responseProps && e.responseProps.pzInsKey;\n return !isFileUploaded && !fileHasError && !isFileUploadedinLastStep;\n })\n .map(f =>\n window.PCore.getAttachmentUtils().uploadAttachment(\n f,\n () => {\n onUploadProgress();\n },\n isFetchCanceled => {\n return errorHandler(isFetchCanceled, f);\n },\n pConn.getContextName()\n )\n );\n Promise.allSettled(filesToBeUploaded)\n .then((fileResponses: any) => {\n fileResponses = fileResponses.filter(fr => fr.status !== 'rejected'); // in case of deleting an in progress file, promise gets cancelled but still enters then block\n if (fileResponses.length > 0) {\n setFiles(current => {\n const tempFilesUploaded = [...current];\n tempFilesUploaded.forEach(f => {\n const index = fileResponses.findIndex((fr: any) => fr.value.clientFileID === f.ID);\n if (index >= 0) {\n f.props.meta = pConn.getLocalizedValue('Uploaded successfully', '', '');\n f.props.progress = 100;\n f.inProgress = false;\n f.handle = fileResponses[index].value.ID;\n f.label = valueRef;\n f.category = categoryName;\n f.responseProps = {\n pzInsKey: 'temp',\n pyAttachName: f.props.name\n };\n }\n });\n return tempFilesUploaded;\n });\n\n if (filesWithError.length === 0) {\n clearFieldErrorMessages();\n }\n }\n setToggleUploadBegin(false);\n })\n .catch(error => {\n // eslint-disable-next-line no-console\n console.log(error);\n setToggleUploadBegin(false);\n });\n }, [files, filesWithError]);\n\n useEffect(() => {\n if (toggleUploadBegin && files.length > 0) {\n uploadFiles();\n }\n }, [toggleUploadBegin]);\n\n useEffect(() => {\n if (files.length > 0 && displayMode !== 'DISPLAY_ONLY') {\n const currentAttachmentList = getCurrentAttachmentsList(getAttachmentKey(valueRef), pConn.getContextName());\n // block duplicate files to redux store when added 1 after another to prevent multiple duplicates being added to the case on submit\n const tempFiles = files.filter(f => currentAttachmentList.findIndex(fr => fr.ID === f.ID) === -1 && !f.inProgress && f.responseProps);\n\n const updatedAttList = [...currentAttachmentList, ...tempFiles];\n updateAttachmentState(pConn, getAttachmentKey(valueRef), updatedAttList);\n }\n }, [files]);\n\n useEffect(() => {\n if (filesWithError.length === 0) {\n clearFieldErrorMessages();\n }\n }, [filesWithError]);\n\n useEffect(() => {\n let tempUploadedFiles = getCurrentAttachmentsList(getAttachmentKey(valueRef), pConn.getContextName());\n tempUploadedFiles = tempUploadedFiles.filter(f => f.label === valueRef);\n setFiles(current => {\n return [\n ...current.map(f => {\n return f.responseProps.pzInsKey && !f.responseProps.pzInsKey.includes('temp')\n ? {\n ...f,\n props: {\n ...f.props,\n onDelete: () => deleteFile(f)\n }\n }\n : { ...f };\n }),\n ...tempUploadedFiles\n ];\n });\n PCore.getPubSubUtils().subscribe(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION, resetAttachmentStoredState, caseID);\n return () => {\n PCore.getPubSubUtils().unsubscribe(PCore.getConstants().PUB_SUB_EVENTS.CASE_EVENTS.ASSIGNMENT_SUBMISSION, caseID);\n };\n }, []);\n\n const handleClick = event => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const content = (\n <div style={{ marginBottom: '8px' }}>\n <div className={`${disabled ? 'file-disabled' : ''} ${validatemessage === '' ? 'file-div' : 'file-div-error'}`}>\n <div hidden={true} id='attachment-ID'>\n {valueRef}\n </div>\n <label htmlFor={valueRef}>\n <input\n style={{ display: 'none' }}\n id={valueRef}\n name='upload-photo'\n type='file'\n multiple={allowMultiple === 'true'}\n required={required}\n disabled={disabled}\n onChange={onFileAdded}\n />\n <Button style={{ textTransform: 'none' }} variant='outlined' color='primary' component='span'>\n {allowMultiple === 'true'\n ? uploadMultipleFilesLabel === 'file_upload_text_multiple'\n ? 'Choose files'\n : uploadMultipleFilesLabel\n : uploadSingleFileLabel === 'file_upload_text_one'\n ? 'Choose a file'\n : uploadSingleFileLabel}\n </Button>\n </label>\n </div>\n </div>\n );\n\n const fileDisplay = (\n <div>\n {files &&\n files.length > 0 &&\n files.map((item, index) => {\n return (\n <div key={index} className='psdk-utility-card'>\n <div className='psdk-utility-card-icon'>\n {!item.inProgress && <img className='psdk-utility-card-svg-icon' src={srcImg} />}\n {item.inProgress && (\n <div>\n <CircularProgress />\n </div>\n )}\n </div>\n <div className='psdk-utility-card-main'>\n <div className='psdk-utility-card-main-primary-label'>{item.props.name}</div>\n {item.props.meta && <div style={{ color: item.props.error ? 'red' : undefined }}>{item.props.meta}</div>}\n </div>\n <div className='psdk-utility-action'>\n {item.ID && (\n <button type='button' className='psdk-utility-button' aria-label='Delete Attachment' onClick={() => deleteFile(item)}>\n <img className='psdk-utility-card-action-svg-icon' src={deleteIcon} />\n </button>\n )}\n {!item.ID && (\n <div>\n <IconButton\n id='setting-button'\n aria-controls={open ? 'file-menu' : undefined}\n aria-expanded={open ? 'true' : undefined}\n aria-haspopup='true'\n onClick={handleClick}\n size='large'\n >\n <MoreVertIcon />\n </IconButton>\n <Menu style={{ marginTop: '3rem' }} id='file-menu' anchorEl={anchorEl} keepMounted open={Boolean(anchorEl)} onClose={handleClose}>\n <MenuItem\n style={{ fontSize: '14px' }}\n key='download'\n onClick={() => downloadFile(item.responseProps ? item.responseProps : {})}\n >\n Download\n </MenuItem>\n <MenuItem style={{ fontSize: '14px' }} key='delete' onClick={() => deleteFile(item)}>\n Delete\n </MenuItem>\n </Menu>\n </div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n\n return (\n <div className='file-upload-container'>\n <span className={`label ${required ? 'file-label' : ''}`}>{label}</span>\n {((files.length === 0 && allowMultiple !== 'true') || allowMultiple === 'true') && <section>{content}</section>}\n {validatemessage !== '' ? <span className='file-error'>{validatemessage}</span> : ''}\n {files && files.length > 0 && <section>{fileDisplay}</section>}\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CaseHistory.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/CaseHistory/CaseHistory.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,UAAU,gBAAiB,SAAQ,UAAU;CAE5C;AAoBD,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CAqI1D"}
1
+ {"version":3,"file":"CaseHistory.d.ts","sourceRoot":"","sources":["../../../../src/components/widget/CaseHistory/CaseHistory.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,UAAU,gBAAiB,SAAQ,UAAU;CAE5C;AAoBD,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CAqI1D"}
@@ -1,12 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useRef, useState } from 'react';
3
- import { withStyles, createStyles } from '@material-ui/core/styles';
4
- import Table from '@material-ui/core/Table';
5
- import TableBody from '@material-ui/core/TableBody';
6
- import TableCell from '@material-ui/core/TableCell';
7
- import TableContainer from '@material-ui/core/TableContainer';
8
- import TableHead from '@material-ui/core/TableHead';
9
- import TableRow from '@material-ui/core/TableRow';
3
+ import withStyles from '@mui/styles/withStyles';
4
+ import createStyles from '@mui/styles/createStyles';
5
+ import Table from '@mui/material/Table';
6
+ import TableBody from '@mui/material/TableBody';
7
+ import TableCell from '@mui/material/TableCell';
8
+ import TableContainer from '@mui/material/TableContainer';
9
+ import TableHead from '@mui/material/TableHead';
10
+ import TableRow from '@mui/material/TableRow';
10
11
  import isDeepEqual from 'fast-deep-equal/react';
11
12
  import { Utils } from '../../helpers/utils';
12
13
  const StyledTableCell = withStyles((theme) => createStyles({
@@ -1 +1 @@
1
- {"version":3,"file":"CaseHistory.js","sourceRoot":"","sources":["../../../../src/components/widget/CaseHistory/CaseHistory.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { withStyles, Theme, createStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport isDeepEqual from 'fast-deep-equal/react';\n\nimport { Utils } from '../../helpers/utils';\nimport { PConnProps } from '../../../types/PConnProps';\n\ninterface CaseHistoryProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n}\n\nconst StyledTableCell = withStyles((theme: Theme) =>\n createStyles({\n head: {\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: 'silver',\n backgroundColor: theme.palette.text.disabled,\n color: theme.palette.getContrastText(theme.palette.text.disabled)\n },\n body: {\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: 'silver'\n // fontSize: 14,\n }\n })\n)(TableCell);\n\nexport default function CaseHistory(props: CaseHistoryProps) {\n const { getPConnect } = props;\n const thePConn = getPConnect();\n // let waitingForData = true;\n\n const displayedColumns = [\n {\n label: thePConn.getLocalizedValue('Date', '', ''),\n type: 'DateTime',\n fieldName: 'pxTimeCreated'\n }, // 2nd and 3rd args empty string until typedef marked correctly\n {\n label: thePConn.getLocalizedValue('Description', '', ''),\n type: 'TextInput',\n fieldName: 'pyMessageKey'\n }, // 2nd and 3rd args empty string until typedef marked correctly\n {\n label: thePConn.getLocalizedValue('Performed by', '', ''),\n type: 'TextInput',\n fieldName: 'pyPerformer'\n } // 2nd and 3rd args empty string until typedef marked correctly\n ];\n\n const rowData: any = useRef([]);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [waitingForData, setWaitingForData] = useState<boolean>(true);\n\n const caseID = thePConn.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID, ''); // 2nd arg empty string until typedef marked correctly\n const dataViewName = 'D_pyWorkHistory';\n const context = thePConn.getContextName();\n\n function computeRowData(rows: Object[]): void {\n const theRowData: Object[] = [];\n\n rows.forEach((row: any, rowIndex: number) => {\n // Now, for each property in the index of row properties (displayedColumns), add an object\n // to a new array of values\n const rowDisplayValues: any = [];\n\n displayedColumns.forEach((column: any, rowValIndex) => {\n const theType = column.type;\n const theFieldName = column.fieldName;\n const theValue =\n theType === 'Date' || theType === 'DateTime' ? Utils.generateDateTime(row[theFieldName], 'DateTime-Short') : row[theFieldName];\n rowDisplayValues[rowValIndex] = theValue;\n });\n\n theRowData[rowIndex] = rowDisplayValues;\n });\n\n if (!isDeepEqual(theRowData, rowData.current)) {\n // Only update rowData.current when it actually changes (to prevent infinite loop)\n rowData.current = theRowData;\n }\n }\n\n // Get the case history data when component mounted/initialized\n useEffect(() => {\n let bCallSetWaitingForData = true;\n\n const historyData = PCore.getDataApiUtils().getData(\n dataViewName,\n { dataViewParameters: [{ CaseInstanceKey: caseID }] } as any,\n context\n ) as Promise<any>;\n\n historyData.then((historyJSON: any) => {\n const tableDataResults = historyJSON.data.data;\n\n // compute the rowData using the tableDataResults\n computeRowData(tableDataResults);\n\n // At this point, if we have data ready to render and haven't been asked\n // to NOT call setWaitingForData, we can stop progress indicator\n if (bCallSetWaitingForData) {\n setWaitingForData(false);\n }\n });\n\n return () => {\n // Inspired by https://juliangaramendy.dev/blog/use-promise-subscription\n // The useEffect closure lets us have access to the bCallSetWaitingForData\n // variable inside the useEffect and inside the \"then\" clause of the\n // historyData promise\n // So, if this cleanup code gets run before the promise .then is called,\n // we can avoid calling the useState setter which would otherwise show a warning\n bCallSetWaitingForData = false;\n };\n }, []);\n\n function getTableHeader() {\n const theRowKey = 'CaseHistory.TableHeader';\n\n const theHeaderCells: any[] = displayedColumns.map((headerCol, index) => {\n const theCellKey = `${theRowKey}.${index}`;\n return <StyledTableCell key={theCellKey}>{headerCol.label}</StyledTableCell>;\n });\n\n return <TableRow key={theRowKey}>{theHeaderCells}</TableRow>;\n }\n\n function getTableData() {\n const theDataRows: any[] = [];\n\n // Note: using rowData.current since we're using useRef as a mutatable\n // value that's only updated when it changes.\n if (rowData.current.length > 0) {\n rowData.current.forEach((dataRow: Object[], index) => {\n // using dataRow[0]-dataRow[1] as the array key since it's a unique value\n const theKey = `CaseHistory-${index}`;\n theDataRows.push(\n <TableRow key={theKey}>\n <StyledTableCell>{dataRow[0] ? dataRow[0] : '---'}</StyledTableCell>\n <StyledTableCell>{dataRow[1] ? dataRow[1] : '---'}</StyledTableCell>\n <StyledTableCell>{dataRow[2] ? dataRow[2] : '---'}</StyledTableCell>\n </TableRow>\n );\n });\n }\n\n return theDataRows;\n }\n\n return (\n <div id='CaseHistory'>\n <TableContainer>\n <Table>\n <TableHead>{getTableHeader()}</TableHead>\n <TableBody>{getTableData()}</TableBody>\n </Table>\n </TableContainer>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"CaseHistory.js","sourceRoot":"","sources":["../../../../src/components/widget/CaseHistory/CaseHistory.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { Theme } from '@mui/material/styles';\nimport withStyles from '@mui/styles/withStyles';\nimport createStyles from '@mui/styles/createStyles';\nimport Table from '@mui/material/Table';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableContainer from '@mui/material/TableContainer';\nimport TableHead from '@mui/material/TableHead';\nimport TableRow from '@mui/material/TableRow';\nimport isDeepEqual from 'fast-deep-equal/react';\n\nimport { Utils } from '../../helpers/utils';\nimport { PConnProps } from '../../../types/PConnProps';\n\ninterface CaseHistoryProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n}\n\nconst StyledTableCell = withStyles((theme: Theme) =>\n createStyles({\n head: {\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: 'silver',\n backgroundColor: theme.palette.text.disabled,\n color: theme.palette.getContrastText(theme.palette.text.disabled)\n },\n body: {\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: 'silver'\n // fontSize: 14,\n }\n })\n)(TableCell);\n\nexport default function CaseHistory(props: CaseHistoryProps) {\n const { getPConnect } = props;\n const thePConn = getPConnect();\n // let waitingForData = true;\n\n const displayedColumns = [\n {\n label: thePConn.getLocalizedValue('Date', '', ''),\n type: 'DateTime',\n fieldName: 'pxTimeCreated'\n }, // 2nd and 3rd args empty string until typedef marked correctly\n {\n label: thePConn.getLocalizedValue('Description', '', ''),\n type: 'TextInput',\n fieldName: 'pyMessageKey'\n }, // 2nd and 3rd args empty string until typedef marked correctly\n {\n label: thePConn.getLocalizedValue('Performed by', '', ''),\n type: 'TextInput',\n fieldName: 'pyPerformer'\n } // 2nd and 3rd args empty string until typedef marked correctly\n ];\n\n const rowData: any = useRef([]);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [waitingForData, setWaitingForData] = useState<boolean>(true);\n\n const caseID = thePConn.getValue(PCore.getConstants().CASE_INFO.CASE_INFO_ID, ''); // 2nd arg empty string until typedef marked correctly\n const dataViewName = 'D_pyWorkHistory';\n const context = thePConn.getContextName();\n\n function computeRowData(rows: Object[]): void {\n const theRowData: Object[] = [];\n\n rows.forEach((row: any, rowIndex: number) => {\n // Now, for each property in the index of row properties (displayedColumns), add an object\n // to a new array of values\n const rowDisplayValues: any = [];\n\n displayedColumns.forEach((column: any, rowValIndex) => {\n const theType = column.type;\n const theFieldName = column.fieldName;\n const theValue =\n theType === 'Date' || theType === 'DateTime' ? Utils.generateDateTime(row[theFieldName], 'DateTime-Short') : row[theFieldName];\n rowDisplayValues[rowValIndex] = theValue;\n });\n\n theRowData[rowIndex] = rowDisplayValues;\n });\n\n if (!isDeepEqual(theRowData, rowData.current)) {\n // Only update rowData.current when it actually changes (to prevent infinite loop)\n rowData.current = theRowData;\n }\n }\n\n // Get the case history data when component mounted/initialized\n useEffect(() => {\n let bCallSetWaitingForData = true;\n\n const historyData = PCore.getDataApiUtils().getData(\n dataViewName,\n { dataViewParameters: [{ CaseInstanceKey: caseID }] } as any,\n context\n ) as Promise<any>;\n\n historyData.then((historyJSON: any) => {\n const tableDataResults = historyJSON.data.data;\n\n // compute the rowData using the tableDataResults\n computeRowData(tableDataResults);\n\n // At this point, if we have data ready to render and haven't been asked\n // to NOT call setWaitingForData, we can stop progress indicator\n if (bCallSetWaitingForData) {\n setWaitingForData(false);\n }\n });\n\n return () => {\n // Inspired by https://juliangaramendy.dev/blog/use-promise-subscription\n // The useEffect closure lets us have access to the bCallSetWaitingForData\n // variable inside the useEffect and inside the \"then\" clause of the\n // historyData promise\n // So, if this cleanup code gets run before the promise .then is called,\n // we can avoid calling the useState setter which would otherwise show a warning\n bCallSetWaitingForData = false;\n };\n }, []);\n\n function getTableHeader() {\n const theRowKey = 'CaseHistory.TableHeader';\n\n const theHeaderCells: any[] = displayedColumns.map((headerCol, index) => {\n const theCellKey = `${theRowKey}.${index}`;\n return <StyledTableCell key={theCellKey}>{headerCol.label}</StyledTableCell>;\n });\n\n return <TableRow key={theRowKey}>{theHeaderCells}</TableRow>;\n }\n\n function getTableData() {\n const theDataRows: any[] = [];\n\n // Note: using rowData.current since we're using useRef as a mutatable\n // value that's only updated when it changes.\n if (rowData.current.length > 0) {\n rowData.current.forEach((dataRow: Object[], index) => {\n // using dataRow[0]-dataRow[1] as the array key since it's a unique value\n const theKey = `CaseHistory-${index}`;\n theDataRows.push(\n <TableRow key={theKey}>\n <StyledTableCell>{dataRow[0] ? dataRow[0] : ('---' as any)}</StyledTableCell>\n <StyledTableCell>{dataRow[1] ? dataRow[1] : ('---' as any)}</StyledTableCell>\n <StyledTableCell>{dataRow[2] ? dataRow[2] : ('---' as any)}</StyledTableCell>\n </TableRow>\n );\n });\n }\n\n return theDataRows;\n }\n\n return (\n <div id='CaseHistory'>\n <TableContainer>\n <Table>\n <TableHead>{getTableHeader()}</TableHead>\n <TableBody>{getTableData()}</TableBody>\n </Table>\n </TableContainer>\n </div>\n );\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Button } from '@material-ui/core';
2
+ import { Button } from '@mui/material';
3
3
  import './ActionButtonsForFileUtil.css';
4
4
  export default function ActionButtonsForFileUtil(props) {
5
5
  return (_jsxs("div", { className: 'psdk-actions', children: [_jsx("div", { className: 'psdk-action-buttons', children: props.arSecondaryButtons.map(file => (_jsx(Button, { className: 'secondary-button', onClick: props.secondaryAction, children: file.name }, file.actionID))) }), _jsx("div", { className: 'psdk-action-buttons', children: props.arMainButtons.map(file => (_jsx(Button, { className: 'primary-button', onClick: props.primaryAction, children: file.name }, file.actionID))) })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"ActionButtonsForFileUtil.js","sourceRoot":"","sources":["../../../../../src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,gCAAgC,CAAC;AAUxC,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,KAAoC;IACnF,OAAO,CACL,eAAK,SAAS,EAAC,cAAc,aAC3B,cAAK,SAAS,EAAC,qBAAqB,YACjC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACpC,KAAC,MAAM,IAAC,SAAS,EAAC,kBAAkB,EAAqB,OAAO,EAAE,KAAK,CAAC,eAAe,YACpF,IAAI,CAAC,IAAI,IAD8B,IAAI,CAAC,QAAQ,CAE9C,CACV,CAAC,GACE,EACN,cAAK,SAAS,EAAC,qBAAqB,YACjC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC/B,KAAC,MAAM,IAAC,SAAS,EAAC,gBAAgB,EAAqB,OAAO,EAAE,KAAK,CAAC,aAAa,YAChF,IAAI,CAAC,IAAI,IAD4B,IAAI,CAAC,QAAQ,CAE5C,CACV,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { Button } from '@material-ui/core';\nimport { PConnProps } from '../../../../types/PConnProps';\nimport './ActionButtonsForFileUtil.css';\n\ninterface ActionButtonsForFileUtilProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n arMainButtons: any[];\n arSecondaryButtons: any[];\n primaryAction: any;\n secondaryAction: any;\n}\n\nexport default function ActionButtonsForFileUtil(props: ActionButtonsForFileUtilProps) {\n return (\n <div className='psdk-actions'>\n <div className='psdk-action-buttons'>\n {props.arSecondaryButtons.map(file => (\n <Button className='secondary-button' key={file.actionID} onClick={props.secondaryAction}>\n {file.name}\n </Button>\n ))}\n </div>\n <div className='psdk-action-buttons'>\n {props.arMainButtons.map(file => (\n <Button className='primary-button' key={file.actionID} onClick={props.primaryAction}>\n {file.name}\n </Button>\n ))}\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"ActionButtonsForFileUtil.js","sourceRoot":"","sources":["../../../../../src/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,gCAAgC,CAAC;AAUxC,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,KAAoC;IACnF,OAAO,CACL,eAAK,SAAS,EAAC,cAAc,aAC3B,cAAK,SAAS,EAAC,qBAAqB,YACjC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACpC,KAAC,MAAM,IAAC,SAAS,EAAC,kBAAkB,EAAqB,OAAO,EAAE,KAAK,CAAC,eAAe,YACpF,IAAI,CAAC,IAAI,IAD8B,IAAI,CAAC,QAAQ,CAE9C,CACV,CAAC,GACE,EACN,cAAK,SAAS,EAAC,qBAAqB,YACjC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC/B,KAAC,MAAM,IAAC,SAAS,EAAC,gBAAgB,EAAqB,OAAO,EAAE,KAAK,CAAC,aAAa,YAChF,IAAI,CAAC,IAAI,IAD4B,IAAI,CAAC,QAAQ,CAE5C,CACV,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { Button } from '@mui/material';\nimport { PConnProps } from '../../../../types/PConnProps';\nimport './ActionButtonsForFileUtil.css';\n\ninterface ActionButtonsForFileUtilProps extends PConnProps {\n // If any, enter additional props that only exist on this component\n arMainButtons: any[];\n arSecondaryButtons: any[];\n primaryAction: any;\n secondaryAction: any;\n}\n\nexport default function ActionButtonsForFileUtil(props: ActionButtonsForFileUtilProps) {\n return (\n <div className='psdk-actions'>\n <div className='psdk-action-buttons'>\n {props.arSecondaryButtons.map(file => (\n <Button className='secondary-button' key={file.actionID} onClick={props.secondaryAction}>\n {file.name}\n </Button>\n ))}\n </div>\n <div className='psdk-action-buttons'>\n {props.arMainButtons.map(file => (\n <Button className='primary-button' key={file.actionID} onClick={props.primaryAction}>\n {file.name}\n </Button>\n ))}\n </div>\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FileUtility.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/FileUtility/FileUtility/FileUtility.tsx"],"names":[],"mappings":"AAQA,OAAO,mBAAmB,CAAC;AAM3B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,UAAU,gBAAiB,SAAQ,UAAU;CAE5C;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CAgnB1D"}
1
+ {"version":3,"file":"FileUtility.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/FileUtility/FileUtility/FileUtility.tsx"],"names":[],"mappings":"AAQA,OAAO,mBAAmB,CAAC;AAM3B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,UAAU,gBAAiB,SAAQ,UAAU;CAE5C;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CAinB1D"}
@@ -1,13 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from 'react';
3
- import TextField from '@material-ui/core/TextField';
3
+ import TextField from '@mui/material/TextField';
4
4
  import { Utils } from '../../../helpers/utils';
5
5
  import download from 'downloadjs';
6
6
  // import SummaryList from '../../SummaryList';
7
7
  // import ActionButtonsForFileUtil from '../ActionButtonsForFileUtil';
8
8
  import './FileUtility.css';
9
- import { IconButton, Menu, MenuItem, Button, CircularProgress } from '@material-ui/core';
10
- import MoreVertIcon from '@material-ui/icons/MoreVert';
9
+ import { IconButton, Menu, MenuItem, Button, CircularProgress } from '@mui/material';
10
+ import MoreVertIcon from '@mui/icons-material/MoreVert';
11
11
  import { validateMaxSize } from '../../../helpers/attachmentHelpers';
12
12
  import { getComponentFromMap } from '../../../../bridge/helpers/sdk_component_map';
13
13
  export default function FileUtility(props) {
@@ -432,6 +432,6 @@ export default function FileUtility(props) {
432
432
  .catch(() => setProgress(false));
433
433
  }
434
434
  }
435
- return (_jsxs("div", { className: 'psdk-utility', id: 'file-utility', children: [inProgress && (_jsx("div", { className: 'progress-div', children: _jsx(CircularProgress, {}) })), _jsxs("div", { className: 'psdk-header', children: [_jsx("img", { className: 'psdk-file-utility-card-svg-icon', src: headerSvgIcon$ }), _jsx("div", { className: 'header-text', children: header }), _jsx("div", { className: 'psdk-utility-count', id: 'attachments-count', children: list.count }), _jsx("div", { style: { flexGrow: 1 } }), _jsxs("div", { children: [_jsx(IconButton, { id: 'long-button', "aria-controls": open ? 'simple-menu' : undefined, "aria-expanded": open ? 'true' : undefined, "aria-haspopup": 'true', onClick: handleClick, children: _jsx(MoreVertIcon, {}) }), _jsxs(Menu, { style: { marginTop: '3rem' }, id: 'simple-menu', anchorEl: anchorEl, keepMounted: true, open: Boolean(anchorEl), onClose: handleClose, children: [_jsx(MenuItem, { style: { fontSize: '14px' }, onClick: onAddFilesClick, children: thePConn.getLocalizedValue('Add files', '', '') }), ' ', _jsx(MenuItem, { style: { fontSize: '14px' }, onClick: onAddLinksClick, children: thePConn.getLocalizedValue('Add links', '', '') }), ' '] })] })] }), list.data.length > 0 && (_jsx("div", { style: { marginTop: '1rem' }, children: _jsx(SummaryList, { "arItems$": list.data }) })), list.count > 3 && (_jsx("div", { className: 'psdk-utility-view-all', children: _jsx(Button, { style: { textTransform: 'none' }, color: 'primary', onClick: () => setViewAll(true), children: "View all" }) })), fileData.showfileModal && (_jsx("div", { className: 'psdk-dialog-background', children: _jsxs("div", { className: 'psdk-modal-file-top', children: [_jsx("h3", { children: thePConn.getLocalizedValue('Add local files', '', '') }), _jsxs("div", { className: 'psdk-modal-body', children: [_jsx("div", { className: 'psdk-modal-file-selector', children: _jsxs("label", { htmlFor: 'upload-files', children: [_jsx("input", { style: { display: 'none' }, id: 'upload-files', name: 'upload-files', type: 'file', multiple: true, onChange: uploadMyFiles }), _jsx(Button, { variant: 'outlined', color: 'primary', component: 'span', children: thePConn.getLocalizedValue('Attach files', '', '') }), ' '] }) }), fileData.fileList.length > 0 && (_jsx("div", { style: { marginTop: '1rem' }, children: _jsx(SummaryList, { "menuIconOverride$": 'trash', "arItems$": fileData.fileList, "menuIconOverrideAction$": removeFileFromList }) })), fileData.fileList.length === 0 && _jsx("div", {}), _jsx(ActionButtonsForFileUtil, { arMainButtons: fileData.fileMainButtons, arSecondaryButtons: fileData.fileSecondaryButtons, primaryAction: onAttachFiles, secondaryAction: closeFilePopup })] })] }) })), linkData.showLinkModal && (_jsx("div", { className: 'psdk-dialog-background', children: _jsxs("div", { className: 'psdk-modal-file-top', children: [_jsx("h3", { children: thePConn.getLocalizedValue('Add links', '', '') }), " ", _jsxs("div", { className: 'psdk-modal-body', children: [_jsxs("div", { className: 'psdk-modal-links-row', children: [_jsxs("div", { className: 'psdk-links-two-column', children: [_jsx("div", { className: 'psdk-modal-link-data', children: _jsx(TextField, { fullWidth: true, variant: 'outlined', label: 'Link title', size: 'small', required: required, value: link.title, onChange: fieldlinkOnChange }) }), _jsx("div", { className: 'psdk-modal-link-data', children: _jsx(TextField, { fullWidth: true, variant: 'outlined', label: 'URL', size: 'small', required: required, value: link.url, onChange: fieldurlOnChange }) })] }), _jsxs("div", { className: 'psdk-modal-link-add', children: [_jsx(Button, { className: 'psdk-add-link-action', color: 'primary', variant: 'contained', component: 'span', onClick: addLink, disabled: link.disable, children: thePConn.getLocalizedValue('Add link', '', '') }), ' '] })] }), linkData.linksList.length > 0 && (_jsx("div", { style: { marginTop: '1rem' }, children: _jsx(SummaryList, { "menuIconOverride$": 'trash', "arItems$": linkData.linksList, "menuIconOverrideAction$": removeLinksFromList }) })), _jsx(ActionButtonsForFileUtil, { arMainButtons: linkData.linkMainButtons, arSecondaryButtons: linkData.linkSecondaryButtons, primaryAction: onAttachLinks, secondaryAction: closeAddLinksPopup })] })] }) })), showViewAllModal && (_jsx("div", { className: 'psdk-dialog-background', children: _jsxs("div", { className: 'psdk-modal-file-top', children: [_jsxs("div", { className: 'psdk-view-all-header', children: [_jsx("h3", { children: thePConn.getLocalizedValue('Attachments', '', '') }), " ", _jsx("button", { type: 'button', className: 'psdk-close-button', onClick: () => setViewAll(false), children: _jsx("img", { className: 'psdk-utility-card-actions-svg-icon', src: closeSvgIcon }) })] }), _jsx("div", { className: 'psdk-view-all-body', children: _jsx(SummaryList, { "arItems$": vaItems }) })] }) }))] }));
435
+ return (_jsxs("div", { className: 'psdk-utility', id: 'file-utility', children: [inProgress && (_jsx("div", { className: 'progress-div', children: _jsx(CircularProgress, {}) })), _jsxs("div", { className: 'psdk-header', children: [_jsx("img", { className: 'psdk-file-utility-card-svg-icon', src: headerSvgIcon$ }), _jsx("div", { className: 'header-text', children: header }), _jsx("div", { className: 'psdk-utility-count', id: 'attachments-count', children: list.count }), _jsx("div", { style: { flexGrow: 1 } }), _jsxs("div", { children: [_jsx(IconButton, { id: 'long-button', "aria-controls": open ? 'simple-menu' : undefined, "aria-expanded": open ? 'true' : undefined, "aria-haspopup": 'true', onClick: handleClick, size: 'large', children: _jsx(MoreVertIcon, {}) }), _jsxs(Menu, { style: { marginTop: '3rem' }, id: 'simple-menu', anchorEl: anchorEl, keepMounted: true, open: Boolean(anchorEl), onClose: handleClose, children: [_jsx(MenuItem, { style: { fontSize: '14px' }, onClick: onAddFilesClick, children: thePConn.getLocalizedValue('Add files', '', '') }), ' ', _jsx(MenuItem, { style: { fontSize: '14px' }, onClick: onAddLinksClick, children: thePConn.getLocalizedValue('Add links', '', '') }), ' '] })] })] }), list.data.length > 0 && (_jsx("div", { style: { marginTop: '1rem' }, children: _jsx(SummaryList, { "arItems$": list.data }) })), list.count > 3 && (_jsx("div", { className: 'psdk-utility-view-all', children: _jsx(Button, { style: { textTransform: 'none' }, color: 'primary', onClick: () => setViewAll(true), children: "View all" }) })), fileData.showfileModal && (_jsx("div", { className: 'psdk-dialog-background', children: _jsxs("div", { className: 'psdk-modal-file-top', children: [_jsx("h3", { children: thePConn.getLocalizedValue('Add local files', '', '') }), _jsxs("div", { className: 'psdk-modal-body', children: [_jsx("div", { className: 'psdk-modal-file-selector', children: _jsxs("label", { htmlFor: 'upload-files', children: [_jsx("input", { style: { display: 'none' }, id: 'upload-files', name: 'upload-files', type: 'file', multiple: true, onChange: uploadMyFiles }), _jsx(Button, { variant: 'outlined', color: 'primary', component: 'span', children: thePConn.getLocalizedValue('Attach files', '', '') }), ' '] }) }), fileData.fileList.length > 0 && (_jsx("div", { style: { marginTop: '1rem' }, children: _jsx(SummaryList, { "menuIconOverride$": 'trash', "arItems$": fileData.fileList, "menuIconOverrideAction$": removeFileFromList }) })), fileData.fileList.length === 0 && _jsx("div", {}), _jsx(ActionButtonsForFileUtil, { arMainButtons: fileData.fileMainButtons, arSecondaryButtons: fileData.fileSecondaryButtons, primaryAction: onAttachFiles, secondaryAction: closeFilePopup })] })] }) })), linkData.showLinkModal && (_jsx("div", { className: 'psdk-dialog-background', children: _jsxs("div", { className: 'psdk-modal-file-top', children: [_jsx("h3", { children: thePConn.getLocalizedValue('Add links', '', '') }), " ", _jsxs("div", { className: 'psdk-modal-body', children: [_jsxs("div", { className: 'psdk-modal-links-row', children: [_jsxs("div", { className: 'psdk-links-two-column', children: [_jsx("div", { className: 'psdk-modal-link-data', children: _jsx(TextField, { fullWidth: true, variant: 'outlined', label: 'Link title', size: 'small', required: required, value: link.title, onChange: fieldlinkOnChange }) }), _jsx("div", { className: 'psdk-modal-link-data', children: _jsx(TextField, { fullWidth: true, variant: 'outlined', label: 'URL', size: 'small', required: required, value: link.url, onChange: fieldurlOnChange }) })] }), _jsxs("div", { className: 'psdk-modal-link-add', children: [_jsx(Button, { className: 'psdk-add-link-action', color: 'primary', variant: 'contained', component: 'span', onClick: addLink, disabled: link.disable, children: thePConn.getLocalizedValue('Add link', '', '') }), ' '] })] }), linkData.linksList.length > 0 && (_jsx("div", { style: { marginTop: '1rem' }, children: _jsx(SummaryList, { "menuIconOverride$": 'trash', "arItems$": linkData.linksList, "menuIconOverrideAction$": removeLinksFromList }) })), _jsx(ActionButtonsForFileUtil, { arMainButtons: linkData.linkMainButtons, arSecondaryButtons: linkData.linkSecondaryButtons, primaryAction: onAttachLinks, secondaryAction: closeAddLinksPopup })] })] }) })), showViewAllModal && (_jsx("div", { className: 'psdk-dialog-background', children: _jsxs("div", { className: 'psdk-modal-file-top', children: [_jsxs("div", { className: 'psdk-view-all-header', children: [_jsx("h3", { children: thePConn.getLocalizedValue('Attachments', '', '') }), " ", _jsx("button", { type: 'button', className: 'psdk-close-button', onClick: () => setViewAll(false), children: _jsx("img", { className: 'psdk-utility-card-actions-svg-icon', src: closeSvgIcon }) })] }), _jsx("div", { className: 'psdk-view-all-body', children: _jsx(SummaryList, { "arItems$": vaItems }) })] }) }))] }));
436
436
  }
437
437
  //# sourceMappingURL=FileUtility.js.map