@flightctl/ui-components 0.5.1 → 0.6.0-rc2

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 (456) hide show
  1. package/dist/src/components/DetailsPage/DetailsPage.d.ts +3 -2
  2. package/dist/src/components/DetailsPage/DetailsPage.d.ts.map +1 -1
  3. package/dist/src/components/DetailsPage/DetailsPage.js +2 -2
  4. package/dist/src/components/DetailsPage/DetailsPage.js.map +1 -1
  5. package/dist/src/components/DetailsPage/Tables/ApplicationsTable.d.ts.map +1 -1
  6. package/dist/src/components/DetailsPage/Tables/ApplicationsTable.js +5 -3
  7. package/dist/src/components/DetailsPage/Tables/ApplicationsTable.js.map +1 -1
  8. package/dist/src/components/Device/AddDeviceModal/AddDeviceModal.d.ts.map +1 -1
  9. package/dist/src/components/Device/AddDeviceModal/AddDeviceModal.js +4 -5
  10. package/dist/src/components/Device/AddDeviceModal/AddDeviceModal.js.map +1 -1
  11. package/dist/src/components/Device/DeviceDetails/DeviceAliasEdit.d.ts +10 -0
  12. package/dist/src/components/Device/DeviceDetails/DeviceAliasEdit.d.ts.map +1 -0
  13. package/dist/src/components/Device/DeviceDetails/DeviceAliasEdit.js +110 -0
  14. package/dist/src/components/Device/DeviceDetails/DeviceAliasEdit.js.map +1 -0
  15. package/dist/src/components/Device/DeviceDetails/DeviceApplications.d.ts.map +1 -1
  16. package/dist/src/components/Device/DeviceDetails/DeviceApplications.js +7 -1
  17. package/dist/src/components/Device/DeviceDetails/DeviceApplications.js.map +1 -1
  18. package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.d.ts.map +1 -1
  19. package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.js +9 -6
  20. package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.js.map +1 -1
  21. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.d.ts.map +1 -1
  22. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.js +1 -1
  23. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.js.map +1 -1
  24. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.d.ts.map +1 -1
  25. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.js +3 -3
  26. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.js.map +1 -1
  27. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTabContent/SystemResourcesContent.js +3 -3
  28. package/dist/src/components/Device/DeviceDetails/TerminalTab.d.ts.map +1 -1
  29. package/dist/src/components/Device/DeviceDetails/TerminalTab.js +34 -3
  30. package/dist/src/components/Device/DeviceDetails/TerminalTab.js.map +1 -1
  31. package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.d.ts.map +1 -1
  32. package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.js +1 -1
  33. package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.js.map +1 -1
  34. package/dist/src/components/Device/DevicesPage/DeviceToolbarFilters.d.ts.map +1 -1
  35. package/dist/src/components/Device/DevicesPage/DeviceToolbarFilters.js +35 -30
  36. package/dist/src/components/Device/DevicesPage/DeviceToolbarFilters.js.map +1 -1
  37. package/dist/src/components/Device/DevicesPage/DevicesPage.d.ts.map +1 -1
  38. package/dist/src/components/Device/DevicesPage/DevicesPage.js +11 -2
  39. package/dist/src/components/Device/DevicesPage/DevicesPage.js.map +1 -1
  40. package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.d.ts.map +1 -1
  41. package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.js +14 -11
  42. package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.js.map +1 -1
  43. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizard.d.ts.map +1 -1
  44. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizard.js +9 -2
  45. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizard.js.map +1 -1
  46. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardFooter.d.ts.map +1 -1
  47. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardFooter.js +21 -6
  48. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardFooter.js.map +1 -1
  49. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardNav.d.ts.map +1 -1
  50. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardNav.js +11 -4
  51. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardNav.js.map +1 -1
  52. package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.d.ts +6 -5
  53. package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.d.ts.map +1 -1
  54. package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.js +123 -10
  55. package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.js.map +1 -1
  56. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.d.ts +8 -0
  57. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.d.ts.map +1 -0
  58. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.js +19 -0
  59. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.js.map +1 -0
  60. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.d.ts +8 -0
  61. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.d.ts.map +1 -0
  62. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.js +49 -0
  63. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.js.map +1 -0
  64. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.d.ts.map +1 -1
  65. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.js +52 -19
  66. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.js.map +1 -1
  67. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.d.ts.map +1 -1
  68. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.js +13 -16
  69. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.js.map +1 -1
  70. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigK8sSecretTemplateForm.d.ts.map +1 -1
  71. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigK8sSecretTemplateForm.js.map +1 -1
  72. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.d.ts.map +1 -1
  73. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.js +5 -5
  74. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.js.map +1 -1
  75. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.d.ts.map +1 -1
  76. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.js +2 -2
  77. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.js.map +1 -1
  78. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.d.ts +1 -1
  79. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.d.ts.map +1 -1
  80. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.js +16 -16
  81. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.js.map +1 -1
  82. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.d.ts +8 -0
  83. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.d.ts.map +1 -0
  84. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.js +58 -0
  85. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.js.map +1 -0
  86. package/dist/src/components/Device/EditDeviceWizard/steps/GeneralInfoStep.d.ts +1 -1
  87. package/dist/src/components/Device/EditDeviceWizard/steps/GeneralInfoStep.d.ts.map +1 -1
  88. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewApplications.d.ts +2 -2
  89. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewApplications.d.ts.map +1 -1
  90. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewApplications.js +17 -12
  91. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewApplications.js.map +1 -1
  92. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewDeviceStep.js +1 -1
  93. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewTrackedSystemdServices.d.ts +2 -4
  94. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewTrackedSystemdServices.d.ts.map +1 -1
  95. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewTrackedSystemdServices.js.map +1 -1
  96. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewUpdatePolicy.d.ts +1 -1
  97. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewUpdatePolicy.d.ts.map +1 -1
  98. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewUpdatePolicy.js.map +1 -1
  99. package/dist/src/components/Device/EditDeviceWizard/utils.d.ts +29 -3
  100. package/dist/src/components/Device/EditDeviceWizard/utils.d.ts.map +1 -1
  101. package/dist/src/components/Device/EditDeviceWizard/utils.js +8 -7
  102. package/dist/src/components/Device/EditDeviceWizard/utils.js.map +1 -1
  103. package/dist/src/components/Device/SystemdUnitsModal/SystemdUnitsModal.d.ts.map +1 -1
  104. package/dist/src/components/Device/SystemdUnitsModal/SystemdUnitsModal.js.map +1 -1
  105. package/dist/src/components/Device/SystemdUnitsModal/TrackSystemdUnitsForm.d.ts +1 -4
  106. package/dist/src/components/Device/SystemdUnitsModal/TrackSystemdUnitsForm.d.ts.map +1 -1
  107. package/dist/src/components/Device/SystemdUnitsModal/TrackSystemdUnitsForm.js.map +1 -1
  108. package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.d.ts.map +1 -1
  109. package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.js +5 -5
  110. package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.js.map +1 -1
  111. package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.d.ts +2 -1
  112. package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.d.ts.map +1 -1
  113. package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.js +19 -11
  114. package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.js.map +1 -1
  115. package/dist/src/components/EnrollmentRequest/EnrollmentRequestTableRow.d.ts.map +1 -1
  116. package/dist/src/components/EnrollmentRequest/EnrollmentRequestTableRow.js +5 -1
  117. package/dist/src/components/EnrollmentRequest/EnrollmentRequestTableRow.js.map +1 -1
  118. package/dist/src/components/EnrollmentRequest/useEnrollmentRequests.d.ts +2 -1
  119. package/dist/src/components/EnrollmentRequest/useEnrollmentRequests.d.ts.map +1 -1
  120. package/dist/src/components/EnrollmentRequest/useEnrollmentRequests.js +8 -4
  121. package/dist/src/components/EnrollmentRequest/useEnrollmentRequests.js.map +1 -1
  122. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizard.d.ts.map +1 -1
  123. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizard.js +2 -2
  124. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizard.js.map +1 -1
  125. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.d.ts.map +1 -1
  126. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.js +8 -1
  127. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.js.map +1 -1
  128. package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.d.ts +19 -2
  129. package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.d.ts.map +1 -1
  130. package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.js +53 -18
  131. package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.js.map +1 -1
  132. package/dist/src/components/Fleet/CreateFleet/steps/DeviceLabelSelector.js +1 -1
  133. package/dist/src/components/Fleet/CreateFleet/steps/DeviceLabelSelector.js.map +1 -1
  134. package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.d.ts +1 -1
  135. package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.d.ts.map +1 -1
  136. package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.js +1 -2
  137. package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.js.map +1 -1
  138. package/dist/src/components/Fleet/CreateFleet/steps/ReviewStep.js +1 -1
  139. package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.d.ts +1 -1
  140. package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.d.ts.map +1 -1
  141. package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.js +9 -0
  142. package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.js.map +1 -1
  143. package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.d.ts +1 -1
  144. package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.d.ts.map +1 -1
  145. package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.js +22 -9
  146. package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.js.map +1 -1
  147. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.d.ts.map +1 -1
  148. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.js +4 -4
  149. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.js.map +1 -1
  150. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.d.ts.map +1 -1
  151. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.js +5 -5
  152. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.js.map +1 -1
  153. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.css +3 -0
  154. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.d.ts +9 -0
  155. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.d.ts.map +1 -0
  156. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.js +127 -0
  157. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.js.map +1 -0
  158. package/dist/src/components/Fleet/CreateFleet/utils.d.ts +1 -1
  159. package/dist/src/components/Fleet/CreateFleet/utils.d.ts.map +1 -1
  160. package/dist/src/components/Fleet/CreateFleet/utils.js +13 -4
  161. package/dist/src/components/Fleet/CreateFleet/utils.js.map +1 -1
  162. package/dist/src/components/Fleet/FleetsPage.d.ts.map +1 -1
  163. package/dist/src/components/Fleet/FleetsPage.js +8 -12
  164. package/dist/src/components/Fleet/FleetsPage.js.map +1 -1
  165. package/dist/src/components/Fleet/ImportFleetWizard/steps/ResourceSyncStep.js +1 -1
  166. package/dist/src/components/Fleet/ImportFleetWizard/steps/ResourceSyncStep.js.map +1 -1
  167. package/dist/src/components/ListPage/ListPage.d.ts +1 -0
  168. package/dist/src/components/ListPage/ListPage.d.ts.map +1 -1
  169. package/dist/src/components/ListPage/ListPage.js +3 -3
  170. package/dist/src/components/ListPage/ListPage.js.map +1 -1
  171. package/dist/src/components/Masthead/CommandLineToolsPage.d.ts +4 -0
  172. package/dist/src/components/Masthead/CommandLineToolsPage.d.ts.map +1 -0
  173. package/dist/src/components/Masthead/CommandLineToolsPage.js +90 -0
  174. package/dist/src/components/Masthead/CommandLineToolsPage.js.map +1 -0
  175. package/dist/src/components/Masthead/UserPreferencesModal.d.ts.map +1 -0
  176. package/dist/src/components/Masthead/UserPreferencesModal.js.map +1 -0
  177. package/dist/src/components/Masthead/UserPreferencesProvider.d.ts.map +1 -0
  178. package/dist/src/components/Masthead/UserPreferencesProvider.js.map +1 -0
  179. package/dist/src/components/OverviewPage/Cards/Status/StatusCard.js +3 -3
  180. package/dist/src/components/OverviewPage/Cards/Status/StatusCard.js.map +1 -1
  181. package/dist/src/components/OverviewPage/Cards/Tasks/TasksCard.d.ts +4 -0
  182. package/dist/src/components/OverviewPage/Cards/Tasks/TasksCard.d.ts.map +1 -0
  183. package/dist/src/components/OverviewPage/Cards/{ToDo/ToDoCard.js → Tasks/TasksCard.js} +4 -4
  184. package/dist/src/components/OverviewPage/Cards/Tasks/TasksCard.js.map +1 -0
  185. package/dist/src/components/OverviewPage/Overview.js +2 -2
  186. package/dist/src/components/OverviewPage/Overview.js.map +1 -1
  187. package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.d.ts.map +1 -1
  188. package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.js +6 -5
  189. package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.js.map +1 -1
  190. package/dist/src/components/Repository/CreateRepository/CreateResourceSyncsForm.d.ts.map +1 -1
  191. package/dist/src/components/Repository/CreateRepository/CreateResourceSyncsForm.js +3 -3
  192. package/dist/src/components/Repository/CreateRepository/CreateResourceSyncsForm.js.map +1 -1
  193. package/dist/src/components/Repository/CreateRepository/utils.d.ts.map +1 -1
  194. package/dist/src/components/Repository/CreateRepository/utils.js +4 -1
  195. package/dist/src/components/Repository/CreateRepository/utils.js.map +1 -1
  196. package/dist/src/components/Repository/RepositoryDetails/RepositoryResourceSyncsCard.d.ts.map +1 -1
  197. package/dist/src/components/Repository/RepositoryDetails/RepositoryResourceSyncsCard.js +1 -1
  198. package/dist/src/components/Repository/RepositoryDetails/RepositoryResourceSyncsCard.js.map +1 -1
  199. package/dist/src/components/Repository/RepositoryList.d.ts.map +1 -1
  200. package/dist/src/components/Repository/RepositoryList.js +3 -11
  201. package/dist/src/components/Repository/RepositoryList.js.map +1 -1
  202. package/dist/src/components/ResourceSync/RepositoryResourceSyncList.d.ts.map +1 -1
  203. package/dist/src/components/ResourceSync/RepositoryResourceSyncList.js +3 -6
  204. package/dist/src/components/ResourceSync/RepositoryResourceSyncList.js.map +1 -1
  205. package/dist/src/components/Status/DeviceResourceStatus.js +3 -3
  206. package/dist/src/components/Status/utils.d.ts.map +1 -1
  207. package/dist/src/components/Status/utils.js +3 -3
  208. package/dist/src/components/Status/utils.js.map +1 -1
  209. package/dist/src/components/Table/Table.d.ts +2 -1
  210. package/dist/src/components/Table/Table.d.ts.map +1 -1
  211. package/dist/src/components/Table/Table.js +9 -5
  212. package/dist/src/components/Table/Table.js.map +1 -1
  213. package/dist/src/components/Table/TablePagination.d.ts.map +1 -1
  214. package/dist/src/components/Table/TablePagination.js +1 -1
  215. package/dist/src/components/Table/TablePagination.js.map +1 -1
  216. package/dist/src/components/Terminal/Terminal.d.ts +1 -1
  217. package/dist/src/components/Terminal/Terminal.d.ts.map +1 -1
  218. package/dist/src/components/Terminal/Terminal.js +10 -3
  219. package/dist/src/components/Terminal/Terminal.js.map +1 -1
  220. package/dist/src/components/charts/DonutChart.js +1 -1
  221. package/dist/src/components/charts/DonutChart.js.map +1 -1
  222. package/dist/src/components/common/LeaveFormConfirmation.js +1 -1
  223. package/dist/src/components/common/LeaveFormConfirmation.js.map +1 -1
  224. package/dist/src/components/common/WithHelperText.d.ts +10 -5
  225. package/dist/src/components/common/WithHelperText.d.ts.map +1 -1
  226. package/dist/src/components/common/WithHelperText.js +13 -8
  227. package/dist/src/components/common/WithHelperText.js.map +1 -1
  228. package/dist/src/components/form/CheckboxField.d.ts +6 -3
  229. package/dist/src/components/form/CheckboxField.d.ts.map +1 -1
  230. package/dist/src/components/form/CheckboxField.js +20 -1
  231. package/dist/src/components/form/CheckboxField.js.map +1 -1
  232. package/dist/src/components/form/FormSelectTypeahead.d.ts +3 -3
  233. package/dist/src/components/form/FormSelectTypeahead.d.ts.map +1 -1
  234. package/dist/src/components/form/FormSelectTypeahead.js +43 -53
  235. package/dist/src/components/form/FormSelectTypeahead.js.map +1 -1
  236. package/dist/src/components/form/RichValidationTextField.d.ts +1 -1
  237. package/dist/src/components/form/RichValidationTextField.d.ts.map +1 -1
  238. package/dist/src/components/form/RichValidationTextField.js +8 -4
  239. package/dist/src/components/form/RichValidationTextField.js.map +1 -1
  240. package/dist/src/components/form/validations.d.ts +44 -4
  241. package/dist/src/components/form/validations.d.ts.map +1 -1
  242. package/dist/src/components/form/validations.js +148 -25
  243. package/dist/src/components/form/validations.js.map +1 -1
  244. package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceForm.js +5 -3
  245. package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceForm.js.map +1 -1
  246. package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.d.ts.map +1 -1
  247. package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.js +3 -2
  248. package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.js.map +1 -1
  249. package/dist/src/components/modals/EditLabelsModal/EditLabelsForm.d.ts.map +1 -1
  250. package/dist/src/components/modals/EditLabelsModal/EditLabelsForm.js +7 -12
  251. package/dist/src/components/modals/EditLabelsModal/EditLabelsForm.js.map +1 -1
  252. package/dist/src/components/modals/massModals/MassDecommissionDeviceModal/MassDecommissionDeviceModal.js +4 -4
  253. package/dist/src/components/modals/massModals/MassDecommissionDeviceModal/MassDecommissionDeviceModal.js.map +1 -1
  254. package/dist/src/components/modals/massModals/MassDeleteDeviceModal/MassDeleteDeviceModal.js +4 -4
  255. package/dist/src/components/modals/massModals/MassDeleteDeviceModal/MassDeleteDeviceModal.js.map +1 -1
  256. package/dist/src/components/modals/massModals/MassDeleteFleetModal/MassDeleteFleetModal.js +2 -2
  257. package/dist/src/components/modals/massModals/MassDeleteFleetModal/MassDeleteFleetModal.js.map +1 -1
  258. package/dist/src/components/modals/massModals/MassDeleteRepositoryModal/MassDeleteRepositoryModal.js +2 -2
  259. package/dist/src/components/modals/massModals/MassDeleteRepositoryModal/MassDeleteRepositoryModal.js.map +1 -1
  260. package/dist/src/hooks/timeZones.d.ts +3 -0
  261. package/dist/src/hooks/timeZones.d.ts.map +1 -0
  262. package/dist/src/hooks/timeZones.js +607 -0
  263. package/dist/src/hooks/timeZones.js.map +1 -0
  264. package/dist/src/hooks/useAppContext.d.ts +14 -8
  265. package/dist/src/hooks/useAppContext.d.ts.map +1 -1
  266. package/dist/src/hooks/useAppContext.js +13 -6
  267. package/dist/src/hooks/useAppContext.js.map +1 -1
  268. package/dist/src/hooks/useFetch.d.ts +3 -5
  269. package/dist/src/hooks/useFetch.d.ts.map +1 -1
  270. package/dist/src/hooks/useFetch.js +3 -2
  271. package/dist/src/hooks/useFetch.js.map +1 -1
  272. package/dist/src/hooks/useNavigate.d.ts +2 -1
  273. package/dist/src/hooks/useNavigate.d.ts.map +1 -1
  274. package/dist/src/hooks/useNavigate.js +1 -0
  275. package/dist/src/hooks/useNavigate.js.map +1 -1
  276. package/dist/src/hooks/useTimeZones.d.ts +4 -0
  277. package/dist/src/hooks/useTimeZones.d.ts.map +1 -0
  278. package/dist/src/hooks/useTimeZones.js +22 -0
  279. package/dist/src/hooks/useTimeZones.js.map +1 -0
  280. package/dist/src/hooks/useWebSocket.d.ts +6 -2
  281. package/dist/src/hooks/useWebSocket.d.ts.map +1 -1
  282. package/dist/src/hooks/useWebSocket.js +22 -7
  283. package/dist/src/hooks/useWebSocket.js.map +1 -1
  284. package/dist/src/links.d.ts +3 -0
  285. package/dist/src/links.d.ts.map +1 -1
  286. package/dist/src/links.js +10 -3
  287. package/dist/src/links.js.map +1 -1
  288. package/dist/src/types/deviceSpec.d.ts +93 -5
  289. package/dist/src/types/deviceSpec.d.ts.map +1 -1
  290. package/dist/src/types/deviceSpec.js +28 -2
  291. package/dist/src/types/deviceSpec.js.map +1 -1
  292. package/dist/src/types/extraTypes.d.ts +19 -1
  293. package/dist/src/types/extraTypes.d.ts.map +1 -1
  294. package/dist/src/types/extraTypes.js.map +1 -1
  295. package/dist/src/utils/labels.d.ts +1 -0
  296. package/dist/src/utils/labels.d.ts.map +1 -1
  297. package/dist/src/utils/labels.js +9 -2
  298. package/dist/src/utils/labels.js.map +1 -1
  299. package/dist/src/utils/patch.d.ts +13 -5
  300. package/dist/src/utils/patch.d.ts.map +1 -1
  301. package/dist/src/utils/patch.js +115 -71
  302. package/dist/src/utils/patch.js.map +1 -1
  303. package/dist/src/utils/query.d.ts +1 -0
  304. package/dist/src/utils/query.d.ts.map +1 -1
  305. package/dist/src/utils/query.js +10 -3
  306. package/dist/src/utils/query.js.map +1 -1
  307. package/dist/src/utils/search.d.ts +6 -0
  308. package/dist/src/utils/search.d.ts.map +1 -1
  309. package/dist/src/utils/search.js +9 -1
  310. package/dist/src/utils/search.js.map +1 -1
  311. package/dist/src/utils/time.d.ts +31 -0
  312. package/dist/src/utils/time.d.ts.map +1 -0
  313. package/dist/src/utils/time.js +134 -0
  314. package/dist/src/utils/time.js.map +1 -0
  315. package/package.json +1 -4
  316. package/src/components/DetailsPage/DetailsPage.tsx +6 -4
  317. package/src/components/DetailsPage/Tables/ApplicationsTable.tsx +6 -3
  318. package/src/components/Device/AddDeviceModal/AddDeviceModal.tsx +4 -13
  319. package/src/components/Device/DeviceDetails/DeviceAliasEdit.tsx +180 -0
  320. package/src/components/Device/DeviceDetails/DeviceApplications.tsx +8 -1
  321. package/src/components/Device/DeviceDetails/DeviceDetailsPage.tsx +21 -5
  322. package/src/components/Device/DeviceDetails/DeviceDetailsTab.tsx +3 -4
  323. package/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.tsx +7 -10
  324. package/src/components/Device/DeviceDetails/DeviceDetailsTabContent/SystemResourcesContent.tsx +3 -3
  325. package/src/components/Device/DeviceDetails/TerminalTab.tsx +43 -5
  326. package/src/components/Device/DevicesPage/DecommissionedDevicesTable.tsx +2 -1
  327. package/src/components/Device/DevicesPage/DeviceToolbarFilters.tsx +66 -38
  328. package/src/components/Device/DevicesPage/DevicesPage.tsx +11 -2
  329. package/src/components/Device/DevicesPage/EnrolledDevicesTable.tsx +16 -11
  330. package/src/components/Device/EditDeviceWizard/EditDeviceWizard.tsx +11 -2
  331. package/src/components/Device/EditDeviceWizard/EditDeviceWizardFooter.tsx +22 -6
  332. package/src/components/Device/EditDeviceWizard/EditDeviceWizardNav.tsx +15 -2
  333. package/src/components/Device/EditDeviceWizard/deviceSpecUtils.ts +147 -14
  334. package/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.tsx +28 -0
  335. package/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.tsx +94 -0
  336. package/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.tsx +81 -50
  337. package/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.tsx +23 -28
  338. package/src/components/Device/EditDeviceWizard/steps/ConfigK8sSecretTemplateForm.tsx +1 -2
  339. package/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.tsx +18 -39
  340. package/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.tsx +8 -14
  341. package/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.tsx +26 -39
  342. package/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.tsx +88 -0
  343. package/src/components/Device/EditDeviceWizard/steps/GeneralInfoStep.tsx +1 -1
  344. package/src/components/Device/EditDeviceWizard/steps/ReviewApplications.tsx +18 -19
  345. package/src/components/Device/EditDeviceWizard/steps/ReviewDeviceStep.tsx +3 -3
  346. package/src/components/Device/EditDeviceWizard/steps/ReviewTrackedSystemdServices.tsx +2 -2
  347. package/src/components/Device/EditDeviceWizard/steps/ReviewUpdatePolicy.tsx +2 -1
  348. package/src/components/Device/EditDeviceWizard/steps/SystemdUnitsForm.tsx +1 -1
  349. package/src/components/Device/EditDeviceWizard/utils.ts +16 -9
  350. package/src/components/Device/SystemdUnitsModal/SystemdUnitsModal.tsx +7 -6
  351. package/src/components/Device/SystemdUnitsModal/TrackSystemdUnitsForm.tsx +1 -5
  352. package/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.tsx +7 -9
  353. package/src/components/EnrollmentRequest/EnrollmentRequestList.tsx +30 -17
  354. package/src/components/EnrollmentRequest/EnrollmentRequestTableRow.tsx +5 -1
  355. package/src/components/EnrollmentRequest/useEnrollmentRequests.ts +12 -4
  356. package/src/components/Fleet/CreateFleet/CreateFleetWizard.tsx +4 -3
  357. package/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.tsx +9 -2
  358. package/src/components/Fleet/CreateFleet/fleetSpecUtils.ts +51 -17
  359. package/src/components/Fleet/CreateFleet/steps/DeviceLabelSelector.tsx +1 -1
  360. package/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.tsx +2 -13
  361. package/src/components/Fleet/CreateFleet/steps/ReviewStep.tsx +3 -3
  362. package/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.tsx +10 -1
  363. package/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.tsx +49 -16
  364. package/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.tsx +18 -33
  365. package/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.tsx +14 -24
  366. package/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.css +3 -0
  367. package/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.tsx +246 -0
  368. package/src/components/Fleet/CreateFleet/utils.ts +23 -7
  369. package/src/components/Fleet/FleetsPage.tsx +15 -17
  370. package/src/components/Fleet/ImportFleetWizard/steps/ResourceSyncStep.tsx +1 -1
  371. package/src/components/ListPage/ListPage.tsx +7 -4
  372. package/src/components/Masthead/CommandLineToolsPage.tsx +179 -0
  373. package/src/components/OverviewPage/Cards/Status/StatusCard.tsx +6 -6
  374. package/src/components/OverviewPage/Cards/{ToDo/ToDoCard.tsx → Tasks/TasksCard.tsx} +3 -3
  375. package/src/components/OverviewPage/Overview.tsx +2 -2
  376. package/src/components/Repository/CreateRepository/CreateRepositoryForm.tsx +11 -26
  377. package/src/components/Repository/CreateRepository/CreateResourceSyncsForm.tsx +8 -17
  378. package/src/components/Repository/CreateRepository/utils.ts +4 -1
  379. package/src/components/Repository/RepositoryDetails/RepositoryResourceSyncsCard.tsx +3 -4
  380. package/src/components/Repository/RepositoryList.tsx +9 -16
  381. package/src/components/ResourceSync/RepositoryResourceSyncList.tsx +7 -11
  382. package/src/components/Status/DeviceResourceStatus.tsx +4 -4
  383. package/src/components/Status/utils.ts +3 -5
  384. package/src/components/Table/Table.tsx +32 -9
  385. package/src/components/Table/TablePagination.tsx +0 -1
  386. package/src/components/Terminal/Terminal.tsx +10 -4
  387. package/src/components/charts/DonutChart.tsx +2 -2
  388. package/src/components/common/LeaveFormConfirmation.tsx +2 -2
  389. package/src/components/common/WithHelperText.tsx +53 -21
  390. package/src/components/form/CheckboxField.tsx +28 -3
  391. package/src/components/form/FormSelectTypeahead.tsx +53 -80
  392. package/src/components/form/RichValidationTextField.tsx +73 -62
  393. package/src/components/form/validations.ts +207 -28
  394. package/src/components/modals/ApproveDeviceModal/ApproveDeviceForm.tsx +5 -5
  395. package/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.tsx +3 -2
  396. package/src/components/modals/EditLabelsModal/EditLabelsForm.tsx +9 -20
  397. package/src/components/modals/massModals/MassDecommissionDeviceModal/MassDecommissionDeviceModal.tsx +2 -2
  398. package/src/components/modals/massModals/MassDeleteDeviceModal/MassDeleteDeviceModal.tsx +2 -2
  399. package/src/components/modals/massModals/MassDeleteFleetModal/MassDeleteFleetModal.tsx +2 -2
  400. package/src/components/modals/massModals/MassDeleteRepositoryModal/MassDeleteRepositoryModal.tsx +2 -2
  401. package/src/hooks/timeZones.ts +606 -0
  402. package/src/hooks/useAppContext.tsx +20 -10
  403. package/src/hooks/useFetch.ts +3 -2
  404. package/src/hooks/useNavigate.tsx +1 -0
  405. package/src/hooks/useTimeZones.ts +26 -0
  406. package/src/hooks/useWebSocket.ts +29 -7
  407. package/src/links.ts +13 -4
  408. package/src/types/deviceSpec.ts +118 -2
  409. package/src/types/extraTypes.ts +33 -1
  410. package/src/utils/labels.ts +7 -1
  411. package/src/utils/patch.ts +126 -72
  412. package/src/utils/query.ts +13 -4
  413. package/src/utils/search.ts +8 -0
  414. package/src/utils/time.ts +147 -0
  415. package/dist/jest.config.d.ts +0 -12
  416. package/dist/jest.config.d.ts.map +0 -1
  417. package/dist/jest.config.js +0 -24
  418. package/dist/jest.config.js.map +0 -1
  419. package/dist/src/components/DetailsPage/DetailsPage.spec.d.ts +0 -2
  420. package/dist/src/components/DetailsPage/DetailsPage.spec.d.ts.map +0 -1
  421. package/dist/src/components/DetailsPage/DetailsPage.spec.js +0 -81
  422. package/dist/src/components/DetailsPage/DetailsPage.spec.js.map +0 -1
  423. package/dist/src/components/Device/EditDeviceWizard/types.d.ts +0 -23
  424. package/dist/src/components/Device/EditDeviceWizard/types.d.ts.map +0 -1
  425. package/dist/src/components/Device/EditDeviceWizard/types.js +0 -3
  426. package/dist/src/components/Device/EditDeviceWizard/types.js.map +0 -1
  427. package/dist/src/components/Fleet/CreateFleet/types.d.ts +0 -29
  428. package/dist/src/components/Fleet/CreateFleet/types.d.ts.map +0 -1
  429. package/dist/src/components/Fleet/CreateFleet/types.js +0 -9
  430. package/dist/src/components/Fleet/CreateFleet/types.js.map +0 -1
  431. package/dist/src/components/OverviewPage/Cards/ToDo/ToDoCard.d.ts +0 -4
  432. package/dist/src/components/OverviewPage/Cards/ToDo/ToDoCard.d.ts.map +0 -1
  433. package/dist/src/components/OverviewPage/Cards/ToDo/ToDoCard.js.map +0 -1
  434. package/dist/src/components/UserPreferences/UserPreferencesModal.d.ts.map +0 -1
  435. package/dist/src/components/UserPreferences/UserPreferencesModal.js.map +0 -1
  436. package/dist/src/components/UserPreferences/UserPreferencesProvider.d.ts.map +0 -1
  437. package/dist/src/components/UserPreferences/UserPreferencesProvider.js.map +0 -1
  438. package/dist/src/setupTests.d.ts +0 -2
  439. package/dist/src/setupTests.d.ts.map +0 -1
  440. package/dist/src/setupTests.js +0 -24
  441. package/dist/src/setupTests.js.map +0 -1
  442. package/dist/src/tests/test-utils.d.ts +0 -7
  443. package/dist/src/tests/test-utils.d.ts.map +0 -1
  444. package/dist/src/tests/test-utils.js +0 -21
  445. package/dist/src/tests/test-utils.js.map +0 -1
  446. package/src/components/DetailsPage/DetailsPage.spec.tsx +0 -128
  447. package/src/components/Device/EditDeviceWizard/types.ts +0 -22
  448. package/src/components/Fleet/CreateFleet/types.ts +0 -33
  449. package/src/setupTests.ts +0 -21
  450. package/src/tests/test-utils.tsx +0 -21
  451. /package/dist/src/components/{UserPreferences → Masthead}/UserPreferencesModal.d.ts +0 -0
  452. /package/dist/src/components/{UserPreferences → Masthead}/UserPreferencesModal.js +0 -0
  453. /package/dist/src/components/{UserPreferences → Masthead}/UserPreferencesProvider.d.ts +0 -0
  454. /package/dist/src/components/{UserPreferences → Masthead}/UserPreferencesProvider.js +0 -0
  455. /package/src/components/{UserPreferences → Masthead}/UserPreferencesModal.tsx +0 -0
  456. /package/src/components/{UserPreferences → Masthead}/UserPreferencesProvider.tsx +0 -0
@@ -6,13 +6,12 @@ import { ExclamationCircleIcon } from '@patternfly/react-icons/dist/js/icons/exc
6
6
  import { TFunction, Trans } from 'react-i18next';
7
7
 
8
8
  import { RepoSpecType, Repository } from '@flightctl/types';
9
- import { GitConfigTemplate, HttpConfigTemplate } from '../../../../types/deviceSpec';
9
+ import { DeviceSpecConfigFormValues, GitConfigTemplate, HttpConfigTemplate } from '../../../../types/deviceSpec';
10
10
  import { useTranslation } from '../../../../hooks/useTranslation';
11
- import { DeviceSpecConfigFormValues } from '../types';
12
11
  import TextField from '../../../form/TextField';
13
12
  import FormSelect from '../../../form/FormSelect';
14
13
  import CreateRepositoryModal from '../../../modals/CreateRepositoryModal/CreateRepositoryModal';
15
- import WithHelperText from '../../../common/WithHelperText';
14
+ import { FormGroupWithHelperText } from '../../../common/WithHelperText';
16
15
 
17
16
  type ConfigWithRepositoryTemplateFormProps = {
18
17
  repoType: RepoSpecType;
@@ -66,14 +65,9 @@ const GitConfigForm = ({ template, index }: { template: GitConfigTemplate; index
66
65
  value={template.targetRevision}
67
66
  />
68
67
  </FormGroup>
69
- <FormGroup
70
- label={
71
- <WithHelperText
72
- ariaLabel={t('Path')}
73
- content={t('Path in the repository where the configuration file(s) are located')}
74
- showLabel
75
- />
76
- }
68
+ <FormGroupWithHelperText
69
+ label={t('Path')}
70
+ content={t('Path in the repository where the configuration files are located.')}
77
71
  isRequired
78
72
  >
79
73
  <TextField
@@ -82,16 +76,11 @@ const GitConfigForm = ({ template, index }: { template: GitConfigTemplate; index
82
76
  value={template.path}
83
77
  placeholder={t('/absolute/path')}
84
78
  />
85
- </FormGroup>
86
- <FormGroup
79
+ </FormGroupWithHelperText>
80
+ <FormGroupWithHelperText
81
+ label={t('Mount path')}
82
+ content={t('Path in the device where the configurations will be stored.')}
87
83
  isRequired
88
- label={
89
- <WithHelperText
90
- ariaLabel={t('Mount path')}
91
- content={t('Path in the device where the configurations will be stored')}
92
- showLabel
93
- />
94
- }
95
84
  >
96
85
  <TextField
97
86
  aria-label={t('Mount path')}
@@ -99,7 +88,7 @@ const GitConfigForm = ({ template, index }: { template: GitConfigTemplate; index
99
88
  value={template.mountPath}
100
89
  placeholder={t('/absolute/path')}
101
90
  />
102
- </FormGroup>
91
+ </FormGroupWithHelperText>
103
92
  </>
104
93
  );
105
94
  };
@@ -129,16 +118,11 @@ const HttpConfigForm = ({
129
118
 
130
119
  return (
131
120
  <>
132
- <FormGroup
121
+ <FormGroupWithHelperText
133
122
  label={t('Suffix')}
134
- labelIcon={
135
- <WithHelperText
136
- ariaLabel={t('Suffix')}
137
- content={t(
138
- "Suffix that will be combined with the repository's base URL to invoke the HTTP service. Can include query parameters.",
139
- )}
140
- />
141
- }
123
+ content={t(
124
+ "Suffix that will be combined with the repository's base URL to invoke the HTTP service. Can include query parameters.",
125
+ )}
142
126
  >
143
127
  <TextField
144
128
  aria-label={t('Suffix')}
@@ -146,15 +130,10 @@ const HttpConfigForm = ({
146
130
  value={template.suffix || ''}
147
131
  helperText={suffixHelperText}
148
132
  />
149
- </FormGroup>
150
- <FormGroup
133
+ </FormGroupWithHelperText>
134
+ <FormGroupWithHelperText
151
135
  label={t('File path')}
152
- labelIcon={
153
- <WithHelperText
154
- ariaLabel={t('File path')}
155
- content={t('Path of the file where the response will be stored in the device filesystem.')}
156
- />
157
- }
136
+ content={t('Path of the file where the response will be stored in the device filesystem.')}
158
137
  isRequired
159
138
  >
160
139
  <TextField
@@ -163,7 +142,7 @@ const HttpConfigForm = ({
163
142
  value={template.filePath || ''}
164
143
  placeholder={t('/absolute/path')}
165
144
  />
166
- </FormGroup>
145
+ </FormGroupWithHelperText>
167
146
  </>
168
147
  );
169
148
  };
@@ -16,12 +16,11 @@ import { MinusCircleIcon } from '@patternfly/react-icons/dist/js/icons/minus-cir
16
16
  import { PlusCircleIcon } from '@patternfly/react-icons/dist/js/icons/plus-circle-icon';
17
17
 
18
18
  import { RepoSpecType, Repository, RepositoryList } from '@flightctl/types';
19
- import { ConfigType, SpecConfigTemplate } from '../../../../types/deviceSpec';
20
- import { DeviceSpecConfigFormValues } from '../types';
19
+ import { ConfigType, DeviceSpecConfigFormValues, SpecConfigTemplate } from '../../../../types/deviceSpec';
21
20
  import { useTranslation } from '../../../../hooks/useTranslation';
22
21
  import { useFetchPeriodically } from '../../../../hooks/useFetchPeriodically';
23
22
  import { getErrorMessage } from '../../../../utils/error';
24
- import WithHelperText from '../../../common/WithHelperText';
23
+ import { FormGroupWithHelperText } from '../../../common/WithHelperText';
25
24
  import { getDnsSubdomainValidations } from '../../../form/validations';
26
25
  import ErrorHelperText from '../../../form/FieldHelperText';
27
26
  import FormSelect from '../../../form/FormSelect';
@@ -124,16 +123,11 @@ const ConfigurationTemplatesForm = ({ repositories, repoRefetch, canCreateRepo,
124
123
  const generalError = typeof errors.configTemplates === 'string' ? errors.configTemplates : undefined;
125
124
 
126
125
  return (
127
- <FormGroup
128
- label={
129
- <WithHelperText
130
- ariaLabel={t('Host configurations (files)')}
131
- content={t(
132
- "Define configuration files that shall be present on the device's file system. For example: systemd service config, network config, firewall config, etc.",
133
- )}
134
- showLabel
135
- />
136
- }
126
+ <FormGroupWithHelperText
127
+ label={t('Host configurations (files)')}
128
+ content={t(
129
+ "Define configuration files that shall be present on the device's file system. For example: systemd service config, network config, firewall config, etc.",
130
+ )}
137
131
  >
138
132
  <FieldArray name="configTemplates">
139
133
  {({ push, remove }) => (
@@ -183,7 +177,7 @@ const ConfigurationTemplatesForm = ({ repositories, repoRefetch, canCreateRepo,
183
177
  </>
184
178
  )}
185
179
  </FieldArray>
186
- </FormGroup>
180
+ </FormGroupWithHelperText>
187
181
  );
188
182
  };
189
183
 
@@ -1,23 +1,22 @@
1
1
  import * as React from 'react';
2
- import { Alert, Button, CodeBlock, CodeBlockCode, FormGroup, Grid, Spinner } from '@patternfly/react-core';
2
+ import { Alert, CodeBlock, CodeBlockCode, FormGroup, Grid, Spinner } from '@patternfly/react-core';
3
3
  import { FormikErrors, useFormikContext } from 'formik';
4
4
  import { Trans } from 'react-i18next';
5
5
  import { Repository } from '@flightctl/types';
6
- import { ExternalLinkAltIcon } from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
7
6
 
8
- import { USING_TEMPLATE_VARIABLES_LINK } from '../../../../links';
7
+ import { CREATE_ACM_REPOSITORY, USING_TEMPLATE_VARIABLES_LINK } from '../../../../links';
9
8
  import { useTranslation } from '../../../../hooks/useTranslation';
10
- import WithHelperText from '../../../common/WithHelperText';
9
+ import LabelWithHelperText, { FormGroupWithHelperText } from '../../../common/WithHelperText';
11
10
  import LearnMoreLink from '../../../common/LearnMoreLink';
12
11
  import TextField from '../../../form/TextField';
13
12
  import FlightCtlForm from '../../../form/FlightCtlForm';
14
- import { DeviceSpecConfigFormValues } from '../types';
13
+ import { DeviceSpecConfigFormValues } from '../../../../types/deviceSpec';
15
14
  import ConfigurationTemplates from './ConfigurationTemplates';
16
15
  import ApplicationsForm from './ApplicationTemplates';
17
16
  import SystemdUnitsForm from './SystemdUnitsForm';
18
17
  import CheckboxField from '../../../form/CheckboxField';
19
18
  import { useFetchPeriodically } from '../../../../hooks/useFetchPeriodically';
20
- import { useAppContext } from '../../../../hooks/useAppContext';
19
+ import { FlightCtlApp, useAppContext } from '../../../../hooks/useAppContext';
21
20
  import { ACM_REPO_NAME } from '../deviceSpecUtils';
22
21
 
23
22
  export const deviceTemplateStepId = 'device-template';
@@ -50,8 +49,8 @@ const MicroShiftCheckbox = ({ isFleet }: { isFleet: boolean }) => {
50
49
  isFleet ? (
51
50
  <>
52
51
  {t('Register all MicroShift devices to ACM')}
53
- <WithHelperText
54
- ariaLabel="MicroShift registration"
52
+ <LabelWithHelperText
53
+ label="MicroShift registration"
55
54
  content={
56
55
  <>
57
56
  {t(
@@ -63,13 +62,14 @@ const MicroShiftCheckbox = ({ isFleet }: { isFleet: boolean }) => {
63
62
  )}
64
63
  </>
65
64
  }
65
+ hideLabel
66
66
  />
67
67
  </>
68
68
  ) : (
69
69
  <>
70
70
  {t('Register this MicroShift device to ACM')}
71
- <WithHelperText
72
- ariaLabel="MicroShift registration"
71
+ <LabelWithHelperText
72
+ label="MicroShift registration"
73
73
  content={
74
74
  <>
75
75
  {t('Select this when the device is running MicroShift and you want to register it to ACM.')}
@@ -79,6 +79,7 @@ const MicroShiftCheckbox = ({ isFleet }: { isFleet: boolean }) => {
79
79
  )}
80
80
  </>
81
81
  }
82
+ hideLabel
82
83
  />
83
84
  </>
84
85
  )
@@ -88,21 +89,12 @@ const MicroShiftCheckbox = ({ isFleet }: { isFleet: boolean }) => {
88
89
  </FormGroup>
89
90
  {isDisabled && (
90
91
  <FormGroup>
91
- <Alert variant="warning" title={t(`'${ACM_REPO_NAME}' repository not found.`)} isInline>
92
- <Trans t={t}>
93
- To re-create the repository,{' '}
94
- <Button
95
- component="a"
96
- variant="link"
97
- isInline
98
- href="https://github.com/flightctl/flightctl/blob/main/docs/user/registering-microshift-devices-acm.md#creating-repositories-in-flight-control"
99
- target="_blank"
100
- icon={<ExternalLinkAltIcon />}
101
- iconPosition="end"
102
- >
103
- View documentation
104
- </Button>
105
- </Trans>
92
+ <Alert variant="warning" title={t('Cannot register MicroShift devices')} isInline>
93
+ {t(`{{ repository }} repository is missing. To re-create the repository`, {
94
+ repository: `'${ACM_REPO_NAME}'`,
95
+ })}
96
+ {', '}
97
+ <LearnMoreLink link={CREATE_ACM_REPOSITORY} text={t('view documentation')} />
106
98
  </Alert>
107
99
  </FormGroup>
108
100
  )}
@@ -130,17 +122,12 @@ const DeviceTemplateStep = ({ isFleet }: { isFleet: boolean }) => {
130
122
  <LearnMoreLink link={USING_TEMPLATE_VARIABLES_LINK} />
131
123
  </Alert>
132
124
  )}
133
- <FormGroup
134
- label={
135
- <WithHelperText
136
- ariaLabel={t('System image')}
137
- content={
138
- isFleet
139
- ? t("The target system image for this fleet's devices.")
140
- : t('The target system image for this device.')
141
- }
142
- showLabel
143
- />
125
+ <FormGroupWithHelperText
126
+ label={t('System image')}
127
+ content={
128
+ isFleet
129
+ ? t("The target system image for this fleet's devices.")
130
+ : t('The target system image for this device.')
144
131
  }
145
132
  >
146
133
  <TextField
@@ -148,10 +135,10 @@ const DeviceTemplateStep = ({ isFleet }: { isFleet: boolean }) => {
148
135
  aria-label={t('System image')}
149
136
  value={values.osImage}
150
137
  helperText={t(
151
- 'Must be a reference to a bootable container image (e.g. "quay.io/<my-org>/my-rhel-with-fc-agent:<version>"). When left empty, the device\'s existing OS will be kept unchanged.',
138
+ 'Must be a reference to a bootable container image (such as "quay.io/<my-org>/my-rhel-with-fc-agent:<version>"). If you do not want to manage your OS from Edge management, leave this field empty.',
152
139
  )}
153
140
  />
154
- </FormGroup>
141
+ </FormGroupWithHelperText>
155
142
  <FormGroup>
156
143
  <ConfigurationTemplates />
157
144
  </FormGroup>
@@ -163,7 +150,7 @@ const DeviceTemplateStep = ({ isFleet }: { isFleet: boolean }) => {
163
150
  <SystemdUnitsForm />
164
151
  </FormGroup>
165
152
  )}
166
- {appType === 'ocp' && <MicroShiftCheckbox isFleet={isFleet} />}
153
+ {appType === FlightCtlApp.OCP && <MicroShiftCheckbox isFleet={isFleet} />}
167
154
  </FlightCtlForm>
168
155
  </Grid>
169
156
  );
@@ -0,0 +1,88 @@
1
+ import * as React from 'react';
2
+ import { Alert, Checkbox, FormGroup, Grid, Title } from '@patternfly/react-core';
3
+ import { FormikErrors, useFormikContext } from 'formik';
4
+
5
+ import { useTranslation } from '../../../../hooks/useTranslation';
6
+ import UpdateConfirmChangesModal from '../../../Fleet/CreateFleet/steps/UpdateConfirmChangesModal';
7
+ import UpdateStepUpdatePolicy from '../../../Fleet/CreateFleet/steps/UpdateStepUpdatePolicy';
8
+ import { getEmptyUpdateFormParams } from '../../../Fleet/CreateFleet/fleetSpecUtils';
9
+
10
+ import FlightCtlForm from '../../../form/FlightCtlForm';
11
+ import { DeviceSpecConfigFormValues } from '../../../../types/deviceSpec';
12
+ import { FormGroupWithHelperText } from '../../../common/WithHelperText';
13
+
14
+ export const deviceUpdatePolicyStepId = 'update-policy';
15
+
16
+ export const isUpdatePolicyStepValid = (errors: FormikErrors<DeviceSpecConfigFormValues>) => !errors.updatePolicy;
17
+
18
+ const UpdatePolicyStep = () => {
19
+ const { t } = useTranslation();
20
+
21
+ const {
22
+ values: { updatePolicy },
23
+ setFieldValue,
24
+ setFieldTouched,
25
+ } = useFormikContext<DeviceSpecConfigFormValues>();
26
+
27
+ const [alertSwitchToBasic, setAlertSwitchToBasic] = React.useState<boolean>();
28
+ const hasAdvancedMode = updatePolicy.isAdvanced;
29
+
30
+ const onChangeUpdatePolicy = async (toAdvanced: boolean) => {
31
+ if (toAdvanced) {
32
+ await setFieldTouched('updatePolicy', true);
33
+ } else {
34
+ await setFieldValue('updatePolicy', getEmptyUpdateFormParams(), true);
35
+ }
36
+ };
37
+
38
+ const onAdvancedEnableChange = (toAdvanced: boolean) => {
39
+ if (toAdvanced) {
40
+ setFieldValue('updatePolicy.isAdvanced', true);
41
+ onChangeUpdatePolicy(true);
42
+ } else {
43
+ setAlertSwitchToBasic(true);
44
+ }
45
+ };
46
+
47
+ const onModalClose = (doSwitch: boolean) => {
48
+ setAlertSwitchToBasic(false);
49
+ if (doSwitch) {
50
+ onChangeUpdatePolicy(false);
51
+ }
52
+ };
53
+
54
+ return (
55
+ <Grid lg={8}>
56
+ <FlightCtlForm>
57
+ <FormGroup>
58
+ <Checkbox
59
+ label={t('Use basic configurations')}
60
+ isChecked={!hasAdvancedMode}
61
+ id="basic-update-configuration"
62
+ onChange={(_ev: React.FormEvent<HTMLInputElement>, toBasic: boolean) => {
63
+ onAdvancedEnableChange(!toBasic);
64
+ }}
65
+ />
66
+ </FormGroup>
67
+ {hasAdvancedMode ? (
68
+ <>
69
+ <Title headingLevel="h3">{t('Advanced configurations')}</Title>
70
+ <FormGroupWithHelperText
71
+ label={t('Update policies')}
72
+ content={t('Update policies allow you to control when updates should be downloaded and applied.')}
73
+ >
74
+ <UpdateStepUpdatePolicy />
75
+ </FormGroupWithHelperText>
76
+ </>
77
+ ) : (
78
+ <Alert isInline variant="info" title={t('Default update policy')}>
79
+ {t('The device will download and apply updates as soon as they are available.')}
80
+ </Alert>
81
+ )}
82
+ {alertSwitchToBasic && <UpdateConfirmChangesModal setting="update-policies" onClose={onModalClose} />}
83
+ </FlightCtlForm>
84
+ </Grid>
85
+ );
86
+ };
87
+
88
+ export default UpdatePolicyStep;
@@ -9,7 +9,7 @@ import LabelsField from '../../../form/LabelsField';
9
9
  import RichValidationTextField from '../../../form/RichValidationTextField';
10
10
  import { getLabelValueValidations } from '../../../form/validations';
11
11
  import DeviceLabelMatch from '../../../modals/ApproveDeviceModal/DeviceLabelMatch';
12
- import { EditDeviceFormValues } from '../types';
12
+ import { EditDeviceFormValues } from '../../../../types/deviceSpec';
13
13
 
14
14
  export const generalInfoStepId = 'general-info';
15
15
 
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
- import { Flex, FlexItem, Label, Stack, StackItem } from '@patternfly/react-core';
2
+ import { Stack, StackItem } from '@patternfly/react-core';
3
3
 
4
- import { ApplicationFormSpec } from '../types';
5
4
  import { useTranslation } from '../../../../hooks/useTranslation';
5
+ import { AppForm, getAppIdentifier, isInlineAppForm } from '../../../../types/deviceSpec';
6
6
 
7
- const ReviewApplications = ({ apps }: { apps: ApplicationFormSpec[] }) => {
7
+ const ReviewApplications = ({ apps }: { apps: AppForm[] }) => {
8
8
  const { t } = useTranslation();
9
9
  if (apps.length === 0) {
10
10
  return '-';
@@ -12,22 +12,21 @@ const ReviewApplications = ({ apps }: { apps: ApplicationFormSpec[] }) => {
12
12
 
13
13
  return (
14
14
  <Stack hasGutter>
15
- {apps.map((app, index) => (
16
- <StackItem key={`${app.image}_${index}`}>
17
- <Flex>
18
- <FlexItem>
19
- {app.name || t('Unnamed')} ({app.image})
20
- </FlexItem>
21
- {app.variables.map((variable, index) => (
22
- <FlexItem key={`var-${variable.name}_${index}`}>
23
- <Label color="blue">
24
- {variable.name}={variable.value}
25
- </Label>
26
- </FlexItem>
27
- ))}
28
- </Flex>
29
- </StackItem>
30
- ))}
15
+ {apps.map((app, index) => {
16
+ const isInlineApp = isInlineAppForm(app);
17
+ const type = isInlineApp ? t('Inline') : t('Image based');
18
+ let name: string = '';
19
+ if (isInlineApp || app.name) {
20
+ name = app.name as string;
21
+ } else if (app.image) {
22
+ name = `${t('Unnamed')} (${app.image})`;
23
+ }
24
+ return (
25
+ <StackItem key={`${getAppIdentifier(app)}_${index}`}>
26
+ {name} ({type})
27
+ </StackItem>
28
+ );
29
+ })}
31
30
  </Stack>
32
31
  );
33
32
  };
@@ -9,14 +9,14 @@ import {
9
9
  StackItem,
10
10
  } from '@patternfly/react-core';
11
11
 
12
- import { EditDeviceFormValues } from '../types';
12
+ import { EditDeviceFormValues } from '../../../../types/deviceSpec';
13
13
  import { useTranslation } from '../../../../hooks/useTranslation';
14
14
  import LabelsView from '../../../common/LabelsView';
15
15
  import { toAPILabel } from '../../../../utils/labels';
16
16
  import { getErrorMessage } from '../../../../utils/error';
17
17
  import FlightControlDescriptionList from '../../../common/FlightCtlDescriptionList';
18
18
  import RepositorySourceList from '../../../Repository/RepositoryDetails/RepositorySourceList';
19
- import { getAPIConfig } from '../deviceSpecUtils';
19
+ import { getApiConfig } from '../deviceSpecUtils';
20
20
  import ReviewApplications from './ReviewApplications';
21
21
 
22
22
  export const reviewDeviceStepId = 'review-device';
@@ -63,7 +63,7 @@ const ReviewStep = ({ error }: { error?: string }) => {
63
63
  <DescriptionListGroup>
64
64
  <DescriptionListTerm>{t('Configurations')}</DescriptionListTerm>
65
65
  <DescriptionListDescription>
66
- <RepositorySourceList configs={values.configTemplates.map(getAPIConfig)} />
66
+ <RepositorySourceList configs={values.configTemplates.map(getApiConfig)} />
67
67
  </DescriptionListDescription>
68
68
  </DescriptionListGroup>
69
69
  )}
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { Label, LabelGroup } from '@patternfly/react-core';
3
- import { SystemdUnitFormValue } from '../../SystemdUnitsModal/TrackSystemdUnitsForm';
3
+ import { SystemdUnitsFormValues } from '../../SystemdUnitsModal/TrackSystemdUnitsForm';
4
4
 
5
- const ReviewTrackedSystemdServices = ({ systemdUnits }: { systemdUnits: SystemdUnitFormValue[] }) => {
5
+ const ReviewTrackedSystemdServices = ({ systemdUnits }: SystemdUnitsFormValues) => {
6
6
  if (systemdUnits.length === 0) {
7
7
  return '-';
8
8
  }
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
2
  import { Stack, StackItem } from '@patternfly/react-core';
3
3
 
4
- import { DisruptionBudgetForm, RolloutPolicyForm } from '../../../Fleet/CreateFleet/types';
4
+ import { DisruptionBudgetForm, RolloutPolicyForm } from '../../../../types/deviceSpec';
5
+
5
6
  import { useTranslation } from '../../../../hooks/useTranslation';
6
7
  import LabelsView from '../../../common/LabelsView';
7
8
 
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { Label, LabelGroup } from '@patternfly/react-core';
3
3
  import { useFormikContext } from 'formik';
4
4
 
5
- import { DeviceSpecConfigFormValues } from '../types';
5
+ import { DeviceSpecConfigFormValues } from '../../../../types/deviceSpec';
6
6
  import { useTranslation } from '../../../../hooks/useTranslation';
7
7
 
8
8
  import ErrorHelperText from '../../../form/FieldHelperText';
@@ -7,15 +7,17 @@ import {
7
7
  validKubernetesLabelValue,
8
8
  validLabelsSchema,
9
9
  validOsImage,
10
+ validUpdatePolicySchema,
10
11
  } from '../../form/validations';
11
- import { appendJSONPatch, getApplicationPatches, getLabelPatches } from '../../../utils/patch';
12
+ import { appendJSONPatch, getDeviceLabelPatches, getUpdatePolicyPatches } from '../../../utils/patch';
12
13
  import { Device, PatchRequest } from '@flightctl/types';
13
- import { EditDeviceFormValues } from './types';
14
+ import { EditDeviceFormValues, UpdatePolicyForm } from './../../../types/deviceSpec';
14
15
  import {
15
16
  ACMCrdConfig,
16
17
  ACMImportConfig,
17
18
  MicroshiftRegistrationHook,
18
- getAPIConfig,
19
+ getApiConfig,
20
+ getApplicationPatches,
19
21
  getDeviceSpecConfigPatches,
20
22
  } from './deviceSpecUtils';
21
23
 
@@ -27,6 +29,7 @@ export const getValidationSchema = (t: TFunction) =>
27
29
  labels: validLabelsSchema(t),
28
30
  configTemplates: validConfigTemplatesSchema(t),
29
31
  applications: validApplicationsSchema(t),
32
+ updatePolicy: validUpdatePolicySchema(t),
30
33
  }),
31
34
  );
32
35
 
@@ -37,11 +40,7 @@ export const getDevicePatches = (currentDevice: Device, updatedDevice: EditDevic
37
40
  const currentLabels = currentDevice.metadata.labels || {};
38
41
  const updatedLabels = [...updatedDevice.labels];
39
42
 
40
- if (updatedDevice.deviceAlias) {
41
- updatedLabels.push({ key: 'alias', value: updatedDevice.deviceAlias });
42
- }
43
-
44
- const deviceLabelPatches = getLabelPatches('/metadata/labels', currentLabels, updatedLabels);
43
+ const deviceLabelPatches = getDeviceLabelPatches(currentLabels, updatedLabels, updatedDevice.deviceAlias);
45
44
  allPatches = allPatches.concat(deviceLabelPatches);
46
45
 
47
46
  if (updatedDevice.fleetMatch) {
@@ -74,7 +73,7 @@ export const getDevicePatches = (currentDevice: Device, updatedDevice: EditDevic
74
73
 
75
74
  // Configurations
76
75
  const currentConfigs = currentDevice.spec?.config || [];
77
- const newConfigs = updatedDevice.configTemplates.map(getAPIConfig);
76
+ const newConfigs = updatedDevice.configTemplates.map(getApiConfig);
78
77
  if (updatedDevice.registerMicroShift) {
79
78
  newConfigs.push(ACMCrdConfig, ACMImportConfig, MicroshiftRegistrationHook);
80
79
  }
@@ -85,5 +84,13 @@ export const getDevicePatches = (currentDevice: Device, updatedDevice: EditDevic
85
84
  const appPatches = getApplicationPatches('/spec', currentDevice.spec?.applications || [], updatedDevice.applications);
86
85
  allPatches = allPatches.concat(appPatches);
87
86
 
87
+ // Updates
88
+ const updatesPatches = getUpdatePolicyPatches(
89
+ '/spec/updatePolicy',
90
+ currentDevice.spec?.updatePolicy,
91
+ updatedDevice.updatePolicy as Required<UpdatePolicyForm>,
92
+ );
93
+ allPatches = allPatches.concat(updatesPatches);
94
+
88
95
  return allPatches;
89
96
  };
@@ -8,7 +8,7 @@ import { useTranslation } from '../../../hooks/useTranslation';
8
8
  import { getErrorMessage } from '../../../utils/error';
9
9
  import { getStringListPatches } from '../../../utils/patch';
10
10
  import { deviceSystemdUnitsValidationSchema } from '../../form/validations';
11
- import TrackSystemdUnitsForm, { SystemdUnitFormValue, SystemdUnitsFormValues } from './TrackSystemdUnitsForm';
11
+ import TrackSystemdUnitsForm, { SystemdUnitsFormValues } from './TrackSystemdUnitsForm';
12
12
 
13
13
  type SystemdUnitsModalProps = {
14
14
  onClose: (hasChanges?: boolean, addedSystemdUnits?: string[]) => void;
@@ -27,11 +27,12 @@ const SystemdUnitsModal: React.FC<SystemdUnitsModalProps> = ({ onClose, device }
27
27
  const { t } = useTranslation();
28
28
  const { patch } = useFetch();
29
29
  const [error, setError] = React.useState<string>();
30
-
31
- const currentSystemdUnits: SystemdUnitFormValue[] = (device.spec?.systemd?.matchPatterns || []).map((p) => ({
32
- pattern: p,
33
- exists: true,
34
- }));
30
+ const currentSystemdUnits: SystemdUnitsFormValues['systemdUnits'] = (device.spec?.systemd?.matchPatterns || []).map(
31
+ (p) => ({
32
+ pattern: p,
33
+ exists: true,
34
+ }),
35
+ );
35
36
 
36
37
  return (
37
38
  <Modal title={t('Track systemd services')} isOpen onClose={() => onClose()} variant="small">
@@ -6,11 +6,7 @@ import { useTranslation } from '../../../hooks/useTranslation';
6
6
  import ErrorHelperText from '../../form/FieldHelperText';
7
7
  import FlightCtlActionGroup from '../../form/FlightCtlActionGroup';
8
8
  import FlightCtlForm from '../../form/FlightCtlForm';
9
-
10
- export type SystemdUnitFormValue = {
11
- pattern: string;
12
- exists: boolean;
13
- };
9
+ import { SystemdUnitFormValue } from '../../../types/deviceSpec';
14
10
 
15
11
  export type SystemdUnitsFormValues = {
16
12
  systemdUnits: SystemdUnitFormValue[];