@flightctl/ui-components 0.5.1 → 0.6.0-rc2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/components/DetailsPage/DetailsPage.d.ts +3 -2
- package/dist/src/components/DetailsPage/DetailsPage.d.ts.map +1 -1
- package/dist/src/components/DetailsPage/DetailsPage.js +2 -2
- package/dist/src/components/DetailsPage/DetailsPage.js.map +1 -1
- package/dist/src/components/DetailsPage/Tables/ApplicationsTable.d.ts.map +1 -1
- package/dist/src/components/DetailsPage/Tables/ApplicationsTable.js +5 -3
- package/dist/src/components/DetailsPage/Tables/ApplicationsTable.js.map +1 -1
- package/dist/src/components/Device/AddDeviceModal/AddDeviceModal.d.ts.map +1 -1
- package/dist/src/components/Device/AddDeviceModal/AddDeviceModal.js +4 -5
- package/dist/src/components/Device/AddDeviceModal/AddDeviceModal.js.map +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceAliasEdit.d.ts +10 -0
- package/dist/src/components/Device/DeviceDetails/DeviceAliasEdit.d.ts.map +1 -0
- package/dist/src/components/Device/DeviceDetails/DeviceAliasEdit.js +110 -0
- package/dist/src/components/Device/DeviceDetails/DeviceAliasEdit.js.map +1 -0
- package/dist/src/components/Device/DeviceDetails/DeviceApplications.d.ts.map +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceApplications.js +7 -1
- package/dist/src/components/Device/DeviceDetails/DeviceApplications.js.map +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.d.ts.map +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.js +9 -6
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.js.map +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.d.ts.map +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.js +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.js.map +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.d.ts.map +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.js +3 -3
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.js.map +1 -1
- package/dist/src/components/Device/DeviceDetails/DeviceDetailsTabContent/SystemResourcesContent.js +3 -3
- package/dist/src/components/Device/DeviceDetails/TerminalTab.d.ts.map +1 -1
- package/dist/src/components/Device/DeviceDetails/TerminalTab.js +34 -3
- package/dist/src/components/Device/DeviceDetails/TerminalTab.js.map +1 -1
- package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.d.ts.map +1 -1
- package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.js +1 -1
- package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.js.map +1 -1
- package/dist/src/components/Device/DevicesPage/DeviceToolbarFilters.d.ts.map +1 -1
- package/dist/src/components/Device/DevicesPage/DeviceToolbarFilters.js +35 -30
- package/dist/src/components/Device/DevicesPage/DeviceToolbarFilters.js.map +1 -1
- package/dist/src/components/Device/DevicesPage/DevicesPage.d.ts.map +1 -1
- package/dist/src/components/Device/DevicesPage/DevicesPage.js +11 -2
- package/dist/src/components/Device/DevicesPage/DevicesPage.js.map +1 -1
- package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.d.ts.map +1 -1
- package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.js +14 -11
- package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.js.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizard.d.ts.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizard.js +9 -2
- package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizard.js.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardFooter.d.ts.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardFooter.js +21 -6
- package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardFooter.js.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardNav.d.ts.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardNav.js +11 -4
- package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardNav.js.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.d.ts +6 -5
- package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.d.ts.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.js +123 -10
- package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.js.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.d.ts +8 -0
- package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.d.ts.map +1 -0
- package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.js +19 -0
- package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.js.map +1 -0
- package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.d.ts +8 -0
- package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.d.ts.map +1 -0
- package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.js +49 -0
- package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.js.map +1 -0
- package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.d.ts.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.js +52 -19
- package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.js.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.d.ts.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.js +13 -16
- package/dist/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.js.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ConfigK8sSecretTemplateForm.d.ts.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ConfigK8sSecretTemplateForm.js.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.d.ts.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.js +5 -5
- package/dist/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.js.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.d.ts.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.js +2 -2
- package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.js.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.d.ts +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.d.ts.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.js +16 -16
- package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.js.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.d.ts +8 -0
- package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.d.ts.map +1 -0
- package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.js +58 -0
- package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.js.map +1 -0
- package/dist/src/components/Device/EditDeviceWizard/steps/GeneralInfoStep.d.ts +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/GeneralInfoStep.d.ts.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ReviewApplications.d.ts +2 -2
- package/dist/src/components/Device/EditDeviceWizard/steps/ReviewApplications.d.ts.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ReviewApplications.js +17 -12
- package/dist/src/components/Device/EditDeviceWizard/steps/ReviewApplications.js.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ReviewDeviceStep.js +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ReviewTrackedSystemdServices.d.ts +2 -4
- package/dist/src/components/Device/EditDeviceWizard/steps/ReviewTrackedSystemdServices.d.ts.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ReviewTrackedSystemdServices.js.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ReviewUpdatePolicy.d.ts +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ReviewUpdatePolicy.d.ts.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/steps/ReviewUpdatePolicy.js.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/utils.d.ts +29 -3
- package/dist/src/components/Device/EditDeviceWizard/utils.d.ts.map +1 -1
- package/dist/src/components/Device/EditDeviceWizard/utils.js +8 -7
- package/dist/src/components/Device/EditDeviceWizard/utils.js.map +1 -1
- package/dist/src/components/Device/SystemdUnitsModal/SystemdUnitsModal.d.ts.map +1 -1
- package/dist/src/components/Device/SystemdUnitsModal/SystemdUnitsModal.js.map +1 -1
- package/dist/src/components/Device/SystemdUnitsModal/TrackSystemdUnitsForm.d.ts +1 -4
- package/dist/src/components/Device/SystemdUnitsModal/TrackSystemdUnitsForm.d.ts.map +1 -1
- package/dist/src/components/Device/SystemdUnitsModal/TrackSystemdUnitsForm.js.map +1 -1
- package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.d.ts.map +1 -1
- package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.js +5 -5
- package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.js.map +1 -1
- package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.d.ts +2 -1
- package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.d.ts.map +1 -1
- package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.js +19 -11
- package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.js.map +1 -1
- package/dist/src/components/EnrollmentRequest/EnrollmentRequestTableRow.d.ts.map +1 -1
- package/dist/src/components/EnrollmentRequest/EnrollmentRequestTableRow.js +5 -1
- package/dist/src/components/EnrollmentRequest/EnrollmentRequestTableRow.js.map +1 -1
- package/dist/src/components/EnrollmentRequest/useEnrollmentRequests.d.ts +2 -1
- package/dist/src/components/EnrollmentRequest/useEnrollmentRequests.d.ts.map +1 -1
- package/dist/src/components/EnrollmentRequest/useEnrollmentRequests.js +8 -4
- package/dist/src/components/EnrollmentRequest/useEnrollmentRequests.js.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/CreateFleetWizard.d.ts.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/CreateFleetWizard.js +2 -2
- package/dist/src/components/Fleet/CreateFleet/CreateFleetWizard.js.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.d.ts.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.js +8 -1
- package/dist/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.js.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.d.ts +19 -2
- package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.d.ts.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.js +53 -18
- package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.js.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/DeviceLabelSelector.js +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/DeviceLabelSelector.js.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.d.ts +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.d.ts.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.js +1 -2
- package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.js.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/ReviewStep.js +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.d.ts +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.d.ts.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.js +9 -0
- package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.js.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.d.ts +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.d.ts.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.js +22 -9
- package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.js.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.d.ts.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.js +4 -4
- package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.js.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.d.ts.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.js +5 -5
- package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.js.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.css +3 -0
- package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.d.ts +9 -0
- package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.d.ts.map +1 -0
- package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.js +127 -0
- package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.js.map +1 -0
- package/dist/src/components/Fleet/CreateFleet/utils.d.ts +1 -1
- package/dist/src/components/Fleet/CreateFleet/utils.d.ts.map +1 -1
- package/dist/src/components/Fleet/CreateFleet/utils.js +13 -4
- package/dist/src/components/Fleet/CreateFleet/utils.js.map +1 -1
- package/dist/src/components/Fleet/FleetsPage.d.ts.map +1 -1
- package/dist/src/components/Fleet/FleetsPage.js +8 -12
- package/dist/src/components/Fleet/FleetsPage.js.map +1 -1
- package/dist/src/components/Fleet/ImportFleetWizard/steps/ResourceSyncStep.js +1 -1
- package/dist/src/components/Fleet/ImportFleetWizard/steps/ResourceSyncStep.js.map +1 -1
- package/dist/src/components/ListPage/ListPage.d.ts +1 -0
- package/dist/src/components/ListPage/ListPage.d.ts.map +1 -1
- package/dist/src/components/ListPage/ListPage.js +3 -3
- package/dist/src/components/ListPage/ListPage.js.map +1 -1
- package/dist/src/components/Masthead/CommandLineToolsPage.d.ts +4 -0
- package/dist/src/components/Masthead/CommandLineToolsPage.d.ts.map +1 -0
- package/dist/src/components/Masthead/CommandLineToolsPage.js +90 -0
- package/dist/src/components/Masthead/CommandLineToolsPage.js.map +1 -0
- package/dist/src/components/Masthead/UserPreferencesModal.d.ts.map +1 -0
- package/dist/src/components/Masthead/UserPreferencesModal.js.map +1 -0
- package/dist/src/components/Masthead/UserPreferencesProvider.d.ts.map +1 -0
- package/dist/src/components/Masthead/UserPreferencesProvider.js.map +1 -0
- package/dist/src/components/OverviewPage/Cards/Status/StatusCard.js +3 -3
- package/dist/src/components/OverviewPage/Cards/Status/StatusCard.js.map +1 -1
- package/dist/src/components/OverviewPage/Cards/Tasks/TasksCard.d.ts +4 -0
- package/dist/src/components/OverviewPage/Cards/Tasks/TasksCard.d.ts.map +1 -0
- package/dist/src/components/OverviewPage/Cards/{ToDo/ToDoCard.js → Tasks/TasksCard.js} +4 -4
- package/dist/src/components/OverviewPage/Cards/Tasks/TasksCard.js.map +1 -0
- package/dist/src/components/OverviewPage/Overview.js +2 -2
- package/dist/src/components/OverviewPage/Overview.js.map +1 -1
- package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.d.ts.map +1 -1
- package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.js +6 -5
- package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.js.map +1 -1
- package/dist/src/components/Repository/CreateRepository/CreateResourceSyncsForm.d.ts.map +1 -1
- package/dist/src/components/Repository/CreateRepository/CreateResourceSyncsForm.js +3 -3
- package/dist/src/components/Repository/CreateRepository/CreateResourceSyncsForm.js.map +1 -1
- package/dist/src/components/Repository/CreateRepository/utils.d.ts.map +1 -1
- package/dist/src/components/Repository/CreateRepository/utils.js +4 -1
- package/dist/src/components/Repository/CreateRepository/utils.js.map +1 -1
- package/dist/src/components/Repository/RepositoryDetails/RepositoryResourceSyncsCard.d.ts.map +1 -1
- package/dist/src/components/Repository/RepositoryDetails/RepositoryResourceSyncsCard.js +1 -1
- package/dist/src/components/Repository/RepositoryDetails/RepositoryResourceSyncsCard.js.map +1 -1
- package/dist/src/components/Repository/RepositoryList.d.ts.map +1 -1
- package/dist/src/components/Repository/RepositoryList.js +3 -11
- package/dist/src/components/Repository/RepositoryList.js.map +1 -1
- package/dist/src/components/ResourceSync/RepositoryResourceSyncList.d.ts.map +1 -1
- package/dist/src/components/ResourceSync/RepositoryResourceSyncList.js +3 -6
- package/dist/src/components/ResourceSync/RepositoryResourceSyncList.js.map +1 -1
- package/dist/src/components/Status/DeviceResourceStatus.js +3 -3
- package/dist/src/components/Status/utils.d.ts.map +1 -1
- package/dist/src/components/Status/utils.js +3 -3
- package/dist/src/components/Status/utils.js.map +1 -1
- package/dist/src/components/Table/Table.d.ts +2 -1
- package/dist/src/components/Table/Table.d.ts.map +1 -1
- package/dist/src/components/Table/Table.js +9 -5
- package/dist/src/components/Table/Table.js.map +1 -1
- package/dist/src/components/Table/TablePagination.d.ts.map +1 -1
- package/dist/src/components/Table/TablePagination.js +1 -1
- package/dist/src/components/Table/TablePagination.js.map +1 -1
- package/dist/src/components/Terminal/Terminal.d.ts +1 -1
- package/dist/src/components/Terminal/Terminal.d.ts.map +1 -1
- package/dist/src/components/Terminal/Terminal.js +10 -3
- package/dist/src/components/Terminal/Terminal.js.map +1 -1
- package/dist/src/components/charts/DonutChart.js +1 -1
- package/dist/src/components/charts/DonutChart.js.map +1 -1
- package/dist/src/components/common/LeaveFormConfirmation.js +1 -1
- package/dist/src/components/common/LeaveFormConfirmation.js.map +1 -1
- package/dist/src/components/common/WithHelperText.d.ts +10 -5
- package/dist/src/components/common/WithHelperText.d.ts.map +1 -1
- package/dist/src/components/common/WithHelperText.js +13 -8
- package/dist/src/components/common/WithHelperText.js.map +1 -1
- package/dist/src/components/form/CheckboxField.d.ts +6 -3
- package/dist/src/components/form/CheckboxField.d.ts.map +1 -1
- package/dist/src/components/form/CheckboxField.js +20 -1
- package/dist/src/components/form/CheckboxField.js.map +1 -1
- package/dist/src/components/form/FormSelectTypeahead.d.ts +3 -3
- package/dist/src/components/form/FormSelectTypeahead.d.ts.map +1 -1
- package/dist/src/components/form/FormSelectTypeahead.js +43 -53
- package/dist/src/components/form/FormSelectTypeahead.js.map +1 -1
- package/dist/src/components/form/RichValidationTextField.d.ts +1 -1
- package/dist/src/components/form/RichValidationTextField.d.ts.map +1 -1
- package/dist/src/components/form/RichValidationTextField.js +8 -4
- package/dist/src/components/form/RichValidationTextField.js.map +1 -1
- package/dist/src/components/form/validations.d.ts +44 -4
- package/dist/src/components/form/validations.d.ts.map +1 -1
- package/dist/src/components/form/validations.js +148 -25
- package/dist/src/components/form/validations.js.map +1 -1
- package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceForm.js +5 -3
- package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceForm.js.map +1 -1
- package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.d.ts.map +1 -1
- package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.js +3 -2
- package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.js.map +1 -1
- package/dist/src/components/modals/EditLabelsModal/EditLabelsForm.d.ts.map +1 -1
- package/dist/src/components/modals/EditLabelsModal/EditLabelsForm.js +7 -12
- package/dist/src/components/modals/EditLabelsModal/EditLabelsForm.js.map +1 -1
- package/dist/src/components/modals/massModals/MassDecommissionDeviceModal/MassDecommissionDeviceModal.js +4 -4
- package/dist/src/components/modals/massModals/MassDecommissionDeviceModal/MassDecommissionDeviceModal.js.map +1 -1
- package/dist/src/components/modals/massModals/MassDeleteDeviceModal/MassDeleteDeviceModal.js +4 -4
- package/dist/src/components/modals/massModals/MassDeleteDeviceModal/MassDeleteDeviceModal.js.map +1 -1
- package/dist/src/components/modals/massModals/MassDeleteFleetModal/MassDeleteFleetModal.js +2 -2
- package/dist/src/components/modals/massModals/MassDeleteFleetModal/MassDeleteFleetModal.js.map +1 -1
- package/dist/src/components/modals/massModals/MassDeleteRepositoryModal/MassDeleteRepositoryModal.js +2 -2
- package/dist/src/components/modals/massModals/MassDeleteRepositoryModal/MassDeleteRepositoryModal.js.map +1 -1
- package/dist/src/hooks/timeZones.d.ts +3 -0
- package/dist/src/hooks/timeZones.d.ts.map +1 -0
- package/dist/src/hooks/timeZones.js +607 -0
- package/dist/src/hooks/timeZones.js.map +1 -0
- package/dist/src/hooks/useAppContext.d.ts +14 -8
- package/dist/src/hooks/useAppContext.d.ts.map +1 -1
- package/dist/src/hooks/useAppContext.js +13 -6
- package/dist/src/hooks/useAppContext.js.map +1 -1
- package/dist/src/hooks/useFetch.d.ts +3 -5
- package/dist/src/hooks/useFetch.d.ts.map +1 -1
- package/dist/src/hooks/useFetch.js +3 -2
- package/dist/src/hooks/useFetch.js.map +1 -1
- package/dist/src/hooks/useNavigate.d.ts +2 -1
- package/dist/src/hooks/useNavigate.d.ts.map +1 -1
- package/dist/src/hooks/useNavigate.js +1 -0
- package/dist/src/hooks/useNavigate.js.map +1 -1
- package/dist/src/hooks/useTimeZones.d.ts +4 -0
- package/dist/src/hooks/useTimeZones.d.ts.map +1 -0
- package/dist/src/hooks/useTimeZones.js +22 -0
- package/dist/src/hooks/useTimeZones.js.map +1 -0
- package/dist/src/hooks/useWebSocket.d.ts +6 -2
- package/dist/src/hooks/useWebSocket.d.ts.map +1 -1
- package/dist/src/hooks/useWebSocket.js +22 -7
- package/dist/src/hooks/useWebSocket.js.map +1 -1
- package/dist/src/links.d.ts +3 -0
- package/dist/src/links.d.ts.map +1 -1
- package/dist/src/links.js +10 -3
- package/dist/src/links.js.map +1 -1
- package/dist/src/types/deviceSpec.d.ts +93 -5
- package/dist/src/types/deviceSpec.d.ts.map +1 -1
- package/dist/src/types/deviceSpec.js +28 -2
- package/dist/src/types/deviceSpec.js.map +1 -1
- package/dist/src/types/extraTypes.d.ts +19 -1
- package/dist/src/types/extraTypes.d.ts.map +1 -1
- package/dist/src/types/extraTypes.js.map +1 -1
- package/dist/src/utils/labels.d.ts +1 -0
- package/dist/src/utils/labels.d.ts.map +1 -1
- package/dist/src/utils/labels.js +9 -2
- package/dist/src/utils/labels.js.map +1 -1
- package/dist/src/utils/patch.d.ts +13 -5
- package/dist/src/utils/patch.d.ts.map +1 -1
- package/dist/src/utils/patch.js +115 -71
- package/dist/src/utils/patch.js.map +1 -1
- package/dist/src/utils/query.d.ts +1 -0
- package/dist/src/utils/query.d.ts.map +1 -1
- package/dist/src/utils/query.js +10 -3
- package/dist/src/utils/query.js.map +1 -1
- package/dist/src/utils/search.d.ts +6 -0
- package/dist/src/utils/search.d.ts.map +1 -1
- package/dist/src/utils/search.js +9 -1
- package/dist/src/utils/search.js.map +1 -1
- package/dist/src/utils/time.d.ts +31 -0
- package/dist/src/utils/time.d.ts.map +1 -0
- package/dist/src/utils/time.js +134 -0
- package/dist/src/utils/time.js.map +1 -0
- package/package.json +1 -4
- package/src/components/DetailsPage/DetailsPage.tsx +6 -4
- package/src/components/DetailsPage/Tables/ApplicationsTable.tsx +6 -3
- package/src/components/Device/AddDeviceModal/AddDeviceModal.tsx +4 -13
- package/src/components/Device/DeviceDetails/DeviceAliasEdit.tsx +180 -0
- package/src/components/Device/DeviceDetails/DeviceApplications.tsx +8 -1
- package/src/components/Device/DeviceDetails/DeviceDetailsPage.tsx +21 -5
- package/src/components/Device/DeviceDetails/DeviceDetailsTab.tsx +3 -4
- package/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.tsx +7 -10
- package/src/components/Device/DeviceDetails/DeviceDetailsTabContent/SystemResourcesContent.tsx +3 -3
- package/src/components/Device/DeviceDetails/TerminalTab.tsx +43 -5
- package/src/components/Device/DevicesPage/DecommissionedDevicesTable.tsx +2 -1
- package/src/components/Device/DevicesPage/DeviceToolbarFilters.tsx +66 -38
- package/src/components/Device/DevicesPage/DevicesPage.tsx +11 -2
- package/src/components/Device/DevicesPage/EnrolledDevicesTable.tsx +16 -11
- package/src/components/Device/EditDeviceWizard/EditDeviceWizard.tsx +11 -2
- package/src/components/Device/EditDeviceWizard/EditDeviceWizardFooter.tsx +22 -6
- package/src/components/Device/EditDeviceWizard/EditDeviceWizardNav.tsx +15 -2
- package/src/components/Device/EditDeviceWizard/deviceSpecUtils.ts +147 -14
- package/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.tsx +28 -0
- package/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.tsx +94 -0
- package/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.tsx +81 -50
- package/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.tsx +23 -28
- package/src/components/Device/EditDeviceWizard/steps/ConfigK8sSecretTemplateForm.tsx +1 -2
- package/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.tsx +18 -39
- package/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.tsx +8 -14
- package/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.tsx +26 -39
- package/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.tsx +88 -0
- package/src/components/Device/EditDeviceWizard/steps/GeneralInfoStep.tsx +1 -1
- package/src/components/Device/EditDeviceWizard/steps/ReviewApplications.tsx +18 -19
- package/src/components/Device/EditDeviceWizard/steps/ReviewDeviceStep.tsx +3 -3
- package/src/components/Device/EditDeviceWizard/steps/ReviewTrackedSystemdServices.tsx +2 -2
- package/src/components/Device/EditDeviceWizard/steps/ReviewUpdatePolicy.tsx +2 -1
- package/src/components/Device/EditDeviceWizard/steps/SystemdUnitsForm.tsx +1 -1
- package/src/components/Device/EditDeviceWizard/utils.ts +16 -9
- package/src/components/Device/SystemdUnitsModal/SystemdUnitsModal.tsx +7 -6
- package/src/components/Device/SystemdUnitsModal/TrackSystemdUnitsForm.tsx +1 -5
- package/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.tsx +7 -9
- package/src/components/EnrollmentRequest/EnrollmentRequestList.tsx +30 -17
- package/src/components/EnrollmentRequest/EnrollmentRequestTableRow.tsx +5 -1
- package/src/components/EnrollmentRequest/useEnrollmentRequests.ts +12 -4
- package/src/components/Fleet/CreateFleet/CreateFleetWizard.tsx +4 -3
- package/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.tsx +9 -2
- package/src/components/Fleet/CreateFleet/fleetSpecUtils.ts +51 -17
- package/src/components/Fleet/CreateFleet/steps/DeviceLabelSelector.tsx +1 -1
- package/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.tsx +2 -13
- package/src/components/Fleet/CreateFleet/steps/ReviewStep.tsx +3 -3
- package/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.tsx +10 -1
- package/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.tsx +49 -16
- package/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.tsx +18 -33
- package/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.tsx +14 -24
- package/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.css +3 -0
- package/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.tsx +246 -0
- package/src/components/Fleet/CreateFleet/utils.ts +23 -7
- package/src/components/Fleet/FleetsPage.tsx +15 -17
- package/src/components/Fleet/ImportFleetWizard/steps/ResourceSyncStep.tsx +1 -1
- package/src/components/ListPage/ListPage.tsx +7 -4
- package/src/components/Masthead/CommandLineToolsPage.tsx +179 -0
- package/src/components/OverviewPage/Cards/Status/StatusCard.tsx +6 -6
- package/src/components/OverviewPage/Cards/{ToDo/ToDoCard.tsx → Tasks/TasksCard.tsx} +3 -3
- package/src/components/OverviewPage/Overview.tsx +2 -2
- package/src/components/Repository/CreateRepository/CreateRepositoryForm.tsx +11 -26
- package/src/components/Repository/CreateRepository/CreateResourceSyncsForm.tsx +8 -17
- package/src/components/Repository/CreateRepository/utils.ts +4 -1
- package/src/components/Repository/RepositoryDetails/RepositoryResourceSyncsCard.tsx +3 -4
- package/src/components/Repository/RepositoryList.tsx +9 -16
- package/src/components/ResourceSync/RepositoryResourceSyncList.tsx +7 -11
- package/src/components/Status/DeviceResourceStatus.tsx +4 -4
- package/src/components/Status/utils.ts +3 -5
- package/src/components/Table/Table.tsx +32 -9
- package/src/components/Table/TablePagination.tsx +0 -1
- package/src/components/Terminal/Terminal.tsx +10 -4
- package/src/components/charts/DonutChart.tsx +2 -2
- package/src/components/common/LeaveFormConfirmation.tsx +2 -2
- package/src/components/common/WithHelperText.tsx +53 -21
- package/src/components/form/CheckboxField.tsx +28 -3
- package/src/components/form/FormSelectTypeahead.tsx +53 -80
- package/src/components/form/RichValidationTextField.tsx +73 -62
- package/src/components/form/validations.ts +207 -28
- package/src/components/modals/ApproveDeviceModal/ApproveDeviceForm.tsx +5 -5
- package/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.tsx +3 -2
- package/src/components/modals/EditLabelsModal/EditLabelsForm.tsx +9 -20
- package/src/components/modals/massModals/MassDecommissionDeviceModal/MassDecommissionDeviceModal.tsx +2 -2
- package/src/components/modals/massModals/MassDeleteDeviceModal/MassDeleteDeviceModal.tsx +2 -2
- package/src/components/modals/massModals/MassDeleteFleetModal/MassDeleteFleetModal.tsx +2 -2
- package/src/components/modals/massModals/MassDeleteRepositoryModal/MassDeleteRepositoryModal.tsx +2 -2
- package/src/hooks/timeZones.ts +606 -0
- package/src/hooks/useAppContext.tsx +20 -10
- package/src/hooks/useFetch.ts +3 -2
- package/src/hooks/useNavigate.tsx +1 -0
- package/src/hooks/useTimeZones.ts +26 -0
- package/src/hooks/useWebSocket.ts +29 -7
- package/src/links.ts +13 -4
- package/src/types/deviceSpec.ts +118 -2
- package/src/types/extraTypes.ts +33 -1
- package/src/utils/labels.ts +7 -1
- package/src/utils/patch.ts +126 -72
- package/src/utils/query.ts +13 -4
- package/src/utils/search.ts +8 -0
- package/src/utils/time.ts +147 -0
- package/dist/jest.config.d.ts +0 -12
- package/dist/jest.config.d.ts.map +0 -1
- package/dist/jest.config.js +0 -24
- package/dist/jest.config.js.map +0 -1
- package/dist/src/components/DetailsPage/DetailsPage.spec.d.ts +0 -2
- package/dist/src/components/DetailsPage/DetailsPage.spec.d.ts.map +0 -1
- package/dist/src/components/DetailsPage/DetailsPage.spec.js +0 -81
- package/dist/src/components/DetailsPage/DetailsPage.spec.js.map +0 -1
- package/dist/src/components/Device/EditDeviceWizard/types.d.ts +0 -23
- package/dist/src/components/Device/EditDeviceWizard/types.d.ts.map +0 -1
- package/dist/src/components/Device/EditDeviceWizard/types.js +0 -3
- package/dist/src/components/Device/EditDeviceWizard/types.js.map +0 -1
- package/dist/src/components/Fleet/CreateFleet/types.d.ts +0 -29
- package/dist/src/components/Fleet/CreateFleet/types.d.ts.map +0 -1
- package/dist/src/components/Fleet/CreateFleet/types.js +0 -9
- package/dist/src/components/Fleet/CreateFleet/types.js.map +0 -1
- package/dist/src/components/OverviewPage/Cards/ToDo/ToDoCard.d.ts +0 -4
- package/dist/src/components/OverviewPage/Cards/ToDo/ToDoCard.d.ts.map +0 -1
- package/dist/src/components/OverviewPage/Cards/ToDo/ToDoCard.js.map +0 -1
- package/dist/src/components/UserPreferences/UserPreferencesModal.d.ts.map +0 -1
- package/dist/src/components/UserPreferences/UserPreferencesModal.js.map +0 -1
- package/dist/src/components/UserPreferences/UserPreferencesProvider.d.ts.map +0 -1
- package/dist/src/components/UserPreferences/UserPreferencesProvider.js.map +0 -1
- package/dist/src/setupTests.d.ts +0 -2
- package/dist/src/setupTests.d.ts.map +0 -1
- package/dist/src/setupTests.js +0 -24
- package/dist/src/setupTests.js.map +0 -1
- package/dist/src/tests/test-utils.d.ts +0 -7
- package/dist/src/tests/test-utils.d.ts.map +0 -1
- package/dist/src/tests/test-utils.js +0 -21
- package/dist/src/tests/test-utils.js.map +0 -1
- package/src/components/DetailsPage/DetailsPage.spec.tsx +0 -128
- package/src/components/Device/EditDeviceWizard/types.ts +0 -22
- package/src/components/Fleet/CreateFleet/types.ts +0 -33
- package/src/setupTests.ts +0 -21
- package/src/tests/test-utils.tsx +0 -21
- /package/dist/src/components/{UserPreferences → Masthead}/UserPreferencesModal.d.ts +0 -0
- /package/dist/src/components/{UserPreferences → Masthead}/UserPreferencesModal.js +0 -0
- /package/dist/src/components/{UserPreferences → Masthead}/UserPreferencesProvider.d.ts +0 -0
- /package/dist/src/components/{UserPreferences → Masthead}/UserPreferencesProvider.js +0 -0
- /package/src/components/{UserPreferences → Masthead}/UserPreferencesModal.tsx +0 -0
- /package/src/components/{UserPreferences → Masthead}/UserPreferencesProvider.tsx +0 -0
|
@@ -17,7 +17,7 @@ const terminalOptions: ITerminalOptions & ITerminalInitOnlyOptions = {
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
type TerminalProps = {
|
|
20
|
-
onData: (data: string) => void;
|
|
20
|
+
onData: (data: string, resize?: boolean) => void;
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
export type ImperativeTerminalType = {
|
|
@@ -41,7 +41,13 @@ const Terminal = React.forwardRef<ImperativeTerminalType, TerminalProps>(({ onDa
|
|
|
41
41
|
term.focus();
|
|
42
42
|
|
|
43
43
|
const resizeObserver: ResizeObserver = new ResizeObserver(() => {
|
|
44
|
-
window.requestAnimationFrame(() =>
|
|
44
|
+
window.requestAnimationFrame(() => {
|
|
45
|
+
fitAddon.fit();
|
|
46
|
+
if (terminal.current) {
|
|
47
|
+
const size = JSON.stringify({ Height: terminal.current?.rows, Width: terminal.current?.cols });
|
|
48
|
+
onData(size, true);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
45
51
|
});
|
|
46
52
|
|
|
47
53
|
terminalRef.current && resizeObserver.observe(terminalRef.current);
|
|
@@ -55,11 +61,11 @@ const Terminal = React.forwardRef<ImperativeTerminalType, TerminalProps>(({ onDa
|
|
|
55
61
|
term.dispose();
|
|
56
62
|
resizeObserver.disconnect();
|
|
57
63
|
};
|
|
58
|
-
}, []);
|
|
64
|
+
}, [onData]);
|
|
59
65
|
|
|
60
66
|
React.useEffect(() => {
|
|
61
67
|
const term = terminal.current;
|
|
62
|
-
const data = term?.onData(onData);
|
|
68
|
+
const data = term?.onData((data) => onData(data, false));
|
|
63
69
|
return () => {
|
|
64
70
|
data?.dispose();
|
|
65
71
|
};
|
|
@@ -2,7 +2,7 @@ import { ChartContainer, ChartDonut } from '@patternfly/react-charts';
|
|
|
2
2
|
import { Flex, FlexItem, Stack, StackItem, Text, TextContent, TextVariants } from '@patternfly/react-core';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { Link, LinkProps } from '../../hooks/useNavigate';
|
|
5
|
-
import
|
|
5
|
+
import LabelWithHelperText from '../common/WithHelperText';
|
|
6
6
|
import { useTranslation } from '../../hooks/useTranslation';
|
|
7
7
|
import { getDefaultStatusColor } from '../../utils/status/common';
|
|
8
8
|
|
|
@@ -83,7 +83,7 @@ const DonutChart = ({ data, title, helperText }: { data: Data[]; title: string;
|
|
|
83
83
|
alignContent={{ default: 'alignContentCenter' }}
|
|
84
84
|
className="fctl-charts__title"
|
|
85
85
|
>
|
|
86
|
-
{helperText ? <
|
|
86
|
+
{helperText ? <LabelWithHelperText label={title} content={helperText} /> : title}
|
|
87
87
|
</Flex>
|
|
88
88
|
</foreignObject>
|
|
89
89
|
<ChartDonut
|
|
@@ -4,7 +4,7 @@ import { Blocker, BlockerFunction } from 'react-router-dom';
|
|
|
4
4
|
import { useFormikContext } from 'formik';
|
|
5
5
|
|
|
6
6
|
import { useTranslation } from '../../hooks/useTranslation';
|
|
7
|
-
import { useAppContext } from '../../hooks/useAppContext';
|
|
7
|
+
import { FlightCtlApp, useAppContext } from '../../hooks/useAppContext';
|
|
8
8
|
|
|
9
9
|
const ConfirmNavigationDialog = ({ blocker }: { blocker: Blocker }) => {
|
|
10
10
|
const { t } = useTranslation();
|
|
@@ -85,7 +85,7 @@ const LeaveFormConfirmation = () => {
|
|
|
85
85
|
|
|
86
86
|
const lock = !isSubmitting && dirty;
|
|
87
87
|
|
|
88
|
-
if (appType ===
|
|
88
|
+
if (appType === FlightCtlApp.AAP) {
|
|
89
89
|
return null;
|
|
90
90
|
}
|
|
91
91
|
|
|
@@ -1,34 +1,66 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { Button, Popover } from '@patternfly/react-core';
|
|
2
|
+
import { Button, FormGroup, Popover } from '@patternfly/react-core';
|
|
3
3
|
import { OutlinedQuestionCircleIcon } from '@patternfly/react-icons/dist/js/icons/outlined-question-circle-icon';
|
|
4
4
|
|
|
5
5
|
import './WithHelperText.css';
|
|
6
6
|
|
|
7
|
-
type
|
|
8
|
-
|
|
9
|
-
showLabel?: boolean;
|
|
7
|
+
type HelperTextPopoverProps = {
|
|
8
|
+
label: string;
|
|
10
9
|
triggerAction?: 'click' | 'hover';
|
|
11
10
|
content: React.ReactNode;
|
|
12
11
|
};
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
type FormGroupWithHelperTextProps = HelperTextPopoverProps & {
|
|
14
|
+
isRequired?: boolean;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const HelperTextPopover = ({
|
|
18
|
+
ariaLabel,
|
|
19
|
+
content,
|
|
20
|
+
triggerAction,
|
|
21
|
+
}: Omit<HelperTextPopoverProps, 'label'> & { ariaLabel: string }) => (
|
|
22
|
+
<Popover aria-label={ariaLabel} bodyContent={content} withFocusTrap triggerAction={triggerAction}>
|
|
23
|
+
<Button
|
|
24
|
+
component="a"
|
|
25
|
+
className="fctl-helper-text__icon"
|
|
26
|
+
isInline
|
|
27
|
+
variant="plain"
|
|
28
|
+
onClick={(ev) => {
|
|
29
|
+
ev.preventDefault();
|
|
30
|
+
ev.stopPropagation();
|
|
31
|
+
}}
|
|
32
|
+
aria-label={`${ariaLabel} help text`}
|
|
33
|
+
>
|
|
34
|
+
<OutlinedQuestionCircleIcon />
|
|
35
|
+
</Button>
|
|
36
|
+
</Popover>
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
const LabelWithHelperText = ({
|
|
40
|
+
label,
|
|
41
|
+
hideLabel,
|
|
42
|
+
content,
|
|
43
|
+
triggerAction,
|
|
44
|
+
}: HelperTextPopoverProps & { hideLabel?: boolean }) => (
|
|
15
45
|
<>
|
|
16
|
-
{
|
|
17
|
-
<
|
|
18
|
-
<Button
|
|
19
|
-
component="a"
|
|
20
|
-
className="fctl-helper-text__icon"
|
|
21
|
-
isInline
|
|
22
|
-
variant="plain"
|
|
23
|
-
onClick={(ev) => {
|
|
24
|
-
ev.preventDefault();
|
|
25
|
-
ev.stopPropagation();
|
|
26
|
-
}}
|
|
27
|
-
aria-label={`${ariaLabel} help text`}
|
|
28
|
-
icon={<OutlinedQuestionCircleIcon />}
|
|
29
|
-
/>
|
|
30
|
-
</Popover>
|
|
46
|
+
{!hideLabel && label}
|
|
47
|
+
<HelperTextPopover ariaLabel={label} content={content} triggerAction={triggerAction} />
|
|
31
48
|
</>
|
|
32
49
|
);
|
|
33
50
|
|
|
34
|
-
export
|
|
51
|
+
export const FormGroupWithHelperText = ({
|
|
52
|
+
label,
|
|
53
|
+
isRequired,
|
|
54
|
+
content,
|
|
55
|
+
children,
|
|
56
|
+
}: React.PropsWithChildren<FormGroupWithHelperTextProps>) => (
|
|
57
|
+
<FormGroup
|
|
58
|
+
label={label}
|
|
59
|
+
labelIcon={<HelperTextPopover ariaLabel={label} content={content} />}
|
|
60
|
+
isRequired={isRequired}
|
|
61
|
+
>
|
|
62
|
+
{children}
|
|
63
|
+
</FormGroup>
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
export default LabelWithHelperText;
|
|
@@ -3,13 +3,38 @@ import { useField } from 'formik';
|
|
|
3
3
|
import { Checkbox, CheckboxProps, FormGroup } from '@patternfly/react-core';
|
|
4
4
|
import ErrorHelperText, { DefaultHelperText } from './FieldHelperText';
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
interface BaseCheckboxProps extends Omit<CheckboxProps, 'onChange' | 'id' | 'ref'> {
|
|
7
7
|
name: string;
|
|
8
|
-
helperText?: React.ReactNode;
|
|
9
8
|
onChangeCustom?: (value: boolean) => void;
|
|
10
9
|
}
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
export interface CheckboxFieldProps extends BaseCheckboxProps {
|
|
12
|
+
helperText?: React.ReactNode;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Checkboxes that are validated as a group rather than individually
|
|
16
|
+
export const CheckboxFieldGroupValidation = ({ onChangeCustom, ...props }: BaseCheckboxProps) => {
|
|
17
|
+
const [{ value, ...rest }, , { setValue, setTouched }] = useField<boolean>({
|
|
18
|
+
name: props.name,
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const onChange: CheckboxProps['onChange'] = async (_, value) => {
|
|
22
|
+
await setValue(value);
|
|
23
|
+
if (onChangeCustom) {
|
|
24
|
+
onChangeCustom(value);
|
|
25
|
+
}
|
|
26
|
+
await setTouched(true);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const fieldId = `checkboxfield-${props.name}`;
|
|
30
|
+
return (
|
|
31
|
+
<FormGroup id={`form-control__${fieldId}`} fieldId={fieldId}>
|
|
32
|
+
<Checkbox {...rest} {...props} isChecked={value} id={fieldId} onChange={onChange} body={value && props.body} />
|
|
33
|
+
</FormGroup>
|
|
34
|
+
);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const CheckboxField = ({ onChangeCustom, helperText, children, ...props }: CheckboxFieldProps) => {
|
|
13
38
|
const [{ value, ...rest }, meta, { setValue, setTouched }] = useField<boolean>({
|
|
14
39
|
name: props.name,
|
|
15
40
|
});
|
|
@@ -11,7 +11,6 @@ import {
|
|
|
11
11
|
} from '@patternfly/react-core';
|
|
12
12
|
import { useField } from 'formik';
|
|
13
13
|
import ErrorHelperText, { DefaultHelperText } from './FieldHelperText';
|
|
14
|
-
import { useTranslation } from '../../hooks/useTranslation';
|
|
15
14
|
|
|
16
15
|
import './FormSelect.css';
|
|
17
16
|
|
|
@@ -24,35 +23,31 @@ type FormSelectProps = {
|
|
|
24
23
|
helperText?: React.ReactNode;
|
|
25
24
|
children?: React.ReactNode;
|
|
26
25
|
placeholderText?: string;
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
isValidTypedItem?: (value: string) => boolean;
|
|
27
|
+
transformTypedItem?: (value: string) => string;
|
|
29
28
|
};
|
|
30
29
|
|
|
31
30
|
const isItemObject = (item: string | SelectItem): item is SelectItem => typeof item === 'object';
|
|
32
31
|
|
|
33
32
|
const getItemLabel = (item: string | SelectItem) => (isItemObject(item) ? item.label : item);
|
|
34
33
|
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
const FormSelectTypeahead: React.FC<FormSelectProps> = ({
|
|
34
|
+
const FormSelectTypeahead = ({
|
|
38
35
|
name,
|
|
39
36
|
items,
|
|
40
37
|
defaultId,
|
|
41
38
|
helperText,
|
|
42
39
|
placeholderText,
|
|
40
|
+
isValidTypedItem,
|
|
41
|
+
transformTypedItem,
|
|
43
42
|
children,
|
|
44
|
-
|
|
45
|
-
transformNewItem,
|
|
46
|
-
}) => {
|
|
47
|
-
const { t } = useTranslation();
|
|
43
|
+
}: FormSelectProps) => {
|
|
48
44
|
const [field, meta, { setValue, setTouched }] = useField<string>({
|
|
49
45
|
name: name,
|
|
50
46
|
});
|
|
51
47
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
52
48
|
const [inputValue, setInputValue] = React.useState<string | undefined>(undefined);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
);
|
|
49
|
+
|
|
50
|
+
const currentValue = field.value;
|
|
56
51
|
|
|
57
52
|
const fieldId = `selectfield-${name}`;
|
|
58
53
|
const itemKeys = Object.keys(items);
|
|
@@ -65,71 +60,34 @@ const FormSelectTypeahead: React.FC<FormSelectProps> = ({
|
|
|
65
60
|
|
|
66
61
|
React.useEffect(() => {
|
|
67
62
|
const hasOneItem = itemKeys.length === 1;
|
|
68
|
-
if (hasOneItem && !
|
|
63
|
+
if (hasOneItem && !currentValue) {
|
|
69
64
|
setValue(itemKeys[0], true);
|
|
70
65
|
}
|
|
71
|
-
}, [itemKeys,
|
|
72
|
-
|
|
73
|
-
const selectedText = isOpen
|
|
74
|
-
? inputValue
|
|
75
|
-
: field.value
|
|
76
|
-
? getItemLabel(items[field.value]) || field.value
|
|
77
|
-
: defaultValue;
|
|
78
|
-
|
|
79
|
-
const itemValidation = inputValue ? validateNewItem?.(inputValue) : undefined;
|
|
66
|
+
}, [itemKeys, currentValue, setValue]);
|
|
80
67
|
|
|
81
|
-
let
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
if (!alreadyAdded) {
|
|
88
|
-
alreadyAdded = item === inputTransformed;
|
|
89
|
-
}
|
|
90
|
-
return item.includes(inputValue);
|
|
91
|
-
});
|
|
68
|
+
let selectedText = defaultValue;
|
|
69
|
+
if (inputValue) {
|
|
70
|
+
selectedText = inputValue;
|
|
71
|
+
} else if (currentValue) {
|
|
72
|
+
selectedText = getItemLabel(items[currentValue]) || currentValue;
|
|
73
|
+
}
|
|
92
74
|
|
|
93
75
|
const itemKeysFiltered = itemKeys.filter((key) => {
|
|
94
76
|
if (!inputValue) {
|
|
95
77
|
return true;
|
|
96
78
|
}
|
|
97
|
-
|
|
98
|
-
alreadyAdded = key === inputTransformed;
|
|
99
|
-
}
|
|
100
|
-
return getItemLabel(items[key]).includes(inputValue);
|
|
79
|
+
return getItemLabel(items[key]).toLowerCase().includes(inputValue.toLowerCase());
|
|
101
80
|
});
|
|
102
81
|
|
|
103
|
-
const selectOptions = [
|
|
104
|
-
...addedItemsFiltered.map((item) => (
|
|
105
|
-
<SelectOption className="fctl-form-select__item" key={item} value={item}>
|
|
106
|
-
{item}
|
|
107
|
-
</SelectOption>
|
|
108
|
-
)),
|
|
109
|
-
...itemKeysFiltered.map((key) => {
|
|
110
|
-
const item = items[key];
|
|
111
|
-
const desc = isItemObject(item) ? item.description : undefined;
|
|
112
|
-
return (
|
|
113
|
-
<SelectOption className="fctl-form-select__item" key={key} value={key} description={desc}>
|
|
114
|
-
{getItemLabel(item)}
|
|
115
|
-
</SelectOption>
|
|
116
|
-
);
|
|
117
|
-
}),
|
|
118
|
-
];
|
|
119
|
-
|
|
120
82
|
return (
|
|
121
83
|
<FormGroup id={`form-control__${fieldId}`} fieldId={fieldId}>
|
|
122
84
|
<Select
|
|
123
85
|
id={fieldId}
|
|
124
86
|
className="fctl-form-select"
|
|
125
|
-
selected={
|
|
87
|
+
selected={currentValue || defaultId}
|
|
126
88
|
onSelect={(_, value) => {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
setAddedItems([...addedItems, inputTransformed]);
|
|
130
|
-
newValue = inputTransformed;
|
|
131
|
-
}
|
|
132
|
-
setValue(newValue, true);
|
|
89
|
+
setTouched(true);
|
|
90
|
+
setValue(value as string, true);
|
|
133
91
|
setInputValue(undefined);
|
|
134
92
|
setIsOpen(false);
|
|
135
93
|
}}
|
|
@@ -157,12 +115,34 @@ const FormSelectTypeahead: React.FC<FormSelectProps> = ({
|
|
|
157
115
|
setIsOpen(!isOpen);
|
|
158
116
|
}}
|
|
159
117
|
onChange={(_, value) => {
|
|
160
|
-
setInputValue(value);
|
|
118
|
+
setInputValue(value || undefined);
|
|
161
119
|
if (!isOpen) {
|
|
162
120
|
setIsOpen(true);
|
|
163
121
|
}
|
|
164
122
|
}}
|
|
165
|
-
|
|
123
|
+
onBlur={() => {
|
|
124
|
+
if (!inputValue) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// If there is no "isValidTypedItem", it means selection must always be done by selecting from the list
|
|
129
|
+
const skipSetValue = isValidTypedItem ? !isValidTypedItem(inputValue) : true;
|
|
130
|
+
if (skipSetValue) {
|
|
131
|
+
if (itemKeysFiltered.length === 0) {
|
|
132
|
+
setInputValue(undefined);
|
|
133
|
+
setIsOpen(false);
|
|
134
|
+
} else {
|
|
135
|
+
// The typed text has no matches from the list. We clear the value to use the default/empty
|
|
136
|
+
setValue('');
|
|
137
|
+
}
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const transformedValue = transformTypedItem?.(inputValue) || inputValue;
|
|
141
|
+
setInputValue(undefined);
|
|
142
|
+
void setValue(transformedValue);
|
|
143
|
+
setIsOpen(false);
|
|
144
|
+
}}
|
|
145
|
+
id={`create-typeahead-select-input-${name}`}
|
|
166
146
|
autoComplete="off"
|
|
167
147
|
role="combobox"
|
|
168
148
|
isExpanded={isOpen}
|
|
@@ -175,9 +155,6 @@ const FormSelectTypeahead: React.FC<FormSelectProps> = ({
|
|
|
175
155
|
isOpen={isOpen}
|
|
176
156
|
onOpenChange={(open) => {
|
|
177
157
|
if (!open) {
|
|
178
|
-
if (inputValue !== undefined) {
|
|
179
|
-
setInputValue(undefined);
|
|
180
|
-
}
|
|
181
158
|
if (!meta.touched) {
|
|
182
159
|
setTouched(true);
|
|
183
160
|
}
|
|
@@ -186,19 +163,15 @@ const FormSelectTypeahead: React.FC<FormSelectProps> = ({
|
|
|
186
163
|
}}
|
|
187
164
|
>
|
|
188
165
|
<SelectList className="fctl-form-select__menu">
|
|
189
|
-
{
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
description={
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
})}
|
|
199
|
-
</SelectOption>
|
|
200
|
-
)}
|
|
201
|
-
{selectOptions}
|
|
166
|
+
{itemKeysFiltered.map((key) => {
|
|
167
|
+
const item = items[key];
|
|
168
|
+
const desc = isItemObject(item) ? item.description : undefined;
|
|
169
|
+
return (
|
|
170
|
+
<SelectOption className="fctl-form-select__item" key={key} value={key} description={desc}>
|
|
171
|
+
{getItemLabel(item)}
|
|
172
|
+
</SelectOption>
|
|
173
|
+
);
|
|
174
|
+
})}
|
|
202
175
|
</SelectList>
|
|
203
176
|
{children}
|
|
204
177
|
</Select>
|
|
@@ -72,71 +72,82 @@ export interface RichValidationTextFieldProps extends TextInputProps {
|
|
|
72
72
|
}[];
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
const RichValidationTextField = (
|
|
76
|
-
|
|
75
|
+
const RichValidationTextField = React.forwardRef(
|
|
76
|
+
(
|
|
77
|
+
{ fieldName, validations, isRequired, onBlur, ...rest }: RichValidationTextFieldProps,
|
|
78
|
+
ref: React.Ref<HTMLInputElement>,
|
|
79
|
+
) => {
|
|
80
|
+
const [popoverOpen, setPopoverOpen] = React.useState(false);
|
|
77
81
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
82
|
+
const [field, meta, { setTouched }] = useField({
|
|
83
|
+
name: fieldName,
|
|
84
|
+
});
|
|
81
85
|
|
|
82
|
-
|
|
83
|
-
|
|
86
|
+
const fieldId = `rich-validation-field-${fieldName}`;
|
|
87
|
+
const hasValue = !!field.value;
|
|
84
88
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
89
|
+
return (
|
|
90
|
+
<FormGroup label={rest?.['aria-label']} id={`form-control__${fieldId}`} fieldId={fieldId} isRequired={isRequired}>
|
|
91
|
+
<InputGroup>
|
|
92
|
+
<InputGroupItem isFill>
|
|
93
|
+
<TextInput
|
|
94
|
+
{...field}
|
|
95
|
+
{...rest}
|
|
96
|
+
id={fieldId}
|
|
97
|
+
ref={ref}
|
|
98
|
+
isRequired={isRequired}
|
|
99
|
+
aria-describedby={`${fieldId}-helper`}
|
|
100
|
+
onChange={async (event, val) => {
|
|
101
|
+
!popoverOpen && setPopoverOpen(true);
|
|
102
|
+
field.onChange(event);
|
|
103
|
+
// TODO does not work well for the first character
|
|
104
|
+
if (!meta.touched && val?.length) {
|
|
105
|
+
await setTouched(true, true);
|
|
106
|
+
}
|
|
107
|
+
}}
|
|
108
|
+
onBlur={() => {
|
|
109
|
+
setPopoverOpen(false);
|
|
110
|
+
void setTouched(true, true);
|
|
111
|
+
if (onBlur) {
|
|
112
|
+
onBlur();
|
|
113
|
+
}
|
|
114
|
+
}}
|
|
115
|
+
/>
|
|
116
|
+
</InputGroupItem>
|
|
117
|
+
<InputGroupItem>
|
|
118
|
+
<Popover
|
|
119
|
+
isVisible={popoverOpen}
|
|
120
|
+
shouldClose={() => setPopoverOpen(false)}
|
|
121
|
+
shouldOpen={() => setPopoverOpen(true)}
|
|
122
|
+
aria-label="validation popover"
|
|
123
|
+
position={PopoverPosition.top}
|
|
124
|
+
bodyContent={
|
|
125
|
+
<RichValidationStatus
|
|
126
|
+
hasValue={hasValue}
|
|
127
|
+
isRequired={isRequired || false}
|
|
128
|
+
validations={validations}
|
|
129
|
+
metaError={meta.error}
|
|
130
|
+
/>
|
|
101
131
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
/>
|
|
123
|
-
}
|
|
124
|
-
withFocusTrap={false}
|
|
125
|
-
>
|
|
126
|
-
<Button variant="plain" aria-label="Validation">
|
|
127
|
-
{!hasValue ? (
|
|
128
|
-
<InfoCircleIcon color={infoColor.value} />
|
|
129
|
-
) : !!meta.error ? (
|
|
130
|
-
<ExclamationCircleIcon color={dangerColor.value} />
|
|
131
|
-
) : (
|
|
132
|
-
<CheckCircleIcon color={successColor.value} />
|
|
133
|
-
)}
|
|
134
|
-
</Button>
|
|
135
|
-
</Popover>
|
|
136
|
-
</InputGroupItem>
|
|
137
|
-
</InputGroup>
|
|
138
|
-
</FormGroup>
|
|
139
|
-
);
|
|
140
|
-
};
|
|
132
|
+
withFocusTrap={false}
|
|
133
|
+
>
|
|
134
|
+
<Button variant="plain" aria-label="Validation">
|
|
135
|
+
{!hasValue ? (
|
|
136
|
+
<InfoCircleIcon color={infoColor.value} />
|
|
137
|
+
) : !!meta.error ? (
|
|
138
|
+
<ExclamationCircleIcon color={dangerColor.value} />
|
|
139
|
+
) : (
|
|
140
|
+
<CheckCircleIcon color={successColor.value} />
|
|
141
|
+
)}
|
|
142
|
+
</Button>
|
|
143
|
+
</Popover>
|
|
144
|
+
</InputGroupItem>
|
|
145
|
+
</InputGroup>
|
|
146
|
+
</FormGroup>
|
|
147
|
+
);
|
|
148
|
+
},
|
|
149
|
+
);
|
|
150
|
+
|
|
151
|
+
RichValidationTextField.displayName = 'RichValidationTextField';
|
|
141
152
|
|
|
142
153
|
export default RichValidationTextField;
|