@orchestrator-ui/orchestrator-ui-components 0.2.4 → 0.2.5

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 (444) hide show
  1. package/.storybook/main.js +1 -1
  2. package/.turbo/turbo-build.log +9 -7
  3. package/.turbo/turbo-lint.log +3 -6
  4. package/.turbo/turbo-test.log +17 -9
  5. package/CHANGELOG.md +6 -0
  6. package/dist/index.d.ts +1092 -358
  7. package/dist/index.js +22934 -6399
  8. package/jest.config.cjs +0 -1
  9. package/package.json +24 -8
  10. package/src/api/axios.ts +34 -0
  11. package/src/api/index.ts +170 -0
  12. package/src/components/WfoAuth/WfoAuth.tsx +22 -0
  13. package/src/components/WfoAuth/index.ts +1 -0
  14. package/src/components/{WFOBadges/WFOBadge/WFOBadge.stories.tsx → WfoBadges/WfoBadge/WfoBadge.stories.tsx} +5 -4
  15. package/src/components/{WFOBadges/WFOBadge/WFOBadge.tsx → WfoBadges/WfoBadge/WfoBadge.tsx} +4 -3
  16. package/src/components/WfoBadges/WfoBadge/index.ts +1 -0
  17. package/src/components/{WFOBadges/WFOEngineStatusBadge/WFOEngineStatusBadge.stories.tsx → WfoBadges/WfoEngineStatusBadge/WfoEngineStatusBadge.stories.tsx} +6 -4
  18. package/src/components/{WFOBadges/WFOEngineStatusBadge/WFOEngineStatusBadge.tsx → WfoBadges/WfoEngineStatusBadge/WfoEngineStatusBadge.tsx} +13 -7
  19. package/src/components/WfoBadges/WfoEngineStatusBadge/index.ts +1 -0
  20. package/src/components/{WFOBadges/WFOEnvironmentBadge/WFOEnvironmentBadge.stories.tsx → WfoBadges/WfoEnvironmentBadge/WfoEnvironmentBadge.stories.tsx} +6 -4
  21. package/src/components/{WFOBadges/WFOEnvironmentBadge/WFOEnvironmentBadge.tsx → WfoBadges/WfoEnvironmentBadge/WfoEnvironmentBadge.tsx} +8 -7
  22. package/src/components/WfoBadges/WfoEnvironmentBadge/index.ts +1 -0
  23. package/src/components/WfoBadges/WfoFailedTasksBadge/WfoFailedTasksBadge.stories.tsx +13 -0
  24. package/src/components/WfoBadges/WfoFailedTasksBadge/WfoFailedTasksBadge.tsx +95 -0
  25. package/src/components/WfoBadges/WfoFailedTasksBadge/index.ts +1 -0
  26. package/src/components/{WFOBadges/WFOHeaderBadge/WFOHeaderBadge.stories.tsx → WfoBadges/WfoHeaderBadge/WfoHeaderBadge.stories.tsx} +6 -4
  27. package/src/components/{WFOBadges/WFOHeaderBadge/WFOHeaderBadge.tsx → WfoBadges/WfoHeaderBadge/WfoHeaderBadge.tsx} +6 -4
  28. package/src/components/WfoBadges/WfoHeaderBadge/index.ts +1 -0
  29. package/src/components/{WFOBadges/WFOProcessStatusBadge/WFOProcessStatusBadge.tsx → WfoBadges/WfoProcessStatusBadge/WfoProcessStatusBadge.tsx} +8 -6
  30. package/src/components/WfoBadges/WfoProcessStatusBadge/index.ts +1 -0
  31. package/src/components/WfoBadges/WfoProductBlockBadge/WfoProductBlockBadge.stories.tsx +16 -0
  32. package/src/components/WfoBadges/WfoProductBlockBadge/WfoProductBlockBadge.tsx +70 -0
  33. package/src/components/WfoBadges/WfoProductBlockBadge/index.ts +1 -0
  34. package/src/components/WfoBadges/WfoProductStatusBadge/WfoProductStatusBadge.stories.tsx +22 -0
  35. package/src/components/WfoBadges/WfoProductStatusBadge/WfoProductStatusBadge.tsx +53 -0
  36. package/src/components/WfoBadges/WfoProductStatusBadge/index.ts +1 -0
  37. package/src/components/{WFOBadges/WFOSubscriptionStatusBadge/WFOSubscriptionStatusBadge.stories.tsx → WfoBadges/WfoSubscriptionStatusBadge/WfoSubscriptionStatusBadge.stories.tsx} +5 -4
  38. package/src/components/{WFOBadges/WFOSubscriptionStatusBadge/WFOSubscriptionStatusBadge.tsx → WfoBadges/WfoSubscriptionStatusBadge/WfoSubscriptionStatusBadge.tsx} +12 -10
  39. package/src/components/WfoBadges/WfoSubscriptionStatusBadge/index.ts +1 -0
  40. package/src/components/WfoBadges/WfoWorkflowTargetBadge/WfoWorkflowTargetBadge.tsx +65 -0
  41. package/src/components/WfoBadges/WfoWorkflowTargetBadge/index.ts +1 -0
  42. package/src/components/WfoBadges/index.ts +9 -0
  43. package/src/components/WfoButtonComboBox/WfoButtonComboBox.tsx +76 -0
  44. package/src/components/WfoButtonComboBox/styles.ts +13 -0
  45. package/src/components/WfoDateTime/WfoDateTime.tsx +28 -0
  46. package/src/components/WfoDateTime/index.ts +1 -0
  47. package/src/components/WfoDropdownButton/WfoDropdownButton.tsx +67 -0
  48. package/src/components/WfoDropdownButton/index.ts +1 -0
  49. package/src/components/{WFOFilterTabs/WFOFilterTabs.tsx → WfoFilterTabs/WfoFilterTabs.tsx} +8 -6
  50. package/src/components/WfoFilterTabs/index.ts +1 -0
  51. package/src/components/WfoForms/AutoFieldLoader.tsx +110 -0
  52. package/src/components/WfoForms/AutoFields.tsx +49 -0
  53. package/src/components/WfoForms/CreateForm.tsx +71 -0
  54. package/src/components/WfoForms/UserInputForm.tsx +607 -0
  55. package/src/components/WfoForms/UserInputFormStyling.ts +80 -0
  56. package/src/components/WfoForms/UserInputFormWizard.tsx +120 -0
  57. package/src/components/WfoForms/formFields/AcceptField.tsx +239 -0
  58. package/src/components/WfoForms/formFields/AcceptFieldStyling.ts +29 -0
  59. package/src/components/WfoForms/formFields/BoolField.tsx +71 -0
  60. package/src/components/WfoForms/formFields/BoolFieldStyling.ts +68 -0
  61. package/src/components/WfoForms/formFields/ContactPersonAutocomplete.tsx +97 -0
  62. package/src/components/WfoForms/formFields/ContactPersonAutocompleteStyles.ts +40 -0
  63. package/src/components/WfoForms/formFields/ContactPersonNameField.tsx +253 -0
  64. package/src/components/WfoForms/formFields/DateField.tsx +72 -0
  65. package/src/components/WfoForms/formFields/DividerField.tsx +29 -0
  66. package/src/components/WfoForms/formFields/ErrorField.tsx +40 -0
  67. package/src/components/WfoForms/formFields/ErrorsField.tsx +34 -0
  68. package/src/components/WfoForms/formFields/ImsNodeIdField.tsx +110 -0
  69. package/src/components/WfoForms/formFields/IpNetworkField.tsx +128 -0
  70. package/src/components/WfoForms/formFields/IpPrefixTableField.tsx +454 -0
  71. package/src/components/WfoForms/formFields/IpPrefixTableFieldStyling.ts +117 -0
  72. package/src/components/WfoForms/formFields/LabelField.tsx +39 -0
  73. package/src/components/WfoForms/formFields/ListAddField.tsx +98 -0
  74. package/src/components/WfoForms/formFields/ListDelField.tsx +95 -0
  75. package/src/components/WfoForms/formFields/ListField.tsx +113 -0
  76. package/src/components/WfoForms/formFields/ListItemField.tsx +40 -0
  77. package/src/components/WfoForms/formFields/ListSelectField.tsx +92 -0
  78. package/src/components/WfoForms/formFields/LocationCodeField.tsx +66 -0
  79. package/src/components/WfoForms/formFields/LongTextField.tsx +68 -0
  80. package/src/components/WfoForms/formFields/NestField.tsx +107 -0
  81. package/src/components/WfoForms/formFields/NumField.tsx +75 -0
  82. package/src/components/WfoForms/formFields/OptGroupField.tsx +74 -0
  83. package/src/components/WfoForms/formFields/OrganisationField.tsx +57 -0
  84. package/src/components/WfoForms/formFields/ProductField.tsx +78 -0
  85. package/src/components/WfoForms/formFields/RadioField.tsx +87 -0
  86. package/src/components/WfoForms/formFields/SelectField.tsx +152 -0
  87. package/src/components/WfoForms/formFields/SplitPrefix.tsx +163 -0
  88. package/src/components/WfoForms/formFields/SplitPrefixStyling.ts +11 -0
  89. package/src/components/WfoForms/formFields/SubmitField.tsx +50 -0
  90. package/src/components/WfoForms/formFields/SubscriptionField.tsx +351 -0
  91. package/src/components/WfoForms/formFields/SubscriptionFieldStyling.ts +33 -0
  92. package/src/components/WfoForms/formFields/SubscriptionSummaryField.tsx +75 -0
  93. package/src/components/WfoForms/formFields/TextField.tsx +71 -0
  94. package/src/components/WfoForms/formFields/TimestampField.tsx +103 -0
  95. package/src/components/WfoForms/formFields/VlanField.tsx +297 -0
  96. package/src/components/WfoForms/formFields/index.ts +29 -0
  97. package/src/components/WfoForms/formFields/listFieldStyling.ts +86 -0
  98. package/src/components/WfoForms/formFields/reactSelectStyles.ts +45 -0
  99. package/src/components/WfoForms/formFields/surf/types.ts +53 -0
  100. package/src/components/WfoForms/formFields/surf/utils.ts +1 -0
  101. package/src/components/WfoForms/formFields/types.ts +50 -0
  102. package/src/components/WfoForms/formFields/utils.spec.ts +196 -0
  103. package/src/components/WfoForms/formFields/utils.ts +65 -0
  104. package/src/components/WfoForms/index.ts +5 -0
  105. package/src/components/WfoForms/useAxiosApiClient.ts +8 -0
  106. package/src/components/WfoInsyncIcon/WfoInsyncIcon.stories.tsx +21 -0
  107. package/src/components/WfoInsyncIcon/WfoInsyncIcon.tsx +26 -0
  108. package/src/components/WfoInsyncIcon/index.ts +1 -0
  109. package/src/components/WfoJsonCodeBlock/WfoJsonCodeBlock.tsx +27 -0
  110. package/src/components/WfoJsonCodeBlock/styles.ts +13 -0
  111. package/src/components/WfoKeyValueTable/WfoKeyCell.tsx +25 -0
  112. package/src/components/WfoKeyValueTable/WfoKeyValueTable.tsx +41 -0
  113. package/src/components/WfoKeyValueTable/WfoValueCell.tsx +53 -0
  114. package/src/components/WfoKeyValueTable/index.ts +3 -0
  115. package/src/components/WfoKeyValueTable/styles.ts +77 -0
  116. package/src/components/WfoLoading/WfoLoading.tsx +3 -0
  117. package/src/components/WfoLoading/index.ts +1 -0
  118. package/src/components/WfoNoResults/WfoNoResults.stories.tsx +19 -0
  119. package/src/components/WfoNoResults/WfoNoResults.tsx +22 -0
  120. package/src/components/WfoNoResults/index.ts +1 -0
  121. package/src/components/WfoNoResults/styles.ts +22 -0
  122. package/src/components/WfoPageHeader/WfoPageHeader.tsx +25 -0
  123. package/src/components/{WFOPageTemplate/WFOBreadcrumbs/WFOBreadcrumbs.tsx → WfoPageTemplate/WfoBreadcrumbs/WfoBreadcrumbs.tsx} +5 -2
  124. package/src/components/WfoPageTemplate/WfoBreadcrumbs/index.ts +1 -0
  125. package/src/components/{WFOPageTemplate/WFOPageHeader/WFOPageHeader.stories.tsx → WfoPageTemplate/WfoPageHeader/WfoPageHeader.stories.tsx} +7 -5
  126. package/src/components/{WFOPageTemplate/WFOPageHeader/WFOPageHeader.tsx → WfoPageTemplate/WfoPageHeader/WfoPageHeader.tsx} +26 -11
  127. package/src/components/WfoPageTemplate/WfoPageHeader/index.ts +1 -0
  128. package/src/components/{WFOPageTemplate/WFOPageTemplate/WFOPageTemplate.stories.tsx → WfoPageTemplate/WfoPageTemplate/WfoPageTemplate.stories.tsx} +8 -6
  129. package/src/components/{WFOPageTemplate/WFOPageTemplate/WFOPageTemplate.tsx → WfoPageTemplate/WfoPageTemplate/WfoPageTemplate.tsx} +20 -10
  130. package/src/components/WfoPageTemplate/WfoPageTemplate/index.ts +1 -0
  131. package/src/components/{WFOPageTemplate/WFOSidebar/WFOSidebar.stories.tsx → WfoPageTemplate/WfoSidebar/WfoSidebar.stories.tsx} +6 -4
  132. package/src/components/WfoPageTemplate/WfoSidebar/WfoSidebar.tsx +161 -0
  133. package/src/components/WfoPageTemplate/WfoSidebar/WfoStartCreateWorkflowButtonComboBox.tsx +58 -0
  134. package/src/components/WfoPageTemplate/WfoSidebar/index.ts +1 -0
  135. package/src/components/WfoPageTemplate/index.ts +4 -0
  136. package/src/components/{WFOPageTemplate → WfoPageTemplate}/paths.ts +1 -1
  137. package/src/components/WfoProcessesList/WfoProcessList.tsx +227 -0
  138. package/src/components/WfoProcessesList/processListObjectMappers.ts +79 -0
  139. package/src/components/{WFOSearchBar/WFOSearchField.tsx → WfoSearchBar/WfoSearchField.tsx} +4 -3
  140. package/src/components/WfoSearchBar/index.ts +1 -0
  141. package/src/components/WfoSettingsModal/WfoInformationModal.tsx +41 -0
  142. package/src/components/{WFOSettingsModal/WFOSettingsModal.tsx → WfoSettingsModal/WfoSettingsModal.tsx} +3 -2
  143. package/src/components/WfoSettingsModal/index.tsx +2 -0
  144. package/src/components/{WFOSettingsPage/WFOEngineStatusButton.tsx → WfoSettingsPage/WfoEngineStatusButton.tsx} +5 -3
  145. package/src/components/{WFOSettingsPage/WFOFlushSettings.tsx → WfoSettingsPage/WfoFlushSettings.tsx} +19 -30
  146. package/src/components/{WFOSettingsPage/WFOModifySettings.tsx → WfoSettingsPage/WfoModifySettings.tsx} +7 -5
  147. package/src/components/{WFOSettingsPage/WFOSettings.tsx → WfoSettingsPage/WfoSettings.tsx} +12 -8
  148. package/src/components/{WFOSettingsPage/WFOStatus.tsx → WfoSettingsPage/WfoStatus.tsx} +8 -6
  149. package/src/components/WfoSettingsPage/index.ts +1 -0
  150. package/src/components/{WFOStartPage/WFOFrequentlyUsed.stories.tsx → WfoStartPage/WfoFrequentlyUsed.stories.tsx} +5 -4
  151. package/src/components/{WFOStartPage/WFOFrequentlyUsed.tsx → WfoStartPage/WfoFrequentlyUsed.tsx} +4 -3
  152. package/src/components/{WFOStartPage/WFOListItemStartPage.stories.tsx → WfoStartPage/WfoListItemStartPage.stories.tsx} +6 -4
  153. package/src/components/{WFOStartPage/WFOListItemStartPage.tsx → WfoStartPage/WfoListItemStartPage.tsx} +9 -6
  154. package/src/components/{WFOStartPage/WFOListStartPage.stories.tsx → WfoStartPage/WfoListStartPage.stories.tsx} +6 -4
  155. package/src/components/{WFOStartPage/WFOListStartPage.tsx → WfoStartPage/WfoListStartPage.tsx} +7 -5
  156. package/src/components/{WFOStartPage/WFOMultiListSection.stories.tsx → WfoStartPage/WfoMultiListSection.stories.tsx} +5 -4
  157. package/src/components/{WFOStartPage/WFOMultiListSection.tsx → WfoStartPage/WfoMultiListSection.tsx} +7 -5
  158. package/src/components/WfoStartPage/WfoNewProcessPanel.stories.tsx +13 -0
  159. package/src/components/{WFOStartPage/WFONewProcessPanel.tsx → WfoStartPage/WfoNewProcessPanel.tsx} +5 -3
  160. package/src/components/WfoStartPage/WfoStatCards.stories.tsx +13 -0
  161. package/src/components/{WFOStartPage/WFOStatCards.tsx → WfoStartPage/WfoStatCards.tsx} +4 -2
  162. package/src/components/WfoStartPage/index.ts +6 -0
  163. package/src/components/WfoStartTaskButtonComboBox/WfoStartTaskButtonComboBox.tsx +51 -0
  164. package/src/components/WfoStartTaskButtonComboBox/index.ts +1 -0
  165. package/src/components/WfoSubscription/SubscriptionKeyValueBlock.tsx +46 -0
  166. package/src/components/WfoSubscription/WfoProcessesTimeline.tsx +158 -0
  167. package/src/components/WfoSubscription/WfoRelatedSubscriptions.tsx +192 -0
  168. package/src/components/WfoSubscription/WfoSubscription.tsx +145 -0
  169. package/src/components/WfoSubscription/WfoSubscriptionActions.tsx +236 -0
  170. package/src/components/WfoSubscription/WfoSubscriptionDetailTree.tsx +161 -0
  171. package/src/components/WfoSubscription/WfoSubscriptionGeneral.tsx +147 -0
  172. package/src/components/WfoSubscription/WfoSubscriptionProductBlock.tsx +207 -0
  173. package/src/components/WfoSubscription/index.ts +8 -0
  174. package/src/components/WfoSubscription/styles.ts +104 -0
  175. package/src/components/WfoSubscription/utils/index.ts +1 -0
  176. package/src/components/WfoSubscription/utils/utils.spec.ts +168 -0
  177. package/src/components/WfoSubscription/utils/utils.ts +76 -0
  178. package/src/components/{WFOSubscriptionsList/WFOSubscriptionsList.tsx → WfoSubscriptionsList/WfoSubscriptionsList.tsx} +63 -57
  179. package/src/components/{WFOSubscriptionsList → WfoSubscriptionsList}/index.ts +1 -2
  180. package/src/components/{WFOSubscriptionsList → WfoSubscriptionsList}/mapGrapghQlSubscriptionsResultToSubscriptionListItems.ts +16 -7
  181. package/src/components/{WFOSubscriptionsList → WfoSubscriptionsList}/subscriptionListTabs.ts +18 -18
  182. package/src/components/WfoTable/WfoBasicTable/WfoBasicTable.tsx +178 -0
  183. package/src/components/{WFOTable/WFOSortDirectionIcon.tsx → WfoTable/WfoBasicTable/WfoSortDirectionIcon.tsx} +8 -8
  184. package/src/components/WfoTable/WfoBasicTable/WfoStatusColorField.tsx +21 -0
  185. package/src/components/WfoTable/WfoBasicTable/WfoTableHeaderCell.tsx +120 -0
  186. package/src/components/WfoTable/WfoBasicTable/index.ts +4 -0
  187. package/src/components/WfoTable/WfoBasicTable/styles.ts +73 -0
  188. package/src/components/{WFOTable/WFODataGridTable/WFODataGridTable.stories.tsx → WfoTable/WfoDataGridTable/WfoDataGridTable.stories.tsx} +9 -7
  189. package/src/components/{WFOTable/WFODataGridTable/WFODataGridTable.tsx → WfoTable/WfoDataGridTable/WfoDataGridTable.tsx} +23 -21
  190. package/src/components/{WFOTable/WFODataGridTable/WFOdataGridColumns.spec.ts → WfoTable/WfoDataGridTable/WfodataGridColumns.spec.ts} +7 -7
  191. package/src/components/{WFOTable/WFODataGridTable/WFOdataGridColumns.ts → WfoTable/WfoDataGridTable/WfodataGridColumns.ts} +8 -7
  192. package/src/components/WfoTable/WfoFirstPartUUID/WfoFirstPartUUID.tsx +11 -0
  193. package/src/components/WfoTable/WfoFirstPartUUID/index.ts +1 -0
  194. package/src/components/WfoTable/WfoSortButtons/WfoSortButton.tsx +31 -0
  195. package/src/components/WfoTable/WfoSortButtons/WfoSortButtons.tsx +33 -0
  196. package/src/components/WfoTable/WfoSortButtons/index.ts +2 -0
  197. package/src/components/WfoTable/WfoSortButtons/styles.ts +20 -0
  198. package/src/components/{WFOTable/WFOTableSettingsModal/WFOTableSettingsModal.tsx → WfoTable/WfoTableSettingsModal/WfoTableSettingsModal.tsx} +5 -3
  199. package/src/components/WfoTable/WfoTableSettingsModal/index.ts +1 -0
  200. package/src/components/WfoTable/WfoTableWithFilter/WfoTableWithFilter.tsx +253 -0
  201. package/src/components/WfoTable/WfoTableWithFilter/index.ts +1 -0
  202. package/src/components/WfoTable/index.ts +15 -0
  203. package/src/components/{WFOTable → WfoTable}/utils/columns.ts +27 -16
  204. package/src/components/{WFOTable → WfoTable}/utils/constants.ts +3 -1
  205. package/src/components/WfoTable/utils/mapSortableAndFilterableValuesToTableColumnConfig.spec.ts +52 -0
  206. package/src/components/WfoTable/utils/mapSortableAndFilterableValuesToTableColumnConfig.ts +21 -0
  207. package/src/components/{WFOTable → WfoTable}/utils/tableConfigPersistence.spec.ts +4 -4
  208. package/src/components/{WFOTable → WfoTable}/utils/tableConfigPersistence.ts +12 -16
  209. package/src/components/{WFOTable → WfoTable}/utils/tableUtils.spec.ts +1 -1
  210. package/src/components/{WFOTable → WfoTable}/utils/tableUtils.ts +6 -25
  211. package/src/components/WfoTimeline/WfoTimeline.tsx +69 -0
  212. package/src/components/WfoTimeline/WfoTimelineStep.tsx +57 -0
  213. package/src/components/WfoTimeline/index.ts +1 -0
  214. package/src/components/WfoTimeline/mapProcessStepStatusToEuiStepStatus.ts +23 -0
  215. package/src/components/WfoTimeline/styles.ts +165 -0
  216. package/src/components/WfoTimeline/timelineUtils.ts +14 -0
  217. package/src/components/WfoToastsList/WfoToastsList.tsx +22 -0
  218. package/src/components/WfoToastsList/index.ts +1 -0
  219. package/src/components/WfoTree/WfoTree.tsx +27 -0
  220. package/src/components/{WFOTree/WFOTreeBranch.tsx → WfoTree/WfoTreeBranch.tsx} +7 -6
  221. package/src/components/{WFOTree/WFOTreeNode.tsx → WfoTree/WfoTreeNode.tsx} +28 -13
  222. package/src/components/WfoTree/index.ts +4 -0
  223. package/src/components/WfoTree/styles.ts +18 -0
  224. package/src/components/WfoTree/treeUtils.spec.ts +100 -0
  225. package/src/components/WfoTree/treeUtils.ts +21 -0
  226. package/src/components/WfoWorkflowSteps/WfoStep/WfoStep.stories.tsx +13 -0
  227. package/src/components/WfoWorkflowSteps/WfoStep/WfoStep.tsx +167 -0
  228. package/src/components/WfoWorkflowSteps/WfoStep/index.ts +1 -0
  229. package/src/components/WfoWorkflowSteps/WfoStepList/WfoStepList.tsx +107 -0
  230. package/src/components/WfoWorkflowSteps/WfoStepList/index.ts +1 -0
  231. package/src/components/WfoWorkflowSteps/WfoStepStatusIcon/WfoStepStatusIcon.stories.tsx +16 -0
  232. package/src/components/WfoWorkflowSteps/WfoStepStatusIcon/WfoStepStatusIcon.tsx +114 -0
  233. package/src/components/WfoWorkflowSteps/WfoStepStatusIcon/index.ts +1 -0
  234. package/src/components/WfoWorkflowSteps/WfoWorkflowStepList/WfoStepListHeader.tsx +139 -0
  235. package/src/components/WfoWorkflowSteps/WfoWorkflowStepList/WfoWorkflowStepList.stories.tsx +56 -0
  236. package/src/components/WfoWorkflowSteps/WfoWorkflowStepList/WfoWorkflowStepList.tsx +121 -0
  237. package/src/components/WfoWorkflowSteps/WfoWorkflowStepList/index.ts +2 -0
  238. package/src/components/WfoWorkflowSteps/index.ts +4 -0
  239. package/src/components/WfoWorkflowSteps/stepListUtils.spec.ts +26 -0
  240. package/src/components/WfoWorkflowSteps/stepListUtils.ts +56 -0
  241. package/src/components/WfoWorkflowSteps/styles.ts +121 -0
  242. package/src/components/confirmationDialog/ConfirmationDialogStyling.ts +12 -0
  243. package/src/components/confirmationDialog/WfoConfirmationDialog.tsx +112 -0
  244. package/src/components/confirmationDialog/index.ts +1 -0
  245. package/src/components/index.ts +19 -11
  246. package/src/contexts/ApiClientContext.tsx +30 -0
  247. package/src/contexts/ConfirmationDialogProvider.tsx +99 -0
  248. package/src/contexts/OrchestratorConfigContext.tsx +8 -3
  249. package/src/contexts/ToastContext.tsx +136 -0
  250. package/src/contexts/TreeContext.tsx +53 -32
  251. package/src/contexts/index.ts +3 -1
  252. package/src/graphqlQueries/customersQuery.ts +19 -0
  253. package/src/graphqlQueries/index.ts +4 -0
  254. package/src/graphqlQueries/processDetailQuery.ts +45 -0
  255. package/src/graphqlQueries/processListQuery.ts +17 -7
  256. package/src/graphqlQueries/productBlocksQuery.ts +13 -1
  257. package/src/graphqlQueries/productsQuery.ts +5 -1
  258. package/src/graphqlQueries/relatedSubscriptionsQuery.ts +65 -0
  259. package/src/graphqlQueries/resourceTypesQuery.ts +13 -2
  260. package/src/graphqlQueries/subscriptionDetailQuery.ts +62 -0
  261. package/src/graphqlQueries/subscriptionsDropdownOptionsQuery.ts +47 -0
  262. package/src/graphqlQueries/subscriptionsListQuery.ts +4 -0
  263. package/src/graphqlQueries/{workflowsQuery.ts → workflows/workflowsQuery.ts} +9 -3
  264. package/src/graphqlQueries/workflows/workflowsQueryForDropdownList.ts +41 -0
  265. package/src/hooks/DataFetchHooks.ts +72 -49
  266. package/src/hooks/ProcessesHooks/useDeleteProcess.ts +37 -0
  267. package/src/hooks/index.ts +4 -1
  268. package/src/hooks/surf/useGetSubscriptionDropdownOptions.ts +47 -0
  269. package/src/hooks/surf/useIsTaggedPort.ts +29 -0
  270. package/src/hooks/useDataDisplayParams.ts +1 -1
  271. package/src/hooks/useEngineStatusQuery.ts +20 -10
  272. package/src/hooks/useOrchestratorConfig.ts +6 -2
  273. package/src/hooks/useProcessStatusCountsQuery.ts +8 -23
  274. package/src/hooks/useQueryWithFetch.ts +33 -0
  275. package/src/hooks/useQueryWithGraphql.ts +18 -13
  276. package/src/hooks/useSessionWithToken.ts +14 -0
  277. package/src/hooks/useStoredTableConfig.ts +43 -0
  278. package/src/hooks/useSubscriptionActions.ts +3 -3
  279. package/src/hooks/useToastMessage.ts +5 -0
  280. package/src/hooks/useWithOrchestratorTheme.ts +10 -0
  281. package/src/icons/WfoArrowNarrowDown.stories.tsx +13 -0
  282. package/src/icons/{WFOArrowNarrowDown.tsx → WfoArrowNarrowDown.tsx} +4 -2
  283. package/src/icons/WfoArrowNarrowUp.stories.tsx +13 -0
  284. package/src/icons/{WFOArrowNarrowUp.tsx → WfoArrowNarrowUp.tsx} +4 -2
  285. package/src/icons/WfoArrowsExpand.stories.tsx +13 -0
  286. package/src/icons/WfoArrowsExpand.tsx +33 -0
  287. package/src/icons/WfoCheckmarkCircleFill.stories.tsx +13 -0
  288. package/src/icons/{WFOCheckmarkCircleFill.tsx → WfoCheckmarkCircleFill.tsx} +3 -2
  289. package/src/icons/WfoChevronDown.stories.tsx +13 -0
  290. package/src/icons/{WFOChevronDown.tsx → WfoChevronDown.tsx} +3 -2
  291. package/src/icons/WfoChevronUp.stories.tsx +13 -0
  292. package/src/icons/WfoChevronUp.tsx +33 -0
  293. package/src/icons/WfoClipboardCopy.stories.tsx +13 -0
  294. package/src/icons/WfoClipboardCopy.tsx +33 -0
  295. package/src/icons/WfoCode.stories.tsx +13 -0
  296. package/src/icons/WfoCode.tsx +35 -0
  297. package/src/icons/WfoCogFill.stories.tsx +13 -0
  298. package/src/icons/WfoCogFill.tsx +35 -0
  299. package/src/icons/WfoEyeFill.stories.tsx +13 -0
  300. package/src/icons/WfoEyeFill.tsx +35 -0
  301. package/src/icons/{WFOIconProps.ts → WfoIconProps.ts} +1 -1
  302. package/src/icons/WfoLogoutIcon.stories.tsx +13 -0
  303. package/src/icons/{WFOLogoutIcon.tsx → WfoLogoutIcon.tsx} +3 -2
  304. package/src/icons/WfoMinusCircleFill.stories.tsx +13 -0
  305. package/src/icons/WfoMinusCircleFill.tsx +33 -0
  306. package/src/icons/WfoMinusCircleOutline.stories.tsx +13 -0
  307. package/src/icons/{WFOMinusCircleOutline.tsx → WfoMinusCircleOutline.tsx} +3 -2
  308. package/src/icons/WfoPencilAlt.stories.tsx +13 -0
  309. package/src/icons/WfoPencilAlt.tsx +33 -0
  310. package/src/icons/WfoPlayFill.stories.tsx +13 -0
  311. package/src/icons/WfoPlayFill.tsx +35 -0
  312. package/src/icons/WfoPlusCircleFill.stories.tsx +13 -0
  313. package/src/icons/{WFOPlusCircleFill.tsx → WfoPlusCircleFill.tsx} +3 -2
  314. package/src/icons/WfoRefresh.stories.tsx +13 -0
  315. package/src/icons/WfoRefresh.tsx +35 -0
  316. package/src/icons/WfoSearchStrikethrough.stories.tsx +13 -0
  317. package/src/icons/WfoSearchStrikethrough.tsx +33 -0
  318. package/src/icons/WfoSortAsc.stories.tsx +13 -0
  319. package/src/icons/WfoSortAsc.tsx +33 -0
  320. package/src/icons/WfoSortDesc.stories.tsx +13 -0
  321. package/src/icons/WfoSortDesc.tsx +33 -0
  322. package/src/icons/WfoStatistic.tsx +41 -0
  323. package/src/icons/WfoStatusDotIcon.stories.tsx +13 -0
  324. package/src/icons/{WFOStatusDotIcon.tsx → WfoStatusDotIcon.tsx} +3 -2
  325. package/src/icons/WfoXCircleFill.stories.tsx +13 -0
  326. package/src/icons/{WFOXCircleFill.tsx → WfoXCircleFill.tsx} +3 -2
  327. package/src/icons/index.ts +22 -10
  328. package/src/index.ts +1 -0
  329. package/src/messages/en-US.json +173 -20
  330. package/src/messages/getTranslationMessages.spec.ts +1 -1
  331. package/src/messages/getTranslationMessages.ts +1 -1
  332. package/src/messages/nl-NL.json +177 -22
  333. package/src/pages/index.ts +2 -0
  334. package/src/pages/metadata/{WFOMetadataPageLayout.tsx → WfoMetadataPageLayout.tsx} +5 -3
  335. package/src/pages/metadata/WfoProductBlocksPage.tsx +239 -0
  336. package/src/pages/metadata/{WFOProductsPage.tsx → WfoProductsPage.tsx} +96 -54
  337. package/src/pages/metadata/WfoResourceTypesPage.tsx +185 -0
  338. package/src/pages/metadata/WfoWorkflowsPage.tsx +194 -0
  339. package/src/pages/metadata/index.ts +4 -4
  340. package/src/pages/metadata/workflowListObjectMapper.ts +43 -0
  341. package/src/pages/processes/WfoProcessDetail.tsx +327 -0
  342. package/src/pages/processes/WfoProcessDetailPage.tsx +88 -0
  343. package/src/pages/processes/WfoProcessListPage.tsx +106 -0
  344. package/src/pages/processes/WfoProcessListSubscriptionsCell.tsx +72 -0
  345. package/src/pages/processes/getProcessListTabTypeFromString.ts +6 -6
  346. package/src/pages/processes/index.ts +3 -2
  347. package/src/pages/processes/tabConfig.ts +28 -10
  348. package/src/pages/processes/timelineUtils.spec.ts +202 -0
  349. package/src/pages/processes/timelineUtils.ts +113 -0
  350. package/src/pages/subscriptions/WfoSubscriptionDetailPage.tsx +19 -0
  351. package/src/pages/subscriptions/{WFOSubscriptionsListPage.tsx → WfoSubscriptionsListPage.tsx} +40 -20
  352. package/src/pages/subscriptions/index.ts +2 -1
  353. package/src/pages/tasks/WfoTaskListPage.tsx +120 -0
  354. package/src/pages/tasks/index.ts +1 -0
  355. package/src/pages/workflow/WfoStartWorkflowPage.tsx +176 -0
  356. package/src/pages/workflow/index.ts +1 -0
  357. package/src/stories/Button.jsx +45 -39
  358. package/src/stories/Configure.mdx +48 -43
  359. package/src/stories/Header.jsx +59 -45
  360. package/src/stories/Page.jsx +81 -60
  361. package/src/stories/Page.stories.js +2 -1
  362. package/src/stories/button.css +18 -18
  363. package/src/stories/colors.mdx +12 -0
  364. package/src/stories/colors.tsx +27 -0
  365. package/src/stories/header.css +18 -18
  366. package/src/stories/page.css +40 -40
  367. package/src/theme/defaultOrchestratorTheme.ts +16 -0
  368. package/src/types/forms.ts +40 -0
  369. package/src/types/index.ts +0 -1
  370. package/src/types/types.ts +283 -73
  371. package/src/utils/date.spec.ts +157 -5
  372. package/src/utils/date.ts +66 -5
  373. package/src/utils/environmentVariables.spec.ts +17 -0
  374. package/src/utils/environmentVariables.ts +12 -0
  375. package/src/utils/getDefaultTableConfig.ts +101 -0
  376. package/src/utils/getProductNamesFromProcess.spec.ts +133 -0
  377. package/src/utils/getProductNamesFromProcess.ts +16 -0
  378. package/src/utils/getTokenName.ts +2 -1
  379. package/src/utils/index.ts +2 -0
  380. package/src/utils/string.spec.ts +24 -1
  381. package/src/utils/strings.ts +5 -0
  382. package/tsconfig.build.json +14 -0
  383. package/tsconfig.json +4 -2
  384. package/src/components/WFOBadges/WFOBadge/index.ts +0 -1
  385. package/src/components/WFOBadges/WFOEngineStatusBadge/index.ts +0 -1
  386. package/src/components/WFOBadges/WFOEnvironmentBadge/index.ts +0 -1
  387. package/src/components/WFOBadges/WFOFailedTasksBadge/WFOFailedTasksBadge.stories.tsx +0 -12
  388. package/src/components/WFOBadges/WFOFailedTasksBadge/WFOFailedTasksBadge.tsx +0 -63
  389. package/src/components/WFOBadges/WFOFailedTasksBadge/index.ts +0 -1
  390. package/src/components/WFOBadges/WFOHeaderBadge/index.ts +0 -1
  391. package/src/components/WFOBadges/WFOProcessStatusBadge/index.ts +0 -1
  392. package/src/components/WFOBadges/WFOProductBlockBadge/WFOProductBlockBadge.stories.tsx +0 -15
  393. package/src/components/WFOBadges/WFOProductBlockBadge/WFOProductBlockBadge.tsx +0 -22
  394. package/src/components/WFOBadges/WFOProductBlockBadge/index.ts +0 -1
  395. package/src/components/WFOBadges/WFOSubscriptionStatusBadge/index.ts +0 -1
  396. package/src/components/WFOBadges/index.ts +0 -8
  397. package/src/components/WFOFilterTabs/index.ts +0 -1
  398. package/src/components/WFOLoading/WFOLoading.tsx +0 -2
  399. package/src/components/WFOLoading/index.ts +0 -1
  400. package/src/components/WFOPageTemplate/WFOBreadcrumbs/index.ts +0 -1
  401. package/src/components/WFOPageTemplate/WFOPageHeader/index.ts +0 -1
  402. package/src/components/WFOPageTemplate/WFOPageTemplate/index.ts +0 -1
  403. package/src/components/WFOPageTemplate/WFOSidebar/WFOSidebar.tsx +0 -161
  404. package/src/components/WFOPageTemplate/WFOSidebar/index.ts +0 -1
  405. package/src/components/WFOPageTemplate/index.ts +0 -4
  406. package/src/components/WFOSearchBar/index.ts +0 -1
  407. package/src/components/WFOSettingsModal/index.tsx +0 -1
  408. package/src/components/WFOSettingsPage/index.ts +0 -1
  409. package/src/components/WFOStartPage/WFONewProcessPanel.stories.tsx +0 -12
  410. package/src/components/WFOStartPage/WFOStatCards.stories.tsx +0 -12
  411. package/src/components/WFOStartPage/index.ts +0 -6
  412. package/src/components/WFOSubscription/WFOFixedInputBlock.tsx +0 -58
  413. package/src/components/WFOSubscription/WFOProcessesTimeline.tsx +0 -105
  414. package/src/components/WFOSubscription/WFOProductBlock.tsx +0 -186
  415. package/src/components/WFOSubscription/WFOSubscriptionActions.tsx +0 -138
  416. package/src/components/WFOSubscription/WFOSubscriptionBlock.tsx +0 -109
  417. package/src/components/WFOSubscription/WFOSubscriptionDetailTree.tsx +0 -184
  418. package/src/components/WFOSubscription/WFOSubscriptionGeneral.tsx +0 -53
  419. package/src/components/WFOSubscription/index.ts +0 -7
  420. package/src/components/WFOSubscription/styles.ts +0 -18
  421. package/src/components/WFOSubscriptionsList/types.ts +0 -11
  422. package/src/components/WFOTable/WFOTable.tsx +0 -85
  423. package/src/components/WFOTable/WFOTableHeaderCell.tsx +0 -30
  424. package/src/components/WFOTable/WFOTableSettingsModal/index.ts +0 -1
  425. package/src/components/WFOTable/WFOTableWithFilter/WFOTableWithFilter.tsx +0 -174
  426. package/src/components/WFOTable/WFOTableWithFilter/index.ts +0 -1
  427. package/src/components/WFOTable/index.ts +0 -14
  428. package/src/components/WFOTree/WFOTree.tsx +0 -16
  429. package/src/contexts/SubscriptionContext.tsx +0 -72
  430. package/src/hooks/useSubscriptionProcesses.ts +0 -45
  431. package/src/icons/WFOCheckmarkCircleFill.stories.tsx +0 -12
  432. package/src/icons/WFOLogoutIcon.stories.tsx +0 -12
  433. package/src/icons/WFOMinusCircleOutline.stories.tsx +0 -12
  434. package/src/icons/WFOPlusCircleFill.stories.tsx +0 -12
  435. package/src/icons/WFOStatusDotIcon.stories.tsx +0 -12
  436. package/src/icons/WFOXCircleFill.stories.tsx +0 -12
  437. package/src/pages/metadata/WFOProductBlocksPage.tsx +0 -166
  438. package/src/pages/metadata/WFOResourceTypesPage.tsx +0 -120
  439. package/src/pages/metadata/WFOWorkflowsPage.tsx +0 -251
  440. package/src/pages/processes/WFOProcessListPage.tsx +0 -213
  441. package/src/pages/processes/WFOProcessesListSubscriptionsCell.tsx +0 -28
  442. package/src/pages/processes/tableConfig.ts +0 -22
  443. package/src/types/subscription.ts +0 -21
  444. package/src/components/{WFOTable → WfoTable}/utils/columns.spec.ts +1 -1
@@ -0,0 +1,98 @@
1
+ /*
2
+ * Copyright 2019-2023 SURF.
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ *
8
+ * Unless required by applicable law or agreed to in writing, software
9
+ * distributed under the License is distributed on an "AS IS" BASIS,
10
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ * See the License for the specific language governing permissions and
12
+ * limitations under the License.
13
+ *
14
+ */
15
+ import React from 'react';
16
+
17
+ import cloneDeep from 'lodash/cloneDeep';
18
+ import { useTranslations } from 'next-intl';
19
+ import { connectField, filterDOMProps, joinName, useField } from 'uniforms';
20
+
21
+ import { EuiIcon, EuiText } from '@elastic/eui';
22
+
23
+ import { useOrchestratorTheme } from '../../../hooks';
24
+ import { FieldProps } from './types';
25
+
26
+ export type ListAddFieldProps = FieldProps<
27
+ string,
28
+ { initialCount?: number; outerList?: boolean }
29
+ >;
30
+
31
+ // onChange not used on purpose
32
+ function ListAdd({
33
+ disabled,
34
+ initialCount,
35
+ name,
36
+ readOnly,
37
+ value,
38
+ outerList = false,
39
+ ...props
40
+ }: ListAddFieldProps) {
41
+ const { theme } = useOrchestratorTheme();
42
+ const t = useTranslations('pydanticForms.fields');
43
+
44
+ const nameParts = joinName(null, name);
45
+ const parentName = joinName(nameParts.slice(0, -1));
46
+ const parent = useField<
47
+ { initialCount?: number; maxCount?: number },
48
+ unknown[]
49
+ >(parentName, { initialCount }, { absoluteName: true })[0];
50
+
51
+ const limitNotReached =
52
+ !disabled &&
53
+ !(
54
+ parent.maxCount! <=
55
+ Math.max(initialCount ?? 0, parent.value!.length)
56
+ );
57
+ const count = 1 + Math.max((initialCount ?? 0) - parent.value!.length, 0);
58
+
59
+ function onAction(event: React.KeyboardEvent | React.MouseEvent) {
60
+ if (
61
+ limitNotReached &&
62
+ !readOnly &&
63
+ (!('key' in event) || event.key === 'Enter')
64
+ ) {
65
+ const newRowsValue = Array(count).fill(cloneDeep(value));
66
+ parent.onChange(parent.value!.concat(newRowsValue));
67
+ }
68
+ }
69
+
70
+ return (
71
+ <div
72
+ className="add-item"
73
+ {...filterDOMProps(props)}
74
+ onClick={onAction}
75
+ onKeyDown={onAction}
76
+ role="button"
77
+ tabIndex={0}
78
+ >
79
+ <EuiIcon
80
+ type="plus"
81
+ size="xxl"
82
+ color={
83
+ !limitNotReached || disabled
84
+ ? theme.colors.disabled
85
+ : theme.colors.success
86
+ }
87
+ />
88
+ <label>
89
+ {outerList && <EuiText>{t(`${parentName}_add`)}</EuiText>}
90
+ </label>
91
+ </div>
92
+ );
93
+ }
94
+
95
+ export const ListAddField = connectField(ListAdd, {
96
+ initialValue: false,
97
+ kind: 'leaf',
98
+ });
@@ -0,0 +1,95 @@
1
+ /*
2
+ * Copyright 2019-2023 SURF.
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ *
8
+ * Unless required by applicable law or agreed to in writing, software
9
+ * distributed under the License is distributed on an "AS IS" BASIS,
10
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ * See the License for the specific language governing permissions and
12
+ * limitations under the License.
13
+ *
14
+ */
15
+ import React from 'react';
16
+
17
+ import { useTranslations } from 'next-intl';
18
+ import { connectField, filterDOMProps, joinName, useField } from 'uniforms';
19
+
20
+ import { EuiIcon, EuiText } from '@elastic/eui';
21
+
22
+ import { useOrchestratorTheme } from '../../../hooks';
23
+ import { FieldProps } from './types';
24
+
25
+ export type ListDelFieldProps = FieldProps<
26
+ null,
27
+ { initialCount?: number; itemProps?: object; outerList?: boolean }
28
+ >;
29
+
30
+ // onChange prop not used on purpose
31
+ function ListDel({
32
+ disabled,
33
+ name,
34
+ readOnly,
35
+ id,
36
+ outerList = false,
37
+ ...props
38
+ }: ListDelFieldProps) {
39
+ const { theme } = useOrchestratorTheme();
40
+ const t = useTranslations('pydanticForms.fields');
41
+
42
+ const nameParts = joinName(null, name);
43
+ const nameIndex = +nameParts[nameParts.length - 1];
44
+ const parentName = joinName(nameParts.slice(0, -1));
45
+ const parent = useField<{ minCount?: number }, unknown[]>(
46
+ parentName,
47
+ {},
48
+ { absoluteName: true },
49
+ )[0];
50
+
51
+ const limitNotReached =
52
+ !disabled && !(parent.minCount! >= parent.value!.length);
53
+
54
+ function onAction(event: React.KeyboardEvent | React.MouseEvent) {
55
+ if (
56
+ limitNotReached &&
57
+ !readOnly &&
58
+ (!('key' in event) || event.key === 'Enter')
59
+ ) {
60
+ const value = parent.value!.slice();
61
+ value.splice(nameIndex, 1);
62
+ parent.onChange(value);
63
+ }
64
+ }
65
+
66
+ return (
67
+ <div
68
+ {...filterDOMProps(props)}
69
+ className="del-item"
70
+ id={`${id}.remove`}
71
+ onClick={onAction}
72
+ onKeyDown={onAction}
73
+ role="button"
74
+ tabIndex={0}
75
+ >
76
+ <EuiIcon
77
+ type="minus"
78
+ size="xxl"
79
+ color={
80
+ !limitNotReached || disabled
81
+ ? theme.colors.disabled
82
+ : theme.colors.danger
83
+ }
84
+ />
85
+ <label>
86
+ {outerList && <EuiText>{t(`${parentName}_del`)}</EuiText>}
87
+ </label>
88
+ </div>
89
+ );
90
+ }
91
+
92
+ export const ListDelField = connectField(ListDel, {
93
+ initialValue: false,
94
+ kind: 'leaf',
95
+ });
@@ -0,0 +1,113 @@
1
+ /*
2
+ * Copyright 2019-2023 SURF.
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ *
8
+ * Unless required by applicable law or agreed to in writing, software
9
+ * distributed under the License is distributed on an "AS IS" BASIS,
10
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ * See the License for the specific language governing permissions and
12
+ * limitations under the License.
13
+ *
14
+ */
15
+ import React, { Children, cloneElement, isValidElement } from 'react';
16
+
17
+ import range from 'lodash/range';
18
+ import { connectField, filterDOMProps, joinName, useField } from 'uniforms';
19
+
20
+ import { EuiFlexItem, EuiFormRow, EuiText } from '@elastic/eui';
21
+
22
+ import { ListAddField } from './ListAddField';
23
+ import { ListItemField } from './ListItemField';
24
+ import { listFieldStyling } from './listFieldStyling';
25
+ import { FieldProps } from './types';
26
+
27
+ declare module 'uniforms' {
28
+ interface FilterDOMProps {
29
+ items: never;
30
+ uniqueItems: never;
31
+ outerList: never;
32
+ }
33
+ }
34
+ filterDOMProps.register('minCount');
35
+ filterDOMProps.register('maxCount');
36
+ filterDOMProps.register('items');
37
+ filterDOMProps.register('uniqueItems');
38
+ filterDOMProps.register('outerList');
39
+
40
+ export type ListFieldProps = FieldProps<
41
+ unknown[],
42
+ { initialCount?: number; itemProps?: object; uniqueItems?: boolean },
43
+ null,
44
+ HTMLUListElement
45
+ >;
46
+
47
+ function List({
48
+ disabled,
49
+ children = <ListItemField name="$" disabled={disabled} outerList={false} />,
50
+ initialCount = 1,
51
+ itemProps,
52
+ label,
53
+ description,
54
+ name,
55
+ value,
56
+ error,
57
+ showInlineError,
58
+ errorMessage,
59
+ ...props
60
+ }: ListFieldProps) {
61
+ const child = useField(joinName(name, '$'), {}, { absoluteName: true })[0];
62
+ const hasListAsChild = child.fieldType === Array;
63
+
64
+ return (
65
+ <EuiFlexItem css={listFieldStyling}>
66
+ <section
67
+ {...filterDOMProps(props)}
68
+ className={`list-field${hasListAsChild ? ' outer-list' : ''}`}
69
+ >
70
+ <EuiFormRow
71
+ label={label}
72
+ labelAppend={<EuiText size="m">{description}</EuiText>}
73
+ error={showInlineError ? errorMessage : false}
74
+ isInvalid={error}
75
+ id={`formrow-${name}`}
76
+ fullWidth
77
+ >
78
+ <></>
79
+ </EuiFormRow>
80
+
81
+ <ul>
82
+ {range(Math.max(value?.length ?? 0, initialCount ?? 0)).map(
83
+ (itemIndex) =>
84
+ Children.map(children, (child, childIndex) =>
85
+ isValidElement(child)
86
+ ? cloneElement(child, {
87
+ key: `${itemIndex}-${childIndex}`,
88
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
89
+ // @ts-ignore
90
+ name: child.props.name?.replace(
91
+ '$',
92
+ itemIndex.toString(),
93
+ ),
94
+ outerList: hasListAsChild,
95
+ ...itemProps,
96
+ })
97
+ : child,
98
+ ),
99
+ )}
100
+
101
+ <ListAddField
102
+ initialCount={initialCount}
103
+ name="$"
104
+ disabled={disabled}
105
+ outerList={hasListAsChild}
106
+ />
107
+ </ul>
108
+ </section>
109
+ </EuiFlexItem>
110
+ );
111
+ }
112
+
113
+ export const ListField = connectField(List);
@@ -0,0 +1,40 @@
1
+ /*
2
+ * Copyright 2019-2023 SURF.
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ *
8
+ * Unless required by applicable law or agreed to in writing, software
9
+ * distributed under the License is distributed on an "AS IS" BASIS,
10
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ * See the License for the specific language governing permissions and
12
+ * limitations under the License.
13
+ *
14
+ */
15
+ import React, { ReactNode } from 'react';
16
+
17
+ import { connectField } from 'uniforms';
18
+ import { AutoField } from 'uniforms-unstyled';
19
+
20
+ import { ListDelField } from './ListDelField';
21
+
22
+ export type ListItemFieldProps = {
23
+ children?: ReactNode;
24
+ name: string;
25
+ outerList?: boolean;
26
+ };
27
+
28
+ function ListItem({
29
+ children = <AutoField label={null} name="" />,
30
+ outerList = false,
31
+ }: ListItemFieldProps) {
32
+ return (
33
+ <li>
34
+ {children}
35
+ <ListDelField name="" outerList={outerList} />
36
+ </li>
37
+ );
38
+ }
39
+
40
+ export const ListItemField = connectField(ListItem, { initialValue: false });
@@ -0,0 +1,92 @@
1
+ /*
2
+ * Copyright 2019-2023 SURF.
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ *
8
+ * Unless required by applicable law or agreed to in writing, software
9
+ * distributed under the License is distributed on an "AS IS" BASIS,
10
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ * See the License for the specific language governing permissions and
12
+ * limitations under the License.
13
+ *
14
+ */
15
+
16
+ /* NOTE: This component is only needed to avoid the circular import that started to be a problem
17
+ after the upgrade to react-script 5.0. The original SelectField would import itself to handle the list:
18
+ that seems to be impossible with the new webpack.
19
+ */
20
+ import React from 'react';
21
+
22
+ import { get } from 'lodash';
23
+ import { connectField, joinName, useField, useForm } from 'uniforms';
24
+
25
+ import { ListField, ListFieldProps } from './ListField';
26
+ import { ListItemField } from './ListItemField';
27
+ // Avoid circular deps
28
+ import { SelectField } from './SelectField';
29
+ import { FieldProps } from './types';
30
+
31
+ export type ListSelectFieldProps = FieldProps<
32
+ string | string[],
33
+ { allowedValues?: string[]; transform?(value: string): string }
34
+ >;
35
+
36
+ function ListSelect({
37
+ allowedValues = [],
38
+ fieldType,
39
+ name,
40
+ transform,
41
+ }: ListSelectFieldProps) {
42
+ const nameArray = joinName(null, name);
43
+ let parentName = joinName(nameArray.slice(0, -1));
44
+
45
+ // We can't call useField conditionally so we call it for ourselves if there is no parent
46
+ if (parentName === '') {
47
+ parentName = name;
48
+ }
49
+ const parent = useField(parentName, {}, { absoluteName: true })[0];
50
+ const { model } = useForm();
51
+
52
+ if (parentName !== name) {
53
+ if (
54
+ parent.fieldType === Array &&
55
+ (parent as ListFieldProps).uniqueItems
56
+ ) {
57
+ const allValues: string[] = get(model, parentName, []);
58
+ const chosenValues = allValues.filter(
59
+ (_item, index) =>
60
+ index.toString() !== nameArray[nameArray.length - 1],
61
+ );
62
+
63
+ allowedValues = allowedValues.filter(
64
+ (value) => !chosenValues.includes(value),
65
+ );
66
+ }
67
+ }
68
+
69
+ if (fieldType === Array) {
70
+ return (
71
+ <ListField name={name}>
72
+ <ListItemField name="$">
73
+ <SelectField
74
+ name=""
75
+ transform={transform}
76
+ allowedValues={allowedValues}
77
+ />
78
+ </ListItemField>
79
+ </ListField>
80
+ );
81
+ } else {
82
+ return (
83
+ <SelectField
84
+ name=""
85
+ transform={transform}
86
+ allowedValues={allowedValues}
87
+ />
88
+ );
89
+ }
90
+ }
91
+
92
+ export const ListSelectField = connectField(ListSelect, { kind: 'leaf' });
@@ -0,0 +1,66 @@
1
+ /*
2
+ * Copyright 2019-2023 SURF.
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ *
8
+ * Unless required by applicable law or agreed to in writing, software
9
+ * distributed under the License is distributed on an "AS IS" BASIS,
10
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ * See the License for the specific language governing permissions and
12
+ * limitations under the License.
13
+ *
14
+ */
15
+ import React, { useEffect, useState } from 'react';
16
+
17
+ import { useTranslations } from 'next-intl';
18
+ import { connectField, filterDOMProps } from 'uniforms';
19
+
20
+ import { useAxiosApiClient } from '../useAxiosApiClient';
21
+ import { SelectField, SelectFieldProps } from './SelectField';
22
+
23
+ export type LocationCodeFieldProps = { locationCodes?: string[] } & Omit<
24
+ SelectFieldProps,
25
+ 'placeholder' | 'allowedValues'
26
+ >;
27
+
28
+ declare module 'uniforms' {
29
+ interface FilterDOMProps {
30
+ locationCodes: never;
31
+ }
32
+ }
33
+
34
+ filterDOMProps.register('locationCodes');
35
+
36
+ function LocationCode({ locationCodes, ...props }: LocationCodeFieldProps) {
37
+ const t = useTranslations('pydanticForms');
38
+ const [codes, setCodes] = useState<string[]>(locationCodes ?? []);
39
+ const axiosApiClient = useAxiosApiClient();
40
+
41
+ useEffect(() => {
42
+ axiosApiClient
43
+ .axiosFetch<string[]>('surf/crm/location_codes', {}, {}, false)
44
+ .then((result) => {
45
+ if (result) {
46
+ setCodes(result);
47
+ }
48
+ })
49
+ .catch((error) => {
50
+ if (error) {
51
+ console.error(error);
52
+ }
53
+ setCodes([]);
54
+ });
55
+ }, [axiosApiClient]);
56
+
57
+ return (
58
+ <SelectField
59
+ {...props}
60
+ allowedValues={codes}
61
+ placeholder={t('widgets.locationCode.placeholder')}
62
+ />
63
+ );
64
+ }
65
+
66
+ export const LocationCodeField = connectField(LocationCode, { kind: 'leaf' });
@@ -0,0 +1,68 @@
1
+ /*
2
+ * Copyright 2019-2023 SURF.
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ *
8
+ * Unless required by applicable law or agreed to in writing, software
9
+ * distributed under the License is distributed on an "AS IS" BASIS,
10
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ * See the License for the specific language governing permissions and
12
+ * limitations under the License.
13
+ *
14
+ */
15
+ import React from 'react';
16
+
17
+ import { connectField, filterDOMProps } from 'uniforms';
18
+
19
+ import { EuiFormRow, EuiText, EuiTextArea } from '@elastic/eui';
20
+
21
+ import { FieldProps } from '../../../types/forms';
22
+
23
+ export type LongTextFieldProps = FieldProps<
24
+ string,
25
+ object,
26
+ HTMLTextAreaElement
27
+ >;
28
+
29
+ function LongText({
30
+ disabled,
31
+ id,
32
+ label,
33
+ description,
34
+ name,
35
+ onChange,
36
+ placeholder,
37
+ readOnly,
38
+ value,
39
+ error,
40
+ errorMessage,
41
+ ...props
42
+ }: LongTextFieldProps) {
43
+ return (
44
+ <section {...filterDOMProps(props)}>
45
+ <EuiFormRow
46
+ label={label}
47
+ labelAppend={<EuiText size="m">{description}</EuiText>}
48
+ error={errorMessage}
49
+ isInvalid={error}
50
+ id={id}
51
+ fullWidth
52
+ >
53
+ <EuiTextArea
54
+ disabled={disabled}
55
+ name={name}
56
+ isInvalid={error}
57
+ onChange={(event) => onChange(event.target.value)}
58
+ placeholder={placeholder}
59
+ readOnly={readOnly}
60
+ value={value ?? ''}
61
+ fullWidth
62
+ />
63
+ </EuiFormRow>
64
+ </section>
65
+ );
66
+ }
67
+
68
+ export const LongTextField = connectField(LongText, { kind: 'leaf' });
@@ -0,0 +1,107 @@
1
+ /*
2
+ * Copyright 2019-2023 SURF.
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ *
8
+ * Unless required by applicable law or agreed to in writing, software
9
+ * distributed under the License is distributed on an "AS IS" BASIS,
10
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ * See the License for the specific language governing permissions and
12
+ * limitations under the License.
13
+ *
14
+ */
15
+ import React from 'react';
16
+
17
+ import { connectField, filterDOMProps, joinName } from 'uniforms';
18
+ import { AutoField } from 'uniforms-unstyled';
19
+
20
+ import {
21
+ EuiDescribedFormGroup,
22
+ EuiFlexGroup,
23
+ EuiFlexItem,
24
+ EuiText,
25
+ } from '@elastic/eui';
26
+
27
+ import { FieldProps } from './types';
28
+
29
+ export type NestFieldProps = FieldProps<
30
+ null,
31
+ { fields?: unknown[]; itemProps?: object }
32
+ >;
33
+
34
+ declare module 'uniforms' {
35
+ interface FilterDOMProps {
36
+ properties: never;
37
+ wrap: never;
38
+ ref: never;
39
+ }
40
+ }
41
+ filterDOMProps.register('properties', 'wrap');
42
+
43
+ function Nest({
44
+ children,
45
+ fields,
46
+ itemProps,
47
+ label,
48
+ description,
49
+ name,
50
+ className = '',
51
+ ...props
52
+ }: NestFieldProps) {
53
+ const nameArray = joinName(null, name);
54
+ const lastNamePart = nameArray[nameArray.length - 1];
55
+ const isInList = !isNaN(parseInt(lastNamePart));
56
+ const itemIndex = isInList ? parseInt(lastNamePart) : 0;
57
+
58
+ if (isInList) {
59
+ return (
60
+ <EuiFlexGroup
61
+ {...filterDOMProps(props)}
62
+ className={`${className} nest-field`}
63
+ >
64
+ {label && (
65
+ <>
66
+ <label className="euiFormLabel euiFormRow__label">
67
+ {label}
68
+ </label>
69
+ <EuiText size="m">{description}</EuiText>
70
+ </>
71
+ )}
72
+
73
+ {children ||
74
+ fields?.map((field) => (
75
+ <EuiFlexItem key={field}>
76
+ <AutoField
77
+ name={field}
78
+ {...itemProps}
79
+ label={itemIndex === 0 ? undefined : false}
80
+ />
81
+ </EuiFlexItem>
82
+ ))}
83
+ </EuiFlexGroup>
84
+ );
85
+ } else {
86
+ return (
87
+ <EuiDescribedFormGroup
88
+ {...filterDOMProps(props)}
89
+ title={<span>{label}</span>}
90
+ description={description}
91
+ className={`${className} nest-field`}
92
+ >
93
+ {children ||
94
+ fields?.map((field) => (
95
+ <AutoField
96
+ key={field}
97
+ name={field}
98
+ {...itemProps}
99
+ label={itemIndex === 0 ? undefined : false}
100
+ />
101
+ ))}
102
+ </EuiDescribedFormGroup>
103
+ );
104
+ }
105
+ }
106
+
107
+ export const NestField = connectField(Nest);