@flightctl/ui-components 0.10.0-rc5 → 1.0.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 (423) hide show
  1. package/dist/src/components/AuthProvider/AuthProviderDetails/AuthProviderDetails.d.ts +4 -0
  2. package/dist/src/components/AuthProvider/AuthProviderDetails/AuthProviderDetails.d.ts.map +1 -0
  3. package/dist/src/components/AuthProvider/AuthProviderDetails/AuthProviderDetails.js +57 -0
  4. package/dist/src/components/AuthProvider/AuthProviderDetails/AuthProviderDetails.js.map +1 -0
  5. package/dist/src/components/AuthProvider/AuthProviderDetails/AuthProviderDetailsTab.d.ts +7 -0
  6. package/dist/src/components/AuthProvider/AuthProviderDetails/AuthProviderDetailsTab.d.ts.map +1 -0
  7. package/dist/src/components/AuthProvider/AuthProviderDetails/AuthProviderDetailsTab.js +118 -0
  8. package/dist/src/components/AuthProvider/AuthProviderDetails/AuthProviderDetailsTab.js.map +1 -0
  9. package/dist/src/components/AuthProvider/AuthProviderDetails/DeleteAuthProviderModal.d.ts +9 -0
  10. package/dist/src/components/AuthProvider/AuthProviderDetails/DeleteAuthProviderModal.d.ts.map +1 -0
  11. package/dist/src/components/AuthProvider/AuthProviderDetails/DeleteAuthProviderModal.js +55 -0
  12. package/dist/src/components/AuthProvider/AuthProviderDetails/DeleteAuthProviderModal.js.map +1 -0
  13. package/dist/src/components/AuthProvider/AuthProviderDetails/RoleAssigmentDetails.d.ts +7 -0
  14. package/dist/src/components/AuthProvider/AuthProviderDetails/RoleAssigmentDetails.d.ts.map +1 -0
  15. package/dist/src/components/AuthProvider/AuthProviderDetails/RoleAssigmentDetails.js +35 -0
  16. package/dist/src/components/AuthProvider/AuthProviderDetails/RoleAssigmentDetails.js.map +1 -0
  17. package/dist/src/components/AuthProvider/AuthProviderRow.d.ts +8 -0
  18. package/dist/src/components/AuthProvider/AuthProviderRow.d.ts.map +1 -0
  19. package/dist/src/components/AuthProvider/AuthProviderRow.js +67 -0
  20. package/dist/src/components/AuthProvider/AuthProviderRow.js.map +1 -0
  21. package/dist/src/components/AuthProvider/AuthProvidersPage.d.ts +4 -0
  22. package/dist/src/components/AuthProvider/AuthProvidersPage.d.ts.map +1 -0
  23. package/dist/src/components/AuthProvider/AuthProvidersPage.js +90 -0
  24. package/dist/src/components/AuthProvider/AuthProvidersPage.js.map +1 -0
  25. package/dist/src/components/AuthProvider/CreateAuthProvider/AuthOrganizationAssignment.d.ts +4 -0
  26. package/dist/src/components/AuthProvider/CreateAuthProvider/AuthOrganizationAssignment.d.ts.map +1 -0
  27. package/dist/src/components/AuthProvider/CreateAuthProvider/AuthOrganizationAssignment.js +39 -0
  28. package/dist/src/components/AuthProvider/CreateAuthProvider/AuthOrganizationAssignment.js.map +1 -0
  29. package/dist/src/components/AuthProvider/CreateAuthProvider/AuthProviderHelperText.d.ts +6 -0
  30. package/dist/src/components/AuthProvider/CreateAuthProvider/AuthProviderHelperText.d.ts.map +1 -0
  31. package/dist/src/components/AuthProvider/CreateAuthProvider/AuthProviderHelperText.js +87 -0
  32. package/dist/src/components/AuthProvider/CreateAuthProvider/AuthProviderHelperText.js.map +1 -0
  33. package/dist/src/components/AuthProvider/CreateAuthProvider/CreateAuthProvider.d.ts +4 -0
  34. package/dist/src/components/AuthProvider/CreateAuthProvider/CreateAuthProvider.d.ts.map +1 -0
  35. package/dist/src/components/AuthProvider/CreateAuthProvider/CreateAuthProvider.js +94 -0
  36. package/dist/src/components/AuthProvider/CreateAuthProvider/CreateAuthProvider.js.map +1 -0
  37. package/dist/src/components/AuthProvider/CreateAuthProvider/CreateAuthProviderForm.d.ts +13 -0
  38. package/dist/src/components/AuthProvider/CreateAuthProvider/CreateAuthProviderForm.d.ts.map +1 -0
  39. package/dist/src/components/AuthProvider/CreateAuthProvider/CreateAuthProviderForm.js +161 -0
  40. package/dist/src/components/AuthProvider/CreateAuthProvider/CreateAuthProviderForm.js.map +1 -0
  41. package/dist/src/components/AuthProvider/CreateAuthProvider/Oauth2ProviderFields.d.ts +4 -0
  42. package/dist/src/components/AuthProvider/CreateAuthProvider/Oauth2ProviderFields.d.ts.map +1 -0
  43. package/dist/src/components/AuthProvider/CreateAuthProvider/Oauth2ProviderFields.js +19 -0
  44. package/dist/src/components/AuthProvider/CreateAuthProvider/Oauth2ProviderFields.js.map +1 -0
  45. package/dist/src/components/AuthProvider/CreateAuthProvider/RoleAssignmentSection.d.ts +4 -0
  46. package/dist/src/components/AuthProvider/CreateAuthProvider/RoleAssignmentSection.d.ts.map +1 -0
  47. package/dist/src/components/AuthProvider/CreateAuthProvider/RoleAssignmentSection.js +71 -0
  48. package/dist/src/components/AuthProvider/CreateAuthProvider/RoleAssignmentSection.js.map +1 -0
  49. package/dist/src/components/AuthProvider/CreateAuthProvider/types.d.ts +57 -0
  50. package/dist/src/components/AuthProvider/CreateAuthProvider/types.d.ts.map +1 -0
  51. package/dist/src/components/AuthProvider/CreateAuthProvider/types.js +33 -0
  52. package/dist/src/components/AuthProvider/CreateAuthProvider/types.js.map +1 -0
  53. package/dist/src/components/AuthProvider/CreateAuthProvider/utils.d.ts +15 -0
  54. package/dist/src/components/AuthProvider/CreateAuthProvider/utils.d.ts.map +1 -0
  55. package/dist/src/components/AuthProvider/CreateAuthProvider/utils.js +466 -0
  56. package/dist/src/components/AuthProvider/CreateAuthProvider/utils.js.map +1 -0
  57. package/dist/src/components/AuthProvider/TestConnectionModal/TestConnectionModal.d.ts +9 -0
  58. package/dist/src/components/AuthProvider/TestConnectionModal/TestConnectionModal.d.ts.map +1 -0
  59. package/dist/src/components/AuthProvider/TestConnectionModal/TestConnectionModal.js +67 -0
  60. package/dist/src/components/AuthProvider/TestConnectionModal/TestConnectionModal.js.map +1 -0
  61. package/dist/src/components/AuthProvider/useAuthProviders.d.ts +8 -0
  62. package/dist/src/components/AuthProvider/useAuthProviders.d.ts.map +1 -0
  63. package/dist/src/components/AuthProvider/useAuthProviders.js +19 -0
  64. package/dist/src/components/AuthProvider/useAuthProviders.js.map +1 -0
  65. package/dist/src/components/DetailsPage/DetailsPage.d.ts +1 -1
  66. package/dist/src/components/DetailsPage/DetailsPage.d.ts.map +1 -1
  67. package/dist/src/components/DetailsPage/DetailsPageActions.d.ts.map +1 -1
  68. package/dist/src/components/DetailsPage/DetailsPageActions.js +1 -1
  69. package/dist/src/components/DetailsPage/DetailsPageActions.js.map +1 -1
  70. package/dist/src/components/DetailsPage/Tables/ApplicationsTable.d.ts +1 -7
  71. package/dist/src/components/DetailsPage/Tables/ApplicationsTable.d.ts.map +1 -1
  72. package/dist/src/components/DetailsPage/Tables/ApplicationsTable.js +26 -81
  73. package/dist/src/components/DetailsPage/Tables/ApplicationsTable.js.map +1 -1
  74. package/dist/src/components/DetailsPage/Tables/SystemdUnitsTable.d.ts +8 -0
  75. package/dist/src/components/DetailsPage/Tables/SystemdUnitsTable.d.ts.map +1 -0
  76. package/dist/src/components/DetailsPage/Tables/SystemdUnitsTable.js +67 -0
  77. package/dist/src/components/DetailsPage/Tables/SystemdUnitsTable.js.map +1 -0
  78. package/dist/src/components/Device/DeviceDetails/DeviceApplications.d.ts +1 -3
  79. package/dist/src/components/Device/DeviceDetails/DeviceApplications.d.ts.map +1 -1
  80. package/dist/src/components/Device/DeviceDetails/DeviceApplications.js +5 -49
  81. package/dist/src/components/Device/DeviceDetails/DeviceApplications.js.map +1 -1
  82. package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.d.ts.map +1 -1
  83. package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.js +15 -9
  84. package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.js.map +1 -1
  85. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.d.ts.map +1 -1
  86. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.js +5 -2
  87. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.js.map +1 -1
  88. package/dist/src/components/Device/DeviceDetails/DeviceSystemdUnits.d.ts +8 -0
  89. package/dist/src/components/Device/DeviceDetails/DeviceSystemdUnits.d.ts.map +1 -0
  90. package/dist/src/components/Device/DeviceDetails/DeviceSystemdUnits.js +19 -0
  91. package/dist/src/components/Device/DeviceDetails/DeviceSystemdUnits.js.map +1 -0
  92. package/dist/src/components/Device/DeviceDetails/TerminalTab.d.ts.map +1 -1
  93. package/dist/src/components/Device/DeviceDetails/TerminalTab.js +3 -2
  94. package/dist/src/components/Device/DeviceDetails/TerminalTab.js.map +1 -1
  95. package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.d.ts.map +1 -1
  96. package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.js +7 -3
  97. package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.js.map +1 -1
  98. package/dist/src/components/Device/DevicesPage/DevicesEmptyStates.d.ts.map +1 -1
  99. package/dist/src/components/Device/DevicesPage/DevicesEmptyStates.js +3 -2
  100. package/dist/src/components/Device/DevicesPage/DevicesEmptyStates.js.map +1 -1
  101. package/dist/src/components/Device/DevicesPage/DevicesPage.d.ts.map +1 -1
  102. package/dist/src/components/Device/DevicesPage/DevicesPage.js +9 -15
  103. package/dist/src/components/Device/DevicesPage/DevicesPage.js.map +1 -1
  104. package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.d.ts.map +1 -1
  105. package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.js +8 -4
  106. package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.js.map +1 -1
  107. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizard.d.ts.map +1 -1
  108. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizard.js +4 -3
  109. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizard.js.map +1 -1
  110. package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.d.ts +2 -1
  111. package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.d.ts.map +1 -1
  112. package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.js +230 -54
  113. package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.js.map +1 -1
  114. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationContainerForm.css +5 -0
  115. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationContainerForm.d.ts +10 -0
  116. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationContainerForm.d.ts.map +1 -0
  117. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationContainerForm.js +169 -0
  118. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationContainerForm.js.map +1 -0
  119. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.d.ts +2 -2
  120. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.d.ts.map +1 -1
  121. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.d.ts +2 -2
  122. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.d.ts.map +1 -1
  123. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.d.ts.map +1 -1
  124. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.js +95 -37
  125. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.js.map +1 -1
  126. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationVolumeForm.d.ts +11 -0
  127. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationVolumeForm.d.ts.map +1 -0
  128. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationVolumeForm.js +99 -0
  129. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationVolumeForm.js.map +1 -0
  130. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.d.ts.map +1 -1
  131. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.js +6 -4
  132. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.js.map +1 -1
  133. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.js +1 -1
  134. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.js.map +1 -1
  135. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewApplications.d.ts.map +1 -1
  136. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewApplications.js +21 -10
  137. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewApplications.js.map +1 -1
  138. package/dist/src/components/Device/EditDeviceWizard/utils.d.ts +41 -3
  139. package/dist/src/components/Device/EditDeviceWizard/utils.d.ts.map +1 -1
  140. package/dist/src/components/Device/EditDeviceWizard/utils.js +5 -2
  141. package/dist/src/components/Device/EditDeviceWizard/utils.js.map +1 -1
  142. package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.d.ts.map +1 -1
  143. package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.js +9 -4
  144. package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.js.map +1 -1
  145. package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.d.ts +1 -3
  146. package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.d.ts.map +1 -1
  147. package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.js +8 -9
  148. package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.js.map +1 -1
  149. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizard.d.ts.map +1 -1
  150. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizard.js +10 -5
  151. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizard.js.map +1 -1
  152. package/dist/src/components/Fleet/CreateFleet/utils.d.ts.map +1 -1
  153. package/dist/src/components/Fleet/CreateFleet/utils.js +2 -5
  154. package/dist/src/components/Fleet/CreateFleet/utils.js.map +1 -1
  155. package/dist/src/components/Fleet/FleetDetails/FleetDetailsPage.d.ts.map +1 -1
  156. package/dist/src/components/Fleet/FleetDetails/FleetDetailsPage.js +11 -6
  157. package/dist/src/components/Fleet/FleetDetails/FleetDetailsPage.js.map +1 -1
  158. package/dist/src/components/Fleet/FleetDetails/FleetYaml.d.ts +9 -0
  159. package/dist/src/components/Fleet/FleetDetails/FleetYaml.d.ts.map +1 -0
  160. package/dist/src/components/Fleet/FleetDetails/FleetYaml.js +13 -0
  161. package/dist/src/components/Fleet/FleetDetails/FleetYaml.js.map +1 -0
  162. package/dist/src/components/Fleet/FleetResourceSyncs.d.ts.map +1 -1
  163. package/dist/src/components/Fleet/FleetResourceSyncs.js +3 -2
  164. package/dist/src/components/Fleet/FleetResourceSyncs.js.map +1 -1
  165. package/dist/src/components/Fleet/FleetsPage.d.ts.map +1 -1
  166. package/dist/src/components/Fleet/FleetsPage.js +22 -13
  167. package/dist/src/components/Fleet/FleetsPage.js.map +1 -1
  168. package/dist/src/components/Fleet/ImportFleetWizard/ImportFleetWizard.d.ts.map +1 -1
  169. package/dist/src/components/Fleet/ImportFleetWizard/ImportFleetWizard.js +9 -2
  170. package/dist/src/components/Fleet/ImportFleetWizard/ImportFleetWizard.js.map +1 -1
  171. package/dist/src/components/Fleet/ImportFleetWizard/steps/RepositoryStep.d.ts.map +1 -1
  172. package/dist/src/components/Fleet/ImportFleetWizard/steps/RepositoryStep.js +3 -2
  173. package/dist/src/components/Fleet/ImportFleetWizard/steps/RepositoryStep.js.map +1 -1
  174. package/dist/src/components/ListPage/ListPage.d.ts +0 -1
  175. package/dist/src/components/ListPage/ListPage.d.ts.map +1 -1
  176. package/dist/src/components/ListPage/ListPage.js +2 -5
  177. package/dist/src/components/ListPage/ListPage.js.map +1 -1
  178. package/dist/src/components/Login/ProviderSelector.d.ts +11 -0
  179. package/dist/src/components/Login/ProviderSelector.d.ts.map +1 -0
  180. package/dist/src/components/Login/ProviderSelector.js +66 -0
  181. package/dist/src/components/Login/ProviderSelector.js.map +1 -0
  182. package/dist/src/components/Login/TokenLoginForm.d.ts +9 -0
  183. package/dist/src/components/Login/TokenLoginForm.d.ts.map +1 -0
  184. package/dist/src/components/Login/TokenLoginForm.js +107 -0
  185. package/dist/src/components/Login/TokenLoginForm.js.map +1 -0
  186. package/dist/src/components/Masthead/CommandLineToolsPage.d.ts.map +1 -1
  187. package/dist/src/components/Masthead/CommandLineToolsPage.js +1 -6
  188. package/dist/src/components/Masthead/CommandLineToolsPage.js.map +1 -1
  189. package/dist/src/components/OverviewPage/Cards/Alerts/AlertsCard.d.ts.map +1 -1
  190. package/dist/src/components/OverviewPage/Cards/Alerts/AlertsCard.js +2 -0
  191. package/dist/src/components/OverviewPage/Cards/Alerts/AlertsCard.js.map +1 -1
  192. package/dist/src/components/OverviewPage/Overview.d.ts.map +1 -1
  193. package/dist/src/components/OverviewPage/Overview.js +8 -4
  194. package/dist/src/components/OverviewPage/Overview.js.map +1 -1
  195. package/dist/src/components/OverviewPage/OverviewPage.d.ts.map +1 -1
  196. package/dist/src/components/OverviewPage/OverviewPage.js +3 -8
  197. package/dist/src/components/OverviewPage/OverviewPage.js.map +1 -1
  198. package/dist/src/components/Repository/CreateRepository/CreateRepository.d.ts.map +1 -1
  199. package/dist/src/components/Repository/CreateRepository/CreateRepository.js +3 -2
  200. package/dist/src/components/Repository/CreateRepository/CreateRepository.js.map +1 -1
  201. package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.d.ts.map +1 -1
  202. package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.js +3 -2
  203. package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.js.map +1 -1
  204. package/dist/src/components/Repository/RepositoryDetails/RepositoryDetails.d.ts.map +1 -1
  205. package/dist/src/components/Repository/RepositoryDetails/RepositoryDetails.js +11 -6
  206. package/dist/src/components/Repository/RepositoryDetails/RepositoryDetails.js.map +1 -1
  207. package/dist/src/components/Repository/RepositoryList.d.ts.map +1 -1
  208. package/dist/src/components/Repository/RepositoryList.js +11 -5
  209. package/dist/src/components/Repository/RepositoryList.js.map +1 -1
  210. package/dist/src/components/ResourceSync/RepositoryResourceSyncList.d.ts.map +1 -1
  211. package/dist/src/components/ResourceSync/RepositoryResourceSyncList.js +7 -3
  212. package/dist/src/components/ResourceSync/RepositoryResourceSyncList.js.map +1 -1
  213. package/dist/src/components/common/CodeEditor/YamlEditor.d.ts +7 -5
  214. package/dist/src/components/common/CodeEditor/YamlEditor.d.ts.map +1 -1
  215. package/dist/src/components/common/CodeEditor/YamlEditor.js +142 -10
  216. package/dist/src/components/common/CodeEditor/YamlEditor.js.map +1 -1
  217. package/dist/src/components/common/CodeEditor/YamlEditorBase.d.ts +7 -1
  218. package/dist/src/components/common/CodeEditor/YamlEditorBase.d.ts.map +1 -1
  219. package/dist/src/components/common/CodeEditor/YamlEditorBase.js +16 -8
  220. package/dist/src/components/common/CodeEditor/YamlEditorBase.js.map +1 -1
  221. package/dist/src/components/common/OrganizationGuard.d.ts.map +1 -1
  222. package/dist/src/components/common/OrganizationGuard.js +11 -19
  223. package/dist/src/components/common/OrganizationGuard.js.map +1 -1
  224. package/dist/src/components/common/PageNavigation.css +9 -0
  225. package/dist/src/components/common/PageNavigation.d.ts +4 -1
  226. package/dist/src/components/common/PageNavigation.d.ts.map +1 -1
  227. package/dist/src/components/common/PageNavigation.js +25 -10
  228. package/dist/src/components/common/PageNavigation.js.map +1 -1
  229. package/dist/src/components/common/PermissionsContext.d.ts +14 -0
  230. package/dist/src/components/common/PermissionsContext.d.ts.map +1 -0
  231. package/dist/src/components/common/PermissionsContext.js +84 -0
  232. package/dist/src/components/common/PermissionsContext.js.map +1 -0
  233. package/dist/src/components/form/FilterSelect.d.ts.map +1 -1
  234. package/dist/src/components/form/FilterSelect.js +1 -1
  235. package/dist/src/components/form/FilterSelect.js.map +1 -1
  236. package/dist/src/components/form/FormSelect.d.ts.map +1 -1
  237. package/dist/src/components/form/FormSelect.js +1 -1
  238. package/dist/src/components/form/FormSelect.js.map +1 -1
  239. package/dist/src/components/form/FormSelectTypeahead.d.ts.map +1 -1
  240. package/dist/src/components/form/FormSelectTypeahead.js +84 -4
  241. package/dist/src/components/form/FormSelectTypeahead.js.map +1 -1
  242. package/dist/src/components/form/ListItemField.d.ts +12 -0
  243. package/dist/src/components/form/ListItemField.d.ts.map +1 -0
  244. package/dist/src/components/form/ListItemField.js +67 -0
  245. package/dist/src/components/form/ListItemField.js.map +1 -0
  246. package/dist/src/components/form/NameField.d.ts +1 -1
  247. package/dist/src/components/form/NameField.d.ts.map +1 -1
  248. package/dist/src/components/form/NameField.js +4 -2
  249. package/dist/src/components/form/NameField.js.map +1 -1
  250. package/dist/src/components/form/SwitchField.d.ts +2 -1
  251. package/dist/src/components/form/SwitchField.d.ts.map +1 -1
  252. package/dist/src/components/form/SwitchField.js +2 -2
  253. package/dist/src/components/form/SwitchField.js.map +1 -1
  254. package/dist/src/components/form/validations.d.ts +50 -4
  255. package/dist/src/components/form/validations.d.ts.map +1 -1
  256. package/dist/src/components/form/validations.js +332 -41
  257. package/dist/src/components/form/validations.js.map +1 -1
  258. package/dist/src/constants.d.ts +1 -1
  259. package/dist/src/constants.d.ts.map +1 -1
  260. package/dist/src/constants.js +1 -1
  261. package/dist/src/constants.js.map +1 -1
  262. package/dist/src/hooks/useAlertsEnabled.d.ts.map +1 -1
  263. package/dist/src/hooks/useAlertsEnabled.js +10 -4
  264. package/dist/src/hooks/useAlertsEnabled.js.map +1 -1
  265. package/dist/src/hooks/useAppContext.d.ts +4 -2
  266. package/dist/src/hooks/useAppContext.d.ts.map +1 -1
  267. package/dist/src/hooks/useAppContext.js +4 -1
  268. package/dist/src/hooks/useAppContext.js.map +1 -1
  269. package/dist/src/hooks/useFetch.d.ts +0 -1
  270. package/dist/src/hooks/useFetch.d.ts.map +1 -1
  271. package/dist/src/hooks/useNavigate.d.ts +6 -2
  272. package/dist/src/hooks/useNavigate.d.ts.map +1 -1
  273. package/dist/src/hooks/useNavigate.js +4 -0
  274. package/dist/src/hooks/useNavigate.js.map +1 -1
  275. package/dist/src/hooks/usePendingEnrollmentRequestsCount.d.ts.map +1 -1
  276. package/dist/src/hooks/usePendingEnrollmentRequestsCount.js +9 -1
  277. package/dist/src/hooks/usePendingEnrollmentRequestsCount.js.map +1 -1
  278. package/dist/src/hooks/useSystemRestoreContext.d.ts.map +1 -1
  279. package/dist/src/hooks/useSystemRestoreContext.js +3 -2
  280. package/dist/src/hooks/useSystemRestoreContext.js.map +1 -1
  281. package/dist/src/types/deviceSpec.d.ts +56 -15
  282. package/dist/src/types/deviceSpec.d.ts.map +1 -1
  283. package/dist/src/types/deviceSpec.js +23 -8
  284. package/dist/src/types/deviceSpec.js.map +1 -1
  285. package/dist/src/types/extraTypes.d.ts +14 -2
  286. package/dist/src/types/extraTypes.d.ts.map +1 -1
  287. package/dist/src/types/extraTypes.js +11 -1
  288. package/dist/src/types/extraTypes.js.map +1 -1
  289. package/dist/src/types/rbac.d.ts +2 -1
  290. package/dist/src/types/rbac.d.ts.map +1 -1
  291. package/dist/src/types/rbac.js +1 -0
  292. package/dist/src/types/rbac.js.map +1 -1
  293. package/dist/src/utils/authProvider.d.ts +4 -0
  294. package/dist/src/utils/authProvider.d.ts.map +1 -0
  295. package/dist/src/utils/authProvider.js +22 -0
  296. package/dist/src/utils/authProvider.js.map +1 -0
  297. package/dist/src/utils/error.d.ts +1 -0
  298. package/dist/src/utils/error.d.ts.map +1 -1
  299. package/dist/src/utils/error.js +6 -1
  300. package/dist/src/utils/error.js.map +1 -1
  301. package/dist/src/utils/k8sProvider.d.ts +3 -0
  302. package/dist/src/utils/k8sProvider.d.ts.map +1 -0
  303. package/dist/src/utils/k8sProvider.js +18 -0
  304. package/dist/src/utils/k8sProvider.js.map +1 -0
  305. package/dist/src/utils/patch.d.ts.map +1 -1
  306. package/dist/src/utils/patch.js +3 -1
  307. package/dist/src/utils/patch.js.map +1 -1
  308. package/dist/src/utils/status/applications.d.ts.map +1 -1
  309. package/dist/src/utils/status/applications.js +7 -0
  310. package/dist/src/utils/status/applications.js.map +1 -1
  311. package/package.json +1 -1
  312. package/src/components/AuthProvider/AuthProviderDetails/AuthProviderDetails.tsx +111 -0
  313. package/src/components/AuthProvider/AuthProviderDetails/AuthProviderDetailsTab.tsx +239 -0
  314. package/src/components/AuthProvider/AuthProviderDetails/DeleteAuthProviderModal.tsx +95 -0
  315. package/src/components/AuthProvider/AuthProviderDetails/RoleAssigmentDetails.tsx +53 -0
  316. package/src/components/AuthProvider/AuthProviderRow.tsx +84 -0
  317. package/src/components/AuthProvider/AuthProvidersPage.tsx +168 -0
  318. package/src/components/AuthProvider/CreateAuthProvider/AuthOrganizationAssignment.tsx +102 -0
  319. package/src/components/AuthProvider/CreateAuthProvider/AuthProviderHelperText.tsx +78 -0
  320. package/src/components/AuthProvider/CreateAuthProvider/CreateAuthProvider.tsx +145 -0
  321. package/src/components/AuthProvider/CreateAuthProvider/CreateAuthProviderForm.tsx +284 -0
  322. package/src/components/AuthProvider/CreateAuthProvider/Oauth2ProviderFields.tsx +24 -0
  323. package/src/components/AuthProvider/CreateAuthProvider/RoleAssignmentSection.tsx +165 -0
  324. package/src/components/AuthProvider/CreateAuthProvider/types.ts +96 -0
  325. package/src/components/AuthProvider/CreateAuthProvider/utils.ts +557 -0
  326. package/src/components/AuthProvider/TestConnectionModal/TestConnectionModal.tsx +136 -0
  327. package/src/components/AuthProvider/useAuthProviders.ts +18 -0
  328. package/src/components/DetailsPage/DetailsPage.tsx +1 -1
  329. package/src/components/DetailsPage/DetailsPageActions.tsx +2 -0
  330. package/src/components/DetailsPage/Tables/ApplicationsTable.tsx +29 -132
  331. package/src/components/DetailsPage/Tables/SystemdUnitsTable.tsx +98 -0
  332. package/src/components/Device/DeviceDetails/DeviceApplications.tsx +3 -73
  333. package/src/components/Device/DeviceDetails/DeviceDetailsPage.tsx +19 -9
  334. package/src/components/Device/DeviceDetails/DeviceDetailsTab.tsx +6 -2
  335. package/src/components/Device/DeviceDetails/DeviceSystemdUnits.tsx +30 -0
  336. package/src/components/Device/DeviceDetails/TerminalTab.tsx +3 -2
  337. package/src/components/Device/DevicesPage/DecommissionedDevicesTable.tsx +8 -3
  338. package/src/components/Device/DevicesPage/DevicesEmptyStates.tsx +3 -2
  339. package/src/components/Device/DevicesPage/DevicesPage.tsx +9 -15
  340. package/src/components/Device/DevicesPage/EnrolledDevicesTable.tsx +9 -4
  341. package/src/components/Device/EditDeviceWizard/EditDeviceWizard.tsx +10 -4
  342. package/src/components/Device/EditDeviceWizard/deviceSpecUtils.ts +291 -59
  343. package/src/components/Device/EditDeviceWizard/steps/ApplicationContainerForm.css +5 -0
  344. package/src/components/Device/EditDeviceWizard/steps/ApplicationContainerForm.tsx +319 -0
  345. package/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.tsx +2 -2
  346. package/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.tsx +3 -3
  347. package/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.tsx +186 -80
  348. package/src/components/Device/EditDeviceWizard/steps/ApplicationVolumeForm.tsx +202 -0
  349. package/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.tsx +6 -4
  350. package/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.tsx +1 -1
  351. package/src/components/Device/EditDeviceWizard/steps/ReviewApplications.tsx +26 -10
  352. package/src/components/Device/EditDeviceWizard/utils.ts +15 -1
  353. package/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.tsx +10 -4
  354. package/src/components/EnrollmentRequest/EnrollmentRequestList.tsx +9 -13
  355. package/src/components/Fleet/CreateFleet/CreateFleetWizard.tsx +11 -8
  356. package/src/components/Fleet/CreateFleet/utils.ts +2 -4
  357. package/src/components/Fleet/FleetDetails/FleetDetailsPage.tsx +11 -6
  358. package/src/components/Fleet/FleetDetails/FleetYaml.tsx +13 -0
  359. package/src/components/Fleet/FleetResourceSyncs.tsx +3 -2
  360. package/src/components/Fleet/FleetsPage.tsx +34 -27
  361. package/src/components/Fleet/ImportFleetWizard/ImportFleetWizard.tsx +10 -2
  362. package/src/components/Fleet/ImportFleetWizard/steps/RepositoryStep.tsx +3 -2
  363. package/src/components/ListPage/ListPage.tsx +1 -8
  364. package/src/components/Login/ProviderSelector.tsx +114 -0
  365. package/src/components/Login/TokenLoginForm.tsx +202 -0
  366. package/src/components/Masthead/CommandLineToolsPage.tsx +1 -11
  367. package/src/components/OverviewPage/Cards/Alerts/AlertsCard.tsx +2 -0
  368. package/src/components/OverviewPage/Overview.tsx +9 -4
  369. package/src/components/OverviewPage/OverviewPage.tsx +6 -13
  370. package/src/components/Repository/CreateRepository/CreateRepository.tsx +3 -2
  371. package/src/components/Repository/CreateRepository/CreateRepositoryForm.tsx +3 -2
  372. package/src/components/Repository/RepositoryDetails/RepositoryDetails.tsx +11 -9
  373. package/src/components/Repository/RepositoryList.tsx +11 -5
  374. package/src/components/ResourceSync/RepositoryResourceSyncList.tsx +8 -3
  375. package/src/components/common/CodeEditor/YamlEditor.tsx +195 -15
  376. package/src/components/common/CodeEditor/YamlEditorBase.tsx +42 -8
  377. package/src/components/common/OrganizationGuard.tsx +13 -22
  378. package/src/components/common/PageNavigation.css +9 -0
  379. package/src/components/common/PageNavigation.tsx +42 -14
  380. package/src/components/common/PermissionsContext.tsx +108 -0
  381. package/src/components/form/FilterSelect.tsx +2 -0
  382. package/src/components/form/FormSelect.tsx +2 -0
  383. package/src/components/form/FormSelectTypeahead.tsx +97 -4
  384. package/src/components/form/ListItemField.tsx +123 -0
  385. package/src/components/form/NameField.tsx +3 -1
  386. package/src/components/form/SwitchField.tsx +3 -2
  387. package/src/components/form/validations.ts +413 -64
  388. package/src/constants.ts +1 -1
  389. package/src/hooks/useAlertsEnabled.ts +10 -5
  390. package/src/hooks/useAppContext.tsx +4 -3
  391. package/src/hooks/useNavigate.tsx +7 -1
  392. package/src/hooks/usePendingEnrollmentRequestsCount.ts +13 -1
  393. package/src/hooks/useSystemRestoreContext.tsx +3 -2
  394. package/src/types/deviceSpec.ts +78 -21
  395. package/src/types/extraTypes.ts +19 -1
  396. package/src/types/rbac.ts +1 -0
  397. package/src/utils/authProvider.ts +20 -0
  398. package/src/utils/error.ts +5 -0
  399. package/src/utils/k8sProvider.ts +11 -0
  400. package/src/utils/patch.ts +3 -1
  401. package/src/utils/status/applications.ts +7 -0
  402. package/dist/src/components/DetailsPage/Tables/ApplicationsTable.css +0 -7
  403. package/dist/src/components/common/ButtonWithPermissions.d.ts +0 -8
  404. package/dist/src/components/common/ButtonWithPermissions.d.ts.map +0 -1
  405. package/dist/src/components/common/ButtonWithPermissions.js +0 -12
  406. package/dist/src/components/common/ButtonWithPermissions.js.map +0 -1
  407. package/dist/src/components/common/TechPreviewBadge.d.ts +0 -4
  408. package/dist/src/components/common/TechPreviewBadge.d.ts.map +0 -1
  409. package/dist/src/components/common/TechPreviewBadge.js +0 -24
  410. package/dist/src/components/common/TechPreviewBadge.js.map +0 -1
  411. package/dist/src/hooks/useAccessReview.d.ts +0 -4
  412. package/dist/src/hooks/useAccessReview.d.ts.map +0 -1
  413. package/dist/src/hooks/useAccessReview.js +0 -46
  414. package/dist/src/hooks/useAccessReview.js.map +0 -1
  415. package/dist/src/hooks/useFleetImportAccessReview.d.ts +0 -3
  416. package/dist/src/hooks/useFleetImportAccessReview.d.ts.map +0 -1
  417. package/dist/src/hooks/useFleetImportAccessReview.js +0 -12
  418. package/dist/src/hooks/useFleetImportAccessReview.js.map +0 -1
  419. package/src/components/DetailsPage/Tables/ApplicationsTable.css +0 -7
  420. package/src/components/common/ButtonWithPermissions.tsx +0 -14
  421. package/src/components/common/TechPreviewBadge.tsx +0 -45
  422. package/src/hooks/useAccessReview.ts +0 -49
  423. package/src/hooks/useFleetImportAccessReview.ts +0 -8
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasMicroshiftRegistrationConfig = exports.MicroshiftRegistrationHook = exports.ACMImportConfig = exports.ACMCrdConfig = exports.formatFileMode = exports.getConfigTemplatesValues = exports.getApplicationValues = exports.getApiConfig = exports.getApplicationPatches = exports.toAPIApplication = exports.getDeviceSpecConfigPatches = exports.getConfigType = exports.ACM_REPO_NAME = void 0;
3
+ exports.hasMicroshiftRegistrationConfig = exports.MicroshiftRegistrationHook = exports.ACMImportConfig = exports.ACMCrdConfig = exports.formatFileMode = exports.getConfigTemplatesValues = exports.getSystemdUnitsValues = exports.getApplicationValues = exports.getApiConfig = exports.getApplicationPatches = exports.toAPIApplication = exports.getDeviceSpecConfigPatches = exports.getConfigType = exports.ACM_REPO_NAME = void 0;
4
4
  const types_1 = require("@flightctl/types");
5
5
  const deviceSpec_1 = require("../../../types/deviceSpec");
6
6
  const DEFAULT_INLINE_FILE_MODE = 420; // In Octal: 0644
@@ -154,24 +154,63 @@ const toAPIApplication = (app) => {
154
154
  acc[variable.name] = variable.value;
155
155
  return acc;
156
156
  }, {});
157
- const volumes = (_a = app.volumes) === null || _a === void 0 ? void 0 : _a.map((v) => ({
158
- name: v.name,
159
- image: {
160
- reference: v.reference,
161
- pullPolicy: v.pullPolicy,
162
- },
163
- }));
164
- if ((0, deviceSpec_1.isImageAppForm)(app)) {
157
+ const volumes = (_a = app.volumes) === null || _a === void 0 ? void 0 : _a.map((v) => {
158
+ const volume = {
159
+ name: v.name || '',
160
+ };
161
+ // Use volumeType to determine which fields to include
162
+ const hasImage = v.volumeType === deviceSpec_1.VolumeType.IMAGE_ONLY || v.volumeType === deviceSpec_1.VolumeType.IMAGE_MOUNT;
163
+ const hasMount = v.volumeType === deviceSpec_1.VolumeType.MOUNT_ONLY || v.volumeType === deviceSpec_1.VolumeType.IMAGE_MOUNT;
164
+ if (hasImage && v.imageRef) {
165
+ volume.image = {
166
+ reference: v.imageRef,
167
+ pullPolicy: v.imagePullPolicy,
168
+ };
169
+ }
170
+ if (hasMount && v.mountPath) {
171
+ volume.mount = {
172
+ path: v.mountPath,
173
+ };
174
+ }
175
+ return volume;
176
+ });
177
+ if ((0, deviceSpec_1.isSingleContainerAppForm)(app)) {
178
+ const data = {
179
+ image: app.image,
180
+ appType: app.appType,
181
+ envVars,
182
+ volumes,
183
+ };
184
+ if (app.name) {
185
+ data.name = app.name;
186
+ }
187
+ if (app.ports) {
188
+ data.ports = app.ports.map((p) => `${p.hostPort}:${p.containerPort}`);
189
+ }
190
+ const appLimits = app.limits || {};
191
+ if (appLimits.cpu || appLimits.memory) {
192
+ data.resources = {
193
+ limits: appLimits,
194
+ };
195
+ }
196
+ return data;
197
+ }
198
+ if ((0, deviceSpec_1.isQuadletImageAppForm)(app) || (0, deviceSpec_1.isComposeImageAppForm)(app)) {
165
199
  const data = {
166
200
  image: app.image,
201
+ appType: app.appType,
167
202
  envVars,
168
203
  volumes,
169
204
  };
170
- return app.name ? Object.assign(Object.assign({}, data), { name: app.name }) : data;
205
+ if (app.name) {
206
+ data.name = app.name;
207
+ }
208
+ return data;
171
209
  }
210
+ // Inline applications (Quadlet or Compose)
172
211
  return {
173
212
  name: app.name,
174
- appType: types_1.AppType.AppTypeCompose,
213
+ appType: app.appType,
175
214
  inline: app.files.map((file) => ({
176
215
  path: file.path,
177
216
  content: file.content || '',
@@ -183,7 +222,7 @@ const toAPIApplication = (app) => {
183
222
  };
184
223
  exports.toAPIApplication = toAPIApplication;
185
224
  const hasInlineApplicationChanged = (currentApp, updatedApp) => {
186
- if (currentApp.inline.length != updatedApp.files.length) {
225
+ if (currentApp.inline.length !== updatedApp.files.length) {
187
226
  return true;
188
227
  }
189
228
  return currentApp.inline.some((file, index) => {
@@ -194,6 +233,110 @@ const hasInlineApplicationChanged = (currentApp, updatedApp) => {
194
233
  updatedFile.content !== file.content);
195
234
  });
196
235
  };
236
+ const areVolumesEqual = (currentVolumes, updatedFormVolumes) => {
237
+ if (currentVolumes.length !== updatedFormVolumes.length) {
238
+ return false;
239
+ }
240
+ return currentVolumes.every((currentVol, index) => {
241
+ var _a, _b, _c;
242
+ const updatedFormVol = updatedFormVolumes[index];
243
+ const currentFullVol = currentVol;
244
+ if (currentFullVol.name !== updatedFormVol.name) {
245
+ return false;
246
+ }
247
+ const currentImageRef = ((_a = currentFullVol.image) === null || _a === void 0 ? void 0 : _a.reference) || '';
248
+ const updatedImageRef = (updatedFormVol === null || updatedFormVol === void 0 ? void 0 : updatedFormVol.imageRef) || '';
249
+ if (currentImageRef !== updatedImageRef) {
250
+ return false;
251
+ }
252
+ const currentPullPolicy = ((_b = currentFullVol.image) === null || _b === void 0 ? void 0 : _b.pullPolicy) || types_1.ImagePullPolicy.PullIfNotPresent;
253
+ const updatedPullPolicy = (updatedFormVol === null || updatedFormVol === void 0 ? void 0 : updatedFormVol.imagePullPolicy) || types_1.ImagePullPolicy.PullIfNotPresent;
254
+ if (currentPullPolicy !== updatedPullPolicy) {
255
+ return false;
256
+ }
257
+ const currentMountPath = ((_c = currentFullVol.mount) === null || _c === void 0 ? void 0 : _c.path) || '';
258
+ const updatedMountPath = (updatedFormVol === null || updatedFormVol === void 0 ? void 0 : updatedFormVol.mountPath) || '';
259
+ if (currentMountPath !== updatedMountPath) {
260
+ return false;
261
+ }
262
+ return true;
263
+ });
264
+ };
265
+ const arePortsEqual = (currentPorts, updatedPorts) => {
266
+ if (currentPorts.length !== updatedPorts.length) {
267
+ return false;
268
+ }
269
+ // Reordered ports will be considered as changed
270
+ return currentPorts.every((currentPort, index) => {
271
+ const updatedPort = updatedPorts[index];
272
+ return currentPort === `${updatedPort.hostPort}:${updatedPort.containerPort}`;
273
+ });
274
+ };
275
+ const areResourceLimitsEqual = (currentLimits, updatedLimits) => {
276
+ const currentCpu = (currentLimits === null || currentLimits === void 0 ? void 0 : currentLimits.cpu) || '';
277
+ const updatedCpu = (updatedLimits === null || updatedLimits === void 0 ? void 0 : updatedLimits.cpu) || '';
278
+ const currentMemory = (currentLimits === null || currentLimits === void 0 ? void 0 : currentLimits.memory) || '';
279
+ const updatedMemory = (updatedLimits === null || updatedLimits === void 0 ? void 0 : updatedLimits.memory) || '';
280
+ return currentCpu === updatedCpu && currentMemory === updatedMemory;
281
+ };
282
+ const areEnvVariablesEqual = (currentVars, updatedFormVars) => {
283
+ const envVars = currentVars || {};
284
+ if (Object.keys(envVars).length !== updatedFormVars.length) {
285
+ return false;
286
+ }
287
+ return updatedFormVars.every((variable) => {
288
+ // Envvars may have "falsy" values (eg. number 0) when they are defined
289
+ return variable.name in envVars && envVars[variable.name] === variable.value;
290
+ });
291
+ };
292
+ const hasSingleContainerAppChanged = (currentApp, updatedApp) => {
293
+ var _a;
294
+ if (!(0, deviceSpec_1.isSingleContainerAppForm)(updatedApp)) {
295
+ return true;
296
+ }
297
+ const imageApp = currentApp;
298
+ if (imageApp.name !== updatedApp.name || imageApp.image !== updatedApp.image) {
299
+ return true;
300
+ }
301
+ if (!arePortsEqual(imageApp.ports || [], updatedApp.ports || [])) {
302
+ return true;
303
+ }
304
+ if (!areResourceLimitsEqual((_a = imageApp.resources) === null || _a === void 0 ? void 0 : _a.limits, updatedApp.limits)) {
305
+ return true;
306
+ }
307
+ if (!areEnvVariablesEqual(imageApp.envVars, updatedApp.variables)) {
308
+ return true;
309
+ }
310
+ return !areVolumesEqual(imageApp.volumes || [], updatedApp.volumes || []);
311
+ };
312
+ const hasApplicationChanged = (currentApp, updatedApp) => {
313
+ const isCurrentImageApp = (0, deviceSpec_1.isImageAppProvider)(currentApp);
314
+ const currentAppSpecType = isCurrentImageApp ? deviceSpec_1.AppSpecType.OCI_IMAGE : deviceSpec_1.AppSpecType.INLINE;
315
+ // Check if application name changed, or it's a different type of application (either specType or appType)
316
+ if (currentAppSpecType !== updatedApp.specType ||
317
+ currentApp.appType !== updatedApp.appType ||
318
+ currentApp.name !== updatedApp.name) {
319
+ return true;
320
+ }
321
+ if (!areEnvVariablesEqual(currentApp.envVars, updatedApp.variables)) {
322
+ return true;
323
+ }
324
+ // The app is a single container application
325
+ if ((0, deviceSpec_1.isSingleContainerAppForm)(updatedApp)) {
326
+ return hasSingleContainerAppChanged(currentApp, updatedApp);
327
+ }
328
+ // The app is an image application (Quadlet/Compose image apps)
329
+ if (isCurrentImageApp) {
330
+ const imageApp = currentApp;
331
+ const updatedImageApp = updatedApp;
332
+ if (imageApp.image !== updatedImageApp.image) {
333
+ return true;
334
+ }
335
+ return !areVolumesEqual(imageApp.volumes || [], updatedApp.volumes || []);
336
+ }
337
+ // The app must be an inline application
338
+ return hasInlineApplicationChanged(currentApp, updatedApp);
339
+ };
197
340
  const getApplicationPatches = (basePath, currentApps, updatedApps) => {
198
341
  const patches = [];
199
342
  const currentLen = currentApps.length;
@@ -214,6 +357,7 @@ const getApplicationPatches = (basePath, currentApps, updatedApps) => {
214
357
  });
215
358
  }
216
359
  else if (currentLen !== newLen) {
360
+ // Array length changed, need to replace entire array
217
361
  patches.push({
218
362
  path: `${basePath}/applications`,
219
363
  op: 'replace',
@@ -221,38 +365,17 @@ const getApplicationPatches = (basePath, currentApps, updatedApps) => {
221
365
  });
222
366
  }
223
367
  else {
224
- const needsPatch = currentApps.some((currentApp, index) => {
368
+ // Apps length has not changed. We only PATCH the applications that have actually changed
369
+ currentApps.forEach((currentApp, index) => {
225
370
  const updatedApp = updatedApps[index];
226
- const isCurrentImageApp = (0, deviceSpec_1.isImageAppProvider)(currentApp);
227
- const currentAppSpecType = isCurrentImageApp ? deviceSpec_1.AppSpecType.OCI_IMAGE : deviceSpec_1.AppSpecType.INLINE;
228
- if (currentAppSpecType !== updatedApp.specType || updatedApp.name !== currentApp.name) {
229
- return true;
230
- }
231
- const currentVars = Object.entries(currentApp.envVars || {});
232
- if (currentVars.length !== updatedApp.variables.length) {
233
- return true;
234
- }
235
- else {
236
- const hasChangedVars = updatedApp.variables.some((variable) => {
237
- const currentValue = currentApp.envVars ? currentApp.envVars[variable.name] : undefined;
238
- return !currentValue || currentValue !== variable.value;
371
+ if (hasApplicationChanged(currentApp, updatedApp)) {
372
+ patches.push({
373
+ path: `${basePath}/applications/${index}`,
374
+ op: 'replace',
375
+ value: (0, exports.toAPIApplication)(updatedApp),
239
376
  });
240
- if (hasChangedVars) {
241
- return true;
242
- }
243
- }
244
- if (isCurrentImageApp) {
245
- return updatedApp.image !== currentApp.image;
246
377
  }
247
- return hasInlineApplicationChanged(currentApp, updatedApp);
248
378
  });
249
- if (needsPatch) {
250
- patches.push({
251
- path: `${basePath}/applications`,
252
- op: 'replace',
253
- value: updatedApps.map(exports.toAPIApplication),
254
- });
255
- }
256
379
  }
257
380
  return patches;
258
381
  };
@@ -310,40 +433,93 @@ const getApiConfig = (ct) => {
310
433
  };
311
434
  exports.getApiConfig = getApiConfig;
312
435
  const getAppFormVariables = (app) => Object.entries(app.envVars || {}).map(([varName, varValue]) => ({ name: varName, value: varValue }));
313
- const getAppFormVolumes = (app) => {
314
- var _a;
315
- return (_a = app.volumes) === null || _a === void 0 ? void 0 : _a.map((v) => ({
316
- name: v.name,
317
- reference: v.image.reference,
318
- pullPolicy: v.image.pullPolicy,
319
- }));
436
+ const convertVolumesToForm = (volumes) => {
437
+ if (!volumes)
438
+ return [];
439
+ return volumes.map((vol) => {
440
+ var _a, _b, _c;
441
+ const fullVolume = vol;
442
+ const volForm = {
443
+ name: fullVolume.name,
444
+ imageRef: ((_a = fullVolume.image) === null || _a === void 0 ? void 0 : _a.reference) || '',
445
+ imagePullPolicy: ((_b = fullVolume.image) === null || _b === void 0 ? void 0 : _b.pullPolicy) || types_1.ImagePullPolicy.PullIfNotPresent,
446
+ mountPath: ((_c = fullVolume.mount) === null || _c === void 0 ? void 0 : _c.path) || '',
447
+ };
448
+ // Determine volumeType based on which fields are present
449
+ if (volForm.imageRef && volForm.mountPath) {
450
+ volForm.volumeType = deviceSpec_1.VolumeType.IMAGE_MOUNT;
451
+ }
452
+ else if (volForm.imageRef) {
453
+ volForm.volumeType = deviceSpec_1.VolumeType.IMAGE_ONLY;
454
+ }
455
+ else if (volForm.mountPath) {
456
+ volForm.volumeType = deviceSpec_1.VolumeType.MOUNT_ONLY;
457
+ }
458
+ return volForm;
459
+ });
320
460
  };
321
461
  const getApplicationValues = (deviceSpec) => {
322
462
  const apps = (deviceSpec === null || deviceSpec === void 0 ? void 0 : deviceSpec.applications) || [];
323
463
  return apps.map((app) => {
464
+ var _a, _b;
465
+ if (!app.appType) {
466
+ throw new Error('Application appType is required');
467
+ }
468
+ // Single container application
469
+ if (app.appType === types_1.AppType.AppTypeContainer && (0, deviceSpec_1.isImageAppProvider)(app)) {
470
+ const imageApp = app;
471
+ const ports = ((_a = imageApp.ports) === null || _a === void 0 ? void 0 : _a.map((portString) => {
472
+ const [hostPort, containerPort] = portString.split(':');
473
+ return { hostPort: hostPort || '', containerPort: containerPort || '' };
474
+ })) || [];
475
+ return {
476
+ specType: deviceSpec_1.AppSpecType.OCI_IMAGE,
477
+ appType: types_1.AppType.AppTypeContainer,
478
+ name: app.name || '',
479
+ image: app.image,
480
+ variables: getAppFormVariables(app),
481
+ volumes: convertVolumesToForm(app.volumes),
482
+ ports,
483
+ limits: ((_b = imageApp.resources) === null || _b === void 0 ? void 0 : _b.limits)
484
+ ? {
485
+ cpu: imageApp.resources.limits.cpu || '',
486
+ memory: imageApp.resources.limits.memory || '',
487
+ }
488
+ : undefined,
489
+ };
490
+ }
491
+ // Compose or Quadlet image application
324
492
  if ((0, deviceSpec_1.isImageAppProvider)(app)) {
325
493
  return {
326
494
  specType: deviceSpec_1.AppSpecType.OCI_IMAGE,
327
495
  name: app.name || '',
328
496
  image: app.image,
497
+ appType: app.appType,
329
498
  variables: getAppFormVariables(app),
330
- volumes: getAppFormVolumes(app),
499
+ volumes: convertVolumesToForm(app.volumes),
331
500
  };
332
501
  }
502
+ // Compose or Quadlet inline application
503
+ const inlineApp = app;
333
504
  return {
334
505
  specType: deviceSpec_1.AppSpecType.INLINE,
506
+ appType: app.appType,
335
507
  name: app.name || '',
336
- files: app.inline.map((file) => ({
337
- path: file.path || '',
338
- content: file.content,
339
- base64: file.contentEncoding === types_1.EncodingType.EncodingBase64,
340
- })),
508
+ files: inlineApp.inline,
341
509
  variables: getAppFormVariables(app),
342
- volumes: getAppFormVolumes(app),
510
+ volumes: convertVolumesToForm(app.volumes),
343
511
  };
344
512
  });
345
513
  };
346
514
  exports.getApplicationValues = getApplicationValues;
515
+ const getSystemdUnitsValues = (deviceSpec) => {
516
+ var _a, _b;
517
+ return (((_b = (_a = deviceSpec === null || deviceSpec === void 0 ? void 0 : deviceSpec.systemd) === null || _a === void 0 ? void 0 : _a.matchPatterns) === null || _b === void 0 ? void 0 : _b.map((pattern) => ({
518
+ pattern,
519
+ exists: true,
520
+ }))) || []);
521
+ };
522
+ exports.getSystemdUnitsValues = getSystemdUnitsValues;
347
523
  const getConfigTemplatesValues = (deviceSpec, registerMicroShift) => {
348
524
  var _a;
349
525
  const deviceConfig = registerMicroShift
@@ -1 +1 @@
1
- {"version":3,"file":"deviceSpecUtils.js","sourceRoot":"","sources":["../../../../../src/components/Device/EditDeviceWizard/deviceSpecUtils.ts"],"names":[],"mappings":";;;AAAA,4CAc0B;AAC1B,0DAqBmC;AAGnC,MAAM,wBAAwB,GAAG,GAAG,CAAC,CAAC,iBAAiB;AACvD,MAAM,wBAAwB,GAAG,MAAM,CAAC;AACxC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAE5B,QAAA,aAAa,GAAG,kBAAkB,CAAC;AAChD,MAAM,iBAAiB,GAAG,gCAAgC,CAAC;AAC3D,MAAM,oBAAoB,GAAG,mCAAmC,CAAC;AACjE,MAAM,eAAe,GAAG,gCAAgC,CAAC;AAEzD,MAAM,iCAAiC,GAAG,qBAAqB,CAAC;AAChE,MAAM,iCAAiC,GAAG,+DAA+D,CAAC;AAC1G,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;;;;;;;;CAoBpC,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,MAA4B,EAA0B,EAAE;IACpF,IAAI,IAAA,8BAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,uBAAU,CAAC,GAAG,CAAC;IACxB,CAAC;SAAM,IAAI,IAAA,iCAAoB,EAAC,MAAM,CAAC,EAAE,CAAC;QACxC,OAAO,uBAAU,CAAC,MAAM,CAAC;IAC3B,CAAC;SAAM,IAAI,IAAA,+BAAkB,EAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,uBAAU,CAAC,IAAI,CAAC;IACzB,CAAC;SAAM,IAAI,IAAA,+BAAkB,EAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,uBAAU,CAAC,UAAU,CAAC;IAC/B,CAAC;IACD,6FAA6F;IAC7F,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAZW,QAAA,aAAa,iBAYxB;AAEF,MAAM,aAAa,GAAG,CAAC,CAAwB,EAAE,CAAwB,EAAE,EAAE;IAC3E,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QACjB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;QACvB,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU;QACnC,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,cAAc,CAC5C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,CAAyB,EAAE,CAAyB,EAAE,EAAE;IAC9E,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC;IACvB,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC;IACvB,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QACjB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;QAC/B,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU;QACnC,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAC5C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,CAA+B,EAAE,CAA+B,EAAE,EAAE;IAC5F,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC;IACzB,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC;IACzB,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QACjB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;QACvB,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;QACjC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAClC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAA4B,CAAgB,EAAE,CAAgB,EAAE,YAAe,EAAE,EAAE;IACjH,MAAM,MAAM,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO,MAAM,KAAK,MAAM,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,CAA2B,EAAE,CAA2B,EAAE,EAAE;IACpF,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QACjB,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM;QACnC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChC,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;gBAC7B,uBAAuB,CAAS,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,wBAAwB,CAAC;gBACrF,uBAAuB,CAAS,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,yBAAyB,CAAC;gBACxF,uBAAuB,CAAS,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,wBAAwB,CAAC;gBACrF,uBAAuB,CAAS,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,oBAAY,CAAC,aAAa,CAAC;gBAC7G,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CACpC,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,0BAA0B,GAAG,CACxC,cAAsC,EACtC,UAAkC,EAClC,UAAkB,EAClB,EAAE;IACF,MAAM,UAAU,GAAiB,EAAE,CAAC;IAEpC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzD,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,UAAU;SAClB,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,QAAQ;SACb,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,cAAc,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;QACvD,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,UAAU;SAClB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YACrD,6EAA6E;YAC7E,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC/C,MAAM,WAAW,GAAG,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAC;gBACxC,MAAM,OAAO,GAAG,IAAA,qBAAa,EAAC,SAAS,CAAC,CAAC;gBACzC,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;oBAC5B,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,QAAQ,OAAO,EAAE,CAAC;oBAChB,KAAK,uBAAU,CAAC,GAAG;wBACjB,OAAO,aAAa,CAAC,SAAkC,EAAE,IAA6B,CAAC,CAAC;oBAC1F,KAAK,uBAAU,CAAC,IAAI;wBAClB,OAAO,cAAc,CAAC,SAAmC,EAAE,IAA8B,CAAC,CAAC;oBAC7F,KAAK,uBAAU,CAAC,UAAU;wBACxB,OAAO,gBAAgB,CAAC,SAAyC,EAAE,IAAoC,CAAC,CAAC;oBAC3G,KAAK,uBAAU,CAAC,MAAM;wBACpB,OAAO,gBAAgB,CAAC,SAAqC,EAAE,IAAgC,CAAC,CAAC;gBACrG,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,WAAW,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,IAAI,gBAAgB,EAAE,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,SAAS;gBACb,KAAK,EAAE,UAAU;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AA3DW,QAAA,0BAA0B,8BA2DrC;AAEK,MAAM,gBAAgB,GAAG,CAAC,GAAY,EAA2B,EAAE;;IACxE,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;QACrD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,MAAA,GAAG,CAAC,OAAO,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE;YACL,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB;KACF,CAAC,CAAC,CAAC;IAEJ,IAAI,IAAA,2BAAc,EAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,OAAO;YACP,OAAO;SACR,CAAC;QACF,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,iCAAM,IAAI,KAAE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAG,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAED,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,eAAO,CAAC,cAAc;QAC/B,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CACnB,CAAC,IAAI,EAA8B,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;YAC3B,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAY,CAAC,cAAc,CAAC,CAAC,CAAC,oBAAY,CAAC,aAAa;SACxF,CAAC,CACH;QACD,OAAO;QACP,OAAO;KACR,CAAC;AACJ,CAAC,CAAC;AApCW,QAAA,gBAAgB,oBAoC3B;AAEF,MAAM,2BAA2B,GAAG,CAAC,UAAyC,EAAE,UAAyB,EAAE,EAAE;IAC3G,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,KAAK,oBAAY,CAAC,cAAc,CAAC;QAC7E,OAAO,CACL,CAAC,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,eAAe;YACjD,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;YAC9B,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CACrC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEK,MAAM,qBAAqB,GAAG,CACnC,QAAgB,EAChB,WAAsC,EACtC,WAAsB,EACtB,EAAE;IACF,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC;IACtC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IAClC,IAAI,UAAU,KAAK,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,gCAAgC;QAChC,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,GAAG,QAAQ,eAAe;YAChC,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,wBAAgB,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,UAAU,GAAG,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1C,gCAAgC;QAChC,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,GAAG,QAAQ,eAAe;YAChC,EAAE,EAAE,QAAQ;SACb,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,GAAG,QAAQ,eAAe;YAChC,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,wBAAgB,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;YACxD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,iBAAiB,GAAG,IAAA,+BAAkB,EAAC,UAAU,CAAC,CAAC;YACzD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,CAAC,CAAC,wBAAW,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAW,CAAC,MAAM,CAAC;YAC1F,IAAI,kBAAkB,KAAK,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;gBACtF,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC7D,IAAI,WAAW,CAAC,MAAM,KAAK,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBACvD,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;oBAC5D,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACxF,OAAO,CAAC,YAAY,IAAI,YAAY,KAAK,QAAQ,CAAC,KAAK,CAAC;gBAC1D,CAAC,CAAC,CAAC;gBACH,IAAI,cAAc,EAAE,CAAC;oBACnB,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,IAAI,iBAAiB,EAAE,CAAC;gBACtB,OAAQ,UAA2B,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CAAC;YACjE,CAAC;YAED,OAAO,2BAA2B,CAAC,UAAU,EAAE,UAA2B,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QACH,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,GAAG,QAAQ,eAAe;gBAChC,EAAE,EAAE,SAAS;gBACb,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,wBAAgB,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAjEW,QAAA,qBAAqB,yBAiEhC;AAEK,MAAM,YAAY,GAAG,CAAC,EAAsB,EAAwB,EAAE;IAC3E,IAAI,IAAA,gCAAmB,EAAC,EAAE,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,cAAc,EAAE,EAAE,CAAC,cAAc;aAClC;SACF,CAAC;IACJ,CAAC;IACD,IAAI,IAAA,iCAAoB,EAAC,EAAE,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,SAAS,EAAE;gBACT,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,IAAI,EAAE,EAAE,CAAC,UAAU;gBACnB,SAAS,EAAE,EAAE,CAAC,QAAQ;aACvB;SACF,CAAC;IACJ,CAAC;IACD,IAAI,IAAA,iCAAoB,EAAC,EAAE,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,OAAO,EAAE;gBACP,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,QAAQ,EAAE,EAAE,CAAC,QAAQ;aACtB;SACF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,MAAM,SAAS,GAAa;gBAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBAClE,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAY,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;aACvE,CAAC;YACF,kEAAkE;YAClE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC7B,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/B,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;KACH,CAAC;AACJ,CAAC,CAAC;AAlDW,QAAA,YAAY,gBAkDvB;AAEF,MAAM,mBAAmB,GAAG,CAAC,GAAiC,EAAE,EAAE,CAChE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAEvG,MAAM,iBAAiB,GAAG,CAAC,GAAiC,EAAE,EAAE;;IAC9D,OAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS;QAC5B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU;KAC/B,CAAC,CAAC,CAAA;CAAA,CAAC;AAEC,MAAM,oBAAoB,GAAG,CAAC,UAAuB,EAAa,EAAE;IACzE,MAAM,IAAI,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,YAAY,KAAI,EAAE,CAAC;IAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtB,IAAI,IAAA,+BAAkB,EAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACL,QAAQ,EAAE,wBAAW,CAAC,SAAS;gBAC/B,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;gBACpB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,SAAS,EAAE,mBAAmB,CAAC,GAAG,CAAC;gBACnC,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC;aAChC,CAAC;QACJ,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,wBAAW,CAAC,MAAM;YAC5B,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;YACpB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC/B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,IAAI,CAAC,eAAe,KAAK,oBAAY,CAAC,cAAc;aAC7D,CAAC,CAAC;YACH,SAAS,EAAE,mBAAmB,CAAC,GAAG,CAAC;YACnC,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC;SAChC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAxBW,QAAA,oBAAoB,wBAwB/B;AAEK,MAAM,wBAAwB,GAAG,CAAC,UAAuB,EAAE,kBAA4B,EAAE,EAAE;;IAChG,MAAM,YAAY,GAAG,kBAAkB;QACrC,CAAC,CAAC,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;QACpH,CAAC,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAC;IACvB,OAAO,CACL,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,CAAqB,CAAC,CAAC,EAAE,EAAE;QAC1C,IAAI,IAAA,8BAAiB,EAAC,CAAC,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,IAAI,EAAE,uBAAU,CAAC,GAAG;gBACpB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;gBACnB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU;gBAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc;aACnB,CAAC;QACzB,CAAC;QACD,IAAI,IAAA,+BAAkB,EAAC,CAAC,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,IAAI,EAAE,uBAAU,CAAC,UAAU;gBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS;gBAChC,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI;gBAC5B,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS;aACV,CAAC;QAC1B,CAAC;QACD,IAAI,IAAA,+BAAkB,EAAC,CAAC,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,IAAI,EAAE,uBAAU,CAAC,IAAI;gBACrB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU;gBAChC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM;gBACxB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ;aACP,CAAC;QAC1B,CAAC;QAED,OAAO;YACL,IAAI,EAAE,uBAAU,CAAC,MAAM;YACvB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC7B,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,WAAW,EAAE,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,sBAAc,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;oBAChF,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,MAAM,EAAE,MAAM,CAAC,eAAe,KAAK,oBAAY,CAAC,cAAc;iBAC3B,CAAC;YACxC,CAAC,CAAC;SACqB,CAAC;IAC5B,CAAC,CAAC,KAAI,EAAE,CACT,CAAC;AACJ,CAAC,CAAC;AAlDW,QAAA,wBAAwB,4BAkDnC;AAEK,MAAM,cAAc,GAAG,CAAC,IAAqB,EAAU,EAAE;IAC9D,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACtC,OAAO,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AAC1E,CAAC,CAAC;AAJW,QAAA,cAAc,kBAIzB;AAEW,QAAA,YAAY,GAA2B;IAClD,IAAI,EAAE,SAAS;IACf,OAAO,EAAE;QACP,QAAQ,EAAE,iBAAiB;QAC3B,UAAU,EAAE,qBAAa;QACzB,MAAM,EAAE,6BAA6B;KACtC;CACF,CAAC;AAEW,QAAA,eAAe,GAA2B;IACrD,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE;QACP,QAAQ,EAAE,oBAAoB;QAC9B,UAAU,EAAE,qBAAa;QACzB,MAAM,EAAE,GAAG,eAAe,sBAAsB;KACjD;CACF,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,CAAqB,EAAE,EAAE;IAC/C,IAAI,CAAC,IAAA,+BAAkB,EAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,oBAAY,CAAC,IAAI;QAC5B,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,oBAAY,CAAC,OAAO,CAAC,QAAQ;QACpD,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,oBAAY,CAAC,OAAO,CAAC,UAAU;QACxD,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,oBAAY,CAAC,OAAO,CAAC,MAAM,CACjD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,CAAqB,EAAE,EAAE;;IAClD,IAAI,CAAC,IAAA,+BAAkB,EAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,uBAAe,CAAC,IAAI;QAC/B,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,uBAAe,CAAC,OAAO,CAAC,QAAQ;QACvD,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,uBAAe,CAAC,OAAO,CAAC,UAAU;SAC3D,MAAA,CAAC,CAAC,OAAO,CAAC,MAAM,0CAAE,UAAU,CAAC,eAAe,CAAC,CAAA,CAC9C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,4BAA4B,GAAG,CAAC,CAAqB,EAAE,EAAE;IAC7D,IAAI,CAAC,IAAA,iCAAoB,EAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,iCAAiC;QAC5C,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QACrB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,iCAAiC;QACtD,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,4BAA4B,CACrD,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,0BAA0B,GAA6B;IAClE,IAAI,EAAE,iCAAiC;IACvC,MAAM,EAAE;QACN;YACE,IAAI,EAAE,iCAAiC;YACvC,OAAO,EAAE,4BAA4B;SACtC;KACF;CACF,CAAC;AAEK,MAAM,+BAA+B,GAAG,CAAC,UAAuB,EAAW,EAAE;;IAClF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,WAAW,GAAG,MAAA,UAAU,CAAC,MAAM,0CAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,MAAA,UAAU,CAAC,MAAM,0CAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjE,MAAM,mBAAmB,GAAG,MAAA,UAAU,CAAC,MAAM,0CAAE,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAElF,OAAO,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,mBAAmB,CAAC;AACnE,CAAC,CAAC;AATW,QAAA,+BAA+B,mCAS1C"}
1
+ {"version":3,"file":"deviceSpecUtils.js","sourceRoot":"","sources":["../../../../../src/components/Device/EditDeviceWizard/deviceSpecUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ .fctl-containerapp__added-ports {
2
+ /* In PF5 light mode, the border is almost invisible */
3
+ border: 1px solid gray !important;
4
+ margin-top: 1rem;
5
+ }
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { SingleContainerAppForm } from '../../../../types/deviceSpec';
3
+ import './ApplicationContainerForm.css';
4
+ declare const ApplicationContainerForm: ({ app, index, isReadOnly, }: {
5
+ app: SingleContainerAppForm;
6
+ index: number;
7
+ isReadOnly?: boolean | undefined;
8
+ }) => React.JSX.Element;
9
+ export default ApplicationContainerForm;
10
+ //# sourceMappingURL=ApplicationContainerForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationContainerForm.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Device/EditDeviceWizard/steps/ApplicationContainerForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,OAAO,EAAe,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAGnF,OAAO,gCAAgC,CAAC;AAExC,QAAA,MAAM,wBAAwB;SAKvB,sBAAsB;WACpB,MAAM;;uBA6Rd,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const React = tslib_1.__importStar(require("react"));
5
+ const formik_1 = require("formik");
6
+ const react_core_1 = require("@patternfly/react-core");
7
+ const arrow_right_icon_1 = require("@patternfly/react-icons/dist/js/icons/arrow-right-icon");
8
+ const WithHelperText_1 = require("../../../common/WithHelperText");
9
+ const TextField_1 = tslib_1.__importDefault(require("../../../form/TextField"));
10
+ const FieldHelperText_1 = tslib_1.__importDefault(require("../../../form/FieldHelperText"));
11
+ const validations_1 = require("../../../form/validations");
12
+ const useTranslation_1 = require("../../../../hooks/useTranslation");
13
+ const ApplicationVolumeForm_1 = tslib_1.__importDefault(require("./ApplicationVolumeForm"));
14
+ require("./ApplicationContainerForm.css");
15
+ const ApplicationContainerForm = ({ app, index, isReadOnly, }) => {
16
+ var _a, _b;
17
+ const { t } = (0, useTranslation_1.useTranslation)();
18
+ const appFieldName = `applications[${index}]`;
19
+ const [{ value: ports }, , { setValue: setPorts, setTouched }] = (0, formik_1.useField)(`${appFieldName}.ports`);
20
+ const [hostPort, setHostPort] = React.useState('');
21
+ const [containerPort, setContainerPort] = React.useState('');
22
+ const [hostPortTouched, setHostPortTouched] = React.useState(false);
23
+ const [containerPortTouched, setContainerPortTouched] = React.useState(false);
24
+ const [editingPortIndex, setEditingPortIndex] = React.useState(null);
25
+ const [editingPortError, setEditingPortError] = React.useState(undefined);
26
+ const canAddPorts = !editingPortError && (0, validations_1.isValidPortMapping)(hostPort, containerPort, ports || []) && !isReadOnly;
27
+ const validatePort = (port) => {
28
+ const error = (0, validations_1.validatePortNumber)(port, t);
29
+ if (error) {
30
+ return error;
31
+ }
32
+ // Check for duplicate if both ports match the number pattern
33
+ if ((0, validations_1.isDuplicatePortMapping)(port, containerPort, ports || [])) {
34
+ return t('This port mapping already exists');
35
+ }
36
+ return undefined;
37
+ };
38
+ const hostPortError = hostPortTouched ? validatePort(hostPort) : undefined;
39
+ const containerPortError = containerPortTouched ? validatePort(containerPort) : undefined;
40
+ const updatePorts = (newPorts) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
41
+ yield setPorts(newPorts, true);
42
+ setTouched(true);
43
+ });
44
+ const onAddPort = () => {
45
+ if ((0, validations_1.isValidPortMapping)(hostPort, containerPort, ports || [])) {
46
+ updatePorts([...(ports || []), { hostPort, containerPort }]);
47
+ setHostPort('');
48
+ setContainerPort('');
49
+ setHostPortTouched(false);
50
+ setContainerPortTouched(false);
51
+ setEditingPortIndex(null);
52
+ setEditingPortError(undefined);
53
+ }
54
+ };
55
+ const onDeletePort = (index) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
56
+ const newPorts = [...(ports || [])];
57
+ newPorts.splice(index, 1);
58
+ yield updatePorts(newPorts);
59
+ // Clear error state if the deleted port was being edited
60
+ if (editingPortIndex === index) {
61
+ setEditingPortIndex(null);
62
+ setEditingPortError(undefined);
63
+ }
64
+ else if (editingPortIndex !== null && editingPortIndex > index) {
65
+ // Adjust the editing index if a port before it was deleted
66
+ setEditingPortIndex(editingPortIndex - 1);
67
+ }
68
+ });
69
+ const validatePortMapping = (hostPortValue, containerPortValue, excludeIndex) => {
70
+ if (!hostPortValue || !containerPortValue) {
71
+ return t('Port mapping must be in format "hostPort:containerPort"');
72
+ }
73
+ // Validate host port
74
+ const hostError = (0, validations_1.validatePortNumber)(hostPortValue, t);
75
+ if (hostError) {
76
+ return hostError;
77
+ }
78
+ // Validate container port
79
+ const containerError = (0, validations_1.validatePortNumber)(containerPortValue, t);
80
+ if (containerError) {
81
+ return containerError;
82
+ }
83
+ // Validate both ports together
84
+ if (!(0, validations_1.isValidPortMapping)(hostPortValue, containerPortValue, [])) {
85
+ return t('Invalid port values');
86
+ }
87
+ // Check for duplicates, excluding the current port being edited
88
+ const otherPorts = excludeIndex !== undefined ? (ports || []).filter((_, i) => i !== excludeIndex) : ports || [];
89
+ if ((0, validations_1.isDuplicatePortMapping)(hostPortValue, containerPortValue, otherPorts)) {
90
+ return t('This port mapping already exists');
91
+ }
92
+ return undefined;
93
+ };
94
+ const onEditPort = (index, newText) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
95
+ const [newHostPort, newContainerPort] = newText.split(':');
96
+ const error = validatePortMapping(newHostPort || '', newContainerPort || '', index);
97
+ if (error) {
98
+ // Keep label in edit mode and show error
99
+ setEditingPortIndex(index);
100
+ setEditingPortError(error);
101
+ return;
102
+ }
103
+ const newPorts = [...(ports || [])];
104
+ newPorts[index] = { hostPort: newHostPort || '', containerPort: newContainerPort || '' };
105
+ yield updatePorts(newPorts);
106
+ // Clear editing state
107
+ setEditingPortIndex(null);
108
+ setEditingPortError(undefined);
109
+ });
110
+ const onEditCancel = (index) => {
111
+ // Clear editing state when user cancels
112
+ if (editingPortIndex === index) {
113
+ setEditingPortIndex(null);
114
+ setEditingPortError(undefined);
115
+ }
116
+ };
117
+ // Clear error state if the editing index becomes invalid (e.g., port was deleted externally)
118
+ React.useEffect(() => {
119
+ if (editingPortIndex !== null && (!ports || editingPortIndex >= ports.length)) {
120
+ setEditingPortIndex(null);
121
+ setEditingPortError(undefined);
122
+ }
123
+ }, [editingPortIndex, ports]);
124
+ const handleKeyDown = (e) => {
125
+ if (e.key === 'Enter') {
126
+ e.preventDefault();
127
+ onAddPort();
128
+ }
129
+ };
130
+ return (React.createElement(react_core_1.FormSection, null,
131
+ React.createElement(react_core_1.Grid, { hasGutter: true },
132
+ React.createElement(WithHelperText_1.FormGroupWithHelperText, { label: t('Application name'), content: t('If not specified, the image name will be used. Application name must be unique.'), isRequired: true },
133
+ React.createElement(TextField_1.default, { "aria-label": t('Application name'), name: `${appFieldName}.name`, isDisabled: isReadOnly })),
134
+ React.createElement(react_core_1.FormGroup, { label: t('Image'), isRequired: true },
135
+ React.createElement(TextField_1.default, { "aria-label": t('Image'), name: `${appFieldName}.image`, value: app.image || '', isDisabled: isReadOnly, helperText: t('Provide a valid image reference') })),
136
+ React.createElement(react_core_1.FormGroup, { label: t('Ports') },
137
+ React.createElement("small", null, t('Provide a list of ports to map to the container')),
138
+ !isReadOnly && (React.createElement(react_core_1.Split, { hasGutter: true, className: "pf-v5-u-mt-sm" },
139
+ React.createElement(react_core_1.SplitItem, { isFilled: true },
140
+ React.createElement(react_core_1.TextInput, { "aria-label": t('Host port'), value: hostPort, placeholder: t('Host port'), onChange: (_, value) => {
141
+ setHostPort(value);
142
+ setHostPortTouched(true);
143
+ }, onBlur: () => setHostPortTouched(true), onKeyDown: handleKeyDown, isDisabled: isReadOnly, validated: hostPortError ? 'error' : 'default' }),
144
+ hostPortError ? React.createElement(FieldHelperText_1.default, { error: hostPortError, touchRequired: false }) : React.createElement("div", null, "\u00A0")),
145
+ React.createElement(react_core_1.SplitItem, { isFilled: true },
146
+ React.createElement(react_core_1.TextInput, { "aria-label": t('Container port'), value: containerPort, placeholder: t('Container port'), onChange: (_, value) => {
147
+ setContainerPort(value);
148
+ setContainerPortTouched(true);
149
+ }, onBlur: () => setContainerPortTouched(true), onKeyDown: handleKeyDown, isDisabled: isReadOnly, validated: containerPortError ? 'error' : 'default' })),
150
+ React.createElement(react_core_1.SplitItem, null,
151
+ React.createElement(react_core_1.Button, { "aria-label": t('Add port mapping'), variant: "control", icon: React.createElement(arrow_right_icon_1.ArrowRightIcon, null), iconPosition: "end", onClick: onAddPort, isDisabled: !canAddPorts }, t('Add'))))),
152
+ ports && ports.length > 0 && (React.createElement(React.Fragment, null,
153
+ React.createElement(react_core_1.LabelGroup, { numLabels: 5, categoryName: t('Added ports'), isEditable: !isReadOnly, className: "fctl-containerapp__added-ports" }, ports.map((port, portIndex) => {
154
+ const portText = `${port.hostPort}:${port.containerPort}`;
155
+ const isEditing = editingPortIndex === portIndex;
156
+ const hasError = isEditing && editingPortError;
157
+ return (React.createElement(react_core_1.Label, { key: `${port.hostPort}_${port.containerPort}_${portIndex}`, textMaxWidth: "16ch", onClose: !isReadOnly ? () => onDeletePort(portIndex) : undefined, onEditComplete: !isReadOnly ? (_, newText) => onEditPort(portIndex, newText) : undefined, onEditCancel: !isReadOnly ? () => onEditCancel(portIndex) : undefined, title: portText, isEditable: !isReadOnly && (!editingPortError || portIndex === editingPortIndex), color: hasError ? 'red' : undefined }, portText));
158
+ })),
159
+ editingPortError && editingPortIndex !== null && (React.createElement(FieldHelperText_1.default, { error: editingPortError, touchRequired: false }))))),
160
+ React.createElement(react_core_1.FormGroup, { label: t('Resources') },
161
+ React.createElement(react_core_1.Grid, { hasGutter: true },
162
+ React.createElement(WithHelperText_1.FormGroupWithHelperText, { label: t('CPU limit'), content: t('Set the maximum CPU usage for your container. Use fractional values ("0.5" for half a CPU core) or whole numbers ("1", "2" for full cores). Consider your device\'s total CPU capacity when setting limits.') },
163
+ React.createElement(TextField_1.default, { "aria-label": t('CPU limit'), name: `${appFieldName}.limits.cpu`, value: ((_a = app.limits) === null || _a === void 0 ? void 0 : _a.cpu) || '', placeholder: t('Enter numeric value'), isDisabled: isReadOnly, helperText: t('Provide a valid CPU value (e.g., "0.4" or "2").') })),
164
+ React.createElement(WithHelperText_1.FormGroupWithHelperText, { label: t('Memory limit'), content: t('Set the maximum memory usage for your container using Podman format. You can specify a number with an optional unit: "b" (bytes), "k" (kibibytes), "m" (mebibytes), "g" (gibibytes). Examples: "512", "512m", "1g", "2048k". Ensure the limit fits within your device\'s available memory and accounts for other applications and system processes.') },
165
+ React.createElement(TextField_1.default, { "aria-label": t('Memory limit'), name: `${appFieldName}.limits.memory`, value: ((_b = app.limits) === null || _b === void 0 ? void 0 : _b.memory) || '', placeholder: t('Enter numeric value with optional unit'), isDisabled: isReadOnly, helperText: t('Provide a valid memory value (e.g., "512", "512m", "2g", "1024k").') })))),
166
+ React.createElement(ApplicationVolumeForm_1.default, { appFieldName: appFieldName, volumes: app.volumes || [], isReadOnly: isReadOnly, isSingleContainerApp: true }))));
167
+ };
168
+ exports.default = ApplicationContainerForm;
169
+ //# sourceMappingURL=ApplicationContainerForm.js.map