@flightctl/ui-components 0.7.2 → 0.8.0-rc1

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 (408) hide show
  1. package/dist/src/components/DetailsPage/DetailsPageActions.d.ts +1 -1
  2. package/dist/src/components/DetailsPage/DetailsPageActions.d.ts.map +1 -1
  3. package/dist/src/components/DetailsPage/DetailsPageActions.js +1 -1
  4. package/dist/src/components/DetailsPage/DetailsPageActions.js.map +1 -1
  5. package/dist/src/components/Device/AddDeviceModal/AddDeviceModal.d.ts.map +1 -1
  6. package/dist/src/components/Device/AddDeviceModal/AddDeviceModal.js +18 -14
  7. package/dist/src/components/Device/AddDeviceModal/AddDeviceModal.js.map +1 -1
  8. package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.d.ts.map +1 -1
  9. package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.js +10 -11
  10. package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.js.map +1 -1
  11. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.d.ts.map +1 -1
  12. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.js +31 -10
  13. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.js.map +1 -1
  14. package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.js +2 -2
  15. package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.js.map +1 -1
  16. package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.js +2 -2
  17. package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.js.map +1 -1
  18. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizard.d.ts.map +1 -1
  19. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizard.js +4 -2
  20. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizard.js.map +1 -1
  21. package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.d.ts.map +1 -1
  22. package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.js +29 -1
  23. package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.js.map +1 -1
  24. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.d.ts +2 -1
  25. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.d.ts.map +1 -1
  26. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.js +6 -5
  27. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.js.map +1 -1
  28. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.d.ts +3 -2
  29. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.d.ts.map +1 -1
  30. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.js +13 -9
  31. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.js.map +1 -1
  32. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.d.ts +3 -1
  33. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.d.ts.map +1 -1
  34. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.js +20 -17
  35. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.js.map +1 -1
  36. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.d.ts +2 -1
  37. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.d.ts.map +1 -1
  38. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.js +18 -14
  39. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.js.map +1 -1
  40. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.d.ts +2 -1
  41. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.d.ts.map +1 -1
  42. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.js +21 -14
  43. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.js.map +1 -1
  44. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.d.ts +3 -1
  45. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.d.ts.map +1 -1
  46. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.js +34 -20
  47. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.js.map +1 -1
  48. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.d.ts +2 -1
  49. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.d.ts.map +1 -1
  50. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.js +14 -15
  51. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.js.map +1 -1
  52. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.d.ts +3 -1
  53. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.d.ts.map +1 -1
  54. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.js +6 -36
  55. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.js.map +1 -1
  56. package/dist/src/components/Device/EditDeviceWizard/steps/GeneralInfoStep.js +1 -1
  57. package/dist/src/components/Device/EditDeviceWizard/steps/GeneralInfoStep.js.map +1 -1
  58. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewDeviceStep.js +1 -1
  59. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewDeviceStep.js.map +1 -1
  60. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewUpdatePolicy.js +2 -2
  61. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewUpdatePolicy.js.map +1 -1
  62. package/dist/src/components/Device/EditDeviceWizard/steps/SystemdUnitsForm.d.ts +4 -2
  63. package/dist/src/components/Device/EditDeviceWizard/steps/SystemdUnitsForm.d.ts.map +1 -1
  64. package/dist/src/components/Device/EditDeviceWizard/steps/SystemdUnitsForm.js +19 -1
  65. package/dist/src/components/Device/EditDeviceWizard/steps/SystemdUnitsForm.js.map +1 -1
  66. package/dist/src/components/Device/EditDeviceWizard/utils.d.ts +1 -14
  67. package/dist/src/components/Device/EditDeviceWizard/utils.d.ts.map +1 -1
  68. package/dist/src/components/Device/EditDeviceWizard/utils.js +3 -3
  69. package/dist/src/components/Device/EditDeviceWizard/utils.js.map +1 -1
  70. package/dist/src/components/Device/SystemdUnitsModal/SystemdUnitsModal.d.ts.map +1 -1
  71. package/dist/src/components/Device/SystemdUnitsModal/SystemdUnitsModal.js +28 -26
  72. package/dist/src/components/Device/SystemdUnitsModal/SystemdUnitsModal.js.map +1 -1
  73. package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.d.ts.map +1 -1
  74. package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.js +11 -16
  75. package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.js.map +1 -1
  76. package/dist/src/components/Events/EventItem.d.ts +7 -0
  77. package/dist/src/components/Events/EventItem.d.ts.map +1 -0
  78. package/dist/src/components/Events/EventItem.js +25 -0
  79. package/dist/src/components/Events/EventItem.js.map +1 -0
  80. package/dist/src/components/Events/EventsCard.css +5 -0
  81. package/dist/src/components/Events/EventsCard.d.ts +11 -0
  82. package/dist/src/components/Events/EventsCard.d.ts.map +1 -0
  83. package/dist/src/components/Events/EventsCard.js +81 -0
  84. package/dist/src/components/Events/EventsCard.js.map +1 -0
  85. package/dist/src/components/Events/useEvents.d.ts +21 -0
  86. package/dist/src/components/Events/useEvents.d.ts.map +1 -0
  87. package/dist/src/components/Events/useEvents.js +105 -0
  88. package/dist/src/components/Events/useEvents.js.map +1 -0
  89. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizard.d.ts.map +1 -1
  90. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizard.js +27 -9
  91. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizard.js.map +1 -1
  92. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.d.ts +2 -1
  93. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.d.ts.map +1 -1
  94. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.js +13 -2
  95. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.js.map +1 -1
  96. package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.d.ts +3 -33
  97. package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.d.ts.map +1 -1
  98. package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.js +7 -21
  99. package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.js.map +1 -1
  100. package/dist/src/components/Fleet/CreateFleet/steps/DeviceLabelSelector.d.ts +4 -2
  101. package/dist/src/components/Fleet/CreateFleet/steps/DeviceLabelSelector.d.ts.map +1 -1
  102. package/dist/src/components/Fleet/CreateFleet/steps/DeviceLabelSelector.js +10 -1
  103. package/dist/src/components/Fleet/CreateFleet/steps/DeviceLabelSelector.js.map +1 -1
  104. package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.d.ts +5 -3
  105. package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.d.ts.map +1 -1
  106. package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.js +4 -4
  107. package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.js.map +1 -1
  108. package/dist/src/components/Fleet/CreateFleet/steps/ReviewStep.d.ts.map +1 -1
  109. package/dist/src/components/Fleet/CreateFleet/steps/ReviewStep.js +10 -9
  110. package/dist/src/components/Fleet/CreateFleet/steps/ReviewStep.js.map +1 -1
  111. package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.d.ts +3 -1
  112. package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.d.ts.map +1 -1
  113. package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.js +8 -86
  114. package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.js.map +1 -1
  115. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.d.ts +3 -1
  116. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.d.ts.map +1 -1
  117. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.js +4 -4
  118. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.js.map +1 -1
  119. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.d.ts +3 -1
  120. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.d.ts.map +1 -1
  121. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.js +16 -13
  122. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.js.map +1 -1
  123. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.d.ts +3 -1
  124. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.d.ts.map +1 -1
  125. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.js +20 -20
  126. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.js.map +1 -1
  127. package/dist/src/components/Fleet/CreateFleet/utils.d.ts +1 -1
  128. package/dist/src/components/Fleet/CreateFleet/utils.d.ts.map +1 -1
  129. package/dist/src/components/Fleet/CreateFleet/utils.js +37 -23
  130. package/dist/src/components/Fleet/CreateFleet/utils.js.map +1 -1
  131. package/dist/src/components/Fleet/DeleteFleetModal/DeleteFleetModal.d.ts.map +1 -1
  132. package/dist/src/components/Fleet/DeleteFleetModal/DeleteFleetModal.js +20 -16
  133. package/dist/src/components/Fleet/DeleteFleetModal/DeleteFleetModal.js.map +1 -1
  134. package/dist/src/components/Fleet/FleetDetails/FleetDetailsContent.d.ts.map +1 -1
  135. package/dist/src/components/Fleet/FleetDetails/FleetDetailsContent.js +8 -5
  136. package/dist/src/components/Fleet/FleetDetails/FleetDetailsContent.js.map +1 -1
  137. package/dist/src/components/Fleet/FleetDetails/{FleetDetails.d.ts → FleetDetailsPage.d.ts} +1 -1
  138. package/dist/src/components/Fleet/FleetDetails/FleetDetailsPage.d.ts.map +1 -0
  139. package/dist/src/components/Fleet/FleetDetails/{FleetDetails.js → FleetDetailsPage.js} +23 -17
  140. package/dist/src/components/Fleet/FleetDetails/FleetDetailsPage.js.map +1 -0
  141. package/dist/src/components/Fleet/FleetRow.d.ts.map +1 -1
  142. package/dist/src/components/Fleet/FleetRow.js +9 -12
  143. package/dist/src/components/Fleet/FleetRow.js.map +1 -1
  144. package/dist/src/components/Masthead/UserPreferencesModal.d.ts.map +1 -1
  145. package/dist/src/components/Masthead/UserPreferencesModal.js +14 -15
  146. package/dist/src/components/Masthead/UserPreferencesModal.js.map +1 -1
  147. package/dist/src/components/Masthead/UserPreferencesProvider.d.ts +8 -5
  148. package/dist/src/components/Masthead/UserPreferencesProvider.d.ts.map +1 -1
  149. package/dist/src/components/Masthead/UserPreferencesProvider.js +7 -5
  150. package/dist/src/components/Masthead/UserPreferencesProvider.js.map +1 -1
  151. package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.d.ts.map +1 -1
  152. package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.js +11 -7
  153. package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.js.map +1 -1
  154. package/dist/src/components/Repository/CreateRepository/utils.d.ts.map +1 -1
  155. package/dist/src/components/Repository/CreateRepository/utils.js +2 -3
  156. package/dist/src/components/Repository/CreateRepository/utils.js.map +1 -1
  157. package/dist/src/components/Repository/RepositoryDetails/DeleteRepositoryModal.d.ts.map +1 -1
  158. package/dist/src/components/Repository/RepositoryDetails/DeleteRepositoryModal.js +25 -24
  159. package/dist/src/components/Repository/RepositoryDetails/DeleteRepositoryModal.js.map +1 -1
  160. package/dist/src/components/Repository/RepositoryDetails/RepositoryDetails.d.ts.map +1 -1
  161. package/dist/src/components/Repository/RepositoryDetails/RepositoryDetails.js +22 -8
  162. package/dist/src/components/Repository/RepositoryDetails/RepositoryDetails.js.map +1 -1
  163. package/dist/src/components/ResourceSync/RepositoryResourceSyncList.d.ts.map +1 -1
  164. package/dist/src/components/ResourceSync/RepositoryResourceSyncList.js +18 -15
  165. package/dist/src/components/ResourceSync/RepositoryResourceSyncList.js.map +1 -1
  166. package/dist/src/components/common/CodeEditor/CodeEditorTheme.d.ts +5 -0
  167. package/dist/src/components/common/CodeEditor/CodeEditorTheme.d.ts.map +1 -0
  168. package/dist/src/components/common/CodeEditor/CodeEditorTheme.js +52 -0
  169. package/dist/src/components/common/CodeEditor/CodeEditorTheme.js.map +1 -0
  170. package/dist/src/components/common/CodeEditor/Shortcut.css +22 -0
  171. package/dist/src/components/common/CodeEditor/Shortcut.d.ts +20 -0
  172. package/dist/src/components/common/CodeEditor/Shortcut.d.ts.map +1 -0
  173. package/dist/src/components/common/CodeEditor/Shortcut.js +46 -0
  174. package/dist/src/components/common/CodeEditor/Shortcut.js.map +1 -0
  175. package/dist/src/components/common/CodeEditor/YamlEditor.css +12 -0
  176. package/dist/src/components/common/CodeEditor/YamlEditor.d.ts +16 -0
  177. package/dist/src/components/common/CodeEditor/YamlEditor.d.ts.map +1 -0
  178. package/dist/src/components/common/CodeEditor/YamlEditor.js +48 -0
  179. package/dist/src/components/common/CodeEditor/YamlEditor.js.map +1 -0
  180. package/dist/src/components/common/CodeEditor/YamlEditorBase.css +3 -0
  181. package/dist/src/components/common/CodeEditor/YamlEditorBase.d.ts +11 -0
  182. package/dist/src/components/common/CodeEditor/YamlEditorBase.d.ts.map +1 -0
  183. package/dist/src/components/common/CodeEditor/YamlEditorBase.js +75 -0
  184. package/dist/src/components/common/CodeEditor/YamlEditorBase.js.map +1 -0
  185. package/dist/src/components/common/CodeEditor/useShortcutPopover.d.ts +3 -0
  186. package/dist/src/components/common/CodeEditor/useShortcutPopover.d.ts.map +1 -0
  187. package/dist/src/components/common/CodeEditor/useShortcutPopover.js +26 -0
  188. package/dist/src/components/common/CodeEditor/useShortcutPopover.js.map +1 -0
  189. package/dist/src/components/common/LabelsView.d.ts +1 -3
  190. package/dist/src/components/common/LabelsView.d.ts.map +1 -1
  191. package/dist/src/components/common/LabelsView.js +2 -4
  192. package/dist/src/components/common/LabelsView.js.map +1 -1
  193. package/dist/src/components/common/LeaveFormConfirmation.d.ts.map +1 -1
  194. package/dist/src/components/common/LeaveFormConfirmation.js +8 -7
  195. package/dist/src/components/common/LeaveFormConfirmation.js.map +1 -1
  196. package/dist/src/components/common/TechPreviewBadge.d.ts.map +1 -1
  197. package/dist/src/components/common/TechPreviewBadge.js +3 -2
  198. package/dist/src/components/common/TechPreviewBadge.js.map +1 -1
  199. package/dist/src/components/form/FlightCtlActionGroup.d.ts +1 -1
  200. package/dist/src/components/form/FlightCtlActionGroup.d.ts.map +1 -1
  201. package/dist/src/components/form/FlightCtlActionGroup.js.map +1 -1
  202. package/dist/src/components/form/FormSelect.d.ts +4 -2
  203. package/dist/src/components/form/FormSelect.d.ts.map +1 -1
  204. package/dist/src/components/form/FormSelect.js +12 -1
  205. package/dist/src/components/form/FormSelect.js.map +1 -1
  206. package/dist/src/components/form/FormSelectTypeahead.d.ts +4 -3
  207. package/dist/src/components/form/FormSelectTypeahead.d.ts.map +1 -1
  208. package/dist/src/components/form/FormSelectTypeahead.js +18 -1
  209. package/dist/src/components/form/FormSelectTypeahead.js.map +1 -1
  210. package/dist/src/components/form/LabelsField.d.ts +4 -3
  211. package/dist/src/components/form/LabelsField.d.ts.map +1 -1
  212. package/dist/src/components/form/LabelsField.js +15 -5
  213. package/dist/src/components/form/LabelsField.js.map +1 -1
  214. package/dist/src/components/form/NameField.d.ts +2 -2
  215. package/dist/src/components/form/NameField.d.ts.map +1 -1
  216. package/dist/src/components/form/NameField.js +14 -4
  217. package/dist/src/components/form/NameField.js.map +1 -1
  218. package/dist/src/components/form/RichValidationTextField.d.ts +2 -2
  219. package/dist/src/components/form/RichValidationTextField.d.ts.map +1 -1
  220. package/dist/src/components/form/RichValidationTextField.js +13 -1
  221. package/dist/src/components/form/RichValidationTextField.js.map +1 -1
  222. package/dist/src/components/form/TextListField.d.ts +4 -2
  223. package/dist/src/components/form/TextListField.d.ts.map +1 -1
  224. package/dist/src/components/form/TextListField.js +13 -3
  225. package/dist/src/components/form/TextListField.js.map +1 -1
  226. package/dist/src/components/form/UploadField.d.ts +3 -2
  227. package/dist/src/components/form/UploadField.d.ts.map +1 -1
  228. package/dist/src/components/form/UploadField.js +10 -1
  229. package/dist/src/components/form/UploadField.js.map +1 -1
  230. package/dist/src/components/form/validations.js +1 -1
  231. package/dist/src/components/form/validations.js.map +1 -1
  232. package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.d.ts.map +1 -1
  233. package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.js +4 -1
  234. package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.js.map +1 -1
  235. package/dist/src/components/modals/CreateRepositoryModal/CreateRepositoryModal.d.ts.map +1 -1
  236. package/dist/src/components/modals/CreateRepositoryModal/CreateRepositoryModal.js +5 -3
  237. package/dist/src/components/modals/CreateRepositoryModal/CreateRepositoryModal.js.map +1 -1
  238. package/dist/src/components/modals/DecommissionModal/DecommissionModal.d.ts.map +1 -1
  239. package/dist/src/components/modals/DecommissionModal/DecommissionModal.js +32 -29
  240. package/dist/src/components/modals/DecommissionModal/DecommissionModal.js.map +1 -1
  241. package/dist/src/components/modals/DeleteModal/DeleteModal.d.ts.map +1 -1
  242. package/dist/src/components/modals/DeleteModal/DeleteModal.js +18 -15
  243. package/dist/src/components/modals/DeleteModal/DeleteModal.js.map +1 -1
  244. package/dist/src/components/modals/massModals/MassApproveDeviceModal/MassApproveDeviceModal.d.ts.map +1 -1
  245. package/dist/src/components/modals/massModals/MassApproveDeviceModal/MassApproveDeviceModal.js +33 -30
  246. package/dist/src/components/modals/massModals/MassApproveDeviceModal/MassApproveDeviceModal.js.map +1 -1
  247. package/dist/src/components/modals/massModals/MassDecommissionDeviceModal/MassDecommissionDeviceModal.d.ts.map +1 -1
  248. package/dist/src/components/modals/massModals/MassDecommissionDeviceModal/MassDecommissionDeviceModal.js +27 -24
  249. package/dist/src/components/modals/massModals/MassDecommissionDeviceModal/MassDecommissionDeviceModal.js.map +1 -1
  250. package/dist/src/components/modals/massModals/MassDeleteDeviceModal/MassDeleteDeviceModal.d.ts.map +1 -1
  251. package/dist/src/components/modals/massModals/MassDeleteDeviceModal/MassDeleteDeviceModal.js +26 -23
  252. package/dist/src/components/modals/massModals/MassDeleteDeviceModal/MassDeleteDeviceModal.js.map +1 -1
  253. package/dist/src/components/modals/massModals/MassDeleteFleetModal/MassDeleteFleetModal.d.ts.map +1 -1
  254. package/dist/src/components/modals/massModals/MassDeleteFleetModal/MassDeleteFleetModal.js +30 -25
  255. package/dist/src/components/modals/massModals/MassDeleteFleetModal/MassDeleteFleetModal.js.map +1 -1
  256. package/dist/src/components/modals/massModals/MassDeleteRepositoryModal/MassDeleteRepositoryModal.d.ts.map +1 -1
  257. package/dist/src/components/modals/massModals/MassDeleteRepositoryModal/MassDeleteRepositoryModal.js +29 -26
  258. package/dist/src/components/modals/massModals/MassDeleteRepositoryModal/MassDeleteRepositoryModal.js.map +1 -1
  259. package/dist/src/components/modals/massModals/MassDeleteResourceSyncModal/MassDeleteResourceSyncModal.d.ts +1 -1
  260. package/dist/src/components/modals/massModals/MassDeleteResourceSyncModal/MassDeleteResourceSyncModal.d.ts.map +1 -1
  261. package/dist/src/components/modals/massModals/MassDeleteResourceSyncModal/MassDeleteResourceSyncModal.js +28 -25
  262. package/dist/src/components/modals/massModals/MassDeleteResourceSyncModal/MassDeleteResourceSyncModal.js.map +1 -1
  263. package/dist/src/constants.d.ts +2 -1
  264. package/dist/src/constants.d.ts.map +1 -1
  265. package/dist/src/constants.js +3 -1
  266. package/dist/src/constants.js.map +1 -1
  267. package/dist/src/hooks/useAppLinks.d.ts +5 -0
  268. package/dist/src/hooks/useAppLinks.d.ts.map +1 -0
  269. package/dist/src/hooks/useAppLinks.js +45 -0
  270. package/dist/src/hooks/useAppLinks.js.map +1 -0
  271. package/dist/src/{components/EnrollmentRequest/EnrollmentRequestDetails/useEnrollmentRequestSystemInfo.d.ts → hooks/useDeviceSpecSystemInfo.d.ts} +2 -2
  272. package/dist/src/hooks/useDeviceSpecSystemInfo.d.ts.map +1 -0
  273. package/dist/src/{components/EnrollmentRequest/EnrollmentRequestDetails/useEnrollmentRequestSystemInfo.js → hooks/useDeviceSpecSystemInfo.js} +18 -10
  274. package/dist/src/hooks/useDeviceSpecSystemInfo.js.map +1 -0
  275. package/dist/src/hooks/useFetchPeriodically.d.ts +2 -2
  276. package/dist/src/hooks/useFetchPeriodically.d.ts.map +1 -1
  277. package/dist/src/hooks/useFetchPeriodically.js +1 -1
  278. package/dist/src/hooks/useFetchPeriodically.js.map +1 -1
  279. package/dist/src/hooks/useThemePreferences.d.ts +6 -3
  280. package/dist/src/hooks/useThemePreferences.d.ts.map +1 -1
  281. package/dist/src/hooks/useThemePreferences.js +46 -23
  282. package/dist/src/hooks/useThemePreferences.js.map +1 -1
  283. package/dist/src/types/deviceSpec.d.ts +7 -1
  284. package/dist/src/types/deviceSpec.d.ts.map +1 -1
  285. package/dist/src/types/deviceSpec.js +16 -12
  286. package/dist/src/types/deviceSpec.js.map +1 -1
  287. package/dist/src/types/extraTypes.d.ts +3 -2
  288. package/dist/src/types/extraTypes.d.ts.map +1 -1
  289. package/dist/src/types/extraTypes.js.map +1 -1
  290. package/dist/src/utils/dates.d.ts +2 -1
  291. package/dist/src/utils/dates.d.ts.map +1 -1
  292. package/dist/src/utils/dates.js +20 -20
  293. package/dist/src/utils/dates.js.map +1 -1
  294. package/dist/src/utils/patch.d.ts.map +1 -1
  295. package/dist/src/utils/patch.js +2 -1
  296. package/dist/src/utils/patch.js.map +1 -1
  297. package/package.json +6 -2
  298. package/src/components/DetailsPage/DetailsPageActions.tsx +2 -1
  299. package/src/components/Device/AddDeviceModal/AddDeviceModal.tsx +27 -22
  300. package/src/components/Device/DeviceDetails/DeviceDetailsPage.tsx +10 -19
  301. package/src/components/Device/DeviceDetails/DeviceDetailsTab.tsx +65 -21
  302. package/src/components/Device/DevicesPage/DecommissionedDevicesTable.tsx +2 -2
  303. package/src/components/Device/DevicesPage/EnrolledDevicesTable.tsx +2 -2
  304. package/src/components/Device/EditDeviceWizard/EditDeviceWizard.tsx +6 -1
  305. package/src/components/Device/EditDeviceWizard/deviceSpecUtils.ts +28 -1
  306. package/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.tsx +19 -5
  307. package/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.tsx +53 -23
  308. package/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.tsx +68 -53
  309. package/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.tsx +40 -25
  310. package/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.tsx +39 -5
  311. package/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.tsx +81 -38
  312. package/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.tsx +15 -19
  313. package/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.tsx +7 -47
  314. package/src/components/Device/EditDeviceWizard/steps/GeneralInfoStep.tsx +1 -1
  315. package/src/components/Device/EditDeviceWizard/steps/ReviewDeviceStep.tsx +1 -1
  316. package/src/components/Device/EditDeviceWizard/steps/ReviewUpdatePolicy.tsx +2 -2
  317. package/src/components/Device/EditDeviceWizard/steps/SystemdUnitsForm.tsx +30 -2
  318. package/src/components/Device/EditDeviceWizard/utils.ts +6 -7
  319. package/src/components/Device/SystemdUnitsModal/SystemdUnitsModal.tsx +38 -35
  320. package/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.tsx +8 -19
  321. package/src/components/Events/EventItem.tsx +38 -0
  322. package/src/components/Events/EventsCard.css +5 -0
  323. package/src/components/Events/EventsCard.tsx +157 -0
  324. package/src/components/Events/useEvents.ts +136 -0
  325. package/src/components/Fleet/CreateFleet/CreateFleetWizard.tsx +29 -13
  326. package/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.tsx +25 -10
  327. package/src/components/Fleet/CreateFleet/fleetSpecUtils.ts +9 -23
  328. package/src/components/Fleet/CreateFleet/steps/DeviceLabelSelector.tsx +12 -1
  329. package/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.tsx +10 -5
  330. package/src/components/Fleet/CreateFleet/steps/ReviewStep.tsx +20 -17
  331. package/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.tsx +18 -122
  332. package/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.tsx +4 -1
  333. package/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.tsx +50 -31
  334. package/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.tsx +57 -12
  335. package/src/components/Fleet/CreateFleet/utils.ts +40 -22
  336. package/src/components/Fleet/DeleteFleetModal/DeleteFleetModal.tsx +28 -28
  337. package/src/components/Fleet/FleetDetails/FleetDetailsContent.tsx +10 -9
  338. package/src/components/Fleet/FleetDetails/{FleetDetails.tsx → FleetDetailsPage.tsx} +40 -25
  339. package/src/components/Fleet/FleetRow.tsx +10 -11
  340. package/src/components/Masthead/UserPreferencesModal.tsx +43 -56
  341. package/src/components/Masthead/UserPreferencesProvider.tsx +15 -10
  342. package/src/components/Repository/CreateRepository/CreateRepositoryForm.tsx +14 -15
  343. package/src/components/Repository/CreateRepository/utils.ts +2 -3
  344. package/src/components/Repository/RepositoryDetails/DeleteRepositoryModal.tsx +54 -55
  345. package/src/components/Repository/RepositoryDetails/RepositoryDetails.tsx +47 -14
  346. package/src/components/ResourceSync/RepositoryResourceSyncList.tsx +28 -25
  347. package/src/components/common/CodeEditor/CodeEditorTheme.ts +53 -0
  348. package/src/components/common/CodeEditor/Shortcut.css +22 -0
  349. package/src/components/common/CodeEditor/Shortcut.tsx +90 -0
  350. package/src/components/common/CodeEditor/YamlEditor.css +12 -0
  351. package/src/components/common/CodeEditor/YamlEditor.tsx +81 -0
  352. package/src/components/common/CodeEditor/YamlEditorBase.css +3 -0
  353. package/src/components/common/CodeEditor/YamlEditorBase.tsx +124 -0
  354. package/src/components/common/CodeEditor/useShortcutPopover.tsx +39 -0
  355. package/src/components/common/LabelsView.tsx +2 -11
  356. package/src/components/common/LeaveFormConfirmation.tsx +14 -18
  357. package/src/components/common/TechPreviewBadge.tsx +3 -1
  358. package/src/components/form/FlightCtlActionGroup.tsx +1 -1
  359. package/src/components/form/FormSelect.tsx +14 -3
  360. package/src/components/form/FormSelectTypeahead.tsx +24 -3
  361. package/src/components/form/LabelsField.tsx +20 -20
  362. package/src/components/form/NameField.tsx +18 -4
  363. package/src/components/form/RichValidationTextField.tsx +20 -1
  364. package/src/components/form/TextListField.tsx +19 -3
  365. package/src/components/form/UploadField.tsx +16 -2
  366. package/src/components/form/validations.ts +1 -1
  367. package/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.tsx +12 -7
  368. package/src/components/modals/CreateRepositoryModal/CreateRepositoryModal.tsx +6 -3
  369. package/src/components/modals/DecommissionModal/DecommissionModal.tsx +60 -56
  370. package/src/components/modals/DeleteModal/DeleteModal.tsx +25 -27
  371. package/src/components/modals/massModals/MassApproveDeviceModal/MassApproveDeviceModal.tsx +81 -92
  372. package/src/components/modals/massModals/MassDecommissionDeviceModal/MassDecommissionDeviceModal.tsx +64 -67
  373. package/src/components/modals/massModals/MassDeleteDeviceModal/MassDeleteDeviceModal.tsx +60 -62
  374. package/src/components/modals/massModals/MassDeleteFleetModal/MassDeleteFleetModal.tsx +80 -87
  375. package/src/components/modals/massModals/MassDeleteRepositoryModal/MassDeleteRepositoryModal.tsx +70 -73
  376. package/src/components/modals/massModals/MassDeleteResourceSyncModal/MassDeleteResourceSyncModal.tsx +62 -63
  377. package/src/constants.ts +2 -1
  378. package/src/hooks/useAppLinks.ts +49 -0
  379. package/src/{components/EnrollmentRequest/EnrollmentRequestDetails/useEnrollmentRequestSystemInfo.tsx → hooks/useDeviceSpecSystemInfo.tsx} +15 -7
  380. package/src/hooks/useFetchPeriodically.ts +3 -3
  381. package/src/hooks/useThemePreferences.ts +48 -21
  382. package/src/types/deviceSpec.ts +25 -12
  383. package/src/types/extraTypes.ts +7 -4
  384. package/src/utils/dates.ts +23 -24
  385. package/src/utils/patch.ts +3 -1
  386. package/dist/src/components/Device/DeviceDetails/DeviceStatusDebugModal.css +0 -3
  387. package/dist/src/components/Device/DeviceDetails/DeviceStatusDebugModal.d.ts +0 -9
  388. package/dist/src/components/Device/DeviceDetails/DeviceStatusDebugModal.d.ts.map +0 -1
  389. package/dist/src/components/Device/DeviceDetails/DeviceStatusDebugModal.js +0 -34
  390. package/dist/src/components/Device/DeviceDetails/DeviceStatusDebugModal.js.map +0 -1
  391. package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/useEnrollmentRequestSystemInfo.d.ts.map +0 -1
  392. package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/useEnrollmentRequestSystemInfo.js.map +0 -1
  393. package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.d.ts +0 -9
  394. package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.d.ts.map +0 -1
  395. package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.js +0 -61
  396. package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.js.map +0 -1
  397. package/dist/src/components/Fleet/FleetDetails/FleetDetails.d.ts.map +0 -1
  398. package/dist/src/components/Fleet/FleetDetails/FleetDetails.js.map +0 -1
  399. package/dist/src/components/common/LabelsView.css +0 -9
  400. package/dist/src/links.d.ts +0 -7
  401. package/dist/src/links.d.ts.map +0 -1
  402. package/dist/src/links.js +0 -14
  403. package/dist/src/links.js.map +0 -1
  404. package/src/components/Device/DeviceDetails/DeviceStatusDebugModal.css +0 -3
  405. package/src/components/Device/DeviceDetails/DeviceStatusDebugModal.tsx +0 -60
  406. package/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.tsx +0 -96
  407. package/src/components/common/LabelsView.css +0 -9
  408. package/src/links.ts +0 -16
@@ -10,13 +10,18 @@ import FlightCtlForm from '../../../form/FlightCtlForm';
10
10
  import { getDnsSubdomainValidations } from '../../../form/validations';
11
11
  import DeviceLabelSelector from './DeviceLabelSelector';
12
12
 
13
+ type GeneralInfoStepProps = {
14
+ isReadOnly: boolean;
15
+ isEdit: boolean;
16
+ };
17
+
13
18
  export const generalInfoStepId = 'general-info';
14
19
 
15
20
  export const isGeneralInfoStepValid = (errors: FormikErrors<FleetFormValues>) => {
16
21
  return !errors.name && !errors.labels && !errors.fleetLabels;
17
22
  };
18
23
 
19
- const GeneralInfoStep = ({ isEdit }: { isEdit: boolean }) => {
24
+ const GeneralInfoStep = ({ isEdit, isReadOnly }: GeneralInfoStepProps) => {
20
25
  const { t } = useTranslation();
21
26
 
22
27
  return (
@@ -24,17 +29,17 @@ const GeneralInfoStep = ({ isEdit }: { isEdit: boolean }) => {
24
29
  <FlightCtlForm>
25
30
  <NameField
26
31
  name="name"
27
- aria-label={t('Name')}
32
+ aria-label={t('Fleet name')}
28
33
  isRequired
29
- isDisabled={isEdit}
34
+ isDisabled={isEdit || isReadOnly}
30
35
  resourceType="fleets"
31
36
  validations={getDnsSubdomainValidations(t)}
32
37
  />
33
38
  <FormGroup label={t('Fleet labels')}>
34
- <LabelsField name="fleetLabels" />
39
+ <LabelsField name="fleetLabels" isDisabled={isReadOnly} />
35
40
  </FormGroup>
36
41
  <FormGroup label={t('Device selector')}>
37
- <DeviceLabelSelector />
42
+ <DeviceLabelSelector isReadOnly={isReadOnly} />
38
43
  </FormGroup>
39
44
  </FlightCtlForm>
40
45
  </Grid>
@@ -40,7 +40,7 @@ const ReviewStep = ({ error }: { error?: unknown }) => {
40
40
  }}
41
41
  >
42
42
  <DescriptionListGroup>
43
- <DescriptionListTerm>{t('Name')}</DescriptionListTerm>
43
+ <DescriptionListTerm>{t('Fleet name')}</DescriptionListTerm>
44
44
  <DescriptionListDescription>{values.name}</DescriptionListDescription>
45
45
  </DescriptionListGroup>
46
46
  {values.fleetLabels.length > 0 && (
@@ -92,22 +92,25 @@ const ReviewStep = ({ error }: { error?: unknown }) => {
92
92
  </DescriptionListDescription>
93
93
  </DescriptionListGroup>
94
94
  )}
95
-
96
- {values.rolloutPolicy.isAdvanced && (
97
- <DescriptionListGroup>
98
- <DescriptionListTerm>{t('Rollout policy')}</DescriptionListTerm>
99
- <DescriptionListDescription>
100
- <ReviewUpdateRolloutPolicy rolloutPolicy={values.rolloutPolicy} />
101
- </DescriptionListDescription>
102
- </DescriptionListGroup>
103
- )}
104
- {values.disruptionBudget.isAdvanced && (
105
- <DescriptionListGroup>
106
- <DescriptionListTerm>{t('Disruption budget')}</DescriptionListTerm>
107
- <DescriptionListDescription>
108
- <ReviewUpdateDisruptionBudget disruptionBudget={values.disruptionBudget} />
109
- </DescriptionListDescription>
110
- </DescriptionListGroup>
95
+ {!values.useBasicUpdateConfig && (
96
+ <>
97
+ {values.rolloutPolicy.isAdvanced && (
98
+ <DescriptionListGroup>
99
+ <DescriptionListTerm>{t('Rollout policy')}</DescriptionListTerm>
100
+ <DescriptionListDescription>
101
+ <ReviewUpdateRolloutPolicy rolloutPolicy={values.rolloutPolicy} />
102
+ </DescriptionListDescription>
103
+ </DescriptionListGroup>
104
+ )}
105
+ {values.disruptionBudget.isAdvanced && (
106
+ <DescriptionListGroup>
107
+ <DescriptionListTerm>{t('Disruption budget')}</DescriptionListTerm>
108
+ <DescriptionListDescription>
109
+ <ReviewUpdateDisruptionBudget disruptionBudget={values.disruptionBudget} />
110
+ </DescriptionListDescription>
111
+ </DescriptionListGroup>
112
+ )}
113
+ </>
111
114
  )}
112
115
  </FlightControlDescriptionList>
113
116
  </StackItem>
@@ -1,12 +1,7 @@
1
1
  import * as React from 'react';
2
- import { Alert, Checkbox, FormGroup, FormSection, Grid } from '@patternfly/react-core';
2
+ import { Alert, FormSection, Grid } from '@patternfly/react-core';
3
3
  import { FormikErrors, useFormikContext } from 'formik';
4
4
 
5
- import {
6
- DEFAULT_BACKEND_UPDATE_TIMEOUT_MINUTES,
7
- getEmptyInitializedBatch,
8
- getEmptyUpdateFormParams,
9
- } from '../fleetSpecUtils';
10
5
  import { useTranslation } from '../../../../hooks/useTranslation';
11
6
  import LabelWithHelperText from '../../../common/WithHelperText';
12
7
  import { FleetFormValues } from '../../../../types/deviceSpec';
@@ -15,133 +10,42 @@ import FlightCtlForm from '../../../form/FlightCtlForm';
15
10
  import UpdateStepRolloutPolicy from './UpdateStepRolloutPolicy';
16
11
  import UpdateStepDisruptionBudget from './UpdateStepDisruptionBudget';
17
12
  import UpdateStepUpdatePolicy from './UpdateStepUpdatePolicy';
18
- import UpdateConfirmChangesModal, { StepSetting } from './UpdateConfirmChangesModal';
13
+ import CheckboxField from '../../../form/CheckboxField';
19
14
 
20
15
  export const updatePolicyStepId = 'update-policy';
21
16
 
22
17
  export const isUpdatePolicyStepValid = (errors: FormikErrors<FleetFormValues>) =>
23
18
  !errors.rolloutPolicy && !errors.disruptionBudget && !errors.updatePolicy;
24
19
 
25
- const UpdatePolicyStep = () => {
20
+ const UpdatePolicyStep = ({ isReadOnly }: { isReadOnly: boolean }) => {
26
21
  const { t } = useTranslation();
27
22
 
28
23
  const {
29
- values: { rolloutPolicy, disruptionBudget, updatePolicy },
30
- setFieldValue,
24
+ values: { useBasicUpdateConfig, rolloutPolicy, disruptionBudget, updatePolicy },
31
25
  } = useFormikContext<FleetFormValues>();
32
26
 
33
- const [forceShowAdvancedMode, setForceShowAdvancedMode] = React.useState<boolean>(false);
34
- const [alertSwitchToBasic, setAlertSwitchToBasic] = React.useState<StepSetting>();
35
- const hasAdvancedMode = rolloutPolicy.isAdvanced || disruptionBudget.isAdvanced || updatePolicy.isAdvanced;
36
-
37
- const onSettingsChange = (setting: StepSetting, toAdvanced: boolean) => {
38
- if (toAdvanced) {
39
- switch (setting) {
40
- case 'all-settings':
41
- setForceShowAdvancedMode(true);
42
- break;
43
- case 'rollout-policies':
44
- setFieldValue('rolloutPolicy.isAdvanced', true);
45
- void onChangePolicyType(true);
46
- break;
47
- case 'disruption-budget':
48
- setFieldValue('disruptionBudget.isAdvanced', true);
49
- void onChangeDisruptionBudget(true);
50
- break;
51
- case 'update-policies':
52
- setFieldValue('updatePolicy.isAdvanced', true);
53
- void onChangeUpdatePolicy(true);
54
- break;
55
- }
56
- } else {
57
- setAlertSwitchToBasic(setting);
58
- }
59
- };
60
-
61
- const onChangePolicyType = async (toAdvanced: boolean) => {
62
- await setFieldValue('rolloutPolicy', {
63
- isAdvanced: toAdvanced,
64
- batches: toAdvanced ? [getEmptyInitializedBatch()] : [],
65
- updateTimeout: DEFAULT_BACKEND_UPDATE_TIMEOUT_MINUTES,
66
- });
67
- };
68
-
69
- const onChangeDisruptionBudget = async (toAdvanced: boolean) => {
70
- if (!toAdvanced) {
71
- await setFieldValue('disruptionBudget', {
72
- isAdvanced: false,
73
- groupBy: [],
74
- minAvailable: '',
75
- maxUnavailable: '',
76
- });
77
- }
78
- };
79
-
80
- const onChangeUpdatePolicy = async (toAdvanced: boolean) => {
81
- if (!toAdvanced) {
82
- await setFieldValue('updatePolicy', getEmptyUpdateFormParams());
83
- }
84
- };
85
-
86
- const onModalClose = async (doSwitch: boolean) => {
87
- setAlertSwitchToBasic(undefined);
88
- if (!doSwitch) {
89
- return;
90
- }
91
-
92
- // When the user confirms switching a setting to its basic mode
93
- switch (alertSwitchToBasic) {
94
- case 'all-settings':
95
- await onChangePolicyType(false);
96
- await onChangeDisruptionBudget(false);
97
- await onChangeUpdatePolicy(false);
98
- break;
99
- case 'rollout-policies':
100
- void onChangePolicyType(false);
101
- break;
102
- case 'disruption-budget':
103
- void onChangeDisruptionBudget(false);
104
- break;
105
- case 'update-policies':
106
- void onChangeUpdatePolicy(false);
107
- break;
108
- }
109
- setForceShowAdvancedMode(false);
110
- };
111
-
112
27
  return (
113
28
  <Grid lg={8}>
114
29
  <FlightCtlForm>
115
- <FormGroup>
116
- <Checkbox
117
- label={t('Use basic configurations')}
118
- isChecked={!hasAdvancedMode && !forceShowAdvancedMode}
119
- id="all-settings"
120
- onChange={(_ev: React.FormEvent<HTMLInputElement>, toBasic: boolean) => {
121
- onSettingsChange('all-settings', !toBasic);
122
- }}
123
- />
124
- </FormGroup>
125
- {hasAdvancedMode || forceShowAdvancedMode ? (
30
+ <CheckboxField name="useBasicUpdateConfig" label={t('Use basic configurations')} />
31
+ {!useBasicUpdateConfig ? (
126
32
  <FormSection title={t('Advanced configurations')} titleElement="h1" className="pf-v5-u-mt-sm">
127
33
  {/* Rollout policies */}
128
- <Checkbox
34
+ <CheckboxField
35
+ name="rolloutPolicy.isAdvanced"
129
36
  label={
130
37
  <LabelWithHelperText
131
38
  label={t('Set rollout policies')}
132
39
  content={t('Rollout policies allow you to control the order of updates for the fleet devices.')}
133
40
  />
134
41
  }
135
- isChecked={rolloutPolicy.isAdvanced}
136
- id="advRolloutPolicy"
137
- onChange={(_ev: React.FormEvent<HTMLInputElement>, toAdvanced: boolean) =>
138
- onSettingsChange('rollout-policies', toAdvanced)
139
- }
140
- body={rolloutPolicy.isAdvanced && <UpdateStepRolloutPolicy />}
42
+ isDisabled={isReadOnly}
43
+ body={rolloutPolicy.isAdvanced && <UpdateStepRolloutPolicy isReadOnly={isReadOnly} />}
141
44
  />
142
45
 
143
46
  {/* Disruption budget */}
144
- <Checkbox
47
+ <CheckboxField
48
+ name="disruptionBudget.isAdvanced"
145
49
  label={
146
50
  <LabelWithHelperText
147
51
  label={t('Set disruption budget')}
@@ -150,28 +54,21 @@ const UpdatePolicyStep = () => {
150
54
  )}
151
55
  />
152
56
  }
153
- isChecked={disruptionBudget.isAdvanced}
154
- id="advDisruptionBudget"
155
- onChange={(_ev: React.FormEvent<HTMLInputElement>, toAdvanced: boolean) =>
156
- onSettingsChange('disruption-budget', toAdvanced)
157
- }
158
- body={disruptionBudget.isAdvanced && <UpdateStepDisruptionBudget />}
57
+ isDisabled={isReadOnly}
58
+ body={disruptionBudget.isAdvanced && <UpdateStepDisruptionBudget isReadOnly={isReadOnly} />}
159
59
  />
160
60
 
161
61
  {/* Update (and download) policies */}
162
- <Checkbox
62
+ <CheckboxField
63
+ name="updatePolicy.isAdvanced"
163
64
  label={
164
65
  <LabelWithHelperText
165
66
  label={t('Set update policies')}
166
67
  content={t('Update policies allow you to control when updates should be downloaded and applied.')}
167
68
  />
168
69
  }
169
- isChecked={updatePolicy.isAdvanced}
170
- id="advUpdatePolicy"
171
- onChange={(_ev: React.FormEvent<HTMLInputElement>, toAdvanced: boolean) =>
172
- onSettingsChange('update-policies', toAdvanced)
173
- }
174
- body={updatePolicy.isAdvanced && <UpdateStepUpdatePolicy />}
70
+ isDisabled={isReadOnly}
71
+ body={updatePolicy.isAdvanced && <UpdateStepUpdatePolicy isReadOnly={isReadOnly} />}
175
72
  />
176
73
  </FormSection>
177
74
  ) : (
@@ -179,7 +76,6 @@ const UpdatePolicyStep = () => {
179
76
  {t('All the devices that are part of this fleet will receive updates as soon as they are available.')}
180
77
  </Alert>
181
78
  )}
182
- {alertSwitchToBasic && <UpdateConfirmChangesModal setting={alertSwitchToBasic} onClose={onModalClose} />}
183
79
  </FlightCtlForm>
184
80
  </Grid>
185
81
  );
@@ -9,7 +9,7 @@ import ErrorHelperText from '../../../form/FieldHelperText';
9
9
  import { FormGroupWithHelperText } from '../../../common/WithHelperText';
10
10
  import { DisruptionBudgetForm } from '../../../../types/deviceSpec';
11
11
 
12
- const UpdateStepDisruptionBudget = () => {
12
+ const UpdateStepDisruptionBudget = ({ isReadOnly }: { isReadOnly: boolean }) => {
13
13
  const { t } = useTranslation();
14
14
 
15
15
  const [, meta] = useField<DisruptionBudgetForm>('disruptionBudget');
@@ -29,6 +29,7 @@ const UpdateStepDisruptionBudget = () => {
29
29
  <StackItem>{t("Leaving this empty will apply the disruption budget to all fleet's devices.")}</StackItem>
30
30
  </Stack>
31
31
  }
32
+ isReadOnly={isReadOnly}
32
33
  />
33
34
  </FormGroupWithHelperText>
34
35
  <FormGroup>
@@ -44,6 +45,7 @@ const UpdateStepDisruptionBudget = () => {
44
45
  aria-label={t('Minimum number of available devices')}
45
46
  name="disruptionBudget.minAvailable"
46
47
  min={1}
48
+ isDisabled={isReadOnly}
47
49
  />
48
50
  </FormGroupWithHelperText>
49
51
  </FlexItem>
@@ -58,6 +60,7 @@ const UpdateStepDisruptionBudget = () => {
58
60
  aria-label={t('Maximum number of unavailable devices')}
59
61
  name="disruptionBudget.maxUnavailable"
60
62
  min={1}
63
+ isDisabled={isReadOnly}
61
64
  />
62
65
  </FormGroupWithHelperText>
63
66
  </FlexItem>
@@ -24,7 +24,7 @@ import { FormGroupWithHelperText } from '../../../common/WithHelperText';
24
24
  import { useTranslation } from '../../../../hooks/useTranslation';
25
25
  import { getEmptyInitializedBatch } from '../fleetSpecUtils';
26
26
 
27
- const RolloutPolicyBatch = ({ index }: { index: number }) => {
27
+ const RolloutPolicyBatch = ({ index, isReadOnly }: { index: number; isReadOnly: boolean }) => {
28
28
  const { t } = useTranslation();
29
29
 
30
30
  const items = React.useMemo(
@@ -47,16 +47,20 @@ const RolloutPolicyBatch = ({ index }: { index: number }) => {
47
47
  {/* Show errors not related to an individual field */}
48
48
  {typeof meta.error === 'string' && (
49
49
  <GridItem>
50
- <ErrorHelperText meta={meta} />
50
+ <ErrorHelperText meta={meta} touchRequired={false} />
51
51
  </GridItem>
52
52
  )}
53
53
  <FormGroup label={t('Select devices using labels')}>
54
- <LabelsField aria-label={t('Label selector')} name={`rolloutPolicy.batches.${index}.selector`} />
54
+ <LabelsField
55
+ aria-label={t('Label selector')}
56
+ name={`rolloutPolicy.batches.${index}.selector`}
57
+ isDisabled={isReadOnly}
58
+ />
55
59
  </FormGroup>
56
60
  <FormGroup label={t('Select a subset using')}>
57
61
  <Split hasGutter>
58
62
  <SplitItem>
59
- <FormSelect items={items} name={`rolloutPolicy.batches.${index}.limitType`} />
63
+ <FormSelect items={items} name={`rolloutPolicy.batches.${index}.limitType`} isDisabled={isReadOnly} />
60
64
  </SplitItem>
61
65
  <SplitItem>
62
66
  <NumberField
@@ -66,6 +70,7 @@ const RolloutPolicyBatch = ({ index }: { index: number }) => {
66
70
  max={isPercent ? 100 : undefined}
67
71
  widthChars={isPercent ? 3 : 8}
68
72
  unit={isPercent ? '%' : undefined}
73
+ isDisabled={isReadOnly}
69
74
  />
70
75
  </SplitItem>
71
76
  </Split>
@@ -86,6 +91,7 @@ const RolloutPolicyBatch = ({ index }: { index: number }) => {
86
91
  min={1}
87
92
  max={100}
88
93
  isRequired
94
+ isDisabled={isReadOnly}
89
95
  />
90
96
  </FlexItem>
91
97
  <FlexItem flex={{ lg: 'flex_1' }} style={{ minWidth: 200 }}>
@@ -100,7 +106,7 @@ const RolloutPolicyBatch = ({ index }: { index: number }) => {
100
106
  );
101
107
  };
102
108
 
103
- const UpdateStepRolloutPolicy = () => {
109
+ const UpdateStepRolloutPolicy = ({ isReadOnly }: { isReadOnly: boolean }) => {
104
110
  const { t } = useTranslation();
105
111
 
106
112
  const {
@@ -108,6 +114,9 @@ const UpdateStepRolloutPolicy = () => {
108
114
  } = useFormikContext<FleetFormValues>();
109
115
 
110
116
  const batches = rolloutPolicy.batches || [];
117
+ if (isReadOnly && batches.length === 0) {
118
+ return null;
119
+ }
111
120
 
112
121
  return (
113
122
  <>
@@ -126,7 +135,13 @@ const UpdateStepRolloutPolicy = () => {
126
135
  <Flex>
127
136
  <FlexItem>{t('Timeout devices that fail to update after')}</FlexItem>
128
137
  <FlexItem>
129
- <NumberField aria-label={t('Update timeout')} name="rolloutPolicy.updateTimeout" min={1} isRequired />
138
+ <NumberField
139
+ aria-label={t('Update timeout')}
140
+ name="rolloutPolicy.updateTimeout"
141
+ min={1}
142
+ isRequired
143
+ isDisabled={isReadOnly}
144
+ />
130
145
  </FlexItem>
131
146
  <FlexItem>{t('minutes')}.</FlexItem>
132
147
  </Flex>
@@ -140,35 +155,39 @@ const UpdateStepRolloutPolicy = () => {
140
155
  <FormSection key={index}>
141
156
  <Split hasGutter>
142
157
  <SplitItem isFilled>
143
- <RolloutPolicyBatch index={index} />
144
- </SplitItem>
145
- <SplitItem>
146
- <Button
147
- aria-label={t('Delete batch')}
148
- variant="link"
149
- icon={<MinusCircleIcon />}
150
- iconPosition="start"
151
- onClick={() => remove(index)}
152
- isDisabled={batches.length === 1}
153
- />
158
+ <RolloutPolicyBatch index={index} isReadOnly={isReadOnly} />
154
159
  </SplitItem>
160
+ {!isReadOnly && (
161
+ <SplitItem>
162
+ <Button
163
+ aria-label={t('Delete batch')}
164
+ variant="link"
165
+ icon={<MinusCircleIcon />}
166
+ iconPosition="start"
167
+ onClick={() => remove(index)}
168
+ isDisabled={batches.length === 1}
169
+ />
170
+ </SplitItem>
171
+ )}
155
172
  </Split>
156
173
  </FormSection>
157
174
  ))}
158
- <FormSection>
159
- <FormGroup>
160
- <Button
161
- variant="link"
162
- icon={<PlusCircleIcon />}
163
- iconPosition="start"
164
- onClick={() => {
165
- push(getEmptyInitializedBatch());
166
- }}
167
- >
168
- {t('Add batch')}
169
- </Button>
170
- </FormGroup>
171
- </FormSection>
175
+ {!isReadOnly && (
176
+ <FormSection>
177
+ <FormGroup>
178
+ <Button
179
+ variant="link"
180
+ icon={<PlusCircleIcon />}
181
+ iconPosition="start"
182
+ onClick={() => {
183
+ push(getEmptyInitializedBatch());
184
+ }}
185
+ >
186
+ {t('Add batch')}
187
+ </Button>
188
+ </FormGroup>
189
+ </FormSection>
190
+ )}
172
191
  </>
173
192
  )}
174
193
  </FieldArray>
@@ -24,9 +24,10 @@ type ScheduleBlockProps = {
24
24
  blockType: ScheduleBlockType;
25
25
  weekDayError?: string[] | string | Weekday;
26
26
  onScheduleModeSwitch: (blockType: ScheduleBlockType) => void;
27
+ isReadOnly?: boolean;
27
28
  };
28
29
 
29
- const ScheduleTimeZone = ({ blockType }: { blockType: ScheduleBlockType }) => {
30
+ const ScheduleTimeZone = ({ blockType, isReadOnly }: { blockType: ScheduleBlockType; isReadOnly?: boolean }) => {
30
31
  const { t } = useTranslation();
31
32
 
32
33
  const id = `updatePolicy.${blockType}TimeZone`;
@@ -49,14 +50,23 @@ const ScheduleTimeZone = ({ blockType }: { blockType: ScheduleBlockType }) => {
49
50
  id={id}
50
51
  onChange={onChangeTimezoneCheckbox}
51
52
  label={t("Use device's local timezone")}
53
+ isDisabled={isReadOnly}
52
54
  />
53
55
 
54
- {timeZone !== timeUtils.localDeviceTimezone && <FormSelectTypeahead name={id} defaultId="" items={zones} />}
56
+ {timeZone !== timeUtils.localDeviceTimezone && (
57
+ <FormSelectTypeahead name={id} defaultId="" items={zones} isDisabled={isReadOnly} />
58
+ )}
55
59
  </FormGroup>
56
60
  );
57
61
  };
58
62
 
59
- const ScheduleBlock = ({ blockType, updatePolicy, onScheduleModeSwitch, weekDayError }: ScheduleBlockProps) => {
63
+ const ScheduleBlock = ({
64
+ blockType,
65
+ updatePolicy,
66
+ onScheduleModeSwitch,
67
+ weekDayError,
68
+ isReadOnly,
69
+ }: ScheduleBlockProps) => {
60
70
  const { t } = useTranslation();
61
71
 
62
72
  let ariaLabel: string;
@@ -115,6 +125,7 @@ const ScheduleBlock = ({ blockType, updatePolicy, onScheduleModeSwitch, weekDayE
115
125
  items={selectableTimes}
116
126
  isValidTypedItem={isValidTypedItem}
117
127
  transformTypedItem={transformTypedItem}
128
+ isDisabled={isReadOnly}
118
129
  />
119
130
  </FlexItem>
120
131
  <FlexItem>
@@ -125,6 +136,7 @@ const ScheduleBlock = ({ blockType, updatePolicy, onScheduleModeSwitch, weekDayE
125
136
  items={selectableTimes}
126
137
  isValidTypedItem={isValidTypedItem}
127
138
  transformTypedItem={transformTypedItem}
139
+ isDisabled={isReadOnly}
128
140
  />
129
141
  </FlexItem>
130
142
  <FlexItem>
@@ -133,6 +145,7 @@ const ScheduleBlock = ({ blockType, updatePolicy, onScheduleModeSwitch, weekDayE
133
145
  name={`updatePolicy.${blockType}ScheduleMode`}
134
146
  label={t('Daily')}
135
147
  checkedValue={timeUtils.UpdateScheduleMode.Daily}
148
+ isDisabled={isReadOnly}
136
149
  />
137
150
  </FlexItem>
138
151
  <FlexItem>
@@ -142,6 +155,7 @@ const ScheduleBlock = ({ blockType, updatePolicy, onScheduleModeSwitch, weekDayE
142
155
  label={t('Weekly')}
143
156
  checkedValue={timeUtils.UpdateScheduleMode.Weekly}
144
157
  onChangeCustom={() => onScheduleModeSwitch(blockType)}
158
+ isDisabled={isReadOnly}
145
159
  />
146
160
  </FlexItem>
147
161
  </Flex>
@@ -153,25 +167,53 @@ const ScheduleBlock = ({ blockType, updatePolicy, onScheduleModeSwitch, weekDayE
153
167
  <StackItem>
154
168
  <Flex>
155
169
  <FlexItem>
156
- <CheckboxFieldGroupValidation name={`updatePolicy.${blockType}WeekDays[0]`} label={t('Sun')} />
170
+ <CheckboxFieldGroupValidation
171
+ name={`updatePolicy.${blockType}WeekDays[0]`}
172
+ label={t('Sun')}
173
+ isDisabled={isReadOnly}
174
+ />
157
175
  </FlexItem>
158
176
  <FlexItem>
159
- <CheckboxFieldGroupValidation name={`updatePolicy.${blockType}WeekDays[1]`} label={t('Mon')} />
177
+ <CheckboxFieldGroupValidation
178
+ name={`updatePolicy.${blockType}WeekDays[1]`}
179
+ label={t('Mon')}
180
+ isDisabled={isReadOnly}
181
+ />
160
182
  </FlexItem>
161
183
  <FlexItem>
162
- <CheckboxFieldGroupValidation name={`updatePolicy.${blockType}WeekDays[2]`} label={t('Tue')} />
184
+ <CheckboxFieldGroupValidation
185
+ name={`updatePolicy.${blockType}WeekDays[2]`}
186
+ label={t('Tue')}
187
+ isDisabled={isReadOnly}
188
+ />
163
189
  </FlexItem>
164
190
  <FlexItem>
165
- <CheckboxFieldGroupValidation name={`updatePolicy.${blockType}WeekDays[3]`} label={t('Wed')} />
191
+ <CheckboxFieldGroupValidation
192
+ name={`updatePolicy.${blockType}WeekDays[3]`}
193
+ label={t('Wed')}
194
+ isDisabled={isReadOnly}
195
+ />
166
196
  </FlexItem>
167
197
  <FlexItem>
168
- <CheckboxFieldGroupValidation name={`updatePolicy.${blockType}WeekDays[4]`} label={t('Thu')} />
198
+ <CheckboxFieldGroupValidation
199
+ name={`updatePolicy.${blockType}WeekDays[4]`}
200
+ label={t('Thu')}
201
+ isDisabled={isReadOnly}
202
+ />
169
203
  </FlexItem>
170
204
  <FlexItem>
171
- <CheckboxFieldGroupValidation name={`updatePolicy.${blockType}WeekDays[5]`} label={t('Fri')} />
205
+ <CheckboxFieldGroupValidation
206
+ name={`updatePolicy.${blockType}WeekDays[5]`}
207
+ label={t('Fri')}
208
+ isDisabled={isReadOnly}
209
+ />
172
210
  </FlexItem>
173
211
  <FlexItem>
174
- <CheckboxFieldGroupValidation name={`updatePolicy.${blockType}WeekDays[6]`} label={t('Sat')} />
212
+ <CheckboxFieldGroupValidation
213
+ name={`updatePolicy.${blockType}WeekDays[6]`}
214
+ label={t('Sat')}
215
+ isDisabled={isReadOnly}
216
+ />
175
217
  </FlexItem>
176
218
  </Flex>
177
219
  </StackItem>
@@ -183,14 +225,14 @@ const ScheduleBlock = ({ blockType, updatePolicy, onScheduleModeSwitch, weekDayE
183
225
  </FieldArray>
184
226
  )}
185
227
  <StackItem style={{ maxWidth: 500 }}>
186
- <ScheduleTimeZone blockType={blockType} />
228
+ <ScheduleTimeZone blockType={blockType} isReadOnly={isReadOnly} />
187
229
  </StackItem>
188
230
  </Stack>
189
231
  </FormGroupWithHelperText>
190
232
  );
191
233
  };
192
234
 
193
- const UpdateStepUpdatePolicy = () => {
235
+ const UpdateStepUpdatePolicy = ({ isReadOnly }: { isReadOnly?: boolean }) => {
194
236
  const { t } = useTranslation();
195
237
 
196
238
  const {
@@ -217,6 +259,7 @@ const UpdateStepUpdatePolicy = () => {
217
259
  <CheckboxField
218
260
  label={t('Use different update schedules for downloading and installing updates')}
219
261
  name="updatePolicy.downloadAndInstallDiffer"
262
+ isDisabled={isReadOnly}
220
263
  />
221
264
  </StackItem>
222
265
 
@@ -226,6 +269,7 @@ const UpdateStepUpdatePolicy = () => {
226
269
  updatePolicy={updatePolicy}
227
270
  weekDayError={errors.updatePolicy?.downloadWeekDays}
228
271
  onScheduleModeSwitch={onSwitchToWeeklyMode}
272
+ isReadOnly={isReadOnly}
229
273
  />
230
274
  </StackItem>
231
275
 
@@ -236,6 +280,7 @@ const UpdateStepUpdatePolicy = () => {
236
280
  updatePolicy={updatePolicy}
237
281
  weekDayError={errors.updatePolicy?.installWeekDays}
238
282
  onScheduleModeSwitch={onSwitchToWeeklyMode}
283
+ isReadOnly={isReadOnly}
239
284
  />
240
285
  </StackItem>
241
286
  )}